@activeboxes/pieces-common 0.4.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 (80) hide show
  1. package/README.md +7 -0
  2. package/package.json +35 -0
  3. package/src/index.d.ts +6 -0
  4. package/src/index.js +10 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/ai/index.d.ts +94 -0
  7. package/src/lib/ai/index.js +44 -0
  8. package/src/lib/ai/index.js.map +1 -0
  9. package/src/lib/ai/providers/anthropic/index.d.ts +2 -0
  10. package/src/lib/ai/providers/anthropic/index.js +148 -0
  11. package/src/lib/ai/providers/anthropic/index.js.map +1 -0
  12. package/src/lib/ai/providers/index.d.ts +79 -0
  13. package/src/lib/ai/providers/index.js +170 -0
  14. package/src/lib/ai/providers/index.js.map +1 -0
  15. package/src/lib/ai/providers/openai/index.d.ts +22 -0
  16. package/src/lib/ai/providers/openai/index.js +224 -0
  17. package/src/lib/ai/providers/openai/index.js.map +1 -0
  18. package/src/lib/ai/providers/replicate/index.d.ts +10 -0
  19. package/src/lib/ai/providers/replicate/index.js +185 -0
  20. package/src/lib/ai/providers/replicate/index.js.map +1 -0
  21. package/src/lib/ai/providers/utils.d.ts +58 -0
  22. package/src/lib/ai/providers/utils.js +48 -0
  23. package/src/lib/ai/providers/utils.js.map +1 -0
  24. package/src/lib/authentication/index.d.ts +15 -0
  25. package/src/lib/authentication/index.js +9 -0
  26. package/src/lib/authentication/index.js.map +1 -0
  27. package/src/lib/helpers/index.d.ts +29 -0
  28. package/src/lib/helpers/index.js +101 -0
  29. package/src/lib/helpers/index.js.map +1 -0
  30. package/src/lib/http/axios/axios-http-client.d.ts +11 -0
  31. package/src/lib/http/axios/axios-http-client.js +74 -0
  32. package/src/lib/http/axios/axios-http-client.js.map +1 -0
  33. package/src/lib/http/core/base-http-client.d.ts +19 -0
  34. package/src/lib/http/core/base-http-client.js +52 -0
  35. package/src/lib/http/core/base-http-client.js.map +1 -0
  36. package/src/lib/http/core/delegating-authentication-converter.d.ts +17 -0
  37. package/src/lib/http/core/delegating-authentication-converter.js +33 -0
  38. package/src/lib/http/core/delegating-authentication-converter.js.map +1 -0
  39. package/src/lib/http/core/http-client.d.ts +9 -0
  40. package/src/lib/http/core/http-client.js +6 -0
  41. package/src/lib/http/core/http-client.js.map +1 -0
  42. package/src/lib/http/core/http-error.d.ts +33 -0
  43. package/src/lib/http/core/http-error.js +56 -0
  44. package/src/lib/http/core/http-error.js.map +1 -0
  45. package/src/lib/http/core/http-header.d.ts +6 -0
  46. package/src/lib/http/core/http-header.js +11 -0
  47. package/src/lib/http/core/http-header.js.map +1 -0
  48. package/src/lib/http/core/http-headers.d.ts +1 -0
  49. package/src/lib/http/core/http-headers.js +3 -0
  50. package/src/lib/http/core/http-headers.js.map +1 -0
  51. package/src/lib/http/core/http-message-body.d.ts +1 -0
  52. package/src/lib/http/core/http-message-body.js +3 -0
  53. package/src/lib/http/core/http-message-body.js.map +1 -0
  54. package/src/lib/http/core/http-method.d.ts +8 -0
  55. package/src/lib/http/core/http-method.js +13 -0
  56. package/src/lib/http/core/http-method.js.map +1 -0
  57. package/src/lib/http/core/http-request-body.d.ts +2 -0
  58. package/src/lib/http/core/http-request-body.js +3 -0
  59. package/src/lib/http/core/http-request-body.js.map +1 -0
  60. package/src/lib/http/core/http-request.d.ts +17 -0
  61. package/src/lib/http/core/http-request.js +3 -0
  62. package/src/lib/http/core/http-request.js.map +1 -0
  63. package/src/lib/http/core/http-response.d.ts +7 -0
  64. package/src/lib/http/core/http-response.js +3 -0
  65. package/src/lib/http/core/http-response.js.map +1 -0
  66. package/src/lib/http/core/media-type.d.ts +4 -0
  67. package/src/lib/http/core/media-type.js +9 -0
  68. package/src/lib/http/core/media-type.js.map +1 -0
  69. package/src/lib/http/core/query-params.d.ts +1 -0
  70. package/src/lib/http/core/query-params.js +3 -0
  71. package/src/lib/http/core/query-params.js.map +1 -0
  72. package/src/lib/http/index.d.ts +13 -0
  73. package/src/lib/http/index.js +17 -0
  74. package/src/lib/http/index.js.map +1 -0
  75. package/src/lib/polling/index.d.ts +57 -0
  76. package/src/lib/polling/index.js +136 -0
  77. package/src/lib/polling/index.js.map +1 -0
  78. package/src/lib/validation/index.d.ts +4 -0
  79. package/src/lib/validation/index.js +26 -0
  80. package/src/lib/validation/index.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # pieces-common
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build pieces-common` to build the library.
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@activeboxes/pieces-common",
3
+ "version": "0.4.0",
4
+ "type": "commonjs",
5
+ "dependencies": {
6
+ "@anthropic-ai/sdk": "0.33.1",
7
+ "@sinclair/typebox": "0.34.11",
8
+ "axios": "1.7.8",
9
+ "axios-retry": "4.4.1",
10
+ "deepmerge-ts": "7.1.0",
11
+ "mime-types": "2.1.35",
12
+ "nanoid": "3.3.8",
13
+ "openai": "4.67.1",
14
+ "replicate": "0.34.1",
15
+ "semver": "7.6.0",
16
+ "zod": "3.23.8",
17
+ "@activeboxes/pieces-framework": "0.7.41",
18
+ "@activeboxes/shared": "0.10.146",
19
+ "tslib": "1.14.1"
20
+ },
21
+ "overrides": {
22
+ "cross-spawn": "7.0.6",
23
+ "@tryfabric/martian": {
24
+ "@notionhq/client": "$@notionhq/client"
25
+ },
26
+ "vite": {
27
+ "rollup": "npm:@rollup/wasm-node"
28
+ }
29
+ },
30
+ "resolutions": {
31
+ "rollup": "npm:@rollup/wasm-node"
32
+ },
33
+ "main": "./src/index.js",
34
+ "types": "./src/index.d.ts"
35
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export * from './lib/authentication';
2
+ export * from './lib/helpers';
3
+ export * from './lib/http';
4
+ export * from './lib/polling';
5
+ export * from './lib/ai';
6
+ export * from './lib/validation';
package/src/index.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/authentication"), exports);
5
+ tslib_1.__exportStar(require("./lib/helpers"), exports);
6
+ tslib_1.__exportStar(require("./lib/http"), exports);
7
+ tslib_1.__exportStar(require("./lib/polling"), exports);
8
+ tslib_1.__exportStar(require("./lib/ai"), exports);
9
+ tslib_1.__exportStar(require("./lib/validation"), exports);
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/common/src/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B;AAC9B,mDAAyB;AACzB,2DAAiC"}
@@ -0,0 +1,94 @@
1
+ import { ApFile, ServerContext } from '@activeboxes/pieces-framework';
2
+ import { AiProvider } from './providers';
3
+ export type AI = {
4
+ provider: string;
5
+ chat: AIChat;
6
+ image?: AIImage;
7
+ moderation?: AIModeration;
8
+ function?: AIFunction;
9
+ };
10
+ export type AIFunction = {
11
+ call?: (params: AIChatCompletionsCreateParams & {
12
+ functions: AIFunctionDefinition[];
13
+ } & {
14
+ files: ApFile[];
15
+ }) => Promise<AIChatCompletion & {
16
+ call: AIFunctionCall | null;
17
+ }>;
18
+ };
19
+ export type AIModeration = {
20
+ create: (params: AIModerationCreateParams) => Promise<any | null>;
21
+ };
22
+ export type AIModerationCreateParams = {
23
+ model: string;
24
+ text?: string;
25
+ images?: ApFile[];
26
+ maxTokens?: number;
27
+ };
28
+ export type AIImage = {
29
+ generate: (params: AIImageGenerateParams) => Promise<AIImageCompletion | null>;
30
+ };
31
+ export type AIImageGenerateParams = {
32
+ prompt: string;
33
+ model: string;
34
+ size?: string;
35
+ advancedOptions?: Record<string, unknown>;
36
+ };
37
+ export type AIImageCompletion = {
38
+ image: string;
39
+ };
40
+ export type AIChat = {
41
+ text: (params: AIChatCompletionsCreateParams) => Promise<AIChatCompletion>;
42
+ };
43
+ export type AIChatCompletionsCreateParams = {
44
+ model: string;
45
+ messages: AIChatMessage[];
46
+ creativity?: number;
47
+ maxTokens?: number;
48
+ stop?: string[];
49
+ };
50
+ export type AIChatCompletion = {
51
+ choices: AIChatMessage[];
52
+ usage?: AIChatCompletionUsage;
53
+ };
54
+ export type AIChatCompletionUsage = {
55
+ promptTokens: number;
56
+ completionTokens: number;
57
+ totalTokens: number;
58
+ };
59
+ export type AIChatMessage = {
60
+ role: AIChatRole;
61
+ content: string;
62
+ };
63
+ export type AIFunctionCall = {
64
+ id: string;
65
+ function: {
66
+ name: string;
67
+ arguments: unknown;
68
+ };
69
+ };
70
+ export type AIFunctionDefinition = {
71
+ name: string;
72
+ description: string;
73
+ arguments: AIFunctionArgumentDefinition;
74
+ };
75
+ export type AIFunctionArgumentDefinition = {
76
+ type: 'object';
77
+ properties?: unknown | null;
78
+ required?: string[];
79
+ [k: string]: unknown;
80
+ };
81
+ export declare enum AIChatRole {
82
+ SYSTEM = "system",
83
+ USER = "user",
84
+ ASSISTANT = "assistant"
85
+ }
86
+ export type AIFactory = (params: {
87
+ proxyUrl: string;
88
+ engineToken: string;
89
+ }) => AI;
90
+ export declare const AI: ({ provider, server }: {
91
+ provider: AiProvider;
92
+ server: ServerContext;
93
+ }) => AI;
94
+ export * from './providers';
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AI = exports.AIChatRole = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const providers_1 = require("./providers");
6
+ var AIChatRole;
7
+ (function (AIChatRole) {
8
+ AIChatRole["SYSTEM"] = "system";
9
+ AIChatRole["USER"] = "user";
10
+ AIChatRole["ASSISTANT"] = "assistant";
11
+ })(AIChatRole || (exports.AIChatRole = AIChatRole = {}));
12
+ const AI = ({ provider, server }) => {
13
+ var _a;
14
+ const proxyUrl = `${server.apiUrl}v1/ai-providers/proxy/${provider}`;
15
+ const factory = (_a = providers_1.AI_PROVIDERS.find((p) => p.value === provider)) === null || _a === void 0 ? void 0 : _a.factory;
16
+ const impl = factory === null || factory === void 0 ? void 0 : factory({ proxyUrl, engineToken: server.token });
17
+ if (!impl) {
18
+ throw new Error(`AI provider ${provider} is not registered`);
19
+ }
20
+ return {
21
+ provider,
22
+ image: impl.image,
23
+ moderation: impl.moderation,
24
+ function: impl.function,
25
+ chat: {
26
+ text: (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
27
+ var _a;
28
+ try {
29
+ const response = yield impl.chat.text(params);
30
+ return response;
31
+ }
32
+ catch (e) {
33
+ if ((_a = e === null || e === void 0 ? void 0 : e.error) === null || _a === void 0 ? void 0 : _a.error) {
34
+ throw e.error.error;
35
+ }
36
+ throw e;
37
+ }
38
+ }),
39
+ },
40
+ };
41
+ };
42
+ exports.AI = AI;
43
+ tslib_1.__exportStar(require("./providers"), exports);
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/common/src/lib/ai/index.ts"],"names":[],"mappings":";;;;AACA,2CAAuD;AA6FvD,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,qCAAuB,CAAA;AACxB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAIM,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAmD,EAAM,EAAE;;IAC/F,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,MAAM,yBAAyB,QAAQ,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,MAAA,wBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,0CAAE,OAAO,CAAC;IACxE,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACN,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE;YACL,IAAI,EAAE,CAAO,MAAM,EAAE,EAAE;;gBACtB,IAAI,CAAC;oBACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9C,OAAO,QAAQ,CAAC;gBACjB,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBACjB,IAAI,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,0CAAE,KAAK,EAAE,CAAC;wBACrB,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;oBACrB,CAAC;oBACD,MAAM,CAAC,CAAC;gBACT,CAAC;YACF,CAAC,CAAA;SACD;KACD,CAAC;AACH,CAAC,CAAC;AA5BW,QAAA,EAAE,MA4Bb;AAEF,sDAA4B"}
@@ -0,0 +1,2 @@
1
+ import { AIFactory } from '../..';
2
+ export declare const anthropic: AIFactory;
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.anthropic = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sdk_1 = tslib_1.__importDefault(require("@anthropic-ai/sdk"));
6
+ const __1 = require("../..");
7
+ const mime_types_1 = tslib_1.__importDefault(require("mime-types"));
8
+ const anthropic = ({ proxyUrl, engineToken }) => {
9
+ const sdk = new sdk_1.default({
10
+ apiKey: engineToken,
11
+ baseURL: proxyUrl,
12
+ defaultHeaders: {
13
+ Authorization: `Bearer ${engineToken}`,
14
+ },
15
+ });
16
+ return {
17
+ provider: 'ANTHROPIC',
18
+ function: {
19
+ call: (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
20
+ var _a;
21
+ const messages = params.messages.map((message) => ({
22
+ role: __1.AIChatRole.USER,
23
+ content: [{ type: 'text', text: message.content }],
24
+ }));
25
+ if (params.files.length) {
26
+ const contents = [];
27
+ params.files.forEach((file, index) => {
28
+ const fileType = file.extension ? mime_types_1.default.lookup(file.extension) : 'image/jpeg';
29
+ if (fileType && fileType.startsWith('image')) {
30
+ contents.push({
31
+ type: 'text',
32
+ text: `Image ${index + 1}:`,
33
+ }, {
34
+ type: 'image',
35
+ source: {
36
+ type: 'base64',
37
+ media_type: fileType,
38
+ data: file.base64,
39
+ },
40
+ });
41
+ }
42
+ if (fileType === 'application/pdf') {
43
+ contents.push({
44
+ type: 'document',
45
+ source: {
46
+ type: 'base64',
47
+ media_type: 'application/pdf',
48
+ data: file.base64,
49
+ },
50
+ });
51
+ }
52
+ });
53
+ if (contents.length) {
54
+ const lastMessage = messages[messages.length - 1];
55
+ if (lastMessage && lastMessage.role === __1.AIChatRole.USER) {
56
+ const exitingContent = lastMessage.content;
57
+ lastMessage.content = [...exitingContent, ...contents];
58
+ }
59
+ else {
60
+ messages.push({
61
+ role: __1.AIChatRole.USER,
62
+ content: contents,
63
+ });
64
+ }
65
+ }
66
+ }
67
+ const completion = yield sdk.messages.create({
68
+ model: params.model,
69
+ messages: messages,
70
+ max_tokens: (_a = params.maxTokens) !== null && _a !== void 0 ? _a : 2000,
71
+ tools: params.functions.map((functionDefinition) => ({
72
+ name: functionDefinition.name,
73
+ description: functionDefinition.description,
74
+ input_schema: functionDefinition.arguments,
75
+ })),
76
+ tool_choice: { type: 'tool', name: params.functions[0].name },
77
+ });
78
+ const toolCallsResponse = completion.content.filter((choice) => choice.type === 'tool_use');
79
+ const toolCall = toolCallsResponse[0];
80
+ return {
81
+ choices: completion.content
82
+ .filter((choice) => choice.type === 'text')
83
+ .map((choice) => ({
84
+ content: choice.text,
85
+ role: __1.AIChatRole.ASSISTANT,
86
+ })),
87
+ call: toolCall
88
+ ? {
89
+ id: toolCall.id,
90
+ function: {
91
+ name: toolCall.name,
92
+ arguments: toolCall.input,
93
+ },
94
+ }
95
+ : null,
96
+ model: completion.model,
97
+ created: new Date().getTime(),
98
+ usage: {
99
+ completionTokens: completion.usage.output_tokens,
100
+ promptTokens: completion.usage.input_tokens,
101
+ totalTokens: completion.usage.output_tokens + completion.usage.input_tokens,
102
+ },
103
+ };
104
+ }),
105
+ },
106
+ chat: {
107
+ text: (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
108
+ var _a, _b;
109
+ const concatenatedSystemMessage = params.messages
110
+ .filter((message) => message.role === 'system')
111
+ .map((message) => message.content)
112
+ .join('\n');
113
+ const completion = yield sdk.messages.create({
114
+ model: params.model,
115
+ messages: params.messages.map((message) => ({
116
+ role: message.role === 'user' ? 'user' : 'assistant',
117
+ content: message.content,
118
+ })),
119
+ temperature: Math.tanh((_a = params.creativity) !== null && _a !== void 0 ? _a : 100),
120
+ stop_sequences: params.stop,
121
+ system: concatenatedSystemMessage,
122
+ stream: false,
123
+ max_tokens: (_b = params.maxTokens) !== null && _b !== void 0 ? _b : 2000,
124
+ });
125
+ return {
126
+ choices: completion.content
127
+ .filter((choice) => choice.type === 'text')
128
+ .map((choice) => ({
129
+ content: choice.text,
130
+ role: __1.AIChatRole.ASSISTANT,
131
+ })),
132
+ created: new Date().getTime(),
133
+ model: completion.model,
134
+ usage: {
135
+ completionTokens: completion.usage.output_tokens,
136
+ promptTokens: completion.usage.input_tokens,
137
+ totalTokens: completion.usage.output_tokens + completion.usage.input_tokens,
138
+ },
139
+ };
140
+ }),
141
+ },
142
+ image: {
143
+ generate: (parmas) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return null; }),
144
+ },
145
+ };
146
+ };
147
+ exports.anthropic = anthropic;
148
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../packages/pieces/community/common/src/lib/ai/providers/anthropic/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { Static } from '@sinclair/typebox';
2
+ export declare const AI_PROVIDERS_MAKRDOWN: {
3
+ openai: string;
4
+ anthropic: string;
5
+ replicate: string;
6
+ };
7
+ export declare const AI_PROVIDERS: ({
8
+ logoUrl: string;
9
+ defaultBaseUrl: string;
10
+ label: "OpenAI";
11
+ value: "openai";
12
+ models: ({
13
+ __tag: import("./utils").ModelType;
14
+ label: string;
15
+ value: string;
16
+ supported: ("function" | "text" | "image" | "moderation")[];
17
+ mapper: (mapper: import("./utils").ImageModelMapper | import("./utils").ChatModelMapper) => {
18
+ mapper: import("./utils").ImageModelMapper | import("./utils").ChatModelMapper;
19
+ __tag: import("./utils").ModelType.IMAGE | import("./utils").ModelType.CHAT;
20
+ label: string;
21
+ value: string;
22
+ supported: ("function" | "text" | "image" | "moderation")[];
23
+ };
24
+ } | {
25
+ mapper: import("./utils").ImageModelMapper | import("./utils").ChatModelMapper;
26
+ __tag: import("./utils").ModelType.IMAGE | import("./utils").ModelType.CHAT;
27
+ label: string;
28
+ value: string;
29
+ supported: ("function" | "text" | "image" | "moderation")[];
30
+ })[];
31
+ auth: import("./utils").AuthHeader;
32
+ factory: import("..").AIFactory;
33
+ instructionsMarkdown: string;
34
+ } | {
35
+ logoUrl: string;
36
+ defaultBaseUrl: string;
37
+ label: "Anthropic";
38
+ value: "anthropic";
39
+ models: {
40
+ __tag: import("./utils").ModelType;
41
+ label: string;
42
+ value: string;
43
+ supported: ("function" | "text" | "image" | "moderation")[];
44
+ mapper: (mapper: import("./utils").ImageModelMapper | import("./utils").ChatModelMapper) => {
45
+ mapper: import("./utils").ImageModelMapper | import("./utils").ChatModelMapper;
46
+ __tag: import("./utils").ModelType.IMAGE | import("./utils").ModelType.CHAT;
47
+ label: string;
48
+ value: string;
49
+ supported: ("function" | "text" | "image" | "moderation")[];
50
+ };
51
+ }[];
52
+ auth: import("./utils").AuthHeader;
53
+ factory: import("..").AIFactory;
54
+ instructionsMarkdown: string;
55
+ } | {
56
+ logoUrl: string;
57
+ defaultBaseUrl: string;
58
+ label: "Replicate";
59
+ value: "replicate";
60
+ models: {
61
+ mapper: import("./utils").ImageModelMapper | import("./utils").ChatModelMapper;
62
+ __tag: import("./utils").ModelType.IMAGE | import("./utils").ModelType.CHAT;
63
+ label: string;
64
+ value: string;
65
+ supported: ("function" | "text" | "image" | "moderation")[];
66
+ }[];
67
+ auth: import("./utils").AuthHeader;
68
+ factory: import("..").AIFactory;
69
+ instructionsMarkdown: string;
70
+ })[];
71
+ export declare const aiProps: (supported: "text" | "image" | "function" | "moderation") => {
72
+ provider: import("@activeboxes/pieces-framework").DropdownProperty<"replicate" | "openai" | "anthropic", true>;
73
+ model: import("@activeboxes/pieces-framework").DropdownProperty<string, true>;
74
+ advancedOptions: import("@activeboxes/pieces-framework").DynamicProperties<false>;
75
+ };
76
+ export type AiProviderMetadata = (typeof AI_PROVIDERS)[number];
77
+ export declare const AiProvider: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"replicate" | "openai" | "anthropic">[]>;
78
+ export type AiProvider = Static<typeof AiProvider>;
79
+ export * from './utils';
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AiProvider = exports.aiProps = exports.AI_PROVIDERS = exports.AI_PROVIDERS_MAKRDOWN = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activeboxes/pieces-framework");
6
+ const shared_1 = require("@activeboxes/shared");
7
+ const typebox_1 = require("@sinclair/typebox");
8
+ const http_1 = require("../../http");
9
+ const anthropic_1 = require("./anthropic");
10
+ const openai_1 = require("./openai");
11
+ const replicate_1 = require("./replicate");
12
+ const utils_1 = require("./utils");
13
+ exports.AI_PROVIDERS_MAKRDOWN = {
14
+ openai: `Follow these instructions to get your OpenAI API Key:
15
+
16
+ 1. Visit the following website: https://platform.openai.com/account/api-keys.
17
+ 2. Once on the website, locate and click on the option to obtain your OpenAI API Key.
18
+
19
+ It is strongly recommended that you add your credit card information to your OpenAI account and upgrade to the paid plan **before** generating the API Key. This will help you prevent 429 errors.
20
+ `,
21
+ anthropic: `Follow these instructions to get your Claude API Key:
22
+
23
+ 1. Visit the following website: https://console.anthropic.com/settings/keys.
24
+ 2. Once on the website, locate and click on the option to obtain your Claude API Key.
25
+ `,
26
+ replicate: `Follow these instructions to get your Replicate API Key:
27
+
28
+ 1. Visit the following website: https://replicate.com/account/api-tokens.
29
+ 2. Once on the website, locate and click on the option to obtain your Replicate API Key.
30
+ `,
31
+ };
32
+ exports.AI_PROVIDERS = [
33
+ {
34
+ logoUrl: 'https://cdn.activeboxes.org/pieces/openai.png',
35
+ defaultBaseUrl: 'https://api.openai.com',
36
+ label: 'OpenAI',
37
+ value: 'openai',
38
+ models: openai_1.openaiModels,
39
+ auth: (0, utils_1.authHeader)({ bearer: true }),
40
+ factory: openai_1.openai,
41
+ instructionsMarkdown: exports.AI_PROVIDERS_MAKRDOWN.openai,
42
+ },
43
+ {
44
+ logoUrl: 'https://cdn.activeboxes.org/pieces/claude.png',
45
+ defaultBaseUrl: 'https://api.anthropic.com',
46
+ label: 'Anthropic',
47
+ value: 'anthropic',
48
+ models: [
49
+ (0, utils_1.model)({
50
+ label: 'claude-3-5-sonnet',
51
+ value: 'claude-3-5-sonnet-latest',
52
+ supported: ['text', 'function'],
53
+ }),
54
+ (0, utils_1.model)({
55
+ label: 'claude-3-opus',
56
+ value: 'claude-3-opus-20240229',
57
+ supported: ['text', 'function'],
58
+ }),
59
+ (0, utils_1.model)({
60
+ label: 'claude-3-sonnet',
61
+ value: 'claude-3-sonnet-20240229',
62
+ supported: ['text', 'function'],
63
+ }),
64
+ (0, utils_1.model)({
65
+ label: 'claude-3-5-haiku',
66
+ value: 'claude-3-5-haiku-latest',
67
+ supported: ['text', 'function'],
68
+ }),
69
+ (0, utils_1.model)({
70
+ label: 'claude-3-haiku',
71
+ value: 'claude-3-haiku-20240307',
72
+ supported: ['text', 'function'],
73
+ }),
74
+ ],
75
+ auth: (0, utils_1.authHeader)({ name: 'x-api-key', bearer: false }),
76
+ factory: anthropic_1.anthropic,
77
+ instructionsMarkdown: exports.AI_PROVIDERS_MAKRDOWN.anthropic,
78
+ },
79
+ {
80
+ logoUrl: 'https://cdn.activeboxes.org/pieces/replicate.png',
81
+ defaultBaseUrl: 'https://api.replicate.com',
82
+ label: 'Replicate',
83
+ value: 'replicate',
84
+ models: replicate_1.replicateModels,
85
+ auth: (0, utils_1.authHeader)({ bearer: true }),
86
+ factory: replicate_1.replicate,
87
+ instructionsMarkdown: exports.AI_PROVIDERS_MAKRDOWN.replicate,
88
+ },
89
+ ];
90
+ const aiProps = (supported) => ({
91
+ provider: pieces_framework_1.Property.Dropdown({
92
+ displayName: 'Provider',
93
+ required: true,
94
+ defaultValue: 'openai',
95
+ refreshers: [],
96
+ options: (_, ctx) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
97
+ const providers = yield http_1.httpClient.sendRequest({
98
+ method: http_1.HttpMethod.GET,
99
+ url: `${ctx.server.apiUrl}v1/ai-providers`,
100
+ headers: {
101
+ Authorization: `Bearer ${ctx.server.token}`,
102
+ },
103
+ });
104
+ if (providers.body.data.length === 0) {
105
+ return {
106
+ disabled: true,
107
+ options: [],
108
+ placeholder: 'No AI providers configured by the admin.',
109
+ };
110
+ }
111
+ const providersWithMetadata = providers.body.data.flatMap((p) => {
112
+ const providerMetadata = exports.AI_PROVIDERS.find((meta) => meta.value === p.provider &&
113
+ meta.models.some((m) => m.supported.includes(supported)));
114
+ if ((0, shared_1.isNil)(providerMetadata)) {
115
+ return [];
116
+ }
117
+ return [
118
+ {
119
+ value: providerMetadata.value,
120
+ label: providerMetadata.label,
121
+ models: providerMetadata.models,
122
+ },
123
+ ];
124
+ });
125
+ return {
126
+ placeholder: 'Select AI Provider',
127
+ disabled: false,
128
+ options: providersWithMetadata,
129
+ };
130
+ }),
131
+ }),
132
+ model: pieces_framework_1.Property.Dropdown({
133
+ displayName: 'Model',
134
+ required: true,
135
+ defaultValue: 'gpt-4o',
136
+ refreshers: ['provider'],
137
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ provider }) {
138
+ var _b;
139
+ if ((0, shared_1.isNil)(provider)) {
140
+ return {
141
+ disabled: true,
142
+ options: [],
143
+ placeholder: 'Select AI Provider',
144
+ };
145
+ }
146
+ const models = (_b = exports.AI_PROVIDERS.find((p) => p.value === provider)) === null || _b === void 0 ? void 0 : _b.models.filter((m) => m.supported.includes(supported));
147
+ return {
148
+ disabled: (0, shared_1.isNil)(models),
149
+ options: models !== null && models !== void 0 ? models : [],
150
+ };
151
+ }),
152
+ }),
153
+ advancedOptions: pieces_framework_1.Property.DynamicProperties({
154
+ displayName: 'Advanced Options',
155
+ required: false,
156
+ refreshers: ['provider', 'model'],
157
+ props: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ model, provider }) {
158
+ var _b, _c;
159
+ const modelMetadata = (_b = exports.AI_PROVIDERS.find((p) => p.value === provider)) === null || _b === void 0 ? void 0 : _b.models.find((m) => m.value === model);
160
+ if ((0, shared_1.isNil)(modelMetadata) || !(0, utils_1.hasMapper)(modelMetadata)) {
161
+ return {};
162
+ }
163
+ return (_c = modelMetadata.mapper.advancedOptions) !== null && _c !== void 0 ? _c : {};
164
+ }),
165
+ }),
166
+ });
167
+ exports.aiProps = aiProps;
168
+ exports.AiProvider = typebox_1.Type.Union(exports.AI_PROVIDERS.map((p) => typebox_1.Type.Literal(p.value)));
169
+ tslib_1.__exportStar(require("./utils"), exports);
170
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../packages/pieces/community/common/src/lib/ai/providers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { AIFactory } from '../..';
2
+ import { ModelType } from '../utils';
3
+ export declare const openai: AIFactory;
4
+ export declare const openaiModels: ({
5
+ __tag: ModelType;
6
+ label: string;
7
+ value: string;
8
+ supported: ("function" | "text" | "image" | "moderation")[];
9
+ mapper: (mapper: import("../utils").ImageModelMapper | import("../utils").ChatModelMapper) => {
10
+ mapper: import("../utils").ImageModelMapper | import("../utils").ChatModelMapper;
11
+ __tag: ModelType.IMAGE | ModelType.CHAT;
12
+ label: string;
13
+ value: string;
14
+ supported: ("function" | "text" | "image" | "moderation")[];
15
+ };
16
+ } | {
17
+ mapper: import("../utils").ImageModelMapper | import("../utils").ChatModelMapper;
18
+ __tag: ModelType.IMAGE | ModelType.CHAT;
19
+ label: string;
20
+ value: string;
21
+ supported: ("function" | "text" | "image" | "moderation")[];
22
+ })[];