@falai/agent 0.1.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.
Files changed (129) hide show
  1. package/README.md +516 -0
  2. package/dist/constants/index.d.ts +5 -0
  3. package/dist/constants/index.d.ts.map +1 -0
  4. package/dist/constants/index.js +5 -0
  5. package/dist/constants/index.js.map +1 -0
  6. package/dist/core/Agent.d.ts +98 -0
  7. package/dist/core/Agent.d.ts.map +1 -0
  8. package/dist/core/Agent.js +248 -0
  9. package/dist/core/Agent.js.map +1 -0
  10. package/dist/core/DomainRegistry.d.ts +26 -0
  11. package/dist/core/DomainRegistry.d.ts.map +1 -0
  12. package/dist/core/DomainRegistry.js +41 -0
  13. package/dist/core/DomainRegistry.js.map +1 -0
  14. package/dist/core/Events.d.ts +19 -0
  15. package/dist/core/Events.d.ts.map +1 -0
  16. package/dist/core/Events.js +79 -0
  17. package/dist/core/Events.js.map +1 -0
  18. package/dist/core/Observation.d.ts +24 -0
  19. package/dist/core/Observation.d.ts.map +1 -0
  20. package/dist/core/Observation.js +35 -0
  21. package/dist/core/Observation.js.map +1 -0
  22. package/dist/core/PromptBuilder.d.ts +121 -0
  23. package/dist/core/PromptBuilder.d.ts.map +1 -0
  24. package/dist/core/PromptBuilder.js +339 -0
  25. package/dist/core/PromptBuilder.js.map +1 -0
  26. package/dist/core/Route.d.ts +46 -0
  27. package/dist/core/Route.d.ts.map +1 -0
  28. package/dist/core/Route.js +113 -0
  29. package/dist/core/Route.js.map +1 -0
  30. package/dist/core/State.d.ts +50 -0
  31. package/dist/core/State.d.ts.map +1 -0
  32. package/dist/core/State.js +110 -0
  33. package/dist/core/State.js.map +1 -0
  34. package/dist/core/Tool.d.ts +31 -0
  35. package/dist/core/Tool.d.ts.map +1 -0
  36. package/dist/core/Tool.js +33 -0
  37. package/dist/core/Tool.js.map +1 -0
  38. package/dist/core/Transition.d.ts +32 -0
  39. package/dist/core/Transition.d.ts.map +1 -0
  40. package/dist/core/Transition.js +59 -0
  41. package/dist/core/Transition.js.map +1 -0
  42. package/dist/index.d.ts +34 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +26 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/providers/GeminiProvider.d.ts +40 -0
  47. package/dist/providers/GeminiProvider.d.ts.map +1 -0
  48. package/dist/providers/GeminiProvider.js +126 -0
  49. package/dist/providers/GeminiProvider.js.map +1 -0
  50. package/dist/providers/OpenAIProvider.d.ts +42 -0
  51. package/dist/providers/OpenAIProvider.d.ts.map +1 -0
  52. package/dist/providers/OpenAIProvider.js +164 -0
  53. package/dist/providers/OpenAIProvider.js.map +1 -0
  54. package/dist/providers/OpenRouterProvider.d.ts +46 -0
  55. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  56. package/dist/providers/OpenRouterProvider.js +171 -0
  57. package/dist/providers/OpenRouterProvider.js.map +1 -0
  58. package/dist/types/agent.d.ts +105 -0
  59. package/dist/types/agent.d.ts.map +1 -0
  60. package/dist/types/agent.js +18 -0
  61. package/dist/types/agent.js.map +1 -0
  62. package/dist/types/ai.d.ts +78 -0
  63. package/dist/types/ai.d.ts.map +1 -0
  64. package/dist/types/ai.js +5 -0
  65. package/dist/types/ai.js.map +1 -0
  66. package/dist/types/history.d.ts +112 -0
  67. package/dist/types/history.d.ts.map +1 -0
  68. package/dist/types/history.js +34 -0
  69. package/dist/types/history.js.map +1 -0
  70. package/dist/types/index.d.ts +14 -0
  71. package/dist/types/index.d.ts.map +1 -0
  72. package/dist/types/index.js +7 -0
  73. package/dist/types/index.js.map +1 -0
  74. package/dist/types/observation.d.ts +25 -0
  75. package/dist/types/observation.d.ts.map +1 -0
  76. package/dist/types/observation.js +5 -0
  77. package/dist/types/observation.js.map +1 -0
  78. package/dist/types/prompt.d.ts +46 -0
  79. package/dist/types/prompt.d.ts.map +1 -0
  80. package/dist/types/prompt.js +16 -0
  81. package/dist/types/prompt.js.map +1 -0
  82. package/dist/types/route.d.ts +59 -0
  83. package/dist/types/route.d.ts.map +1 -0
  84. package/dist/types/route.js +5 -0
  85. package/dist/types/route.js.map +1 -0
  86. package/dist/types/tool.d.ts +46 -0
  87. package/dist/types/tool.d.ts.map +1 -0
  88. package/dist/types/tool.js +5 -0
  89. package/dist/types/tool.js.map +1 -0
  90. package/dist/utils/retry.d.ts +13 -0
  91. package/dist/utils/retry.d.ts.map +1 -0
  92. package/dist/utils/retry.js +70 -0
  93. package/dist/utils/retry.js.map +1 -0
  94. package/docs/API_REFERENCE.md +517 -0
  95. package/docs/CONSTRUCTOR_OPTIONS.md +256 -0
  96. package/docs/CONTRIBUTING.md +481 -0
  97. package/docs/GETTING_STARTED.md +328 -0
  98. package/docs/PROVIDERS.md +472 -0
  99. package/docs/PUBLISHING.md +174 -0
  100. package/docs/README.md +68 -0
  101. package/docs/STRUCTURE.md +32 -0
  102. package/examples/declarative-agent.ts +217 -0
  103. package/examples/healthcare-agent.ts +283 -0
  104. package/examples/openai-agent.ts +167 -0
  105. package/examples/travel-agent.ts +342 -0
  106. package/package.json +73 -0
  107. package/src/constants/index.ts +5 -0
  108. package/src/core/Agent.ts +307 -0
  109. package/src/core/DomainRegistry.ts +50 -0
  110. package/src/core/Events.ts +101 -0
  111. package/src/core/Observation.ts +46 -0
  112. package/src/core/PromptBuilder.ts +511 -0
  113. package/src/core/Route.ts +136 -0
  114. package/src/core/State.ts +153 -0
  115. package/src/core/Tool.ts +54 -0
  116. package/src/core/Transition.ts +66 -0
  117. package/src/index.ts +83 -0
  118. package/src/providers/GeminiProvider.ts +220 -0
  119. package/src/providers/OpenAIProvider.ts +272 -0
  120. package/src/providers/OpenRouterProvider.ts +282 -0
  121. package/src/types/agent.ts +112 -0
  122. package/src/types/ai.ts +85 -0
  123. package/src/types/history.ts +125 -0
  124. package/src/types/index.ts +56 -0
  125. package/src/types/observation.ts +27 -0
  126. package/src/types/prompt.ts +49 -0
  127. package/src/types/route.ts +68 -0
  128. package/src/types/tool.ts +53 -0
  129. package/src/utils/retry.ts +96 -0
@@ -0,0 +1,248 @@
1
+ /**
2
+ * Core Agent implementation
3
+ */
4
+ import { Route } from "@/core/Route";
5
+ import { DomainRegistry } from "@/core/DomainRegistry";
6
+ import { PromptBuilder } from "@/core/PromptBuilder";
7
+ import { Observation } from "@/core/Observation";
8
+ /**
9
+ * Main Agent class with generic context support
10
+ */
11
+ export class Agent {
12
+ options;
13
+ terms = [];
14
+ guidelines = [];
15
+ capabilities = [];
16
+ routes = [];
17
+ observations = [];
18
+ domainRegistry = new DomainRegistry();
19
+ /**
20
+ * Dynamic domain property - populated via addDomain
21
+ */
22
+ domain = {};
23
+ constructor(options) {
24
+ this.options = options;
25
+ // Initialize with default values
26
+ if (!this.options.maxEngineIterations) {
27
+ this.options.maxEngineIterations = 1;
28
+ }
29
+ // Initialize from options
30
+ if (options.terms) {
31
+ this.terms = [...options.terms];
32
+ }
33
+ if (options.guidelines) {
34
+ options.guidelines.forEach((guideline) => {
35
+ this.createGuideline(guideline);
36
+ });
37
+ }
38
+ if (options.capabilities) {
39
+ options.capabilities.forEach((capability) => {
40
+ this.createCapability(capability);
41
+ });
42
+ }
43
+ if (options.routes) {
44
+ options.routes.forEach((routeOptions) => {
45
+ this.createRoute(routeOptions);
46
+ });
47
+ }
48
+ if (options.observations) {
49
+ options.observations.forEach((obsOptions) => {
50
+ const obs = this.createObservation(obsOptions.description);
51
+ // If route refs were provided, resolve and disambiguate
52
+ if (obsOptions.routeRefs && obsOptions.routeRefs.length > 0) {
53
+ const resolvedRoutes = obsOptions.routeRefs
54
+ .map((ref) => {
55
+ // Try to find route by ID or title
56
+ return this.routes.find((r) => r.id === ref || r.title === ref);
57
+ })
58
+ .filter((r) => r !== undefined);
59
+ if (resolvedRoutes.length > 0) {
60
+ obs.disambiguate(resolvedRoutes);
61
+ }
62
+ }
63
+ });
64
+ }
65
+ }
66
+ /**
67
+ * Get agent name
68
+ */
69
+ get name() {
70
+ return this.options.name;
71
+ }
72
+ /**
73
+ * Get agent description
74
+ */
75
+ get description() {
76
+ return this.options.description;
77
+ }
78
+ /**
79
+ * Get agent goal
80
+ */
81
+ get goal() {
82
+ return this.options.goal;
83
+ }
84
+ /**
85
+ * Create a new route (journey)
86
+ */
87
+ createRoute(options) {
88
+ const route = new Route(options);
89
+ this.routes.push(route);
90
+ return route;
91
+ }
92
+ /**
93
+ * Create a domain term for the glossary
94
+ */
95
+ createTerm(term) {
96
+ this.terms.push(term);
97
+ return this;
98
+ }
99
+ /**
100
+ * Create a behavioral guideline
101
+ */
102
+ createGuideline(guideline) {
103
+ const guidelineWithId = {
104
+ ...guideline,
105
+ id: guideline.id || `guideline_${this.guidelines.length}`,
106
+ enabled: guideline.enabled !== false, // Default to true
107
+ };
108
+ this.guidelines.push(guidelineWithId);
109
+ return this;
110
+ }
111
+ /**
112
+ * Add a capability
113
+ */
114
+ createCapability(capability) {
115
+ const capabilityWithId = {
116
+ ...capability,
117
+ id: capability.id || `capability_${this.capabilities.length}`,
118
+ };
119
+ this.capabilities.push(capabilityWithId);
120
+ return this;
121
+ }
122
+ /**
123
+ * Create an observation for disambiguation
124
+ */
125
+ createObservation(description) {
126
+ const observation = new Observation({ description });
127
+ this.observations.push(observation);
128
+ return observation;
129
+ }
130
+ /**
131
+ * Add a domain with its tools/methods
132
+ */
133
+ addDomain(name, domainObject) {
134
+ this.domainRegistry.register(name, domainObject);
135
+ // Attach to the domain property for easy access
136
+ this.domain[name] = domainObject;
137
+ }
138
+ /**
139
+ * Generate a response based on history and context
140
+ */
141
+ async respond(params) {
142
+ const { history, contextOverride, signal } = params;
143
+ // Merge context
144
+ const effectiveContext = {
145
+ ...this.options.context,
146
+ ...contextOverride,
147
+ };
148
+ // Build prompt
149
+ const promptBuilder = new PromptBuilder();
150
+ // Add agent identity
151
+ if (this.options.description) {
152
+ promptBuilder.addAgentIdentity({
153
+ name: this.options.name,
154
+ description: this.options.description,
155
+ });
156
+ }
157
+ // Add interaction history
158
+ promptBuilder.addInteractionHistoryForMessageGeneration(history);
159
+ // Add glossary
160
+ if (this.terms.length > 0) {
161
+ promptBuilder.addGlossary(this.terms);
162
+ }
163
+ // Add guidelines (convert to GuidelineMatch format, filter enabled only)
164
+ const enabledGuidelines = this.guidelines.filter((g) => g.enabled !== false);
165
+ if (enabledGuidelines.length > 0) {
166
+ const guidelineMatches = enabledGuidelines.map((g) => ({
167
+ guideline: g,
168
+ }));
169
+ promptBuilder.addGuidelinesForMessageGeneration(guidelineMatches);
170
+ }
171
+ // Add capabilities
172
+ if (this.capabilities.length > 0) {
173
+ promptBuilder.addCapabilitiesForMessageGeneration(this.capabilities);
174
+ }
175
+ // Add observations
176
+ if (this.observations.length > 0) {
177
+ const observationsWithRoutes = this.observations
178
+ .map((obs) => ({
179
+ description: obs.description,
180
+ routes: obs.getRoutes().map((routeRef) => {
181
+ const route = this.routes.find((r) => r.id === routeRef.id);
182
+ return { title: route?.title || routeRef.id };
183
+ }),
184
+ }))
185
+ .filter((obs) => obs.routes.length > 0);
186
+ if (observationsWithRoutes.length > 0) {
187
+ promptBuilder.addObservations(observationsWithRoutes);
188
+ }
189
+ }
190
+ // Add active routes
191
+ if (this.routes.length > 0) {
192
+ promptBuilder.addActiveRoutes(this.routes.map((r) => ({
193
+ title: r.title,
194
+ description: r.description,
195
+ conditions: r.conditions,
196
+ })));
197
+ }
198
+ // Build final prompt
199
+ const prompt = promptBuilder.build();
200
+ // Generate message using AI provider
201
+ const result = await this.options.ai.generateMessage({
202
+ prompt,
203
+ history,
204
+ context: effectiveContext,
205
+ signal,
206
+ });
207
+ return {
208
+ message: result.message,
209
+ };
210
+ }
211
+ /**
212
+ * Get all routes
213
+ */
214
+ getRoutes() {
215
+ return [...this.routes];
216
+ }
217
+ /**
218
+ * Get all terms
219
+ */
220
+ getTerms() {
221
+ return [...this.terms];
222
+ }
223
+ /**
224
+ * Get all guidelines
225
+ */
226
+ getGuidelines() {
227
+ return [...this.guidelines];
228
+ }
229
+ /**
230
+ * Get all capabilities
231
+ */
232
+ getCapabilities() {
233
+ return [...this.capabilities];
234
+ }
235
+ /**
236
+ * Get all observations
237
+ */
238
+ getObservations() {
239
+ return [...this.observations];
240
+ }
241
+ /**
242
+ * Get the domain registry
243
+ */
244
+ getDomainRegistry() {
245
+ return this.domainRegistry;
246
+ }
247
+ }
248
+ //# sourceMappingURL=Agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/core/Agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Domain registry for organizing agent capabilities by domain
3
+ */
4
+ /**
5
+ * Registry that holds domain-specific tools and methods
6
+ */
7
+ export declare class DomainRegistry {
8
+ private domains;
9
+ /**
10
+ * Register a new domain with its methods/tools
11
+ */
12
+ register<TDomain extends Record<string, unknown>>(name: string, domain: TDomain): void;
13
+ /**
14
+ * Get a registered domain
15
+ */
16
+ get<TDomain extends Record<string, unknown>>(name: string): TDomain | undefined;
17
+ /**
18
+ * Check if a domain is registered
19
+ */
20
+ has(name: string): boolean;
21
+ /**
22
+ * Get all registered domains as a single object
23
+ */
24
+ all(): Record<string, Record<string, unknown>>;
25
+ }
26
+ //# sourceMappingURL=DomainRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainRegistry.d.ts","sourceRoot":"","sources":["../../src/core/DomainRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmD;IAElE;;OAEG;IACH,QAAQ,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,GACd,IAAI;IAOP;;OAEG;IACH,GAAG,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,IAAI,EAAE,MAAM,GACX,OAAO,GAAG,SAAS;IAItB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAO/C"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Domain registry for organizing agent capabilities by domain
3
+ */
4
+ /**
5
+ * Registry that holds domain-specific tools and methods
6
+ */
7
+ export class DomainRegistry {
8
+ domains = new Map();
9
+ /**
10
+ * Register a new domain with its methods/tools
11
+ */
12
+ register(name, domain) {
13
+ if (this.domains.has(name)) {
14
+ throw new Error(`Domain "${name}" is already registered`);
15
+ }
16
+ this.domains.set(name, domain);
17
+ }
18
+ /**
19
+ * Get a registered domain
20
+ */
21
+ get(name) {
22
+ return this.domains.get(name);
23
+ }
24
+ /**
25
+ * Check if a domain is registered
26
+ */
27
+ has(name) {
28
+ return this.domains.has(name);
29
+ }
30
+ /**
31
+ * Get all registered domains as a single object
32
+ */
33
+ all() {
34
+ const result = {};
35
+ for (const [name, domain] of this.domains) {
36
+ result[name] = domain;
37
+ }
38
+ return result;
39
+ }
40
+ }
41
+ //# sourceMappingURL=DomainRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainRegistry.js","sourceRoot":"","sources":["../../src/core/DomainRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,OAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;IAElE;;OAEG;IACH,QAAQ,CACN,IAAY,EACZ,MAAe;QAEf,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,yBAAyB,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CACD,IAAY;QAEZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAwB,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,GAAG;QACD,MAAM,MAAM,GAA4C,EAAE,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACxB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Event utilities and helpers
3
+ */
4
+ import type { Event, EmittedEvent, MessageEventData, ToolEventData, ToolCall } from "@/types/history";
5
+ import { EventSource } from "@/types/history";
6
+ /**
7
+ * Adapt an event for inclusion in prompts
8
+ * Transforms event data into a serializable format
9
+ */
10
+ export declare function adaptEvent(e: Event | EmittedEvent): string;
11
+ /**
12
+ * Create a message event
13
+ */
14
+ export declare function createMessageEvent(source: EventSource, participantName: string, message: string): Event<MessageEventData>;
15
+ /**
16
+ * Create a tool event
17
+ */
18
+ export declare function createToolEvent(source: EventSource, toolCalls: ToolCall[]): Event<ToolEventData>;
19
+ //# sourceMappingURL=Events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/core/Events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,MAAM,CA+C1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,KAAK,CAAC,gBAAgB,CAAC,CAUzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,QAAQ,EAAE,GACpB,KAAK,CAAC,aAAa,CAAC,CAStB"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Event utilities and helpers
3
+ */
4
+ import { EventKind, EventSource } from "@/types/history";
5
+ /**
6
+ * Adapt an event for inclusion in prompts
7
+ * Transforms event data into a serializable format
8
+ */
9
+ export function adaptEvent(e) {
10
+ let data = e.data;
11
+ if (e.kind === EventKind.MESSAGE) {
12
+ const messageData = e.data;
13
+ if (messageData.flagged) {
14
+ data = {
15
+ participant: messageData.participant.display_name,
16
+ message: "<N/A>",
17
+ censored: true,
18
+ reasons: messageData.tags,
19
+ };
20
+ }
21
+ else {
22
+ data = {
23
+ participant: messageData.participant.display_name,
24
+ message: messageData.message,
25
+ };
26
+ }
27
+ }
28
+ if (e.kind === EventKind.TOOL) {
29
+ const toolData = e.data;
30
+ data = {
31
+ tool_calls: toolData.tool_calls.map((tc) => ({
32
+ tool_id: tc.tool_id,
33
+ arguments: tc.arguments,
34
+ result: tc.result.data,
35
+ })),
36
+ };
37
+ }
38
+ const sourceMap = {
39
+ [EventSource.CUSTOMER]: "user",
40
+ [EventSource.CUSTOMER_UI]: "frontend_application",
41
+ [EventSource.HUMAN_AGENT]: "human_service_agent",
42
+ [EventSource.HUMAN_AGENT_ON_BEHALF_OF_AI_AGENT]: "ai_agent",
43
+ [EventSource.AI_AGENT]: "ai_agent",
44
+ [EventSource.SYSTEM]: "system-provided",
45
+ };
46
+ return JSON.stringify({
47
+ event_kind: e.kind,
48
+ event_source: sourceMap[e.source],
49
+ data,
50
+ });
51
+ }
52
+ /**
53
+ * Create a message event
54
+ */
55
+ export function createMessageEvent(source, participantName, message) {
56
+ return {
57
+ kind: EventKind.MESSAGE,
58
+ source,
59
+ data: {
60
+ participant: { display_name: participantName },
61
+ message,
62
+ },
63
+ timestamp: new Date().toISOString(),
64
+ };
65
+ }
66
+ /**
67
+ * Create a tool event
68
+ */
69
+ export function createToolEvent(source, toolCalls) {
70
+ return {
71
+ kind: EventKind.TOOL,
72
+ source,
73
+ data: {
74
+ tool_calls: toolCalls,
75
+ },
76
+ timestamp: new Date().toISOString(),
77
+ };
78
+ }
79
+ //# sourceMappingURL=Events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/core/Events.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,CAAuB;IAChD,IAAI,IAAI,GAAY,CAAC,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAwB,CAAC;QAE/C,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG;gBACL,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY;gBACjD,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,WAAW,CAAC,IAAI;aAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,GAAG;gBACL,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY;gBACjD,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAqB,CAAC;QAEzC,IAAI,GAAG;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI;aACvB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAgC;QAC7C,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM;QAC9B,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,sBAAsB;QACjD,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,qBAAqB;QAChD,CAAC,WAAW,CAAC,iCAAiC,CAAC,EAAE,UAAU;QAC3D,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,UAAU;QAClC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB;KACxC,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QACjC,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAmB,EACnB,eAAuB,EACvB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,MAAM;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE;YAC9C,OAAO;SACR;QACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,SAAqB;IAErB,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,MAAM;QACN,IAAI,EAAE;YACJ,UAAU,EAAE,SAAS;SACtB;QACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Observation for route disambiguation
3
+ */
4
+ import type { Observation as IObservation, ObservationOptions } from "@/types/observation";
5
+ import type { RouteRef } from "@/types/route";
6
+ import type { Route } from "@/core/Route";
7
+ /**
8
+ * An observation that can trigger disambiguation between routes
9
+ */
10
+ export declare class Observation implements IObservation {
11
+ readonly id: string;
12
+ readonly description: string;
13
+ routes: RouteRef[];
14
+ constructor(options: ObservationOptions);
15
+ /**
16
+ * Set routes that this observation can disambiguate between
17
+ */
18
+ disambiguate(routes: (Route | RouteRef)[]): this;
19
+ /**
20
+ * Get the routes this observation disambiguates
21
+ */
22
+ getRoutes(): RouteRef[];
23
+ }
24
+ //# sourceMappingURL=Observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Observation.d.ts","sourceRoot":"","sources":["../../src/core/Observation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,IAAI,YAAY,EAC3B,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAI1C;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,WAAW,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,CAAM;gBAEnB,OAAO,EAAE,kBAAkB;IAKvC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,GAAG,IAAI;IAUhD;;OAEG;IACH,SAAS,IAAI,QAAQ,EAAE;CAGxB"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Observation for route disambiguation
3
+ */
4
+ let observationIdCounter = 0;
5
+ /**
6
+ * An observation that can trigger disambiguation between routes
7
+ */
8
+ export class Observation {
9
+ id;
10
+ description;
11
+ routes = [];
12
+ constructor(options) {
13
+ this.id = `observation_${++observationIdCounter}`;
14
+ this.description = options.description;
15
+ }
16
+ /**
17
+ * Set routes that this observation can disambiguate between
18
+ */
19
+ disambiguate(routes) {
20
+ this.routes = routes.map((r) => {
21
+ if ("getRef" in r) {
22
+ return r.getRef();
23
+ }
24
+ return r;
25
+ });
26
+ return this;
27
+ }
28
+ /**
29
+ * Get the routes this observation disambiguates
30
+ */
31
+ getRoutes() {
32
+ return [...this.routes];
33
+ }
34
+ }
35
+ //# sourceMappingURL=Observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Observation.js","sourceRoot":"","sources":["../../src/core/Observation.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAE7B;;GAEG;AACH,MAAM,OAAO,WAAW;IACN,EAAE,CAAS;IACX,WAAW,CAAS;IAC7B,MAAM,GAAe,EAAE,CAAC;IAE/B,YAAY,OAA2B;QACrC,IAAI,CAAC,EAAE,GAAG,eAAe,EAAE,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAA4B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Prompt construction and management
3
+ */
4
+ import type { Event, EmittedEvent } from "@/types/history";
5
+ import type { Term, Capability, GuidelineMatch } from "@/types/agent";
6
+ import type { PromptSection, ContextVariableValue } from "@/types/prompt";
7
+ import { SectionStatus } from "@/types/prompt";
8
+ /**
9
+ * Built-in section identifiers
10
+ */
11
+ export declare enum BuiltInSection {
12
+ AGENT_IDENTITY = "agent_identity",
13
+ CUSTOMER_IDENTITY = "customer_identity",
14
+ INTERACTION_HISTORY = "interaction_history",
15
+ CONTEXT_VARIABLES = "context_variables",
16
+ GLOSSARY = "glossary",
17
+ GUIDELINE_DESCRIPTIONS = "guideline_descriptions",
18
+ GUIDELINES = "guidelines",
19
+ STAGED_EVENTS = "staged_events",
20
+ ROUTES = "routes",
21
+ OBSERVATIONS = "observations",
22
+ CAPABILITIES = "capabilities",
23
+ ACTIVE_ROUTES = "active_routes"
24
+ }
25
+ /**
26
+ * Customer/user information
27
+ */
28
+ export interface Customer {
29
+ name: string;
30
+ id?: string;
31
+ }
32
+ /**
33
+ * Agent information for prompt building
34
+ */
35
+ export interface AgentInfo {
36
+ name: string;
37
+ description?: string;
38
+ }
39
+ /**
40
+ * Builds prompts from composable sections
41
+ */
42
+ export declare class PromptBuilder {
43
+ private sections;
44
+ private onBuild?;
45
+ private cachedResults;
46
+ constructor(onBuild?: (prompt: string) => void);
47
+ /**
48
+ * Build the final prompt from all sections
49
+ */
50
+ build(): string;
51
+ /**
52
+ * Add a section to the prompt
53
+ */
54
+ addSection(name: string | BuiltInSection, template: string, props?: Record<string, unknown>, status?: SectionStatus): this;
55
+ /**
56
+ * Edit an existing section
57
+ */
58
+ editSection(name: string | BuiltInSection, editor: (section: PromptSection) => PromptSection): this;
59
+ /**
60
+ * Get section status
61
+ */
62
+ sectionStatus(name: string | BuiltInSection): SectionStatus;
63
+ /**
64
+ * Add agent identity section
65
+ */
66
+ addAgentIdentity(agent: AgentInfo): this;
67
+ /**
68
+ * Add customer identity section
69
+ */
70
+ addCustomerIdentity(customer: Customer): this;
71
+ /**
72
+ * Add interaction history section
73
+ */
74
+ addInteractionHistory(events: Event[], stagedEvents?: EmittedEvent[]): this;
75
+ /**
76
+ * Add interaction history with special handling for message generation
77
+ */
78
+ addInteractionHistoryForMessageGeneration(events: Event[], stagedEvents?: EmittedEvent[]): this;
79
+ /**
80
+ * Add context variables section
81
+ */
82
+ addContextVariables(variables: ContextVariableValue[]): this;
83
+ /**
84
+ * Add glossary section
85
+ */
86
+ addGlossary(terms: Term[]): this;
87
+ /**
88
+ * Add staged tool events section
89
+ */
90
+ addStagedToolEvents(events: EmittedEvent[]): this;
91
+ /**
92
+ * Add guidelines for message generation
93
+ */
94
+ addGuidelinesForMessageGeneration(guidelines: GuidelineMatch[]): this;
95
+ /**
96
+ * Add capabilities section for message generation
97
+ */
98
+ addCapabilitiesForMessageGeneration(capabilities: Capability[]): this;
99
+ /**
100
+ * Add observations for disambiguation
101
+ */
102
+ addObservations(observations: Array<{
103
+ description: string;
104
+ routes: Array<{
105
+ title: string;
106
+ }>;
107
+ }>): this;
108
+ /**
109
+ * Add active routes information
110
+ */
111
+ addActiveRoutes(routes: Array<{
112
+ title: string;
113
+ description?: string;
114
+ conditions: string[];
115
+ }>): this;
116
+ private formatTemplate;
117
+ private gatherInteractionEvents;
118
+ private lastAgentMessageNote;
119
+ private contextVariablesToJson;
120
+ }
121
+ //# sourceMappingURL=PromptBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PromptBuilder.ts"],"names":[],"mappings":"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"}