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.
Files changed (170) hide show
  1. package/dist/agent/audio.d.ts +190 -0
  2. package/dist/agent/audio.js +302 -0
  3. package/dist/agent/index.d.ts +2 -0
  4. package/dist/agent/index.js +5 -1
  5. package/dist/ai/agent-loop.d.ts +177 -0
  6. package/dist/ai/agent-loop.js +313 -0
  7. package/dist/ai/devtools.d.ts +74 -0
  8. package/dist/ai/devtools.js +216 -0
  9. package/dist/ai/embed.d.ts +71 -0
  10. package/dist/ai/embed.js +154 -0
  11. package/dist/ai/generate-image.d.ts +66 -0
  12. package/dist/ai/generate-image.js +138 -0
  13. package/dist/ai/generate-object.d.ts +132 -0
  14. package/dist/ai/generate-object.js +206 -0
  15. package/dist/ai/generate-text.d.ts +201 -0
  16. package/dist/ai/generate-text.js +253 -0
  17. package/dist/ai/index.d.ts +27 -0
  18. package/dist/ai/index.js +140 -0
  19. package/dist/ai/mcp.d.ts +181 -0
  20. package/dist/ai/mcp.js +234 -0
  21. package/dist/ai/middleware.d.ts +110 -0
  22. package/dist/ai/middleware.js +186 -0
  23. package/dist/ai/models.d.ts +67 -0
  24. package/dist/ai/models.js +249 -0
  25. package/dist/ai/multimodal.d.ts +125 -0
  26. package/dist/ai/multimodal.js +270 -0
  27. package/dist/ai/nextjs.d.ts +122 -0
  28. package/dist/ai/nextjs.js +218 -0
  29. package/dist/ai/server.d.ts +126 -0
  30. package/dist/ai/server.js +336 -0
  31. package/dist/ai/speech.d.ts +135 -0
  32. package/dist/ai/speech.js +296 -0
  33. package/dist/ai/telemetry.d.ts +162 -0
  34. package/dist/ai/telemetry.js +311 -0
  35. package/dist/ai/tool-approval.d.ts +225 -0
  36. package/dist/ai/tool-approval.js +407 -0
  37. package/dist/ai/tools.d.ts +93 -0
  38. package/dist/ai/tools.js +89 -0
  39. package/dist/ai/types.d.ts +47 -0
  40. package/dist/ai/types.js +5 -0
  41. package/dist/ai/ui-message.d.ts +218 -0
  42. package/dist/ai/ui-message.js +291 -0
  43. package/dist/cli/commands/approval.d.ts +10 -0
  44. package/dist/cli/commands/approval.js +274 -0
  45. package/dist/cli/commands/observability.d.ts +7 -0
  46. package/dist/cli/commands/observability.js +202 -12
  47. package/dist/cli/commands/providers.d.ts +5 -2
  48. package/dist/cli/commands/providers.js +204 -5
  49. package/dist/cli/commands/tools.d.ts +11 -1
  50. package/dist/cli/commands/tools.js +450 -64
  51. package/dist/cli/output/errors.d.ts +1 -0
  52. package/dist/cli/output/errors.js +1 -0
  53. package/dist/cli/spec/cli-spec.js +17 -0
  54. package/dist/index.d.ts +21 -4
  55. package/dist/index.js +275 -19
  56. package/dist/integrations/computer-use.d.ts +182 -0
  57. package/dist/integrations/computer-use.js +356 -0
  58. package/dist/integrations/postgres.d.ts +162 -0
  59. package/dist/integrations/postgres.js +396 -0
  60. package/dist/integrations/slack.d.ts +145 -0
  61. package/dist/integrations/slack.js +270 -0
  62. package/dist/knowledge/chonkie-adapter.d.ts +99 -0
  63. package/dist/knowledge/chonkie-adapter.js +268 -0
  64. package/dist/knowledge/index.d.ts +5 -0
  65. package/dist/knowledge/index.js +29 -1
  66. package/dist/knowledge/query-engine.d.ts +136 -0
  67. package/dist/knowledge/query-engine.js +214 -0
  68. package/dist/knowledge/rag-pipeline.d.ts +192 -0
  69. package/dist/knowledge/rag-pipeline.js +283 -0
  70. package/dist/knowledge/readers.d.ts +129 -0
  71. package/dist/knowledge/readers.js +393 -0
  72. package/dist/llm/providers/ai-sdk/types.d.ts +49 -3
  73. package/dist/llm/providers/ai-sdk/types.js +169 -15
  74. package/dist/mcp/index.d.ts +188 -0
  75. package/dist/mcp/index.js +373 -0
  76. package/dist/mcp/server.d.ts +211 -0
  77. package/dist/mcp/server.js +412 -0
  78. package/dist/memory/docs-manager.d.ts +165 -0
  79. package/dist/memory/docs-manager.js +294 -0
  80. package/dist/memory/hooks.d.ts +154 -0
  81. package/dist/memory/hooks.js +228 -0
  82. package/dist/memory/rules-manager.d.ts +182 -0
  83. package/dist/memory/rules-manager.js +244 -0
  84. package/dist/observability/adapters/console.d.ts +33 -0
  85. package/dist/observability/adapters/console.js +71 -0
  86. package/dist/observability/adapters/external/arize.d.ts +20 -0
  87. package/dist/observability/adapters/external/arize.js +22 -0
  88. package/dist/observability/adapters/external/axiom.d.ts +20 -0
  89. package/dist/observability/adapters/external/axiom.js +22 -0
  90. package/dist/observability/adapters/external/braintrust.d.ts +20 -0
  91. package/dist/observability/adapters/external/braintrust.js +22 -0
  92. package/dist/observability/adapters/external/helicone.d.ts +20 -0
  93. package/dist/observability/adapters/external/helicone.js +22 -0
  94. package/dist/observability/adapters/external/laminar.d.ts +20 -0
  95. package/dist/observability/adapters/external/laminar.js +22 -0
  96. package/dist/observability/adapters/external/langfuse.d.ts +28 -0
  97. package/dist/observability/adapters/external/langfuse.js +186 -0
  98. package/dist/observability/adapters/external/langsmith.d.ts +21 -0
  99. package/dist/observability/adapters/external/langsmith.js +83 -0
  100. package/dist/observability/adapters/external/langwatch.d.ts +20 -0
  101. package/dist/observability/adapters/external/langwatch.js +22 -0
  102. package/dist/observability/adapters/external/maxim.d.ts +20 -0
  103. package/dist/observability/adapters/external/maxim.js +22 -0
  104. package/dist/observability/adapters/external/patronus.d.ts +20 -0
  105. package/dist/observability/adapters/external/patronus.js +22 -0
  106. package/dist/observability/adapters/external/scorecard.d.ts +20 -0
  107. package/dist/observability/adapters/external/scorecard.js +22 -0
  108. package/dist/observability/adapters/external/signoz.d.ts +20 -0
  109. package/dist/observability/adapters/external/signoz.js +22 -0
  110. package/dist/observability/adapters/external/traceloop.d.ts +20 -0
  111. package/dist/observability/adapters/external/traceloop.js +22 -0
  112. package/dist/observability/adapters/external/weave.d.ts +20 -0
  113. package/dist/observability/adapters/external/weave.js +22 -0
  114. package/dist/observability/adapters/index.d.ts +19 -0
  115. package/dist/observability/adapters/index.js +289 -0
  116. package/dist/observability/adapters/memory.d.ts +41 -0
  117. package/dist/observability/adapters/memory.js +190 -0
  118. package/dist/observability/adapters/noop.d.ts +25 -0
  119. package/dist/observability/adapters/noop.js +64 -0
  120. package/dist/observability/index.d.ts +39 -78
  121. package/dist/observability/index.js +99 -150
  122. package/dist/observability/types.d.ts +165 -0
  123. package/dist/observability/types.js +165 -0
  124. package/dist/tools/builtins/airweave.d.ts +32 -0
  125. package/dist/tools/builtins/airweave.js +119 -0
  126. package/dist/tools/builtins/bedrock-agentcore.d.ts +62 -0
  127. package/dist/tools/builtins/bedrock-agentcore.js +233 -0
  128. package/dist/tools/builtins/code-execution.d.ts +36 -0
  129. package/dist/tools/builtins/code-execution.js +136 -0
  130. package/dist/tools/builtins/code-mode.d.ts +54 -0
  131. package/dist/tools/builtins/code-mode.js +167 -0
  132. package/dist/tools/builtins/custom.d.ts +42 -0
  133. package/dist/tools/builtins/custom.js +195 -0
  134. package/dist/tools/builtins/exa.d.ts +53 -0
  135. package/dist/tools/builtins/exa.js +112 -0
  136. package/dist/tools/builtins/firecrawl.d.ts +56 -0
  137. package/dist/tools/builtins/firecrawl.js +158 -0
  138. package/dist/tools/builtins/index.d.ts +45 -0
  139. package/dist/tools/builtins/index.js +180 -0
  140. package/dist/tools/builtins/parallel.d.ts +30 -0
  141. package/dist/tools/builtins/parallel.js +113 -0
  142. package/dist/tools/builtins/perplexity.d.ts +32 -0
  143. package/dist/tools/builtins/perplexity.js +113 -0
  144. package/dist/tools/builtins/superagent.d.ts +66 -0
  145. package/dist/tools/builtins/superagent.js +187 -0
  146. package/dist/tools/builtins/tavily.d.ts +99 -0
  147. package/dist/tools/builtins/tavily.js +285 -0
  148. package/dist/tools/builtins/valyu.d.ts +65 -0
  149. package/dist/tools/builtins/valyu.js +193 -0
  150. package/dist/tools/index.d.ts +5 -0
  151. package/dist/tools/index.js +16 -2
  152. package/dist/tools/registry/index.d.ts +9 -0
  153. package/dist/tools/registry/index.js +28 -0
  154. package/dist/tools/registry/middleware.d.ts +43 -0
  155. package/dist/tools/registry/middleware.js +220 -0
  156. package/dist/tools/registry/registry.d.ts +92 -0
  157. package/dist/tools/registry/registry.js +280 -0
  158. package/dist/tools/registry/types.d.ts +217 -0
  159. package/dist/tools/registry/types.js +49 -0
  160. package/dist/tools/subagent.d.ts +131 -0
  161. package/dist/tools/subagent.js +185 -0
  162. package/dist/tools/tools.d.ts +74 -0
  163. package/dist/tools/tools.js +133 -0
  164. package/dist/workflows/index.d.ts +76 -1
  165. package/dist/workflows/index.js +125 -6
  166. package/dist/workflows/loop.d.ts +111 -0
  167. package/dist/workflows/loop.js +274 -0
  168. package/dist/workflows/repeat.d.ts +115 -0
  169. package/dist/workflows/repeat.js +144 -0
  170. 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[]>;