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