@wowok/agent-mcp 2.6.0 → 2.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/customer/info-puzzle.d.ts +1 -1
- package/dist/customer/info-puzzle.js +4 -2
- package/dist/customer/risk-assessment.js +26 -4
- package/dist/customer/types.d.ts +2 -0
- package/dist/examples/guard-template-balance-check.json +38 -0
- package/dist/examples/guard-template-time-lock.json +39 -0
- package/dist/examples/machine-template-7node-rental.json +114 -0
- package/dist/examples/rental-ziroom-machine-create.json +137 -0
- package/dist/examples/rental-ziroom-permission-create.json +35 -0
- package/dist/examples/rental-ziroom-service-create.json +80 -0
- package/dist/examples/retail-myshop-service-create.json +88 -0
- package/dist/extensions/capability-manifest.d.ts +125 -0
- package/dist/extensions/capability-manifest.js +594 -0
- package/dist/extensions/constraint-registry.d.ts +24 -0
- package/dist/extensions/constraint-registry.js +196 -0
- package/dist/extensions/index.d.ts +12 -0
- package/dist/extensions/index.js +6 -0
- package/dist/extensions/metric-registry.d.ts +26 -0
- package/dist/extensions/metric-registry.js +257 -0
- package/dist/extensions/mode-evaluator.d.ts +15 -0
- package/dist/extensions/mode-evaluator.js +170 -0
- package/dist/extensions/modes.d.ts +2 -0
- package/dist/extensions/modes.js +493 -0
- package/dist/extensions/registry.d.ts +50 -0
- package/dist/extensions/registry.js +662 -0
- package/dist/extensions/types.d.ts +219 -0
- package/dist/extensions/types.js +1 -0
- package/dist/index.js +50 -0
- package/dist/knowledge/deployment-scanner.d.ts +3 -0
- package/dist/knowledge/deployment-scanner.js +64 -3
- package/dist/knowledge/fund-layer.d.ts +72 -0
- package/dist/knowledge/fund-layer.js +420 -0
- package/dist/knowledge/guard-render.d.ts +57 -0
- package/dist/knowledge/guard-render.js +700 -0
- package/dist/knowledge/guard-risk.d.ts +13 -0
- package/dist/knowledge/guard-risk.js +57 -0
- package/dist/knowledge/guard-submission-prompt.d.ts +31 -0
- package/dist/knowledge/guard-submission-prompt.js +171 -0
- package/dist/knowledge/guard-templates.js +278 -0
- package/dist/knowledge/machine-ledger.js +1 -1
- package/dist/knowledge/machine-render.d.ts +41 -0
- package/dist/knowledge/machine-render.js +565 -0
- package/dist/knowledge/machine-templates.js +24 -5
- package/dist/knowledge/reward-confirm.js +2 -2
- package/dist/knowledge/reward-puzzle.js +1 -1
- package/dist/knowledge/reward-risk.js +9 -9
- package/dist/knowledge/reward-templates.js +2 -2
- package/dist/knowledge/service-confirm.d.ts +15 -6
- package/dist/knowledge/service-confirm.js +119 -11
- package/dist/knowledge/service-context.js +1 -1
- package/dist/knowledge/service-ledger.js +1 -1
- package/dist/knowledge/service-risk.d.ts +1 -1
- package/dist/knowledge/service-risk.js +3 -3
- package/dist/knowledge/service-templates.js +2 -2
- package/dist/knowledge/service-translation.d.ts +1 -1
- package/dist/knowledge/service-translation.js +7 -7
- package/dist/knowledge/tool-constraints.js +6 -2
- package/dist/project/deployment-bridge.d.ts +1 -1
- package/dist/project/deployment-bridge.js +31 -7
- package/dist/project/deployment-doc.d.ts +3 -0
- package/dist/project/deployment-doc.js +76 -14
- package/dist/project/edit-planner.d.ts +123 -0
- package/dist/project/edit-planner.js +1371 -0
- package/dist/project/evaluation.d.ts +2 -0
- package/dist/project/evaluation.js +873 -88
- package/dist/project/graph-builder.d.ts +4 -1
- package/dist/project/graph-builder.js +132 -62
- package/dist/project/graph.d.ts +1 -0
- package/dist/project/handlers.d.ts +317 -6
- package/dist/project/handlers.js +1171 -19
- package/dist/project/stage-gate.d.ts +4 -0
- package/dist/project/stage-gate.js +64 -5
- package/dist/project/task-tracker.d.ts +26 -0
- package/dist/project/task-tracker.js +78 -0
- package/dist/safety/preview.js +16 -0
- package/dist/schema/call/allocation.d.ts +16 -16
- package/dist/schema/call/allocation.js +2 -2
- package/dist/schema/call/arbitration.js +19 -6
- package/dist/schema/call/base.d.ts +21 -13
- package/dist/schema/call/base.js +27 -6
- package/dist/schema/call/bridge.d.ts +5 -5
- package/dist/schema/call/bridge.js +3 -1
- package/dist/schema/call/contact.js +2 -2
- package/dist/schema/call/demand.d.ts +23 -31
- package/dist/schema/call/demand.js +2 -2
- package/dist/schema/call/guard.js +2 -2
- package/dist/schema/call/machine.d.ts +1976 -752
- package/dist/schema/call/machine.js +50 -4
- package/dist/schema/call/order.d.ts +149 -228
- package/dist/schema/call/order.js +4 -3
- package/dist/schema/call/payment.d.ts +183 -3
- package/dist/schema/call/payment.js +21 -3
- package/dist/schema/call/permission.js +2 -2
- package/dist/schema/call/personal.d.ts +241 -52
- package/dist/schema/call/progress.d.ts +53 -61
- package/dist/schema/call/progress.js +18 -4
- package/dist/schema/call/repository.d.ts +23 -31
- package/dist/schema/call/repository.js +2 -2
- package/dist/schema/call/reward.js +3 -3
- package/dist/schema/call/semantic.d.ts +1 -1
- package/dist/schema/call/semantic.js +37 -2
- package/dist/schema/call/service.d.ts +275 -127
- package/dist/schema/call/service.js +89 -13
- package/dist/schema/call/treasury.js +3 -3
- package/dist/schema/common/index.d.ts +13 -2
- package/dist/schema/common/index.js +80 -15
- package/dist/schema/local/index.d.ts +32 -35
- package/dist/schema/local/index.js +28 -6
- package/dist/schema/messenger/index.d.ts +274 -46
- package/dist/schema/operations.d.ts +1264 -544
- package/dist/schema/operations.js +65 -7
- package/dist/schema/project/index.d.ts +2846 -167
- package/dist/schema/project/index.js +570 -16
- package/dist/schema/query/index.d.ts +922 -349
- package/dist/schema/query/index.js +205 -42
- package/dist/schema/schema-query/index.d.ts +65 -3
- package/dist/schema/schema-query/index.js +38 -5
- package/dist/schema/utils/node-parser.js +20 -4
- package/dist/schema/utils/object-type-utils.d.ts +12 -0
- package/dist/schema/utils/object-type-utils.js +35 -0
- package/dist/schema/utils/permission-machine-check.d.ts +49 -0
- package/dist/schema/utils/permission-machine-check.js +121 -0
- package/dist/schema/utils/skills-recommendation.d.ts +2 -0
- package/dist/schema/utils/skills-recommendation.js +76 -0
- package/dist/schema-query/index.d.ts +20 -1
- package/dist/schema-query/index.js +306 -4
- package/dist/schemas/account_operation.output.json +7 -1
- package/dist/schemas/account_operation.schema.json +3 -3
- package/dist/schemas/bridge_operation.output.json +6 -0
- package/dist/schemas/bridge_operation.schema.json +1 -1
- package/dist/schemas/guard-templates.json +379 -0
- package/dist/schemas/guard2file.schema.json +1 -1
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/local_info_operation.output.json +6 -0
- package/dist/schemas/local_mark_operation.output.json +7 -1
- package/dist/schemas/local_mark_operation.schema.json +1 -1
- package/dist/schemas/machineNode2file.schema.json +1 -1
- package/dist/schemas/messenger_operation.schema.json +4 -4
- package/dist/schemas/onchain_events.output.json +1 -1
- package/dist/schemas/onchain_operations.output.json +2820 -0
- package/dist/schemas/onchain_operations.schema.json +444 -330
- package/dist/schemas/onchain_operations_allocation.schema.json +37 -28
- package/dist/schemas/onchain_operations_arbitration.schema.json +16 -14
- package/dist/schemas/onchain_operations_contact.schema.json +10 -10
- package/dist/schemas/onchain_operations_demand.schema.json +10 -10
- package/dist/schemas/onchain_operations_gen_passport.schema.json +16 -16
- package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -2
- package/dist/schemas/onchain_operations_guard.schema.json +2 -2
- package/dist/schemas/onchain_operations_machine.schema.json +43 -35
- package/dist/schemas/onchain_operations_order.schema.json +72 -78
- package/dist/schemas/onchain_operations_payment.schema.json +141 -111
- package/dist/schemas/onchain_operations_permission.schema.json +3 -3
- package/dist/schemas/onchain_operations_personal.schema.json +7 -7
- package/dist/schemas/onchain_operations_progress.schema.json +9 -9
- package/dist/schemas/onchain_operations_proof.schema.json +8 -8
- package/dist/schemas/onchain_operations_repository.schema.json +10 -10
- package/dist/schemas/onchain_operations_reward.schema.json +14 -14
- package/dist/schemas/onchain_operations_service.schema.json +119 -48
- package/dist/schemas/onchain_operations_treasury.schema.json +11 -11
- package/dist/schemas/onchain_table_data.output.json +33 -25
- package/dist/schemas/onchain_table_data.schema.json +22 -21
- package/dist/schemas/project_operation.output.json +2194 -23
- package/dist/schemas/project_operation.schema.json +84 -6
- package/dist/schemas/query_toolkit.output.json +108 -80
- package/dist/schemas/query_toolkit.schema.json +12 -12
- package/dist/schemas/schema_query.output.json +70 -3
- package/dist/schemas/schema_query.schema.json +18 -3
- package/dist/schemas/wowok_buildin_info.output.json +81 -8
- package/dist/schemas/wowok_buildin_info.schema.json +46 -2
- package/dist/tools/handlers/local.js +20 -5
- package/dist/tools/handlers/onchain.js +594 -6
- package/dist/tools/handlers/project.js +76 -4
- package/dist/tools/handlers/query.js +27 -0
- package/dist/tools/handlers/schema-query.js +43 -1
- package/dist/tools/handlers/task-status.d.ts +170 -0
- package/dist/tools/handlers/task-status.js +55 -0
- package/dist/tools/handlers/wip.js +47 -1
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.js +387 -12
- package/dist/tools/retry.d.ts +8 -0
- package/dist/tools/retry.js +85 -0
- package/dist/tools/wip-deploy-assist.d.ts +28 -0
- package/dist/tools/wip-deploy-assist.js +278 -0
- package/package.json +2 -2
- package/dist/schemas/guard-node-examples.md +0 -199
|
@@ -23,148 +23,178 @@
|
|
|
23
23
|
],
|
|
24
24
|
"definitions": {
|
|
25
25
|
"data": {
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
"object": {
|
|
26
|
+
"anyOf": [
|
|
27
|
+
{
|
|
29
28
|
"type": "object",
|
|
30
29
|
"properties": {
|
|
31
|
-
"
|
|
32
|
-
"type": "
|
|
33
|
-
"
|
|
30
|
+
"object": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"properties": {
|
|
33
|
+
"name": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "The name of the object"
|
|
36
|
+
},
|
|
37
|
+
"tags": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"description": "The tags of the object"
|
|
43
|
+
},
|
|
44
|
+
"onChain": {
|
|
45
|
+
"type": "boolean",
|
|
46
|
+
"description": "CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain."
|
|
47
|
+
},
|
|
48
|
+
"replaceExistName": {
|
|
49
|
+
"type": "boolean",
|
|
50
|
+
"description": "FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior)."
|
|
51
|
+
},
|
|
52
|
+
"type_parameter": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
|
|
55
|
+
"default": "0x2::wow::WOW"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"additionalProperties": false,
|
|
59
|
+
"description": "Create a new named object (with optional tags) and specify a token type for payments (e.g., WOW, USDT, ETH)."
|
|
34
60
|
},
|
|
35
|
-
"
|
|
61
|
+
"revenue": {
|
|
36
62
|
"type": "array",
|
|
37
63
|
"items": {
|
|
38
|
-
"type": "string"
|
|
39
|
-
},
|
|
40
|
-
"description": "The tags of the object"
|
|
41
|
-
},
|
|
42
|
-
"onChain": {
|
|
43
|
-
"type": "boolean",
|
|
44
|
-
"description": "CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain."
|
|
45
|
-
},
|
|
46
|
-
"replaceExistName": {
|
|
47
|
-
"type": "boolean",
|
|
48
|
-
"description": "FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior)."
|
|
49
|
-
},
|
|
50
|
-
"type_parameter": {
|
|
51
|
-
"type": "string",
|
|
52
|
-
"description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
|
|
53
|
-
"default": "0x2::wow::WOW"
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"additionalProperties": false,
|
|
57
|
-
"description": "Create a new named object (with optional tags) and specify a token type for payments (e.g., WOW, USDT, ETH)."
|
|
58
|
-
},
|
|
59
|
-
"revenue": {
|
|
60
|
-
"type": "array",
|
|
61
|
-
"items": {
|
|
62
|
-
"type": "object",
|
|
63
|
-
"properties": {
|
|
64
|
-
"recipient": {
|
|
65
64
|
"type": "object",
|
|
66
65
|
"properties": {
|
|
67
|
-
"
|
|
68
|
-
"type": "string",
|
|
69
|
-
"description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
|
|
70
|
-
},
|
|
71
|
-
"local_mark_first": {
|
|
72
|
-
"type": "boolean",
|
|
73
|
-
"description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks"
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
"additionalProperties": false,
|
|
77
|
-
"description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
|
|
78
|
-
},
|
|
79
|
-
"amount": {
|
|
80
|
-
"anyOf": [
|
|
81
|
-
{
|
|
66
|
+
"recipient": {
|
|
82
67
|
"type": "object",
|
|
83
68
|
"properties": {
|
|
84
|
-
"
|
|
85
|
-
"type":
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
69
|
+
"name_or_address": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
|
|
72
|
+
},
|
|
73
|
+
"local_mark_first": {
|
|
74
|
+
"type": "boolean",
|
|
75
|
+
"description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks"
|
|
90
76
|
}
|
|
91
77
|
},
|
|
92
|
-
"required": [
|
|
93
|
-
"balance"
|
|
94
|
-
],
|
|
95
78
|
"additionalProperties": false,
|
|
96
|
-
"description": "
|
|
79
|
+
"description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
|
|
97
80
|
},
|
|
98
|
-
{
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"
|
|
103
|
-
|
|
81
|
+
"amount": {
|
|
82
|
+
"anyOf": [
|
|
83
|
+
{
|
|
84
|
+
"type": "object",
|
|
85
|
+
"properties": {
|
|
86
|
+
"balance": {
|
|
87
|
+
"type": [
|
|
88
|
+
"number",
|
|
89
|
+
"string"
|
|
90
|
+
],
|
|
91
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"required": [
|
|
95
|
+
"balance"
|
|
96
|
+
],
|
|
97
|
+
"additionalProperties": false,
|
|
98
|
+
"description": "Specify an amount value."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"type": "object",
|
|
102
|
+
"properties": {
|
|
103
|
+
"coin": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"description": "Coin object ID or name(local mark). Use a specified Coin object."
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": [
|
|
109
|
+
"coin"
|
|
110
|
+
],
|
|
111
|
+
"additionalProperties": false
|
|
104
112
|
}
|
|
105
|
-
},
|
|
106
|
-
"required": [
|
|
107
|
-
"coin"
|
|
108
113
|
],
|
|
109
|
-
"
|
|
114
|
+
"description": "Specify the amount to pay from the transaction account, or the Coin ID owned by the transaction account. Used for payment."
|
|
110
115
|
}
|
|
116
|
+
},
|
|
117
|
+
"required": [
|
|
118
|
+
"recipient",
|
|
119
|
+
"amount"
|
|
111
120
|
],
|
|
112
|
-
"
|
|
113
|
-
|
|
121
|
+
"additionalProperties": false,
|
|
122
|
+
"description": "Payment recipient and amount"
|
|
123
|
+
},
|
|
124
|
+
"description": "Array of payment recipients and amounts"
|
|
114
125
|
},
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
126
|
+
"info": {
|
|
127
|
+
"type": "object",
|
|
128
|
+
"properties": {
|
|
129
|
+
"for_object": {
|
|
130
|
+
"type": [
|
|
131
|
+
"string",
|
|
132
|
+
"null"
|
|
133
|
+
],
|
|
134
|
+
"description": "Payment for a specific object ID"
|
|
135
|
+
},
|
|
136
|
+
"for_guard": {
|
|
137
|
+
"type": [
|
|
138
|
+
"string",
|
|
139
|
+
"null"
|
|
140
|
+
],
|
|
141
|
+
"description": "Payment to satisfy verification of a Guard object"
|
|
142
|
+
},
|
|
143
|
+
"remark": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"description": "Payment record remark"
|
|
146
|
+
},
|
|
147
|
+
"index": {
|
|
148
|
+
"type": [
|
|
149
|
+
"number",
|
|
150
|
+
"string"
|
|
151
|
+
],
|
|
152
|
+
"description": "Payment record index"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"remark",
|
|
157
|
+
"index"
|
|
158
|
+
],
|
|
159
|
+
"additionalProperties": false,
|
|
160
|
+
"description": "Payment information"
|
|
161
|
+
}
|
|
121
162
|
},
|
|
122
|
-
"
|
|
163
|
+
"required": [
|
|
164
|
+
"object",
|
|
165
|
+
"revenue",
|
|
166
|
+
"info"
|
|
167
|
+
],
|
|
168
|
+
"additionalProperties": false,
|
|
169
|
+
"description": "Create a new Payment. USAGE: Set 'object' field with {name, type, ...} to create a named Payment. NOTE: 'name' goes INSIDE 'object', NOT at the data root level. Payment is an immutable object - it can only be created, not modified. The 'object' field is CRITICAL and REQUIRED."
|
|
123
170
|
},
|
|
124
|
-
|
|
171
|
+
{
|
|
125
172
|
"type": "object",
|
|
126
173
|
"properties": {
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
|
|
130
|
-
"null"
|
|
131
|
-
],
|
|
132
|
-
"description": "Payment for a specific object ID"
|
|
174
|
+
"object": {
|
|
175
|
+
"$ref": "#/definitions/data/anyOf/0/properties/revenue/items/properties/recipient/properties/name_or_address",
|
|
176
|
+
"description": "CoinWrapper object ID (0x...) or local name to unwrap. Find received CoinWrappers via query_toolkit with query_type='onchain_received'."
|
|
133
177
|
},
|
|
134
|
-
"
|
|
135
|
-
"type":
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
],
|
|
139
|
-
"description": "Payment to satisfy verification of a Guard object"
|
|
178
|
+
"receive": {
|
|
179
|
+
"type": "boolean",
|
|
180
|
+
"const": true,
|
|
181
|
+
"description": "Set to true to activate receive mode. CoinWrapper objects ARE transferred to recipients via transfer::public_transfer (they arrive as owned objects), but they are NOT spendable coins. This mode unwraps a CoinWrapper into actual coins in your wallet via payment::unwrap_to_myself. The caller must be the CoinWrapper's owner (the recipient specified in the Allocation's revenue split)."
|
|
140
182
|
},
|
|
141
|
-
"
|
|
183
|
+
"type_parameter": {
|
|
142
184
|
"type": "string",
|
|
143
|
-
"description": "
|
|
144
|
-
},
|
|
145
|
-
"index": {
|
|
146
|
-
"type": [
|
|
147
|
-
"number",
|
|
148
|
-
"string"
|
|
149
|
-
],
|
|
150
|
-
"description": "Payment record index"
|
|
185
|
+
"description": "Coin type of the CoinWrapper, e.g. '0x2::wow::WOW'. Must match the type used when the Allocation created the Payment."
|
|
151
186
|
}
|
|
152
187
|
},
|
|
153
188
|
"required": [
|
|
154
|
-
"
|
|
155
|
-
"
|
|
189
|
+
"object",
|
|
190
|
+
"receive",
|
|
191
|
+
"type_parameter"
|
|
156
192
|
],
|
|
157
193
|
"additionalProperties": false,
|
|
158
|
-
"description": "Payment
|
|
194
|
+
"description": "Receive mode: unwrap a CoinWrapper to the caller's wallet. Use after Allocation's alloc_by_guard creates a Payment with your address as a revenue recipient. The CoinWrapper holds your share — call this to convert it to actual coins in your wallet."
|
|
159
195
|
}
|
|
160
|
-
},
|
|
161
|
-
"required": [
|
|
162
|
-
"object",
|
|
163
|
-
"revenue",
|
|
164
|
-
"info"
|
|
165
196
|
],
|
|
166
|
-
"
|
|
167
|
-
"description": "On-chain Payment creation. USAGE: Set 'object' field with {name, type, ...} to create a named Payment. NOTE: 'name' goes INSIDE 'object', NOT at the data root level. Payment is an immutable object - it can only be created, not modified. The 'object' field is CRITICAL and REQUIRED."
|
|
197
|
+
"description": "On-chain Payment operations. TWO modes:\n(1) CREATE: Set 'object' with {name, type_parameter, ...}, 'revenue', and 'info' to create a new Payment.\n(2) RECEIVE: Set {object: '<coinwrapper_id_or_name>', receive: true, type_parameter: '0x2::wow::WOW'} to unwrap a CoinWrapper to your wallet.\nThe 'object' field is CRITICAL and REQUIRED in both modes. STRING for receive (CoinWrapper ID/name), OBJECT for create."
|
|
168
198
|
},
|
|
169
199
|
"env": {
|
|
170
200
|
"type": "object",
|
|
@@ -192,7 +222,7 @@
|
|
|
192
222
|
"testnet",
|
|
193
223
|
"mainnet"
|
|
194
224
|
],
|
|
195
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
225
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
196
226
|
},
|
|
197
227
|
"referrer": {
|
|
198
228
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -473,7 +473,7 @@
|
|
|
473
473
|
"number",
|
|
474
474
|
"string"
|
|
475
475
|
],
|
|
476
|
-
"description": "
|
|
476
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
477
477
|
},
|
|
478
478
|
"token_type": {
|
|
479
479
|
"type": "string",
|
|
@@ -520,7 +520,7 @@
|
|
|
520
520
|
"const": "recently"
|
|
521
521
|
}
|
|
522
522
|
],
|
|
523
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the builder(owner)."
|
|
523
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Permission object and send them to the builder(owner).\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
524
524
|
},
|
|
525
525
|
"um": {
|
|
526
526
|
"anyOf": [
|
|
@@ -563,7 +563,7 @@
|
|
|
563
563
|
"testnet",
|
|
564
564
|
"mainnet"
|
|
565
565
|
],
|
|
566
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
566
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
567
567
|
},
|
|
568
568
|
"referrer": {
|
|
569
569
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -575,14 +575,14 @@
|
|
|
575
575
|
"address": {
|
|
576
576
|
"anyOf": [
|
|
577
577
|
{
|
|
578
|
-
"
|
|
579
|
-
"description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '
|
|
578
|
+
"$ref": "#/definitions/data/properties/referrer/anyOf/1/properties/name_or_address",
|
|
579
|
+
"description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
|
|
580
580
|
},
|
|
581
581
|
{
|
|
582
582
|
"$ref": "#/definitions/data/properties/referrer/anyOf/1"
|
|
583
583
|
}
|
|
584
584
|
],
|
|
585
|
-
"description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control"
|
|
585
|
+
"description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
|
|
586
586
|
},
|
|
587
587
|
"name": {
|
|
588
588
|
"$ref": "#/definitions/data/properties/information/anyOf/1/properties/name/items"
|
|
@@ -656,15 +656,15 @@
|
|
|
656
656
|
{
|
|
657
657
|
"type": "array",
|
|
658
658
|
"items": {
|
|
659
|
-
"
|
|
659
|
+
"$ref": "#/definitions/data/properties/referrer/anyOf/1/properties/name_or_address"
|
|
660
660
|
},
|
|
661
|
-
"description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry"
|
|
661
|
+
"description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
|
|
662
662
|
},
|
|
663
663
|
{
|
|
664
664
|
"$ref": "#/definitions/data/properties/information/anyOf/0/properties/data/items/properties/value/anyOf/0/anyOf/5/anyOf/0"
|
|
665
665
|
}
|
|
666
666
|
],
|
|
667
|
-
"description": "Batch account or address lookup. Can be an array of strings (recommended for AI) or full object with explicit control"
|
|
667
|
+
"description": "Batch account or address lookup. Can be an array of strings (recommended for AI) or full object with explicit control. Array form auto-converts to { entities: [...], check_all_founded: true }."
|
|
668
668
|
}
|
|
669
669
|
},
|
|
670
670
|
"required": [
|
|
@@ -757,7 +757,7 @@
|
|
|
757
757
|
"testnet",
|
|
758
758
|
"mainnet"
|
|
759
759
|
],
|
|
760
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
760
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
761
761
|
},
|
|
762
762
|
"referrer": {
|
|
763
763
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
"unhold",
|
|
187
187
|
"adminUnhold"
|
|
188
188
|
],
|
|
189
|
-
"description": "Operation type on the forward: 'next' = advance the forward (accomplish); 'hold' = set hold to block the forward; 'unhold' = self-unhold, release own hold (no 224 permission needed); 'adminUnhold' = force-release hold via 224 permission (PROGRESS_UNHOLD)."
|
|
189
|
+
"description": "Operation type on the forward (CANONICAL form — prefer this): 'next' = advance the forward (accomplish); 'hold' = set hold to block the forward; 'unhold' = self-unhold, release own hold (no 224 permission needed); 'adminUnhold' = force-release hold via 224 permission (PROGRESS_UNHOLD). LEGACY ALIAS: `hold: boolean` is auto-converted to `op` — `hold:true`→`op:'hold'`, `hold:false`→`op:'next'`. New code should use `op` directly."
|
|
190
190
|
},
|
|
191
191
|
"message": {
|
|
192
192
|
"type": "string",
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
"testnet",
|
|
234
234
|
"mainnet"
|
|
235
235
|
],
|
|
236
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
236
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
237
237
|
},
|
|
238
238
|
"referrer": {
|
|
239
239
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -323,7 +323,7 @@
|
|
|
323
323
|
},
|
|
324
324
|
"b_submission": {
|
|
325
325
|
"type": "boolean",
|
|
326
|
-
"description": "Whether user
|
|
326
|
+
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
327
327
|
},
|
|
328
328
|
"value_type": {
|
|
329
329
|
"anyOf": [
|
|
@@ -613,7 +613,7 @@
|
|
|
613
613
|
"description": "vecvecu8"
|
|
614
614
|
}
|
|
615
615
|
],
|
|
616
|
-
"description": "Type of the value"
|
|
616
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
617
617
|
},
|
|
618
618
|
"value": {
|
|
619
619
|
"anyOf": [
|
|
@@ -706,12 +706,12 @@
|
|
|
706
706
|
}
|
|
707
707
|
}
|
|
708
708
|
],
|
|
709
|
-
"description": "The actual value data"
|
|
709
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
710
710
|
},
|
|
711
711
|
"name": {
|
|
712
712
|
"type": "string",
|
|
713
713
|
"default": "",
|
|
714
|
-
"description": "
|
|
714
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
715
715
|
},
|
|
716
716
|
"object_type": {
|
|
717
717
|
"type": "string",
|
|
@@ -749,7 +749,7 @@
|
|
|
749
749
|
"TableItem_AddressMark",
|
|
750
750
|
"TableItem_EntityRegistrar"
|
|
751
751
|
],
|
|
752
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
752
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
753
753
|
}
|
|
754
754
|
},
|
|
755
755
|
"required": [
|
|
@@ -758,7 +758,7 @@
|
|
|
758
758
|
"value_type"
|
|
759
759
|
],
|
|
760
760
|
"additionalProperties": false,
|
|
761
|
-
"description": "Guard table item"
|
|
761
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
762
762
|
},
|
|
763
763
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
764
764
|
}
|
|
@@ -770,7 +770,7 @@
|
|
|
770
770
|
"additionalProperties": false,
|
|
771
771
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
772
772
|
},
|
|
773
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
773
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
774
774
|
}
|
|
775
775
|
},
|
|
776
776
|
"required": [
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
"testnet",
|
|
152
152
|
"mainnet"
|
|
153
153
|
],
|
|
154
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
154
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
155
155
|
},
|
|
156
156
|
"referrer": {
|
|
157
157
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -241,7 +241,7 @@
|
|
|
241
241
|
},
|
|
242
242
|
"b_submission": {
|
|
243
243
|
"type": "boolean",
|
|
244
|
-
"description": "Whether user
|
|
244
|
+
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
245
245
|
},
|
|
246
246
|
"value_type": {
|
|
247
247
|
"anyOf": [
|
|
@@ -531,7 +531,7 @@
|
|
|
531
531
|
"description": "vecvecu8"
|
|
532
532
|
}
|
|
533
533
|
],
|
|
534
|
-
"description": "Type of the value"
|
|
534
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
535
535
|
},
|
|
536
536
|
"value": {
|
|
537
537
|
"anyOf": [
|
|
@@ -624,12 +624,12 @@
|
|
|
624
624
|
}
|
|
625
625
|
}
|
|
626
626
|
],
|
|
627
|
-
"description": "The actual value data"
|
|
627
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
628
628
|
},
|
|
629
629
|
"name": {
|
|
630
630
|
"type": "string",
|
|
631
631
|
"default": "",
|
|
632
|
-
"description": "
|
|
632
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
633
633
|
},
|
|
634
634
|
"object_type": {
|
|
635
635
|
"type": "string",
|
|
@@ -667,7 +667,7 @@
|
|
|
667
667
|
"TableItem_AddressMark",
|
|
668
668
|
"TableItem_EntityRegistrar"
|
|
669
669
|
],
|
|
670
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
670
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
671
671
|
}
|
|
672
672
|
},
|
|
673
673
|
"required": [
|
|
@@ -676,7 +676,7 @@
|
|
|
676
676
|
"value_type"
|
|
677
677
|
],
|
|
678
678
|
"additionalProperties": false,
|
|
679
|
-
"description": "Guard table item"
|
|
679
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
680
680
|
},
|
|
681
681
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
682
682
|
}
|
|
@@ -688,7 +688,7 @@
|
|
|
688
688
|
"additionalProperties": false,
|
|
689
689
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
690
690
|
},
|
|
691
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
691
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
692
692
|
}
|
|
693
693
|
},
|
|
694
694
|
"required": [
|