@wowok/agent-mcp 2.3.16 → 2.3.18

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 (106) hide show
  1. package/dist/customer/index.d.ts +9 -0
  2. package/dist/customer/index.js +9 -0
  3. package/dist/customer/industry-risks.d.ts +4 -0
  4. package/dist/customer/industry-risks.js +14 -0
  5. package/dist/customer/user-preferences.d.ts +3 -0
  6. package/dist/customer/user-preferences.js +9 -0
  7. package/dist/experience/realtime-feedback.js +17 -0
  8. package/dist/index.js +360 -273
  9. package/dist/knowledge/acquisition-flywheel.d.ts +3 -0
  10. package/dist/knowledge/acquisition-flywheel.js +9 -0
  11. package/dist/knowledge/guard-ledger.d.ts +19 -0
  12. package/dist/knowledge/guard-ledger.js +219 -0
  13. package/dist/knowledge/guard-puzzle.d.ts +93 -0
  14. package/dist/knowledge/guard-puzzle.js +278 -0
  15. package/dist/knowledge/guard-risk.d.ts +60 -0
  16. package/dist/knowledge/guard-risk.js +474 -0
  17. package/dist/knowledge/guard-translation.d.ts +46 -0
  18. package/dist/knowledge/guard-translation.js +487 -0
  19. package/dist/knowledge/index.d.ts +13 -0
  20. package/dist/knowledge/index.js +13 -0
  21. package/dist/knowledge/industry-registry.d.ts +1 -2
  22. package/dist/knowledge/industry-registry.js +23 -3
  23. package/dist/knowledge/safety-rules.js +61 -0
  24. package/dist/knowledge/tool-constraints.js +12 -22
  25. package/dist/safety/confirm-gate.d.ts +4 -2
  26. package/dist/safety/confirm-gate.js +48 -4
  27. package/dist/schema/call/allocation.d.ts +24 -14
  28. package/dist/schema/call/arbitration.d.ts +142 -132
  29. package/dist/schema/call/base.d.ts +901 -43
  30. package/dist/schema/call/base.js +66 -2
  31. package/dist/schema/call/bridge-handler.js +15 -2
  32. package/dist/schema/call/bridge.d.ts +769 -1
  33. package/dist/schema/call/bridge.js +37 -0
  34. package/dist/schema/call/contact.d.ts +10 -0
  35. package/dist/schema/call/demand.d.ts +10 -0
  36. package/dist/schema/call/guard.d.ts +76 -46
  37. package/dist/schema/call/handler.js +46 -14
  38. package/dist/schema/call/machine.d.ts +158 -138
  39. package/dist/schema/call/order.d.ts +10 -0
  40. package/dist/schema/call/payment.d.ts +10 -0
  41. package/dist/schema/call/permission.d.ts +232 -222
  42. package/dist/schema/call/personal.d.ts +10 -0
  43. package/dist/schema/call/progress.d.ts +10 -0
  44. package/dist/schema/call/proof.d.ts +20 -0
  45. package/dist/schema/call/repository.d.ts +32 -22
  46. package/dist/schema/call/reward.d.ts +10 -0
  47. package/dist/schema/call/semantic.d.ts +9 -2
  48. package/dist/schema/call/semantic.js +409 -21
  49. package/dist/schema/call/service.d.ts +20 -10
  50. package/dist/schema/call/treasury.d.ts +10 -0
  51. package/dist/schema/config/index.d.ts +18 -0
  52. package/dist/schema/config/index.js +17 -0
  53. package/dist/schema/index.d.ts +6 -0
  54. package/dist/schema/index.js +5 -0
  55. package/dist/schema/local/index.d.ts +9 -9
  56. package/dist/schema/local/index.js +9 -0
  57. package/dist/schema/messenger/index.d.ts +350 -29
  58. package/dist/schema/messenger/index.js +17 -17
  59. package/dist/schema/operations.d.ts +1667 -545
  60. package/dist/schema/operations.js +91 -96
  61. package/dist/schema/project/index.d.ts +21 -0
  62. package/dist/schema/project/index.js +32 -0
  63. package/dist/schema/query/index.d.ts +1074 -168
  64. package/dist/schema/query/index.js +8 -8
  65. package/dist/schema/schema-query/index.d.ts +33 -0
  66. package/dist/schema/schema-query/index.js +36 -0
  67. package/dist/schema/schema-version.d.ts +25 -0
  68. package/dist/schema/schema-version.js +76 -0
  69. package/dist/schema/trust/index.d.ts +407 -0
  70. package/dist/schema/trust/index.js +113 -0
  71. package/dist/schemas/bridge_operation.output.json +224 -0
  72. package/dist/schemas/bridge_operation.schema.json +67 -8
  73. package/dist/schemas/config_operation.output.json +18 -0
  74. package/dist/schemas/config_operation.schema.json +34 -0
  75. package/dist/schemas/guard-node-schema.json +82 -0
  76. package/dist/schemas/guard2file.schema.json +8 -0
  77. package/dist/schemas/index.json +19 -1
  78. package/dist/schemas/machineNode2file.schema.json +8 -0
  79. package/dist/schemas/messenger_operation.output.json +224 -0
  80. package/dist/schemas/onchain_events.output.json +718 -0
  81. package/dist/schemas/onchain_operations.output.json +277 -2
  82. package/dist/schemas/onchain_operations.schema.json +19 -16
  83. package/dist/schemas/onchain_operations_allocation.schema.json +8 -0
  84. package/dist/schemas/onchain_operations_arbitration.schema.json +8 -0
  85. package/dist/schemas/onchain_operations_contact.schema.json +8 -0
  86. package/dist/schemas/onchain_operations_demand.schema.json +8 -0
  87. package/dist/schemas/onchain_operations_gen_passport.schema.json +16 -0
  88. package/dist/schemas/onchain_operations_guard.schema.json +11 -16
  89. package/dist/schemas/onchain_operations_machine.schema.json +8 -0
  90. package/dist/schemas/onchain_operations_order.schema.json +8 -0
  91. package/dist/schemas/onchain_operations_payment.schema.json +8 -0
  92. package/dist/schemas/onchain_operations_permission.schema.json +8 -0
  93. package/dist/schemas/onchain_operations_personal.schema.json +8 -0
  94. package/dist/schemas/onchain_operations_progress.schema.json +8 -0
  95. package/dist/schemas/onchain_operations_repository.schema.json +8 -0
  96. package/dist/schemas/onchain_operations_reward.schema.json +8 -0
  97. package/dist/schemas/onchain_operations_service.schema.json +8 -0
  98. package/dist/schemas/onchain_operations_treasury.schema.json +8 -0
  99. package/dist/schemas/onchain_table_data.output.json +718 -0
  100. package/dist/schemas/project_operation.output.json +18 -0
  101. package/dist/schemas/project_operation.schema.json +42 -0
  102. package/dist/schemas/query_toolkit.schema.json +360 -368
  103. package/dist/schemas/schema_query.schema.json +6 -3
  104. package/dist/schemas/trust_score.output.json +327 -0
  105. package/dist/schemas/trust_score.schema.json +46 -0
  106. package/package.json +2 -2
