@superinterface/server 1.6.0 → 1.7.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 (99) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -0
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/cache/.tsbuildinfo +1 -1
  5. package/.next/cache/eslint/.cache_btwyo7 +1 -1
  6. package/.next/fallback-build-manifest.json +2 -2
  7. package/.next/routes-manifest.json +17 -0
  8. package/.next/server/app/_not-found.html +1 -1
  9. package/.next/server/app/_not-found.rsc +1 -1
  10. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route/app-build-manifest.json +10 -0
  11. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route/app-paths-manifest.json +3 -0
  12. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route/build-manifest.json +16 -0
  13. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route/server-reference-manifest.json +4 -0
  14. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route.js +8 -0
  15. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route.js.map +5 -0
  16. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route.js.nft.json +1 -0
  17. package/.next/server/app/api/assistants/[assistantId]/tools/[toolId]/route_client-reference-manifest.js +2 -0
  18. package/.next/server/app/api/assistants/[assistantId]/tools/route/app-build-manifest.json +10 -0
  19. package/.next/server/app/api/assistants/[assistantId]/tools/route/app-paths-manifest.json +3 -0
  20. package/.next/server/app/api/assistants/[assistantId]/tools/route/build-manifest.json +16 -0
  21. package/.next/server/app/api/assistants/[assistantId]/tools/route/server-reference-manifest.json +4 -0
  22. package/.next/server/app/api/assistants/[assistantId]/tools/route.js +8 -0
  23. package/.next/server/app/api/assistants/[assistantId]/tools/route.js.map +5 -0
  24. package/.next/server/app/api/assistants/[assistantId]/tools/route.js.nft.json +1 -0
  25. package/.next/server/app/api/assistants/[assistantId]/tools/route_client-reference-manifest.js +2 -0
  26. package/.next/server/app/api/files/[fileId]/contents/route.js +1 -1
  27. package/.next/server/app/api/files/[fileId]/contents/route.js.nft.json +1 -1
  28. package/.next/server/app/api/files/route.js +1 -1
  29. package/.next/server/app/api/files/route.js.nft.json +1 -1
  30. package/.next/server/app/api/messages/route.js +1 -1
  31. package/.next/server/app/api/messages/route.js.nft.json +1 -1
  32. package/.next/server/app/api/providers/[modelProviderId]/assistants/route.js +1 -1
  33. package/.next/server/app/api/providers/[modelProviderId]/assistants/route.js.nft.json +1 -1
  34. package/.next/server/app/api/providers/[modelProviderId]/models/route.js +1 -1
  35. package/.next/server/app/api/providers/[modelProviderId]/models/route.js.nft.json +1 -1
  36. package/.next/server/app/api/tasks/callback/route.js +1 -1
  37. package/.next/server/app/api/tasks/callback/route.js.nft.json +1 -1
  38. package/.next/server/app/index.html +1 -1
  39. package/.next/server/app/index.rsc +1 -1
  40. package/.next/server/app-paths-manifest.json +2 -0
  41. package/.next/server/chunks/[root-of-the-server]__181844d8._.js +3 -0
  42. package/.next/server/chunks/[root-of-the-server]__181844d8._.js.map +1 -0
  43. package/.next/server/chunks/[root-of-the-server]__37a3ac4f._.js +3 -0
  44. package/.next/server/chunks/[root-of-the-server]__37a3ac4f._.js.map +1 -0
  45. package/.next/server/chunks/[root-of-the-server]__4e536bc0._.js.map +1 -1
  46. package/.next/server/chunks/{[root-of-the-server]__157cba54._.js → [root-of-the-server]__5715dd1a._.js} +2 -2
  47. package/.next/server/chunks/{[root-of-the-server]__157cba54._.js.map → [root-of-the-server]__5715dd1a._.js.map} +1 -1
  48. package/.next/server/chunks/[root-of-the-server]__621f572e._.js +3 -0
  49. package/.next/server/chunks/[root-of-the-server]__621f572e._.js.map +1 -0
  50. package/.next/server/chunks/[root-of-the-server]__76635a77._.js +3 -0
  51. package/.next/server/chunks/[root-of-the-server]__76635a77._.js.map +1 -0
  52. package/.next/server/chunks/[root-of-the-server]__8b8c4831._.js +3 -0
  53. package/.next/server/chunks/[root-of-the-server]__8b8c4831._.js.map +1 -0
  54. package/.next/server/chunks/{[root-of-the-server]__0dd082e7._.js → [root-of-the-server]__e45dec0a._.js} +2 -2
  55. package/.next/server/chunks/{[root-of-the-server]__0dd082e7._.js.map → [root-of-the-server]__e45dec0a._.js.map} +1 -1
  56. package/.next/server/chunks/{[root-of-the-server]__b9d6eedd._.js → [root-of-the-server]__faa0774f._.js} +2 -2
  57. package/.next/server/chunks/{[root-of-the-server]__b9d6eedd._.js.map → [root-of-the-server]__faa0774f._.js.map} +1 -1
  58. package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_828c7f3d.js.map +1 -1
  59. package/.next/server/pages/404.html +1 -1
  60. package/.next/server/pages/500.html +1 -1
  61. package/.next/trace +1 -1
  62. package/.next/types/routes.d.ts +3 -1
  63. package/.next/types/validator.ts +18 -0
  64. package/dist/app/api/assistants/[assistantId]/buildRoute.d.ts.map +1 -1
  65. package/dist/app/api/assistants/[assistantId]/buildRoute.js +3 -1
  66. package/dist/app/api/assistants/[assistantId]/tools/[toolId]/buildRoute.d.ts +107 -0
  67. package/dist/app/api/assistants/[assistantId]/tools/[toolId]/buildRoute.d.ts.map +1 -0
  68. package/dist/app/api/assistants/[assistantId]/tools/[toolId]/buildRoute.js +165 -0
  69. package/dist/app/api/assistants/[assistantId]/tools/[toolId]/route.d.ts +107 -0
  70. package/dist/app/api/assistants/[assistantId]/tools/[toolId]/route.d.ts.map +1 -0
  71. package/dist/app/api/assistants/[assistantId]/tools/[toolId]/route.js +6 -0
  72. package/dist/app/api/assistants/[assistantId]/tools/buildRoute.d.ts +74 -0
  73. package/dist/app/api/assistants/[assistantId]/tools/buildRoute.d.ts.map +1 -0
  74. package/dist/app/api/assistants/[assistantId]/tools/buildRoute.js +121 -0
  75. package/dist/app/api/assistants/[assistantId]/tools/route.d.ts +70 -0
  76. package/dist/app/api/assistants/[assistantId]/tools/route.d.ts.map +1 -0
  77. package/dist/app/api/assistants/[assistantId]/tools/route.js +5 -0
  78. package/dist/app/api/assistants/buildRoute.d.ts +18 -18
  79. package/dist/app/api/assistants/buildRoute.d.ts.map +1 -1
  80. package/dist/app/api/assistants/buildRoute.js +3 -1
  81. package/dist/lib/tools/isToolConfigAvailable.d.ts +16 -0
  82. package/dist/lib/tools/isToolConfigAvailable.d.ts.map +1 -0
  83. package/dist/lib/tools/isToolConfigAvailable.js +111 -0
  84. package/dist/lib/tools/serializeApiTool.d.ts +39 -0
  85. package/dist/lib/tools/serializeApiTool.d.ts.map +1 -0
  86. package/dist/lib/tools/serializeApiTool.js +35 -0
  87. package/dist/lib/tools/toolSchema.d.ts +311 -0
  88. package/dist/lib/tools/toolSchema.d.ts.map +1 -0
  89. package/dist/lib/tools/toolSchema.js +74 -0
  90. package/package.json +16 -1
  91. package/.next/server/chunks/[root-of-the-server]__80c5437f._.js +0 -3
  92. package/.next/server/chunks/[root-of-the-server]__80c5437f._.js.map +0 -1
  93. package/.next/server/chunks/[root-of-the-server]__aa7dab38._.js +0 -3
  94. package/.next/server/chunks/[root-of-the-server]__aa7dab38._.js.map +0 -1
  95. package/.next/server/chunks/[root-of-the-server]__aacdf247._.js +0 -3
  96. package/.next/server/chunks/[root-of-the-server]__aacdf247._.js.map +0 -1
  97. /package/.next/static/{UBq-QQGk_XvgTNFv4eLnz → RTUY1MMVeKHU4_TIxAC_f}/_buildManifest.js +0 -0
  98. /package/.next/static/{UBq-QQGk_XvgTNFv4eLnz → RTUY1MMVeKHU4_TIxAC_f}/_clientMiddlewareManifest.json +0 -0
  99. /package/.next/static/{UBq-QQGk_XvgTNFv4eLnz → RTUY1MMVeKHU4_TIxAC_f}/_ssgManifest.js +0 -0
