praisonai 1.3.6 → 1.5.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/dist/agent/audio.d.ts +190 -0
- package/dist/agent/audio.js +302 -0
- package/dist/agent/index.d.ts +2 -0
- package/dist/agent/index.js +5 -1
- package/dist/ai/agent-loop.d.ts +177 -0
- package/dist/ai/agent-loop.js +313 -0
- package/dist/ai/devtools.d.ts +74 -0
- package/dist/ai/devtools.js +216 -0
- package/dist/ai/embed.d.ts +71 -0
- package/dist/ai/embed.js +154 -0
- package/dist/ai/generate-image.d.ts +66 -0
- package/dist/ai/generate-image.js +138 -0
- package/dist/ai/generate-object.d.ts +132 -0
- package/dist/ai/generate-object.js +206 -0
- package/dist/ai/generate-text.d.ts +201 -0
- package/dist/ai/generate-text.js +253 -0
- package/dist/ai/index.d.ts +27 -0
- package/dist/ai/index.js +140 -0
- package/dist/ai/mcp.d.ts +181 -0
- package/dist/ai/mcp.js +234 -0
- package/dist/ai/middleware.d.ts +110 -0
- package/dist/ai/middleware.js +186 -0
- package/dist/ai/models.d.ts +67 -0
- package/dist/ai/models.js +249 -0
- package/dist/ai/multimodal.d.ts +125 -0
- package/dist/ai/multimodal.js +270 -0
- package/dist/ai/nextjs.d.ts +122 -0
- package/dist/ai/nextjs.js +218 -0
- package/dist/ai/server.d.ts +126 -0
- package/dist/ai/server.js +336 -0
- package/dist/ai/speech.d.ts +135 -0
- package/dist/ai/speech.js +296 -0
- package/dist/ai/telemetry.d.ts +162 -0
- package/dist/ai/telemetry.js +311 -0
- package/dist/ai/tool-approval.d.ts +225 -0
- package/dist/ai/tool-approval.js +407 -0
- package/dist/ai/tools.d.ts +93 -0
- package/dist/ai/tools.js +89 -0
- package/dist/ai/types.d.ts +47 -0
- package/dist/ai/types.js +5 -0
- package/dist/ai/ui-message.d.ts +218 -0
- package/dist/ai/ui-message.js +291 -0
- package/dist/cli/commands/approval.d.ts +10 -0
- package/dist/cli/commands/approval.js +274 -0
- package/dist/cli/commands/observability.d.ts +7 -0
- package/dist/cli/commands/observability.js +202 -12
- package/dist/cli/commands/providers.d.ts +5 -2
- package/dist/cli/commands/providers.js +204 -5
- package/dist/cli/commands/tools.d.ts +11 -1
- package/dist/cli/commands/tools.js +450 -64
- package/dist/cli/output/errors.d.ts +1 -0
- package/dist/cli/output/errors.js +1 -0
- package/dist/cli/spec/cli-spec.js +17 -0
- package/dist/index.d.ts +21 -4
- package/dist/index.js +275 -19
- package/dist/integrations/computer-use.d.ts +182 -0
- package/dist/integrations/computer-use.js +356 -0
- package/dist/integrations/postgres.d.ts +162 -0
- package/dist/integrations/postgres.js +396 -0
- package/dist/integrations/slack.d.ts +145 -0
- package/dist/integrations/slack.js +270 -0
- package/dist/knowledge/chonkie-adapter.d.ts +99 -0
- package/dist/knowledge/chonkie-adapter.js +268 -0
- package/dist/knowledge/index.d.ts +5 -0
- package/dist/knowledge/index.js +29 -1
- package/dist/knowledge/query-engine.d.ts +136 -0
- package/dist/knowledge/query-engine.js +214 -0
- package/dist/knowledge/rag-pipeline.d.ts +192 -0
- package/dist/knowledge/rag-pipeline.js +283 -0
- package/dist/knowledge/readers.d.ts +129 -0
- package/dist/knowledge/readers.js +393 -0
- package/dist/llm/providers/ai-sdk/types.d.ts +49 -3
- package/dist/llm/providers/ai-sdk/types.js +169 -15
- package/dist/mcp/index.d.ts +188 -0
- package/dist/mcp/index.js +373 -0
- package/dist/mcp/server.d.ts +211 -0
- package/dist/mcp/server.js +412 -0
- package/dist/memory/docs-manager.d.ts +165 -0
- package/dist/memory/docs-manager.js +294 -0
- package/dist/memory/hooks.d.ts +154 -0
- package/dist/memory/hooks.js +228 -0
- package/dist/memory/rules-manager.d.ts +182 -0
- package/dist/memory/rules-manager.js +244 -0
- package/dist/observability/adapters/console.d.ts +33 -0
- package/dist/observability/adapters/console.js +71 -0
- package/dist/observability/adapters/external/arize.d.ts +20 -0
- package/dist/observability/adapters/external/arize.js +22 -0
- package/dist/observability/adapters/external/axiom.d.ts +20 -0
- package/dist/observability/adapters/external/axiom.js +22 -0
- package/dist/observability/adapters/external/braintrust.d.ts +20 -0
- package/dist/observability/adapters/external/braintrust.js +22 -0
- package/dist/observability/adapters/external/helicone.d.ts +20 -0
- package/dist/observability/adapters/external/helicone.js +22 -0
- package/dist/observability/adapters/external/laminar.d.ts +20 -0
- package/dist/observability/adapters/external/laminar.js +22 -0
- package/dist/observability/adapters/external/langfuse.d.ts +28 -0
- package/dist/observability/adapters/external/langfuse.js +186 -0
- package/dist/observability/adapters/external/langsmith.d.ts +21 -0
- package/dist/observability/adapters/external/langsmith.js +83 -0
- package/dist/observability/adapters/external/langwatch.d.ts +20 -0
- package/dist/observability/adapters/external/langwatch.js +22 -0
- package/dist/observability/adapters/external/maxim.d.ts +20 -0
- package/dist/observability/adapters/external/maxim.js +22 -0
- package/dist/observability/adapters/external/patronus.d.ts +20 -0
- package/dist/observability/adapters/external/patronus.js +22 -0
- package/dist/observability/adapters/external/scorecard.d.ts +20 -0
- package/dist/observability/adapters/external/scorecard.js +22 -0
- package/dist/observability/adapters/external/signoz.d.ts +20 -0
- package/dist/observability/adapters/external/signoz.js +22 -0
- package/dist/observability/adapters/external/traceloop.d.ts +20 -0
- package/dist/observability/adapters/external/traceloop.js +22 -0
- package/dist/observability/adapters/external/weave.d.ts +20 -0
- package/dist/observability/adapters/external/weave.js +22 -0
- package/dist/observability/adapters/index.d.ts +19 -0
- package/dist/observability/adapters/index.js +289 -0
- package/dist/observability/adapters/memory.d.ts +41 -0
- package/dist/observability/adapters/memory.js +190 -0
- package/dist/observability/adapters/noop.d.ts +25 -0
- package/dist/observability/adapters/noop.js +64 -0
- package/dist/observability/index.d.ts +39 -78
- package/dist/observability/index.js +99 -150
- package/dist/observability/types.d.ts +165 -0
- package/dist/observability/types.js +165 -0
- package/dist/tools/builtins/airweave.d.ts +32 -0
- package/dist/tools/builtins/airweave.js +119 -0
- package/dist/tools/builtins/bedrock-agentcore.d.ts +62 -0
- package/dist/tools/builtins/bedrock-agentcore.js +233 -0
- package/dist/tools/builtins/code-execution.d.ts +36 -0
- package/dist/tools/builtins/code-execution.js +136 -0
- package/dist/tools/builtins/code-mode.d.ts +54 -0
- package/dist/tools/builtins/code-mode.js +167 -0
- package/dist/tools/builtins/custom.d.ts +42 -0
- package/dist/tools/builtins/custom.js +195 -0
- package/dist/tools/builtins/exa.d.ts +53 -0
- package/dist/tools/builtins/exa.js +112 -0
- package/dist/tools/builtins/firecrawl.d.ts +56 -0
- package/dist/tools/builtins/firecrawl.js +158 -0
- package/dist/tools/builtins/index.d.ts +45 -0
- package/dist/tools/builtins/index.js +180 -0
- package/dist/tools/builtins/parallel.d.ts +30 -0
- package/dist/tools/builtins/parallel.js +113 -0
- package/dist/tools/builtins/perplexity.d.ts +32 -0
- package/dist/tools/builtins/perplexity.js +113 -0
- package/dist/tools/builtins/superagent.d.ts +66 -0
- package/dist/tools/builtins/superagent.js +187 -0
- package/dist/tools/builtins/tavily.d.ts +99 -0
- package/dist/tools/builtins/tavily.js +285 -0
- package/dist/tools/builtins/valyu.d.ts +65 -0
- package/dist/tools/builtins/valyu.js +193 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.js +16 -2
- package/dist/tools/registry/index.d.ts +9 -0
- package/dist/tools/registry/index.js +28 -0
- package/dist/tools/registry/middleware.d.ts +43 -0
- package/dist/tools/registry/middleware.js +220 -0
- package/dist/tools/registry/registry.d.ts +92 -0
- package/dist/tools/registry/registry.js +280 -0
- package/dist/tools/registry/types.d.ts +217 -0
- package/dist/tools/registry/types.js +49 -0
- package/dist/tools/subagent.d.ts +131 -0
- package/dist/tools/subagent.js +185 -0
- package/dist/tools/tools.d.ts +74 -0
- package/dist/tools/tools.js +133 -0
- package/dist/workflows/index.d.ts +76 -1
- package/dist/workflows/index.js +125 -6
- package/dist/workflows/loop.d.ts +111 -0
- package/dist/workflows/loop.js +274 -0
- package/dist/workflows/repeat.d.ts +115 -0
- package/dist/workflows/repeat.js +144 -0
- package/package.json +4 -1
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Custom Tool Registration API
|
|
4
|
+
*
|
|
5
|
+
* Clean API to register custom tools (local + npm) with minimal friction.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.registerCustomTool = registerCustomTool;
|
|
42
|
+
exports.createCustomTool = createCustomTool;
|
|
43
|
+
exports.registerNpmTool = registerNpmTool;
|
|
44
|
+
exports.registerLocalTool = registerLocalTool;
|
|
45
|
+
exports.Tool = Tool;
|
|
46
|
+
const registry_1 = require("../registry/registry");
|
|
47
|
+
/**
|
|
48
|
+
* Register a custom tool with the global registry
|
|
49
|
+
*/
|
|
50
|
+
function registerCustomTool(config) {
|
|
51
|
+
const metadata = {
|
|
52
|
+
id: config.id,
|
|
53
|
+
displayName: config.name,
|
|
54
|
+
description: config.description,
|
|
55
|
+
tags: config.tags || ['custom'],
|
|
56
|
+
requiredEnv: [],
|
|
57
|
+
optionalEnv: [],
|
|
58
|
+
install: {
|
|
59
|
+
npm: '# Custom tool - no installation required',
|
|
60
|
+
pnpm: '# Custom tool - no installation required',
|
|
61
|
+
yarn: '# Custom tool - no installation required',
|
|
62
|
+
bun: '# Custom tool - no installation required',
|
|
63
|
+
},
|
|
64
|
+
docsSlug: config.docsSlug || `tools/custom/${config.id}`,
|
|
65
|
+
capabilities: {},
|
|
66
|
+
packageName: 'custom',
|
|
67
|
+
};
|
|
68
|
+
const tool = {
|
|
69
|
+
name: config.name,
|
|
70
|
+
description: config.description,
|
|
71
|
+
parameters: config.parameters || { type: 'object', properties: {} },
|
|
72
|
+
execute: async (input, context) => {
|
|
73
|
+
return config.execute(input, context);
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
// Register with the global registry
|
|
77
|
+
const registry = (0, registry_1.getToolsRegistry)();
|
|
78
|
+
registry.register(metadata, () => tool);
|
|
79
|
+
return tool;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create a custom tool without registering it
|
|
83
|
+
*/
|
|
84
|
+
function createCustomTool(config) {
|
|
85
|
+
return {
|
|
86
|
+
name: config.name,
|
|
87
|
+
description: config.description,
|
|
88
|
+
parameters: config.parameters || { type: 'object', properties: {} },
|
|
89
|
+
execute: async (input, context) => {
|
|
90
|
+
return config.execute(input, context);
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Register a tool from an npm package
|
|
96
|
+
*/
|
|
97
|
+
async function registerNpmTool(packageName, toolName) {
|
|
98
|
+
try {
|
|
99
|
+
const pkg = await Promise.resolve(`${packageName}`).then(s => __importStar(require(s)));
|
|
100
|
+
// Try to find the tool export
|
|
101
|
+
const toolExport = toolName
|
|
102
|
+
? pkg[toolName]
|
|
103
|
+
: pkg.default || pkg.tool || pkg[Object.keys(pkg)[0]];
|
|
104
|
+
if (!toolExport) {
|
|
105
|
+
throw new Error(`Could not find tool export in package "${packageName}"`);
|
|
106
|
+
}
|
|
107
|
+
// If it's a function, call it to get the tool
|
|
108
|
+
const tool = typeof toolExport === 'function' ? toolExport() : toolExport;
|
|
109
|
+
// Validate it has the required properties
|
|
110
|
+
if (!tool.name || !tool.execute) {
|
|
111
|
+
throw new Error(`Invalid tool structure in package "${packageName}"`);
|
|
112
|
+
}
|
|
113
|
+
// Register with the registry
|
|
114
|
+
const metadata = {
|
|
115
|
+
id: `npm:${packageName}${toolName ? `:${toolName}` : ''}`,
|
|
116
|
+
displayName: tool.name,
|
|
117
|
+
description: tool.description || `Tool from ${packageName}`,
|
|
118
|
+
tags: ['npm', 'external'],
|
|
119
|
+
requiredEnv: [],
|
|
120
|
+
optionalEnv: [],
|
|
121
|
+
install: {
|
|
122
|
+
npm: `npm install ${packageName}`,
|
|
123
|
+
pnpm: `pnpm add ${packageName}`,
|
|
124
|
+
yarn: `yarn add ${packageName}`,
|
|
125
|
+
bun: `bun add ${packageName}`,
|
|
126
|
+
},
|
|
127
|
+
docsSlug: `tools/npm/${packageName.replace(/[@/]/g, '-')}`,
|
|
128
|
+
capabilities: {},
|
|
129
|
+
packageName,
|
|
130
|
+
};
|
|
131
|
+
const registry = (0, registry_1.getToolsRegistry)();
|
|
132
|
+
registry.register(metadata, () => tool);
|
|
133
|
+
return tool;
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
throw new Error(`Failed to register tool from "${packageName}": ${error instanceof Error ? error.message : String(error)}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Register a tool from a local file path
|
|
141
|
+
*/
|
|
142
|
+
async function registerLocalTool(filePath, toolName) {
|
|
143
|
+
try {
|
|
144
|
+
// Resolve the path
|
|
145
|
+
const resolvedPath = require.resolve(filePath, { paths: [process.cwd()] });
|
|
146
|
+
const pkg = await Promise.resolve(`${resolvedPath}`).then(s => __importStar(require(s)));
|
|
147
|
+
const toolExport = toolName
|
|
148
|
+
? pkg[toolName]
|
|
149
|
+
: pkg.default || pkg.tool || pkg[Object.keys(pkg)[0]];
|
|
150
|
+
if (!toolExport) {
|
|
151
|
+
throw new Error(`Could not find tool export in file "${filePath}"`);
|
|
152
|
+
}
|
|
153
|
+
const tool = typeof toolExport === 'function' ? toolExport() : toolExport;
|
|
154
|
+
if (!tool.name || !tool.execute) {
|
|
155
|
+
throw new Error(`Invalid tool structure in file "${filePath}"`);
|
|
156
|
+
}
|
|
157
|
+
const metadata = {
|
|
158
|
+
id: `local:${filePath}${toolName ? `:${toolName}` : ''}`,
|
|
159
|
+
displayName: tool.name,
|
|
160
|
+
description: tool.description || `Tool from ${filePath}`,
|
|
161
|
+
tags: ['local', 'custom'],
|
|
162
|
+
requiredEnv: [],
|
|
163
|
+
optionalEnv: [],
|
|
164
|
+
install: {
|
|
165
|
+
npm: '# Local tool - no installation required',
|
|
166
|
+
pnpm: '# Local tool - no installation required',
|
|
167
|
+
yarn: '# Local tool - no installation required',
|
|
168
|
+
bun: '# Local tool - no installation required',
|
|
169
|
+
},
|
|
170
|
+
docsSlug: `tools/local`,
|
|
171
|
+
capabilities: {},
|
|
172
|
+
packageName: 'local',
|
|
173
|
+
};
|
|
174
|
+
const registry = (0, registry_1.getToolsRegistry)();
|
|
175
|
+
registry.register(metadata, () => tool);
|
|
176
|
+
return tool;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
throw new Error(`Failed to register tool from "${filePath}": ${error instanceof Error ? error.message : String(error)}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Decorator for creating tools from class methods
|
|
184
|
+
*/
|
|
185
|
+
function Tool(config) {
|
|
186
|
+
return function (target, propertyKey, descriptor) {
|
|
187
|
+
const originalMethod = descriptor.value;
|
|
188
|
+
// Create and register the tool
|
|
189
|
+
registerCustomTool({
|
|
190
|
+
...config,
|
|
191
|
+
execute: originalMethod,
|
|
192
|
+
});
|
|
193
|
+
return descriptor;
|
|
194
|
+
};
|
|
195
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exa Web Search Tool
|
|
3
|
+
*
|
|
4
|
+
* AI-powered web search with semantic understanding.
|
|
5
|
+
* Package: @exalabs/ai-sdk
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolMetadata, PraisonTool } from '../registry/types';
|
|
8
|
+
export declare const EXA_METADATA: ToolMetadata;
|
|
9
|
+
export interface ExaSearchConfig {
|
|
10
|
+
type?: 'auto' | 'neural' | 'fast' | 'deep';
|
|
11
|
+
category?: 'company' | 'research paper' | 'news' | 'pdf' | 'github' | 'personal site' | 'linkedin profile' | 'financial report';
|
|
12
|
+
numResults?: number;
|
|
13
|
+
includeDomains?: string[];
|
|
14
|
+
excludeDomains?: string[];
|
|
15
|
+
startPublishedDate?: string;
|
|
16
|
+
endPublishedDate?: string;
|
|
17
|
+
includeText?: string[];
|
|
18
|
+
excludeText?: string[];
|
|
19
|
+
userLocation?: string;
|
|
20
|
+
contents?: {
|
|
21
|
+
text?: {
|
|
22
|
+
maxCharacters?: number;
|
|
23
|
+
includeHtmlTags?: boolean;
|
|
24
|
+
};
|
|
25
|
+
summary?: {
|
|
26
|
+
query?: string;
|
|
27
|
+
} | boolean;
|
|
28
|
+
livecrawl?: 'never' | 'fallback' | 'always' | 'preferred';
|
|
29
|
+
livecrawlTimeout?: number;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface ExaSearchInput {
|
|
33
|
+
query: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ExaSearchResult {
|
|
36
|
+
results: Array<{
|
|
37
|
+
title: string;
|
|
38
|
+
url: string;
|
|
39
|
+
text?: string;
|
|
40
|
+
summary?: string;
|
|
41
|
+
publishedDate?: string;
|
|
42
|
+
author?: string;
|
|
43
|
+
score?: number;
|
|
44
|
+
}>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create an Exa Web Search tool
|
|
48
|
+
*/
|
|
49
|
+
export declare function exaSearch(config?: ExaSearchConfig): PraisonTool<ExaSearchInput, ExaSearchResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Factory function for registry
|
|
52
|
+
*/
|
|
53
|
+
export declare function createExaSearchTool(config?: ExaSearchConfig): PraisonTool<unknown, unknown>;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Exa Web Search Tool
|
|
4
|
+
*
|
|
5
|
+
* AI-powered web search with semantic understanding.
|
|
6
|
+
* Package: @exalabs/ai-sdk
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.EXA_METADATA = void 0;
|
|
43
|
+
exports.exaSearch = exaSearch;
|
|
44
|
+
exports.createExaSearchTool = createExaSearchTool;
|
|
45
|
+
const types_1 = require("../registry/types");
|
|
46
|
+
exports.EXA_METADATA = {
|
|
47
|
+
id: 'exa',
|
|
48
|
+
displayName: 'Exa Web Search',
|
|
49
|
+
description: 'AI-powered web search with semantic understanding and content extraction',
|
|
50
|
+
tags: ['search', 'web', 'semantic'],
|
|
51
|
+
requiredEnv: ['EXA_API_KEY'],
|
|
52
|
+
optionalEnv: [],
|
|
53
|
+
install: {
|
|
54
|
+
npm: 'npm install @exalabs/ai-sdk',
|
|
55
|
+
pnpm: 'pnpm add @exalabs/ai-sdk',
|
|
56
|
+
yarn: 'yarn add @exalabs/ai-sdk',
|
|
57
|
+
bun: 'bun add @exalabs/ai-sdk',
|
|
58
|
+
},
|
|
59
|
+
docsSlug: 'tools/exa',
|
|
60
|
+
capabilities: {
|
|
61
|
+
search: true,
|
|
62
|
+
extract: true,
|
|
63
|
+
},
|
|
64
|
+
packageName: '@exalabs/ai-sdk',
|
|
65
|
+
};
|
|
66
|
+
async function loadExaPackage() {
|
|
67
|
+
if (!process.env.EXA_API_KEY) {
|
|
68
|
+
throw new types_1.MissingEnvVarError(exports.EXA_METADATA.id, 'EXA_API_KEY', exports.EXA_METADATA.docsSlug);
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
// @ts-ignore - optional dependency
|
|
72
|
+
return await Promise.resolve().then(() => __importStar(require('@exalabs/ai-sdk')));
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
throw new types_1.MissingDependencyError(exports.EXA_METADATA.id, exports.EXA_METADATA.packageName, exports.EXA_METADATA.install, exports.EXA_METADATA.requiredEnv, exports.EXA_METADATA.docsSlug);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create an Exa Web Search tool
|
|
80
|
+
*/
|
|
81
|
+
function exaSearch(config) {
|
|
82
|
+
return {
|
|
83
|
+
name: 'webSearch',
|
|
84
|
+
description: 'Search the web using Exa AI-powered search. Returns semantically relevant results with content.',
|
|
85
|
+
parameters: {
|
|
86
|
+
type: 'object',
|
|
87
|
+
properties: {
|
|
88
|
+
query: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
description: 'The search query',
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
required: ['query'],
|
|
94
|
+
},
|
|
95
|
+
execute: async (input, _context) => {
|
|
96
|
+
const pkg = await loadExaPackage();
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
98
|
+
const tool = pkg.webSearch(config);
|
|
99
|
+
if (tool && typeof tool.execute === 'function') {
|
|
100
|
+
const result = await tool.execute(input, { toolCallId: 'exa-search', messages: [] });
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
return { results: [] };
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Factory function for registry
|
|
109
|
+
*/
|
|
110
|
+
function createExaSearchTool(config) {
|
|
111
|
+
return exaSearch(config);
|
|
112
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firecrawl Tool
|
|
3
|
+
*
|
|
4
|
+
* Web scraping, crawling, and content extraction.
|
|
5
|
+
* Package: @mendable/firecrawl-js
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolMetadata, PraisonTool } from '../registry/types';
|
|
8
|
+
export declare const FIRECRAWL_METADATA: ToolMetadata;
|
|
9
|
+
export interface FirecrawlScrapeConfig {
|
|
10
|
+
formats?: ('markdown' | 'html' | 'rawHtml' | 'links' | 'screenshot')[];
|
|
11
|
+
onlyMainContent?: boolean;
|
|
12
|
+
includeTags?: string[];
|
|
13
|
+
excludeTags?: string[];
|
|
14
|
+
waitFor?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface FirecrawlCrawlConfig {
|
|
17
|
+
limit?: number;
|
|
18
|
+
maxDepth?: number;
|
|
19
|
+
includePaths?: string[];
|
|
20
|
+
excludePaths?: string[];
|
|
21
|
+
allowBackwardLinks?: boolean;
|
|
22
|
+
allowExternalLinks?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface FirecrawlScrapeInput {
|
|
25
|
+
url: string;
|
|
26
|
+
}
|
|
27
|
+
export interface FirecrawlCrawlInput {
|
|
28
|
+
url: string;
|
|
29
|
+
}
|
|
30
|
+
export interface FirecrawlScrapeResult {
|
|
31
|
+
content: string;
|
|
32
|
+
markdown?: string;
|
|
33
|
+
html?: string;
|
|
34
|
+
links?: string[];
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
export interface FirecrawlCrawlResult {
|
|
38
|
+
pages: Array<{
|
|
39
|
+
url: string;
|
|
40
|
+
content: string;
|
|
41
|
+
markdown?: string;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a Firecrawl Scrape tool
|
|
46
|
+
*/
|
|
47
|
+
export declare function firecrawlScrape(config?: FirecrawlScrapeConfig): PraisonTool<FirecrawlScrapeInput, FirecrawlScrapeResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Create a Firecrawl Crawl tool
|
|
50
|
+
*/
|
|
51
|
+
export declare function firecrawlCrawl(config?: FirecrawlCrawlConfig): PraisonTool<FirecrawlCrawlInput, FirecrawlCrawlResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Factory functions for registry
|
|
54
|
+
*/
|
|
55
|
+
export declare function createFirecrawlScrapeTool(config?: FirecrawlScrapeConfig): PraisonTool<unknown, unknown>;
|
|
56
|
+
export declare function createFirecrawlCrawlTool(config?: FirecrawlCrawlConfig): PraisonTool<unknown, unknown>;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Firecrawl Tool
|
|
4
|
+
*
|
|
5
|
+
* Web scraping, crawling, and content extraction.
|
|
6
|
+
* Package: @mendable/firecrawl-js
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.FIRECRAWL_METADATA = void 0;
|
|
43
|
+
exports.firecrawlScrape = firecrawlScrape;
|
|
44
|
+
exports.firecrawlCrawl = firecrawlCrawl;
|
|
45
|
+
exports.createFirecrawlScrapeTool = createFirecrawlScrapeTool;
|
|
46
|
+
exports.createFirecrawlCrawlTool = createFirecrawlCrawlTool;
|
|
47
|
+
const types_1 = require("../registry/types");
|
|
48
|
+
exports.FIRECRAWL_METADATA = {
|
|
49
|
+
id: 'firecrawl',
|
|
50
|
+
displayName: 'Firecrawl',
|
|
51
|
+
description: 'Web scraping, crawling, and content extraction for LLM-ready data',
|
|
52
|
+
tags: ['scrape', 'crawl', 'extract', 'web'],
|
|
53
|
+
requiredEnv: ['FIRECRAWL_API_KEY'],
|
|
54
|
+
optionalEnv: [],
|
|
55
|
+
install: {
|
|
56
|
+
npm: 'npm install @mendable/firecrawl-js',
|
|
57
|
+
pnpm: 'pnpm add @mendable/firecrawl-js',
|
|
58
|
+
yarn: 'yarn add @mendable/firecrawl-js',
|
|
59
|
+
bun: 'bun add @mendable/firecrawl-js',
|
|
60
|
+
},
|
|
61
|
+
docsSlug: 'tools/firecrawl',
|
|
62
|
+
capabilities: {
|
|
63
|
+
crawl: true,
|
|
64
|
+
extract: true,
|
|
65
|
+
},
|
|
66
|
+
packageName: '@mendable/firecrawl-js',
|
|
67
|
+
};
|
|
68
|
+
async function loadFirecrawlPackage() {
|
|
69
|
+
if (!process.env.FIRECRAWL_API_KEY) {
|
|
70
|
+
throw new types_1.MissingEnvVarError(exports.FIRECRAWL_METADATA.id, 'FIRECRAWL_API_KEY', exports.FIRECRAWL_METADATA.docsSlug);
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
return await Promise.resolve().then(() => __importStar(require('@mendable/firecrawl-js')));
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
throw new types_1.MissingDependencyError(exports.FIRECRAWL_METADATA.id, exports.FIRECRAWL_METADATA.packageName, exports.FIRECRAWL_METADATA.install, exports.FIRECRAWL_METADATA.requiredEnv, exports.FIRECRAWL_METADATA.docsSlug);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a Firecrawl Scrape tool
|
|
81
|
+
*/
|
|
82
|
+
function firecrawlScrape(config) {
|
|
83
|
+
return {
|
|
84
|
+
name: 'firecrawlScrape',
|
|
85
|
+
description: 'Scrape a single web page and extract its content in LLM-ready format.',
|
|
86
|
+
parameters: {
|
|
87
|
+
type: 'object',
|
|
88
|
+
properties: {
|
|
89
|
+
url: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
description: 'The URL to scrape',
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
required: ['url'],
|
|
95
|
+
},
|
|
96
|
+
execute: async (input, context) => {
|
|
97
|
+
const pkg = await loadFirecrawlPackage();
|
|
98
|
+
// Firecrawl uses a class-based API
|
|
99
|
+
const FirecrawlApp = pkg.default || pkg;
|
|
100
|
+
if (typeof FirecrawlApp === 'function') {
|
|
101
|
+
const app = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
|
|
102
|
+
const result = await app.scrapeUrl(input.url, config);
|
|
103
|
+
return {
|
|
104
|
+
content: result.data?.markdown || '',
|
|
105
|
+
markdown: result.data?.markdown,
|
|
106
|
+
html: result.data?.html,
|
|
107
|
+
links: result.data?.links,
|
|
108
|
+
metadata: result.data?.metadata,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return { content: '' };
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Create a Firecrawl Crawl tool
|
|
117
|
+
*/
|
|
118
|
+
function firecrawlCrawl(config) {
|
|
119
|
+
return {
|
|
120
|
+
name: 'firecrawlCrawl',
|
|
121
|
+
description: 'Crawl a website and extract content from multiple pages.',
|
|
122
|
+
parameters: {
|
|
123
|
+
type: 'object',
|
|
124
|
+
properties: {
|
|
125
|
+
url: {
|
|
126
|
+
type: 'string',
|
|
127
|
+
description: 'The starting URL to crawl',
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
required: ['url'],
|
|
131
|
+
},
|
|
132
|
+
execute: async (input, context) => {
|
|
133
|
+
const pkg = await loadFirecrawlPackage();
|
|
134
|
+
const FirecrawlApp = pkg.default || pkg;
|
|
135
|
+
if (typeof FirecrawlApp === 'function') {
|
|
136
|
+
const app = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
|
|
137
|
+
const result = await app.crawlUrl(input.url, config);
|
|
138
|
+
return {
|
|
139
|
+
pages: (result.data || []).map(page => ({
|
|
140
|
+
url: page.url,
|
|
141
|
+
content: page.markdown || '',
|
|
142
|
+
markdown: page.markdown,
|
|
143
|
+
})),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
return { pages: [] };
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Factory functions for registry
|
|
152
|
+
*/
|
|
153
|
+
function createFirecrawlScrapeTool(config) {
|
|
154
|
+
return firecrawlScrape(config);
|
|
155
|
+
}
|
|
156
|
+
function createFirecrawlCrawlTool(config) {
|
|
157
|
+
return firecrawlCrawl(config);
|
|
158
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in Tools - Main Exports
|
|
3
|
+
*
|
|
4
|
+
* All built-in tool adapters with lazy loading.
|
|
5
|
+
*/
|
|
6
|
+
export { CODE_EXECUTION_METADATA } from './code-execution';
|
|
7
|
+
export { TAVILY_METADATA } from './tavily';
|
|
8
|
+
export { EXA_METADATA } from './exa';
|
|
9
|
+
export { PERPLEXITY_METADATA } from './perplexity';
|
|
10
|
+
export { PARALLEL_METADATA } from './parallel';
|
|
11
|
+
export { FIRECRAWL_METADATA } from './firecrawl';
|
|
12
|
+
export { SUPERAGENT_METADATA } from './superagent';
|
|
13
|
+
export { VALYU_METADATA } from './valyu';
|
|
14
|
+
export { BEDROCK_AGENTCORE_METADATA } from './bedrock-agentcore';
|
|
15
|
+
export { AIRWEAVE_METADATA } from './airweave';
|
|
16
|
+
export { CODE_MODE_METADATA } from './code-mode';
|
|
17
|
+
export { codeExecution, createCodeExecutionTool } from './code-execution';
|
|
18
|
+
export type { CodeExecutionConfig, CodeExecutionInput, CodeExecutionOutput } from './code-execution';
|
|
19
|
+
export { tavilySearch, tavilyExtract, tavilyCrawl, createTavilySearchTool, createTavilyExtractTool, createTavilyCrawlTool } from './tavily';
|
|
20
|
+
export type { TavilySearchConfig, TavilySearchInput, TavilySearchResult, TavilyExtractConfig, TavilyExtractInput, TavilyExtractResult, TavilyCrawlConfig, TavilyCrawlInput, TavilyCrawlResult } from './tavily';
|
|
21
|
+
export { exaSearch, createExaSearchTool } from './exa';
|
|
22
|
+
export type { ExaSearchConfig, ExaSearchInput, ExaSearchResult } from './exa';
|
|
23
|
+
export { perplexitySearch, createPerplexitySearchTool } from './perplexity';
|
|
24
|
+
export type { PerplexitySearchConfig, PerplexitySearchInput, PerplexitySearchResult } from './perplexity';
|
|
25
|
+
export { parallelSearch, createParallelSearchTool } from './parallel';
|
|
26
|
+
export type { ParallelSearchConfig, ParallelSearchInput, ParallelSearchResult } from './parallel';
|
|
27
|
+
export { firecrawlScrape, firecrawlCrawl, createFirecrawlScrapeTool, createFirecrawlCrawlTool } from './firecrawl';
|
|
28
|
+
export type { FirecrawlScrapeConfig, FirecrawlScrapeInput, FirecrawlScrapeResult, FirecrawlCrawlConfig, FirecrawlCrawlInput, FirecrawlCrawlResult } from './firecrawl';
|
|
29
|
+
export { superagentGuard, superagentRedact, superagentVerify, createSuperagentGuardTool, createSuperagentRedactTool, createSuperagentVerifyTool } from './superagent';
|
|
30
|
+
export type { GuardConfig, GuardInput, GuardResult, RedactConfig, RedactInput, RedactResult, VerifyConfig, VerifyInput, VerifyResult } from './superagent';
|
|
31
|
+
export { valyuWebSearch, valyuFinanceSearch, valyuPaperSearch, valyuBioSearch, valyuPatentSearch, valyuSecSearch, valyuEconomicsSearch, valyuCompanyResearch, createValyuWebSearchTool, createValyuFinanceSearchTool, createValyuPaperSearchTool, createValyuBioSearchTool, createValyuPatentSearchTool, createValyuSecSearchTool, createValyuEconomicsSearchTool, createValyuCompanyResearchTool } from './valyu';
|
|
32
|
+
export type { ValyuSearchConfig, ValyuSearchInput, ValyuSearchResult } from './valyu';
|
|
33
|
+
export { bedrockCodeInterpreter, bedrockBrowserNavigate, bedrockBrowserClick, bedrockBrowserFill, createBedrockCodeInterpreterTool, createBedrockBrowserNavigateTool, createBedrockBrowserClickTool, createBedrockBrowserFillTool } from './bedrock-agentcore';
|
|
34
|
+
export type { CodeInterpreterConfig, CodeInterpreterInput, CodeInterpreterResult, BrowserConfig, BrowserNavigateInput, BrowserClickInput, BrowserFillInput, BrowserResult } from './bedrock-agentcore';
|
|
35
|
+
export { airweaveSearch, createAirweaveSearchTool } from './airweave';
|
|
36
|
+
export type { AirweaveSearchConfig, AirweaveSearchInput, AirweaveSearchResult } from './airweave';
|
|
37
|
+
export { codeMode, createCodeModeTool } from './code-mode';
|
|
38
|
+
export type { CodeModeConfig, CodeModeInput, CodeModeResult } from './code-mode';
|
|
39
|
+
export { registerCustomTool, createCustomTool, registerNpmTool, registerLocalTool, Tool } from './custom';
|
|
40
|
+
export type { CustomToolConfig } from './custom';
|
|
41
|
+
export declare const ALL_BUILTIN_METADATA: readonly [];
|
|
42
|
+
/**
|
|
43
|
+
* Get all built-in tool metadata
|
|
44
|
+
*/
|
|
45
|
+
export declare function getAllBuiltinMetadata(): Promise<import("..").ToolMetadata[]>;
|