@inkeep/agents-manage-ui 0.31.6 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) 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 +181 -181
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -6
  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 +21 -21
  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 +2 -2
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js.nft.json +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  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_client-reference-manifest.js +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  85. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  88. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +2 -2
  89. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +2 -2
  91. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js.nft.json +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 +6 -6
  97. package/.next/standalone/agents-manage-ui/.next/server/chunks/2323.js +2 -2
  98. package/.next/standalone/agents-manage-ui/.next/server/chunks/2351.js +26 -0
  99. package/.next/standalone/agents-manage-ui/.next/server/chunks/{2318.js → 2592.js} +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/chunks/341.js +15 -15
  101. package/.next/standalone/agents-manage-ui/.next/server/chunks/4321.js +1 -0
  102. package/.next/standalone/agents-manage-ui/.next/server/chunks/4429.js +1 -1
  103. package/.next/standalone/agents-manage-ui/.next/server/chunks/4528.js +1 -0
  104. package/.next/standalone/agents-manage-ui/.next/server/chunks/5316.js +3 -3
  105. package/.next/standalone/agents-manage-ui/.next/server/chunks/6150.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/server/chunks/7023.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/server/chunks/7065.js +10 -10
  108. package/.next/standalone/agents-manage-ui/.next/server/chunks/7942.js +1 -0
  109. package/.next/standalone/agents-manage-ui/.next/server/chunks/8072.js +7 -0
  110. package/.next/standalone/agents-manage-ui/.next/server/chunks/8079.js +7 -0
  111. package/.next/standalone/agents-manage-ui/.next/server/chunks/8359.js +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/server/chunks/865.js +1 -0
  113. package/.next/standalone/agents-manage-ui/.next/server/chunks/9542.js +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  116. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/10526-bb5d650d2bbf91c3.js +7 -0
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/1343-05a94311cdb00e10.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/19588-0cc7b6a67a286737.js +1 -0
  124. package/.next/standalone/agents-manage-ui/.next/static/chunks/{32848-ccddf72d711e0f10.js → 32848-ac4c735ae57c726f.js} +1 -1
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/39256-3131bd7496c85a2c.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/static/chunks/46410.0e8a6975e064d1b2.js +1 -0
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/{11727-dbddb4dbc677cfa7.js → 47932-d523e3a7b5baff5a.js} +1 -1
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/53027-c6cccd113b6a239b.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/{77764-1df13c1f10585571.js → 53352-1f91930691e35c02.js} +1 -1
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/{56452.8af20314358ce189.js → 56452.a7e4d92cc4db7a28.js} +1 -1
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/67695.50daf2d55a535621.js +1 -0
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/{76185-f0817813a3a145b7.js → 71744-f216532e995a4b83.js} +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/73744-949c586a30746f35.js +1 -0
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/{77246.12508e2a9fd3c50d.js → 77246.627627baf66e549d.js} +2 -2
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/{7965-be321dadb7ef1e3d.js → 7965-0cbec24081da936f.js} +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/96776-fe61e5d43d56e87f.js +1 -0
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/{layout-31bb2858b2f8811e.js → layout-233003c6e3a913c9.js} +1 -1
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-be966a70f8502ccc.js → page-70bd344ae83cdf57.js} +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-580bc2327bbae5ca.js → page-2acc6942acfb4269.js} +1 -1
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-6e05da8dfe63ccfc.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-5ccf6d182ca8d482.js +1 -0
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-768f637e70fd488b.js +1 -0
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-b50da076da4a34ec.js +1 -0
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-68fb8aa4c30ce1e4.js → page-035679aa4e52639f.js} +1 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-eebdbef3e57952d7.js +1 -0
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-b617cafe316af8a8.js +1 -0
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-1436a021ea5a4169.js → page-f0c93e5c631720b1.js} +1 -1
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-3c1d43536cd446c9.js +1 -0
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-3de6cb70ef769c1a.js +1 -0
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-bd02aa7979988a9c.js +1 -0
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-8c5c87e9120bafa8.js → page-87889cad75a1afae.js} +1 -1
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/{page-8f3159402ba52537.js → page-d96342ec2075e3a0.js} +1 -1
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-be70c9ab4296dfff.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/{page-15784e1c28e7a7a4.js → page-a941809e8cc6b5b4.js} +1 -1
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-2df6a828216b429b.js +1 -0
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-7f1e4e29534d657d.js +1 -0
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-393070b09141eda0.js +1 -0
  158. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-7f05e033cfe7f523.js +1 -0
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-ab197455cc37afc6.js → page-955cc730719a65f5.js} +1 -1
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-1ca030e6ca5874c2.js → page-1314aae4f8ba9c57.js} +1 -1
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-c18fe3e202b9acf5.js → page-0e2176028b073ac4.js} +1 -1
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-b96eba24cb7470a9.js +1 -0
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{layout-7552ac033085bed2.js → layout-c3890efb3f17c1fa.js} +1 -1
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-8ccede0f7d1fc68d.js → webpack-c428abc075ea89a6.js} +1 -1
  165. package/.next/standalone/agents-manage-ui/.next/static/css/050e9681f681dbc5.css +1 -0
  166. package/.next/standalone/agents-manage-ui/package.json +1 -1
  167. package/.next/standalone/packages/agents-core/package.json +7 -3
  168. package/package.json +4 -4
  169. package/src/app/utils/format-date.ts +32 -7
  170. package/src/components/agent/agent.tsx +31 -10
  171. package/src/components/agent/sidepane/metadata/metadata-editor.tsx +1 -1
  172. package/src/components/agent/sidepane/nodes/form-fields.tsx +104 -107
  173. package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +2 -1
  174. package/src/components/agent/sidepane/sidepane.tsx +4 -0
  175. package/src/components/editors/code-editor.tsx +12 -1
  176. package/src/components/editors/expandable-code-editor.tsx +9 -5
  177. package/src/components/editors/expandable-json-editor.tsx +9 -6
  178. package/src/components/editors/expandable-prompt-editor.tsx +13 -5
  179. package/src/components/editors/json-editor.tsx +11 -2
  180. package/src/components/editors/monaco-editor.tsx +1 -1
  181. package/src/components/editors/prompt-editor.tsx +1 -0
  182. package/src/components/form/expandable-field.tsx +21 -5
  183. package/src/env.d.ts +2 -0
  184. package/src/features/agent/domain/__tests__/serialize.test.ts +68 -1
  185. package/src/features/agent/domain/serialize.ts +47 -14
  186. package/src/features/agent/state/use-monaco-store.ts +2 -0
  187. package/src/hooks/use-traces.ts +1 -2
  188. package/.next/standalone/agents-manage-ui/.next/server/chunks/3200.js +0 -1
  189. package/.next/standalone/agents-manage-ui/.next/server/chunks/3690.js +0 -7
  190. package/.next/standalone/agents-manage-ui/.next/server/chunks/3828.js +0 -26
  191. package/.next/standalone/agents-manage-ui/.next/server/chunks/4746.js +0 -1
  192. package/.next/standalone/agents-manage-ui/.next/server/chunks/7225.js +0 -1
  193. package/.next/standalone/agents-manage-ui/.next/server/chunks/817.js +0 -7
  194. package/.next/standalone/agents-manage-ui/.next/server/chunks/8320.js +0 -1
  195. package/.next/standalone/agents-manage-ui/.next/server/chunks/9435.js +0 -1
  196. package/.next/standalone/agents-manage-ui/.next/server/chunks/9920.js +0 -1
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/19790-d7debd88cb1da34e.js +0 -1
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/39256-7a33a7cfbdecf52b.js +0 -1
  199. package/.next/standalone/agents-manage-ui/.next/static/chunks/46410.741cf7adb0d1397c.js +0 -1
  200. package/.next/standalone/agents-manage-ui/.next/static/chunks/52218-66069d13c487bb67.js +0 -1
  201. package/.next/standalone/agents-manage-ui/.next/static/chunks/52247-9bc5f31d80cdd76e.js +0 -1
  202. package/.next/standalone/agents-manage-ui/.next/static/chunks/67695.2ac4acc5c19805bf.js +0 -1
  203. package/.next/standalone/agents-manage-ui/.next/static/chunks/73744-ed53b2a1b7396fba.js +0 -1
  204. package/.next/standalone/agents-manage-ui/.next/static/chunks/75824-37e301e785290f2b.js +0 -7
  205. package/.next/standalone/agents-manage-ui/.next/static/chunks/85210-101ae8171554340b.js +0 -1
  206. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-228d99a91c845367.js +0 -1
  207. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-4d19601501dcd086.js +0 -1
  208. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-88efe1a39c9a6d18.js +0 -1
  209. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-454ba86d45fe5bfc.js +0 -1
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-6767ebcf26247be8.js +0 -1
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-859361f1b23eabcb.js +0 -1
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5f8ed5a10c190d14.js +0 -1
  213. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a0c2608afa8249db.js +0 -1
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-05f6016077c943c1.js +0 -1
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-2a8d400555b0276a.js +0 -1
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-f5d13f6f6f160526.js +0 -1
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-33e029753139f5f8.js +0 -1
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-8f3436690464e9bf.js +0 -1
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-d2aea0d2aa1e34da.js +0 -1
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-6dd70ed80c36b165.js +0 -1
  221. package/.next/standalone/agents-manage-ui/.next/static/css/31178030b73a06ca.css +0 -1
  222. /package/.next/standalone/agents-manage-ui/.next/static/{HarCmbzAumIcjUAzOVpVH → At1iGs09dqE60J93w2PO0}/_buildManifest.js +0 -0
  223. /package/.next/standalone/agents-manage-ui/.next/static/{HarCmbzAumIcjUAzOVpVH → At1iGs09dqE60J93w2PO0}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-core",
