@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
@@ -40,12 +40,18 @@
40
40
  { "$ref": "#/definitions/ConvertSafeU64Node" },
41
41
  { "$ref": "#/definitions/ConvertSafeU128Node" },
42
42
  { "$ref": "#/definitions/ConvertSafeU256Node" },
43
+ { "$ref": "#/definitions/ValueTypeNode" },
43
44
  { "$ref": "#/definitions/VecLengthNode" },
44
45
  { "$ref": "#/definitions/VecContainsBoolNode" },
45
46
  { "$ref": "#/definitions/VecContainsAddressNode" },
46
47
  { "$ref": "#/definitions/VecContainsStringNode" },
47
48
  { "$ref": "#/definitions/VecContainsStringNocaseNode" },
48
49
  { "$ref": "#/definitions/VecContainsNumberNode" },
50
+ { "$ref": "#/definitions/VecIndexofBoolNode" },
51
+ { "$ref": "#/definitions/VecIndexofAddressNode" },
52
+ { "$ref": "#/definitions/VecIndexofStringNode" },
53
+ { "$ref": "#/definitions/VecIndexofStringNocaseNode" },
54
+ { "$ref": "#/definitions/VecIndexofNumberNode" },
49
55
  { "$ref": "#/definitions/QueryProgressHistoryFindNode" },
50
56
  { "$ref": "#/definitions/QueryProgressHistorySessionFindNode" },
51
57
  { "$ref": "#/definitions/QueryProgressHistorySessionForwardFindNode" },
@@ -554,6 +560,17 @@
554
560
  "returns": "U256",
555
561
  "description": "Returns U256. Safely converts a number to U256 with overflow protection."
556
562
  },
563
+ "ValueTypeNode": {
564
+ "type": "object",
565
+ "properties": {
566
+ "type": { "const": "value_type" },
567
+ "node": { "$ref": "#/definitions/GuardNodeRef" }
568
+ },
569
+ "required": ["type", "node"],
570
+ "additionalProperties": false,
571
+ "returns": "U8",
572
+ "description": "Returns U8. Gets the value type identifier (ValueType) of the child node value. Value types: Bool=0, Address=1, String=2, U8=3, U16=4, U32=5, U64=6, U128=7, U256=8, VecBool=9, VecAddress=10, VecString=11, VecU8=12, VecU16=13, VecU32=14, VecU64=15, VecU128=16, VecU256=17, VecVecU8=18, Value=19."
573
+ },
557
574
  "VecLengthNode": {
558
575
  "type": "object",
559
576
  "properties": {
@@ -620,6 +637,71 @@
620
637
  "returns": "Bool",
621
638
  "description": "Returns Bool. Checks if vector contains a number."
622
639
  },
640
+ "VecIndexofBoolNode": {
641
+ "type": "object",
642
+ "properties": {
643
+ "type": { "const": "vec_indexof_bool" },
644
+ "nodeLeft": { "$ref": "#/definitions/GuardNodeRef" },
645
+ "nodeRight": { "$ref": "#/definitions/GuardNodeRef" },
646
+ "order": { "type": "string", "enum": ["forward", "backward"] }
647
+ },
648
+ "required": ["type", "nodeLeft", "nodeRight", "order"],
649
+ "additionalProperties": false,
650
+ "returns": "U64",
651
+ "description": "Returns U64. Finds the index of a bool value in a vector. nodeLeft must be VecBool (ValueType=9) or Value (ValueType=19), nodeRight must be Bool (ValueType=0) or Value (ValueType=19). Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
652
+ },
653
+ "VecIndexofAddressNode": {
654
+ "type": "object",
655
+ "properties": {
656
+ "type": { "const": "vec_indexof_address" },
657
+ "nodeLeft": { "$ref": "#/definitions/GuardNodeRef" },
658
+ "nodeRight": { "$ref": "#/definitions/GuardNodeRef" },
659
+ "order": { "type": "string", "enum": ["forward", "backward"] }
660
+ },
661
+ "required": ["type", "nodeLeft", "nodeRight", "order"],
662
+ "additionalProperties": false,
663
+ "returns": "U64",
664
+ "description": "Returns U64. Finds the index of an address value in a vector. nodeLeft must be VecAddress (ValueType=10) or Value (ValueType=19), nodeRight must be Address (ValueType=1) or Value (ValueType=19). Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
665
+ },
666
+ "VecIndexofStringNode": {
667
+ "type": "object",
668
+ "properties": {
669
+ "type": { "const": "vec_indexof_string" },
670
+ "nodeLeft": { "$ref": "#/definitions/GuardNodeRef" },
671
+ "nodeRight": { "$ref": "#/definitions/GuardNodeRef" },
672
+ "order": { "type": "string", "enum": ["forward", "backward"] }
673
+ },
674
+ "required": ["type", "nodeLeft", "nodeRight", "order"],
675
+ "additionalProperties": false,
676
+ "returns": "U64",
677
+ "description": "Returns U64. Finds the index of a string value in a vector. nodeLeft must be VecString (ValueType=11) or Value (ValueType=19), nodeRight must be String (ValueType=2) or Value (ValueType=19). Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
678
+ },
679
+ "VecIndexofStringNocaseNode": {
680
+ "type": "object",
681
+ "properties": {
682
+ "type": { "const": "vec_indexof_string_nocase" },
683
+ "nodeLeft": { "$ref": "#/definitions/GuardNodeRef" },
684
+ "nodeRight": { "$ref": "#/definitions/GuardNodeRef" },
685
+ "order": { "type": "string", "enum": ["forward", "backward"] }
686
+ },
687
+ "required": ["type", "nodeLeft", "nodeRight", "order"],
688
+ "additionalProperties": false,
689
+ "returns": "U64",
690
+ "description": "Returns U64. Finds the index of a string value in a vector (case-insensitive). nodeLeft must be VecString (ValueType=11) or Value (ValueType=19), nodeRight must be String (ValueType=2) or Value (ValueType=19). Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
691
+ },
692
+ "VecIndexofNumberNode": {
693
+ "type": "object",
694
+ "properties": {
695
+ "type": { "const": "vec_indexof_number" },
696
+ "nodeLeft": { "$ref": "#/definitions/GuardNodeRef" },
697
+ "nodeRight": { "$ref": "#/definitions/GuardNodeRef" },
698
+ "order": { "type": "string", "enum": ["forward", "backward"] }
699
+ },
700
+ "required": ["type", "nodeLeft", "nodeRight", "order"],
701
+ "additionalProperties": false,
702
+ "returns": "U64",
703
+ "description": "Returns U64. Finds the index of a number value in a vector. nodeLeft must be VecU8 (12), VecU16 (13), VecU32 (14), VecU64 (15), VecU128 (16), VecU256 (17) or Value (ValueType=19), nodeRight must be U8 (3), U16 (4), U32 (5), U64 (6), U128 (7), U256 (8) or Value (ValueType=19). Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
704
+ },
623
705
  "QueryProgressHistoryFindNode": {
624
706
  "type": "object",
625
707
  "properties": {
@@ -70,6 +70,14 @@
70
70
  "project": {
71
71
  "type": "string",
72
72
  "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."
73
+ },
74
+ "client_schema_version": {
75
+ "type": "string",
76
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
77
+ },
78
+ "schema_strict_mode": {
79
+ "type": "boolean",
80
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
73
81
  }
74
82
  },
75
83
  "additionalProperties": false,
@@ -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-15T01:23:33.991Z",
5
+ "generatedAt": "2026-07-15T23:18:07.531Z",
6
6
  "tools": [
7
7
  {
8
8
  "name": "onchain_operations",
@@ -87,6 +87,24 @@
87
87
  "title": "Bridge - Cross-Chain Operations",
88
88
  "path": "./bridge_operation.schema.json",
89
89
  "outputPath": "./bridge_operation.output.json"
90
+ },
91
+ {
92
+ "name": "project_operation",
93
+ "title": "Project - Namespace & Object Graph",
94
+ "path": "./project_operation.schema.json",
95
+ "outputPath": "./project_operation.output.json"
96
+ },
97
+ {
98
+ "name": "config_operation",
99
+ "title": "Config - Runtime Service Toggles",
100
+ "path": "./config_operation.schema.json",
101
+ "outputPath": "./config_operation.output.json"
102
+ },
103
+ {
104
+ "name": "trust_score",
105
+ "title": "Trust Score - Service Risk & Trust Assessment",
106
+ "path": "./trust_score.schema.json",
107
+ "outputPath": "./trust_score.output.json"
90
108
  }
91
109
  ],
92
110
  "operations": [
@@ -70,6 +70,14 @@
70
70
  "project": {
71
71
  "type": "string",
72
72
  "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."
73
+ },
74
+ "client_schema_version": {
75
+ "type": "string",
76
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
77
+ },
78
+ "schema_strict_mode": {
79
+ "type": "boolean",
80
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
73
81
  }
74
82
  },
75
83
  "additionalProperties": false,
@@ -1596,6 +1596,230 @@
1596
1596
  ],
1597
1597
  "additionalProperties": false,
1598
1598
  "description": "Phase 4 industry evolution context (populated when industry_evolution service is enabled). Provides AI with industry health signals and evolution advice."
1599
+ },
1600
+ "guard_advice": {
1601
+ "type": "object",
1602
+ "properties": {
1603
+ "current_round": {
1604
+ "type": "string",
1605
+ "enum": [
1606
+ "R1",
1607
+ "R2",
1608
+ "R3",
1609
+ "R4",
1610
+ "R5",
1611
+ "R6",
1612
+ "R7",
1613
+ "R8",
1614
+ "R9",
1615
+ "R10"
1616
+ ],
1617
+ "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'"
1618
+ },
1619
+ "puzzle_status": {
1620
+ "type": "object",
1621
+ "properties": {
1622
+ "intent": {
1623
+ "type": "boolean",
1624
+ "description": "Intent dimension complete (action + rule + failure conditions)"
1625
+ },
1626
+ "binding": {
1627
+ "type": "boolean",
1628
+ "description": "Binding dimension complete (host object + field + circular ref)"
1629
+ },
1630
+ "data": {
1631
+ "type": "boolean",
1632
+ "description": "Data dimension complete (table entries + witnesses)"
1633
+ },
1634
+ "query": {
1635
+ "type": "boolean",
1636
+ "description": "Query dimension complete (query instructions if needed)"
1637
+ },
1638
+ "logic": {
1639
+ "type": "boolean",
1640
+ "description": "Logic dimension complete (root node returns Bool)"
1641
+ },
1642
+ "constraints": {
1643
+ "type": "boolean",
1644
+ "description": "Constraints dimension complete (10 Pitfalls checked)"
1645
+ }
1646
+ },
1647
+ "required": [
1648
+ "intent",
1649
+ "binding",
1650
+ "data",
1651
+ "query",
1652
+ "logic",
1653
+ "constraints"
1654
+ ],
1655
+ "additionalProperties": false,
1656
+ "description": "Information puzzle completeness (6 dimensions). Missing dimensions need user input before CREATE."
1657
+ },
1658
+ "matched_scene": {
1659
+ "type": "string",
1660
+ "description": "Matched Guard scene id from the 8 binding scenarios ledger. Example: 'machine_forward_guard'"
1661
+ },
1662
+ "scene_description": {
1663
+ "type": "string",
1664
+ "description": "Human-readable scene description. Example: '工作流节点推进验证(Forward.guard)'"
1665
+ },
1666
+ "scene_constraints": {
1667
+ "type": "array",
1668
+ "items": {
1669
+ "type": "string"
1670
+ },
1671
+ "description": "Special constraints for the matched scene. Example: ['Machine 发布后 Forward.guard 不可修改']"
1672
+ },
1673
+ "suggested_patterns": {
1674
+ "type": "array",
1675
+ "items": {
1676
+ "type": "string"
1677
+ },
1678
+ "description": "Suggested Guard patterns based on user intent. Example: ['时间锁','进度状态检查']"
1679
+ },
1680
+ "available_queries": {
1681
+ "type": "array",
1682
+ "items": {
1683
+ "type": "object",
1684
+ "properties": {
1685
+ "id": {
1686
+ "type": "integer",
1687
+ "description": "Query instruction ID. Example: 1253"
1688
+ },
1689
+ "name": {
1690
+ "type": "string",
1691
+ "description": "Query instruction name. Example: 'progress.current_node_name'"
1692
+ },
1693
+ "objectType": {
1694
+ "type": "string",
1695
+ "description": "Target object type. Example: 'Progress'"
1696
+ },
1697
+ "returnType": {
1698
+ "type": "string",
1699
+ "description": "Return value type. Example: 'String'"
1700
+ },
1701
+ "description": {
1702
+ "type": "string",
1703
+ "description": "Query description"
1704
+ }
1705
+ },
1706
+ "required": [
1707
+ "id",
1708
+ "name",
1709
+ "objectType",
1710
+ "returnType"
1711
+ ],
1712
+ "additionalProperties": false,
1713
+ "description": "A Guard query instruction available for the current context (subset of GUARDQUERY 375 entries)."
1714
+ },
1715
+ "description": "Available query instructions for the current context (subset of 375 GUARDQUERY entries)"
1716
+ },
1717
+ "risk_warnings": {
1718
+ "type": "array",
1719
+ "items": {
1720
+ "type": "string"
1721
+ },
1722
+ "description": "Risk warnings for the current Guard design. Example: ['Guard 创建后不可修改','时间锁测试用 1000ms']"
1723
+ },
1724
+ "pending_questions": {
1725
+ "type": "array",
1726
+ "items": {
1727
+ "type": "string"
1728
+ },
1729
+ "description": "Questions for the user to complete the puzzle. Example: ['Guard 将绑定到哪个 Host Object?']"
1730
+ },
1731
+ "confirmation_text": {
1732
+ "type": "string",
1733
+ "description": "Structured semantic confirmation text for user review (generated when puzzle is complete). User must explicitly confirm before CREATE."
1734
+ },
1735
+ "test_result": {
1736
+ "type": "object",
1737
+ "properties": {
1738
+ "status": {
1739
+ "type": "string",
1740
+ "enum": [
1741
+ "pass",
1742
+ "fail",
1743
+ "not_tested"
1744
+ ]
1745
+ },
1746
+ "failure_node": {
1747
+ "type": "string",
1748
+ "description": "Node that caused failure (if fail)"
1749
+ },
1750
+ "passport_id": {
1751
+ "type": "string",
1752
+ "description": "Generated Passport ID (if pass)"
1753
+ }
1754
+ },
1755
+ "required": [
1756
+ "status"
1757
+ ],
1758
+ "additionalProperties": false,
1759
+ "description": "gen_passport static test result. Must pass before CREATE."
1760
+ },
1761
+ "risk_assessment": {
1762
+ "type": "object",
1763
+ "properties": {
1764
+ "overall_risk": {
1765
+ "type": "string",
1766
+ "enum": [
1767
+ "critical",
1768
+ "high",
1769
+ "medium",
1770
+ "low",
1771
+ "info"
1772
+ ],
1773
+ "description": "Overall risk level (highest from all risks)"
1774
+ },
1775
+ "risk_count": {
1776
+ "type": "integer",
1777
+ "description": "Total number of detected risks"
1778
+ },
1779
+ "critical_count": {
1780
+ "type": "integer",
1781
+ "description": "Number of critical risks"
1782
+ },
1783
+ "high_count": {
1784
+ "type": "integer",
1785
+ "description": "Number of high risks"
1786
+ },
1787
+ "needs_human_review": {
1788
+ "type": "boolean",
1789
+ "description": "Whether human review is required (critical or 2+ high risks)"
1790
+ },
1791
+ "top_risks": {
1792
+ "type": "array",
1793
+ "items": {
1794
+ "type": "string"
1795
+ },
1796
+ "description": "Top risk titles (critical and high, max 3)"
1797
+ },
1798
+ "stakeholder_advice": {
1799
+ "type": "object",
1800
+ "additionalProperties": {
1801
+ "type": "array",
1802
+ "items": {
1803
+ "type": "string"
1804
+ }
1805
+ },
1806
+ "description": "Per-stakeholder advice. Key=stakeholder (customer/provider/arbitrator/claimant), value=advice list"
1807
+ }
1808
+ },
1809
+ "required": [
1810
+ "overall_risk",
1811
+ "risk_count",
1812
+ "critical_count",
1813
+ "high_count",
1814
+ "needs_human_review",
1815
+ "top_risks"
1816
+ ],
1817
+ "additionalProperties": false,
1818
+ "description": "Business-layer risk assessment (game theory, data source trust, logic gaps). Populated during Guard design to warn about business risks beyond syntax."
1819
+ }
1820
+ },
1821
+ "additionalProperties": false,
1822
+ "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)."
1599
1823
  }
1600
1824
  },
1601
1825
  "required": [