@superinterface/server 1.0.17 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_btwyo7 +1 -1
  5. package/.next/fallback-build-manifest.json +2 -2
  6. package/.next/server/app/_not-found.html +1 -1
  7. package/.next/server/app/_not-found.rsc +1 -1
  8. package/.next/server/app/api/files/[fileId]/contents/route.js +1 -1
  9. package/.next/server/app/api/files/[fileId]/contents/route.js.nft.json +1 -1
  10. package/.next/server/app/api/files/route.js +1 -1
  11. package/.next/server/app/api/files/route.js.nft.json +1 -1
  12. package/.next/server/app/api/messages/route.js +3 -3
  13. package/.next/server/app/api/messages/route.js.nft.json +1 -1
  14. package/.next/server/app/index.html +1 -1
  15. package/.next/server/app/index.rsc +1 -1
  16. package/.next/server/chunks/[root-of-the-server]__0c1bc5ed._.js +1 -1
  17. package/.next/server/chunks/[root-of-the-server]__0c1bc5ed._.js.map +1 -1
  18. package/.next/server/chunks/[root-of-the-server]__13c6bd62._.js +1 -1
  19. package/.next/server/chunks/[root-of-the-server]__13c6bd62._.js.map +1 -1
  20. package/.next/server/chunks/[root-of-the-server]__25ee13bc._.js +1 -1
  21. package/.next/server/chunks/[root-of-the-server]__25ee13bc._.js.map +1 -1
  22. package/.next/server/chunks/[root-of-the-server]__27aadac9._.js +1 -1
  23. package/.next/server/chunks/[root-of-the-server]__27aadac9._.js.map +1 -1
  24. package/.next/server/chunks/[root-of-the-server]__2945c9e9._.js +1 -1
  25. package/.next/server/chunks/[root-of-the-server]__2945c9e9._.js.map +1 -1
  26. package/.next/server/chunks/[root-of-the-server]__29635e8e._.js +1 -1
  27. package/.next/server/chunks/[root-of-the-server]__29635e8e._.js.map +1 -1
  28. package/.next/server/chunks/[root-of-the-server]__29b43490._.js +2 -2
  29. package/.next/server/chunks/[root-of-the-server]__29b43490._.js.map +1 -1
  30. package/.next/server/chunks/[root-of-the-server]__315f084a._.js +1 -1
  31. package/.next/server/chunks/[root-of-the-server]__315f084a._.js.map +1 -1
  32. package/.next/server/chunks/[root-of-the-server]__441cee00._.js +1 -1
  33. package/.next/server/chunks/[root-of-the-server]__441cee00._.js.map +1 -1
  34. package/.next/server/chunks/[root-of-the-server]__464a4377._.js +1 -1
  35. package/.next/server/chunks/[root-of-the-server]__464a4377._.js.map +1 -1
  36. package/.next/server/chunks/[root-of-the-server]__4e536bc0._.js +1 -1
  37. package/.next/server/chunks/[root-of-the-server]__4e536bc0._.js.map +1 -1
  38. package/.next/server/chunks/[root-of-the-server]__51977f30._.js +1 -1
  39. package/.next/server/chunks/[root-of-the-server]__51977f30._.js.map +1 -1
  40. package/.next/server/chunks/[root-of-the-server]__583a7f1c._.js +1 -1
  41. package/.next/server/chunks/[root-of-the-server]__583a7f1c._.js.map +1 -1
  42. package/.next/server/chunks/[root-of-the-server]__5abf1160._.js +1 -1
  43. package/.next/server/chunks/[root-of-the-server]__5abf1160._.js.map +1 -1
  44. package/.next/server/chunks/[root-of-the-server]__5d09614a._.js +1 -1
  45. package/.next/server/chunks/[root-of-the-server]__5d09614a._.js.map +1 -1
  46. package/.next/server/chunks/[root-of-the-server]__62d958e7._.js +1 -1
  47. package/.next/server/chunks/[root-of-the-server]__62d958e7._.js.map +1 -1
  48. package/.next/server/chunks/[root-of-the-server]__7f9ca1e3._.js +1 -1
  49. package/.next/server/chunks/[root-of-the-server]__7f9ca1e3._.js.map +1 -1
  50. package/.next/server/chunks/[root-of-the-server]__83461316._.js +1 -1
  51. package/.next/server/chunks/[root-of-the-server]__83461316._.js.map +1 -1
  52. package/.next/server/chunks/[root-of-the-server]__9a611d42._.js +1 -1
  53. package/.next/server/chunks/[root-of-the-server]__9a611d42._.js.map +1 -1
  54. package/.next/server/chunks/[root-of-the-server]__a135e388._.js +1 -1
  55. package/.next/server/chunks/[root-of-the-server]__a135e388._.js.map +1 -1
  56. package/.next/server/chunks/[root-of-the-server]__b10ec83e._.js +1 -1
  57. package/.next/server/chunks/[root-of-the-server]__b10ec83e._.js.map +1 -1
  58. package/.next/server/chunks/[root-of-the-server]__b9a334c3._.js +1 -1
  59. package/.next/server/chunks/[root-of-the-server]__b9a334c3._.js.map +1 -1
  60. package/.next/server/chunks/[root-of-the-server]__c1629392._.js +1 -1
  61. package/.next/server/chunks/[root-of-the-server]__c1629392._.js.map +1 -1
  62. package/.next/server/chunks/[root-of-the-server]__dd176cb5._.js +2 -2
  63. package/.next/server/chunks/[root-of-the-server]__dd176cb5._.js.map +1 -1
  64. package/.next/server/chunks/[root-of-the-server]__eb816e13._.js +1 -1
  65. package/.next/server/chunks/[root-of-the-server]__eb816e13._.js.map +1 -1
  66. package/.next/server/chunks/[root-of-the-server]__ed6cf593._.js +1 -1
  67. package/.next/server/chunks/[root-of-the-server]__ed6cf593._.js.map +1 -1
  68. package/.next/server/chunks/{[root-of-the-server]__30845206._.js → [root-of-the-server]__ff90af03._.js} +3 -3
  69. package/.next/server/chunks/{[root-of-the-server]__30845206._.js.map → [root-of-the-server]__ff90af03._.js.map} +1 -1
  70. package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_cb746cf4.js +1 -1
  71. package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_cb746cf4.js.map +1 -1
  72. package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_f952d9ab.js +1 -1
  73. package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_f952d9ab.js.map +1 -1
  74. package/.next/server/chunks/supercorp_superinterface_bebd2c96._.js +2 -2
  75. package/.next/server/chunks/supercorp_superinterface_bebd2c96._.js.map +1 -1
  76. package/.next/server/pages/404.html +1 -1
  77. package/.next/server/pages/500.html +1 -1
  78. package/.next/trace +1 -1
  79. package/bin/index.cjs +2 -0
  80. package/dist/app/api/api-keys/[apiKeyId]/route.d.ts +55 -0
  81. package/dist/app/api/api-keys/[apiKeyId]/route.d.ts.map +1 -1
  82. package/dist/app/api/api-keys/[apiKeyId]/route.js +10 -4
  83. package/dist/app/api/api-keys/route.d.ts +29 -0
  84. package/dist/app/api/api-keys/route.d.ts.map +1 -1
  85. package/dist/app/api/api-keys/route.js +8 -3
  86. package/dist/app/api/assistants/[assistantId]/functions/[functionId]/route.d.ts +172 -0
  87. package/dist/app/api/assistants/[assistantId]/functions/[functionId]/route.d.ts.map +1 -1
  88. package/dist/app/api/assistants/[assistantId]/functions/[functionId]/route.js +11 -4
  89. package/dist/app/api/assistants/[assistantId]/functions/route.d.ts +113 -0
  90. package/dist/app/api/assistants/[assistantId]/functions/route.d.ts.map +1 -1
  91. package/dist/app/api/assistants/[assistantId]/functions/route.js +8 -3
  92. package/dist/app/api/assistants/[assistantId]/initial-messages/route.d.ts +39 -0
  93. package/dist/app/api/assistants/[assistantId]/initial-messages/route.d.ts.map +1 -1
  94. package/dist/app/api/assistants/[assistantId]/initial-messages/route.js +8 -3
  95. package/dist/app/api/assistants/[assistantId]/mcp-servers/[mcpServerId]/route.d.ts +94 -0
  96. package/dist/app/api/assistants/[assistantId]/mcp-servers/[mcpServerId]/route.d.ts.map +1 -1
  97. package/dist/app/api/assistants/[assistantId]/mcp-servers/[mcpServerId]/route.js +10 -4
  98. package/dist/app/api/assistants/[assistantId]/mcp-servers/route.d.ts +61 -0
  99. package/dist/app/api/assistants/[assistantId]/mcp-servers/route.d.ts.map +1 -1
  100. package/dist/app/api/assistants/[assistantId]/mcp-servers/route.js +7 -3
  101. package/dist/app/api/assistants/[assistantId]/route.d.ts +123 -0
  102. package/dist/app/api/assistants/[assistantId]/route.d.ts.map +1 -1
  103. package/dist/app/api/assistants/[assistantId]/route.js +15 -6
  104. package/dist/app/api/assistants/route.d.ts +59 -0
  105. package/dist/app/api/assistants/route.d.ts.map +1 -1
  106. package/dist/app/api/assistants/route.js +8 -4
  107. package/dist/app/api/files/[fileId]/contents/route.d.ts +3 -2
  108. package/dist/app/api/files/[fileId]/contents/route.d.ts.map +1 -1
  109. package/dist/app/api/files/[fileId]/contents/route.js +6 -3
  110. package/dist/app/api/files/route.d.ts +10 -0
  111. package/dist/app/api/files/route.d.ts.map +1 -1
  112. package/dist/app/api/files/route.js +7 -3
  113. package/dist/app/api/messages/route.d.ts +24 -1
  114. package/dist/app/api/messages/route.d.ts.map +1 -1
  115. package/dist/app/api/messages/route.js +27 -6
  116. package/dist/app/api/providers/[modelProviderId]/assistants/route.d.ts +19 -0
  117. package/dist/app/api/providers/[modelProviderId]/assistants/route.d.ts.map +1 -1
  118. package/dist/app/api/providers/[modelProviderId]/assistants/route.js +4 -2
  119. package/dist/app/api/providers/[modelProviderId]/models/route.d.ts +14 -0
  120. package/dist/app/api/providers/[modelProviderId]/models/route.d.ts.map +1 -1
  121. package/dist/app/api/providers/[modelProviderId]/models/route.js +4 -2
  122. package/dist/app/api/providers/[modelProviderId]/route.d.ts +64 -0
  123. package/dist/app/api/providers/[modelProviderId]/route.d.ts.map +1 -1
  124. package/dist/app/api/providers/[modelProviderId]/route.js +12 -6
  125. package/dist/app/api/providers/route.d.ts +35 -0
  126. package/dist/app/api/providers/route.d.ts.map +1 -1
  127. package/dist/app/api/providers/route.js +9 -5
  128. package/dist/app/api/tasks/[taskId]/route.d.ts +61 -0
  129. package/dist/app/api/tasks/[taskId]/route.d.ts.map +1 -1
  130. package/dist/app/api/tasks/[taskId]/route.js +11 -5
  131. package/dist/app/api/tasks/callback/route.d.ts.map +1 -1
  132. package/dist/app/api/tasks/callback/route.js +14 -6
  133. package/dist/app/api/tasks/route.d.ts +33 -0
  134. package/dist/app/api/tasks/route.d.ts.map +1 -1
  135. package/dist/app/api/tasks/route.js +8 -4
  136. package/dist/app/api/threads/runs/submit-client-tool-outputs/route.d.ts +9 -1
  137. package/dist/app/api/threads/runs/submit-client-tool-outputs/route.d.ts.map +1 -1
  138. package/dist/app/api/threads/runs/submit-client-tool-outputs/route.js +5 -3
  139. package/dist/app/api/workspaces/[workspaceId]/route.d.ts +33 -0
  140. package/dist/app/api/workspaces/[workspaceId]/route.d.ts.map +1 -1
  141. package/dist/app/api/workspaces/[workspaceId]/route.js +7 -3
  142. package/dist/app/api/workspaces/route.d.ts +17 -3
  143. package/dist/app/api/workspaces/route.d.ts.map +1 -1
  144. package/dist/app/api/workspaces/route.js +8 -4
  145. package/dist/lib/apiKeys/getApiKey.d.ts +3 -2
  146. package/dist/lib/apiKeys/getApiKey.d.ts.map +1 -1
  147. package/dist/lib/apiKeys/getApiKey.js +1 -2
  148. package/dist/lib/apiKeys/workspaceAccessWhere.d.ts +3 -1
  149. package/dist/lib/apiKeys/workspaceAccessWhere.d.ts.map +1 -1
  150. package/dist/lib/apiKeys/workspaceAccessWhere.js +2 -1
  151. package/dist/lib/assistants/assistantClientAdapter/buildGetOpenaiAssistant.d.ts +3 -2
  152. package/dist/lib/assistants/assistantClientAdapter/buildGetOpenaiAssistant.d.ts.map +1 -1
  153. package/dist/lib/assistants/assistantClientAdapter/buildGetOpenaiAssistant.js +3 -3
  154. package/dist/lib/assistants/assistantClientAdapter/index.d.ts.map +1 -1
  155. package/dist/lib/assistants/assistantClientAdapter/index.js +7 -2
  156. package/dist/lib/computerCalls/handleComputerCall/index.d.ts +3 -2
  157. package/dist/lib/computerCalls/handleComputerCall/index.d.ts.map +1 -1
  158. package/dist/lib/computerCalls/handleComputerCall/index.js +5 -1
  159. package/dist/lib/functions/createFunction.d.ts +2 -1
  160. package/dist/lib/functions/createFunction.d.ts.map +1 -1
  161. package/dist/lib/functions/createFunction.js +2 -2
  162. package/dist/lib/functions/handleFunction/handleAssistant.d.ts +3 -2
  163. package/dist/lib/functions/handleFunction/handleAssistant.d.ts.map +1 -1
  164. package/dist/lib/functions/handleFunction/handleAssistant.js +12 -2
  165. package/dist/lib/functions/handleFunction/handleClientTool.d.ts +3 -2
  166. package/dist/lib/functions/handleFunction/handleClientTool.d.ts.map +1 -1
  167. package/dist/lib/functions/handleFunction/handleClientTool.js +2 -1
  168. package/dist/lib/functions/handleFunction/handleFirecrawl.d.ts +3 -2
  169. package/dist/lib/functions/handleFunction/handleFirecrawl.d.ts.map +1 -1
  170. package/dist/lib/functions/handleFunction/handleFirecrawl.js +7 -1
  171. package/dist/lib/functions/handleFunction/handleReplicate.d.ts +3 -2
  172. package/dist/lib/functions/handleFunction/handleReplicate.d.ts.map +1 -1
  173. package/dist/lib/functions/handleFunction/handleReplicate.js +4 -1
  174. package/dist/lib/functions/handleFunction/handleRequest.d.ts +3 -2
  175. package/dist/lib/functions/handleFunction/handleRequest.d.ts.map +1 -1
  176. package/dist/lib/functions/handleFunction/handleRequest.js +6 -1
  177. package/dist/lib/functions/handleFunction/index.d.ts +3 -2
  178. package/dist/lib/functions/handleFunction/index.d.ts.map +1 -1
  179. package/dist/lib/functions/handleFunction/index.js +25 -1
  180. package/dist/lib/functions/handleFunction/tasks/handleCreateTask.d.ts +3 -2
  181. package/dist/lib/functions/handleFunction/tasks/handleCreateTask.d.ts.map +1 -1
  182. package/dist/lib/functions/handleFunction/tasks/handleCreateTask.js +4 -4
  183. package/dist/lib/functions/handleFunction/tasks/handleDeleteTask.d.ts +3 -2
  184. package/dist/lib/functions/handleFunction/tasks/handleDeleteTask.d.ts.map +1 -1
  185. package/dist/lib/functions/handleFunction/tasks/handleDeleteTask.js +3 -3
  186. package/dist/lib/functions/handleFunction/tasks/handleListTasks.d.ts +3 -2
  187. package/dist/lib/functions/handleFunction/tasks/handleListTasks.d.ts.map +1 -1
  188. package/dist/lib/functions/handleFunction/tasks/handleListTasks.js +3 -3
  189. package/dist/lib/functions/handleFunction/tasks/handleUpdateTask.d.ts +3 -2
  190. package/dist/lib/functions/handleFunction/tasks/handleUpdateTask.d.ts.map +1 -1
  191. package/dist/lib/functions/handleFunction/tasks/handleUpdateTask.js +4 -4
  192. package/dist/lib/functions/updateFunction.d.ts +2 -1
  193. package/dist/lib/functions/updateFunction.d.ts.map +1 -1
  194. package/dist/lib/functions/updateFunction.js +2 -2
  195. package/dist/lib/handlers/handlerPrismaInput.d.ts +3 -1
  196. package/dist/lib/handlers/handlerPrismaInput.d.ts.map +1 -1
  197. package/dist/lib/handlers/handlerPrismaInput.jsx +1 -2
  198. package/dist/lib/initialMessages/updateInitialMessages.d.ts +3 -2
  199. package/dist/lib/initialMessages/updateInitialMessages.d.ts.map +1 -1
  200. package/dist/lib/initialMessages/updateInitialMessages.js +1 -2
  201. package/dist/lib/logs/createLog.d.ts +3 -2
  202. package/dist/lib/logs/createLog.d.ts.map +1 -1
  203. package/dist/lib/logs/createLog.js +1 -2
  204. package/dist/lib/mcpServers/connectMcpServer.d.ts +6 -4
  205. package/dist/lib/mcpServers/connectMcpServer.d.ts.map +1 -1
  206. package/dist/lib/mcpServers/connectMcpServer.js +7 -5
  207. package/dist/lib/mcpServers/getToolCallMcpServer.d.ts +3 -2
  208. package/dist/lib/mcpServers/getToolCallMcpServer.d.ts.map +1 -1
  209. package/dist/lib/mcpServers/getToolCallMcpServer.js +2 -1
  210. package/dist/lib/mcpServers/headers.d.ts +3 -2
  211. package/dist/lib/mcpServers/headers.d.ts.map +1 -1
  212. package/dist/lib/mcpServers/headers.js +2 -1
  213. package/dist/lib/mcpServers/url.d.ts +3 -2
  214. package/dist/lib/mcpServers/url.d.ts.map +1 -1
  215. package/dist/lib/mcpServers/url.js +2 -1
  216. package/dist/lib/metadata/serializeMetadata.d.ts +3 -1
  217. package/dist/lib/metadata/serializeMetadata.d.ts.map +1 -1
  218. package/dist/lib/metadata/serializeMetadata.js +3 -2
  219. package/dist/lib/organizationApiKeys/getOrganizationApiKey.d.ts +3 -2
  220. package/dist/lib/organizationApiKeys/getOrganizationApiKey.d.ts.map +1 -1
  221. package/dist/lib/organizationApiKeys/getOrganizationApiKey.js +1 -2
  222. package/dist/lib/runs/createRunOpts.d.ts +3 -2
  223. package/dist/lib/runs/createRunOpts.d.ts.map +1 -1
  224. package/dist/lib/runs/createRunOpts.js +2 -2
  225. package/dist/lib/tasks/getTaskToolKey.d.ts +3 -2
  226. package/dist/lib/tasks/getTaskToolKey.d.ts.map +1 -1
  227. package/dist/lib/tasks/getTaskToolKey.js +2 -1
  228. package/dist/lib/tasks/parseTaskToolArgs.d.ts +3 -2
  229. package/dist/lib/tasks/parseTaskToolArgs.d.ts.map +1 -1
  230. package/dist/lib/tasks/parseTaskToolArgs.js +4 -1
  231. package/dist/lib/tasks/scheduleTask.d.ts +3 -2
  232. package/dist/lib/tasks/scheduleTask.d.ts.map +1 -1
  233. package/dist/lib/tasks/scheduleTask.js +1 -2
  234. package/dist/lib/threads/createThread/index.d.ts +3 -3
  235. package/dist/lib/threads/createThread/index.d.ts.map +1 -1
  236. package/dist/lib/threads/createThread/index.js +1 -0
  237. package/dist/lib/threads/managedOpenaiThreadId.d.ts +3 -2
  238. package/dist/lib/threads/managedOpenaiThreadId.d.ts.map +1 -1
  239. package/dist/lib/threads/managedOpenaiThreadId.js +1 -2
  240. package/dist/lib/toolCalls/handleToolCall.d.ts +3 -2
  241. package/dist/lib/toolCalls/handleToolCall.d.ts.map +1 -1
  242. package/dist/lib/toolCalls/handleToolCall.js +5 -1
  243. package/dist/lib/tools/tools/index.d.ts +3 -2
  244. package/dist/lib/tools/tools/index.d.ts.map +1 -1
  245. package/dist/lib/tools/tools/index.js +9 -6
  246. package/package.json +2 -2
  247. package/scripts/utils/loadPrisma.ts +1 -2
  248. /package/.next/static/{kvFNeiykUJqaQCo-lW8D0 → rEvucoSBXJWMKfLWTgPF2}/_buildManifest.js +0 -0
  249. /package/.next/static/{kvFNeiykUJqaQCo-lW8D0 → rEvucoSBXJWMKfLWTgPF2}/_clientMiddlewareManifest.json +0 -0
  250. /package/.next/static/{kvFNeiykUJqaQCo-lW8D0 → rEvucoSBXJWMKfLWTgPF2}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[18622,(e,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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",()=>t]);let t={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type"}},88122,e=>{"use strict";e.s(["getApiKey",()=>s]);var t=e.i(55897),r=e.i(24493);let s=async({authorization:e,type:s})=>{if(!e)return null;let[,a]=e.split("Bearer ");return(0,t.validate)(a)?r.prisma.apiKey.findFirst({where:{type:s,value:a}}):null}},67083,e=>{"use strict";e.s(["isJSON",()=>t]);let t=e=>{try{return JSON.parse(e),!0}catch(e){return!1}}},40145,1065,e=>{"use strict";e.s(["serializeApiMcpServer",()=>t],40145);let t=({mcpServer:e})=>({id:e.id,transportType:e.transportType,sseTransport:e.sseTransport?(({sseTransport:e})=>({id:e.id,url:e.url,headers:e.headers,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()}))({sseTransport:e.sseTransport}):null,httpTransport:e.httpTransport?(({httpTransport:e})=>({id:e.id,url:e.url,headers:e.headers,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()}))({httpTransport:e.httpTransport}):null,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()});e.s(["mcpServerSchema",()=>p],1065);var r=e.i(13669),s=e.i(29173),a=e.i(67083);let n=r.z.object({command:r.z.string().min(1),args:r.z.string().min(1)}),i=r.z.object({url:r.z.string().min(1).url(),headers:r.z.string().min(1).refine(a.isJSON,{message:"Must be a valid JSON string."})}),o=r.z.object({url:r.z.string().min(1).url(),headers:r.z.string().min(1).refine(a.isJSON,{message:"Must be a valid JSON string."})}),p=r.z.object({transportType:r.z.nativeEnum(s.TransportType).refine(e=>e!==s.TransportType.STDIO,{message:`transportType cannot be ${s.TransportType.STDIO}`}),sseTransport:i.nullable().optional(),httpTransport:o.nullable().optional()}).superRefine((e,t)=>{if(e.transportType===s.TransportType.STDIO){t.addIssue({code:r.z.ZodIssueCode.custom,message:`Transport type ${s.TransportType.STDIO} is not allowed.`});let a=n.safeParse(e.stdioTransport);a.success||a.error.issues.forEach(e=>t.addIssue({...e,path:["stdioTransport",...e.path]}))}else if(e.transportType===s.TransportType.SSE){let r=i.safeParse(e.sseTransport);if(r.success)return;r.error.issues.forEach(e=>t.addIssue({...e,path:["sseTransport",...e.path]}))}else if(e.transportType===s.TransportType.HTTP){let r=o.safeParse(e.httpTransport);if(r.success)return;r.error.issues.forEach(e=>t.addIssue({...e,path:["httpTransport",...e.path]}))}})},56584,e=>{"use strict";e.s([])},56410,e=>{"use strict";e.s(["handler",()=>H,"patchFetch",()=>k,"routeModule",()=>C,"serverHooks",()=>j,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>b],56410);var t=e.i(5865),r=e.i(43877),s=e.i(77767),a=e.i(92562),n=e.i(66256),i=e.i(5270),o=e.i(90231),p=e.i(82677),l=e.i(51081),d=e.i(89822),u=e.i(9124),c=e.i(39147),h=e.i(40568),T=e.i(87188),v=e.i(93695);e.i(57132);var x=e.i(80739);e.s(["GET",()=>E,"OPTIONS",()=>O,"POST",()=>N],14823);var m=e.i(49493),f=e.i(29173),g=e.i(11053),R=e.i(30611),y=e.i(24493),S=e.i(88122),w=e.i(40145),A=e.i(1065);let E=async(e,t)=>{let{assistantId:r}=await t.params,s=(await (0,g.headers)()).get("authorization");if(!s)return m.NextResponse.json({error:"No authorization header found"},{status:400});let a=await (0,S.getApiKey)({type:f.ApiKeyType.PRIVATE,authorization:s});if(!a)return m.NextResponse.json({error:"Invalid api key"},{status:400});let n=await y.prisma.assistant.findFirst({where:{id:r,workspaceId:a.workspaceId},include:{mcpServers:{include:{stdioTransport:!0,sseTransport:!0,httpTransport:!0},orderBy:{createdAt:"desc"}}}});return n?m.NextResponse.json({mcpServers:n.mcpServers.map(e=>(0,w.serializeApiMcpServer)({mcpServer:e}))},{headers:R.cacheHeaders}):m.NextResponse.json({error:"No assistant found"},{status:400})},N=async(e,t)=>{let{assistantId:r}=await t.params,s=(await (0,g.headers)()).get("authorization");if(!s)return m.NextResponse.json({error:"No authorization header found"},{status:400});let a=await (0,S.getApiKey)({authorization:s,type:f.ApiKeyType.PRIVATE});if(!a)return m.NextResponse.json({error:"Invalid api key"},{status:400});let n=await e.json(),i=A.mcpServerSchema.safeParse(n);if(!i.success)return m.NextResponse.json({error:"Invalid payload"},{status:400});let{transportType:o,sseTransport:p,httpTransport:l}=i.data,d=a.workspaceId;if(!await y.prisma.assistant.findFirst({where:{id:r,workspaceId:d}}))return m.NextResponse.json({error:"No assistant found"},{status:400});let u=await y.prisma.mcpServer.create({data:{transportType:o,...o===f.TransportType.SSE?{sseTransport:{create:{url:p.url,headers:JSON.parse(p.headers)}}}:{},...o===f.TransportType.HTTP?{httpTransport:{create:{url:l.url,headers:JSON.parse(l.headers)}}}:{},assistant:{connect:{id:r,workspaceId:d}}},include:{stdioTransport:!0,sseTransport:!0,httpTransport:!0}});return m.NextResponse.json({mcpServer:(0,w.serializeApiMcpServer)({mcpServer:u})},{headers:R.cacheHeaders})},O=()=>m.NextResponse.json({},{headers:R.cacheHeaders});var I=e.i(14823);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/assistants/[assistantId]/mcp-servers/route",pathname:"/api/assistants/[assistantId]/mcp-servers",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/mcp-servers/route.ts",nextConfigOutput:"",userland:I}),{workAsyncStorage:P,workUnitAsyncStorage:b,serverHooks:j}=C;function k(){return(0,s.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:b})}async function H(e,t,s){var m;let f="/api/assistants/[assistantId]/mcp-servers/route";f=f.replace(/\/index$/,"")||"/";let g=await C.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:R,params:y,nextConfig:S,isDraftMode:w,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:I}=g,P=(0,i.normalizeAppPath)(f),b=!!(A.dynamicRoutes[P]||A.routes[I]);if(b&&!w){let e=!!A.routes[I],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e)throw new v.NoFallbackError}let j=null;!b||C.isDev||w||(j="/index"===(j=I)?"/":j);let k=!0===C.isDev||!b,H=b&&!k,q=e.method||"GET",z=(0,n.getTracer)(),M=z.getActiveScopeSpan(),_={params:y,prerenderManifest:A,renderOpts:{experimental:{cacheComponents:!!S.experimental.cacheComponents,authInterrupts:!!S.experimental.authInterrupts},supportsDynamicResponse:k,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:null==(m=S.experimental)?void 0:m.cacheLife,isRevalidate:H,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s)=>C.onRequestError(e,t,s,E)},sharedContext:{buildId:R}},D=new o.NodeNextRequest(e),U=new o.NodeNextResponse(t),K=p.NextRequestAdapter.fromNodeNextRequest(D,(0,p.signalFromNodeResponse)(t));try{let i=async r=>C.handle(K,_).finally(()=>{if(!r)return;r.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=z.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=s.get("next.route");if(a){let e=`${q} ${a}`;r.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),r.updateName(e)}else r.updateName(`${q} ${e.url}`)}),o=async n=>{var o,p;let l=async({previousCacheEntry:r})=>{try{if(!(0,a.getRequestMeta)(e,"minimalMode")&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=_.renderOpts.fetchMetrics;let p=_.renderOpts.pendingWaitUntil;p&&s.waitUntil&&(s.waitUntil(p),p=void 0);let l=_.renderOpts.collectedTags;if(!b)return await (0,u.sendResponse)(D,U,o,_.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,c.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[T.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==_.renderOpts.collectedRevalidate&&!(_.renderOpts.collectedRevalidate>=T.INFINITE_CACHE)&&_.renderOpts.collectedRevalidate,s=void 0===_.renderOpts.collectedExpire||_.renderOpts.collectedExpire>=T.INFINITE_CACHE?void 0:_.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isRevalidate:H,isOnDemandRevalidate:N})},E),t}},v=await C.handleResponse({req:e,nextConfig:S,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:s.waitUntil});if(!b)return null;if((null==v||null==(o=v.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==v||null==(p=v.value)?void 0:p.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,a.getRequestMeta)(e,"minimalMode")||t.setHeader("x-nextjs-cache",N?"REVALIDATED":v.isMiss?"MISS":v.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,c.fromNodeOutgoingHttpHeaders)(v.value.headers);return(0,a.getRequestMeta)(e,"minimalMode")&&b||m.delete(T.NEXT_CACHE_TAGS_HEADER),!v.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(v.cacheControl)),await (0,u.sendResponse)(D,U,new Response(v.value.body,{headers:m,status:v.value.status||200})),null};M?await o(M):await z.withPropagatedContext(e.headers,()=>z.trace(l.BaseServerSpan.handleRequest,{spanName:`${q} ${e.url}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},o))}catch(t){if(t instanceof v.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isRevalidate:H,isOnDemandRevalidate:N})}),b)throw t;return await (0,u.sendResponse)(D,U,new Response(null,{status:500})),null}}}];
1
+ module.exports=[18622,(e,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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,t,r)=>{t.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",()=>t]);let t={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type"}},88122,e=>{"use strict";e.s(["getApiKey",()=>r]);var t=e.i(55897);let r=async({authorization:e,type:r,prisma:s})=>{if(!e)return null;let[,a]=e.split("Bearer ");return(0,t.validate)(a)?s.apiKey.findFirst({where:{type:r,value:a}}):null}},67083,e=>{"use strict";e.s(["isJSON",()=>t]);let t=e=>{try{return JSON.parse(e),!0}catch(e){return!1}}},40145,1065,e=>{"use strict";e.s(["serializeApiMcpServer",()=>t],40145);let t=({mcpServer:e})=>({id:e.id,transportType:e.transportType,sseTransport:e.sseTransport?(({sseTransport:e})=>({id:e.id,url:e.url,headers:e.headers,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()}))({sseTransport:e.sseTransport}):null,httpTransport:e.httpTransport?(({httpTransport:e})=>({id:e.id,url:e.url,headers:e.headers,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()}))({httpTransport:e.httpTransport}):null,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString()});e.s(["mcpServerSchema",()=>p],1065);var r=e.i(13669),s=e.i(29173),a=e.i(67083);let n=r.z.object({command:r.z.string().min(1),args:r.z.string().min(1)}),i=r.z.object({url:r.z.string().min(1).url(),headers:r.z.string().min(1).refine(a.isJSON,{message:"Must be a valid JSON string."})}),o=r.z.object({url:r.z.string().min(1).url(),headers:r.z.string().min(1).refine(a.isJSON,{message:"Must be a valid JSON string."})}),p=r.z.object({transportType:r.z.nativeEnum(s.TransportType).refine(e=>e!==s.TransportType.STDIO,{message:`transportType cannot be ${s.TransportType.STDIO}`}),sseTransport:i.nullable().optional(),httpTransport:o.nullable().optional()}).superRefine((e,t)=>{if(e.transportType===s.TransportType.STDIO){t.addIssue({code:r.z.ZodIssueCode.custom,message:`Transport type ${s.TransportType.STDIO} is not allowed.`});let a=n.safeParse(e.stdioTransport);a.success||a.error.issues.forEach(e=>t.addIssue({...e,path:["stdioTransport",...e.path]}))}else if(e.transportType===s.TransportType.SSE){let r=i.safeParse(e.sseTransport);if(r.success)return;r.error.issues.forEach(e=>t.addIssue({...e,path:["sseTransport",...e.path]}))}else if(e.transportType===s.TransportType.HTTP){let r=o.safeParse(e.httpTransport);if(r.success)return;r.error.issues.forEach(e=>t.addIssue({...e,path:["httpTransport",...e.path]}))}})},56584,e=>{"use strict";e.s([])},56410,e=>{"use strict";e.s(["handler",()=>z,"patchFetch",()=>q,"routeModule",()=>P,"serverHooks",()=>H,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>k],56410);var t=e.i(5865),r=e.i(43877),s=e.i(77767),a=e.i(92562),n=e.i(66256),i=e.i(5270),o=e.i(90231),p=e.i(82677),l=e.i(51081),d=e.i(89822),u=e.i(9124),c=e.i(39147),h=e.i(40568),T=e.i(87188),v=e.i(93695);e.i(57132);var x=e.i(80739);e.s(["GET",()=>N,"OPTIONS",()=>C,"POST",()=>I,"buildGET",()=>E,"buildPOST",()=>O],14823);var m=e.i(49493),f=e.i(29173),g=e.i(11053),R=e.i(30611),y=e.i(24493),S=e.i(88122),w=e.i(40145),A=e.i(1065);let E=({prisma:e=y.prisma}={})=>async(t,r)=>{let{assistantId:s}=await r.params,a=(await (0,g.headers)()).get("authorization");if(!a)return m.NextResponse.json({error:"No authorization header found"},{status:400});let n=await (0,S.getApiKey)({type:f.ApiKeyType.PRIVATE,authorization:a,prisma:e});if(!n)return m.NextResponse.json({error:"Invalid api key"},{status:400});let i=await e.assistant.findFirst({where:{id:s,workspaceId:n.workspaceId},include:{mcpServers:{include:{stdioTransport:!0,sseTransport:!0,httpTransport:!0},orderBy:{createdAt:"desc"}}}});return i?m.NextResponse.json({mcpServers:i.mcpServers.map(e=>(0,w.serializeApiMcpServer)({mcpServer:e}))},{headers:R.cacheHeaders}):m.NextResponse.json({error:"No assistant found"},{status:400})},N=E(),O=({prisma:e=y.prisma}={})=>async(t,r)=>{let{assistantId:s}=await r.params,a=(await (0,g.headers)()).get("authorization");if(!a)return m.NextResponse.json({error:"No authorization header found"},{status:400});let n=await (0,S.getApiKey)({authorization:a,type:f.ApiKeyType.PRIVATE,prisma:e});if(!n)return m.NextResponse.json({error:"Invalid api key"},{status:400});let i=await t.json(),o=A.mcpServerSchema.safeParse(i);if(!o.success)return m.NextResponse.json({error:"Invalid payload"},{status:400});let{transportType:p,sseTransport:l,httpTransport:d}=o.data,u=n.workspaceId;if(!await e.assistant.findFirst({where:{id:s,workspaceId:u}}))return m.NextResponse.json({error:"No assistant found"},{status:400});let c=await e.mcpServer.create({data:{transportType:p,...p===f.TransportType.SSE?{sseTransport:{create:{url:l.url,headers:JSON.parse(l.headers)}}}:{},...p===f.TransportType.HTTP?{httpTransport:{create:{url:d.url,headers:JSON.parse(d.headers)}}}:{},assistant:{connect:{id:s,workspaceId:u}}},include:{stdioTransport:!0,sseTransport:!0,httpTransport:!0}});return m.NextResponse.json({mcpServer:(0,w.serializeApiMcpServer)({mcpServer:c})},{headers:R.cacheHeaders})},I=O(),C=()=>m.NextResponse.json({},{headers:R.cacheHeaders});var b=e.i(14823);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/assistants/[assistantId]/mcp-servers/route",pathname:"/api/assistants/[assistantId]/mcp-servers",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/mcp-servers/route.ts",nextConfigOutput:"",userland:b}),{workAsyncStorage:j,workUnitAsyncStorage:k,serverHooks:H}=P;function q(){return(0,s.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:k})}async function z(e,t,s){var m;let f="/api/assistants/[assistantId]/mcp-servers/route";f=f.replace(/\/index$/,"")||"/";let g=await P.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:R,params:y,nextConfig:S,isDraftMode:w,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:I}=g,C=(0,i.normalizeAppPath)(f),b=!!(A.dynamicRoutes[C]||A.routes[I]);if(b&&!w){let e=!!A.routes[I],t=A.dynamicRoutes[C];if(t&&!1===t.fallback&&!e)throw new v.NoFallbackError}let j=null;!b||P.isDev||w||(j="/index"===(j=I)?"/":j);let k=!0===P.isDev||!b,H=b&&!k,q=e.method||"GET",z=(0,n.getTracer)(),M=z.getActiveScopeSpan(),_={params:y,prerenderManifest:A,renderOpts:{experimental:{cacheComponents:!!S.experimental.cacheComponents,authInterrupts:!!S.experimental.authInterrupts},supportsDynamicResponse:k,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:null==(m=S.experimental)?void 0:m.cacheLife,isRevalidate:H,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s)=>P.onRequestError(e,t,s,E)},sharedContext:{buildId:R}},D=new o.NodeNextRequest(e),U=new o.NodeNextResponse(t),K=p.NextRequestAdapter.fromNodeNextRequest(D,(0,p.signalFromNodeResponse)(t));try{let i=async r=>P.handle(K,_).finally(()=>{if(!r)return;r.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=z.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=s.get("next.route");if(a){let e=`${q} ${a}`;r.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),r.updateName(e)}else r.updateName(`${q} ${e.url}`)}),o=async n=>{var o,p;let l=async({previousCacheEntry:r})=>{try{if(!(0,a.getRequestMeta)(e,"minimalMode")&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=_.renderOpts.fetchMetrics;let p=_.renderOpts.pendingWaitUntil;p&&s.waitUntil&&(s.waitUntil(p),p=void 0);let l=_.renderOpts.collectedTags;if(!b)return await (0,u.sendResponse)(D,U,o,_.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,c.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[T.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==_.renderOpts.collectedRevalidate&&!(_.renderOpts.collectedRevalidate>=T.INFINITE_CACHE)&&_.renderOpts.collectedRevalidate,s=void 0===_.renderOpts.collectedExpire||_.renderOpts.collectedExpire>=T.INFINITE_CACHE?void 0:_.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isRevalidate:H,isOnDemandRevalidate:N})},E),t}},v=await P.handleResponse({req:e,nextConfig:S,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:s.waitUntil});if(!b)return null;if((null==v||null==(o=v.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==v||null==(p=v.value)?void 0:p.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,a.getRequestMeta)(e,"minimalMode")||t.setHeader("x-nextjs-cache",N?"REVALIDATED":v.isMiss?"MISS":v.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,c.fromNodeOutgoingHttpHeaders)(v.value.headers);return(0,a.getRequestMeta)(e,"minimalMode")&&b||m.delete(T.NEXT_CACHE_TAGS_HEADER),!v.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(v.cacheControl)),await (0,u.sendResponse)(D,U,new Response(v.value.body,{headers:m,status:v.value.status||200})),null};M?await o(M):await z.withPropagatedContext(e.headers,()=>z.trace(l.BaseServerSpan.handleRequest,{spanName:`${q} ${e.url}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},o))}catch(t){if(t instanceof v.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isRevalidate:H,isOnDemandRevalidate:N})}),b)throw t;return await (0,u.sendResponse)(D,U,new Response(null,{status:500})),null}}}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__eb816e13._.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/misc/isJSON.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/mcpServers/serializeApiMcpServer.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/mcpServers/mcpServerSchema.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/mcp-servers/route.ts","turbopack:///[project]/supercorp/superinterface/node_modules/next/dist/esm/build/templates/app-route.js"],"sourcesContent":["export const cacheHeaders = {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',\n 'Access-Control-Allow-Headers': 'Content-Type',\n}\n","import { ApiKeyType, ApiKey } from '@prisma/client'\nimport { validate } from 'uuid'\nimport { prisma } from '@/lib/prisma'\n\nexport const getApiKey = async ({\n authorization,\n type,\n}: {\n authorization: string | null\n type: ApiKeyType\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","export const isJSON = (value: string) => {\n try {\n JSON.parse(value)\n return true\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false\n }\n}\n","import type { Prisma, SseTransport, HttpTransport } from '@prisma/client'\n\nconst serializeApiSseTransport = ({\n sseTransport,\n}: {\n sseTransport: SseTransport\n}) => ({\n id: sseTransport.id,\n url: sseTransport.url,\n headers: sseTransport.headers,\n createdAt: sseTransport.createdAt.toISOString(),\n updatedAt: sseTransport.updatedAt.toISOString(),\n})\n\nconst serializeApiHttpTransport = ({\n httpTransport,\n}: {\n httpTransport: HttpTransport\n}) => ({\n id: httpTransport.id,\n url: httpTransport.url,\n headers: httpTransport.headers,\n createdAt: httpTransport.createdAt.toISOString(),\n updatedAt: httpTransport.updatedAt.toISOString(),\n})\n\nexport const serializeApiMcpServer = ({\n mcpServer,\n}: {\n mcpServer: Prisma.McpServerGetPayload<{\n include: {\n sseTransport: true\n httpTransport: true\n }\n }>\n}) => ({\n id: mcpServer.id,\n transportType: mcpServer.transportType,\n sseTransport: mcpServer.sseTransport\n ? serializeApiSseTransport({\n sseTransport: mcpServer.sseTransport,\n })\n : null,\n httpTransport: mcpServer.httpTransport\n ? serializeApiHttpTransport({\n httpTransport: mcpServer.httpTransport,\n })\n : null,\n createdAt: mcpServer.createdAt.toISOString(),\n updatedAt: mcpServer.updatedAt.toISOString(),\n})\n","import { z } from 'zod'\nimport { TransportType } from '@prisma/client'\nimport { isJSON } from '@/lib/misc/isJSON'\n\nconst stdioTransportSchema = z.object({\n command: z.string().min(1),\n args: z.string().min(1),\n})\n\nconst sseTransportSchema = z.object({\n url: z.string().min(1).url(),\n headers: z.string().min(1).refine(isJSON, {\n message: 'Must be a valid JSON string.',\n }),\n})\n\nconst httpTransportSchema = z.object({\n url: z.string().min(1).url(),\n headers: z.string().min(1).refine(isJSON, {\n message: 'Must be a valid JSON string.',\n }),\n})\n\nexport const baseSchema = z.object({\n transportType: z\n .nativeEnum(TransportType)\n .refine((t) => t !== TransportType.STDIO, {\n message: `transportType cannot be ${TransportType.STDIO}`,\n }),\n sseTransport: sseTransportSchema.nullable().optional(),\n httpTransport: httpTransportSchema.nullable().optional(),\n})\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const superRefine = (values: any, ctx: any) => {\n if (values.transportType === TransportType.STDIO) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Transport type ${TransportType.STDIO} is not allowed.`,\n })\n\n const result = stdioTransportSchema.safeParse(values.stdioTransport)\n\n if (result.success) return\n\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['stdioTransport', ...issue.path],\n }),\n )\n } else if (values.transportType === TransportType.SSE) {\n const result = sseTransportSchema.safeParse(values.sseTransport)\n\n if (result.success) return\n\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['sseTransport', ...issue.path],\n }),\n )\n } else if (values.transportType === TransportType.HTTP) {\n const result = httpTransportSchema.safeParse(values.httpTransport)\n\n if (result.success) return\n\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['httpTransport', ...issue.path],\n }),\n )\n }\n}\n\nexport const mcpServerSchema = baseSchema.superRefine(superRefine)\n","import { type NextRequest, NextResponse } from 'next/server'\nimport { ApiKeyType, TransportType } from '@prisma/client'\nimport { headers } from 'next/headers'\nimport { cacheHeaders } from '@/lib/cache/cacheHeaders'\nimport { prisma } from '@/lib/prisma'\nimport { getApiKey } from '@/lib/apiKeys/getApiKey'\nimport { serializeApiMcpServer } from '@/lib/mcpServers/serializeApiMcpServer'\nimport { mcpServerSchema } from '@/lib/mcpServers/mcpServerSchema'\n\nexport const GET = async (\n _request: NextRequest,\n props: { params: Promise<{ assistantId: string }> },\n) => {\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 })\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 mcpServers: {\n include: {\n stdioTransport: true,\n sseTransport: true,\n httpTransport: true,\n },\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 mcpServers: assistant.mcpServers.map((mcpServer) =>\n serializeApiMcpServer({\n mcpServer,\n }),\n ),\n },\n { headers: cacheHeaders },\n )\n}\n\nexport const POST = async (\n request: NextRequest,\n props: { params: Promise<{ assistantId: string }> },\n) => {\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 })\n\n if (!privateApiKey) {\n return NextResponse.json({ error: 'Invalid api key' }, { status: 400 })\n }\n\n const body = await request.json()\n const parsed = mcpServerSchema.safeParse(body)\n\n if (!parsed.success) {\n return NextResponse.json({ error: 'Invalid payload' }, { status: 400 })\n }\n\n const { transportType, sseTransport, httpTransport } = parsed.data\n\n const workspaceId = privateApiKey.workspaceId\n\n const assistant = await prisma.assistant.findFirst({\n where: { id: assistantId, workspaceId },\n })\n\n if (!assistant) {\n return NextResponse.json({ error: 'No assistant found' }, { status: 400 })\n }\n\n const mcpServer = await prisma.mcpServer.create({\n data: {\n transportType,\n ...(transportType === TransportType.SSE\n ? {\n sseTransport: {\n create: {\n url: sseTransport!.url,\n headers: JSON.parse(sseTransport!.headers),\n },\n },\n }\n : {}),\n ...(transportType === TransportType.HTTP\n ? {\n httpTransport: {\n create: {\n url: httpTransport!.url,\n headers: JSON.parse(httpTransport!.headers),\n },\n },\n }\n : {}),\n assistant: {\n connect: {\n id: assistantId,\n workspaceId,\n },\n },\n },\n include: {\n stdioTransport: true,\n sseTransport: true,\n httpTransport: true,\n },\n })\n\n return NextResponse.json(\n {\n mcpServer: serializeApiMcpServer({ mcpServer }),\n },\n { headers: cacheHeaders },\n )\n}\n\nexport const OPTIONS = () =>\n NextResponse.json(\n {},\n {\n headers: cacheHeaders,\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]/mcp-servers/route\",\n pathname: \"/api/assistants/[assistantId]/mcp-servers\",\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]/mcp-servers/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]/mcp-servers/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"],"names":[],"mappings":"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","ignoreList":[6]}
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/misc/isJSON.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/mcpServers/serializeApiMcpServer.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/lib/mcpServers/mcpServerSchema.ts","turbopack:///[project]/supercorp/superinterface/packages/server/src/app/api/assistants/[assistantId]/mcp-servers/route.ts","turbopack:///[project]/supercorp/superinterface/node_modules/next/dist/esm/build/templates/app-route.js"],"sourcesContent":["export const cacheHeaders = {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',\n 'Access-Control-Allow-Headers': 'Content-Type',\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","export const isJSON = (value: string) => {\n try {\n JSON.parse(value)\n return true\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false\n }\n}\n","import type { Prisma, SseTransport, HttpTransport } from '@prisma/client'\n\nconst serializeApiSseTransport = ({\n sseTransport,\n}: {\n sseTransport: SseTransport\n}) => ({\n id: sseTransport.id,\n url: sseTransport.url,\n headers: sseTransport.headers,\n createdAt: sseTransport.createdAt.toISOString(),\n updatedAt: sseTransport.updatedAt.toISOString(),\n})\n\nconst serializeApiHttpTransport = ({\n httpTransport,\n}: {\n httpTransport: HttpTransport\n}) => ({\n id: httpTransport.id,\n url: httpTransport.url,\n headers: httpTransport.headers,\n createdAt: httpTransport.createdAt.toISOString(),\n updatedAt: httpTransport.updatedAt.toISOString(),\n})\n\nexport const serializeApiMcpServer = ({\n mcpServer,\n}: {\n mcpServer: Prisma.McpServerGetPayload<{\n include: {\n sseTransport: true\n httpTransport: true\n }\n }>\n}) => ({\n id: mcpServer.id,\n transportType: mcpServer.transportType,\n sseTransport: mcpServer.sseTransport\n ? serializeApiSseTransport({\n sseTransport: mcpServer.sseTransport,\n })\n : null,\n httpTransport: mcpServer.httpTransport\n ? serializeApiHttpTransport({\n httpTransport: mcpServer.httpTransport,\n })\n : null,\n createdAt: mcpServer.createdAt.toISOString(),\n updatedAt: mcpServer.updatedAt.toISOString(),\n})\n","import { z } from 'zod'\nimport { TransportType } from '@prisma/client'\nimport { isJSON } from '@/lib/misc/isJSON'\n\nconst stdioTransportSchema = z.object({\n command: z.string().min(1),\n args: z.string().min(1),\n})\n\nconst sseTransportSchema = z.object({\n url: z.string().min(1).url(),\n headers: z.string().min(1).refine(isJSON, {\n message: 'Must be a valid JSON string.',\n }),\n})\n\nconst httpTransportSchema = z.object({\n url: z.string().min(1).url(),\n headers: z.string().min(1).refine(isJSON, {\n message: 'Must be a valid JSON string.',\n }),\n})\n\nexport const baseSchema = z.object({\n transportType: z\n .nativeEnum(TransportType)\n .refine((t) => t !== TransportType.STDIO, {\n message: `transportType cannot be ${TransportType.STDIO}`,\n }),\n sseTransport: sseTransportSchema.nullable().optional(),\n httpTransport: httpTransportSchema.nullable().optional(),\n})\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const superRefine = (values: any, ctx: any) => {\n if (values.transportType === TransportType.STDIO) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Transport type ${TransportType.STDIO} is not allowed.`,\n })\n\n const result = stdioTransportSchema.safeParse(values.stdioTransport)\n\n if (result.success) return\n\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['stdioTransport', ...issue.path],\n }),\n )\n } else if (values.transportType === TransportType.SSE) {\n const result = sseTransportSchema.safeParse(values.sseTransport)\n\n if (result.success) return\n\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['sseTransport', ...issue.path],\n }),\n )\n } else if (values.transportType === TransportType.HTTP) {\n const result = httpTransportSchema.safeParse(values.httpTransport)\n\n if (result.success) return\n\n result.error.issues.forEach((issue) =>\n ctx.addIssue({\n ...issue,\n path: ['httpTransport', ...issue.path],\n }),\n )\n }\n}\n\nexport const mcpServerSchema = baseSchema.superRefine(superRefine)\n","import { type NextRequest, NextResponse } from 'next/server'\nimport { ApiKeyType, TransportType, type PrismaClient } from '@prisma/client'\nimport { headers } from 'next/headers'\nimport { cacheHeaders } from '@/lib/cache/cacheHeaders'\nimport { prisma as defaultPrisma } from '@/lib/prisma'\nimport { getApiKey } from '@/lib/apiKeys/getApiKey'\nimport { serializeApiMcpServer } from '@/lib/mcpServers/serializeApiMcpServer'\nimport { mcpServerSchema } from '@/lib/mcpServers/mcpServerSchema'\n\nexport const buildGET =\n ({ prisma = defaultPrisma }: { prisma?: PrismaClient } = {}) =>\n async (\n _request: NextRequest,\n props: { params: Promise<{ assistantId: string }> },\n ) => {\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 mcpServers: {\n include: {\n stdioTransport: true,\n sseTransport: true,\n httpTransport: true,\n },\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 mcpServers: assistant.mcpServers.map((mcpServer) =>\n serializeApiMcpServer({\n mcpServer,\n }),\n ),\n },\n { headers: cacheHeaders },\n )\n }\n\nexport const GET = buildGET()\n\nexport const buildPOST =\n ({ prisma = defaultPrisma }: { prisma?: PrismaClient } = {}) =>\n async (\n request: NextRequest,\n props: { params: Promise<{ assistantId: string }> },\n ) => {\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 body = await request.json()\n const parsed = mcpServerSchema.safeParse(body)\n\n if (!parsed.success) {\n return NextResponse.json({ error: 'Invalid payload' }, { status: 400 })\n }\n\n const { transportType, sseTransport, httpTransport } = parsed.data\n\n const workspaceId = privateApiKey.workspaceId\n\n const assistant = await prisma.assistant.findFirst({\n where: { id: assistantId, workspaceId },\n })\n\n if (!assistant) {\n return NextResponse.json({ error: 'No assistant found' }, { status: 400 })\n }\n\n const mcpServer = await prisma.mcpServer.create({\n data: {\n transportType,\n ...(transportType === TransportType.SSE\n ? {\n sseTransport: {\n create: {\n url: sseTransport!.url,\n headers: JSON.parse(sseTransport!.headers),\n },\n },\n }\n : {}),\n ...(transportType === TransportType.HTTP\n ? {\n httpTransport: {\n create: {\n url: httpTransport!.url,\n headers: JSON.parse(httpTransport!.headers),\n },\n },\n }\n : {}),\n assistant: {\n connect: {\n id: assistantId,\n workspaceId,\n },\n },\n },\n include: {\n stdioTransport: true,\n sseTransport: true,\n httpTransport: true,\n },\n })\n\n return NextResponse.json(\n {\n mcpServer: serializeApiMcpServer({ mcpServer }),\n },\n { headers: cacheHeaders },\n )\n }\n\nexport const POST = buildPOST()\n\nexport const OPTIONS = () =>\n NextResponse.json(\n {},\n {\n headers: cacheHeaders,\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]/mcp-servers/route\",\n pathname: \"/api/assistants/[assistantId]/mcp-servers\",\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]/mcp-servers/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]/mcp-servers/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"],"names":[],"mappings":"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","ignoreList":[6]}
@@ -7,6 +7,6 @@ If you want to disable QStash Verification, you should clear env variables QSTAS
7
7
  > Step Names from the request: ${JSON.stringify(s)}