@@ -0,0 +1,121 @@
1
+ import { NextResponse } from 'next/server';
2
+ import { ApiKeyType, ToolType } from '@prisma/client';
3
+ import { headers } from 'next/headers';
4
+ import { cacheHeaders } from '../../../../../lib/cache/cacheHeaders';
5
+ import { getApiKey } from '../../../../../lib/apiKeys/getApiKey';
6
+ import { serializeApiTool, toolInclude, } from '../../../../../lib/tools/serializeApiTool';
7
+ import { toolSchema } from '../../../../../lib/tools/toolSchema';
8
+ import { isToolConfigAvailable } from '../../../../../lib/tools/isToolConfigAvailable';
9
+ export const buildGET = ({ prisma }) => async (_request, props) => {
10
+ const { assistantId } = await props.params;
11
+ const headersList = await headers();
12
+ const authorization = headersList.get('authorization');
13
+ if (!authorization) {
14
+ return NextResponse.json({ error: 'No authorization header found' }, { status: 400 });
15
+ }
16
+ const privateApiKey = await getApiKey({
17
+ type: ApiKeyType.PRIVATE,
18
+ authorization,
19
+ prisma,
20
+ });
21
+ if (!privateApiKey) {
22
+ return NextResponse.json({ error: 'Invalid api key' }, { status: 400 });
23
+ }
24
+ const assistant = await prisma.assistant.findFirst({
25
+ where: {
26
+ id: assistantId,
27
+ workspaceId: privateApiKey.workspaceId,
28
+ },
29
+ include: {
30
+ tools: {
31
+ include: toolInclude,
32
+ orderBy: {
33
+ createdAt: 'desc',
34
+ },
35
+ },
36
+ },
37
+ });
38
+ if (!assistant) {
39
+ return NextResponse.json({ error: 'No assistant found' }, { status: 400 });
40
+ }
41
+ return NextResponse.json({
42
+ tools: assistant.tools.map((tool) => serializeApiTool({ tool })),
43
+ }, { headers: cacheHeaders });
44
+ };
45
+ export const buildPOST = ({ prisma }) => async (request, props) => {
46
+ var _a, _b, _c;
47
+ const { assistantId } = await props.params;
48
+ const headersList = await headers();
49
+ const authorization = headersList.get('authorization');
50
+ if (!authorization) {
51
+ return NextResponse.json({ error: 'No authorization header found' }, { status: 400 });
52
+ }
53
+ const privateApiKey = await getApiKey({
54
+ authorization,
55
+ type: ApiKeyType.PRIVATE,
56
+ prisma,
57
+ });
58
+ if (!privateApiKey) {
59
+ return NextResponse.json({ error: 'Invalid api key' }, { status: 400 });
60
+ }
61
+ const assistant = await prisma.assistant.findFirst({
62
+ where: {
63
+ id: assistantId,
64
+ workspaceId: privateApiKey.workspaceId,
65
+ },
66
+ include: {
67
+ modelProvider: true,
68
+ },
69
+ });
70
+ if (!assistant) {
71
+ return NextResponse.json({ error: 'No assistant found' }, { status: 400 });
72
+ }
73
+ const body = await request.json();
74
+ const parsed = toolSchema.safeParse(body);
75
+ if (!parsed.success) {
76
+ console.error('Tool creation error:', parsed.error);
77
+ return NextResponse.json({ error: 'Invalid payload' }, { status: 400 });
78
+ }
79
+ const { type } = parsed.data;
80
+ if (!isToolConfigAvailable({
81
+ toolType: type,
82
+ modelProviderType: assistant.modelProvider.type,
83
+ storageProviderType: assistant.storageProviderType,
84
+ })) {
85
+ return NextResponse.json({
86
+ error: `Tool type ${type} is not available for this assistant's provider configuration`,
87
+ }, { status: 400 });
88
+ }
89
+ const typeSpecificCreate = {};
90
+ if (type === ToolType.FILE_SEARCH) {
91
+ typeSpecificCreate.fileSearchTool = {
92
+ create: (_a = parsed.data.fileSearchTool) !== null && _a !== void 0 ? _a : {},
93
+ };
94
+ }
95
+ else if (type === ToolType.WEB_SEARCH) {
96
+ typeSpecificCreate.webSearchTool = { create: {} };
97
+ }
98
+ else if (type === ToolType.CODE_INTERPRETER) {
99
+ typeSpecificCreate.codeInterpreterTool = { create: {} };
100
+ }
101
+ else if (type === ToolType.IMAGE_GENERATION) {
102
+ typeSpecificCreate.imageGenerationTool = {
103
+ create: (_b = parsed.data.imageGenerationTool) !== null && _b !== void 0 ? _b : {},
104
+ };
105
+ }
106
+ else if (type === ToolType.COMPUTER_USE) {
107
+ typeSpecificCreate.computerUseTool = {
108
+ create: (_c = parsed.data.computerUseTool) !== null && _c !== void 0 ? _c : {},
109
+ };
110
+ }
111
+ const tool = await prisma.tool.create({
112
+ data: Object.assign({ type, assistantId: assistant.id }, typeSpecificCreate),
113
+ include: toolInclude,
114
+ });
115
+ return NextResponse.json({
116
+ tool: serializeApiTool({ tool }),
117
+ }, { headers: cacheHeaders });
118
+ };
119
+ export const buildOPTIONS = () => () => NextResponse.json({}, {
120
+ headers: cacheHeaders,
121
+ });
@@ -0,0 +1,70 @@
1
+ export declare const GET: (_request: import("next/server").NextRequest, props: {
2
+ params: Promise<{
3
+ assistantId: string;
4
+ }>;
5
+ }) => Promise<import("next/server").NextResponse<{
6
+ error: string;
7
+ }> | import("next/server").NextResponse<{
8
+ tools: {
9
+ createdAt: string;
10
+ updatedAt: string;
11
+ computerUseTool?: {
12
+ displayWidth: number;
13
+ displayHeight: number;
14
+ environment: import("@prisma/client").$Enums.ComputerUseToolEnvironment;
15
+ mcpServerId: string | null;
16
+ } | undefined;
17
+ imageGenerationTool?: {
18
+ model: string;
19
+ quality: import("@prisma/client").$Enums.ImageGenerationToolQuality;
20
+ size: import("@prisma/client").$Enums.ImageGenerationToolSize;
21
+ outputFormat: import("@prisma/client").$Enums.ImageGenerationToolOutputFormat;
22
+ background: import("@prisma/client").$Enums.ImageGenerationToolBackground;
23
+ partialImages: number;
24
+ } | undefined;
25
+ codeInterpreterTool?: {} | undefined;
26
+ webSearchTool?: {} | undefined;
27
+ fileSearchTool?: {
28
+ vectorStoreIds: string[];
29
+ maxNumResults: number;
30
+ } | undefined;
31
+ id: string;
32
+ type: import("@prisma/client").$Enums.ToolType;
33
+ }[];
34
+ }>>;
35
+ export declare const POST: (request: import("next/server").NextRequest, props: {
36
+ params: Promise<{
37
+ assistantId: string;
38
+ }>;
39
+ }) => Promise<import("next/server").NextResponse<{
40
+ error: string;
41
+ }> | import("next/server").NextResponse<{
42
+ tool: {
43
+ createdAt: string;
44
+ updatedAt: string;
45
+ computerUseTool?: {
46
+ displayWidth: number;
47
+ displayHeight: number;
48
+ environment: import("@prisma/client").$Enums.ComputerUseToolEnvironment;
49
+ mcpServerId: string | null;
50
+ } | undefined;
51
+ imageGenerationTool?: {
52
+ model: string;
53
+ quality: import("@prisma/client").$Enums.ImageGenerationToolQuality;
54
+ size: import("@prisma/client").$Enums.ImageGenerationToolSize;
55
+ outputFormat: import("@prisma/client").$Enums.ImageGenerationToolOutputFormat;
56
+ background: import("@prisma/client").$Enums.ImageGenerationToolBackground;
57
+ partialImages: number;
58
+ } | undefined;
59
+ codeInterpreterTool?: {} | undefined;
60
+ webSearchTool?: {} | undefined;
61
+ fileSearchTool?: {
62
+ vectorStoreIds: string[];
63
+ maxNumResults: number;
64
+ } | undefined;
65
+ id: string;
66
+ type: import("@prisma/client").$Enums.ToolType;
67
+ };
68
+ }>>;
69
+ export declare const OPTIONS: () => import("next/server").NextResponse<{}>;
70
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/app/api/assistants/[assistantId]/tools/route.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAuB,CAAA;AAEvC,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwB,CAAA;AAEzC,eAAO,MAAM,OAAO,8CAAiB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { prisma } from '../../../../../lib/prisma';
2
+ import { buildGET, buildOPTIONS, buildPOST } from './buildRoute';
3
+ export const GET = buildGET({ prisma });
4
+ export const POST = buildPOST({ prisma });
5
+ export const OPTIONS = buildOPTIONS();
@@ -25,53 +25,53 @@ declare const createAssistantSchema: z.ZodEffects<z.ZodObject<{
25
25
  }>>;
