@wowok/agent-mcp 2.6.1 → 2.6.4
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/dist/customer/customer-advice.d.ts +31 -0
- package/dist/customer/customer-advice.js +129 -0
- package/dist/customer/index.d.ts +2 -0
- package/dist/customer/index.js +2 -0
- package/dist/customer/info-puzzle.d.ts +9 -2
- package/dist/customer/info-puzzle.js +34 -7
- package/dist/customer/order-monitor.d.ts +2 -0
- package/dist/customer/order-monitor.js +3 -2
- package/dist/customer/post-purchase.d.ts +2 -0
- package/dist/customer/post-purchase.js +6 -5
- package/dist/customer/preorder-compare.d.ts +24 -0
- package/dist/customer/preorder-compare.js +34 -0
- package/dist/customer/reminder-system.d.ts +2 -0
- package/dist/customer/reminder-system.js +2 -1
- package/dist/customer/risk-assessment.js +30 -7
- package/dist/customer/types.d.ts +7 -0
- package/dist/examples/arbitration-dispute-create.json +41 -0
- package/dist/examples/arbitration-vote-weighted.json +35 -0
- package/dist/examples/arbitration-voting-guard-add.json +38 -0
- package/dist/examples/demand-present-service.json +33 -0
- package/dist/examples/gen-passport-verify-guard.json +48 -0
- package/dist/examples/guard-template-balance-check.json +59 -0
- package/dist/examples/guard-template-time-lock.json +60 -0
- package/dist/examples/insurance-guard-claim-timelock.json +75 -0
- package/dist/examples/insurance-guard-withdraw-allocation.json +96 -0
- package/dist/examples/insurance-machine-create-publish.json +75 -0
- package/dist/examples/insurance-service-allocators-publish.json +56 -0
- package/dist/examples/machine-multisig-threshold.json +86 -0
- package/dist/examples/machine-template-7node-rental.json +119 -0
- package/dist/examples/payment-scenario-bound.json +45 -0
- package/dist/examples/rental-ziroom-machine-create.json +149 -0
- package/dist/examples/rental-ziroom-permission-create.json +42 -0
- package/dist/examples/rental-ziroom-service-create.json +89 -0
- package/dist/examples/retail-adv-guard-customer-win-create.json +80 -0
- package/dist/examples/retail-adv-guard-messenger-proof-create.json +65 -0
- package/dist/examples/retail-adv-guard-reward-timeout-create.json +92 -0
- package/dist/examples/retail-adv-reward-guard-add.json +51 -0
- package/dist/examples/retail-myshop-allocation-activate.json +55 -0
- package/dist/examples/retail-myshop-arbitration-create.json +40 -0
- package/dist/examples/retail-myshop-contact-create.json +43 -0
- package/dist/examples/retail-myshop-order-create.json +56 -0
- package/dist/examples/retail-myshop-progress-operate.json +38 -0
- package/dist/examples/retail-myshop-reward-create.json +35 -0
- package/dist/examples/retail-myshop-service-create.json +88 -0
- package/dist/examples/service-discount-issue.json +46 -0
- package/dist/examples/threebody-guard-create.json +56 -0
- package/dist/examples/threebody-machine-create.json +72 -0
- package/dist/examples/threebody-permission-create.json +38 -0
- package/dist/examples/threebody-service-allocators.json +49 -0
- package/dist/examples/travel-guard-time-lock.json +69 -0
- package/dist/examples/travel-guard-weather-oracle.json +70 -0
- package/dist/examples/travel-machine-create.json +136 -0
- package/dist/examples/travel-repository-create.json +47 -0
- package/dist/examples/travel-service-create.json +102 -0
- package/dist/examples/travel-treasury-create.json +34 -0
- package/dist/examples/treasury-deposit.json +37 -0
- package/dist/examples/treasury-withdraw.json +38 -0
- package/dist/extensions/business-modules.d.ts +49 -0
- package/dist/extensions/business-modules.js +287 -0
- package/dist/extensions/capability-manifest.js +216 -29
- package/dist/extensions/constraint-registry.js +21 -19
- package/dist/extensions/metric-registry.js +14 -14
- package/dist/extensions/mode-evaluator.js +16 -16
- package/dist/extensions/modes.js +141 -49
- package/dist/extensions/registry.d.ts +16 -9
- package/dist/extensions/registry.js +132 -44
- package/dist/extensions/types.d.ts +2 -0
- package/dist/index.js +50 -0
- package/dist/knowledge/deployment-scanner.js +1 -1
- package/dist/knowledge/fund-layer.d.ts +138 -0
- package/dist/knowledge/fund-layer.js +969 -0
- package/dist/knowledge/guard-render.d.ts +57 -0
- package/dist/knowledge/guard-render.js +700 -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.d.ts +10 -0
- package/dist/knowledge/guard-templates.js +50 -0
- package/dist/knowledge/index.d.ts +2 -2
- package/dist/knowledge/index.js +2 -2
- 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-risk.js +4 -1
- package/dist/knowledge/machine-templates.js +4 -4
- package/dist/knowledge/progress-context.js +1 -1
- package/dist/knowledge/progress-ledger.js +3 -3
- package/dist/knowledge/progress-templates.js +1 -1
- package/dist/knowledge/progress-translation.js +1 -1
- 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/safety-rules.d.ts +83 -1
- package/dist/knowledge/safety-rules.js +166 -2
- package/dist/knowledge/scenario-modes.d.ts +1 -1
- package/dist/knowledge/scenario-modes.js +13 -11
- package/dist/knowledge/service-confirm.d.ts +1 -1
- package/dist/knowledge/service-confirm.js +3 -3
- 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/template-registry.d.ts +48 -0
- package/dist/knowledge/template-registry.js +341 -0
- package/dist/knowledge/tool-constraints.js +6 -6
- package/dist/knowledge/tools-reference.js +11 -8
- package/dist/participation/merchant-interest.d.ts +32 -0
- package/dist/participation/merchant-interest.js +100 -0
- package/dist/participation/radar-core.d.ts +104 -0
- package/dist/participation/radar-core.js +269 -0
- package/dist/project/context-assembly.js +8 -0
- package/dist/project/deployment-bridge.js +6 -5
- package/dist/project/deployment-doc.js +5 -5
- package/dist/project/edit-planner.d.ts +123 -0
- package/dist/project/edit-planner.js +1342 -0
- package/dist/project/evaluation.d.ts +36 -0
- package/dist/project/evaluation.js +734 -68
- package/dist/project/game-theory.d.ts +43 -0
- package/dist/project/game-theory.js +177 -0
- package/dist/project/graph-builder.js +7 -1
- package/dist/project/handlers.d.ts +137 -2
- package/dist/project/handlers.js +423 -51
- package/dist/project/intent-analyzer.d.ts +71 -0
- package/dist/project/intent-analyzer.js +149 -0
- package/dist/project/machine-nodes.d.ts +2 -0
- package/dist/project/machine-nodes.js +36 -0
- package/dist/project/merchant-guide.d.ts +165 -0
- package/dist/project/merchant-guide.js +264 -0
- package/dist/project/mode-actions.d.ts +199 -0
- package/dist/project/mode-actions.js +309 -0
- package/dist/project/participation-radar.d.ts +18 -0
- package/dist/project/participation-radar.js +428 -0
- package/dist/project/pipeline-actions.d.ts +101 -0
- package/dist/project/pipeline-actions.js +109 -0
- package/dist/project/semantic-graph.d.ts +95 -0
- package/dist/project/semantic-graph.js +245 -0
- package/dist/project/stage-gate.js +4 -4
- package/dist/schema/call/allocation.d.ts +11 -11
- package/dist/schema/call/allocation.js +13 -3
- package/dist/schema/call/arbitration.d.ts +21 -21
- package/dist/schema/call/arbitration.js +30 -9
- package/dist/schema/call/base.d.ts +2 -2
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +127 -127
- package/dist/schema/call/bridge.js +12 -12
- package/dist/schema/call/contact.d.ts +3 -3
- package/dist/schema/call/contact.js +2 -2
- package/dist/schema/call/demand.d.ts +3 -3
- package/dist/schema/call/demand.js +2 -2
- package/dist/schema/call/guard.d.ts +11 -11
- package/dist/schema/call/guard.js +2 -2
- package/dist/schema/call/machine.d.ts +2072 -679
- package/dist/schema/call/machine.js +51 -5
- package/dist/schema/call/order.d.ts +7 -7
- package/dist/schema/call/order.js +3 -6
- package/dist/schema/call/payment.d.ts +3 -3
- package/dist/schema/call/permission.d.ts +3 -3
- package/dist/schema/call/permission.js +2 -2
- package/dist/schema/call/personal.d.ts +337 -3
- package/dist/schema/call/personal.js +10 -0
- package/dist/schema/call/progress.d.ts +177 -9
- package/dist/schema/call/progress.js +7 -3
- package/dist/schema/call/proof.d.ts +6 -6
- package/dist/schema/call/repository.d.ts +3 -3
- package/dist/schema/call/repository.js +2 -2
- package/dist/schema/call/reward.d.ts +57 -57
- package/dist/schema/call/reward.js +3 -3
- package/dist/schema/call/semantic.js +48 -2
- package/dist/schema/call/service.d.ts +285 -113
- package/dist/schema/call/service.js +92 -28
- package/dist/schema/call/treasury.d.ts +57 -57
- package/dist/schema/call/treasury.js +3 -3
- package/dist/schema/common/index.d.ts +2 -0
- package/dist/schema/common/index.js +46 -10
- package/dist/schema/local/index.js +5 -1
- package/dist/schema/messenger/index.js +4 -1
- package/dist/schema/operations.d.ts +1318 -317
- package/dist/schema/operations.js +76 -7
- package/dist/schema/project/index.d.ts +5662 -164
- package/dist/schema/project/index.js +1136 -5
- package/dist/schema/query/index.d.ts +580 -19
- package/dist/schema/query/index.js +88 -36
- package/dist/schema/schema-query/index.d.ts +59 -3
- package/dist/schema/schema-query/index.js +45 -6
- package/dist/schema/trust/index.d.ts +1012 -6
- package/dist/schema/trust/index.js +212 -11
- package/dist/schema/utils/node-parser.js +13 -0
- 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 +77 -0
- package/dist/schema-query/index.d.ts +17 -1
- package/dist/schema-query/index.js +359 -3
- package/dist/schemas/account_operation.schema.json +1 -1
- package/dist/schemas/bridge_operation.schema.json +14 -7
- package/dist/schemas/guard2file.schema.json +2 -0
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/machineNode2file.schema.json +2 -0
- package/dist/schemas/messenger_operation.schema.json +1 -1
- 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 +255 -65
- package/dist/schemas/onchain_operations_allocation.schema.json +7 -6
- package/dist/schemas/onchain_operations_arbitration.schema.json +14 -10
- package/dist/schemas/onchain_operations_contact.schema.json +4 -3
- package/dist/schemas/onchain_operations_demand.schema.json +4 -3
- package/dist/schemas/onchain_operations_gen_passport.schema.json +4 -2
- package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -0
- package/dist/schemas/onchain_operations_guard.schema.json +579 -1
- package/dist/schemas/onchain_operations_machine.schema.json +5 -4
- package/dist/schemas/onchain_operations_order.schema.json +7 -6
- package/dist/schemas/onchain_operations_payment.schema.json +2 -1
- package/dist/schemas/onchain_operations_permission.schema.json +3 -2
- package/dist/schemas/onchain_operations_personal.schema.json +37 -0
- package/dist/schemas/onchain_operations_progress.schema.json +91 -4
- package/dist/schemas/onchain_operations_proof.schema.json +2 -1
- package/dist/schemas/onchain_operations_repository.schema.json +4 -3
- package/dist/schemas/onchain_operations_reward.schema.json +7 -6
- package/dist/schemas/onchain_operations_service.schema.json +80 -19
- package/dist/schemas/onchain_operations_treasury.schema.json +5 -4
- package/dist/schemas/onchain_table_data.output.json +1 -1
- package/dist/schemas/onchain_table_data.schema.json +10 -9
- package/dist/schemas/project_operation.output.json +3318 -57
- package/dist/schemas/project_operation.schema.json +728 -4
- package/dist/schemas/query_toolkit.output.json +16 -16
- package/dist/schemas/query_toolkit.schema.json +40 -3
- package/dist/schemas/schema_query.output.json +65 -2
- package/dist/schemas/schema_query.schema.json +31 -5
- package/dist/schemas/trust_score.output.json +392 -1
- package/dist/schemas/trust_score.schema.json +275 -1
- package/dist/schemas/wowok_buildin_info.output.json +81 -8
- package/dist/schemas/wowok_buildin_info.schema.json +46 -2
- package/dist/tools/handlers/onchain.js +636 -6
- package/dist/tools/handlers/project.js +71 -2
- package/dist/tools/handlers/query.js +117 -2
- package/dist/tools/handlers/schema-query.js +65 -1
- package/dist/tools/handlers/trust.js +192 -6
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.js +229 -15
- package/dist/tools/wrap.js +194 -15
- package/package.json +2 -2
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"data": {
|
|
12
12
|
"type": "object",
|
|
13
|
-
"description": "On-chain Guard creation. IMPORTANT: All defined data (include all submitted data) must be defined in the 'table' field. USAGE: Set 'namedNew' field with {name, tags?, onChain?} to name the new Guard. The Guard is immutable once created. Define the validation logic in 'root' field. When root.type='file', the file can contain all Guard fields, and any fields defined in the schema will OVERRIDE the file content.",
|
|
13
|
+
"description": "On-chain Guard creation. IMPORTANT: All defined data (include all submitted data) must be defined in the 'table' field. USAGE: Set 'namedNew' field with {name, tags?, onChain?} to name the new Guard (you may also use 'object' as an alias for 'namedNew' — the MCP preprocess will convert it automatically). The Guard is immutable once created. Define the validation logic in 'root' field. When root.type='file', the file can contain all Guard fields, and any fields defined in the schema will OVERRIDE the file content.",
|
|
14
14
|
"properties": {
|
|
15
15
|
"namedNew": {
|
|
16
16
|
"$ref": "#/definitions/guard_namedNew",
|
|
@@ -83,6 +83,583 @@
|
|
|
83
83
|
"data"
|
|
84
84
|
],
|
|
85
85
|
"definitions": {
|
|
86
|
+
"guard_namedNew": {
|
|
87
|
+
"anyOf": [
|
|
88
|
+
{
|
|
89
|
+
"not": {}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"type": "object",
|
|
93
|
+
"properties": {
|
|
94
|
+
"name": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "The name of the object"
|
|
97
|
+
},
|
|
98
|
+
"tags": {
|
|
99
|
+
"type": "array",
|
|
100
|
+
"items": {
|
|
101
|
+
"type": "string"
|
|
102
|
+
},
|
|
103
|
+
"description": "The tags of the object"
|
|
104
|
+
},
|
|
105
|
+
"onChain": {
|
|
106
|
+
"type": "boolean",
|
|
107
|
+
"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."
|
|
108
|
+
},
|
|
109
|
+
"replaceExistName": {
|
|
110
|
+
"type": "boolean",
|
|
111
|
+
"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)."
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"additionalProperties": false,
|
|
115
|
+
"description": "Assign a name and optional tags to a new object. By default, names are stored LOCALLY (private) on your device. Set 'onChain: true' to create a PUBLIC on-chain identity visible to everyone. IMPORTANT: If the requested name is already taken, the operation will FAIL by default. Only set 'replaceExistName: true' when the user EXPLICITLY demands to forcefully claim the name."
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"description": "Name and optional tags for the new Guard object. Set 'onChain: true' to create a public on-chain identity. When using root.type='file', this field OVERRIDES namedNew in the file. CIRCULAR DEPENDENCY (DOC-01): When a Guard queries a Service that hasn't been created yet, use a LocalMark NAME (not address) in the query table — the name is resolved to an address at transaction build time. Workflow: (1) Create Service (Phase 1, no publish) → (2) Create Guard referencing Service by name → (3) Update Service.buy_guard = Guard address → (4) Publish Service."
|
|
119
|
+
},
|
|
120
|
+
"guard_description": {
|
|
121
|
+
"anyOf": [
|
|
122
|
+
{
|
|
123
|
+
"not": {}
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"type": "string",
|
|
127
|
+
"description": "Description string (max 4000 bcs characters)"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"description": "Guard description. When using root.type='file', this field OVERRIDES description in the file."
|
|
131
|
+
},
|
|
132
|
+
"guard_table": {
|
|
133
|
+
"anyOf": [
|
|
134
|
+
{
|
|
135
|
+
"not": {}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"type": "array",
|
|
139
|
+
"items": {
|
|
140
|
+
"type": "object",
|
|
141
|
+
"properties": {
|
|
142
|
+
"identifier": {
|
|
143
|
+
"type": "integer",
|
|
144
|
+
"minimum": 0,
|
|
145
|
+
"maximum": 255,
|
|
146
|
+
"description": "Identifier (0-255) for data lookup in Guard table."
|
|
147
|
+
},
|
|
148
|
+
"b_submission": {
|
|
149
|
+
"type": "boolean",
|
|
150
|
+
"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."
|
|
151
|
+
},
|
|
152
|
+
"value_type": {
|
|
153
|
+
"anyOf": [
|
|
154
|
+
{
|
|
155
|
+
"type": "number",
|
|
156
|
+
"const": 0,
|
|
157
|
+
"description": "Bool (0)"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"type": "number",
|
|
161
|
+
"const": 1,
|
|
162
|
+
"description": "Address (1)"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"type": "number",
|
|
166
|
+
"const": 2,
|
|
167
|
+
"description": "String (2)"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"type": "number",
|
|
171
|
+
"const": 3,
|
|
172
|
+
"description": "U8 (3)"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"type": "number",
|
|
176
|
+
"const": 4,
|
|
177
|
+
"description": "U16 (4)"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"type": "number",
|
|
181
|
+
"const": 5,
|
|
182
|
+
"description": "U32 (5)"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"type": "number",
|
|
186
|
+
"const": 6,
|
|
187
|
+
"description": "U64 (6)"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"type": "number",
|
|
191
|
+
"const": 7,
|
|
192
|
+
"description": "U128 (7)"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "number",
|
|
196
|
+
"const": 8,
|
|
197
|
+
"description": "U256 (8)"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"type": "number",
|
|
201
|
+
"const": 9,
|
|
202
|
+
"description": "VecBool (9)"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"type": "number",
|
|
206
|
+
"const": 10,
|
|
207
|
+
"description": "VecAddress (10)"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"type": "number",
|
|
211
|
+
"const": 11,
|
|
212
|
+
"description": "VecString (11)"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"type": "number",
|
|
216
|
+
"const": 12,
|
|
217
|
+
"description": "VecU8 (12)"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"type": "number",
|
|
221
|
+
"const": 13,
|
|
222
|
+
"description": "VecU16 (13)"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"type": "number",
|
|
226
|
+
"const": 14,
|
|
227
|
+
"description": "VecU32 (14)"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"type": "number",
|
|
231
|
+
"const": 15,
|
|
232
|
+
"description": "VecU64 (15)"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"type": "number",
|
|
236
|
+
"const": 16,
|
|
237
|
+
"description": "VecU128 (16)"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"type": "number",
|
|
241
|
+
"const": 17,
|
|
242
|
+
"description": "VecU256 (17)"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"type": "number",
|
|
246
|
+
"const": 18,
|
|
247
|
+
"description": "VecVecU8 (18)"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"type": "string",
|
|
251
|
+
"const": "Bool",
|
|
252
|
+
"description": "Bool"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"type": "string",
|
|
256
|
+
"const": "Address",
|
|
257
|
+
"description": "Address"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"type": "string",
|
|
261
|
+
"const": "String",
|
|
262
|
+
"description": "String"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"type": "string",
|
|
266
|
+
"const": "U8",
|
|
267
|
+
"description": "U8"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"type": "string",
|
|
271
|
+
"const": "U16",
|
|
272
|
+
"description": "U16"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"type": "string",
|
|
276
|
+
"const": "U32",
|
|
277
|
+
"description": "U32"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"type": "string",
|
|
281
|
+
"const": "U64",
|
|
282
|
+
"description": "U64"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"type": "string",
|
|
286
|
+
"const": "U128",
|
|
287
|
+
"description": "U128"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"type": "string",
|
|
291
|
+
"const": "U256",
|
|
292
|
+
"description": "U256"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"type": "string",
|
|
296
|
+
"const": "VecBool",
|
|
297
|
+
"description": "VecBool"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"type": "string",
|
|
301
|
+
"const": "VecAddress",
|
|
302
|
+
"description": "VecAddress"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"type": "string",
|
|
306
|
+
"const": "VecString",
|
|
307
|
+
"description": "VecString"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"type": "string",
|
|
311
|
+
"const": "VecU8",
|
|
312
|
+
"description": "VecU8"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"type": "string",
|
|
316
|
+
"const": "VecU16",
|
|
317
|
+
"description": "VecU16"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"type": "string",
|
|
321
|
+
"const": "VecU32",
|
|
322
|
+
"description": "VecU32"
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"type": "string",
|
|
326
|
+
"const": "VecU64",
|
|
327
|
+
"description": "VecU64"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"type": "string",
|
|
331
|
+
"const": "VecU128",
|
|
332
|
+
"description": "VecU128"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"type": "string",
|
|
336
|
+
"const": "VecU256",
|
|
337
|
+
"description": "VecU256"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"type": "string",
|
|
341
|
+
"const": "VecVecU8",
|
|
342
|
+
"description": "VecVecU8"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"type": "string",
|
|
346
|
+
"const": "bool",
|
|
347
|
+
"description": "bool"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"type": "string",
|
|
351
|
+
"const": "address",
|
|
352
|
+
"description": "address"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"type": "string",
|
|
356
|
+
"const": "string",
|
|
357
|
+
"description": "string"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"type": "string",
|
|
361
|
+
"const": "u8",
|
|
362
|
+
"description": "u8"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"type": "string",
|
|
366
|
+
"const": "u16",
|
|
367
|
+
"description": "u16"
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"type": "string",
|
|
371
|
+
"const": "u32",
|
|
372
|
+
"description": "u32"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"type": "string",
|
|
376
|
+
"const": "u64",
|
|
377
|
+
"description": "u64"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"type": "string",
|
|
381
|
+
"const": "u128",
|
|
382
|
+
"description": "u128"
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"type": "string",
|
|
386
|
+
"const": "u256",
|
|
387
|
+
"description": "u256"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"type": "string",
|
|
391
|
+
"const": "vecbool",
|
|
392
|
+
"description": "vecbool"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"type": "string",
|
|
396
|
+
"const": "vecaddress",
|
|
397
|
+
"description": "vecaddress"
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"type": "string",
|
|
401
|
+
"const": "vecstring",
|
|
402
|
+
"description": "vecstring"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"type": "string",
|
|
406
|
+
"const": "vecu8",
|
|
407
|
+
"description": "vecu8"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"type": "string",
|
|
411
|
+
"const": "vecu16",
|
|
412
|
+
"description": "vecu16"
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"type": "string",
|
|
416
|
+
"const": "vecu32",
|
|
417
|
+
"description": "vecu32"
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"type": "string",
|
|
421
|
+
"const": "vecu64",
|
|
422
|
+
"description": "vecu64"
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"type": "string",
|
|
426
|
+
"const": "vecu128",
|
|
427
|
+
"description": "vecu128"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"type": "string",
|
|
431
|
+
"const": "vecu256",
|
|
432
|
+
"description": "vecu256"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"type": "string",
|
|
436
|
+
"const": "vecvecu8",
|
|
437
|
+
"description": "vecvecu8"
|
|
438
|
+
}
|
|
439
|
+
],
|
|
440
|
+
"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."
|
|
441
|
+
},
|
|
442
|
+
"value": {
|
|
443
|
+
"anyOf": [
|
|
444
|
+
{
|
|
445
|
+
"type": "boolean"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"anyOf": [
|
|
449
|
+
{
|
|
450
|
+
"type": "object",
|
|
451
|
+
"properties": {
|
|
452
|
+
"name_or_address": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"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)."
|
|
455
|
+
},
|
|
456
|
+
"local_mark_first": {
|
|
457
|
+
"type": "boolean",
|
|
458
|
+
"description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks"
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
"additionalProperties": false,
|
|
462
|
+
"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."
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"type": "string"
|
|
466
|
+
}
|
|
467
|
+
]
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"type": "string"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"type": "number"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"type": "array",
|
|
477
|
+
"items": {
|
|
478
|
+
"type": "boolean"
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"anyOf": [
|
|
483
|
+
{
|
|
484
|
+
"type": "object",
|
|
485
|
+
"properties": {
|
|
486
|
+
"entities": {
|
|
487
|
+
"type": "array",
|
|
488
|
+
"items": {
|
|
489
|
+
"$ref": "#/definitions/guard_table/anyOf/1/items/properties/value/anyOf/1/anyOf/0"
|
|
490
|
+
}
|
|
491
|
+
},
|
|
492
|
+
"check_all_founded": {
|
|
493
|
+
"type": "boolean",
|
|
494
|
+
"description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"required": [
|
|
498
|
+
"entities"
|
|
499
|
+
],
|
|
500
|
+
"additionalProperties": false,
|
|
501
|
+
"description": "Used to batch find account or object IDs by name"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"type": "array",
|
|
505
|
+
"items": {
|
|
506
|
+
"type": "string"
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
]
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"type": "array",
|
|
513
|
+
"items": {
|
|
514
|
+
"type": "string"
|
|
515
|
+
}
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"type": "array",
|
|
519
|
+
"items": {
|
|
520
|
+
"type": "number"
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"type": "array",
|
|
525
|
+
"items": {
|
|
526
|
+
"type": "array",
|
|
527
|
+
"items": {
|
|
528
|
+
"type": "number"
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
],
|
|
533
|
+
"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)."
|
|
534
|
+
},
|
|
535
|
+
"name": {
|
|
536
|
+
"type": "string",
|
|
537
|
+
"default": "",
|
|
538
|
+
"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."
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
"required": [
|
|
542
|
+
"identifier",
|
|
543
|
+
"b_submission",
|
|
544
|
+
"value_type"
|
|
545
|
+
],
|
|
546
|
+
"additionalProperties": false,
|
|
547
|
+
"description": "Guard table item (INPUT/CREATION form). DO NOT include `object_type` field — it is query-output only and will be rejected here."
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
],
|
|
551
|
+
"description": "Data table of the Guard object. When using root.type='file', this field OVERRIDES table in the file."
|
|
552
|
+
},
|
|
553
|
+
"guard_rely": {
|
|
554
|
+
"anyOf": [
|
|
555
|
+
{
|
|
556
|
+
"not": {}
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"type": "object",
|
|
560
|
+
"properties": {
|
|
561
|
+
"guards": {
|
|
562
|
+
"type": "array",
|
|
563
|
+
"items": {
|
|
564
|
+
"type": "string",
|
|
565
|
+
"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)."
|
|
566
|
+
},
|
|
567
|
+
"description": "List of dependent Guard object IDs or names."
|
|
568
|
+
},
|
|
569
|
+
"logic_or": {
|
|
570
|
+
"type": "boolean",
|
|
571
|
+
"description": "Whether to use logical OR operator."
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
"required": [
|
|
575
|
+
"guards"
|
|
576
|
+
],
|
|
577
|
+
"additionalProperties": false
|
|
578
|
+
}
|
|
579
|
+
],
|
|
580
|
+
"description": "All Guard objects that the new Guard object depends on. If logic_or is true, the execution result of the new Guard object is the logical OR of the execution results of all dependent Guard objects; otherwise, it is logical AND. When using root.type='file', this field OVERRIDES rely in the file."
|
|
581
|
+
},
|
|
582
|
+
"guard_binding_hint": {
|
|
583
|
+
"anyOf": [
|
|
584
|
+
{
|
|
585
|
+
"not": {}
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"type": "object",
|
|
589
|
+
"properties": {
|
|
590
|
+
"action": {
|
|
591
|
+
"type": "string",
|
|
592
|
+
"enum": [
|
|
593
|
+
"buy",
|
|
594
|
+
"forward",
|
|
595
|
+
"allocate",
|
|
596
|
+
"claim_reward",
|
|
597
|
+
"vote",
|
|
598
|
+
"dispute",
|
|
599
|
+
"write_repository",
|
|
600
|
+
"submit_progress",
|
|
601
|
+
"gen_passport",
|
|
602
|
+
"custom"
|
|
603
|
+
],
|
|
604
|
+
"description": "Protected action type. Example: 'buy' for Service buy_guard, 'forward' for Machine Forward.guard."
|
|
605
|
+
},
|
|
606
|
+
"host_object": {
|
|
607
|
+
"type": "string",
|
|
608
|
+
"enum": [
|
|
609
|
+
"Service",
|
|
610
|
+
"Machine",
|
|
611
|
+
"Arbitration",
|
|
612
|
+
"Reward",
|
|
613
|
+
"Repository",
|
|
614
|
+
"Progress",
|
|
615
|
+
"Demand",
|
|
616
|
+
"Standalone"
|
|
617
|
+
],
|
|
618
|
+
"description": "Host object type. Example: 'Service', 'Machine'."
|
|
619
|
+
},
|
|
620
|
+
"binding_field": {
|
|
621
|
+
"type": "string",
|
|
622
|
+
"enum": [
|
|
623
|
+
"buy_guard",
|
|
624
|
+
"order_allocators",
|
|
625
|
+
"Forward.guard",
|
|
626
|
+
"submission",
|
|
627
|
+
"guard",
|
|
628
|
+
"write_guard",
|
|
629
|
+
"usage_guard",
|
|
630
|
+
"voting_guard",
|
|
631
|
+
"ServiceGuard",
|
|
632
|
+
"none"
|
|
633
|
+
],
|
|
634
|
+
"description": "Binding field. Example: 'buy_guard', 'Forward.guard'."
|
|
635
|
+
},
|
|
636
|
+
"rule_sentence": {
|
|
637
|
+
"type": "string",
|
|
638
|
+
"description": "One-sentence description of the validation rule (human-readable). Example: 'Only the author can purchase this service'."
|
|
639
|
+
},
|
|
640
|
+
"failure_conditions": {
|
|
641
|
+
"type": "array",
|
|
642
|
+
"items": {
|
|
643
|
+
"type": "string"
|
|
644
|
+
},
|
|
645
|
+
"description": "List of conditions under which the Guard should FAIL. Example: ['Signer is not in allowlist','Order is already completed']."
|
|
646
|
+
},
|
|
647
|
+
"circular_reference": {
|
|
648
|
+
"type": "boolean",
|
|
649
|
+
"description": "Whether the Guard references the Host Object itself (circular reference pattern). true=Guard queries the Host Object it binds to."
|
|
650
|
+
}
|
|
651
|
+
},
|
|
652
|
+
"required": [
|
|
653
|
+
"action",
|
|
654
|
+
"host_object",
|
|
655
|
+
"binding_field"
|
|
656
|
+
],
|
|
657
|
+
"additionalProperties": false,
|
|
658
|
+
"description": "Optional semantic hint for Guard capability system. Provides intent + binding context so the MCP server can derive GuardPuzzle, run risk assessment, and generate confirmation text. Strongly recommended: fill this field to enable puzzle_status, matched_scene, suggested_patterns, confirmation_text, and pending_questions in the response guard_advice."
|
|
659
|
+
}
|
|
660
|
+
],
|
|
661
|
+
"description": "Phase 5 Guard capability hint. Provides semantic context (action + host_object + binding_field + optional rule/failure_conditions) for puzzle derivation. When provided, the response will include complete guard_advice (puzzle_status, matched_scene, suggested_patterns, confirmation_text, pending_questions). When absent, puzzle_status intent/binding dimensions are marked incomplete."
|
|
662
|
+
},
|
|
86
663
|
"env": {
|
|
87
664
|
"type": "object",
|
|
88
665
|
"properties": {
|
|
@@ -136,6 +713,7 @@
|
|
|
136
713
|
},
|
|
137
714
|
"schema_strict_mode": {
|
|
138
715
|
"type": "boolean",
|
|
716
|
+
"default": false,
|
|
139
717
|
"description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
|
|
140
718
|
},
|
|
141
719
|
"dry_run": {
|
|
@@ -397,7 +397,7 @@
|
|
|
397
397
|
"additionalProperties": false,
|
|
398
398
|
"description": "Forward in Machine object"
|
|
399
399
|
},
|
|
400
|
-
"description": "Forward list — operations to ENTER THIS NODE from prev_node. Example: pair {prev_node:'A', forwards:[{name:'Go'}]} means 'use Go to advance FROM A TO THIS NODE'. For initial node (prev_node=''), forwards are operations to enter this node from the start state. WARNING: forwards belong to the DESTINATION node's pair, NOT the source node. Placing a forward on the wrong pair will cause Progress to get stuck."
|
|
400
|
+
"description": "Forward list — operations to ENTER THIS NODE from prev_node. SEMANTIC CLARIFICATION: forwards describe INCOMING transitions (how to ARRIVE at this node), NOT outgoing transitions. Think of each forward as an 'entry door' to this node. Example: pair {prev_node:'A', forwards:[{name:'Go'}]} means 'use Go to advance FROM A TO THIS NODE'. For initial node (prev_node=''), forwards are operations to enter this node from the start state. DIAGRAM: A --[Go]--> B means the pair belongs to node B (destination), with prev_node='A'. WARNING: forwards belong to the DESTINATION node's pair, NOT the source node. Placing a forward on the wrong pair will cause Progress to get stuck."
|
|
401
401
|
}
|
|
402
402
|
},
|
|
403
403
|
"required": [
|
|
@@ -746,7 +746,7 @@
|
|
|
746
746
|
"number",
|
|
747
747
|
"string"
|
|
748
748
|
],
|
|
749
|
-
"description": "A coin/balance amount
|
|
749
|
+
"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."
|
|
750
750
|
},
|
|
751
751
|
"token_type": {
|
|
752
752
|
"type": "string",
|
|
@@ -793,7 +793,7 @@
|
|
|
793
793
|
"const": "recently"
|
|
794
794
|
}
|
|
795
795
|
],
|
|
796
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
796
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Machine object and send them to the owner of its Permission object.\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."
|
|
797
797
|
},
|
|
798
798
|
"um": {
|
|
799
799
|
"anyOf": [
|
|
@@ -866,6 +866,7 @@
|
|
|
866
866
|
},
|
|
867
867
|
"schema_strict_mode": {
|
|
868
868
|
"type": "boolean",
|
|
869
|
+
"default": false,
|
|
869
870
|
"description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
|
|
870
871
|
},
|
|
871
872
|
"dry_run": {
|
|
@@ -929,7 +930,7 @@
|
|
|
929
930
|
},
|
|
930
931
|
"b_submission": {
|
|
931
932
|
"type": "boolean",
|
|
932
|
-
"description": "Whether user
|
|
933
|
+
"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."
|
|
933
934
|
},
|
|
934
935
|
"value_type": {
|
|
935
936
|
"anyOf": [
|