@rudderjs/ai 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +461 -0
- package/boost/guidelines.md +150 -0
- package/dist/agent.d.ts +74 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +1070 -0
- package/dist/agent.js.map +1 -0
- package/dist/attachment.d.ts +35 -0
- package/dist/attachment.d.ts.map +1 -0
- package/dist/attachment.js +121 -0
- package/dist/attachment.js.map +1 -0
- package/dist/audio.d.ts +33 -0
- package/dist/audio.d.ts.map +1 -0
- package/dist/audio.js +76 -0
- package/dist/audio.js.map +1 -0
- package/dist/cached-embedding.d.ts +14 -0
- package/dist/cached-embedding.d.ts.map +1 -0
- package/dist/cached-embedding.js +44 -0
- package/dist/cached-embedding.js.map +1 -0
- package/dist/conversation.d.ts +16 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/conversation.js +53 -0
- package/dist/conversation.js.map +1 -0
- package/dist/facade.d.ts +53 -0
- package/dist/facade.d.ts.map +1 -0
- package/dist/facade.js +100 -0
- package/dist/facade.js.map +1 -0
- package/dist/fake.d.ts +55 -0
- package/dist/fake.d.ts.map +1 -0
- package/dist/fake.js +172 -0
- package/dist/fake.js.map +1 -0
- package/dist/image.d.ts +27 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +90 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware.d.ts +18 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +72 -0
- package/dist/middleware.js.map +1 -0
- package/dist/output.d.ts +22 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +55 -0
- package/dist/output.js.map +1 -0
- package/dist/provider-tools.d.ts +60 -0
- package/dist/provider-tools.d.ts.map +1 -0
- package/dist/provider-tools.js +133 -0
- package/dist/provider-tools.js.map +1 -0
- package/dist/provider.d.ts +12 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +94 -0
- package/dist/provider.js.map +1 -0
- package/dist/providers/anthropic.d.ts +12 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +221 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/azure.d.ts +13 -0
- package/dist/providers/azure.d.ts.map +1 -0
- package/dist/providers/azure.js +15 -0
- package/dist/providers/azure.js.map +1 -0
- package/dist/providers/deepseek.d.ts +12 -0
- package/dist/providers/deepseek.d.ts.map +1 -0
- package/dist/providers/deepseek.js +15 -0
- package/dist/providers/deepseek.js.map +1 -0
- package/dist/providers/google.d.ts +13 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +293 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/groq.d.ts +12 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +15 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/mistral.d.ts +13 -0
- package/dist/providers/mistral.d.ts.map +1 -0
- package/dist/providers/mistral.js +46 -0
- package/dist/providers/mistral.js.map +1 -0
- package/dist/providers/ollama.d.ts +11 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +15 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +26 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +374 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/xai.d.ts +12 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +15 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/queue-job.d.ts +35 -0
- package/dist/queue-job.d.ts.map +1 -0
- package/dist/queue-job.js +82 -0
- package/dist/queue-job.js.map +1 -0
- package/dist/registry.d.ts +25 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +54 -0
- package/dist/registry.js.map +1 -0
- package/dist/tool.d.ts +157 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +134 -0
- package/dist/tool.js.map +1 -0
- package/dist/transcription.d.ts +28 -0
- package/dist/transcription.d.ts.map +1 -0
- package/dist/transcription.js +63 -0
- package/dist/transcription.js.map +1 -0
- package/dist/types.d.ts +439 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/vercel-protocol.d.ts +18 -0
- package/dist/vercel-protocol.d.ts.map +1 -0
- package/dist/vercel-protocol.js +75 -0
- package/dist/vercel-protocol.js.map +1 -0
- package/dist/zod-to-json-schema.d.ts +8 -0
- package/dist/zod-to-json-schema.d.ts.map +1 -0
- package/dist/zod-to-json-schema.js +86 -0
- package/dist/zod-to-json-schema.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/** Run onConfig hooks — piped (each transforms config, next sees result) */
|
|
2
|
+
export function runOnConfig(middlewares, ctx, config, phase) {
|
|
3
|
+
let result = config;
|
|
4
|
+
for (const mw of middlewares) {
|
|
5
|
+
if (mw.onConfig) {
|
|
6
|
+
const transformed = mw.onConfig(ctx, result, phase);
|
|
7
|
+
if (transformed)
|
|
8
|
+
result = transformed;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
/** Run onChunk hooks — piped (each can transform or drop by returning null) */
|
|
14
|
+
export function runOnChunk(middlewares, ctx, chunk) {
|
|
15
|
+
let result = chunk;
|
|
16
|
+
for (const mw of middlewares) {
|
|
17
|
+
if (result === null)
|
|
18
|
+
break;
|
|
19
|
+
if (mw.onChunk) {
|
|
20
|
+
result = mw.onChunk(ctx, result);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
/** Run onBeforeToolCall hooks — first non-void result wins */
|
|
26
|
+
export async function runOnBeforeToolCall(middlewares, ctx, toolName, args) {
|
|
27
|
+
for (const mw of middlewares) {
|
|
28
|
+
if (mw.onBeforeToolCall) {
|
|
29
|
+
const result = await mw.onBeforeToolCall(ctx, toolName, args);
|
|
30
|
+
if (result !== undefined && result !== null)
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
/** Run a sequential hook (onStart, onIteration, onAfterToolCall, etc.) */
|
|
37
|
+
export async function runSequential(middlewares, hook, ctx) {
|
|
38
|
+
for (const mw of middlewares) {
|
|
39
|
+
const fn = mw[hook];
|
|
40
|
+
if (fn)
|
|
41
|
+
await fn.call(mw, ctx);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Run onAfterToolCall hooks sequentially */
|
|
45
|
+
export async function runOnAfterToolCall(middlewares, ctx, toolName, args, result) {
|
|
46
|
+
for (const mw of middlewares) {
|
|
47
|
+
if (mw.onAfterToolCall)
|
|
48
|
+
await mw.onAfterToolCall(ctx, toolName, args, result);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Run onUsage hooks sequentially */
|
|
52
|
+
export async function runOnUsage(middlewares, ctx, usage) {
|
|
53
|
+
for (const mw of middlewares) {
|
|
54
|
+
if (mw.onUsage)
|
|
55
|
+
await mw.onUsage(ctx, usage);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Run onAbort hooks sequentially */
|
|
59
|
+
export async function runOnAbort(middlewares, ctx, reason) {
|
|
60
|
+
for (const mw of middlewares) {
|
|
61
|
+
if (mw.onAbort)
|
|
62
|
+
await mw.onAbort(ctx, reason);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/** Run onError hooks sequentially */
|
|
66
|
+
export async function runOnError(middlewares, ctx, error) {
|
|
67
|
+
for (const mw of middlewares) {
|
|
68
|
+
if (mw.onError)
|
|
69
|
+
await mw.onError(ctx, error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|
package/dist/output.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export interface OutputWrapper<T = unknown> {
|
|
3
|
+
type: 'object' | 'array' | 'choice';
|
|
4
|
+
schema: z.ZodType<T>;
|
|
5
|
+
parse(text: string): T;
|
|
6
|
+
toSystemPrompt(): string;
|
|
7
|
+
}
|
|
8
|
+
export declare class Output {
|
|
9
|
+
/** Structured object output with Zod schema */
|
|
10
|
+
static object<T extends z.ZodRawShape>(opts: {
|
|
11
|
+
schema: z.ZodObject<T>;
|
|
12
|
+
}): OutputWrapper<z.infer<z.ZodObject<T>>>;
|
|
13
|
+
/** Structured array output — each element validated by schema */
|
|
14
|
+
static array<T extends z.ZodType>(opts: {
|
|
15
|
+
element: T;
|
|
16
|
+
}): OutputWrapper<z.infer<T>[]>;
|
|
17
|
+
/** Classification — pick one of the provided options */
|
|
18
|
+
static choice<T extends string>(opts: {
|
|
19
|
+
options: readonly [T, ...T[]];
|
|
20
|
+
}): OutputWrapper<T>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAA;IACtB,cAAc,IAAI,MAAM,CAAA;CACzB;AAED,qBAAa,MAAM;IACjB,+CAA+C;IAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAchH,iEAAiE;IACjE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,CAAA;KAAE,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAepF,wDAAwD;IACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;KAAE,GAAG,aAAa,CAAC,CAAC,CAAC;CAa3F"}
|
package/dist/output.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { zodToJsonSchema } from './zod-to-json-schema.js';
|
|
3
|
+
export class Output {
|
|
4
|
+
/** Structured object output with Zod schema */
|
|
5
|
+
static object(opts) {
|
|
6
|
+
return {
|
|
7
|
+
type: 'object',
|
|
8
|
+
schema: opts.schema,
|
|
9
|
+
parse(text) {
|
|
10
|
+
const json = extractJson(text);
|
|
11
|
+
return opts.schema.parse(json);
|
|
12
|
+
},
|
|
13
|
+
toSystemPrompt() {
|
|
14
|
+
return `Respond with a JSON object matching this schema. Output ONLY valid JSON, no markdown fences.\n${JSON.stringify(zodToJsonSchema(opts.schema), null, 2)}`;
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/** Structured array output — each element validated by schema */
|
|
19
|
+
static array(opts) {
|
|
20
|
+
const arraySchema = z.array(opts.element);
|
|
21
|
+
return {
|
|
22
|
+
type: 'array',
|
|
23
|
+
schema: arraySchema,
|
|
24
|
+
parse(text) {
|
|
25
|
+
const json = extractJson(text);
|
|
26
|
+
return arraySchema.parse(json);
|
|
27
|
+
},
|
|
28
|
+
toSystemPrompt() {
|
|
29
|
+
return `Respond with a JSON array where each element matches this schema. Output ONLY valid JSON.\n${JSON.stringify(zodToJsonSchema(opts.element), null, 2)}`;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Classification — pick one of the provided options */
|
|
34
|
+
static choice(opts) {
|
|
35
|
+
const enumSchema = z.enum(opts.options);
|
|
36
|
+
return {
|
|
37
|
+
type: 'choice',
|
|
38
|
+
schema: enumSchema,
|
|
39
|
+
parse(text) {
|
|
40
|
+
return enumSchema.parse(text.trim());
|
|
41
|
+
},
|
|
42
|
+
toSystemPrompt() {
|
|
43
|
+
return `Respond with exactly one of these options: ${opts.options.join(', ')}. Output ONLY the option, nothing else.`;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function extractJson(text) {
|
|
49
|
+
const stripped = text
|
|
50
|
+
.replace(/^```(?:json)?\s*\n?/m, '')
|
|
51
|
+
.replace(/\n?```\s*$/m, '')
|
|
52
|
+
.trim();
|
|
53
|
+
return JSON.parse(stripped);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AASzD,MAAM,OAAO,MAAM;IACjB,+CAA+C;IAC/C,MAAM,CAAC,MAAM,CAA0B,IAAgC;QACrE,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,CAAC,IAAY;gBAChB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAChC,CAAC;YACD,cAAc;gBACZ,OAAO,iGAAiG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;YACjK,CAAC;SACF,CAAA;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,CAAC,KAAK,CAAsB,IAAoB;QACpD,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,WAAsC;YAC9C,KAAK,CAAC,IAAY;gBAChB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAC9B,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAChC,CAAC;YACD,cAAc;gBACZ,OAAO,8FAA8F,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;YAC/J,CAAC;SACF,CAAA;IACH,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,MAAM,CAAmB,IAAuC;QACrE,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,UAA0B;YAClC,KAAK,CAAC,IAAY;gBAChB,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAM,CAAA;YAC3C,CAAC;YACD,cAAc;gBACZ,OAAO,8CAA8C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAA;YACvH,CAAC;SACF,CAAA;IACH,CAAC;CACF;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,QAAQ,GAAG,IAAI;SAClB,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,IAAI,EAAE,CAAA;IACT,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web search tool — uses provider-native web search when available.
|
|
3
|
+
* Falls back to a server-side DuckDuckGo fetch for providers without native support.
|
|
4
|
+
*/
|
|
5
|
+
export declare class WebSearch {
|
|
6
|
+
private _domains;
|
|
7
|
+
private _maxResults;
|
|
8
|
+
private constructor();
|
|
9
|
+
static make(): WebSearch;
|
|
10
|
+
domains(domains: string[]): this;
|
|
11
|
+
maxResults(n: number): this;
|
|
12
|
+
/** Convert to a tool definition that can be added to an agent's tools array */
|
|
13
|
+
toTool(): import("./tool.js").ServerToolBuilder<{
|
|
14
|
+
query: string;
|
|
15
|
+
}, {
|
|
16
|
+
results: string;
|
|
17
|
+
error?: never;
|
|
18
|
+
} | {
|
|
19
|
+
error: string;
|
|
20
|
+
results?: never;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Web fetch tool — fetches a web page and returns its text content.
|
|
25
|
+
*/
|
|
26
|
+
export declare class WebFetch {
|
|
27
|
+
private _maxLength;
|
|
28
|
+
private constructor();
|
|
29
|
+
static make(): WebFetch;
|
|
30
|
+
maxLength(n: number): this;
|
|
31
|
+
toTool(): import("./tool.js").ServerToolBuilder<{
|
|
32
|
+
url: string;
|
|
33
|
+
}, {
|
|
34
|
+
content: string;
|
|
35
|
+
url: string;
|
|
36
|
+
status: number;
|
|
37
|
+
error?: never;
|
|
38
|
+
} | {
|
|
39
|
+
error: string;
|
|
40
|
+
url: string;
|
|
41
|
+
content?: never;
|
|
42
|
+
status?: never;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Code execution tool — uses provider-native code interpreter when available.
|
|
47
|
+
* No server-side fallback for security — returns an error if the provider
|
|
48
|
+
* doesn't support native code execution.
|
|
49
|
+
*/
|
|
50
|
+
export declare class CodeExecution {
|
|
51
|
+
private constructor();
|
|
52
|
+
static make(): CodeExecution;
|
|
53
|
+
toTool(): import("./tool.js").ServerToolBuilder<{
|
|
54
|
+
code: string;
|
|
55
|
+
language: string;
|
|
56
|
+
}, {
|
|
57
|
+
error: string;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=provider-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-tools.d.ts","sourceRoot":"","sources":["../src/provider-tools.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO;IAEP,MAAM,CAAC,IAAI,IAAI,SAAS;IAIxB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKhC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAK3B,+EAA+E;IAC/E,MAAM;;;;;;;;;CA+BP;AAED;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,UAAU,CAAoB;IAEtC,OAAO;IAEP,MAAM,CAAC,IAAI,IAAI,QAAQ;IAIvB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAK1B,MAAM;;;;;;;;;;;;;CAkCP;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO;IAEP,MAAM,CAAC,IAAI,IAAI,aAAa;IAI5B,MAAM;;;;;;CAmBP"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { toolDefinition } from './tool.js';
|
|
3
|
+
/**
|
|
4
|
+
* Web search tool — uses provider-native web search when available.
|
|
5
|
+
* Falls back to a server-side DuckDuckGo fetch for providers without native support.
|
|
6
|
+
*/
|
|
7
|
+
export class WebSearch {
|
|
8
|
+
_domains;
|
|
9
|
+
_maxResults;
|
|
10
|
+
constructor() { }
|
|
11
|
+
static make() {
|
|
12
|
+
return new WebSearch();
|
|
13
|
+
}
|
|
14
|
+
domains(domains) {
|
|
15
|
+
this._domains = domains;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
maxResults(n) {
|
|
19
|
+
this._maxResults = n;
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
/** Convert to a tool definition that can be added to an agent's tools array */
|
|
23
|
+
toTool() {
|
|
24
|
+
const domains = this._domains;
|
|
25
|
+
const maxResults = this._maxResults;
|
|
26
|
+
return toolDefinition({
|
|
27
|
+
name: 'web_search',
|
|
28
|
+
description: 'Search the web for current information.',
|
|
29
|
+
inputSchema: z.object({
|
|
30
|
+
query: z.string().describe('The search query'),
|
|
31
|
+
}),
|
|
32
|
+
meta: {
|
|
33
|
+
providerNative: true,
|
|
34
|
+
type: 'web_search',
|
|
35
|
+
domains,
|
|
36
|
+
maxResults,
|
|
37
|
+
},
|
|
38
|
+
}).server(async ({ query }) => {
|
|
39
|
+
// Fallback: simple server-side search via fetch
|
|
40
|
+
// Runs only if the provider doesn't handle it natively
|
|
41
|
+
try {
|
|
42
|
+
const url = new URL('https://html.duckduckgo.com/html/');
|
|
43
|
+
url.searchParams.set('q', query + (domains ? ` site:${domains.join(' OR site:')}` : ''));
|
|
44
|
+
const res = await fetch(url.toString(), { headers: { 'User-Agent': 'RudderJS/1.0' } });
|
|
45
|
+
const html = await res.text();
|
|
46
|
+
const text = html.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim().slice(0, 2000);
|
|
47
|
+
return { results: text };
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return { error: 'Web search unavailable' };
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Web fetch tool — fetches a web page and returns its text content.
|
|
57
|
+
*/
|
|
58
|
+
export class WebFetch {
|
|
59
|
+
_maxLength;
|
|
60
|
+
constructor() { }
|
|
61
|
+
static make() {
|
|
62
|
+
return new WebFetch();
|
|
63
|
+
}
|
|
64
|
+
maxLength(n) {
|
|
65
|
+
this._maxLength = n;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
toTool() {
|
|
69
|
+
const maxLength = this._maxLength ?? 10000;
|
|
70
|
+
return toolDefinition({
|
|
71
|
+
name: 'web_fetch',
|
|
72
|
+
description: 'Fetch a web page and return its text content.',
|
|
73
|
+
inputSchema: z.object({
|
|
74
|
+
url: z.string().url().describe('The URL to fetch'),
|
|
75
|
+
}),
|
|
76
|
+
meta: {
|
|
77
|
+
providerNative: true,
|
|
78
|
+
type: 'web_fetch',
|
|
79
|
+
maxLength,
|
|
80
|
+
},
|
|
81
|
+
}).server(async ({ url: targetUrl }) => {
|
|
82
|
+
try {
|
|
83
|
+
const res = await fetch(targetUrl, {
|
|
84
|
+
headers: { 'User-Agent': 'RudderJS/1.0' },
|
|
85
|
+
signal: AbortSignal.timeout(10000),
|
|
86
|
+
});
|
|
87
|
+
const html = await res.text();
|
|
88
|
+
const text = html
|
|
89
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
|
|
90
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
|
|
91
|
+
.replace(/<[^>]*>/g, ' ')
|
|
92
|
+
.replace(/\s+/g, ' ')
|
|
93
|
+
.trim()
|
|
94
|
+
.slice(0, maxLength);
|
|
95
|
+
return { content: text, url: targetUrl, status: res.status };
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
return { error: err instanceof Error ? err.message : 'Fetch failed', url: targetUrl };
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Code execution tool — uses provider-native code interpreter when available.
|
|
105
|
+
* No server-side fallback for security — returns an error if the provider
|
|
106
|
+
* doesn't support native code execution.
|
|
107
|
+
*/
|
|
108
|
+
export class CodeExecution {
|
|
109
|
+
constructor() { }
|
|
110
|
+
static make() {
|
|
111
|
+
return new CodeExecution();
|
|
112
|
+
}
|
|
113
|
+
toTool() {
|
|
114
|
+
return toolDefinition({
|
|
115
|
+
name: 'code_execution',
|
|
116
|
+
description: 'Execute code to perform calculations, data analysis, or generate outputs.',
|
|
117
|
+
inputSchema: z.object({
|
|
118
|
+
code: z.string().describe('The code to execute'),
|
|
119
|
+
language: z.string().default('javascript').describe('Programming language'),
|
|
120
|
+
}),
|
|
121
|
+
meta: {
|
|
122
|
+
providerNative: true,
|
|
123
|
+
type: 'code_execution',
|
|
124
|
+
},
|
|
125
|
+
}).server(async ({ code, language }) => {
|
|
126
|
+
// No server-side fallback for security — must be handled by provider
|
|
127
|
+
return {
|
|
128
|
+
error: `Code execution requires a provider with native code interpreter support. Language: ${language}, code length: ${code.length}`,
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=provider-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-tools.js","sourceRoot":"","sources":["../src/provider-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ServiceProvider, type Application } from '@rudderjs/core';
|
|
2
|
+
import type { AiConfig } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create the AI ServiceProvider from config.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* // bootstrap/providers.ts
|
|
8
|
+
* import { ai } from '@rudderjs/ai'
|
|
9
|
+
* export default [ai(configs.ai), ...]
|
|
10
|
+
*/
|
|
11
|
+
export declare function ai(config: AiConfig): new (app: Application) => ServiceProvider;
|
|
12
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAA;AAE7D;;;;;;;GAOG;AACH,wBAAgB,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,EAAE,WAAW,KAAK,eAAe,CA8E9E"}
|
package/dist/provider.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ServiceProvider } from '@rudderjs/core';
|
|
2
|
+
import { AiRegistry } from './registry.js';
|
|
3
|
+
import { setConversationStore } from './agent.js';
|
|
4
|
+
/**
|
|
5
|
+
* Create the AI ServiceProvider from config.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* // bootstrap/providers.ts
|
|
9
|
+
* import { ai } from '@rudderjs/ai'
|
|
10
|
+
* export default [ai(configs.ai), ...]
|
|
11
|
+
*/
|
|
12
|
+
export function ai(config) {
|
|
13
|
+
class AiServiceProvider extends ServiceProvider {
|
|
14
|
+
register() { }
|
|
15
|
+
async boot() {
|
|
16
|
+
for (const [name, providerConfig] of Object.entries(config.providers)) {
|
|
17
|
+
const driver = providerConfig.driver ?? name;
|
|
18
|
+
if (driver === 'anthropic') {
|
|
19
|
+
const { AnthropicProvider } = await import('./providers/anthropic.js');
|
|
20
|
+
AiRegistry.register(new AnthropicProvider({
|
|
21
|
+
apiKey: providerConfig.apiKey,
|
|
22
|
+
baseUrl: providerConfig.baseUrl,
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
else if (driver === 'openai') {
|
|
26
|
+
const { OpenAIProvider } = await import('./providers/openai.js');
|
|
27
|
+
AiRegistry.register(new OpenAIProvider({
|
|
28
|
+
apiKey: providerConfig.apiKey,
|
|
29
|
+
baseUrl: providerConfig.baseUrl,
|
|
30
|
+
organization: providerConfig['organization'],
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
else if (driver === 'google') {
|
|
34
|
+
const { GoogleProvider } = await import('./providers/google.js');
|
|
35
|
+
AiRegistry.register(new GoogleProvider({
|
|
36
|
+
apiKey: providerConfig.apiKey,
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
else if (driver === 'ollama') {
|
|
40
|
+
const { OllamaProvider } = await import('./providers/ollama.js');
|
|
41
|
+
AiRegistry.register(new OllamaProvider({
|
|
42
|
+
baseUrl: providerConfig.baseUrl,
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
else if (driver === 'deepseek') {
|
|
46
|
+
const { DeepSeekProvider } = await import('./providers/deepseek.js');
|
|
47
|
+
AiRegistry.register(new DeepSeekProvider({
|
|
48
|
+
apiKey: providerConfig.apiKey,
|
|
49
|
+
baseUrl: providerConfig.baseUrl,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
else if (driver === 'xai') {
|
|
53
|
+
const { XaiProvider } = await import('./providers/xai.js');
|
|
54
|
+
AiRegistry.register(new XaiProvider({
|
|
55
|
+
apiKey: providerConfig.apiKey,
|
|
56
|
+
baseUrl: providerConfig.baseUrl,
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
else if (driver === 'groq') {
|
|
60
|
+
const { GroqProvider } = await import('./providers/groq.js');
|
|
61
|
+
AiRegistry.register(new GroqProvider({
|
|
62
|
+
apiKey: providerConfig.apiKey,
|
|
63
|
+
baseUrl: providerConfig.baseUrl,
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
else if (driver === 'mistral') {
|
|
67
|
+
const { MistralProvider } = await import('./providers/mistral.js');
|
|
68
|
+
AiRegistry.register(new MistralProvider({
|
|
69
|
+
apiKey: providerConfig.apiKey,
|
|
70
|
+
baseUrl: providerConfig.baseUrl,
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
else if (driver === 'azure') {
|
|
74
|
+
const { AzureOpenAIProvider } = await import('./providers/azure.js');
|
|
75
|
+
AiRegistry.register(new AzureOpenAIProvider({
|
|
76
|
+
apiKey: providerConfig.apiKey,
|
|
77
|
+
baseUrl: providerConfig.baseUrl,
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
AiRegistry.setDefault(config.default);
|
|
82
|
+
AiRegistry.setModels(config.models ?? []);
|
|
83
|
+
this.app.instance('ai.registry', AiRegistry);
|
|
84
|
+
// Register conversation store if provided in config
|
|
85
|
+
if (config.conversations) {
|
|
86
|
+
const store = config.conversations;
|
|
87
|
+
setConversationStore(store);
|
|
88
|
+
this.app.instance('ai.conversations', store);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return AiServiceProvider;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ProviderFactory, ProviderAdapter } from '../types.js';
|
|
2
|
+
export interface AnthropicConfig {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
baseUrl?: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare class AnthropicProvider implements ProviderFactory {
|
|
7
|
+
readonly name = "anthropic";
|
|
8
|
+
private readonly config;
|
|
9
|
+
constructor(config: AnthropicConfig);
|
|
10
|
+
create(model: string): ProviderAdapter;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAQhB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7B;AAED,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,eAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAInC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;CAGvC"}
|