@alexanderfortin/pi-tavily-tools 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared/execute.d.ts +28 -0
- package/dist/tools/shared/execute.d.ts.map +1 -0
- package/dist/tools/shared/execute.js +39 -0
- package/dist/tools/shared/execute.js.map +1 -0
- package/dist/tools/shared/truncation.d.ts.map +1 -1
- package/dist/tools/shared/truncation.js +2 -1
- package/dist/tools/shared/truncation.js.map +1 -1
- package/dist/tools/tavily/client.d.ts +10 -1
- package/dist/tools/tavily/client.d.ts.map +1 -1
- package/dist/tools/tavily/client.js +46 -1
- package/dist/tools/tavily/client.js.map +1 -1
- package/dist/tools/tavily/details.d.ts +14 -2
- package/dist/tools/tavily/details.d.ts.map +1 -1
- package/dist/tools/tavily/details.js +29 -0
- package/dist/tools/tavily/details.js.map +1 -1
- package/dist/tools/tavily/formatters.d.ts +12 -1
- package/dist/tools/tavily/formatters.d.ts.map +1 -1
- package/dist/tools/tavily/formatters.js +79 -5
- package/dist/tools/tavily/formatters.js.map +1 -1
- package/dist/tools/tavily/renderers.d.ts +11 -0
- package/dist/tools/tavily/renderers.d.ts.map +1 -1
- package/dist/tools/tavily/renderers.js +121 -0
- package/dist/tools/tavily/renderers.js.map +1 -1
- package/dist/tools/tavily/schemas.d.ts +7 -0
- package/dist/tools/tavily/schemas.d.ts.map +1 -1
- package/dist/tools/tavily/schemas.js +16 -0
- package/dist/tools/tavily/schemas.js.map +1 -1
- package/dist/tools/tavily/types.d.ts +31 -0
- package/dist/tools/tavily/types.d.ts.map +1 -1
- package/dist/tools/web-extract.d.ts +17 -0
- package/dist/tools/web-extract.d.ts.map +1 -0
- package/dist/tools/web-extract.js +69 -0
- package/dist/tools/web-extract.js.map +1 -0
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +10 -17
- package/dist/tools/web-search.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
# Pi Tavily Web Search Extension
|
|
1
|
+
# Pi Tavily Web Search & Extract Extension
|
|
2
2
|
|
|
3
3
|
[](https://codecov.io/gh/shaftoe/pi-tavily-tools)
|
|
4
4
|
|
|
5
|
-
Add web search capabilities to Pi using the Tavily
|
|
5
|
+
Add web search and content extraction capabilities to [Pi coding agent](https://pi.dev) using the Tavily API.
|
|
6
6
|
|
|
7
|
-
This extension provides
|
|
7
|
+
This extension provides two tools:
|
|
8
|
+
|
|
9
|
+
- `web_search`: Find current information, recent news, documentation, and time-sensitive data
|
|
10
|
+
- `web_extract`: Extract raw content from one or more web pages for detailed analysis
|
|
8
11
|
|
|
9
12
|
Requires a valid `TAVILY_API_KEY` exported in the enviornment, e.g.
|
|
10
13
|
|
|
@@ -16,12 +19,26 @@ You can get a free one at <https://tavily.com>
|
|
|
16
19
|
|
|
17
20
|
## Features
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
### Web Search
|
|
23
|
+
|
|
24
|
+
- **Real-time Search:** Query the web for current information
|
|
20
25
|
- **AI-Generated Answers:** Get direct answers to questions powered by Tavily
|
|
21
26
|
- **Configurable Depth:** Choose between "basic" and "advanced" search modes
|
|
22
27
|
- **Time Filtering:** Limit results to recent timeframes (e.g., last 7 days)
|
|
23
28
|
- **Image Support:** Include relevant images in search results
|
|
24
|
-
- **Content
|
|
29
|
+
- **Raw Content:** Optional raw content for deeper analysis
|
|
30
|
+
|
|
31
|
+
### Web Extract
|
|
32
|
+
|
|
33
|
+
- **Content Extraction:** Extract full content from one or more URLs
|
|
34
|
+
- **Batch Processing:** Extract from up to 20 URLs in a single request
|
|
35
|
+
- **Configurable Depth:** Choose between "basic" and "advanced" extraction
|
|
36
|
+
- **Multiple Formats:** Output in markdown or plain text
|
|
37
|
+
- **Image Extraction:** Optionally include images from pages
|
|
38
|
+
- **Query Filtering:** Focus extraction on specific content within pages
|
|
39
|
+
|
|
40
|
+
### Shared Features
|
|
41
|
+
|
|
25
42
|
- **Proper Truncation:** Output truncated to 50KB / 2000 lines to avoid context overflow
|
|
26
43
|
- **Custom TUI Rendering:** Beautiful display with expandable results
|
|
27
44
|
- **Error Handling:** Graceful failures with helpful error messages
|
|
@@ -160,6 +177,94 @@ The `web_search` tool accepts the following parameters:
|
|
|
160
177
|
{ query: "Bun documentation", include_raw_content: true }
|
|
161
178
|
```
|
|
162
179
|
|
|
180
|
+
## Web Extract Usage
|
|
181
|
+
|
|
182
|
+
### Basic Content Extraction
|
|
183
|
+
|
|
184
|
+
Extract the full content of a specific page:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
Extract the content from https://example.com/article
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Read the full article at https://docs.example.com/guide
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Batch Extraction
|
|
195
|
+
|
|
196
|
+
Extract content from multiple URLs at once:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
Extract content from these pages:
|
|
200
|
+
- https://wikipedia.org/wiki/Artificial_intelligence
|
|
201
|
+
- https://wikipedia.org/wiki/Machine_learning
|
|
202
|
+
- https://wikipedia.org/wiki/Data_science
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Extract with Images
|
|
206
|
+
|
|
207
|
+
Include images when extracting content:
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
Extract the article and images from https://example.com/visual-guide
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Plain Text Format
|
|
214
|
+
|
|
215
|
+
Get content in plain text instead of markdown:
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
Extract https://example.com/article as plain text
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Content Filtering
|
|
222
|
+
|
|
223
|
+
Focus extraction on specific content:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
Extract content about "security" from https://example.com/docs
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Advanced Extraction
|
|
230
|
+
|
|
231
|
+
Use advanced extraction for more comprehensive content:
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
Extract detailed content from https://example.com/long-article using advanced mode
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Web Extract Parameters
|
|
238
|
+
|
|
239
|
+
The `web_extract` tool accepts the following parameters:
|
|
240
|
+
|
|
241
|
+
| Parameter | Type | Required | Default | Description |
|
|
242
|
+
| ---------------- | ------- | -------- | ---------- | ---------------------------------------------- |
|
|
243
|
+
| `urls` | array | Yes | - | Array of URLs to extract content from (max 20) |
|
|
244
|
+
| `extract_depth` | string | No | "basic" | Extraction depth: "basic" or "advanced" |
|
|
245
|
+
| `include_images` | boolean | No | false | Include images from pages |
|
|
246
|
+
| `format` | string | No | "markdown" | Output format: "markdown" or "text" |
|
|
247
|
+
| `query` | string | No | - | Optional query to focus extraction on content |
|
|
248
|
+
|
|
249
|
+
### Parameter Examples
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
// Single URL extraction
|
|
253
|
+
{ urls: ["https://example.com/article"] }
|
|
254
|
+
|
|
255
|
+
// Multiple URLs
|
|
256
|
+
{ urls: ["https://site1.com", "https://site2.com", "https://site3.com"] }
|
|
257
|
+
|
|
258
|
+
// Advanced extraction with images
|
|
259
|
+
{ urls: ["https://example.com"], extract_depth: "advanced", include_images: true }
|
|
260
|
+
|
|
261
|
+
// Plain text format
|
|
262
|
+
{ urls: ["https://example.com"], format: "text" }
|
|
263
|
+
|
|
264
|
+
// Content filtering
|
|
265
|
+
{ urls: ["https://docs.example.com"], query: "API reference" }
|
|
266
|
+
```
|
|
267
|
+
|
|
163
268
|
## Output Truncation
|
|
164
269
|
|
|
165
270
|
To prevent overwhelming the LLM context, tool output is truncated to:
|
|
@@ -172,7 +277,9 @@ Whichever limit is hit first triggers truncation.
|
|
|
172
277
|
When output is truncated:
|
|
173
278
|
|
|
174
279
|
- A warning is displayed in the results
|
|
175
|
-
- Full output is saved to a temp file in your project directory:
|
|
280
|
+
- Full output is saved to a temp file in your project directory:
|
|
281
|
+
- `.pi-tavily-temp/search-{timestamp}.txt` for web_search
|
|
282
|
+
- `.pi-tavily-temp/extract-{timestamp}.txt` for web_extract
|
|
176
283
|
- The LLM is informed where to find the complete output
|
|
177
284
|
|
|
178
285
|
## Troubleshooting
|
|
@@ -251,6 +358,37 @@ Error: You have exceeded your monthly request limit
|
|
|
251
358
|
3. Remove any special characters or complex filters
|
|
252
359
|
4. Try basic search depth instead of advanced
|
|
253
360
|
|
|
361
|
+
### No Content Extracted
|
|
362
|
+
|
|
363
|
+
**Symptoms:**
|
|
364
|
+
|
|
365
|
+
- Extract returns "No content was extracted successfully."
|
|
366
|
+
- All URLs failed
|
|
367
|
+
|
|
368
|
+
**Solutions:**
|
|
369
|
+
|
|
370
|
+
1. Check that URLs are accessible (try opening in a browser)
|
|
371
|
+
2. Verify URLs start with `http://` or `https://`
|
|
372
|
+
3. Some websites may block automated extraction
|
|
373
|
+
4. Try with different URLs
|
|
374
|
+
5. Check failed results for specific error messages
|
|
375
|
+
|
|
376
|
+
### URL Validation Errors
|
|
377
|
+
|
|
378
|
+
**Error Messages:**
|
|
379
|
+
|
|
380
|
+
```
|
|
381
|
+
Error: URLs array cannot be empty
|
|
382
|
+
Error: Invalid URL format
|
|
383
|
+
Error: Maximum 20 URLs allowed
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**Solutions:**
|
|
387
|
+
|
|
388
|
+
1. Provide at least one URL in the urls array
|
|
389
|
+
2. Ensure all URLs are valid and start with http:// or https://
|
|
390
|
+
3. Limit to 20 URLs maximum per request
|
|
391
|
+
|
|
254
392
|
## Development
|
|
255
393
|
|
|
256
394
|
### Project Structure
|
|
@@ -276,8 +414,10 @@ pi-tavily-tools/
|
|
|
276
414
|
│ └── tools/
|
|
277
415
|
│ ├── index.ts # Tool exports
|
|
278
416
|
│ ├── web-search.ts # Web search tool implementation
|
|
417
|
+
│ ├── web-extract.ts # Web extract tool implementation
|
|
279
418
|
│ ├── tavily/ # Tavily API integration
|
|
280
419
|
│ │ ├── client.ts # Tavily client & initialization
|
|
420
|
+
│ │ ├── details.ts # Result details builders
|
|
281
421
|
│ │ ├── formatters.ts # Response formatting
|
|
282
422
|
│ │ ├── renderers.ts # TUI rendering utilities
|
|
283
423
|
│ │ ├── schemas.ts # TypeBox parameter schemas
|
|
@@ -286,13 +426,17 @@ pi-tavily-tools/
|
|
|
286
426
|
│ └── truncation.ts # Output truncation utilities
|
|
287
427
|
└── tests/
|
|
288
428
|
├── integration/ # Integration tests
|
|
289
|
-
│
|
|
429
|
+
│ ├── web-search.test.ts
|
|
430
|
+
│ └── web-extract.test.ts
|
|
290
431
|
├── client.test.ts
|
|
291
432
|
├── create-error-output.test.ts
|
|
433
|
+
├── details.test.ts
|
|
292
434
|
├── formatters.test.ts
|
|
293
435
|
├── renderers.test.ts
|
|
294
436
|
├── schemas.test.ts
|
|
295
|
-
|
|
437
|
+
├── truncation.test.ts
|
|
438
|
+
├── web-search.test.ts
|
|
439
|
+
└── web-extract.test.ts
|
|
296
440
|
```
|
|
297
441
|
|
|
298
442
|
### Running Type Checks
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAKlE;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CAoB/C"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* information, recent news, documentation, and time-sensitive data.
|
|
7
7
|
*/
|
|
8
8
|
import { createTavilyClient } from "./tools/tavily/client.js";
|
|
9
|
+
import { registerWebExtractTool } from "./tools/web-extract.js";
|
|
9
10
|
import { registerWebSearchTool } from "./tools/web-search.js";
|
|
10
11
|
/**
|
|
11
12
|
* Main extension entry point.
|
|
@@ -23,6 +24,7 @@ export default function (pi) {
|
|
|
23
24
|
try {
|
|
24
25
|
const client = createTavilyClient();
|
|
25
26
|
registerWebSearchTool(pi, client);
|
|
27
|
+
registerWebExtractTool(pi, client);
|
|
26
28
|
}
|
|
27
29
|
catch (error) {
|
|
28
30
|
if (error instanceof Error) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,WAAW,EAAgB;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACrC,IAAI,UAAU;YAAE,OAAO;QACvB,UAAU,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,WAAW,EAAgB;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACrC,IAAI,UAAU;YAAE,OAAO;QACvB,UAAU,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAClC,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/tools/index.js
CHANGED
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared execute helpers for Tavily tools
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable utilities for the common phases of tool execution:
|
|
5
|
+
* - Progress updates (onUpdate)
|
|
6
|
+
* - Truncation + result assembly
|
|
7
|
+
*/
|
|
8
|
+
import type { AgentToolUpdateCallback, ExtensionContext, TruncationResult } from "@mariozechner/pi-coding-agent";
|
|
9
|
+
/**
|
|
10
|
+
* Send a progress update to the TUI during tool execution.
|
|
11
|
+
* Wraps the common `onUpdate?.({ content: [...], details: {} })` pattern.
|
|
12
|
+
*/
|
|
13
|
+
export declare function sendProgress(onUpdate: AgentToolUpdateCallback | undefined, message: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Apply truncation to full output and assemble the standard tool result.
|
|
16
|
+
*
|
|
17
|
+
* Handles: truncation → temp file (if needed) → `{ content, details }` return shape.
|
|
18
|
+
* The `buildDetails` callback receives truncation metadata so each tool can
|
|
19
|
+
* include it in its own typed details object.
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildToolResult<TDetails>(fullOutput: string, ctx: ExtensionContext, toolName: string, buildDetails: (truncation: TruncationResult | undefined, fullOutputPath: string | undefined) => TDetails): Promise<{
|
|
22
|
+
content: Array<{
|
|
23
|
+
type: "text";
|
|
24
|
+
text: string;
|
|
25
|
+
}>;
|
|
26
|
+
details: TDetails;
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/execute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAQvC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKjG;AAMD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAC5C,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,CACZ,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,QAAQ,GACZ,OAAO,CAAC;IACT,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC,CAWD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared execute helpers for Tavily tools
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable utilities for the common phases of tool execution:
|
|
5
|
+
* - Progress updates (onUpdate)
|
|
6
|
+
* - Truncation + result assembly
|
|
7
|
+
*/
|
|
8
|
+
import { applyTruncation } from "./truncation.js";
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Progress Update
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/**
|
|
13
|
+
* Send a progress update to the TUI during tool execution.
|
|
14
|
+
* Wraps the common `onUpdate?.({ content: [...], details: {} })` pattern.
|
|
15
|
+
*/
|
|
16
|
+
export function sendProgress(onUpdate, message) {
|
|
17
|
+
onUpdate?.({
|
|
18
|
+
content: [{ type: "text", text: message }],
|
|
19
|
+
details: {},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// Tool Result Assembly
|
|
24
|
+
// ============================================================================
|
|
25
|
+
/**
|
|
26
|
+
* Apply truncation to full output and assemble the standard tool result.
|
|
27
|
+
*
|
|
28
|
+
* Handles: truncation → temp file (if needed) → `{ content, details }` return shape.
|
|
29
|
+
* The `buildDetails` callback receives truncation metadata so each tool can
|
|
30
|
+
* include it in its own typed details object.
|
|
31
|
+
*/
|
|
32
|
+
export async function buildToolResult(fullOutput, ctx, toolName, buildDetails) {
|
|
33
|
+
const { content, truncation, fullOutputPath } = await applyTruncation(fullOutput, ctx.cwd, toolName);
|
|
34
|
+
return {
|
|
35
|
+
content: [{ type: "text", text: content }],
|
|
36
|
+
details: buildDetails(truncation, fullOutputPath),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/tools/shared/execute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAA6C,EAAE,OAAe;IACzF,QAAQ,EAAE,CAAC;QACT,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,GAAqB,EACrB,QAAgB,EAChB,YAGa;IAKb,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,eAAe,CACnE,UAAU,EACV,GAAG,CAAC,GAAG,EACP,QAAQ,CACT,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncation.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/truncation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAMvC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"truncation.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/truncation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAMvC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAwC1B"}
|
|
@@ -29,7 +29,8 @@ export async function applyTruncation(fullOutput, cwd, toolName) {
|
|
|
29
29
|
content += `showing ${truncation.outputLines} of ${truncation.totalLines} lines, `;
|
|
30
30
|
content += `(${formatSize(truncation.outputBytes)} of ${formatSize(truncation.totalBytes)}). `;
|
|
31
31
|
content += `${truncatedLines} lines (${formatSize(truncatedBytes)}) omitted. `;
|
|
32
|
-
content += `Full output saved to: ${tempFile}
|
|
32
|
+
content += `Full output saved to: ${tempFile}. `;
|
|
33
|
+
content += "Use the read tool to read the full output from this file.]";
|
|
33
34
|
return {
|
|
34
35
|
content,
|
|
35
36
|
truncation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncation.js","sourceRoot":"","sources":["../../../src/tools/shared/truncation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,qBAAqB,GAEtB,MAAM,+BAA+B,CAAC;AAYvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,GAAW,EACX,QAAgB;IAEhB,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE;QAC1C,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAEjC,6CAA6C;IAC7C,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,GAAG,kBAAkB,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,QAAQ,IAAI,SAAS,MAAM,CAAC;QAE3D,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC;QACtE,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC;QAEtE,OAAO,IAAI,MAAM,CAAC;QAClB,OAAO,IAAI,qBAAqB,CAAC;QACjC,OAAO,IAAI,WAAW,UAAU,CAAC,WAAW,OAAO,UAAU,CAAC,UAAU,UAAU,CAAC;QACnF,OAAO,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/F,OAAO,IAAI,GAAG,cAAc,WAAW,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC;QAC/E,OAAO,IAAI,yBAAyB,QAAQ,
|
|
1
|
+
{"version":3,"file":"truncation.js","sourceRoot":"","sources":["../../../src/tools/shared/truncation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,qBAAqB,GAEtB,MAAM,+BAA+B,CAAC;AAYvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,GAAW,EACX,QAAgB;IAEhB,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE;QAC1C,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAEjC,6CAA6C;IAC7C,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,GAAG,kBAAkB,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,QAAQ,IAAI,SAAS,MAAM,CAAC;QAE3D,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC;QACtE,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC;QAEtE,OAAO,IAAI,MAAM,CAAC;QAClB,OAAO,IAAI,qBAAqB,CAAC;QACjC,OAAO,IAAI,WAAW,UAAU,CAAC,WAAW,OAAO,UAAU,CAAC,UAAU,UAAU,CAAC;QACnF,OAAO,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/F,OAAO,IAAI,GAAG,cAAc,WAAW,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC;QAC/E,OAAO,IAAI,yBAAyB,QAAQ,IAAI,CAAC;QACjD,OAAO,IAAI,4DAA4D,CAAC;QAExE,OAAO;YACL,OAAO;YACP,UAAU;YACV,cAAc,EAAE,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Creates Tavily client instances with proper initialization.
|
|
5
5
|
*/
|
|
6
|
-
import { type TavilyClient, type TavilySearchOptions } from "@tavily/core";
|
|
6
|
+
import { type TavilyClient, type TavilyExtractOptions, type TavilySearchOptions } from "@tavily/core";
|
|
7
7
|
/**
|
|
8
8
|
* Create a new Tavily client instance
|
|
9
9
|
* @throws {Error} If TAVILY_API_KEY is not set or client initialization fails
|
|
@@ -24,4 +24,13 @@ export declare function createSearchFunction(client: TavilyClient): import("@tav
|
|
|
24
24
|
* @throws {Error} If query is empty or whitespace only
|
|
25
25
|
*/
|
|
26
26
|
export declare function validateQuery(query: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Build Tavily extract options from parameters
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildExtractOptions(params: Record<string, unknown>): TavilyExtractOptions;
|
|
31
|
+
/**
|
|
32
|
+
* Validate URLs array
|
|
33
|
+
* @throws {Error} If URLs array is empty, exceeds max count, or contains invalid URLs
|
|
34
|
+
*/
|
|
35
|
+
export declare function validateUrls(urls: unknown[]): string[];
|
|
27
36
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAMtB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAiBhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAYvF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,8CAExD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnD;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAOzF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAiCtD"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Creates Tavily client instances with proper initialization.
|
|
5
5
|
*/
|
|
6
|
-
import { tavily } from "@tavily/core";
|
|
6
|
+
import { tavily, } from "@tavily/core";
|
|
7
7
|
// ============================================================================
|
|
8
8
|
// Client Creation
|
|
9
9
|
// ============================================================================
|
|
@@ -59,4 +59,49 @@ export function validateQuery(query) {
|
|
|
59
59
|
}
|
|
60
60
|
return trimmed;
|
|
61
61
|
}
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Extract Helpers
|
|
64
|
+
// ============================================================================
|
|
65
|
+
/**
|
|
66
|
+
* Build Tavily extract options from parameters
|
|
67
|
+
*/
|
|
68
|
+
export function buildExtractOptions(params) {
|
|
69
|
+
return {
|
|
70
|
+
extractDepth: params.extract_depth ?? "basic",
|
|
71
|
+
includeImages: params.include_images === true,
|
|
72
|
+
format: params.format ?? "markdown",
|
|
73
|
+
query: typeof params.query === "string" ? params.query : undefined,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Validate URLs array
|
|
78
|
+
* @throws {Error} If URLs array is empty, exceeds max count, or contains invalid URLs
|
|
79
|
+
*/
|
|
80
|
+
export function validateUrls(urls) {
|
|
81
|
+
if (!Array.isArray(urls)) {
|
|
82
|
+
throw new Error("URLs must be an array");
|
|
83
|
+
}
|
|
84
|
+
if (urls.length === 0) {
|
|
85
|
+
throw new Error("URLs array cannot be empty");
|
|
86
|
+
}
|
|
87
|
+
if (urls.length > 20) {
|
|
88
|
+
throw new Error("Maximum 20 URLs allowed, got " + urls.length);
|
|
89
|
+
}
|
|
90
|
+
const validatedUrls = [];
|
|
91
|
+
for (const url of urls) {
|
|
92
|
+
if (typeof url !== "string") {
|
|
93
|
+
throw new Error("All URLs must be strings");
|
|
94
|
+
}
|
|
95
|
+
const trimmed = url.trim();
|
|
96
|
+
if (!trimmed) {
|
|
97
|
+
throw new Error("URLs cannot be empty strings");
|
|
98
|
+
}
|
|
99
|
+
// Basic URL validation - must start with http:// or https://
|
|
100
|
+
if (!trimmed.match(/^https?:\/\//i)) {
|
|
101
|
+
throw new Error(`Invalid URL format: ${trimmed}. URLs must start with http:// or https://`);
|
|
102
|
+
}
|
|
103
|
+
validatedUrls.push(trimmed);
|
|
104
|
+
}
|
|
105
|
+
return validatedUrls;
|
|
106
|
+
}
|
|
62
107
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/tools/tavily/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/tools/tavily/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* framework and reported to the LLM with isError: true.
|
|
9
9
|
*/
|
|
10
10
|
import type { TruncationResult } from "@mariozechner/pi-coding-agent";
|
|
11
|
-
import type { TavilySearchOptions } from "@tavily/core";
|
|
12
|
-
import type { SearchResult, WebSearchDetails } from "./types.js";
|
|
11
|
+
import type { TavilyExtractOptions, TavilySearchOptions } from "@tavily/core";
|
|
12
|
+
import type { ExtractFailedResult, ExtractResult, SearchResult, WebExtractDetails, WebSearchDetails } from "./types.js";
|
|
13
13
|
export interface SuccessDetailsInput {
|
|
14
14
|
query: string;
|
|
15
15
|
options: TavilySearchOptions;
|
|
@@ -22,4 +22,16 @@ export interface SuccessDetailsInput {
|
|
|
22
22
|
* Build WebSearchDetails for a successful search.
|
|
23
23
|
*/
|
|
24
24
|
export declare function buildSuccessDetails(input: SuccessDetailsInput): WebSearchDetails;
|
|
25
|
+
export interface ExtractSuccessDetailsInput {
|
|
26
|
+
urlCount: number;
|
|
27
|
+
options: TavilyExtractOptions;
|
|
28
|
+
results: ExtractResult[];
|
|
29
|
+
failedResults: ExtractFailedResult[];
|
|
30
|
+
truncation?: TruncationResult;
|
|
31
|
+
fullOutputPath?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Build WebExtractDetails for a successful extract operation.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildExtractSuccessDetails(input: ExtractSuccessDetailsInput): WebExtractDetails;
|
|
25
37
|
//# sourceMappingURL=details.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/details.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/details.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAuBpB,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,gBAAgB,CAqBhF;AAMD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAaD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,0BAA0B,GAAG,iBAAiB,CAgB/F"}
|
|
@@ -46,4 +46,33 @@ export function buildSuccessDetails(input) {
|
|
|
46
46
|
fullOutputPath: input.fullOutputPath,
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Read normalized param defaults from TavilyExtractOptions.
|
|
51
|
+
*/
|
|
52
|
+
function extractOptionDefaults(options) {
|
|
53
|
+
return {
|
|
54
|
+
extractDepth: String(options.extractDepth ?? "basic"),
|
|
55
|
+
includeImages: options.includeImages ?? false,
|
|
56
|
+
format: String(options.format ?? "markdown"),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build WebExtractDetails for a successful extract operation.
|
|
61
|
+
*/
|
|
62
|
+
export function buildExtractSuccessDetails(input) {
|
|
63
|
+
const defaults = extractOptionDefaults(input.options);
|
|
64
|
+
return {
|
|
65
|
+
urlCount: input.urlCount,
|
|
66
|
+
extractDepth: defaults.extractDepth,
|
|
67
|
+
includeImages: defaults.includeImages,
|
|
68
|
+
format: defaults.format,
|
|
69
|
+
query: input.options.query,
|
|
70
|
+
successCount: input.results.length,
|
|
71
|
+
failureCount: input.failedResults.length,
|
|
72
|
+
results: input.results,
|
|
73
|
+
failedResults: input.failedResults,
|
|
74
|
+
truncation: input.truncation,
|
|
75
|
+
fullOutputPath: input.fullOutputPath,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
49
78
|
//# sourceMappingURL=details.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/tools/tavily/details.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/tools/tavily/details.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,cAAc,CAAC,OAA4B;IAClD,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;QACnC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC;QACnD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;QAC7C,aAAa,EAAE,OAAO,CAAC,aAAa,KAAK,KAAK;QAC9C,iBAAiB,EAAE,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ;KACjE,CAAC;AACJ,CAAC;AAeD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA0B;IAC5D,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE/C,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;QACjC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC;QACH,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC;AAeD;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAA6B;IAC1D,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC;QACrD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;QAC7C,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAiC;IAC1E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,QAAQ,CAAC,YAAoC;QAC3D,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,MAAM,EAAE,QAAQ,CAAC,MAA6B;QAC9C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QAC1B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;QAClC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM;QACxC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Response formatters for Tavily tools
|
|
3
3
|
*/
|
|
4
|
-
import type { FormattedOutputParts, ImageResult, SearchResult } from "./types.js";
|
|
4
|
+
import type { ExtractFailedResult, ExtractResult, FormattedOutputParts, ImageResult, SearchResult } from "./types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Format Tavily search response into human-readable text
|
|
7
7
|
*/
|
|
@@ -18,4 +18,15 @@ export declare function extractSearchResults(response: unknown): {
|
|
|
18
18
|
results: SearchResult[];
|
|
19
19
|
images: ImageResult[];
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* Format Tavily extract response into human-readable text
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatExtractResponse(results: ExtractResult[], failedResults: ExtractFailedResult[], includeImages: boolean): string;
|
|
25
|
+
/**
|
|
26
|
+
* Extract and type-safe Tavily extract response data
|
|
27
|
+
*/
|
|
28
|
+
export declare function extractExtractResults(response: unknown): {
|
|
29
|
+
results: ExtractResult[];
|
|
30
|
+
failedResults: ExtractFailedResult[];
|
|
31
|
+
};
|
|
21
32
|
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,WAAW,EAAE,EACrB,aAAa,EAAE,OAAO,GAAG,SAAS,GACjC,MAAM,CAwCR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,WAAW,EAAE,EACrB,aAAa,EAAE,OAAO,GACrB,oBAAoB,CAgCtB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG;IACvD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CA4CA;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,EAAE,EACxB,aAAa,EAAE,mBAAmB,EAAE,EACpC,aAAa,EAAE,OAAO,GACrB,MAAM,CAyCR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG;IACxD,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,EAAE,mBAAmB,EAAE,CAAC;CACtC,CA0CA"}
|
|
@@ -18,11 +18,10 @@ export function formatWebSearchResponse(answer, results, images, includeImages)
|
|
|
18
18
|
parts.push("Sources:");
|
|
19
19
|
results.forEach((result, index) => {
|
|
20
20
|
parts.push(`\n${index + 1}. ${result.title}`, ` URL: ${result.url}`, ` Score: ${result.score.toFixed(2)}`);
|
|
21
|
-
// Add content
|
|
21
|
+
// Add full content — truncation is handled downstream by applyTruncation
|
|
22
22
|
const contentToShow = result.rawContent || result.content;
|
|
23
23
|
if (contentToShow) {
|
|
24
|
-
|
|
25
|
-
parts.push(` Content: ${snippet}${contentToShow.length > 300 ? "..." : ""}`);
|
|
24
|
+
parts.push(` Content: ${contentToShow}`);
|
|
26
25
|
}
|
|
27
26
|
});
|
|
28
27
|
}
|
|
@@ -54,8 +53,7 @@ export function formatSearchResults(answer, results, images, includeImages) {
|
|
|
54
53
|
parts.sources.push(`\n${index + 1}. ${result.title}`, ` URL: ${result.url}`, ` Score: ${result.score.toFixed(2)}`);
|
|
55
54
|
const contentToShow = result.rawContent || result.content;
|
|
56
55
|
if (contentToShow) {
|
|
57
|
-
|
|
58
|
-
parts.sources.push(` Content: ${snippet}${contentToShow.length > 300 ? "..." : ""}`);
|
|
56
|
+
parts.sources.push(` Content: ${contentToShow}`);
|
|
59
57
|
}
|
|
60
58
|
});
|
|
61
59
|
// Add image results if available
|
|
@@ -105,4 +103,80 @@ export function extractSearchResults(response) {
|
|
|
105
103
|
images,
|
|
106
104
|
};
|
|
107
105
|
}
|
|
106
|
+
// ============================================================================
|
|
107
|
+
// Web Extract Formatting
|
|
108
|
+
// ============================================================================
|
|
109
|
+
/**
|
|
110
|
+
* Format Tavily extract response into human-readable text
|
|
111
|
+
*/
|
|
112
|
+
export function formatExtractResponse(results, failedResults, includeImages) {
|
|
113
|
+
const parts = [];
|
|
114
|
+
// Add successful extractions
|
|
115
|
+
if (results.length > 0) {
|
|
116
|
+
parts.push(`Successfully extracted content from ${results.length} URL(s):\n`);
|
|
117
|
+
results.forEach((result, index) => {
|
|
118
|
+
parts.push(`${index + 1}. ${result.title || "Untitled"}`);
|
|
119
|
+
parts.push(` URL: ${result.url}`);
|
|
120
|
+
// Add full content — truncation is handled downstream by applyTruncation
|
|
121
|
+
parts.push(` Content: ${result.rawContent}`);
|
|
122
|
+
// Add images if available and requested
|
|
123
|
+
if (includeImages && result.images && result.images.length > 0) {
|
|
124
|
+
parts.push(` Images: ${result.images.length} found`);
|
|
125
|
+
result.images.slice(0, 3).forEach((img, imgIndex) => {
|
|
126
|
+
parts.push(` ${imgIndex + 1}. ${img}`);
|
|
127
|
+
});
|
|
128
|
+
if (result.images.length > 3) {
|
|
129
|
+
parts.push(` ... ${result.images.length - 3} more`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
parts.push("");
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
parts.push("No content was extracted successfully.");
|
|
137
|
+
}
|
|
138
|
+
// Add failed extractions
|
|
139
|
+
if (failedResults.length > 0) {
|
|
140
|
+
parts.push(`\nFailed to extract from ${failedResults.length} URL(s):\n`);
|
|
141
|
+
failedResults.forEach((failed, index) => {
|
|
142
|
+
parts.push(`${index + 1}. URL: ${failed.url}`);
|
|
143
|
+
parts.push(` Error: ${failed.error}`);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
return parts.join("\n");
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Extract and type-safe Tavily extract response data
|
|
150
|
+
*/
|
|
151
|
+
export function extractExtractResults(response) {
|
|
152
|
+
const resp = response;
|
|
153
|
+
// Extract successful results
|
|
154
|
+
const results = (resp.results || [])
|
|
155
|
+
.filter((r) => r !== null && typeof r === "object")
|
|
156
|
+
.map((r) => {
|
|
157
|
+
const result = r;
|
|
158
|
+
return {
|
|
159
|
+
url: typeof result.url === "string" ? result.url : "",
|
|
160
|
+
title: typeof result.title === "string" ? result.title : null,
|
|
161
|
+
rawContent: typeof result.rawContent === "string" ? result.rawContent : "",
|
|
162
|
+
images: Array.isArray(result.images) && result.images.every((img) => typeof img === "string")
|
|
163
|
+
? result.images
|
|
164
|
+
: undefined,
|
|
165
|
+
};
|
|
166
|
+
});
|
|
167
|
+
// Extract failed results
|
|
168
|
+
const failedResults = (resp.failedResults || [])
|
|
169
|
+
.filter((f) => f !== null && typeof f === "object")
|
|
170
|
+
.map((f) => {
|
|
171
|
+
const failed = f;
|
|
172
|
+
return {
|
|
173
|
+
url: typeof failed.url === "string" ? failed.url : "",
|
|
174
|
+
error: typeof failed.error === "string" ? failed.error : "Unknown error",
|
|
175
|
+
};
|
|
176
|
+
});
|
|
177
|
+
return {
|
|
178
|
+
results,
|
|
179
|
+
failedResults,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
108
182
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../src/tools/tavily/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../src/tools/tavily/formatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,5 +24,16 @@ export declare function renderWebSearchResult(result: ToolCallResult, state: {
|
|
|
24
24
|
expanded: boolean;
|
|
25
25
|
isPartial: boolean;
|
|
26
26
|
}, theme: Theme): Text;
|
|
27
|
+
/**
|
|
28
|
+
* Render a web extract tool call
|
|
29
|
+
*/
|
|
30
|
+
export declare function renderExtractCall(args: Record<string, unknown>, theme: Theme): Text;
|
|
31
|
+
/**
|
|
32
|
+
* Render a web extract tool result
|
|
33
|
+
*/
|
|
34
|
+
export declare function renderExtractResult(result: ToolCallResult, state: {
|
|
35
|
+
expanded: boolean;
|
|
36
|
+
isPartial: boolean;
|
|
37
|
+
}, theme: Theme): Text;
|
|
27
38
|
export {};
|
|
28
39
|
//# sourceMappingURL=renderers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/renderers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAmB,MAAM,sBAAsB,CAAC;AAO7D,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC,CAAC;AAMF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA8BrF;AAuBD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAChD,KAAK,EAAE,KAAK,GACX,IAAI,CAeN"}
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/renderers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAmB,MAAM,sBAAsB,CAAC;AAO7D,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC,CAAC;AAMF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA8BrF;AAuBD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAChD,KAAK,EAAE,KAAK,GACX,IAAI,CAeN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAiCnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAChD,KAAK,EAAE,KAAK,GACX,IAAI,CAeN"}
|
|
@@ -71,6 +71,127 @@ export function renderWebSearchResult(result, state, theme) {
|
|
|
71
71
|
// Build result display
|
|
72
72
|
return renderSearchResultCommon(details, state.expanded, theme, true);
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Render a web extract tool call
|
|
76
|
+
*/
|
|
77
|
+
export function renderExtractCall(args, theme) {
|
|
78
|
+
let text = theme.fg("toolTitle", theme.bold("web_extract "));
|
|
79
|
+
const urls = Array.isArray(args.urls) ? args.urls : [];
|
|
80
|
+
const urlCount = urls.length;
|
|
81
|
+
if (urlCount === 0) {
|
|
82
|
+
text += theme.fg("warning", "(no URLs)");
|
|
83
|
+
}
|
|
84
|
+
else if (urlCount === 1) {
|
|
85
|
+
const url = typeof urls[0] === "string" ? urls[0] : "(invalid)";
|
|
86
|
+
text += theme.fg("accent", `"${url}"`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
text += theme.fg("accent", `${urlCount} URLs`);
|
|
90
|
+
}
|
|
91
|
+
const options = [];
|
|
92
|
+
if (args.extract_depth === "advanced") {
|
|
93
|
+
options.push("advanced");
|
|
94
|
+
}
|
|
95
|
+
if (args.include_images === true) {
|
|
96
|
+
options.push("images");
|
|
97
|
+
}
|
|
98
|
+
if (args.format === "text") {
|
|
99
|
+
options.push("text");
|
|
100
|
+
}
|
|
101
|
+
if (args.query && typeof args.query === "string") {
|
|
102
|
+
options.push(`query: "${args.query.slice(0, 20)}"`);
|
|
103
|
+
}
|
|
104
|
+
if (options.length > 0) {
|
|
105
|
+
text += ` ${theme.fg("dim", `[${options.join(", ")}]`)}`;
|
|
106
|
+
}
|
|
107
|
+
return new Text(truncateToWidth(text, 100), 0, 0);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Render a web extract tool result
|
|
111
|
+
*/
|
|
112
|
+
export function renderExtractResult(result, state, theme) {
|
|
113
|
+
const details = result.details;
|
|
114
|
+
// Show loading state
|
|
115
|
+
if (state.isPartial) {
|
|
116
|
+
return new Text(theme.fg("warning", "Extracting..."), 0, 0);
|
|
117
|
+
}
|
|
118
|
+
// Show error state
|
|
119
|
+
if (details?.error) {
|
|
120
|
+
return new Text(theme.fg("error", `Error: ${details.error}`), 0, 0);
|
|
121
|
+
}
|
|
122
|
+
// Build result display
|
|
123
|
+
return renderExtractResultCommon(details, state.expanded, theme);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Common result renderer for extract tools
|
|
127
|
+
*/
|
|
128
|
+
function renderExtractResultCommon(details, expanded, theme) {
|
|
129
|
+
let text = "";
|
|
130
|
+
if (details) {
|
|
131
|
+
// Main summary
|
|
132
|
+
const summary = `${details.successCount}/${details.urlCount} extracted`;
|
|
133
|
+
text += theme.fg("success", summary);
|
|
134
|
+
// Show failures if any
|
|
135
|
+
if (details.failureCount > 0) {
|
|
136
|
+
text += ` ${theme.fg("warning", `(${details.failureCount} failed)`)}`;
|
|
137
|
+
}
|
|
138
|
+
// Show options
|
|
139
|
+
const options = [];
|
|
140
|
+
if (details.extractDepth === "advanced") {
|
|
141
|
+
options.push("advanced");
|
|
142
|
+
}
|
|
143
|
+
if (details.includeImages) {
|
|
144
|
+
options.push("images");
|
|
145
|
+
}
|
|
146
|
+
if (details.format === "text") {
|
|
147
|
+
options.push("text");
|
|
148
|
+
}
|
|
149
|
+
if (options.length > 0) {
|
|
150
|
+
text += theme.fg("dim", ` (${options.join(", ")})`);
|
|
151
|
+
}
|
|
152
|
+
// Show truncation warning
|
|
153
|
+
if (details.truncation?.truncated) {
|
|
154
|
+
text += " " + theme.fg("warning", "(truncated)");
|
|
155
|
+
}
|
|
156
|
+
// Expanded view: show extracted URLs
|
|
157
|
+
if (expanded) {
|
|
158
|
+
// Show successful extractions
|
|
159
|
+
if (details.results.length > 0) {
|
|
160
|
+
text += "\n\n";
|
|
161
|
+
text += theme.fg("accent", "Extracted:") + "\n";
|
|
162
|
+
const displayResults = details.results.slice(0, 5);
|
|
163
|
+
for (let i = 0; i < displayResults.length; i++) {
|
|
164
|
+
const result = displayResults[i];
|
|
165
|
+
text += `\n${theme.fg("accent", `${i + 1}.`)} ${result.title || "Untitled"}\n`;
|
|
166
|
+
text += ` ${theme.fg("dim", result.url)}\n`;
|
|
167
|
+
}
|
|
168
|
+
if (details.results.length > 5) {
|
|
169
|
+
text += `\n${theme.fg("dim", `... ${details.results.length - 5} more`)}`;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Show failed extractions
|
|
173
|
+
if (details.failedResults.length > 0) {
|
|
174
|
+
text += "\n\n";
|
|
175
|
+
text += theme.fg("error", "Failed:") + "\n";
|
|
176
|
+
const displayFailed = details.failedResults.slice(0, 3);
|
|
177
|
+
for (let i = 0; i < displayFailed.length; i++) {
|
|
178
|
+
const failed = displayFailed[i];
|
|
179
|
+
text += `\n${theme.fg("error", `${i + 1}.`)} ${failed.url}\n`;
|
|
180
|
+
text += ` ${theme.fg("dim", failed.error)}\n`;
|
|
181
|
+
}
|
|
182
|
+
if (details.failedResults.length > 3) {
|
|
183
|
+
text += `\n${theme.fg("dim", `... ${details.failedResults.length - 3} more`)}`;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Show temp file path if truncated
|
|
187
|
+
if (details.fullOutputPath) {
|
|
188
|
+
text += "\n\n";
|
|
189
|
+
text += theme.fg("dim", `Full output: ${details.fullOutputPath}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return new Text(text, 0, 0);
|
|
194
|
+
}
|
|
74
195
|
/**
|
|
75
196
|
* Common result renderer for search tools
|
|
76
197
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../../src/tools/tavily/renderers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../../src/tools/tavily/renderers.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,13 @@ export declare const WebSearchParamsSchema: import("@sinclair/typebox").TObject<
|
|
|
10
10
|
include_images: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
11
11
|
days: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
12
12
|
}>;
|
|
13
|
+
export declare const WebExtractParamsSchema: import("@sinclair/typebox").TObject<{
|
|
14
|
+
urls: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
15
|
+
extract_depth: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"basic" | "advanced">>;
|
|
16
|
+
include_images: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
17
|
+
format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"markdown" | "text">>;
|
|
18
|
+
query: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
19
|
+
}>;
|
|
13
20
|
export declare const BaseSearchParamsSchema: {
|
|
14
21
|
query: import("@sinclair/typebox").TString;
|
|
15
22
|
max_results: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/schemas.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,qBAAqB;;;;;;;;EAsBhC,CAAC;AAMH,eAAO,MAAM,sBAAsB;;;;;CAalC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAUhC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/schemas.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,qBAAqB;;;;;;;;EAsBhC,CAAC;AAMH,eAAO,MAAM,sBAAsB;;;;;;EAoBjC,CAAC;AAMH,eAAO,MAAM,sBAAsB;;;;;CAalC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAUhC,CAAC"}
|
|
@@ -18,6 +18,22 @@ export const WebSearchParamsSchema = Type.Object({
|
|
|
18
18
|
days: Type.Optional(Type.Number({ description: "Limit results to last N days (e.g., 7 for last week)" })),
|
|
19
19
|
});
|
|
20
20
|
// ============================================================================
|
|
21
|
+
// Web Extract Schema
|
|
22
|
+
// ============================================================================
|
|
23
|
+
export const WebExtractParamsSchema = Type.Object({
|
|
24
|
+
urls: Type.Array(Type.String({ description: "URL to extract content from" }), {
|
|
25
|
+
description: "Array of URLs to extract content from (max 20)",
|
|
26
|
+
}),
|
|
27
|
+
extract_depth: Type.Optional(StringEnum(["basic", "advanced"], {
|
|
28
|
+
description: "Extraction depth: 'basic' or 'advanced' (default: 'basic')",
|
|
29
|
+
})),
|
|
30
|
+
include_images: Type.Optional(Type.Boolean({ description: "Include images from pages (default: false)" })),
|
|
31
|
+
format: Type.Optional(StringEnum(["markdown", "text"], {
|
|
32
|
+
description: "Output format: 'markdown' or 'text' (default: 'markdown')",
|
|
33
|
+
})),
|
|
34
|
+
query: Type.Optional(Type.String({ description: "Optional query to focus extraction on specific content" })),
|
|
35
|
+
});
|
|
36
|
+
// ============================================================================
|
|
21
37
|
// Common Schema Parts
|
|
22
38
|
// ============================================================================
|
|
23
39
|
export const BaseSearchParamsSchema = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/tools/tavily/schemas.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAC1D,WAAW,EAAE,IAAI,CAAC,QAAQ,CACxB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC,CAC/E;IACD,YAAY,EAAE,IAAI,CAAC,QAAQ,CACzB,UAAU,CAAC,CAAC,OAAO,EAAE,UAAU,CAAU,EAAE;QACzC,WAAW,EAAE,wDAAwD;KACtE,CAAC,CACH;IACD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC,CAC7E;IACD,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAChC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CACtF;IACD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC,CACrF;IACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CACrF;CACF,CAAC,CAAC;AAEH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAC1D,WAAW,EAAE,IAAI,CAAC,QAAQ,CACxB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC,CAC/E;IACD,YAAY,EAAE,IAAI,CAAC,QAAQ,CACzB,UAAU,CAAC,CAAC,OAAO,EAAE,UAAU,CAAU,EAAE;QACzC,WAAW,EAAE,wDAAwD;KACtE,CAAC,CACH;IACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CACrF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC,CAC7E;IACD,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAChC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CACtF;IACD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC,CACrF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/tools/tavily/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,37 @@ export interface WebSearchDetails extends SearchResponseDetails {
|
|
|
34
34
|
includeRawContent: boolean;
|
|
35
35
|
includeImages: boolean;
|
|
36
36
|
}
|
|
37
|
+
export interface WebExtractParams {
|
|
38
|
+
urls: string[];
|
|
39
|
+
extract_depth?: "basic" | "advanced";
|
|
40
|
+
include_images?: boolean;
|
|
41
|
+
format?: "markdown" | "text";
|
|
42
|
+
query?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ExtractResult {
|
|
45
|
+
url: string;
|
|
46
|
+
title: string | null;
|
|
47
|
+
rawContent: string;
|
|
48
|
+
images?: string[];
|
|
49
|
+
}
|
|
50
|
+
export interface ExtractFailedResult {
|
|
51
|
+
url: string;
|
|
52
|
+
error: string;
|
|
53
|
+
}
|
|
54
|
+
export interface WebExtractDetails {
|
|
55
|
+
urlCount: number;
|
|
56
|
+
extractDepth: string;
|
|
57
|
+
includeImages: boolean;
|
|
58
|
+
format: string;
|
|
59
|
+
query?: string;
|
|
60
|
+
successCount: number;
|
|
61
|
+
failureCount: number;
|
|
62
|
+
results: ExtractResult[];
|
|
63
|
+
failedResults: ExtractFailedResult[];
|
|
64
|
+
truncation?: TruncationResult;
|
|
65
|
+
fullOutputPath?: string;
|
|
66
|
+
error?: string;
|
|
67
|
+
}
|
|
37
68
|
export interface SearchResult {
|
|
38
69
|
title: string;
|
|
39
70
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAMD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/tavily/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web Extract Tool - Provides content extraction capabilities using Tavily SDK
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Extract raw content from one or more URLs
|
|
6
|
+
* - Configurable extraction depth (basic/advanced)
|
|
7
|
+
* - Optional image extraction
|
|
8
|
+
* - Multiple output formats (markdown/text)
|
|
9
|
+
* - Query-based content filtering
|
|
10
|
+
* - Proper output truncation (50KB / 2000 lines)
|
|
11
|
+
* - Custom TUI rendering
|
|
12
|
+
* - Robust error handling
|
|
13
|
+
*/
|
|
14
|
+
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
15
|
+
import type { TavilyClient } from "@tavily/core";
|
|
16
|
+
export declare function registerWebExtractTool(pi: ExtensionAPI, client: TavilyClient): void;
|
|
17
|
+
//# sourceMappingURL=web-extract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-extract.d.ts","sourceRoot":"","sources":["../../src/tools/web-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAajD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA4DnF"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web Extract Tool - Provides content extraction capabilities using Tavily SDK
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Extract raw content from one or more URLs
|
|
6
|
+
* - Configurable extraction depth (basic/advanced)
|
|
7
|
+
* - Optional image extraction
|
|
8
|
+
* - Multiple output formats (markdown/text)
|
|
9
|
+
* - Query-based content filtering
|
|
10
|
+
* - Proper output truncation (50KB / 2000 lines)
|
|
11
|
+
* - Custom TUI rendering
|
|
12
|
+
* - Robust error handling
|
|
13
|
+
*/
|
|
14
|
+
import { buildToolResult, sendProgress } from "./shared/execute.js";
|
|
15
|
+
import { buildExtractOptions, validateUrls } from "./tavily/client.js";
|
|
16
|
+
import { buildExtractSuccessDetails } from "./tavily/details.js";
|
|
17
|
+
import { extractExtractResults, formatExtractResponse } from "./tavily/formatters.js";
|
|
18
|
+
import { renderExtractCall, renderExtractResult } from "./tavily/renderers.js";
|
|
19
|
+
import { WebExtractParamsSchema } from "./tavily/schemas.js";
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Web Extract Tool Registration
|
|
22
|
+
// ============================================================================
|
|
23
|
+
export function registerWebExtractTool(pi, client) {
|
|
24
|
+
pi.registerTool({
|
|
25
|
+
name: "web_extract",
|
|
26
|
+
label: "Web Extract",
|
|
27
|
+
description: `Extracts raw content from one or more URLs using Tavily. ` +
|
|
28
|
+
`Output is truncated to 2000 lines or 50KB (whichever is hit first). ` +
|
|
29
|
+
`Useful for reading full content from specific pages, data collection, or content analysis.`,
|
|
30
|
+
promptSnippet: "Extract raw content from one or more web pages.",
|
|
31
|
+
promptGuidelines: [
|
|
32
|
+
"Use this tool when you need to read the full content of specific web pages.",
|
|
33
|
+
"Use this tool after web_search to get detailed content from specific URLs.",
|
|
34
|
+
"Use this tool for data collection and content analysis tasks.",
|
|
35
|
+
"Use extract_depth advanced for more comprehensive extraction.",
|
|
36
|
+
"Use include_images to also extract images from pages.",
|
|
37
|
+
"Use format text if you need plain text instead of markdown.",
|
|
38
|
+
"Use query to focus extraction on specific content within pages.",
|
|
39
|
+
"Provide up to 20 URLs in a single request for batch extraction.",
|
|
40
|
+
],
|
|
41
|
+
parameters: WebExtractParamsSchema,
|
|
42
|
+
// Pi catches thrown errors and reports them to the LLM with isError: true
|
|
43
|
+
async execute(_toolCallId, params, _signal, onUpdate, ctx) {
|
|
44
|
+
const urls = validateUrls(params.urls);
|
|
45
|
+
const extractOptions = buildExtractOptions(params);
|
|
46
|
+
const urlCount = urls.length;
|
|
47
|
+
const urlText = urlCount === 1 ? "URL" : "URLs";
|
|
48
|
+
sendProgress(onUpdate, `Extracting content from ${urlCount} ${urlText}...`);
|
|
49
|
+
const response = await client.extract(urls, extractOptions);
|
|
50
|
+
const { results, failedResults } = extractExtractResults(response);
|
|
51
|
+
const fullOutput = formatExtractResponse(results, failedResults, extractOptions.includeImages ?? false);
|
|
52
|
+
return buildToolResult(fullOutput, ctx, "extract", (truncation, fullOutputPath) => buildExtractSuccessDetails({
|
|
53
|
+
urlCount,
|
|
54
|
+
options: extractOptions,
|
|
55
|
+
results,
|
|
56
|
+
failedResults,
|
|
57
|
+
truncation,
|
|
58
|
+
fullOutputPath,
|
|
59
|
+
}));
|
|
60
|
+
},
|
|
61
|
+
renderCall(args, theme) {
|
|
62
|
+
return renderExtractCall(args, theme);
|
|
63
|
+
},
|
|
64
|
+
renderResult(result, state, theme) {
|
|
65
|
+
return renderExtractResult(result, state, theme);
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=web-extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-extract.js","sourceRoot":"","sources":["../../src/tools/web-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,MAAM,UAAU,sBAAsB,CAAC,EAAgB,EAAE,MAAoB;IAC3E,EAAE,CAAC,YAAY,CAAC;QACd,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,2DAA2D;YAC3D,sEAAsE;YACtE,4FAA4F;QAE9F,aAAa,EAAE,iDAAiD;QAChE,gBAAgB,EAAE;YAChB,6EAA6E;YAC7E,4EAA4E;YAC5E,+DAA+D;YAC/D,+DAA+D;YAC/D,uDAAuD;YACvD,6DAA6D;YAC7D,iEAAiE;YACjE,iEAAiE;SAClE;QAED,UAAU,EAAE,sBAAsB;QAElC,0EAA0E;QAC1E,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG;YACvD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAEhD,YAAY,CAAC,QAAQ,EAAE,2BAA2B,QAAQ,IAAI,OAAO,KAAK,CAAC,CAAC;YAE5E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC5D,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,qBAAqB,CACtC,OAAO,EACP,aAAa,EACb,cAAc,CAAC,aAAa,IAAI,KAAK,CACtC,CAAC;YACF,OAAO,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,CAChF,0BAA0B,CAAC;gBACzB,QAAQ;gBACR,OAAO,EAAE,cAAc;gBACvB,OAAO;gBACP,aAAa;gBACb,UAAU;gBACV,cAAc;aACf,CAAC,CACH,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,IAAI,EAAE,KAAK;YACpB,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAgD,CAAC,CAAC;QACnF,CAAC;QAED,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK;YAC/B,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAkD,CAAC,CAAC;QAChG,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAajD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAajD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA8DlF"}
|
package/dist/tools/web-search.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - Custom TUI rendering
|
|
11
11
|
* - Robust error handling
|
|
12
12
|
*/
|
|
13
|
-
import {
|
|
13
|
+
import { buildToolResult, sendProgress } from "./shared/execute.js";
|
|
14
14
|
import { buildSearchOptions, validateQuery } from "./tavily/client.js";
|
|
15
15
|
import { buildSuccessDetails } from "./tavily/details.js";
|
|
16
16
|
import { extractSearchResults, formatWebSearchResponse } from "./tavily/formatters.js";
|
|
@@ -41,25 +41,18 @@ export function registerWebSearchTool(pi, client) {
|
|
|
41
41
|
async execute(_toolCallId, params, _signal, onUpdate, ctx) {
|
|
42
42
|
const query = validateQuery(params.query);
|
|
43
43
|
const searchOptions = buildSearchOptions(params);
|
|
44
|
-
onUpdate
|
|
45
|
-
content: [{ type: "text", text: `Searching for: ${query}` }],
|
|
46
|
-
details: {},
|
|
47
|
-
});
|
|
44
|
+
sendProgress(onUpdate, `Searching for: ${query}`);
|
|
48
45
|
const response = await client.search(query, searchOptions);
|
|
49
46
|
const { answer, results, images } = extractSearchResults(response);
|
|
50
47
|
const fullOutput = formatWebSearchResponse(answer, results, images, searchOptions.includeImages);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
truncation,
|
|
60
|
-
fullOutputPath,
|
|
61
|
-
}),
|
|
62
|
-
};
|
|
48
|
+
return buildToolResult(fullOutput, ctx, "search", (truncation, fullOutputPath) => buildSuccessDetails({
|
|
49
|
+
query,
|
|
50
|
+
options: searchOptions,
|
|
51
|
+
answer,
|
|
52
|
+
results,
|
|
53
|
+
truncation,
|
|
54
|
+
fullOutputPath,
|
|
55
|
+
}));
|
|
63
56
|
},
|
|
64
57
|
renderCall(args, theme) {
|
|
65
58
|
return renderWebSearchCall(args, theme);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,MAAM,UAAU,qBAAqB,CAAC,EAAgB,EAAE,MAAoB;IAC1E,EAAE,CAAC,YAAY,CAAC;QACd,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,yDAAyD;YACzD,sEAAsE;YACtE,mFAAmF;QAErF,aAAa,EACX,sFAAsF;QACxF,gBAAgB,EAAE;YAChB,8FAA8F;YAC9F,4EAA4E;YAC5E,2DAA2D;YAC3D,uFAAuF;YACvF,6DAA6D;YAC7D,4DAA4D;YAC5D,oEAAoE;SACrE;QAED,UAAU,EAAE,qBAAqB;QAEjC,0EAA0E;QAC1E,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG;YACvD,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEjD,YAAY,CAAC,QAAQ,EAAE,kBAAkB,KAAK,EAAE,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAC3D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,uBAAuB,CACxC,MAAM,EACN,OAAO,EACP,MAAM,EACN,aAAa,CAAC,aAAa,CAC5B,CAAC;YACF,OAAO,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,CAC/E,mBAAmB,CAAC;gBAClB,KAAK;gBACL,OAAO,EAAE,aAAa;gBACtB,MAAM;gBACN,OAAO;gBACP,UAAU;gBACV,cAAc;aACf,CAAC,CACH,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,IAAI,EAAE,KAAK;YACpB,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAkD,CAAC,CAAC;QACvF,CAAC;QAED,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK;YAC/B,OAAO,qBAAqB,CAC1B,MAAM,EACN,KAAK,EACL,KAAoD,CACrD,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alexanderfortin/pi-tavily-tools",
|
|
3
3
|
"author": "Alexander Fortin",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"description": "Pi coding agent extension for web search using Tavily",
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"description": "Pi coding agent extension for web search and content extraction using Tavily",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"pi-package",
|
|
8
8
|
"tavily",
|
|
9
9
|
"web-search",
|
|
10
|
+
"web-extract",
|
|
11
|
+
"content-extraction",
|
|
10
12
|
"search"
|
|
11
13
|
],
|
|
12
14
|
"type": "module",
|