fawn-memory 0.0.8 → 0.0.10
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 +3 -3
- package/dist/agent/index.d.ts +36 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +36 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/loop.d.ts +35 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +154 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/parser.d.ts +23 -0
- package/dist/agent/parser.d.ts.map +1 -0
- package/dist/agent/parser.js +168 -0
- package/dist/agent/parser.js.map +1 -0
- package/dist/agent/registry.d.ts +28 -0
- package/dist/agent/registry.d.ts.map +1 -0
- package/dist/agent/registry.js +96 -0
- package/dist/agent/registry.js.map +1 -0
- package/dist/agent/types.d.ts +81 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +6 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/knowpro/conversation.d.ts +11 -4
- package/dist/knowpro/conversation.d.ts.map +1 -1
- package/dist/knowpro/conversation.js +15 -10
- package/dist/knowpro/conversation.js.map +1 -1
- package/dist/knowpro/search.d.ts.map +1 -1
- package/dist/knowpro/search.js +4 -2
- package/dist/knowpro/search.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# fawn
|
|
1
|
+
# fawn-memory
|
|
2
2
|
|
|
3
3
|
TypeScript toolkit for extracting structured knowledge from text and querying it with natural language. Built on TypeChat, with an in-memory semantic index and a simple REPL for exploration.
|
|
4
4
|
|
|
@@ -13,7 +13,7 @@ TypeScript toolkit for extracting structured knowledge from text and querying it
|
|
|
13
13
|
## Install
|
|
14
14
|
|
|
15
15
|
```sh
|
|
16
|
-
|
|
16
|
+
npm install fawn-memory
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Quickstart (library)
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
createConversation,
|
|
24
24
|
createMessage,
|
|
25
25
|
createInMemoryStorageProvider
|
|
26
|
-
} from "fawn";
|
|
26
|
+
} from "fawn-memory";
|
|
27
27
|
|
|
28
28
|
const storage = createInMemoryStorageProvider();
|
|
29
29
|
const messages = storage.createMessageCollection();
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent module - reusable agent loop with tool support
|
|
3
|
+
*
|
|
4
|
+
* This module provides a generic agent loop that:
|
|
5
|
+
* - Iteratively calls an LLM with tool documentation
|
|
6
|
+
* - Parses tool calls from LLM responses
|
|
7
|
+
* - Executes tools and feeds results back to the LLM
|
|
8
|
+
* - Continues until a final response is reached
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { createToolRegistry, createAgent } from 'fawn/agent';
|
|
13
|
+
*
|
|
14
|
+
* const registry = createToolRegistry();
|
|
15
|
+
* registry.register({
|
|
16
|
+
* name: 'my_tool',
|
|
17
|
+
* description: 'Does something',
|
|
18
|
+
* parameters: { input: { type: 'string', description: 'The input' } },
|
|
19
|
+
* execute: async (args) => ({ success: true, output: `Got: ${args.input}` })
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const agent = createAgent(registry, languageModel, (toolDocs) => `
|
|
23
|
+
* You are a helpful assistant.
|
|
24
|
+
* ${toolDocs}
|
|
25
|
+
* `);
|
|
26
|
+
*
|
|
27
|
+
* const response = await agent.processMessage('Hello!');
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export type { Tool, ToolResult, ParameterSpec, ParsedToolCall, ParseResult, ChatMessage, AgentLogger, AgentLoopOptions, SystemPromptBuilder } from './types.js';
|
|
31
|
+
export { createToolRegistry } from './registry.js';
|
|
32
|
+
export type { ToolRegistry } from './registry.js';
|
|
33
|
+
export { parseToolCalls, formatToolResults } from './parser.js';
|
|
34
|
+
export { runAgentLoop, createAgent } from './loop.js';
|
|
35
|
+
export type { Agent } from './loop.js';
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,YAAY,EACV,IAAI,EACJ,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent module - reusable agent loop with tool support
|
|
3
|
+
*
|
|
4
|
+
* This module provides a generic agent loop that:
|
|
5
|
+
* - Iteratively calls an LLM with tool documentation
|
|
6
|
+
* - Parses tool calls from LLM responses
|
|
7
|
+
* - Executes tools and feeds results back to the LLM
|
|
8
|
+
* - Continues until a final response is reached
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { createToolRegistry, createAgent } from 'fawn/agent';
|
|
13
|
+
*
|
|
14
|
+
* const registry = createToolRegistry();
|
|
15
|
+
* registry.register({
|
|
16
|
+
* name: 'my_tool',
|
|
17
|
+
* description: 'Does something',
|
|
18
|
+
* parameters: { input: { type: 'string', description: 'The input' } },
|
|
19
|
+
* execute: async (args) => ({ success: true, output: `Got: ${args.input}` })
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const agent = createAgent(registry, languageModel, (toolDocs) => `
|
|
23
|
+
* You are a helpful assistant.
|
|
24
|
+
* ${toolDocs}
|
|
25
|
+
* `);
|
|
26
|
+
*
|
|
27
|
+
* const response = await agent.processMessage('Hello!');
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
// Tool registry
|
|
31
|
+
export { createToolRegistry } from './registry.js';
|
|
32
|
+
// Parser utilities
|
|
33
|
+
export { parseToolCalls, formatToolResults } from './parser.js';
|
|
34
|
+
// Agent loop
|
|
35
|
+
export { runAgentLoop, createAgent } from './loop.js';
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAeH,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,aAAa;AACb,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent reasoning loop.
|
|
3
|
+
* Iteratively calls LLM, parses tool calls, executes tools, until final response.
|
|
4
|
+
*/
|
|
5
|
+
import type { TypeChatLanguageModel } from 'typechat';
|
|
6
|
+
import type { ToolRegistry } from './registry.js';
|
|
7
|
+
import type { AgentLoopOptions, SystemPromptBuilder } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Run the agent loop for a single user message.
|
|
10
|
+
*
|
|
11
|
+
* @param userMessage - The user's message
|
|
12
|
+
* @param toolRegistry - Available tools
|
|
13
|
+
* @param languageModel - LLM to use for completions
|
|
14
|
+
* @param systemPromptBuilder - Function to build system prompt from tool docs
|
|
15
|
+
* @param options - Optional configuration
|
|
16
|
+
* @returns The final response text
|
|
17
|
+
*/
|
|
18
|
+
export declare function runAgentLoop(userMessage: string, toolRegistry: ToolRegistry, languageModel: TypeChatLanguageModel, systemPromptBuilder?: SystemPromptBuilder, options?: AgentLoopOptions): Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Agent that can process messages
|
|
21
|
+
*/
|
|
22
|
+
export interface Agent {
|
|
23
|
+
/** Process a user message and return a response */
|
|
24
|
+
processMessage(userMessage: string): Promise<string>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create an agent bound to a tool registry and language model
|
|
28
|
+
*
|
|
29
|
+
* @param toolRegistry - The tools available to the agent
|
|
30
|
+
* @param languageModel - The LLM to use for completions
|
|
31
|
+
* @param systemPromptBuilder - Function to build system prompt from tool docs
|
|
32
|
+
* @param options - Optional configuration
|
|
33
|
+
*/
|
|
34
|
+
export declare function createAgent(toolRegistry: ToolRegistry, languageModel: TypeChatLanguageModel, systemPromptBuilder?: SystemPromptBuilder, options?: AgentLoopOptions): Agent;
|
|
35
|
+
//# sourceMappingURL=loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAe,gBAAgB,EAAE,mBAAmB,EAAc,MAAM,YAAY,CAAC;AAyEjG;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,qBAAqB,EACpC,mBAAmB,GAAE,mBAAgD,EACrE,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAqEjB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,mDAAmD;IACnD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,qBAAqB,EACpC,mBAAmB,GAAE,mBAAgD,EACrE,OAAO,GAAE,gBAAqB,GAC7B,KAAK,CAMP"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent reasoning loop.
|
|
3
|
+
* Iteratively calls LLM, parses tool calls, executes tools, until final response.
|
|
4
|
+
*/
|
|
5
|
+
import { parseToolCalls, formatToolResults } from './parser.js';
|
|
6
|
+
/** Maximum iterations to prevent runaway loops */
|
|
7
|
+
const DEFAULT_MAX_ITERATIONS = 10;
|
|
8
|
+
/**
|
|
9
|
+
* Format a concise status message for a tool call
|
|
10
|
+
*/
|
|
11
|
+
function formatToolStatus(toolName, args) {
|
|
12
|
+
// Common tool patterns - customize based on tool name
|
|
13
|
+
switch (toolName) {
|
|
14
|
+
case 'read_file':
|
|
15
|
+
case 'readFile':
|
|
16
|
+
return `Reading ${shortenPath(String(args.path || args.file || ''))}`;
|
|
17
|
+
case 'write_file':
|
|
18
|
+
case 'writeFile':
|
|
19
|
+
return `Writing ${shortenPath(String(args.path || args.file || ''))}`;
|
|
20
|
+
case 'edit_file':
|
|
21
|
+
case 'editFile':
|
|
22
|
+
return `Editing ${shortenPath(String(args.path || args.file || ''))}`;
|
|
23
|
+
case 'list_dir':
|
|
24
|
+
case 'listDir':
|
|
25
|
+
case 'ls':
|
|
26
|
+
return `Listing ${shortenPath(String(args.path || args.dir || '.'))}`;
|
|
27
|
+
case 'search':
|
|
28
|
+
case 'grep':
|
|
29
|
+
return `Searching for "${String(args.pattern || args.query || '').slice(0, 30)}"`;
|
|
30
|
+
case 'shell':
|
|
31
|
+
case 'run':
|
|
32
|
+
case 'exec':
|
|
33
|
+
return `Running: ${String(args.command || args.cmd || '').slice(0, 40)}`;
|
|
34
|
+
case 'fetch_issue':
|
|
35
|
+
case 'fetchIssue':
|
|
36
|
+
return `Fetching issue #${args.issue_number || args.issueNumber || ''}`;
|
|
37
|
+
case 'create_branch':
|
|
38
|
+
case 'createBranch':
|
|
39
|
+
return `Creating branch: ${args.name || args.branch || ''}`;
|
|
40
|
+
case 'commit':
|
|
41
|
+
return `Committing: ${String(args.message || '').slice(0, 40)}`;
|
|
42
|
+
case 'push':
|
|
43
|
+
return `Pushing to remote`;
|
|
44
|
+
case 'create_pr':
|
|
45
|
+
case 'createPR':
|
|
46
|
+
return `Creating pull request`;
|
|
47
|
+
default:
|
|
48
|
+
// Generic format for unknown tools
|
|
49
|
+
const argSummary = Object.entries(args)
|
|
50
|
+
.slice(0, 2)
|
|
51
|
+
.map(([k, v]) => `${k}=${String(v).slice(0, 20)}`)
|
|
52
|
+
.join(', ');
|
|
53
|
+
return `${toolName}${argSummary ? `: ${argSummary}` : ''}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Shorten a file path for display
|
|
58
|
+
*/
|
|
59
|
+
function shortenPath(path) {
|
|
60
|
+
if (!path)
|
|
61
|
+
return '';
|
|
62
|
+
// Get just filename or last 2 parts
|
|
63
|
+
const parts = path.replace(/\\/g, '/').split('/').filter(Boolean);
|
|
64
|
+
if (parts.length <= 2)
|
|
65
|
+
return parts.join('/');
|
|
66
|
+
return '.../' + parts.slice(-2).join('/');
|
|
67
|
+
}
|
|
68
|
+
/** Default system prompt builder - just includes tool docs */
|
|
69
|
+
const defaultSystemPromptBuilder = (toolDocs) => {
|
|
70
|
+
return `You are a helpful AI assistant with access to tools.
|
|
71
|
+
|
|
72
|
+
${toolDocs}`;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Run the agent loop for a single user message.
|
|
76
|
+
*
|
|
77
|
+
* @param userMessage - The user's message
|
|
78
|
+
* @param toolRegistry - Available tools
|
|
79
|
+
* @param languageModel - LLM to use for completions
|
|
80
|
+
* @param systemPromptBuilder - Function to build system prompt from tool docs
|
|
81
|
+
* @param options - Optional configuration
|
|
82
|
+
* @returns The final response text
|
|
83
|
+
*/
|
|
84
|
+
export async function runAgentLoop(userMessage, toolRegistry, languageModel, systemPromptBuilder = defaultSystemPromptBuilder, options = {}) {
|
|
85
|
+
const maxIterations = options.maxIterations ?? DEFAULT_MAX_ITERATIONS;
|
|
86
|
+
const logger = options.logger;
|
|
87
|
+
const conversationHistory = options.conversationHistory ?? [];
|
|
88
|
+
// Build conversation history
|
|
89
|
+
const toolDocs = toolRegistry.generateToolDocs();
|
|
90
|
+
const systemPrompt = systemPromptBuilder(toolDocs);
|
|
91
|
+
const messages = [
|
|
92
|
+
{ role: 'system', content: systemPrompt },
|
|
93
|
+
...conversationHistory,
|
|
94
|
+
{ role: 'user', content: userMessage }
|
|
95
|
+
];
|
|
96
|
+
for (let iteration = 0; iteration < maxIterations; iteration++) {
|
|
97
|
+
logger?.debug(`Agent loop iteration ${iteration + 1}`);
|
|
98
|
+
// Call LLM
|
|
99
|
+
const result = await languageModel.complete(messages.map(m => ({ role: m.role, content: m.content })));
|
|
100
|
+
if (!result.success) {
|
|
101
|
+
logger?.error('LLM completion failed', { error: result.message });
|
|
102
|
+
throw new Error(`LLM error: ${result.message}`);
|
|
103
|
+
}
|
|
104
|
+
const response = result.data;
|
|
105
|
+
logger?.debug('LLM response received', { length: response.length });
|
|
106
|
+
logger?.debug('LLM raw response', { response: response.slice(0, 500) });
|
|
107
|
+
// Parse tool calls
|
|
108
|
+
const { text, toolCalls } = parseToolCalls(response);
|
|
109
|
+
// No tool calls? Return final response
|
|
110
|
+
if (toolCalls.length === 0) {
|
|
111
|
+
logger?.info('Agent completed');
|
|
112
|
+
return text || response;
|
|
113
|
+
}
|
|
114
|
+
// Only execute the first tool call to enforce step-by-step execution
|
|
115
|
+
const call = toolCalls[0];
|
|
116
|
+
const status = formatToolStatus(call.name, call.arguments);
|
|
117
|
+
logger?.info(status);
|
|
118
|
+
if (toolCalls.length > 1) {
|
|
119
|
+
logger?.debug(`Ignoring ${toolCalls.length - 1} additional tool calls to enforce step-by-step execution`);
|
|
120
|
+
}
|
|
121
|
+
// Execute single tool
|
|
122
|
+
logger?.debug(`Executing tool: ${call.name}`, { arguments: call.arguments });
|
|
123
|
+
const toolResult = await toolRegistry.execute(call);
|
|
124
|
+
if (toolResult.result.success) {
|
|
125
|
+
logger?.debug(`Tool ${call.name} succeeded`, { output: toolResult.result.output.slice(0, 100) });
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
logger?.info(`Tool ${call.name} failed: ${toolResult.result.error}`);
|
|
129
|
+
}
|
|
130
|
+
const results = [toolResult];
|
|
131
|
+
// Add assistant response and tool results to history
|
|
132
|
+
messages.push({ role: 'assistant', content: response });
|
|
133
|
+
messages.push({ role: 'user', content: formatToolResults(results) });
|
|
134
|
+
}
|
|
135
|
+
// Max iterations exceeded
|
|
136
|
+
logger?.warn('Agent loop exceeded max iterations');
|
|
137
|
+
throw new Error(`Agent exceeded maximum iterations (${maxIterations})`);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Create an agent bound to a tool registry and language model
|
|
141
|
+
*
|
|
142
|
+
* @param toolRegistry - The tools available to the agent
|
|
143
|
+
* @param languageModel - The LLM to use for completions
|
|
144
|
+
* @param systemPromptBuilder - Function to build system prompt from tool docs
|
|
145
|
+
* @param options - Optional configuration
|
|
146
|
+
*/
|
|
147
|
+
export function createAgent(toolRegistry, languageModel, systemPromptBuilder = defaultSystemPromptBuilder, options = {}) {
|
|
148
|
+
return {
|
|
149
|
+
async processMessage(userMessage) {
|
|
150
|
+
return runAgentLoop(userMessage, toolRegistry, languageModel, systemPromptBuilder, options);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,kDAAkD;AAClD,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,IAA6B;IACvE,sDAAsD;IACtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,IAAI;YACP,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACxE,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAO,kBAAkB,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;QACpF,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,MAAM;YACT,OAAO,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3E,KAAK,aAAa,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,mBAAmB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC1E,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc;YACjB,OAAO,oBAAoB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC9D,KAAK,QAAQ;YACX,OAAO,eAAe,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM;YACT,OAAO,mBAAmB,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,uBAAuB,CAAC;QACjC;YACE,mCAAmC;YACnC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;iBACpC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;iBACjD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,oCAAoC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,8DAA8D;AAC9D,MAAM,0BAA0B,GAAwB,CAAC,QAAgB,EAAE,EAAE;IAC3E,OAAO;;EAEP,QAAQ,EAAE,CAAC;AACb,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,YAA0B,EAC1B,aAAoC,EACpC,sBAA2C,0BAA0B,EACrE,UAA4B,EAAE;IAE9B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAC;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAE9D,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAkB;QAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;QACzC,GAAG,mBAAmB;QACtB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;KACvC,CAAC;IAEF,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;QAC/D,MAAM,EAAE,KAAK,CAAC,wBAAwB,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;QAEvD,WAAW;QACX,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CACzC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAC1D,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,MAAM,EAAE,KAAK,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,MAAM,EAAE,KAAK,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAExE,mBAAmB;QACnB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAErD,uCAAuC;QACvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,OAAO,IAAI,IAAI,QAAQ,CAAC;QAC1B,CAAC;QAED,qEAAqE;QACrE,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,KAAK,CAAC,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAC5G,CAAC;QAED,sBAAsB;QACtB,MAAM,EAAE,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,YAAY,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,YAAY,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;QAE7B,qDAAqD;QACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,0BAA0B;IAC1B,MAAM,EAAE,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACnD,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,GAAG,CAAC,CAAC;AAC1E,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,YAA0B,EAC1B,aAAoC,EACpC,sBAA2C,0BAA0B,EACrE,UAA4B,EAAE;IAE9B,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,WAAmB;YACtC,OAAO,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XML tool call parser.
|
|
3
|
+
* Parses <tool_call> tags from LLM responses.
|
|
4
|
+
*/
|
|
5
|
+
import type { ParseResult, ToolResult } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parse tool calls from LLM response text.
|
|
8
|
+
*
|
|
9
|
+
* Supports multiple tag formats:
|
|
10
|
+
* - <tool_call>...</tool_call>
|
|
11
|
+
* - <toolcall>...</toolcall>
|
|
12
|
+
* - <tool-call>...</tool-call>
|
|
13
|
+
* - <invoke>...</invoke>
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseToolCalls(response: string): ParseResult;
|
|
16
|
+
/**
|
|
17
|
+
* Format tool results as XML for the next LLM turn
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatToolResults(results: Array<{
|
|
20
|
+
name: string;
|
|
21
|
+
result: ToolResult;
|
|
22
|
+
}>): string;
|
|
23
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/agent/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AAwH1E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAgD5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,GACnD,MAAM,CAUR"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XML tool call parser.
|
|
3
|
+
* Parses <tool_call> tags from LLM responses.
|
|
4
|
+
*/
|
|
5
|
+
/** Supported opening tags for tool calls */
|
|
6
|
+
const TOOL_CALL_OPEN_TAGS = ['<tool_call>', '<toolcall>', '<tool-call>', '<invoke>'];
|
|
7
|
+
/** Map opening tags to their closing counterparts */
|
|
8
|
+
const CLOSE_TAG_MAP = {
|
|
9
|
+
'<tool_call>': '</tool_call>',
|
|
10
|
+
'<toolcall>': '</toolcall>',
|
|
11
|
+
'<tool-call>': '</tool-call>',
|
|
12
|
+
'<invoke>': '</invoke>'
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Find the first matching open tag in the text
|
|
16
|
+
*/
|
|
17
|
+
function findFirstOpenTag(text) {
|
|
18
|
+
let earliest = null;
|
|
19
|
+
for (const tag of TOOL_CALL_OPEN_TAGS) {
|
|
20
|
+
const index = text.indexOf(tag);
|
|
21
|
+
if (index !== -1 && (earliest === null || index < earliest.index)) {
|
|
22
|
+
earliest = { index, tag };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return earliest;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Extract JSON from inside a tool call tag
|
|
29
|
+
*/
|
|
30
|
+
function extractJson(content) {
|
|
31
|
+
// Try to find JSON object in the content
|
|
32
|
+
const trimmed = content.trim();
|
|
33
|
+
// Remove markdown code blocks if present
|
|
34
|
+
let jsonStr = trimmed;
|
|
35
|
+
if (jsonStr.startsWith('```')) {
|
|
36
|
+
const endFence = jsonStr.indexOf('```', 3);
|
|
37
|
+
if (endFence !== -1) {
|
|
38
|
+
// Skip the first line (```json or similar)
|
|
39
|
+
const firstNewline = jsonStr.indexOf('\n');
|
|
40
|
+
jsonStr = jsonStr.slice(firstNewline + 1, endFence).trim();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Find the JSON object
|
|
44
|
+
const jsonStart = jsonStr.indexOf('{');
|
|
45
|
+
if (jsonStart === -1) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
// Find matching closing brace
|
|
49
|
+
let depth = 0;
|
|
50
|
+
let inString = false;
|
|
51
|
+
let escapeNext = false;
|
|
52
|
+
let jsonEnd = -1;
|
|
53
|
+
for (let i = jsonStart; i < jsonStr.length; i++) {
|
|
54
|
+
const char = jsonStr[i];
|
|
55
|
+
if (escapeNext) {
|
|
56
|
+
escapeNext = false;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (char === '\\' && inString) {
|
|
60
|
+
escapeNext = true;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (char === '"') {
|
|
64
|
+
inString = !inString;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (!inString) {
|
|
68
|
+
if (char === '{') {
|
|
69
|
+
depth++;
|
|
70
|
+
}
|
|
71
|
+
else if (char === '}') {
|
|
72
|
+
depth--;
|
|
73
|
+
if (depth === 0) {
|
|
74
|
+
jsonEnd = i + 1;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (jsonEnd === -1) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
const json = JSON.parse(jsonStr.slice(jsonStart, jsonEnd));
|
|
85
|
+
// Handle OpenAI function format: { function: { name, arguments } }
|
|
86
|
+
if (json.function && typeof json.function === 'object') {
|
|
87
|
+
const fn = json.function;
|
|
88
|
+
const args = typeof fn.arguments === 'string'
|
|
89
|
+
? JSON.parse(fn.arguments)
|
|
90
|
+
: fn.arguments || {};
|
|
91
|
+
return { name: fn.name, arguments: args };
|
|
92
|
+
}
|
|
93
|
+
// Standard format: { name, arguments }
|
|
94
|
+
if (typeof json.name === 'string') {
|
|
95
|
+
const args = typeof json.arguments === 'string'
|
|
96
|
+
? JSON.parse(json.arguments)
|
|
97
|
+
: json.arguments || {};
|
|
98
|
+
return { name: json.name, arguments: args };
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Parse tool calls from LLM response text.
|
|
108
|
+
*
|
|
109
|
+
* Supports multiple tag formats:
|
|
110
|
+
* - <tool_call>...</tool_call>
|
|
111
|
+
* - <toolcall>...</toolcall>
|
|
112
|
+
* - <tool-call>...</tool-call>
|
|
113
|
+
* - <invoke>...</invoke>
|
|
114
|
+
*/
|
|
115
|
+
export function parseToolCalls(response) {
|
|
116
|
+
const textParts = [];
|
|
117
|
+
const toolCalls = [];
|
|
118
|
+
let remaining = response;
|
|
119
|
+
while (true) {
|
|
120
|
+
const openTag = findFirstOpenTag(remaining);
|
|
121
|
+
if (!openTag) {
|
|
122
|
+
// No more tool calls, rest is text
|
|
123
|
+
if (remaining.trim()) {
|
|
124
|
+
textParts.push(remaining.trim());
|
|
125
|
+
}
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
// Text before the tag
|
|
129
|
+
const before = remaining.slice(0, openTag.index).trim();
|
|
130
|
+
if (before) {
|
|
131
|
+
textParts.push(before);
|
|
132
|
+
}
|
|
133
|
+
// Find closing tag
|
|
134
|
+
const closeTag = CLOSE_TAG_MAP[openTag.tag];
|
|
135
|
+
const afterOpen = remaining.slice(openTag.index + openTag.tag.length);
|
|
136
|
+
const closeIndex = afterOpen.indexOf(closeTag);
|
|
137
|
+
if (closeIndex === -1) {
|
|
138
|
+
// No closing tag found, treat rest as text
|
|
139
|
+
textParts.push(remaining.slice(openTag.index).trim());
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
// Extract content between tags
|
|
143
|
+
const content = afterOpen.slice(0, closeIndex);
|
|
144
|
+
const parsed = extractJson(content);
|
|
145
|
+
if (parsed) {
|
|
146
|
+
toolCalls.push(parsed);
|
|
147
|
+
}
|
|
148
|
+
// Continue after the closing tag
|
|
149
|
+
remaining = afterOpen.slice(closeIndex + closeTag.length);
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
text: textParts.join('\n'),
|
|
153
|
+
toolCalls
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Format tool results as XML for the next LLM turn
|
|
158
|
+
*/
|
|
159
|
+
export function formatToolResults(results) {
|
|
160
|
+
const parts = ['[Tool Results]'];
|
|
161
|
+
for (const { name, result } of results) {
|
|
162
|
+
const status = result.success ? 'success' : 'error';
|
|
163
|
+
const content = result.success ? result.output : (result.error || result.output);
|
|
164
|
+
parts.push(`<tool_result name="${name}" status="${status}">\n${content}\n</tool_result>`);
|
|
165
|
+
}
|
|
166
|
+
return parts.join('\n\n');
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/agent/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool registry.
|
|
3
|
+
* Manages available tools and generates system prompt documentation.
|
|
4
|
+
*/
|
|
5
|
+
import type { Tool, ToolResult, ParsedToolCall } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Tool registry interface
|
|
8
|
+
*/
|
|
9
|
+
export interface ToolRegistry {
|
|
10
|
+
/** Register a tool */
|
|
11
|
+
register(tool: Tool): void;
|
|
12
|
+
/** Get a tool by name */
|
|
13
|
+
get(name: string): Tool | undefined;
|
|
14
|
+
/** Get all registered tools */
|
|
15
|
+
getAll(): Tool[];
|
|
16
|
+
/** Generate tool documentation for system prompt */
|
|
17
|
+
generateToolDocs(): string;
|
|
18
|
+
/** Execute a parsed tool call */
|
|
19
|
+
execute(call: ParsedToolCall): Promise<{
|
|
20
|
+
name: string;
|
|
21
|
+
result: ToolResult;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create a tool registry
|
|
26
|
+
*/
|
|
27
|
+
export declare function createToolRegistry(): ToolRegistry;
|
|
28
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agent/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAE3B,yBAAyB;IACzB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpC,+BAA+B;IAC/B,MAAM,IAAI,IAAI,EAAE,CAAC;IAEjB,oDAAoD;IACpD,gBAAgB,IAAI,MAAM,CAAC;IAE3B,iCAAiC;IACjC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;CAC9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAkGjD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool registry.
|
|
3
|
+
* Manages available tools and generates system prompt documentation.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Create a tool registry
|
|
7
|
+
*/
|
|
8
|
+
export function createToolRegistry() {
|
|
9
|
+
const tools = new Map();
|
|
10
|
+
function register(tool) {
|
|
11
|
+
if (tools.has(tool.name)) {
|
|
12
|
+
throw new Error(`Tool "${tool.name}" is already registered`);
|
|
13
|
+
}
|
|
14
|
+
tools.set(tool.name, tool);
|
|
15
|
+
}
|
|
16
|
+
function get(name) {
|
|
17
|
+
return tools.get(name);
|
|
18
|
+
}
|
|
19
|
+
function getAll() {
|
|
20
|
+
return Array.from(tools.values());
|
|
21
|
+
}
|
|
22
|
+
function generateToolDocs() {
|
|
23
|
+
const lines = [
|
|
24
|
+
'## Tool Use Protocol',
|
|
25
|
+
'',
|
|
26
|
+
'To use a tool, wrap a JSON object in <tool_call></tool_call> tags:',
|
|
27
|
+
'',
|
|
28
|
+
'```',
|
|
29
|
+
'<tool_call>',
|
|
30
|
+
'{"name": "tool_name", "arguments": {"param": "value"}}',
|
|
31
|
+
'</tool_call>',
|
|
32
|
+
'```',
|
|
33
|
+
'',
|
|
34
|
+
'You may use multiple tool calls in a single response.',
|
|
35
|
+
'After tool execution, results appear in <tool_result> tags.',
|
|
36
|
+
'Continue reasoning with the results until you can give a final answer.',
|
|
37
|
+
'',
|
|
38
|
+
'## Available Tools',
|
|
39
|
+
''
|
|
40
|
+
];
|
|
41
|
+
for (const tool of tools.values()) {
|
|
42
|
+
lines.push(`### ${tool.name}`);
|
|
43
|
+
lines.push('');
|
|
44
|
+
lines.push(tool.description);
|
|
45
|
+
lines.push('');
|
|
46
|
+
lines.push('**Parameters:**');
|
|
47
|
+
const paramEntries = Object.entries(tool.parameters);
|
|
48
|
+
if (paramEntries.length === 0) {
|
|
49
|
+
lines.push('- None');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
for (const [name, spec] of paramEntries) {
|
|
53
|
+
const required = spec.required !== false ? '(required)' : '(optional)';
|
|
54
|
+
lines.push(`- \`${name}\` (${spec.type}) ${required}: ${spec.description}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
lines.push('');
|
|
58
|
+
}
|
|
59
|
+
return lines.join('\n');
|
|
60
|
+
}
|
|
61
|
+
async function execute(call) {
|
|
62
|
+
const tool = tools.get(call.name);
|
|
63
|
+
if (!tool) {
|
|
64
|
+
return {
|
|
65
|
+
name: call.name,
|
|
66
|
+
result: {
|
|
67
|
+
success: false,
|
|
68
|
+
output: '',
|
|
69
|
+
error: `Unknown tool: ${call.name}`
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const result = await tool.execute(call.arguments);
|
|
75
|
+
return { name: call.name, result };
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
return {
|
|
79
|
+
name: call.name,
|
|
80
|
+
result: {
|
|
81
|
+
success: false,
|
|
82
|
+
output: '',
|
|
83
|
+
error: error instanceof Error ? error.message : String(error)
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
register,
|
|
90
|
+
get,
|
|
91
|
+
getAll,
|
|
92
|
+
generateToolDocs,
|
|
93
|
+
execute
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agent/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent tool system types.
|
|
3
|
+
* Extensible tool interface for the agent loop.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Parameter specification for a tool argument
|
|
7
|
+
*/
|
|
8
|
+
export interface ParameterSpec {
|
|
9
|
+
type: 'string' | 'number' | 'boolean' | 'object' | 'array';
|
|
10
|
+
description: string;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Result from executing a tool
|
|
15
|
+
*/
|
|
16
|
+
export interface ToolResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
output: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Tool interface - implement this to create new tools
|
|
23
|
+
*/
|
|
24
|
+
export interface Tool {
|
|
25
|
+
/** Unique tool name */
|
|
26
|
+
readonly name: string;
|
|
27
|
+
/** Human-readable description of what the tool does */
|
|
28
|
+
readonly description: string;
|
|
29
|
+
/** Parameter specifications */
|
|
30
|
+
readonly parameters: Record<string, ParameterSpec>;
|
|
31
|
+
/** Execute the tool with the given arguments */
|
|
32
|
+
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parsed tool call from LLM response
|
|
36
|
+
*/
|
|
37
|
+
export interface ParsedToolCall {
|
|
38
|
+
name: string;
|
|
39
|
+
arguments: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Result of parsing LLM response for tool calls
|
|
43
|
+
*/
|
|
44
|
+
export interface ParseResult {
|
|
45
|
+
/** Text content outside of tool calls */
|
|
46
|
+
text: string;
|
|
47
|
+
/** Parsed tool calls */
|
|
48
|
+
toolCalls: ParsedToolCall[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Chat message for conversation history
|
|
52
|
+
*/
|
|
53
|
+
export interface ChatMessage {
|
|
54
|
+
role: 'system' | 'user' | 'assistant';
|
|
55
|
+
content: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Logger interface for agent loop
|
|
59
|
+
*/
|
|
60
|
+
export interface AgentLogger {
|
|
61
|
+
debug(message: string, data?: Record<string, unknown>): void;
|
|
62
|
+
info(message: string, data?: Record<string, unknown>): void;
|
|
63
|
+
warn(message: string, data?: Record<string, unknown>): void;
|
|
64
|
+
error(message: string, data?: Record<string, unknown>): void;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Agent loop options
|
|
68
|
+
*/
|
|
69
|
+
export interface AgentLoopOptions {
|
|
70
|
+
/** Maximum iterations before stopping (default: 10) */
|
|
71
|
+
maxIterations?: number;
|
|
72
|
+
/** Optional logger for debugging */
|
|
73
|
+
logger?: AgentLogger;
|
|
74
|
+
/** Optional conversation history to prepend */
|
|
75
|
+
conversationHistory?: ChatMessage[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* System prompt builder function type
|
|
79
|
+
*/
|
|
80
|
+
export type SystemPromptBuilder = (toolDocs: string) => string;
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEnD,gDAAgD;IAChD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,4 +12,6 @@ export type { TimestampIndexExtended } from './knowpro/timestampIndex.js';
|
|
|
12
12
|
export { createTimestampIndex, createTimestampIndexExtended, parseTemporalExpression, hasTemporalReference } from './knowpro/timestampIndex.js';
|
|
13
13
|
export * from './knowpro/llmProvider.js';
|
|
14
14
|
export { setDebug, isDebugEnabled } from './knowpro/debug.js';
|
|
15
|
+
export * from './agent/index.js';
|
|
16
|
+
export type { IStorageProvider, IMessageCollection, ISemanticRefCollection, ICollection, IReadonlyCollection, JsonSerializer, } from './knowpro/interfaces.js';
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,CAAC;AAOvB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC1I,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACvL,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,aAAa,EACb,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC9F,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAChJ,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,CAAC;AAOvB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC1I,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACvL,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,aAAa,EACb,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC9F,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAChJ,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9D,cAAc,kBAAkB,CAAC;AAGjC,YAAY,EACR,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,mBAAmB,EACnB,cAAc,GACjB,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,11 +12,13 @@ export { createKnowledgeExtractor } from './knowpro/knowledge.js';
|
|
|
12
12
|
export { createTimestampIndex, createTimestampIndexExtended, parseTemporalExpression, hasTemporalReference } from './knowpro/timestampIndex.js';
|
|
13
13
|
export * from './knowpro/llmProvider.js';
|
|
14
14
|
export { setDebug, isDebugEnabled } from './knowpro/debug.js';
|
|
15
|
+
// Agent module
|
|
16
|
+
export * from './agent/index.js';
|
|
15
17
|
const invokedDirectly = process.argv[1] === fileURLToPath(import.meta.url);
|
|
16
18
|
if (invokedDirectly) {
|
|
17
19
|
const inMemoryStorageProvider = createInMemoryStorageProvider();
|
|
18
20
|
const messages = inMemoryStorageProvider.createMessageCollection();
|
|
19
|
-
let conversation =
|
|
21
|
+
let conversation = createConversation(messages, "test conversation", { storageProvider: inMemoryStorageProvider });
|
|
20
22
|
if (!conversation.semanticRefIndex) {
|
|
21
23
|
console.log("No index found");
|
|
22
24
|
process.exit();
|
|
@@ -83,6 +85,10 @@ if (invokedDirectly) {
|
|
|
83
85
|
console.log("ERROR: Provide a file path after @load.");
|
|
84
86
|
continue;
|
|
85
87
|
}
|
|
88
|
+
if (!conversation.loadFromFile) {
|
|
89
|
+
console.log("ERROR: loadFromFile not supported by current storage provider.");
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
86
92
|
conversation.loadFromFile(filePath);
|
|
87
93
|
console.log(`Loaded: ${filePath}`);
|
|
88
94
|
continue;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAmC,MAAM,2BAA2B,CAAC;AAC5H,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAI7E,iBAAiB;AACjB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAE1I,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAmBlE,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAChJ,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3E,IAAI,eAAe,EAAE,CAAC;IACpB,MAAM,uBAAuB,GAAG,6BAA6B,EAAE,CAAC;IAChE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,uBAAuB,EAAW,CAAC;IAC5E,IAAI,YAAY,GAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { DateRange, DeletionInfo, IConversation, IMessage, IMessageCollection, IMessageMetadata, MessageTag, SemanticRef } from "./interfaces.js";
|
|
1
|
+
import type { DateRange, DeletionInfo, IConversation, IMessage, IMessageCollection, IMessageMetadata, IStorageProvider, MessageTag, SemanticRef } from "./interfaces.js";
|
|
2
2
|
import type { KnowledgeResponse } from "./knowledgeSchema.js";
|
|
3
3
|
import type { PromptSection } from 'typechat';
|
|
4
4
|
import { type LemmatizationResult, type RelatedTermsExpansionOptions, type RelatedTermsExpansionResult, type WordNetExpansionOptions } from "./semanticRefIndex.js";
|
|
5
5
|
import { type LLMProvider } from './llmProvider.js';
|
|
6
|
-
import { type InMemoryStorageProvider } from "./storageProvider.js";
|
|
7
6
|
export interface Message extends IMessage {
|
|
8
7
|
setKnowledge: (knowledge: KnowledgeResponse) => void;
|
|
9
8
|
}
|
|
@@ -13,7 +12,10 @@ export interface Conversation extends IConversation {
|
|
|
13
12
|
queryTerms: (terms: string[]) => Promise<string>;
|
|
14
13
|
getAllTopics: () => SemanticRef[];
|
|
15
14
|
addMessageAsync: (message: Message, rebuild?: boolean) => Promise<boolean>;
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Load conversation from a file. Only available when using InMemoryStorageProvider.
|
|
17
|
+
*/
|
|
18
|
+
loadFromFile?: (filePath: string, rebuild?: boolean) => void;
|
|
17
19
|
lemmatize: () => LemmatizationResult;
|
|
18
20
|
expandRelatedTerms: (options?: RelatedTermsExpansionOptions) => Promise<RelatedTermsExpansionResult>;
|
|
19
21
|
expandWithWordNet: (options?: WordNetExpansionOptions) => Promise<RelatedTermsExpansionResult>;
|
|
@@ -24,8 +26,13 @@ export interface ConversationOptions {
|
|
|
24
26
|
* If not provided, falls back to createLLMProviderFromEnv().
|
|
25
27
|
*/
|
|
26
28
|
llmProvider?: LLMProvider;
|
|
29
|
+
/**
|
|
30
|
+
* Optional custom storage provider.
|
|
31
|
+
* If not provided, falls back to createInMemoryStorageProvider().
|
|
32
|
+
*/
|
|
33
|
+
storageProvider?: IStorageProvider;
|
|
27
34
|
}
|
|
28
|
-
export declare function createConversation(messages: IMessageCollection<Message>, name: string,
|
|
35
|
+
export declare function createConversation(messages: IMessageCollection<Message>, name: string, options?: ConversationOptions): Conversation;
|
|
29
36
|
/**
|
|
30
37
|
* Returns the time range for a conversation: the timestamps of the first and last messages
|
|
31
38
|
* If messages have no timestamps (which are optional), returns undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/knowpro/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAiC,QAAQ,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/knowpro/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,10 @@ export function createMessage(content, tags, timestamp, deletionInfo, metadata)
|
|
|
31
31
|
setKnowledge
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
export function createConversation(messages, name,
|
|
34
|
+
export function createConversation(messages, name, options) {
|
|
35
35
|
const nameTag = name;
|
|
36
36
|
const tags = [];
|
|
37
|
+
const storageProvider = options?.storageProvider ?? createInMemoryStorageProvider();
|
|
37
38
|
const llmProvider = options?.llmProvider ?? createLLMProviderFromEnv();
|
|
38
39
|
const languageModel = llmProvider.getLanguageModel();
|
|
39
40
|
const queryTranslator = createSearchQueryTranslator(languageModel);
|
|
@@ -121,14 +122,18 @@ export function createConversation(messages, name, storageProvider, options) {
|
|
|
121
122
|
function getAllTopics() {
|
|
122
123
|
return semanticRefs.getAll().filter((ref) => ref.knowledgeType === "topic");
|
|
123
124
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
// loadFromFile is only available if storage provider supports it
|
|
126
|
+
const loadFromFile = 'loadFromFile' in storageProvider
|
|
127
|
+
? (filePath, rebuild = true) => {
|
|
128
|
+
storageProvider
|
|
129
|
+
.loadFromFile(filePath, semanticRefs, messages);
|
|
130
|
+
if (rebuild) {
|
|
131
|
+
debug("Rebuilding index...");
|
|
132
|
+
semanticRefIndex.buildIndex(semanticRefs);
|
|
133
|
+
buildTimestampIndex();
|
|
134
|
+
}
|
|
130
135
|
}
|
|
131
|
-
|
|
136
|
+
: undefined;
|
|
132
137
|
async function extractAndSaveRefsFromMessage(message) {
|
|
133
138
|
const knowledgeResponse = await knowledgeExtractor.extract(message.textChunks[0]);
|
|
134
139
|
if (!knowledgeResponse) {
|
|
@@ -219,7 +224,7 @@ export function loadConversationFromExport(exportPath, name, options) {
|
|
|
219
224
|
* Load a conversation from exported index data.
|
|
220
225
|
*/
|
|
221
226
|
export function loadConversationFromExportData(exported, name = "imported", options) {
|
|
222
|
-
const storageProvider = createInMemoryStorageProvider();
|
|
227
|
+
const storageProvider = options?.storageProvider ?? createInMemoryStorageProvider();
|
|
223
228
|
const messages = storageProvider.createMessageCollection();
|
|
224
229
|
const semanticRefs = storageProvider.createSemanticRefCollection();
|
|
225
230
|
// Load messages
|
|
@@ -232,7 +237,7 @@ export function loadConversationFromExportData(exported, name = "imported", opti
|
|
|
232
237
|
semanticRefs.append(ref);
|
|
233
238
|
}
|
|
234
239
|
// Create conversation
|
|
235
|
-
const conversation = createConversation(messages, name,
|
|
240
|
+
const conversation = createConversation(messages, name, { ...options, storageProvider });
|
|
236
241
|
// Load index from exported data (preserves related terms and weights)
|
|
237
242
|
if (conversation.semanticRefIndex) {
|
|
238
243
|
const index = conversation.semanticRefIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/knowpro/conversation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,8BAA8B,EAA8J,MAAM,uBAAuB,CAAC;AACnO,OAAO,EAAE,wBAAwB,EAAoB,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,6BAA6B,
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/knowpro/conversation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,8BAA8B,EAA8J,MAAM,uBAAuB,CAAC;AACnO,OAAO,EAAE,wBAAwB,EAAoB,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAIlE,CAAC;AAEF,MAAM,UAAU,aAAa,CACzB,OAAe,EACf,IAAmB,EACnB,SAA8B,EAC9B,YAAuC,EACvC,QAAuC;IAGvC,4EAA4E;IAC5E,sFAAsF;IACtF,+CAA+C;IAC/C,IAAI,SAAwC,CAAC;IAE7C,SAAS,YAAY;QACjB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,YAAY,CAAC,iBAAoC;QACtD,SAAS,GAAG,iBAAiB,CAAC;IAClC,CAAC;IAED,OAAO;QACH,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,SAAS;QACT,IAAI;QACJ,YAAY;QACZ,QAAQ;QACR,YAAY;QACZ,YAAY;KACf,CAAA;AACL,CAAC;AA8BD,MAAM,UAAU,kBAAkB,CAC9B,QAAqC,EACrC,IAAY,EACZ,OAA6B;IAG7B,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,6BAA6B,EAAE,CAAC;IACpF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,wBAAwB,EAAE,CAAC;IACvE,MAAM,aAAa,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC;IAErD,MAAM,eAAe,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,eAAe,CAAC,2BAA2B,EAAE,CAAC;IAEnE,KAAK,UAAU,KAAK,CAAC,QAAgB;QACjC,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,eAAe,CAAC,CAAC;YACvB,OAAO,mCAAmC,CAAC;QAC/C,CAAC;QAED,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;QACzC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEnB,MAAM,cAAc,GAAG,cAAc,CACjC,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,QAAQ,CACX,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,cAAc,CACvC,QAAQ,EACR,cAAc,EACd,gBAAgB,CACnB,CAAC;QAGF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,CAAC;YACtB,OAAO,sCAAsC,CAAC;QAClD,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC;QACxC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,CAAC;YACtB,OAAO,WAAW,CAAC,WAAW,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,CAAC,WAAW,CAAC,CAAC;YACnB,OAAO,sCAAsC,CAAC;QAClD,CAAC;QAED,OAAO,WAAW,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,KAAe;QACrC,MAAM,WAAW,GAAgB;YAC7B,iBAAiB,EAAE;gBACf;oBACI,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC/B,OAAO,EAAE;wBACL;4BACI,WAAW,EAAE,KAAK;yBACrB;qBACJ;iBACJ;aACJ;SACJ,CAAC;QAEF,MAAM,cAAc,GAAG,cAAc,CACjC,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAClB,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,cAAc,CACvC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EACf,cAAc,EACd,gBAAgB,CACnB,CAAC;QAGF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,CAAC;YACtB,OAAO,sCAAsC,CAAC;QAClD,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC;QACxC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,CAAC;YACtB,OAAO,WAAW,CAAC,WAAW,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,CAAC,WAAW,CAAC,CAAC;YACnB,OAAO,sCAAsC,CAAC;QAClD,CAAC;QAED,OAAO,WAAW,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC3B,MAAM,gBAAgB,GAAG,8BAA8B,EAAE,CAAC;IAC1D,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IAC1C,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,iEAAiE;IACjE,MAAM,cAAc,GAAG,4BAA4B,EAAE,CAAC;IAEtD,SAAS,mBAAmB;QACxB,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACrB,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QACD,KAAK,CAAC,oBAAoB,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,kCAAkC;IAClC,mBAAmB,EAAE,CAAC;IAEtB,oBAAoB;IACpB,MAAM,gBAAgB,GAAkC;QACpD,cAAc;KACjB,CAAC;IAEF,SAAS,YAAY;QACjB,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,iEAAiE;IACjE,MAAM,YAAY,GAAG,cAAc,IAAI,eAAe;QAClD,CAAC,CAAC,CAAC,QAAgB,EAAE,OAAO,GAAG,IAAI,EAAQ,EAAE;YACxC,eAA8G;iBAC1G,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,OAAO,EAAE,CAAC;gBACV,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAC7B,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC1C,mBAAmB,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC;QACD,CAAC,CAAC,SAAS,CAAC;IAEhB,KAAK,UAAU,6BAA6B,CAAC,OAAgB;QACzD,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QACD,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QACvC,oEAAoE;QACpE,mBAAmB,CACf,YAAY,EACZ,iBAAiB,EACjB,YAAY,CAAC,MAAM,EACnB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,wCAAwC;SAC/D,CAAC;IACN,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,OAAgB,EAAE,OAAO,GAAG,IAAI;QAC3D,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAC7C,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC1C,mBAAmB,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,SAAS;QACd,OAAO,gBAAgB,CAAC,cAAc,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,UAAU,kBAAkB,CAAC,OAAsC;QACpE,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,UAAU,iBAAiB,CAAC,OAAiC;QAC9D,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACH,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,gBAAgB;QAChB,KAAK;QACL,UAAU;QACV,YAAY;QACZ,eAAe;QACf,YAAY;QACZ,SAAS;QACT,kBAAkB;QAClB,iBAAiB;KACpB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACvC,YAA2B;IAE3B,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO;gBACH,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC;gBACtB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aACvC,CAAC;QACN,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wCAAwC,CACpD,YAA2B;IAE3B,MAAM,SAAS,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO;YACH;gBACI,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gGAAgG,SAAS,CAAC,KAAK,OAAO,SAAS,CAAC,GAAG,GAAG;aAClJ;SACJ,CAAC;IACN,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAyBD;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACtC,UAAkB,EAClB,IAAa,EACb,OAA6B;IAE7B,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,8BAA8B,CAAC,QAAQ,EAAE,IAAI,IAAI,UAAU,EAAE,OAAO,CAAC,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC1C,QAAuB,EACvB,OAAe,UAAU,EACzB,OAA6B;IAE7B,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,6BAA6B,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAG,eAAe,CAAC,uBAAuB,EAAW,CAAC;IACpE,MAAM,YAAY,GAAG,eAAe,CAAC,2BAA2B,EAAE,CAAC;IAEnE,gBAAgB;IAChB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,aAAa,CACzB,GAAG,CAAC,OAAO,EACX,EAAE,EACF,GAAG,CAAC,SAAS,CAChB,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QACtC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,sBAAsB;IACtB,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IAEzF,sEAAsE;IACtE,IAAI,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,YAAY,CAAC,gBAA4C,CAAC;QACxE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,sDAAsD;IACtD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,QAAQ,CAAC,QAAQ,CAAC,MAAM,cAAc,QAAQ,CAAC,YAAY,CAAC,MAAM,UAAU,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;IAEtI,OAAO,YAAY,CAAC;AACxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/knowpro/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,KAAK,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,uBAAuB,EAAsB,MAAM,iBAAiB,CAAC;AAG9J,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAyC1D,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,CAAC,aAAa,EAC1C,gBAAgB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/knowpro/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,KAAK,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,uBAAuB,EAAsB,MAAM,iBAAiB,CAAC;AAG9J,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAyC1D,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,CAAC,aAAa,EAC1C,gBAAgB,EAAE,gBAAgB,0FAwBrC;AAqHD,wBAAgB,cAAc,CAC1B,KAAK,EAAE,WAAW,EAClB,gBAAgB,EAAE,uBAAuB,EACzC,YAAY,EAAE,sBAAsB,EACpC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACrC,gBAAgB,CAAC,EAAE,6BAA6B,EAChD,aAAa,CAAC,EAAE,MAAM,GACvB,aAAa,CAAC,aAAa,CAwU7B"}
|
package/dist/knowpro/search.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { writeFileSync } from "node:fs";
|
|
2
|
-
import { debug } from "./debug.js";
|
|
2
|
+
import { debug, isDebugEnabled } from "./debug.js";
|
|
3
3
|
import { printRef } from "./entities.js";
|
|
4
4
|
import { loadSchema } from "./schema.js";
|
|
5
5
|
import { hasTemporalReference, parseTemporalExpression } from "./timestampIndex.js";
|
|
@@ -44,7 +44,9 @@ export function generateAnswer(rawQuery, compiledQuery, answerTranslator) {
|
|
|
44
44
|
const promptText = prompt.join("\n\n");
|
|
45
45
|
debug("ANSWER PROMPT");
|
|
46
46
|
debug(promptText, promptText.length);
|
|
47
|
-
|
|
47
|
+
if (isDebugEnabled()) {
|
|
48
|
+
writeFileSync("answerPrompt.txt", promptText);
|
|
49
|
+
}
|
|
48
50
|
return answerTranslator.translate(promptText);
|
|
49
51
|
}
|
|
50
52
|
function scoreFacet(masterTerms, facet) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/knowpro/search.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/knowpro/search.ts"],"names":[],"mappings":"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"}
|