@falai/agent 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/cjs/core/Agent.d.ts +17 -1
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +47 -0
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/BatchPromptBuilder.d.ts +3 -0
- package/dist/cjs/core/BatchPromptBuilder.d.ts.map +1 -1
- package/dist/cjs/core/BatchPromptBuilder.js +4 -1
- package/dist/cjs/core/BatchPromptBuilder.js.map +1 -1
- package/dist/cjs/core/CompactionEngine.d.ts +65 -0
- package/dist/cjs/core/CompactionEngine.d.ts.map +1 -0
- package/dist/cjs/core/CompactionEngine.js +251 -0
- package/dist/cjs/core/CompactionEngine.js.map +1 -0
- package/dist/cjs/core/PromptComposer.d.ts +8 -1
- package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
- package/dist/cjs/core/PromptComposer.js +238 -126
- package/dist/cjs/core/PromptComposer.js.map +1 -1
- package/dist/cjs/core/PromptSectionCache.d.ts +57 -0
- package/dist/cjs/core/PromptSectionCache.d.ts.map +1 -0
- package/dist/cjs/core/PromptSectionCache.js +108 -0
- package/dist/cjs/core/PromptSectionCache.js.map +1 -0
- package/dist/cjs/core/ResponseEngine.d.ts +3 -0
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +10 -6
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/core/ResponseModal.js +75 -16
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/RoutingEngine.d.ts +10 -0
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/core/RoutingEngine.js +3 -2
- package/dist/cjs/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/core/SessionManager.d.ts.map +1 -1
- package/dist/cjs/core/SessionManager.js +20 -0
- package/dist/cjs/core/SessionManager.js.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.d.ts +142 -0
- package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -0
- package/dist/cjs/core/StreamingToolExecutor.js +455 -0
- package/dist/cjs/core/StreamingToolExecutor.js.map +1 -0
- package/dist/cjs/core/ToolManager.d.ts +18 -1
- package/dist/cjs/core/ToolManager.d.ts.map +1 -1
- package/dist/cjs/core/ToolManager.js +91 -0
- package/dist/cjs/core/ToolManager.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.js +8 -7
- package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts +25 -0
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +79 -51
- package/dist/cjs/providers/GeminiProvider.js.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.js +14 -6
- package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.js +7 -6
- package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +44 -0
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/agent.js.map +1 -1
- package/dist/cjs/types/compaction.d.ts +50 -0
- package/dist/cjs/types/compaction.d.ts.map +1 -0
- package/dist/cjs/types/compaction.js +6 -0
- package/dist/cjs/types/compaction.js.map +1 -0
- package/dist/cjs/types/index.d.ts +4 -2
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/tool.d.ts +84 -0
- package/dist/cjs/types/tool.d.ts.map +1 -1
- package/dist/core/Agent.d.ts +17 -1
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +47 -0
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/BatchPromptBuilder.d.ts +3 -0
- package/dist/core/BatchPromptBuilder.d.ts.map +1 -1
- package/dist/core/BatchPromptBuilder.js +4 -1
- package/dist/core/BatchPromptBuilder.js.map +1 -1
- package/dist/core/CompactionEngine.d.ts +65 -0
- package/dist/core/CompactionEngine.d.ts.map +1 -0
- package/dist/core/CompactionEngine.js +244 -0
- package/dist/core/CompactionEngine.js.map +1 -0
- package/dist/core/PromptComposer.d.ts +8 -1
- package/dist/core/PromptComposer.d.ts.map +1 -1
- package/dist/core/PromptComposer.js +238 -126
- package/dist/core/PromptComposer.js.map +1 -1
- package/dist/core/PromptSectionCache.d.ts +57 -0
- package/dist/core/PromptSectionCache.d.ts.map +1 -0
- package/dist/core/PromptSectionCache.js +104 -0
- package/dist/core/PromptSectionCache.js.map +1 -0
- package/dist/core/ResponseEngine.d.ts +3 -0
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +10 -6
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +75 -16
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/RoutingEngine.d.ts +10 -0
- package/dist/core/RoutingEngine.d.ts.map +1 -1
- package/dist/core/RoutingEngine.js +3 -2
- package/dist/core/RoutingEngine.js.map +1 -1
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +17 -0
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/StreamingToolExecutor.d.ts +142 -0
- package/dist/core/StreamingToolExecutor.d.ts.map +1 -0
- package/dist/core/StreamingToolExecutor.js +448 -0
- package/dist/core/StreamingToolExecutor.js.map +1 -0
- package/dist/core/ToolManager.d.ts +18 -1
- package/dist/core/ToolManager.d.ts.map +1 -1
- package/dist/core/ToolManager.js +91 -0
- package/dist/core/ToolManager.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/providers/AnthropicProvider.js +8 -7
- package/dist/providers/AnthropicProvider.js.map +1 -1
- package/dist/providers/GeminiProvider.d.ts +25 -0
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +79 -51
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/providers/OpenAIProvider.js +14 -6
- package/dist/providers/OpenAIProvider.js.map +1 -1
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/OpenRouterProvider.js +7 -6
- package/dist/providers/OpenRouterProvider.js.map +1 -1
- package/dist/types/agent.d.ts +44 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js.map +1 -1
- package/dist/types/compaction.d.ts +50 -0
- package/dist/types/compaction.d.ts.map +1 -0
- package/dist/types/compaction.js +5 -0
- package/dist/types/compaction.js.map +1 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/tool.d.ts +84 -0
- package/dist/types/tool.d.ts.map +1 -1
- package/docs/api/overview.md +140 -0
- package/docs/core/tools/enhanced-tool.md +186 -0
- package/docs/core/tools/streaming-execution.md +161 -0
- package/docs/guides/context-compaction.md +96 -0
- package/docs/guides/prompt-optimization.md +164 -0
- package/examples/advanced-patterns/context-compaction.ts +223 -0
- package/examples/advanced-patterns/streaming-responses.ts +85 -7
- package/examples/tools/enhanced-tool-metadata.ts +268 -0
- package/examples/tools/streaming-tool-execution.ts +283 -0
- package/package.json +1 -1
- package/src/core/Agent.ts +58 -2
- package/src/core/BatchPromptBuilder.ts +4 -1
- package/src/core/CompactionEngine.ts +318 -0
- package/src/core/PromptComposer.ts +259 -156
- package/src/core/PromptSectionCache.ts +136 -0
- package/src/core/ResponseEngine.ts +9 -6
- package/src/core/ResponseModal.ts +77 -16
- package/src/core/RoutingEngine.ts +13 -2
- package/src/core/SessionManager.ts +19 -0
- package/src/core/StreamingToolExecutor.ts +572 -0
- package/src/core/ToolManager.ts +151 -41
- package/src/index.ts +14 -0
- package/src/providers/AnthropicProvider.ts +11 -12
- package/src/providers/GeminiProvider.ts +83 -52
- package/src/providers/OpenAIProvider.ts +21 -13
- package/src/providers/OpenRouterProvider.ts +13 -13
- package/src/types/agent.ts +45 -0
- package/src/types/compaction.ts +52 -0
- package/src/types/index.ts +35 -14
- package/src/types/tool.ts +108 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PromptSectionCache - Memoizes static prompt sections across turns,
|
|
4
|
+
* recomputing only dynamic sections per-turn.
|
|
5
|
+
*
|
|
6
|
+
* Static sections (agent identity, glossary, knowledge base, route descriptions)
|
|
7
|
+
* are cached after first computation. Dynamic sections (current step context,
|
|
8
|
+
* directives, available tools) are recomputed on every resolveAll() call.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.PromptSectionCache = void 0;
|
|
12
|
+
class PromptSectionCache {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.sections = new Map();
|
|
15
|
+
this.insertionOrder = [];
|
|
16
|
+
this.config = {
|
|
17
|
+
enabled: config?.enabled ?? true,
|
|
18
|
+
volatileKeys: config?.volatileKeys ?? [],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Register a section with its compute function and type.
|
|
23
|
+
* Sections are resolved in registration order during resolveAll().
|
|
24
|
+
*/
|
|
25
|
+
register(key, type, compute) {
|
|
26
|
+
const existing = this.sections.has(key);
|
|
27
|
+
this.sections.set(key, { key, type, compute, cachedValue: undefined });
|
|
28
|
+
if (!existing) {
|
|
29
|
+
this.insertionOrder.push(key);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get a section's value. Static sections return cached value if available;
|
|
34
|
+
* dynamic sections always recompute.
|
|
35
|
+
*/
|
|
36
|
+
async get(key) {
|
|
37
|
+
const entry = this.sections.get(key);
|
|
38
|
+
if (!entry) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
if (this.shouldRecompute(entry)) {
|
|
42
|
+
const value = await entry.compute();
|
|
43
|
+
entry.cachedValue = value;
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
// cachedValue is defined (string or null) — return it
|
|
47
|
+
return entry.cachedValue;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolve all registered sections in registration order.
|
|
51
|
+
* Static sections use cache when available; dynamic sections always recompute.
|
|
52
|
+
*/
|
|
53
|
+
async resolveAll() {
|
|
54
|
+
const results = [];
|
|
55
|
+
for (const key of this.insertionOrder) {
|
|
56
|
+
results.push(await this.get(key));
|
|
57
|
+
}
|
|
58
|
+
return results;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Invalidate a specific section's cache, forcing recomputation on next resolve.
|
|
62
|
+
*/
|
|
63
|
+
invalidate(key) {
|
|
64
|
+
const entry = this.sections.get(key);
|
|
65
|
+
if (entry) {
|
|
66
|
+
entry.cachedValue = undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Invalidate all cached sections (e.g., on session change or /clear).
|
|
71
|
+
*/
|
|
72
|
+
invalidateAll() {
|
|
73
|
+
for (const entry of this.sections.values()) {
|
|
74
|
+
entry.cachedValue = undefined;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check whether a section has a cached value.
|
|
79
|
+
*/
|
|
80
|
+
has(key) {
|
|
81
|
+
return this.sections.has(key);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Determine if a section needs recomputation.
|
|
85
|
+
*/
|
|
86
|
+
shouldRecompute(entry) {
|
|
87
|
+
// Caching disabled — always recompute
|
|
88
|
+
if (!this.config.enabled) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
// Dynamic sections always recompute
|
|
92
|
+
if (entry.type === "dynamic") {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
// Volatile keys always recompute
|
|
96
|
+
if (this.config.volatileKeys.includes(entry.key)) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
// Static section not yet computed
|
|
100
|
+
if (entry.cachedValue === undefined) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
// Static section with cached value — use cache
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.PromptSectionCache = PromptSectionCache;
|
|
108
|
+
//# sourceMappingURL=PromptSectionCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptSectionCache.js","sourceRoot":"","sources":["../../../src/core/PromptSectionCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Event, StructuredSchema, SessionState, AgentOptions, Guideline, Term, Template } from "../types";
|
|
2
2
|
import type { Route } from "./Route";
|
|
3
3
|
import type { Step } from "./Step";
|
|
4
|
+
import { PromptSectionCache } from "./PromptSectionCache";
|
|
4
5
|
export interface BuildResponsePromptParams<TContext = unknown, TData = unknown> {
|
|
5
6
|
route: Route<TContext, TData>;
|
|
6
7
|
currentStep: Step<TContext, TData>;
|
|
@@ -25,6 +26,8 @@ export interface BuildFallbackPromptParams<TContext = unknown, TData = unknown>
|
|
|
25
26
|
session?: SessionState<TData>;
|
|
26
27
|
}
|
|
27
28
|
export declare class ResponseEngine<TContext = unknown, TData = unknown> {
|
|
29
|
+
private readonly promptSectionCache?;
|
|
30
|
+
constructor(promptSectionCache?: PromptSectionCache | undefined);
|
|
28
31
|
responseSchemaForRoute(route: Route<TContext, TData>, currentStep?: Step<TContext, TData>, agentSchema?: StructuredSchema): StructuredSchema;
|
|
29
32
|
buildResponsePrompt(params: BuildResponsePromptParams<TContext, TData>): Promise<string>;
|
|
30
33
|
buildFallbackPrompt(params: BuildFallbackPromptParams<TContext, TData>): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseEngine.d.ts","sourceRoot":"","sources":["../../../src/core/ResponseEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,QAAQ,EACT,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ResponseEngine.d.ts","sourceRoot":"","sources":["../../../src/core/ResponseEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,QAAQ,EACT,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,WAAW,yBAAyB,CACxC,QAAQ,GAAG,OAAO,EAClB,KAAK,GAAG,OAAO;IAEf,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE7C,kBAAkB,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAE9B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5C,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IACzC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;CAC/B;AAED,qBAAa,cAAc,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAAnB,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;IAEpE,sBAAsB,CACpB,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC7B,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EACnC,WAAW,CAAC,EAAE,gBAAgB,GAC7B,gBAAgB;IAuCb,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC;IA0MZ,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC;CAcnB"}
|
|
@@ -4,6 +4,9 @@ exports.ResponseEngine = void 0;
|
|
|
4
4
|
const PromptComposer_1 = require("./PromptComposer");
|
|
5
5
|
const template_1 = require("../utils/template");
|
|
6
6
|
class ResponseEngine {
|
|
7
|
+
constructor(promptSectionCache) {
|
|
8
|
+
this.promptSectionCache = promptSectionCache;
|
|
9
|
+
}
|
|
7
10
|
responseSchemaForRoute(route, currentStep, agentSchema) {
|
|
8
11
|
const base = {
|
|
9
12
|
type: "object",
|
|
@@ -41,9 +44,9 @@ class ResponseEngine {
|
|
|
41
44
|
return base;
|
|
42
45
|
}
|
|
43
46
|
async buildResponsePrompt(params) {
|
|
44
|
-
const { route, currentStep, rules, prohibitions, directives, history,
|
|
47
|
+
const { route, currentStep, rules, prohibitions, directives, history, agentOptions, combinedGuidelines, combinedTerms, context, session, agentSchema, } = params;
|
|
45
48
|
const templateContext = (0, template_1.createTemplateContext)({ context, session, history });
|
|
46
|
-
const pc = new PromptComposer_1.PromptComposer(templateContext);
|
|
49
|
+
const pc = new PromptComposer_1.PromptComposer(templateContext, this.promptSectionCache);
|
|
47
50
|
// Create combined agent options with route overrides
|
|
48
51
|
let effectiveAgentOptions = agentOptions;
|
|
49
52
|
if (agentOptions && (route.identity || route.personality)) {
|
|
@@ -75,8 +78,8 @@ class ResponseEngine {
|
|
|
75
78
|
if (combinedTerms && combinedTerms.length > 0) {
|
|
76
79
|
await pc.addGlossary(combinedTerms);
|
|
77
80
|
}
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
// History is now passed natively via GenerateMessageInput.history
|
|
82
|
+
// instead of being embedded in the prompt string (Requirements 17.1, 17.2)
|
|
80
83
|
// Add data collection instructions - include ALL route fields, not just current step
|
|
81
84
|
// Collect all fields from route's required and optional fields
|
|
82
85
|
const allRouteFields = new Set();
|
|
@@ -201,9 +204,10 @@ class ResponseEngine {
|
|
|
201
204
|
async buildFallbackPrompt(params) {
|
|
202
205
|
const { history, agentOptions, terms, guidelines, context, session } = params;
|
|
203
206
|
const templateContext = (0, template_1.createTemplateContext)({ context, session, history });
|
|
204
|
-
const pc = new PromptComposer_1.PromptComposer(templateContext);
|
|
207
|
+
const pc = new PromptComposer_1.PromptComposer(templateContext, this.promptSectionCache);
|
|
205
208
|
await pc.addAgentMeta(agentOptions);
|
|
206
|
-
|
|
209
|
+
// History is now passed natively via GenerateMessageInput.history
|
|
210
|
+
// instead of being embedded in the prompt string (Requirements 17.1, 17.2)
|
|
207
211
|
await pc.addGlossary(terms);
|
|
208
212
|
await pc.addGuidelines(guidelines);
|
|
209
213
|
await pc.addKnowledgeBase(agentOptions.knowledgeBase);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseEngine.js","sourceRoot":"","sources":["../../../src/core/ResponseEngine.ts"],"names":[],"mappings":";;;AAWA,qDAAkD;
|
|
1
|
+
{"version":3,"file":"ResponseEngine.js","sourceRoot":"","sources":["../../../src/core/ResponseEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseModal.d.ts","sourceRoot":"","sources":["../../../src/core/ResponseModal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACR,aAAa,EACb,wBAAwB,EACxB,OAAO,EACP,YAAY,EACZ,OAAO,
|
|
1
|
+
{"version":3,"file":"ResponseModal.d.ts","sourceRoot":"","sources":["../../../src/core/ResponseModal.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,14 +51,14 @@ class ResponseModal {
|
|
|
51
51
|
this.agent = agent;
|
|
52
52
|
this.options = options;
|
|
53
53
|
// Initialize response engine
|
|
54
|
-
this.responseEngine = new ResponseEngine_1.ResponseEngine();
|
|
54
|
+
this.responseEngine = new ResponseEngine_1.ResponseEngine(this.agent.promptSectionCache);
|
|
55
55
|
// Initialize response pipeline with agent dependencies
|
|
56
56
|
this.responsePipeline = new ResponsePipeline_1.ResponsePipeline(this.agent.getAgentOptions(), () => this.agent.getRoutes(), // Pass a function to get routes dynamically
|
|
57
57
|
this.agent.getTools(), this.agent.getRoutingEngine(), this.agent.updateContext.bind(this.agent), this.agent.getUpdateDataMethod(), this.agent.updateCollectedData.bind(this.agent), this.getToolManager());
|
|
58
58
|
// Initialize batch executor for multi-step execution
|
|
59
59
|
this.batchExecutor = new BatchExecutor_1.BatchExecutor();
|
|
60
60
|
// Initialize batch prompt builder for combined prompts
|
|
61
|
-
this.batchPromptBuilder = new BatchPromptBuilder_1.BatchPromptBuilder();
|
|
61
|
+
this.batchPromptBuilder = new BatchPromptBuilder_1.BatchPromptBuilder(this.agent.promptSectionCache);
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Generate a non-streaming response using unified logic
|
|
@@ -1210,20 +1210,79 @@ class ResponseModal {
|
|
|
1210
1210
|
// Extract tool calls from AI response on final chunk
|
|
1211
1211
|
if (chunk.done && chunk.structured?.toolCalls) {
|
|
1212
1212
|
toolCalls = chunk.structured.toolCalls;
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1213
|
+
const toolManager = this.getToolManager();
|
|
1214
|
+
// Use concurrent execution for the initial batch of tool calls
|
|
1215
|
+
if (toolManager && typeof toolManager.executeWithConcurrency === 'function') {
|
|
1216
|
+
const toolCallRequests = toolCalls.map((tc, i) => ({
|
|
1217
|
+
id: `${tc.toolName}-${i}-${Date.now()}`,
|
|
1218
|
+
toolName: tc.toolName,
|
|
1219
|
+
arguments: tc.arguments,
|
|
1220
|
+
}));
|
|
1221
|
+
const historyEvents = (0, utils_1.historyToEvents)(history);
|
|
1222
|
+
try {
|
|
1223
|
+
for await (const update of toolManager.executeWithConcurrency({
|
|
1224
|
+
toolCalls: toolCallRequests,
|
|
1225
|
+
context,
|
|
1226
|
+
data: session.data,
|
|
1227
|
+
history: historyEvents,
|
|
1228
|
+
signal,
|
|
1229
|
+
route: selectedRoute,
|
|
1230
|
+
step: nextStep,
|
|
1231
|
+
})) {
|
|
1232
|
+
// Apply context updates
|
|
1233
|
+
if (update.contextUpdate) {
|
|
1234
|
+
try {
|
|
1235
|
+
await this.agent.updateContext(update.contextUpdate);
|
|
1236
|
+
}
|
|
1237
|
+
catch (error) {
|
|
1238
|
+
utils_1.logger.error(`[ResponseModal] Failed to update context from concurrent tool:`, error);
|
|
1239
|
+
}
|
|
1240
|
+
}
|
|
1241
|
+
// Apply data updates
|
|
1242
|
+
if (update.dataUpdate) {
|
|
1243
|
+
try {
|
|
1244
|
+
const updateDataMethod = this.agent.getUpdateDataMethod();
|
|
1245
|
+
session = await updateDataMethod(session, update.dataUpdate);
|
|
1246
|
+
}
|
|
1247
|
+
catch (error) {
|
|
1248
|
+
utils_1.logger.error(`[ResponseModal] Failed to update data from concurrent tool:`, error);
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
// Yield progress updates immediately
|
|
1252
|
+
if (update.progress) {
|
|
1253
|
+
yield {
|
|
1254
|
+
delta: '',
|
|
1255
|
+
accumulated: chunk.accumulated,
|
|
1256
|
+
done: false,
|
|
1257
|
+
session,
|
|
1258
|
+
toolCalls: undefined,
|
|
1259
|
+
isRouteComplete: false,
|
|
1260
|
+
metadata: { toolProgress: update.progress, toolCallId: update.toolCallId },
|
|
1261
|
+
};
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
utils_1.logger.debug(`[ResponseModal] Concurrent tool execution completed for ${toolCallRequests.length} tools`);
|
|
1265
|
+
}
|
|
1266
|
+
catch (error) {
|
|
1267
|
+
utils_1.logger.error(`[ResponseModal] Concurrent tool execution failed, falling back to sequential:`, error);
|
|
1268
|
+
// Fall back to the unified tool loop on failure
|
|
1269
|
+
const toolResult = await this.executeUnifiedToolLoop({
|
|
1270
|
+
toolCalls, context, session, history, selectedRoute,
|
|
1271
|
+
responsePrompt, availableTools, responseSchema, signal,
|
|
1272
|
+
});
|
|
1273
|
+
session = toolResult.session;
|
|
1274
|
+
toolCalls = toolResult.finalToolCalls;
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1277
|
+
else {
|
|
1278
|
+
// Fallback: no ToolManager or no executeWithConcurrency, use unified tool loop
|
|
1279
|
+
const toolResult = await this.executeUnifiedToolLoop({
|
|
1280
|
+
toolCalls, context, session, history, selectedRoute,
|
|
1281
|
+
responsePrompt, availableTools, responseSchema, signal,
|
|
1282
|
+
});
|
|
1283
|
+
session = toolResult.session;
|
|
1284
|
+
toolCalls = toolResult.finalToolCalls;
|
|
1285
|
+
}
|
|
1227
1286
|
}
|
|
1228
1287
|
// Extract collected data on final chunk
|
|
1229
1288
|
if (chunk.done && chunk.structured && nextStep.collect) {
|