@retailcrm/embed-ui-v1-endpoint 0.9.21 → 0.9.22-alpha.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 (46) hide show
  1. package/README.md +70 -11
  2. package/bin/embed-ui-v1-endpoint-mcp.mjs +10 -0
  3. package/bin/embed-ui-v1-endpoint.mjs +416 -0
  4. package/dist/common/targets.cjs +61 -130
  5. package/dist/common/targets.d.ts +38 -27
  6. package/dist/common/targets.documentation.d.ts +302 -0
  7. package/dist/common/targets.js +61 -130
  8. package/dist/mcp/server.cjs +115 -0
  9. package/dist/mcp/server.d.ts +3 -0
  10. package/dist/mcp/server.js +97 -0
  11. package/dist/meta.json +618 -0
  12. package/docs/README.md +8 -6
  13. package/docs/create-endpoint.md +8 -10
  14. package/docs/define-page-runner.md +3 -3
  15. package/docs/define-widget-runner.md +2 -2
  16. package/docs/layout.md +14 -37
  17. package/docs/menu-placements.md +11 -13
  18. package/docs/page-routes.md +12 -14
  19. package/docs/run-endpoint.md +4 -4
  20. package/docs/targets/customer-card-communications-after.yml +48 -0
  21. package/docs/targets/customer-card-inwork-after.yml +48 -0
  22. package/docs/targets/customer-card-inwork-before.yml +48 -0
  23. package/docs/targets/customer-card-phone.yml +49 -0
  24. package/docs/targets/order-card-comment-manager-before.yml +51 -0
  25. package/docs/targets/order-card-common-after.yml +51 -0
  26. package/docs/targets/order-card-common-before.yml +51 -0
  27. package/docs/targets/order-card-customer-after.yml +51 -0
  28. package/docs/targets/order-card-customer-before.yml +51 -0
  29. package/docs/targets/order-card-customer-email.yml +51 -0
  30. package/docs/targets/order-card-customer-phone.yml +51 -0
  31. package/docs/targets/order-card-delivery-address.yml +51 -0
  32. package/docs/targets/order-card-delivery-after.yml +51 -0
  33. package/docs/targets/order-card-delivery-before.yml +51 -0
  34. package/docs/targets/order-card-dimensions-before.yml +51 -0
  35. package/docs/targets/order-card-list-after.yml +51 -0
  36. package/docs/targets/order-card-list-before.yml +51 -0
  37. package/docs/targets/order-card-payment-before.yml +51 -0
  38. package/docs/targets/order-card-store-before.yml +51 -0
  39. package/docs/targets/order-mg-delivery-after.yml +51 -0
  40. package/docs/targets/order-mg-delivery-before.yml +51 -0
  41. package/docs/targets/order-mg-list-after.yml +51 -0
  42. package/docs/targets/order-mg-list-before.yml +51 -0
  43. package/docs/targets/order-mg-payment-after.yml +51 -0
  44. package/docs/targets/order-mg-payment-before.yml +51 -0
  45. package/docs/targets.md +42 -17
  46. package/package.json +27 -7
