@inkeep/agents-manage-ui 0.9.0 → 0.10.2

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 (236) 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 +219 -219
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +10 -10
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +20 -20
  6. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +4 -4
  7. package/.next/standalone/agents-manage-ui/.next/routes-manifest.json +37 -37
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -0
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{data-components/new → artifacts/[artifactComponentId]}/page.js.nft.json +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -0
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -0
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{data-components/[dataComponentId] → artifacts/new}/page.js.nft.json +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -0
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -0
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -0
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -0
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{artifact-components/[artifactComponentId] → components/[dataComponentId]}/page.js.nft.json +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -0
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -0
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{artifact-components → components}/new/page.js.nft.json +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -0
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -0
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -0
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +2 -2
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +2 -2
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  79. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  83. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +10 -10
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/1902.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/209.js +1 -0
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/2314.js +1 -0
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/2539.js +5 -5
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/{3679.js → 3113.js} +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/3859.js +19 -3
  92. package/.next/standalone/agents-manage-ui/.next/server/chunks/{7652.js → 4038.js} +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/chunks/71.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/chunks/7293.js +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/chunks/8449.js +3 -3
  96. package/.next/standalone/agents-manage-ui/.next/server/chunks/{2563.js → 8799.js} +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/chunks/9093.js +2 -2
  98. package/.next/standalone/agents-manage-ui/.next/server/chunks/9237.js +1 -0
  99. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  103. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/static/chunks/2063-af61e7c864e76f4f.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/static/chunks/{4132.e82c1ad08339ac0f.js → 4132.0629ebed95bad681.js} +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/{6530.aafea7600cb29c93.js → 4149.b5aa052344354415.js} +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/{4095-96d343710caf26be.js → 4261-454575adeb801448.js} +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/{3693.64ddbe1e3726f385.js → 6074.8b094e68e36d7e9c.js} +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-730aff54edcfb10c.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/7885-0b12122c31695e33.js +1 -0
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/9644-54e28306f3abe125.js +1 -0
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/{9964-e16d35b53a509ad4.js → 9964-fa3450b6002dd562.js} +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-6d39fab4d195c19a.js +1 -0
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/error-f1418a11c66d8096.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-5150a6de8b80c4b4.js +1 -0
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/error-30269bcc821d7de1.js +1 -0
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-025ec4e3a5810eca.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-5150a6de8b80c4b4.js +1 -0
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-1c17260377b32c91.js +1 -0
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/error-cc0a7cc2ba09d619.js +1 -0
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-664381776dad1c85.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/error-4a78192429f3c345.js +1 -0
  124. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-025ec4e3a5810eca.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-664381776dad1c85.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-d84ad34da5dc5af8.js +1 -0
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-51ae865fa7c52430.js +1 -0
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-9adfab93a442927d.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-025ec4e3a5810eca.js +1 -0
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-dda2db18ed173e31.js +1 -0
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-9845708b28d20181.js → page-f4c25df5d1755217.js} +1 -1
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-025ec4e3a5810eca.js +1 -0
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/{page-85b42eb6434f29e0.js → page-d0db257541c6509a.js} +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-546eada72bc05113.js → page-9a01d68fffd96a5a.js} +1 -1
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-7e0d6905b3917360.js +1 -0
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-dd6ae70ea7fabd25.js → page-c8b2486c3ad4a568.js} +1 -1
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-cdc9588a55a0d92c.js → page-a720eff492b73cb2.js} +1 -1
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-a0922720c62feda3.js → page-b248a0ea8649e4f3.js} +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-dfdb58eb7760e57d.js +1 -0
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-025ec4e3a5810eca.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-55e12f6eb0a99f77.js +1 -0
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-f0703e32230d7952.js +1 -0
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-2d4148ddf995243a.js → webpack-b20dc8e12f728891.js} +1 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/css/4891c14dcbd99183.css +1 -0
  145. package/.next/standalone/agents-manage-ui/package.json +1 -1
  146. package/.next/standalone/package.json +2 -6
  147. package/.next/standalone/packages/agents-core/package.json +5 -4
  148. package/package.json +4 -4
  149. package/src/app/[tenantId]/projects/[projectId]/{artifact-components → artifacts}/[artifactComponentId]/error.tsx +2 -2
  150. package/src/app/[tenantId]/projects/[projectId]/{artifact-components → artifacts}/[artifactComponentId]/page.tsx +2 -2
  151. package/src/app/[tenantId]/projects/[projectId]/{artifact-components → artifacts}/loading.tsx +2 -2
  152. package/src/app/[tenantId]/projects/[projectId]/{artifact-components → artifacts}/new/page.tsx +3 -3
  153. package/src/app/[tenantId]/projects/[projectId]/{artifact-components → artifacts}/page.tsx +9 -9
  154. package/src/app/[tenantId]/projects/[projectId]/{data-components → components}/[dataComponentId]/error.tsx +2 -2
  155. package/src/app/[tenantId]/projects/[projectId]/{data-components → components}/[dataComponentId]/page.tsx +2 -2
  156. package/src/app/[tenantId]/projects/[projectId]/{data-components → components}/loading.tsx +2 -2
  157. package/src/app/[tenantId]/projects/[projectId]/{data-components → components}/new/page.tsx +3 -3
  158. package/src/app/[tenantId]/projects/[projectId]/{data-components → components}/page.tsx +8 -8
  159. package/src/app/api/signoz/conversations/[conversationId]/route.ts +26 -4
  160. package/src/components/artifact-components/artifact-component-item.tsx +1 -1
  161. package/src/components/artifact-components/delete-artifact-component-confirmation.tsx +2 -2
  162. package/src/components/artifact-components/form/artifact-component-form.tsx +9 -9
  163. package/src/components/data-components/data-component-item.tsx +1 -1
  164. package/src/components/data-components/delete-data-component-confirmation.tsx +2 -2
  165. package/src/components/data-components/form/data-component-form.tsx +6 -6
  166. package/src/components/graph/graph.tsx +24 -2
  167. package/src/components/graph/nodes/agent-node.tsx +2 -6
  168. package/src/components/graph/sidepane/metadata/metadata-editor.tsx +10 -6
  169. package/src/components/graph/sidepane/nodes/agent-node-editor.tsx +10 -10
  170. package/src/components/graph/sidepane/nodes/credential-selector.tsx +17 -13
  171. package/src/components/graph/sidepane/nodes/model-section.tsx +10 -6
  172. package/src/components/graph/sidepane/nodes/model-selector.tsx +5 -1
  173. package/src/components/projects/form/project-models-section.tsx +1 -1
  174. package/src/components/sidebar-nav/sidebar-nav.tsx +11 -11
  175. package/src/components/traces/timeline/activity-timeline.tsx +3 -0
  176. package/src/components/traces/timeline/render-panel-content.tsx +63 -9
  177. package/src/components/traces/timeline/timeline-item.tsx +18 -4
  178. package/src/components/traces/timeline/timeline-wrapper.tsx +32 -18
  179. package/src/components/traces/timeline/types.ts +4 -0
  180. package/src/components/ui/external-link.tsx +13 -2
  181. package/src/constants/page-descriptions.tsx +1 -1
  182. package/src/features/graph/domain/deserialize.ts +2 -2
  183. package/src/lib/actions/artifact-components.ts +9 -9
  184. package/src/lib/actions/data-components.ts +5 -5
  185. package/src/lib/api/artifact-components.ts +4 -4
  186. package/src/lib/utils/graph-error-parser.ts +2 -2
  187. package/src/lib/utils/mcp-urls.ts +1 -2
  188. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page.js +0 -2
  189. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page_client-reference-manifest.js +0 -1
  190. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page.js +0 -2
  191. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page_client-reference-manifest.js +0 -1
  192. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/page.js +0 -2
  193. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/page_client-reference-manifest.js +0 -1
  194. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page.js +0 -2
  195. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page_client-reference-manifest.js +0 -1
  196. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page.js +0 -2
  197. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page_client-reference-manifest.js +0 -1
  198. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page.js +0 -2
  199. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page_client-reference-manifest.js +0 -1
  200. package/.next/standalone/agents-manage-ui/.next/server/chunks/5286.js +0 -1
  201. package/.next/standalone/agents-manage-ui/.next/server/chunks/6675.js +0 -1
  202. package/.next/standalone/agents-manage-ui/.next/server/chunks/9831.js +0 -1
  203. package/.next/standalone/agents-manage-ui/.next/static/chunks/1413-48a35bb8b2d9a310.js +0 -1
  204. package/.next/standalone/agents-manage-ui/.next/static/chunks/2063-fdc0702cbb1a1a89.js +0 -1
  205. package/.next/standalone/agents-manage-ui/.next/static/chunks/2082-891b4e1bcad00d88.js +0 -1
  206. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-11a12434690e1440.js +0 -1
  207. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-10994c4134a5b1f6.js +0 -1
  208. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/error-5ea01b42c0d946d5.js +0 -1
  209. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page-ac21ae31668741aa.js +0 -1
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/error-3b2af015fcc2359e.js +0 -1
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/loading-ef3dedb418fb26d6.js +0 -1
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/new/page-ac21ae31668741aa.js +0 -1
  213. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/page-2bb568b6c23a881e.js +0 -1
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-3d397c420bb8143b.js +0 -1
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-f7c50d8bbfd65b0d.js +0 -1
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-ef3dedb418fb26d6.js +0 -1
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-e11b688b8c64e54e.js +0 -1
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/error-7dcfd95f4b78d6bc.js +0 -1
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page-4bee752045ef90e0.js +0 -1
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/error-aab618cc712fb97f.js +0 -1
  221. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/loading-ef3dedb418fb26d6.js +0 -1
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/new/page-4bee752045ef90e0.js +0 -1
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/page-0b8a51e424924a54.js +0 -1
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-ef3dedb418fb26d6.js +0 -1
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-aa753859a6cd98f8.js +0 -1
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-2a12f980f96c7c38.js +0 -1
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-ef3dedb418fb26d6.js +0 -1
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-7e81c1c4a1f31187.js +0 -1
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-3d8dfc51ee03d859.js +0 -1
  230. package/.next/standalone/agents-manage-ui/.next/static/css/d6cfe4d39e9ec828.css +0 -1
  231. /package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{artifact-components → artifacts}/page.js.nft.json +0 -0
  232. /package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{data-components → components}/page.js.nft.json +0 -0
  233. /package/.next/standalone/agents-manage-ui/.next/static/{P565yMuBD-0DpQccwOL1W → L7WcT2fRRZif5hXZksQdA}/_buildManifest.js +0 -0
  234. /package/.next/standalone/agents-manage-ui/.next/static/{P565yMuBD-0DpQccwOL1W → L7WcT2fRRZif5hXZksQdA}/_ssgManifest.js +0 -0
  235. /package/src/app/[tenantId]/projects/[projectId]/{artifact-components → artifacts}/error.tsx +0 -0
  236. /package/src/app/[tenantId]/projects/[projectId]/{data-components → components}/error.tsx +0 -0
