@inkeep/agents-manage-ui 0.31.4 → 0.31.5

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 (279) hide show
  1. package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +298 -288
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +14 -14
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +13 -13
  6. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +3 -12
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  90. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +3 -3
  91. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  95. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +14 -14
  97. package/.next/standalone/agents-manage-ui/.next/server/chunks/2049.js +1 -0
  98. package/.next/standalone/agents-manage-ui/.next/server/chunks/2099.js +74 -0
  99. package/.next/standalone/agents-manage-ui/.next/server/chunks/2323.js +2 -2
  100. package/.next/standalone/agents-manage-ui/.next/server/chunks/2793.js +1 -0
  101. package/.next/standalone/agents-manage-ui/.next/server/chunks/305.js +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/chunks/341.js +363 -5
  103. package/.next/standalone/agents-manage-ui/.next/server/chunks/3690.js +7 -0
  104. package/.next/standalone/agents-manage-ui/.next/server/chunks/4021.js +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/chunks/4057.js +123 -0
  106. package/.next/standalone/agents-manage-ui/.next/server/chunks/4356.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/server/chunks/4796.js +1 -0
  108. package/.next/standalone/agents-manage-ui/.next/server/chunks/{1047.js → 5196.js} +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/chunks/5245.js +3 -3
  110. package/.next/standalone/agents-manage-ui/.next/server/chunks/5316.js +3 -3
  111. package/.next/standalone/agents-manage-ui/.next/server/chunks/{8746.js → 7111.js} +2 -2
  112. package/.next/standalone/agents-manage-ui/.next/server/chunks/7172.js +6 -6
  113. package/.next/standalone/agents-manage-ui/.next/server/chunks/7189.js +1 -0
  114. package/.next/standalone/agents-manage-ui/.next/server/chunks/7497.js +1 -0
  115. package/.next/standalone/agents-manage-ui/.next/server/chunks/8359.js +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/server/chunks/8528.js +4199 -0
  117. package/.next/standalone/agents-manage-ui/.next/server/chunks/8704.js +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/chunks/9542.js +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/server/chunks/9920.js +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  122. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  125. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  126. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/10385-946772d92562cc46.js +1 -0
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/19268-4c91d996ccccbc45.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/29129.2b3aec21f9892b9e.js +1 -0
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/31321-6bee6bed0133919f.js +197 -0
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/32208-f38882ee4a65aead.js +1 -0
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/{32848-e368b492419ae6e4.js → 32848-5655a92b337e6346.js} +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/37226-af0e272517d004df.js +1 -0
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/42658-cba95733d43d6b98.js +1 -0
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/{42966-c45601890893f4fe.js → 43883-4a0edc82a64d282e.js} +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/4601-be81d9f529ebb629.js +4 -0
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/4653-1381428fd8730f4b.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/59759-e6f640c461b88e97.js +1 -0
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/65665-00887d4d2c362ca2.js +123 -0
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/66900-9ff0cc0605ec2039.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/73629-c59d321deb96b18e.js +1 -0
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/73744-ed53b2a1b7396fba.js +1 -0
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/85145-85cfc74451117fee.js +2 -0
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/87799-f447ef2b59041d68.js +21 -0
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/88437-fd412d0ffdabf6e2.js +1 -0
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/{98749-e87db9b701dfca1b.js → 88686-b22f308e913d4f41.js} +1 -1
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/91783-163c98dc7933ec82.js +1 -0
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/94068-5dbdc1cec3d0e76a.js +1 -0
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/96365-e0704ccf63dd8e5f.js +1 -0
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/97635-cc97848f52f745fa.js +1 -0
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/98522-61e930eb8a6e224a.js +1 -0
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-3d0c92c01eb13e24.js → page-1f31688fce0917bc.js} +1 -1
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-8296ff2eda140634.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-01e59bf5f6eaead3.js +1 -0
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-6f65a239fe71b9c5.js +1 -0
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-c96b767cd2c08987.js +1 -0
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-53ca13b5fd5588f4.js +1 -0
  158. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-55e4707de826834a.js +1 -0
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-50b0ddb443385e48.js +1 -0
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-e6a747906fbdc69f.js +1 -0
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-7d8cb84d49138273.js +1 -0
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-cc9303ede377e6ce.js +1 -0
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-cb46465d1fb2f943.js +1 -0
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-698071004a83bc24.js +1 -0
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-52f8080522e65045.js → page-0182a99880cd90af.js} +1 -1
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/{page-e207f1a9d366dec2.js → page-81e8876fcc1fc5f5.js} +1 -1
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/{page-c15ae98c8da775e7.js → page-71a32195e25c4f20.js} +1 -1
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-f23e8dea759257d1.js +1 -0
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-189528b620a028cf.js +1 -0
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-d0889bb0ecbba52a.js → page-23eddac39107b793.js} +1 -1
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-8eaebbb202d06dd8.js +1 -0
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-76e93febd8faae06.js → page-1c4d4ba958f21e95.js} +1 -1
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-a0b6ba494236ccd8.js +1 -0
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-9bc104b66c945584.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-ff6bb6ad21bedf2e.js → page-1ca030e6ca5874c2.js} +1 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/{page-915bc11a351377b6.js → page-e0b199dd271e9637.js} +1 -1
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-77c9f08e7c6a02be.js +1 -0
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-57524fbbc0767395.js +1 -0
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-593b875127a14dd7.js +1 -0
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-69817cbefeb8c044.js +1 -0
  181. package/.next/standalone/agents-manage-ui/.next/static/css/448757355dabf3ee.css +1 -0
  182. package/.next/standalone/agents-manage-ui/package.json +3 -2
  183. package/.next/standalone/packages/agents-core/package.json +1 -1
  184. package/package.json +6 -5
  185. package/src/components/agent/ship/api-guide.tsx +53 -0
  186. package/src/components/agent/ship/chat-ui-guide/chat-ui-code.tsx +101 -0
  187. package/src/components/agent/ship/chat-ui-guide/chat-ui-guide.tsx +93 -0
  188. package/src/components/agent/ship/chat-ui-guide/chat-ui-preview-form.tsx +83 -0
  189. package/src/components/agent/ship/chat-ui-guide/chat-ui-preview.tsx +105 -0
  190. package/src/components/agent/ship/chat-ui-guide/snippets/index.ts +7 -0
  191. package/src/components/agent/ship/chat-ui-guide/snippets/js-chat-button.ts +10 -0
  192. package/src/components/agent/ship/chat-ui-guide/snippets/js-embedded-chat.ts +22 -0
  193. package/src/components/agent/ship/chat-ui-guide/snippets/js-script-tag.ts +9 -0
  194. package/src/components/agent/ship/chat-ui-guide/snippets/js-sidebar-chat.ts +25 -0
  195. package/src/components/agent/ship/chat-ui-guide/snippets/react-component.ts +10 -0
  196. package/src/components/agent/ship/chat-ui-guide/snippets/react-install.ts +5 -0
  197. package/src/components/agent/ship/chat-ui-guide/snippets/react-sidebar-component.ts +17 -0
  198. package/src/components/agent/ship/guide-header.tsx +30 -0
  199. package/src/components/agent/ship/mcp-guide/mcp-guide.tsx +96 -0
  200. package/src/components/agent/ship/mcp-guide/snippets/claude-code.ts +16 -0
  201. package/src/components/agent/ship/mcp-guide/snippets/cursor.ts +27 -0
  202. package/src/components/agent/ship/mcp-guide/snippets/index.ts +4 -0
  203. package/src/components/agent/ship/mcp-guide/snippets/vscode.ts +27 -0
  204. package/src/components/agent/ship/mcp-guide/snippets/windsurf.ts +25 -0
  205. package/src/components/agent/ship/node-js-guide.tsx +67 -0
  206. package/src/components/agent/ship/sdk-guide.tsx +102 -0
  207. package/src/components/agent/ship/ship-modal.tsx +143 -0
  208. package/src/components/agent/ship/utils.ts +25 -0
  209. package/src/components/agent/toolbar/toolbar.tsx +2 -0
  210. package/src/components/data-components/render/component-render-generator.tsx +9 -12
  211. package/src/components/icons/claude.tsx +21 -0
  212. package/src/components/icons/cursor.tsx +15 -0
  213. package/src/components/icons/vercel.tsx +14 -0
  214. package/src/components/icons/vs-code.tsx +24 -0
  215. package/src/components/icons/windsurf.tsx +15 -0
  216. package/src/components/ui/color-picker.tsx +47 -0
  217. package/src/components/ui/dialog.tsx +38 -10
  218. package/src/components/ui/tabs.tsx +29 -9
  219. package/.next/standalone/agents-manage-ui/.next/server/chunks/3058.js +0 -1
  220. package/.next/standalone/agents-manage-ui/.next/server/chunks/3411.js +0 -1
  221. package/.next/standalone/agents-manage-ui/.next/server/chunks/4475.js +0 -74
  222. package/.next/standalone/agents-manage-ui/.next/server/chunks/4881.js +0 -1
  223. package/.next/standalone/agents-manage-ui/.next/server/chunks/565.js +0 -1
  224. package/.next/standalone/agents-manage-ui/.next/server/chunks/762.js +0 -1
  225. package/.next/standalone/agents-manage-ui/.next/server/chunks/824.js +0 -1
  226. package/.next/standalone/agents-manage-ui/.next/server/chunks/8717.js +0 -7
  227. package/.next/standalone/agents-manage-ui/.next/server/chunks/910.js +0 -1
  228. package/.next/standalone/agents-manage-ui/.next/server/chunks/9682.js +0 -123
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/15856-09dd885eb1330cba.js +0 -1
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/1721-4d8716eb27abc2c8.js +0 -1
  231. package/.next/standalone/agents-manage-ui/.next/static/chunks/17430-81adddca8d7ea403.js +0 -1
  232. package/.next/standalone/agents-manage-ui/.next/static/chunks/20693-1b34b01549c71fcd.js +0 -1
  233. package/.next/standalone/agents-manage-ui/.next/static/chunks/21009-32af3656c7538d1b.js +0 -1
  234. package/.next/standalone/agents-manage-ui/.next/static/chunks/22205-1bace94483c408ae.js +0 -1
  235. package/.next/standalone/agents-manage-ui/.next/static/chunks/26959-ac6be17f7b14778b.js +0 -4
  236. package/.next/standalone/agents-manage-ui/.next/static/chunks/37058-88c6556ebedb9d47.js +0 -1
  237. package/.next/standalone/agents-manage-ui/.next/static/chunks/37226-a04406434cd8bb5f.js +0 -1
  238. package/.next/standalone/agents-manage-ui/.next/static/chunks/38474-4ab4ddfcf860813d.js +0 -1
  239. package/.next/standalone/agents-manage-ui/.next/static/chunks/47380-98ba7170ef8d47cd.js +0 -2
  240. package/.next/standalone/agents-manage-ui/.next/static/chunks/50118.0a75e445f38b54be.js +0 -1
  241. package/.next/standalone/agents-manage-ui/.next/static/chunks/51397-ed3623cc53c3cd80.js +0 -1
  242. package/.next/standalone/agents-manage-ui/.next/static/chunks/54339.3d0067056dcd81a1.js +0 -21
  243. package/.next/standalone/agents-manage-ui/.next/static/chunks/55157-25e4c0b9f9d95f2c.js +0 -123
  244. package/.next/standalone/agents-manage-ui/.next/static/chunks/5571-7243ce6d41b18de5.js +0 -1
  245. package/.next/standalone/agents-manage-ui/.next/static/chunks/56117-a96a6a5a77f14ba0.js +0 -1
  246. package/.next/standalone/agents-manage-ui/.next/static/chunks/71839-e9ba4ed0b3ce7668.js +0 -1
  247. package/.next/standalone/agents-manage-ui/.next/static/chunks/78155-b4ada7f3606c9500.js +0 -197
  248. package/.next/standalone/agents-manage-ui/.next/static/chunks/81385-bf660a5d2d61583a.js +0 -1
  249. package/.next/standalone/agents-manage-ui/.next/static/chunks/91340-6a4c648f7a6b13e5.js +0 -1
  250. package/.next/standalone/agents-manage-ui/.next/static/chunks/9766-12c570d61ec6ab54.js +0 -1
  251. package/.next/standalone/agents-manage-ui/.next/static/chunks/98117-23cc4134c1bc5526.js +0 -1
  252. package/.next/standalone/agents-manage-ui/.next/static/chunks/99724-b87437be879a6140.js +0 -1
  253. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-d714a4fd03dc2306.js +0 -1
  254. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-e8da5303d0df1f6d.js +0 -1
  255. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-cf48ef911f40e1b0.js +0 -1
  256. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-2d39e5bec5da14d1.js +0 -1
  257. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-fcb1a45f6cf225b4.js +0 -1
  258. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-cd3eec2d38bfaec1.js +0 -1
  259. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-e34ef47a0a056252.js +0 -1
  260. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-82bc98ae0bea5273.js +0 -1
  261. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-9071c8ddc4ff3843.js +0 -1
  262. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-df7b2ca0e2b96bcf.js +0 -1
  263. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-152052de97b91e11.js +0 -1
  264. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-1bbcd9cde29e316e.js +0 -1
  265. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-efadffe3f843917d.js +0 -1
  266. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-d41caff7520558f0.js +0 -1
  267. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-f43afc20c7b679cc.js +0 -1
  268. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-d5141432493a5eaa.js +0 -1
  269. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-fc7bc85c3a758e9a.js +0 -1
  270. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-df885415e1c2fe8a.js +0 -1
  271. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-c6e860aa7b2d726b.js +0 -1
  272. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-33cfcac33a61ad21.js +0 -1
  273. package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-314a6b9a2162cc11.js +0 -1
  274. package/.next/standalone/agents-manage-ui/.next/static/css/79e788a7e7a93a1e.css +0 -1
  275. /package/.next/standalone/agents-manage-ui/.next/static/{i6GLHI_W62QkxURNDKYIc → Zw-_W6mUE-0gHQmRnvFFs}/_buildManifest.js +0 -0
  276. /package/.next/standalone/agents-manage-ui/.next/static/{i6GLHI_W62QkxURNDKYIc → Zw-_W6mUE-0gHQmRnvFFs}/_ssgManifest.js +0 -0
  277. /package/.next/standalone/agents-manage-ui/.next/static/chunks/{21f4193d.7ccc1aebbebe4f76.js → 21f4193d-7ccc1aebbebe4f76.js} +0 -0
  278. /package/.next/standalone/agents-manage-ui/.next/static/chunks/{9f915ca0.83c49af9bcc715c2.js → 9f915ca0-83c49af9bcc715c2.js} +0 -0
  279. /package/.next/standalone/agents-manage-ui/.next/static/chunks/{acf92edd.26fc0407d83498c7.js → acf92edd-26fc0407d83498c7.js} +0 -0
