bigtool-ts 0.1.3 → 0.1.5
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/CHANGELOG.md +40 -0
- package/README.md +77 -57
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/search/index.d.ts +16 -8
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +10 -6
- package/dist/search/index.js.map +1 -1
- package/dist/search/orama.d.ts +29 -25
- package/dist/search/orama.d.ts.map +1 -1
- package/dist/search/orama.js +32 -28
- package/dist/search/orama.js.map +1 -1
- package/dist/search/types.d.ts +6 -2
- package/dist/search/types.d.ts.map +1 -1
- package/package.json +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.5] - 2026-01-20
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **BREAKING**: Renamed `OramaSearch` to `BigToolSearch` for better branding
|
|
15
|
+
- **BREAKING**: Renamed `OramaSearchConfig` to `BigToolSearchConfig`
|
|
16
|
+
- Both old names exported as deprecated aliases for backward compatibility
|
|
17
|
+
|
|
18
|
+
### Migration
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// Before
|
|
22
|
+
import { OramaSearch, OramaSearchConfig } from "bigtool-ts";
|
|
23
|
+
const search = new OramaSearch({ mode: "bm25" });
|
|
24
|
+
|
|
25
|
+
// After
|
|
26
|
+
import { BigToolSearch, BigToolSearchConfig } from "bigtool-ts";
|
|
27
|
+
const search = new BigToolSearch({ mode: "bm25" });
|
|
28
|
+
|
|
29
|
+
// Old names still work (deprecated)
|
|
30
|
+
import { OramaSearch } from "bigtool-ts"; // ⚠️ Deprecated
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## [0.1.4] - 2026-01-20
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- Comprehensive benchmark suite comparing bigtool-ts vs traditional all-tools-upfront approach
|
|
38
|
+
- 12 themed tool generators (AWS, Kubernetes, CI/CD, Monitoring, Security, Data, Support, Marketing, Finance, HR, E-commerce, Project Management)
|
|
39
|
+
- 356 generated tools for stress testing
|
|
40
|
+
- New scripts: `benchmark`, `benchmark:quick`, `benchmark:report`, `benchmark:generate`, `benchmark:generate:128`
|
|
41
|
+
- Benchmark documentation in `benchmarks/README.md`
|
|
42
|
+
|
|
43
|
+
### Results
|
|
44
|
+
|
|
45
|
+
- **82% context reduction** (2,721 → 500 tokens) at 128 tools
|
|
46
|
+
- **95% fewer tools loaded** (128 → 5.8 average)
|
|
47
|
+
- **Same accuracy** (83%) as baseline
|
|
48
|
+
- **Works beyond API limits**: OpenAI caps at 128 tools; bigtool-ts handles 356+ seamlessly
|
|
49
|
+
|
|
10
50
|
## [0.1.0] - 2026-01-19
|
|
11
51
|
|
|
12
52
|
### Added
|
package/README.md
CHANGED
|
@@ -12,12 +12,13 @@ Works with **LangGraph**, **Inngest AgentKit**, **Vercel AI SDK**, **Mastra**, a
|
|
|
12
12
|
Anthropic faced the same problem with [Claude Code](https://www.anthropic.com/products/claude-code) and MCP servers: **loading all tool definitions upfront consumed too much context**.
|
|
13
13
|
|
|
14
14
|
Their solution? **Tool Search** with `defer_loading`:
|
|
15
|
+
|
|
15
16
|
- Mark tools with `defer_loading: true`
|
|
16
17
|
- Claude discovers tools on-demand via BM25 search
|
|
17
18
|
- **85% reduction in token usage** (67K → 8.5K tokens)
|
|
18
19
|
- **Accuracy improved from 49% to 74%** on MCP evaluations
|
|
19
20
|
|
|
20
|
-
>
|
|
21
|
+
> _"Claude Code adds Tool Search to lazily load MCP tools, cutting context waste and improving accuracy for large agent toolsets."_ — [Tool Search now in Claude Code](https://medium.com/coding-nexus/tool-search-now-in-claude-code-17128204740e)
|
|
21
22
|
|
|
22
23
|
**bigtool-ts brings this same capability to any LLM** — not just Claude's native API. Use it with LangGraph, OpenAI, Vercel AI SDK, Inngest, or any LangChain-compatible model.
|
|
23
24
|
|
|
@@ -47,7 +48,7 @@ Their solution? **Tool Search** with `defer_loading`:
|
|
|
47
48
|
- [MCPSource / createMCPSource](#mcpsource--createmcpsource)
|
|
48
49
|
- [DynamicSource](#dynamicsource)
|
|
49
50
|
- [withMetadata](#withmetadatatool-enhancement)
|
|
50
|
-
- [
|
|
51
|
+
- [BigToolSearch](#bigtoolsearch)
|
|
51
52
|
- [Advanced Usage](#advanced-usage)
|
|
52
53
|
- [Architecture](#architecture)
|
|
53
54
|
|
|
@@ -70,13 +71,13 @@ pnpm add bigtool-ts
|
|
|
70
71
|
```
|
|
71
72
|
|
|
72
73
|
```typescript
|
|
73
|
-
import { createAgent, LocalSource,
|
|
74
|
+
import { createAgent, LocalSource, BigToolSearch } from "bigtool-ts";
|
|
74
75
|
import { ChatOpenAI } from "@langchain/openai";
|
|
75
76
|
|
|
76
77
|
const agent = await createAgent({
|
|
77
78
|
llm: new ChatOpenAI({ model: "gpt-4o" }),
|
|
78
79
|
tools: [myCalculatorTool, myDatabaseTool, myGitHubTool],
|
|
79
|
-
search: new
|
|
80
|
+
search: new BigToolSearch({ mode: "bm25" }),
|
|
80
81
|
});
|
|
81
82
|
|
|
82
83
|
const result = await agent.invoke({
|
|
@@ -104,13 +105,13 @@ bigtool-ts works with multiple AI agent frameworks. Choose your framework below
|
|
|
104
105
|
Native integration via `createAgent()`. Returns a compiled StateGraph.
|
|
105
106
|
|
|
106
107
|
```typescript
|
|
107
|
-
import { createAgent, LocalSource,
|
|
108
|
+
import { createAgent, LocalSource, BigToolSearch } from "bigtool-ts";
|
|
108
109
|
import { ChatOpenAI } from "@langchain/openai";
|
|
109
110
|
|
|
110
111
|
const agent = await createAgent({
|
|
111
112
|
llm: new ChatOpenAI({ model: "gpt-4o" }),
|
|
112
113
|
tools: [myCalculatorTool, myDatabaseTool, myGitHubTool],
|
|
113
|
-
search: new
|
|
114
|
+
search: new BigToolSearch({ mode: "bm25" }),
|
|
114
115
|
});
|
|
115
116
|
|
|
116
117
|
const result = await agent.invoke({
|
|
@@ -132,7 +133,7 @@ import {
|
|
|
132
133
|
createInngestAdapter,
|
|
133
134
|
DefaultToolCatalog,
|
|
134
135
|
DefaultToolLoader,
|
|
135
|
-
|
|
136
|
+
BigToolSearch,
|
|
136
137
|
LocalSource,
|
|
137
138
|
} from "bigtool-ts";
|
|
138
139
|
|
|
@@ -140,7 +141,7 @@ import {
|
|
|
140
141
|
const catalog = new DefaultToolCatalog();
|
|
141
142
|
await catalog.register(new LocalSource(myTools));
|
|
142
143
|
|
|
143
|
-
const search = new
|
|
144
|
+
const search = new BigToolSearch({ mode: "bm25" });
|
|
144
145
|
await search.index(catalog.getAllMetadata());
|
|
145
146
|
|
|
146
147
|
const loader = new DefaultToolLoader(catalog);
|
|
@@ -153,8 +154,8 @@ const agent = createAgent({
|
|
|
153
154
|
name: "tool-user",
|
|
154
155
|
model: openai({ model: "gpt-4o" }),
|
|
155
156
|
tools: [
|
|
156
|
-
adapter.createSearchTool(),
|
|
157
|
-
adapter.createCallToolTool(),
|
|
157
|
+
adapter.createSearchTool(), // Search for tools
|
|
158
|
+
adapter.createCallToolTool(), // Execute found tools
|
|
158
159
|
],
|
|
159
160
|
});
|
|
160
161
|
```
|
|
@@ -174,7 +175,7 @@ import {
|
|
|
174
175
|
createVercelAdapter,
|
|
175
176
|
DefaultToolCatalog,
|
|
176
177
|
DefaultToolLoader,
|
|
177
|
-
|
|
178
|
+
BigToolSearch,
|
|
178
179
|
LocalSource,
|
|
179
180
|
} from "bigtool-ts";
|
|
180
181
|
|
|
@@ -182,7 +183,7 @@ import {
|
|
|
182
183
|
const catalog = new DefaultToolCatalog();
|
|
183
184
|
await catalog.register(new LocalSource(myTools));
|
|
184
185
|
|
|
185
|
-
const search = new
|
|
186
|
+
const search = new BigToolSearch({ mode: "bm25" });
|
|
186
187
|
await search.index(catalog.getAllMetadata());
|
|
187
188
|
|
|
188
189
|
const loader = new DefaultToolLoader(catalog);
|
|
@@ -195,7 +196,7 @@ const result = await generateText({
|
|
|
195
196
|
model: openai("gpt-4o"),
|
|
196
197
|
tools: {
|
|
197
198
|
search_tools: adapter.createSearchTool(),
|
|
198
|
-
...await adapter.getToolsAsRecord(["github:create_pr", "slack:send"]),
|
|
199
|
+
...(await adapter.getToolsAsRecord(["github:create_pr", "slack:send"])),
|
|
199
200
|
},
|
|
200
201
|
prompt: "Create a PR and notify the team on Slack",
|
|
201
202
|
});
|
|
@@ -215,7 +216,7 @@ import {
|
|
|
215
216
|
createMastraAdapter,
|
|
216
217
|
DefaultToolCatalog,
|
|
217
218
|
DefaultToolLoader,
|
|
218
|
-
|
|
219
|
+
BigToolSearch,
|
|
219
220
|
LocalSource,
|
|
220
221
|
} from "bigtool-ts";
|
|
221
222
|
|
|
@@ -223,7 +224,7 @@ import {
|
|
|
223
224
|
const catalog = new DefaultToolCatalog();
|
|
224
225
|
await catalog.register(new LocalSource(myTools));
|
|
225
226
|
|
|
226
|
-
const search = new
|
|
227
|
+
const search = new BigToolSearch({ mode: "bm25" });
|
|
227
228
|
await search.index(catalog.getAllMetadata());
|
|
228
229
|
|
|
229
230
|
const loader = new DefaultToolLoader(catalog);
|
|
@@ -238,7 +239,7 @@ const agent = new Agent({
|
|
|
238
239
|
model: "openai/gpt-4o",
|
|
239
240
|
tools: {
|
|
240
241
|
search_tools: adapter.createSearchTool(),
|
|
241
|
-
...await adapter.getToolsAsRecord(["github:create_pr"]),
|
|
242
|
+
...(await adapter.getToolsAsRecord(["github:create_pr"])),
|
|
242
243
|
},
|
|
243
244
|
});
|
|
244
245
|
```
|
|
@@ -252,7 +253,7 @@ import {
|
|
|
252
253
|
createAgentProtocolHandler,
|
|
253
254
|
DefaultToolCatalog,
|
|
254
255
|
DefaultToolLoader,
|
|
255
|
-
|
|
256
|
+
BigToolSearch,
|
|
256
257
|
LocalSource,
|
|
257
258
|
} from "bigtool-ts";
|
|
258
259
|
|
|
@@ -260,13 +261,17 @@ import {
|
|
|
260
261
|
const catalog = new DefaultToolCatalog();
|
|
261
262
|
await catalog.register(new LocalSource(myTools));
|
|
262
263
|
|
|
263
|
-
const search = new
|
|
264
|
+
const search = new BigToolSearch({ mode: "bm25" });
|
|
264
265
|
await search.index(catalog.getAllMetadata());
|
|
265
266
|
|
|
266
267
|
const loader = new DefaultToolLoader(catalog);
|
|
267
268
|
|
|
268
269
|
// Create handler
|
|
269
|
-
const handler = createAgentProtocolHandler({
|
|
270
|
+
const handler = createAgentProtocolHandler({
|
|
271
|
+
catalog,
|
|
272
|
+
loader,
|
|
273
|
+
searchIndex: search,
|
|
274
|
+
});
|
|
270
275
|
|
|
271
276
|
// Use with Express/Fastify/any HTTP framework
|
|
272
277
|
app.get("/tools", async (req, res) => {
|
|
@@ -294,22 +299,22 @@ app.post("/tools/execute", async (req, res) => {
|
|
|
294
299
|
Creates a LangGraph agent with dynamic tool discovery.
|
|
295
300
|
|
|
296
301
|
```typescript
|
|
297
|
-
import { createAgent,
|
|
302
|
+
import { createAgent, BigToolSearch } from "bigtool-ts";
|
|
298
303
|
|
|
299
304
|
const agent = await createAgent({
|
|
300
305
|
// Required
|
|
301
306
|
llm: new ChatOpenAI({ model: "gpt-4o" }),
|
|
302
|
-
search: new
|
|
307
|
+
search: new BigToolSearch({ mode: "bm25" }),
|
|
303
308
|
|
|
304
309
|
// Tool sources (pick one or combine)
|
|
305
|
-
tools: [tool1, tool2],
|
|
310
|
+
tools: [tool1, tool2], // Array of StructuredTool
|
|
306
311
|
sources: [localSource, mcpSource], // Array of ToolSource
|
|
307
312
|
|
|
308
313
|
// Optional
|
|
309
314
|
pinnedTools: [alwaysAvailableTool], // Always in context
|
|
310
315
|
systemPrompt: "You are a helpful assistant.",
|
|
311
|
-
searchLimit: 5,
|
|
312
|
-
cacheSize: 100,
|
|
316
|
+
searchLimit: 5, // Max tools per search (default: 5)
|
|
317
|
+
cacheSize: 100, // LRU cache size (default: 100)
|
|
313
318
|
});
|
|
314
319
|
|
|
315
320
|
// Use like any LangGraph agent
|
|
@@ -380,8 +385,8 @@ const mcpClient = new Client({ name: "my-client" });
|
|
|
380
385
|
await mcpClient.connect(transport);
|
|
381
386
|
|
|
382
387
|
const source = new MCPSource(mcpClient, {
|
|
383
|
-
namespace: "github",
|
|
384
|
-
refreshInterval: 60_000,
|
|
388
|
+
namespace: "github", // Tool ID prefix (default: client.name)
|
|
389
|
+
refreshInterval: 60_000, // Re-fetch tool list every 60s
|
|
385
390
|
});
|
|
386
391
|
|
|
387
392
|
// Listen for tool list changes
|
|
@@ -399,15 +404,30 @@ source.dispose();
|
|
|
399
404
|
import { createMCPSource } from "bigtool-ts";
|
|
400
405
|
|
|
401
406
|
const mcpConfigs = [
|
|
402
|
-
{
|
|
403
|
-
|
|
404
|
-
|
|
407
|
+
{
|
|
408
|
+
name: "github",
|
|
409
|
+
transport: "stdio",
|
|
410
|
+
command: "npx",
|
|
411
|
+
args: ["-y", "@mcp/server-github"],
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
name: "slack",
|
|
415
|
+
transport: "stdio",
|
|
416
|
+
command: "npx",
|
|
417
|
+
args: ["-y", "@mcp/server-slack"],
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
name: "notion",
|
|
421
|
+
transport: "stdio",
|
|
422
|
+
command: "npx",
|
|
423
|
+
args: ["-y", "@mcp/server-notion"],
|
|
424
|
+
},
|
|
405
425
|
// ... 97 more
|
|
406
426
|
];
|
|
407
427
|
|
|
408
428
|
// Connect to all servers in parallel
|
|
409
429
|
const sources = await Promise.all(
|
|
410
|
-
mcpConfigs.map(config => createMCPSource(config))
|
|
430
|
+
mcpConfigs.map((config) => createMCPSource(config)),
|
|
411
431
|
);
|
|
412
432
|
|
|
413
433
|
// Register all
|
|
@@ -453,7 +473,7 @@ const enhanced = withMetadata(myGitHubTool, {
|
|
|
453
473
|
const source = new LocalSource([enhanced, otherTool]);
|
|
454
474
|
```
|
|
455
475
|
|
|
456
|
-
### `
|
|
476
|
+
### `BigToolSearch`
|
|
457
477
|
|
|
458
478
|
Search index powered by [@orama/orama](https://oramasearch.com/). Supports three modes for different use cases.
|
|
459
479
|
|
|
@@ -462,18 +482,18 @@ Search index powered by [@orama/orama](https://oramasearch.com/). Supports three
|
|
|
462
482
|
Fast keyword-based search. **No API keys needed.**
|
|
463
483
|
|
|
464
484
|
```typescript
|
|
465
|
-
import {
|
|
485
|
+
import { BigToolSearch } from "bigtool-ts";
|
|
466
486
|
|
|
467
|
-
const search = new
|
|
487
|
+
const search = new BigToolSearch({ mode: "bm25" });
|
|
468
488
|
|
|
469
489
|
// Or with field boosting
|
|
470
|
-
const search = new
|
|
490
|
+
const search = new BigToolSearch({
|
|
471
491
|
mode: "bm25",
|
|
472
492
|
boost: {
|
|
473
|
-
name: 2,
|
|
474
|
-
keywords: 1.5,
|
|
493
|
+
name: 2, // Tool name matches worth 2x
|
|
494
|
+
keywords: 1.5, // Keyword matches worth 1.5x
|
|
475
495
|
description: 1, // Normal weight
|
|
476
|
-
categories: 1,
|
|
496
|
+
categories: 1, // Normal weight
|
|
477
497
|
},
|
|
478
498
|
});
|
|
479
499
|
```
|
|
@@ -485,10 +505,10 @@ const search = new OramaSearch({
|
|
|
485
505
|
Semantic search using embeddings. Finds conceptually similar tools even without exact keyword matches.
|
|
486
506
|
|
|
487
507
|
```typescript
|
|
488
|
-
import {
|
|
508
|
+
import { BigToolSearch } from "bigtool-ts";
|
|
489
509
|
import { OpenAIEmbeddings } from "@langchain/openai";
|
|
490
510
|
|
|
491
|
-
const search = new
|
|
511
|
+
const search = new BigToolSearch({
|
|
492
512
|
mode: "vector",
|
|
493
513
|
embeddings: new OpenAIEmbeddings(),
|
|
494
514
|
});
|
|
@@ -501,14 +521,14 @@ const search = new OramaSearch({
|
|
|
501
521
|
Combines BM25 and vector search for best of both worlds.
|
|
502
522
|
|
|
503
523
|
```typescript
|
|
504
|
-
import {
|
|
524
|
+
import { BigToolSearch } from "bigtool-ts";
|
|
505
525
|
import { OpenAIEmbeddings } from "@langchain/openai";
|
|
506
526
|
|
|
507
|
-
const search = new
|
|
527
|
+
const search = new BigToolSearch({
|
|
508
528
|
mode: "hybrid",
|
|
509
529
|
embeddings: new OpenAIEmbeddings(),
|
|
510
|
-
weights: {
|
|
511
|
-
bm25: 0.4,
|
|
530
|
+
weights: {
|
|
531
|
+
bm25: 0.4, // 40% keyword matching
|
|
512
532
|
vector: 0.6, // 60% semantic similarity
|
|
513
533
|
},
|
|
514
534
|
boost: {
|
|
@@ -524,18 +544,18 @@ const search = new OramaSearch({
|
|
|
524
544
|
|
|
525
545
|
#### Search Mode Comparison
|
|
526
546
|
|
|
527
|
-
| Mode
|
|
528
|
-
|
|
529
|
-
| `bm25`
|
|
530
|
-
| `vector` | 🐢 Slower | Required | Semantic similarity
|
|
547
|
+
| Mode | Speed | API Keys | Best For |
|
|
548
|
+
| -------- | --------- | -------- | ----------------------------- |
|
|
549
|
+
| `bm25` | ⚡ Fast | None | Exact matches, offline use |
|
|
550
|
+
| `vector` | 🐢 Slower | Required | Semantic similarity |
|
|
531
551
|
| `hybrid` | 🐢 Slower | Required | Large catalogs, mixed queries |
|
|
532
552
|
|
|
533
553
|
#### Search Options
|
|
534
554
|
|
|
535
555
|
```typescript
|
|
536
556
|
const results = await search.search("create github pr", {
|
|
537
|
-
limit: 10,
|
|
538
|
-
threshold: 0.3,
|
|
557
|
+
limit: 10, // Max results (default: 5)
|
|
558
|
+
threshold: 0.3, // Min score 0-1 (default: 0)
|
|
539
559
|
categories: ["git"], // Filter by category
|
|
540
560
|
});
|
|
541
561
|
|
|
@@ -548,7 +568,7 @@ const results = await search.search("create github pr", {
|
|
|
548
568
|
### Combining Multiple Sources
|
|
549
569
|
|
|
550
570
|
```typescript
|
|
551
|
-
import { createAgent, LocalSource, MCPSource,
|
|
571
|
+
import { createAgent, LocalSource, MCPSource, BigToolSearch } from "bigtool-ts";
|
|
552
572
|
|
|
553
573
|
const agent = await createAgent({
|
|
554
574
|
llm,
|
|
@@ -557,7 +577,7 @@ const agent = await createAgent({
|
|
|
557
577
|
new MCPSource(githubMcp, { namespace: "github" }),
|
|
558
578
|
new MCPSource(slackMcp, { namespace: "slack" }),
|
|
559
579
|
],
|
|
560
|
-
search: new
|
|
580
|
+
search: new BigToolSearch({ mode: "bm25" }),
|
|
561
581
|
});
|
|
562
582
|
```
|
|
563
583
|
|
|
@@ -569,10 +589,10 @@ Some tools should always be in context without searching:
|
|
|
569
589
|
const agent = await createAgent({
|
|
570
590
|
llm,
|
|
571
591
|
tools: myLargeToolCollection,
|
|
572
|
-
search: new
|
|
592
|
+
search: new BigToolSearch({ mode: "bm25" }),
|
|
573
593
|
pinnedTools: [
|
|
574
|
-
helpTool,
|
|
575
|
-
exitTool,
|
|
594
|
+
helpTool, // "Show available commands"
|
|
595
|
+
exitTool, // "End the conversation"
|
|
576
596
|
],
|
|
577
597
|
});
|
|
578
598
|
```
|
|
@@ -585,7 +605,7 @@ For advanced use cases, build components individually:
|
|
|
585
605
|
import {
|
|
586
606
|
DefaultToolCatalog,
|
|
587
607
|
DefaultToolLoader,
|
|
588
|
-
|
|
608
|
+
BigToolSearch,
|
|
589
609
|
LocalSource,
|
|
590
610
|
} from "bigtool-ts";
|
|
591
611
|
|
|
@@ -596,7 +616,7 @@ const catalog = new DefaultToolCatalog();
|
|
|
596
616
|
await catalog.register(new LocalSource(tools));
|
|
597
617
|
|
|
598
618
|
// 3. Create search index
|
|
599
|
-
const search = new
|
|
619
|
+
const search = new BigToolSearch({ mode: "bm25" });
|
|
600
620
|
await search.index(catalog.getAllMetadata());
|
|
601
621
|
|
|
602
622
|
// 4. Create loader with custom cache settings
|
|
@@ -637,7 +657,7 @@ catalog.onToolsChanged.on(({ added, removed }) => {
|
|
|
637
657
|
┌───────────────┴───────────────┐
|
|
638
658
|
▼ ▼
|
|
639
659
|
┌─────────────────────────┐ ┌─────────────────────────┐
|
|
640
|
-
│
|
|
660
|
+
│ BigToolSearch │ │ DefaultToolLoader │
|
|
641
661
|
│ BM25 / Vector / Hybrid │ │ LRU-cached loading │
|
|
642
662
|
│ │ │ │
|
|
643
663
|
│ query → [toolId, ...] │ │ toolId → StructuredTool│
|
package/dist/index.d.ts
CHANGED
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
*
|
|
19
19
|
* @example Basic usage with local tools
|
|
20
20
|
* ```typescript
|
|
21
|
-
* import { createAgent,
|
|
21
|
+
* import { createAgent, BigToolSearch } from 'bigtool-ts';
|
|
22
22
|
* import { ChatOpenAI } from '@langchain/openai';
|
|
23
23
|
*
|
|
24
24
|
* const agent = await createAgent({
|
|
25
25
|
* llm: new ChatOpenAI({ model: 'gpt-4o' }),
|
|
26
26
|
* tools: [myTool1, myTool2, myTool3],
|
|
27
|
-
* search: new
|
|
27
|
+
* search: new BigToolSearch(),
|
|
28
28
|
* });
|
|
29
29
|
*
|
|
30
30
|
* const result = await agent.invoke({
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
* createAgent,
|
|
39
39
|
* LocalSource,
|
|
40
40
|
* MCPSource,
|
|
41
|
-
*
|
|
42
|
-
* } from '
|
|
41
|
+
* BigToolSearch,
|
|
42
|
+
* } from 'bigtool-ts';
|
|
43
43
|
*
|
|
44
44
|
* const agent = await createAgent({
|
|
45
45
|
* llm: new ChatOpenAI({ model: 'gpt-4o' }),
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
* new LocalSource(myLocalTools),
|
|
48
48
|
* new MCPSource(mcpClient, { namespace: 'github' }),
|
|
49
49
|
* ],
|
|
50
|
-
* search: new
|
|
50
|
+
* search: new BigToolSearch({ mode: 'hybrid', embeddings }),
|
|
51
51
|
* pinnedTools: [alwaysAvailableTool],
|
|
52
52
|
* });
|
|
53
53
|
* ```
|
|
@@ -62,7 +62,8 @@ export { LocalSource } from './sources/local.js';
|
|
|
62
62
|
export { MCPSource, createMCPSource, type MCPSourceOptions, type MCPClient, type MCPServerConfig, type MCPStdioConfig, type MCPSSEConfig, type MCPWebSocketConfig, } from './sources/mcp.js';
|
|
63
63
|
export { DynamicSource, type DynamicSourceOptions } from './sources/dynamic.js';
|
|
64
64
|
export { DefaultToolCatalog } from './catalog/index.js';
|
|
65
|
-
export { OramaSearch,
|
|
65
|
+
export { BigToolSearch, OramaSearch, // Deprecated alias
|
|
66
|
+
type BigToolSearchConfig, type OramaSearchConfig, } from './search/index.js';
|
|
66
67
|
export { DefaultToolLoader, type ToolLoaderOptions, } from './loader/index.js';
|
|
67
68
|
export { ToolNotFoundError, SourceNotFoundError } from './loader/loader.js';
|
|
68
69
|
export { ToolDiscoveryAnnotation, type ToolDiscoveryState, type ToolDiscoveryUpdate, type SearchQuery } from './graph/state.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAMH,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM3D,YAAY,EAEV,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,iBAAiB,EAGjB,WAAW,EACX,aAAa,EACb,YAAY,EAGZ,UAAU,EAGV,YAAY,EACZ,YAAY,EACZ,WAAW,EAGX,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAMH,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM3D,YAAY,EAEV,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,iBAAiB,EAGjB,WAAW,EACX,aAAa,EACb,YAAY,EAGZ,UAAU,EAGV,YAAY,EACZ,YAAY,EACZ,WAAW,EAGX,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EACL,aAAa,EACb,WAAW,EAAE,mBAAmB;AAChC,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM5E,OAAO,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
*
|
|
19
19
|
* @example Basic usage with local tools
|
|
20
20
|
* ```typescript
|
|
21
|
-
* import { createAgent,
|
|
21
|
+
* import { createAgent, BigToolSearch } from 'bigtool-ts';
|
|
22
22
|
* import { ChatOpenAI } from '@langchain/openai';
|
|
23
23
|
*
|
|
24
24
|
* const agent = await createAgent({
|
|
25
25
|
* llm: new ChatOpenAI({ model: 'gpt-4o' }),
|
|
26
26
|
* tools: [myTool1, myTool2, myTool3],
|
|
27
|
-
* search: new
|
|
27
|
+
* search: new BigToolSearch(),
|
|
28
28
|
* });
|
|
29
29
|
*
|
|
30
30
|
* const result = await agent.invoke({
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
* createAgent,
|
|
39
39
|
* LocalSource,
|
|
40
40
|
* MCPSource,
|
|
41
|
-
*
|
|
42
|
-
* } from '
|
|
41
|
+
* BigToolSearch,
|
|
42
|
+
* } from 'bigtool-ts';
|
|
43
43
|
*
|
|
44
44
|
* const agent = await createAgent({
|
|
45
45
|
* llm: new ChatOpenAI({ model: 'gpt-4o' }),
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
* new LocalSource(myLocalTools),
|
|
48
48
|
* new MCPSource(mcpClient, { namespace: 'github' }),
|
|
49
49
|
* ],
|
|
50
|
-
* search: new
|
|
50
|
+
* search: new BigToolSearch({ mode: 'hybrid', embeddings }),
|
|
51
51
|
* pinnedTools: [alwaysAvailableTool],
|
|
52
52
|
* });
|
|
53
53
|
* ```
|
|
@@ -72,7 +72,8 @@ export { DefaultToolCatalog } from './catalog/index.js';
|
|
|
72
72
|
// ═══════════════════════════════════════════════════════════════════
|
|
73
73
|
// SEARCH
|
|
74
74
|
// ═══════════════════════════════════════════════════════════════════
|
|
75
|
-
export { OramaSearch
|
|
75
|
+
export { BigToolSearch, OramaSearch, // Deprecated alias
|
|
76
|
+
} from './search/index.js';
|
|
76
77
|
// ═══════════════════════════════════════════════════════════════════
|
|
77
78
|
// LOADER
|
|
78
79
|
// ═══════════════════════════════════════════════════════════════════
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,sEAAsE;AACtE,WAAW;AACX,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAkCzE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,sEAAsE;AACtE,UAAU;AACV,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,SAAS,EACT,eAAe,GAOhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAEhF,sEAAsE;AACtE,UAAU;AACV,sEAAsE;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,sEAAsE;AACtE,SAAS;AACT,sEAAsE;AAEtE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,sEAAsE;AACtE,WAAW;AACX,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAkCzE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,sEAAsE;AACtE,UAAU;AACV,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,SAAS,EACT,eAAe,GAOhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAEhF,sEAAsE;AACtE,UAAU;AACV,sEAAsE;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,sEAAsE;AACtE,SAAS;AACT,sEAAsE;AAEtE,OAAO,EACL,aAAa,EACb,WAAW,EAAE,mBAAmB;EAGjC,MAAM,mBAAmB,CAAC;AAE3B,sEAAsE;AACtE,SAAS;AACT,sEAAsE;AAEtE,OAAO,EACL,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAE3B,iCAAiC;AACjC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,sEAAsE;AACtE,QAAQ;AACR,sEAAsE;AAEtE,OAAO,EAAE,uBAAuB,EAAuE,MAAM,kBAAkB,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/search/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { SearchIndex, SearchOptions, SearchResult, ToolMetadata } from '../types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Configuration for
|
|
3
|
+
* Configuration for BigTool search
|
|
4
4
|
*/
|
|
5
|
-
export interface
|
|
5
|
+
export interface BigToolSearchConfig {
|
|
6
6
|
/** Search mode */
|
|
7
7
|
mode: 'bm25' | 'vector' | 'hybrid';
|
|
8
8
|
/** Embeddings provider (required for vector/hybrid modes) */
|
|
@@ -22,6 +22,10 @@ export interface OramaSearchConfig {
|
|
|
22
22
|
/** Embedding cache */
|
|
23
23
|
cache?: unknown;
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Use BigToolSearchConfig instead
|
|
27
|
+
*/
|
|
28
|
+
export type OramaSearchConfig = BigToolSearchConfig;
|
|
25
29
|
/**
|
|
26
30
|
* Default search implementation using @orama/orama for BM25 search.
|
|
27
31
|
*
|
|
@@ -33,31 +37,35 @@ export interface OramaSearchConfig {
|
|
|
33
37
|
* @example
|
|
34
38
|
* ```typescript
|
|
35
39
|
* // BM25 mode (default)
|
|
36
|
-
* const search = new
|
|
40
|
+
* const search = new BigToolSearch();
|
|
37
41
|
*
|
|
38
42
|
* // Vector mode
|
|
39
|
-
* const search = new
|
|
43
|
+
* const search = new BigToolSearch({
|
|
40
44
|
* mode: 'vector',
|
|
41
45
|
* embeddings: new OpenAIEmbeddings(),
|
|
42
46
|
* });
|
|
43
47
|
*
|
|
44
48
|
* // Hybrid mode
|
|
45
|
-
* const search = new
|
|
49
|
+
* const search = new BigToolSearch({
|
|
46
50
|
* mode: 'hybrid',
|
|
47
51
|
* embeddings: new OpenAIEmbeddings(),
|
|
48
52
|
* weights: { bm25: 0.5, vector: 0.5 },
|
|
49
53
|
* });
|
|
50
54
|
* ```
|
|
51
55
|
*/
|
|
52
|
-
export declare class
|
|
56
|
+
export declare class BigToolSearch implements SearchIndex {
|
|
53
57
|
private config;
|
|
54
58
|
private tools;
|
|
55
59
|
private initialized;
|
|
56
|
-
constructor(config?: Partial<
|
|
60
|
+
constructor(config?: Partial<BigToolSearchConfig>);
|
|
57
61
|
index(tools: ToolMetadata[]): Promise<void>;
|
|
58
62
|
search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
59
63
|
reindex(): Promise<void>;
|
|
60
64
|
/** Get current configuration */
|
|
61
|
-
getConfig():
|
|
65
|
+
getConfig(): BigToolSearchConfig;
|
|
62
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated Use BigToolSearch instead
|
|
69
|
+
*/
|
|
70
|
+
export declare const OramaSearch: typeof BigToolSearch;
|
|
63
71
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEnC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qCAAqC;IACrC,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,8BAA8B;IAC9B,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC/C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAuB/C,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA0D3E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,gCAAgC;IAChC,SAAS,IAAI,mBAAmB;CAGjC;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,sBAAgB,CAAC"}
|
package/dist/search/index.js
CHANGED
|
@@ -9,23 +9,23 @@
|
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
11
|
* // BM25 mode (default)
|
|
12
|
-
* const search = new
|
|
12
|
+
* const search = new BigToolSearch();
|
|
13
13
|
*
|
|
14
14
|
* // Vector mode
|
|
15
|
-
* const search = new
|
|
15
|
+
* const search = new BigToolSearch({
|
|
16
16
|
* mode: 'vector',
|
|
17
17
|
* embeddings: new OpenAIEmbeddings(),
|
|
18
18
|
* });
|
|
19
19
|
*
|
|
20
20
|
* // Hybrid mode
|
|
21
|
-
* const search = new
|
|
21
|
+
* const search = new BigToolSearch({
|
|
22
22
|
* mode: 'hybrid',
|
|
23
23
|
* embeddings: new OpenAIEmbeddings(),
|
|
24
24
|
* weights: { bm25: 0.5, vector: 0.5 },
|
|
25
25
|
* });
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
-
export class
|
|
28
|
+
export class BigToolSearch {
|
|
29
29
|
config;
|
|
30
30
|
tools = [];
|
|
31
31
|
initialized = false;
|
|
@@ -47,7 +47,7 @@ export class OramaSearch {
|
|
|
47
47
|
};
|
|
48
48
|
// Validate config
|
|
49
49
|
if ((this.config.mode === 'vector' || this.config.mode === 'hybrid') && !this.config.embeddings) {
|
|
50
|
-
throw new Error(`
|
|
50
|
+
throw new Error(`BigToolSearch: 'embeddings' is required for '${this.config.mode}' mode`);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
async index(tools) {
|
|
@@ -61,7 +61,7 @@ export class OramaSearch {
|
|
|
61
61
|
}
|
|
62
62
|
async search(query, options = {}) {
|
|
63
63
|
if (!this.initialized) {
|
|
64
|
-
throw new Error('
|
|
64
|
+
throw new Error('BigToolSearch: Must call index() before searching');
|
|
65
65
|
}
|
|
66
66
|
const limit = options.limit ?? 5;
|
|
67
67
|
const threshold = options.threshold ?? 0;
|
|
@@ -119,4 +119,8 @@ export class OramaSearch {
|
|
|
119
119
|
return { ...this.config };
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* @deprecated Use BigToolSearch instead
|
|
124
|
+
*/
|
|
125
|
+
export const OramaSearch = BigToolSearch;
|
|
122
126
|
//# sourceMappingURL=index.js.map
|
package/dist/search/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"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"}
|
package/dist/search/orama.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* BigToolSearch module.
|
|
3
3
|
*
|
|
4
4
|
* Provides a powerful search index implementation using @orama/orama,
|
|
5
5
|
* supporting BM25 text search, vector semantic search, and hybrid modes.
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
* @module search/orama
|
|
8
8
|
*/
|
|
9
9
|
import type { SearchIndex, SearchOptions, SearchResult } from '../types/index.js';
|
|
10
|
-
import type { ToolMetadata,
|
|
10
|
+
import type { ToolMetadata, BigToolSearchConfig, Embeddings, EmbeddingCache } from "./types.js";
|
|
11
11
|
/**
|
|
12
12
|
* Search index implementation using @orama/orama.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* BigToolSearch provides fast, in-memory search for tool discovery.
|
|
15
15
|
* It supports three search modes:
|
|
16
16
|
*
|
|
17
17
|
* - **BM25**: Fast text search using TF-IDF/BM25 algorithm. No API keys
|
|
@@ -25,9 +25,9 @@ import type { ToolMetadata, OramaSearchConfig, Embeddings, EmbeddingCache } from
|
|
|
25
25
|
*
|
|
26
26
|
* @example BM25 Mode (default, no API keys needed)
|
|
27
27
|
* ```typescript
|
|
28
|
-
* import {
|
|
28
|
+
* import { BigToolSearch } from 'bigtool-ts';
|
|
29
29
|
*
|
|
30
|
-
* const search = new
|
|
30
|
+
* const search = new BigToolSearch({ mode: 'bm25' });
|
|
31
31
|
* await search.index(catalog.getAllMetadata());
|
|
32
32
|
*
|
|
33
33
|
* const results = await search.search('github pull request');
|
|
@@ -36,10 +36,10 @@ import type { ToolMetadata, OramaSearchConfig, Embeddings, EmbeddingCache } from
|
|
|
36
36
|
*
|
|
37
37
|
* @example Vector Mode (semantic search)
|
|
38
38
|
* ```typescript
|
|
39
|
-
* import {
|
|
39
|
+
* import { BigToolSearch } from 'bigtool-ts';
|
|
40
40
|
* import { OpenAIEmbeddings } from '@langchain/openai';
|
|
41
41
|
*
|
|
42
|
-
* const search = new
|
|
42
|
+
* const search = new BigToolSearch({
|
|
43
43
|
* mode: 'vector',
|
|
44
44
|
* embeddings: new OpenAIEmbeddings(),
|
|
45
45
|
* cache: new MemoryEmbeddingCache(),
|
|
@@ -51,7 +51,7 @@ import type { ToolMetadata, OramaSearchConfig, Embeddings, EmbeddingCache } from
|
|
|
51
51
|
*
|
|
52
52
|
* @example Hybrid Mode (best of both)
|
|
53
53
|
* ```typescript
|
|
54
|
-
* const search = new
|
|
54
|
+
* const search = new BigToolSearch({
|
|
55
55
|
* mode: 'hybrid',
|
|
56
56
|
* embeddings: new OpenAIEmbeddings(),
|
|
57
57
|
* weights: { bm25: 0.4, vector: 0.6 },
|
|
@@ -59,7 +59,7 @@ import type { ToolMetadata, OramaSearchConfig, Embeddings, EmbeddingCache } from
|
|
|
59
59
|
* });
|
|
60
60
|
* ```
|
|
61
61
|
*/
|
|
62
|
-
export declare class
|
|
62
|
+
export declare class BigToolSearch implements SearchIndex {
|
|
63
63
|
/** @internal BM25 database */
|
|
64
64
|
private db;
|
|
65
65
|
/** @internal Vector database */
|
|
@@ -75,7 +75,7 @@ export declare class OramaSearch implements SearchIndex {
|
|
|
75
75
|
/** @internal Whether index() has been called */
|
|
76
76
|
private initialized;
|
|
77
77
|
/**
|
|
78
|
-
* Creates a new
|
|
78
|
+
* Creates a new BigToolSearch instance.
|
|
79
79
|
*
|
|
80
80
|
* @param config - Search configuration (mode, embeddings, etc.)
|
|
81
81
|
* @throws Error if vector/hybrid mode is used without embeddings
|
|
@@ -83,19 +83,19 @@ export declare class OramaSearch implements SearchIndex {
|
|
|
83
83
|
* @example
|
|
84
84
|
* ```typescript
|
|
85
85
|
* // BM25 (default)
|
|
86
|
-
* const search = new
|
|
86
|
+
* const search = new BigToolSearch();
|
|
87
87
|
*
|
|
88
88
|
* // Explicit mode
|
|
89
|
-
* const search = new
|
|
89
|
+
* const search = new BigToolSearch({ mode: 'bm25' });
|
|
90
90
|
*
|
|
91
91
|
* // With custom boosts
|
|
92
|
-
* const search = new
|
|
92
|
+
* const search = new BigToolSearch({
|
|
93
93
|
* mode: 'bm25',
|
|
94
94
|
* boost: { name: 3, keywords: 2, description: 1, categories: 1 },
|
|
95
95
|
* });
|
|
96
96
|
* ```
|
|
97
97
|
*/
|
|
98
|
-
constructor(config?:
|
|
98
|
+
constructor(config?: BigToolSearchConfig);
|
|
99
99
|
/**
|
|
100
100
|
* Index a collection of tools for search.
|
|
101
101
|
*
|
|
@@ -109,7 +109,7 @@ export declare class OramaSearch implements SearchIndex {
|
|
|
109
109
|
*
|
|
110
110
|
* @example
|
|
111
111
|
* ```typescript
|
|
112
|
-
* const search = new
|
|
112
|
+
* const search = new BigToolSearch({ mode: 'bm25' });
|
|
113
113
|
* await search.index(catalog.getAllMetadata());
|
|
114
114
|
* ```
|
|
115
115
|
*/
|
|
@@ -182,11 +182,11 @@ export declare class OramaSearch implements SearchIndex {
|
|
|
182
182
|
* Uses TF-IDF/BM25 algorithm for text matching.
|
|
183
183
|
*
|
|
184
184
|
* @param options - Optional configuration for field boosting
|
|
185
|
-
* @returns Configured
|
|
185
|
+
* @returns Configured BigToolSearch instance
|
|
186
186
|
*
|
|
187
187
|
* @example
|
|
188
188
|
* ```typescript
|
|
189
|
-
* import { createBM25Search } from '
|
|
189
|
+
* import { createBM25Search } from 'bigtool-ts';
|
|
190
190
|
*
|
|
191
191
|
* const search = createBM25Search();
|
|
192
192
|
* await search.index(tools);
|
|
@@ -199,7 +199,7 @@ export declare class OramaSearch implements SearchIndex {
|
|
|
199
199
|
* });
|
|
200
200
|
* ```
|
|
201
201
|
*/
|
|
202
|
-
export declare function createBM25Search(options?: Pick<
|
|
202
|
+
export declare function createBM25Search(options?: Pick<BigToolSearchConfig, "boost">): BigToolSearch;
|
|
203
203
|
/**
|
|
204
204
|
* Create a vector search index.
|
|
205
205
|
*
|
|
@@ -209,11 +209,11 @@ export declare function createBM25Search(options?: Pick<OramaSearchConfig, "boos
|
|
|
209
209
|
* @param embeddings - Embeddings provider for computing vectors
|
|
210
210
|
* @param cache - Optional cache for storing computed embeddings
|
|
211
211
|
* @param vectorSize - Embedding dimension (default: 1536 for OpenAI)
|
|
212
|
-
* @returns Configured
|
|
212
|
+
* @returns Configured BigToolSearch instance
|
|
213
213
|
*
|
|
214
214
|
* @example
|
|
215
215
|
* ```typescript
|
|
216
|
-
* import { createVectorSearch } from '
|
|
216
|
+
* import { createVectorSearch } from 'bigtool-ts';
|
|
217
217
|
* import { OpenAIEmbeddings } from '@langchain/openai';
|
|
218
218
|
*
|
|
219
219
|
* const search = createVectorSearch(
|
|
@@ -222,7 +222,7 @@ export declare function createBM25Search(options?: Pick<OramaSearchConfig, "boos
|
|
|
222
222
|
* );
|
|
223
223
|
* ```
|
|
224
224
|
*/
|
|
225
|
-
export declare function createVectorSearch(embeddings: Embeddings, cache?: EmbeddingCache, vectorSize?: number):
|
|
225
|
+
export declare function createVectorSearch(embeddings: Embeddings, cache?: EmbeddingCache, vectorSize?: number): BigToolSearch;
|
|
226
226
|
/**
|
|
227
227
|
* Create a hybrid search index.
|
|
228
228
|
*
|
|
@@ -231,11 +231,11 @@ export declare function createVectorSearch(embeddings: Embeddings, cache?: Embed
|
|
|
231
231
|
*
|
|
232
232
|
* @param embeddings - Embeddings provider for computing vectors
|
|
233
233
|
* @param options - Configuration options
|
|
234
|
-
* @returns Configured
|
|
234
|
+
* @returns Configured BigToolSearch instance
|
|
235
235
|
*
|
|
236
236
|
* @example
|
|
237
237
|
* ```typescript
|
|
238
|
-
* import { createHybridSearch } from '
|
|
238
|
+
* import { createHybridSearch } from 'bigtool-ts';
|
|
239
239
|
* import { OpenAIEmbeddings } from '@langchain/openai';
|
|
240
240
|
*
|
|
241
241
|
* const search = createHybridSearch(new OpenAIEmbeddings(), {
|
|
@@ -250,7 +250,11 @@ export declare function createHybridSearch(embeddings: Embeddings, options?: {
|
|
|
250
250
|
bm25: number;
|
|
251
251
|
vector: number;
|
|
252
252
|
};
|
|
253
|
-
boost?:
|
|
253
|
+
boost?: BigToolSearchConfig["boost"];
|
|
254
254
|
vectorSize?: number;
|
|
255
|
-
}):
|
|
255
|
+
}): BigToolSearch;
|
|
256
|
+
/**
|
|
257
|
+
* @deprecated Use BigToolSearch instead
|
|
258
|
+
*/
|
|
259
|
+
export declare const OramaSearch: typeof BigToolSearch;
|
|
256
260
|
//# sourceMappingURL=orama.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orama.d.ts","sourceRoot":"","sources":["../../src/search/orama.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EACV,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"orama.d.ts","sourceRoot":"","sources":["../../src/search/orama.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,cAAc,EAEf,MAAM,YAAY,CAAC;AAgEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC/C,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAA0C;IAEpD,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAA2B;IAE3C,uCAAuC;IACvC,OAAO,CAAC,MAAM,CAAkH;IAEhI,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAsB;IAEnC,oCAAoC;IACpC,OAAO,CAAC,UAAU,CAAC,CAAa;IAEhC,gCAAgC;IAChC,OAAO,CAAC,KAAK,CAAC,CAAiB;IAE/B,gDAAgD;IAChD,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;;;;;;;;;;;;;;OAoBG;gBACS,MAAM,GAAE,mBAAsC;IAmC1D;;;;;;;;;;;;;;;;OAgBG;IACG,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CjD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkC7E;;;;;;;;;;;;;;;OAeG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B;;;;;;;;;;OAUG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;YAShB,UAAU;YA+BV,YAAY;YA4BZ,YAAY;IAqB1B;;OAEG;YACW,iBAAiB;CAyChC;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAC3C,aAAa,CAKf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,KAAK,CAAC,EAAE,cAAc,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,aAAa,CAOf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,KAAK,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,aAAa,CASf;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,sBAAgB,CAAC"}
|
package/dist/search/orama.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* BigToolSearch module.
|
|
3
3
|
*
|
|
4
4
|
* Provides a powerful search index implementation using @orama/orama,
|
|
5
5
|
* supporting BM25 text search, vector semantic search, and hybrid modes.
|
|
@@ -51,12 +51,12 @@ function toolToEmbeddingText(tool) {
|
|
|
51
51
|
return parts.filter(Boolean).join(" ");
|
|
52
52
|
}
|
|
53
53
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
54
|
-
//
|
|
54
|
+
// BigToolSearch Implementation
|
|
55
55
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
56
56
|
/**
|
|
57
57
|
* Search index implementation using @orama/orama.
|
|
58
58
|
*
|
|
59
|
-
*
|
|
59
|
+
* BigToolSearch provides fast, in-memory search for tool discovery.
|
|
60
60
|
* It supports three search modes:
|
|
61
61
|
*
|
|
62
62
|
* - **BM25**: Fast text search using TF-IDF/BM25 algorithm. No API keys
|
|
@@ -70,9 +70,9 @@ function toolToEmbeddingText(tool) {
|
|
|
70
70
|
*
|
|
71
71
|
* @example BM25 Mode (default, no API keys needed)
|
|
72
72
|
* ```typescript
|
|
73
|
-
* import {
|
|
73
|
+
* import { BigToolSearch } from 'bigtool-ts';
|
|
74
74
|
*
|
|
75
|
-
* const search = new
|
|
75
|
+
* const search = new BigToolSearch({ mode: 'bm25' });
|
|
76
76
|
* await search.index(catalog.getAllMetadata());
|
|
77
77
|
*
|
|
78
78
|
* const results = await search.search('github pull request');
|
|
@@ -81,10 +81,10 @@ function toolToEmbeddingText(tool) {
|
|
|
81
81
|
*
|
|
82
82
|
* @example Vector Mode (semantic search)
|
|
83
83
|
* ```typescript
|
|
84
|
-
* import {
|
|
84
|
+
* import { BigToolSearch } from 'bigtool-ts';
|
|
85
85
|
* import { OpenAIEmbeddings } from '@langchain/openai';
|
|
86
86
|
*
|
|
87
|
-
* const search = new
|
|
87
|
+
* const search = new BigToolSearch({
|
|
88
88
|
* mode: 'vector',
|
|
89
89
|
* embeddings: new OpenAIEmbeddings(),
|
|
90
90
|
* cache: new MemoryEmbeddingCache(),
|
|
@@ -96,7 +96,7 @@ function toolToEmbeddingText(tool) {
|
|
|
96
96
|
*
|
|
97
97
|
* @example Hybrid Mode (best of both)
|
|
98
98
|
* ```typescript
|
|
99
|
-
* const search = new
|
|
99
|
+
* const search = new BigToolSearch({
|
|
100
100
|
* mode: 'hybrid',
|
|
101
101
|
* embeddings: new OpenAIEmbeddings(),
|
|
102
102
|
* weights: { bm25: 0.4, vector: 0.6 },
|
|
@@ -104,7 +104,7 @@ function toolToEmbeddingText(tool) {
|
|
|
104
104
|
* });
|
|
105
105
|
* ```
|
|
106
106
|
*/
|
|
107
|
-
export class
|
|
107
|
+
export class BigToolSearch {
|
|
108
108
|
/** @internal BM25 database */
|
|
109
109
|
db = null;
|
|
110
110
|
/** @internal Vector database */
|
|
@@ -120,7 +120,7 @@ export class OramaSearch {
|
|
|
120
120
|
/** @internal Whether index() has been called */
|
|
121
121
|
initialized = false;
|
|
122
122
|
/**
|
|
123
|
-
* Creates a new
|
|
123
|
+
* Creates a new BigToolSearch instance.
|
|
124
124
|
*
|
|
125
125
|
* @param config - Search configuration (mode, embeddings, etc.)
|
|
126
126
|
* @throws Error if vector/hybrid mode is used without embeddings
|
|
@@ -128,13 +128,13 @@ export class OramaSearch {
|
|
|
128
128
|
* @example
|
|
129
129
|
* ```typescript
|
|
130
130
|
* // BM25 (default)
|
|
131
|
-
* const search = new
|
|
131
|
+
* const search = new BigToolSearch();
|
|
132
132
|
*
|
|
133
133
|
* // Explicit mode
|
|
134
|
-
* const search = new
|
|
134
|
+
* const search = new BigToolSearch({ mode: 'bm25' });
|
|
135
135
|
*
|
|
136
136
|
* // With custom boosts
|
|
137
|
-
* const search = new
|
|
137
|
+
* const search = new BigToolSearch({
|
|
138
138
|
* mode: 'bm25',
|
|
139
139
|
* boost: { name: 3, keywords: 2, description: 1, categories: 1 },
|
|
140
140
|
* });
|
|
@@ -143,7 +143,7 @@ export class OramaSearch {
|
|
|
143
143
|
constructor(config = { mode: "bm25" }) {
|
|
144
144
|
// Validate config
|
|
145
145
|
if ((config.mode === "vector" || config.mode === "hybrid") && !config.embeddings) {
|
|
146
|
-
throw new Error(`
|
|
146
|
+
throw new Error(`BigToolSearch: Embeddings provider required for ${config.mode} mode. ` +
|
|
147
147
|
"Pass an embeddings instance (e.g., new OpenAIEmbeddings()) in config.");
|
|
148
148
|
}
|
|
149
149
|
this.embeddings = config.embeddings;
|
|
@@ -182,7 +182,7 @@ export class OramaSearch {
|
|
|
182
182
|
*
|
|
183
183
|
* @example
|
|
184
184
|
* ```typescript
|
|
185
|
-
* const search = new
|
|
185
|
+
* const search = new BigToolSearch({ mode: 'bm25' });
|
|
186
186
|
* await search.index(catalog.getAllMetadata());
|
|
187
187
|
* ```
|
|
188
188
|
*/
|
|
@@ -247,7 +247,7 @@ export class OramaSearch {
|
|
|
247
247
|
*/
|
|
248
248
|
async search(query, options) {
|
|
249
249
|
if (!this.db || !this.initialized) {
|
|
250
|
-
throw new Error("
|
|
250
|
+
throw new Error("BigToolSearch: Index not initialized. Call index() first.");
|
|
251
251
|
}
|
|
252
252
|
const mode = options?.mode ?? this.config.mode;
|
|
253
253
|
const limit = options?.limit ?? 5;
|
|
@@ -264,7 +264,7 @@ export class OramaSearch {
|
|
|
264
264
|
results = await this.searchHybrid(query, limit);
|
|
265
265
|
break;
|
|
266
266
|
default:
|
|
267
|
-
throw new Error(`
|
|
267
|
+
throw new Error(`BigToolSearch: Unknown search mode: ${mode}`);
|
|
268
268
|
}
|
|
269
269
|
// Apply threshold filter
|
|
270
270
|
if (threshold !== undefined) {
|
|
@@ -291,7 +291,7 @@ export class OramaSearch {
|
|
|
291
291
|
*/
|
|
292
292
|
async reindex() {
|
|
293
293
|
if (this.tools.length === 0) {
|
|
294
|
-
throw new Error("
|
|
294
|
+
throw new Error("BigToolSearch: No tools to reindex. Call index() first.");
|
|
295
295
|
}
|
|
296
296
|
await this.index(this.tools);
|
|
297
297
|
}
|
|
@@ -382,7 +382,7 @@ export class OramaSearch {
|
|
|
382
382
|
*/
|
|
383
383
|
async computeEmbeddings(tools) {
|
|
384
384
|
if (!this.embeddings) {
|
|
385
|
-
throw new Error("
|
|
385
|
+
throw new Error("BigToolSearch: Embeddings provider not configured.");
|
|
386
386
|
}
|
|
387
387
|
const embeddings = new Map();
|
|
388
388
|
const toCompute = [];
|
|
@@ -424,11 +424,11 @@ export class OramaSearch {
|
|
|
424
424
|
* Uses TF-IDF/BM25 algorithm for text matching.
|
|
425
425
|
*
|
|
426
426
|
* @param options - Optional configuration for field boosting
|
|
427
|
-
* @returns Configured
|
|
427
|
+
* @returns Configured BigToolSearch instance
|
|
428
428
|
*
|
|
429
429
|
* @example
|
|
430
430
|
* ```typescript
|
|
431
|
-
* import { createBM25Search } from '
|
|
431
|
+
* import { createBM25Search } from 'bigtool-ts';
|
|
432
432
|
*
|
|
433
433
|
* const search = createBM25Search();
|
|
434
434
|
* await search.index(tools);
|
|
@@ -442,7 +442,7 @@ export class OramaSearch {
|
|
|
442
442
|
* ```
|
|
443
443
|
*/
|
|
444
444
|
export function createBM25Search(options) {
|
|
445
|
-
return new
|
|
445
|
+
return new BigToolSearch({
|
|
446
446
|
mode: "bm25",
|
|
447
447
|
boost: options?.boost,
|
|
448
448
|
});
|
|
@@ -456,11 +456,11 @@ export function createBM25Search(options) {
|
|
|
456
456
|
* @param embeddings - Embeddings provider for computing vectors
|
|
457
457
|
* @param cache - Optional cache for storing computed embeddings
|
|
458
458
|
* @param vectorSize - Embedding dimension (default: 1536 for OpenAI)
|
|
459
|
-
* @returns Configured
|
|
459
|
+
* @returns Configured BigToolSearch instance
|
|
460
460
|
*
|
|
461
461
|
* @example
|
|
462
462
|
* ```typescript
|
|
463
|
-
* import { createVectorSearch } from '
|
|
463
|
+
* import { createVectorSearch } from 'bigtool-ts';
|
|
464
464
|
* import { OpenAIEmbeddings } from '@langchain/openai';
|
|
465
465
|
*
|
|
466
466
|
* const search = createVectorSearch(
|
|
@@ -470,7 +470,7 @@ export function createBM25Search(options) {
|
|
|
470
470
|
* ```
|
|
471
471
|
*/
|
|
472
472
|
export function createVectorSearch(embeddings, cache, vectorSize) {
|
|
473
|
-
return new
|
|
473
|
+
return new BigToolSearch({
|
|
474
474
|
mode: "vector",
|
|
475
475
|
embeddings,
|
|
476
476
|
cache,
|
|
@@ -485,11 +485,11 @@ export function createVectorSearch(embeddings, cache, vectorSize) {
|
|
|
485
485
|
*
|
|
486
486
|
* @param embeddings - Embeddings provider for computing vectors
|
|
487
487
|
* @param options - Configuration options
|
|
488
|
-
* @returns Configured
|
|
488
|
+
* @returns Configured BigToolSearch instance
|
|
489
489
|
*
|
|
490
490
|
* @example
|
|
491
491
|
* ```typescript
|
|
492
|
-
* import { createHybridSearch } from '
|
|
492
|
+
* import { createHybridSearch } from 'bigtool-ts';
|
|
493
493
|
* import { OpenAIEmbeddings } from '@langchain/openai';
|
|
494
494
|
*
|
|
495
495
|
* const search = createHybridSearch(new OpenAIEmbeddings(), {
|
|
@@ -499,7 +499,7 @@ export function createVectorSearch(embeddings, cache, vectorSize) {
|
|
|
499
499
|
* ```
|
|
500
500
|
*/
|
|
501
501
|
export function createHybridSearch(embeddings, options) {
|
|
502
|
-
return new
|
|
502
|
+
return new BigToolSearch({
|
|
503
503
|
mode: "hybrid",
|
|
504
504
|
embeddings,
|
|
505
505
|
cache: options?.cache,
|
|
@@ -508,4 +508,8 @@ export function createHybridSearch(embeddings, options) {
|
|
|
508
508
|
vectorSize: options?.vectorSize,
|
|
509
509
|
});
|
|
510
510
|
}
|
|
511
|
+
/**
|
|
512
|
+
* @deprecated Use BigToolSearch instead
|
|
513
|
+
*/
|
|
514
|
+
export const OramaSearch = BigToolSearch;
|
|
511
515
|
//# sourceMappingURL=orama.js.map
|
package/dist/search/orama.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orama.js","sourceRoot":"","sources":["../../src/search/orama.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,GAKN,MAAM,cAAc,CAAC;AAWtB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;CACZ,CAAC;AAEX,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,cAAc,CACrB,IAAkB,EAClB,SAAoB;IAEpB,MAAM,GAAG,GAA4B;QACnC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACzC,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KAC9C,CAAC;IAEF,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAkB;IAC7C,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,WAAW;QAChB,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;KAC3B,CAAC;IACF,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E
|
|
1
|
+
{"version":3,"file":"orama.js","sourceRoot":"","sources":["../../src/search/orama.ts"],"names":[],"mappings":"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"}
|
package/dist/search/types.d.ts
CHANGED
|
@@ -77,9 +77,9 @@ export interface HybridWeights {
|
|
|
77
77
|
vector: number;
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
|
-
* Configuration for
|
|
80
|
+
* Configuration for BigToolSearch
|
|
81
81
|
*/
|
|
82
|
-
export interface
|
|
82
|
+
export interface BigToolSearchConfig {
|
|
83
83
|
/** Search mode: bm25, vector, or hybrid */
|
|
84
84
|
mode: SearchMode;
|
|
85
85
|
/** Required for vector/hybrid modes - embedding provider */
|
|
@@ -93,4 +93,8 @@ export interface OramaSearchConfig {
|
|
|
93
93
|
/** Vector embedding dimension (default: 1536 for OpenAI) */
|
|
94
94
|
vectorSize?: number;
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* @deprecated Use BigToolSearchConfig instead
|
|
98
|
+
*/
|
|
99
|
+
export type OramaSearchConfig = BigToolSearchConfig;
|
|
96
100
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/search/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElF,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACrC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,kDAAkD;IAClD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,uCAAuC;IACvC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,gCAAgC;IAChC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kCAAkC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/search/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElF,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACrC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,kDAAkD;IAClD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,uCAAuC;IACvC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,gCAAgC;IAChC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kCAAkC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,IAAI,EAAE,UAAU,CAAC;IACjB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,kEAAkE;IAClE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bigtool-ts",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Dynamic tool discovery for AI agents. Search and load tools on-demand instead of loading all tools upfront.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -81,7 +81,12 @@
|
|
|
81
81
|
"prepublishOnly": "pnpm run clean && pnpm run build",
|
|
82
82
|
"test": "vitest run",
|
|
83
83
|
"test:watch": "vitest",
|
|
84
|
-
"typecheck": "tsc --noEmit"
|
|
84
|
+
"typecheck": "tsc --noEmit",
|
|
85
|
+
"benchmark:generate": "tsx benchmarks/tools/generate-all.ts",
|
|
86
|
+
"benchmark:generate:128": "tsx benchmarks/tools/generate-all.ts --limit=128",
|
|
87
|
+
"benchmark": "tsx benchmarks/harness/runner.ts",
|
|
88
|
+
"benchmark:quick": "tsx benchmarks/harness/runner.ts --quick",
|
|
89
|
+
"benchmark:report": "tsx benchmarks/harness/reporter.ts"
|
|
85
90
|
},
|
|
86
91
|
"dependencies": {
|
|
87
92
|
"@orama/orama": "^3.0.0",
|
|
@@ -112,6 +117,7 @@
|
|
|
112
117
|
"@langchain/langgraph": "^1.0.0",
|
|
113
118
|
"@langchain/openai": "^0.3.0",
|
|
114
119
|
"@types/node": "^20",
|
|
120
|
+
"tsx": "^4.7.0",
|
|
115
121
|
"typescript": "^5",
|
|
116
122
|
"vitest": "^2.0.0"
|
|
117
123
|
}
|