@falai/agent 1.1.3 → 1.2.1
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 -2
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +8 -8
- 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 +120 -70
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/ResponsePipeline.d.ts +2 -1
- package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/cjs/core/ResponsePipeline.js +17 -19
- package/dist/cjs/core/ResponsePipeline.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 +5 -4
- 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 +7 -0
- package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.js +109 -19
- package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts +32 -0
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +160 -53
- package/dist/cjs/providers/GeminiProvider.js.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.d.ts +5 -0
- package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.js +65 -18
- package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.d.ts +5 -0
- package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.js +57 -18
- 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/ai.d.ts +2 -2
- package/dist/cjs/types/ai.d.ts.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 -2
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +8 -8
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +121 -71
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/ResponsePipeline.d.ts +2 -1
- package/dist/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/core/ResponsePipeline.js +18 -20
- package/dist/core/ResponsePipeline.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 +6 -5
- 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 +7 -0
- package/dist/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/providers/AnthropicProvider.js +109 -19
- package/dist/providers/AnthropicProvider.js.map +1 -1
- package/dist/providers/GeminiProvider.d.ts +32 -0
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +160 -53
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/OpenAIProvider.d.ts +5 -0
- package/dist/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/providers/OpenAIProvider.js +65 -18
- package/dist/providers/OpenAIProvider.js.map +1 -1
- package/dist/providers/OpenRouterProvider.d.ts +5 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/OpenRouterProvider.js +57 -18
- 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/ai.d.ts +2 -2
- package/dist/types/ai.d.ts.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 +7 -11
- package/src/core/ResponseModal.ts +133 -83
- package/src/core/ResponsePipeline.ts +22 -22
- package/src/core/RoutingEngine.ts +16 -5
- 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 +121 -24
- package/src/providers/GeminiProvider.ts +174 -54
- package/src/providers/OpenAIProvider.ts +77 -25
- package/src/providers/OpenRouterProvider.ts +68 -25
- package/src/types/agent.ts +45 -0
- package/src/types/ai.ts +2 -2
- package/src/types/compaction.ts +52 -0
- package/src/types/index.ts +35 -14
- package/src/types/tool.ts +108 -0
|
@@ -4,196 +4,308 @@ exports.PromptComposer = void 0;
|
|
|
4
4
|
const template_1 = require("../utils/template");
|
|
5
5
|
const condition_1 = require("../utils/condition");
|
|
6
6
|
class PromptComposer {
|
|
7
|
-
constructor(context = (0, template_1.createTemplateContext)({})) {
|
|
7
|
+
constructor(context = (0, template_1.createTemplateContext)({}), cache) {
|
|
8
8
|
this.parts = [];
|
|
9
|
+
this.instructionCounter = 0;
|
|
9
10
|
this.renderContext = context;
|
|
11
|
+
this.cache = cache ?? null;
|
|
10
12
|
}
|
|
11
13
|
// Specific, typed sections tailored to the framework
|
|
12
14
|
async addAgentMeta(agent) {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
15
|
+
const compute = async () => {
|
|
16
|
+
const lines = [];
|
|
17
|
+
lines.push("## Agent Identity");
|
|
18
|
+
lines.push(`You are "${agent.name}". Always refer to yourself by this name.`);
|
|
19
|
+
if (agent.identity) {
|
|
20
|
+
lines.push(await (0, template_1.render)(agent.identity, this.renderContext));
|
|
21
|
+
}
|
|
22
|
+
if (agent.personality) {
|
|
23
|
+
lines.push(`Communicate in the following style: ${await (0, template_1.render)(agent.personality, this.renderContext)}`);
|
|
24
|
+
}
|
|
25
|
+
if (agent.goal) {
|
|
26
|
+
lines.push(`Your primary goal: ${agent.goal}`);
|
|
27
|
+
}
|
|
28
|
+
if (agent.description) {
|
|
29
|
+
lines.push(`About you: ${agent.description}`);
|
|
30
|
+
}
|
|
31
|
+
if (agent.rules?.length) {
|
|
32
|
+
const renderedRules = await (0, template_1.renderMany)(agent.rules, this.renderContext);
|
|
33
|
+
lines.push(`You MUST always follow these rules:\n- ${renderedRules.join("\n- ")}`);
|
|
34
|
+
}
|
|
35
|
+
if (agent.prohibitions?.length) {
|
|
36
|
+
const renderedProhibitions = await (0, template_1.renderMany)(agent.prohibitions, this.renderContext);
|
|
37
|
+
lines.push(`You MUST NEVER do the following:\n- ${renderedProhibitions.join("\n- ")}`);
|
|
38
|
+
}
|
|
39
|
+
return lines.join("\n");
|
|
40
|
+
};
|
|
41
|
+
if (this.cache) {
|
|
42
|
+
this.cache.register("agentMeta", "static", compute);
|
|
31
43
|
}
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
44
|
+
else {
|
|
45
|
+
const result = await compute();
|
|
46
|
+
if (result)
|
|
47
|
+
this.parts.push(result);
|
|
35
48
|
}
|
|
36
|
-
this.parts.push(lines.join("\n"));
|
|
37
49
|
return this;
|
|
38
50
|
}
|
|
39
51
|
async addRoutingOverview(routes) {
|
|
40
52
|
return this.addActiveRoutes(routes);
|
|
41
53
|
}
|
|
42
54
|
async addScoringRules() {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
const compute = () => {
|
|
56
|
+
return `## Scoring Rules\n\n${[
|
|
57
|
+
"- 90-100: explicit keywords + clear intent",
|
|
58
|
+
"- 70-89: strong contextual evidence + relevant keywords",
|
|
59
|
+
"- 50-69: moderate relevance",
|
|
60
|
+
"- 30-49: weak connection or ambiguous",
|
|
61
|
+
"- 0-29: minimal/none",
|
|
62
|
+
"Return ONLY JSON matching the provided schema. Include scores for ALL routes.",
|
|
63
|
+
].join("\n")}`;
|
|
64
|
+
};
|
|
65
|
+
if (this.cache) {
|
|
66
|
+
this.cache.register("scoringRules", "static", compute);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.parts.push(compute());
|
|
70
|
+
}
|
|
51
71
|
return Promise.resolve(this);
|
|
52
72
|
}
|
|
53
73
|
async addInstruction(text) {
|
|
54
|
-
if (text)
|
|
55
|
-
|
|
74
|
+
if (!text)
|
|
75
|
+
return Promise.resolve(this);
|
|
76
|
+
const content = `## Instruction\n\n${text}`;
|
|
77
|
+
if (this.cache) {
|
|
78
|
+
const key = `instruction-${this.instructionCounter++}`;
|
|
79
|
+
this.cache.register(key, "dynamic", () => content);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.parts.push(content);
|
|
83
|
+
}
|
|
56
84
|
return Promise.resolve(this);
|
|
57
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* @deprecated History should flow through `GenerateMessageInput.history` natively.
|
|
88
|
+
* This method is kept for backward compatibility but will be removed in a future version.
|
|
89
|
+
*/
|
|
58
90
|
async addInteractionHistory(history, note) {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
91
|
+
const compute = () => {
|
|
92
|
+
const recent = history
|
|
93
|
+
.slice(-10)
|
|
94
|
+
.map((e) => `- ${JSON.stringify(e)}`)
|
|
95
|
+
.join("\n");
|
|
96
|
+
const header = note ? `${note}\n\n` : "";
|
|
97
|
+
return `## Interaction History\n\n${header}Recent conversation events:\n\n${recent}`;
|
|
98
|
+
};
|
|
99
|
+
if (this.cache) {
|
|
100
|
+
this.cache.register("interactionHistory", "dynamic", compute);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.parts.push(compute());
|
|
104
|
+
}
|
|
65
105
|
return Promise.resolve(this);
|
|
66
106
|
}
|
|
67
107
|
async addLastMessage(message) {
|
|
68
|
-
|
|
108
|
+
const compute = () => {
|
|
109
|
+
return `## Last Message\n\n${message}`;
|
|
110
|
+
};
|
|
111
|
+
if (this.cache) {
|
|
112
|
+
this.cache.register("lastMessage", "dynamic", compute);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
this.parts.push(compute());
|
|
116
|
+
}
|
|
69
117
|
return Promise.resolve(this);
|
|
70
118
|
}
|
|
71
119
|
async addGlossary(terms) {
|
|
72
120
|
if (!terms.length)
|
|
73
121
|
return this;
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
122
|
+
const compute = async () => {
|
|
123
|
+
const renderedTerms = await Promise.all(terms.map(async (t) => {
|
|
124
|
+
const name = await (0, template_1.render)(t.name, this.renderContext);
|
|
125
|
+
const description = await (0, template_1.render)(t.description, this.renderContext);
|
|
126
|
+
const synonyms = t.synonyms
|
|
127
|
+
? await (0, template_1.renderMany)(t.synonyms, this.renderContext)
|
|
128
|
+
: [];
|
|
129
|
+
const synonymText = synonyms.length > 0 ? ` (synonyms: ${synonyms.join(", ")})` : "";
|
|
130
|
+
return `- **${name}**${synonymText}: ${description}`;
|
|
131
|
+
}));
|
|
132
|
+
return `## Glossary\n\n${renderedTerms.join("\n")}`;
|
|
133
|
+
};
|
|
134
|
+
if (this.cache) {
|
|
135
|
+
this.cache.register("glossary", "static", compute);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const result = await compute();
|
|
139
|
+
if (result)
|
|
140
|
+
this.parts.push(result);
|
|
141
|
+
}
|
|
84
142
|
return this;
|
|
85
143
|
}
|
|
86
144
|
async addGuidelines(guidelines) {
|
|
87
145
|
const enabled = guidelines.filter((g) => g.enabled !== false);
|
|
88
146
|
if (!enabled.length)
|
|
89
147
|
return this;
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
148
|
+
const compute = async () => {
|
|
149
|
+
const evaluator = new condition_1.ConditionEvaluator(this.renderContext);
|
|
150
|
+
const activeGuidelines = [];
|
|
151
|
+
const allAIContextStrings = [];
|
|
152
|
+
// Evaluate guideline conditions to determine which are active
|
|
153
|
+
for (const guideline of enabled) {
|
|
154
|
+
if (guideline.condition) {
|
|
155
|
+
const evaluation = await evaluator.evaluateCondition(guideline.condition, 'AND');
|
|
156
|
+
// Collect AI context strings for prompt
|
|
157
|
+
allAIContextStrings.push(...evaluation.aiContextStrings);
|
|
158
|
+
// Include guideline if:
|
|
159
|
+
// 1. No programmatic conditions (only strings) - always active
|
|
160
|
+
// 2. Programmatic conditions evaluate to true
|
|
161
|
+
if (!evaluation.hasProgrammaticConditions || evaluation.programmaticResult) {
|
|
162
|
+
activeGuidelines.push(guideline);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// No condition means always active
|
|
103
167
|
activeGuidelines.push(guideline);
|
|
104
168
|
}
|
|
105
169
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const conditionStrings = (0, condition_1.extractAIContextStrings)(g.condition);
|
|
118
|
-
if (conditionStrings.length > 0) {
|
|
119
|
-
const conditionText = conditionStrings.join(" AND ");
|
|
120
|
-
return `- Guideline #${i + 1}: When ${conditionText}, then ${action}`;
|
|
170
|
+
if (!activeGuidelines.length && !allAIContextStrings.length)
|
|
171
|
+
return null;
|
|
172
|
+
const renderedGuidelines = await Promise.all(activeGuidelines.map(async (g, i) => {
|
|
173
|
+
const action = await (0, template_1.render)(g.action, this.renderContext);
|
|
174
|
+
if (g.condition) {
|
|
175
|
+
// Use AI context strings if available, otherwise render the condition
|
|
176
|
+
const conditionStrings = (0, condition_1.extractAIContextStrings)(g.condition);
|
|
177
|
+
if (conditionStrings.length > 0) {
|
|
178
|
+
const conditionText = conditionStrings.join(" AND ");
|
|
179
|
+
return `- Guideline #${i + 1}: When ${conditionText}, then ${action}`;
|
|
180
|
+
}
|
|
121
181
|
}
|
|
182
|
+
return `- Guideline #${i + 1}: ${action}`;
|
|
183
|
+
}));
|
|
184
|
+
// Add any additional AI context from inactive guidelines
|
|
185
|
+
if (allAIContextStrings.length > 0) {
|
|
186
|
+
const uniqueContextStrings = Array.from(new Set(allAIContextStrings));
|
|
187
|
+
const contextSection = `\n\n**Additional Context:** ${uniqueContextStrings.join(", ")}`;
|
|
188
|
+
return `## Guidelines\n\n${renderedGuidelines.join("\n")}${contextSection}`;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
return `## Guidelines\n\n${renderedGuidelines.join("\n")}`;
|
|
122
192
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
if (allAIContextStrings.length > 0) {
|
|
127
|
-
const uniqueContextStrings = Array.from(new Set(allAIContextStrings));
|
|
128
|
-
const contextSection = `\n\n**Additional Context:** ${uniqueContextStrings.join(", ")}`;
|
|
129
|
-
this.parts.push(`## Guidelines\n\n${renderedGuidelines.join("\n")}${contextSection}`);
|
|
193
|
+
};
|
|
194
|
+
if (this.cache) {
|
|
195
|
+
this.cache.register("guidelines", "dynamic", compute);
|
|
130
196
|
}
|
|
131
197
|
else {
|
|
132
|
-
|
|
198
|
+
const result = await compute();
|
|
199
|
+
if (result)
|
|
200
|
+
this.parts.push(result);
|
|
133
201
|
}
|
|
134
202
|
return this;
|
|
135
203
|
}
|
|
136
204
|
async addKnowledgeBase(agentKnowledgeBase, routeKnowledgeBase) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
205
|
+
const compute = () => {
|
|
206
|
+
// Merge agent and route knowledge bases (route takes precedence for conflicts)
|
|
207
|
+
const mergedKnowledge = {
|
|
208
|
+
...(agentKnowledgeBase || {}),
|
|
209
|
+
...(routeKnowledgeBase || {}),
|
|
210
|
+
};
|
|
211
|
+
// Only add section if there's knowledge data
|
|
212
|
+
if (Object.keys(mergedKnowledge).length > 0) {
|
|
213
|
+
return (0, template_1.formatKnowledgeBase)(mergedKnowledge, "Knowledge Base");
|
|
214
|
+
}
|
|
215
|
+
return null;
|
|
141
216
|
};
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
217
|
+
if (this.cache) {
|
|
218
|
+
this.cache.register("knowledgeBase", "static", compute);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
const result = compute();
|
|
222
|
+
if (result)
|
|
223
|
+
this.parts.push(result);
|
|
146
224
|
}
|
|
147
225
|
return Promise.resolve(this);
|
|
148
226
|
}
|
|
149
227
|
async addActiveRoutes(routes) {
|
|
150
228
|
if (!routes.length)
|
|
151
229
|
return this;
|
|
152
|
-
const
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
230
|
+
const compute = async () => {
|
|
231
|
+
const renderedRoutes = await Promise.all(routes.map(async (r, i) => {
|
|
232
|
+
const whenContextStrings = r.when ? (0, condition_1.extractAIContextStrings)(r.when) : [];
|
|
233
|
+
const conditions = whenContextStrings.length > 0
|
|
234
|
+
? `\n\n **Triggered when:** ${whenContextStrings.join(" OR ")}`
|
|
235
|
+
: "";
|
|
236
|
+
const desc = r.description
|
|
237
|
+
? `\n\n **Description:** ${r.description}`
|
|
238
|
+
: "";
|
|
239
|
+
const rules = await (0, template_1.renderMany)(r.getRules(), this.renderContext);
|
|
240
|
+
const prohibitions = await (0, template_1.renderMany)(r.getProhibitions(), this.renderContext);
|
|
241
|
+
const rulesInfo = rules.length > 0
|
|
242
|
+
? `\n\n **Rules:**\n ${rules.map((x) => ` - ${x}`).join("\n ")}`
|
|
243
|
+
: "";
|
|
244
|
+
const prohibitionsInfo = prohibitions.length > 0
|
|
245
|
+
? `\n\n **Prohibitions:**\n ${prohibitions
|
|
246
|
+
.map((x) => ` - ${x}`)
|
|
247
|
+
.join("\n ")}`
|
|
248
|
+
: "";
|
|
249
|
+
return `### Route ${i + 1}: ${r.title}${desc}${conditions}${rulesInfo}${prohibitionsInfo}`;
|
|
250
|
+
}));
|
|
251
|
+
return `## Available Routes\n\n${renderedRoutes.join("\n\n")}`;
|
|
252
|
+
};
|
|
253
|
+
if (this.cache) {
|
|
254
|
+
this.cache.register("activeRoutes", "static", compute);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
const result = await compute();
|
|
258
|
+
if (result)
|
|
259
|
+
this.parts.push(result);
|
|
260
|
+
}
|
|
173
261
|
return this;
|
|
174
262
|
}
|
|
175
263
|
async addDirectives(directives) {
|
|
176
264
|
if (!directives?.length)
|
|
177
265
|
return this;
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
266
|
+
const compute = () => {
|
|
267
|
+
return `## Directives\n\nAddress concisely:\n\n${directives
|
|
268
|
+
.map((d) => `- ${d}`)
|
|
269
|
+
.join("\n")}`;
|
|
270
|
+
};
|
|
271
|
+
if (this.cache) {
|
|
272
|
+
this.cache.register("directives", "dynamic", compute);
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
this.parts.push(compute());
|
|
276
|
+
}
|
|
181
277
|
return Promise.resolve(this);
|
|
182
278
|
}
|
|
183
279
|
async addAvailableTools(tools) {
|
|
184
280
|
if (!tools?.length)
|
|
185
281
|
return this;
|
|
186
|
-
const
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
282
|
+
const compute = () => {
|
|
283
|
+
const renderedTools = tools.map((tool, i) => {
|
|
284
|
+
const toolName = tool.name || tool.id;
|
|
285
|
+
const desc = tool.description
|
|
286
|
+
? `\n Description: ${tool.description}`
|
|
287
|
+
: "";
|
|
288
|
+
return `### Tool ${i + 1}: ${toolName}${desc}`;
|
|
289
|
+
});
|
|
290
|
+
return `## Available Tools\n\n${renderedTools.join("\n\n")}`;
|
|
291
|
+
};
|
|
292
|
+
if (this.cache) {
|
|
293
|
+
this.cache.register("availableTools", "dynamic", compute);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
this.parts.push(compute());
|
|
297
|
+
}
|
|
194
298
|
return Promise.resolve(this);
|
|
195
299
|
}
|
|
196
300
|
async build() {
|
|
301
|
+
if (this.cache) {
|
|
302
|
+
const sections = await this.cache.resolveAll();
|
|
303
|
+
const prompt = sections
|
|
304
|
+
.filter((s) => s != null && s !== "")
|
|
305
|
+
.join("\n\n")
|
|
306
|
+
.trim();
|
|
307
|
+
return prompt;
|
|
308
|
+
}
|
|
197
309
|
const prompt = this.parts.filter(Boolean).join("\n\n").trim();
|
|
198
310
|
return Promise.resolve(prompt);
|
|
199
311
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptComposer.js","sourceRoot":"","sources":["../../../src/core/PromptComposer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PromptComposer.js","sourceRoot":"","sources":["../../../src/core/PromptComposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromptSectionCache - Memoizes static prompt sections across turns,
|
|
3
|
+
* recomputing only dynamic sections per-turn.
|
|
4
|
+
*
|
|
5
|
+
* Static sections (agent identity, glossary, knowledge base, route descriptions)
|
|
6
|
+
* are cached after first computation. Dynamic sections (current step context,
|
|
7
|
+
* directives, available tools) are recomputed on every resolveAll() call.
|
|
8
|
+
*/
|
|
9
|
+
/** Section type: static sections are cached, dynamic sections recompute every turn */
|
|
10
|
+
export type PromptSectionType = "static" | "dynamic";
|
|
11
|
+
/** Configuration for prompt section caching behavior */
|
|
12
|
+
export interface PromptCacheConfig {
|
|
13
|
+
/** Whether to enable section memoization (default: true) */
|
|
14
|
+
enabled?: boolean;
|
|
15
|
+
/** Keys of sections that should always recompute every turn, even if registered as static */
|
|
16
|
+
volatileKeys?: string[];
|
|
17
|
+
}
|
|
18
|
+
/** Compute function that produces a section's content */
|
|
19
|
+
export type SectionCompute = () => string | null | Promise<string | null>;
|
|
20
|
+
export declare class PromptSectionCache {
|
|
21
|
+
private sections;
|
|
22
|
+
private insertionOrder;
|
|
23
|
+
private config;
|
|
24
|
+
constructor(config?: PromptCacheConfig);
|
|
25
|
+
/**
|
|
26
|
+
* Register a section with its compute function and type.
|
|
27
|
+
* Sections are resolved in registration order during resolveAll().
|
|
28
|
+
*/
|
|
29
|
+
register(key: string, type: PromptSectionType, compute: SectionCompute): void;
|
|
30
|
+
/**
|
|
31
|
+
* Get a section's value. Static sections return cached value if available;
|
|
32
|
+
* dynamic sections always recompute.
|
|
33
|
+
*/
|
|
34
|
+
get(key: string): Promise<string | null>;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve all registered sections in registration order.
|
|
37
|
+
* Static sections use cache when available; dynamic sections always recompute.
|
|
38
|
+
*/
|
|
39
|
+
resolveAll(): Promise<(string | null)[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Invalidate a specific section's cache, forcing recomputation on next resolve.
|
|
42
|
+
*/
|
|
43
|
+
invalidate(key: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Invalidate all cached sections (e.g., on session change or /clear).
|
|
46
|
+
*/
|
|
47
|
+
invalidateAll(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Check whether a section has a cached value.
|
|
50
|
+
*/
|
|
51
|
+
has(key: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Determine if a section needs recomputation.
|
|
54
|
+
*/
|
|
55
|
+
private shouldRecompute;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=PromptSectionCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptSectionCache.d.ts","sourceRoot":"","sources":["../../../src/core/PromptSectionCache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAC9B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAW1E,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,CAAC,EAAE,iBAAiB;IAOtC;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAQ7E;;;OAGG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAc9C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAQ9C;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAO7B;;OAEG;IACH,aAAa,IAAI,IAAI;IAMrB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAoB1B"}
|