@falai/agent 0.1.3 → 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 (114) 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.js +10 -11
  95. package/dist/core/Agent.js.map +1 -1
  96. package/dist/core/DomainRegistry.js +3 -1
  97. package/dist/core/DomainRegistry.js.map +1 -1
  98. package/dist/core/Observation.js +1 -3
  99. package/dist/core/Observation.js.map +1 -1
  100. package/dist/core/PromptBuilder.js +2 -3
  101. package/dist/core/PromptBuilder.js.map +1 -1
  102. package/dist/core/Route.js +1 -6
  103. package/dist/core/Route.js.map +1 -1
  104. package/dist/core/State.js +2 -5
  105. package/dist/core/State.js.map +1 -1
  106. package/dist/core/Transition.js +0 -4
  107. package/dist/core/Transition.js.map +1 -1
  108. package/dist/providers/GeminiProvider.js +1 -6
  109. package/dist/providers/GeminiProvider.js.map +1 -1
  110. package/dist/providers/OpenAIProvider.js +1 -6
  111. package/dist/providers/OpenAIProvider.js.map +1 -1
  112. package/dist/providers/OpenRouterProvider.js +1 -6
  113. package/dist/providers/OpenRouterProvider.js.map +1 -1
  114. package/package.json +15 -5
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ /**
3
+ * OpenRouter provider implementation
4
+ * OpenRouter provides access to multiple AI models through a unified OpenAI-compatible API
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.OpenRouterProvider = void 0;
11
+ const openai_1 = __importDefault(require("openai"));
12
+ const retry_1 = require("../utils/retry");
13
+ const DEFAULT_RETRY_CONFIG = {
14
+ timeout: 60000,
15
+ retries: 3,
16
+ };
17
+ /**
18
+ * Type guard to check if error is ErrorWithStatus
19
+ */
20
+ function isErrorWithStatus(error) {
21
+ return (typeof error === "object" &&
22
+ error !== null &&
23
+ ("status" in error || "code" in error || "message" in error));
24
+ }
25
+ /**
26
+ * Safely extract error message
27
+ */
28
+ function getErrorMessage(error) {
29
+ if (error instanceof Error) {
30
+ return error.message;
31
+ }
32
+ if (isErrorWithStatus(error) && error.message) {
33
+ return error.message;
34
+ }
35
+ return String(error);
36
+ }
37
+ /**
38
+ * Determines if an error should trigger backup model usage
39
+ */
40
+ const shouldUseBackupModel = (error) => {
41
+ if (!isErrorWithStatus(error)) {
42
+ return false;
43
+ }
44
+ // Server errors
45
+ if (error.status === 500 || error.status === 503) {
46
+ return true;
47
+ }
48
+ // Rate limiting
49
+ if (error.status === 429) {
50
+ return true;
51
+ }
52
+ // Model not available or overloaded
53
+ if (error.code === "model_not_found" || error.code === "model_overloaded") {
54
+ return true;
55
+ }
56
+ const message = getErrorMessage(error);
57
+ if (message.includes("overloaded") ||
58
+ message.includes("unavailable") ||
59
+ message.includes("internal error") ||
60
+ message.includes("Internal error") ||
61
+ message.includes("capacity")) {
62
+ return true;
63
+ }
64
+ return false;
65
+ };
66
+ /**
67
+ * OpenRouter provider implementation
68
+ * Provides access to multiple AI models through OpenRouter's unified API
69
+ */
70
+ class OpenRouterProvider {
71
+ constructor(options) {
72
+ this.name = "openrouter";
73
+ const { apiKey, model, backupModels = [], siteUrl, siteName, config, retryConfig, } = options;
74
+ if (!apiKey) {
75
+ throw new Error("OpenRouter API key is required");
76
+ }
77
+ if (!model) {
78
+ throw new Error("Model is required. See https://openrouter.ai/models");
79
+ }
80
+ // Initialize OpenAI client with OpenRouter base URL
81
+ this.client = new openai_1.default({
82
+ apiKey,
83
+ baseURL: "https://openrouter.ai/api/v1",
84
+ defaultHeaders: {
85
+ "HTTP-Referer": siteUrl || "",
86
+ "X-Title": siteName || "",
87
+ },
88
+ });
89
+ this.primaryModel = model;
90
+ this.backupModels = backupModels;
91
+ this.config = config;
92
+ this.retryConfig = {
93
+ timeout: retryConfig?.timeout || DEFAULT_RETRY_CONFIG.timeout,
94
+ retries: retryConfig?.retries || DEFAULT_RETRY_CONFIG.retries,
95
+ };
96
+ }
97
+ async generateMessage(input) {
98
+ return this.generateWithBackup(input);
99
+ }
100
+ async generateWithBackup(input) {
101
+ // Try primary model first
102
+ try {
103
+ return await this.generateWithModel(this.primaryModel, input);
104
+ }
105
+ catch (primaryError) {
106
+ const primaryErrMsg = getErrorMessage(primaryError);
107
+ console.warn(`[OPENROUTER] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`);
108
+ if (!shouldUseBackupModel(primaryError)) {
109
+ throw primaryError;
110
+ }
111
+ console.log(`[OPENROUTER] Trying backup models`);
112
+ let lastBackupError = primaryError;
113
+ for (let i = 0; i < this.backupModels.length; i++) {
114
+ const backupModel = this.backupModels[i];
115
+ console.log(`[OPENROUTER] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
116
+ try {
117
+ const result = await this.generateWithModel(backupModel, input);
118
+ console.log(`[OPENROUTER] Backup model ${backupModel} succeeded`);
119
+ return result;
120
+ }
121
+ catch (backupError) {
122
+ const backupErrMsg = getErrorMessage(backupError);
123
+ console.warn(`[OPENROUTER] Backup model ${backupModel} failed: ${backupErrMsg}`);
124
+ lastBackupError = backupError;
125
+ if (!shouldUseBackupModel(backupError) &&
126
+ i < this.backupModels.length - 1) {
127
+ console.log(`[OPENROUTER] Backup model error doesn't qualify for further attempts`);
128
+ break;
129
+ }
130
+ }
131
+ }
132
+ const lastBackupErrMsg = getErrorMessage(lastBackupError);
133
+ console.error(`[OPENROUTER] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`);
134
+ throw lastBackupError;
135
+ }
136
+ }
137
+ async generateWithModel(model, input) {
138
+ const operation = async () => {
139
+ const params = {
140
+ model,
141
+ messages: [
142
+ {
143
+ role: "user",
144
+ content: input.prompt,
145
+ },
146
+ ],
147
+ ...this.config,
148
+ };
149
+ // Override with input parameters if provided
150
+ if (input.parameters?.maxOutputTokens !== undefined) {
151
+ params.max_tokens = input.parameters.maxOutputTokens;
152
+ }
153
+ // Use structured output API if JSON mode is enabled
154
+ if (input.parameters?.jsonMode) {
155
+ // Define the JSON schema for agent response
156
+ const agentResponseSchema = {
157
+ type: "object",
158
+ properties: {
159
+ message: {
160
+ type: "string",
161
+ description: "The actual message to send to the user",
162
+ },
163
+ route: {
164
+ type: ["string", "null"],
165
+ description: "The title of the route chosen (or null if no specific route)",
166
+ },
167
+ state: {
168
+ type: ["string", "null"],
169
+ description: "The current state within the route (or null if not in a route)",
170
+ },
171
+ toolCalls: {
172
+ type: "array",
173
+ items: {
174
+ type: "object",
175
+ properties: {
176
+ toolName: {
177
+ type: "string",
178
+ description: "Name of the tool to call",
179
+ },
180
+ arguments: {
181
+ type: "object",
182
+ description: "Arguments to pass to the tool",
183
+ },
184
+ },
185
+ required: ["toolName", "arguments"],
186
+ },
187
+ description: "Tool calls the agent wants to execute",
188
+ },
189
+ reasoning: {
190
+ type: "string",
191
+ description: "Optional: Internal reasoning for this response",
192
+ },
193
+ },
194
+ required: ["message"],
195
+ additionalProperties: false,
196
+ };
197
+ const response = await this.client.responses.parse({
198
+ model,
199
+ instructions: input.prompt,
200
+ input: "",
201
+ reasoning: {
202
+ effort: input.parameters?.reasoning?.effort || "low",
203
+ },
204
+ text: {
205
+ format: {
206
+ type: "json_schema",
207
+ name: "agentResponseSchema",
208
+ schema: agentResponseSchema,
209
+ },
210
+ },
211
+ });
212
+ if (!response.output_parsed) {
213
+ throw new Error("No parsed output returned from OpenRouter");
214
+ }
215
+ const structured = response.output_parsed;
216
+ const message = structured.message;
217
+ return {
218
+ message,
219
+ metadata: {
220
+ model: response.model,
221
+ tokensUsed: response.usage?.total_tokens,
222
+ promptTokens: response.usage?.input_tokens,
223
+ completionTokens: response.usage?.output_tokens,
224
+ },
225
+ structured,
226
+ };
227
+ }
228
+ // Fall back to regular chat completions API if JSON mode not enabled
229
+ const response = await this.client.chat.completions.create(params);
230
+ const message = response.choices[0]?.message?.content;
231
+ if (!message) {
232
+ throw new Error("No response from OpenRouter");
233
+ }
234
+ return {
235
+ message,
236
+ metadata: {
237
+ model: response.model,
238
+ finishReason: response.choices[0]?.finish_reason,
239
+ tokensUsed: response.usage?.total_tokens,
240
+ promptTokens: response.usage?.prompt_tokens,
241
+ completionTokens: response.usage?.completion_tokens,
242
+ },
243
+ };
244
+ };
245
+ return (0, retry_1.withTimeoutAndRetry)(operation, this.retryConfig.timeout, this.retryConfig.retries, `OpenRouter ${model}`);
246
+ }
247
+ }
248
+ exports.OpenRouterProvider = OpenRouterProvider;
249
+ //# sourceMappingURL=OpenRouterProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenRouterProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenRouterProvider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,oDAA4B;AAS5B,0CAAqD;AAErD,MAAM,oBAAoB,GAAG;IAC3B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,CAAC;CACX,CAAC;AAsCF;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE;IACvD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,IACE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAa,kBAAkB;IAU7B,YAAY,OAAkC;QAT9B,SAAI,GAAG,YAAY,CAAC;QAUlC,MAAM,EACJ,MAAM,EACN,KAAK,EACL,YAAY,GAAG,EAAE,EACjB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,oDAAoD;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC;YACvB,MAAM;YACN,OAAO,EAAE,8BAA8B;YACvC,cAAc,EAAE;gBACd,cAAc,EAAE,OAAO,IAAI,EAAE;gBAC7B,SAAS,EAAE,QAAQ,IAAI,EAAE;aAC1B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG;YACjB,OAAO,EAAE,WAAW,EAAE,OAAO,IAAI,oBAAoB,CAAC,OAAO;YAC7D,OAAO,EAAE,WAAW,EAAE,OAAO,IAAI,oBAAoB,CAAC,OAAO;SAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAqC;QAErC,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,KAAqC;QAErC,0BAA0B;QAC1B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,YAAqB,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CACV,8BAA8B,IAAI,CAAC,YAAY,YAAY,aAAa,EAAE,CAC3E,CAAC;YAEF,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxC,MAAM,YAAY,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YAEjD,IAAI,eAAe,GAAY,YAAY,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CACT,oCAAoC,CAAC,GAAG,CAAC,IACvC,IAAI,CAAC,YAAY,CAAC,MACpB,KAAK,WAAW,EAAE,CACnB,CAAC;gBAEF,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;oBAChE,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,YAAY,CAAC,CAAC;oBAClE,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,WAAoB,EAAE,CAAC;oBAC9B,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;oBAClD,OAAO,CAAC,IAAI,CACV,6BAA6B,WAAW,YAAY,YAAY,EAAE,CACnE,CAAC;oBACF,eAAe,GAAG,WAAW,CAAC;oBAE9B,IACE,CAAC,oBAAoB,CAAC,WAAW,CAAC;wBAClC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAChC,CAAC;wBACD,OAAO,CAAC,GAAG,CACT,sEAAsE,CACvE,CAAC;wBACF,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CACX,4CAA4C,aAAa,kBAAkB,gBAAgB,EAAE,CAC9F,CAAC;YACF,MAAM,eAAe,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,KAAa,EACb,KAAqC;QAErC,MAAM,SAAS,GAAG,KAAK,IAAoC,EAAE;YAC3D,MAAM,MAAM,GAA2C;gBACrD,KAAK;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,KAAK,CAAC,MAAM;qBACtB;iBACF;gBACD,GAAG,IAAI,CAAC,MAAM;aACf,CAAC;YAEF,6CAA6C;YAC7C,IAAI,KAAK,CAAC,UAAU,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;gBACpD,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;YACvD,CAAC;YAED,oDAAoD;YACpD,IAAI,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;gBAC/B,4CAA4C;gBAC5C,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wCAAwC;yBACtD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;4BACxB,WAAW,EACT,8DAA8D;yBACjE;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;4BACxB,WAAW,EACT,gEAAgE;yBACnE;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,QAAQ,EAAE;wCACR,IAAI,EAAE,QAAQ;wCACd,WAAW,EAAE,0BAA0B;qCACxC;oCACD,SAAS,EAAE;wCACT,IAAI,EAAE,QAAQ;wCACd,WAAW,EAAE,+BAA+B;qCAC7C;iCACF;gCACD,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;6BACpC;4BACD,WAAW,EAAE,uCAAuC;yBACrD;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gDAAgD;yBAC9D;qBACF;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;oBACrB,oBAAoB,EAAE,KAAK;iBAC5B,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;oBACjD,KAAK;oBACL,YAAY,EAAE,KAAK,CAAC,MAAM;oBAC1B,KAAK,EAAE,EAAE;oBACT,SAAS,EAAE;wBACT,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,KAAK;qBACrD;oBACD,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN,IAAI,EAAE,aAAa;4BACnB,IAAI,EAAE,qBAAqB;4BAC3B,MAAM,EAAE,mBAAmB;yBAC5B;qBACF;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,CAAC;gBAED,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAwC,CAAC;gBACrE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBAEnC,OAAO;oBACL,OAAO;oBACP,QAAQ,EAAE;wBACR,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY;wBACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY;wBAC1C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa;qBAChD;oBACD,UAAU;iBACX,CAAC;YACJ,CAAC;YAED,qEAAqE;YACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEnE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YAED,OAAO;gBACL,OAAO;gBACP,QAAQ,EAAE;oBACR,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa;oBAChD,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY;oBACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa;oBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,iBAAiB;iBACpD;aACF,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,IAAA,2BAAmB,EACxB,SAAS,EACT,IAAI,CAAC,WAAW,CAAC,OAAO,EACxB,IAAI,CAAC,WAAW,CAAC,OAAO,EACxB,cAAc,KAAK,EAAE,CACtB,CAAC;IACJ,CAAC;CACF;AAnPD,gDAmPC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Agent-related type definitions
3
+ */
4
+ import type { AiProvider } from "./ai";
5
+ import type { ToolRef } from "./tool";
6
+ import type { RouteOptions } from "./route";
7
+ /**
8
+ * Composition mode determines how the agent processes and structures responses
9
+ */
10
+ export declare enum CompositionMode {
11
+ /** Fluid, natural conversation without strict structure */
12
+ FLUID = "fluid",
13
+ /** Canned responses with fluid fallback */
14
+ CANNED_FLUID = "canned_fluid",
15
+ /** Composited canned responses */
16
+ CANNED_COMPOSITED = "composited_canned",
17
+ /** Strict canned responses only */
18
+ CANNED_STRICT = "strict_canned"
19
+ }
20
+ /**
21
+ * Forward declare observation types
22
+ */
23
+ import type { ObservationOptions } from "./observation";
24
+ /**
25
+ * Options for creating an Agent
26
+ */
27
+ export interface AgentOptions<TContext = unknown> {
28
+ /** Display name of the agent */
29
+ name: string;
30
+ /** Detailed description of the agent's purpose and personality */
31
+ description?: string;
32
+ /** The agent's primary goal or objective */
33
+ goal?: string;
34
+ /** Default context data available to the agent */
35
+ context?: TContext;
36
+ /** AI provider strategy for generating responses */
37
+ ai: AiProvider;
38
+ /** Maximum number of processing iterations per request */
39
+ maxEngineIterations?: number;
40
+ /** Composition mode for response generation */
41
+ compositionMode?: CompositionMode;
42
+ /** Initial terms for domain glossary */
43
+ terms?: Term[];
44
+ /** Initial guidelines for agent behavior */
45
+ guidelines?: Guideline[];
46
+ /** Initial capabilities */
47
+ capabilities?: Capability[];
48
+ /** Initial routes (will be instantiated as Route objects) */
49
+ routes?: RouteOptions[];
50
+ /** Initial observations for disambiguation */
51
+ observations?: ObservationOptions[];
52
+ }
53
+ /**
54
+ * A term in the domain glossary
55
+ */
56
+ export interface Term {
57
+ /** Name of the term */
58
+ name: string;
59
+ /** Description/definition of the term */
60
+ description: string;
61
+ /** Alternative names or synonyms */
62
+ synonyms?: string[];
63
+ }
64
+ /**
65
+ * A behavioral guideline for the agent
66
+ */
67
+ export interface Guideline {
68
+ /** Unique identifier */
69
+ id?: string;
70
+ /** Condition that triggers this guideline (optional for always-active guidelines) */
71
+ condition?: string;
72
+ /** Action the agent should take when the condition is met */
73
+ action: string;
74
+ /** Whether this guideline is currently enabled */
75
+ enabled?: boolean;
76
+ /** Tags for organizing and filtering guidelines */
77
+ tags?: string[];
78
+ /** Tools available when following this guideline */
79
+ tools?: ToolRef<unknown, unknown[], unknown>[];
80
+ /** Additional metadata */
81
+ metadata?: Record<string, unknown>;
82
+ }
83
+ /**
84
+ * A capability the agent can perform
85
+ */
86
+ export interface Capability {
87
+ /** Unique identifier */
88
+ id?: string;
89
+ /** Title of the capability */
90
+ title: string;
91
+ /** Description of what the capability does */
92
+ description: string;
93
+ /** Tools used by this capability */
94
+ tools?: ToolRef<unknown, unknown[], unknown>[];
95
+ }
96
+ /**
97
+ * Guideline match with rationale
98
+ */
99
+ export interface GuidelineMatch {
100
+ /** The matched guideline */
101
+ guideline: Guideline;
102
+ /** Explanation of why this guideline was matched */
103
+ rationale?: string;
104
+ }
105
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;GAEG;AACH,oBAAY,eAAe;IACzB,2DAA2D;IAC3D,KAAK,UAAU;IACf,2CAA2C;IAC3C,YAAY,iBAAiB;IAC7B,kCAAkC;IAClC,iBAAiB,sBAAsB;IACvC,mCAAmC;IACnC,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,QAAQ,GAAG,OAAO;IAC9C,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,oDAAoD;IACpD,EAAE,EAAE,UAAU,CAAC;IACf,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,wCAAwC;IACxC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/C,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Agent-related type definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CompositionMode = void 0;
7
+ /**
8
+ * Composition mode determines how the agent processes and structures responses
9
+ */
10
+ var CompositionMode;
11
+ (function (CompositionMode) {
12
+ /** Fluid, natural conversation without strict structure */
13
+ CompositionMode["FLUID"] = "fluid";
14
+ /** Canned responses with fluid fallback */
15
+ CompositionMode["CANNED_FLUID"] = "canned_fluid";
16
+ /** Composited canned responses */
17
+ CompositionMode["CANNED_COMPOSITED"] = "composited_canned";
18
+ /** Strict canned responses only */
19
+ CompositionMode["CANNED_STRICT"] = "strict_canned";
20
+ })(CompositionMode || (exports.CompositionMode = CompositionMode = {}));
21
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAMH;;GAEG;AACH,IAAY,eASX;AATD,WAAY,eAAe;IACzB,2DAA2D;IAC3D,kCAAe,CAAA;IACf,2CAA2C;IAC3C,gDAA6B,CAAA;IAC7B,kCAAkC;IAClC,0DAAuC,CAAA;IACvC,mCAAmC;IACnC,kDAA+B,CAAA;AACjC,CAAC,EATW,eAAe,+BAAf,eAAe,QAS1B"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * AI provider strategy types
3
+ */
4
+ import type { Event } from "./history";
5
+ /**
6
+ * Reasoning/thinking configuration for AI models
7
+ */
8
+ export interface ReasoningConfig {
9
+ /**
10
+ * Effort level for reasoning models (OpenAI: gpt-5, o-series)
11
+ * - minimal: Fastest, least reasoning
12
+ * - low: Basic reasoning
13
+ * - medium: Balanced reasoning
14
+ * - high: Maximum reasoning effort
15
+ */
16
+ effort?: "minimal" | "low" | "medium" | "high";
17
+ /**
18
+ * Summary detail level of reasoning process
19
+ * - auto: Model decides
20
+ * - concise: Brief summary
21
+ * - detailed: Full reasoning details
22
+ */
23
+ summary?: "auto" | "concise" | "detailed";
24
+ /**
25
+ * Whether to include thinking/reasoning in response (Gemini)
26
+ */
27
+ includeThoughts?: boolean;
28
+ }
29
+ /**
30
+ * Input for AI message generation
31
+ */
32
+ export interface GenerateMessageInput<TContext = unknown> {
33
+ /** The constructed prompt */
34
+ prompt: string;
35
+ /** Interaction history */
36
+ history: Event[];
37
+ /** Context data */
38
+ context: TContext;
39
+ /** Additional generation parameters */
40
+ parameters?: {
41
+ /** Maximum output tokens to generate */
42
+ maxOutputTokens?: number;
43
+ /** Reasoning/thinking configuration */
44
+ reasoning?: ReasoningConfig;
45
+ /** Enable structured JSON output mode */
46
+ jsonMode?: boolean;
47
+ };
48
+ /** Abort signal for cancellation */
49
+ signal?: AbortSignal;
50
+ }
51
+ /**
52
+ * Structured response from AI containing message and metadata
53
+ */
54
+ export interface AgentStructuredResponse {
55
+ /** The actual message to send to the user */
56
+ message: string;
57
+ /** Route chosen by the agent (route title or null if no route) */
58
+ route?: string | null;
59
+ /** Current state within the route (state description or null) */
60
+ state?: string | null;
61
+ /** Tool calls the agent wants to execute */
62
+ toolCalls?: Array<{
63
+ /** Name of the tool to call */
64
+ toolName: string;
65
+ /** Arguments to pass to the tool */
66
+ arguments: Record<string, unknown>;
67
+ }>;
68
+ /** Additional reasoning or internal thoughts (optional) */
69
+ reasoning?: string;
70
+ }
71
+ /**
72
+ * Output from AI message generation
73
+ */
74
+ export interface GenerateMessageOutput {
75
+ /** The generated message */
76
+ message: string;
77
+ /** Optional metadata about generation */
78
+ metadata?: {
79
+ /** Model used */
80
+ model?: string;
81
+ /** Tokens consumed */
82
+ tokensUsed?: number;
83
+ /** Finish reason */
84
+ finishReason?: string;
85
+ /** Additional provider-specific data */
86
+ [key: string]: unknown;
87
+ };
88
+ /** Structured response data (when JSON mode is enabled) */
89
+ structured?: AgentStructuredResponse;
90
+ }
91
+ /**
92
+ * AI provider interface (strategy pattern)
93
+ */
94
+ export interface AiProvider {
95
+ /** Provider name/identifier */
96
+ readonly name: string;
97
+ /**
98
+ * Generate a message based on prompt and context
99
+ */
100
+ generateMessage<TContext = unknown>(input: GenerateMessageInput<TContext>): Promise<GenerateMessageOutput>;
101
+ }
102
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../src/types/ai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,QAAQ,GAAG,OAAO;IACtD,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,mBAAmB;IACnB,OAAO,EAAE,QAAQ,CAAC;IAClB,uCAAuC;IACvC,UAAU,CAAC,EAAE;QACX,wCAAwC;QACxC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uCAAuC;QACvC,SAAS,CAAC,EAAE,eAAe,CAAC;QAC5B,yCAAyC;QACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,+BAA+B;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,oCAAoC;QACpC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,CAAC;IACH,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE;QACT,iBAAiB;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,sBAAsB;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,wCAAwC;QACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,2DAA2D;IAC3D,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,QAAQ,GAAG,OAAO,EAChC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * AI provider strategy types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/types/ai.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Event history and interaction types
3
+ */
4
+ /**
5
+ * Types of events in the interaction history
6
+ */
7
+ export declare enum EventKind {
8
+ /** A text message event */
9
+ MESSAGE = "message",
10
+ /** A tool execution event */
11
+ TOOL = "tool",
12
+ /** A status update event */
13
+ STATUS = "status"
14
+ }
15
+ /**
16
+ * Source of an event
17
+ */
18
+ export declare enum EventSource {
19
+ /** Event originated from the customer/user */
20
+ CUSTOMER = "customer",
21
+ /** Event from customer UI application */
22
+ CUSTOMER_UI = "customer_ui",
23
+ /** Event from human service agent */
24
+ HUMAN_AGENT = "human_agent",
25
+ /** Human agent acting on behalf of AI agent */
26
+ HUMAN_AGENT_ON_BEHALF_OF_AI_AGENT = "human_agent_on_behalf_of_ai_agent",
27
+ /** Event generated by AI agent */
28
+ AI_AGENT = "ai_agent",
29
+ /** System-generated event */
30
+ SYSTEM = "system"
31
+ }
32
+ /**
33
+ * Participant in a conversation
34
+ */
35
+ export interface Participant {
36
+ /** Display name */
37
+ display_name: string;
38
+ /** Unique identifier */
39
+ id?: string;
40
+ }
41
+ /**
42
+ * Data for a message event
43
+ */
44
+ export interface MessageEventData {
45
+ /** The participant who sent the message */
46
+ participant: Participant;
47
+ /** The message content */
48
+ message: string;
49
+ /** Whether the message was flagged/censored */
50
+ flagged?: boolean;
51
+ /** Tags/reasons if flagged */
52
+ tags?: string[];
53
+ }
54
+ /**
55
+ * Result of a tool execution
56
+ */
57
+ export interface ToolResult<TData = unknown> {
58
+ /** The result data */
59
+ data: TData;
60
+ /** Optional metadata */
61
+ meta?: Record<string, unknown>;
62
+ }
63
+ /**
64
+ * A single tool call within a tool event
65
+ */
66
+ export interface ToolCall<TArgs = unknown, TResult = unknown> {
67
+ /** Tool identifier */
68
+ tool_id: string;
69
+ /** Arguments passed to the tool */
70
+ arguments: TArgs;
71
+ /** Result returned by the tool */
72
+ result: ToolResult<TResult>;
73
+ }
74
+ /**
75
+ * Data for a tool event
76
+ */
77
+ export interface ToolEventData {
78
+ /** Array of tool calls executed */
79
+ tool_calls: ToolCall[];
80
+ }
81
+ /**
82
+ * Data for a status event
83
+ */
84
+ export interface StatusEventData {
85
+ /** Status message */
86
+ status: string;
87
+ /** Additional details */
88
+ details?: Record<string, unknown>;
89
+ }
90
+ /**
91
+ * Base event structure
92
+ */
93
+ export interface Event<TData = MessageEventData | ToolEventData | StatusEventData> {
94
+ /** Type of event */
95
+ kind: EventKind;
96
+ /** Source of the event */
97
+ source: EventSource;
98
+ /** Event-specific data */
99
+ data: TData;
100
+ /** Timestamp (ISO string) */
101
+ timestamp?: string;
102
+ /** Unique event identifier */
103
+ id?: string;
104
+ }
105
+ /**
106
+ * An emitted event (staged for inclusion)
107
+ */
108
+ export interface EmittedEvent<TData = MessageEventData | ToolEventData | StatusEventData> extends Event<TData> {
109
+ /** Whether this event has been committed */
110
+ committed?: boolean;
111
+ }
112
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/types/history.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,oBAAY,SAAS;IACnB,2BAA2B;IAC3B,OAAO,YAAY;IACnB,6BAA6B;IAC7B,IAAI,SAAS;IACb,4BAA4B;IAC5B,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,8CAA8C;IAC9C,QAAQ,aAAa;IACrB,yCAAyC;IACzC,WAAW,gBAAgB;IAC3B,qCAAqC;IACrC,WAAW,gBAAgB;IAC3B,+CAA+C;IAC/C,iCAAiC,sCAAsC;IACvE,kCAAkC;IAClC,QAAQ,aAAa;IACrB,6BAA6B;IAC7B,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,WAAW,EAAE,WAAW,CAAC;IACzB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,OAAO;IACzC,sBAAsB;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC1D,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,SAAS,EAAE,KAAK,CAAC;IACjB,kCAAkC;IAClC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,KAAK,CACpB,KAAK,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe;IAE1D,oBAAoB;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,0BAA0B;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAC3B,KAAK,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,CAC1D,SAAQ,KAAK,CAAC,KAAK,CAAC;IACpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * Event history and interaction types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EventSource = exports.EventKind = void 0;
7
+ /**
8
+ * Types of events in the interaction history
9
+ */
10
+ var EventKind;
11
+ (function (EventKind) {
12
+ /** A text message event */
13
+ EventKind["MESSAGE"] = "message";
14
+ /** A tool execution event */
15
+ EventKind["TOOL"] = "tool";
16
+ /** A status update event */
17
+ EventKind["STATUS"] = "status";
18
+ })(EventKind || (exports.EventKind = EventKind = {}));
19
+ /**
20
+ * Source of an event
21
+ */
22
+ var EventSource;
23
+ (function (EventSource) {
24
+ /** Event originated from the customer/user */
25
+ EventSource["CUSTOMER"] = "customer";
26
+ /** Event from customer UI application */
27
+ EventSource["CUSTOMER_UI"] = "customer_ui";
28
+ /** Event from human service agent */
29
+ EventSource["HUMAN_AGENT"] = "human_agent";
30
+ /** Human agent acting on behalf of AI agent */
31
+ EventSource["HUMAN_AGENT_ON_BEHALF_OF_AI_AGENT"] = "human_agent_on_behalf_of_ai_agent";
32
+ /** Event generated by AI agent */
33
+ EventSource["AI_AGENT"] = "ai_agent";
34
+ /** System-generated event */
35
+ EventSource["SYSTEM"] = "system";
36
+ })(EventSource || (exports.EventSource = EventSource = {}));
37
+ //# sourceMappingURL=history.js.map