@besales/mcp 1.0.0-beta.5 → 1.0.0-beta.9

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 (95) hide show
  1. package/README.md +41 -6
  2. package/dist/auth/oauth-client.d.ts +1 -1
  3. package/dist/auth/oauth-client.js +2 -0
  4. package/dist/auth/oauth-client.js.map +1 -1
  5. package/dist/http/api-client.d.ts +10 -0
  6. package/dist/http/api-client.js +32 -0
  7. package/dist/http/api-client.js.map +1 -1
  8. package/dist/resources/concepts/sandbox.md +8 -1
  9. package/dist/resources/concepts/triggers.md +1 -0
  10. package/dist/resources/docs/platforms.md +58 -1
  11. package/dist/resources/docs/trigger-actions.md +24 -0
  12. package/dist/resources/workflows/iterate-with-sandbox.md +6 -2
  13. package/dist/resources/workflows/platform-setup-from-scratch.md +27 -0
  14. package/dist/schemas/mcp-tools.json +904 -27
  15. package/dist/tools/definitions/agent-design.d.ts +2 -0
  16. package/dist/tools/definitions/agent-design.js +15 -4
  17. package/dist/tools/definitions/agent-design.js.map +1 -1
  18. package/dist/tools/definitions/agent-settings.d.ts +1 -0
  19. package/dist/tools/definitions/agent-settings.js +2 -0
  20. package/dist/tools/definitions/agent-settings.js.map +1 -1
  21. package/dist/tools/definitions/broadcast-analytics.js +1 -1
  22. package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
  23. package/dist/tools/definitions/broadcast-campaigns.d.ts +29 -0
  24. package/dist/tools/definitions/broadcast-campaigns.js +107 -0
  25. package/dist/tools/definitions/broadcast-campaigns.js.map +1 -0
  26. package/dist/tools/definitions/dialogue-export.js +2 -0
  27. package/dist/tools/definitions/dialogue-export.js.map +1 -1
  28. package/dist/tools/definitions/follow-up.d.ts +1 -1
  29. package/dist/tools/definitions/platform-setup-wave.d.ts +1 -1
  30. package/dist/tools/definitions/platform-setup.d.ts +12 -1
  31. package/dist/tools/definitions/task-state.d.ts +1 -1
  32. package/dist/tools/definitions/telegram-outreach-calendar.d.ts +17 -0
  33. package/dist/tools/definitions/telegram-outreach-calendar.js +68 -0
  34. package/dist/tools/definitions/telegram-outreach-calendar.js.map +1 -0
  35. package/dist/tools/definitions/telegram-personal-connect.d.ts +12 -0
  36. package/dist/tools/definitions/telegram-personal-connect.js +61 -0
  37. package/dist/tools/definitions/telegram-personal-connect.js.map +1 -0
  38. package/dist/tools/definitions/telegram-personal-management.d.ts +1 -1
  39. package/dist/tools/definitions/telegram-personal-profile.d.ts +2 -0
  40. package/dist/tools/definitions/telegram-personal-profile.js +14 -0
  41. package/dist/tools/definitions/telegram-personal-profile.js.map +1 -1
  42. package/dist/tools/definitions/telegram-personal-proxies.d.ts +42 -0
  43. package/dist/tools/definitions/telegram-personal-proxies.js +204 -0
  44. package/dist/tools/definitions/telegram-personal-proxies.js.map +1 -0
  45. package/dist/tools/definitions/telegram-proxy-stock.d.ts +34 -0
  46. package/dist/tools/definitions/telegram-proxy-stock.js +129 -0
  47. package/dist/tools/definitions/telegram-proxy-stock.js.map +1 -0
  48. package/dist/tools/definitions/telegram-session-import.d.ts +5 -0
  49. package/dist/tools/definitions/telegram-session-import.js +33 -0
  50. package/dist/tools/definitions/telegram-session-import.js.map +1 -0
  51. package/dist/tools/definitions/trigger-action-item.schema.d.ts +10 -0
  52. package/dist/tools/definitions/trigger-action-item.schema.js +28 -11
  53. package/dist/tools/definitions/trigger-action-item.schema.js.map +1 -1
  54. package/dist/tools/definitions/trigger-upsert.tool.d.ts +1 -0
  55. package/dist/tools/definitions/trigger-upsert.tool.js +13 -0
  56. package/dist/tools/definitions/trigger-upsert.tool.js.map +1 -1
  57. package/dist/tools/definitions.d.ts +119 -9
  58. package/dist/tools/definitions.js +13 -0
  59. package/dist/tools/definitions.js.map +1 -1
  60. package/dist/tools/operation-recovery.d.ts +1 -1
  61. package/dist/tools/operation-recovery.js +1 -1
  62. package/dist/tools/operation-recovery.js.map +1 -1
  63. package/dist/tools/registry-mapping.cases.js +210 -8
  64. package/dist/tools/registry-mapping.cases.js.map +1 -1
  65. package/dist/tools/registry.js +20 -7
  66. package/dist/tools/registry.js.map +1 -1
  67. package/dist/tools/result.d.ts +2 -1
  68. package/dist/tools/result.js +100 -27
  69. package/dist/tools/result.js.map +1 -1
  70. package/dist/types/api-contract.gen.d.ts +2220 -216
  71. package/docs/async-operation-lifecycle.md +13 -2
  72. package/docs/failure-semantics.md +15 -2
  73. package/docs/help-navigation.md +2 -0
  74. package/docs/secret-read-boundary.md +7 -0
  75. package/docs/telegram-personal-management.md +95 -24
  76. package/docs/telegram-personal-proxies.md +135 -0
  77. package/docs/telegram-session-import.md +53 -0
  78. package/package.json +8 -7
  79. package/scripts/body-idempotency-contract.mjs +95 -0
  80. package/scripts/generate-followup-session-contract.mjs +14 -7
  81. package/scripts/generated-output.mjs +9 -0
  82. package/scripts/sync-agent-model-schemas.mjs +11 -11
  83. package/scripts/sync-api-contracts.mjs +99 -40
  84. package/scripts/sync-crm-stage-pool-schema.mjs +6 -7
  85. package/scripts/sync-route-map.mjs +189 -35
  86. package/scripts/sync-sandbox-request-key.mjs +40 -0
  87. package/scripts/sync-telegram-profile-photo.mjs +57 -0
  88. package/scripts/sync-telegram-session-import.mjs +39 -0
  89. package/scripts/sync-tool-inventory.mjs +15 -7
  90. package/scripts/sync-trigger-argument-schema.mjs +31 -14
  91. package/scripts/sync-trigger-event-schema.mjs +11 -6
  92. package/scripts/sync-trigger-step-reference-schema.mjs +21 -0
  93. package/scripts/sync-wave-id-schemas.mjs +7 -6
  94. package/scripts/telegram-personal-profile-mutants.mjs +59 -18
  95. package/scripts/telegram-personal-proxy-mutants.mjs +171 -0