@@ -0,0 +1,113 @@
1
+ import { z } from "zod";
2
+ import { NameOrAddressSchema } from "../common/index.js";
3
+ export const TrustScoreInputSchema = z
4
+ .object({
5
+ service: NameOrAddressSchema.describe("Service object ID or local_mark name to evaluate. " +
6
+ "Must reference an existing Service object on-chain."),
7
+ order_amount: z
8
+ .union([z.string(), z.number()])
9
+ .optional()
10
+ .describe("Optional order amount (in smallest token unit, e.g. 2000000000 for 2 WOW). " +
11
+ "Used for fund-safety dimension risk assessment. " +
12
+ "If omitted, the first active sale price of the service is used."),
13
+ depth: z
14
+ .enum(["browse", "evaluate", "preorder"])
15
+ .optional()
16
+ .describe("InfoPuzzle collection depth. " +
17
+ "browse: only Service basics + trust score; " +
18
+ "evaluate (default): + workflow/fund/trust dimensions risk assessment; " +
19
+ "preorder: + merchant behavior + market context (most thorough)."),
20
+ network: z
21
+ .string()
22
+ .optional()
23
+ .describe("Network override (e.g. 'mainnet', 'testnet'). If omitted, uses default."),
24
+ no_cache: z
25
+ .boolean()
26
+ .optional()
27
+ .describe("Skip object cache and force a fresh on-chain query."),
28
+ })
29
+ .strict();
30
+ export const TrustScoreOutputSchema = z
31
+ .object({
32
+ result: z
33
+ .object({
34
+ service_id: z.string().describe("The Service object ID or local_mark that was evaluated."),
35
+ service_name: z.string().describe("Service display name (falls back to service_id if unnamed)."),
36
+ service_basics: z
37
+ .object({
38
+ bPublished: z.boolean().describe("Whether the Service is published (open for orders)."),
39
+ bPaused: z.boolean().describe("Whether the Service is temporarily paused."),
40
+ sales_count: z.number().int().nonnegative().describe("Number of active (non-suspended) sale entries."),
41
+ has_machine: z.boolean().describe("Whether a Machine workflow is attached."),
42
+ has_buy_guard: z.boolean().describe("Whether a buy-side Guard is configured."),
43
+ has_um_contact: z.boolean().describe("Whether a Messenger (um) contact is configured."),
44
+ arbitrations_count: z.number().int().nonnegative().describe("Number of arbitration entries attached to the Service."),
45
+ })
46
+ .describe("Service snapshot — basic on-chain state."),
47
+ trust_score: z
48
+ .object({
49
+ score: z.number().min(0).max(100).describe("Overall trust score (0-100, higher = more trustworthy)."),
50
+ level: z
51
+ .enum(["high_risk", "caution", "moderate", "trusted"])
52
+ .describe("Trust level label derived from the score."),
53
+ summary: z.string().describe("One-line human-readable trust summary."),
54
+ warnings: z.array(z.string()).describe("Trust warnings (e.g. low arbitration dimension score)."),
55
+ breakdown: z
56
+ .array(z.object({
57
+ score: z.number().describe("Dimension score achieved."),
58
+ maxScore: z.number().describe("Dimension max possible score."),
59
+ description: z.string().describe("Dimension name / description."),
60
+ humanReadable: z.string().describe("Human-readable dimension explanation."),
61
+ }))
62
+ .describe("5-dimension breakdown: arbitration / reviews / fulfillment / fund_safety / transparency."),
63
+ })
64
+ .describe("ServiceTrustScore — 0-100 score across 5 trust dimensions."),
65
+ order_amount: z
66
+ .string()
67
+ .describe("Order amount used for fund-safety assessment, in smallest token unit (bigint as string)."),
68
+ depth: z
69
+ .enum(["browse", "evaluate", "preorder"])
70
+ .describe("Actual InfoPuzzle collection depth used (defaults to 'evaluate')."),
71
+ risk_score: z
72
+ .object({
73
+ total: z.number().min(0).max(100).describe("Overall risk score (0-100, higher = riskier)."),
74
+ level: z
75
+ .enum(["low", "medium_low", "medium_high", "high"])
76
+ .describe("Risk level label derived from the total score."),
77
+ red_flags: z.array(z.string()).describe("Critical risk red flags detected."),
78
+ advice: z.array(z.string()).describe("Risk mitigation advice."),
79
+ dimensions: z
80
+ .array(z.object({
81
+ name: z
82
+ .enum(["workflow", "fund", "trust", "behavior"])
83
+ .describe("Risk dimension name."),
84
+ score: z.number().describe("Dimension score achieved."),
85
+ max_score: z.number().describe("Dimension max possible score."),
86
+ checks: z.array(z.object({
87
+ id: z.string().describe("Check identifier."),
88
+ dimension: z
89
+ .enum(["workflow", "fund", "trust", "behavior"])
90
+ .describe("Dimension this check belongs to."),
91
+ description: z.string().describe("Check description."),
92
+ weight: z.number().describe("Check weight within its dimension (percentage)."),
93
+ passed: z.boolean().describe("Whether the check passed."),
94
+ advice: z.string().optional().describe("Advice when the check failed."),
95
+ })).describe("Individual risk checks within this dimension."),
96
+ }))
97
+ .describe("4-dimension breakdown: workflow / fund / trust / behavior."),
98
+ })
99
+ .optional()
100
+ .describe("RiskScore — present only when depth >= 'evaluate'."),
101
+ info_puzzle: z
102
+ .object({
103
+ completeness: z.number().min(0).max(1).describe("InfoPuzzle completeness ratio (0-1)."),
104
+ gaps: z.array(z.string()).describe("Missing key puzzle pieces."),
105
+ assembled_at: z.number().describe("Assembly timestamp (ms since epoch)."),
106
+ })
107
+ .optional()
108
+ .describe("InfoPuzzle summary — present only when depth >= 'evaluate'."),
109
+ })
110
+ .describe("Trust score result. Contains: trust_score (ServiceTrustScore), " +
111
+ "risk_score (RiskScore, when depth >= evaluate), info_puzzle summary, " +
112
+ "and service_basics snapshot."),
113
+ });
@@ -563,6 +563,230 @@
563
563
  ],
