@predicatelabs/sdk 0.99.9
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 +24 -0
- package/README.md +252 -0
- package/dist/actions.d.ts +185 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +1120 -0
- package/dist/actions.js.map +1 -0
- package/dist/agent-runtime.d.ts +352 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +1170 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/agent.d.ts +164 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +408 -0
- package/dist/agent.js.map +1 -0
- package/dist/asserts/expect.d.ts +159 -0
- package/dist/asserts/expect.d.ts.map +1 -0
- package/dist/asserts/expect.js +547 -0
- package/dist/asserts/expect.js.map +1 -0
- package/dist/asserts/index.d.ts +58 -0
- package/dist/asserts/index.d.ts.map +1 -0
- package/dist/asserts/index.js +70 -0
- package/dist/asserts/index.js.map +1 -0
- package/dist/asserts/query.d.ts +199 -0
- package/dist/asserts/query.d.ts.map +1 -0
- package/dist/asserts/query.js +288 -0
- package/dist/asserts/query.js.map +1 -0
- package/dist/backends/actions.d.ts +119 -0
- package/dist/backends/actions.d.ts.map +1 -0
- package/dist/backends/actions.js +291 -0
- package/dist/backends/actions.js.map +1 -0
- package/dist/backends/browser-use-adapter.d.ts +131 -0
- package/dist/backends/browser-use-adapter.d.ts.map +1 -0
- package/dist/backends/browser-use-adapter.js +219 -0
- package/dist/backends/browser-use-adapter.js.map +1 -0
- package/dist/backends/cdp-backend.d.ts +66 -0
- package/dist/backends/cdp-backend.d.ts.map +1 -0
- package/dist/backends/cdp-backend.js +273 -0
- package/dist/backends/cdp-backend.js.map +1 -0
- package/dist/backends/index.d.ts +80 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +101 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/protocol.d.ts +156 -0
- package/dist/backends/protocol.d.ts.map +1 -0
- package/dist/backends/protocol.js +16 -0
- package/dist/backends/protocol.js.map +1 -0
- package/dist/backends/sentience-context.d.ts +143 -0
- package/dist/backends/sentience-context.d.ts.map +1 -0
- package/dist/backends/sentience-context.js +359 -0
- package/dist/backends/sentience-context.js.map +1 -0
- package/dist/backends/snapshot.d.ts +188 -0
- package/dist/backends/snapshot.d.ts.map +1 -0
- package/dist/backends/snapshot.js +360 -0
- package/dist/backends/snapshot.js.map +1 -0
- package/dist/browser.d.ts +154 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +920 -0
- package/dist/browser.js.map +1 -0
- package/dist/canonicalization.d.ts +126 -0
- package/dist/canonicalization.d.ts.map +1 -0
- package/dist/canonicalization.js +161 -0
- package/dist/canonicalization.js.map +1 -0
- package/dist/captcha/strategies.d.ts +12 -0
- package/dist/captcha/strategies.d.ts.map +1 -0
- package/dist/captcha/strategies.js +43 -0
- package/dist/captcha/strategies.js.map +1 -0
- package/dist/captcha/types.d.ts +45 -0
- package/dist/captcha/types.d.ts.map +1 -0
- package/dist/captcha/types.js +12 -0
- package/dist/captcha/types.js.map +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +422 -0
- package/dist/cli.js.map +1 -0
- package/dist/conversational-agent.d.ts +123 -0
- package/dist/conversational-agent.d.ts.map +1 -0
- package/dist/conversational-agent.js +341 -0
- package/dist/conversational-agent.js.map +1 -0
- package/dist/cursor-policy.d.ts +41 -0
- package/dist/cursor-policy.d.ts.map +1 -0
- package/dist/cursor-policy.js +81 -0
- package/dist/cursor-policy.js.map +1 -0
- package/dist/debugger.d.ts +28 -0
- package/dist/debugger.d.ts.map +1 -0
- package/dist/debugger.js +107 -0
- package/dist/debugger.js.map +1 -0
- package/dist/expect.d.ts +16 -0
- package/dist/expect.d.ts.map +1 -0
- package/dist/expect.js +67 -0
- package/dist/expect.js.map +1 -0
- package/dist/failure-artifacts.d.ts +95 -0
- package/dist/failure-artifacts.d.ts.map +1 -0
- package/dist/failure-artifacts.js +805 -0
- package/dist/failure-artifacts.js.map +1 -0
- package/dist/generator.d.ts +16 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +205 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +160 -0
- package/dist/index.js.map +1 -0
- package/dist/inspector.d.ts +13 -0
- package/dist/inspector.d.ts.map +1 -0
- package/dist/inspector.js +153 -0
- package/dist/inspector.js.map +1 -0
- package/dist/llm-provider.d.ts +144 -0
- package/dist/llm-provider.d.ts.map +1 -0
- package/dist/llm-provider.js +460 -0
- package/dist/llm-provider.js.map +1 -0
- package/dist/ordinal.d.ts +90 -0
- package/dist/ordinal.d.ts.map +1 -0
- package/dist/ordinal.js +249 -0
- package/dist/ordinal.js.map +1 -0
- package/dist/overlay.d.ts +63 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +102 -0
- package/dist/overlay.js.map +1 -0
- package/dist/protocols/browser-protocol.d.ts +79 -0
- package/dist/protocols/browser-protocol.d.ts.map +1 -0
- package/dist/protocols/browser-protocol.js +9 -0
- package/dist/protocols/browser-protocol.js.map +1 -0
- package/dist/query.d.ts +66 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +482 -0
- package/dist/query.js.map +1 -0
- package/dist/read.d.ts +47 -0
- package/dist/read.d.ts.map +1 -0
- package/dist/read.js +128 -0
- package/dist/read.js.map +1 -0
- package/dist/recorder.d.ts +44 -0
- package/dist/recorder.d.ts.map +1 -0
- package/dist/recorder.js +262 -0
- package/dist/recorder.js.map +1 -0
- package/dist/runtime-agent.d.ts +72 -0
- package/dist/runtime-agent.d.ts.map +1 -0
- package/dist/runtime-agent.js +357 -0
- package/dist/runtime-agent.js.map +1 -0
- package/dist/screenshot.d.ts +17 -0
- package/dist/screenshot.d.ts.map +1 -0
- package/dist/screenshot.js +40 -0
- package/dist/screenshot.js.map +1 -0
- package/dist/snapshot-diff.d.ts +23 -0
- package/dist/snapshot-diff.d.ts.map +1 -0
- package/dist/snapshot-diff.js +119 -0
- package/dist/snapshot-diff.js.map +1 -0
- package/dist/snapshot.d.ts +47 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +358 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/textSearch.d.ts +64 -0
- package/dist/textSearch.d.ts.map +1 -0
- package/dist/textSearch.js +113 -0
- package/dist/textSearch.js.map +1 -0
- package/dist/tools/context.d.ts +18 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +40 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/defaults.d.ts +5 -0
- package/dist/tools/defaults.d.ts.map +1 -0
- package/dist/tools/defaults.js +368 -0
- package/dist/tools/defaults.js.map +1 -0
- package/dist/tools/filesystem.d.ts +12 -0
- package/dist/tools/filesystem.d.ts.map +1 -0
- package/dist/tools/filesystem.js +137 -0
- package/dist/tools/filesystem.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +38 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +100 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tracing/cloud-sink.d.ts +189 -0
- package/dist/tracing/cloud-sink.d.ts.map +1 -0
- package/dist/tracing/cloud-sink.js +1067 -0
- package/dist/tracing/cloud-sink.js.map +1 -0
- package/dist/tracing/index-schema.d.ts +231 -0
- package/dist/tracing/index-schema.d.ts.map +1 -0
- package/dist/tracing/index-schema.js +235 -0
- package/dist/tracing/index-schema.js.map +1 -0
- package/dist/tracing/index.d.ts +12 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +28 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/indexer.d.ts +20 -0
- package/dist/tracing/indexer.d.ts.map +1 -0
- package/dist/tracing/indexer.js +347 -0
- package/dist/tracing/indexer.js.map +1 -0
- package/dist/tracing/jsonl-sink.d.ts +51 -0
- package/dist/tracing/jsonl-sink.d.ts.map +1 -0
- package/dist/tracing/jsonl-sink.js +329 -0
- package/dist/tracing/jsonl-sink.js.map +1 -0
- package/dist/tracing/sink.d.ts +25 -0
- package/dist/tracing/sink.d.ts.map +1 -0
- package/dist/tracing/sink.js +15 -0
- package/dist/tracing/sink.js.map +1 -0
- package/dist/tracing/tracer-factory.d.ts +102 -0
- package/dist/tracing/tracer-factory.d.ts.map +1 -0
- package/dist/tracing/tracer-factory.js +375 -0
- package/dist/tracing/tracer-factory.js.map +1 -0
- package/dist/tracing/tracer.d.ts +140 -0
- package/dist/tracing/tracer.d.ts.map +1 -0
- package/dist/tracing/tracer.js +336 -0
- package/dist/tracing/tracer.js.map +1 -0
- package/dist/tracing/types.d.ts +203 -0
- package/dist/tracing/types.d.ts.map +1 -0
- package/dist/tracing/types.js +8 -0
- package/dist/tracing/types.js.map +1 -0
- package/dist/types.d.ts +422 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/action-executor.d.ts +25 -0
- package/dist/utils/action-executor.d.ts.map +1 -0
- package/dist/utils/action-executor.js +121 -0
- package/dist/utils/action-executor.js.map +1 -0
- package/dist/utils/browser-evaluator.d.ts +76 -0
- package/dist/utils/browser-evaluator.d.ts.map +1 -0
- package/dist/utils/browser-evaluator.js +130 -0
- package/dist/utils/browser-evaluator.js.map +1 -0
- package/dist/utils/browser.d.ts +30 -0
- package/dist/utils/browser.d.ts.map +1 -0
- package/dist/utils/browser.js +75 -0
- package/dist/utils/browser.js.map +1 -0
- package/dist/utils/element-filter.d.ts +76 -0
- package/dist/utils/element-filter.d.ts.map +1 -0
- package/dist/utils/element-filter.js +195 -0
- package/dist/utils/element-filter.js.map +1 -0
- package/dist/utils/grid-utils.d.ts +37 -0
- package/dist/utils/grid-utils.d.ts.map +1 -0
- package/dist/utils/grid-utils.js +283 -0
- package/dist/utils/grid-utils.js.map +1 -0
- package/dist/utils/llm-interaction-handler.d.ts +41 -0
- package/dist/utils/llm-interaction-handler.d.ts.map +1 -0
- package/dist/utils/llm-interaction-handler.js +171 -0
- package/dist/utils/llm-interaction-handler.js.map +1 -0
- package/dist/utils/llm-response-builder.d.ts +56 -0
- package/dist/utils/llm-response-builder.d.ts.map +1 -0
- package/dist/utils/llm-response-builder.js +130 -0
- package/dist/utils/llm-response-builder.js.map +1 -0
- package/dist/utils/selector-utils.d.ts +12 -0
- package/dist/utils/selector-utils.d.ts.map +1 -0
- package/dist/utils/selector-utils.js +32 -0
- package/dist/utils/selector-utils.js.map +1 -0
- package/dist/utils/snapshot-event-builder.d.ts +28 -0
- package/dist/utils/snapshot-event-builder.d.ts.map +1 -0
- package/dist/utils/snapshot-event-builder.js +88 -0
- package/dist/utils/snapshot-event-builder.js.map +1 -0
- package/dist/utils/snapshot-processor.d.ts +27 -0
- package/dist/utils/snapshot-processor.d.ts.map +1 -0
- package/dist/utils/snapshot-processor.js +47 -0
- package/dist/utils/snapshot-processor.js.map +1 -0
- package/dist/utils/trace-event-builder.d.ts +122 -0
- package/dist/utils/trace-event-builder.d.ts.map +1 -0
- package/dist/utils/trace-event-builder.js +365 -0
- package/dist/utils/trace-event-builder.js.map +1 -0
- package/dist/utils/trace-file-manager.d.ts +70 -0
- package/dist/utils/trace-file-manager.d.ts.map +1 -0
- package/dist/utils/trace-file-manager.js +194 -0
- package/dist/utils/trace-file-manager.js.map +1 -0
- package/dist/utils/zod.d.ts +5 -0
- package/dist/utils/zod.d.ts.map +1 -0
- package/dist/utils/zod.js +80 -0
- package/dist/utils/zod.js.map +1 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -0
- package/dist/verification.d.ts +194 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +530 -0
- package/dist/verification.js.map +1 -0
- package/dist/vision-executor.d.ts +18 -0
- package/dist/vision-executor.d.ts.map +1 -0
- package/dist/vision-executor.js +60 -0
- package/dist/vision-executor.js.map +1 -0
- package/dist/visual-agent.d.ts +120 -0
- package/dist/visual-agent.d.ts.map +1 -0
- package/dist/visual-agent.js +796 -0
- package/dist/visual-agent.js.map +1 -0
- package/dist/wait.d.ts +35 -0
- package/dist/wait.d.ts.map +1 -0
- package/dist/wait.js +76 -0
- package/dist/wait.js.map +1 -0
- package/package.json +94 -0
- package/spec/README.md +72 -0
- package/spec/SNAPSHOT_V1.md +208 -0
- package/spec/sdk-types.md +259 -0
- package/spec/snapshot.schema.json +148 -0
- package/src/extension/background.js +104 -0
- package/src/extension/content.js +162 -0
- package/src/extension/injected_api.js +1399 -0
- package/src/extension/manifest.json +36 -0
- package/src/extension/pkg/README.md +1340 -0
- package/src/extension/pkg/package.json +15 -0
- package/src/extension/pkg/sentience_core.d.ts +51 -0
- package/src/extension/pkg/sentience_core.js +371 -0
- package/src/extension/pkg/sentience_core_bg.wasm +0 -0
- package/src/extension/pkg/sentience_core_bg.wasm.d.ts +10 -0
- package/src/extension/release.json +116 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* LLMResponseBuilder - Helper for consistent LLM response building
|
|
4
|
+
*
|
|
5
|
+
* Provides standardized response building and error handling across LLM providers
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.LLMResponseBuilder = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* LLMResponseBuilder provides static methods for building and validating LLM responses
|
|
11
|
+
*/
|
|
12
|
+
class LLMResponseBuilder {
|
|
13
|
+
/**
|
|
14
|
+
* Build a standardized LLMResponse from provider-specific response data
|
|
15
|
+
*
|
|
16
|
+
* @param content - Response content text
|
|
17
|
+
* @param modelName - Model name/identifier
|
|
18
|
+
* @param usage - Token usage data (provider-specific format)
|
|
19
|
+
* @param providerType - Provider type for usage extraction
|
|
20
|
+
* @returns Standardized LLMResponse
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // OpenAI format
|
|
25
|
+
* const response = LLMResponseBuilder.build(
|
|
26
|
+
* 'CLICK(1)',
|
|
27
|
+
* 'gpt-4o',
|
|
28
|
+
* { prompt_tokens: 100, completion_tokens: 20, total_tokens: 120 },
|
|
29
|
+
* 'openai'
|
|
30
|
+
* );
|
|
31
|
+
*
|
|
32
|
+
* // Anthropic format
|
|
33
|
+
* const response = LLMResponseBuilder.build(
|
|
34
|
+
* 'CLICK(1)',
|
|
35
|
+
* 'claude-3-5-sonnet',
|
|
36
|
+
* { input_tokens: 100, output_tokens: 20 },
|
|
37
|
+
* 'anthropic'
|
|
38
|
+
* );
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
static build(content, modelName, usage, providerType = 'generic') {
|
|
42
|
+
let promptTokens;
|
|
43
|
+
let completionTokens;
|
|
44
|
+
let totalTokens;
|
|
45
|
+
switch (providerType) {
|
|
46
|
+
case 'openai':
|
|
47
|
+
promptTokens = usage?.prompt_tokens;
|
|
48
|
+
completionTokens = usage?.completion_tokens;
|
|
49
|
+
totalTokens = usage?.total_tokens;
|
|
50
|
+
break;
|
|
51
|
+
case 'anthropic':
|
|
52
|
+
promptTokens = usage?.input_tokens;
|
|
53
|
+
completionTokens = usage?.output_tokens;
|
|
54
|
+
totalTokens = (usage?.input_tokens || 0) + (usage?.output_tokens || 0);
|
|
55
|
+
break;
|
|
56
|
+
case 'glm':
|
|
57
|
+
promptTokens = usage?.prompt_tokens;
|
|
58
|
+
completionTokens = usage?.completion_tokens;
|
|
59
|
+
totalTokens = usage?.total_tokens;
|
|
60
|
+
break;
|
|
61
|
+
case 'gemini':
|
|
62
|
+
promptTokens = usage?.promptTokenCount;
|
|
63
|
+
completionTokens = usage?.candidatesTokenCount;
|
|
64
|
+
totalTokens = usage?.totalTokenCount;
|
|
65
|
+
break;
|
|
66
|
+
case 'generic':
|
|
67
|
+
default:
|
|
68
|
+
// Try common field names
|
|
69
|
+
promptTokens = usage?.prompt_tokens || usage?.input_tokens || usage?.promptTokenCount;
|
|
70
|
+
completionTokens =
|
|
71
|
+
usage?.completion_tokens || usage?.output_tokens || usage?.candidatesTokenCount;
|
|
72
|
+
totalTokens =
|
|
73
|
+
usage?.total_tokens ||
|
|
74
|
+
usage?.totalTokenCount ||
|
|
75
|
+
(promptTokens || 0) + (completionTokens || 0);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
content: content || '',
|
|
80
|
+
promptTokens,
|
|
81
|
+
completionTokens,
|
|
82
|
+
totalTokens,
|
|
83
|
+
modelName,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Validate that an LLMResponse has required fields
|
|
88
|
+
*
|
|
89
|
+
* @param response - LLMResponse to validate
|
|
90
|
+
* @returns True if valid, false otherwise
|
|
91
|
+
*/
|
|
92
|
+
static validate(response) {
|
|
93
|
+
if (!response || typeof response.content !== 'string') {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
if (response.modelName && typeof response.modelName !== 'string') {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
// Token counts are optional but should be numbers if present
|
|
100
|
+
if (response.promptTokens !== undefined && typeof response.promptTokens !== 'number') {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
if (response.completionTokens !== undefined && typeof response.completionTokens !== 'number') {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
if (response.totalTokens !== undefined && typeof response.totalTokens !== 'number') {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Create an error response
|
|
113
|
+
*
|
|
114
|
+
* @param error - Error message or Error object
|
|
115
|
+
* @param modelName - Optional model name
|
|
116
|
+
* @returns LLMResponse with error content
|
|
117
|
+
*/
|
|
118
|
+
static createErrorResponse(error, modelName) {
|
|
119
|
+
const errorMessage = error instanceof Error ? error.message : error;
|
|
120
|
+
return {
|
|
121
|
+
content: `Error: ${errorMessage}`,
|
|
122
|
+
modelName: modelName || 'unknown',
|
|
123
|
+
promptTokens: 0,
|
|
124
|
+
completionTokens: 0,
|
|
125
|
+
totalTokens: 0,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.LLMResponseBuilder = LLMResponseBuilder;
|
|
130
|
+
//# sourceMappingURL=llm-response-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-response-builder.js","sourceRoot":"","sources":["../../src/utils/llm-response-builder.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH;;GAEG;AACH,MAAa,kBAAkB;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,KAAK,CACV,OAAe,EACf,SAAiB,EACjB,KAAU,EACV,eAAsE,SAAS;QAE/E,IAAI,YAAgC,CAAC;QACrC,IAAI,gBAAoC,CAAC;QACzC,IAAI,WAA+B,CAAC;QAEpC,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,YAAY,GAAG,KAAK,EAAE,aAAa,CAAC;gBACpC,gBAAgB,GAAG,KAAK,EAAE,iBAAiB,CAAC;gBAC5C,WAAW,GAAG,KAAK,EAAE,YAAY,CAAC;gBAClC,MAAM;YACR,KAAK,WAAW;gBACd,YAAY,GAAG,KAAK,EAAE,YAAY,CAAC;gBACnC,gBAAgB,GAAG,KAAK,EAAE,aAAa,CAAC;gBACxC,WAAW,GAAG,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;gBACvE,MAAM;YACR,KAAK,KAAK;gBACR,YAAY,GAAG,KAAK,EAAE,aAAa,CAAC;gBACpC,gBAAgB,GAAG,KAAK,EAAE,iBAAiB,CAAC;gBAC5C,WAAW,GAAG,KAAK,EAAE,YAAY,CAAC;gBAClC,MAAM;YACR,KAAK,QAAQ;gBACX,YAAY,GAAG,KAAK,EAAE,gBAAgB,CAAC;gBACvC,gBAAgB,GAAG,KAAK,EAAE,oBAAoB,CAAC;gBAC/C,WAAW,GAAG,KAAK,EAAE,eAAe,CAAC;gBACrC,MAAM;YACR,KAAK,SAAS,CAAC;YACf;gBACE,yBAAyB;gBACzB,YAAY,GAAG,KAAK,EAAE,aAAa,IAAI,KAAK,EAAE,YAAY,IAAI,KAAK,EAAE,gBAAgB,CAAC;gBACtF,gBAAgB;oBACd,KAAK,EAAE,iBAAiB,IAAI,KAAK,EAAE,aAAa,IAAI,KAAK,EAAE,oBAAoB,CAAC;gBAClF,WAAW;oBACT,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,eAAe;wBACtB,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;gBAChD,MAAM;QACV,CAAC;QAED,OAAO;YACL,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,YAAY;YACZ,gBAAgB;YAChB,WAAW;YACX,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAqB;QACnC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,QAAQ,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,6DAA6D;QAC7D,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC7F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAqB,EAAE,SAAkB;QAClE,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,OAAO;YACL,OAAO,EAAE,UAAU,YAAY,EAAE;YACjC,SAAS,EAAE,SAAS,IAAI,SAAS;YACjC,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;CACF;AA7HD,gDA6HC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for working with QuerySelector
|
|
3
|
+
*/
|
|
4
|
+
import { QuerySelector } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* Convert a QuerySelector to a string representation for error messages
|
|
7
|
+
*
|
|
8
|
+
* @param selector - QuerySelector (string or object)
|
|
9
|
+
* @returns String representation
|
|
10
|
+
*/
|
|
11
|
+
export declare function selectorToString(selector: QuerySelector): string;
|
|
12
|
+
//# sourceMappingURL=selector-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector-utils.d.ts","sourceRoot":"","sources":["../../src/utils/selector-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgBhE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utility functions for working with QuerySelector
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.selectorToString = selectorToString;
|
|
7
|
+
/**
|
|
8
|
+
* Convert a QuerySelector to a string representation for error messages
|
|
9
|
+
*
|
|
10
|
+
* @param selector - QuerySelector (string or object)
|
|
11
|
+
* @returns String representation
|
|
12
|
+
*/
|
|
13
|
+
function selectorToString(selector) {
|
|
14
|
+
if (typeof selector === 'string') {
|
|
15
|
+
return selector;
|
|
16
|
+
}
|
|
17
|
+
// Convert QuerySelectorObject to string representation
|
|
18
|
+
const obj = selector;
|
|
19
|
+
const parts = [];
|
|
20
|
+
if (obj.role)
|
|
21
|
+
parts.push(`role=${obj.role}`);
|
|
22
|
+
if (obj.text)
|
|
23
|
+
parts.push(`text="${obj.text}"`);
|
|
24
|
+
if (obj.name)
|
|
25
|
+
parts.push(`name="${obj.name}"`);
|
|
26
|
+
if (obj.clickable !== undefined)
|
|
27
|
+
parts.push(`clickable=${obj.clickable}`);
|
|
28
|
+
if (obj.isPrimary !== undefined)
|
|
29
|
+
parts.push(`isPrimary=${obj.isPrimary}`);
|
|
30
|
+
return parts.length > 0 ? parts.join(' ') : JSON.stringify(obj);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=selector-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector-utils.js","sourceRoot":"","sources":["../../src/utils/selector-utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAUH,4CAgBC;AAtBD;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,QAAuB;IACtD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uDAAuD;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC;IACrB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,GAAG,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,GAAG,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1E,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SnapshotEventBuilder - Helper for building snapshot trace events
|
|
3
|
+
*
|
|
4
|
+
* Extracted from SentienceAgent to reduce complexity
|
|
5
|
+
*/
|
|
6
|
+
import { Snapshot } from '../types';
|
|
7
|
+
import { TraceEventData } from '../tracing/types';
|
|
8
|
+
/**
|
|
9
|
+
* SnapshotEventBuilder provides static methods for building snapshot trace events
|
|
10
|
+
*/
|
|
11
|
+
export declare class SnapshotEventBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* Build snapshot trace event data from snapshot
|
|
14
|
+
*
|
|
15
|
+
* @param snap - Snapshot to build event from
|
|
16
|
+
* @param stepId - Optional step ID
|
|
17
|
+
* @returns Trace event data for snapshot
|
|
18
|
+
*/
|
|
19
|
+
static buildSnapshotEventData(snap: Snapshot, stepId?: string): TraceEventData;
|
|
20
|
+
/**
|
|
21
|
+
* Extract base64 string from screenshot data URL
|
|
22
|
+
*
|
|
23
|
+
* @param screenshot - Screenshot data URL or base64 string
|
|
24
|
+
* @returns Base64 string without data URL prefix
|
|
25
|
+
*/
|
|
26
|
+
private static extractScreenshotBase64;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=snapshot-event-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-event-builder.d.ts","sourceRoot":"","sources":["../../src/utils/snapshot-event-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AAEhE;;GAEG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc;IA2D9E;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAOvC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SnapshotEventBuilder - Helper for building snapshot trace events
|
|
4
|
+
*
|
|
5
|
+
* Extracted from SentienceAgent to reduce complexity
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.SnapshotEventBuilder = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* SnapshotEventBuilder provides static methods for building snapshot trace events
|
|
11
|
+
*/
|
|
12
|
+
class SnapshotEventBuilder {
|
|
13
|
+
/**
|
|
14
|
+
* Build snapshot trace event data from snapshot
|
|
15
|
+
*
|
|
16
|
+
* @param snap - Snapshot to build event from
|
|
17
|
+
* @param stepId - Optional step ID
|
|
18
|
+
* @returns Trace event data for snapshot
|
|
19
|
+
*/
|
|
20
|
+
static buildSnapshotEventData(snap, stepId) {
|
|
21
|
+
// Normalize importance values to importance_score (0-1 range) per snapshot
|
|
22
|
+
const importanceValues = snap.elements.map(el => el.importance);
|
|
23
|
+
const minImportance = importanceValues.length > 0 ? Math.min(...importanceValues) : 0;
|
|
24
|
+
const maxImportance = importanceValues.length > 0 ? Math.max(...importanceValues) : 0;
|
|
25
|
+
const importanceRange = maxImportance - minImportance;
|
|
26
|
+
// Include ALL elements with full data for DOM tree display
|
|
27
|
+
const elements = snap.elements.map(el => {
|
|
28
|
+
// Compute normalized importance_score
|
|
29
|
+
let importanceScore;
|
|
30
|
+
if (importanceRange > 0) {
|
|
31
|
+
importanceScore = (el.importance - minImportance) / importanceRange;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// If all elements have same importance, set to 0.5
|
|
35
|
+
importanceScore = 0.5;
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
id: el.id,
|
|
39
|
+
role: el.role,
|
|
40
|
+
text: el.text,
|
|
41
|
+
bbox: el.bbox,
|
|
42
|
+
importance: el.importance,
|
|
43
|
+
importance_score: importanceScore,
|
|
44
|
+
visual_cues: el.visual_cues,
|
|
45
|
+
in_viewport: el.in_viewport,
|
|
46
|
+
is_occluded: el.is_occluded,
|
|
47
|
+
z_index: el.z_index,
|
|
48
|
+
fused_rank_index: el.fused_rank_index,
|
|
49
|
+
heuristic_index: el.heuristic_index,
|
|
50
|
+
ml_probability: el.ml_probability,
|
|
51
|
+
ml_score: el.ml_score,
|
|
52
|
+
diff_status: el.diff_status,
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
const snapshotData = {
|
|
56
|
+
url: snap.url,
|
|
57
|
+
element_count: snap.elements.length,
|
|
58
|
+
timestamp: snap.timestamp,
|
|
59
|
+
elements,
|
|
60
|
+
};
|
|
61
|
+
if (stepId) {
|
|
62
|
+
snapshotData.step_id = stepId;
|
|
63
|
+
}
|
|
64
|
+
// Always include screenshot in trace event for studio viewer compatibility
|
|
65
|
+
if (snap.screenshot) {
|
|
66
|
+
snapshotData.screenshot_base64 = this.extractScreenshotBase64(snap.screenshot);
|
|
67
|
+
if (snap.screenshot_format) {
|
|
68
|
+
snapshotData.screenshot_format = snap.screenshot_format;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return snapshotData;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Extract base64 string from screenshot data URL
|
|
75
|
+
*
|
|
76
|
+
* @param screenshot - Screenshot data URL or base64 string
|
|
77
|
+
* @returns Base64 string without data URL prefix
|
|
78
|
+
*/
|
|
79
|
+
static extractScreenshotBase64(screenshot) {
|
|
80
|
+
if (screenshot.startsWith('data:image')) {
|
|
81
|
+
// Format: "data:image/jpeg;base64,{base64_string}"
|
|
82
|
+
return screenshot.includes(',') ? screenshot.split(',', 2)[1] : screenshot;
|
|
83
|
+
}
|
|
84
|
+
return screenshot;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.SnapshotEventBuilder = SnapshotEventBuilder;
|
|
88
|
+
//# sourceMappingURL=snapshot-event-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-event-builder.js","sourceRoot":"","sources":["../../src/utils/snapshot-event-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SnapshotProcessor - Helper for processing snapshots in agent
|
|
3
|
+
*
|
|
4
|
+
* Extracted from SentienceAgent to reduce complexity
|
|
5
|
+
*/
|
|
6
|
+
import { Snapshot } from '../types';
|
|
7
|
+
export interface ProcessedSnapshot {
|
|
8
|
+
original: Snapshot;
|
|
9
|
+
withDiff: Snapshot;
|
|
10
|
+
filtered: Snapshot;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* SnapshotProcessor provides static methods for processing snapshots
|
|
14
|
+
*/
|
|
15
|
+
export declare class SnapshotProcessor {
|
|
16
|
+
/**
|
|
17
|
+
* Process a snapshot: compute diff status, filter elements
|
|
18
|
+
*
|
|
19
|
+
* @param snap - Original snapshot
|
|
20
|
+
* @param previousSnapshot - Previous snapshot for diff computation
|
|
21
|
+
* @param goal - Goal/task description for filtering
|
|
22
|
+
* @param snapshotLimit - Maximum elements to include
|
|
23
|
+
* @returns Processed snapshot with diff status and filtered elements
|
|
24
|
+
*/
|
|
25
|
+
static process(snap: Snapshot, previousSnapshot: Snapshot | undefined, goal: string, snapshotLimit: number): ProcessedSnapshot;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=snapshot-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-processor.d.ts","sourceRoot":"","sources":["../../src/utils/snapshot-processor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,CACZ,IAAI,EAAE,QAAQ,EACd,gBAAgB,EAAE,QAAQ,GAAG,SAAS,EACtC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,iBAAiB;CAyBrB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SnapshotProcessor - Helper for processing snapshots in agent
|
|
4
|
+
*
|
|
5
|
+
* Extracted from SentienceAgent to reduce complexity
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.SnapshotProcessor = void 0;
|
|
9
|
+
const snapshot_diff_1 = require("../snapshot-diff");
|
|
10
|
+
const element_filter_1 = require("./element-filter");
|
|
11
|
+
/**
|
|
12
|
+
* SnapshotProcessor provides static methods for processing snapshots
|
|
13
|
+
*/
|
|
14
|
+
class SnapshotProcessor {
|
|
15
|
+
/**
|
|
16
|
+
* Process a snapshot: compute diff status, filter elements
|
|
17
|
+
*
|
|
18
|
+
* @param snap - Original snapshot
|
|
19
|
+
* @param previousSnapshot - Previous snapshot for diff computation
|
|
20
|
+
* @param goal - Goal/task description for filtering
|
|
21
|
+
* @param snapshotLimit - Maximum elements to include
|
|
22
|
+
* @returns Processed snapshot with diff status and filtered elements
|
|
23
|
+
*/
|
|
24
|
+
static process(snap, previousSnapshot, goal, snapshotLimit) {
|
|
25
|
+
// Compute diff_status by comparing with previous snapshot
|
|
26
|
+
const elementsWithDiff = snapshot_diff_1.SnapshotDiff.computeDiffStatus(snap, previousSnapshot);
|
|
27
|
+
// Create snapshot with diff_status populated
|
|
28
|
+
const snapWithDiff = {
|
|
29
|
+
...snap,
|
|
30
|
+
elements: elementsWithDiff,
|
|
31
|
+
};
|
|
32
|
+
// Apply element filtering based on goal using ElementFilter
|
|
33
|
+
const filteredElements = element_filter_1.ElementFilter.filterByGoal(snapWithDiff, goal, snapshotLimit);
|
|
34
|
+
// Create filtered snapshot
|
|
35
|
+
const filteredSnap = {
|
|
36
|
+
...snapWithDiff,
|
|
37
|
+
elements: filteredElements,
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
original: snap,
|
|
41
|
+
withDiff: snapWithDiff,
|
|
42
|
+
filtered: filteredSnap,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.SnapshotProcessor = SnapshotProcessor;
|
|
47
|
+
//# sourceMappingURL=snapshot-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-processor.js","sourceRoot":"","sources":["../../src/utils/snapshot-processor.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,oDAAgD;AAChD,qDAAiD;AAQjD;;GAEG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,CACZ,IAAc,EACd,gBAAsC,EACtC,IAAY,EACZ,aAAqB;QAErB,0DAA0D;QAC1D,MAAM,gBAAgB,GAAG,4BAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAEhF,6CAA6C;QAC7C,MAAM,YAAY,GAAa;YAC7B,GAAG,IAAI;YACP,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;QAEF,4DAA4D;QAC5D,MAAM,gBAAgB,GAAG,8BAAa,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAEvF,2BAA2B;QAC3B,MAAM,YAAY,GAAa;YAC7B,GAAG,YAAY;YACf,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,YAAY;SACvB,CAAC;IACJ,CAAC;CACF;AAxCD,8CAwCC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TraceEventBuilder - Common trace event building patterns
|
|
3
|
+
*
|
|
4
|
+
* This utility class extracts common trace event building logic to reduce duplication
|
|
5
|
+
* and ensure consistency across different parts of the codebase.
|
|
6
|
+
*/
|
|
7
|
+
import { TraceEventData } from '../tracing/types';
|
|
8
|
+
import { Snapshot } from '../types';
|
|
9
|
+
import { AgentActResult } from '../agent';
|
|
10
|
+
import { LLMResponse } from '../llm-provider';
|
|
11
|
+
/**
|
|
12
|
+
* TraceEventBuilder provides static methods for building trace events
|
|
13
|
+
*/
|
|
14
|
+
export declare class TraceEventBuilder {
|
|
15
|
+
/**
|
|
16
|
+
* Compute SHA256 hash of text
|
|
17
|
+
*
|
|
18
|
+
* @param text - Text to hash
|
|
19
|
+
* @returns SHA256 hash as hex string
|
|
20
|
+
*
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
private static computeHash;
|
|
24
|
+
/**
|
|
25
|
+
* Build snapshot digest from snapshot data
|
|
26
|
+
*
|
|
27
|
+
* @param snapshot - Snapshot to compute digest for
|
|
28
|
+
* @returns Digest string in format "sha256:..."
|
|
29
|
+
*/
|
|
30
|
+
static buildSnapshotDigest(snapshot: Snapshot): string;
|
|
31
|
+
/**
|
|
32
|
+
* Build LLM usage data from LLM response
|
|
33
|
+
*
|
|
34
|
+
* @param llmResponse - LLM response object
|
|
35
|
+
* @returns LLM usage data for trace event
|
|
36
|
+
*/
|
|
37
|
+
static buildLLMData(llmResponse: LLMResponse): TraceEventData['llm'];
|
|
38
|
+
/**
|
|
39
|
+
* Build execution data from action result
|
|
40
|
+
*
|
|
41
|
+
* @param result - Agent action result
|
|
42
|
+
* @param snapshot - Snapshot used for the action
|
|
43
|
+
* @returns Execution data for trace event
|
|
44
|
+
*/
|
|
45
|
+
static buildExecutionData(result: AgentActResult, snapshot: Snapshot): TraceEventData['exec'];
|
|
46
|
+
/**
|
|
47
|
+
* Build verify data from action result
|
|
48
|
+
*
|
|
49
|
+
* @param result - Agent action result
|
|
50
|
+
* @param snapshot - Snapshot used for the action
|
|
51
|
+
* @returns Verify data for trace event
|
|
52
|
+
*/
|
|
53
|
+
static buildVerifyData(result: AgentActResult, snapshot: Snapshot): TraceEventData['verify'];
|
|
54
|
+
/**
|
|
55
|
+
* Build complete step_end event data
|
|
56
|
+
*
|
|
57
|
+
* @param params - Parameters for building step_end event
|
|
58
|
+
* @returns Complete step_end event data
|
|
59
|
+
*/
|
|
60
|
+
static buildStepEndData(params: {
|
|
61
|
+
stepId: string;
|
|
62
|
+
stepIndex: number;
|
|
63
|
+
goal: string;
|
|
64
|
+
attempt: number;
|
|
65
|
+
preUrl: string;
|
|
66
|
+
postUrl: string | null;
|
|
67
|
+
postSnapshotDigest?: string;
|
|
68
|
+
snapshot: Snapshot;
|
|
69
|
+
llmResponse: LLMResponse;
|
|
70
|
+
result: AgentActResult;
|
|
71
|
+
}): TraceEventData;
|
|
72
|
+
/**
|
|
73
|
+
* Build step_end event data for AgentRuntime (verification loop).
|
|
74
|
+
*/
|
|
75
|
+
static buildRuntimeStepEndData(params: {
|
|
76
|
+
stepId: string;
|
|
77
|
+
stepIndex: number;
|
|
78
|
+
goal: string;
|
|
79
|
+
attempt: number;
|
|
80
|
+
preUrl: string;
|
|
81
|
+
postUrl: string;
|
|
82
|
+
preSnapshotDigest?: string;
|
|
83
|
+
postSnapshotDigest?: string;
|
|
84
|
+
execData: TraceEventData['exec'];
|
|
85
|
+
verifyData: TraceEventData['verify'];
|
|
86
|
+
assertions?: NonNullable<TraceEventData['verify']>['signals']['assertions'];
|
|
87
|
+
taskDone?: boolean;
|
|
88
|
+
taskDoneLabel?: string;
|
|
89
|
+
}): TraceEventData;
|
|
90
|
+
/**
|
|
91
|
+
* Build snapshot event data
|
|
92
|
+
*
|
|
93
|
+
* @param snapshot - Snapshot to build event data for
|
|
94
|
+
* @param goal - Optional goal/task description
|
|
95
|
+
* @returns Snapshot event data
|
|
96
|
+
*/
|
|
97
|
+
static buildSnapshotData(snapshot: Snapshot, goal?: string): TraceEventData;
|
|
98
|
+
/**
|
|
99
|
+
* Build partial step_end event data for failed steps
|
|
100
|
+
*
|
|
101
|
+
* This is used when a step fails after collecting some data (snapshot, LLM response, etc.)
|
|
102
|
+
* but before completing execution. It ensures diff_status and other fields are preserved
|
|
103
|
+
* in traces even when the agent run fails.
|
|
104
|
+
*
|
|
105
|
+
* @param params - Parameters for building partial step_end event
|
|
106
|
+
* @returns Partial step_end event data
|
|
107
|
+
*/
|
|
108
|
+
static buildPartialStepEndData(params: {
|
|
109
|
+
stepId: string;
|
|
110
|
+
stepIndex: number;
|
|
111
|
+
goal: string;
|
|
112
|
+
attempt: number;
|
|
113
|
+
preUrl: string | null;
|
|
114
|
+
postUrl: string | null;
|
|
115
|
+
postSnapshotDigest?: string;
|
|
116
|
+
snapshot?: Snapshot | null;
|
|
117
|
+
llmResponse?: LLMResponse | null;
|
|
118
|
+
error: string;
|
|
119
|
+
durationMs: number;
|
|
120
|
+
}): TraceEventData;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=trace-event-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-event-builder.d.ts","sourceRoot":"","sources":["../../src/utils/trace-event-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAW,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAKtD;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;IAgBpE;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC;IA+C7F;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IAmC5F;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,QAAQ,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,EAAE,cAAc,CAAC;KACxB,GAAG,cAAc;IA2ElB;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE;QACrC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QACjC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrC,UAAU,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,cAAc;IAmDlB;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc;IAqC3E;;;;;;;;;OASG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE;QACrC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;QAC3B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,cAAc;CA+FnB"}
|