@contractspec/example.ai-support-bot 1.44.0

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/src/setup.ts ADDED
@@ -0,0 +1,49 @@
1
+ import { TicketResolver } from '@contractspec/lib.support-bot/rag';
2
+ import { TicketClassifier } from '@contractspec/lib.support-bot/tickets';
3
+ import { AutoResponder } from '@contractspec/lib.support-bot/bot';
4
+ import type { KnowledgeAnswer } from '@contractspec/lib.knowledge/query/service';
5
+ import type { SupportTicket } from '@contractspec/lib.support-bot/types';
6
+ import { Logger, LogLevel } from '@contractspec/lib.logger';
7
+ import type { LoggerConfig } from '@contractspec/lib.logger/types';
8
+
9
+ const logger = new Logger({
10
+ level: process.env.NODE_ENV === 'production' ? LogLevel.INFO : LogLevel.DEBUG,
11
+ environment:
12
+ (process.env.NODE_ENV as LoggerConfig['environment']) || 'development',
13
+ enableColors: process.env.NODE_ENV !== 'production',
14
+ });
15
+
16
+ export async function runAiSupportBotExample(): Promise<void> {
17
+ const knowledge = {
18
+ async query(question: string): Promise<KnowledgeAnswer> {
19
+ return {
20
+ answer: `The payout will retrigger automatically. (${question.slice(0, 40)}…)`,
21
+ references: [],
22
+ };
23
+ },
24
+ };
25
+
26
+ const resolver = new TicketResolver({ knowledge });
27
+ const classifier = new TicketClassifier();
28
+ const responder = new AutoResponder();
29
+
30
+ const ticket: SupportTicket = {
31
+ id: 'TIC-42',
32
+ subject: 'Payout failed',
33
+ body: 'Hello, our supplier payout failed twice yesterday. Can you confirm status? It is urgent.',
34
+ channel: 'email',
35
+ customerName: 'Ivy',
36
+ metadata: { accountId: 'acct_789' },
37
+ };
38
+
39
+ const classification = await classifier.classify(ticket);
40
+ const resolution = await resolver.resolve(ticket);
41
+ const draft = await responder.draft(ticket, resolution, classification);
42
+
43
+ logger.info('Support bot run completed', {
44
+ ticketId: ticket.id,
45
+ classification,
46
+ resolution,
47
+ emailDraft: { subject: draft.subject, body: draft.body },
48
+ });
49
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "@contractspec/tool.typescript/react-library.json",
3
+ "include": ["src"],
4
+ "exclude": ["node_modules", "dist"],
5
+ "compilerOptions": {
6
+ "rootDir": "src",
7
+ "outDir": "dist"
8
+ }
9
+ }
10
+
11
+