@activepieces/piece-ai 0.1.21 → 0.3.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/package.json +2 -2
- package/src/i18n/translation.json +2 -1
- package/src/lib/actions/agents/agent-output-builder.d.ts +3 -3
- package/src/lib/actions/agents/agent-output-builder.d.ts.map +1 -1
- package/src/lib/actions/agents/agent-output-builder.js +3 -0
- package/src/lib/actions/agents/agent-output-builder.js.map +1 -1
- package/src/lib/actions/agents/run-agent.d.ts +2 -0
- package/src/lib/actions/agents/run-agent.d.ts.map +1 -1
- package/src/lib/actions/agents/run-agent.js +62 -19
- package/src/lib/actions/agents/run-agent.js.map +1 -1
- package/src/lib/actions/agents/tools.d.ts +7 -1
- package/src/lib/actions/agents/tools.d.ts.map +1 -1
- package/src/lib/actions/agents/tools.js +202 -31
- package/src/lib/actions/agents/tools.js.map +1 -1
- package/src/lib/actions/agents/utils.d.ts +3 -1
- package/src/lib/actions/agents/utils.d.ts.map +1 -1
- package/src/lib/actions/agents/utils.js +9 -2
- package/src/lib/actions/agents/utils.js.map +1 -1
- package/src/lib/actions/text/ask-ai.d.ts +0 -25
- package/src/lib/actions/text/ask-ai.d.ts.map +1 -1
- package/src/lib/actions/text/ask-ai.js +13 -167
- package/src/lib/actions/text/ask-ai.js.map +1 -1
- package/src/lib/common/ai-sdk.d.ts +13 -1
- package/src/lib/common/ai-sdk.d.ts.map +1 -1
- package/src/lib/common/ai-sdk.js +54 -5
- package/src/lib/common/ai-sdk.js.map +1 -1
- package/src/lib/common/web-search.d.ts +37 -0
- package/src/lib/common/web-search.d.ts.map +1 -0
- package/src/lib/common/web-search.js +188 -0
- package/src/lib/common/web-search.js.map +1 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildWebSearchOptionsProperty = buildWebSearchOptionsProperty;
|
|
4
|
+
exports.buildWebSearchConfig = buildWebSearchConfig;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const shared_1 = require("@activepieces/shared");
|
|
8
|
+
const ai_sdk_1 = require("./ai-sdk");
|
|
9
|
+
function buildWebSearchOptionsProps(provider, params) {
|
|
10
|
+
var _a;
|
|
11
|
+
const showIncludeSources = (_a = params === null || params === void 0 ? void 0 : params.showIncludeSources) !== null && _a !== void 0 ? _a : true;
|
|
12
|
+
const isOpenRouterProvider = provider === shared_1.AIProviderName.OPENROUTER ||
|
|
13
|
+
provider === shared_1.AIProviderName.ACTIVEPIECES;
|
|
14
|
+
const supportsToolBasedWebSearch = provider === shared_1.AIProviderName.OPENAI ||
|
|
15
|
+
provider === shared_1.AIProviderName.ANTHROPIC ||
|
|
16
|
+
provider === shared_1.AIProviderName.GOOGLE;
|
|
17
|
+
let options = {
|
|
18
|
+
maxUses: pieces_framework_1.Property.Number({
|
|
19
|
+
displayName: 'Max Web Search Uses',
|
|
20
|
+
required: false,
|
|
21
|
+
defaultValue: 5,
|
|
22
|
+
description: isOpenRouterProvider
|
|
23
|
+
? 'For OpenRouter/Activepieces, this maps to OpenRouter web plugin max_results (1-10). Default is 5.'
|
|
24
|
+
: 'Maximum number of searches to use. Default is 5.',
|
|
25
|
+
}),
|
|
26
|
+
};
|
|
27
|
+
if (supportsToolBasedWebSearch && showIncludeSources) {
|
|
28
|
+
options = Object.assign(Object.assign({}, options), { includeSources: pieces_framework_1.Property.Checkbox({
|
|
29
|
+
displayName: 'Include Sources',
|
|
30
|
+
description: 'Whether to include the sources in the response. Useful for getting web search details (e.g. search queries, searched URLs, etc).',
|
|
31
|
+
required: false,
|
|
32
|
+
defaultValue: false,
|
|
33
|
+
}) });
|
|
34
|
+
}
|
|
35
|
+
const userLocationOptions = {
|
|
36
|
+
userLocationCity: pieces_framework_1.Property.ShortText({
|
|
37
|
+
displayName: 'User Location - City',
|
|
38
|
+
required: false,
|
|
39
|
+
description: 'The city name for localizing search results (e.g., San Francisco).',
|
|
40
|
+
}),
|
|
41
|
+
userLocationRegion: pieces_framework_1.Property.ShortText({
|
|
42
|
+
displayName: 'User Location - Region',
|
|
43
|
+
required: false,
|
|
44
|
+
description: 'The region or state for localizing search results (e.g., California).',
|
|
45
|
+
}),
|
|
46
|
+
userLocationCountry: pieces_framework_1.Property.ShortText({
|
|
47
|
+
displayName: 'User Location - Country',
|
|
48
|
+
required: false,
|
|
49
|
+
description: 'The country code for localizing search results (e.g., US).',
|
|
50
|
+
}),
|
|
51
|
+
userLocationTimezone: pieces_framework_1.Property.ShortText({
|
|
52
|
+
displayName: 'User Location - Timezone',
|
|
53
|
+
required: false,
|
|
54
|
+
description: 'The IANA timezone ID for localizing search results (e.g., America/Los_Angeles).',
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
if (provider === shared_1.AIProviderName.ANTHROPIC) {
|
|
58
|
+
options = Object.assign(Object.assign(Object.assign({}, options), { allowedDomains: pieces_framework_1.Property.Array({
|
|
59
|
+
displayName: 'Allowed Domains',
|
|
60
|
+
required: false,
|
|
61
|
+
description: 'List of domains to search (e.g., example.com, docs.example.com/blog). Domains should not include HTTP/HTTPS scheme. Subdomains are automatically included unless more specific subpaths are provided. Overrides Blocked Domains if both are provided.',
|
|
62
|
+
properties: {
|
|
63
|
+
domain: pieces_framework_1.Property.ShortText({
|
|
64
|
+
displayName: 'Domain',
|
|
65
|
+
required: true,
|
|
66
|
+
}),
|
|
67
|
+
},
|
|
68
|
+
}), blockedDomains: pieces_framework_1.Property.Array({
|
|
69
|
+
displayName: 'Blocked Domains',
|
|
70
|
+
required: false,
|
|
71
|
+
description: 'List of domains to exclude from search (e.g., example.com, docs.example.com/blog). Domains should not include HTTP/HTTPS scheme. Subdomains are automatically included unless more specific subpaths are provided. Overrided by Allowed Domains if both are provided.',
|
|
72
|
+
properties: {
|
|
73
|
+
domain: pieces_framework_1.Property.ShortText({
|
|
74
|
+
displayName: 'Domain',
|
|
75
|
+
required: true,
|
|
76
|
+
}),
|
|
77
|
+
},
|
|
78
|
+
}) }), userLocationOptions);
|
|
79
|
+
}
|
|
80
|
+
if (provider === shared_1.AIProviderName.OPENAI) {
|
|
81
|
+
options = Object.assign(Object.assign(Object.assign({}, options), { searchContextSize: pieces_framework_1.Property.StaticDropdown({
|
|
82
|
+
displayName: 'Search Context Size',
|
|
83
|
+
required: false,
|
|
84
|
+
defaultValue: 'medium',
|
|
85
|
+
options: {
|
|
86
|
+
options: [
|
|
87
|
+
{ label: 'Low', value: 'low' },
|
|
88
|
+
{ label: 'Medium', value: 'medium' },
|
|
89
|
+
{ label: 'High', value: 'high' },
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
description: 'High level guidance for the amount of context window space to use for the search.',
|
|
93
|
+
}) }), userLocationOptions);
|
|
94
|
+
}
|
|
95
|
+
return options;
|
|
96
|
+
}
|
|
97
|
+
function buildUserLocation(options) {
|
|
98
|
+
if (!options.userLocationCity &&
|
|
99
|
+
!options.userLocationRegion &&
|
|
100
|
+
!options.userLocationCountry &&
|
|
101
|
+
!options.userLocationTimezone) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({ type: 'approximate' }, (0, shared_1.spreadIfDefined)('city', options.userLocationCity)), (0, shared_1.spreadIfDefined)('region', options.userLocationRegion)), (0, shared_1.spreadIfDefined)('country', options.userLocationCountry)), (0, shared_1.spreadIfDefined)('timezone', options.userLocationTimezone));
|
|
105
|
+
}
|
|
106
|
+
function createWebSearchTool(provider, options = {}) {
|
|
107
|
+
var _a;
|
|
108
|
+
const defaultMaxUses = 5;
|
|
109
|
+
switch (provider) {
|
|
110
|
+
case shared_1.AIProviderName.ANTHROPIC: {
|
|
111
|
+
const anthropicOptions = options;
|
|
112
|
+
let allowedDomains;
|
|
113
|
+
let blockedDomains;
|
|
114
|
+
if (anthropicOptions.allowedDomains &&
|
|
115
|
+
anthropicOptions.allowedDomains.length > 0) {
|
|
116
|
+
allowedDomains = anthropicOptions.allowedDomains.map(({ domain }) => domain);
|
|
117
|
+
}
|
|
118
|
+
if (anthropicOptions.blockedDomains &&
|
|
119
|
+
anthropicOptions.blockedDomains.length > 0 &&
|
|
120
|
+
(!anthropicOptions.allowedDomains ||
|
|
121
|
+
anthropicOptions.allowedDomains.length === 0)) {
|
|
122
|
+
blockedDomains = anthropicOptions.blockedDomains.map(({ domain }) => domain);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
web_search: (0, ai_sdk_1.anthropicSearchTool)(Object.assign(Object.assign(Object.assign({ maxUses: (_a = anthropicOptions.maxUses) !== null && _a !== void 0 ? _a : defaultMaxUses }, (0, shared_1.spreadIfDefined)('userLocation', buildUserLocation(anthropicOptions))), (0, shared_1.spreadIfDefined)('allowedDomains', allowedDomains)), (0, shared_1.spreadIfDefined)('blockedDomains', blockedDomains))),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
case shared_1.AIProviderName.OPENAI: {
|
|
129
|
+
const openaiOptions = options;
|
|
130
|
+
return {
|
|
131
|
+
web_search_preview: (0, ai_sdk_1.openaiSearchTool)(Object.assign(Object.assign({}, (0, shared_1.spreadIfDefined)('searchContextSize', openaiOptions.searchContextSize)), (0, shared_1.spreadIfDefined)('userLocation', buildUserLocation(openaiOptions)))),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
case shared_1.AIProviderName.GOOGLE: {
|
|
135
|
+
return {
|
|
136
|
+
google_search: (0, ai_sdk_1.googleSearchTool)({}),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
default:
|
|
140
|
+
throw new Error(`Provider ${provider} is not supported for web search`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function buildWebSearchOptionsProperty(getProvider, refreshers, params) {
|
|
144
|
+
return pieces_framework_1.Property.DynamicProperties({
|
|
145
|
+
displayName: 'Web Search Options',
|
|
146
|
+
required: false,
|
|
147
|
+
auth: pieces_framework_1.PieceAuth.None(),
|
|
148
|
+
refreshers,
|
|
149
|
+
props: (propsValue) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
const webSearchEnabled = propsValue['webSearch'];
|
|
151
|
+
if (!webSearchEnabled) {
|
|
152
|
+
return {};
|
|
153
|
+
}
|
|
154
|
+
const provider = getProvider(propsValue);
|
|
155
|
+
if (!provider) {
|
|
156
|
+
return {};
|
|
157
|
+
}
|
|
158
|
+
return buildWebSearchOptionsProps(provider, params);
|
|
159
|
+
}),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
function buildWebSearchConfig(params) {
|
|
163
|
+
var _a;
|
|
164
|
+
const { provider, webSearchEnabled, webSearchOptions } = params;
|
|
165
|
+
if (!webSearchEnabled) {
|
|
166
|
+
return { tools: undefined, providerOptions: undefined };
|
|
167
|
+
}
|
|
168
|
+
const isOpenRouter = provider === shared_1.AIProviderName.OPENROUTER ||
|
|
169
|
+
provider === shared_1.AIProviderName.ACTIVEPIECES;
|
|
170
|
+
if (isOpenRouter) {
|
|
171
|
+
return {
|
|
172
|
+
tools: undefined,
|
|
173
|
+
providerOptions: {
|
|
174
|
+
openrouter: {
|
|
175
|
+
plugins: [{
|
|
176
|
+
id: 'web',
|
|
177
|
+
max_results: Math.min(Math.max((_a = webSearchOptions === null || webSearchOptions === void 0 ? void 0 : webSearchOptions.maxUses) !== null && _a !== void 0 ? _a : 5, 1), 10),
|
|
178
|
+
}],
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
tools: createWebSearchTool(provider, webSearchOptions),
|
|
185
|
+
providerOptions: undefined,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../../../src/lib/common/web-search.ts"],"names":[],"mappings":"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"}
|