564
564
  "additionalProperties": false,
565
565
  "description": "Phase 4 industry evolution context (populated when industry_evolution service is enabled). Provides AI with industry health signals and evolution advice."
566
+ },
567
+ "guard_advice": {
568
+ "type": "object",
569
+ "properties": {
570
+ "current_round": {
571
+ "type": "string",
572
+ "enum": [
573
+ "R1",
574
+ "R2",
575
+ "R3",
576
+ "R4",
577
+ "R5",
578
+ "R6",
579
+ "R7",
580
+ "R8",
581
+ "R9",
582
+ "R10"
583
+ ],
584
+ "description": "Current R1-R10 dialogue round. R1=intent, R2=table, R3=tree, R4=rely, R5=binding, R6=review, R7=CREATE, R8=test, R9=bind, R10=verify. Example: 'R3'"
585
+ },
586
+ "puzzle_status": {
587
+ "type": "object",
588
+ "properties": {
589
+ "intent": {
590
+ "type": "boolean",
591
+ "description": "Intent dimension complete (action + rule + failure conditions)"
592
+ },
593
+ "binding": {
594
+ "type": "boolean",
595
+ "description": "Binding dimension complete (host object + field + circular ref)"
596
+ },
597
+ "data": {
598
+ "type": "boolean",
599
+ "description": "Data dimension complete (table entries + witnesses)"
600
+ },
601
+ "query": {
602
+ "type": "boolean",
603
+ "description": "Query dimension complete (query instructions if needed)"
604
+ },
605
+ "logic": {
606
+ "type": "boolean",
607
+ "description": "Logic dimension complete (root node returns Bool)"
608
+ },
609
+ "constraints": {
610
+ "type": "boolean",
611
+ "description": "Constraints dimension complete (10 Pitfalls checked)"
612
+ }
613
+ },
614
+ "required": [
615
+ "intent",
616
+ "binding",
617
+ "data",
618
+ "query",
619
+ "logic",
620
+ "constraints"
621
+ ],
622
+ "additionalProperties": false,
623
+ "description": "Information puzzle completeness (6 dimensions). Missing dimensions need user input before CREATE."
624
+ },
625
+ "matched_scene": {
626
+ "type": "string",
627
+ "description": "Matched Guard scene id from the 8 binding scenarios ledger. Example: 'machine_forward_guard'"
628
+ },
629
+ "scene_description": {
630
+ "type": "string",
631
+ "description": "Human-readable scene description. Example: '工作流节点推进验证(Forward.guard)'"
632
+ },
633
+ "scene_constraints": {
634
+ "type": "array",
635
+ "items": {
636
+ "type": "string"
637
+ },
638
+ "description": "Special constraints for the matched scene. Example: ['Machine 发布后 Forward.guard 不可修改']"
639
+ },
640
+ "suggested_patterns": {
641
+ "type": "array",
642
+ "items": {
643
+ "type": "string"
644
+ },
645
+ "description": "Suggested Guard patterns based on user intent. Example: ['时间锁','进度状态检查']"
646
+ },
647
+ "available_queries": {
648
+ "type": "array",
649
+ "items": {
650
+ "type": "object",
651
+ "properties": {
652
+ "id": {
653
+ "type": "integer",
654
+ "description": "Query instruction ID. Example: 1253"
655
+ },
656
+ "name": {
657
+ "type": "string",
658
+ "description": "Query instruction name. Example: 'progress.current_node_name'"
659
+ },
660
+ "objectType": {
661
+ "type": "string",
662
+ "description": "Target object type. Example: 'Progress'"
663
+ },
664
+ "returnType": {
665
+ "type": "string",
666
+ "description": "Return value type. Example: 'String'"
667
+ },
668
+ "description": {
669
+ "type": "string",
670
+ "description": "Query description"
671
+ }
672
+ },
673
+ "required": [
674
+ "id",
675
+ "name",
676
+ "objectType",
677
+ "returnType"
678
+ ],
679
+ "additionalProperties": false,
680
+ "description": "A Guard query instruction available for the current context (subset of GUARDQUERY 375 entries)."
681
+ },
682
+ "description": "Available query instructions for the current context (subset of 375 GUARDQUERY entries)"
683
+ },
684
+ "risk_warnings": {
685
+ "type": "array",
686
+ "items": {
687
+ "type": "string"
688
+ },
689
+ "description": "Risk warnings for the current Guard design. Example: ['Guard 创建后不可修改','时间锁测试用 1000ms']"
690
+ },
691
+ "pending_questions": {
692
+ "type": "array",
693
+ "items": {
694
+ "type": "string"
695
+ },
696
+ "description": "Questions for the user to complete the puzzle. Example: ['Guard 将绑定到哪个 Host Object?']"
697
+ },
698
+ "confirmation_text": {
699
+ "type": "string",
700
+ "description": "Structured semantic confirmation text for user review (generated when puzzle is complete). User must explicitly confirm before CREATE."
701
+ },
702
+ "test_result": {
703
+ "type": "object",
704
+ "properties": {
705
+ "status": {
706
+ "type": "string",
707
+ "enum": [
708
+ "pass",
709
+ "fail",
710
+ "not_tested"
711
+ ]
712
+ },
713
+ "failure_node": {
714
+ "type": "string",
715
+ "description": "Node that caused failure (if fail)"
716
+ },
717
+ "passport_id": {
718
+ "type": "string",
719
+ "description": "Generated Passport ID (if pass)"
720
+ }
721
+ },
722
+ "required": [
723
+ "status"
724
+ ],
725
+ "additionalProperties": false,
726
+ "description": "gen_passport static test result. Must pass before CREATE."
727
+ },
728
+ "risk_assessment": {
729
+ "type": "object",
730
+ "properties": {
731
+ "overall_risk": {
732
+ "type": "string",
733
+ "enum": [
734
+ "critical",
735
+ "high",
736
+ "medium",
737
+ "low",
738
+ "info"
739
+ ],
740
+ "description": "Overall risk level (highest from all risks)"
741
+ },
742
+ "risk_count": {
743
+ "type": "integer",
744
+ "description": "Total number of detected risks"
745
+ },
746
+ "critical_count": {
747
+ "type": "integer",
748
+ "description": "Number of critical risks"
749
+ },
750
+ "high_count": {
751
+ "type": "integer",
752
+ "description": "Number of high risks"
753
+ },
754
+ "needs_human_review": {
755
+ "type": "boolean",
756
+ "description": "Whether human review is required (critical or 2+ high risks)"
757
+ },
758
+ "top_risks": {
759
+ "type": "array",
760
+ "items": {
761
+ "type": "string"
762
+ },
763
+ "description": "Top risk titles (critical and high, max 3)"
764
+ },
765
+ "stakeholder_advice": {
766
+ "type": "object",
767
+ "additionalProperties": {
768
+ "type": "array",
769
+ "items": {
770
+ "type": "string"
771
+ }
772
+ },
773
+ "description": "Per-stakeholder advice. Key=stakeholder (customer/provider/arbitrator/claimant), value=advice list"
774
+ }
775
+ },
776
+ "required": [
777
+ "overall_risk",
778
+ "risk_count",
779
+ "critical_count",
780
+ "high_count",
781
+ "needs_human_review",
782
+ "top_risks"
783
+ ],
784
+ "additionalProperties": false,
785
+ "description": "Business-layer risk assessment (game theory, data source trust, logic gaps). Populated during Guard design to warn about business risks beyond syntax."
786
+ }
787
+ },
788
+ "additionalProperties": false,
789
+ "description": "Phase 5 Guard capability advice (populated when user intent involves Guard). Provides puzzle status, scene matching, suggested patterns, available queries, risk warnings, and confirmation text. AI uses this to guide Guard design dialogue (R1-R10)."
566
790
  }