@@ -0,0 +1,67 @@
1
+ import { useParams } from 'next/navigation';
2
+ import { Streamdown } from 'streamdown';
3
+ import { DOCS_BASE_URL } from '@/constants/page-descriptions';
4
+ import { useRuntimeConfig } from '@/contexts/runtime-config-context';
5
+ import { DocsLink, Header } from './guide-header';
6
+
7
+ export function NodeJsGuide() {
8
+ const { PUBLIC_INKEEP_AGENTS_RUN_API_URL } = useRuntimeConfig();
9
+ const apiUrl = `${PUBLIC_INKEEP_AGENTS_RUN_API_URL}/api/chat`;
10
+ const { agentId } = useParams();
11
+
12
+ return (
13
+ <div>
14
+ <Header.Container>
15
+ <Header.Title title="Node.js Backend" />
16
+ <DocsLink href={`${DOCS_BASE_URL}/talk-to-your-agents/chat-api`} />
17
+ </Header.Container>
18
+ <Streamdown>
19
+ {`Example Next.js API route (\`app/api/chat/route.ts\`):
20
+
21
+ \`\`\`typescript
22
+ export async function POST(req: Request) {
23
+ const { messages, conversationId } = await req.json();
24
+
25
+ const response = await fetch('${apiUrl}', {
26
+ method: 'POST',
27
+ headers: {
28
+ 'Authorization': \`Bearer \${process.env.INKEEP_AGENT_API_KEY}\`,
29
+ 'Content-Type': 'application/json',
30
+ 'x-emit-operations': 'true',
31
+ },
32
+ body: JSON.stringify({
33
+ messages,
34
+ conversationId,
35
+ }),
36
+ });
37
+
38
+ return new Response(response.body, {
39
+ headers: {
40
+ 'Content-Type': 'text/event-stream',
41
+ 'Cache-Control': 'no-cache',
42
+ 'Connection': 'keep-alive',
43
+ },
44
+ });
45
+ }
46
+ \`\`\`
47
+
48
+ Example response (Server-Sent Events stream):
49
+
50
+ \`\`\`bash
51
+ data: {"type":"data-operation","data":{"type":"agent_initializing","details":{"sessionId":"chatds-12345678910111","agentId":"${agentId}"}}}
52
+
53
+ data: {"type":"text-start","id":"1234567891011-abcdefghi"}
54
+
55
+ data: {"type":"text-delta","id":"1234567891011-abcdefghi","delta":"I answer"}
56
+
57
+ data: {"type":"text-delta","id":"1234567891011-abcdefghi","delta":" technical questions"}
58
+
59
+ data: {"type":"text-end","id":"1234567891011-abcdefghi"}
60
+
61
+ data: [DONE]
62
+ \`\`\`
63
+ `}
64
+ </Streamdown>
65
+ </div>
66
+ );
67
+ }
@@ -0,0 +1,102 @@
1
+ import { Streamdown } from 'streamdown';
2
+ import { DOCS_BASE_URL } from '@/constants/page-descriptions';
3
+ import { useRuntimeConfig } from '@/contexts/runtime-config-context';
4
+ import { DocsLink, Header } from './guide-header';
5
+
6
+ export function SdkGuide() {
7
+ const { PUBLIC_INKEEP_AGENTS_RUN_API_URL } = useRuntimeConfig();
8
+ const apiUrl = `${PUBLIC_INKEEP_AGENTS_RUN_API_URL}/api/chat`;
9
+
10
+ return (
11
+ <div>
12
+ <Header.Container>
13
+ <Header.Title title="Vercel SDK" />
14
+ <DocsLink href={`${DOCS_BASE_URL}/talk-to-your-agents/vercel-ai-sdk/use-chat`} />
15
+ </Header.Container>
16
+ <Streamdown>
17
+ {`Install the package:
18
+
19
+ \`\`\`bash
20
+ npm install ai @ai-sdk/react
21
+ \`\`\`
22
+
23
+ Example Next.js implementation using Vercel AI SDK:
24
+
25
+ \`\`\`tsx
26
+ "use client";
27
+
28
+ import { useChat } from "@ai-sdk/react";
29
+ import { DefaultChatTransport } from "ai";
30
+ import { useState } from "react";
31
+
32
+ export default function Page() {
33
+ const { messages, sendMessage } = useChat({
34
+ transport: new DefaultChatTransport({
35
+ api: "${apiUrl}",
36
+ headers: {
37
+ Authorization: "Bearer INKEEP_AGENT_API_KEY",
38
+ },
39
+ }),
40
+ });
41
+ const [input, setInput] = useState("");
42
+
43
+ return (
44
+ <div className="max-w-2xl mx-auto p-4">
45
+ <div className="space-y-4 mb-4">
46
+ {messages.map((message) => (
47
+ <div key={message.id} className="border rounded p-3">
48
+ <div className="font-semibold mb-2">
49
+ {message.role === "user" ? "👤 User" : "🤖 Assistant"}
50
+ </div>
51
+
52
+ <div className="space-y-2">
53
+ {message.parts.map((part, partIndex) => {
54
+ const partKey = \`\${message.id}-\${part.type}-\${partIndex}\`;
55
+
56
+ if (part.type === "text") {
57
+ return (
58
+ <div key={partKey} className="whitespace-pre-wrap">
59
+ {part.text}
60
+ </div>
61
+ );
62
+ }
63
+
64
+ return null;
65
+ })}
66
+ </div>
67
+ </div>
68
+ ))}
69
+ </div>
70
+
71
+ <form
72
+ onSubmit={(e) => {
73
+ e.preventDefault();
74
+ if (input.trim()) {
75
+ sendMessage({ text: input });
76
+ setInput("");
77
+ }
78
+ }}
79
+ className="flex gap-2"
80
+ >
81
+ <input
82
+ value={input}
83
+ onChange={(e) => setInput(e.target.value)}
84
+ placeholder="Type your message..."
85
+ className="flex-1 p-2 border rounded"
86
+ />
87
+ <button
88
+ type="submit"
89
+ className="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
90
+ >
91
+ Send
92
+ </button>
93
+ </form>
94
+ </div>
95
+ );
96
+ }
97
+ \`\`\`
98
+ `}
99
+ </Streamdown>
100
+ </div>
101
+ );
102
+ }
@@ -0,0 +1,143 @@
1
+ import {
2
+ Hexagon,
3
+ Key,
4
+ type LucideProps,
5
+ MessagesSquare,
6
+ RocketIcon,
7
+ SquareTerminal,
8
+ X,
9
+ } from 'lucide-react';
10
+ import Link from 'next/link';
11
+ import { useParams } from 'next/navigation';
12
+ import type { ComponentType } from 'react';
13
+ import { MCPIcon } from '@/components/icons/mcp-icon';
14
+ import { VercelIcon } from '@/components/icons/vercel';
15
+ import { Button } from '@/components/ui/button';
16
+ import {
17
+ Dialog,
18
+ DialogClose,
19
+ DialogContent,
20
+ DialogDescription,
21
+ DialogHeader,
22
+ DialogTitle,
23
+ DialogTrigger,
24
+ } from '@/components/ui/dialog';
25
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
26
+ import { ApiGuide } from './api-guide';
27
+ import { ChatUIGuide } from './chat-ui-guide/chat-ui-guide';
28
+ import { McpGuide } from './mcp-guide/mcp-guide';
29
+ import { NodeJsGuide } from './node-js-guide';
30
+ import { SdkGuide } from './sdk-guide';
31
+
32
+ const TAB_VALUES = {
33
+ CHAT_UI: 'chat-ui',
34
+ MCP_SERVER: 'mcp-server',
35
+ SDK: 'sdk',
36
+ NODE_JS: 'node-js',
37
+ API: 'api',
38
+ } as const;
39
+
40
+ type TabValue = (typeof TAB_VALUES)[keyof typeof TAB_VALUES];
41
+
42
+ type TabItem = {
43
+ label: string;
44
+ value: TabValue;
45
+ IconComponent?: React.ComponentType<LucideProps>;
46
+ };
47
+
48
+ const shipModalTabComponents: Record<TabValue, ComponentType> = {
49
+ [TAB_VALUES.CHAT_UI]: ChatUIGuide,
50
+ [TAB_VALUES.MCP_SERVER]: McpGuide,
51
+ [TAB_VALUES.SDK]: SdkGuide,
52
+ [TAB_VALUES.NODE_JS]: NodeJsGuide,
53
+ [TAB_VALUES.API]: ApiGuide,
54
+ };
55
+
56
+ const shipModalTabItems: TabItem[] = [
57
+ {
58
+ label: 'Chat UI',
59
+ value: TAB_VALUES.CHAT_UI,
60
+ IconComponent: MessagesSquare,
61
+ },
62
+ {
63
+ label: 'MCP Server',
64
+ value: TAB_VALUES.MCP_SERVER,
65
+ IconComponent: MCPIcon,
66
+ },
67
+ {
68
+ label: 'Vercel SDK',
69
+ value: TAB_VALUES.SDK,
70
+ IconComponent: VercelIcon,
71
+ },
72
+ {
73
+ label: 'Node JS',
74
+ value: TAB_VALUES.NODE_JS,
75
+ IconComponent: Hexagon,
76
+ },
77
+ {
78
+ label: 'REST API',
79
+ value: TAB_VALUES.API,
80
+ IconComponent: SquareTerminal,
81
+ },
82
+ ];
83
+
84
+ export function ShipModal() {
85
+ const params = useParams();
86
+ const { tenantId, projectId } = params;
87
+ return (
88
+ <Dialog>
89
+ <DialogTrigger asChild>
90
+ <Button variant="outline">
91
+ <RocketIcon className="size-4" />
92
+ Ship
93
+ </Button>
94
+ </DialogTrigger>
95
+ <DialogContent className="max-w-full! w-7xl" position="top" showCloseButton={false}>
96
+ <DialogHeader>
97
+ <div className="flex items-center justify-between w-full gap-2">
98
+ <DialogTitle>Talk to your agent</DialogTitle>
99
+ <div className="flex items-center gap-2">
100
+ <Button asChild variant="outline" size="sm">
101
+ <Link
102
+ href={`/${tenantId}/projects/${projectId}/api-keys`}
103
+ target="_blank"
104
+ rel="noreferrer noopener"
105
+ >
106
+ <Key className="size-4" />
107
+ Create API key
108
+ </Link>
109
+ </Button>
110
+ <DialogClose asChild>
111
+ <Button variant="ghost" className="size-8">
112
+ <X className="size-4 text-muted-foreground" />
113
+ <span className="sr-only">Close</span>
114
+ </Button>
115
+ </DialogClose>
116
+ </div>
117
+ </div>
118
+ <DialogDescription className="sr-only">Talk to your agent.</DialogDescription>
119
+ </DialogHeader>
120
+ <Tabs defaultValue={TAB_VALUES.CHAT_UI} className="min-w-0">
121
+ <TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-4">
122
+ {shipModalTabItems.map((tab) => (
123
+ <TabsTrigger
124
+ key={tab.value}
125
+ variant="underline"
126
+ value={tab.value}
127
+ className="text-sm gap-2"
128
+ >
129
+ {tab.IconComponent && <tab.IconComponent className="size-4" />}
130
+ {tab.label}
131
+ </TabsTrigger>
132
+ ))}
133
+ </TabsList>
134
+ {Object.entries(shipModalTabComponents).map(([value, Component]) => (
135
+ <TabsContent key={value} value={value} className="py-4">
136
+ <Component />
137
+ </TabsContent>
138
+ ))}
139
+ </Tabs>
140
+ </DialogContent>
141
+ </Dialog>
142
+ );
143
+ }
@@ -0,0 +1,25 @@
1
+ export const replaceTemplatePlaceholders = (
2
+ template: string,
3
+ replacements: Record<string, string>
4
+ ): string => {
5
+ let result = template;
6
+ for (const [key, value] of Object.entries(replacements)) {
7
+ result = result.replace(new RegExp(`{{${key}}}`, 'g'), value);
8
+ }
9
+ return result;
10
+ };
11
+
12
+ export function toCamelCase(str: string): string {
13
+ return str
14
+ .toLowerCase()
15
+ .replace(/[^a-zA-Z0-9]+(.)/g, (_, char) => char.toUpperCase())
16
+ .replace(/^[^a-zA-Z]+/, '');
17
+ }
18
+
19
+ export const indentJson = (json: string, spaces: number): string => {
20
+ const indent = ' '.repeat(spaces);
21
+ return json
22
+ .split('\n')
23
+ .map((line, index) => (index === 0 ? line : `${indent}${line}`))
24
+ .join('\n');
25
+ };
@@ -4,6 +4,7 @@ import { Button } from '@/components/ui/button';
4
4
  import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
5
5
  import { useAgentStore } from '@/features/agent/state/use-agent-store';
6
6
  import { isMacOs } from '@/lib/utils';
7
+ import { ShipModal } from '../ship/ship-modal';
7
8
 
8
9
  interface ToolbarProps {
9
10
  onSubmit: () => void;
@@ -55,6 +56,7 @@ export function Toolbar({
55
56
 
56
57
  return (
57
58
  <div className="flex gap-2 flex-wrap justify-end content-start">
59
+ {!inPreviewDisabled && <ShipModal />}
58
60
  {dirty || inPreviewDisabled ? (
59
61
  <Tooltip>
60
62
  <TooltipTrigger asChild>
@@ -16,15 +16,6 @@ import { Textarea } from '@/components/ui/textarea';
16
16
  import { updateDataComponent } from '@/lib/api/data-components';
17
17
  import { DynamicComponentRenderer } from './dynamic-component-renderer';
18
18
 
19
- const StyledTabsTrigger = (props: React.ComponentProps<typeof TabsTrigger>) => {
20
- return (
21
- <TabsTrigger
22
- {...props}
23
- className="bg-transparent data-[state=active]:border-primary dark:data-[state=active]:border-primary h-full rounded-none border-0 border-b-2 border-transparent data-[state=active]:shadow-none data-[state=active]:text-primary data-[state=active]:bg-transparent uppercase font-mono text-xs mt-0.5 pt-2"
24
- />
25
- );
26
- };
27
-
28
19
  interface ComponentPreviewGeneratorProps {
29
20
  tenantId: string;
30
21
  projectId: string;
@@ -306,9 +297,15 @@ export function ComponentRenderGenerator({
306
297
  <Card className="px-2 py-4 pt-0">
307
298
  <Tabs defaultValue="render" className="w-full">
308
299
  <TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-2">
309
- <StyledTabsTrigger value="render">Render</StyledTabsTrigger>
310
- <StyledTabsTrigger value="code">Code</StyledTabsTrigger>
311
- <StyledTabsTrigger value="data">Sample Data</StyledTabsTrigger>
300
+ <TabsTrigger variant="underline" value="render">
301
+ Render
302
+ </TabsTrigger>
303
+ <TabsTrigger variant="underline" value="code">
304
+ Code
305
+ </TabsTrigger>
306
+ <TabsTrigger variant="underline" value="data">
307
+ Sample Data
308
+ </TabsTrigger>
312
309
  </TabsList>
313
310
 
314
311
  <TabsContent value="render">
@@ -0,0 +1,21 @@
1
+ import { forwardRef } from 'react';
2
+ import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
3
+
4
+ export const ClaudeIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
5
+ <SvgIcon ref={ref} {...props} strokeWidth={0}>
6
+ <title>Claude icon</title>
7
+ <g clipPath="url(#clip0_23_202)">
8
+ <path
9
+ d="M4.704 15.96L9.432 13.32L9.504 13.08L9.432 12.96H9.192L8.4 12.912L5.712 12.84L3.36 12.72L1.08 12.6L0.504 12.48L0 11.76L0.048 11.4L0.528 11.088L1.224 11.136L2.736 11.256L5.016 11.4L6.672 11.496L9.12 11.784H9.504L9.552 11.616L9.432 11.52L9.336 11.424L6.96 9.84L4.416 8.16L3.072 7.176L2.352 6.696L1.992 6.216L1.848 5.208L2.496 4.488L3.384 4.56L3.6 4.608L4.488 5.304L6.408 6.768L8.88 8.64L9.24 8.928L9.384 8.832L9.408 8.76L9.24 8.496L7.92 6L6.48 3.504L5.832 2.472L5.664 1.848C5.592 1.608 5.568 1.368 5.568 1.128L6.288 0.12L6.72 0L7.728 0.144L8.112 0.48L8.736 1.92L9.72 4.152L11.28 7.176L11.76 8.088L12 8.904L12.072 9.144H12.24V9.024L12.36 7.296L12.6 5.208L12.84 2.52L12.912 1.752L13.296 0.84L14.016 0.36L14.64 0.624L15.12 1.32L15.048 1.752L14.784 3.6L14.16 6.504L13.8 8.472H14.016L14.256 8.208L15.24 6.912L16.896 4.848L17.616 4.008L18.48 3.12L19.032 2.688H20.064L20.808 3.816L20.472 4.992L19.416 6.336L18.528 7.464L17.256 9.168L16.488 10.536L16.56 10.632H16.728L19.608 10.008L21.144 9.744L22.968 9.432L23.808 9.816L23.904 10.2L23.568 11.016L21.6 11.496L19.296 11.976L15.864 12.768L15.816 12.792L15.864 12.864L17.4 13.008L18.072 13.056H19.704L22.728 13.296L23.52 13.776L23.976 14.424L23.904 14.904L22.68 15.528L21.048 15.144L17.208 14.232L15.912 13.92H15.72V14.016L16.824 15.096L18.816 16.896L21.36 19.224L21.48 19.8L21.168 20.28L20.832 20.232L18.624 18.552L17.76 17.832L15.84 16.2H15.72V16.368L16.152 17.016L18.504 20.544L18.624 21.624L18.456 21.96L17.832 22.2L17.184 22.056L15.792 20.136L14.352 17.976L13.224 16.008L13.104 16.104L12.408 23.352L12.096 23.712L11.376 24L10.776 23.52L10.44 22.8L10.776 21.312L11.16 19.392L11.472 17.856L11.76 15.96L11.928 15.336V15.288H11.76L10.32 17.28L8.16 20.232L6.432 22.056L6.024 22.224L5.304 21.864L5.376 21.192L5.76 20.64L8.16 17.568L9.6 15.672L10.56 14.568L10.536 14.448H10.464L4.128 18.576L3 18.72L2.52 18.24L2.568 17.52L2.808 17.28L4.728 15.96H4.704Z"
10
+ fill="currentColor"
11
+ />
12
+ </g>
13
+ <defs>
14
+ <clipPath id="clip0_23_202">
15
+ <rect width="24" height="24" fill="white" />
16
+ </clipPath>
17
+ </defs>
18
+ </SvgIcon>
19
+ ));
20
+
21
+ ClaudeIcon.displayName = 'ClaudeIcon';
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from 'react';
2
+ import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
3
+
4
+ export const CursorIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
5
+ <SvgIcon ref={ref} {...props} strokeWidth={0}>
6
+ <title>Cursor icon</title>
7
+ <path
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ d="M22.1323 5.6806L12.5245 0.133623C12.216 -0.0445409 11.8353 -0.0445409 11.5268 0.133623L1.91947 5.6806C1.66012 5.83035 1.5 6.10727 1.5 6.40723V17.5928C1.5 17.8923 1.66012 18.1697 1.91947 18.3194L11.5272 23.8664C11.8358 24.0445 12.2164 24.0445 12.525 23.8664L22.1327 18.3194C22.3921 18.1697 22.5522 17.8927 22.5522 17.5928V6.40723C22.5522 6.10774 22.3921 5.83035 22.1327 5.6806H22.1323ZM21.5288 6.85558L12.2539 22.9201C12.1912 23.0283 12.0257 22.9841 12.0257 22.8587V12.3399C12.0257 12.1297 11.9133 11.9353 11.7311 11.8297L2.62176 6.57052C2.51351 6.50784 2.55771 6.34227 2.6831 6.34227H21.2329C21.4963 6.34227 21.6609 6.6278 21.5292 6.85605H21.5288V6.85558Z"
10
+ fill="currentColor"
11
+ />
12
+ </SvgIcon>
13
+ ));
14
+
15
+ CursorIcon.displayName = 'CursorIcon';
@@ -0,0 +1,14 @@
1
+ import { forwardRef } from 'react';
2
+ import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
3
+
4
+ export const VercelIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
5
+ <SvgIcon ref={ref} {...props} strokeWidth={0}>
6
+ <title>Vercel icon</title>
7
+ <g clipPath="url(#clip0_24_207)">
8
+ <path d="M11.9573 1.5L23.9146 22.2109H0L11.9573 1.5Z" fill="currentColor" />
9
+ </g>
10
+ <defs></defs>
11
+ </SvgIcon>
12
+ ));
13
+
14
+ VercelIcon.displayName = 'VercelIcon';
@@ -0,0 +1,24 @@
1
+ import { forwardRef } from 'react';
2
+ import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
3
+
4
+ export const VSCodeIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
5
+ <SvgIcon ref={ref} {...props} strokeWidth={0}>
6
+ <title>VS Code icon</title>
7
+ <g clipPath="url(#clip0_22_190)">
8
+ <path
9
+ d="M18.0011 0.957249C18.0011 0.203854 17.1576 0.203846 16.7827 0.29802C17.3075 -0.116349 17.9231 -0.0158829 18.1417 0.10968L23.2103 2.59498C23.6933 2.83179 23.9996 3.32452 23.9996 3.86449V20.2141C23.9996 20.7613 23.6851 21.2593 23.1923 21.4923L18.4229 23.7475C18.0948 23.8887 17.3825 24.2372 16.7827 23.7474C17.5325 23.8888 17.9387 23.3551 18.0011 22.9941V0.957249Z"
10
+ fill="currentColor"
11
+ />
12
+ <path
13
+ d="M16.8439 0.285044C17.2418 0.206418 18.0016 0.242881 18.0016 0.957858V6.58559L2.63451 18.2108C2.3659 18.4141 1.98789 18.3803 1.75911 18.1327L0.175313 16.419C-0.0728021 16.1505 -0.0554421 15.7302 0.213964 15.4834L16.783 0.29863L16.8439 0.285044Z"
14
+ fill="currentColor"
15
+ />
16
+ <path
17
+ d="M18.0016 17.461L2.63451 5.83572C2.3659 5.63251 1.98789 5.66623 1.75911 5.91379L0.175313 7.62757C-0.0728021 7.89602 -0.0554421 8.31628 0.213964 8.56322L16.783 23.7479C17.5329 23.8892 17.9391 23.3555 18.0016 22.9945V17.461Z"
18
+ fill="currentColor"
19
+ />
20
+ </g>
21
+ </SvgIcon>
22
+ ));
23
+
24
+ VSCodeIcon.displayName = 'VSCodeIcon';
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from 'react';
2
+ import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
3
+
4
+ export const WindsurfIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
5
+ <SvgIcon ref={ref} {...props} strokeWidth={0}>
6
+ <title>Windsurf icon</title>
7
+ <path
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ d="M23.7787 5.00376H23.55C22.3463 5.00188 21.3695 5.97669 21.3695 7.18024V12.0478C21.3695 13.0198 20.566 13.8072 19.6098 13.8072C19.0417 13.8072 18.4746 13.5213 18.138 13.0414L13.1667 5.94109C12.7542 5.35149 12.083 5 11.3564 5C10.223 5 9.20307 5.96357 9.20307 7.15308V12.0488C9.20307 13.0208 8.40623 13.8081 7.44346 13.8081C6.87349 13.8081 6.30724 13.5222 5.97068 13.0424L0.407794 5.09655C0.28217 4.91657 0 5.00564 0 5.22498V9.47015C0 9.68481 0.0656303 9.89291 0.188421 10.0691L5.66319 17.8874C5.98663 18.3495 6.46382 18.6926 7.01408 18.8173C8.39123 19.1303 9.65869 18.0702 9.65869 16.7195V11.8266C9.65869 10.8546 10.4462 10.0672 11.4183 10.0672H11.4211C12.007 10.0672 12.5564 10.3531 12.8929 10.833L17.8652 17.9324C18.2787 18.523 18.9152 18.8735 19.6745 18.8735C20.8332 18.8735 21.826 17.909 21.826 16.7204V11.8257C21.826 10.8537 22.6135 10.0663 23.5856 10.0663H23.7797C23.9015 10.0663 24 9.96787 24 9.84604V5.22402C24 5.10219 23.9015 5.00376 23.7797 5.00376H23.7787Z"
10
+ fill="currentColor"
11
+ />
12
+ </SvgIcon>
13
+ ));
14
+
15
+ WindsurfIcon.displayName = 'WindsurfIcon';
@@ -0,0 +1,47 @@
1
+ import { Popover, PopoverContent, PopoverTrigger } from '@radix-ui/react-popover';
2
+ import { HexColorInput, HexColorPicker } from 'react-colorful';
3
+ import { Button } from '@/components/ui/button';
4
+ import { cn } from '@/lib/utils';
5
+
6
+ interface ColorPickerInputProps {
7
+ color: string;
8
+ setColor: (color: string) => void;
9
+ placeholder: string;
10
+ }
11
+
12
+ export function ColorPickerInput({ placeholder, color, setColor }: ColorPickerInputProps) {
13
+ return (
14
+ <div className="relative flex items-center flex-row max-w-full">
15
+ <div className="absolute left-3 text-sm text-muted-foreground">#</div>
16
+ <HexColorInput
17
+ className={cn(
18
+ 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
19
+ 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',
20
+ 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive disabled:bg-muted',
21
+ 'pl-7 pr-12'
22
+ )}
23
+ color={color}
24
+ onChange={setColor}
25
+ placeholder={placeholder}
26
+ />
27
+ <div className="z-10 absolute right-3">
28
+ <Popover>
29
+ <PopoverTrigger asChild>
30
+ <Button
31
+ aria-label="color picker"
32
+ className="flex flex-row gap-2 rounded w-6 h-6"
33
+ size="sm"
34
+ variant="ghost"
35
+ style={{ background: color }}
36
+ >
37
+ <span className="sr-only">Color picker</span>
38
+ </Button>
39
+ </PopoverTrigger>
40
+ <PopoverContent className="flex flex-row w-fit p-2">
41
+ <HexColorPicker color={color} onChange={setColor} />
42
+ </PopoverContent>
43
+ </Popover>
44
+ </div>
45
+ </div>
46
+ );
47
+ }
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
3
  import * as DialogPrimitive from '@radix-ui/react-dialog';
