tuplet 2.7.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/LICENSE +21 -0
- package/README.md +136 -0
- package/dist/agent.d.ts +46 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +393 -0
- package/dist/agent.js.map +1 -0
- package/dist/built-in-agents/explore.d.ts +9 -0
- package/dist/built-in-agents/explore.d.ts.map +1 -0
- package/dist/built-in-agents/explore.js +40 -0
- package/dist/built-in-agents/explore.js.map +1 -0
- package/dist/built-in-agents/index.d.ts +15 -0
- package/dist/built-in-agents/index.d.ts.map +1 -0
- package/dist/built-in-agents/index.js +19 -0
- package/dist/built-in-agents/index.js.map +1 -0
- package/dist/built-in-agents/plan.d.ts +10 -0
- package/dist/built-in-agents/plan.d.ts.map +1 -0
- package/dist/built-in-agents/plan.js +62 -0
- package/dist/built-in-agents/plan.js.map +1 -0
- package/dist/built-in-agents/worker.d.ts +9 -0
- package/dist/built-in-agents/worker.d.ts.map +1 -0
- package/dist/built-in-agents/worker.js +53 -0
- package/dist/built-in-agents/worker.js.map +1 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/context-manager.d.ts +65 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +272 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/context-manager.test.d.ts +2 -0
- package/dist/context-manager.test.d.ts.map +1 -0
- package/dist/context-manager.test.js +394 -0
- package/dist/context-manager.test.js.map +1 -0
- package/dist/executor.d.ts +29 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +399 -0
- package/dist/executor.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/prompt/index.d.ts +9 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +10 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/main-agent-builder.d.ts +81 -0
- package/dist/prompt/main-agent-builder.d.ts.map +1 -0
- package/dist/prompt/main-agent-builder.js +287 -0
- package/dist/prompt/main-agent-builder.js.map +1 -0
- package/dist/prompt/sub-agent-builder.d.ts +133 -0
- package/dist/prompt/sub-agent-builder.d.ts.map +1 -0
- package/dist/prompt/sub-agent-builder.js +337 -0
- package/dist/prompt/sub-agent-builder.js.map +1 -0
- package/dist/prompt/templates.d.ts +87 -0
- package/dist/prompt/templates.d.ts.map +1 -0
- package/dist/prompt/templates.js +343 -0
- package/dist/prompt/templates.js.map +1 -0
- package/dist/prompt/types.d.ts +159 -0
- package/dist/prompt/types.d.ts.map +1 -0
- package/dist/prompt/types.js +5 -0
- package/dist/prompt/types.js.map +1 -0
- package/dist/prompt.d.ts +32 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +86 -0
- package/dist/prompt.js.map +1 -0
- package/dist/providers/dataset/base.d.ts +74 -0
- package/dist/providers/dataset/base.d.ts.map +1 -0
- package/dist/providers/dataset/base.js +7 -0
- package/dist/providers/dataset/base.js.map +1 -0
- package/dist/providers/dataset/index.d.ts +8 -0
- package/dist/providers/dataset/index.d.ts.map +1 -0
- package/dist/providers/dataset/index.js +8 -0
- package/dist/providers/dataset/index.js.map +1 -0
- package/dist/providers/dataset/recorder.d.ts +46 -0
- package/dist/providers/dataset/recorder.d.ts.map +1 -0
- package/dist/providers/dataset/recorder.js +105 -0
- package/dist/providers/dataset/recorder.js.map +1 -0
- package/dist/providers/dataset/replayer.d.ts +46 -0
- package/dist/providers/dataset/replayer.d.ts.map +1 -0
- package/dist/providers/dataset/replayer.js +163 -0
- package/dist/providers/dataset/replayer.js.map +1 -0
- package/dist/providers/dataset/tester.d.ts +89 -0
- package/dist/providers/dataset/tester.d.ts.map +1 -0
- package/dist/providers/dataset/tester.js +143 -0
- package/dist/providers/dataset/tester.js.map +1 -0
- package/dist/providers/env/memory.d.ts +14 -0
- package/dist/providers/env/memory.d.ts.map +1 -0
- package/dist/providers/env/memory.js +19 -0
- package/dist/providers/env/memory.js.map +1 -0
- package/dist/providers/index.d.ts +12 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +10 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/llm/base.d.ts +7 -0
- package/dist/providers/llm/base.d.ts.map +1 -0
- package/dist/providers/llm/base.js +7 -0
- package/dist/providers/llm/base.js.map +1 -0
- package/dist/providers/llm/claude.d.ts +32 -0
- package/dist/providers/llm/claude.d.ts.map +1 -0
- package/dist/providers/llm/claude.js +171 -0
- package/dist/providers/llm/claude.js.map +1 -0
- package/dist/providers/llm/openai.d.ts +26 -0
- package/dist/providers/llm/openai.d.ts.map +1 -0
- package/dist/providers/llm/openai.js +174 -0
- package/dist/providers/llm/openai.js.map +1 -0
- package/dist/providers/llm/openrouter.d.ts +43 -0
- package/dist/providers/llm/openrouter.d.ts.map +1 -0
- package/dist/providers/llm/openrouter.js +288 -0
- package/dist/providers/llm/openrouter.js.map +1 -0
- package/dist/providers/logger/base.d.ts +7 -0
- package/dist/providers/logger/base.d.ts.map +1 -0
- package/dist/providers/logger/base.js +7 -0
- package/dist/providers/logger/base.js.map +1 -0
- package/dist/providers/logger/console.d.ts +29 -0
- package/dist/providers/logger/console.d.ts.map +1 -0
- package/dist/providers/logger/console.js +70 -0
- package/dist/providers/logger/console.js.map +1 -0
- package/dist/providers/repository/base.d.ts +7 -0
- package/dist/providers/repository/base.d.ts.map +1 -0
- package/dist/providers/repository/base.js +7 -0
- package/dist/providers/repository/base.js.map +1 -0
- package/dist/providers/repository/memory.d.ts +21 -0
- package/dist/providers/repository/memory.d.ts.map +1 -0
- package/dist/providers/repository/memory.js +50 -0
- package/dist/providers/repository/memory.js.map +1 -0
- package/dist/providers/workspace/file.d.ts +26 -0
- package/dist/providers/workspace/file.d.ts.map +1 -0
- package/dist/providers/workspace/file.js +151 -0
- package/dist/providers/workspace/file.js.map +1 -0
- package/dist/providers/workspace/index.d.ts +7 -0
- package/dist/providers/workspace/index.d.ts.map +1 -0
- package/dist/providers/workspace/index.js +6 -0
- package/dist/providers/workspace/index.js.map +1 -0
- package/dist/providers/workspace/memory.d.ts +26 -0
- package/dist/providers/workspace/memory.d.ts.map +1 -0
- package/dist/providers/workspace/memory.js +136 -0
- package/dist/providers/workspace/memory.js.map +1 -0
- package/dist/providers/workspace/types.d.ts +27 -0
- package/dist/providers/workspace/types.d.ts.map +1 -0
- package/dist/providers/workspace/types.js +8 -0
- package/dist/providers/workspace/types.js.map +1 -0
- package/dist/providers/workspace/workspace-provider.test.d.ts +2 -0
- package/dist/providers/workspace/workspace-provider.test.d.ts.map +1 -0
- package/dist/providers/workspace/workspace-provider.test.js +250 -0
- package/dist/providers/workspace/workspace-provider.test.js.map +1 -0
- package/dist/shell/commands/browse.d.ts +6 -0
- package/dist/shell/commands/browse.d.ts.map +1 -0
- package/dist/shell/commands/browse.js +158 -0
- package/dist/shell/commands/browse.js.map +1 -0
- package/dist/shell/commands/cat.d.ts +6 -0
- package/dist/shell/commands/cat.d.ts.map +1 -0
- package/dist/shell/commands/cat.js +104 -0
- package/dist/shell/commands/cat.js.map +1 -0
- package/dist/shell/commands/curl.d.ts +6 -0
- package/dist/shell/commands/curl.d.ts.map +1 -0
- package/dist/shell/commands/curl.js +190 -0
- package/dist/shell/commands/curl.js.map +1 -0
- package/dist/shell/commands/date.d.ts +6 -0
- package/dist/shell/commands/date.d.ts.map +1 -0
- package/dist/shell/commands/date.js +151 -0
- package/dist/shell/commands/date.js.map +1 -0
- package/dist/shell/commands/echo.d.ts +6 -0
- package/dist/shell/commands/echo.d.ts.map +1 -0
- package/dist/shell/commands/echo.js +48 -0
- package/dist/shell/commands/echo.js.map +1 -0
- package/dist/shell/commands/env.d.ts +8 -0
- package/dist/shell/commands/env.d.ts.map +1 -0
- package/dist/shell/commands/env.js +41 -0
- package/dist/shell/commands/env.js.map +1 -0
- package/dist/shell/commands/file.d.ts +6 -0
- package/dist/shell/commands/file.d.ts.map +1 -0
- package/dist/shell/commands/file.js +213 -0
- package/dist/shell/commands/file.js.map +1 -0
- package/dist/shell/commands/find.d.ts +6 -0
- package/dist/shell/commands/find.d.ts.map +1 -0
- package/dist/shell/commands/find.js +100 -0
- package/dist/shell/commands/find.js.map +1 -0
- package/dist/shell/commands/grep.d.ts +6 -0
- package/dist/shell/commands/grep.d.ts.map +1 -0
- package/dist/shell/commands/grep.js +229 -0
- package/dist/shell/commands/grep.js.map +1 -0
- package/dist/shell/commands/head.d.ts +6 -0
- package/dist/shell/commands/head.d.ts.map +1 -0
- package/dist/shell/commands/head.js +88 -0
- package/dist/shell/commands/head.js.map +1 -0
- package/dist/shell/commands/index.d.ts +25 -0
- package/dist/shell/commands/index.d.ts.map +1 -0
- package/dist/shell/commands/index.js +43 -0
- package/dist/shell/commands/index.js.map +1 -0
- package/dist/shell/commands/jq.d.ts +8 -0
- package/dist/shell/commands/jq.d.ts.map +1 -0
- package/dist/shell/commands/jq.js +233 -0
- package/dist/shell/commands/jq.js.map +1 -0
- package/dist/shell/commands/ls.d.ts +6 -0
- package/dist/shell/commands/ls.d.ts.map +1 -0
- package/dist/shell/commands/ls.js +88 -0
- package/dist/shell/commands/ls.js.map +1 -0
- package/dist/shell/commands/mkdir.d.ts +6 -0
- package/dist/shell/commands/mkdir.d.ts.map +1 -0
- package/dist/shell/commands/mkdir.js +43 -0
- package/dist/shell/commands/mkdir.js.map +1 -0
- package/dist/shell/commands/rm.d.ts +6 -0
- package/dist/shell/commands/rm.d.ts.map +1 -0
- package/dist/shell/commands/rm.js +64 -0
- package/dist/shell/commands/rm.js.map +1 -0
- package/dist/shell/commands/sed.d.ts +6 -0
- package/dist/shell/commands/sed.d.ts.map +1 -0
- package/dist/shell/commands/sed.js +414 -0
- package/dist/shell/commands/sed.js.map +1 -0
- package/dist/shell/commands/sort.d.ts +6 -0
- package/dist/shell/commands/sort.d.ts.map +1 -0
- package/dist/shell/commands/sort.js +109 -0
- package/dist/shell/commands/sort.js.map +1 -0
- package/dist/shell/commands/tail.d.ts +6 -0
- package/dist/shell/commands/tail.d.ts.map +1 -0
- package/dist/shell/commands/tail.js +68 -0
- package/dist/shell/commands/tail.js.map +1 -0
- package/dist/shell/commands/wc.d.ts +6 -0
- package/dist/shell/commands/wc.d.ts.map +1 -0
- package/dist/shell/commands/wc.js +86 -0
- package/dist/shell/commands/wc.js.map +1 -0
- package/dist/shell/index.d.ts +10 -0
- package/dist/shell/index.d.ts.map +1 -0
- package/dist/shell/index.js +10 -0
- package/dist/shell/index.js.map +1 -0
- package/dist/shell/limits.d.ts +5 -0
- package/dist/shell/limits.d.ts.map +1 -0
- package/dist/shell/limits.js +5 -0
- package/dist/shell/limits.js.map +1 -0
- package/dist/shell/parser.d.ts +8 -0
- package/dist/shell/parser.d.ts.map +1 -0
- package/dist/shell/parser.js +307 -0
- package/dist/shell/parser.js.map +1 -0
- package/dist/shell/path-validation.d.ts +35 -0
- package/dist/shell/path-validation.d.ts.map +1 -0
- package/dist/shell/path-validation.js +81 -0
- package/dist/shell/path-validation.js.map +1 -0
- package/dist/shell/shell.d.ts +66 -0
- package/dist/shell/shell.d.ts.map +1 -0
- package/dist/shell/shell.js +301 -0
- package/dist/shell/shell.js.map +1 -0
- package/dist/shell/shell.test.d.ts +2 -0
- package/dist/shell/shell.test.d.ts.map +1 -0
- package/dist/shell/shell.test.js +1088 -0
- package/dist/shell/shell.test.js.map +1 -0
- package/dist/shell/types.d.ts +82 -0
- package/dist/shell/types.d.ts.map +1 -0
- package/dist/shell/types.js +5 -0
- package/dist/shell/types.js.map +1 -0
- package/dist/summarizer.d.ts +28 -0
- package/dist/summarizer.d.ts.map +1 -0
- package/dist/summarizer.js +136 -0
- package/dist/summarizer.js.map +1 -0
- package/dist/summarizer.test.d.ts +2 -0
- package/dist/summarizer.test.d.ts.map +1 -0
- package/dist/summarizer.test.js +192 -0
- package/dist/summarizer.test.js.map +1 -0
- package/dist/tools/ask-user.d.ts +11 -0
- package/dist/tools/ask-user.d.ts.map +1 -0
- package/dist/tools/ask-user.js +35 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +18 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/output.d.ts +15 -0
- package/dist/tools/output.d.ts.map +1 -0
- package/dist/tools/output.js +40 -0
- package/dist/tools/output.js.map +1 -0
- package/dist/tools/shell.d.ts +13 -0
- package/dist/tools/shell.d.ts.map +1 -0
- package/dist/tools/shell.js +166 -0
- package/dist/tools/shell.js.map +1 -0
- package/dist/tools/sub-agent.d.ts +25 -0
- package/dist/tools/sub-agent.d.ts.map +1 -0
- package/dist/tools/sub-agent.js +312 -0
- package/dist/tools/sub-agent.js.map +1 -0
- package/dist/tools/tasks.d.ts +170 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +947 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/trace/builder.d.ts +54 -0
- package/dist/trace/builder.d.ts.map +1 -0
- package/dist/trace/builder.js +229 -0
- package/dist/trace/builder.js.map +1 -0
- package/dist/trace/console.d.ts +45 -0
- package/dist/trace/console.d.ts.map +1 -0
- package/dist/trace/console.js +143 -0
- package/dist/trace/console.js.map +1 -0
- package/dist/trace/index.d.ts +11 -0
- package/dist/trace/index.d.ts.map +1 -0
- package/dist/trace/index.js +11 -0
- package/dist/trace/index.js.map +1 -0
- package/dist/trace/openrouter-pricing.d.ts +9 -0
- package/dist/trace/openrouter-pricing.d.ts.map +1 -0
- package/dist/trace/openrouter-pricing.js +321 -0
- package/dist/trace/openrouter-pricing.js.map +1 -0
- package/dist/trace/pricing.d.ts +13 -0
- package/dist/trace/pricing.d.ts.map +1 -0
- package/dist/trace/pricing.js +41 -0
- package/dist/trace/pricing.js.map +1 -0
- package/dist/trace/types.d.ts +142 -0
- package/dist/trace/types.d.ts.map +1 -0
- package/dist/trace/types.js +16 -0
- package/dist/trace/types.js.map +1 -0
- package/dist/trace.d.ts +5 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +5 -0
- package/dist/trace.js.map +1 -0
- package/dist/types.d.ts +382 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/workspace.d.ts +287 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +560 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dataset Provider - Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for recording and replaying Tuplet runs.
|
|
5
|
+
*/
|
|
6
|
+
import type { JSONSchema, Message, ToolCallLog, TodoItem, AgentStatus, ContextStrategy } from '../../types.js';
|
|
7
|
+
import type { Trace } from '../../trace/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Serialized tool (without execute function)
|
|
10
|
+
*/
|
|
11
|
+
export interface SerializedTool {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
parameters: JSONSchema;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Serialized sub-agent configuration (without non-serializable fields)
|
|
18
|
+
*/
|
|
19
|
+
export interface SerializedSubAgentConfig {
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
systemPrompt: string;
|
|
23
|
+
tools: SerializedTool[];
|
|
24
|
+
model?: string;
|
|
25
|
+
maxIterations?: number;
|
|
26
|
+
inputSchema?: JSONSchema;
|
|
27
|
+
outputSchema?: JSONSchema;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Serialized Tuplet configuration
|
|
31
|
+
*/
|
|
32
|
+
export interface RunRecordConfig {
|
|
33
|
+
role: string;
|
|
34
|
+
maxIterations?: number;
|
|
35
|
+
maxContextTokens?: number;
|
|
36
|
+
contextStrategy?: ContextStrategy;
|
|
37
|
+
agentName?: string;
|
|
38
|
+
tools: SerializedTool[];
|
|
39
|
+
agents?: SerializedSubAgentConfig[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Run result data
|
|
43
|
+
*/
|
|
44
|
+
export interface RunRecordResult {
|
|
45
|
+
response: string;
|
|
46
|
+
status: AgentStatus;
|
|
47
|
+
history: Message[];
|
|
48
|
+
toolCalls: ToolCallLog[];
|
|
49
|
+
thinking?: string[];
|
|
50
|
+
todos?: TodoItem[];
|
|
51
|
+
interrupted?: {
|
|
52
|
+
reason: string;
|
|
53
|
+
iterationsCompleted: number;
|
|
54
|
+
};
|
|
55
|
+
trace?: Trace;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Complete run record saved to JSON
|
|
59
|
+
*/
|
|
60
|
+
export interface RunRecord {
|
|
61
|
+
/** Unique run identifier */
|
|
62
|
+
id: string;
|
|
63
|
+
/** Unix timestamp when run was recorded */
|
|
64
|
+
timestamp: number;
|
|
65
|
+
/** User's input message that started the run */
|
|
66
|
+
inputMessage: string;
|
|
67
|
+
/** Initial history before the run (for replay/testing) */
|
|
68
|
+
initialHistory: Message[];
|
|
69
|
+
/** Serialized Tuplet configuration */
|
|
70
|
+
config: RunRecordConfig;
|
|
71
|
+
/** Run result data */
|
|
72
|
+
result: RunRecordResult;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/providers/dataset/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB,YAAY,CAAC,EAAE,UAAU,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,mBAAmB,EAAE,MAAM,CAAA;KAC5B,CAAA;IACD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,sCAAsC;IACtC,MAAM,EAAE,eAAe,CAAA;IACvB,sBAAsB;IACtB,MAAM,EAAE,eAAe,CAAA;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/providers/dataset/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dataset Provider Exports
|
|
3
|
+
*/
|
|
4
|
+
export * from './base.js';
|
|
5
|
+
export { RunRecorder, RunRecorderConfig } from './recorder.js';
|
|
6
|
+
export { RunReplayer } from './replayer.js';
|
|
7
|
+
export { RunTester, RunTesterConfig, TestResult, TestSummary } from './tester.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/dataset/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/dataset/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,WAAW,EAAqB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,SAAS,EAA4C,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Recorder
|
|
3
|
+
*
|
|
4
|
+
* Records Tuplet run configurations and results to JSON files.
|
|
5
|
+
*/
|
|
6
|
+
import type { TupletConfig, AgentResult, Message } from '../../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for RunRecorder
|
|
9
|
+
*/
|
|
10
|
+
export interface RunRecorderConfig {
|
|
11
|
+
/** Directory to save JSON files */
|
|
12
|
+
outputDir: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Records Tuplet runs to JSON files for later analysis and replay
|
|
16
|
+
*/
|
|
17
|
+
export declare class RunRecorder {
|
|
18
|
+
private outputDir;
|
|
19
|
+
constructor(config: RunRecorderConfig);
|
|
20
|
+
/**
|
|
21
|
+
* Record a run to a JSON file
|
|
22
|
+
* @param inputMessage - The user's input message
|
|
23
|
+
* @param initialHistory - The history before the run started
|
|
24
|
+
* @param config - The Tuplet configuration used for the run
|
|
25
|
+
* @param result - The result from Tuplet.run()
|
|
26
|
+
* @returns The file path where the record was saved
|
|
27
|
+
*/
|
|
28
|
+
record(inputMessage: string, initialHistory: Message[], config: TupletConfig, result: AgentResult): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Serialize TupletConfig to a JSON-safe format
|
|
31
|
+
*/
|
|
32
|
+
private serializeConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Serialize a Tool to remove the execute function
|
|
35
|
+
*/
|
|
36
|
+
private serializeTool;
|
|
37
|
+
/**
|
|
38
|
+
* Serialize a SubAgentConfig to remove non-serializable fields
|
|
39
|
+
*/
|
|
40
|
+
private serializeSubAgent;
|
|
41
|
+
/**
|
|
42
|
+
* Generate a unique run ID
|
|
43
|
+
*/
|
|
44
|
+
private generateRunId;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../src/providers/dataset/recorder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAwB,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAQ9F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,iBAAiB;IAIrC;;;;;;;OAOG;IACG,MAAM,CACV,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,OAAO,EAAE,EACzB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,CAAC;IAsClB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,aAAa;CAKtB"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Recorder
|
|
3
|
+
*
|
|
4
|
+
* Records Tuplet run configurations and results to JSON files.
|
|
5
|
+
*/
|
|
6
|
+
import { writeFile, mkdir } from 'fs/promises';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
/**
|
|
9
|
+
* Records Tuplet runs to JSON files for later analysis and replay
|
|
10
|
+
*/
|
|
11
|
+
export class RunRecorder {
|
|
12
|
+
outputDir;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.outputDir = config.outputDir;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Record a run to a JSON file
|
|
18
|
+
* @param inputMessage - The user's input message
|
|
19
|
+
* @param initialHistory - The history before the run started
|
|
20
|
+
* @param config - The Tuplet configuration used for the run
|
|
21
|
+
* @param result - The result from Tuplet.run()
|
|
22
|
+
* @returns The file path where the record was saved
|
|
23
|
+
*/
|
|
24
|
+
async record(inputMessage, initialHistory, config, result) {
|
|
25
|
+
const runId = this.generateRunId();
|
|
26
|
+
const timestamp = Date.now();
|
|
27
|
+
const record = {
|
|
28
|
+
id: runId,
|
|
29
|
+
timestamp,
|
|
30
|
+
inputMessage,
|
|
31
|
+
initialHistory,
|
|
32
|
+
config: this.serializeConfig(config),
|
|
33
|
+
result: {
|
|
34
|
+
response: result.response,
|
|
35
|
+
status: result.status,
|
|
36
|
+
history: result.history,
|
|
37
|
+
toolCalls: result.toolCalls,
|
|
38
|
+
thinking: result.thinking,
|
|
39
|
+
todos: result.todos,
|
|
40
|
+
interrupted: result.interrupted,
|
|
41
|
+
trace: result.trace
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
// Ensure output directory exists
|
|
45
|
+
await mkdir(this.outputDir, { recursive: true });
|
|
46
|
+
// Save to file, stripping circular refs (parent/children)
|
|
47
|
+
const filePath = join(this.outputDir, `${runId}.json`);
|
|
48
|
+
const json = JSON.stringify(record, (key, value) => {
|
|
49
|
+
if (key === 'parent' || key === 'children') {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return value;
|
|
53
|
+
}, 2);
|
|
54
|
+
await writeFile(filePath, json, 'utf-8');
|
|
55
|
+
return filePath;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Serialize TupletConfig to a JSON-safe format
|
|
59
|
+
*/
|
|
60
|
+
serializeConfig(config) {
|
|
61
|
+
return {
|
|
62
|
+
role: config.role,
|
|
63
|
+
maxIterations: config.maxIterations,
|
|
64
|
+
maxContextTokens: config.maxContextTokens,
|
|
65
|
+
contextStrategy: config.contextStrategy,
|
|
66
|
+
agentName: config.agentName,
|
|
67
|
+
tools: config.tools.map(tool => this.serializeTool(tool)),
|
|
68
|
+
agents: config.agents?.map(agent => this.serializeSubAgent(agent))
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Serialize a Tool to remove the execute function
|
|
73
|
+
*/
|
|
74
|
+
serializeTool(tool) {
|
|
75
|
+
return {
|
|
76
|
+
name: tool.name,
|
|
77
|
+
description: tool.description,
|
|
78
|
+
parameters: tool.parameters
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Serialize a SubAgentConfig to remove non-serializable fields
|
|
83
|
+
*/
|
|
84
|
+
serializeSubAgent(agent) {
|
|
85
|
+
return {
|
|
86
|
+
name: agent.name,
|
|
87
|
+
description: agent.description,
|
|
88
|
+
systemPrompt: agent.systemPrompt,
|
|
89
|
+
tools: agent.tools.map(tool => this.serializeTool(tool)),
|
|
90
|
+
model: agent.model,
|
|
91
|
+
maxIterations: agent.maxIterations,
|
|
92
|
+
inputSchema: agent.inputSchema,
|
|
93
|
+
outputSchema: agent.outputSchema
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Generate a unique run ID
|
|
98
|
+
*/
|
|
99
|
+
generateRunId() {
|
|
100
|
+
const timestamp = Date.now();
|
|
101
|
+
const random = Math.random().toString(36).slice(2, 8);
|
|
102
|
+
return `run_${timestamp}_${random}`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=recorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recorder.js","sourceRoot":"","sources":["../../../src/providers/dataset/recorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Replayer
|
|
3
|
+
*
|
|
4
|
+
* Loads and displays saved run records.
|
|
5
|
+
*/
|
|
6
|
+
import type { Message, ToolCallLog } from '../../types.js';
|
|
7
|
+
import type { Trace } from '../../trace/types.js';
|
|
8
|
+
import type { RunRecord, RunRecordConfig } from './base.js';
|
|
9
|
+
/**
|
|
10
|
+
* Loads and displays saved run records
|
|
11
|
+
*/
|
|
12
|
+
export declare class RunReplayer {
|
|
13
|
+
/**
|
|
14
|
+
* Load a run record from a JSON file
|
|
15
|
+
*/
|
|
16
|
+
load(filePath: string): Promise<RunRecord>;
|
|
17
|
+
/**
|
|
18
|
+
* Pretty print a run record to console
|
|
19
|
+
*/
|
|
20
|
+
display(record: RunRecord): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get the configuration from a run record
|
|
23
|
+
*/
|
|
24
|
+
getConfig(record: RunRecord): RunRecordConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Get the initial history from a run record (before the run started)
|
|
27
|
+
*/
|
|
28
|
+
getInitialHistory(record: RunRecord): Message[];
|
|
29
|
+
/**
|
|
30
|
+
* Get the final message history from a run record (after the run completed)
|
|
31
|
+
*/
|
|
32
|
+
getHistory(record: RunRecord): Message[];
|
|
33
|
+
/**
|
|
34
|
+
* Get the response from a run record
|
|
35
|
+
*/
|
|
36
|
+
getResponse(record: RunRecord): string;
|
|
37
|
+
/**
|
|
38
|
+
* Get the tool calls from a run record
|
|
39
|
+
*/
|
|
40
|
+
getToolCalls(record: RunRecord): ToolCallLog[];
|
|
41
|
+
/**
|
|
42
|
+
* Get the trace from a run record
|
|
43
|
+
*/
|
|
44
|
+
getTrace(record: RunRecord): Trace | undefined;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=replayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayer.d.ts","sourceRoot":"","sources":["../../../src/providers/dataset/replayer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3D;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKhD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAgHhC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe;IAI7C;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE;IAI/C;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE;IAIxC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAItC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,EAAE;IAI9C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS;CAG/C"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Replayer
|
|
3
|
+
*
|
|
4
|
+
* Loads and displays saved run records.
|
|
5
|
+
*/
|
|
6
|
+
import { readFile } from 'fs/promises';
|
|
7
|
+
/**
|
|
8
|
+
* Loads and displays saved run records
|
|
9
|
+
*/
|
|
10
|
+
export class RunReplayer {
|
|
11
|
+
/**
|
|
12
|
+
* Load a run record from a JSON file
|
|
13
|
+
*/
|
|
14
|
+
async load(filePath) {
|
|
15
|
+
const content = await readFile(filePath, 'utf-8');
|
|
16
|
+
return JSON.parse(content);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Pretty print a run record to console
|
|
20
|
+
*/
|
|
21
|
+
display(record) {
|
|
22
|
+
const timestamp = new Date(record.timestamp).toISOString();
|
|
23
|
+
console.log(`\n${'='.repeat(60)}`);
|
|
24
|
+
console.log(`Run Record: ${record.id}`);
|
|
25
|
+
console.log(`Timestamp: ${timestamp}`);
|
|
26
|
+
console.log(`${'='.repeat(60)}`);
|
|
27
|
+
// Configuration
|
|
28
|
+
console.log(`\n--- Configuration ---`);
|
|
29
|
+
const rolePreview = record.config.role.length > 200
|
|
30
|
+
? record.config.role.slice(0, 200) + '...'
|
|
31
|
+
: record.config.role;
|
|
32
|
+
console.log(`Role: ${rolePreview}`);
|
|
33
|
+
console.log(`Max Iterations: ${record.config.maxIterations ?? 'default'}`);
|
|
34
|
+
console.log(`Max Context Tokens: ${record.config.maxContextTokens ?? 'default'}`);
|
|
35
|
+
console.log(`Context Strategy: ${record.config.contextStrategy ?? 'default'}`);
|
|
36
|
+
console.log(`Tools: ${record.config.tools.map(t => t.name).join(', ') || 'none'}`);
|
|
37
|
+
if (record.config.agents && record.config.agents.length > 0) {
|
|
38
|
+
console.log(`Sub-Agents: ${record.config.agents.map(a => a.name).join(', ')}`);
|
|
39
|
+
}
|
|
40
|
+
// Initial History
|
|
41
|
+
if (record.initialHistory && record.initialHistory.length > 0) {
|
|
42
|
+
console.log(`\n--- Initial History (${record.initialHistory.length} messages) ---`);
|
|
43
|
+
record.initialHistory.forEach((msg, i) => {
|
|
44
|
+
const roleLabel = `[${msg.role}]`;
|
|
45
|
+
let content;
|
|
46
|
+
if (typeof msg.content === 'string') {
|
|
47
|
+
content = msg.content;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const textBlocks = msg.content
|
|
51
|
+
.filter(b => b.type === 'text')
|
|
52
|
+
.map(b => b.text);
|
|
53
|
+
content = textBlocks.join('\n') || '(non-text content)';
|
|
54
|
+
}
|
|
55
|
+
const contentPreview = content.length > 100 ? content.slice(0, 100) + '...' : content;
|
|
56
|
+
console.log(`${i + 1}. ${roleLabel}: ${contentPreview}`);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Input
|
|
60
|
+
console.log(`\n--- Input ---`);
|
|
61
|
+
console.log(record.inputMessage);
|
|
62
|
+
// Result
|
|
63
|
+
console.log(`\n--- Result ---`);
|
|
64
|
+
console.log(`Status: ${record.result.status}`);
|
|
65
|
+
if (record.result.interrupted) {
|
|
66
|
+
console.log(`Interrupted: ${record.result.interrupted.reason} (after ${record.result.interrupted.iterationsCompleted} iterations)`);
|
|
67
|
+
}
|
|
68
|
+
console.log(`\nResponse:`);
|
|
69
|
+
console.log(record.result.response || '(empty)');
|
|
70
|
+
// Tool Calls
|
|
71
|
+
if (record.result.toolCalls.length > 0) {
|
|
72
|
+
console.log(`\n--- Tool Calls (${record.result.toolCalls.length}) ---`);
|
|
73
|
+
record.result.toolCalls.forEach((call, i) => {
|
|
74
|
+
const inputStr = JSON.stringify(call.input);
|
|
75
|
+
const inputPreview = inputStr.length > 50 ? inputStr.slice(0, 50) + '...' : inputStr;
|
|
76
|
+
const status = call.output.success ? 'success' : 'error';
|
|
77
|
+
console.log(`${i + 1}. ${call.name}(${inputPreview}) -> ${status} (${call.durationMs}ms)`);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// Todos
|
|
81
|
+
if (record.result.todos && record.result.todos.length > 0) {
|
|
82
|
+
console.log(`\n--- Todos (${record.result.todos.length}) ---`);
|
|
83
|
+
record.result.todos.forEach(todo => {
|
|
84
|
+
const statusIcon = todo.status === 'completed' ? '✓' : todo.status === 'in_progress' ? '→' : '○';
|
|
85
|
+
console.log(`${statusIcon} ${todo.content}`);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// Message History
|
|
89
|
+
console.log(`\n--- Message History (${record.result.history.length} messages) ---`);
|
|
90
|
+
record.result.history.forEach((msg, i) => {
|
|
91
|
+
const roleLabel = `[${msg.role}]`;
|
|
92
|
+
let content;
|
|
93
|
+
if (typeof msg.content === 'string') {
|
|
94
|
+
content = msg.content;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// Content blocks
|
|
98
|
+
const textBlocks = msg.content
|
|
99
|
+
.filter(b => b.type === 'text')
|
|
100
|
+
.map(b => b.text);
|
|
101
|
+
const toolUseCount = msg.content.filter(b => b.type === 'tool_use').length;
|
|
102
|
+
const toolResultCount = msg.content.filter(b => b.type === 'tool_result').length;
|
|
103
|
+
content = textBlocks.join('\n');
|
|
104
|
+
if (toolUseCount > 0)
|
|
105
|
+
content += ` [${toolUseCount} tool_use]`;
|
|
106
|
+
if (toolResultCount > 0)
|
|
107
|
+
content += ` [${toolResultCount} tool_result]`;
|
|
108
|
+
}
|
|
109
|
+
const contentPreview = content.length > 100 ? content.slice(0, 100) + '...' : content;
|
|
110
|
+
console.log(`${i + 1}. ${roleLabel}: ${contentPreview}`);
|
|
111
|
+
});
|
|
112
|
+
// Trace summary
|
|
113
|
+
if (record.result.trace) {
|
|
114
|
+
console.log(`\n--- Trace Summary ---`);
|
|
115
|
+
console.log(`Total Cost: $${record.result.trace.totalCost.toFixed(4)}`);
|
|
116
|
+
console.log(`Input Tokens: ${record.result.trace.totalInputTokens}`);
|
|
117
|
+
console.log(`Output Tokens: ${record.result.trace.totalOutputTokens}`);
|
|
118
|
+
console.log(`LLM Calls: ${record.result.trace.totalLLMCalls}`);
|
|
119
|
+
console.log(`Tool Calls: ${record.result.trace.totalToolCalls}`);
|
|
120
|
+
if (record.result.trace.durationMs) {
|
|
121
|
+
console.log(`Duration: ${record.result.trace.durationMs}ms`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
console.log(`\n${'='.repeat(60)}\n`);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get the configuration from a run record
|
|
128
|
+
*/
|
|
129
|
+
getConfig(record) {
|
|
130
|
+
return record.config;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get the initial history from a run record (before the run started)
|
|
134
|
+
*/
|
|
135
|
+
getInitialHistory(record) {
|
|
136
|
+
return record.initialHistory;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get the final message history from a run record (after the run completed)
|
|
140
|
+
*/
|
|
141
|
+
getHistory(record) {
|
|
142
|
+
return record.result.history;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get the response from a run record
|
|
146
|
+
*/
|
|
147
|
+
getResponse(record) {
|
|
148
|
+
return record.result.response;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get the tool calls from a run record
|
|
152
|
+
*/
|
|
153
|
+
getToolCalls(record) {
|
|
154
|
+
return record.result.toolCalls;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get the trace from a run record
|
|
158
|
+
*/
|
|
159
|
+
getTrace(record) {
|
|
160
|
+
return record.result.trace;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=replayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayer.js","sourceRoot":"","sources":["../../../src/providers/dataset/replayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Tester
|
|
3
|
+
*
|
|
4
|
+
* Runs tests against recorded runs to verify agent behavior.
|
|
5
|
+
*/
|
|
6
|
+
import type { Tuplet } from '../../agent.js';
|
|
7
|
+
import type { RunOptions, AgentResult } from '../../types.js';
|
|
8
|
+
import type { RunRecord } from './base.js';
|
|
9
|
+
/**
|
|
10
|
+
* Result of comparing a replay to a recorded run
|
|
11
|
+
*/
|
|
12
|
+
export interface TestResult {
|
|
13
|
+
/** Run record ID */
|
|
14
|
+
runId: string;
|
|
15
|
+
/** Whether the test passed */
|
|
16
|
+
passed: boolean;
|
|
17
|
+
/** Input message that was tested */
|
|
18
|
+
inputMessage: string;
|
|
19
|
+
/** Expected response from recording */
|
|
20
|
+
expectedResponse: string;
|
|
21
|
+
/** Actual response from replay */
|
|
22
|
+
actualResponse: string;
|
|
23
|
+
/** Whether status matched */
|
|
24
|
+
statusMatch: boolean;
|
|
25
|
+
/** Whether tool call count matched */
|
|
26
|
+
toolCallCountMatch: boolean;
|
|
27
|
+
/** Whether response matched exactly */
|
|
28
|
+
responseMatch: boolean;
|
|
29
|
+
/** Error if test failed to run */
|
|
30
|
+
error?: string;
|
|
31
|
+
/** Duration of the replay in ms */
|
|
32
|
+
durationMs: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Summary of all test results
|
|
36
|
+
*/
|
|
37
|
+
export interface TestSummary {
|
|
38
|
+
/** Total number of tests run */
|
|
39
|
+
total: number;
|
|
40
|
+
/** Number of passed tests */
|
|
41
|
+
passed: number;
|
|
42
|
+
/** Number of failed tests */
|
|
43
|
+
failed: number;
|
|
44
|
+
/** Individual test results */
|
|
45
|
+
results: TestResult[];
|
|
46
|
+
/** Total duration in ms */
|
|
47
|
+
durationMs: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Configuration for RunTester
|
|
51
|
+
*/
|
|
52
|
+
export interface RunTesterConfig {
|
|
53
|
+
/** Directory containing recorded run JSON files */
|
|
54
|
+
runsDir: string;
|
|
55
|
+
/** Custom comparison function (optional) */
|
|
56
|
+
compareFn?: (expected: AgentResult, actual: AgentResult, record: RunRecord) => boolean;
|
|
57
|
+
/** Additional run options to pass to agent.run() */
|
|
58
|
+
runOptions?: Partial<RunOptions>;
|
|
59
|
+
/** Called before each test */
|
|
60
|
+
beforeEach?: (record: RunRecord) => Promise<void> | void;
|
|
61
|
+
/** Called after each test */
|
|
62
|
+
afterEach?: (result: TestResult, record: RunRecord) => Promise<void> | void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Runs tests against recorded runs
|
|
66
|
+
*/
|
|
67
|
+
export declare class RunTester {
|
|
68
|
+
private runsDir;
|
|
69
|
+
private replayer;
|
|
70
|
+
private config;
|
|
71
|
+
constructor(config: RunTesterConfig);
|
|
72
|
+
/**
|
|
73
|
+
* Run all tests in the runs directory
|
|
74
|
+
*/
|
|
75
|
+
runAll(agent: Tuplet): Promise<TestSummary>;
|
|
76
|
+
/**
|
|
77
|
+
* Run a single test from a file
|
|
78
|
+
*/
|
|
79
|
+
runOne(agent: Tuplet, filePath: string): Promise<TestResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Get all run files in the directory
|
|
82
|
+
*/
|
|
83
|
+
private getRunFiles;
|
|
84
|
+
/**
|
|
85
|
+
* Print test summary to console
|
|
86
|
+
*/
|
|
87
|
+
static printSummary(summary: TestSummary): void;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=tester.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tester.d.ts","sourceRoot":"","sources":["../../../src/providers/dataset/tester.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,MAAM,EAAE,OAAO,CAAA;IACf,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAA;IACxB,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,WAAW,EAAE,OAAO,CAAA;IACpB,sCAAsC;IACtC,kBAAkB,EAAE,OAAO,CAAA;IAC3B,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAA;IACtB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAA;IACtF,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAChC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACxD,6BAA6B;IAC7B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC5E;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,eAAe;IAMnC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBjD;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA6DlE;;OAEG;YACW,WAAW;IAQzB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAmChD"}
|