package/dist/meta.json ADDED
@@ -0,0 +1,618 @@
1
+ {
2
+ "targets": [
3
+ {
4
+ "id": "customer/card:phone",
5
+ "contexts": [
6
+ "customer/card",
7
+ "customer/card:phone",
8
+ "user/current",
9
+ "settings"
10
+ ],
11
+ "customContexts": [
12
+ "customer"
13
+ ],
14
+ "actions": [],
15
+ "description": {
16
+ "en-GB": "Widget for customer phone list item",
17
+ "es-ES": "Widget para el elemento de la lista de teléfonos del cliente",
18
+ "ru-RU": "Виджет для элемента списка телефонов клиента"
19
+ },
20
+ "location": {
21
+ "en-GB": "Right after the phone number in the list",
22
+ "es-ES": "Justo después del número de teléfono en la lista",
23
+ "ru-RU": "Сразу после номера телефона в списке"
24
+ }
25
+ },
26
+ {
27
+ "id": "customer/card:communications.after",
28
+ "contexts": [
29
+ "customer/card",
30
+ "user/current",
31
+ "settings"
32
+ ],
33
+ "customContexts": [
34
+ "customer"
35
+ ],
36
+ "actions": [],
37
+ "description": {
38
+ "en-GB": "Widget for enhancing the communication section in the left column of the customer page.",
39
+ "es-ES": "Widget para ampliar la sección de comunicación en la columna izquierda de la página del cliente.",
40
+ "ru-RU": "Виджет для дополнения секции коммуникаций в левой колонке страницы клиента."
41
+ },
42
+ "location": {
43
+ "en-GB": "Right below the short summary, in the communication section",
44
+ "es-ES": "Justo debajo del resumen breve, en la sección de comunicación",
45
+ "ru-RU": "Сразу под краткой сводкой, в секции коммуникаций"
46
+ }
47
+ },
48
+ {
49
+ "id": "customer/card:inWork.before",
50
+ "contexts": [
51
+ "customer/card",
52
+ "user/current",
53
+ "settings"
54
+ ],
55
+ "customContexts": [
56
+ "customer"
57
+ ],
58
+ "actions": [],
59
+ "description": {
60
+ "en-GB": "Widget for the contact request item",
61
+ "es-ES": "Widget para el elemento de solicitud de contacto",
62
+ "ru-RU": "Виджет для элемента обращений"
63
+ },
64
+ "location": {
65
+ "en-GB": "At the beginning of the \"In Progress\" block in the client card",
66
+ "es-ES": "Al principio del bloque \"En progreso\" en la tarjeta del cliente",
67
+ "ru-RU": "В начале блока \"В работе\" в карточке клиента"
68
+ }
69
+ },
70
+ {
71
+ "id": "customer/card:inWork.after",
72
+ "contexts": [
73
+ "customer/card",
74
+ "user/current",
75
+ "settings"
76
+ ],
77
+ "customContexts": [
78
+ "customer"
79
+ ],
80
+ "actions": [],
81
+ "description": {
82
+ "en-GB": "Widget for the contact request item",
83
+ "es-ES": "Widget para el elemento de solicitud de contacto",
84
+ "ru-RU": "Виджет для элемента обращений"
85
+ },
86
+ "location": {
87
+ "en-GB": "At the end of the \"In progress\" block in the client card",
88
+ "es-ES": "Al final del bloque \"En progreso\" en la tarjeta del cliente",
89
+ "ru-RU": "В конце блока \"В работе\" в карточке клиента"
90
+ }
91
+ },
92
+ {
93
+ "id": "order/card:common.before",
94
+ "contexts": [
95
+ "order/card",
96
+ "order/card:settings",
97
+ "user/current",
98
+ "settings"
99
+ ],
100
+ "customContexts": [
101
+ "order"
102
+ ],
103
+ "actions": [
104
+ "order/card"
105
+ ],
106
+ "description": {
107
+ "en-GB": "Widget for the section with common data",
108
+ "es-ES": "Widget para la sección con datos comunes",
109
+ "ru-RU": "Виджет для секции с основными данными"
110
+ },
111
+ "location": {
112
+ "en-GB": "Section start, right above the input fields",
113
+ "es-ES": "Inicio de la sección, justo encima de los campos de entrada",
114
+ "ru-RU": "Начало секции, над полями ввода"
115
+ }
116
+ },
117
+ {
118
+ "id": "order/card:common.after",
119
+ "contexts": [
120
+ "order/card",
121
+ "order/card:settings",
122
+ "user/current",
123
+ "settings"
124
+ ],
125
+ "customContexts": [
126
+ "order"
127
+ ],
128
+ "actions": [
129
+ "order/card"
130
+ ],
131
+ "description": {
132
+ "en-GB": "Widget for the section with common data",
133
+ "es-ES": "Widget para la sección con datos comunes",
134
+ "ru-RU": "Виджет для секции с основными данными"
135
+ },
136
+ "location": {
137
+ "en-GB": "Section end, right under the input fields",
138
+ "es-ES": "Fin de la sección, justo debajo de los campos de entrada",
139
+ "ru-RU": "Конец секции, под полями ввода"
140
+ }
141
+ },
142
+ {
143
+ "id": "order/card:customer.before",
144
+ "contexts": [
145
+ "order/card",
146
+ "order/card:settings",
147
+ "user/current",
148
+ "settings"
149
+ ],
150
+ "customContexts": [
151
+ "order"
152
+ ],
153
+ "actions": [
154
+ "order/card"
155
+ ],
156
+ "description": {
157
+ "en-GB": "Widget for the section with customer data",
158
+ "es-ES": "Widget para la sección con datos del cliente",
159
+ "ru-RU": "Виджет для секции с данными клиента"
160
+ },
161
+ "location": {
162
+ "en-GB": "Section start, right above the input fields",
163
+ "es-ES": "Inicio de la sección, justo encima de los campos de entrada",
164
+ "ru-RU": "Начало секции, над полями ввода"
165
+ }
166
+ },
167
+ {
168
+ "id": "order/card:customer.after",
169
+ "contexts": [
170
+ "order/card",
171
+ "order/card:settings",
172
+ "user/current",
173
+ "settings"
174
+ ],
175
+ "customContexts": [
176
+ "order"
177
+ ],
178
+ "actions": [
179
+ "order/card"
180
+ ],
181
+ "description": {
182
+ "en-GB": "Widget for the section with customer data",
183
+ "es-ES": "Widget para la sección con datos del cliente",
184
+ "ru-RU": "Виджет для секции с данными клиента"
185
+ },
186
+ "location": {
187
+ "en-GB": "Section end, right under the input fields",
188
+ "es-ES": "Fin de la sección, justo debajo de los campos de entrada",
189
+ "ru-RU": "Конец секции, под полями ввода"
190
+ }
191
+ },
192
+ {
193
+ "id": "order/card:customer.email",
194
+ "contexts": [
195
+ "order/card",
196
+ "order/card:settings",
197
+ "user/current",
198
+ "settings"
199
+ ],
200
+ "customContexts": [
201
+ "order"
202
+ ],
203
+ "actions": [
204
+ "order/card"
205
+ ],
206
+ "description": {
207
+ "en-GB": "Widget for customer email input field",
208
+ "es-ES": "Widget para el campo de entrada del correo electrónico del cliente",
209
+ "ru-RU": "Виджет для поля ввода email клиента"
210
+ },
211
+ "location": {
212
+ "en-GB": "Right after the input field",
213
+ "es-ES": "Justo después del campo de entrada",
214
+ "ru-RU": "Сразу после поля ввода"
215
+ }
216
+ },
217
+ {
218
+ "id": "order/card:customer.phone",
219
+ "contexts": [
220
+ "order/card",
221
+ "order/card:settings",
222
+ "user/current",
223
+ "settings"
224
+ ],
225
+ "customContexts": [
226
+ "order"
227
+ ],
228
+ "actions": [
229
+ "order/card"
230
+ ],
231
+ "description": {
232
+ "en-GB": "Widget for customer phone input field",
233
+ "es-ES": "Widget para el campo de entrada del teléfono del cliente",
234
+ "ru-RU": "Виджет для поля ввода телефона клиента"
235
+ },
236
+ "location": {
237
+ "en-GB": "Right after the input field",
238
+ "es-ES": "Justo después del campo de entrada",
239
+ "ru-RU": "Сразу после поля ввода"
240
+ }
241
+ },
242
+ {
243
+ "id": "order/card:list.before",
244
+ "contexts": [
245
+ "order/card",
246
+ "order/card:settings",
247
+ "user/current",
248
+ "settings"
249
+ ],
250
+ "customContexts": [
251
+ "order"
252
+ ],
253
+ "actions": [
254
+ "order/card"
255
+ ],
256
+ "description": {
257
+ "en-GB": "Widget for the list of ordered items",
258
+ "es-ES": "Widget para la lista de artículos pedidos",
259
+ "ru-RU": "Виджет для списка позиций заказа"
260
+ },
261
+ "location": {
262
+ "en-GB": "Section start, right above the input fields",
263
+ "es-ES": "Inicio de la sección, justo encima de los campos de entrada",
264
+ "ru-RU": "Начало секции, над полями ввода"
265
+ }
266
+ },
267
+ {
268
+ "id": "order/card:list.after",
269
+ "contexts": [
270
+ "order/card",
271
+ "order/card:settings",
272
+ "user/current",
273
+ "settings"
274
+ ],
275
+ "customContexts": [
276
+ "order"
277
+ ],
278
+ "actions": [
279
+ "order/card"
280
+ ],
281
+ "description": {
282
+ "en-GB": "Widget for the list of ordered items",
283
+ "es-ES": "Widget para la lista de artículos pedidos",
284
+ "ru-RU": "Виджет для списка позиций заказа"
285
+ },
286
+ "location": {
287
+ "en-GB": "Section start, right under the list",
288
+ "es-ES": "Inicio de la sección, justo debajo de la lista",
289
+ "ru-RU": "Начало секции, под списком"
290
+ }
291
+ },
292
+ {
293
+ "id": "order/card:store.before",
294
+ "contexts": [
295
+ "order/card",
296
+ "order/card:settings",
297
+ "user/current",
298
+ "settings"
299
+ ],
300
+ "customContexts": [
301
+ "order"
302
+ ],
303
+ "actions": [
304
+ "order/card"
305
+ ],
306
+ "description": {
307
+ "en-GB": "Widget for the section with warehouse data",
308
+ "es-ES": "Widget para la sección con datos del almacén",
309
+ "ru-RU": "Виджет для секции с данными склада"
310
+ },
311
+ "location": {
312
+ "en-GB": "Section start, right above the input fields",
313
+ "es-ES": "Inicio de la sección, justo encima de los campos de entrada",
314
+ "ru-RU": "Начало секции, над полями ввода"
315
+ }
316
+ },
317
+ {
318
+ "id": "order/card:dimensions.before",
319
+ "contexts": [
320
+ "order/card",
321
+ "order/card:settings",
322
+ "user/current",
323
+ "settings"
324
+ ],
325
+ "customContexts": [
326
+ "order"
327
+ ],
328
+ "actions": [
329
+ "order/card"
330
+ ],
331
+ "description": {
332
+ "en-GB": "Widget for the section with dimensions and weight",
333
+ "es-ES": "Widget para la sección con dimensiones y peso",
334
+ "ru-RU": "Виджет для секции с данными габаритов и веса"
335
+ },
336
+ "location": {
337
+ "en-GB": "Section start, right above the input fields",
338
+ "es-ES": "Inicio de la sección, justo encima de los campos de entrada",
339
+ "ru-RU": "Начало секции, над полями ввода"
340
+ }
341
+ },
342
+ {
343
+ "id": "order/card:delivery.before",
344
+ "contexts": [
345
+ "order/card",
346
+ "order/card:settings",
347
+ "user/current",
348
+ "settings"
349
+ ],
350
+ "customContexts": [
351
+ "order"
352
+ ],
353
+ "actions": [
354
+ "order/card"
355
+ ],
356
+ "description": {
357
+ "en-GB": "Widget for the section with delivery data",
358
+ "es-ES": "Widget para la sección con datos de entrega",
359
+ "ru-RU": "Виджет для секции с данными доставки"
360
+ },
361
+ "location": {
362
+ "en-GB": "Section start, right above the input fields",
363
+ "es-ES": "Inicio de la sección, justo encima de los campos de entrada",
364
+ "ru-RU": "Начало секции, над полями ввода"
365
+ }
366
+ },
367
+ {
368
+ "id": "order/card:delivery.after",
369
+ "contexts": [
370
+ "order/card",
371
+ "order/card:settings",
372
+ "user/current",
373
+ "settings"
374
+ ],
375
+ "customContexts": [
376
+ "order"
377
+ ],
378
+ "actions": [
379
+ "order/card"
380
+ ],
381
+ "description": {
382
+ "en-GB": "Widget for the section with delivery data",
383
+ "es-ES": "Widget para la sección con datos de entrega",
384
+ "ru-RU": "Виджет для секции с данными доставки"
385
+ },
386
+ "location": {
387
+ "en-GB": "Section end, right under the input fields",
388
+ "es-ES": "Fin de la sección, justo debajo de los campos de entrada",
389
+ "ru-RU": "Конец секции, под полями ввода"
390
+ }
391
+ },
392
+ {
393
+ "id": "order/card:delivery.address",
394
+ "contexts": [
395
+ "order/card",
396
+ "order/card:settings",
397
+ "user/current",
398
+ "settings"
399
+ ],
400
+ "customContexts": [
401
+ "order"
402
+ ],
403
+ "actions": [
404
+ "order/card"
405
+ ],
406
+ "description": {
407
+ "en-GB": "Widget for delivery address input field",
408
+ "es-ES": "Widget para el campo de entrada de la dirección de entrega",
409
+ "ru-RU": "Виджет для поля ввода адреса доставки"
410
+ },
411
+ "location": {
412
+ "en-GB": "Right under the input field",
413
+ "es-ES": "Justo debajo del campo de entrada",
414
+ "ru-RU": "Под полем ввода адреса"
415
+ }
416
+ },
417
+ {
418
+ "id": "order/card:payment.before",
419
+ "contexts": [
420
+ "order/card",
421
+ "order/card:settings",
422
+ "user/current",
423
+ "settings"
424
+ ],
425
+ "customContexts": [
426
+ "order"
427
+ ],
428
+ "actions": [
429
+ "order/card"
430
+ ],
431
+ "description": {
432
+ "en-GB": "Widget for the section with payment data",
433
+ "es-ES": "Widget para la sección con datos de pago",
434
+ "ru-RU": "Виджет для секции с данными по оплате"
435
+ },
436
+ "location": {
437
+ "en-GB": "Section start, right above the input fields",
438
+ "es-ES": "Inicio de la sección, justo encima de los campos de entrada",
439
+ "ru-RU": "Начало секции, над полями ввода"
440
+ }
441
+ },
442
+ {
443
+ "id": "order/card:comment.manager.before",
444
+ "contexts": [
445
+ "order/card",
446
+ "order/card:settings",
447
+ "user/current",
448
+ "settings"
449
+ ],
450
+ "customContexts": [
451
+ "order"
452
+ ],
453
+ "actions": [
454
+ "order/card"
455
+ ],
456
+ "description": {
457
+ "en-GB": "Widget for the block \"Manager comment\"",
458
+ "es-ES": "Widget para el bloque \"Comentario del asesor\"",
459
+ "ru-RU": "Виджет для блока \"Комментарии оператора\""
460
+ },
461
+ "location": {
462
+ "en-GB": "Section start, right above the input field",
463
+ "es-ES": "Inicio de la sección, justo encima del campo de entrada",
464
+ "ru-RU": "Начало секции, над полем ввода"
465
+ }
466
+ },
467
+ {
468
+ "id": "order/mg:list.before",
469
+ "contexts": [
470
+ "order/card",
471
+ "order/card:settings",
472
+ "user/current",
473
+ "settings"
474
+ ],
475
+ "customContexts": [
476
+ "order"
477
+ ],
478
+ "actions": [
479
+ "order/card"
480
+ ],
481
+ "description": {
482
+ "en-GB": "Widget for the block \"Order items\"",
483
+ "es-ES": "Widget para el bloque \"Artículos del pedido\"",
484
+ "ru-RU": "Виджет для блока \"Состав заказа\""
485
+ },
486
+ "location": {
487
+ "en-GB": "Section start, right above the list of order items",
488
+ "es-ES": "Inicio de la sección, justo encima de la lista de artículos del pedido",
489
+ "ru-RU": "Начало секции, над списком товарных позиций"
490
+ }
491
+ },
492
+ {
493
+ "id": "order/mg:list.after",
494
+ "contexts": [
495
+ "order/card",
496
+ "order/card:settings",
497
+ "user/current",
498
+ "settings"
499
+ ],
500
+ "customContexts": [
501
+ "order"
502
+ ],
503
+ "actions": [
504
+ "order/card"
505
+ ],
506
+ "description": {
507
+ "en-GB": "Widget for the block \"Order items\"",
508
+ "es-ES": "Widget para el bloque \"Artículos del pedido\"",
509
+ "ru-RU": "Виджет для блока \"Состав заказа\""
510
+ },
511
+ "location": {
512
+ "en-GB": "Section end, right after the list of order items and before the discount, privilege selection, etc. input fields",
513
+ "es-ES": "Fin de la sección, justo después de la lista de artículos del pedido y antes de los campos de entrada de descuento, selección de privilegios, etc.",
514
+ "ru-RU": "Конец секции, сразу после списка товарных позиций и до полей ввода скидки, выбора привилегии и т.п."
515
+ }
516
+ },
517
+ {
518
+ "id": "order/mg:delivery.before",
519
+ "contexts": [
520
+ "order/card",
521
+ "order/card:settings",
522
+ "user/current",
523
+ "settings"
524
+ ],
525
+ "customContexts": [
526
+ "order"
527
+ ],
528
+ "actions": [
529
+ "order/card"
530
+ ],
531
+ "description": {
532
+ "en-GB": "Widget for the block \"Delivery\"",
533
+ "es-ES": "Widget para el bloque \"Entrega\"",
534
+ "ru-RU": "Виджет для блока \"Доставка\""
535
+ },
536
+ "location": {
537
+ "en-GB": "Section start, right above the input field",
538
+ "es-ES": "Inicio de la sección, justo encima del campo de entrada",
539
+ "ru-RU": "Начало секции, над полем ввода"
540
+ }
541
+ },
542
+ {
543
+ "id": "order/mg:delivery.after",
544
+ "contexts": [
545
+ "order/card",
546
+ "order/card:settings",
547
+ "user/current",
548
+ "settings"
549
+ ],
550
+ "customContexts": [
551
+ "order"
552
+ ],
553
+ "actions": [
554
+ "order/card"
555
+ ],
556
+ "description": {
557
+ "en-GB": "Widget for the block \"Delivery\"",
558
+ "es-ES": "Widget para el bloque \"Entrega\"",
559
+ "ru-RU": "Виджет для блока \"Доставка\""
560
+ },
561
+ "location": {
562
+ "en-GB": "Section end, right under the input fields",
563
+ "es-ES": "Fin de la sección, justo debajo de los campos de entrada",
564
+ "ru-RU": "Конец секции, под полями ввода"
565
+ }
566
+ },
567
+ {
568
+ "id": "order/mg:payment.before",
569
+ "contexts": [
570
+ "order/card",
571
+ "order/card:settings",
572
+ "user/current",
573
+ "settings"
574
+ ],
575
+ "customContexts": [
576
+ "order"
577
+ ],
578
+ "actions": [
579
+ "order/card"
580
+ ],
581
+ "description": {
582
+ "en-GB": "Widget for the block \"Payment\"",
583
+ "es-ES": "Widget para el bloque \"Pago\"",
584
+ "ru-RU": "Виджет для блока \"Оплата\""
585
+ },
586
+ "location": {
587
+ "en-GB": "Section start, right above the input field",
588
+ "es-ES": "Inicio de la sección, justo encima del campo de entrada",
589
+ "ru-RU": "Начало секции, над полем ввода"
590
+ }
591
+ },
592
+ {
593
+ "id": "order/mg:payment.after",
594
+ "contexts": [
595
+ "order/card",
596
+ "order/card:settings",
597
+ "user/current",
598
+ "settings"
599
+ ],
600
+ "customContexts": [
601
+ "order"
602
+ ],
603
+ "actions": [
604
+ "order/card"
605
+ ],
606
+ "description": {
607
+ "en-GB": "Widget for the block \"Payment\"",
608
+ "es-ES": "Widget para el bloque \"Pago\"",
609
+ "ru-RU": "Виджет для блока \"Оплата\""
610
+ },
611
+ "location": {
612
+ "en-GB": "Section end, after the list of payments, controls, and custom fields",
613
+ "es-ES": "Fin de la sección, después de la lista de pagos, controles y campos personalizados",
614
+ "ru-RU": "Конец секции, после списка оплат, контролов и пользовательских полей"
615
+ }
616
+ }
617
+ ]
618
+ }
package/docs/README.md CHANGED
@@ -1,18 +1,20 @@
1
1
  # Документация `@retailcrm/embed-ui-v1-endpoint`
