@falai/agent 0.4.1 → 0.5.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 (285) hide show
  1. package/README.md +21 -74
  2. package/dist/cjs/core/Agent.d.ts +22 -29
  3. package/dist/cjs/core/Agent.d.ts.map +1 -1
  4. package/dist/cjs/core/Agent.js +464 -291
  5. package/dist/cjs/core/Agent.js.map +1 -1
  6. package/dist/cjs/core/Events.d.ts +10 -1
  7. package/dist/cjs/core/Events.d.ts.map +1 -1
  8. package/dist/cjs/core/Events.js +3 -2
  9. package/dist/cjs/core/Events.js.map +1 -1
  10. package/dist/cjs/core/PersistenceManager.d.ts +19 -0
  11. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  12. package/dist/cjs/core/PersistenceManager.js +57 -0
  13. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  14. package/dist/cjs/core/PromptComposer.d.ts +24 -0
  15. package/dist/cjs/core/PromptComposer.d.ts.map +1 -0
  16. package/dist/cjs/core/PromptComposer.js +127 -0
  17. package/dist/cjs/core/PromptComposer.js.map +1 -0
  18. package/dist/cjs/core/ResponseEngine.d.ts +19 -0
  19. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -0
  20. package/dist/cjs/core/ResponseEngine.js +51 -0
  21. package/dist/cjs/core/ResponseEngine.js.map +1 -0
  22. package/dist/cjs/core/Route.d.ts +18 -12
  23. package/dist/cjs/core/Route.d.ts.map +1 -1
  24. package/dist/cjs/core/Route.js +15 -9
  25. package/dist/cjs/core/Route.js.map +1 -1
  26. package/dist/cjs/core/RoutingEngine.d.ts +38 -0
  27. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -0
  28. package/dist/cjs/core/RoutingEngine.js +110 -0
  29. package/dist/cjs/core/RoutingEngine.js.map +1 -0
  30. package/dist/cjs/core/State.d.ts +15 -4
  31. package/dist/cjs/core/State.d.ts.map +1 -1
  32. package/dist/cjs/core/State.js +21 -2
  33. package/dist/cjs/core/State.js.map +1 -1
  34. package/dist/cjs/core/ToolExecutor.d.ts +29 -0
  35. package/dist/cjs/core/ToolExecutor.d.ts.map +1 -0
  36. package/dist/cjs/core/ToolExecutor.js +73 -0
  37. package/dist/cjs/core/ToolExecutor.js.map +1 -0
  38. package/dist/cjs/core/Transition.d.ts +5 -5
  39. package/dist/cjs/core/Transition.d.ts.map +1 -1
  40. package/dist/cjs/core/Transition.js.map +1 -1
  41. package/dist/cjs/index.d.ts +6 -8
  42. package/dist/cjs/index.d.ts.map +1 -1
  43. package/dist/cjs/index.js +8 -10
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
  46. package/dist/cjs/providers/AnthropicProvider.js +10 -13
  47. package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
  48. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  49. package/dist/cjs/providers/GeminiProvider.js +12 -8
  50. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  51. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  52. package/dist/cjs/providers/OpenAIProvider.js +10 -53
  53. package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
  54. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
  55. package/dist/cjs/providers/OpenRouterProvider.js +10 -53
  56. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
  57. package/dist/cjs/types/agent.d.ts +13 -12
  58. package/dist/cjs/types/agent.d.ts.map +1 -1
  59. package/dist/cjs/types/ai.d.ts +8 -2
  60. package/dist/cjs/types/ai.d.ts.map +1 -1
  61. package/dist/cjs/types/history.d.ts +8 -0
  62. package/dist/cjs/types/history.d.ts.map +1 -1
  63. package/dist/cjs/types/index.d.ts +0 -3
  64. package/dist/cjs/types/index.d.ts.map +1 -1
  65. package/dist/cjs/types/index.js +1 -3
  66. package/dist/cjs/types/index.js.map +1 -1
  67. package/dist/cjs/types/route.d.ts +39 -4
  68. package/dist/cjs/types/route.d.ts.map +1 -1
  69. package/dist/cjs/types/routing.d.ts +16 -0
  70. package/dist/cjs/types/routing.d.ts.map +1 -0
  71. package/dist/cjs/types/routing.js +3 -0
  72. package/dist/cjs/types/routing.js.map +1 -0
  73. package/dist/cjs/types/schema.d.ts +22 -0
  74. package/dist/cjs/types/schema.d.ts.map +1 -0
  75. package/dist/cjs/types/schema.js +3 -0
  76. package/dist/cjs/types/schema.js.map +1 -0
  77. package/dist/cjs/types/session.d.ts +72 -0
  78. package/dist/cjs/types/session.d.ts.map +1 -0
  79. package/dist/cjs/types/session.js +140 -0
  80. package/dist/cjs/types/session.js.map +1 -0
  81. package/dist/cjs/types/tool.d.ts +11 -5
  82. package/dist/cjs/types/tool.d.ts.map +1 -1
  83. package/dist/cjs/utils/id.d.ts +0 -5
  84. package/dist/cjs/utils/id.d.ts.map +1 -1
  85. package/dist/cjs/utils/id.js +0 -10
  86. package/dist/cjs/utils/id.js.map +1 -1
  87. package/dist/cjs/utils/schema.d.ts +17 -0
  88. package/dist/cjs/utils/schema.d.ts.map +1 -0
  89. package/dist/cjs/utils/schema.js +32 -0
  90. package/dist/cjs/utils/schema.js.map +1 -0
  91. package/dist/core/Agent.d.ts +22 -29
  92. package/dist/core/Agent.d.ts.map +1 -1
  93. package/dist/core/Agent.js +464 -291
  94. package/dist/core/Agent.js.map +1 -1
  95. package/dist/core/Events.d.ts +10 -1
  96. package/dist/core/Events.d.ts.map +1 -1
  97. package/dist/core/Events.js +3 -2
  98. package/dist/core/Events.js.map +1 -1
  99. package/dist/core/PersistenceManager.d.ts +19 -0
  100. package/dist/core/PersistenceManager.d.ts.map +1 -1
  101. package/dist/core/PersistenceManager.js +57 -0
  102. package/dist/core/PersistenceManager.js.map +1 -1
  103. package/dist/core/PromptComposer.d.ts +24 -0
  104. package/dist/core/PromptComposer.d.ts.map +1 -0
  105. package/dist/core/PromptComposer.js +123 -0
  106. package/dist/core/PromptComposer.js.map +1 -0
  107. package/dist/core/ResponseEngine.d.ts +19 -0
  108. package/dist/core/ResponseEngine.d.ts.map +1 -0
  109. package/dist/core/ResponseEngine.js +47 -0
  110. package/dist/core/ResponseEngine.js.map +1 -0
  111. package/dist/core/Route.d.ts +18 -12
  112. package/dist/core/Route.d.ts.map +1 -1
  113. package/dist/core/Route.js +15 -9
  114. package/dist/core/Route.js.map +1 -1
  115. package/dist/core/RoutingEngine.d.ts +38 -0
  116. package/dist/core/RoutingEngine.d.ts.map +1 -0
  117. package/dist/core/RoutingEngine.js +106 -0
  118. package/dist/core/RoutingEngine.js.map +1 -0
  119. package/dist/core/State.d.ts +15 -4
  120. package/dist/core/State.d.ts.map +1 -1
  121. package/dist/core/State.js +21 -2
  122. package/dist/core/State.js.map +1 -1
  123. package/dist/core/ToolExecutor.d.ts +29 -0
  124. package/dist/core/ToolExecutor.d.ts.map +1 -0
  125. package/dist/core/ToolExecutor.js +69 -0
  126. package/dist/core/ToolExecutor.js.map +1 -0
  127. package/dist/core/Transition.d.ts +5 -5
  128. package/dist/core/Transition.d.ts.map +1 -1
  129. package/dist/core/Transition.js.map +1 -1
  130. package/dist/index.d.ts +6 -8
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +3 -5
  133. package/dist/index.js.map +1 -1
  134. package/dist/providers/AnthropicProvider.d.ts.map +1 -1
  135. package/dist/providers/AnthropicProvider.js +10 -13
  136. package/dist/providers/AnthropicProvider.js.map +1 -1
  137. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  138. package/dist/providers/GeminiProvider.js +12 -8
  139. package/dist/providers/GeminiProvider.js.map +1 -1
  140. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  141. package/dist/providers/OpenAIProvider.js +10 -53
  142. package/dist/providers/OpenAIProvider.js.map +1 -1
  143. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  144. package/dist/providers/OpenRouterProvider.js +10 -53
  145. package/dist/providers/OpenRouterProvider.js.map +1 -1
  146. package/dist/types/agent.d.ts +13 -12
  147. package/dist/types/agent.d.ts.map +1 -1
  148. package/dist/types/ai.d.ts +8 -2
  149. package/dist/types/ai.d.ts.map +1 -1
  150. package/dist/types/history.d.ts +8 -0
  151. package/dist/types/history.d.ts.map +1 -1
  152. package/dist/types/index.d.ts +0 -3
  153. package/dist/types/index.d.ts.map +1 -1
  154. package/dist/types/index.js +0 -1
  155. package/dist/types/index.js.map +1 -1
  156. package/dist/types/route.d.ts +39 -4
  157. package/dist/types/route.d.ts.map +1 -1
  158. package/dist/types/routing.d.ts +16 -0
  159. package/dist/types/routing.d.ts.map +1 -0
  160. package/dist/types/routing.js +2 -0
  161. package/dist/types/routing.js.map +1 -0
  162. package/dist/types/schema.d.ts +22 -0
  163. package/dist/types/schema.d.ts.map +1 -0
  164. package/dist/types/schema.js +2 -0
  165. package/dist/types/schema.js.map +1 -0
  166. package/dist/types/session.d.ts +72 -0
  167. package/dist/types/session.d.ts.map +1 -0
  168. package/dist/types/session.js +132 -0
  169. package/dist/types/session.js.map +1 -0
  170. package/dist/types/tool.d.ts +11 -5
  171. package/dist/types/tool.d.ts.map +1 -1
  172. package/dist/utils/id.d.ts +0 -5
  173. package/dist/utils/id.d.ts.map +1 -1
  174. package/dist/utils/id.js +0 -9
  175. package/dist/utils/id.js.map +1 -1
  176. package/dist/utils/schema.d.ts +17 -0
  177. package/dist/utils/schema.d.ts.map +1 -0
  178. package/dist/utils/schema.js +27 -0
  179. package/dist/utils/schema.js.map +1 -0
  180. package/docs/ADAPTERS.md +83 -3
  181. package/docs/API_REFERENCE.md +95 -104
  182. package/docs/ARCHITECTURE.md +284 -286
  183. package/docs/CONSTRUCTOR_OPTIONS.md +192 -135
  184. package/docs/CONTEXT_MANAGEMENT.md +311 -28
  185. package/docs/CONTRIBUTING.md +1 -1
  186. package/docs/DOMAINS.md +61 -0
  187. package/docs/GETTING_STARTED.md +177 -88
  188. package/docs/PERSISTENCE.md +170 -23
  189. package/docs/README.md +7 -10
  190. package/examples/business-onboarding.ts +21 -9
  191. package/examples/company-qna-agent.ts +508 -0
  192. package/examples/declarative-agent.ts +143 -26
  193. package/examples/domain-scoping.ts +31 -10
  194. package/examples/extracted-data-modification.ts +415 -0
  195. package/examples/healthcare-agent.ts +194 -90
  196. package/examples/openai-agent.ts +67 -25
  197. package/examples/opensearch-persistence.ts +455 -151
  198. package/examples/persistent-onboarding.ts +162 -96
  199. package/examples/prisma-persistence.ts +371 -125
  200. package/examples/redis-persistence.ts +393 -23
  201. package/examples/rules-prohibitions.ts +32 -11
  202. package/examples/streaming-agent.ts +61 -13
  203. package/examples/travel-agent.ts +266 -133
  204. package/package.json +1 -1
  205. package/src/core/Agent.ts +674 -356
  206. package/src/core/Events.ts +12 -2
  207. package/src/core/PersistenceManager.ts +83 -0
  208. package/src/core/PromptComposer.ts +143 -0
  209. package/src/core/ResponseEngine.ts +82 -0
  210. package/src/core/Route.ts +32 -17
  211. package/src/core/RoutingEngine.ts +165 -0
  212. package/src/core/State.ts +55 -15
  213. package/src/core/ToolExecutor.ts +117 -0
  214. package/src/core/Transition.ts +5 -5
  215. package/src/index.ts +12 -21
  216. package/src/providers/AnthropicProvider.ts +10 -13
  217. package/src/providers/GeminiProvider.ts +12 -8
  218. package/src/providers/OpenAIProvider.ts +10 -56
  219. package/src/providers/OpenRouterProvider.ts +10 -56
  220. package/src/types/agent.ts +16 -13
  221. package/src/types/ai.ts +6 -2
  222. package/src/types/history.ts +8 -0
  223. package/src/types/index.ts +0 -11
  224. package/src/types/route.ts +41 -5
  225. package/src/types/routing.ts +18 -0
  226. package/src/types/schema.ts +23 -0
  227. package/src/types/session.ts +207 -0
  228. package/src/types/tool.ts +29 -7
  229. package/src/utils/id.ts +0 -10
  230. package/src/utils/schema.ts +32 -0
  231. package/dist/cjs/core/ConditionEvaluator.d.ts +0 -72
  232. package/dist/cjs/core/ConditionEvaluator.d.ts.map +0 -1
  233. package/dist/cjs/core/ConditionEvaluator.js +0 -272
  234. package/dist/cjs/core/ConditionEvaluator.js.map +0 -1
  235. package/dist/cjs/core/Observation.d.ts +0 -24
  236. package/dist/cjs/core/Observation.d.ts.map +0 -1
  237. package/dist/cjs/core/Observation.js +0 -39
  238. package/dist/cjs/core/Observation.js.map +0 -1
  239. package/dist/cjs/core/PreparationEngine.d.ts +0 -116
  240. package/dist/cjs/core/PreparationEngine.d.ts.map +0 -1
  241. package/dist/cjs/core/PreparationEngine.js +0 -353
  242. package/dist/cjs/core/PreparationEngine.js.map +0 -1
  243. package/dist/cjs/core/PromptBuilder.d.ts +0 -136
  244. package/dist/cjs/core/PromptBuilder.d.ts.map +0 -1
  245. package/dist/cjs/core/PromptBuilder.js +0 -421
  246. package/dist/cjs/core/PromptBuilder.js.map +0 -1
  247. package/dist/cjs/types/observation.d.ts +0 -27
  248. package/dist/cjs/types/observation.d.ts.map +0 -1
  249. package/dist/cjs/types/observation.js +0 -6
  250. package/dist/cjs/types/observation.js.map +0 -1
  251. package/dist/cjs/types/prompt.d.ts +0 -46
  252. package/dist/cjs/types/prompt.d.ts.map +0 -1
  253. package/dist/cjs/types/prompt.js +0 -19
  254. package/dist/cjs/types/prompt.js.map +0 -1
  255. package/dist/core/ConditionEvaluator.d.ts +0 -72
  256. package/dist/core/ConditionEvaluator.d.ts.map +0 -1
  257. package/dist/core/ConditionEvaluator.js +0 -268
  258. package/dist/core/ConditionEvaluator.js.map +0 -1
  259. package/dist/core/Observation.d.ts +0 -24
  260. package/dist/core/Observation.d.ts.map +0 -1
  261. package/dist/core/Observation.js +0 -35
  262. package/dist/core/Observation.js.map +0 -1
  263. package/dist/core/PreparationEngine.d.ts +0 -116
  264. package/dist/core/PreparationEngine.d.ts.map +0 -1
  265. package/dist/core/PreparationEngine.js +0 -349
  266. package/dist/core/PreparationEngine.js.map +0 -1
  267. package/dist/core/PromptBuilder.d.ts +0 -136
  268. package/dist/core/PromptBuilder.d.ts.map +0 -1
  269. package/dist/core/PromptBuilder.js +0 -417
  270. package/dist/core/PromptBuilder.js.map +0 -1
  271. package/dist/types/observation.d.ts +0 -27
  272. package/dist/types/observation.d.ts.map +0 -1
  273. package/dist/types/observation.js +0 -5
  274. package/dist/types/observation.js.map +0 -1
  275. package/dist/types/prompt.d.ts +0 -46
  276. package/dist/types/prompt.d.ts.map +0 -1
  277. package/dist/types/prompt.js +0 -16
  278. package/dist/types/prompt.js.map +0 -1
  279. package/docs/STRUCTURE.md +0 -58
  280. package/src/core/ConditionEvaluator.ts +0 -381
  281. package/src/core/Observation.ts +0 -47
  282. package/src/core/PreparationEngine.ts +0 -561
  283. package/src/core/PromptBuilder.ts +0 -617
  284. package/src/types/observation.ts +0 -29
  285. package/src/types/prompt.ts +0 -49
