@superinterface/server 1.8.0 → 1.8.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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/eslint/.cache_btwyo7 +1 -1
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/chunks/[root-of-the-server]__8b8c4831._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__8b8c4831._.js.map +1 -1
- package/.next/server/chunks/supercorp_superinterface_bebd2c96._.js +2 -2
- package/.next/server/chunks/supercorp_superinterface_bebd2c96._.js.map +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/trace +1 -1
- package/dist/lib/tools/isToolConfigAvailable.d.ts.map +1 -1
- package/dist/lib/tools/isToolConfigAvailable.js +4 -0
- package/dist/lib/tools/tools/index.d.ts.map +1 -1
- package/dist/lib/tools/tools/index.js +10 -0
- package/package.json +1 -1
- /package/.next/static/{EWWhjkX2NvZuANjv-sbo9 → qj0XNFXbn5eTu0bugH0ZR}/_buildManifest.js +0 -0
- /package/.next/static/{EWWhjkX2NvZuANjv-sbo9 → qj0XNFXbn5eTu0bugH0ZR}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{EWWhjkX2NvZuANjv-sbo9 → qj0XNFXbn5eTu0bugH0ZR}/_ssgManifest.js +0 -0
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"ampDevFiles": [],
|
|
16
16
|
"polyfillFiles": [],
|
|
17
17
|
"lowPriorityFiles": [
|
|
18
|
-
"static/
|
|
19
|
-
"static/
|
|
18
|
+
"static/qj0XNFXbn5eTu0bugH0ZR/_ssgManifest.js",
|
|
19
|
+
"static/qj0XNFXbn5eTu0bugH0ZR/_buildManifest.js"
|
|
20
20
|
],
|
|
21
21
|
"rootMainFiles": [],
|
|
22
22
|
"ampFirstPages": []
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--qj0XNFXbn5eTu0bugH0ZR--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/76a8a50dbf44f000.js"/><script src="/_next/static/chunks/22375ab8b973caf2.js" async=""></script><script src="/_next/static/chunks/f1fd2298c8f33610.js" async=""></script><script src="/_next/static/chunks/turbopack-ecd75a8101638a7b.js" async=""></script><script src="/_next/static/chunks/03d938d038bc30e3.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/76a8a50dbf44f000.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[96352,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"default\"]\n3:I[17753,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"default\"]\n4:I[51035,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"OutletBoundary\"]\n6:I[33159,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"AsyncMetadataOutlet\"]\n8:I[51035,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"ViewportBoundary\"]\na:I[51035,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[25098,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"qj0XNFXbn5eTu0bugH0ZR\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/03d938d038bc30e3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],null],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
a:I[51035,["/_next/static/chunks/03d938d038bc30e3.js"],"MetadataBoundary"]
|
|
8
8
|
b:"$Sreact.suspense"
|
|
9
9
|
d:I[25098,["/_next/static/chunks/03d938d038bc30e3.js"],"default"]
|
|
10
|
-
0:{"P":null,"b":"
|
|
10
|
+
0:{"P":null,"b":"qj0XNFXbn5eTu0bugH0ZR","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/03d938d038bc30e3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$L5",["$","$L6",null,{"promise":"$@7"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$L8",null,{"children":"$L9"}],null],["$","$La",null,{"children":["$","div",null,{"hidden":true,"children":["$","$b",null,{"fallback":null,"children":"$Lc"}]}]}]]}],false]],"m":"$undefined","G":["$d","$undefined"],"s":false,"S":true}
|
|
11
11
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
12
12
|
5:null
|
|
13
13
|
7:{"metadata":[],"error":null,"digest":"$undefined"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--qj0XNFXbn5eTu0bugH0ZR--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/76a8a50dbf44f000.js"/><script src="/_next/static/chunks/22375ab8b973caf2.js" async=""></script><script src="/_next/static/chunks/f1fd2298c8f33610.js" async=""></script><script src="/_next/static/chunks/turbopack-ecd75a8101638a7b.js" async=""></script><script src="/_next/static/chunks/03d938d038bc30e3.js" async=""></script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div>@superinterface/server is running.</div><!--$--><!--/$--><script src="/_next/static/chunks/76a8a50dbf44f000.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[96352,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"default\"]\n3:I[17753,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"default\"]\n4:I[51035,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"OutletBoundary\"]\n6:I[33159,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"AsyncMetadataOutlet\"]\n8:I[51035,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"ViewportBoundary\"]\na:I[51035,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[25098,[\"/_next/static/chunks/03d938d038bc30e3.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"qj0XNFXbn5eTu0bugH0ZR\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/03d938d038bc30e3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"children\":\"@superinterface/server is running.\"}],null,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],null],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
a:I[51035,["/_next/static/chunks/03d938d038bc30e3.js"],"MetadataBoundary"]
|
|
8
8
|
b:"$Sreact.suspense"
|
|
9
9
|
d:I[25098,["/_next/static/chunks/03d938d038bc30e3.js"],"default"]
|
|
10
|
-
0:{"P":null,"b":"
|
|
10
|
+
0:{"P":null,"b":"qj0XNFXbn5eTu0bugH0ZR","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/03d938d038bc30e3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"children":"@superinterface/server is running."}],null,["$","$L4",null,{"children":["$L5",["$","$L6",null,{"promise":"$@7"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L8",null,{"children":"$L9"}],null],["$","$La",null,{"children":["$","div",null,{"hidden":true,"children":["$","$b",null,{"fallback":null,"children":"$Lc"}]}]}]]}],false]],"m":"$undefined","G":["$d",[]],"s":false,"S":true}
|
|
11
11
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
12
12
|
5:null
|
|
13
13
|
7:{"metadata":[],"error":null,"digest":"$undefined"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},30611,e=>{"use strict";e.s(["cacheHeaders",()=>r]);let r={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Requested-With, Accept"}},88122,e=>{"use strict";e.s(["getApiKey",()=>t]);var r=e.i(55897);let t=async({authorization:e,type:t,prisma:o})=>{if(!e)return null;let[,a]=e.split("Bearer ");return(0,r.validate)(a)?o.apiKey.findFirst({where:{type:t,value:a}}):null}},99281,98695,e=>{"use strict";e.s(["serializeApiTool",()=>t,"toolInclude",()=>r],99281);let r={fileSearchTool:!0,webSearchTool:!0,codeInterpreterTool:!0,imageGenerationTool:!0,computerUseTool:!0},t=({tool:e})=>({id:e.id,type:e.type,...e.fileSearchTool?{fileSearchTool:{vectorStoreIds:e.fileSearchTool.vectorStoreIds,maxNumResults:e.fileSearchTool.maxNumResults}}:{},...e.webSearchTool?{webSearchTool:{}}:{},...e.codeInterpreterTool?{codeInterpreterTool:{}}:{},...e.imageGenerationTool?{imageGenerationTool:{model:e.imageGenerationTool.model,quality:e.imageGenerationTool.quality,size:e.imageGenerationTool.size,outputFormat:e.imageGenerationTool.outputFormat,background:e.imageGenerationTool.background,partialImages:e.imageGenerationTool.partialImages}}:{},...e.computerUseTool?{computerUseTool:{displayWidth:e.computerUseTool.displayWidth,displayHeight:e.computerUseTool.displayHeight,environment:e.computerUseTool.environment,mcpServerId:e.computerUseTool.mcpServerId}}:{},createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()});e.s(["toolSchema",()=>l,"updateToolSchema",()=>d],98695);var o=e.i(29173),a=e.i(13669);let i=a.z.object({vectorStoreIds:a.z.array(a.z.string()),maxNumResults:a.z.number().int().positive()}),s=a.z.object({model:a.z.string().optional(),quality:a.z.nativeEnum(o.ImageGenerationToolQuality).optional(),size:a.z.nativeEnum(o.ImageGenerationToolSize).optional(),outputFormat:a.z.nativeEnum(o.ImageGenerationToolOutputFormat).optional(),background:a.z.nativeEnum(o.ImageGenerationToolBackground).optional(),partialImages:a.z.number().int().min(0).optional()}),n=a.z.object({displayWidth:a.z.number().int().min(640).max(4096),displayHeight:a.z.number().int().min(480).max(4096),environment:a.z.nativeEnum(o.ComputerUseToolEnvironment).optional(),mcpServerId:a.z.string().uuid().nullable().optional()}),l=a.z.object({type:a.z.nativeEnum(o.ToolType),fileSearchTool:i.optional(),imageGenerationTool:s.optional(),computerUseTool:n.optional()}).superRefine((e,r)=>{if(e.type===o.ToolType.FILE_SEARCH&&e.fileSearchTool){let t=i.safeParse(e.fileSearchTool);t.success||t.error.issues.forEach(e=>r.addIssue({...e,path:["fileSearchTool",...e.path]}))}if(e.type===o.ToolType.IMAGE_GENERATION&&e.imageGenerationTool){let t=s.safeParse(e.imageGenerationTool);t.success||t.error.issues.forEach(e=>r.addIssue({...e,path:["imageGenerationTool",...e.path]}))}if(e.type===o.ToolType.COMPUTER_USE&&e.computerUseTool){let t=n.safeParse(e.computerUseTool);t.success||t.error.issues.forEach(e=>r.addIssue({...e,path:["computerUseTool",...e.path]}))}}),d=a.z.object({fileSearchTool:i.optional(),imageGenerationTool:s.optional(),computerUseTool:n.optional()}).superRefine((e,r)=>{if(e.fileSearchTool){let t=i.safeParse(e.fileSearchTool);t.success||t.error.issues.forEach(e=>r.addIssue({...e,path:["fileSearchTool",...e.path]}))}if(e.imageGenerationTool){let t=s.safeParse(e.imageGenerationTool);t.success||t.error.issues.forEach(e=>r.addIssue({...e,path:["imageGenerationTool",...e.path]}))}if(e.computerUseTool){let t=n.safeParse(e.computerUseTool);t.success||t.error.issues.forEach(e=>r.addIssue({...e,path:["computerUseTool",...e.path]}))}})},36845,e=>{"use strict";e.s([])},84516,e=>{"use strict";e.s(["handler",()=>j,"patchFetch",()=>M,"routeModule",()=>w,"serverHooks",()=>b,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>_],84516);var r=e.i(78243),t=e.i(43877),o=e.i(77767),a=e.i(92562),i=e.i(66256),s=e.i(5270),n=e.i(90231),l=e.i(82677),d=e.i(51081),p=e.i(89822),u=e.i(9124),c=e.i(39147),T=e.i(40568),y=e.i(87188),v=e.i(93695);e.i(57132);var E=e.i(80739);e.s(["GET",()=>N,"OPTIONS",()=>O,"POST",()=>x],96237);var P=e.i(24493),m=e.i(49493),R=e.i(29173),g=e.i(11053),h=e.i(30611),S=e.i(88122),A=e.i(99281),I=e.i(98695);let f=[{type:R.ToolType.WEB_SEARCH,availabilities:[{modelProviderType:R.ModelProviderType.ANTHROPIC,storageProviderType:R.StorageProviderType.SUPERINTERFACE_CLOUD},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES}]},{type:R.ToolType.FILE_SEARCH,availabilities:[{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_OPENAI},{modelProviderType:R.ModelProviderType.AZURE_AI_PROJECT,storageProviderType:R.StorageProviderType.AZURE_AGENTS}]},{type:R.ToolType.IMAGE_GENERATION,availabilities:[{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES}]},{type:R.ToolType.COMPUTER_USE,availabilities:[{modelProviderType:R.ModelProviderType.ANTHROPIC,storageProviderType:R.StorageProviderType.SUPERINTERFACE_CLOUD},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES}]},{type:R.ToolType.CODE_INTERPRETER,availabilities:[{modelProviderType:R.ModelProviderType.ANTHROPIC,storageProviderType:R.StorageProviderType.SUPERINTERFACE_CLOUD},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_OPENAI},{modelProviderType:R.ModelProviderType.AZURE_AI_PROJECT,storageProviderType:R.StorageProviderType.AZURE_AGENTS}]}],N=(({prisma:e})=>async(r,t)=>{let{assistantId:o}=await t.params,a=(await (0,g.headers)()).get("authorization");if(!a)return m.NextResponse.json({error:"No authorization header found"},{status:400});let i=await (0,S.getApiKey)({type:R.ApiKeyType.PRIVATE,authorization:a,prisma:e});if(!i)return m.NextResponse.json({error:"Invalid api key"},{status:400});let s=await e.assistant.findFirst({where:{id:o,workspaceId:i.workspaceId},include:{tools:{include:A.toolInclude,orderBy:{createdAt:"desc"}}}});return s?m.NextResponse.json({tools:s.tools.map(e=>(0,A.serializeApiTool)({tool:e}))},{headers:h.cacheHeaders}):m.NextResponse.json({error:"No assistant found"},{status:400})})({prisma:P.prisma}),x=(({prisma:e})=>async(r,t)=>{let{assistantId:o}=await t.params,a=(await (0,g.headers)()).get("authorization");if(!a)return m.NextResponse.json({error:"No authorization header found"},{status:400});let i=await (0,S.getApiKey)({authorization:a,type:R.ApiKeyType.PRIVATE,prisma:e});if(!i)return m.NextResponse.json({error:"Invalid api key"},{status:400});let s=await e.assistant.findFirst({where:{id:o,workspaceId:i.workspaceId},include:{modelProvider:!0}});if(!s)return m.NextResponse.json({error:"No assistant found"},{status:400});let n=await r.json(),l=I.toolSchema.safeParse(n);if(!l.success)return console.error("Tool creation error:",l.error),m.NextResponse.json({error:"Invalid payload"},{status:400});let{type:d}=l.data;if(!(({toolType:e,modelProviderType:r,storageProviderType:t})=>{let o=f.find(r=>r.type===e);return!!o&&o.availabilities.some(e=>e.modelProviderType===r&&e.storageProviderType===t)})({toolType:d,modelProviderType:s.modelProvider.type,storageProviderType:s.storageProviderType}))return m.NextResponse.json({error:`Tool type ${d} is not available for this assistant's provider configuration`},{status:400});let p={};d===R.ToolType.FILE_SEARCH?p.fileSearchTool={create:l.data.fileSearchTool??{}}:d===R.ToolType.WEB_SEARCH?p.webSearchTool={create:{}}:d===R.ToolType.CODE_INTERPRETER?p.codeInterpreterTool={create:{}}:d===R.ToolType.IMAGE_GENERATION?p.imageGenerationTool={create:l.data.imageGenerationTool??{}}:d===R.ToolType.COMPUTER_USE&&(p.computerUseTool={create:l.data.computerUseTool??{}});let u=await e.tool.create({data:{type:d,assistantId:s.id,...p},include:A.toolInclude});return m.NextResponse.json({tool:(0,A.serializeApiTool)({tool:u})},{headers:h.cacheHeaders})})({prisma:P.prisma}),O=()=>m.NextResponse.json({},{headers:h.cacheHeaders});var U=e.i(96237);let w=new r.AppRouteRouteModule({definition:{kind:t.RouteKind.APP_ROUTE,page:"/api/assistants/[assistantId]/tools/route",pathname:"/api/assistants/[assistantId]/tools",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/route.ts",nextConfigOutput:"",userland:U}),{workAsyncStorage:C,workUnitAsyncStorage:_,serverHooks:b}=w;function M(){return(0,o.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:_})}async function j(e,r,o){var P;let m="/api/assistants/[assistantId]/tools/route";m=m.replace(/\/index$/,"")||"/";let R=await w.prepare(e,r,{srcPage:m,multiZoneDraftMode:!1});if(!R)return r.statusCode=400,r.end("Bad Request"),null==o.waitUntil||o.waitUntil.call(o,Promise.resolve()),null;let{buildId:g,params:h,nextConfig:S,isDraftMode:A,prerenderManifest:I,routerServerContext:f,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:O}=R,U=(0,s.normalizeAppPath)(m),C=!!(I.dynamicRoutes[U]||I.routes[O]);if(C&&!A){let e=!!I.routes[O],r=I.dynamicRoutes[U];if(r&&!1===r.fallback&&!e)throw new v.NoFallbackError}let _=null;!C||w.isDev||A||(_="/index"===(_=O)?"/":_);let b=!0===w.isDev||!C,M=C&&!b,j=e.method||"GET",G=(0,i.getTracer)(),H=G.getActiveScopeSpan(),k={params:h,prerenderManifest:I,renderOpts:{experimental:{cacheComponents:!!S.experimental.cacheComponents,authInterrupts:!!S.experimental.authInterrupts},supportsDynamicResponse:b,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:null==(P=S.experimental)?void 0:P.cacheLife,isRevalidate:M,waitUntil:o.waitUntil,onClose:e=>{r.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(r,t,o)=>w.onRequestError(e,r,o,f)},sharedContext:{buildId:g}},z=new n.NodeNextRequest(e),q=new n.NodeNextResponse(r),F=l.NextRequestAdapter.fromNodeNextRequest(z,(0,l.signalFromNodeResponse)(r));try{let s=async t=>w.handle(F,k).finally(()=>{if(!t)return;t.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let o=G.getRootSpanAttributes();if(!o)return;if(o.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${o.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=o.get("next.route");if(a){let e=`${j} ${a}`;t.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),t.updateName(e)}else t.updateName(`${j} ${e.url}`)}),n=async i=>{var n,l;let d=async({previousCacheEntry:t})=>{try{if(!(0,a.getRequestMeta)(e,"minimalMode")&&N&&x&&!t)return r.statusCode=404,r.setHeader("x-nextjs-cache","REVALIDATED"),r.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=k.renderOpts.fetchMetrics;let l=k.renderOpts.pendingWaitUntil;l&&o.waitUntil&&(o.waitUntil(l),l=void 0);let d=k.renderOpts.collectedTags;if(!C)return await (0,u.sendResponse)(z,q,n,k.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),r=(0,c.toNodeOutgoingHttpHeaders)(n.headers);d&&(r[y.NEXT_CACHE_TAGS_HEADER]=d),!r["content-type"]&&e.type&&(r["content-type"]=e.type);let t=void 0!==k.renderOpts.collectedRevalidate&&!(k.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&k.renderOpts.collectedRevalidate,o=void 0===k.renderOpts.collectedExpire||k.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:k.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:r},cacheControl:{revalidate:t,expire:o}}}}catch(r){throw(null==t?void 0:t.isStale)&&await w.onRequestError(e,r,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isRevalidate:M,isOnDemandRevalidate:N})},f),r}},v=await w.handleResponse({req:e,nextConfig:S,cacheKey:_,routeKind:t.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:o.waitUntil});if(!C)return null;if((null==v||null==(n=v.value)?void 0:n.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==v||null==(l=v.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,a.getRequestMeta)(e,"minimalMode")||r.setHeader("x-nextjs-cache",N?"REVALIDATED":v.isMiss?"MISS":v.isStale?"STALE":"HIT"),A&&r.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let P=(0,c.fromNodeOutgoingHttpHeaders)(v.value.headers);return(0,a.getRequestMeta)(e,"minimalMode")&&C||P.delete(y.NEXT_CACHE_TAGS_HEADER),!v.cacheControl||r.getHeader("Cache-Control")||P.get("Cache-Control")||P.set("Cache-Control",(0,T.getCacheControlHeader)(v.cacheControl)),await (0,u.sendResponse)(z,q,new Response(v.value.body,{headers:P,status:v.value.status||200})),null};H?await n(H):await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${e.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},n))}catch(r){if(r instanceof v.NoFallbackError||await w.onRequestError(e,r,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isRevalidate:M,isOnDemandRevalidate:N})}),C)throw r;return await (0,u.sendResponse)(z,q,new Response(null,{status:500})),null}}}];
|
|
1
|
+
module.exports=[18622,(e,r,o)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,r,o)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,o)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,r,o)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(e,r,o)=>{r.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},93695,(e,r,o)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},30611,e=>{"use strict";e.s(["cacheHeaders",()=>r]);let r={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Requested-With, Accept"}},88122,e=>{"use strict";e.s(["getApiKey",()=>o]);var r=e.i(55897);let o=async({authorization:e,type:o,prisma:t})=>{if(!e)return null;let[,a]=e.split("Bearer ");return(0,r.validate)(a)?t.apiKey.findFirst({where:{type:o,value:a}}):null}},99281,98695,e=>{"use strict";e.s(["serializeApiTool",()=>o,"toolInclude",()=>r],99281);let r={fileSearchTool:!0,webSearchTool:!0,codeInterpreterTool:!0,imageGenerationTool:!0,computerUseTool:!0},o=({tool:e})=>({id:e.id,type:e.type,...e.fileSearchTool?{fileSearchTool:{vectorStoreIds:e.fileSearchTool.vectorStoreIds,maxNumResults:e.fileSearchTool.maxNumResults}}:{},...e.webSearchTool?{webSearchTool:{}}:{},...e.codeInterpreterTool?{codeInterpreterTool:{}}:{},...e.imageGenerationTool?{imageGenerationTool:{model:e.imageGenerationTool.model,quality:e.imageGenerationTool.quality,size:e.imageGenerationTool.size,outputFormat:e.imageGenerationTool.outputFormat,background:e.imageGenerationTool.background,partialImages:e.imageGenerationTool.partialImages}}:{},...e.computerUseTool?{computerUseTool:{displayWidth:e.computerUseTool.displayWidth,displayHeight:e.computerUseTool.displayHeight,environment:e.computerUseTool.environment,mcpServerId:e.computerUseTool.mcpServerId}}:{},createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()});e.s(["toolSchema",()=>l,"updateToolSchema",()=>d],98695);var t=e.i(29173),a=e.i(13669);let i=a.z.object({vectorStoreIds:a.z.array(a.z.string()),maxNumResults:a.z.number().int().positive()}),s=a.z.object({model:a.z.string().optional(),quality:a.z.nativeEnum(t.ImageGenerationToolQuality).optional(),size:a.z.nativeEnum(t.ImageGenerationToolSize).optional(),outputFormat:a.z.nativeEnum(t.ImageGenerationToolOutputFormat).optional(),background:a.z.nativeEnum(t.ImageGenerationToolBackground).optional(),partialImages:a.z.number().int().min(0).optional()}),n=a.z.object({displayWidth:a.z.number().int().min(640).max(4096),displayHeight:a.z.number().int().min(480).max(4096),environment:a.z.nativeEnum(t.ComputerUseToolEnvironment).optional(),mcpServerId:a.z.string().uuid().nullable().optional()}),l=a.z.object({type:a.z.nativeEnum(t.ToolType),fileSearchTool:i.optional(),imageGenerationTool:s.optional(),computerUseTool:n.optional()}).superRefine((e,r)=>{if(e.type===t.ToolType.FILE_SEARCH&&e.fileSearchTool){let o=i.safeParse(e.fileSearchTool);o.success||o.error.issues.forEach(e=>r.addIssue({...e,path:["fileSearchTool",...e.path]}))}if(e.type===t.ToolType.IMAGE_GENERATION&&e.imageGenerationTool){let o=s.safeParse(e.imageGenerationTool);o.success||o.error.issues.forEach(e=>r.addIssue({...e,path:["imageGenerationTool",...e.path]}))}if(e.type===t.ToolType.COMPUTER_USE&&e.computerUseTool){let o=n.safeParse(e.computerUseTool);o.success||o.error.issues.forEach(e=>r.addIssue({...e,path:["computerUseTool",...e.path]}))}}),d=a.z.object({fileSearchTool:i.optional(),imageGenerationTool:s.optional(),computerUseTool:n.optional()}).superRefine((e,r)=>{if(e.fileSearchTool){let o=i.safeParse(e.fileSearchTool);o.success||o.error.issues.forEach(e=>r.addIssue({...e,path:["fileSearchTool",...e.path]}))}if(e.imageGenerationTool){let o=s.safeParse(e.imageGenerationTool);o.success||o.error.issues.forEach(e=>r.addIssue({...e,path:["imageGenerationTool",...e.path]}))}if(e.computerUseTool){let o=n.safeParse(e.computerUseTool);o.success||o.error.issues.forEach(e=>r.addIssue({...e,path:["computerUseTool",...e.path]}))}})},36845,e=>{"use strict";e.s([])},84516,e=>{"use strict";e.s(["handler",()=>j,"patchFetch",()=>M,"routeModule",()=>C,"serverHooks",()=>b,"workAsyncStorage",()=>_,"workUnitAsyncStorage",()=>w],84516);var r=e.i(78243),o=e.i(43877),t=e.i(77767),a=e.i(92562),i=e.i(66256),s=e.i(5270),n=e.i(90231),l=e.i(82677),d=e.i(51081),p=e.i(89822),u=e.i(9124),T=e.i(39147),c=e.i(40568),y=e.i(87188),v=e.i(93695);e.i(57132);var E=e.i(80739);e.s(["GET",()=>N,"OPTIONS",()=>O,"POST",()=>x],96237);var P=e.i(24493),m=e.i(49493),R=e.i(29173),g=e.i(11053),h=e.i(30611),S=e.i(88122),A=e.i(99281),I=e.i(98695);let f=[{type:R.ToolType.WEB_SEARCH,availabilities:[{modelProviderType:R.ModelProviderType.ANTHROPIC,storageProviderType:R.StorageProviderType.SUPERINTERFACE_CLOUD},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES}]},{type:R.ToolType.FILE_SEARCH,availabilities:[{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_OPENAI},{modelProviderType:R.ModelProviderType.AZURE_AI_PROJECT,storageProviderType:R.StorageProviderType.AZURE_AGENTS}]},{type:R.ToolType.IMAGE_GENERATION,availabilities:[{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES}]},{type:R.ToolType.COMPUTER_USE,availabilities:[{modelProviderType:R.ModelProviderType.ANTHROPIC,storageProviderType:R.StorageProviderType.SUPERINTERFACE_CLOUD},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES},{modelProviderType:R.ModelProviderType.OPEN_ROUTER,storageProviderType:R.StorageProviderType.SUPERINTERFACE_CLOUD}]},{type:R.ToolType.CODE_INTERPRETER,availabilities:[{modelProviderType:R.ModelProviderType.ANTHROPIC,storageProviderType:R.StorageProviderType.SUPERINTERFACE_CLOUD},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI_RESPONSES},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_RESPONSES},{modelProviderType:R.ModelProviderType.OPENAI,storageProviderType:R.StorageProviderType.OPENAI},{modelProviderType:R.ModelProviderType.AZURE_OPENAI,storageProviderType:R.StorageProviderType.AZURE_OPENAI},{modelProviderType:R.ModelProviderType.AZURE_AI_PROJECT,storageProviderType:R.StorageProviderType.AZURE_AGENTS}]}],N=(({prisma:e})=>async(r,o)=>{let{assistantId:t}=await o.params,a=(await (0,g.headers)()).get("authorization");if(!a)return m.NextResponse.json({error:"No authorization header found"},{status:400});let i=await (0,S.getApiKey)({type:R.ApiKeyType.PRIVATE,authorization:a,prisma:e});if(!i)return m.NextResponse.json({error:"Invalid api key"},{status:400});let s=await e.assistant.findFirst({where:{id:t,workspaceId:i.workspaceId},include:{tools:{include:A.toolInclude,orderBy:{createdAt:"desc"}}}});return s?m.NextResponse.json({tools:s.tools.map(e=>(0,A.serializeApiTool)({tool:e}))},{headers:h.cacheHeaders}):m.NextResponse.json({error:"No assistant found"},{status:400})})({prisma:P.prisma}),x=(({prisma:e})=>async(r,o)=>{let{assistantId:t}=await o.params,a=(await (0,g.headers)()).get("authorization");if(!a)return m.NextResponse.json({error:"No authorization header found"},{status:400});let i=await (0,S.getApiKey)({authorization:a,type:R.ApiKeyType.PRIVATE,prisma:e});if(!i)return m.NextResponse.json({error:"Invalid api key"},{status:400});let s=await e.assistant.findFirst({where:{id:t,workspaceId:i.workspaceId},include:{modelProvider:!0}});if(!s)return m.NextResponse.json({error:"No assistant found"},{status:400});let n=await r.json(),l=I.toolSchema.safeParse(n);if(!l.success)return console.error("Tool creation error:",l.error),m.NextResponse.json({error:"Invalid payload"},{status:400});let{type:d}=l.data;if(!(({toolType:e,modelProviderType:r,storageProviderType:o})=>{let t=f.find(r=>r.type===e);return!!t&&t.availabilities.some(e=>e.modelProviderType===r&&e.storageProviderType===o)})({toolType:d,modelProviderType:s.modelProvider.type,storageProviderType:s.storageProviderType}))return m.NextResponse.json({error:`Tool type ${d} is not available for this assistant's provider configuration`},{status:400});let p={};d===R.ToolType.FILE_SEARCH?p.fileSearchTool={create:l.data.fileSearchTool??{}}:d===R.ToolType.WEB_SEARCH?p.webSearchTool={create:{}}:d===R.ToolType.CODE_INTERPRETER?p.codeInterpreterTool={create:{}}:d===R.ToolType.IMAGE_GENERATION?p.imageGenerationTool={create:l.data.imageGenerationTool??{}}:d===R.ToolType.COMPUTER_USE&&(p.computerUseTool={create:l.data.computerUseTool??{}});let u=await e.tool.create({data:{type:d,assistantId:s.id,...p},include:A.toolInclude});return m.NextResponse.json({tool:(0,A.serializeApiTool)({tool:u})},{headers:h.cacheHeaders})})({prisma:P.prisma}),O=()=>m.NextResponse.json({},{headers:h.cacheHeaders});var U=e.i(96237);let C=new r.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/assistants/[assistantId]/tools/route",pathname:"/api/assistants/[assistantId]/tools",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/route.ts",nextConfigOutput:"",userland:U}),{workAsyncStorage:_,workUnitAsyncStorage:w,serverHooks:b}=C;function M(){return(0,t.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:w})}async function j(e,r,t){var P;let m="/api/assistants/[assistantId]/tools/route";m=m.replace(/\/index$/,"")||"/";let R=await C.prepare(e,r,{srcPage:m,multiZoneDraftMode:!1});if(!R)return r.statusCode=400,r.end("Bad Request"),null==t.waitUntil||t.waitUntil.call(t,Promise.resolve()),null;let{buildId:g,params:h,nextConfig:S,isDraftMode:A,prerenderManifest:I,routerServerContext:f,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:O}=R,U=(0,s.normalizeAppPath)(m),_=!!(I.dynamicRoutes[U]||I.routes[O]);if(_&&!A){let e=!!I.routes[O],r=I.dynamicRoutes[U];if(r&&!1===r.fallback&&!e)throw new v.NoFallbackError}let w=null;!_||C.isDev||A||(w="/index"===(w=O)?"/":w);let b=!0===C.isDev||!_,M=_&&!b,j=e.method||"GET",G=(0,i.getTracer)(),H=G.getActiveScopeSpan(),k={params:h,prerenderManifest:I,renderOpts:{experimental:{cacheComponents:!!S.experimental.cacheComponents,authInterrupts:!!S.experimental.authInterrupts},supportsDynamicResponse:b,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:null==(P=S.experimental)?void 0:P.cacheLife,isRevalidate:M,waitUntil:t.waitUntil,onClose:e=>{r.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(r,o,t)=>C.onRequestError(e,r,t,f)},sharedContext:{buildId:g}},z=new n.NodeNextRequest(e),q=new n.NodeNextResponse(r),F=l.NextRequestAdapter.fromNodeNextRequest(z,(0,l.signalFromNodeResponse)(r));try{let s=async o=>C.handle(F,k).finally(()=>{if(!o)return;o.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let t=G.getRootSpanAttributes();if(!t)return;if(t.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${t.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=t.get("next.route");if(a){let e=`${j} ${a}`;o.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),o.updateName(e)}else o.updateName(`${j} ${e.url}`)}),n=async i=>{var n,l;let d=async({previousCacheEntry:o})=>{try{if(!(0,a.getRequestMeta)(e,"minimalMode")&&N&&x&&!o)return r.statusCode=404,r.setHeader("x-nextjs-cache","REVALIDATED"),r.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=k.renderOpts.fetchMetrics;let l=k.renderOpts.pendingWaitUntil;l&&t.waitUntil&&(t.waitUntil(l),l=void 0);let d=k.renderOpts.collectedTags;if(!_)return await (0,u.sendResponse)(z,q,n,k.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),r=(0,T.toNodeOutgoingHttpHeaders)(n.headers);d&&(r[y.NEXT_CACHE_TAGS_HEADER]=d),!r["content-type"]&&e.type&&(r["content-type"]=e.type);let o=void 0!==k.renderOpts.collectedRevalidate&&!(k.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&k.renderOpts.collectedRevalidate,t=void 0===k.renderOpts.collectedExpire||k.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:k.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:r},cacheControl:{revalidate:o,expire:t}}}}catch(r){throw(null==o?void 0:o.isStale)&&await C.onRequestError(e,r,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isRevalidate:M,isOnDemandRevalidate:N})},f),r}},v=await C.handleResponse({req:e,nextConfig:S,cacheKey:w,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:t.waitUntil});if(!_)return null;if((null==v||null==(n=v.value)?void 0:n.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==v||null==(l=v.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,a.getRequestMeta)(e,"minimalMode")||r.setHeader("x-nextjs-cache",N?"REVALIDATED":v.isMiss?"MISS":v.isStale?"STALE":"HIT"),A&&r.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let P=(0,T.fromNodeOutgoingHttpHeaders)(v.value.headers);return(0,a.getRequestMeta)(e,"minimalMode")&&_||P.delete(y.NEXT_CACHE_TAGS_HEADER),!v.cacheControl||r.getHeader("Cache-Control")||P.get("Cache-Control")||P.set("Cache-Control",(0,c.getCacheControlHeader)(v.cacheControl)),await (0,u.sendResponse)(z,q,new Response(v.value.body,{headers:P,status:v.value.status||200})),null};H?await n(H):await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${e.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},n))}catch(r){if(r instanceof v.NoFallbackError||await C.onRequestError(e,r,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isRevalidate:M,isOnDemandRevalidate:N})}),_)throw r;return await (0,u.sendResponse)(z,q,new Response(null,{status:500})),null}}}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__8b8c4831._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/cache/cacheHeaders.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/apiKeys/getApiKey.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/tools/serializeApiTool.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/tools/toolSchema.ts","turbopack:///[project]/supercorp/superinterface/node_modules/next/dist/esm/build/templates/app-route.js","turbopack:///[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/route.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/buildRoute.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/tools/isToolConfigAvailable.ts"],"sourcesContent":["export const cacheHeaders = {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',\n 'Access-Control-Allow-Headers':\n 'Content-Type, Authorization, X-Requested-With, Accept',\n}\n","import { ApiKeyType, ApiKey, type PrismaClient } from '@prisma/client'\nimport { validate } from 'uuid'\n\nexport const getApiKey = async ({\n authorization,\n type,\n prisma,\n}: {\n authorization: string | null\n type: ApiKeyType\n prisma: PrismaClient\n}): Promise<ApiKey | null> => {\n if (!authorization) {\n return null\n }\n\n const [, apiKeyValue] = authorization.split('Bearer ')\n\n if (!validate(apiKeyValue)) {\n return null\n }\n\n return prisma.apiKey.findFirst({\n where: { type, value: apiKeyValue },\n })\n}\n","import { Prisma } from '@prisma/client'\n\nexport const toolInclude = {\n fileSearchTool: true,\n webSearchTool: true,\n codeInterpreterTool: true,\n imageGenerationTool: true,\n computerUseTool: true,\n} as const\n\nexport const serializeApiTool = ({\n tool,\n}: {\n tool: Prisma.ToolGetPayload<{\n include: typeof toolInclude\n }>\n}) => ({\n id: tool.id,\n type: tool.type,\n ...(tool.fileSearchTool\n ? {\n fileSearchTool: {\n vectorStoreIds: tool.fileSearchTool.vectorStoreIds,\n maxNumResults: tool.fileSearchTool.maxNumResults,\n },\n }\n : {}),\n ...(tool.webSearchTool ? { webSearchTool: {} } : {}),\n ...(tool.codeInterpreterTool ? { codeInterpreterTool: {} } : {}),\n ...(tool.imageGenerationTool\n ? {\n imageGenerationTool: {\n model: tool.imageGenerationTool.model,\n quality: tool.imageGenerationTool.quality,\n size: tool.imageGenerationTool.size,\n outputFormat: tool.imageGenerationTool.outputFormat,\n background: tool.imageGenerationTool.background,\n partialImages: tool.imageGenerationTool.partialImages,\n },\n }\n : {}),\n ...(tool.computerUseTool\n ? {\n computerUseTool: {\n displayWidth: tool.computerUseTool.displayWidth,\n displayHeight: tool.computerUseTool.displayHeight,\n environment: tool.computerUseTool.environment,\n mcpServerId: tool.computerUseTool.mcpServerId,\n },\n }\n : {}),\n createdAt: tool.createdAt.toISOString(),\n updatedAt: tool.updatedAt.toISOString(),\n})\n","import {\n ToolType,\n ComputerUseToolEnvironment,\n ImageGenerationToolBackground,\n ImageGenerationToolOutputFormat,\n ImageGenerationToolQuality,\n ImageGenerationToolSize,\n} from '@prisma/client'\nimport { z } from 'zod'\n\nconst fileSearchToolSchema = z.object({\n vectorStoreIds: z.array(z.string()),\n maxNumResults: z.number().int().positive(),\n})\n\nconst imageGenerationToolSchema = z.object({\n model: z.string().optional(),\n quality: z.nativeEnum(ImageGenerationToolQuality).optional(),\n size: z.nativeEnum(ImageGenerationToolSize).optional(),\n outputFormat: z.nativeEnum(ImageGenerationToolOutputFormat).optional(),\n background: z.nativeEnum(ImageGenerationToolBackground).optional(),\n partialImages: z.number().int().min(0).optional(),\n})\n\nconst computerUseToolSchema = z.object({\n displayWidth: z.number().int().min(640).max(4096),\n displayHeight: z.number().int().min(480).max(4096),\n environment: z.nativeEnum(ComputerUseToolEnvironment).optional(),\n mcpServerId: z.string().uuid().nullable().optional(),\n})\n\nconst baseToolSchema = z.object({\n type: z.nativeEnum(ToolType),\n fileSearchTool: fileSearchToolSchema.optional(),\n imageGenerationTool: imageGenerationToolSchema.optional(),\n computerUseTool: computerUseToolSchema.optional(),\n})\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst superRefine = (values: any, ctx: any) => {\n if (values.type === ToolType.FILE_SEARCH && values.fileSearchTool) {\n const result = fileSearchToolSchema.safeParse(values.fileSearchTool)\n if (!result.success) {\n result.error.issues.forEach((issue: z.ZodIssue) =>\n ctx.addIssue({\n ...issue,\n path: ['fileSearchTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.type === ToolType.IMAGE_GENERATION && values.imageGenerationTool) {\n const result = imageGenerationToolSchema.safeParse(\n values.imageGenerationTool,\n )\n if (!result.success) {\n result.error.issues.forEach((issue: z.ZodIssue) =>\n ctx.addIssue({\n ...issue,\n path: ['imageGenerationTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.type === ToolType.COMPUTER_USE && values.computerUseTool) {\n const result = computerUseToolSchema.safeParse(values.computerUseTool)\n if (!result.success) {\n result.error.issues.forEach((issue: z.ZodIssue) =>\n ctx.addIssue({\n ...issue,\n path: ['computerUseTool', ...issue.path],\n }),\n )\n }\n }\n}\n\nexport const toolSchema = baseToolSchema.superRefine(superRefine)\n\nexport const updateToolSchema = z\n .object({\n fileSearchTool: fileSearchToolSchema.optional(),\n imageGenerationTool: imageGenerationToolSchema.optional(),\n computerUseTool: computerUseToolSchema.optional(),\n })\n .superRefine((values, ctx) => {\n if (values.fileSearchTool) {\n const result = fileSearchToolSchema.safeParse(values.fileSearchTool)\n if (!result.success) {\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['fileSearchTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.imageGenerationTool) {\n const result = imageGenerationToolSchema.safeParse(\n values.imageGenerationTool,\n )\n if (!result.success) {\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['imageGenerationTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.computerUseTool) {\n const result = computerUseToolSchema.safeParse(values.computerUseTool)\n if (!result.success) {\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['computerUseTool', ...issue.path],\n }),\n )\n }\n }\n })\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/assistants/[assistantId]/tools/route\",\n pathname: \"/api/assistants/[assistantId]/tools\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n var _nextConfig_experimental;\n let srcPage = \"/api/assistants/[assistantId]/tools/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isRevalidate = isIsr && !supportsDynamicResponse;\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n cacheComponents: Boolean(nextConfig.experimental.cacheComponents),\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: (_nextConfig_experimental = nextConfig.experimental) == null ? void 0 : _nextConfig_experimental.cacheLife,\n isRevalidate,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext)=>routeModule.onRequestError(req, error, errorContext, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n };\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!getRequestMeta(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isRevalidate,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!getRequestMeta(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(getRequestMeta(req, 'minimalMode') && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isRevalidate,\n isOnDemandRevalidate\n })\n });\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","import { prisma } from '@/lib/prisma'\nimport { buildGET, buildOPTIONS, buildPOST } from './buildRoute'\n\nexport const GET = buildGET({ prisma })\n\nexport const POST = buildPOST({ prisma })\n\nexport const OPTIONS = buildOPTIONS()\n","import { type NextRequest, NextResponse } from 'next/server'\nimport { ApiKeyType, ToolType, type PrismaClient } from '@prisma/client'\nimport { headers } from 'next/headers'\nimport { cacheHeaders } from '@/lib/cache/cacheHeaders'\nimport { getApiKey } from '@/lib/apiKeys/getApiKey'\nimport { serializeApiTool, toolInclude } from '@/lib/tools/serializeApiTool'\nimport { toolSchema } from '@/lib/tools/toolSchema'\nimport { isToolConfigAvailable } from '@/lib/tools/isToolConfigAvailable'\n\ntype RouteProps = {\n params: Promise<{ assistantId: string }>\n}\n\nexport const buildGET =\n ({ prisma }: { prisma: PrismaClient }) =>\n async (_request: NextRequest, props: RouteProps) => {\n const { assistantId } = await props.params\n\n const headersList = await headers()\n const authorization = headersList.get('authorization')\n if (!authorization) {\n return NextResponse.json(\n { error: 'No authorization header found' },\n { status: 400 },\n )\n }\n\n const privateApiKey = await getApiKey({\n type: ApiKeyType.PRIVATE,\n authorization,\n prisma,\n })\n\n if (!privateApiKey) {\n return NextResponse.json({ error: 'Invalid api key' }, { status: 400 })\n }\n\n const assistant = await prisma.assistant.findFirst({\n where: {\n id: assistantId,\n workspaceId: privateApiKey.workspaceId,\n },\n include: {\n tools: {\n include: toolInclude,\n orderBy: {\n createdAt: 'desc',\n },\n },\n },\n })\n\n if (!assistant) {\n return NextResponse.json({ error: 'No assistant found' }, { status: 400 })\n }\n\n return NextResponse.json(\n {\n tools: assistant.tools.map((tool) => serializeApiTool({ tool })),\n },\n { headers: cacheHeaders },\n )\n }\n\nexport const buildPOST =\n ({ prisma }: { prisma: PrismaClient }) =>\n async (request: NextRequest, props: RouteProps) => {\n const { assistantId } = await props.params\n\n const headersList = await headers()\n const authorization = headersList.get('authorization')\n if (!authorization) {\n return NextResponse.json(\n { error: 'No authorization header found' },\n { status: 400 },\n )\n }\n\n const privateApiKey = await getApiKey({\n authorization,\n type: ApiKeyType.PRIVATE,\n prisma,\n })\n\n if (!privateApiKey) {\n return NextResponse.json({ error: 'Invalid api key' }, { status: 400 })\n }\n\n const assistant = await prisma.assistant.findFirst({\n where: {\n id: assistantId,\n workspaceId: privateApiKey.workspaceId,\n },\n include: {\n modelProvider: true,\n },\n })\n\n if (!assistant) {\n return NextResponse.json({ error: 'No assistant found' }, { status: 400 })\n }\n\n const body = await request.json()\n const parsed = toolSchema.safeParse(body)\n\n if (!parsed.success) {\n console.error('Tool creation error:', parsed.error)\n return NextResponse.json({ error: 'Invalid payload' }, { status: 400 })\n }\n\n const { type } = parsed.data\n\n if (\n !isToolConfigAvailable({\n toolType: type,\n modelProviderType: assistant.modelProvider.type,\n storageProviderType: assistant.storageProviderType,\n })\n ) {\n return NextResponse.json(\n {\n error: `Tool type ${type} is not available for this assistant's provider configuration`,\n },\n { status: 400 },\n )\n }\n\n const typeSpecificCreate: Record<string, unknown> = {}\n\n if (type === ToolType.FILE_SEARCH) {\n typeSpecificCreate.fileSearchTool = {\n create: parsed.data.fileSearchTool ?? {},\n }\n } else if (type === ToolType.WEB_SEARCH) {\n typeSpecificCreate.webSearchTool = { create: {} }\n } else if (type === ToolType.CODE_INTERPRETER) {\n typeSpecificCreate.codeInterpreterTool = { create: {} }\n } else if (type === ToolType.IMAGE_GENERATION) {\n typeSpecificCreate.imageGenerationTool = {\n create: parsed.data.imageGenerationTool ?? {},\n }\n } else if (type === ToolType.COMPUTER_USE) {\n typeSpecificCreate.computerUseTool = {\n create: parsed.data.computerUseTool ?? {},\n }\n }\n\n const tool = await prisma.tool.create({\n data: {\n type,\n assistantId: assistant.id,\n ...typeSpecificCreate,\n },\n include: toolInclude,\n })\n\n return NextResponse.json(\n {\n tool: serializeApiTool({ tool }),\n },\n { headers: cacheHeaders },\n )\n }\n\nexport const buildOPTIONS = () => () =>\n NextResponse.json(\n {},\n {\n headers: cacheHeaders,\n },\n )\n","import {\n ModelProviderType,\n StorageProviderType,\n ToolType,\n} from '@prisma/client'\n\nexport type ToolConfigAvailability = {\n modelProviderType: ModelProviderType\n storageProviderType: StorageProviderType\n}\n\nexport type ToolConfig = {\n type: ToolType\n availabilities: ToolConfigAvailability[]\n}\n\nexport const toolConfigs: ToolConfig[] = [\n {\n type: ToolType.WEB_SEARCH,\n availabilities: [\n {\n modelProviderType: ModelProviderType.ANTHROPIC,\n storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n ],\n },\n {\n type: ToolType.FILE_SEARCH,\n availabilities: [\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_AI_PROJECT,\n storageProviderType: StorageProviderType.AZURE_AGENTS,\n },\n ],\n },\n {\n type: ToolType.IMAGE_GENERATION,\n availabilities: [\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n ],\n },\n {\n type: ToolType.COMPUTER_USE,\n availabilities: [\n {\n modelProviderType: ModelProviderType.ANTHROPIC,\n storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n ],\n },\n {\n type: ToolType.CODE_INTERPRETER,\n availabilities: [\n {\n modelProviderType: ModelProviderType.ANTHROPIC,\n storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_AI_PROJECT,\n storageProviderType: StorageProviderType.AZURE_AGENTS,\n },\n ],\n },\n]\n\nexport const isToolConfigAvailable = ({\n toolType,\n modelProviderType,\n storageProviderType,\n}: {\n toolType: ToolType\n modelProviderType: ModelProviderType\n storageProviderType: StorageProviderType\n}): boolean => {\n const toolConfig = toolConfigs.find((config) => config.type === toolType)\n if (!toolConfig) return false\n\n return toolConfig.availabilities.some(\n (availability) =>\n availability.modelProviderType === modelProviderType &&\n availability.storageProviderType === storageProviderType,\n )\n}\n"],"names":[],"mappings":"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","ignoreList":[4]}
|
|
1
|
+
{"version":3,"sources":["turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/cache/cacheHeaders.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/apiKeys/getApiKey.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/tools/serializeApiTool.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/tools/toolSchema.ts","turbopack:///[project]/supercorp/superinterface/node_modules/next/dist/esm/build/templates/app-route.js","turbopack:///[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/route.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/buildRoute.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/tools/isToolConfigAvailable.ts"],"sourcesContent":["export const cacheHeaders = {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',\n 'Access-Control-Allow-Headers':\n 'Content-Type, Authorization, X-Requested-With, Accept',\n}\n","import { ApiKeyType, ApiKey, type PrismaClient } from '@prisma/client'\nimport { validate } from 'uuid'\n\nexport const getApiKey = async ({\n authorization,\n type,\n prisma,\n}: {\n authorization: string | null\n type: ApiKeyType\n prisma: PrismaClient\n}): Promise<ApiKey | null> => {\n if (!authorization) {\n return null\n }\n\n const [, apiKeyValue] = authorization.split('Bearer ')\n\n if (!validate(apiKeyValue)) {\n return null\n }\n\n return prisma.apiKey.findFirst({\n where: { type, value: apiKeyValue },\n })\n}\n","import { Prisma } from '@prisma/client'\n\nexport const toolInclude = {\n fileSearchTool: true,\n webSearchTool: true,\n codeInterpreterTool: true,\n imageGenerationTool: true,\n computerUseTool: true,\n} as const\n\nexport const serializeApiTool = ({\n tool,\n}: {\n tool: Prisma.ToolGetPayload<{\n include: typeof toolInclude\n }>\n}) => ({\n id: tool.id,\n type: tool.type,\n ...(tool.fileSearchTool\n ? {\n fileSearchTool: {\n vectorStoreIds: tool.fileSearchTool.vectorStoreIds,\n maxNumResults: tool.fileSearchTool.maxNumResults,\n },\n }\n : {}),\n ...(tool.webSearchTool ? { webSearchTool: {} } : {}),\n ...(tool.codeInterpreterTool ? { codeInterpreterTool: {} } : {}),\n ...(tool.imageGenerationTool\n ? {\n imageGenerationTool: {\n model: tool.imageGenerationTool.model,\n quality: tool.imageGenerationTool.quality,\n size: tool.imageGenerationTool.size,\n outputFormat: tool.imageGenerationTool.outputFormat,\n background: tool.imageGenerationTool.background,\n partialImages: tool.imageGenerationTool.partialImages,\n },\n }\n : {}),\n ...(tool.computerUseTool\n ? {\n computerUseTool: {\n displayWidth: tool.computerUseTool.displayWidth,\n displayHeight: tool.computerUseTool.displayHeight,\n environment: tool.computerUseTool.environment,\n mcpServerId: tool.computerUseTool.mcpServerId,\n },\n }\n : {}),\n createdAt: tool.createdAt.toISOString(),\n updatedAt: tool.updatedAt.toISOString(),\n})\n","import {\n ToolType,\n ComputerUseToolEnvironment,\n ImageGenerationToolBackground,\n ImageGenerationToolOutputFormat,\n ImageGenerationToolQuality,\n ImageGenerationToolSize,\n} from '@prisma/client'\nimport { z } from 'zod'\n\nconst fileSearchToolSchema = z.object({\n vectorStoreIds: z.array(z.string()),\n maxNumResults: z.number().int().positive(),\n})\n\nconst imageGenerationToolSchema = z.object({\n model: z.string().optional(),\n quality: z.nativeEnum(ImageGenerationToolQuality).optional(),\n size: z.nativeEnum(ImageGenerationToolSize).optional(),\n outputFormat: z.nativeEnum(ImageGenerationToolOutputFormat).optional(),\n background: z.nativeEnum(ImageGenerationToolBackground).optional(),\n partialImages: z.number().int().min(0).optional(),\n})\n\nconst computerUseToolSchema = z.object({\n displayWidth: z.number().int().min(640).max(4096),\n displayHeight: z.number().int().min(480).max(4096),\n environment: z.nativeEnum(ComputerUseToolEnvironment).optional(),\n mcpServerId: z.string().uuid().nullable().optional(),\n})\n\nconst baseToolSchema = z.object({\n type: z.nativeEnum(ToolType),\n fileSearchTool: fileSearchToolSchema.optional(),\n imageGenerationTool: imageGenerationToolSchema.optional(),\n computerUseTool: computerUseToolSchema.optional(),\n})\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst superRefine = (values: any, ctx: any) => {\n if (values.type === ToolType.FILE_SEARCH && values.fileSearchTool) {\n const result = fileSearchToolSchema.safeParse(values.fileSearchTool)\n if (!result.success) {\n result.error.issues.forEach((issue: z.ZodIssue) =>\n ctx.addIssue({\n ...issue,\n path: ['fileSearchTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.type === ToolType.IMAGE_GENERATION && values.imageGenerationTool) {\n const result = imageGenerationToolSchema.safeParse(\n values.imageGenerationTool,\n )\n if (!result.success) {\n result.error.issues.forEach((issue: z.ZodIssue) =>\n ctx.addIssue({\n ...issue,\n path: ['imageGenerationTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.type === ToolType.COMPUTER_USE && values.computerUseTool) {\n const result = computerUseToolSchema.safeParse(values.computerUseTool)\n if (!result.success) {\n result.error.issues.forEach((issue: z.ZodIssue) =>\n ctx.addIssue({\n ...issue,\n path: ['computerUseTool', ...issue.path],\n }),\n )\n }\n }\n}\n\nexport const toolSchema = baseToolSchema.superRefine(superRefine)\n\nexport const updateToolSchema = z\n .object({\n fileSearchTool: fileSearchToolSchema.optional(),\n imageGenerationTool: imageGenerationToolSchema.optional(),\n computerUseTool: computerUseToolSchema.optional(),\n })\n .superRefine((values, ctx) => {\n if (values.fileSearchTool) {\n const result = fileSearchToolSchema.safeParse(values.fileSearchTool)\n if (!result.success) {\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['fileSearchTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.imageGenerationTool) {\n const result = imageGenerationToolSchema.safeParse(\n values.imageGenerationTool,\n )\n if (!result.success) {\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['imageGenerationTool', ...issue.path],\n }),\n )\n }\n }\n\n if (values.computerUseTool) {\n const result = computerUseToolSchema.safeParse(values.computerUseTool)\n if (!result.success) {\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['computerUseTool', ...issue.path],\n }),\n )\n }\n }\n })\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/assistants/[assistantId]/tools/route\",\n pathname: \"/api/assistants/[assistantId]/tools\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/tools/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n var _nextConfig_experimental;\n let srcPage = \"/api/assistants/[assistantId]/tools/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isRevalidate = isIsr && !supportsDynamicResponse;\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n cacheComponents: Boolean(nextConfig.experimental.cacheComponents),\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: (_nextConfig_experimental = nextConfig.experimental) == null ? void 0 : _nextConfig_experimental.cacheLife,\n isRevalidate,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext)=>routeModule.onRequestError(req, error, errorContext, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n };\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!getRequestMeta(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isRevalidate,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!getRequestMeta(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(getRequestMeta(req, 'minimalMode') && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isRevalidate,\n isOnDemandRevalidate\n })\n });\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","import { prisma } from '@/lib/prisma'\nimport { buildGET, buildOPTIONS, buildPOST } from './buildRoute'\n\nexport const GET = buildGET({ prisma })\n\nexport const POST = buildPOST({ prisma })\n\nexport const OPTIONS = buildOPTIONS()\n","import { type NextRequest, NextResponse } from 'next/server'\nimport { ApiKeyType, ToolType, type PrismaClient } from '@prisma/client'\nimport { headers } from 'next/headers'\nimport { cacheHeaders } from '@/lib/cache/cacheHeaders'\nimport { getApiKey } from '@/lib/apiKeys/getApiKey'\nimport { serializeApiTool, toolInclude } from '@/lib/tools/serializeApiTool'\nimport { toolSchema } from '@/lib/tools/toolSchema'\nimport { isToolConfigAvailable } from '@/lib/tools/isToolConfigAvailable'\n\ntype RouteProps = {\n params: Promise<{ assistantId: string }>\n}\n\nexport const buildGET =\n ({ prisma }: { prisma: PrismaClient }) =>\n async (_request: NextRequest, props: RouteProps) => {\n const { assistantId } = await props.params\n\n const headersList = await headers()\n const authorization = headersList.get('authorization')\n if (!authorization) {\n return NextResponse.json(\n { error: 'No authorization header found' },\n { status: 400 },\n )\n }\n\n const privateApiKey = await getApiKey({\n type: ApiKeyType.PRIVATE,\n authorization,\n prisma,\n })\n\n if (!privateApiKey) {\n return NextResponse.json({ error: 'Invalid api key' }, { status: 400 })\n }\n\n const assistant = await prisma.assistant.findFirst({\n where: {\n id: assistantId,\n workspaceId: privateApiKey.workspaceId,\n },\n include: {\n tools: {\n include: toolInclude,\n orderBy: {\n createdAt: 'desc',\n },\n },\n },\n })\n\n if (!assistant) {\n return NextResponse.json({ error: 'No assistant found' }, { status: 400 })\n }\n\n return NextResponse.json(\n {\n tools: assistant.tools.map((tool) => serializeApiTool({ tool })),\n },\n { headers: cacheHeaders },\n )\n }\n\nexport const buildPOST =\n ({ prisma }: { prisma: PrismaClient }) =>\n async (request: NextRequest, props: RouteProps) => {\n const { assistantId } = await props.params\n\n const headersList = await headers()\n const authorization = headersList.get('authorization')\n if (!authorization) {\n return NextResponse.json(\n { error: 'No authorization header found' },\n { status: 400 },\n )\n }\n\n const privateApiKey = await getApiKey({\n authorization,\n type: ApiKeyType.PRIVATE,\n prisma,\n })\n\n if (!privateApiKey) {\n return NextResponse.json({ error: 'Invalid api key' }, { status: 400 })\n }\n\n const assistant = await prisma.assistant.findFirst({\n where: {\n id: assistantId,\n workspaceId: privateApiKey.workspaceId,\n },\n include: {\n modelProvider: true,\n },\n })\n\n if (!assistant) {\n return NextResponse.json({ error: 'No assistant found' }, { status: 400 })\n }\n\n const body = await request.json()\n const parsed = toolSchema.safeParse(body)\n\n if (!parsed.success) {\n console.error('Tool creation error:', parsed.error)\n return NextResponse.json({ error: 'Invalid payload' }, { status: 400 })\n }\n\n const { type } = parsed.data\n\n if (\n !isToolConfigAvailable({\n toolType: type,\n modelProviderType: assistant.modelProvider.type,\n storageProviderType: assistant.storageProviderType,\n })\n ) {\n return NextResponse.json(\n {\n error: `Tool type ${type} is not available for this assistant's provider configuration`,\n },\n { status: 400 },\n )\n }\n\n const typeSpecificCreate: Record<string, unknown> = {}\n\n if (type === ToolType.FILE_SEARCH) {\n typeSpecificCreate.fileSearchTool = {\n create: parsed.data.fileSearchTool ?? {},\n }\n } else if (type === ToolType.WEB_SEARCH) {\n typeSpecificCreate.webSearchTool = { create: {} }\n } else if (type === ToolType.CODE_INTERPRETER) {\n typeSpecificCreate.codeInterpreterTool = { create: {} }\n } else if (type === ToolType.IMAGE_GENERATION) {\n typeSpecificCreate.imageGenerationTool = {\n create: parsed.data.imageGenerationTool ?? {},\n }\n } else if (type === ToolType.COMPUTER_USE) {\n typeSpecificCreate.computerUseTool = {\n create: parsed.data.computerUseTool ?? {},\n }\n }\n\n const tool = await prisma.tool.create({\n data: {\n type,\n assistantId: assistant.id,\n ...typeSpecificCreate,\n },\n include: toolInclude,\n })\n\n return NextResponse.json(\n {\n tool: serializeApiTool({ tool }),\n },\n { headers: cacheHeaders },\n )\n }\n\nexport const buildOPTIONS = () => () =>\n NextResponse.json(\n {},\n {\n headers: cacheHeaders,\n },\n )\n","import {\n ModelProviderType,\n StorageProviderType,\n ToolType,\n} from '@prisma/client'\n\nexport type ToolConfigAvailability = {\n modelProviderType: ModelProviderType\n storageProviderType: StorageProviderType\n}\n\nexport type ToolConfig = {\n type: ToolType\n availabilities: ToolConfigAvailability[]\n}\n\nexport const toolConfigs: ToolConfig[] = [\n {\n type: ToolType.WEB_SEARCH,\n availabilities: [\n {\n modelProviderType: ModelProviderType.ANTHROPIC,\n storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n ],\n },\n {\n type: ToolType.FILE_SEARCH,\n availabilities: [\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_AI_PROJECT,\n storageProviderType: StorageProviderType.AZURE_AGENTS,\n },\n ],\n },\n {\n type: ToolType.IMAGE_GENERATION,\n availabilities: [\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n ],\n },\n {\n type: ToolType.COMPUTER_USE,\n availabilities: [\n {\n modelProviderType: ModelProviderType.ANTHROPIC,\n storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.OPEN_ROUTER,\n storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,\n },\n ],\n },\n {\n type: ToolType.CODE_INTERPRETER,\n availabilities: [\n {\n modelProviderType: ModelProviderType.ANTHROPIC,\n storageProviderType: StorageProviderType.SUPERINTERFACE_CLOUD,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_RESPONSES,\n },\n {\n modelProviderType: ModelProviderType.OPENAI,\n storageProviderType: StorageProviderType.OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_OPENAI,\n storageProviderType: StorageProviderType.AZURE_OPENAI,\n },\n {\n modelProviderType: ModelProviderType.AZURE_AI_PROJECT,\n storageProviderType: StorageProviderType.AZURE_AGENTS,\n },\n ],\n },\n]\n\nexport const isToolConfigAvailable = ({\n toolType,\n modelProviderType,\n storageProviderType,\n}: {\n toolType: ToolType\n modelProviderType: ModelProviderType\n storageProviderType: StorageProviderType\n}): boolean => {\n const toolConfig = toolConfigs.find((config) => config.type === toolType)\n if (!toolConfig) return false\n\n return toolConfig.availabilities.some(\n (availability) =>\n availability.modelProviderType === modelProviderType &&\n availability.storageProviderType === storageProviderType,\n )\n}\n"],"names":[],"mappings":"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","ignoreList":[4]}
|