@wowok/agent-mcp 2.6.0 → 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.
Files changed (133) hide show
  1. package/README.md +5 -3
  2. package/dist/extensions/capability-manifest.d.ts +125 -0
  3. package/dist/extensions/capability-manifest.js +594 -0
  4. package/dist/extensions/constraint-registry.d.ts +24 -0
  5. package/dist/extensions/constraint-registry.js +196 -0
  6. package/dist/extensions/index.d.ts +12 -0
  7. package/dist/extensions/index.js +6 -0
  8. package/dist/extensions/metric-registry.d.ts +26 -0
  9. package/dist/extensions/metric-registry.js +257 -0
  10. package/dist/extensions/mode-evaluator.d.ts +15 -0
  11. package/dist/extensions/mode-evaluator.js +170 -0
  12. package/dist/extensions/modes.d.ts +2 -0
  13. package/dist/extensions/modes.js +407 -0
  14. package/dist/extensions/registry.d.ts +48 -0
  15. package/dist/extensions/registry.js +629 -0
  16. package/dist/extensions/types.d.ts +218 -0
  17. package/dist/extensions/types.js +1 -0
  18. package/dist/knowledge/deployment-scanner.d.ts +3 -0
  19. package/dist/knowledge/deployment-scanner.js +64 -3
  20. package/dist/knowledge/guard-risk.d.ts +13 -0
  21. package/dist/knowledge/guard-risk.js +57 -0
  22. package/dist/knowledge/guard-templates.js +278 -0
  23. package/dist/knowledge/machine-templates.js +20 -1
  24. package/dist/knowledge/service-confirm.d.ts +14 -5
  25. package/dist/knowledge/service-confirm.js +116 -8
  26. package/dist/knowledge/tool-constraints.js +6 -2
  27. package/dist/project/deployment-bridge.d.ts +1 -1
  28. package/dist/project/deployment-bridge.js +27 -4
  29. package/dist/project/deployment-doc.d.ts +3 -0
  30. package/dist/project/deployment-doc.js +72 -10
  31. package/dist/project/evaluation.d.ts +2 -0
  32. package/dist/project/evaluation.js +569 -84
  33. package/dist/project/graph-builder.d.ts +4 -1
  34. package/dist/project/graph-builder.js +126 -61
  35. package/dist/project/graph.d.ts +1 -0
  36. package/dist/project/handlers.d.ts +219 -5
  37. package/dist/project/handlers.js +819 -9
  38. package/dist/project/stage-gate.d.ts +4 -0
  39. package/dist/project/stage-gate.js +64 -5
  40. package/dist/project/task-tracker.d.ts +26 -0
  41. package/dist/project/task-tracker.js +78 -0
  42. package/dist/safety/preview.js +16 -0
  43. package/dist/schema/call/allocation.d.ts +16 -16
  44. package/dist/schema/call/base.d.ts +21 -13
  45. package/dist/schema/call/base.js +27 -6
  46. package/dist/schema/call/bridge.d.ts +5 -5
  47. package/dist/schema/call/bridge.js +3 -1
  48. package/dist/schema/call/demand.d.ts +23 -31
  49. package/dist/schema/call/guard.js +1 -1
  50. package/dist/schema/call/machine.d.ts +402 -376
  51. package/dist/schema/call/order.d.ts +149 -228
  52. package/dist/schema/call/order.js +7 -3
  53. package/dist/schema/call/payment.d.ts +183 -3
  54. package/dist/schema/call/payment.js +21 -3
  55. package/dist/schema/call/personal.d.ts +241 -52
  56. package/dist/schema/call/progress.d.ts +53 -61
  57. package/dist/schema/call/progress.js +18 -4
  58. package/dist/schema/call/repository.d.ts +23 -31
  59. package/dist/schema/call/semantic.d.ts +1 -1
  60. package/dist/schema/call/semantic.js +30 -1
  61. package/dist/schema/call/service.d.ts +95 -119
  62. package/dist/schema/call/service.js +22 -1
  63. package/dist/schema/common/index.d.ts +11 -2
  64. package/dist/schema/common/index.js +43 -14
  65. package/dist/schema/local/index.d.ts +32 -35
  66. package/dist/schema/local/index.js +23 -5
  67. package/dist/schema/messenger/index.d.ts +274 -46
  68. package/dist/schema/operations.d.ts +680 -539
  69. package/dist/schema/operations.js +22 -0
  70. package/dist/schema/project/index.d.ts +1796 -80
  71. package/dist/schema/project/index.js +304 -14
  72. package/dist/schema/query/index.d.ts +705 -349
  73. package/dist/schema/query/index.js +164 -31
  74. package/dist/schema/schema-query/index.d.ts +15 -3
  75. package/dist/schema/schema-query/index.js +23 -5
  76. package/dist/schema/utils/node-parser.js +7 -4
  77. package/dist/schema-query/index.d.ts +7 -1
  78. package/dist/schema-query/index.js +204 -4
  79. package/dist/schemas/account_operation.output.json +7 -1
  80. package/dist/schemas/account_operation.schema.json +2 -2
  81. package/dist/schemas/bridge_operation.output.json +6 -0
  82. package/dist/schemas/bridge_operation.schema.json +1 -1
  83. package/dist/schemas/guard-templates.json +379 -0
  84. package/dist/schemas/guard2file.schema.json +1 -1
  85. package/dist/schemas/index.json +1 -1
  86. package/dist/schemas/local_info_operation.output.json +6 -0
  87. package/dist/schemas/local_mark_operation.output.json +7 -1
  88. package/dist/schemas/local_mark_operation.schema.json +1 -1
  89. package/dist/schemas/machineNode2file.schema.json +1 -1
  90. package/dist/schemas/messenger_operation.schema.json +4 -4
  91. package/dist/schemas/onchain_events.output.json +1 -1
  92. package/dist/schemas/onchain_operations.schema.json +348 -296
  93. package/dist/schemas/onchain_operations_allocation.schema.json +34 -25
  94. package/dist/schemas/onchain_operations_arbitration.schema.json +8 -8
  95. package/dist/schemas/onchain_operations_contact.schema.json +8 -8
  96. package/dist/schemas/onchain_operations_demand.schema.json +8 -8
  97. package/dist/schemas/onchain_operations_gen_passport.schema.json +14 -14
  98. package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -2
  99. package/dist/schemas/onchain_operations_guard.schema.json +1 -1
  100. package/dist/schemas/onchain_operations_machine.schema.json +41 -33
  101. package/dist/schemas/onchain_operations_order.schema.json +71 -77
  102. package/dist/schemas/onchain_operations_payment.schema.json +141 -111
  103. package/dist/schemas/onchain_operations_permission.schema.json +2 -2
  104. package/dist/schemas/onchain_operations_personal.schema.json +7 -7
  105. package/dist/schemas/onchain_operations_progress.schema.json +8 -8
  106. package/dist/schemas/onchain_operations_proof.schema.json +7 -7
  107. package/dist/schemas/onchain_operations_repository.schema.json +8 -8
  108. package/dist/schemas/onchain_operations_reward.schema.json +10 -10
  109. package/dist/schemas/onchain_operations_service.schema.json +46 -35
  110. package/dist/schemas/onchain_operations_treasury.schema.json +8 -8
  111. package/dist/schemas/onchain_table_data.output.json +33 -25
  112. package/dist/schemas/onchain_table_data.schema.json +12 -12
  113. package/dist/schemas/project_operation.output.json +1175 -23
  114. package/dist/schemas/project_operation.schema.json +40 -4
  115. package/dist/schemas/query_toolkit.output.json +104 -76
  116. package/dist/schemas/query_toolkit.schema.json +9 -9
  117. package/dist/schemas/schema_query.output.json +7 -3
  118. package/dist/schemas/schema_query.schema.json +17 -3
  119. package/dist/tools/handlers/local.js +20 -5
  120. package/dist/tools/handlers/onchain.js +23 -0
  121. package/dist/tools/handlers/project.js +52 -3
  122. package/dist/tools/handlers/query.js +27 -0
  123. package/dist/tools/handlers/schema-query.js +19 -0
  124. package/dist/tools/handlers/task-status.d.ts +170 -0
  125. package/dist/tools/handlers/task-status.js +55 -0
  126. package/dist/tools/handlers/wip.js +47 -1
  127. package/dist/tools/index.js +211 -7
  128. package/dist/tools/retry.d.ts +8 -0
  129. package/dist/tools/retry.js +85 -0
  130. package/dist/tools/wip-deploy-assist.d.ts +28 -0
  131. package/dist/tools/wip-deploy-assist.js +278 -0
  132. package/package.json +2 -2
  133. package/dist/schemas/guard-node-examples.md +0 -199
@@ -1,6 +1,6 @@
1
1
  import { LocalProject } from "@wowok/wowok";
2
2
  import { generateDeploymentDoc, validateDeploymentDoc } from "./deployment-doc.js";
3
- export async function generateDeploymentDocFromProject(projectId, network) {
3
+ export async function generateDeploymentDocFromProject(projectId, network, detailLevel) {
4
4
  const project = await LocalProject.Instance().getProject(projectId);
5
5
  if (!project) {
6
6
  throw new Error(`Project not found: ${projectId}`);
@@ -8,15 +8,36 @@ export async function generateDeploymentDocFromProject(projectId, network) {
8
8
  const objects = await LocalProject.Instance().listObjects(projectId);
9
9
  const graphEdges = await LocalProject.Instance().getGraph(projectId);
10
10
  const evaluations = await LocalProject.Instance().listEvaluations(projectId, { evalType: "risk" });
11
- const validObjects = objects.filter((o) => o.objectType !== null && o.objectType !== undefined);
11
+ const validObjects = objects.filter((o) => {
12
+ if (o.objectType === null || o.objectType === undefined)
13
+ return false;
14
+ if (o.objectName && /^0x[0-9a-fA-F]{40,}$/.test(o.objectName))
15
+ return false;
16
+ const meta = (o.metadata ?? {});
17
+ const typeRaw = meta.type_raw;
18
+ if (typeRaw && typeRaw.includes("dynamic_field::Field<"))
19
+ return false;
20
+ return true;
21
+ });
12
22
  const deployObjects = validObjects.map((o) => {
13
23
  const objectType = o.objectType;
24
+ const meta = (o.metadata ?? {});
25
+ const status = meta.status ??
26
+ (o.objectAddress.startsWith("draft:") ? "draft" : "deployed");
27
+ const config = meta.config ?? undefined;
28
+ const publishRequired = meta.publish_required ??
29
+ (objectType === "service" || objectType === "machine");
14
30
  return {
15
31
  entry_id: `${objectType}:${o.objectName || o.objectAddress || o.id}`,
16
32
  object_type: normalizeObjectType(objectType),
17
33
  name: o.objectName || o.objectAddress || o.id,
18
- reused_from: o.objectAddress.startsWith("0x") ? o.objectAddress : undefined,
19
- publish_required: objectType === "service" || objectType === "machine",
34
+ reused_from: status === "deployed" && o.objectAddress.startsWith("0x")
35
+ ? o.objectAddress : undefined,
36
+ publish_required: publishRequired,
37
+ description: meta.description ??
38
+ (status === "draft" ? "[蓝图] 待上链" : "[已上链]"),
39
+ config,
40
+ status,
20
41
  };
21
42
  });
22
43
  const addrToEntryId = new Map();
@@ -29,6 +50,7 @@ export async function generateDeploymentDocFromProject(projectId, network) {
29
50
  if (o.objectName) {
30
51
  addrToEntryId.set(o.objectName, entryId);
31
52
  }
53
+ addrToEntryId.set(entryId, entryId);
32
54
  }
33
55
  const deployEdges = graphEdges.map((e) => ({
34
56
  from: addrToEntryId.get(e.sourceObject) ?? e.sourceObject,
@@ -56,6 +78,7 @@ export async function generateDeploymentDocFromProject(projectId, network) {
56
78
  risk_status,
57
79
  risk_critical_count,
58
80
  risk_high_count,
81
+ detail_level: detailLevel,
59
82
  };
60
83
  const markdown = generateDeploymentDoc(input);
61
84
  const validation = validateDeploymentDoc(input);
@@ -7,6 +7,8 @@ export interface DeploymentObject {
7
7
  reused_from?: string;
8
8
  publish_required: boolean;
9
9
  description?: string;
10
+ config?: Record<string, unknown>;
11
+ status?: "draft" | "deployed";
10
12
  }
11
13
  export interface DeploymentDagEdge {
12
14
  from: string;
@@ -45,6 +47,7 @@ export interface DeploymentDocInput {
45
47
  risk_status?: "RISK_PASSED" | "RISK_BLOCKED" | "RISK_PENDING_CONFIRM" | "RISK_CANCELLED";
46
48
  risk_critical_count?: number;
47
49
  risk_high_count?: number;
50
+ detail_level?: "summary" | "detailed" | "full";
48
51
  }
49
52
  export interface DeploymentDocValidationResult {
50
53
  valid: boolean;
@@ -75,33 +75,56 @@ function renderMeta(input) {
75
75
  }
76
76
  function renderODG(input) {
77
77
  const lines = ["## 1. Object Dependency Graph (ODG)", ""];
78
+ const detailLevel = input.detail_level ?? "summary";
78
79
  lines.push("### 1.1 Object List");
79
80
  lines.push("");
80
- lines.push(tableHeader([
81
- "entry_id", "object_type", "name", "reused_from", "publish_required", "description",
82
- ]));
81
+ const showDescription = detailLevel !== "summary";
82
+ if (showDescription) {
83
+ lines.push(tableHeader([
84
+ "entry_id", "object_type", "name", "reused_from", "publish_required", "description",
85
+ ]));
86
+ }
87
+ else {
88
+ lines.push(tableHeader([
89
+ "entry_id", "object_type", "name", "reused_from", "publish_required",
90
+ ]));
91
+ }
83
92
  for (const o of input.objects) {
84
- lines.push(tableRow([
93
+ const row = [
85
94
  o.entry_id,
86
95
  o.object_type,
87
96
  o.name,
88
97
  o.reused_from ?? "",
89
98
  String(o.publish_required),
90
- o.description ?? "",
91
- ]));
99
+ ];
100
+ if (showDescription)
101
+ row.push(o.description ?? "");
102
+ lines.push(tableRow(row));
92
103
  }
93
104
  lines.push("");
105
+ if (!showDescription) {
106
+ lines.push("_Use `detail_level='detailed'` or `'full'` to include object descriptions._");
107
+ lines.push("");
108
+ }
94
109
  lines.push("### 1.2 Dependencies");
95
110
  lines.push("");
96
111
  lines.push(tableHeader([
97
112
  "from", "to", "edge_kind", "field_path", "required_at_publish",
98
113
  ]));
99
- for (const e of input.edges) {
114
+ const visibleEdges = detailLevel === "summary"
115
+ ? input.edges.filter((e) => e.required_at_publish)
116
+ : input.edges;
117
+ for (const e of visibleEdges) {
100
118
  lines.push(tableRow([
101
119
  e.from, e.to, e.edge_kind, e.field_path, String(e.required_at_publish),
102
120
  ]));
103
121
  }
104
122
  lines.push("");
123
+ if (detailLevel === "summary" && input.edges.length > visibleEdges.length) {
124
+ lines.push(`_Showing ${visibleEdges.length} of ${input.edges.length} edges (required_at_publish only). ` +
125
+ `Use \`detail_level='detailed'\` or \`'full'\` to see all edges._`);
126
+ lines.push("");
127
+ }
105
128
  if (input.scenarios && input.scenarios.length > 0) {
106
129
  lines.push("### 1.3 Scenario Matrix");
107
130
  lines.push("");
@@ -160,19 +183,56 @@ function renderNetworkSection(sectionNum, network, input) {
160
183
  lines.push(tableRow(["gas_budget", "100000000"]));
161
184
  lines.push(tableRow(["account", `${input.project_prefix}_merchant_${network}`]));
162
185
  lines.push(tableRow(["dry_run", "false"]));
186
+ lines.push(tableRow(["detail_level", input.detail_level ?? "summary"]));
163
187
  lines.push("");
164
188
  lines.push(`### ${sectionNum}.2 ${network} JSON Operation Sequence`);
165
189
  lines.push("");
190
+ const detailLevel = input.detail_level ?? "summary";
166
191
  for (const step of input.steps) {
167
192
  if (step.network_phase !== "both" && step.network_phase !== network)
168
193
  continue;
194
+ const obj = input.objects.find(o => o.entry_id === step.entry_id);
195
+ const isDraft = obj?.status === "draft";
196
+ const objName = objectNameForStep(step, input);
197
+ const objectData = {
198
+ name: objName,
199
+ replaceExistName: network === "testnet",
200
+ };
201
+ if (isDraft && obj?.config) {
202
+ const summaryFields = new Set([
203
+ "name", "replaceExistName",
204
+ "machine", "permission", "buy_guard", "order_allocators",
205
+ "publish", "pause",
206
+ ]);
207
+ const detailedFields = new Set([
208
+ "sales", "arbitrations", "rewards",
209
+ "repositories", "discount", "discount_destroy",
210
+ ]);
211
+ for (const [k, v] of Object.entries(obj.config)) {
212
+ if (k === "name" || k === "replaceExistName")
213
+ continue;
214
+ if (detailLevel === "full") {
215
+ objectData[k] = v;
216
+ }
217
+ else if (detailLevel === "detailed"
218
+ && (summaryFields.has(k) || detailedFields.has(k))) {
219
+ objectData[k] = v;
220
+ }
221
+ else if (detailLevel === "summary" && summaryFields.has(k)) {
222
+ objectData[k] = v;
223
+ }
224
+ }
225
+ }
169
226
  const block = {
170
227
  step: step.step,
171
228
  operation: "onchain_operations",
172
229
  operation_type: step.object_type,
173
230
  data: {
174
- object: { name: objectNameForStep(step, input), replaceExistName: network === "testnet" },
175
- description: stepDescription(step),
231
+ object: objectData,
232
+ description: isDraft
233
+ ? `${stepDescription(step)} [蓝图:基于 ${input.industry} 行业模板生成]`
234
+ : stepDescription(step),
235
+ status: isDraft ? "draft" : "deployed",
176
236
  },
177
237
  env: {
178
238
  account: `${input.project_prefix}_merchant_${network}`,
@@ -427,7 +487,9 @@ function runDCheck(item, input) {
427
487
  }
428
488
  for (const p of publishSteps) {
429
489
  const created = createByType.get(p.object_type);
430
- if (created === undefined || created > p.step) {
490
+ if (created === undefined)
491
+ continue;
492
+ if (created > p.step) {
431
493
  return { status: "FAIL", notes: `publish ${p.step} before create for ${p.object_type}` };
432
494
  }
433
495
  }
@@ -30,6 +30,8 @@ export interface EvaluationInput {
30
30
  objectCache: Map<string, ObjectCacheEntry>;
31
31
  reputation?: Map<string, ReputationData>;
32
32
  }
33
+ export declare function getNumberField(data: Record<string, unknown> | null, field: string): number;
34
+ export declare function getMachineNodeCount(data: Record<string, unknown> | null): number;
33
35
  export declare function runEvaluation(input: EvaluationInput, evaluationType: EvaluationType, llmPrompt?: string): EvaluationResult;
34
36
  export interface ProjectComparisonEntry {
35
37
  projectId: string;