2
2
 
3
- В этом каталоге собраны продвинутые гайды по публичному API `v1-endpoint`.
3
+ В этом каталоге собраны практические гайды по публичному API `v1-endpoint`.
4
4
 
5
5
  ## По методам
6
6
 
7
7
  - [`defineRunner`](./define-runner.md) — объединение page/widget runners в один endpoint runner.
8
- - [`definePageRunner`](./define-page-runner.md) — запуск remote-страниц по `code`.
9
- - [`defineWidgetRunner`](./define-widget-runner.md) — запуск remote-виджетов по `target`.
8
+ - [`definePageRunner`](./define-page-runner.md) — запуск встраиваемых страниц по `code`.
9
+ - [`defineWidgetRunner`](./define-widget-runner.md) — запуск встраиваемых виджетов по `target`.
10
10
  - [`createEndpoint`](./create-endpoint.md) — ручное создание endpoint с transport/messenger.
11
11
  - [`runEndpoint`](./run-endpoint.md) — запуск endpoint в worker одной строкой.
12
12
 
13
13
  ## Дополнительно
14
14
 
15
15
  - [`targets` и `defineTarget`](./targets.md) — типизированные цели для виджетов.
16
- - [`menu-placements`](./menu-placements.md) — как описывать меню и пункты навигации, из которых открываются remote-страницы.
17
- - [`page-routes`](./page-routes.md)как связывать page `code`, CRM route и `definePageRunner`.
18
- - [`layout`](./layout.md) — практический гайд по layout-паттернам страниц, шторок и модалок.
16
+ - [`targets/*.yml`](./targets/) — сгенерированные AI-friendly описания встроенных widget targets на английском.
17
+ - MCP-сервер `embed-ui-v1-endpoint-mcp` — поставляемый stdio server, который отдаёт `targets/*.yml` как MCP resources.
18
+ - [`menu-placements`](./menu-placements.md) — как описывать меню и пункты навигации, из которых открываются встраиваемые страницы.
19
+ - [`page-routes`](./page-routes.md) — как связывать page `code`, CRM-маршрут и `definePageRunner`.
20
+ - [`layout`](./layout.md) — практический гайд по паттернам компоновки страниц, шторок и модалок.