@@ -22,24 +22,24 @@ async function DataComponentsPage({ params }: DataComponentsPageProps) {
22
22
  const response = await fetchDataComponents(tenantId, projectId);
23
23
  dataComponents = response;
24
24
  } catch (_error) {
25
- throw new Error('Failed to fetch data components');
25
+ throw new Error('Failed to fetch components');
26
26
  }
27
27
  return (
28
- <BodyTemplate breadcrumbs={[{ label: 'Data components' }]}>
28
+ <BodyTemplate breadcrumbs={[{ label: 'Components' }]}>
29
29
  <MainContent className="min-h-full">
30
30
  {dataComponents.data.length > 0 ? (
31
31
  <>
32
32
  <PageHeader
33
- title="Data components"
33
+ title="Components"
34
34
  description={dataComponentDescription}
35
35
  action={
36
36
  <Button asChild>
37
37
  <Link
38
- href={`/${tenantId}/projects/${projectId}/data-components/new`}
38
+ href={`/${tenantId}/projects/${projectId}/components/new`}
39
39
  className="flex items-center gap-2"
40
40
  >
41
41
  <Plus className="size-4" />
42
- New data component
42
+ New component
43
43
  </Link>
44
44
  </Button>
45
45
  }
@@ -52,10 +52,10 @@ async function DataComponentsPage({ params }: DataComponentsPageProps) {
52
52
  </>
53
53
  ) : (
54
54
  <EmptyState
55
- title="No data components yet."
55
+ title="No components yet."
56
56
  description={dataComponentDescription}
57
- link={`/${tenantId}/projects/${projectId}/data-components/new`}
58
- linkText="Create data component"
57
+ link={`/${tenantId}/projects/${projectId}/components/new`}
58
+ linkText="Create component"
59
59
  />
60
60
  )}
61
61
  </MainContent>
@@ -204,6 +204,10 @@ function buildConversationListPayload(
204
204
  key: SPAN_KEYS.AI_TOOL_CALL_RESULT,
205
205
  ...QUERY_FIELD_CONFIGS.STRING_TAG,
206
206
  },
207
+ {
208
+ key: SPAN_KEYS.AI_TOOL_CALL_ARGS,
209
+ ...QUERY_FIELD_CONFIGS.STRING_TAG,
210
+ },
207
211
  { key: SPAN_KEYS.AI_TOOL_TYPE, ...QUERY_FIELD_CONFIGS.STRING_TAG },
208
212
  { key: SPAN_KEYS.AI_AGENT_NAME, ...QUERY_FIELD_CONFIGS.STRING_TAG },
209
213
  {
@@ -579,6 +583,10 @@ function buildConversationListPayload(
579
583
  key: SPAN_KEYS.GEN_AI_USAGE_OUTPUT_TOKENS,
580
584
  ...QUERY_FIELD_CONFIGS.INT64_TAG,
581
585
  },
586
+ {
587
+ key: SPAN_KEYS.AI_RESPONSE_TEXT,
588
+ ...QUERY_FIELD_CONFIGS.STRING_TAG,
589
+ },
582
590
  ]
583
591
  ),
584
592
 
@@ -783,6 +791,7 @@ export async function GET(
783
791
  serviceTier?: string;
784
792
  aiResponseContent?: string;
785
793
  aiResponseTimestamp?: string;
794
+ aiResponseText?: string;
786
795
  // user
787
796
  messageContent?: string;
788
797
  // context resolution
@@ -795,6 +804,8 @@ export async function GET(
795
804
  // tool specifics
796
805
  toolType?: string;
797
806
  toolPurpose?: string;
807
+ toolCallArgs?: string;
808
+ toolCallResult?: string;
798
809
  // delegation/transfer
799
810
  delegationFromAgentId?: string;
800
811
  delegationToAgentId?: string;
@@ -824,6 +835,12 @@ export async function GET(
824
835
  // tool calls → activities
825
836
  for (const span of toolCallSpans) {
826
837
  const name = getString(span, SPAN_KEYS.AI_TOOL_CALL_NAME, 'Unknown Tool');
838
+
839
+ // Skip thinking_complete tool calls from the timeline
840
+ if (name === 'thinking_complete') {
841
+ continue;
842
+ }
843
+
827
844
  const hasError = getField(span, SPAN_KEYS.HAS_ERROR) === true;
828
845
  const durMs = getNumber(span, SPAN_KEYS.DURATION_NANO) / 1e6;
829
846
  const toolType = getString(span, SPAN_KEYS.AI_TOOL_TYPE, '');
@@ -833,11 +850,13 @@ export async function GET(
833
850
  const transferFromAgentId = getString(span, SPAN_KEYS.TRANSFER_FROM_AGENT_ID, '');
834
851
  const transferToAgentId = getString(span, SPAN_KEYS.TRANSFER_TO_AGENT_ID, '');
835
852
 
853
+ // Extract tool call args and result for ALL tool calls
854
+ const toolCallArgs = getString(span, SPAN_KEYS.AI_TOOL_CALL_ARGS, '');
855
+ const toolCallResult = getString(span, SPAN_KEYS.AI_TOOL_CALL_RESULT, '');
856
+
836
857
  // Parse save_tool_result JSON if present
837
858
  let saveFields: any = {};
838
859
  if (name === TOOL_NAMES.SAVE_TOOL_RESULT) {
839
- const toolResult = getString(span, SPAN_KEYS.AI_TOOL_CALL_RESULT, '');
840
- const toolArgs = getString(span, SPAN_KEYS.AI_TOOL_CALL_ARGS, '');
841
860
  const operationId = getString(span, SPAN_KEYS.AI_OPERATION_ID, '');
842
861
  const toolCallId = getString(span, SPAN_KEYS.AI_TOOL_CALL_ID, '');
843
862
  const functionId = getString(span, SPAN_KEYS.AI_TELEMETRY_FUNCTION_ID, '');
@@ -845,14 +864,14 @@ export async function GET(
845
864
  // Parse tool arguments
846
865
  let parsedArgs: any = {};
847
866
  try {
848
- parsedArgs = JSON.parse(toolArgs);
867
+ parsedArgs = JSON.parse(toolCallArgs);
849
868
  } catch (_e) {
850
869
  // Keep empty if parsing fails
851
870
  }
852
871
 
853
872
  // Parse tool result
854
873
  try {
855
- const parsed = JSON.parse(toolResult);
874
+ const parsed = JSON.parse(toolCallResult);
856
875
  // Extract first artifact info if available
857
876
  const firstArtifact = parsed.artifacts
858
877
  ? (Object.values(parsed.artifacts)[0] as any)
@@ -898,6 +917,8 @@ export async function GET(
898
917
  delegationToAgentId: delegationToAgentId || undefined,
899
918
  transferFromAgentId: transferFromAgentId || undefined,
900
919
  transferToAgentId: transferToAgentId || undefined,
920
+ toolCallArgs: toolCallArgs || undefined,
921
+ toolCallResult: toolCallResult || undefined,
901
922
  ...saveFields, // Include save_tool_result specific fields
902
923
  });
903
924
  }
@@ -1040,6 +1061,7 @@ export async function GET(
1040
1061
  aiModel: getString(span, SPAN_KEYS.AI_RESPONSE_MODEL, 'Unknown Model'),
1041
1062
  inputTokens: getNumber(span, SPAN_KEYS.GEN_AI_USAGE_INPUT_TOKENS, 0),
1042
1063
  outputTokens: getNumber(span, SPAN_KEYS.GEN_AI_USAGE_OUTPUT_TOKENS, 0),
1064
+ aiResponseText: getString(span, SPAN_KEYS.AI_RESPONSE_TEXT, '') || undefined,
1043
1065
  });
1044
1066
  }
1045
1067
 
@@ -21,7 +21,7 @@ export function ArtifactComponentItem({
21
21
  tenantId,
22
22
  projectId,
23
23
  }: ArtifactComponent & { tenantId: string; projectId: string }) {
24
- const linkPath = `/${tenantId}/projects/${projectId}/artifact-components/${id}`;
24
+ const linkPath = `/${tenantId}/projects/${projectId}/artifacts/${id}`;
25
25
 
26
26
  return (
27
27
  <ItemCardRoot>
@@ -29,7 +29,7 @@ export function DeleteArtifactComponentConfirmation({
29
29
  const result = await deleteArtifactComponentAction(tenantId, projectId, artifactComponentId);
30
30
  if (result.success) {
31
31
  setIsOpen(false);
32
- toast.success('Artifact component deleted.');
32
+ toast.success('Artifact deleted.');
33
33
  } else {
34
34
  toast.error(result.error);
35
35
  }
@@ -40,7 +40,7 @@ export function DeleteArtifactComponentConfirmation({
40
40
 
41
41
  return (
42
42
  <DeleteConfirmation
43
- itemName={artifactComponentName || 'this artifact component'}
43
+ itemName={artifactComponentName || 'this artifact'}
44
44
  isSubmitting={isSubmitting}
45
45
  onDelete={handleDelete}
46
46
  />
@@ -67,22 +67,22 @@ export function ArtifactComponentForm({
67
67
  if (id) {
68
68
  const res = await updateArtifactComponentAction(tenantId, projectId, payload);
69
69
  if (!res.success) {
70
- toast.error(res.error || 'Failed to update artifact component');
70
+ toast.error(res.error || 'Failed to update artifact.');
71
71
  return;
72
72
  }
73
- toast.success('Artifact component updated');
73
+ toast.success('Artifact updated.');
74
74
  } else {
75
75
  const res = await createArtifactComponentAction(tenantId, projectId, payload);
76
76
  if (!res.success) {
77
- toast.error(res.error || 'Failed to create artifact component');
77
+ toast.error(res.error || 'Failed to create artifact');
78
78
  return;
79
79
  }
80
- toast.success('Artifact component created');
81
- router.push(`/${tenantId}/projects/${projectId}/artifact-components`);
80
+ toast.success('Artifact created.');
81
+ router.push(`/${tenantId}/projects/${projectId}/artifacts`);
82
82
  }
83
83
  } catch (error) {
84
- console.error('Error submitting artifact component:', error);
85
- const errorMessage = error instanceof Error ? error.message : 'An unexpected error occurred';
84
+ console.error('Error submitting artifact:', error);
85
+ const errorMessage = error instanceof Error ? error.message : 'An unexpected error occurred.';
86
86
  toast.error(errorMessage);
87
87
  }
88
88
  };
@@ -101,13 +101,13 @@ export function ArtifactComponentForm({
101
101
  control={form.control}
102
102
  name="id"
103
103
  label="Id"
104
- placeholder="my-artifact-component"
104
+ placeholder="my-artifact"
105
105
  disabled={!!id}
106
106
  isRequired
107
107
  description={
108
108
  id
109
109
  ? ''
110
- : 'Choose a unique identifier for this component. Using an existing id will replace that component.'
110
+ : 'Choose a unique identifier for this artifact. Using an existing id will replace that artifact.'
111
111
  }
112
112
  />
113
113
  <GenericTextarea
@@ -21,7 +21,7 @@ export function DataComponentItem({
21
21
  tenantId,
22
22
  projectId,
23
23
  }: DataComponent & { tenantId: string; projectId: string }) {
24
- const linkPath = `/${tenantId}/projects/${projectId}/data-components/${id}`;
24
+ const linkPath = `/${tenantId}/projects/${projectId}/components/${id}`;
25
25
 
26
26
  return (
27
27
  <ItemCardRoot>
@@ -29,7 +29,7 @@ export function DeleteDataComponentConfirmation({
29
29
  const result = await deleteDataComponentAction(tenantId, projectId, dataComponentId);
30
30
  if (result.success) {
31
31
  setIsOpen(false);
32
- toast.success('Data component deleted.');
32
+ toast.success('Component deleted.');
33
33
  } else {
34
34
  toast.error(result.error);
35
35
  }
@@ -40,7 +40,7 @@ export function DeleteDataComponentConfirmation({
40
40
 
41
41
  return (
42
42
  <DeleteConfirmation
43
- itemName={dataComponentName || 'this data component'}
43
+ itemName={dataComponentName || 'this component'}
44
44
  isSubmitting={isSubmitting}
45
45
  onDelete={handleDelete}
46
46
  />
@@ -64,21 +64,21 @@ export function DataComponentForm({
64
64
  if (id) {
65
65
  const res = await updateDataComponentAction(tenantId, projectId, payload);
66
66
  if (!res.success) {
67
- toast.error(res.error || 'Failed to update data component');
67
+ toast.error(res.error || 'Failed to update component');
68
68
  return;
69
69
  }
70
- toast.success('Data component updated');
70
+ toast.success('Component updated');
71
71
  } else {
72
72
  const res = await createDataComponentAction(tenantId, projectId, payload);
73
73
  if (!res.success) {
74
- toast.error(res.error || 'Failed to create data component');
74
+ toast.error(res.error || 'Failed to create component');
75
75
  return;
76
76
  }
77
- toast.success('Data component created');
78
- router.push(`/${tenantId}/projects/${projectId}/data-components`);
77
+ toast.success('Component created');
78
+ router.push(`/${tenantId}/projects/${projectId}/components`);
79
79
  }
80
80
  } catch (error) {
81
- console.error('Error submitting data component:', error);
81
+ console.error('Error submitting component:', error);
82
82
  const errorMessage = error instanceof Error ? error.message : 'An unexpected error occurred';
83
83
  toast.error(errorMessage);
84
84
  }
@@ -179,7 +179,7 @@ function Flow({
179
179
  return lookup;
180
180
  }, [graph?.agents]);
181
181
 
182
- const { screenToFlowPosition, updateNodeData } = useReactFlow();
182
+ const { screenToFlowPosition, updateNodeData, fitView } = useReactFlow();
183
183
  const {
184
184
  nodes: storeNodes,
185
185
  edges,
@@ -259,6 +259,28 @@ function Flow({
259
259
  }
260
260
  }, []);
261
261
 
262
+ // Auto-center graph when sidepane opens/closes
263
+ // biome-ignore lint/correctness/useExhaustiveDependencies: we want to trigger on isOpen changes
264
+ useEffect(() => {
265
+ // Delay to allow CSS transition to complete (300ms transition + 50ms buffer)
266
+ const timer = setTimeout(() => {
267
+ fitView({ maxZoom: 1, duration: 200 });
268
+ }, 350);
269
+
270
+ return () => clearTimeout(timer);
271
+ }, [isOpen, fitView]);
272
+
273
+ // Auto-center graph when playground opens/closes
274
+ // biome-ignore lint/correctness/useExhaustiveDependencies: we want to trigger on showPlayground changes
275
+ useEffect(() => {
276
+ // Delay to allow CSS transition to complete
277
+ const timer = setTimeout(() => {
278
+ fitView({ maxZoom: 1, duration: 200 });
279
+ }, 350);
280
+
281
+ return () => clearTimeout(timer);
282
+ }, [showPlayground, fitView]);
283
+
262
284
  // biome-ignore lint/correctness/useExhaustiveDependencies: we only want to add/connect edges once
263
285
  const onConnectWrapped = useCallback((params: Connection) => {
264
286
  markUnsaved();
@@ -648,7 +670,7 @@ function Flow({
648
670
  <Toolbar
649
671
  onSubmit={onSubmit}
650
672
  isPreviewDisabled={!graph?.id}
651
- toggleSidePane={isOpen ? closeSidePane : openGraphPane}
673
+ toggleSidePane={isOpen ? backToGraph : openGraphPane}
652
674
  setShowPlayground={() => {
653
675
  closeSidePane();
654
676
  setShowPlayground(true);
@@ -108,14 +108,10 @@ export function AgentNode(props: NodeProps & { data: AgentNodeData }) {
108
108
  </Badge>
109
109
  ) : null}
110
110
  {dataComponentNames?.length > 0 && (
111
- <ListSection title="Data components" items={dataComponentNames} Icon={Component} />
111
+ <ListSection title="Components" items={dataComponentNames} Icon={Component} />
112
112
  )}
113
113
  {artifactComponentNames?.length > 0 && (
114
- <ListSection
115
- title="Artifact components"
116
- items={artifactComponentNames}
117
- Icon={Library}
118
- />
114
+ <ListSection title="Artifacts" items={artifactComponentNames} Icon={Library} />
119
115
  )}
120
116
  </BaseNodeContent>
121
117
  <Handle id={agentNodeTargetHandleId} type="source" position={Position.Top} isConnectable />
@@ -147,7 +147,7 @@ function MetadataEditor() {
147
147
  title="Default models"
148
148
  description="Set default models that will be inherited by agents that don't have their own models configured."
149
149
  />
150
- <div className="relative">
150
+ <div className="relative space-y-2">
151
151
  <ModelSelector
152
152
  value={models?.base?.model || ''}
153
153
  inheritedValue={project?.models?.base?.model}
@@ -176,8 +176,8 @@ function MetadataEditor() {
176
176
  />
177
177
  </div>
178
178
  }
179
- tooltip="Primary model for general agent responses"
180
179
  />
180
+ <p className="text-xs text-muted-foreground">Primary model for general agent responses</p>
181
181
  </div>
182
182
 
183
183
  <Collapsible
@@ -195,7 +195,7 @@ function MetadataEditor() {
195
195
  </Button>
196
196
  </CollapsibleTrigger>
197
197
  <CollapsibleContent className="space-y-8 mt-4 data-[state=closed]:animate-[collapsible-up_200ms_ease-out] data-[state=open]:animate-[collapsible-down_200ms_ease-out] overflow-hidden px-4 pb-6">
198
- <div className="relative">
198
+ <div className="relative space-y-2">
199
199
  <ModelSelector
200
200
  value={models?.structuredOutput?.model || ''}
201
201
  inheritedValue={
@@ -228,10 +228,12 @@ function MetadataEditor() {
228
228
  />
229
229
  </div>
230
230
  }
231
- tooltip="Model for structured outputs and data components (defaults to base model)"
232
231
  />
232
+ <p className="text-xs text-muted-foreground">
233
+ Model for structured outputs and components (defaults to base model)
234
+ </p>
233
235
  </div>
234
- <div className="relative">
236
+ <div className="relative space-y-2">
235
237
  <ModelSelector
236
238
  value={models?.summarizer?.model || ''}
237
239
  inheritedValue={
@@ -264,8 +266,10 @@ function MetadataEditor() {
264
266
  />
265
267
  </div>
266
268
  }
267
- tooltip="Model for summarization tasks (defaults to base model)"
268
269
  />
270
+ <p className="text-xs text-muted-foreground">
271
+ Model for summarization tasks (defaults to base model)
272
+ </p>
269
273
  </div>
270
274
  </CollapsibleContent>
271
275
  </Collapsible>
@@ -198,29 +198,29 @@ export function AgentNodeEditor({
198
198
  </div>
199
199
  <Separator />
200
200
  <ComponentSelector
201
- label="Data components"
201
+ label="Components"
202
202
  componentLookup={dataComponentLookup}
203
203
  selectedComponents={selectedDataComponents}
204
204
  onSelectionChange={(newSelection) => {
205
205
  updatePath('dataComponents', newSelection);
206
206
  }}
207
- emptyStateMessage="No data components found."
208
- emptyStateActionText="Create data component"
209
- emptyStateActionHref={`/${tenantId}/projects/${projectId}/data-components/new`}
210
- placeholder="Select data components..."
207
+ emptyStateMessage="No components found."
208
+ emptyStateActionText="Create component"
209
+ emptyStateActionHref={`/${tenantId}/projects/${projectId}/components/new`}
210
+ placeholder="Select components..."
211
211
  />
212
212
 
213
213
  <ComponentSelector
214
- label="Artifact components"
214
+ label="Artifacts"
215
215
  componentLookup={artifactComponentLookup}
216
216
  selectedComponents={selectedArtifactComponents}
217
217
  onSelectionChange={(newSelection) => {
218
218
  updatePath('artifactComponents', newSelection);
219
219
  }}
220
- emptyStateMessage="No artifact components found."
221
- emptyStateActionText="Create artifact component"
222
- emptyStateActionHref={`/${tenantId}/projects/${projectId}/artifact-components/new`}
223
- placeholder="Select artifact components..."
220
+ emptyStateMessage="No artifacts found."
221
+ emptyStateActionText="Create artifact"
222
+ emptyStateActionHref={`/${tenantId}/projects/${projectId}/artifacts/new`}
223
+ placeholder="Select artifacts..."
224
224
  />
225
225
  </div>
226
226
  );
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
 
3
- import { ChevronsUpDown } from 'lucide-react';
3
+ import { Check, ChevronsUpDown } from 'lucide-react';
4
+ import { useParams } from 'next/navigation';
4
5
  import { useState } from 'react';
5
- import { Badge } from '@/components/ui/badge';
6
6
  import { Button } from '@/components/ui/button';
7
7
  import {
8
8
  Command,
@@ -15,6 +15,7 @@ import {
15
15
  import { Label } from '@/components/ui/label';
16
16
  import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
17
17
  import type { Credential } from '@/lib/api/credentials';
18
+ import { EmptyState } from './empty-state';
18
19
 
19
20
  // Header component - shows label and status
20
21
  interface CredentialHeaderProps {
@@ -44,6 +45,10 @@ function CredentialDropdown({
44
45
  placeholder = 'Select credential...',
45
46
  }: CredentialDropdownProps) {
46
47
  const [open, setOpen] = useState(false);
48
+ const { tenantId, projectId } = useParams<{
49
+ tenantId: string;
50
+ projectId: string;
51
+ }>();
47
52
 
48
53
  return (
49
54
  <div className="flex w-full">
@@ -80,7 +85,14 @@ function CredentialDropdown({
80
85
  <Command>
81
86
  <CommandInput placeholder="Search credentials..." />
82
87
  <CommandList>
83
- <CommandEmpty>No credentials found.</CommandEmpty>
88
+ <CommandEmpty>
89
+ {' '}
90
+ <EmptyState
91
+ message={'No credentials found.'}
92
+ actionText={'Create credential'}
93
+ actionHref={`/${tenantId}/projects/${projectId}/credentials/new`}
94
+ />
95
+ </CommandEmpty>
84
96
  <CommandGroup>
85
97
  {/* No Authentication option */}
86
98
  <CommandItem
@@ -96,11 +108,7 @@ function CredentialDropdown({
96
108
  <div className="font-medium">No Authentication</div>
97
109
  <div className="text-xs text-muted-foreground">Unsecured connection</div>
98
110
  </div>
99
- {selectedCredentialId === null && (
100
- <Badge variant="success" className="text-[10px]">
101
- Selected
102
- </Badge>
103
- )}
111
+ {selectedCredentialId === null && <Check className="ml-2 h-4 w-4" />}
104
112
  </div>
105
113
  </CommandItem>
106
114
 
@@ -120,11 +128,7 @@ function CredentialDropdown({
120
128
  <div className="font-medium">{credential.id}</div>
121
129
  <div className="text-xs text-muted-foreground">{credential.type}</div>
122
130
  </div>
123
- {selectedCredentialId === credential.id && (
124
- <Badge variant="success" className="text-[10px]">
125
- Selected
126
- </Badge>
127
- )}
131
+ {selectedCredentialId === credential.id && <Check className="ml-2 h-4 w-4" />}
128
132
  </div>
129
133
  </CommandItem>
130
134
  ))}
@@ -29,7 +29,7 @@ export function ModelSection({
29
29
 
30
30
  return (
31
31
  <div className="space-y-8">
32
- <div className="relative">
32
+ <div className="relative space-y-2">
33
33
  <ModelSelector
34
34
  value={models?.base?.model || ''}
35
35
  onValueChange={(modelValue) => {
@@ -50,8 +50,8 @@ export function ModelSection({
50
50
  />
51
51
  </div>
52
52
  }
53
- tooltip="Primary model for general agent responses"
54
53
  />
54
+ <p className="text-xs text-muted-foreground">Primary model for general agent responses</p>
55
55
  </div>
56
56
 
57
57
  <Collapsible
@@ -69,7 +69,7 @@ export function ModelSection({
69
69
  </Button>
70
70
  </CollapsibleTrigger>
71
71
  <CollapsibleContent className="space-y-8 mt-4 data-[state=closed]:animate-[collapsible-up_200ms_ease-out] data-[state=open]:animate-[collapsible-down_200ms_ease-out] overflow-hidden px-4 pb-6">
72
- <div className="relative">
72
+ <div className="relative space-y-2">
73
73
  <ModelSelector
74
74
  value={models?.structuredOutput?.model || ''}
75
75
  onValueChange={(modelValue) => {
@@ -96,10 +96,12 @@ export function ModelSection({
96
96
  />
97
97
  </div>
98
98
  }
99
- tooltip="The model used for structured output and data components (defaults to base model)"
100
99
  />
100
+ <p className="text-xs text-muted-foreground">
101
+ The model used for structured output and components (defaults to base model)
102
+ </p>
101
103
  </div>
102
- <div className="relative">
104
+ <div className="relative space-y-2">
103
105
  <ModelSelector
104
106
  value={models?.summarizer?.model || ''}
105
107
  onValueChange={(modelValue) => {
@@ -126,8 +128,10 @@ export function ModelSection({
126
128
  />
127
129
  </div>
128
130
  }
129
- tooltip="The model used for summarization tasks (defaults to base model)"
130
131
  />
132
+ <p className="text-xs text-muted-foreground">
133
+ The model used for summarization tasks (defaults to base model)
134
+ </p>
131
135
  </div>
132
136
  </CollapsibleContent>
133
137
  </Collapsible>
@@ -182,6 +182,7 @@ export function ModelSelector({
182
182
  value="__openrouter__"
183
183
  onSelect={() => {
184
184
  setShowCustomInput('openrouter');
185
+ setOpen(false);
185
186
  setCustomModelInput('');
186
187
  }}
187
188
  >
@@ -192,6 +193,7 @@ export function ModelSelector({
192
193
  value="__gateway__"
193
194
  onSelect={() => {
194
195
  setShowCustomInput('gateway');
196
+ setOpen(false);
195
197
  setCustomModelInput('');
196
198
  }}
197
199
  >
@@ -209,6 +211,8 @@ export function ModelSelector({
209
211
  onSelect={(currentValue) => {
210
212
  onValueChange?.(currentValue === value ? '' : currentValue);
211
213
  setOpen(false);
214
+ setCustomModelInput('');
215
+ setShowCustomInput(null);
212
216
  }}
213
217
  >
214
218
  {model.label}
@@ -239,7 +243,7 @@ export function ModelSelector({
239
243
  ? 'Examples: anthropic/claude-3-5-sonnet, meta-llama/llama-3.1-405b-instruct'
240
244
  : 'Examples: openai/gpt-4o, anthropic/claude-3-5-sonnet'}
241
245
  </div>
242
- <div className="flex gap-2">
246
+ <div className="flex gap-2 items-center">
243
247
  <input
244
248
  className="flex-1 px-3 py-2 text-sm border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
245
249
  placeholder={
@@ -83,7 +83,7 @@ function StructuredOutputModelSection({ control }: { control: Control<ProjectFor
83
83
  control={control}
84
84
  name="models.structuredOutput.model"
85
85
  label="Structured output model"
86
- description="Model for structured outputs and data components (defaults to base model)"
86
+ description="Model for structured outputs and components (defaults to base model)"
87
87
  >
88
88
  {(field) => (
89
89
  <ModelSelector
@@ -60,7 +60,7 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
60
60
  icon: Workflow,
61
61
  },
62
62
  {
63
- title: 'Graph API Keys',
63
+ title: 'API Keys',
64
64
  url: `/${tenantId}/projects/${projectId}/api-keys`,
65
65
  icon: Key,
66
66
  },
@@ -69,16 +69,6 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
69
69
  url: `/${tenantId}/projects/${projectId}/mcp-servers`,
70
70
  icon: MCPIcon as LucideIcon,
71
71
  },
72
- {
73
- title: 'Data Components',
74
- url: `/${tenantId}/projects/${projectId}/data-components`,
75
- icon: Component,
76
- },
77
- {
78
- title: 'Artifact Components',
79
- url: `/${tenantId}/projects/${projectId}/artifact-components`,
80
- icon: Library,
81
- },
82
72
  {
83
73
  title: 'Credentials',
84
74
  url: `/${tenantId}/projects/${projectId}/credentials`,
@@ -89,6 +79,16 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
89
79
  url: `/${tenantId}/projects/${projectId}/traces`,
90
80
  icon: Activity,
91
81
  },
82
+ {
83
+ title: 'Components',
84
+ url: `/${tenantId}/projects/${projectId}/components`,
85
+ icon: Component,
86
+ },
87
+ {
88
+ title: 'Artifacts',
89
+ url: `/${tenantId}/projects/${projectId}/artifacts`,
90
+ icon: Library,
91
+ },
92
92
  {
93
93
  title: 'Settings',
94
94
  url: `/${tenantId}/projects/${projectId}/settings`,