@wowok/agent-mcp 2.5.5 → 2.6.1
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/config/runtime.js +3 -6
- 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 +407 -0
- package/dist/extensions/registry.d.ts +48 -0
- package/dist/extensions/registry.js +629 -0
- package/dist/extensions/types.d.ts +218 -0
- package/dist/extensions/types.js +1 -0
- package/dist/harness/checkpoint.js +2 -2
- package/dist/knowledge/deployment-scanner.d.ts +3 -0
- package/dist/knowledge/deployment-scanner.js +64 -3
- package/dist/knowledge/flywheel-loop.js +2 -5
- package/dist/knowledge/guard-risk.d.ts +13 -0
- package/dist/knowledge/guard-risk.js +57 -0
- package/dist/knowledge/guard-templates.js +278 -0
- package/dist/knowledge/machine-templates.js +20 -1
- package/dist/knowledge/overrides-loader.js +2 -4
- package/dist/knowledge/progress-ledger.js +3 -0
- package/dist/knowledge/progress-translation.js +5 -1
- package/dist/knowledge/service-confirm.d.ts +14 -5
- package/dist/knowledge/service-confirm.js +116 -8
- package/dist/knowledge/tool-constraints.js +6 -2
- package/dist/loop-engineering/improve.js +2 -4
- package/dist/project/deployment-bridge.d.ts +5 -0
- package/dist/project/deployment-bridge.js +119 -0
- package/dist/project/deployment-doc.d.ts +3 -0
- package/dist/project/deployment-doc.js +72 -10
- package/dist/project/evaluation.d.ts +2 -0
- package/dist/project/evaluation.js +578 -86
- package/dist/project/graph-builder.d.ts +4 -1
- package/dist/project/graph-builder.js +141 -63
- package/dist/project/graph.d.ts +1 -0
- package/dist/project/handlers.d.ts +221 -5
- package/dist/project/handlers.js +933 -14
- package/dist/project/index.js +2 -6
- package/dist/project/project-store.js +2 -5
- 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/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/demand.d.ts +23 -31
- package/dist/schema/call/guard.js +1 -1
- package/dist/schema/call/machine.d.ts +402 -376
- package/dist/schema/call/order.d.ts +149 -228
- package/dist/schema/call/order.js +7 -3
- package/dist/schema/call/payment.d.ts +183 -3
- package/dist/schema/call/payment.js +21 -3
- 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/semantic.d.ts +1 -1
- package/dist/schema/call/semantic.js +30 -1
- package/dist/schema/call/service.d.ts +95 -119
- package/dist/schema/call/service.js +22 -1
- package/dist/schema/common/index.d.ts +11 -2
- package/dist/schema/common/index.js +43 -14
- package/dist/schema/config/index.d.ts +12 -12
- package/dist/schema/local/index.d.ts +140 -143
- package/dist/schema/local/index.js +44 -23
- package/dist/schema/messenger/index.d.ts +290 -62
- package/dist/schema/messenger/index.js +2 -2
- package/dist/schema/operations.d.ts +680 -545
- package/dist/schema/operations.js +22 -0
- package/dist/schema/project/index.d.ts +2064 -84
- package/dist/schema/project/index.js +354 -12
- package/dist/schema/query/index.d.ts +715 -354
- package/dist/schema/query/index.js +164 -31
- package/dist/schema/schema-query/index.d.ts +15 -3
- package/dist/schema/schema-query/index.js +23 -5
- package/dist/schema/trust/index.d.ts +8 -8
- package/dist/schema/utils/node-parser.js +7 -4
- package/dist/schema-query/index.d.ts +7 -1
- package/dist/schema-query/index.js +204 -4
- package/dist/schemas/account_operation.output.json +14 -22
- package/dist/schemas/account_operation.schema.json +11 -25
- 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 +10 -10
- package/dist/schemas/onchain_events.output.json +1 -1
- package/dist/schemas/onchain_operations.schema.json +348 -296
- package/dist/schemas/onchain_operations_allocation.schema.json +34 -25
- package/dist/schemas/onchain_operations_arbitration.schema.json +8 -8
- package/dist/schemas/onchain_operations_contact.schema.json +8 -8
- package/dist/schemas/onchain_operations_demand.schema.json +8 -8
- package/dist/schemas/onchain_operations_gen_passport.schema.json +14 -14
- package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -2
- package/dist/schemas/onchain_operations_guard.schema.json +1 -1
- package/dist/schemas/onchain_operations_machine.schema.json +41 -33
- package/dist/schemas/onchain_operations_order.schema.json +71 -77
- package/dist/schemas/onchain_operations_payment.schema.json +141 -111
- package/dist/schemas/onchain_operations_permission.schema.json +2 -2
- package/dist/schemas/onchain_operations_personal.schema.json +7 -7
- package/dist/schemas/onchain_operations_progress.schema.json +8 -8
- package/dist/schemas/onchain_operations_proof.schema.json +7 -7
- package/dist/schemas/onchain_operations_repository.schema.json +8 -8
- package/dist/schemas/onchain_operations_reward.schema.json +10 -10
- package/dist/schemas/onchain_operations_service.schema.json +46 -35
- package/dist/schemas/onchain_operations_treasury.schema.json +8 -8
- package/dist/schemas/onchain_table_data.output.json +33 -25
- package/dist/schemas/onchain_table_data.schema.json +12 -12
- package/dist/schemas/project_operation.output.json +1352 -20
- package/dist/schemas/project_operation.schema.json +53 -4
- package/dist/schemas/query_toolkit.output.json +111 -82
- package/dist/schemas/query_toolkit.schema.json +9 -13
- package/dist/schemas/schema_query.output.json +7 -3
- package/dist/schemas/schema_query.schema.json +17 -3
- package/dist/telemetry/storage.js +2 -2
- package/dist/tools/handlers/local.js +20 -5
- package/dist/tools/handlers/onchain.js +36 -0
- package/dist/tools/handlers/project.js +72 -1
- package/dist/tools/handlers/query.js +27 -0
- package/dist/tools/handlers/schema-query.js +19 -0
- 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.js +212 -8
- 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
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { readFileSync, existsSync } from "fs";
|
|
2
|
-
import { resolve, join } from "path";
|
|
1
|
+
import { readFileSync, existsSync, writeFileSync, mkdirSync } from "fs";
|
|
2
|
+
import { resolve, join, dirname } from "path";
|
|
3
3
|
import { fileURLToPath } from "url";
|
|
4
4
|
const __filename = fileURLToPath(import.meta.url);
|
|
5
5
|
const __dirname = fileURLToPath(new URL(".", import.meta.url));
|
|
6
6
|
const SCHEMAS_DIR = resolve(__dirname, "../../dist/schemas");
|
|
7
|
+
const GUARD_TEMPLATES_PATH_SCRIPTS = resolve(__dirname, "../../scripts/guard-templates.json");
|
|
8
|
+
const GUARD_TEMPLATES_PATH_DIST = resolve(__dirname, "../../dist/schemas/guard-templates.json");
|
|
9
|
+
const GUARD_TEMPLATES_PATH = existsSync(GUARD_TEMPLATES_PATH_SCRIPTS)
|
|
10
|
+
? GUARD_TEMPLATES_PATH_SCRIPTS
|
|
11
|
+
: GUARD_TEMPLATES_PATH_DIST;
|
|
12
|
+
const WORKSPACE_TMP_DIR = resolve(process.cwd(), ".trae", "tmp");
|
|
7
13
|
export function areSchemasAvailable() {
|
|
8
14
|
return existsSync(SCHEMAS_DIR) && existsSync(join(SCHEMAS_DIR, "index.json"));
|
|
9
15
|
}
|
|
@@ -59,6 +65,78 @@ export function getOutputSchema(name) {
|
|
|
59
65
|
return null;
|
|
60
66
|
}
|
|
61
67
|
}
|
|
68
|
+
export function getGuardTemplates(templateName) {
|
|
69
|
+
try {
|
|
70
|
+
if (!existsSync(GUARD_TEMPLATES_PATH)) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const content = readFileSync(GUARD_TEMPLATES_PATH, "utf-8");
|
|
74
|
+
const catalog = JSON.parse(content);
|
|
75
|
+
if (!templateName) {
|
|
76
|
+
return {
|
|
77
|
+
version: catalog.version,
|
|
78
|
+
description: catalog.description,
|
|
79
|
+
templates: (catalog.templates || []).map((t) => ({
|
|
80
|
+
name: t.name,
|
|
81
|
+
title: t.title,
|
|
82
|
+
description: t.description,
|
|
83
|
+
use_case: t.use_case,
|
|
84
|
+
})),
|
|
85
|
+
query_reference: catalog.query_reference,
|
|
86
|
+
node_return_types: catalog.node_return_types,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const template = (catalog.templates || []).find((t) => t.name === templateName);
|
|
90
|
+
if (!template) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return template;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export function getSchemaField(name, fieldPath) {
|
|
100
|
+
const schema = getSchema(name);
|
|
101
|
+
if (!schema)
|
|
102
|
+
return null;
|
|
103
|
+
const parts = fieldPath.split(".").filter(Boolean);
|
|
104
|
+
let current = schema;
|
|
105
|
+
for (const part of parts) {
|
|
106
|
+
if (!current || typeof current !== "object")
|
|
107
|
+
return null;
|
|
108
|
+
if (current.properties && part in current.properties) {
|
|
109
|
+
current = current.properties[part];
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (current.items && typeof current.items === "object") {
|
|
113
|
+
if (/^\d+$/.test(part)) {
|
|
114
|
+
current = current.items;
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (current.items.properties && part in current.items.properties) {
|
|
118
|
+
current = current.items.properties[part];
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (Array.isArray(current.oneOf) || Array.isArray(current.anyOf)) {
|
|
123
|
+
const variants = current.oneOf ?? current.anyOf;
|
|
124
|
+
for (const v of variants) {
|
|
125
|
+
if (v && typeof v === "object" && v.properties && part in v.properties) {
|
|
126
|
+
current = v.properties[part];
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (part in current) {
|
|
133
|
+
current = current[part];
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return current;
|
|
139
|
+
}
|
|
62
140
|
function resolveSchemaRefs(schema, visited = new Set()) {
|
|
63
141
|
if (!schema || typeof schema !== "object") {
|
|
64
142
|
return schema;
|
|
@@ -124,8 +202,71 @@ export function listOperations() {
|
|
|
124
202
|
return [];
|
|
125
203
|
return (index.operations || []).filter(op => op.name.startsWith("onchain_operations_"));
|
|
126
204
|
}
|
|
205
|
+
function writeResponseToFile(data, preferredPath) {
|
|
206
|
+
try {
|
|
207
|
+
let targetPath;
|
|
208
|
+
if (preferredPath) {
|
|
209
|
+
targetPath = resolve(process.cwd(), preferredPath);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
if (!existsSync(WORKSPACE_TMP_DIR)) {
|
|
213
|
+
mkdirSync(WORKSPACE_TMP_DIR, { recursive: true });
|
|
214
|
+
}
|
|
215
|
+
const timestamp = Date.now();
|
|
216
|
+
targetPath = join(WORKSPACE_TMP_DIR, `schema-${timestamp}.json`);
|
|
217
|
+
}
|
|
218
|
+
const parentDir = dirname(targetPath);
|
|
219
|
+
if (!existsSync(parentDir)) {
|
|
220
|
+
mkdirSync(parentDir, { recursive: true });
|
|
221
|
+
}
|
|
222
|
+
const jsonStr = typeof data === "string" ? data : JSON.stringify(data, null, 2);
|
|
223
|
+
writeFileSync(targetPath, jsonStr, "utf-8");
|
|
224
|
+
return targetPath;
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
127
230
|
export function processSchemaQuery(request) {
|
|
128
|
-
const { action, name, query } = request;
|
|
231
|
+
const { action, name, query, field_path, template, output_file } = request;
|
|
232
|
+
if (action === "get_guard_templates") {
|
|
233
|
+
const templates = getGuardTemplates(template);
|
|
234
|
+
if (!templates) {
|
|
235
|
+
return {
|
|
236
|
+
success: false,
|
|
237
|
+
action,
|
|
238
|
+
data: null,
|
|
239
|
+
message: template
|
|
240
|
+
? `Guard template '${template}' not found. Omit 'template' to list all available templates.`
|
|
241
|
+
: "Guard templates file not found. Ensure scripts/guard-templates.json exists.",
|
|
242
|
+
suggestions: [
|
|
243
|
+
"Omit 'template' to list all available templates.",
|
|
244
|
+
"Available template names: signer_verification, progress_node_check, order_owner_verification, service_belonging_check, reward_not_claimed, combined_reward_guard",
|
|
245
|
+
],
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
if (output_file) {
|
|
249
|
+
const filePath = writeResponseToFile(templates, output_file);
|
|
250
|
+
if (filePath) {
|
|
251
|
+
return {
|
|
252
|
+
success: true,
|
|
253
|
+
action,
|
|
254
|
+
data: null,
|
|
255
|
+
message: `Guard template${template ? ` '${template}'` : "s"} written to file: ${filePath}`,
|
|
256
|
+
output_file_path: filePath,
|
|
257
|
+
suggestions: [`Use Read tool to open ${filePath}`],
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return {
|
|
262
|
+
success: true,
|
|
263
|
+
action,
|
|
264
|
+
data: templates,
|
|
265
|
+
message: template
|
|
266
|
+
? `Retrieved Guard template: ${template}`
|
|
267
|
+
: `Retrieved ${Array.isArray(templates.templates) ? templates.templates.length : 0} Guard templates`,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
129
270
|
if (!areSchemasAvailable()) {
|
|
130
271
|
return {
|
|
131
272
|
success: false,
|
|
@@ -168,6 +309,19 @@ export function processSchemaQuery(request) {
|
|
|
168
309
|
: ["Use 'list' action to see available schemas"],
|
|
169
310
|
};
|
|
170
311
|
}
|
|
312
|
+
if (output_file) {
|
|
313
|
+
const filePath = writeResponseToFile(schema, output_file);
|
|
314
|
+
if (filePath) {
|
|
315
|
+
return {
|
|
316
|
+
success: true,
|
|
317
|
+
action,
|
|
318
|
+
data: null,
|
|
319
|
+
message: `Schema '${name}' written to file: ${filePath}`,
|
|
320
|
+
output_file_path: filePath,
|
|
321
|
+
suggestions: [`Use Read tool to open ${filePath}`],
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
}
|
|
171
325
|
return {
|
|
172
326
|
success: true,
|
|
173
327
|
action,
|
|
@@ -175,6 +329,39 @@ export function processSchemaQuery(request) {
|
|
|
175
329
|
message: `Retrieved schema: ${name}`,
|
|
176
330
|
};
|
|
177
331
|
}
|
|
332
|
+
case "get_field": {
|
|
333
|
+
if (!name || !field_path) {
|
|
334
|
+
return {
|
|
335
|
+
success: false,
|
|
336
|
+
action,
|
|
337
|
+
data: null,
|
|
338
|
+
message: "Both 'name' and 'field_path' are required for 'get_field' action",
|
|
339
|
+
suggestions: [
|
|
340
|
+
"Example: {action: 'get_field', name: 'onchain_operations_machine', field_path: 'data.node'}",
|
|
341
|
+
"Use 'get' action to retrieve the full schema",
|
|
342
|
+
],
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
const fieldSchema = getSchemaField(name, field_path);
|
|
346
|
+
if (!fieldSchema) {
|
|
347
|
+
return {
|
|
348
|
+
success: false,
|
|
349
|
+
action,
|
|
350
|
+
data: null,
|
|
351
|
+
message: `Field path '${field_path}' not found in schema '${name}'`,
|
|
352
|
+
suggestions: [
|
|
353
|
+
"Check the field path (dot-separated, e.g. 'data.node')",
|
|
354
|
+
"Use 'get' action to see the full schema structure",
|
|
355
|
+
],
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
return {
|
|
359
|
+
success: true,
|
|
360
|
+
action,
|
|
361
|
+
data: fieldSchema,
|
|
362
|
+
message: `Retrieved field '${field_path}' from schema '${name}'`,
|
|
363
|
+
};
|
|
364
|
+
}
|
|
178
365
|
case "search": {
|
|
179
366
|
if (!query) {
|
|
180
367
|
return {
|
|
@@ -235,6 +422,19 @@ export function processSchemaQuery(request) {
|
|
|
235
422
|
: ["Use 'list' action to see available tools"],
|
|
236
423
|
};
|
|
237
424
|
}
|
|
425
|
+
if (output_file) {
|
|
426
|
+
const filePath = writeResponseToFile(schema, output_file);
|
|
427
|
+
if (filePath) {
|
|
428
|
+
return {
|
|
429
|
+
success: true,
|
|
430
|
+
action,
|
|
431
|
+
data: null,
|
|
432
|
+
message: `Output schema '${name}' written to file: ${filePath}`,
|
|
433
|
+
output_file_path: filePath,
|
|
434
|
+
suggestions: [`Use Read tool to open ${filePath}`],
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
}
|
|
238
438
|
return {
|
|
239
439
|
success: true,
|
|
240
440
|
action,
|
|
@@ -248,7 +448,7 @@ export function processSchemaQuery(request) {
|
|
|
248
448
|
action,
|
|
249
449
|
data: null,
|
|
250
450
|
message: `Unknown action: ${action}`,
|
|
251
|
-
suggestions: ["Use 'list', 'get', 'search', or '
|
|
451
|
+
suggestions: ["Use 'list', 'get', 'get_field', 'get_output', 'search', 'list_operations', or 'get_guard_templates'"],
|
|
252
452
|
};
|
|
253
453
|
}
|
|
254
454
|
}
|
|
@@ -31,16 +31,9 @@
|
|
|
31
31
|
"type": "string",
|
|
32
32
|
"description": "Account name"
|
|
33
33
|
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
"$ref": "#/definitions/account_operation/properties/result/anyOf/0/properties/data/properties/gen/properties/name"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"type": "null"
|
|
41
|
-
}
|
|
42
|
-
],
|
|
43
|
-
"description": "Messenger name if enabled"
|
|
34
|
+
"messenger": {
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"description": "Messenger enabled flag"
|
|
44
37
|
}
|
|
45
38
|
},
|
|
46
39
|
"required": [
|
|
@@ -1278,7 +1271,7 @@
|
|
|
1278
1271
|
"testnet",
|
|
1279
1272
|
"mainnet"
|
|
1280
1273
|
],
|
|
1281
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
1274
|
+
"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."
|
|
1282
1275
|
}
|
|
1283
1276
|
},
|
|
1284
1277
|
"required": [
|
|
@@ -1322,20 +1315,13 @@
|
|
|
1322
1315
|
"$ref": "#/definitions/account_operation/properties/result/anyOf/0/properties/data/properties/faucet/properties/name_or_address",
|
|
1323
1316
|
"description": "Account name or address"
|
|
1324
1317
|
},
|
|
1325
|
-
"
|
|
1326
|
-
"
|
|
1327
|
-
|
|
1328
|
-
"$ref": "#/definitions/account_operation/properties/result/anyOf/0/properties/data/properties/gen/properties/name"
|
|
1329
|
-
},
|
|
1330
|
-
{
|
|
1331
|
-
"type": "null"
|
|
1332
|
-
}
|
|
1333
|
-
],
|
|
1334
|
-
"description": "Messenger name if enabled, null if disabled"
|
|
1318
|
+
"enabled": {
|
|
1319
|
+
"type": "boolean",
|
|
1320
|
+
"description": "Messenger enabled flag"
|
|
1335
1321
|
}
|
|
1336
1322
|
},
|
|
1337
1323
|
"required": [
|
|
1338
|
-
"
|
|
1324
|
+
"enabled"
|
|
1339
1325
|
],
|
|
1340
1326
|
"additionalProperties": false,
|
|
1341
1327
|
"description": "Result of enabling or disabling messenger for an account"
|
|
@@ -1373,6 +1359,12 @@
|
|
|
1373
1359
|
"permission_denied",
|
|
1374
1360
|
"immutable_violation",
|
|
1375
1361
|
"network_error",
|
|
1362
|
+
"rate_limit",
|
|
1363
|
+
"gas_exceeded",
|
|
1364
|
+
"bcs_error",
|
|
1365
|
+
"signature_error",
|
|
1366
|
+
"config_error",
|
|
1367
|
+
"wip_verification_failed",
|
|
1376
1368
|
"unknown"
|
|
1377
1369
|
],
|
|
1378
1370
|
"description": "Error classification for programmatic recovery"
|
|
@@ -13,22 +13,15 @@
|
|
|
13
13
|
"properties": {
|
|
14
14
|
"name": {
|
|
15
15
|
"type": "string",
|
|
16
|
-
"description": "Account name (max 64 characters). Use empty string '' or omit for the default account."
|
|
16
|
+
"description": "Account name (max 64 characters). Use empty string '' or omit for the default account. Recommended convention: <role>-<number> (e.g. shop-001, user-001, arb-001) for easy filtering and batch operations."
|
|
17
17
|
},
|
|
18
18
|
"replaceExistName": {
|
|
19
19
|
"type": "boolean",
|
|
20
|
-
"description": "If true, existing account with the same name will
|
|
20
|
+
"description": "DISCOURAGED. If true, an existing account with the same name will be SUSPENDED (not just renamed) to free the name for the new account. The old account moves to the Suspended tab and cannot sign transactions until resumed with a new name. FORBIDDEN on the default account (name='' or omitted) — the default account is unique and cannot be replaced; use suspend() explicitly instead. Prefer versioned names (e.g. 'shop_v2') over replaceExistName for production. Default: false (throws AccountNameExist on collision)."
|
|
21
21
|
},
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
"$ref": "#/definitions/account_operation/properties/gen/properties/name"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"type": "null"
|
|
29
|
-
}
|
|
30
|
-
],
|
|
31
|
-
"description": "Messenger name to enable messenger for this account (max 64 characters). If null, disable messenger. Omit to leave messenger unchanged."
|
|
22
|
+
"messenger": {
|
|
23
|
+
"type": "boolean",
|
|
24
|
+
"description": "Enable messenger for this account. true=enable, false=disable, omit=unchanged. Account name is used for messenger identity lookup (no separate messenger name)."
|
|
32
25
|
}
|
|
33
26
|
},
|
|
34
27
|
"additionalProperties": false,
|
|
@@ -147,7 +140,7 @@
|
|
|
147
140
|
"testnet",
|
|
148
141
|
"mainnet"
|
|
149
142
|
],
|
|
150
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
143
|
+
"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."
|
|
151
144
|
}
|
|
152
145
|
},
|
|
153
146
|
"required": [
|
|
@@ -176,7 +169,7 @@
|
|
|
176
169
|
},
|
|
177
170
|
"network": {
|
|
178
171
|
"$ref": "#/definitions/account_operation/properties/transfer/properties/network",
|
|
179
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
172
|
+
"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."
|
|
180
173
|
}
|
|
181
174
|
},
|
|
182
175
|
"required": [
|
|
@@ -230,20 +223,13 @@
|
|
|
230
223
|
"$ref": "#/definitions/account_operation/properties/faucet/properties/name_or_address",
|
|
231
224
|
"description": "Account name or address. Use empty string '' for the default account. Defaults to '' if omitted."
|
|
232
225
|
},
|
|
233
|
-
"
|
|
234
|
-
"
|
|
235
|
-
|
|
236
|
-
"$ref": "#/definitions/account_operation/properties/gen/properties/name"
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
"type": "null"
|
|
240
|
-
}
|
|
241
|
-
],
|
|
242
|
-
"description": "Messenger name to enable messenger for this account (max 64 characters). If null, disable messenger."
|
|
226
|
+
"enabled": {
|
|
227
|
+
"type": "boolean",
|
|
228
|
+
"description": "true to enable messenger, false to disable"
|
|
243
229
|
}
|
|
244
230
|
},
|
|
245
231
|
"required": [
|
|
246
|
-
"
|
|
232
|
+
"enabled"
|
|
247
233
|
],
|
|
248
234
|
"additionalProperties": false,
|
|
249
235
|
"description": "Enable or disable messenger for an account"
|
|
@@ -53,6 +53,12 @@
|
|
|
53
53
|
"permission_denied",
|
|
54
54
|
"immutable_violation",
|
|
55
55
|
"network_error",
|
|
56
|
+
"rate_limit",
|
|
57
|
+
"gas_exceeded",
|
|
58
|
+
"bcs_error",
|
|
59
|
+
"signature_error",
|
|
60
|
+
"config_error",
|
|
61
|
+
"wip_verification_failed",
|
|
56
62
|
"unknown"
|
|
57
63
|
],
|
|
58
64
|
"description": "Error classification for programmatic recovery"
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"testnet",
|
|
82
82
|
"mainnet"
|
|
83
83
|
],
|
|
84
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
84
|
+
"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."
|
|
85
85
|
},
|
|
86
86
|
"referrer": {
|
|
87
87
|
"$ref": "#/definitions/bridge_operation/anyOf/0/properties/env/properties/account",
|