8
8
  Step Types from the request: ${JSON.stringify(o)}
9
9
  > Step Names expected: ${JSON.stringify(a)}
10
- Step Types expected: ${JSON.stringify(i)}`)}throw r}},e6=e=>[...e].sort((e,t)=>(e=>e.targetStep??e.stepId)(e)-(e=>e.targetStep??e.stepId)(t)),e7=class{stepName;constructor(e){this.stepName=e}},e3=class extends e7{stepFunction;stepType="Run";constructor(e,t){super(e),this.stepFunction=t}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,concurrent:e,targetStep:t}}async getResultStep(e,t){let r=this.stepFunction();return r instanceof Promise&&(r=await r),{stepId:t,stepName:this.stepName,stepType:this.stepType,out:r,concurrent:e}}},e9=class extends e7{sleep;stepType="SleepFor";constructor(e,t){super(e),this.sleep=t}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,sleepFor:this.sleep,concurrent:e,targetStep:t}}async getResultStep(e,t){return await Promise.resolve({stepId:t,stepName:this.stepName,stepType:this.stepType,sleepFor:this.sleep,concurrent:e})}},te=class extends e7{sleepUntil;stepType="SleepUntil";constructor(e,t){super(e),this.sleepUntil=t}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,sleepUntil:this.sleepUntil,concurrent:e,targetStep:t}}async getResultStep(e,t){return await Promise.resolve({stepId:t,stepName:this.stepName,stepType:this.stepType,sleepUntil:this.sleepUntil,concurrent:e})}},tt=class extends e7{url;method;body;headers;stepType="Call";constructor(e,t,r,a,i){super(e),this.url=t,this.method=r,this.body=a,this.headers=i}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,concurrent:e,targetStep:t}}async getResultStep(e,t){return await Promise.resolve({stepId:t,stepName:this.stepName,stepType:this.stepType,concurrent:e,callUrl:this.url,callMethod:this.method,callBody:this.body,callHeaders:this.headers})}},tr=class{executor;steps;qstashClient;workflowRunId;url;failureUrl;requestPayload;headers;rawInitialPayload;env;retries;constructor({qstashClient:e,workflowRunId:t,headers:r,steps:a,url:i,failureUrl:s,debug:o,initialPayload:n,rawInitialPayload:c,env:f,retries:d}){this.qstashClient=e,this.workflowRunId=t,this.steps=a,this.url=i,this.failureUrl=s,this.headers=r,this.requestPayload=n,this.rawInitialPayload=c??JSON.stringify(this.requestPayload),this.env=f??{},this.retries=d??3,this.executor=new e4(this,this.steps,o)}async run(e,t){let r=()=>this.executor.wrapStep(e,t);return this.addStep(new e3(e,r))}async sleep(e,t){await this.addStep(new e9(e,t))}async sleepUntil(e,t){let r;r="number"==typeof t?t:Math.round((t="string"==typeof t?new Date(t):t).getTime()/1e3),await this.addStep(new te(e,r))}async call(e,t,r,a,i){let s=await this.addStep(new tt(e,t,r,a,i??{}));try{return JSON.parse(s)}catch{return s}}async addStep(e){return await this.executor.addStep(e)}},ta=class e extends tr{static disabledMessage="disabled-qstash-worklfow-run";async addStep(t){throw new ev(e.disabledMessage)}static async tryAuthentication(t,r){let a=new e({qstashClient:new ej({baseUrl:"disabled-client",token:"disabled-client"}),workflowRunId:r.workflowRunId,headers:r.headers,steps:[],url:r.url,failureUrl:r.failureUrl,initialPayload:r.requestPayload,rawInitialPayload:r.rawInitialPayload,env:r.env,retries:r.retries});try{await t(a)}catch(e){if(e instanceof ev&&e.stepName===this.disabledMessage)return ec("step-found");return ef(e)}return ec("run-ended")}},ti=["DEBUG","INFO","SUBMIT","WARN","ERROR"],ts=class e{logs=[];options;workflowRunId=void 0;constructor(e){this.options=e}async log(e,t,r){if(this.shouldLog(e)){let a={timestamp:Date.now(),workflowRunId:this.workflowRunId??"",logLevel:e,eventType:t,details:r};this.logs.push(a),"console"===this.options.logOutput&&this.writeToConsole(a),await new Promise(e=>setTimeout(e,100))}}setWorkflowRunId(e){this.workflowRunId=e}writeToConsole(e){console.log(JSON.stringify(e,void 0,2))}shouldLog(e){return ti.indexOf(e)>=ti.indexOf(this.options.logLevel)}static getLogger(t){return"object"==typeof t?t:t?new e({logLevel:"INFO",logOutput:"console"}):void 0}},to=async e=>{try{return await e.text()}catch{return}},tn=async(e,t)=>{if(e.length<2)return!1;let r=e.at(-1),a=r.stepId,i=r.targetStep;for(let r=0;r<e.length-1;r++){let s=e[r];if(s.stepId===a&&s.targetStep===i){let e=`Upstash Workflow: The step '${s.stepName}' with id '${s.stepId}' has run twice during workflow execution. Rest of the workflow will continue running as usual.`;return await t?.log("WARN","RESPONSE_DEFAULT",e),console.warn(e),!0}}return!1},tc=async(e,t,r)=>{if(t)return{rawInitialPayload:e??"",steps:[],isLastDuplicate:!1};{if(!e)throw new ew("Only first call can have an empty body");let{rawInitialPayload:t,steps:a}=(e=>{let[t,...r]=JSON.parse(e),a=eJ(t.body),i=[{stepId:0,stepName:"init",stepType:"Initial",out:a,concurrent:1},...r.filter(e=>"step"===e.callType).map(e=>JSON.parse(eJ(e.body)))];return{rawInitialPayload:a,steps:i}})(e),i=await tn(a,r);return{rawInitialPayload:t,steps:(e=>{let t=[],r=[],a=[];for(let i of e)0===i.stepId?t.includes(i.targetStep??0)||(a.push(i),t.push(i.targetStep??0)):r.includes(i.stepId)||(a.push(i),r.push(i.stepId));return a})(a),isLastDuplicate:i}}},tf=async(e,t,r,a,i,s)=>{if("true"!==e.headers.get(eF))return ec("not-failure-callback");if(!i)return ef(new ew("Workflow endpoint is called to handle a failure, but a failureFunction is not provided in serve options. Either provide a failureUrl or a failureFunction."));try{let{status:e,header:o,body:n,url:c,sourceHeader:f,sourceBody:d,workflowRunId:l}=JSON.parse(t),x=n?eJ(n):"{}",h=JSON.parse(x),{rawInitialPayload:u,steps:p,isLastDuplicate:b}=await tc(eJ(d),!1,s),y=new tr({qstashClient:r,workflowRunId:l,initialPayload:a(u),rawInitialPayload:u,headers:eZ(new Headers(f)),steps:p,url:c,failureUrl:c,debug:s});await i(y,e,h.message,o)}catch(e){return ef(e)}return ec("is-failure-callback")},td=(e,t)=>{let{qstashClient:r,onStepFinish:a,initialPayloadParser:i,url:s,verbose:o,receiver:n,failureUrl:c,failureFunction:f,baseUrl:d,env:l,retries:x}=(e=>{let t=e?.env??("undefined"==typeof process?{}:process.env),r=!!(t.QSTASH_CURRENT_SIGNING_KEY&&t.QSTASH_NEXT_SIGNING_KEY);return{qstashClient:new ej({baseUrl:t.QSTASH_URL,token:t.QSTASH_TOKEN}),onStepFinish:(e,t)=>new Response(JSON.stringify({workflowRunId:e}),{status:200}),initialPayloadParser:e=>{if(e)try{return JSON.parse(e)}catch(t){if(t instanceof SyntaxError)return e;throw t}},receiver:r?new eh({currentSigningKey:t.QSTASH_CURRENT_SIGNING_KEY,nextSigningKey:t.QSTASH_NEXT_SIGNING_KEY}):void 0,baseUrl:t.UPSTASH_WORKFLOW_URL,env:t,retries:3,...e}})(t),h=ts.getLogger(o),u=async t=>{let o=s??t.url,u=d?o.replace(/^(https?:\/\/[^/]+)(\/.*)?$/,(e,t,r)=>d+(r||"")):o;u!==o&&await h?.log("WARN","ENDPOINT_START",{warning:`Upstash Workflow: replacing the base of the url with "${d}" and using it as workflow endpoint.`,originalURL:o,updatedURL:u});let p=f?u:c,b=await to(t)??"";await e2(b,t.headers.get("upstash-signature"),n),await h?.log("INFO","ENDPOINT_START");let y=await tf(t,b,r,i,f);if(y.isErr())throw y.error;if("is-failure-callback"===y.value)return await h?.log("WARN","RESPONSE_DEFAULT","failureFunction executed"),a("no-workflow-id","failure-callback");let{isFirstInvocation:m,workflowRunId:w}=(e=>{let t=e.headers.get(eG),r=!t;if(!r&&"1"!==t)throw new ew(`Incompatible workflow sdk protocol version. Expected 1, got ${t} from the request.`);let a=r?`wfr_${[...crypto.getRandomValues(new Uint8Array(21))].map(e=>ez[e%ez.length]).join("")}`:e.headers.get(eK)??"";if(0===a.length)throw new ew("Couldn't get workflow id from header");return{isFirstInvocation:r,workflowRunId:a}})(t);h?.setWorkflowRunId(w);let{rawInitialPayload:v,steps:g,isLastDuplicate:S}=await tc(b,m,h);if(S)return a("no-workflow-id","duplicate-step");let _=new tr({qstashClient:r,workflowRunId:w,initialPayload:i(v),rawInitialPayload:v,headers:eZ(t.headers),steps:g,url:u,failureUrl:p,debug:h,env:l}),k=await ta.tryAuthentication(e,_);if(k.isErr())throw await h?.log("ERROR","ERROR",{error:k.error.message}),k.error;if("run-ended"===k.value)return a("no-workflow-id","auth-fail");let E=await e0(t,v,r,u,p,x,h);if(E.isErr())throw await h?.log("ERROR","SUBMIT_THIRD_PARTY_RESULT",{error:E.error.message}),E.error;if("continue-workflow"===E.value){let t=m?await eY(_,x,h):await eX({onStep:async()=>e(_),onCleanup:async()=>{await eV(_,h)}});if(t.isErr())throw await h?.log("ERROR","ERROR",{error:t.error.message}),t.error;return await h?.log("INFO","RESPONSE_WORKFLOW"),a(_.workflowRunId,"success")}return await h?.log("INFO","RESPONSE_DEFAULT"),a("no-workflow-id","fromCallback")};return async e=>{try{return await u(e)}catch(e){return console.error(e),new Response(JSON.stringify(eg(e)),{status:500})}}},tl=class{http;constructor(e){this.http=e}async cancel(e){return await this.http.request({path:["v2","workflows","runs",`${e}?cancel=true`],method:"DELETE",parseResponseAsJson:!1})??!0}};let tx=new ej({token:process.env.QSTASH_TOKEN})},60172,e=>{"use strict";e.s(["scheduleTask",()=>n]);var t=e.i(56512),r=e.i(57855),a=e.i(55348),i=e.i(30021),s=e.i(24493),o=e.i(772);t.default.extend(r.default),t.default.extend(a.default);let n=async({task:e})=>{if(!e.schedule||"object"!=typeof e.schedule)return;let r=(0,o.getNextOccurrence)({schedule:e.schedule});if(!r)return;let a=t.default.utc(r);if(!a.isValid())return;let n=Math.max(0,a.diff(t.default.utc(),"second")),{messageId:c}=await i.qstash.publishJSON({url:`${process.env.NEXT_PUBLIC_SUPERINTERFACE_BASE_URL}/api/cloud/tasks/callback`,body:{taskId:e.id},delay:n});if(!c)throw Error("Failed to schedule task: missing QStash ID");await s.prisma.task.update({where:{id:e.id},data:{qstashMessageId:c}})}}];
10
+ Step Types expected: ${JSON.stringify(i)}`)}throw r}},e6=e=>[...e].sort((e,t)=>(e=>e.targetStep??e.stepId)(e)-(e=>e.targetStep??e.stepId)(t)),e7=class{stepName;constructor(e){this.stepName=e}},e3=class extends e7{stepFunction;stepType="Run";constructor(e,t){super(e),this.stepFunction=t}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,concurrent:e,targetStep:t}}async getResultStep(e,t){let r=this.stepFunction();return r instanceof Promise&&(r=await r),{stepId:t,stepName:this.stepName,stepType:this.stepType,out:r,concurrent:e}}},e9=class extends e7{sleep;stepType="SleepFor";constructor(e,t){super(e),this.sleep=t}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,sleepFor:this.sleep,concurrent:e,targetStep:t}}async getResultStep(e,t){return await Promise.resolve({stepId:t,stepName:this.stepName,stepType:this.stepType,sleepFor:this.sleep,concurrent:e})}},te=class extends e7{sleepUntil;stepType="SleepUntil";constructor(e,t){super(e),this.sleepUntil=t}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,sleepUntil:this.sleepUntil,concurrent:e,targetStep:t}}async getResultStep(e,t){return await Promise.resolve({stepId:t,stepName:this.stepName,stepType:this.stepType,sleepUntil:this.sleepUntil,concurrent:e})}},tt=class extends e7{url;method;body;headers;stepType="Call";constructor(e,t,r,a,i){super(e),this.url=t,this.method=r,this.body=a,this.headers=i}getPlanStep(e,t){return{stepId:0,stepName:this.stepName,stepType:this.stepType,concurrent:e,targetStep:t}}async getResultStep(e,t){return await Promise.resolve({stepId:t,stepName:this.stepName,stepType:this.stepType,concurrent:e,callUrl:this.url,callMethod:this.method,callBody:this.body,callHeaders:this.headers})}},tr=class{executor;steps;qstashClient;workflowRunId;url;failureUrl;requestPayload;headers;rawInitialPayload;env;retries;constructor({qstashClient:e,workflowRunId:t,headers:r,steps:a,url:i,failureUrl:s,debug:o,initialPayload:n,rawInitialPayload:c,env:f,retries:d}){this.qstashClient=e,this.workflowRunId=t,this.steps=a,this.url=i,this.failureUrl=s,this.headers=r,this.requestPayload=n,this.rawInitialPayload=c??JSON.stringify(this.requestPayload),this.env=f??{},this.retries=d??3,this.executor=new e4(this,this.steps,o)}async run(e,t){let r=()=>this.executor.wrapStep(e,t);return this.addStep(new e3(e,r))}async sleep(e,t){await this.addStep(new e9(e,t))}async sleepUntil(e,t){let r;r="number"==typeof t?t:Math.round((t="string"==typeof t?new Date(t):t).getTime()/1e3),await this.addStep(new te(e,r))}async call(e,t,r,a,i){let s=await this.addStep(new tt(e,t,r,a,i??{}));try{return JSON.parse(s)}catch{return s}}async addStep(e){return await this.executor.addStep(e)}},ta=class e extends tr{static disabledMessage="disabled-qstash-worklfow-run";async addStep(t){throw new ev(e.disabledMessage)}static async tryAuthentication(t,r){let a=new e({qstashClient:new ej({baseUrl:"disabled-client",token:"disabled-client"}),workflowRunId:r.workflowRunId,headers:r.headers,steps:[],url:r.url,failureUrl:r.failureUrl,initialPayload:r.requestPayload,rawInitialPayload:r.rawInitialPayload,env:r.env,retries:r.retries});try{await t(a)}catch(e){if(e instanceof ev&&e.stepName===this.disabledMessage)return ec("step-found");return ef(e)}return ec("run-ended")}},ti=["DEBUG","INFO","SUBMIT","WARN","ERROR"],ts=class e{logs=[];options;workflowRunId=void 0;constructor(e){this.options=e}async log(e,t,r){if(this.shouldLog(e)){let a={timestamp:Date.now(),workflowRunId:this.workflowRunId??"",logLevel:e,eventType:t,details:r};this.logs.push(a),"console"===this.options.logOutput&&this.writeToConsole(a),await new Promise(e=>setTimeout(e,100))}}setWorkflowRunId(e){this.workflowRunId=e}writeToConsole(e){console.log(JSON.stringify(e,void 0,2))}shouldLog(e){return ti.indexOf(e)>=ti.indexOf(this.options.logLevel)}static getLogger(t){return"object"==typeof t?t:t?new e({logLevel:"INFO",logOutput:"console"}):void 0}},to=async e=>{try{return await e.text()}catch{return}},tn=async(e,t)=>{if(e.length<2)return!1;let r=e.at(-1),a=r.stepId,i=r.targetStep;for(let r=0;r<e.length-1;r++){let s=e[r];if(s.stepId===a&&s.targetStep===i){let e=`Upstash Workflow: The step '${s.stepName}' with id '${s.stepId}' has run twice during workflow execution. Rest of the workflow will continue running as usual.`;return await t?.log("WARN","RESPONSE_DEFAULT",e),console.warn(e),!0}}return!1},tc=async(e,t,r)=>{if(t)return{rawInitialPayload:e??"",steps:[],isLastDuplicate:!1};{if(!e)throw new ew("Only first call can have an empty body");let{rawInitialPayload:t,steps:a}=(e=>{let[t,...r]=JSON.parse(e),a=eJ(t.body),i=[{stepId:0,stepName:"init",stepType:"Initial",out:a,concurrent:1},...r.filter(e=>"step"===e.callType).map(e=>JSON.parse(eJ(e.body)))];return{rawInitialPayload:a,steps:i}})(e),i=await tn(a,r);return{rawInitialPayload:t,steps:(e=>{let t=[],r=[],a=[];for(let i of e)0===i.stepId?t.includes(i.targetStep??0)||(a.push(i),t.push(i.targetStep??0)):r.includes(i.stepId)||(a.push(i),r.push(i.stepId));return a})(a),isLastDuplicate:i}}},tf=async(e,t,r,a,i,s)=>{if("true"!==e.headers.get(eF))return ec("not-failure-callback");if(!i)return ef(new ew("Workflow endpoint is called to handle a failure, but a failureFunction is not provided in serve options. Either provide a failureUrl or a failureFunction."));try{let{status:e,header:o,body:n,url:c,sourceHeader:f,sourceBody:d,workflowRunId:l}=JSON.parse(t),x=n?eJ(n):"{}",h=JSON.parse(x),{rawInitialPayload:u,steps:p,isLastDuplicate:b}=await tc(eJ(d),!1,s),y=new tr({qstashClient:r,workflowRunId:l,initialPayload:a(u),rawInitialPayload:u,headers:eZ(new Headers(f)),steps:p,url:c,failureUrl:c,debug:s});await i(y,e,h.message,o)}catch(e){return ef(e)}return ec("is-failure-callback")},td=(e,t)=>{let{qstashClient:r,onStepFinish:a,initialPayloadParser:i,url:s,verbose:o,receiver:n,failureUrl:c,failureFunction:f,baseUrl:d,env:l,retries:x}=(e=>{let t=e?.env??("undefined"==typeof process?{}:process.env),r=!!(t.QSTASH_CURRENT_SIGNING_KEY&&t.QSTASH_NEXT_SIGNING_KEY);return{qstashClient:new ej({baseUrl:t.QSTASH_URL,token:t.QSTASH_TOKEN}),onStepFinish:(e,t)=>new Response(JSON.stringify({workflowRunId:e}),{status:200}),initialPayloadParser:e=>{if(e)try{return JSON.parse(e)}catch(t){if(t instanceof SyntaxError)return e;throw t}},receiver:r?new eh({currentSigningKey:t.QSTASH_CURRENT_SIGNING_KEY,nextSigningKey:t.QSTASH_NEXT_SIGNING_KEY}):void 0,baseUrl:t.UPSTASH_WORKFLOW_URL,env:t,retries:3,...e}})(t),h=ts.getLogger(o),u=async t=>{let o=s??t.url,u=d?o.replace(/^(https?:\/\/[^/]+)(\/.*)?$/,(e,t,r)=>d+(r||"")):o;u!==o&&await h?.log("WARN","ENDPOINT_START",{warning:`Upstash Workflow: replacing the base of the url with "${d}" and using it as workflow endpoint.`,originalURL:o,updatedURL:u});let p=f?u:c,b=await to(t)??"";await e2(b,t.headers.get("upstash-signature"),n),await h?.log("INFO","ENDPOINT_START");let y=await tf(t,b,r,i,f);if(y.isErr())throw y.error;if("is-failure-callback"===y.value)return await h?.log("WARN","RESPONSE_DEFAULT","failureFunction executed"),a("no-workflow-id","failure-callback");let{isFirstInvocation:m,workflowRunId:w}=(e=>{let t=e.headers.get(eG),r=!t;if(!r&&"1"!==t)throw new ew(`Incompatible workflow sdk protocol version. Expected 1, got ${t} from the request.`);let a=r?`wfr_${[...crypto.getRandomValues(new Uint8Array(21))].map(e=>ez[e%ez.length]).join("")}`:e.headers.get(eK)??"";if(0===a.length)throw new ew("Couldn't get workflow id from header");return{isFirstInvocation:r,workflowRunId:a}})(t);h?.setWorkflowRunId(w);let{rawInitialPayload:v,steps:g,isLastDuplicate:S}=await tc(b,m,h);if(S)return a("no-workflow-id","duplicate-step");let _=new tr({qstashClient:r,workflowRunId:w,initialPayload:i(v),rawInitialPayload:v,headers:eZ(t.headers),steps:g,url:u,failureUrl:p,debug:h,env:l}),k=await ta.tryAuthentication(e,_);if(k.isErr())throw await h?.log("ERROR","ERROR",{error:k.error.message}),k.error;if("run-ended"===k.value)return a("no-workflow-id","auth-fail");let E=await e0(t,v,r,u,p,x,h);if(E.isErr())throw await h?.log("ERROR","SUBMIT_THIRD_PARTY_RESULT",{error:E.error.message}),E.error;if("continue-workflow"===E.value){let t=m?await eY(_,x,h):await eX({onStep:async()=>e(_),onCleanup:async()=>{await eV(_,h)}});if(t.isErr())throw await h?.log("ERROR","ERROR",{error:t.error.message}),t.error;return await h?.log("INFO","RESPONSE_WORKFLOW"),a(_.workflowRunId,"success")}return await h?.log("INFO","RESPONSE_DEFAULT"),a("no-workflow-id","fromCallback")};return async e=>{try{return await u(e)}catch(e){return console.error(e),new Response(JSON.stringify(eg(e)),{status:500})}}},tl=class{http;constructor(e){this.http=e}async cancel(e){return await this.http.request({path:["v2","workflows","runs",`${e}?cancel=true`],method:"DELETE",parseResponseAsJson:!1})??!0}};let tx=new ej({token:process.env.QSTASH_TOKEN})},60172,e=>{"use strict";e.s(["scheduleTask",()=>o]);var t=e.i(56512),r=e.i(57855),a=e.i(55348),i=e.i(30021),s=e.i(772);t.default.extend(r.default),t.default.extend(a.default);let o=async({task:e,prisma:r})=>{if(!e.schedule||"object"!=typeof e.schedule)return;let a=(0,s.getNextOccurrence)({schedule:e.schedule});if(!a)return;let o=t.default.utc(a);if(!o.isValid())return;let n=Math.max(0,o.diff(t.default.utc(),"second")),{messageId:c}=await i.qstash.publishJSON({url:`${process.env.NEXT_PUBLIC_SUPERINTERFACE_BASE_URL}/api/cloud/tasks/callback`,body:{taskId:e.id},delay:n});if(!c)throw Error("Failed to schedule task: missing QStash ID");await r.task.update({where:{id:e.id},data:{qstashMessageId:c}})}}];
11
11
 
12
12
  //# sourceMappingURL=%5Broot-of-the-server%5D__ed6cf593._.js.map