@wowok/agent-mcp 2.5.5 → 2.6.0

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 (38) hide show
  1. package/dist/config/runtime.js +3 -6
  2. package/dist/harness/checkpoint.js +2 -2
  3. package/dist/knowledge/flywheel-loop.js +2 -5
  4. package/dist/knowledge/overrides-loader.js +2 -4
  5. package/dist/knowledge/progress-ledger.js +3 -0
  6. package/dist/knowledge/progress-translation.js +5 -1
  7. package/dist/loop-engineering/improve.js +2 -4
  8. package/dist/project/deployment-bridge.d.ts +5 -0
  9. package/dist/project/deployment-bridge.js +96 -0
  10. package/dist/project/evaluation.js +10 -3
  11. package/dist/project/graph-builder.js +15 -2
  12. package/dist/project/handlers.d.ts +2 -0
  13. package/dist/project/handlers.js +115 -6
  14. package/dist/project/index.js +2 -6
  15. package/dist/project/project-store.js +2 -5
  16. package/dist/schema/config/index.d.ts +12 -12
  17. package/dist/schema/local/index.d.ts +108 -108
  18. package/dist/schema/local/index.js +21 -18
  19. package/dist/schema/messenger/index.d.ts +16 -16
  20. package/dist/schema/messenger/index.js +2 -2
  21. package/dist/schema/operations.d.ts +0 -6
  22. package/dist/schema/project/index.d.ts +271 -7
  23. package/dist/schema/project/index.js +52 -0
  24. package/dist/schema/query/index.d.ts +10 -5
  25. package/dist/schema/trust/index.d.ts +8 -8
  26. package/dist/schemas/account_operation.output.json +7 -21
  27. package/dist/schemas/account_operation.schema.json +9 -23
  28. package/dist/schemas/index.json +1 -1
  29. package/dist/schemas/messenger_operation.schema.json +6 -6
  30. package/dist/schemas/project_operation.output.json +180 -0
  31. package/dist/schemas/project_operation.schema.json +14 -1
  32. package/dist/schemas/query_toolkit.output.json +7 -6
  33. package/dist/schemas/query_toolkit.schema.json +0 -4
  34. package/dist/telemetry/storage.js +2 -2
  35. package/dist/tools/handlers/onchain.js +13 -0
  36. package/dist/tools/handlers/project.js +22 -0
  37. package/dist/tools/index.js +1 -1
  38. package/package.json +2 -2
@@ -127,7 +127,6 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
127
127
  }, "strip", z.ZodTypeAny, {
128
128
  name: "fund" | "workflow" | "trust" | "behavior";
129
129
  score: number;
130
- max_score: number;
131
130
  checks: {
132
131
  description: string;
133
132
  id: string;
@@ -136,10 +135,10 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
136
135
  weight: number;
137
136
  advice?: string | undefined;
138
137
  }[];
138
+ max_score: number;
139
139
  }, {
140
140
  name: "fund" | "workflow" | "trust" | "behavior";
141
141
  score: number;
142
- max_score: number;
143
142
  checks: {
144
143
  description: string;
145
144
  id: string;
@@ -148,6 +147,7 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
148
147
  weight: number;
149
148
  advice?: string | undefined;
150
149
  }[];
150
+ max_score: number;
151
151
  }>, "many">;
