@besales/mcp 1.0.0-beta.4 → 1.0.0-beta.7

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 (56) hide show
  1. package/README.md +5 -3
  2. package/dist/http/api-client.d.ts +18 -0
  3. package/dist/http/api-client.js +33 -1
  4. package/dist/http/api-client.js.map +1 -1
  5. package/dist/resources/docs/platforms.md +63 -0
  6. package/dist/schemas/mcp-tools.json +847 -30
  7. package/dist/tools/definitions/agent-design.d.ts +2 -0
  8. package/dist/tools/definitions/agent-design.js +5 -0
  9. package/dist/tools/definitions/agent-design.js.map +1 -1
  10. package/dist/tools/definitions/agent-settings.d.ts +1 -0
  11. package/dist/tools/definitions/agent-settings.js +2 -0
  12. package/dist/tools/definitions/agent-settings.js.map +1 -1
  13. package/dist/tools/definitions/api-tool-request.d.ts +4 -2
  14. package/dist/tools/definitions/dialogue-nudge.d.ts +7 -0
  15. package/dist/tools/definitions/dialogue-nudge.js +139 -0
  16. package/dist/tools/definitions/dialogue-nudge.js.map +1 -0
  17. package/dist/tools/definitions/platform-setup.d.ts +1 -0
  18. package/dist/tools/definitions/task-state.d.ts +1 -1
  19. package/dist/tools/definitions/telegram-personal-connect.d.ts +12 -0
  20. package/dist/tools/definitions/telegram-personal-connect.js +61 -0
  21. package/dist/tools/definitions/telegram-personal-connect.js.map +1 -0
  22. package/dist/tools/definitions/telegram-personal-management.d.ts +1 -1
  23. package/dist/tools/definitions/telegram-personal-profile.d.ts +24 -0
  24. package/dist/tools/definitions/telegram-personal-profile.js +154 -0
  25. package/dist/tools/definitions/telegram-personal-profile.js.map +1 -0
  26. package/dist/tools/definitions/telegram-personal-proxies.d.ts +42 -0
  27. package/dist/tools/definitions/telegram-personal-proxies.js +204 -0
  28. package/dist/tools/definitions/telegram-personal-proxies.js.map +1 -0
  29. package/dist/tools/definitions/telegram-proxy-stock.d.ts +34 -0
  30. package/dist/tools/definitions/telegram-proxy-stock.js +129 -0
  31. package/dist/tools/definitions/telegram-proxy-stock.js.map +1 -0
  32. package/dist/tools/definitions.d.ts +98 -2
  33. package/dist/tools/definitions.js +11 -0
  34. package/dist/tools/definitions.js.map +1 -1
  35. package/dist/tools/follow-up-request.js +3 -0
  36. package/dist/tools/follow-up-request.js.map +1 -1
  37. package/dist/tools/operation-recovery.d.ts +1 -1
  38. package/dist/tools/operation-recovery.js +1 -1
  39. package/dist/tools/operation-recovery.js.map +1 -1
  40. package/dist/tools/registry-mapping.cases.js +235 -0
  41. package/dist/tools/registry-mapping.cases.js.map +1 -1
  42. package/dist/tools/registry-test-fixtures.js +5 -1
  43. package/dist/tools/registry-test-fixtures.js.map +1 -1
  44. package/dist/tools/registry.js +18 -4
  45. package/dist/tools/registry.js.map +1 -1
  46. package/dist/tools/result.d.ts +1 -0
  47. package/dist/tools/result.js +57 -5
  48. package/dist/tools/result.js.map +1 -1
  49. package/docs/dialogue-nudge.md +50 -0
  50. package/docs/failure-semantics.md +4 -1
  51. package/docs/help-navigation.md +2 -0
  52. package/docs/telegram-personal-management.md +80 -3
  53. package/docs/telegram-personal-proxies.md +135 -0
  54. package/package.json +1 -1
  55. package/scripts/telegram-personal-profile-mutants.mjs +96 -0
  56. package/scripts/telegram-personal-proxy-mutants.mjs +171 -0
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export declare function errorToolResult(message: string, structuredError?: Struc
32
32
  * читается по-разному в зависимости от того, мог ли вызов что-то изменить и безопасен ли повтор.
33
33
  */
34
34
  export interface ToolErrorContext {
35
+ readonly toolName?: string;
35
36
  readonly conflictInstructions?: string;
36
37
  readonly restartToolName?: string;
37
38
  readonly verifyWithToolName?: string;
@@ -189,14 +189,20 @@ function outcomeIsAmbiguous(context) {
189
189
  *
190
190
  * ⛔ Совет повторить здесь опаснее самой ошибки: повторное создание заведёт вторую сущность,
191
191
  * повторный запуск волны отправит сообщения людям второй раз, повторный перевыпуск отзовёт
192
- * ключ, который партнёр только что получил. Поэтому текст называет проверку, а не повтор.
192
+ * ключ, который партнёр только что получил. Для песочницы безопасен тот же запуск с прежним ключом.
193
193
  */
194
194
  function ambiguousOutcomeResult(cause, context) {
195
- const verify = context.verifyWithToolName
196
- ? `Сверьтесь через \`${context.verifyWithToolName}\`.`
197
- : 'Сверьтесь состоянием на стороне Besales (списком или *_status-инструментом этой операции).';
195
+ const isSandboxStart = context.toolName === 'besales_sandbox_run_start';
196
+ const verify = isSandboxStart
197
+ ? 'Повтори besales_sandbox_run_start с теми же аргументами и тем же request_key из requestIdentity: сервер вернёт тот же прогон. Новый request_key не создавай.'
198
+ : context.verifyWithToolName
199
+ ? `Сверьтесь через \`${context.verifyWithToolName}\`.`
200
+ : 'Сверьтесь состоянием на стороне Besales (списком или *_status-инструментом этой операции).';
201
+ const retryWarning = isSandboxStart
202
+ ? ''
203
+ : `Не повторяйте вызов: повтор ${context.sideEffect === 'spend' ? 'заплатит второй раз' : 'заведёт второй экземпляр'}. `;
198
204
  const message = `OUTCOME_UNKNOWN: ${cause} Запрос ушёл, ответа нет — операция могла СОСТОЯТЬСЯ. ` +
199
- `Не повторяйте вызов: повтор ${context.sideEffect === 'spend' ? 'заплатит второй раз' : 'заведёт второй экземпляр'}. ${verify}`;
205
+ `${retryWarning}${verify}`;
200
206
  return errorToolResult(message, {
201
207
  code: 'OUTCOME_UNKNOWN',
202
208
  message,
@@ -240,6 +246,42 @@ function mapApiClientError(error, context, workspaceId) {
240
246
  if (!error.status) {
241
247
  return errorToolResult('Not connected to Besales. Run `besales-mcp connect` first.');
242
248
  }
249
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_NOT_EMPTY') {
250
+ if (context.toolName === 'besales_platform_telegram_personal_proxy_stock_delete') {
251
+ const hint = 'По прокси идёт операция. Дождись её завершения и повтори удаление из запаса позже.';
252
+ return apiErrorResult(error, hint, hint);
253
+ }
254
+ if (context.toolName === 'besales_platform_telegram_personal_proxy_return_to_stock') {
255
+ const hint = 'Сначала освободи прокси от номеров, броней и операций, затем верни его в запас.';
256
+ return apiErrorResult(error, hint, hint);
257
+ }
258
+ const hint = 'Сначала переключите номера на другой прокси, затем удалите освободившийся прокси.';
259
+ return apiErrorResult(error, `Прокси используется номерами. ${hint}`, hint);
260
+ }
261
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_ADDRESS_IN_USE') {
262
+ const hint = 'Такой адрес уже есть в запасе. Предложи удалить этот прокси из канала.';
263
+ return apiErrorResult(error, hint, hint);
264
+ }
265
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_STOCK_NOT_ENOUGH') {
266
+ const available = error.details.available;
267
+ const hint = 'Ничего не перенесено. Перечитай запас и выбери доступные прокси; под номера считай места по maxAccounts.';
268
+ return apiErrorResult(error, `В запасе недостаточно прокси${available === undefined ? '' : ': доступно ' + available}. ${hint}`, hint);
269
+ }
270
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_STOCK_REFUSED') {
271
+ const hint = 'Ничего не перенесено. Устрани причины отказов ниже. Повтори то же намерение с тем же action_id и аргументами; если меняешь набор прокси, согласуй новое намерение с человеком и создай новый action_id.';
272
+ return apiErrorResult(error, hint, hint);
273
+ }
274
+ if (error.status === 409 && error.details?.code === 'IDEMPOTENCY_REQUEST_MISMATCH' && (context.toolName === 'besales_platform_telegram_personal_proxy_take_from_stock' ||
275
+ context.toolName === 'besales_platform_telegram_personal_proxy_return_to_stock')) {
276
+ const hint = 'Для того же намерения восстанови прежние аргументы и сохрани action_id. Новое намерение человека — новый action_id; перед новым переносом покажи, что и куда переносишь, и получи «да».';
277
+ return apiErrorResult(error, hint, hint);
278
+ }
279
+ if (error.status === 404 && error.details?.code === 'TELEGRAM_PROXY_NOT_FOUND') {
280
+ const hint = context.toolName?.startsWith('besales_platform_telegram_personal_proxy_stock_')
281
+ ? 'Прокси не найден в запасе пространства. Перечитай список и проверь proxy_id.'
282
+ : 'Прокси не найден в пуле канала. Проверьте канал и proxy_id в приложении.';
283
+ return apiErrorResult(error, hint, hint);
284
+ }
243
285
  if (error.status === 409 &&
244
286
  error.details?.code === 'ICP_INGEST_CONTINUATION_EXPIRED') {
245
287
  const hint = 'Остаток выборки устарел — начните новый импорт. Не повторяй продолжение автоматически; новый импорт запускай по решению человека с новым request_key и gdpr_confirmed=true.';
@@ -341,6 +383,16 @@ function formatSafeDetails(details) {
341
383
  if (!details)
342
384
  return undefined;
343
385
  const parts = [];
386
+ for (const item of details.items ?? [])
387
+ parts.push(`${item.proxyId}: ${item.reason}.`);
388
+ if (details.code === 'TELEGRAM_PROXY_COUNTRY_NOT_ENOUGH') {
389
+ if (details.available !== undefined)
390
+ parts.push(`Доступно мест: ${details.available}.`);
391
+ if (details.requested !== undefined)
392
+ parts.push(`Запрошено мест: ${details.requested}.`);
393
+ }
394
+ for (const file of details.files ?? [])
395
+ parts.push(`${file.fileName}: ${file.reason}.`);
344
396
  for (const workflow of details.workflows ?? [])
345
397
  parts.push(`«${workflow.name}»: живых прогонов ${workflow.liveRuns}.`);
346
398
  if (details.serviceAccountEmail && details.code !== 'DOCUMENT_ACCESS_CONFIRMATION_REQUIRED' && details.code !== 'DOCUMENT_ACCESS_SNAPSHOT_CHANGED') {
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAuB,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACL,cAAc,EACd,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAc,EACd,MAAyB,EACzB,aAA6B,OAAO;IAEpC,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,OAAO,GAAG;YACd,GAAG,UAAU,CAAC,KAAK,CAAC;YACpB,GAAG,iBAAiB,CAAC,KAAK,CAAC;YAC3B,oBAAoB,EAAE,IAAI;SAC3B,CAAC;QACF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;iBAC9B;aACF;YACD,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,EAAE;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACpF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACpE,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,yFAAyF;IACzF,4FAA4F;IAC5F,gFAAgF;IAChF,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG;YACd,GAAG,UAAU,CAAC,KAAK,CAAC;YACpB,GAAG,iBAAiB,CAAC,KAAK,CAAC;YAC3B,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,2HAA2H,MAAM,CAAC,IAAI,EAAE;SACnJ,CAAC;QACF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;iBAC9B;aACF;YACD,iBAAiB,EAAE,OAAO;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B,IAAI;QACJ,aAAa;QACb,cAAc;QACd,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,OAAO,GAA6C,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,IACE,CAAC,OAAO;YACR,OAAO,CAAC,KAAK,GAAG,CAAC;YACjB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;YACjC,OAAO,CAAC,KAAK,KAAK,IAAI,EACtB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAU,CAAC;YACpE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC;YACvC,IACE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBACrB,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS;gBAC3B,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC,EAChE,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAC5B,CAAC;YACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnF,MAAM,OAAO,GAAI,KAAiC,CAAC,oBAAoB,CAAC,CAAC;IACzE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACzF,MAAM,SAAS,GAA8C,EAAE,CAAC;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACzF,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;AAC/C,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,MAAe;IACrE,MAAM,OAAO,GAAG;QACd,GAAG,UAAU,CAAC,KAAK,CAAC;QACpB,GAAG,iBAAiB,CAAC,KAAK,CAAC;QAC3B,wBAAwB,EAAE,IAAI;QAC9B,QAAQ,EACN,kIAAkI;QACpI,SAAS,EAAE,6BAA6B;KACzC,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAgC,CAAC;IACzF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAWD,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,eAAqC;IAErC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,oFAAoF;gBACpF,mFAAmF;gBACnF,mEAAmE;gBACnE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;aACjE;SACF;QACD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC;AAgBD;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,OAAyB;IACnD,OAAO,OAAO,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,KAAa,EAAE,OAAyB;IACtE,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,KAAK,2BAA2B,CAAC;IACxE,MAAM,MAAM,GAAG,cAAc;QAC3B,CAAC,CAAC,8JAA8J;QAChK,CAAC,CAAC,OAAO,CAAC,kBAAkB;YAC1B,CAAC,CAAC,qBAAqB,OAAO,CAAC,kBAAkB,KAAK;YACtD,CAAC,CAAC,4FAA4F,CAAC;IACnG,MAAM,YAAY,GAAG,cAAc;QACjC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,+BAA+B,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,0BAA0B,IAAI,CAAC;IAE3H,MAAM,OAAO,GACX,oBAAoB,KAAK,wDAAwD;QACjF,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC;IAE7B,OAAO,eAAe,CAAC,OAAO,EAAE;QAC9B,IAAI,EAAE,iBAAiB;QACvB,OAAO;QACP,YAAY,EAAE,MAAM;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,UAA4B,EAAE,UAAU,EAAE,MAAM,EAAE,EAClD,WAAoB;IAEpB,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,IAAI,KAAK,YAAY,wBAAwB,EAAE,CAAC;QAC9C,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,wFAAwF;IACxF,qFAAqF;IACrF,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,OAAO,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;QAC3C,wFAAwF;QACxF,0BAA0B;QAC1B,OAAO,kBAAkB,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,sBAAsB,CAAC,+BAA+B,KAAK,CAAC,OAAO,IAAI,EAAE,OAAO,CAAC;YACnF,CAAC,CAAC,eAAe,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAqB,EACrB,OAAyB,EACzB,WAAoB;IAEpB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC,4DAA4D,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,QAAQ,KAAK,uDAAuD,EAAE,CAAC;YACjF,MAAM,IAAI,GAAG,oFAAoF,CAAC;YAClG,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,0DAA0D,EAAE,CAAC;YACpF,MAAM,IAAI,GAAG,iFAAiF,CAAC;YAC/F,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,GAAG,mFAAmF,CAAC;QACjG,OAAO,cAAc,CAAC,KAAK,EAAE,iCAAiC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,+BAA+B,EAAE,CAAC;QACpF,MAAM,IAAI,GAAG,wEAAwE,CAAC;QACtF,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,iCAAiC,EAAE,CAAC;QACtF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1C,MAAM,IAAI,GAAG,0GAA0G,CAAC;QACxH,OAAO,cAAc,CAAC,KAAK,EAAE,+BAA+B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,SAAS,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACzI,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,8BAA8B,EAAE,CAAC;QACnF,MAAM,IAAI,GAAG,yMAAyM,CAAC;QACvN,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,8BAA8B,IAAI,CACpF,OAAO,CAAC,QAAQ,KAAK,0DAA0D;QAC/E,OAAO,CAAC,QAAQ,KAAK,0DAA0D,CAChF,EAAE,CAAC;QACF,MAAM,IAAI,GAAG,yLAAyL,CAAC;QACvM,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,iDAAiD,CAAC;YAC1F,CAAC,CAAC,8EAA8E;YAChF,CAAC,CAAC,0EAA0E,CAAC;QAC/E,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,IACE,KAAK,CAAC,MAAM,KAAK,GAAG;QACpB,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,iCAAiC,EACzD,CAAC;QACD,MAAM,IAAI,GACR,6KAA6K,CAAC;QAChL,OAAO,cAAc,CACnB,KAAK,EACL,oCAAoC,IAAI,EAAE,EAC1C,IAAI,CACL,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,MAAM,KAAK,GAAG;QACpB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,uCAAuC;YAC9D,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,kCAAkC,CAAC,EAC7D,CAAC;QACD,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,CAAC,eAAe,IAAI,8CAA8C,EACvE,qKAAqK,CACtK,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,oCAAoC,EAAE,CAAC;QACzF,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,CAAC,eAAe,IAAI,uBAAuB,EAChD,uKAAuK,CACxK,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,qCAAqC,EAAE,CAAC;QAC1F,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,CAAC,eAAe,IAAI,2BAA2B,EACpD,uIAAuI,CACxI,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,2BAA2B,EAAE,CAAC;QAChF,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,CAAC,eAAe,IAAI,gCAAgC,EACzD,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACxB,qFAAqF;QACrF,+EAA+E;QAC/E,OAAO,kBAAkB,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,sBAAsB,CAAC,2BAA2B,KAAK,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC;YAC7E,CAAC,CAAC,cAAc,CACZ,KAAK,EACL,2CAA2C,KAAK,CAAC,MAAM,qBAAqB,EAC5E,2DAA2D,CAC5D,CAAC;IACR,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,qDAAqD,WAAW,6CAA6C;YAC/G,CAAC,CAAC,uEAAuE,CAAC;QAC5E,OAAO,cAAc,CACnB,KAAK,EACL,OAAO,EACP,uEAAuE,CACxE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzB,qFAAqF;QACrF,wFAAwF;QACxF,0FAA0F;QAC1F,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe;YACnC,CAAC,CAAC,kCAAkC,KAAK,CAAC,eAAe,EAAE;YAC3D,CAAC,CAAC,uFAAuF,CAAC;QAC5F,OAAO,cAAc,CACnB,KAAK,EACL,OAAO,EACP,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAC5E,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,CAAC,eAAe;gBACnB,oEAAoE,EACtE,KAAK,CAAC,eAAe;gBACnB,CAAC,CAAC,iGAAiG;gBACnG,CAAC,CAAC,mIAAmI,CACxI,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GACX,2KAA2K,CAAC;QAC9K,OAAO,cAAc,CACnB,KAAK,EACL,OAAO,EACP,uJAAuJ,CACxJ,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe;YACnC,CAAC,CAAC,gCAAgC,KAAK,CAAC,eAAe,EAAE;YACzD,CAAC,CAAC,8BAA8B,CAAC;QACnC,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,wDAAwD,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC;QACpD,OAAO,cAAc,CACnB,KAAK,EACL,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,8CAA8C;YAChD,CAAC,CAAC,2CAA2C,UAAU,WAAW,EACpE,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,+BAA+B,UAAU,UAAU,CACxD,CAAC;IACJ,CAAC;IAED,IACE,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;QAC9C,OAAO,CAAC,kBAAkB,KAAK,qCAAqC,EACpE,CAAC;QACD,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,CAAC,eAAe,IAAI,6BAA6B,KAAK,CAAC,MAAM,IAAI,EACtE,qPAAqP,CACtP,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe;QACnC,CAAC,CAAC,6BAA6B,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,eAAe,EAAE;QACxE,CAAC,CAAC,6BAA6B,KAAK,CAAC,MAAM,IAAI,CAAC;IAClD,IACE,KAAK,CAAC,MAAM,KAAK,GAAG;QACpB,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,iCAAiC;QACzD,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAC1C,OAAO,CAAC,oBAAoB,KAAK,SAAS;QAE1C,OAAO,cAAc,CACnB,KAAK,EACL,GAAG,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,EAC5C,OAAO,CAAC,oBAAoB,CAC7B,CAAC;IACJ,IACE,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,4BAA4B;QACpD,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,kCAAkC,EAC1D,CAAC;QACD,OAAO,cAAc,CACnB,KAAK,EACL,OAAO,EACP,uIAAuI,CACxI,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CACnB,KAAK,EACL,OAAO,EACP,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,+CAA+C,CACzF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,KAAqB,EACrB,OAAe,EACf,YAAqB;IAErB,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3E,OAAO,eAAe,CAAC,cAAc,EAAE;QACrC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE;QAChE,OAAO;QACP,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EACV,YAAY;YACZ,CAAC,OAAO,KAAK,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ;gBAC7C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW;gBAC3B,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAwC;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,IAAI,KAAK,mCAAmC,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxF,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE;QAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,qBAAqB,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,IAAI,KAAK,uCAAuC,IAAI,OAAO,CAAC,IAAI,KAAK,kCAAkC,EAAE,CAAC;QACnJ,KAAK,CAAC,IAAI,CAAC,gDAAgD,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,KAAe;IACrC,OAAO,KAAK,CAAC,MAAM;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,50 @@
1
+ # Подтолкнуть агента
2
+
3
+ `besales_dialogue_nudge_agent` нужен, когда клиент остался без ответа из-за ошибки или
4
+ сбоя бота, а переобработка последнего входящего не подходит. Он запускает полный ход
5
+ по всей истории диалога. Это платная операция: клиент получит настоящее сообщение бота.
6
+ Инструмент отказывает (`REFUSED`, при тишине обычно `BOT_SILENCED`) при тишине,
7
+ поставленной человеком/оператором (ручная остановка, стоп-слово), отписке, блокировке,
8
+ бане, вне срока переписки канала, при выключенном канале/ИИ и пока ход уже идёт.
9
+ Отказ сервера не обходи.
10
+
11
+ Служебную тишину (ожидание оператора «до /start», стадия CRM, фильтр сделки,
12
+ тишина агента) инструмент снимает и возвращает `reactivated: true`, как кнопка в интерфейсе.
13
+ Перед подтверждением предупреди человека: клиент получит настоящее сообщение бота
14
+ даже при служебном ожидании оператора. Покажи `reactivated` в итоге.
15
+
16
+ Только после явного «да» человека передай `explicit_confirmation: true` и
17
+ `conversation_ids`: от 1 до 30 UUID без дублей. `workspace_id` необязателен; без него
18
+ используется выбранное подключение. Агент выбирается сервером: тело запроса всегда `{}`.
19
+ API должен разрешать MCP-ключу область `run:conversation-nudge`.
20
+
21
+ Для каждого диалога мост отправляет `POST /conversations/{id}/nudge-agent` с заголовком
22
+ `Idempotency-Key: nudge:<UUID в нижнем регистре>:<SHA-256 attempt_key>`.
23
+ Необязательный `attempt_key` — строка до 64 символов, по умолчанию пустая. Тот же вход
24
+ отправляет тот же ключ, независимо от порядка диалогов в пакете. Сервер возвращает
25
+ прежний результат без второго ответа клиенту. Для нового осознанного запуска позже
26
+ можно задать новый `attempt_key`, только после нового явного подтверждения.
27
+
28
+ Запросы последовательные. Отчёт разделяет:
29
+
30
+ - `STARTED` — ход принят. `delivery` отдельно показывает `DELIVERED`, `NOT_DELIVERED`
31
+ или `PENDING`; `PENDING` не подтверждает доставку. Сохраняются `notice`, `reasonCode`,
32
+ `reactivated` и `replayed`. При `replayed=true` нового запуска не было.
33
+ Если беседа была закрыта (`CLOSED`/`RESOLVED`) и текущей нет, сервер создаёт новую:
34
+ `conversationId` в отчёте сохраняет запрошенный UUID, `startedConversationId` содержит
35
+ новый UUID, а `message` поясняет «диалог был закрыт — создан новый».
36
+ Статус определяется по `delivery` как обычно; переписку проверяй по новому UUID.
37
+ - `REFUSED` — отказ с HTTP-статусом, кодом, текстом и доступной причиной. 404 и 409
38
+ не мешают следующим диалогам. 429 останавливает пакет.
39
+ - `UNKNOWN` — 503, таймаут, сетевая ошибка, некорректная квитанция или
40
+ `delivery=UNKNOWN`. Не повторяй запуск, не меняй ключ. Сначала проверь переписку через
41
+ `besales_dialogue_transcript`; отсутствие сообщения ещё не доказывает отказ запуска.
42
+ - `NOT_PROCESSED` — запрос не отправлялся после 429. Автоматически пакет не продолжай.
43
+
44
+ STARTED не равно доставлено: смотри `delivery` у каждого. В `summary` сохранены
45
+ `started`, `refused`, `unknown`, `notProcessed`; дополнительно `notDelivered` считает
46
+ `STARTED` с `NOT_DELIVERED`, а `deliveryUnknown` — квитанции с `UNKNOWN`/`PENDING`.
47
+
48
+ Отчёт не усекается: при превышении бюджета ответа общий конверт моста возвращает
49
+ квитанцию с предупреждением вместо частичного отчёта. В будущих вызовах выбирай
50
+ меньший пакет; уже отправленный пакет целиком не повторяй.
@@ -21,7 +21,10 @@
21
21
 
22
22
  Признак неоднозначности выводится из уже объявленного у инструмента: `sideEffect !== 'none'`
23
23
  и не объявлена идемпотентность. Тогда на **5xx** и на **обрыв связи** уходит ответ вида
24
- `OUTCOME_UNKNOWN` — без совета повторить и с указанием, чем свериться.
24
+ `OUTCOME_UNKNOWN` — с указанием, чем свериться. Для запуска песочницы после потери ответа
25
+ повтори `besales_sandbox_run_start` с теми же аргументами и тем же `request_key` из
26
+ `requestIdentity`: сервер вернёт тот же прогон. Новый ключ не создавай. Для остальных
27
+ неидемпотентных операций повтор запрещён до сверки состояния.
25
28
 
26
29
  ⚠️ **Идемпотентность объявляется явно, умолчание — худшее.** Правило «все `*_upsert`
27
30
  идемпотентны» неверно: без идентификатора они уходят в создание.
@@ -14,6 +14,8 @@
14
14
  изменение маршрутизации, запуск GetCourse-волны и финализация промпта находятся обычным русским
15
15
  запросом без знания технического имени.
16
16
 
17
+ Запрос «создать агента промпт написать» находит создание агента.
18
+
17
19
  `besales_help_get({uri})` возвращает индекс. Параметр `section` отдаёт один раздел, `full=true` —
18
20
  весь документ. Ответы содержат version/source/complete; неоднозначный раздел не выбирается молча.
19
21
 
@@ -11,6 +11,8 @@
11
11
  | `warmup_update` | Частичная правка настроек прогрева | `manage:channels` |
12
12
  | `account_warmup` | Включение и ручной отказ отдельного номера | `manage:channels` |
13
13
  | `ramp` | Чтение `newAccountRampEnabled` | `read:channels` |
14
+ | `profile_bulk` | Пачечная правка профилей своих номеров: имя, описание, дата рождения, ники | `manage:channels` |
15
+ | `profile_job` | Итог задания правки профилей по номерам | `read:channels` |
14
16
 
15
17
  У инструментов канала обязателен `channel_id`; у `account_warmup` также `account_id`
16
18
  и булев `is_warming_up`. `workspace_id` можно не передавать при выбранной рабочей области.
@@ -39,12 +41,87 @@ true снимает ручной отказ. Чтение лесенки воз
39
41
  В HTTP уходят camelCase-поля DTO. Пропуск сохраняет прежнее значение, false, 0 и []
40
42
  передаются буквально. Допустимые рабочие диапазоны настроек проверяет ядро.
41
43
 
44
+ ## Профили номеров: `profile_bulk` и `profile_job`
45
+
46
+ `profile_bulk` меняет профили СВОИХ личных номеров канала, а не клиентов. Операция идёт
47
+ заданием фермы номеров: ответ `{job_id, state, total}` означает «принято», а не «изменено».
48
+ Итог по каждому номеру читает `profile_job` (`channel_id` и `job_id` из ответа): `state` задания
49
+ (`PENDING`, `RUNNING`, `COMPLETED`), `counters`, а у каждого номера — `state`, `failure_code` и
50
+ `outcome.fields.<поле>`. Элемент с частичным успехом остаётся `SUCCEEDED`, поэтому читай поля:
51
+ отдельное поле может быть `FAILED`. `TELEGRAM_BIO_TOO_LONG` — описание длиннее лимита Telegram
52
+ (до 70 знаков без Premium, до 140 с Premium); `PROFILE_PROVIDER_OUTCOME_UNKNOWN` — исход у
53
+ Telegram неизвестен, сначала сверь профиль номера, не повторяй вслепую.
54
+
55
+ Поля `profile_bulk` в snake_case, в HTTP уходят camelCase-поля `TelegramPersonalBulkProfileDto`:
56
+
57
+ | Вход | В теле ядра | Правило |
58
+ | --- | --- | --- |
59
+ | `account_ids` или `all:true` | `accountIds` или `all` | ровно одно; `account_ids` — 1–100 уникальных UUID v4 |
60
+ | `first_name`, `last_name` | `patch.firstName`, `patch.lastName` | до 64 знаков, без нормализации |
61
+ | `bio` | `patch.bio` | до 140 знаков; лимит Telegram по Premium проверяет ферма |
62
+ | `birthday` | `patch.birthday` | `{day, month, year?}`; `null` снимает дату |
63
+ | `usernames` | `usernames[{accountId, username}]` | ники по номерам; `account_ids` и `all` не передаются |
64
+ | `username_base` | `usernameBase` | основа ника для номеров из `account_ids` или `all` |
65
+ | `idempotency_key` | заголовок `x-idempotency-key` | обязателен: 1–200 видимых ASCII-знаков без пробелов |
66
+
67
+ Фото через MCP пока не меняется — только в приложении: поле `avatar_file_id` не принимается и
68
+ отвергается до HTTP как лишнее.
69
+
70
+ Пропуск поля сохраняет прежнее значение; пустые строки и `null` передаются буквально, а
71
+ ложное или пустое значение выбора (`all:false`, `account_ids:[]`, `usernames:[]`) отвергается до HTTP.
72
+ Вызов без единой правки (ни поля профиля, ни ников) тоже отвергается: нечего менять.
73
+
74
+ Ники — ровно один режим либо ни одного: `usernames` (по номерам) или `username_base` (общая основа).
75
+ Оба режима сразу, `usernames` вместе с `account_ids`/`all`, повтор номера или ника (без учёта
76
+ регистра) и ник вне правил Telegram (5–32 знака, латиница, цифры и `_`, с буквы, без `__`,
77
+ без `_` в конце) отвергаются до HTTP. Ники необратимо освобождают прежние ники у Telegram:
78
+ перед вызовом покажи человеку список номеров и новые значения и получи ответ «делать?».
79
+ Явный `explicit_confirmation` не принимается: так решено в плане пачки.
80
+
81
+ Ключ идемпотентности для этого маршрута ядро читает из `x-idempotency-key`, а не из общего
82
+ `Idempotency-Key`, поэтому транспорт моста отправляет его именно под этим именем (поле
83
+ `idempotencyKeyHeader` запроса). Повтор того же намерения — с тем же ключом и аргументами:
84
+ ядро вернёт прежний ответ, профиль второй раз не изменится и суточный предел смен не тратится.
85
+ При неизвестном исходе новый ключ автоматически не создавай.
86
+
87
+ Для подключения номеров в существующий канал используй `…_connect_link`; план прокси
88
+ и защищённый ввод описаны ниже.
89
+
42
90
  Ограничения, ручная жалоба и чтение её исхода описаны в
43
91
  [документе апелляции](telegram-personal-restrictions.md). Перед жалобой покажи человеку
44
92
  номер и текст, получи явное согласие и только затем передай `explicit_confirmation:true`.
45
93
  Жалоба необратима, не чаще раза в сутки на номер; автоматическая подача выключена.
46
94
 
47
95
  Проверки схем, запросов, профилей, строгого ввода, описаний и сохранения ответа находятся
48
- в `telegram-personal-management.spec.ts` и `telegram-personal-restrictions.spec.ts`.
49
- `scripts/telegram-personal-confirmation-mutants.mjs` проверяет, что снятие обязательного
50
- согласия в Zod или опубликованной схеме ломает именованное утверждение теста.
96
+ в `telegram-personal-management.spec.ts`, `telegram-personal-restrictions.spec.ts` и
97
+ `telegram-personal-profile.spec.ts`. `scripts/telegram-personal-confirmation-mutants.mjs`
98
+ проверяет, что снятие обязательного согласия в Zod или опубликованной схеме ломает именованное
99
+ утверждение теста. `scripts/telegram-personal-profile-mutants.mjs` делает то же для запрета
100
+ двух режимов ников сразу (в Zod и в опубликованной схеме) и для имени заголовка ключа.
101
+
102
+ ## Прокси личного Telegram
103
+
104
+ `besales_platform_telegram_personal_proxy_import_link` выдаёт человеку одноразовую ссылку
105
+ до `expires_at`: логины и пароли вводятся на защищённой странице после входа, не в чате.
106
+ `besales_platform_telegram_personal_proxy_import_status` читает по `channel_id` и `session_id`
107
+ только состояние и счётчики, без строк прокси. Оба маршрута требуют `manage:channels`.
108
+ `besales_platform_telegram_personal_proxy_delete` удаляет свободный прокси по `proxy_id`;
109
+ 409 `TELEGRAM_PROXY_NOT_EMPTY` — сначала переключите номера на другой прокси.
110
+ `besales_platform_telegram_personal_account_proxy_change` переключает номер (`account_id`)
111
+ на существующий `proxy_id`. Оба действия требуют `manage:channels` и явное
112
+ `explicit_confirmation:true`; номер при переключении переподключится.
113
+ Для смены обязательны стабильный `action_id` (UUID) и явный `country_change_confirmed`
114
+ (boolean без умолчания). Повтор — с тем же ключом и аргументами. Успех только
115
+ `state=SUCCEEDED`; `UNKNOWN`/`PENDING` не подтверждают исход.
116
+
117
+ Общий запас пространства и подключение номеров доступны через десять дополнительных
118
+ инструментов: `proxy_stock_list`, `proxy_stock_import_link`, `proxy_stock_import_status`,
119
+ `proxy_stock_delete`, `proxy_stock_check`, `proxy_stock_check_all`, `proxies`,
120
+ `proxy_take_from_stock`, `proxy_return_to_stock`, `connect_link` с общей приставкой
121
+ `besales_platform_telegram_personal_`. Чтение списков — `read:channels`, изменения и статус
122
+ импорта — `manage:channels`; проверяется свежая роль создателя ключа MCP.
123
+ Ссылка `connect_link` работает только с существующим каналом. План пары или страны только
124
+ заполняет страницу: коды и пароль 2FA вводит человек после входа. Пары сохраняют исходный
125
+ `proxy_id`, адрес обратно в id не разрешается. Переносы требуют стабильный `action_id` в
126
+ `Idempotency-Key`; `count` считает прокси, под номера выбирай `proxy_ids` по местам.
127
+ Подробный договор и порядок действий — [прокси личного Telegram](telegram-personal-proxies.md).
@@ -0,0 +1,135 @@
1
+ # Прокси личного Telegram
2
+
3
+ Мост выдаёт ссылку для массовой загрузки, читает итог, удаляет свободный прокси и переключает
4
+ свой номер на существующий прокси пула. Для этих маршрутов нужен `manage:channels`.
5
+ `workspace_id` необязателен: используется выбранная рабочая область; `channel_id` обязателен.
6
+
7
+ `besales_platform_telegram_personal_proxy_import_link` (профиль `platform`) создаёт сессию
8
+ и возвращает `session_id`, `setup_page_url`, `expires_at`. Отдай ссылку человеку: он входит
9
+ в приложение и вставляет строки прокси с логинами и паролями на защищённой странице, не в чате.
10
+ Ссылка одноразовая, живёт до `expires_at`. `setup_ref` и строки прокси мост не выдаёт.
11
+ Выдача ссылки ещё не означает загрузку прокси; автоматически создавать новую после обрыва нельзя.
12
+
13
+ `besales_platform_telegram_personal_proxy_import_status` (профили `readonly`, `platform`)
14
+ принимает `channel_id`, `session_id`, возвращает `sessionId`, `status`, `expiresAt`, `summary`
15
+ со счётчиками `total`, `pending`, `accepted`, `duplicates`, `invalid`, `checkFailed`, `rejected`,
16
+ `registered`. Только эти поля проходят в ответ, без строк и endpoint. `AWAITING_INPUT` ждёт
17
+ ввода, `SUBMITTING`/`PROCESSING` ещё в работе, `UNKNOWN` требует повторного чтения, `COMPLETED`
18
+ означает завершённую обработку (см. счётчики), `EXPIRED`/`CANCELLED` — сессия закрыта.
19
+
20
+ `besales_platform_telegram_personal_proxy_delete` (профиль `platform`) принимает `channel_id`,
21
+ `proxy_id` и обязательное `explicit_confirmation:true`. Покажи человеку прокси и канал и получи
22
+ явное согласие: удаление необратимо. Ответ ядра 204 превращается в `{ "deleted": true }`.
23
+ 409 `TELEGRAM_PROXY_NOT_EMPTY`: сначала переключите номера на другой прокси. 404
24
+ `TELEGRAM_PROXY_NOT_FOUND`: проверь канал и идентификатор в приложении. 503 не означает удаления.
25
+
26
+ `besales_platform_telegram_personal_account_proxy_change` (профиль `platform`) принимает
27
+ `channel_id`, `account_id`, `proxy_id`, `action_id` (UUID), `country_change_confirmed` (boolean)
28
+ и обязательное `explicit_confirmation:true`. Номер переподключится: покажи человеку номер
29
+ и целевой прокси и получи согласие. Смена страны — отдельное явное решение без умолчания;
30
+ `false` передаётся буквально и не повышается автоматически до `true`.
31
+ Создай `action_id` один раз на намерение, сохраняй его и аргументы при повторе.
32
+ Тело ядра — строго `{ actionId, proxyId, countryChangeConfirmed }`; подтверждение в него не входит.
33
+ Ответ — квитанция `{ message, action_id, state, code?, retry_after_ms? }`.
34
+ Успех только при `state=SUCCEEDED`; `UNKNOWN`/`PENDING` не подтверждают переключение,
35
+ `FAILED`/`EXPIRED` — отказ. Соблюдай `retry_after_ms`; новый ключ автоматически не создавай.
36
+
37
+ Все схемы строгие: лишние поля, логины, пароли, `host`, `port`, строки импорта и camelCase
38
+ вместо входных snake_case отвергаются до HTTP. `edit-proxy` через MCP не реализован.
39
+ Проверки реестра — `telegram-personal-proxies.spec.ts`, снятие подтверждения в обеих схемах
40
+ для удаления и переключения также включено в `scripts/telegram-personal-proxy-mutants.mjs`.
41
+
42
+ Четыре прежних инструмента сохраняют свой договор при добавлении общего запаса.
43
+
44
+ ## Общий запас пространства
45
+
46
+ Запас принадлежит выбранному пространству. Один прокси обслуживает номера одного канала;
47
+ переносится целиком. `workspace_id` необязателен, как у остальных инструментов моста.
48
+ Чтение требует `read:channels`. Изменения и статус импорта требуют `manage:channels`:
49
+ ключ вида MCP, живой создатель и его свежая роль `CHANNEL_MANAGE`; ядро пишет аудит перед
50
+ вызовом фермы. Выдача ссылки подключения проверяет роль на канал и не вызывает ферму.
51
+
52
+ Все имена в таблице начинаются с `besales_platform_telegram_personal_`.
53
+
54
+ | Суффикс | Назначение | Обязательные аргументы |
55
+ | --- | --- | --- |
56
+ | `proxy_stock_list` | Список запаса | — |
57
+ | `proxy_stock_import_link` | Ссылка загрузки в запас | — |
58
+ | `proxy_stock_import_status` | Состояние и счётчики импорта | `session_id` |
59
+ | `proxy_stock_delete` | Удалить из запаса | `proxy_id`, `explicit_confirmation:true` |
60
+ | `proxy_stock_check` | Проверить один прокси запаса | `proxy_id` |
61
+ | `proxy_stock_check_all` | Поставить весь запас на проверку | — |
62
+ | `proxies` | Список прокси канала | `channel_id` |
63
+ | `proxy_take_from_stock` | Забрать в канал целые прокси | `channel_id`, `action_id`, один способ выбора |
64
+ | `proxy_return_to_stock` | Вернуть свободный прокси | `channel_id`, `proxy_id`, `action_id` |
65
+ | `connect_link` | Ссылка подключения в существующий канал | `channel_id` |
66
+
67
+ Читающие инструменты входят также в `readonly` (включая статус импорта); остальные — в
68
+ `platform`. Проверка здоровья меняет состояние и не входит в `readonly`.
69
+
70
+ У списков одинаковые фильтры: `status` (`ACTIVE`, `CHECKING`, `ERROR`, `INACTIVE`),
71
+ `country_code` (две заглавные буквы), `search` (до 200 знаков), `cursor` (UUID),
72
+ `limit` (1–100, сервер по умолчанию 50). В HTTP страна передаётся как `countryCode`.
73
+ `nextCursor` продолжает список; `counts`, `freeProxies`, `countryCounts`, `freeCountryCounts`
74
+ считаются по всему пулу без фильтров. `occupiedSlots` учитывает настоящую занятость,
75
+ `accountsCount` не показывает свободные места. Данные о стране — [IPinfo](https://ipinfo.io).
76
+
77
+ Ссылка импорта возвращает только `session_id`, `setup_page_url`, `expires_at`: логин и пароль
78
+ вводятся человеком после входа на защищённой странице, до 50 строк, 1–3 номера на прокси.
79
+ Статус возвращает только состояние и счётчики, без строк. Ссылки не обрезаются и не пишутся
80
+ в журнал. При потере ответа автоматически новую ссылку не создавай. `202 CHECKING` означает
81
+ ожидание проверки; `queued` у проверки всех — число поставленных в очередь, не рабочих прокси.
82
+
83
+ ## Забрать и вернуть
84
+
85
+ `proxy_take_from_stock` принимает ровно одну форму выбора:
86
+
87
+ - `proxy_ids`: 1–50 разных UUID;
88
+ - `count`: 1–50, необязательная `country_code` ограничивает выбор страной.
89
+
90
+ `count` — число прокси, а не мест. У прокси 1–3 места (`maxAccounts`). Под N номеров сначала
91
+ вычти места явных пар и свободные места канала, затем выбери конкретные свободные ACTIVE
92
+ прокси запаса по местам. При выборе страны учитывай только её. Сумма `maxAccounts` должна
93
+ покрыть недостачу; если не покрывает, перенос не вызывай. Для шести номеров и двух прокси
94
+ по три места передай оба `proxy_ids`, не `count:6`.
95
+
96
+ Оба переноса требуют стабильный `action_id` (UUID), который идёт только заголовком
97
+ `Idempotency-Key`. Взятие передаёт `{proxyIds}` либо `{count,countryCode?}`; возврат — без тела.
98
+ Явного `explicit_confirmation` эти операции не принимают. Забрать — всё или ничего:
99
+ `TELEGRAM_PROXY_STOCK_NOT_ENOUGH` и `TELEGRAM_PROXY_STOCK_REFUSED` не переносят ни одного
100
+ прокси. После устранения причины отказа можно повторить прежний ключ. Успех с тем же ключом
101
+ возвращает прежний результат. `IDEMPOTENCY_REQUEST_MISMATCH` не обходи новым ключом.
102
+ При 503 исход неизвестен: повтори тот же ключ и аргументы, новый автоматически не создавай.
103
+
104
+ Вернуть можно только свободный прокси без номеров, броней и операций.
105
+ `TELEGRAM_PROXY_NOT_EMPTY` требует освободить его или дождаться операции;
106
+ `TELEGRAM_PROXY_ADDRESS_IN_USE` при возврате означает, что адрес уже в запасе: предложи
107
+ удалить этот прокси из канала. Прямого переноса между каналами нет — только через запас.
108
+ Удаление из запаса необратимо и требует отдельного согласия `explicit_confirmation:true`;
109
+ при занятой операции повтори позже. `204` подтверждает удаление, 503 его не подтверждает.
110
+
111
+ ## Подключение с планом
112
+
113
+ `connect_link` требует существующий `channel_id`. Необязательный `proxy_plan` имеет ровно
114
+ одну форму: `{pairs:[{phone,proxy_id}]}` либо `{country_code}`. Без плана страница открывается
115
+ для обычного выбора. Телефоны пар — E.164, 1–50 пар, телефоны разные, один прокси не больше
116
+ трёх раз. Строгая проверка вложенных объектов выполняется до HTTP. В ядро идут `channelId`,
117
+ `proxyPlan.pairs[].proxyId` либо `proxyPlan.countryCode`; исходные идентификаторы сохраняются.
118
+
119
+ План только заполняет страницу. Ссылка ничего не бронирует, не переносит и не подключает.
120
+ Человек входит, проверяет пары и вводит коды Telegram и пароль 2FA на странице, не в чате.
121
+ Ответ содержит только `setup_page_url`, `expires_at` и инструкции, без `setup_ref` и плана.
122
+ Пары берут прокси канала либо запаса пространства. При старте страница проверяет наличие,
123
+ состояние и места; прокси запаса забираются одним атомарным вызовом со списком id.
124
+
125
+ Пара держится за исходный `proxy_id`: адрес служит только для показа, обратного разрешения
126
+ адреса нет. Совпадение адресов не подменяет id. Пропавший id блокирует старт до правки
127
+ человеком; правка адреса снимает id, удаление адреса делает строку автоматической только
128
+ по его решению. Явная пара молча не переназначается. Итог — `…_accounts`.
129
+ Для уже подключённого номера сначала забери нужный прокси из запаса, затем используй
130
+ `…_account_proxy_change` с отдельным подтверждением переподключения.
131
+
132
+ Проверки нового набора находятся в `telegram-proxy-stock.spec.ts`, прежнего — в
133
+ `telegram-personal-proxies.spec.ts`. Скрипт `scripts/telegram-personal-proxy-mutants.mjs`
134
+ проверяет строгий ввод, согласие, стабильные заголовки, наличие маршрута, запрет усечения,
135
+ две формы выбора, форму плана и обязательный канал.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besales/mcp",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.7",
4
4
  "description": "Model Context Protocol server for Besales",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/be-sales/mcp#readme",