@@ -1,353 +0,0 @@
1
- "use strict";
2
- /**
3
- * PreparationEngine - Handles the preparation iteration loop
4
- *
5
- * This engine implements the core Parlant/Emcie architecture:
6
- * 1. Before generating a message, run preparation iterations
7
- * 2. Each iteration:
8
- * - Match guidelines against current context
9
- * - Walk the state machine and execute tool transitions
10
- * - Execute tools when conditions are met
11
- * - Update context from tool results
12
- * - Check if prepared to respond
13
- * 3. After preparation, the AI generates the final message
14
- *
15
- * The AI NEVER sees tools - tools execute automatically based on:
16
- * - State machine transitions ({ toolState: tool })
17
- * - Guideline matching with associated tools
18
- */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.PreparationEngine = void 0;
21
- const ConditionEvaluator_1 = require("./ConditionEvaluator");
22
- class PreparationEngine {
23
- /**
24
- * Run a list of async jobs with a concurrency limit, preserving order of results.
25
- */
26
- async processWithConcurrency(tasks, runner, concurrency) {
27
- const results = new Array(tasks.length);
28
- let nextIndex = 0;
29
- const workers = [];
30
- const runNext = async () => {
31
- const current = nextIndex++;
32
- if (current >= tasks.length) {
33
- return;
34
- }
35
- try {
36
- results[current] = await runner(tasks[current]);
37
- }
38
- finally {
39
- await runNext();
40
- }
41
- };
42
- const workerCount = Math.min(concurrency, tasks.length);
43
- for (let i = 0; i < workerCount; i++) {
44
- workers.push(runNext());
45
- }
46
- await Promise.all(workers);
47
- return results;
48
- }
49
- constructor(ai, options) {
50
- if (ai) {
51
- this.conditionEvaluator = new ConditionEvaluator_1.ConditionEvaluator(ai);
52
- }
53
- this.maxParallelLlmCalls = options?.maxParallelLlmCalls ?? 4;
54
- this.maxParallelTools = options?.maxParallelTools ?? 8;
55
- }
56
- /**
57
- * Run preparation iterations before message generation
58
- *
59
- * This is the core engine that executes tools automatically
60
- * based on state machine transitions and guideline matching.
61
- */
62
- async prepare(preparationContext) {
63
- const iterations = [];
64
- let currentContext = { ...preparationContext.context };
65
- const allToolExecutions = [];
66
- let preparedToRespond = false;
67
- // Run preparation iterations
68
- for (let i = 0; i < preparationContext.maxIterations && !preparedToRespond; i++) {
69
- const iteration = await this.runIteration({
70
- iterationNumber: i + 1,
71
- history: preparationContext.history,
72
- currentState: preparationContext.currentState,
73
- context: currentContext,
74
- routes: preparationContext.routes,
75
- guidelines: preparationContext.guidelines,
76
- });
77
- iterations.push(iteration);
78
- allToolExecutions.push(...iteration.executedTools);
79
- // Update context from tool results
80
- if (Object.keys(iteration.contextUpdates).length > 0) {
81
- currentContext = {
82
- ...currentContext,
83
- ...iteration.contextUpdates,
84
- };
85
- }
86
- // Check if we're prepared to respond
87
- // We're prepared if:
88
- // 1. No tools were executed in this iteration (nothing left to do)
89
- // 2. OR we've reached max iterations
90
- // 3. OR iteration explicitly set preparedToRespond to true
91
- if (iteration.executedTools.length === 0 ||
92
- i === preparationContext.maxIterations - 1 ||
93
- iteration.preparedToRespond) {
94
- preparedToRespond = true;
95
- }
96
- }
97
- return {
98
- iterations,
99
- finalContext: currentContext,
100
- toolExecutions: allToolExecutions,
101
- preparedToRespond,
102
- };
103
- }
104
- /**
105
- * Run a single preparation iteration
106
- */
107
- async runIteration(params) {
108
- const executedTools = [];
109
- const contextUpdates = {};
110
- const matchedGuidelines = [];
111
- // Step 1: Match guidelines against current context
112
- const matchedResults = await this.matchGuidelines(params.guidelines, params.context, params.history);
113
- matchedGuidelines.push(...matchedResults);
114
- // Step 2: Execute tools from matched guidelines
115
- // Guidelines with associated tools should execute those tools
116
- const guidelineToolCalls = [];
117
- for (const match of matchedGuidelines) {
118
- if (match.guideline.tools && match.guideline.tools.length > 0) {
119
- for (const tool of match.guideline.tools) {
120
- const t = tool;
121
- guidelineToolCalls.push(() => this.executeTool(t, params.context, params.history));
122
- }
123
- }
124
- }
125
- if (guidelineToolCalls.length > 0) {
126
- const results = await this.processWithConcurrency(guidelineToolCalls, (fn) => fn(), this.maxParallelTools);
127
- for (const toolResult of results) {
128
- if (toolResult) {
129
- executedTools.push(toolResult);
130
- if (toolResult.result && typeof toolResult.result === "object") {
131
- const result = toolResult.result;
132
- if (result.contextUpdate) {
133
- Object.assign(contextUpdates, result.contextUpdate);
134
- }
135
- }
136
- }
137
- }
138
- }
139
- // Step 3: Walk state machine and execute tool transitions
140
- // Find current route and state, then execute any toolState transitions
141
- if (params.currentState?.id) {
142
- const currentRoute = params.routes.find((r) => r.id === params.currentState.routeId);
143
- if (currentRoute) {
144
- const toolResults = await this.executeStateToolTransitions(currentRoute, params.currentState, params.context, params.history);
145
- executedTools.push(...toolResults);
146
- // Update context from state tool results
147
- for (const toolResult of toolResults) {
148
- if (toolResult.result && typeof toolResult.result === "object") {
149
- const result = toolResult.result;
150
- if (result.contextUpdate) {
151
- Object.assign(contextUpdates, result.contextUpdate);
152
- }
153
- }
154
- }
155
- }
156
- }
157
- return {
158
- iterationNumber: params.iterationNumber,
159
- matchedGuidelines,
160
- executedTools,
161
- contextUpdates,
162
- preparedToRespond: false, // Will be determined by caller
163
- };
164
- }
165
- /**
166
- * Match guidelines against current context
167
- *
168
- * Evaluates guideline conditions against the current context and history
169
- * using AI to determine relevance and priority
170
- */
171
- async matchGuidelines(guidelines, context, history) {
172
- const alwaysMatches = guidelines.filter((g) => g.enabled !== false && !g.condition);
173
- const conditional = guidelines.filter((g) => g.enabled !== false && g.condition);
174
- const matches = alwaysMatches.map((guideline) => ({
175
- guideline,
176
- rationale: "Guideline has no condition - always active",
177
- }));
178
- if (!this.conditionEvaluator) {
179
- // No AI available, match all enabled guidelines with conditions
180
- for (const guideline of conditional) {
181
- matches.push({
182
- guideline,
183
- rationale: "AI not available - defaulting to match",
184
- });
185
- }
186
- return matches;
187
- }
188
- // Evaluate conditional guidelines with limited parallelism
189
- const workers = conditional.map((guideline) => async () => {
190
- const evaluation = await this.conditionEvaluator.evaluateGuidelineCondition(guideline, context, history);
191
- if (evaluation.matches) {
192
- return {
193
- guideline,
194
- rationale: evaluation.rationale || "Condition evaluated as true",
195
- };
196
- }
197
- return null;
198
- });
199
- const evaluated = await this.processWithConcurrency(workers, (w) => w(), this.maxParallelLlmCalls);
200
- for (const r of evaluated) {
201
- if (r) {
202
- matches.push(r);
203
- }
204
- }
205
- return matches;
206
- }
207
- /**
208
- * Execute a single tool
209
- */
210
- async executeTool(tool, context, history) {
211
- try {
212
- // Extract arguments from context and history
213
- let args;
214
- if (this.conditionEvaluator && tool.parameters) {
215
- // Use AI-powered extraction if available
216
- const extraction = await this.conditionEvaluator.extractToolArguments(tool, context, history);
217
- args = extraction.arguments;
218
- }
219
- else {
220
- // Fallback to simple extraction
221
- args = this.conditionEvaluator
222
- ? this.conditionEvaluator.simpleArgumentExtraction(tool, context)
223
- : [];
224
- }
225
- // Execute the tool handler
226
- const result = await tool.handler({
227
- context,
228
- history,
229
- updateContext: async (_updates) => {
230
- // Context updates are handled separately in the preparation loop
231
- // This is a no-op placeholder
232
- },
233
- }, ...args);
234
- return {
235
- toolName: tool.name,
236
- arguments: { args }, // Wrap array in object for logging
237
- result,
238
- success: true,
239
- };
240
- }
241
- catch (error) {
242
- console.error(`[PreparationEngine] Tool execution failed: ${tool.name}`, error);
243
- return {
244
- toolName: tool.name,
245
- arguments: {},
246
- result: null,
247
- success: false,
248
- error: error instanceof Error ? error.message : String(error),
249
- };
250
- }
251
- }
252
- /**
253
- * Execute tool transitions in the state machine
254
- *
255
- * Walks through state transitions and executes tools when
256
- * reaching a { toolState: tool } transition
257
- */
258
- async executeStateToolTransitions(route, currentStateRef, context, history) {
259
- const executedTools = [];
260
- // Get the current state from the route or use initial state
261
- let stateToWalk;
262
- try {
263
- const foundState = route.getState(currentStateRef.id);
264
- if (foundState) {
265
- stateToWalk = foundState;
266
- }
267
- else {
268
- stateToWalk = route.initialState;
269
- }
270
- }
271
- catch {
272
- // If any error occurs, fallback to initial state
273
- stateToWalk = route.initialState;
274
- }
275
- // Walk the state machine starting from the determined state
276
- const toolResults = await this.walkStateChain(stateToWalk, context, history, new Set() // Track visited states to prevent loops
277
- );
278
- executedTools.push(...toolResults);
279
- return executedTools;
280
- }
281
- /**
282
- * Walk through a chain of states, executing tools along the way
283
- */
284
- async walkStateChain(state, context, history, visited) {
285
- const executedTools = [];
286
- // Prevent infinite loops
287
- if (visited.has(state.id)) {
288
- return executedTools;
289
- }
290
- visited.add(state.id);
291
- // Get all transitions from this state
292
- const transitions = state.getTransitions();
293
- // Process each transition
294
- for (const transition of transitions) {
295
- // Check if transition has a condition
296
- if (transition.hasCondition()) {
297
- // Evaluate condition
298
- const shouldFollow = await this.evaluateTransitionCondition(transition, context, history);
299
- if (!shouldFollow) {
300
- continue; // Skip this transition
301
- }
302
- }
303
- // Check if this is a toolState transition
304
- if (transition.spec.toolState) {
305
- // Execute the tool
306
- const toolResult = await this.executeTool(transition.spec.toolState, context, history);
307
- if (toolResult) {
308
- executedTools.push(toolResult);
309
- // Update context with tool results for next transitions
310
- if (toolResult.result && typeof toolResult.result === "object") {
311
- const result = toolResult.result;
312
- if (result.contextUpdate) {
313
- context = {
314
- ...context,
315
- ...result.contextUpdate,
316
- };
317
- }
318
- }
319
- }
320
- }
321
- // Get the target state and recursively walk it
322
- const targetState = transition.getTarget();
323
- if (targetState && !visited.has(targetState.id)) {
324
- const childResults = await this.walkStateChain(targetState, context, history, visited);
325
- executedTools.push(...childResults);
326
- }
327
- }
328
- return executedTools;
329
- }
330
- /**
331
- * Evaluate a transition condition
332
- */
333
- async evaluateTransitionCondition(transition, context, history) {
334
- if (!transition.condition) {
335
- return true; // No condition = always follow
336
- }
337
- // If no AI evaluator available, default to true
338
- if (!this.conditionEvaluator) {
339
- return true;
340
- }
341
- try {
342
- const evaluation = await this.conditionEvaluator.evaluateTransitionCondition(transition.condition, context, history);
343
- return evaluation.shouldFollow;
344
- }
345
- catch (error) {
346
- console.error(`[PreparationEngine] Failed to evaluate transition condition`, error);
347
- // On error, default to false (don't follow)
348
- return false;
349
- }
350
- }
351
- }
352
- exports.PreparationEngine = PreparationEngine;
353
- //# sourceMappingURL=PreparationEngine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PreparationEngine.js","sourceRoot":"","sources":["../../../src/core/PreparationEngine.ts"],"names":[],"mappings":"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"}
@@ -1,136 +0,0 @@
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
- DOMAINS = "domains"
25
- }
26
- /**
27
- * Customer/user information
28
- */
29
- export interface Customer {
30
- name: string;
31
- id?: string;
32
- }
33
- /**
34
- * Agent information for prompt building
35
- */
36
- export interface AgentInfo {
37
- name: string;
38
- description?: string;
39
- }
40
- /**
41
- * Builds prompts from composable sections
42
- */
43
- export declare class PromptBuilder {
44
- private sections;
45
- private onBuild?;
46
- private cachedResults;
47
- constructor(onBuild?: (prompt: string) => void);
48
- /**
49
- * Build the final prompt from all sections
50
- */
51
- build(): string;
52
- /**
53
- * Add a section to the prompt
54
- */
55
- addSection(name: string | BuiltInSection, template: string, props?: Record<string, unknown>, status?: SectionStatus): this;
56
- /**
57
- * Edit an existing section
58
- */
59
- editSection(name: string | BuiltInSection, editor: (section: PromptSection) => PromptSection): this;
60
- /**
61
- * Get section status
62
- */
63
- sectionStatus(name: string | BuiltInSection): SectionStatus;
64
- /**
65
- * Add agent identity section
66
- */
67
- addAgentIdentity(agent: AgentInfo): this;
68
- /**
69
- * Add customer identity section
70
- */
71
- addCustomerIdentity(customer: Customer): this;
72
- /**
73
- * Add interaction history section
74
- */
75
- addInteractionHistory(events: Event[], stagedEvents?: EmittedEvent[]): this;
76
- /**
77
- * Add interaction history with special handling for message generation
78
- */
79
- addInteractionHistoryForMessageGeneration(events: Event[], stagedEvents?: EmittedEvent[]): this;
80
- /**
81
- * Add context variables section
82
- */
83
- addContextVariables(variables: ContextVariableValue[]): this;
84
- /**
85
- * Add glossary section
86
- */
87
- addGlossary(terms: Term[]): this;
88
- /**
89
- * Add staged tool events section
90
- */
91
- addStagedToolEvents(events: EmittedEvent[]): this;
92
- /**
93
- * Add guidelines for message generation
94
- */
95
- addGuidelinesForMessageGeneration(guidelines: GuidelineMatch[]): this;
96
- /**
97
- * Add capabilities section for message generation
98
- */
99
- addCapabilitiesForMessageGeneration(capabilities: Capability[]): this;
100
- /**
101
- * Add observations for disambiguation
102
- */
103
- addObservations(observations: Array<{
104
- description: string;
105
- routes: Array<{
106
- title: string;
107
- }>;
108
- }>): this;
109
- /**
110
- * Add active routes information
111
- */
112
- addActiveRoutes(routes: Array<{
113
- title: string;
114
- description?: string;
115
- conditions: string[];
116
- domains?: string[];
117
- rules?: string[];
118
- prohibitions?: string[];
119
- }>): this;
120
- /**
121
- * Add domains (tools) information
122
- */
123
- addDomains(domains: Record<string, Record<string, unknown>>): this;
124
- /**
125
- * Add JSON response schema instructions
126
- *
127
- * NOTE: toolCalls are NOT included. Tools execute automatically based on
128
- * state transitions and guideline matching, NOT based on AI decisions.
129
- */
130
- addJsonResponseSchema(): this;
131
- private formatTemplate;
132
- private gatherInteractionEvents;
133
- private lastAgentMessageNote;
134
- private contextVariablesToJson;
135
- }
136
- //# sourceMappingURL=PromptBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PromptBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/PromptBuilder.ts"],"names":[],"mappings":"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"}