@@ -86,6 +86,7 @@ export function identityOf(value) {
86
86
  'draft_id',
87
87
  'setupRef',
88
88
  'setup_ref',
89
+ 'request_key',
89
90
  ]);
90
91
  const pending = [{ value, depth: 0 }];
91
92
  const seen = new Set();
@@ -138,9 +139,11 @@ function followUpFailureOf(value) {
138
139
  return { [FOLLOW_UP_FAILED_KEY]: described };
139
140
  }
140
141
  /** Безошибочная квитанция, когда API уже ответил, а локальная постобработка сломалась. */
141
- export function acceptedResponseReceipt(value, _cause) {
142
+ export function acceptedResponseReceipt(value, _cause, requestIdentity) {
143
+ const requestKey = requestIdentity?.request_key;
142
144
  const receipt = {
143
145
  ...identityOf(value),
146
+ ...(typeof requestKey === 'string' ? { request_key: requestKey } : {}),
144
147
  ...followUpFailureOf(value),
145
148
  _mcpPostprocessingFailed: true,
146
149
  _mcpNote: 'API принял операцию, но MCP не смог обработать полученный ответ. Не повторяйте мутацию; проверьте созданный объект по квитанции.',
@@ -189,18 +192,33 @@ function outcomeIsAmbiguous(context) {
189
192
  *
190
193
  * ⛔ Совет повторить здесь опаснее самой ошибки: повторное создание заведёт вторую сущность,
191
194
  * повторный запуск волны отправит сообщения людям второй раз, повторный перевыпуск отзовёт
192
- * ключ, который партнёр только что получил. Поэтому текст называет проверку, а не повтор.
195
+ * ключ, который партнёр только что получил. Повтор допустим только с сохранённым request_key;
196
+ * если есть чтение исхода по ключу, сначала используется оно.
193
197
  */
194
198
  function ambiguousOutcomeResult(cause, context) {
195
- const verify = context.verifyWithToolName
196
- ? `Сверьтесь через \`${context.verifyWithToolName}\`.`
197
- : 'Сверьтесь состоянием на стороне Besales (списком или *_status-инструментом этой операции).';
199
+ const isSandboxStart = context.toolName === 'besales_sandbox_run_start';
200
+ const verify = isSandboxStart
201
+ ? 'Повтори besales_sandbox_run_start с теми же аргументами и тем же request_key из requestIdentity: сервер вернёт тот же прогон: это та же операция. Новый request_key не создавай.'
202
+ : context.verifyWithToolName
203
+ ? `Сверьтесь через \`${context.verifyWithToolName}\`.`
204
+ : 'Сверьтесь состоянием на стороне Besales (списком или *_status-инструментом этой операции).';
205
+ const requestKey = context.requestIdentity?.request_key;
206
+ const retry = context.verifyWithToolName?.endsWith('_start_result')
207
+ ? `${verify} Если исход неизвестен, повтори`
208
+ : 'Повтори';
209
+ const continuation = typeof requestKey === 'string'
210
+ ? isSandboxStart
211
+ ? `Повтори besales_sandbox_run_start с теми же аргументами и тем же request_key=${requestKey}: сервер вернёт тот же прогон: это та же операция. Новый request_key не создавай.`
212
+ : `${retry} вызов с тем же request_key=${requestKey} и тем же намерением: вернётся та же операция. Новый ключ — новая платная операция.`
213
+ : verify;
198
214
  const message = `OUTCOME_UNKNOWN: ${cause} Запрос ушёл, ответа нет — операция могла СОСТОЯТЬСЯ. ` +
199
- `Не повторяйте вызов: повтор ${context.sideEffect === 'spend' ? 'заплатит второй раз' : 'заведёт второй экземпляр'}. ${verify}`;
215
+ (typeof requestKey === 'string'
216
+ ? continuation
217
+ : `Не повторяйте вызов: повтор ${context.sideEffect === 'spend' ? 'заплатит второй раз' : 'заведёт второй экземпляр'}. ${verify}`);
200
218
  return errorToolResult(message, {
201
219
  code: 'OUTCOME_UNKNOWN',
202
220
  message,
203
- continuation: verify,
221
+ continuation,
204
222
  requestIdentity: context.requestIdentity,
205
223
  });
206
224
  }
@@ -240,37 +258,74 @@ function mapApiClientError(error, context, workspaceId) {
240
258
  if (!error.status) {
241
259
  return errorToolResult('Not connected to Besales. Run `besales-mcp connect` first.');
242
260
  }
261
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_NOT_EMPTY') {
262
+ if (context.toolName === 'besales_platform_telegram_personal_proxy_stock_delete') {
263
+ const hint = 'По прокси идёт операция. Дождись её завершения и повтори удаление из запаса позже.';
264
+ return apiErrorResult(context, error, hint, hint);
265
+ }
266
+ if (context.toolName === 'besales_platform_telegram_personal_proxy_return_to_stock') {
267
+ const hint = 'Сначала освободи прокси от номеров, броней и операций, затем верни его в запас.';
268
+ return apiErrorResult(context, error, hint, hint);
269
+ }
270
+ const hint = 'Сначала переключите номера на другой прокси, затем удалите освободившийся прокси.';
271
+ return apiErrorResult(context, error, `Прокси используется номерами. ${hint}`, hint);
272
+ }
273
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_ADDRESS_IN_USE') {
274
+ const hint = 'Такой адрес уже есть в запасе. Предложи удалить этот прокси из канала.';
275
+ return apiErrorResult(context, error, hint, hint);
276
+ }
277
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_STOCK_NOT_ENOUGH') {
278
+ const available = error.details.available;
279
+ const hint = 'Ничего не перенесено. Перечитай запас и выбери доступные прокси; под номера считай места по maxAccounts.';
280
+ return apiErrorResult(context, error, `В запасе недостаточно прокси${available === undefined ? '' : ': доступно ' + available}. ${hint}`, hint);
281
+ }
282
+ if (error.status === 409 && error.details?.code === 'TELEGRAM_PROXY_STOCK_REFUSED') {
283
+ const hint = 'Ничего не перенесено. Устрани причины отказов ниже. Повтори то же намерение с тем же action_id и аргументами; если меняешь набор прокси, согласуй новое намерение с человеком и создай новый action_id.';
284
+ return apiErrorResult(context, error, hint, hint);
285
+ }
243
286
  if (error.status === 409 &&
244
- error.details?.code === 'ICP_INGEST_CONTINUATION_EXPIRED') {
287
+ error.details?.code === 'IDEMPOTENCY_REQUEST_MISMATCH' &&
288
+ (context.toolName === 'besales_platform_telegram_personal_proxy_take_from_stock' ||
289
+ context.toolName === 'besales_platform_telegram_personal_proxy_return_to_stock')) {
290
+ const hint = 'Для того же намерения восстанови прежние аргументы и сохрани action_id. Новое намерение человека — новый action_id; перед новым переносом покажи, что и куда переносишь, и получи «да».';
291
+ return apiErrorResult(context, error, hint, hint);
292
+ }
293
+ if (error.status === 404 && error.details?.code === 'TELEGRAM_PROXY_NOT_FOUND') {
294
+ const hint = context.toolName?.startsWith('besales_platform_telegram_personal_proxy_stock_')
295
+ ? 'Прокси не найден в запасе пространства. Перечитай список и проверь proxy_id.'
296
+ : 'Прокси не найден в пуле канала. Проверьте канал и proxy_id в приложении.';
297
+ return apiErrorResult(context, error, hint, hint);
298
+ }
299
+ if (error.status === 409 && error.details?.code === 'ICP_INGEST_CONTINUATION_EXPIRED') {
245
300
  const hint = 'Остаток выборки устарел — начните новый импорт. Не повторяй продолжение автоматически; новый импорт запускай по решению человека с новым request_key и gdpr_confirmed=true.';
246
- return apiErrorResult(error, `ICP_INGEST_CONTINUATION_EXPIRED: ${hint}`, hint);
301
+ return apiErrorResult(context, error, `ICP_INGEST_CONTINUATION_EXPIRED: ${hint}`, hint);
247
302
  }
248
303
  if (error.status === 409 &&
249
304
  (error.details?.code === 'DOCUMENT_ACCESS_CONFIRMATION_REQUIRED' ||
250
305
  error.details?.code === 'DOCUMENT_ACCESS_SNAPSHOT_CHANGED')) {
251
- return apiErrorResult(error, error.responseMessage ?? 'Требуется новое согласие на режим документа.', 'Прочитайте besales_feedback_document_access_get, покажите полный набор связей и получите новое согласие человека. Старое подтверждение не повторяйте автоматически.');
306
+ return apiErrorResult(context, error, error.responseMessage ?? 'Требуется новое согласие на режим документа.', 'Прочитайте besales_feedback_document_access_get, покажите полный набор связей и получите новое согласие человека. Старое подтверждение не повторяйте автоматически.');
252
307
  }
253
308
  if (error.status === 409 && error.details?.code === 'FEEDBACK_SHEET_LINK_ALREADY_EXISTS') {
254
- return apiErrorResult(error, error.responseMessage ?? 'Связь уже существует.', 'Сохраните currentLink и закреплённую версию. Не делайте автоматические unlink/link; смена режима — отдельное намерение через besales_feedback_document_access_update.');
309
+ return apiErrorResult(context, error, error.responseMessage ?? 'Связь уже существует.', 'Сохраните currentLink и закреплённую версию. Не делайте автоматические unlink/link; смена режима — отдельное намерение через besales_feedback_document_access_update.');
255
310
  }
256
311
  if (error.status === 403 && error.details?.code === 'FEEDBACK_SHEET_GOOGLE_ACCESS_DENIED') {
257
- return apiErrorResult(error, error.responseMessage ?? 'Google отказал в доступе.', 'Покажите serviceAccountEmail и попросите человека проверить доступ и защищённые диапазоны в Google. Не объявляйте запись выполненной.');
312
+ return apiErrorResult(context, error, error.responseMessage ?? 'Google отказал в доступе.', 'Покажите serviceAccountEmail и попросите человека проверить доступ и защищённые диапазоны в Google. Не объявляйте запись выполненной.');
258
313
  }
259
314
  if (error.status === 403 && error.details?.code === 'DOCUMENT_ACCESS_FORBIDDEN') {
260
- return apiErrorResult(error, error.responseMessage ?? 'Недостаточно прав на документ.', 'Проверьте права чтения и изменения всех затронутых связей документа. Подтверждение не повышает полномочия.');
315
+ return apiErrorResult(context, error, error.responseMessage ?? 'Недостаточно прав на документ.', 'Проверьте права чтения и изменения всех затронутых связей документа. Подтверждение не повышает полномочия.');
261
316
  }
262
317
  if (error.status >= 500) {
263
318
  // ⚠️ Пятисотый — это отказ ПОСЛЕ того, как запрос дошёл до сервера. Он мог упасть на
264
319
  // ответе, на записи в очередь или на пути назад, уже совершив основную работу.
265
320
  return outcomeIsAmbiguous(context)
266
321
  ? ambiguousOutcomeResult(`Besales ответил ошибкой ${error.status}.`, context)
267
- : apiErrorResult(error, `Besales API is temporarily unavailable (${error.status}). Try again later.`, 'Повтори читающий или доказанно идемпотентный вызов позже.');
322
+ : apiErrorResult(context, error, `Besales API is temporarily unavailable (${error.status}). Try again later.`, 'Повтори читающий или доказанно идемпотентный вызов позже.');
268
323
  }
269
324
  if (error.status === 401) {
270
325
  const message = workspaceId
271
326
  ? `Besales rejected stored credentials for workspace ${workspaceId}. Run \`besales-mcp connect\` again for it.`
272
327
  : 'Besales rejected stored credentials. Run `besales-mcp connect` again.';
273
- return apiErrorResult(error, message, 'Переподключи этот workspace и повтори только после успешного connect.');
328
+ return apiErrorResult(context, error, message, 'Переподключи этот workspace и повтори только после успешного connect.');
274
329
  }
275
330
  if (error.status === 403) {
276
331
  // Сообщение бэкенда НАЗЫВАЕТ недостающий scope, и оно важнее нашей догадки: композит
@@ -279,27 +334,27 @@ function mapApiClientError(error, context, workspaceId) {
279
334
  const message = error.responseMessage
280
335
  ? `Besales rejected this request: ${error.responseMessage}`
281
336
  : 'Besales rejected this request: the stored key lacks the scope this endpoint requires.';
282
- return apiErrorResult(error, message, 'Добавь недостающий scope через connect, не заменяя уже выданные права.');
337
+ return apiErrorResult(context, error, message, 'Добавь недостающий scope через connect, не заменяя уже выданные права.');
283
338
  }
284
339
  if (error.status === 410) {
285
340
  if (context.restartToolName === undefined && context.sideEffect !== 'spend') {
286
- return apiErrorResult(error, error.responseMessage ??
341
+ return apiErrorResult(context, error, error.responseMessage ??
287
342
  'This link, token or preview has expired or is no longer available.', error.responseMessage
288
343
  ? 'Передай человеку причину отказа. Продолжай по указанию ответа через соответствующий инструмент.'
289
344
  : 'Сообщи человеку, что ссылка, токен или предварительный просмотр больше недоступны. Получи новый через соответствующий инструмент.');
290
345
  }
291
346
  const message = 'The previous operation did not return a confirmed result. Work may already have been charged. Tell the user before starting another run. A new run is charged separately.';
292
- return apiErrorResult(error, message, 'Сообщи человеку: работа могла быть оплачена без сохранённого результата. Новый запуск оплачивается отдельно; запускай его только по решению человека.');
347
+ return apiErrorResult(context, error, message, 'Сообщи человеку: работа могла быть оплачена без сохранённого результата. Новый запуск оплачивается отдельно; запускай его только по решению человека.');
293
348
  }
294
349
  if (error.status === 422) {
295
350
  const message = error.responseMessage
296
351
  ? `Besales rejected tool input: ${error.responseMessage}`
297
352
  : 'Besales rejected tool input.';
298
- return apiErrorResult(error, message, 'Исправь указанные поля и отправь тот же замысел снова.');
353
+ return apiErrorResult(context, error, message, 'Исправь указанные поля и отправь тот же замысел снова.');
299
354
  }
300
355
  if (error.status === 429) {
301
356
  const retryAfter = error.details?.retryAfterSeconds;
302
- return apiErrorResult(error, retryAfter === undefined
357
+ return apiErrorResult(context, error, retryAfter === undefined
303
358
  ? 'Besales rate limit reached. Try again later.'
304
359
  : `Besales rate limit reached. Retry after ${retryAfter} seconds.`, retryAfter === undefined
305
360
  ? 'Подожди и повтори после снятия ограничения.'
@@ -307,7 +362,7 @@ function mapApiClientError(error, context, workspaceId) {
307
362
  }
308
363
  if ((error.status === 409 || error.status === 428) &&
309
364
  context.verifyWithToolName === 'besales_dialogue_followup_state_get') {
310
- return apiErrorResult(error, error.responseMessage ?? `Besales rejected request (${error.status}).`, 'Сохрани намерение человека. Перечитай besales_dialogue_followup_state_get и покажи состояние, последствия и ограничения на языке API. Повторяй запись с прочитанной версией только после нового явного решения человека; автоматически не повторяй.');
365
+ return apiErrorResult(context, error, error.responseMessage ?? `Besales rejected request (${error.status}).`, 'Сохрани намерение человека. Перечитай besales_dialogue_followup_state_get и покажи состояние, последствия и ограничения на языке API. Повторяй запись с прочитанной версией только после нового явного решения человека; автоматически не повторяй.');
311
366
  }
312
367
  const message = error.responseMessage
313
368
  ? `Besales rejected request (${error.status}): ${error.responseMessage}`
@@ -316,21 +371,27 @@ function mapApiClientError(error, context, workspaceId) {
316
371
  error.details?.code === 'VARIABLE_WORKFLOWS_BLOCK_DELETE' &&
317
372
  (error.details.workflows?.length ?? 0) > 0 &&
318
373
  context.conflictInstructions !== undefined)
319
- return apiErrorResult(error, `${message} ${context.conflictInstructions}`, context.conflictInstructions);
374
+ return apiErrorResult(context, error, `${message} ${context.conflictInstructions}`, context.conflictInstructions);
320
375
  if (error.details?.code === 'CRM_OPERATOR_EDIT_CONFLICT' ||
321
376
  error.details?.code === 'WORKSPACE_OPERATOR_EDIT_CONFLICT') {
322
- return apiErrorResult(error, message, 'Сохраните несохранённый ввод. Перечитайте данные и сравните изменения; новую правку отправляйте только после явного решения человека.');
377
+ return apiErrorResult(context, error, message, 'Сохраните несохранённый ввод. Перечитайте данные и сравните изменения; новую правку отправляйте только после явного решения человека.');
323
378
  }
324
- return apiErrorResult(error, message, error.details?.remediation ? undefined : 'Исправь причину из сообщения и повтори вызов.');
379
+ return apiErrorResult(context, error, message, error.details?.remediation ? undefined : 'Исправь причину из сообщения и повтори вызов.');
325
380
  }
326
- function apiErrorResult(error, message, continuation) {
381
+ function apiErrorResult(context, error, message, continuation) {
327
382
  const detailsText = formatSafeDetails(error.details);
328
383
  const visibleMessage = detailsText ? `${message} ${detailsText}` : message;
329
- return errorToolResult(visibleMessage, {
384
+ // Ключ ставится перед сообщением API: длинная диагностика может быть обрезана конвертом.
385
+ const requestKey = context.requestIdentity?.request_key;
386
+ const text = typeof requestKey === 'string'
387
+ ? `request_key=${requestKey}. ${visibleMessage}`
388
+ : visibleMessage;
389
+ return errorToolResult(text, {
330
390
  code: error.details?.code ?? `HTTP_${error.status ?? 'UNKNOWN'}`,
331
391
  message,
332
392
  status: error.status,
333
393
  details: error.details,
394
+ ...(context.requestIdentity ? { requestIdentity: context.requestIdentity } : {}),
334
395
  continuation: continuation ??
335
396
  (typeof error.details?.remediation === 'string'
336
397
  ? error.details.remediation
@@ -341,9 +402,21 @@ function formatSafeDetails(details) {
341
402
  if (!details)
342
403
  return undefined;
343
404
  const parts = [];
405
+ for (const item of details.items ?? [])
406
+ parts.push(`${item.proxyId}: ${item.reason}.`);
407
+ if (details.code === 'TELEGRAM_PROXY_COUNTRY_NOT_ENOUGH') {
408
+ if (details.available !== undefined)
409
+ parts.push(`Доступно мест: ${details.available}.`);
410
+ if (details.requested !== undefined)
411
+ parts.push(`Запрошено мест: ${details.requested}.`);
412
+ }
413
+ for (const file of details.files ?? [])
414
+ parts.push(`${file.fileName}: ${file.reason}.`);
344
415
  for (const workflow of details.workflows ?? [])
345
416
  parts.push(`«${workflow.name}»: живых прогонов ${workflow.liveRuns}.`);
346
- if (details.serviceAccountEmail && details.code !== 'DOCUMENT_ACCESS_CONFIRMATION_REQUIRED' && details.code !== 'DOCUMENT_ACCESS_SNAPSHOT_CHANGED') {
417
+ if (details.serviceAccountEmail &&
418
+ details.code !== 'DOCUMENT_ACCESS_CONFIRMATION_REQUIRED' &&
419
+ details.code !== 'DOCUMENT_ACCESS_SNAPSHOT_CHANGED') {
347
420
  parts.push(`Дай доступ Google Sheets сервисному аккаунту ${details.serviceAccountEmail}.`);
348
421
  }
349
422
  const remediation = details.remediation;
@@ -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":"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"}