26
26
  truncationLastMessagesCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27
27
  }, "strip", z.ZodTypeAny, {
28
- instructions: string;
29
- description: string;
30
- modelProviderId: string;
31
28
  storageProviderType: "OPENAI" | "AZURE_OPENAI" | "SUPERINTERFACE_CLOUD" | "OPENAI_RESPONSES" | "AZURE_RESPONSES" | "AZURE_AGENTS";
29
+ modelProviderId: string;
32
30
  model: string;
31
+ description: string;
32
+ instructions: string;
33
33
  codeInterpreterEnabled: boolean;
34
34
  fileSearchEnabled: boolean;
35
+ storageProviderAssistantId?: string | null | undefined;
35
36
  name?: string | undefined;
36
37
  truncationType?: "AUTO" | "LAST_MESSAGES" | "DISABLED" | undefined;
37
38
  truncationLastMessagesCount?: number | null | undefined;
38
- storageProviderAssistantId?: string | null | undefined;
39
39
  }, {
40
- modelProviderId: string;
41
40
  storageProviderType: "OPENAI" | "AZURE_OPENAI" | "SUPERINTERFACE_CLOUD" | "OPENAI_RESPONSES" | "AZURE_RESPONSES" | "AZURE_AGENTS";
41
+ modelProviderId: string;
42
42
  model: string;
43
+ storageProviderAssistantId?: string | null | undefined;
43
44
  name?: string | undefined;
44
- instructions?: string | undefined;
45
45
  description?: string | undefined;
46
- truncationType?: "AUTO" | "LAST_MESSAGES" | "DISABLED" | undefined;
47
- truncationLastMessagesCount?: number | null | undefined;
48
- storageProviderAssistantId?: string | null | undefined;
46
+ instructions?: string | undefined;
49
47
  codeInterpreterEnabled?: boolean | undefined;
50
48
  fileSearchEnabled?: boolean | undefined;
49
+ truncationType?: "AUTO" | "LAST_MESSAGES" | "DISABLED" | undefined;
50
+ truncationLastMessagesCount?: number | null | undefined;
51
51
  }>, {
52
- instructions: string;
53
- description: string;
54
- modelProviderId: string;
55
52
  storageProviderType: "OPENAI" | "AZURE_OPENAI" | "SUPERINTERFACE_CLOUD" | "OPENAI_RESPONSES" | "AZURE_RESPONSES" | "AZURE_AGENTS";
53
+ modelProviderId: string;
56
54
  model: string;
55
+ description: string;
56
+ instructions: string;
57
57
  codeInterpreterEnabled: boolean;
58
58
  fileSearchEnabled: boolean;
59
+ storageProviderAssistantId?: string | null | undefined;
59
60
  name?: string | undefined;
60
61
  truncationType?: "AUTO" | "LAST_MESSAGES" | "DISABLED" | undefined;
61
62
  truncationLastMessagesCount?: number | null | undefined;
62
- storageProviderAssistantId?: string | null | undefined;
63
63
  }, {
64
- modelProviderId: string;
65
64
  storageProviderType: "OPENAI" | "AZURE_OPENAI" | "SUPERINTERFACE_CLOUD" | "OPENAI_RESPONSES" | "AZURE_RESPONSES" | "AZURE_AGENTS";
65
+ modelProviderId: string;
66
66
  model: string;
67
+ storageProviderAssistantId?: string | null | undefined;
67
68
  name?: string | undefined;
68
- instructions?: string | undefined;
69
69
  description?: string | undefined;
70
- truncationType?: "AUTO" | "LAST_MESSAGES" | "DISABLED" | undefined;
71
- truncationLastMessagesCount?: number | null | undefined;
72
- storageProviderAssistantId?: string | null | undefined;
70
+ instructions?: string | undefined;
73
71
  codeInterpreterEnabled?: boolean | undefined;
74
72
  fileSearchEnabled?: boolean | undefined;
73
+ truncationType?: "AUTO" | "LAST_MESSAGES" | "DISABLED" | undefined;
74
+ truncationLastMessagesCount?: number | null | undefined;
75
75
  }>;