567
791
  },
568
792
  "required": [
@@ -36,6 +36,16 @@
36
36
  "type": "string",
37
37
  "pattern": "^0x[0-9a-fA-F]{40}$",
38
38
  "description": "Final withdrawal EVM address; if omitted, assets remain in activeEvmAccount. When provided, the SDK uses the activeEvmAccount key to transfer to this address."
39
+ },
40
+ "idempotencyKey": {
41
+ "type": "string",
42
+ "minLength": 1,
43
+ "maxLength": 128,
44
+ "description": "Idempotency key to prevent duplicate deposits on retry. If a successful transfer with this key exists, returns it immediately (idempotentHit=true)."
45
+ },
46
+ "idempotentByParams": {
47
+ "type": "boolean",
48
+ "description": "If true, auto-generates an idempotency key from token+amount+withdrawTo. Use when you want implicit idempotency without managing explicit keys."
39
49
  }
40
50
  },
41
51
  "required": [
@@ -91,6 +101,14 @@
91
101
  "project": {
92
102
  "type": "string",
93
103
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
104
+ },
105
+ "client_schema_version": {
106
+ "type": "string",
107
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
108
+ },
109
+ "schema_strict_mode": {
110
+ "type": "boolean",
111
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
94
112
  }
95
113
  },
96
114
  "additionalProperties": false,