3
- "version": "0.31.6",
3
+ "version": "0.32.0",
4
4
  "description": "Agents Core contains the database schema, types, and validation schemas for Inkeep Agent Framework, along with core components.",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -9,6 +9,7 @@
9
9
  "exports": {
10
10
  ".": "./src/index.ts",
11
11
  "./constants/models": "./src/constants/models.ts",
12
+ "./constants/schema-validation": "./src/constants/schema-validation/index.ts",
12
13
  "./schema": "./src/db/schema.ts",
13
14
  "./types": "./src/types/index.ts",
14
15
  "./validation": "./src/validation/index.ts",
@@ -44,7 +45,6 @@
44
45
  "dependencies": {
45
46
  "@hono/node-server": "^1.14.3",
46
47
  "@hono/zod-openapi": "^1.0.2",
47
- "@libsql/client": "^0.15.7",
48
48
  "@modelcontextprotocol/sdk": "^1.17.2",
49
49
  "@nangohq/node": "^0.69.5",
50
50
  "@nangohq/types": "^0.69.5",
@@ -66,10 +66,11 @@
66
66
  "drizzle-zod": "^0.8.2",
67
67
  "exit-hook": "^4.0.0",
68
68
  "find-up": "^7.0.0",
69
- "hono": "^4.10.3",
69
+ "hono": "^4.10.4",
70
70
  "jmespath": "^0.16.0",
71
71
  "jose": "^6.1.0",
72
72
  "nanoid": "^5.0.9",
73
+ "pg": "^8.16.3",
73
74
  "pino": "^9.11.0",
74
75
  "pino-pretty": "^13.1.1",
75
76
  "ts-pattern": "^5.7.1",
@@ -79,10 +80,13 @@
79
80
  "keytar": "^7.9.0"
80
81
  },
81
82
  "devDependencies": {
83
+ "@electric-sql/pglite": "^0.3.13",
82
84
  "@types/jmespath": "^0.15.2",
83
85
  "@types/node": "^20.11.24",
86
+ "@types/pg": "^8.15.6",
84
87
  "@vitest/coverage-v8": "^3.2.4",
85
88
  "clean-package": "^2.2.0",
89
+ "drizzle-kit": "^0.31.6",
86
90
  "tsx": "^4.19.2",
87
91
  "typescript": "^5.9.2",
88
92
  "vitest": "^3.2.4"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-manage-ui",
3
- "version": "0.31.6",
3
+ "version": "0.32.0",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -90,9 +90,9 @@
90
90
  "use-stick-to-bottom": "^1.1.1",
91
91
  "zod": "^4.1.11",
92
92
  "zustand": "^5.0.7",
93
- "@inkeep/agents-core": "^0.31.6",
94
- "@inkeep/agents-manage-api": "^0.31.6",
95
- "@inkeep/agents-run-api": "^0.31.6"
93
+ "@inkeep/agents-core": "^0.32.0",
94
+ "@inkeep/agents-manage-api": "^0.32.0",
95
+ "@inkeep/agents-run-api": "^0.32.0"
96
96
  },
97
97
  "devDependencies": {
98
98
  "start-server-and-test": "^2.1.2",
@@ -1,10 +1,33 @@
1
1
  /**
2
- * Formats an ISO date string as "Mon DD, YYYY", e.g. "Jan 20, 2024".
3
- * @param {string} isoString - An ISO‐formatted date string, e.g. "2024-01-20T14:45:00Z"
2
+ * Checks if a date string is in PostgreSQL timestamp format and normalizes it to ISO 8601
3
+ * PostgreSQL format: "2025-11-07 21:48:24.858" or "2025-11-07 21:48:24"
4
+ * ISO 8601 format: "2025-11-07T21:48:24.858Z"
5
+ */
6
+ function normalizeDateString(dateString: string | Date): string | Date {
7
+ if (typeof dateString !== 'string') {
8
+ return dateString;
9
+ }
10
+
11
+ // PostgreSQL timestamp format pattern: YYYY-MM-DD HH:MM:SS[.mmm]
12
+ // Matches: "2025-11-07 21:48:24" or "2025-11-07 21:48:24.858"
13
+ const pgTimestampPattern = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(\.\d{1,3})?$/;
14
+
15
+ if (pgTimestampPattern.test(dateString)) {
16
+ // Replace space with 'T' and add 'Z' for UTC
17
+ return dateString.replace(' ', 'T') + 'Z';
18
+ }
19
+
20
+ return dateString;
21
+ }
22
+
23
+ /**
24
+ * Formats an ISO date string or PostgreSQL timestamp string as "Mon DD, YYYY", e.g. "Jan 20, 2024".
25
+ * @param {string} dateString - An ISO‐formatted date string or PostgreSQL timestamp string, e.g. "2024-01-20T14:45:00Z" or "2025-11-07 21:48:24.858"
4
26
  * @returns {string} - Formatted date like "Jan 20, 2024"
5
27
  */
6
- export function formatDate(isoString: string) {
7
- const date = new Date(isoString);
28
+ export function formatDate(dateString: string) {
29
+ const normalized = normalizeDateString(dateString);
30
+ const date = new Date(normalized);
8
31
 
9
32
  if (Number.isNaN(date.getTime())) {
10
33
  return 'Invalid date';
@@ -23,8 +46,9 @@ export function formatDate(isoString: string) {
23
46
  }
24
47
  }
25
48
 
26
- export function formatDateTime(isoString: string): string {
27
- const date = new Date(isoString);
49
+ export function formatDateTime(dateString: string): string {
50
+ const normalized = normalizeDateString(dateString);
51
+ const date = new Date(normalized);
28
52
  if (Number.isNaN(date.getTime())) return 'Invalid date';
29
53
  return new Intl.DateTimeFormat('en-US', {
30
54
  month: 'short',
@@ -39,7 +63,8 @@ export function formatDateTime(isoString: string): string {
39
63
 
40
64
  export function formatDateAgo(dateString: string) {
41
65
  try {
42
- const date = new Date(dateString);
66
+ const normalized = normalizeDateString(dateString);
67
+ const date = new Date(normalized);
43
68
 
44
69
  if (Number.isNaN(date.getTime())) {
45
70
  return 'Invalid date';
@@ -23,6 +23,7 @@ import {
23
23
  deserializeAgentData,
24
24
  type ExtendedFullAgentDefinition,
25
25
  extractAgentMetadata,
26
+ isContextConfigParseError,
26
27
  serializeAgentData,
27
28
  validateSerializedData,
28
29
  } from '@/features/agent/domain';
@@ -652,16 +653,36 @@ function AgentReactFlowConsumer({
652
653
  });
653
654
  }
654
655
 
655
- const serializedData = serializeAgentData(
656
- nodes,
657
- edges,
658
- metadata,
659
- dataComponentLookup,
660
- artifactComponentLookup,
661
- agentToolConfigLookup,
662
- subAgentExternalAgentConfigLookup,
663
- subAgentTeamAgentConfigLookup
664
- );
656
+ let serializedData: ReturnType<typeof serializeAgentData>;
657
+ try {
658
+ serializedData = serializeAgentData(
659
+ nodes,
660
+ edges,
661
+ metadata,
662
+ dataComponentLookup,
663
+ artifactComponentLookup,
664
+ agentToolConfigLookup,
665
+ subAgentExternalAgentConfigLookup,
666
+ subAgentTeamAgentConfigLookup
667
+ );
668
+ } catch (error) {
669
+ if (isContextConfigParseError(error)) {
670
+ const errorObjects = [
671
+ {
672
+ message: error.message,
673
+ field: error.field,
674
+ code: 'invalid_json',
675
+ path: [error.field],
676
+ },
677
+ ];
678
+ const errorSummary = parseAgentValidationErrors(JSON.stringify(errorObjects));
679
+ setErrors(errorSummary);
680
+ const summaryMessage = getErrorSummaryMessage(errorSummary);
681
+ toast.error(summaryMessage);
682
+ return;
683
+ }
684
+ throw error;
685
+ }
665
686
 
666
687
  const functionToolNodeMap = new Map<string, string>();
667
688
  nodes.forEach((node) => {
@@ -147,7 +147,7 @@ function MetadataEditor() {
147
147
  />
148
148
  <div className="space-y-2">
149
149
  <ExpandablePromptEditor
150
- id="agent-prompt"
150
+ name="agent-prompt"
151
151
  label="Agent prompt"
152
152
  value={prompt}
153
153
  onChange={(value) => updateMetadata('prompt', value)}
@@ -1,5 +1,5 @@
1
1
  import { Info } from 'lucide-react';
2
- import { forwardRef } from 'react';
2
+ import type { ChangeEvent, FC, Ref } from 'react';
3
3
  import { Input } from '@/components/ui/input';
4
4
  import { Label } from '@/components/ui/label';
5
5
  import { Textarea } from '@/components/ui/textarea';
@@ -11,7 +11,7 @@ interface BaseFieldProps {
11
11
  name: string;
12
12
  label: string;
13
13
  value: string;
14
- onChange: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
14
+ onChange: (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
15
15
  placeholder?: string;
16
16
  error?: string;
17
17
  className?: string;
@@ -23,115 +23,112 @@ interface BaseFieldProps {
23
23
 
24
24
  interface InputFieldProps extends BaseFieldProps {
25
25
  type?: 'text' | 'email' | 'password' | 'url';
26
+ ref?: Ref<HTMLInputElement>;
26
27
  }
27
28
 
28
29
  interface TextareaFieldProps extends BaseFieldProps {
29
30
  maxHeight?: string;
31
+ ref?: Ref<HTMLTextAreaElement>;
30
32
  }
31
33
 
32
- export const InputField = forwardRef<HTMLInputElement, InputFieldProps>(
33
- (
34
- {
35
- id,
36
- name,
37
- label,
38
- value,
39
- onChange,
40
- placeholder,
41
- error,
42
- className = '',
43
- description,
44
- tooltip,
45
- type = 'text',
46
- isRequired = false,
47
- disabled = false,
48
- },
49
- ref
50
- ) => {
51
- return (
52
- <div className="space-y-2">
53
- <Label htmlFor={id} className={cn(error ? 'text-red-600' : '', 'gap-1')}>
54
- {label}
55
- {isRequired && <span className="text-red-500">*</span>}
56
- {tooltip && (
57
- <Tooltip>
58
- <TooltipTrigger>
59
- <Info className="w-3 h-3 text-muted-foreground ml-1" />
60
- </TooltipTrigger>
61
- <TooltipContent className="break-words">{tooltip}</TooltipContent>
62
- </Tooltip>
63
- )}
64
- </Label>
65
- <Input
66
- ref={ref}
67
- id={id}
68
- name={name}
69
- type={type}
70
- value={value}
71
- onChange={onChange}
72
- placeholder={placeholder}
73
- data-invalid={error ? '' : undefined}
74
- className={`w-full data-invalid:border-red-300 data-invalid:focus-visible:border-red-300 data-invalid:focus-visible:ring-red-300 ${className}`}
75
- disabled={disabled}
76
- />
77
- {error && <p className="text-sm text-red-600">{error}</p>}
78
- {description && <p className="text-xs text-muted-foreground">{description}</p>}
79
- </div>
80
- );
81
- }
82
- );
34
+ export const InputField: FC<InputFieldProps> = ({
35
+ id,
36
+ name,
37
+ label,
38
+ value,
39
+ onChange,
40
+ placeholder,
41
+ error,
42
+ className,
43
+ description,
44
+ tooltip,
45
+ type = 'text',
46
+ isRequired,
47
+ disabled,
48
+ ref,
49
+ }) => {
50
+ return (
51
+ <div className="space-y-2">
52
+ <Label htmlFor={id} className={cn(error && 'text-red-600', 'gap-1')}>
53
+ {label}
54
+ {isRequired && <span className="text-red-500">*</span>}
55
+ {tooltip && (
56
+ <Tooltip>
57
+ <TooltipTrigger>
58
+ <Info className="w-3 h-3 text-muted-foreground ml-1" />
59
+ </TooltipTrigger>
60
+ <TooltipContent className="break-words">{tooltip}</TooltipContent>
61
+ </Tooltip>
62
+ )}
63
+ </Label>
64
+ <Input
65
+ ref={ref}
66
+ id={id}
67
+ name={name}
68
+ type={type}
69
+ value={value}
70
+ onChange={onChange}
71
+ placeholder={placeholder}
72
+ aria-invalid={error ? 'true' : undefined}
73
+ className={cn(
74
+ 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',
75
+ className
76
+ )}
77
+ disabled={disabled}
78
+ />
79
+ {error && <p className="text-sm text-red-600">{error}</p>}
80
+ {description && <p className="text-xs text-muted-foreground">{description}</p>}
81
+ </div>
82
+ );
83
+ };
83
84
 
84
- InputField.displayName = 'InputField';
85
-
86
- export const TextareaField = forwardRef<HTMLTextAreaElement, TextareaFieldProps>(
87
- (
88
- {
89
- id,
90
- name,
91
- label,
92
- value,
93
- onChange,
94
- placeholder,
95
- error,
96
- className = '',
97
- description,
98
- tooltip,
99
- maxHeight = 'max-h-96',
100
- isRequired = false,
101
- disabled = false,
102
- },
103
- ref
104
- ) => {
105
- return (
106
- <div className="space-y-2">
107
- <Label htmlFor={id} className={cn(error ? 'text-red-600' : '', 'gap-1')}>
108
- {label}
109
- {isRequired && <span className="text-red-500">*</span>}
110
- {tooltip && (
111
- <Tooltip>
112
- <TooltipTrigger>
113
- <Info className="w-3 h-3 text-muted-foreground ml-1" />
114
- </TooltipTrigger>
115
- <TooltipContent className="break-words">{tooltip}</TooltipContent>
116
- </Tooltip>
117
- )}
118
- </Label>
119
- <Textarea
120
- ref={ref}
121
- id={id}
122
- name={name}
123
- value={value}
124
- onChange={onChange}
125
- placeholder={placeholder}
126
- data-invalid={error ? '' : undefined}
127
- className={`w-full ${maxHeight} data-invalid:border-red-300 data-invalid:focus-visible:border-red-300 data-invalid:focus-visible:ring-red-300 ${className}`}
128
- disabled={disabled}
129
- />
130
- {error && <p className="text-sm text-red-600">{error}</p>}
131
- {description && <p className="text-xs text-muted-foreground">{description}</p>}
132
- </div>
133
- );
134
- }
135
- );
136
-
137
- TextareaField.displayName = 'TextareaField';
85
+ export const TextareaField: FC<TextareaFieldProps> = ({
86
+ id,
87
+ name,
88
+ label,
89
+ value,
90
+ onChange,
91
+ placeholder,
92
+ error,
93
+ className,
94
+ description,
95
+ tooltip,
96
+ maxHeight = 'max-h-96',
97
+ isRequired,
98
+ disabled,
99
+ ref,
100
+ }) => {
101
+ return (
102
+ <div className="space-y-2">
103
+ <Label htmlFor={id} className={cn(error && 'text-red-600', 'gap-1')}>
104
+ {label}
105
+ {isRequired && <span className="text-red-500">*</span>}
106
+ {tooltip && (
107
+ <Tooltip>
108
+ <TooltipTrigger>
109
+ <Info className="w-3 h-3 text-muted-foreground ml-1" />
110
+ </TooltipTrigger>
111
+ <TooltipContent className="break-words">{tooltip}</TooltipContent>
112
+ </Tooltip>
113
+ )}
114
+ </Label>
115
+ <Textarea
116
+ ref={ref}
117
+ id={id}
118
+ name={name}
119
+ value={value}
120
+ onChange={onChange}
121
+ placeholder={placeholder}
122
+ aria-invalid={error ? 'true' : undefined}
123
+ className={cn(
124
+ 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',
125
+ maxHeight,
126
+ className
127
+ )}
128
+ disabled={disabled}
129
+ />
130
+ {error && <p className="text-sm text-red-600">{error}</p>}
131
+ {description && <p className="text-xs text-muted-foreground">{description}</p>}
132
+ </div>
133
+ );
134
+ };
@@ -144,7 +144,8 @@ export function SubAgentNodeEditor({
144
144
 
145
145
  <div className="space-y-2">
146
146
  <ExpandablePromptEditor
147
- id="prompt"
147
+ key={selectedNode.id}
148
+ name="prompt"
148
149
  value={selectedNode.data.prompt}
149
150
  onChange={(value) => updatePath('prompt', value)}
150
151
  placeholder="You are a helpful assistant..."
@@ -2,6 +2,7 @@ import type { Edge, Node } from '@xyflow/react';
2
2
  import { useEdges, useNodesData } from '@xyflow/react';
3
3
  import { type LucideIcon, Workflow } from 'lucide-react';
4
4
  import { useMemo } from 'react';
5
+ import { useAgentStore } from '@/features/agent/state/use-agent-store';
5
6
  import { useAgentErrors } from '@/hooks/use-agent-errors';
6
7
  import type { ArtifactComponent } from '@/lib/api/artifact-components';
7
8
  import type { Credential } from '@/lib/api/credentials';
@@ -64,6 +65,7 @@ export function SidePane({
64
65
  const selectedNode = useNodesData(selectedNodeId || '');
65
66
  const edges = useEdges();
66
67
  const { hasFieldError, getFieldErrorMessage, getFirstErrorField } = useAgentErrors();
68
+ const errors = useAgentStore((state) => state.errors);
67
69
 
68
70
  const selectedEdge = useMemo(
69
71
  () => (selectedEdgeId ? edges.find((edge) => edge.id === selectedEdgeId) : null),
@@ -183,6 +185,8 @@ export function SidePane({
183
185
  credentialLookup,
184
186
  subAgentExternalAgentConfigLookup,
185
187
  subAgentTeamAgentConfigLookup,
188
+ // Rerender sidepane when errors changes
189
+ errors,
186
190
  ]);
187
191
 
188
192
  const showBackButton = selectedNode || selectedEdge;
@@ -10,10 +10,21 @@ interface CodeEditorProps extends Omit<ComponentProps<typeof MonacoEditor>, 'uri
10
10
  export const CodeEditor: FC<CodeEditorProps> = ({
11
11
  uri,
12
12
  placeholder = 'Enter code...',
13
+ editorOptions,
13
14
  ...props
14
15
  }) => {
15
16
  const id = useId();
16
17
  uri ??= `${id}.jsx`;
17
18
 
18
- return <MonacoEditor uri={uri} placeholder={placeholder} {...props} />;
19
+ return (
20
+ <MonacoEditor
21
+ uri={uri}
22
+ placeholder={placeholder}
23
+ editorOptions={{
24
+ ariaLabel: 'Code editor',
25
+ ...editorOptions,
26
+ }}
27
+ {...props}
28
+ />
29
+ );
19
30
  };
@@ -29,26 +29,30 @@ export function ExpandableCodeEditor({
29
29
  isRequired,
30
30
  }: ExpandableCodeEditorProps) {
31
31
  const [open, setOpen] = useState(false);
32
-
32
+ const uri = `${open ? 'expanded-' : ''}${name}.jsx` as const;
33
+ const id = `${name}-label`;
33
34
  return (
34
35
  <ExpandableField
36
+ id={id}
35
37
  open={open}
36
38
  onOpenChange={setOpen}
37
- name={name}
39
+ uri={uri}
38
40
  label={label}
39
41
  className={className}
40
42
  isRequired={isRequired}
43
+ hasError={!!error}
41
44
  >
42
45
  <CodeEditor
43
- id={name}
46
+ uri={uri}
44
47
  value={value}
45
48
  onChange={onChange}
46
49
  placeholder={placeholder}
47
- aria-invalid={!!error}
50
+ aria-invalid={error ? 'true' : undefined}
48
51
  hasDynamicHeight={!open}
49
52
  className={cn(!open && error && 'max-h-96')}
53
+ aria-labelledby={id}
50
54
  />
51
- {error && <p className="text-sm mt-1 text-destructive">{error}</p>}
55
+ {error && <p className="text-sm text-red-600">{error}</p>}
52
56
  </ExpandableField>
53
57
  );
54
58
  }
@@ -67,16 +67,18 @@ export function ExpandableJsonEditor({
67
67
  !!(externalError || internalError)
68
68
  );
69
69
  const [open, setOpen] = useState(false);
70
-
70
+ const uri = `${open ? 'expanded-' : ''}${name}.json` as const;
71
71
  const error = externalError || internalError;
72
-
72
+ const id = `${name}-label`;
73
73
  return (
74
74
  <ExpandableField
75
+ id={id}
75
76
  open={open}
76
77
  onOpenChange={setOpen}
77
- name={name}
78
+ uri={uri}
78
79
  label={label}
79
80
  className={className}
81
+ hasError={!!error}
80
82
  actions={
81
83
  <Button
82
84
  type="button"
@@ -91,15 +93,16 @@ export function ExpandableJsonEditor({
91
93
  }
92
94
  >
93
95
  <JsonEditor
94
- id={name}
96
+ uri={uri}
95
97
  value={value}
96
98
  onChange={onChange}
97
99
  placeholder={placeholder}
98
- aria-invalid={!!error}
100
+ aria-invalid={error ? 'true' : undefined}
99
101
  className={cn(!open && error && 'max-h-96')}
100
102
  hasDynamicHeight={!open}
103
+ aria-labelledby={id}
101
104
  />
102
- {error && <p className="text-sm mt-1 text-destructive absolute -bottom-6">{error}</p>}
105
+ {error && <p className="text-sm text-red-600">{error}</p>}
103
106
  </ExpandableField>
104
107
  );
105
108
  }
@@ -7,13 +7,16 @@ import { Button } from '@/components/ui/button';
7
7
  import { useMonacoStore } from '@/features/agent/state/use-monaco-store';
8
8
  import { cn } from '@/lib/utils';
9
9
 
10
- type PromptEditorProps = ComponentProps<typeof PromptEditor>;
10
+ type PromptEditorProps = ComponentProps<typeof PromptEditor> & {
11
+ name: string;
12
+ };
11
13
 
12
14
  export function ExpandablePromptEditor({
13
15
  label,
14
16
  isRequired = false,
15
17
  className,
16
18
  error,
19
+ name,
17
20
  ...props
18
21
  }: {
19
22
  label: string;
@@ -22,7 +25,7 @@ export function ExpandablePromptEditor({
22
25
  } & PromptEditorProps) {
23
26
  const [open, onOpenChange] = useState(false);
24
27
  const monaco = useMonacoStore((state) => state.monaco);
25
- const uri = `${open ? 'small' : 'full'}-${props.id}.template` as const;
28
+ const uri = `${open ? 'expanded-' : ''}${name}.template` as const;
26
29
 
27
30
  const handleAddVariable = useCallback(() => {
28
31
  if (!monaco) {
@@ -45,13 +48,17 @@ export function ExpandablePromptEditor({
45
48
  editor.trigger('insert-template-variable', 'editor.action.triggerSuggest', {});
46
49
  }, [monaco, uri]);
47
50
 
51
+ const id = `${name}-label`;
52
+
48
53
  return (
49
54
  <ExpandableField
55
+ id={id}
50
56
  open={open}
51
57
  onOpenChange={onOpenChange}
52
- name={props.id || 'expandable-textarea'}
58
+ uri={uri}
53
59
  label={label}
54
60
  isRequired={isRequired}
61
+ hasError={!!error}
55
62
  actions={
56
63
  <Button
57
64
  size="sm"
@@ -68,12 +75,13 @@ export function ExpandablePromptEditor({
68
75
  <PromptEditor
69
76
  uri={uri}
70
77
  autoFocus={open}
71
- aria-invalid={!!error}
78
+ aria-invalid={error ? 'true' : undefined}
72
79
  className={cn(!open && 'max-h-96', className)}
73
80
  hasDynamicHeight={!open}
81
+ aria-labelledby={id}
74
82
  {...props}
75
83
  />
76
- {error && <p className="text-sm mt-1 text-destructive absolute -bottom-6">{error}</p>}
84
+ {error && <p className="text-sm text-red-600">{error}</p>}
77
85
  </ExpandableField>
78
86
  );
79
87
  }
@@ -7,8 +7,17 @@ interface JsonEditorProps extends Omit<ComponentProps<typeof MonacoEditor>, 'uri
7
7
  uri?: `${string}.json`;
8
8
  }
9
9
 
10
- export const JsonEditor: FC<JsonEditorProps> = ({ uri, ...props }) => {
10
+ export const JsonEditor: FC<JsonEditorProps> = ({ uri, editorOptions, ...props }) => {
11
11
  const id = useId();
12
12
  uri ??= `${id}.json`;
13
- return <MonacoEditor uri={uri} {...props} />;
13
+ return (
14
+ <MonacoEditor
15
+ uri={uri}
16
+ editorOptions={{
17
+ ariaLabel: 'JSON editor',
18
+ ...editorOptions,
19
+ }}
20
+ {...props}
21
+ />
22
+ );
14
23
  };
@@ -91,7 +91,7 @@ export const MonacoEditor: FC<MonacoEditorProps> = ({
91
91
  '[--vscode-editor-background:transparent]!',
92
92
  '[--vscode-editorGutter-background:transparent]!',
93
93
  '[--vscode-focusBorder:transparent]!',
94
- ].join('\n'),
94
+ ].join(' '),
95
95
  automaticLayout: true,
96
96
  minimap: { enabled: false }, // disable the minimap
97
97
  overviewRulerLanes: 0, // remove unnecessary error highlight on the scroll