@contractspec/lib.support-bot 3.7.6 → 3.7.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.
- package/README.md +62 -36
- package/dist/bot/auto-responder.d.ts +1 -1
- package/dist/bot/auto-responder.js +101 -101
- package/dist/bot/feedback-loop.js +101 -101
- package/dist/bot/index.js +101 -101
- package/dist/bot/tools.d.ts +1 -1
- package/dist/browser/bot/auto-responder.js +101 -101
- package/dist/browser/bot/feedback-loop.js +101 -101
- package/dist/browser/bot/index.js +101 -101
- package/dist/browser/i18n/catalogs/index.js +80 -80
- package/dist/browser/i18n/index.js +101 -101
- package/dist/browser/i18n/locale.js +2 -2
- package/dist/browser/i18n/messages.js +80 -80
- package/dist/browser/index.js +132 -132
- package/dist/browser/rag/index.js +101 -101
- package/dist/browser/rag/ticket-resolver.js +101 -101
- package/dist/browser/tickets/classifier.js +101 -101
- package/dist/browser/tickets/index.js +101 -101
- package/dist/i18n/catalogs/index.d.ts +1 -1
- package/dist/i18n/catalogs/index.js +80 -80
- package/dist/i18n/index.d.ts +7 -7
- package/dist/i18n/index.js +101 -101
- package/dist/i18n/locale.d.ts +1 -1
- package/dist/i18n/locale.js +2 -2
- package/dist/i18n/messages.js +80 -80
- package/dist/index.d.ts +3 -3
- package/dist/index.js +132 -132
- package/dist/node/bot/auto-responder.js +101 -101
- package/dist/node/bot/feedback-loop.js +101 -101
- package/dist/node/bot/index.js +101 -101
- package/dist/node/i18n/catalogs/index.js +80 -80
- package/dist/node/i18n/index.js +101 -101
- package/dist/node/i18n/locale.js +2 -2
- package/dist/node/i18n/messages.js +80 -80
- package/dist/node/index.js +132 -132
- package/dist/node/rag/index.js +101 -101
- package/dist/node/rag/ticket-resolver.js +101 -101
- package/dist/node/tickets/classifier.js +101 -101
- package/dist/node/tickets/index.js +101 -101
- package/dist/rag/index.js +101 -101
- package/dist/rag/ticket-resolver.js +101 -101
- package/dist/tickets/classifier.js +101 -101
- package/dist/tickets/index.js +101 -101
- package/package.json +7 -7
|
@@ -188,38 +188,38 @@ Respond to the customer.`,
|
|
|
188
188
|
}
|
|
189
189
|
});
|
|
190
190
|
|
|
191
|
-
// src/i18n/catalogs/
|
|
191
|
+
// src/i18n/catalogs/es.ts
|
|
192
192
|
import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
|
|
193
|
-
var
|
|
193
|
+
var esMessages = defineTranslation2({
|
|
194
194
|
meta: {
|
|
195
195
|
key: "support-bot.messages",
|
|
196
196
|
version: "1.0.0",
|
|
197
197
|
domain: "support-bot",
|
|
198
|
-
description: "
|
|
198
|
+
description: "Spanish translations for the support-bot package",
|
|
199
199
|
owners: ["platform"],
|
|
200
200
|
stability: "experimental"
|
|
201
201
|
},
|
|
202
|
-
locale: "
|
|
202
|
+
locale: "es",
|
|
203
203
|
fallback: "en",
|
|
204
204
|
messages: {
|
|
205
205
|
"prompt.classifier.system": {
|
|
206
|
-
value: "
|
|
206
|
+
value: "Clasifica el ticket de soporte.",
|
|
207
207
|
description: "Classifier LLM system prompt"
|
|
208
208
|
},
|
|
209
209
|
"prompt.autoResponder.system": {
|
|
210
|
-
value: "
|
|
210
|
+
value: "Redacta respuestas de soporte emp\xE1ticas y precisas citando fuentes cuando sea relevante.",
|
|
211
211
|
description: "Auto-responder LLM system prompt"
|
|
212
212
|
},
|
|
213
213
|
"prompt.autoResponder.user": {
|
|
214
214
|
value: `Ticket #{ticketId} ({category}, {priority}, {sentiment})
|
|
215
|
-
|
|
215
|
+
Asunto: {subject}
|
|
216
216
|
|
|
217
217
|
{body}
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
Conocimientos:
|
|
220
220
|
{knowledge}
|
|
221
221
|
|
|
222
|
-
|
|
222
|
+
Responde al cliente.`,
|
|
223
223
|
description: "Auto-responder user prompt template",
|
|
224
224
|
placeholders: [
|
|
225
225
|
{ name: "ticketId", type: "string" },
|
|
@@ -232,94 +232,94 @@ R\xE9pondez au client.`,
|
|
|
232
232
|
]
|
|
233
233
|
},
|
|
234
234
|
"responder.closing.friendly": {
|
|
235
|
-
value: "
|
|
235
|
+
value: "Quedamos a su disposici\xF3n si necesita cualquier otra cosa.",
|
|
236
236
|
description: "Friendly closing line for support responses"
|
|
237
237
|
},
|
|
238
238
|
"responder.closing.formal": {
|
|
239
|
-
value: "
|
|
239
|
+
value: "No dude en contactarnos si requiere asistencia adicional.",
|
|
240
240
|
description: "Formal closing line for support responses"
|
|
241
241
|
},
|
|
242
242
|
"responder.greeting.named": {
|
|
243
|
-
value: "
|
|
243
|
+
value: "Hola {name},",
|
|
244
244
|
description: "Greeting with customer name",
|
|
245
245
|
placeholders: [{ name: "name", type: "string" }]
|
|
246
246
|
},
|
|
247
247
|
"responder.greeting.anonymous": {
|
|
248
|
-
value: "
|
|
248
|
+
value: "Hola,",
|
|
249
249
|
description: "Greeting without customer name"
|
|
250
250
|
},
|
|
251
251
|
"responder.intro.thanks": {
|
|
252
|
-
value: "
|
|
252
|
+
value: "Gracias por contactarnos sobre \xAB{subject}\xBB.",
|
|
253
253
|
description: "Thank-you intro referencing the ticket subject",
|
|
254
254
|
placeholders: [{ name: "subject", type: "string" }]
|
|
255
255
|
},
|
|
256
256
|
"responder.signature": {
|
|
257
|
-
value: "\u2014
|
|
257
|
+
value: "\u2014 Soporte ContractSpec",
|
|
258
258
|
description: "Email / response signature"
|
|
259
259
|
},
|
|
260
260
|
"responder.references.header": {
|
|
261
|
-
value: "
|
|
261
|
+
value: "Referencias:",
|
|
262
262
|
description: "Header for the references section"
|
|
263
263
|
},
|
|
264
264
|
"responder.references.sourceLabel": {
|
|
265
|
-
value: "
|
|
265
|
+
value: "Fuente {index}",
|
|
266
266
|
description: "Label for a numbered source reference",
|
|
267
267
|
placeholders: [{ name: "index", type: "number" }]
|
|
268
268
|
},
|
|
269
269
|
"responder.category.billing": {
|
|
270
|
-
value: "
|
|
270
|
+
value: "Entiendo que los problemas de facturaci\xF3n pueden ser estresantes, perm\xEDtame aclarar la situaci\xF3n.",
|
|
271
271
|
description: "Category intro for billing tickets"
|
|
272
272
|
},
|
|
273
273
|
"responder.category.technical": {
|
|
274
|
-
value: "
|
|
274
|
+
value: "Veo que encontr\xF3 un problema t\xE9cnico. Esto es lo que sucedi\xF3 y c\xF3mo solucionarlo.",
|
|
275
275
|
description: "Category intro for technical tickets"
|
|
276
276
|
},
|
|
277
277
|
"responder.category.product": {
|
|
278
|
-
value: "
|
|
278
|
+
value: "Gracias por compartir sus comentarios sobre el producto. Estos son los pr\xF3ximos pasos.",
|
|
279
279
|
description: "Category intro for product tickets"
|
|
280
280
|
},
|
|
281
281
|
"responder.category.account": {
|
|
282
|
-
value: "
|
|
282
|
+
value: "El acceso a la cuenta es fundamental, perm\xEDtame guiarle hacia la resoluci\xF3n.",
|
|
283
283
|
description: "Category intro for account tickets"
|
|
284
284
|
},
|
|
285
285
|
"responder.category.compliance": {
|
|
286
|
-
value: "
|
|
286
|
+
value: "Las preguntas de cumplimiento requieren precisi\xF3n. Consulte la respuesta alineada con las pol\xEDticas a continuaci\xF3n.",
|
|
287
287
|
description: "Category intro for compliance tickets"
|
|
288
288
|
},
|
|
289
289
|
"responder.category.other": {
|
|
290
|
-
value: "
|
|
290
|
+
value: "Esto es lo que encontramos tras revisar su solicitud.",
|
|
291
291
|
description: "Category intro for uncategorized tickets"
|
|
292
292
|
},
|
|
293
293
|
"responder.subject.replyPrefix": {
|
|
294
|
-
value: "Re
|
|
294
|
+
value: "Re: {subject}",
|
|
295
295
|
description: "Reply subject line prefix",
|
|
296
296
|
placeholders: [{ name: "subject", type: "string" }]
|
|
297
297
|
},
|
|
298
298
|
"resolver.question.subjectLabel": {
|
|
299
|
-
value: "
|
|
299
|
+
value: "Asunto: {subject}",
|
|
300
300
|
description: "Subject label in resolver question context",
|
|
301
301
|
placeholders: [{ name: "subject", type: "string" }]
|
|
302
302
|
},
|
|
303
303
|
"resolver.question.channelLabel": {
|
|
304
|
-
value: "Canal
|
|
304
|
+
value: "Canal: {channel}",
|
|
305
305
|
description: "Channel label in resolver question context",
|
|
306
306
|
placeholders: [{ name: "channel", type: "string" }]
|
|
307
307
|
},
|
|
308
308
|
"resolver.question.customerLabel": {
|
|
309
|
-
value: "
|
|
309
|
+
value: "Cliente: {name}",
|
|
310
310
|
description: "Customer label in resolver question context",
|
|
311
311
|
placeholders: [{ name: "name", type: "string" }]
|
|
312
312
|
},
|
|
313
313
|
"resolver.action.escalate": {
|
|
314
|
-
value: "
|
|
314
|
+
value: "Escalar para revisi\xF3n humana",
|
|
315
315
|
description: "Action label for escalation"
|
|
316
316
|
},
|
|
317
317
|
"resolver.action.respond": {
|
|
318
|
-
value: "
|
|
318
|
+
value: "Enviar respuesta autom\xE1tica",
|
|
319
319
|
description: "Action label for automated response"
|
|
320
320
|
},
|
|
321
321
|
"resolver.escalation.insufficientConfidence": {
|
|
322
|
-
value: "
|
|
322
|
+
value: "Confianza insuficiente o referencias de conocimiento faltantes",
|
|
323
323
|
description: "Escalation reason when confidence is too low"
|
|
324
324
|
},
|
|
325
325
|
"tool.classify.title": {
|
|
@@ -327,7 +327,7 @@ R\xE9pondez au client.`,
|
|
|
327
327
|
description: "MCP tool title for ticket classification"
|
|
328
328
|
},
|
|
329
329
|
"tool.classify.description": {
|
|
330
|
-
value: "
|
|
330
|
+
value: "Clasificar un ticket por prioridad, sentimiento y categor\xEDa",
|
|
331
331
|
description: "MCP tool description for ticket classification"
|
|
332
332
|
},
|
|
333
333
|
"tool.resolve.title": {
|
|
@@ -335,7 +335,7 @@ R\xE9pondez au client.`,
|
|
|
335
335
|
description: "MCP tool title for ticket resolution"
|
|
336
336
|
},
|
|
337
337
|
"tool.resolve.description": {
|
|
338
|
-
value: "
|
|
338
|
+
value: "Generar una resoluci\xF3n basada en conocimientos para un ticket",
|
|
339
339
|
description: "MCP tool description for ticket resolution"
|
|
340
340
|
},
|
|
341
341
|
"tool.draft.title": {
|
|
@@ -343,72 +343,72 @@ R\xE9pondez au client.`,
|
|
|
343
343
|
description: "MCP tool title for response drafting"
|
|
344
344
|
},
|
|
345
345
|
"tool.draft.description": {
|
|
346
|
-
value: "
|
|
346
|
+
value: "Redactar una respuesta al cliente basada en la resoluci\xF3n y la clasificaci\xF3n",
|
|
347
347
|
description: "MCP tool description for response drafting"
|
|
348
348
|
},
|
|
349
349
|
"error.inputMustIncludeTicket": {
|
|
350
|
-
value: "
|
|
350
|
+
value: "La entrada debe incluir un ticket",
|
|
351
351
|
description: "Error when input payload is missing the ticket field"
|
|
352
352
|
},
|
|
353
353
|
"error.ticketMissingId": {
|
|
354
|
-
value: "
|
|
354
|
+
value: "El ticket no tiene identificador",
|
|
355
355
|
description: "Error when ticket object lacks an id"
|
|
356
356
|
},
|
|
357
357
|
"error.resolutionClassificationRequired": {
|
|
358
|
-
value: "la
|
|
358
|
+
value: "la resoluci\xF3n y la clasificaci\xF3n son obligatorias",
|
|
359
359
|
description: "Error when draft endpoint is called without resolution and classification"
|
|
360
360
|
},
|
|
361
361
|
"feedback.noRecords": {
|
|
362
|
-
value: "
|
|
362
|
+
value: "No hay comentarios registrados a\xFAn.",
|
|
363
363
|
description: "Placeholder when no feedback entries exist"
|
|
364
364
|
},
|
|
365
365
|
"feedback.status.escalated": {
|
|
366
|
-
value: "
|
|
366
|
+
value: "Escalado",
|
|
367
367
|
description: "Status label for escalated tickets"
|
|
368
368
|
},
|
|
369
369
|
"feedback.status.autoResolved": {
|
|
370
|
-
value: "
|
|
370
|
+
value: "Resuelto autom\xE1ticamente",
|
|
371
371
|
description: "Status label for auto-resolved tickets"
|
|
372
372
|
},
|
|
373
373
|
"spec.instructionsAppendix": {
|
|
374
|
-
value: "
|
|
374
|
+
value: "Cite siempre las fuentes de conocimiento de soporte y se\xF1ale los problemas de cumplimiento/facturaci\xF3n para revisi\xF3n humana en caso de duda.",
|
|
375
375
|
description: "Instructions appendix appended to agent spec"
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
378
|
});
|
|
379
379
|
|
|
380
|
-
// src/i18n/catalogs/
|
|
380
|
+
// src/i18n/catalogs/fr.ts
|
|
381
381
|
import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
|
|
382
|
-
var
|
|
382
|
+
var frMessages = defineTranslation3({
|
|
383
383
|
meta: {
|
|
384
384
|
key: "support-bot.messages",
|
|
385
385
|
version: "1.0.0",
|
|
386
386
|
domain: "support-bot",
|
|
387
|
-
description: "
|
|
387
|
+
description: "French translations for the support-bot package",
|
|
388
388
|
owners: ["platform"],
|
|
389
389
|
stability: "experimental"
|
|
390
390
|
},
|
|
391
|
-
locale: "
|
|
391
|
+
locale: "fr",
|
|
392
392
|
fallback: "en",
|
|
393
393
|
messages: {
|
|
394
394
|
"prompt.classifier.system": {
|
|
395
|
-
value: "
|
|
395
|
+
value: "Classifiez le ticket de support.",
|
|
396
396
|
description: "Classifier LLM system prompt"
|
|
397
397
|
},
|
|
398
398
|
"prompt.autoResponder.system": {
|
|
399
|
-
value: "
|
|
399
|
+
value: "R\xE9digez des r\xE9ponses de support empathiques et pr\xE9cises en citant les sources lorsque c\u2019est pertinent.",
|
|
400
400
|
description: "Auto-responder LLM system prompt"
|
|
401
401
|
},
|
|
402
402
|
"prompt.autoResponder.user": {
|
|
403
403
|
value: `Ticket #{ticketId} ({category}, {priority}, {sentiment})
|
|
404
|
-
|
|
404
|
+
Sujet\xA0: {subject}
|
|
405
405
|
|
|
406
406
|
{body}
|
|
407
407
|
|
|
408
|
-
|
|
408
|
+
Connaissances\xA0:
|
|
409
409
|
{knowledge}
|
|
410
410
|
|
|
411
|
-
|
|
411
|
+
R\xE9pondez au client.`,
|
|
412
412
|
description: "Auto-responder user prompt template",
|
|
413
413
|
placeholders: [
|
|
414
414
|
{ name: "ticketId", type: "string" },
|
|
@@ -421,94 +421,94 @@ Responde al cliente.`,
|
|
|
421
421
|
]
|
|
422
422
|
},
|
|
423
423
|
"responder.closing.friendly": {
|
|
424
|
-
value: "
|
|
424
|
+
value: "Nous restons \xE0 votre disposition si vous avez besoin de quoi que ce soit.",
|
|
425
425
|
description: "Friendly closing line for support responses"
|
|
426
426
|
},
|
|
427
427
|
"responder.closing.formal": {
|
|
428
|
-
value: "
|
|
428
|
+
value: "Veuillez nous contacter si vous avez besoin d\u2019une assistance suppl\xE9mentaire.",
|
|
429
429
|
description: "Formal closing line for support responses"
|
|
430
430
|
},
|
|
431
431
|
"responder.greeting.named": {
|
|
432
|
-
value: "
|
|
432
|
+
value: "Bonjour {name},",
|
|
433
433
|
description: "Greeting with customer name",
|
|
434
434
|
placeholders: [{ name: "name", type: "string" }]
|
|
435
435
|
},
|
|
436
436
|
"responder.greeting.anonymous": {
|
|
437
|
-
value: "
|
|
437
|
+
value: "Bonjour,",
|
|
438
438
|
description: "Greeting without customer name"
|
|
439
439
|
},
|
|
440
440
|
"responder.intro.thanks": {
|
|
441
|
-
value: "
|
|
441
|
+
value: "Merci de nous avoir contact\xE9s au sujet de \xAB\xA0{subject}\xA0\xBB.",
|
|
442
442
|
description: "Thank-you intro referencing the ticket subject",
|
|
443
443
|
placeholders: [{ name: "subject", type: "string" }]
|
|
444
444
|
},
|
|
445
445
|
"responder.signature": {
|
|
446
|
-
value: "\u2014
|
|
446
|
+
value: "\u2014 Support ContractSpec",
|
|
447
447
|
description: "Email / response signature"
|
|
448
448
|
},
|
|
449
449
|
"responder.references.header": {
|
|
450
|
-
value: "
|
|
450
|
+
value: "R\xE9f\xE9rences\xA0:",
|
|
451
451
|
description: "Header for the references section"
|
|
452
452
|
},
|
|
453
453
|
"responder.references.sourceLabel": {
|
|
454
|
-
value: "
|
|
454
|
+
value: "Source {index}",
|
|
455
455
|
description: "Label for a numbered source reference",
|
|
456
456
|
placeholders: [{ name: "index", type: "number" }]
|
|
457
457
|
},
|
|
458
458
|
"responder.category.billing": {
|
|
459
|
-
value: "
|
|
459
|
+
value: "Je comprends que les probl\xE8mes de facturation peuvent \xEAtre stressants, laissez-moi clarifier la situation.",
|
|
460
460
|
description: "Category intro for billing tickets"
|
|
461
461
|
},
|
|
462
462
|
"responder.category.technical": {
|
|
463
|
-
value: "
|
|
463
|
+
value: "Je vois que vous avez rencontr\xE9 un probl\xE8me technique. Voici ce qui s\u2019est pass\xE9 et comment le r\xE9soudre.",
|
|
464
464
|
description: "Category intro for technical tickets"
|
|
465
465
|
},
|
|
466
466
|
"responder.category.product": {
|
|
467
|
-
value: "
|
|
467
|
+
value: "Merci d\u2019avoir partag\xE9 vos retours sur le produit. Voici les prochaines \xE9tapes.",
|
|
468
468
|
description: "Category intro for product tickets"
|
|
469
469
|
},
|
|
470
470
|
"responder.category.account": {
|
|
471
|
-
value: "
|
|
471
|
+
value: "L\u2019acc\xE8s au compte est essentiel, laissez-moi vous guider vers la r\xE9solution.",
|
|
472
472
|
description: "Category intro for account tickets"
|
|
473
473
|
},
|
|
474
474
|
"responder.category.compliance": {
|
|
475
|
-
value: "
|
|
475
|
+
value: "Les questions de conformit\xE9 exigent de la pr\xE9cision. Consultez la r\xE9ponse conforme aux politiques ci-dessous.",
|
|
476
476
|
description: "Category intro for compliance tickets"
|
|
477
477
|
},
|
|
478
478
|
"responder.category.other": {
|
|
479
|
-
value: "
|
|
479
|
+
value: "Voici ce que nous avons trouv\xE9 apr\xE8s examen de votre demande.",
|
|
480
480
|
description: "Category intro for uncategorized tickets"
|
|
481
481
|
},
|
|
482
482
|
"responder.subject.replyPrefix": {
|
|
483
|
-
value: "Re: {subject}",
|
|
483
|
+
value: "Re\xA0: {subject}",
|
|
484
484
|
description: "Reply subject line prefix",
|
|
485
485
|
placeholders: [{ name: "subject", type: "string" }]
|
|
486
486
|
},
|
|
487
487
|
"resolver.question.subjectLabel": {
|
|
488
|
-
value: "
|
|
488
|
+
value: "Sujet\xA0: {subject}",
|
|
489
489
|
description: "Subject label in resolver question context",
|
|
490
490
|
placeholders: [{ name: "subject", type: "string" }]
|
|
491
491
|
},
|
|
492
492
|
"resolver.question.channelLabel": {
|
|
493
|
-
value: "Canal: {channel}",
|
|
493
|
+
value: "Canal\xA0: {channel}",
|
|
494
494
|
description: "Channel label in resolver question context",
|
|
495
495
|
placeholders: [{ name: "channel", type: "string" }]
|
|
496
496
|
},
|
|
497
497
|
"resolver.question.customerLabel": {
|
|
498
|
-
value: "
|
|
498
|
+
value: "Client\xA0: {name}",
|
|
499
499
|
description: "Customer label in resolver question context",
|
|
500
500
|
placeholders: [{ name: "name", type: "string" }]
|
|
501
501
|
},
|
|
502
502
|
"resolver.action.escalate": {
|
|
503
|
-
value: "
|
|
503
|
+
value: "Escalader pour r\xE9vision humaine",
|
|
504
504
|
description: "Action label for escalation"
|
|
505
505
|
},
|
|
506
506
|
"resolver.action.respond": {
|
|
507
|
-
value: "
|
|
507
|
+
value: "Envoyer une r\xE9ponse automatique",
|
|
508
508
|
description: "Action label for automated response"
|
|
509
509
|
},
|
|
510
510
|
"resolver.escalation.insufficientConfidence": {
|
|
511
|
-
value: "
|
|
511
|
+
value: "Confiance insuffisante ou r\xE9f\xE9rences de connaissances manquantes",
|
|
512
512
|
description: "Escalation reason when confidence is too low"
|
|
513
513
|
},
|
|
514
514
|
"tool.classify.title": {
|
|
@@ -516,7 +516,7 @@ Responde al cliente.`,
|
|
|
516
516
|
description: "MCP tool title for ticket classification"
|
|
517
517
|
},
|
|
518
518
|
"tool.classify.description": {
|
|
519
|
-
value: "
|
|
519
|
+
value: "Classifier un ticket par priorit\xE9, sentiment et cat\xE9gorie",
|
|
520
520
|
description: "MCP tool description for ticket classification"
|
|
521
521
|
},
|
|
522
522
|
"tool.resolve.title": {
|
|
@@ -524,7 +524,7 @@ Responde al cliente.`,
|
|
|
524
524
|
description: "MCP tool title for ticket resolution"
|
|
525
525
|
},
|
|
526
526
|
"tool.resolve.description": {
|
|
527
|
-
value: "
|
|
527
|
+
value: "G\xE9n\xE9rer une r\xE9solution fond\xE9e sur la base de connaissances pour un ticket",
|
|
528
528
|
description: "MCP tool description for ticket resolution"
|
|
529
529
|
},
|
|
530
530
|
"tool.draft.title": {
|
|
@@ -532,61 +532,40 @@ Responde al cliente.`,
|
|
|
532
532
|
description: "MCP tool title for response drafting"
|
|
533
533
|
},
|
|
534
534
|
"tool.draft.description": {
|
|
535
|
-
value: "
|
|
535
|
+
value: "R\xE9diger une r\xE9ponse client bas\xE9e sur la r\xE9solution et la classification",
|
|
536
536
|
description: "MCP tool description for response drafting"
|
|
537
537
|
},
|
|
538
538
|
"error.inputMustIncludeTicket": {
|
|
539
|
-
value: "
|
|
539
|
+
value: "L\u2019entr\xE9e doit inclure un ticket",
|
|
540
540
|
description: "Error when input payload is missing the ticket field"
|
|
541
541
|
},
|
|
542
542
|
"error.ticketMissingId": {
|
|
543
|
-
value: "
|
|
543
|
+
value: "Le ticket n\u2019a pas d\u2019identifiant",
|
|
544
544
|
description: "Error when ticket object lacks an id"
|
|
545
545
|
},
|
|
546
546
|
"error.resolutionClassificationRequired": {
|
|
547
|
-
value: "la
|
|
547
|
+
value: "la r\xE9solution et la classification sont requises",
|
|
548
548
|
description: "Error when draft endpoint is called without resolution and classification"
|
|
549
549
|
},
|
|
550
550
|
"feedback.noRecords": {
|
|
551
|
-
value: "
|
|
551
|
+
value: "Aucun retour enregistr\xE9 pour le moment.",
|
|
552
552
|
description: "Placeholder when no feedback entries exist"
|
|
553
553
|
},
|
|
554
554
|
"feedback.status.escalated": {
|
|
555
|
-
value: "
|
|
555
|
+
value: "Escalad\xE9",
|
|
556
556
|
description: "Status label for escalated tickets"
|
|
557
557
|
},
|
|
558
558
|
"feedback.status.autoResolved": {
|
|
559
|
-
value: "
|
|
559
|
+
value: "R\xE9solu automatiquement",
|
|
560
560
|
description: "Status label for auto-resolved tickets"
|
|
561
561
|
},
|
|
562
562
|
"spec.instructionsAppendix": {
|
|
563
|
-
value: "
|
|
563
|
+
value: "Citez toujours les sources de connaissances du support et signalez les probl\xE8mes de conformit\xE9/facturation pour r\xE9vision humaine en cas de doute.",
|
|
564
564
|
description: "Instructions appendix appended to agent spec"
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
567
|
});
|
|
568
568
|
|
|
569
|
-
// src/i18n/messages.ts
|
|
570
|
-
import {
|
|
571
|
-
createI18nFactory
|
|
572
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
573
|
-
import { interpolate } from "@contractspec/lib.contracts-spec/translations";
|
|
574
|
-
var factory = createI18nFactory({
|
|
575
|
-
specKey: "support-bot.messages",
|
|
576
|
-
catalogs: [enMessages, frMessages, esMessages]
|
|
577
|
-
});
|
|
578
|
-
var createSupportBotI18n = factory.create;
|
|
579
|
-
var getDefaultI18n = factory.getDefault;
|
|
580
|
-
var resetI18nRegistry = factory.resetRegistry;
|
|
581
|
-
|
|
582
|
-
// src/i18n/locale.ts
|
|
583
|
-
import {
|
|
584
|
-
DEFAULT_LOCALE,
|
|
585
|
-
SUPPORTED_LOCALES,
|
|
586
|
-
resolveLocale,
|
|
587
|
-
isSupportedLocale
|
|
588
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
589
|
-
|
|
590
569
|
// src/i18n/keys.ts
|
|
591
570
|
var PROMPT_KEYS = {
|
|
592
571
|
"prompt.classifier.system": "prompt.classifier.system",
|
|
@@ -648,6 +627,27 @@ var I18N_KEYS = {
|
|
|
648
627
|
...FEEDBACK_KEYS,
|
|
649
628
|
...SPEC_KEYS
|
|
650
629
|
};
|
|
630
|
+
|
|
631
|
+
// src/i18n/locale.ts
|
|
632
|
+
import {
|
|
633
|
+
DEFAULT_LOCALE,
|
|
634
|
+
isSupportedLocale,
|
|
635
|
+
resolveLocale,
|
|
636
|
+
SUPPORTED_LOCALES
|
|
637
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
638
|
+
|
|
639
|
+
// src/i18n/messages.ts
|
|
640
|
+
import {
|
|
641
|
+
createI18nFactory
|
|
642
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
643
|
+
import { interpolate } from "@contractspec/lib.contracts-spec/translations";
|
|
644
|
+
var factory = createI18nFactory({
|
|
645
|
+
specKey: "support-bot.messages",
|
|
646
|
+
catalogs: [enMessages, frMessages, esMessages]
|
|
647
|
+
});
|
|
648
|
+
var createSupportBotI18n = factory.create;
|
|
649
|
+
var getDefaultI18n = factory.getDefault;
|
|
650
|
+
var resetI18nRegistry = factory.resetRegistry;
|
|
651
651
|
// src/bot/feedback-loop.ts
|
|
652
652
|
class SupportFeedbackLoop {
|
|
653
653
|
history = [];
|