76
76
  export declare const buildGET: ({ prisma }: {
77
77
  prisma: PrismaClient;
@@ -1 +1 @@
1
- {"version":3,"file":"buildRoute.d.ts","sourceRoot":"","sources":["../../../../src/app/api/assistants/buildRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCvB,CAAA;AAEJ,eAAO,MAAM,QAAQ,GAClB,YAAY;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CpC,CAAA;AAEH,eAAO,MAAM,SAAS,GACnB,YAAY;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,MAC9B,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGtB,CAAA;AAEH,eAAO,MAAM,YAAY,8BAMtB,CAAA;AAEH,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
1
+ {"version":3,"file":"buildRoute.d.ts","sourceRoot":"","sources":["../../../../src/app/api/assistants/buildRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCvB,CAAA;AAEJ,eAAO,MAAM,QAAQ,GAClB,YAAY;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CpC,CAAA;AAEH,eAAO,MAAM,SAAS,GACnB,YAAY;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,MAC9B,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2GtB,CAAA;AAEH,eAAO,MAAM,YAAY,8BAMtB,CAAA;AAEH,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
@@ -99,7 +99,9 @@ export const buildPOST = ({ prisma }) => async (request) => {
99
99
  ? { azureAgentsAgentId: storageProviderAssistantId !== null && storageProviderAssistantId !== void 0 ? storageProviderAssistantId : null }
100
100
  : storageProviderType === StorageProviderType.AZURE_RESPONSES
101
101
  ? { azureResponsesAgentName: storageProviderAssistantId !== null && storageProviderAssistantId !== void 0 ? storageProviderAssistantId : null }
102
- : { openaiAssistantId: storageProviderAssistantId !== null && storageProviderAssistantId !== void 0 ? storageProviderAssistantId : null })), (truncationType !== undefined && { truncationType })), (truncationLastMessagesCount !== undefined && { truncationLastMessagesCount })), { tools: {
102
+ : { openaiAssistantId: storageProviderAssistantId !== null && storageProviderAssistantId !== void 0 ? storageProviderAssistantId : null })), (truncationType !== undefined && { truncationType })), (truncationLastMessagesCount !== undefined && {
103
+ truncationLastMessagesCount,
104
+ })), { tools: {
103
105
  create: [
104
106
  ...(fileSearchEnabled
105
107
  ? [
@@ -0,0 +1,16 @@
1
+ import { ModelProviderType, StorageProviderType, ToolType } from '@prisma/client';
2
+ export type ToolConfigAvailability = {
3
+ modelProviderType: ModelProviderType;
4
+ storageProviderType: StorageProviderType;
5
+ };
6
+ export type ToolConfig = {
7
+ type: ToolType;
8
+ availabilities: ToolConfigAvailability[];
9
+ };
10
+ export declare const toolConfigs: ToolConfig[];
11
+ export declare const isToolConfigAvailable: ({ toolType, modelProviderType, storageProviderType, }: {
12
+ toolType: ToolType;
13
+ modelProviderType: ModelProviderType;
14
+ storageProviderType: StorageProviderType;
15
+ }) => boolean;
16
+ //# sourceMappingURL=isToolConfigAvailable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isToolConfigAvailable.d.ts","sourceRoot":"","sources":["../../../src/lib/tools/isToolConfigAvailable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAEvB,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,mBAAmB,EAAE,mBAAmB,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAA;IACd,cAAc,EAAE,sBAAsB,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,UAAU,EAsGnC,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,uDAInC;IACD,QAAQ,EAAE,QAAQ,CAAA;IAClB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,mBAAmB,EAAE,mBAAmB,CAAA;CACzC,KAAG,OASH,CAAA"}
@@ -0,0 +1,111 @@
1
+ import { ModelProviderType, StorageProviderType, ToolType, } from '@prisma/client';
2
+ export const toolConfigs = [
3
+ {
4
+ type: ToolType.WEB_SEARCH,
5
+ availabilities: [
6
+ {
7
+ modelProviderType: ModelProviderType.ANTHROPIC,
8
+ storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,
9
+ },
10
+ {
11
+ modelProviderType: ModelProviderType.OPENAI,
12
+ storageProviderType: StorageProviderType.OPENAI_RESPONSES,
13
+ },
14
+ {
15
+ modelProviderType: ModelProviderType.AZURE_OPENAI,
16
+ storageProviderType: StorageProviderType.AZURE_RESPONSES,
17
+ },
18
+ ],
19
+ },
20
+ {
21
+ type: ToolType.FILE_SEARCH,
22
+ availabilities: [
23
+ {
24
+ modelProviderType: ModelProviderType.OPENAI,
25
+ storageProviderType: StorageProviderType.OPENAI_RESPONSES,
26
+ },
27
+ {
28
+ modelProviderType: ModelProviderType.AZURE_OPENAI,
29
+ storageProviderType: StorageProviderType.AZURE_RESPONSES,
30
+ },
31
+ {
32
+ modelProviderType: ModelProviderType.OPENAI,
33
+ storageProviderType: StorageProviderType.OPENAI,
34
+ },
35
+ {
36
+ modelProviderType: ModelProviderType.AZURE_OPENAI,
37
+ storageProviderType: StorageProviderType.AZURE_OPENAI,
38
+ },
39
+ {
40
+ modelProviderType: ModelProviderType.AZURE_AI_PROJECT,
41
+ storageProviderType: StorageProviderType.AZURE_AGENTS,
42
+ },
43
+ ],
44
+ },
45
+ {
46
+ type: ToolType.IMAGE_GENERATION,
47
+ availabilities: [
48
+ {
49
+ modelProviderType: ModelProviderType.OPENAI,
50
+ storageProviderType: StorageProviderType.OPENAI_RESPONSES,
51
+ },
52
+ {
53
+ modelProviderType: ModelProviderType.AZURE_OPENAI,
54
+ storageProviderType: StorageProviderType.AZURE_RESPONSES,
55
+ },
56
+ ],
57
+ },
58
+ {
59
+ type: ToolType.COMPUTER_USE,
60
+ availabilities: [
61
+ {
62
+ modelProviderType: ModelProviderType.ANTHROPIC,
63
+ storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,
64
+ },
65
+ {
66
+ modelProviderType: ModelProviderType.OPENAI,
67
+ storageProviderType: StorageProviderType.OPENAI_RESPONSES,
68
+ },
69
+ {
70
+ modelProviderType: ModelProviderType.AZURE_OPENAI,
71
+ storageProviderType: StorageProviderType.AZURE_RESPONSES,
72
+ },
73
+ ],
74
+ },
75
+ {
76
+ type: ToolType.CODE_INTERPRETER,
77
+ availabilities: [
78
+ {
79
+ modelProviderType: ModelProviderType.ANTHROPIC,
80
+ storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,
81
+ },
82
+ {
83
+ modelProviderType: ModelProviderType.OPENAI,
84
+ storageProviderType: StorageProviderType.OPENAI_RESPONSES,
85
+ },
86
+ {
87
+ modelProviderType: ModelProviderType.AZURE_OPENAI,
88
+ storageProviderType: StorageProviderType.AZURE_RESPONSES,
89
+ },
90
+ {
91
+ modelProviderType: ModelProviderType.OPENAI,
92
+ storageProviderType: StorageProviderType.OPENAI,
93
+ },
94
+ {
95
+ modelProviderType: ModelProviderType.AZURE_OPENAI,
96
+ storageProviderType: StorageProviderType.AZURE_OPENAI,
97
+ },
98
+ {
99
+ modelProviderType: ModelProviderType.AZURE_AI_PROJECT,
100
+ storageProviderType: StorageProviderType.AZURE_AGENTS,
101
+ },
102
+ ],
103
+ },
104
+ ];
105
+ export const isToolConfigAvailable = ({ toolType, modelProviderType, storageProviderType, }) => {
106
+ const toolConfig = toolConfigs.find((config) => config.type === toolType);
107
+ if (!toolConfig)
108
+ return false;
109
+ return toolConfig.availabilities.some((availability) => availability.modelProviderType === modelProviderType &&
110
+ availability.storageProviderType === storageProviderType);
111
+ };
@@ -0,0 +1,39 @@
1
+ import { Prisma } from '@prisma/client';
2
+ export declare const toolInclude: {
3
+ readonly fileSearchTool: true;
4
+ readonly webSearchTool: true;
5
+ readonly codeInterpreterTool: true;
6
+ readonly imageGenerationTool: true;
7
+ readonly computerUseTool: true;
8
+ };
9
+ export declare const serializeApiTool: ({ tool, }: {
10
+ tool: Prisma.ToolGetPayload<{
11
+ include: typeof toolInclude;
12
+ }>;
13
+ }) => {
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ computerUseTool?: {
17
+ displayWidth: number;
18
+ displayHeight: number;
19
+ environment: import("@prisma/client").$Enums.ComputerUseToolEnvironment;
20
+ mcpServerId: string | null;
21
+ } | undefined;
22
+ imageGenerationTool?: {
23
+ model: string;
24
+ quality: import("@prisma/client").$Enums.ImageGenerationToolQuality;
25
+ size: import("@prisma/client").$Enums.ImageGenerationToolSize;
26
+ outputFormat: import("@prisma/client").$Enums.ImageGenerationToolOutputFormat;
27
+ background: import("@prisma/client").$Enums.ImageGenerationToolBackground;
28
+ partialImages: number;
29
+ } | undefined;
30
+ codeInterpreterTool?: {} | undefined;
31
+ webSearchTool?: {} | undefined;
32
+ fileSearchTool?: {
33
+ vectorStoreIds: string[];
34
+ maxNumResults: number;
35
+ } | undefined;
36
+ id: string;
37
+ type: import("@prisma/client").$Enums.ToolType;
38
+ };
39
+ //# sourceMappingURL=serializeApiTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeApiTool.d.ts","sourceRoot":"","sources":["../../../src/lib/tools/serializeApiTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,eAAO,MAAM,WAAW;;;;;;CAMd,CAAA;AAEV,eAAO,MAAM,gBAAgB,GAAI,WAE9B;IACD,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC;QAC1B,OAAO,EAAE,OAAO,WAAW,CAAA;KAC5B,CAAC,CAAA;CACH;;;;;;;;;;;;;;;;;;;;;;;;;CAqCC,CAAA"}
@@ -0,0 +1,35 @@
1
+ export const toolInclude = {
2
+ fileSearchTool: true,
3
+ webSearchTool: true,
4
+ codeInterpreterTool: true,
5
+ imageGenerationTool: true,
6
+ computerUseTool: true,
7
+ };
8
+ export const serializeApiTool = ({ tool, }) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ id: tool.id, type: tool.type }, (tool.fileSearchTool
9
+ ? {
10
+ fileSearchTool: {
11
+ vectorStoreIds: tool.fileSearchTool.vectorStoreIds,
12
+ maxNumResults: tool.fileSearchTool.maxNumResults,
13
+ },
14
+ }
15
+ : {})), (tool.webSearchTool ? { webSearchTool: {} } : {})), (tool.codeInterpreterTool ? { codeInterpreterTool: {} } : {})), (tool.imageGenerationTool
16
+ ? {
17
+ imageGenerationTool: {
18
+ model: tool.imageGenerationTool.model,
19
+ quality: tool.imageGenerationTool.quality,
20
+ size: tool.imageGenerationTool.size,
21
+ outputFormat: tool.imageGenerationTool.outputFormat,
22
+ background: tool.imageGenerationTool.background,
23
+ partialImages: tool.imageGenerationTool.partialImages,
24
+ },
25
+ }
26
+ : {})), (tool.computerUseTool
27
+ ? {
28
+ computerUseTool: {
29
+ displayWidth: tool.computerUseTool.displayWidth,
30
+ displayHeight: tool.computerUseTool.displayHeight,
31
+ environment: tool.computerUseTool.environment,
32
+ mcpServerId: tool.computerUseTool.mcpServerId,
33
+ },
34
+ }
35
+ : {})), { createdAt: tool.createdAt.toISOString(), updatedAt: tool.updatedAt.toISOString() }));