@@ -132,6 +150,14 @@
132
150
  "recipientWowAddress": {
133
151
  "type": "string",
134
152
  "description": "WOW recipient address or account name; defaults to env.account if omitted"
153
+ },
154
+ "idempotencyKey": {
155
+ "$ref": "#/definitions/bridge_operation/anyOf/0/properties/data/properties/idempotencyKey",
156
+ "description": "Idempotency key to prevent duplicate deposits on retry. If a successful transfer with this key exists, returns it immediately (idempotentHit=true)."
157
+ },
158
+ "idempotentByParams": {
159
+ "type": "boolean",
160
+ "description": "If true, auto-generates an idempotency key from token+amount+recipientWowAddress. Use when you want implicit idempotency without managing explicit keys."
135
161
  }
136
162
  },
137
163
  "required": [
@@ -186,6 +212,39 @@
186
212
  "additionalProperties": false,
187
213
  "description": "WOW→EVM claim (step 2): claim assets on EVM after bridge signed. Requires activeEvmAccount to have EVM gas. [Requires WOW mainnet env]"
188
214
  },
215
+ {
216
+ "type": "object",
217
+ "properties": {
218
+ "operation_type": {
219
+ "type": "string",
220
+ "const": "resume_transfer"
221
+ },
222
+ "data": {
223
+ "type": "object",
224
+ "properties": {
225
+ "transferId": {
226
+ "type": "string",
227
+ "description": "Transfer ID to resume (br_<timestamp>_<counter>)"
228
+ }
229
+ },
230
+ "required": [
231
+ "transferId"
232
+ ],
233
+ "additionalProperties": false,
234
+ "description": "Resume an interrupted transfer from its current step. Use this when a transfer was interrupted (e.g. MCP restart, network error) and you want to continue from where it left off. The SDK determines the current step and attempts to advance it: - If deposit step failed: retries the deposit - If deposit is pending/confirmed: waits for bridge signatures and proceeds to claim - If claim step is ready: executes the claim - If transfer is already complete: returns the existing record (idempotentHit=true) [Returns] The updated transfer record after attempting to advance it. [Requires env] WOW env is needed for WOW-side operations; EVM-side operations use activeEvmAccount."
235
+ },
236
+ "env": {
237
+ "$ref": "#/definitions/bridge_operation/anyOf/0/properties/env",
238
+ "description": "IMPORTANT: Execution environment includes: account for signing operations, network selection ([object Object]), additional Guard permissions, and more. Used to specify context information during the call. If account is not specified, the default account (\"\") will be used."
239
+ }
240
+ },
241
+ "required": [
242
+ "operation_type",
243
+ "data"
244
+ ],
245
+ "additionalProperties": false,
246
+ "description": "Resume an interrupted transfer from its current step. Safe to retry. [Requires WOW mainnet env for WOW-side operations]"
247
+ },
189
248
  {
190
249
  "type": "object",
191
250
  "properties": {
@@ -255,7 +314,7 @@
255
314
  "type": "object",
256
315
  "properties": {
257
316
  "network": {
258
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/network",
317
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/network",
259
318
  "description": "Specific chain; if omitted, queries all supported chains"
260
319
  },
261
320
  "tokens": {
@@ -301,7 +360,7 @@
301
360
  "type": "object",
302
361
  "properties": {
303
362
  "network": {
304
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/network",
363
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/network",
305
364
  "description": "Specific chain; if omitted, returns token lists for all supported chains"
306
365
  }
307
366
  },
@@ -349,7 +408,7 @@
349
408
  "description": "Filter by transfer direction"
350
409
  },
351
410
  "token": {
352
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/token",
411
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/token",
353
412
  "description": "Filter by token type (ETH/WETH/WBTC/USDC/USDT)"
354
413
  },
355
414
  "limit": {
@@ -421,7 +480,7 @@
421
480
  "description": "List all configured RPC endpoints with health status"
422
481
  },
423
482
  "network": {
424
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/network",
483
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/network",
425
484
  "description": "Target chain (defaults to Ethereum mainnet)"
426
485
  }
427
486
  },
@@ -440,7 +499,7 @@
440
499
  "description": "Append one or more RPC endpoints"
441
500
  },
442
501
  "network": {
443
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/network",
502
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/network",
444
503
  "description": "Target chain (defaults to Ethereum mainnet)"
445
504
  },
446
505
  "rpcUrls": {
@@ -469,7 +528,7 @@
469
528
  "description": "Remove one or more RPC endpoints"
470
529
  },
471
530
  "network": {
472
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/network",
531
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/network",
473
532
  "description": "Target chain (defaults to Ethereum mainnet)"
474
533
  },
475
534
  "rpcUrls": {
@@ -498,7 +557,7 @@
498
557
  "description": "Full replace all RPC endpoints"
499
558
  },
500
559
  "network": {
501
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/network",
560
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/network",
502
561
  "description": "Target chain (defaults to Ethereum mainnet)"
503
562
  },
504
563
  "rpcUrls": {
@@ -527,7 +586,7 @@
527
586
  "description": "Health check one or more RPC endpoints"
528
587
  },
529
588
  "network": {
530
- "$ref": "#/definitions/bridge_operation/anyOf/3/properties/data/properties/network",
589
+ "$ref": "#/definitions/bridge_operation/anyOf/4/properties/data/properties/network",
531
590
  "description": "Target chain (defaults to Ethereum mainnet)"
532
591
  },
533
592
  "rpcUrls": {
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://wowok.net/schemas/config_operation.json",
4
+ "title": "Config - Runtime Service Toggles",
5
+ "description": "Runtime configuration — toggle Phase 2/3/4 services on/off at runtime WITHOUT restarting the MCP server. Actions: list, toggle, enable, disable, reset, info. Services (9 total): confirm_gate, project_service, harness, graph_persist, semantic_rich, experience_layer, customer_intelligence, order_monitor, industry_evolution.",
6
+ "$ref": "#/definitions/config_operation",
7
+ "definitions": {
8
+ "config_operation": {
9
+ "type": "object",
10
+ "properties": {
11
+ "result": {
12
+ "description": "Config result — shape depends on action"
13
+ }
14
+ },
15
+ "additionalProperties": false
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://wowok.net/schemas/config_operation.json",
4
+ "title": "Config - Runtime Service Toggles",
5
+ "description": "Runtime configuration — toggle Phase 2/3/4 services on/off at runtime WITHOUT restarting the MCP server. Actions: list, toggle, enable, disable, reset, info. Services (9 total): confirm_gate, project_service, harness, graph_persist, semantic_rich, experience_layer, customer_intelligence, order_monitor, industry_evolution.",
6
+ "$ref": "#/definitions/config_operation",
7
+ "definitions": {
8
+ "config_operation": {
9
+ "type": "object",
10
+ "properties": {
11
+ "action": {
12
+ "type": "string",
13
+ "enum": [
14
+ "list",
15
+ "toggle",
16
+ "enable",
17
+ "disable",
18
+ "reset",
19
+ "info"
20
+ ],
21
+ "description": "Config action to perform"
22
+ },
23
+ "service": {
24
+ "type": "string",
25
+ "description": "Service name (required for toggle/enable/disable/reset/info)"
26
+ }
27
+ },
28
+ "required": [
29
+ "action"
30
+ ],
31
+ "additionalProperties": false
32
+ }
33
+ }
34
+ }