152
152
  }, "strip", z.ZodTypeAny, {
153
153
  advice: string[];
@@ -155,7 +155,6 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
155
155
  dimensions: {
156
156
  name: "fund" | "workflow" | "trust" | "behavior";
157
157
  score: number;
158
- max_score: number;
159
158
  checks: {
160
159
  description: string;
161
160
  id: string;
@@ -164,6 +163,7 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
164
163
  weight: number;
165
164
  advice?: string | undefined;
166
165
  }[];
166
+ max_score: number;
167
167
  }[];
168
168
  total: number;
169
169
  red_flags: string[];
@@ -173,7 +173,6 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
173
173
  dimensions: {
174
174
  name: "fund" | "workflow" | "trust" | "behavior";
175
175
  score: number;
176
- max_score: number;
177
176
  checks: {
178
177
  description: string;
179
178
  id: string;
@@ -182,6 +181,7 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
182
181
  weight: number;
183
182
  advice?: string | undefined;
184
183
  }[];
184
+ max_score: number;
185
185
  }[];
186
186
  total: number;
187
187
  red_flags: string[];
@@ -231,7 +231,6 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
231
231
  dimensions: {
232
232
  name: "fund" | "workflow" | "trust" | "behavior";
233
233
  score: number;
234
- max_score: number;
235
234
  checks: {
236
235
  description: string;
237
236
  id: string;
@@ -240,6 +239,7 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
240
239
  weight: number;
241
240
  advice?: string | undefined;
242
241
  }[];
242
+ max_score: number;
243
243
  }[];
244
244
  total: number;
245
245
  red_flags: string[];
@@ -281,7 +281,6 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
281
281
  dimensions: {
282
282
  name: "fund" | "workflow" | "trust" | "behavior";
283
283
  score: number;
284
- max_score: number;
285
284
  checks: {
286
285
  description: string;
287
286
  id: string;
@@ -290,6 +289,7 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
290
289
  weight: number;
291
290
  advice?: string | undefined;
292
291
  }[];
292
+ max_score: number;
293
293
  }[];
294
294
  total: number;
295
295
  red_flags: string[];
@@ -333,7 +333,6 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
333
333
  dimensions: {
334
334
  name: "fund" | "workflow" | "trust" | "behavior";
335
335
  score: number;
336
- max_score: number;
337
336
  checks: {
338
337
  description: string;
339
338
  id: string;
@@ -342,6 +341,7 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
342
341
  weight: number;
343
342
  advice?: string | undefined;
344
343
  }[];
344
+ max_score: number;
345
345
  }[];
346
346
  total: number;
347
347
  red_flags: string[];
@@ -385,7 +385,6 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
385
385
  dimensions: {
386
386
  name: "fund" | "workflow" | "trust" | "behavior";
387
387
  score: number;
388
- max_score: number;
389
388
  checks: {
390
389
  description: string;
391
390
  id: string;
@@ -394,6 +393,7 @@ export declare const TrustScoreOutputSchema: z.ZodObject<{
394
393
  weight: number;
395
394
  advice?: string | undefined;
396
395
  }[];
396
+ max_score: number;
397
397
  }[];
398
398
  total: number;
399
399
  red_flags: string[];
@@ -31,16 +31,9 @@
31
31
  "type": "string",
32
32
  "description": "Account name"
33
33
  },
34
- "m": {
35
- "anyOf": [
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": [
@@ -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
- "m": {
1326
- "anyOf": [
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
- "m"
1324
+ "enabled"
1339
1325
  ],
1340
1326
  "additionalProperties": false,
1341
1327
  "description": "Result of enabling or disabling messenger for an account"
@@ -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 lose the name; if false (default), throw error when name exists"
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
- "m": {
23
- "anyOf": [
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,
@@ -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
- "m": {
234
- "anyOf": [
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
- "m"
232
+ "enabled"
247
233
  ],
248
234
  "additionalProperties": false,
249
235
  "description": "Enable or disable messenger for an account"
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "title": "WoWok MCP Schema Index",
4
4
  "description": "Index of all available JSON schemas for WoWok MCP tools",
5
- "generatedAt": "2026-07-24T00:13:51.333Z",
5
+ "generatedAt": "2026-07-24T21:15:38.360Z",
6
6
  "tools": [
7
7
  {
8
8
  "name": "onchain_operations",
@@ -123,9 +123,9 @@
123
123
  "type": "boolean",
124
124
  "description": "Force send even if there are pending Guard messages"
125
125
  },
126
- "new_messenger_name": {
127
- "type": "string",
128
- "description": "New messenger name for recipient"
126
+ "enable_messenger": {
127
+ "type": "boolean",
128
+ "description": "Auto-enable messenger for the sender account if not already enabled"
129
129
  },
130
130
  "network": {
131
131
  "type": "string",
@@ -202,9 +202,9 @@
202
202
  "type": "boolean",
203
203
  "description": "Force send even if there are pending Guard messages"
204
204
  },
205
- "new_messenger_name": {
206
- "type": "string",
207
- "description": "New messenger name for recipient"
205
+ "enable_messenger": {
206
+ "type": "boolean",
207
+ "description": "Auto-enable messenger for the sender account if not already enabled"
208
208
  },
209
209
  "network": {
210
210
  "$ref": "#/definitions/messenger_operation/anyOf/1/properties/options/properties/network",
@@ -122,6 +122,10 @@
122
122
  "type": "number",
123
123
  "description": "Number of objects in this project (from project_objects table)."
124
124
  },
125
+ "evaluationCount": {
126
+ "type": "number",
127
+ "description": "Number of stored evaluations for this project (from evaluations table)."
128
+ },
125
129
  "objectTypes": {
126
130
  "type": "array",
127
131
  "items": {
@@ -147,6 +151,7 @@
147
151
  "updatedAt",
148
152
  "metadata",
149
153
  "objectCount",
154
+ "evaluationCount",
150
155
  "objectTypes"
151
156
  ],
152
157
  "additionalProperties": false
@@ -622,6 +627,101 @@
622
627
  "null"
623
628
  ]
624
629
  },
630
+ "details": {
631
+ "anyOf": [
632
+ {
633
+ "type": "object",
634
+ "properties": {
635
+ "criterionScores": {
636
+ "type": "array",
637
+ "items": {
638
+ "type": "object",
639
+ "properties": {
640
+ "name": {
641
+ "type": "string",
642
+ "description": "Criterion name (e.g. 'Service Published', 'Governance Present')."
643
+ },
644
+ "score": {
645
+ "type": "number",
646
+ "description": "Per-criterion score (0-100, higher = better)."
647
+ },
648
+ "weight": {
649
+ "type": "number",
650
+ "description": "Weight in the overall score (0-1)."
651
+ },
652
+ "rationale": {
653
+ "type": "string",
654
+ "description": "Why this score was assigned."
655
+ }
656
+ },
657
+ "required": [
658
+ "name",
659
+ "score",
660
+ "weight",
661
+ "rationale"
662
+ ],
663
+ "additionalProperties": false
664
+ },
665
+ "description": "Per-criterion scores with rationale."
666
+ },
667
+ "findings": {
668
+ "type": "array",
669
+ "items": {
670
+ "type": "object",
671
+ "properties": {
672
+ "criterion": {
673
+ "type": "string",
674
+ "description": "Criterion this finding relates to."
675
+ },
676
+ "severity": {
677
+ "type": "string",
678
+ "enum": [
679
+ "critical",
680
+ "warning",
681
+ "info"
682
+ ],
683
+ "description": "Severity level: critical (blocks deployment), warning (should fix), info (advisory)."
684
+ },
685
+ "message": {
686
+ "type": "string",
687
+ "description": "Human-readable finding description."
688
+ },
689
+ "deduction": {
690
+ "type": "number",
691
+ "description": "Score deduction applied (negative number, e.g. -20)."
692
+ }
693
+ },
694
+ "required": [
695
+ "criterion",
696
+ "severity",
697
+ "message",
698
+ "deduction"
699
+ ],
700
+ "additionalProperties": false
701
+ },
702
+ "description": "Negative findings (warnings/critical issues) with deductions."
703
+ },
704
+ "strengths": {
705
+ "type": "array",
706
+ "items": {
707
+ "type": "string"
708
+ },
709
+ "description": "Positive evidence explaining high scores."
710
+ }
711
+ },
712
+ "required": [
713
+ "criterionScores",
714
+ "findings",
715
+ "strengths"
716
+ ],
717
+ "additionalProperties": false
718
+ },
719
+ {
720
+ "type": "null"
721
+ }
722
+ ],
723
+ "description": "Structured inspection content (criterion scores, findings, strengths). Null for evaluations created before details were stored."
724
+ },
625
725
  "evaluatedAt": {
626
726
  "type": "number"
627
727
  }
@@ -631,6 +731,7 @@
631
731
  "evalType",
632
732
  "score",
633
733
  "summary",
734
+ "details",
634
735
  "evaluatedAt"
635
736
  ],
636
737
  "additionalProperties": false
@@ -1381,6 +1482,85 @@
1381
1482
  "next_action"
1382
1483
  ],
1383
1484
  "additionalProperties": false
1485
+ },
1486
+ {
1487
+ "type": "object",
1488
+ "properties": {
1489
+ "action": {
1490
+ "type": "string",
1491
+ "const": "generate_deployment_doc"
1492
+ },
1493
+ "markdown": {
1494
+ "type": "string",
1495
+ "description": "Generated deployment document markdown content (follows 71-deployment-list-spec)."
1496
+ },
1497
+ "validation": {
1498
+ "type": "object",
1499
+ "properties": {
1500
+ "valid": {
1501
+ "type": "boolean",
1502
+ "description": "True iff no D-check FAIL."
1503
+ },
1504
+ "checks": {
1505
+ "type": "array",
1506
+ "items": {
1507
+ "type": "object",
1508
+ "properties": {
1509
+ "check_id": {
1510
+ "type": "string"
1511
+ },
1512
+ "description": {
1513
+ "type": "string"
1514
+ },
1515
+ "status": {
1516
+ "type": "string",
1517
+ "enum": [
1518
+ "PASS",
1519
+ "FAIL",
1520
+ "WARN"
1521
+ ]
1522
+ },
1523
+ "notes": {
1524
+ "type": "string"
1525
+ }
1526
+ },
1527
+ "required": [
1528
+ "check_id",
1529
+ "description",
1530
+ "status"
1531
+ ],
1532
+ "additionalProperties": false
1533
+ },
1534
+ "description": "D-01..D-18 check results."
1535
+ },
1536
+ "errors": {
1537
+ "type": "array",
1538
+ "items": {
1539
+ "type": "string"
1540
+ },
1541
+ "description": "List of FAIL error messages."
1542
+ }
1543
+ },
1544
+ "required": [
1545
+ "valid",
1546
+ "checks",
1547
+ "errors"
1548
+ ],
1549
+ "additionalProperties": false,
1550
+ "description": "Deployment doc validation result against D-01..D-18."
1551
+ },
1552
+ "saved": {
1553
+ "type": "boolean",
1554
+ "description": "Whether the markdown was persisted to SQLite project_documents table."
1555
+ }
1556
+ },
1557
+ "required": [
1558
+ "action",
1559
+ "markdown",
1560
+ "validation",
1561
+ "saved"
1562
+ ],
1563
+ "additionalProperties": false
1384
1564
  }
1385
1565
  ],
1386
1566
  "description": "Query result — shape depends on action"
@@ -28,7 +28,8 @@
28
28
  "refresh_objects",
29
29
  "get_object_diff",
30
30
  "delete_project",
31
- "assemble_context"
31
+ "assemble_context",
32
+ "generate_deployment_doc"
32
33
  ],
33
34
  "description": "Action to perform. Two categories:\n1. Project Entity + Evaluation (15, GLM6): list_projects, create_project, create_project_from_onchain, update_project, get_project_detail, add_object, remove_object, create_version, build_graph, get_graph, evaluate_project, save_evaluation, compare_projects, refresh_objects, get_object_diff. Projects are first-class entities with SQLite persistence, rigid project-object relationships, three-pathway graph construction, and a dual rule-based + LLM-assisted evaluation engine.\n2. Context Assembly (1): assemble_context (query on-chain object states + extract embedded history + optional events, and assemble a structured semantic context for LLM consumption). Required input: context_objects (array of object IDs/names). Optional: include_events (query recent state-transition events)."
34
35
  },
@@ -306,6 +307,18 @@
306
307
  "diff_to_time": {
307
308
  "type": "integer",
308
309
  "description": "End timestamp (ms) for get_object_diff."
310
+ },
311
+ "network": {
312
+ "type": "string",
313
+ "enum": [
314
+ "testnet",
315
+ "mainnet"
316
+ ],
317
+ "description": "Target network for generate_deployment_doc. Required when action='generate_deployment_doc'."
318
+ },
319
+ "save": {
320
+ "type": "boolean",
321
+ "description": "When true (default), persist the generated MD to SQLite project_documents table for generate_deployment_doc."
309
322
  }
310
323
  },
311
324
  "required": [
@@ -572,12 +572,13 @@
572
572
  "type": "number",
573
573
  "description": "Timestamp when account was last updated"
574
574
  },
575
- "m": {
576
- "type": [
577
- "string",
578
- "null"
579
- ],
580
- "description": "Messenger name, indicates this account has messenger enabled"
575
+ "messenger": {
576
+ "type": "boolean",
577
+ "description": "Whether messenger is enabled for this account"
578
+ },
579
+ "suspendedName": {
580
+ "type": "string",
581
+ "description": "Name before suspension (set by suspend, cleared by resume)"
581
582
  }
582
583
  },
583
584
  "required": [
@@ -99,10 +99,6 @@
99
99
  "type": "boolean",
100
100
  "description": "Filter accounts with messenger enabled"
101
101
  },
102
- "m": {
103
- "$ref": "#/definitions/query_toolkit/anyOf/0/properties/filter/properties/name",
104
- "description": "Filter by messenger name (supports fuzzy match)"
105
- },
106
102
  "createdAt": {
107
103
  "type": "object",
108
104
  "properties": {
@@ -1,8 +1,8 @@
1
1
  import { mkdir, appendFile, stat, rename } from "fs/promises";
2
2
  import { dirname, join } from "path";
3
- import { homedir } from "os";
3
+ import { getWowMcpDir } from "@wowok/wowok";
4
4
  const MAX_SIZE_BYTES = 10 * 1024 * 1024;
5
- const DATA_DIR = join(homedir(), ".wowok", "data");
5
+ const DATA_DIR = join(getWowMcpDir(), "data");
6
6
  const TELEMETRY_FILE = join(DATA_DIR, "telemetry.jsonl");
7
7
  const ROTATED_FILE = join(DATA_DIR, "telemetry.jsonl.1");
8
8
  class JsonlStorage {
@@ -132,6 +132,13 @@ export async function handleOnchainOperations(args) {
132
132
  return output;
133
133
  }
134
134
  case "progress": {
135
+ if (validated.data?.operate) {
136
+ constraintWarnings.push("Progress routing hint: if this Progress is bound to an Order and the target " +
137
+ "Forward uses namedOperator=\"\" (empty string = OrderHolder), use " +
138
+ "order.progress (NOT progress.operate). Direct progress::next fails with " +
139
+ "Permission denied for OrderHolder forwards. Use progress.operate only for " +
140
+ "non-empty namedOperator or permissionIndex-only forwards.");
141
+ }
135
142
  const callProgress = new CallProgress(validated.data);
136
143
  const result = validated.submission
137
144
  ? await callProgress.call_with_submission(env, await transformSubmission(validated.submission))
@@ -281,6 +288,12 @@ export async function handleOnchainOperations(args) {
281
288
  return output;
282
289
  }
283
290
  case "order": {
291
+ if (validated.data?.progress) {
292
+ constraintWarnings.push("Order routing hint: order.progress works only for Forwards with " +
293
+ "namedOperator=\"\" (OrderHolder). If the target Forward uses a " +
294
+ "non-empty namedOperator or permissionIndex-only, use progress.operate " +
295
+ "on the Progress object directly instead.");
296
+ }
284
297
  const callOrder = new CallOrder(validated.data);
285
298
  const result = validated.submission
286
299
  ? await callOrder.call_with_submission(env, await transformSubmission(validated.submission))
@@ -1,4 +1,6 @@
1
1
  import { assembleContext } from "../../project/context-assembly.js";
2
+ import { generateDeploymentDocFromProject } from "../../project/deployment-bridge.js";
3
+ import { LocalProject } from "@wowok/wowok";
2
4
  import { handleListProjects, handleCreateProject, handleCreateProjectFromOnchain, handleUpdateProject, handleGetProjectDetail, handleAddObject, handleRemoveObject, handleUpdateObject, handleCreateVersion, handleBuildGraph, handleGetGraph, handleEvaluateProject, handleSaveEvaluation, handleCompareProjects, handleRefreshObjects, handleGetObjectDiff, handleDeleteProject, } from "../../project/handlers.js";
3
5
  import { strictParse } from "../../schema/index.js";
4
6
  import { ProjectOperationInputSchema } from "../../schema/project/index.js";
@@ -61,6 +63,26 @@ export async function handleProjectOperation(args) {
61
63
  case "assemble_context":
62
64
  result = await assembleContext(validated);
63
65
  break;
66
+ case "generate_deployment_doc": {
67
+ const { project_id, network, save = true } = validated;
68
+ if (!project_id) {
69
+ throw new Error("'project_id' is required for generate_deployment_doc");
70
+ }
71
+ if (!network) {
72
+ throw new Error("'network' is required for generate_deployment_doc");
73
+ }
74
+ const genResult = await generateDeploymentDocFromProject(project_id, network);
75
+ if (save) {
76
+ await LocalProject.Instance().saveDocument(project_id, network, genResult.markdown);
77
+ }
78
+ result = {
79
+ action: "generate_deployment_doc",
80
+ markdown: genResult.markdown,
81
+ validation: genResult.validation,
82
+ saved: save,
83
+ };
84
+ break;
85
+ }
64
86
  default:
65
87
  throw new Error(`Unknown project_operation action: ${String(action)}`);
66
88
  }
@@ -324,7 +324,7 @@ export const TOOL_REGISTRY = [
324
324
  " • order_monitor — In-progress Order Monitoring (Phase 3 C-3.2, default OFF)\n" +
325
325
  " • industry_evolution — Industry Specialization Evolution Flywheel (Phase 4, default ON)\n\n" +
326
326
  "NOTE: Toggles persist for the MCP process lifetime. Set WOWOK_RUNTIME_CONFIG_PERSIST=1 " +
327
- "to persist across sessions to ~/.wowok/runtime-config.json.\n\n" +
327
+ "to persist across sessions to ~/.wow/mcp/runtime-config.json.\n\n" +
328
328
  "💡 Schema hint: Use schema_query with action='get' and name='config_operation' to retrieve the exact parameter schema with all actions and field definitions.",
329
329
  inputSchema: ConfigOperationInputSchema,
330
330
  outputSchema: ConfigOperationOutputSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wowok/agent-mcp",
3
- "version": "2.5.5",
3
+ "version": "2.6.0",
4
4
  "description": "Making It Easy for AI Agents to Communicate, Collaborate, Trade, and Trust.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -50,7 +50,7 @@
50
50
  "license": "Apache-2.0",
51
51
  "dependencies": {
52
52
  "@modelcontextprotocol/sdk": "^1.29.0",
53
- "@wowok/wowok": "2.5.5",
53
+ "@wowok/wowok": "2.6.0",
54
54
  "lodash": "^4.18.1",
55
55
  "zod": "^3.25.76",
56
56
  "zod-to-json-schema": "^3.25.2"