4
+ import { cva, type VariantProps } from 'class-variance-authority';
4
5
  import { XIcon } from 'lucide-react';
5
6
  import type * as React from 'react';
6
-
7
7
  import { cn } from '@/lib/utils';
8
8
 
9
9
  function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {
@@ -38,25 +38,53 @@ function DialogOverlay({
38
38
  );
39
39
  }
40
40
 
41
+ const dialogContentVariants = cva(
42
+ 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed z-50 grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border p-6 shadow-lg duration-200 max-h-[calc(100dvh-1.5rem)] overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent',
43
+ {
44
+ variants: {
45
+ variant: {
46
+ default: '',
47
+ },
48
+ position: {
49
+ top: 'top-3 left-[50%] translate-x-[-50%]',
50
+ center: 'top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]',
51
+ bottom: 'bottom-3 left-[50%] translate-x-[-50%]',
52
+ },
53
+ size: {
54
+ default: 'sm:max-w-lg',
55
+ sm: 'sm:max-w-md',
56
+ md: 'sm:max-w-lg',
57
+ lg: 'sm:max-w-xl',
58
+ xl: 'sm:max-w-2xl',
59
+ fullscreen: 'w-screen h-screen',
60
+ },
61
+ },
62
+ defaultVariants: {
63
+ variant: 'default',
64
+ position: 'center',
65
+ size: 'default',
66
+ },
67
+ }
68
+ );
69
+
41
70
  function DialogContent({
42
71
  className,
43
72
  children,
44
73
  showCloseButton = true,
74
+ variant = 'default',
75
+ position = 'center',
76
+ size = 'default',
45
77
  ...props
46
- }: React.ComponentProps<typeof DialogPrimitive.Content> & {
47
- showCloseButton?: boolean;
48
- }) {
78
+ }: React.ComponentProps<typeof DialogPrimitive.Content> &
79
+ VariantProps<typeof dialogContentVariants> & {
80
+ showCloseButton?: boolean;
81
+ }) {
49
82
  return (
50
83
  <DialogPortal data-slot="dialog-portal">
51
84
  <DialogOverlay />
52
85
  <DialogPrimitive.Content
53
86
  data-slot="dialog-content"
54
- className={cn(
55
- 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',
56
- 'max-h-[calc(100dvh-1.5rem)] overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent',
57
-
58
- className
59
- )}
87
+ className={cn(dialogContentVariants({ variant, position, size, className }), className)}
60
88
  {...props}
61
89
  >
62
90
  {children}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import * as TabsPrimitive from '@radix-ui/react-tabs';
4
+ import { cva, type VariantProps } from 'class-variance-authority';
4
5
  import type { ComponentProps, FC } from 'react';
5
6
  import { cn } from '@/lib/utils';
6
7
 
@@ -16,14 +17,33 @@ const TabsList: FC<ComponentProps<typeof TabsPrimitive.List>> = ({ className, ..
16
17
  />
17
18
  );
18
19
 
19
- const TabsTrigger: FC<ComponentProps<typeof TabsPrimitive.Trigger>> = ({ className, ...props }) => (
20
- <TabsPrimitive.Trigger
21
- className={cn(
22
- 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',
23
- className
24
- )}
25
- {...props}
26
- />
20
+ const tabsTriggerVariants = cva(
21
+ 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
22
+ {
23
+ variants: {
24
+ variant: {
25
+ default:
26
+ 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm font-mono uppercase',
27
+ underline:
28
+ 'bg-transparent data-[state=active]:border-primary dark:data-[state=active]:border-primary h-full rounded-none border-0 border-b-2 border-transparent data-[state=active]:shadow-none data-[state=active]:text-primary data-[state=active]:bg-transparent uppercase font-mono text-xs mt-0.5 pt-2',
29
+ },
30
+ },
31
+ defaultVariants: {
32
+ variant: 'default',
33
+ },
34
+ }
35
+ );
36
+
37
+ export interface TabsTriggerProps
38
+ extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>,
39
+ VariantProps<typeof tabsTriggerVariants> {}
40
+
41
+ const TabsTrigger: FC<ComponentProps<typeof TabsPrimitive.Trigger> & TabsTriggerProps> = ({
42
+ className,
43
+ variant,
44
+ ...props
45
+ }) => (
46
+ <TabsPrimitive.Trigger className={cn(tabsTriggerVariants({ variant }), className)} {...props} />
27
47
  );
28
48
 
29
49
  const TabsContent: FC<ComponentProps<typeof TabsPrimitive.Content>> = ({ className, ...props }) => (
@@ -36,4 +56,4 @@ const TabsContent: FC<ComponentProps<typeof TabsPrimitive.Content>> = ({ classNa
36
56
  />
37
57
  );
38
58
 
39
- export { Tabs, TabsList, TabsTrigger, TabsContent };
59
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsTriggerVariants };