@wowok/agent-mcp 2.7.0 → 2.7.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/dist/customer/risk-assessment.d.ts +5 -1
  2. package/dist/customer/risk-assessment.js +4 -4
  3. package/dist/evaluation/arbitration-game.d.ts +16 -0
  4. package/dist/evaluation/arbitration-game.js +48 -0
  5. package/dist/evaluation/builtins/demand-match.d.ts +15 -0
  6. package/dist/evaluation/builtins/demand-match.js +153 -0
  7. package/dist/evaluation/builtins/index.d.ts +3 -0
  8. package/dist/evaluation/builtins/index.js +10 -0
  9. package/dist/evaluation/builtins/service-risk.d.ts +6 -0
  10. package/dist/evaluation/builtins/service-risk.js +55 -0
  11. package/dist/evaluation/capability.d.ts +50 -0
  12. package/dist/evaluation/capability.js +13 -0
  13. package/dist/evaluation/composer.d.ts +13 -0
  14. package/dist/evaluation/composer.js +40 -0
  15. package/dist/evaluation/engine.d.ts +18 -0
  16. package/dist/evaluation/engine.js +175 -0
  17. package/dist/evaluation/extract.d.ts +30 -0
  18. package/dist/evaluation/extract.js +115 -0
  19. package/dist/evaluation/gap.d.ts +2 -0
  20. package/dist/evaluation/gap.js +100 -0
  21. package/dist/evaluation/index.d.ts +11 -0
  22. package/dist/evaluation/index.js +11 -0
  23. package/dist/evaluation/node-game.d.ts +34 -0
  24. package/dist/evaluation/node-game.js +57 -0
  25. package/dist/evaluation/region.d.ts +10 -0
  26. package/dist/evaluation/region.js +36 -0
  27. package/dist/evaluation/types.d.ts +76 -0
  28. package/dist/evaluation/types.js +1 -0
  29. package/dist/evaluation/user-injection.d.ts +6 -0
  30. package/dist/evaluation/user-injection.js +27 -0
  31. package/dist/examples/education-contact-create.json +40 -0
  32. package/dist/examples/freelance-contact-create.json +40 -0
  33. package/dist/examples/insurance-machine-create.json +1 -1
  34. package/dist/examples/insurance-service-allocators.json +1 -1
  35. package/dist/examples/machine-publish.json +1 -1
  36. package/dist/examples/rental-ziroom-service-create.json +1 -1
  37. package/dist/examples/retail-adv-guard-messenger-proof-create.json +1 -1
  38. package/dist/examples/retail-myshop-service-create.json +1 -1
  39. package/dist/examples/retail-myshop-service-customer-required.json +1 -1
  40. package/dist/examples/subscription-contact-create.json +40 -0
  41. package/dist/examples/threebody-machine-create.json +1 -1
  42. package/dist/examples/travel-machine-create.json +1 -1
  43. package/dist/examples/travel-service-create.json +1 -1
  44. package/dist/harness/plan.js +42 -3
  45. package/dist/intent/enrich.d.ts +1 -0
  46. package/dist/intent/enrich.js +67 -0
  47. package/dist/intent/index.d.ts +23 -0
  48. package/dist/intent/index.js +60 -0
  49. package/dist/intent/matcher.d.ts +2 -0
  50. package/dist/intent/matcher.js +81 -0
  51. package/dist/intent/store.d.ts +19 -0
  52. package/dist/intent/store.js +55 -0
  53. package/dist/intent/types.d.ts +33 -0
  54. package/dist/intent/types.js +10 -0
  55. package/dist/knowledge/arbitration-risk.js +1 -11
  56. package/dist/knowledge/contact-templates.d.ts +27 -0
  57. package/dist/knowledge/contact-templates.js +60 -0
  58. package/dist/knowledge/examples-scanner.js +21 -3
  59. package/dist/knowledge/industry-generalizer.js +21 -21
  60. package/dist/knowledge/machine-risk.js +0 -1
  61. package/dist/knowledge/mcp-schema-audit.d.ts +1 -1
  62. package/dist/knowledge/mcp-schema-audit.js +8 -4
  63. package/dist/knowledge/service-risk.js +38 -2
  64. package/dist/knowledge/service-templates.js +1 -1
  65. package/dist/knowledge/service-translation.js +2 -2
  66. package/dist/knowledge/template-registry.d.ts +1 -1
  67. package/dist/knowledge/template-registry.js +13 -1
  68. package/dist/knowledge/tools-reference.js +23 -0
  69. package/dist/persona/analyzer.d.ts +16 -0
  70. package/dist/persona/analyzer.js +66 -0
  71. package/dist/persona/bridge.d.ts +5 -0
  72. package/dist/persona/bridge.js +86 -0
  73. package/dist/persona/defaults.d.ts +4 -0
  74. package/dist/persona/defaults.js +195 -0
  75. package/dist/persona/experience-bridge.d.ts +3 -0
  76. package/dist/persona/experience-bridge.js +23 -0
  77. package/dist/persona/index.d.ts +18 -0
  78. package/dist/persona/index.js +71 -0
  79. package/dist/persona/model.d.ts +7 -0
  80. package/dist/persona/model.js +111 -0
  81. package/dist/persona/store.d.ts +19 -0
  82. package/dist/persona/store.js +62 -0
  83. package/dist/persona/types.d.ts +43 -0
  84. package/dist/persona/types.js +5 -0
  85. package/dist/project/handlers.d.ts +5 -0
  86. package/dist/project/handlers.js +23 -1
  87. package/dist/project/semantic-graph.js +47 -0
  88. package/dist/rules.d.ts +2 -0
  89. package/dist/rules.js +43 -0
  90. package/dist/schema/call/semantic.js +23 -1
  91. package/dist/schema/call/service.js +7 -1
  92. package/dist/schema/evaluation/index.d.ts +4239 -0
  93. package/dist/schema/evaluation/index.js +356 -0
  94. package/dist/schema/index.d.ts +4 -0
  95. package/dist/schema/index.js +4 -0
  96. package/dist/schema/intent-radar/index.d.ts +284 -0
  97. package/dist/schema/intent-radar/index.js +89 -0
  98. package/dist/schema/operations.js +1 -1
  99. package/dist/schema/persona/index.d.ts +1985 -0
  100. package/dist/schema/persona/index.js +148 -0
  101. package/dist/schema/project/index.d.ts +2 -2
  102. package/dist/schema/query/index.js +6 -0
  103. package/dist/schema/sync-layer4.d.ts +1 -1
  104. package/dist/schema/sync-layer4.js +9 -5
  105. package/dist/schema/task-status.d.ts +168 -0
  106. package/dist/schema/task-status.js +36 -0
  107. package/dist/schema/trust/index.js +1 -1
  108. package/dist/schemas/evaluation_operation.output.json +677 -0
  109. package/dist/schemas/evaluation_operation.schema.json +903 -0
  110. package/dist/schemas/index.json +25 -1
  111. package/dist/schemas/intent_radar.output.json +229 -0
  112. package/dist/schemas/intent_radar.schema.json +135 -0
  113. package/dist/schemas/onchain_operations.schema.json +2 -2
  114. package/dist/schemas/onchain_operations_service.schema.json +2 -2
  115. package/dist/schemas/persona_operation.output.json +389 -0
  116. package/dist/schemas/persona_operation.schema.json +247 -0
  117. package/dist/schemas/query_task_status.output.json +115 -0
  118. package/dist/schemas/query_task_status.schema.json +24 -0
  119. package/dist/schemas/query_toolkit.output.json +1 -1
  120. package/dist/schemas/trust_score.schema.json +1 -1
  121. package/dist/tools/handlers/evaluation.d.ts +2 -0
  122. package/dist/tools/handlers/evaluation.js +123 -0
  123. package/dist/tools/handlers/intent-radar.d.ts +2 -0
  124. package/dist/tools/handlers/intent-radar.js +76 -0
  125. package/dist/tools/handlers/onchain.js +98 -0
  126. package/dist/tools/handlers/persona.d.ts +4 -0
  127. package/dist/tools/handlers/persona.js +89 -0
  128. package/dist/tools/handlers/task-status.d.ts +0 -168
  129. package/dist/tools/handlers/task-status.js +0 -29
  130. package/dist/tools/index.js +83 -7
  131. package/dist/tools/wip-deploy-assist.d.ts +1 -1
  132. package/dist/tools/wip-deploy-assist.js +33 -5
  133. package/package.json +2 -2
@@ -0,0 +1,389 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://wowok.net/schemas/persona_operation.json",
4
+ "title": "Persona - User Identity Setting",
5
+ "description": "Read/write the user's systematic identity setting (persona): preferences, competitive strategy, experience rules, self profile, and spec. Each persona has a long-term layer (stable) and a current layer (transient, higher priority), bound to a scope: system (all accounts) or account (one chain address, higher priority).",
6
+ "$ref": "#/definitions/persona_operation",
7
+ "definitions": {
8
+ "persona_operation": {
9
+ "anyOf": [
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "action": {
14
+ "type": "string",
15
+ "const": "get"
16
+ },
17
+ "effective": {
18
+ "type": "object",
19
+ "properties": {
20
+ "scope": {
21
+ "type": "string",
22
+ "enum": [
23
+ "system",
24
+ "account"
25
+ ]
26
+ },
27
+ "account": {
28
+ "type": "string"
29
+ },
30
+ "role": {
31
+ "type": "string",
32
+ "enum": [
33
+ "merchant",
34
+ "user",
35
+ "arbitrator"
36
+ ]
37
+ },
38
+ "industries": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string",
42
+ "enum": [
43
+ "freelance",
44
+ "rental",
45
+ "education",
46
+ "travel",
47
+ "subscription",
48
+ "retail"
49
+ ]
50
+ }
51
+ },
52
+ "layer": {
53
+ "type": "object",
54
+ "properties": {
55
+ "identity": {
56
+ "type": "object",
57
+ "properties": {
58
+ "region": {
59
+ "type": "string"
60
+ },
61
+ "languages": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string"
65
+ }
66
+ },
67
+ "self_description": {
68
+ "type": "string"
69
+ }
70
+ },
71
+ "additionalProperties": false
72
+ },
73
+ "preferences": {
74
+ "type": "object",
75
+ "additionalProperties": {}
76
+ },
77
+ "strategy": {
78
+ "type": "array",
79
+ "items": {
80
+ "type": "string"
81
+ }
82
+ },
83
+ "rules": {
84
+ "type": "array",
85
+ "items": {
86
+ "type": "string"
87
+ }
88
+ },
89
+ "requirements": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ }
94
+ },
95
+ "spec": {
96
+ "type": "string"
97
+ }
98
+ },
99
+ "additionalProperties": false
100
+ },
101
+ "sources": {
102
+ "type": "array",
103
+ "items": {
104
+ "type": "object",
105
+ "properties": {
106
+ "scope": {
107
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/scope"
108
+ },
109
+ "account": {
110
+ "type": "string"
111
+ },
112
+ "part": {
113
+ "type": "string",
114
+ "enum": [
115
+ "long_term",
116
+ "current"
117
+ ]
118
+ }
119
+ },
120
+ "required": [
121
+ "scope",
122
+ "part"
123
+ ],
124
+ "additionalProperties": false
125
+ }
126
+ }
127
+ },
128
+ "required": [
129
+ "scope",
130
+ "role",
131
+ "industries",
132
+ "layer",
133
+ "sources"
134
+ ],
135
+ "additionalProperties": false
136
+ },
137
+ "context_text": {
138
+ "type": "string"
139
+ },
140
+ "injection": {
141
+ "type": "object",
142
+ "additionalProperties": {}
143
+ }
144
+ },
145
+ "required": [
146
+ "action",
147
+ "effective",
148
+ "context_text",
149
+ "injection"
150
+ ],
151
+ "additionalProperties": false
152
+ },
153
+ {
154
+ "type": "object",
155
+ "properties": {
156
+ "action": {
157
+ "type": "string",
158
+ "const": "list"
159
+ },
160
+ "personas": {
161
+ "type": "array",
162
+ "items": {
163
+ "type": "object",
164
+ "properties": {
165
+ "version": {
166
+ "type": "number"
167
+ },
168
+ "scope": {
169
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/scope"
170
+ },
171
+ "account": {
172
+ "type": "string"
173
+ },
174
+ "role": {
175
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/role"
176
+ },
177
+ "industries": {
178
+ "type": "array",
179
+ "items": {
180
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/industries/items"
181
+ }
182
+ },
183
+ "long_term": {
184
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/layer"
185
+ },
186
+ "current": {
187
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/layer"
188
+ },
189
+ "updated_at": {
190
+ "type": "number"
191
+ }
192
+ },
193
+ "required": [
194
+ "version",
195
+ "scope",
196
+ "role",
197
+ "industries",
198
+ "long_term",
199
+ "current",
200
+ "updated_at"
201
+ ],
202
+ "additionalProperties": false
203
+ }
204
+ },
205
+ "defaults": {
206
+ "type": "array",
207
+ "items": {
208
+ "$ref": "#/definitions/persona_operation/anyOf/1/properties/personas/items"
209
+ }
210
+ }
211
+ },
212
+ "required": [
213
+ "action",
214
+ "personas",
215
+ "defaults"
216
+ ],
217
+ "additionalProperties": false
218
+ },
219
+ {
220
+ "type": "object",
221
+ "properties": {
222
+ "action": {
223
+ "type": "string",
224
+ "const": "set"
225
+ },
226
+ "persona": {
227
+ "$ref": "#/definitions/persona_operation/anyOf/1/properties/personas/items"
228
+ },
229
+ "line_count": {
230
+ "type": "number"
231
+ }
232
+ },
233
+ "required": [
234
+ "action",
235
+ "persona",
236
+ "line_count"
237
+ ],
238
+ "additionalProperties": false
239
+ },
240
+ {
241
+ "type": "object",
242
+ "properties": {
243
+ "action": {
244
+ "type": "string",
245
+ "const": "analyze"
246
+ },
247
+ "analysis": {
248
+ "type": "object",
249
+ "properties": {
250
+ "role": {
251
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/role"
252
+ },
253
+ "industries": {
254
+ "type": "array",
255
+ "items": {
256
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/industries/items"
257
+ }
258
+ },
259
+ "preferences": {
260
+ "type": "object",
261
+ "additionalProperties": {}
262
+ },
263
+ "requirements": {
264
+ "type": "array",
265
+ "items": {
266
+ "type": "string"
267
+ }
268
+ },
269
+ "rules": {
270
+ "type": "array",
271
+ "items": {
272
+ "type": "string"
273
+ }
274
+ },
275
+ "suggestions": {
276
+ "type": "array",
277
+ "items": {
278
+ "type": "object",
279
+ "properties": {
280
+ "field": {
281
+ "type": "string"
282
+ },
283
+ "value": {},
284
+ "reason": {
285
+ "type": "string"
286
+ }
287
+ },
288
+ "required": [
289
+ "field",
290
+ "reason"
291
+ ],
292
+ "additionalProperties": false
293
+ }
294
+ },
295
+ "confidence": {
296
+ "type": "number"
297
+ }
298
+ },
299
+ "required": [
300
+ "industries",
301
+ "preferences",
302
+ "requirements",
303
+ "rules",
304
+ "suggestions",
305
+ "confidence"
306
+ ],
307
+ "additionalProperties": false
308
+ }
309
+ },
310
+ "required": [
311
+ "action",
312
+ "analysis"
313
+ ],
314
+ "additionalProperties": false
315
+ },
316
+ {
317
+ "type": "object",
318
+ "properties": {
319
+ "action": {
320
+ "type": "string",
321
+ "const": "apply"
322
+ },
323
+ "persona": {
324
+ "$ref": "#/definitions/persona_operation/anyOf/1/properties/personas/items"
325
+ },
326
+ "effective": {
327
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective"
328
+ },
329
+ "applied": {
330
+ "type": "array",
331
+ "items": {
332
+ "$ref": "#/definitions/persona_operation/anyOf/3/properties/analysis/properties/suggestions/items"
333
+ }
334
+ }
335
+ },
336
+ "required": [
337
+ "action",
338
+ "persona",
339
+ "effective",
340
+ "applied"
341
+ ],
342
+ "additionalProperties": false
343
+ },
344
+ {
345
+ "type": "object",
346
+ "properties": {
347
+ "action": {
348
+ "type": "string",
349
+ "const": "sync"
350
+ },
351
+ "persona": {
352
+ "$ref": "#/definitions/persona_operation/anyOf/1/properties/personas/items"
353
+ },
354
+ "applied": {
355
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective/properties/layer"
356
+ },
357
+ "effective": {
358
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/effective"
359
+ }
360
+ },
361
+ "required": [
362
+ "action",
363
+ "persona",
364
+ "applied",
365
+ "effective"
366
+ ],
367
+ "additionalProperties": false
368
+ },
369
+ {
370
+ "type": "object",
371
+ "properties": {
372
+ "action": {
373
+ "type": "string",
374
+ "const": "remove"
375
+ },
376
+ "removed": {
377
+ "type": "boolean"
378
+ }
379
+ },
380
+ "required": [
381
+ "action",
382
+ "removed"
383
+ ],
384
+ "additionalProperties": false
385
+ }
386
+ ]
387
+ }
388
+ }
389
+ }
@@ -0,0 +1,247 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://wowok.net/schemas/persona_operation.json",
4
+ "title": "Persona - User Identity Setting",
5
+ "description": "Read/write the user's systematic identity setting (persona): preferences, competitive strategy, experience rules, self profile, and spec. Each persona has a long-term layer (stable) and a current layer (transient, higher priority), bound to a scope: system (all accounts) or account (one chain address, higher priority).",
6
+ "$ref": "#/definitions/persona_operation",
7
+ "definitions": {
8
+ "persona_operation": {
9
+ "anyOf": [
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "action": {
14
+ "type": "string",
15
+ "const": "get"
16
+ },
17
+ "account": {
18
+ "type": "string",
19
+ "description": "Chain account address; omitted = system only."
20
+ },
21
+ "industry": {
22
+ "type": "string",
23
+ "enum": [
24
+ "freelance",
25
+ "rental",
26
+ "education",
27
+ "travel",
28
+ "subscription",
29
+ "retail"
30
+ ]
31
+ },
32
+ "role": {
33
+ "type": "string",
34
+ "enum": [
35
+ "merchant",
36
+ "user",
37
+ "arbitrator"
38
+ ]
39
+ }
40
+ },
41
+ "required": [
42
+ "action"
43
+ ],
44
+ "additionalProperties": false
45
+ },
46
+ {
47
+ "type": "object",
48
+ "properties": {
49
+ "action": {
50
+ "type": "string",
51
+ "const": "list"
52
+ }
53
+ },
54
+ "required": [
55
+ "action"
56
+ ],
57
+ "additionalProperties": false
58
+ },
59
+ {
60
+ "type": "object",
61
+ "properties": {
62
+ "action": {
63
+ "type": "string",
64
+ "const": "set"
65
+ },
66
+ "scope": {
67
+ "type": "string",
68
+ "enum": [
69
+ "system",
70
+ "account"
71
+ ]
72
+ },
73
+ "account": {
74
+ "type": "string",
75
+ "description": "Required when scope=account."
76
+ },
77
+ "role": {
78
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/role"
79
+ },
80
+ "industries": {
81
+ "type": "array",
82
+ "items": {
83
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/industry"
84
+ },
85
+ "default": []
86
+ },
87
+ "long_term": {
88
+ "type": "object",
89
+ "properties": {
90
+ "identity": {
91
+ "type": "object",
92
+ "properties": {
93
+ "region": {
94
+ "type": "string"
95
+ },
96
+ "languages": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "string"
100
+ }
101
+ },
102
+ "self_description": {
103
+ "type": "string"
104
+ }
105
+ },
106
+ "additionalProperties": false
107
+ },
108
+ "preferences": {
109
+ "type": "object",
110
+ "additionalProperties": {}
111
+ },
112
+ "strategy": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "string"
116
+ }
117
+ },
118
+ "rules": {
119
+ "type": "array",
120
+ "items": {
121
+ "type": "string"
122
+ }
123
+ },
124
+ "requirements": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "string"
128
+ }
129
+ },
130
+ "spec": {
131
+ "type": "string"
132
+ }
133
+ },
134
+ "additionalProperties": false
135
+ },
136
+ "current": {
137
+ "$ref": "#/definitions/persona_operation/anyOf/2/properties/long_term"
138
+ }
139
+ },
140
+ "required": [
141
+ "action",
142
+ "scope",
143
+ "role"
144
+ ],
145
+ "additionalProperties": false
146
+ },
147
+ {
148
+ "type": "object",
149
+ "properties": {
150
+ "action": {
151
+ "type": "string",
152
+ "const": "analyze"
153
+ },
154
+ "context": {
155
+ "type": "string",
156
+ "description": "Free-form context: website URL, experience summary, self description, goal."
157
+ }
158
+ },
159
+ "required": [
160
+ "action",
161
+ "context"
162
+ ],
163
+ "additionalProperties": false
164
+ },
165
+ {
166
+ "type": "object",
167
+ "properties": {
168
+ "action": {
169
+ "type": "string",
170
+ "const": "apply"
171
+ },
172
+ "context": {
173
+ "type": "string",
174
+ "description": "Free-form context whose extracted signals feed the CURRENT layer."
175
+ },
176
+ "scope": {
177
+ "$ref": "#/definitions/persona_operation/anyOf/2/properties/scope"
178
+ },
179
+ "account": {
180
+ "type": "string"
181
+ },
182
+ "role": {
183
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/role"
184
+ },
185
+ "industries": {
186
+ "type": "array",
187
+ "items": {
188
+ "$ref": "#/definitions/persona_operation/anyOf/0/properties/industry"
189
+ }
190
+ },
191
+ "mode": {
192
+ "type": "string",
193
+ "enum": [
194
+ "merge",
195
+ "replace"
196
+ ],
197
+ "description": "merge (default) unions strategy/rules/requirements into current; replace discards the existing current layer."
198
+ }
199
+ },
200
+ "required": [
201
+ "action",
202
+ "context",
203
+ "scope"
204
+ ],
205
+ "additionalProperties": false
206
+ },
207
+ {
208
+ "type": "object",
209
+ "properties": {
210
+ "action": {
211
+ "type": "string",
212
+ "const": "sync"
213
+ },
214
+ "account": {
215
+ "type": "string",
216
+ "description": "Account whose behavior (experience layer) is merged into its CURRENT layer. Omit to sync the system persona."
217
+ }
218
+ },
219
+ "required": [
220
+ "action"
221
+ ],
222
+ "additionalProperties": false
223
+ },
224
+ {
225
+ "type": "object",
226
+ "properties": {
227
+ "action": {
228
+ "type": "string",
229
+ "const": "remove"
230
+ },
231
+ "scope": {
232
+ "$ref": "#/definitions/persona_operation/anyOf/2/properties/scope"
233
+ },
234
+ "account": {
235
+ "type": "string"
236
+ }
237
+ },
238
+ "required": [
239
+ "action",
240
+ "scope"
241
+ ],
242
+ "additionalProperties": false
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ }