@falai/agent 0.1.2 → 0.1.4

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 (132) hide show
  1. package/dist/cjs/constants/index.d.ts +5 -0
  2. package/dist/cjs/constants/index.d.ts.map +1 -0
  3. package/dist/cjs/constants/index.js +8 -0
  4. package/dist/cjs/constants/index.js.map +1 -0
  5. package/dist/cjs/core/Agent.d.ts +110 -0
  6. package/dist/cjs/core/Agent.d.ts.map +1 -0
  7. package/dist/cjs/core/Agent.js +290 -0
  8. package/dist/cjs/core/Agent.js.map +1 -0
  9. package/dist/cjs/core/DomainRegistry.d.ts +26 -0
  10. package/dist/cjs/core/DomainRegistry.d.ts.map +1 -0
  11. package/dist/cjs/core/DomainRegistry.js +47 -0
  12. package/dist/cjs/core/DomainRegistry.js.map +1 -0
  13. package/dist/cjs/core/Events.d.ts +19 -0
  14. package/dist/cjs/core/Events.d.ts.map +1 -0
  15. package/dist/cjs/core/Events.js +84 -0
  16. package/dist/cjs/core/Events.js.map +1 -0
  17. package/dist/cjs/core/Observation.d.ts +24 -0
  18. package/dist/cjs/core/Observation.d.ts.map +1 -0
  19. package/dist/cjs/core/Observation.js +38 -0
  20. package/dist/cjs/core/Observation.js.map +1 -0
  21. package/dist/cjs/core/PromptBuilder.d.ts +125 -0
  22. package/dist/cjs/core/PromptBuilder.d.ts.map +1 -0
  23. package/dist/cjs/core/PromptBuilder.js +374 -0
  24. package/dist/cjs/core/PromptBuilder.js.map +1 -0
  25. package/dist/cjs/core/Route.d.ts +46 -0
  26. package/dist/cjs/core/Route.d.ts.map +1 -0
  27. package/dist/cjs/core/Route.js +112 -0
  28. package/dist/cjs/core/Route.js.map +1 -0
  29. package/dist/cjs/core/State.d.ts +50 -0
  30. package/dist/cjs/core/State.d.ts.map +1 -0
  31. package/dist/cjs/core/State.js +111 -0
  32. package/dist/cjs/core/State.js.map +1 -0
  33. package/dist/cjs/core/Tool.d.ts +31 -0
  34. package/dist/cjs/core/Tool.d.ts.map +1 -0
  35. package/dist/cjs/core/Tool.js +36 -0
  36. package/dist/cjs/core/Tool.js.map +1 -0
  37. package/dist/cjs/core/Transition.d.ts +32 -0
  38. package/dist/cjs/core/Transition.d.ts.map +1 -0
  39. package/dist/cjs/core/Transition.js +59 -0
  40. package/dist/cjs/core/Transition.js.map +1 -0
  41. package/dist/cjs/index.d.ts +34 -0
  42. package/dist/cjs/index.d.ts.map +1 -0
  43. package/dist/cjs/index.js +49 -0
  44. package/dist/cjs/index.js.map +1 -0
  45. package/dist/cjs/package.json +1 -0
  46. package/dist/cjs/providers/GeminiProvider.d.ts +40 -0
  47. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -0
  48. package/dist/cjs/providers/GeminiProvider.js +142 -0
  49. package/dist/cjs/providers/GeminiProvider.js.map +1 -0
  50. package/dist/cjs/providers/OpenAIProvider.d.ts +42 -0
  51. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -0
  52. package/dist/cjs/providers/OpenAIProvider.js +242 -0
  53. package/dist/cjs/providers/OpenAIProvider.js.map +1 -0
  54. package/dist/cjs/providers/OpenRouterProvider.d.ts +46 -0
  55. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -0
  56. package/dist/cjs/providers/OpenRouterProvider.js +249 -0
  57. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -0
  58. package/dist/cjs/types/agent.d.ts +105 -0
  59. package/dist/cjs/types/agent.d.ts.map +1 -0
  60. package/dist/cjs/types/agent.js +21 -0
  61. package/dist/cjs/types/agent.js.map +1 -0
  62. package/dist/cjs/types/ai.d.ts +102 -0
  63. package/dist/cjs/types/ai.d.ts.map +1 -0
  64. package/dist/cjs/types/ai.js +6 -0
  65. package/dist/cjs/types/ai.js.map +1 -0
  66. package/dist/cjs/types/history.d.ts +112 -0
  67. package/dist/cjs/types/history.d.ts.map +1 -0
  68. package/dist/cjs/types/history.js +37 -0
  69. package/dist/cjs/types/history.js.map +1 -0
  70. package/dist/cjs/types/index.d.ts +14 -0
  71. package/dist/cjs/types/index.d.ts.map +1 -0
  72. package/dist/cjs/types/index.js +14 -0
  73. package/dist/cjs/types/index.js.map +1 -0
  74. package/dist/cjs/types/observation.d.ts +25 -0
  75. package/dist/cjs/types/observation.d.ts.map +1 -0
  76. package/dist/cjs/types/observation.js +6 -0
  77. package/dist/cjs/types/observation.js.map +1 -0
  78. package/dist/cjs/types/prompt.d.ts +46 -0
  79. package/dist/cjs/types/prompt.d.ts.map +1 -0
  80. package/dist/cjs/types/prompt.js +19 -0
  81. package/dist/cjs/types/prompt.js.map +1 -0
  82. package/dist/cjs/types/route.d.ts +59 -0
  83. package/dist/cjs/types/route.d.ts.map +1 -0
  84. package/dist/cjs/types/route.js +6 -0
  85. package/dist/cjs/types/route.js.map +1 -0
  86. package/dist/cjs/types/tool.d.ts +46 -0
  87. package/dist/cjs/types/tool.d.ts.map +1 -0
  88. package/dist/cjs/types/tool.js +6 -0
  89. package/dist/cjs/types/tool.js.map +1 -0
  90. package/dist/cjs/utils/retry.d.ts +13 -0
  91. package/dist/cjs/utils/retry.d.ts.map +1 -0
  92. package/dist/cjs/utils/retry.js +75 -0
  93. package/dist/cjs/utils/retry.js.map +1 -0
  94. package/dist/core/Agent.d.ts +2 -2
  95. package/dist/core/Agent.d.ts.map +1 -1
  96. package/dist/core/Agent.js +10 -11
  97. package/dist/core/Agent.js.map +1 -1
  98. package/dist/core/DomainRegistry.js +3 -1
  99. package/dist/core/DomainRegistry.js.map +1 -1
  100. package/dist/core/Observation.d.ts +1 -1
  101. package/dist/core/Observation.d.ts.map +1 -1
  102. package/dist/core/Observation.js +2 -3
  103. package/dist/core/Observation.js.map +1 -1
  104. package/dist/core/PromptBuilder.js +2 -3
  105. package/dist/core/PromptBuilder.js.map +1 -1
  106. package/dist/core/Route.d.ts +4 -4
  107. package/dist/core/Route.d.ts.map +1 -1
  108. package/dist/core/Route.js +1 -6
  109. package/dist/core/Route.js.map +1 -1
  110. package/dist/core/State.d.ts +3 -3
  111. package/dist/core/State.d.ts.map +1 -1
  112. package/dist/core/State.js +2 -5
  113. package/dist/core/State.js.map +1 -1
  114. package/dist/core/Transition.d.ts +5 -5
  115. package/dist/core/Transition.d.ts.map +1 -1
  116. package/dist/core/Transition.js +0 -4
  117. package/dist/core/Transition.js.map +1 -1
  118. package/dist/providers/GeminiProvider.js +1 -6
  119. package/dist/providers/GeminiProvider.js.map +1 -1
  120. package/dist/providers/OpenAIProvider.js +1 -6
  121. package/dist/providers/OpenAIProvider.js.map +1 -1
  122. package/dist/providers/OpenRouterProvider.js +1 -6
  123. package/dist/providers/OpenRouterProvider.js.map +1 -1
  124. package/dist/types/route.d.ts +4 -4
  125. package/dist/types/route.d.ts.map +1 -1
  126. package/package.json +15 -5
  127. package/src/core/Agent.ts +5 -5
  128. package/src/core/Observation.ts +2 -1
  129. package/src/core/Route.ts +7 -7
  130. package/src/core/State.ts +21 -14
  131. package/src/core/Transition.ts +5 -5
  132. package/src/types/route.ts +6 -5
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Special marker to end a route/journey
3
+ */
4
+ export declare const END_ROUTE: unique symbol;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS,eAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Special marker to end a route/journey
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.END_ROUTE = void 0;
7
+ exports.END_ROUTE = Symbol("END_ROUTE");
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Core Agent implementation
3
+ */
4
+ import type { AgentOptions, Term, Guideline, Capability } from "../types/agent";
5
+ import type { Event, StateRef } from "../types/index";
6
+ import type { RouteOptions } from "../types/route";
7
+ import { Route } from "./Route";
8
+ import { DomainRegistry } from "./DomainRegistry";
9
+ import { Observation } from "./Observation";
10
+ /**
11
+ * Main Agent class with generic context support
12
+ */
13
+ export declare class Agent<TContext = unknown> {
14
+ private readonly options;
15
+ private terms;
16
+ private guidelines;
17
+ private capabilities;
18
+ private routes;
19
+ private observations;
20
+ private domainRegistry;
21
+ /**
22
+ * Dynamic domain property - populated via addDomain
23
+ */
24
+ readonly domain: Record<string, Record<string, unknown>>;
25
+ constructor(options: AgentOptions<TContext>);
26
+ /**
27
+ * Get agent name
28
+ */
29
+ get name(): string;
30
+ /**
31
+ * Get agent description
32
+ */
33
+ get description(): string | undefined;
34
+ /**
35
+ * Get agent goal
36
+ */
37
+ get goal(): string | undefined;
38
+ /**
39
+ * Create a new route (journey)
40
+ */
41
+ createRoute(options: RouteOptions): Route<TContext>;
42
+ /**
43
+ * Create a domain term for the glossary
44
+ */
45
+ createTerm(term: Term): this;
46
+ /**
47
+ * Create a behavioral guideline
48
+ */
49
+ createGuideline(guideline: Guideline): this;
50
+ /**
51
+ * Add a capability
52
+ */
53
+ createCapability(capability: Capability): this;
54
+ /**
55
+ * Create an observation for disambiguation
56
+ */
57
+ createObservation(description: string): Observation;
58
+ /**
59
+ * Add a domain with its tools/methods
60
+ */
61
+ addDomain<TName extends string, TDomain extends Record<string, unknown>>(name: TName, domainObject: TDomain): void;
62
+ /**
63
+ * Generate a response based on history and context
64
+ */
65
+ respond(params: {
66
+ history: Event[];
67
+ state?: StateRef;
68
+ contextOverride?: Partial<TContext>;
69
+ signal?: AbortSignal;
70
+ }): Promise<{
71
+ message: string;
72
+ route?: {
73
+ id: string;
74
+ title: string;
75
+ } | null;
76
+ state?: {
77
+ id: string;
78
+ description?: string;
79
+ } | null;
80
+ toolCalls?: Array<{
81
+ toolName: string;
82
+ arguments: Record<string, unknown>;
83
+ }>;
84
+ }>;
85
+ /**
86
+ * Get all routes
87
+ */
88
+ getRoutes(): Route<TContext>[];
89
+ /**
90
+ * Get all terms
91
+ */
92
+ getTerms(): Term[];
93
+ /**
94
+ * Get all guidelines
95
+ */
96
+ getGuidelines(): Guideline[];
97
+ /**
98
+ * Get all capabilities
99
+ */
100
+ getCapabilities(): Capability[];
101
+ /**
102
+ * Get all observations
103
+ */
104
+ getObservations(): Observation[];
105
+ /**
106
+ * Get the domain registry
107
+ */
108
+ getDomainRegistry(): DomainRegistry;
109
+ }
110
+ //# sourceMappingURL=Agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ /**
3
+ * Core Agent implementation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Agent = void 0;
7
+ const Route_1 = require("./Route");
8
+ const DomainRegistry_1 = require("./DomainRegistry");
9
+ const PromptBuilder_1 = require("./PromptBuilder");
10
+ const Observation_1 = require("./Observation");
11
+ /**
12
+ * Main Agent class with generic context support
13
+ */
14
+ class Agent {
15
+ constructor(options) {
16
+ this.options = options;
17
+ this.terms = [];
18
+ this.guidelines = [];
19
+ this.capabilities = [];
20
+ this.routes = [];
21
+ this.observations = [];
22
+ this.domainRegistry = new DomainRegistry_1.DomainRegistry();
23
+ /**
24
+ * Dynamic domain property - populated via addDomain
25
+ */
26
+ this.domain = {};
27
+ // Initialize with default values
28
+ if (!this.options.maxEngineIterations) {
29
+ this.options.maxEngineIterations = 1;
30
+ }
31
+ // Initialize from options
32
+ if (options.terms) {
33
+ this.terms = [...options.terms];
34
+ }
35
+ if (options.guidelines) {
36
+ options.guidelines.forEach((guideline) => {
37
+ this.createGuideline(guideline);
38
+ });
39
+ }
40
+ if (options.capabilities) {
41
+ options.capabilities.forEach((capability) => {
42
+ this.createCapability(capability);
43
+ });
44
+ }
45
+ if (options.routes) {
46
+ options.routes.forEach((routeOptions) => {
47
+ this.createRoute(routeOptions);
48
+ });
49
+ }
50
+ if (options.observations) {
51
+ options.observations.forEach((obsOptions) => {
52
+ const obs = this.createObservation(obsOptions.description);
53
+ // If route refs were provided, resolve and disambiguate
54
+ if (obsOptions.routeRefs && obsOptions.routeRefs.length > 0) {
55
+ const resolvedRoutes = obsOptions.routeRefs
56
+ .map((ref) => {
57
+ // Try to find route by ID or title
58
+ return this.routes.find((r) => r.id === ref || r.title === ref);
59
+ })
60
+ .filter((r) => r !== undefined);
61
+ if (resolvedRoutes.length > 0) {
62
+ obs.disambiguate(resolvedRoutes);
63
+ }
64
+ }
65
+ });
66
+ }
67
+ }
68
+ /**
69
+ * Get agent name
70
+ */
71
+ get name() {
72
+ return this.options.name;
73
+ }
74
+ /**
75
+ * Get agent description
76
+ */
77
+ get description() {
78
+ return this.options.description;
79
+ }
80
+ /**
81
+ * Get agent goal
82
+ */
83
+ get goal() {
84
+ return this.options.goal;
85
+ }
86
+ /**
87
+ * Create a new route (journey)
88
+ */
89
+ createRoute(options) {
90
+ const route = new Route_1.Route(options);
91
+ this.routes.push(route);
92
+ return route;
93
+ }
94
+ /**
95
+ * Create a domain term for the glossary
96
+ */
97
+ createTerm(term) {
98
+ this.terms.push(term);
99
+ return this;
100
+ }
101
+ /**
102
+ * Create a behavioral guideline
103
+ */
104
+ createGuideline(guideline) {
105
+ const guidelineWithId = {
106
+ ...guideline,
107
+ id: guideline.id || `guideline_${this.guidelines.length}`,
108
+ enabled: guideline.enabled !== false, // Default to true
109
+ };
110
+ this.guidelines.push(guidelineWithId);
111
+ return this;
112
+ }
113
+ /**
114
+ * Add a capability
115
+ */
116
+ createCapability(capability) {
117
+ const capabilityWithId = {
118
+ ...capability,
119
+ id: capability.id || `capability_${this.capabilities.length}`,
120
+ };
121
+ this.capabilities.push(capabilityWithId);
122
+ return this;
123
+ }
124
+ /**
125
+ * Create an observation for disambiguation
126
+ */
127
+ createObservation(description) {
128
+ const observation = new Observation_1.Observation({ description });
129
+ this.observations.push(observation);
130
+ return observation;
131
+ }
132
+ /**
133
+ * Add a domain with its tools/methods
134
+ */
135
+ addDomain(name, domainObject) {
136
+ this.domainRegistry.register(name, domainObject);
137
+ // Attach to the domain property for easy access
138
+ this.domain[name] = domainObject;
139
+ }
140
+ /**
141
+ * Generate a response based on history and context
142
+ */
143
+ async respond(params) {
144
+ const { history, contextOverride, signal } = params;
145
+ // Merge context
146
+ const effectiveContext = {
147
+ ...this.options.context,
148
+ ...contextOverride,
149
+ };
150
+ // Build prompt
151
+ const promptBuilder = new PromptBuilder_1.PromptBuilder();
152
+ // Add agent identity
153
+ if (this.options.description) {
154
+ promptBuilder.addAgentIdentity({
155
+ name: this.options.name,
156
+ description: this.options.description,
157
+ });
158
+ }
159
+ // Add interaction history
160
+ promptBuilder.addInteractionHistoryForMessageGeneration(history);
161
+ // Add glossary
162
+ if (this.terms.length > 0) {
163
+ promptBuilder.addGlossary(this.terms);
164
+ }
165
+ // Add guidelines (convert to GuidelineMatch format, filter enabled only)
166
+ const enabledGuidelines = this.guidelines.filter((g) => g.enabled !== false);
167
+ if (enabledGuidelines.length > 0) {
168
+ const guidelineMatches = enabledGuidelines.map((g) => ({
169
+ guideline: g,
170
+ }));
171
+ promptBuilder.addGuidelinesForMessageGeneration(guidelineMatches);
172
+ }
173
+ // Add capabilities
174
+ if (this.capabilities.length > 0) {
175
+ promptBuilder.addCapabilitiesForMessageGeneration(this.capabilities);
176
+ }
177
+ // Add observations
178
+ if (this.observations.length > 0) {
179
+ const observationsWithRoutes = this.observations
180
+ .map((obs) => ({
181
+ description: obs.description,
182
+ routes: obs.getRoutes().map((routeRef) => {
183
+ const route = this.routes.find((r) => r.id === routeRef.id);
184
+ return { title: route?.title || routeRef.id };
185
+ }),
186
+ }))
187
+ .filter((obs) => obs.routes.length > 0);
188
+ if (observationsWithRoutes.length > 0) {
189
+ promptBuilder.addObservations(observationsWithRoutes);
190
+ }
191
+ }
192
+ // Add active routes
193
+ if (this.routes.length > 0) {
194
+ promptBuilder.addActiveRoutes(this.routes.map((r) => ({
195
+ title: r.title,
196
+ description: r.description,
197
+ conditions: r.conditions,
198
+ })));
199
+ }
200
+ // Add JSON response schema instructions
201
+ promptBuilder.addJsonResponseSchema();
202
+ // Build final prompt
203
+ const prompt = promptBuilder.build();
204
+ // Generate message using AI provider with JSON mode enabled
205
+ const result = await this.options.ai.generateMessage({
206
+ prompt,
207
+ history,
208
+ context: effectiveContext,
209
+ signal,
210
+ parameters: {
211
+ jsonMode: true,
212
+ },
213
+ });
214
+ // Parse structured response
215
+ let message = result.message;
216
+ let route = null;
217
+ let state = null;
218
+ let toolCalls;
219
+ if (result.structured) {
220
+ // Extract data from structured response
221
+ message = result.structured.message || message;
222
+ // Find route by title
223
+ if (result.structured.route) {
224
+ const foundRoute = this.routes.find((r) => r.title === result.structured?.route);
225
+ if (foundRoute) {
226
+ route = {
227
+ id: foundRoute.id,
228
+ title: foundRoute.title,
229
+ };
230
+ }
231
+ }
232
+ // Create state reference if provided
233
+ if (result.structured.state) {
234
+ state = {
235
+ id: "dynamic_state",
236
+ description: result.structured.state,
237
+ };
238
+ }
239
+ // Extract tool calls
240
+ if (result.structured.toolCalls &&
241
+ result.structured.toolCalls.length > 0) {
242
+ toolCalls = result.structured.toolCalls;
243
+ }
244
+ }
245
+ return {
246
+ message,
247
+ route: route || undefined,
248
+ state: state || undefined,
249
+ toolCalls,
250
+ };
251
+ }
252
+ /**
253
+ * Get all routes
254
+ */
255
+ getRoutes() {
256
+ return [...this.routes];
257
+ }
258
+ /**
259
+ * Get all terms
260
+ */
261
+ getTerms() {
262
+ return [...this.terms];
263
+ }
264
+ /**
265
+ * Get all guidelines
266
+ */
267
+ getGuidelines() {
268
+ return [...this.guidelines];
269
+ }
270
+ /**
271
+ * Get all capabilities
272
+ */
273
+ getCapabilities() {
274
+ return [...this.capabilities];
275
+ }
276
+ /**
277
+ * Get all observations
278
+ */
279
+ getObservations() {
280
+ return [...this.observations];
281
+ }
282
+ /**
283
+ * Get the domain registry
284
+ */
285
+ getDomainRegistry() {
286
+ return this.domainRegistry;
287
+ }
288
+ }
289
+ exports.Agent = Agent;
290
+ //# 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,47 @@
1
+ "use strict";
2
+ /**
3
+ * Domain registry for organizing agent capabilities by domain
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DomainRegistry = void 0;
7
+ /**
8
+ * Registry that holds domain-specific tools and methods
9
+ */
10
+ class DomainRegistry {
11
+ constructor() {
12
+ this.domains = new Map();
13
+ }
14
+ /**
15
+ * Register a new domain with its methods/tools
16
+ */
17
+ register(name, domain) {
18
+ if (this.domains.has(name)) {
19
+ throw new Error(`Domain "${name}" is already registered`);
20
+ }
21
+ this.domains.set(name, domain);
22
+ }
23
+ /**
24
+ * Get a registered domain
25
+ */
26
+ get(name) {
27
+ return this.domains.get(name);
28
+ }
29
+ /**
30
+ * Check if a domain is registered
31
+ */
32
+ has(name) {
33
+ return this.domains.has(name);
34
+ }
35
+ /**
36
+ * Get all registered domains as a single object
37
+ */
38
+ all() {
39
+ const result = {};
40
+ for (const [name, domain] of this.domains) {
41
+ result[name] = domain;
42
+ }
43
+ return result;
44
+ }
45
+ }
46
+ exports.DomainRegistry = DomainRegistry;
47
+ //# 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,MAAa,cAAc;IAA3B;QACU,YAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;IAyCpE,CAAC;IAvCC;;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;AA1CD,wCA0CC"}
@@ -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,kBAAkB,CAAC;AAC1B,OAAO,EAAa,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;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,84 @@
1
+ "use strict";
2
+ /**
3
+ * Event utilities and helpers
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.adaptEvent = adaptEvent;
7
+ exports.createMessageEvent = createMessageEvent;
8
+ exports.createToolEvent = createToolEvent;
9
+ const history_1 = require("../types/history");
10
+ /**
11
+ * Adapt an event for inclusion in prompts
12
+ * Transforms event data into a serializable format
13
+ */
14
+ function adaptEvent(e) {
15
+ let data = e.data;
16
+ if (e.kind === history_1.EventKind.MESSAGE) {
17
+ const messageData = e.data;
18
+ if (messageData.flagged) {
19
+ data = {
20
+ participant: messageData.participant.display_name,
21
+ message: "<N/A>",
22
+ censored: true,
23
+ reasons: messageData.tags,
24
+ };
25
+ }
26
+ else {
27
+ data = {
28
+ participant: messageData.participant.display_name,
29
+ message: messageData.message,
30
+ };
31
+ }
32
+ }
33
+ if (e.kind === history_1.EventKind.TOOL) {
34
+ const toolData = e.data;
35
+ data = {
36
+ tool_calls: toolData.tool_calls.map((tc) => ({
37
+ tool_id: tc.tool_id,
38
+ arguments: tc.arguments,
39
+ result: tc.result.data,
40
+ })),
41
+ };
42
+ }
43
+ const sourceMap = {
44
+ [history_1.EventSource.CUSTOMER]: "user",
45
+ [history_1.EventSource.CUSTOMER_UI]: "frontend_application",
46
+ [history_1.EventSource.HUMAN_AGENT]: "human_service_agent",
47
+ [history_1.EventSource.HUMAN_AGENT_ON_BEHALF_OF_AI_AGENT]: "ai_agent",
48
+ [history_1.EventSource.AI_AGENT]: "ai_agent",
49
+ [history_1.EventSource.SYSTEM]: "system-provided",
50
+ };
51
+ return JSON.stringify({
52
+ event_kind: e.kind,
53
+ event_source: sourceMap[e.source],
54
+ data,
55
+ });
56
+ }
57
+ /**
58
+ * Create a message event
59
+ */
60
+ function createMessageEvent(source, participantName, message) {
61
+ return {
62
+ kind: history_1.EventKind.MESSAGE,
63
+ source,
64
+ data: {
65
+ participant: { display_name: participantName },
66
+ message,
67
+ },
68
+ timestamp: new Date().toISOString(),
69
+ };
70
+ }
71
+ /**
72
+ * Create a tool event
73
+ */
74
+ function createToolEvent(source, toolCalls) {
75
+ return {
76
+ kind: history_1.EventKind.TOOL,
77
+ source,
78
+ data: {
79
+ tool_calls: toolCalls,
80
+ },
81
+ timestamp: new Date().toISOString(),
82
+ };
83
+ }
84
+ //# sourceMappingURL=Events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/core/Events.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAeH,gCA+CC;AAKD,gDAcC;AAKD,0CAYC;AAzFD,8CAA0D;AAE1D;;;GAGG;AACH,SAAgB,UAAU,CAAC,CAAuB;IAChD,IAAI,IAAI,GAAY,CAAC,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAS,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,mBAAS,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,qBAAW,CAAC,QAAQ,CAAC,EAAE,MAAM;QAC9B,CAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,sBAAsB;QACjD,CAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,qBAAqB;QAChD,CAAC,qBAAW,CAAC,iCAAiC,CAAC,EAAE,UAAU;QAC3D,CAAC,qBAAW,CAAC,QAAQ,CAAC,EAAE,UAAU;QAClC,CAAC,qBAAW,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,SAAgB,kBAAkB,CAChC,MAAmB,EACnB,eAAuB,EACvB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,mBAAS,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,SAAgB,eAAe,CAC7B,MAAmB,EACnB,SAAqB;IAErB,OAAO;QACL,IAAI,EAAE,mBAAS,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 "./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<any> | 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,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC;;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;IAEH,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,IAAI;IAUrD;;OAEG;IACH,SAAS,IAAI,QAAQ,EAAE;CAGxB"}