@inkeep/agents-manage-ui 0.12.0 → 0.13.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 (336) 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 +344 -348
  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 +2 -2
  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 +1 -1
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js.nft.json +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.js.nft.json +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js.nft.json +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js.nft.json +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js.nft.json +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/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.js.nft.json +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  89. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  93. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +2 -2
  94. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js.nft.json +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route.js +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route.js.nft.json +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  100. package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +6 -6
  103. package/.next/standalone/agents-manage-ui/.next/server/chunks/1670.js +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/chunks/195.js +21 -0
  105. package/.next/standalone/agents-manage-ui/.next/server/chunks/2190.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/server/chunks/2415.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/server/chunks/245.js +55 -0
  108. package/.next/standalone/agents-manage-ui/.next/server/chunks/2496.js +1 -0
  109. package/.next/standalone/agents-manage-ui/.next/server/chunks/2539.js +13 -13
  110. package/.next/standalone/agents-manage-ui/.next/server/chunks/2606.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/server/chunks/2916.js +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/server/chunks/320.js +1 -1
  113. package/.next/standalone/agents-manage-ui/.next/server/chunks/3485.js +1 -0
  114. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/chunks/{1933.js → 3672.js} +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/server/chunks/{7503.js → 3884.js} +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/server/chunks/3948.js +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/chunks/4843.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/server/chunks/5517.js +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/chunks/{7001.js → 5716.js} +2 -2
  121. package/.next/standalone/agents-manage-ui/.next/server/chunks/5797.js +2 -2
  122. package/.next/standalone/agents-manage-ui/.next/server/chunks/{7020.js → 6007.js} +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/chunks/6212.js +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/chunks/6229.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/server/chunks/6351.js +1 -1
  126. package/.next/standalone/agents-manage-ui/.next/server/chunks/6525.js +4087 -0
  127. package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +1 -1
  128. package/.next/standalone/agents-manage-ui/.next/server/chunks/6747.js +10 -1
  129. package/.next/standalone/agents-manage-ui/.next/server/chunks/694.js +1 -1
  130. package/.next/standalone/agents-manage-ui/.next/server/chunks/7346.js +1 -0
  131. package/.next/standalone/agents-manage-ui/.next/server/chunks/7511.js +1 -1
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/7538.js +1 -0
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/8048.js +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/8100.js +211 -0
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/8321.js +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/8610.js +25 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/8615.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/9128.js +1 -0
  139. package/.next/standalone/agents-manage-ui/.next/server/chunks/9340.js +1 -0
  140. package/.next/standalone/agents-manage-ui/.next/server/chunks/9490.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/server/chunks/9754.js +1 -55
  142. package/.next/standalone/agents-manage-ui/.next/server/chunks/9892.js +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  144. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  145. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  146. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  147. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/{1577-0df32275eaf5d398.js → 102-7512914c45c3b1c7.js} +1 -1
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/{2706-4fe94ba08fad72de.js → 1064-f747155da2f9bf6e.js} +61 -61
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/1191-22286038e3cf98ee.js +1 -0
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/1482-9b4bf21cc7c344fc.js +1 -0
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/1558-8cb46768b5585f53.js +1 -0
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/1771-5ceaf6a0f3601ad4.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/1907-4a95aef238167de5.js +1 -0
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/{2063-3f9e00e568b9fbd9.js → 2063-00dd6285929e419a.js} +1 -1
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/225-12afe2ed1ce8f747.js +1 -0
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/2334-9c0d908003b40bcd.js +1 -0
  158. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8b56a9fc-190bd97ffda2165f.js → 24a2b255-903019441fb58706.js} +1 -1
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/{2501-235de6a1719d22be.js → 2501-85880c1e62f3270a.js} +1 -1
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/{3862-15cadd19b256aa73.js → 2597-b309d80128db51fe.js} +1 -1
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/2811-5cbe9d781cd0bafb.js +1 -0
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/3737-2a02432078b2f2f0.js +1 -0
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/397-611c044fe87d89cd.js +1 -0
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/{1d27a36c-d2d09454474eca1a.js → 4a1e02d9-c537fee21142b0db.js} +1 -1
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/6118-2a02432078b2f2f0.js +1 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/6410-f93d663c6ef0d128.js +2 -0
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/{3803-1ffa84f6122f67f8.js → 6419-cc97e3d16c7907dd.js} +1 -1
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/645-18422068b91714c4.js +1 -0
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-2a72e838c6240f76.js +1 -0
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/6501-2c90923d1b2f0f3e.js +1 -0
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-8e3d7b9e316f636b.js +1 -0
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/7273-2a07799b9220335f.js +1 -0
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/7305-4bde6b1356d61f7a.js +1 -0
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/776-1b93689bfa34311b.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/{7775-ec1fa275bc3e6717.js → 7775-846c2c087ca8b724.js} +1 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/7829-0a56074397c08ece.js +1 -0
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/7904-825c751bfba62e0d.js +1 -0
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/8057-4851dad2e4c79710.js +2 -0
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/8130-c153c48b1fab6cb4.js +1 -0
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8197-a41c5aa502a71e0c.js → 8197-93dc03bb0bdcd89b.js} +1 -1
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/8467-977d32f1b1634139.js +1 -0
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/8486-01fbe9371d862c28.js +25 -0
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/8499-2a02432078b2f2f0.js +1 -0
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/880-2a02432078b2f2f0.js +1 -0
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/8831-9d23a1d8c9fb3858.js +1 -0
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/926-2d2311c975e35a35.js +1 -0
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/9425-43d6833e2edd012c.js +1 -0
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/9846-e037fda0c364e432.js +1 -0
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/{error-9b1788d15a572652.js → error-98ca4c8d51368705.js} +1 -1
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-c241f711010e7e13.js +1 -0
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{error-f4e04a252a003510.js → error-ef3511a0253a1330.js} +1 -1
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-c3c91cd61be884a4.js +1 -0
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{error-8e7ee0b452e16bf3.js → error-0672656e9e678998.js} +1 -1
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-0afec83059c372f2.js +1 -0
  195. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-c3c91cd61be884a4.js +1 -0
  196. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-ebf80aff5a2957f1.js +1 -0
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{error-0d5c117cb7d999c9.js → error-be8b5708f23d2e43.js} +1 -1
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-6e9e120e0f0235de.js +1 -0
  199. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{error-9499695753aa33ec.js → error-3b86172a5fe22d1c.js} +1 -1
  200. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-0afec83059c372f2.js +1 -0
  201. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-6e9e120e0f0235de.js +1 -0
  202. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-930b7126b9182e8d.js +1 -0
  203. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-72c57c0fb9389280.js +1 -0
  204. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{error-409d41bd0525f22f.js → error-30b8013604e83604.js} +1 -1
  205. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-9deb7adcdeed1a80.js +1 -0
  206. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-0afec83059c372f2.js +1 -0
  207. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-ea02a056bccd6124.js +1 -0
  208. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-9e9e45f4ed4671bd.js +1 -0
  209. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-a842eee6a4322d45.js +1 -0
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/{error-8da8330295a84328.js → error-e6e8d53b544b7a3a.js} +1 -1
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/loading-cb0a860db0fa369e.js +1 -0
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page-21f1392ae65ea31a.js +1 -0
  213. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/{error-9cf04dc4aab414a2.js → error-80ac013e2e0d39ec.js} +1 -1
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-0afec83059c372f2.js +1 -0
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/page-b7ee3944e6a5c03d.js +1 -0
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/{page-e16634fbbf6ba350.js → page-eb9c74bbc66bae57.js} +1 -1
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-c1587a84a6de6faa.js → page-4498950740edb744.js} +1 -1
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/{page-653ca9c1d193612c.js → page-3b5ec607247c0070.js} +1 -1
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-cb0a860db0fa369e.js +1 -0
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-05827d40bb0aaf12.js +1 -0
  221. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-ababf7c5aa5e0bc0.js +1 -0
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{not-found-7f8ddb0d42ccf26c.js → not-found-abb1f829baf33e89.js} +1 -1
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{error-9be350c37252135d.js → error-eca20c06c32063db.js} +1 -1
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-1ad1329e9cb6ef07.js → page-d5fe05a40d56d36d.js} +1 -1
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-e1fbd32969de96cb.js +1 -0
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/{page-b9deaa2fcd232705.js → page-59d660fb7778e22d.js} +1 -1
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-663da25347087a0f.js +1 -0
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{error-d0668aab86c9a04e.js → error-f217058bf7db150a.js} +1 -1
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-0afec83059c372f2.js +1 -0
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-1c25a0513febf08b.js +1 -0
  231. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-462211bdc5e56272.js +1 -0
  232. package/.next/standalone/agents-manage-ui/.next/static/css/ff74e9dcb72fa41b.css +1 -0
  233. package/.next/standalone/agents-manage-ui/package.json +5 -2
  234. package/.next/standalone/package.json +8 -1
  235. package/.next/standalone/packages/agents-core/package.json +2 -2
  236. package/package.json +8 -5
  237. package/src/components/credentials/views/generic-auth-form.tsx +1 -1
  238. package/src/components/form/expandable-field.tsx +17 -11
  239. package/src/components/form/generic-input.tsx +2 -2
  240. package/src/components/form/prompt-editor.tsx +245 -0
  241. package/src/components/graph/graph.tsx +7 -5
  242. package/src/components/graph/nodes/agent-node.tsx +4 -2
  243. package/src/components/graph/nodes/mcp-node.tsx +5 -3
  244. package/src/components/graph/sidepane/edges/edge-editor.tsx +2 -2
  245. package/src/components/graph/sidepane/metadata/metadata-editor.tsx +3 -4
  246. package/src/components/graph/sidepane/nodes/agent-node-editor.tsx +2 -4
  247. package/src/components/graph/sidepane/nodes/expandable-text-area.tsx +54 -14
  248. package/src/components/graph/sidepane/nodes/mcp-node-editor.tsx +6 -4
  249. package/src/components/projects/form/form-configuration.ts +1 -1
  250. package/src/components/projects/form/project-form.tsx +14 -8
  251. package/src/components/projects/form/project-models-section.tsx +26 -2
  252. package/src/components/projects/form/project-stopwhen-section.tsx +18 -2
  253. package/src/components/projects/form/validation.ts +13 -4
  254. package/src/components/projects/project-item.tsx +2 -1
  255. package/src/features/graph/commands/commands.ts +24 -24
  256. package/src/features/graph/state/use-graph-store.ts +199 -172
  257. package/src/features/graph/ui/use-graph-shortcuts.ts +2 -2
  258. package/src/hooks/use-graph-errors.ts +7 -9
  259. package/src/hooks/use-node-editor.ts +4 -4
  260. package/src/lib/__tests__/context-suggestions.test.ts +205 -0
  261. package/src/lib/context-suggestions.ts +102 -0
  262. package/.next/standalone/agents-manage-ui/.next/server/chunks/189.js +0 -1
  263. package/.next/standalone/agents-manage-ui/.next/server/chunks/2212.js +0 -1
  264. package/.next/standalone/agents-manage-ui/.next/server/chunks/2745.js +0 -1
  265. package/.next/standalone/agents-manage-ui/.next/server/chunks/2749.js +0 -1
  266. package/.next/standalone/agents-manage-ui/.next/server/chunks/3082.js +0 -1
  267. package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +0 -1
  268. package/.next/standalone/agents-manage-ui/.next/server/chunks/3508.js +0 -98
  269. package/.next/standalone/agents-manage-ui/.next/server/chunks/3859.js +0 -25
  270. package/.next/standalone/agents-manage-ui/.next/server/chunks/5232.js +0 -1
  271. package/.next/standalone/agents-manage-ui/.next/server/chunks/6749.js +0 -1
  272. package/.next/standalone/agents-manage-ui/.next/server/chunks/6997.js +0 -1
  273. package/.next/standalone/agents-manage-ui/.next/server/chunks/7373.js +0 -1
  274. package/.next/standalone/agents-manage-ui/.next/server/chunks/7577.js +0 -211
  275. package/.next/standalone/agents-manage-ui/.next/server/chunks/8449.js +0 -10
  276. package/.next/standalone/agents-manage-ui/.next/server/chunks/9459.js +0 -4087
  277. package/.next/standalone/agents-manage-ui/.next/static/chunks/1122-8db1ba2ae3171a66.js +0 -1
  278. package/.next/standalone/agents-manage-ui/.next/static/chunks/1278-51b8dfa15b83a027.js +0 -1
  279. package/.next/standalone/agents-manage-ui/.next/static/chunks/1558-436164db937a531a.js +0 -1
  280. package/.next/standalone/agents-manage-ui/.next/static/chunks/1907-0b40d23e09c01b49.js +0 -1
  281. package/.next/standalone/agents-manage-ui/.next/static/chunks/2254-cc7102683251739e.js +0 -1
  282. package/.next/standalone/agents-manage-ui/.next/static/chunks/2860-23cac986bdbc6f0d.js +0 -1
  283. package/.next/standalone/agents-manage-ui/.next/static/chunks/2960-b37d998249a08bdd.js +0 -1
  284. package/.next/standalone/agents-manage-ui/.next/static/chunks/3241-a114b4dae45882c2.js +0 -1
  285. package/.next/standalone/agents-manage-ui/.next/static/chunks/384-a114b4dae45882c2.js +0 -1
  286. package/.next/standalone/agents-manage-ui/.next/static/chunks/4258-6c416bb91f9962d0.js +0 -1
  287. package/.next/standalone/agents-manage-ui/.next/static/chunks/4420-1006bcd3841d18ce.js +0 -1
  288. package/.next/standalone/agents-manage-ui/.next/static/chunks/4690-df4b1a152d4a32fa.js +0 -1
  289. package/.next/standalone/agents-manage-ui/.next/static/chunks/4773-c967811882d19608.js +0 -1
  290. package/.next/standalone/agents-manage-ui/.next/static/chunks/5016-5212df5572c00450.js +0 -1
  291. package/.next/standalone/agents-manage-ui/.next/static/chunks/5200-a92c33fc465d2ed6.js +0 -1
  292. package/.next/standalone/agents-manage-ui/.next/static/chunks/5397-82d7c4a0c636b60e.js +0 -1
  293. package/.next/standalone/agents-manage-ui/.next/static/chunks/5622-a114b4dae45882c2.js +0 -1
  294. package/.next/standalone/agents-manage-ui/.next/static/chunks/6329-2f2d0a0417a77117.js +0 -2
  295. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-a7da874c33afd560.js +0 -1
  296. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-84a6a1036d4ad8b9.js +0 -1
  297. package/.next/standalone/agents-manage-ui/.next/static/chunks/7210-ed4b9b414a7bf114.js +0 -1
  298. package/.next/standalone/agents-manage-ui/.next/static/chunks/7305-aac20b5da6ee7f39.js +0 -1
  299. package/.next/standalone/agents-manage-ui/.next/static/chunks/7394-b444a34c3232ffe7.js +0 -1
  300. package/.next/standalone/agents-manage-ui/.next/static/chunks/7674-b1c4e03f250a7863.js +0 -1
  301. package/.next/standalone/agents-manage-ui/.next/static/chunks/7994-95135bda825a0b62.js +0 -1
  302. package/.next/standalone/agents-manage-ui/.next/static/chunks/8003-a114b4dae45882c2.js +0 -1
  303. package/.next/standalone/agents-manage-ui/.next/static/chunks/8246-7cc0530a582c679b.js +0 -1
  304. package/.next/standalone/agents-manage-ui/.next/static/chunks/8831-3568b9a5c520254b.js +0 -1
  305. package/.next/standalone/agents-manage-ui/.next/static/chunks/9098-b626908a872b75eb.js +0 -2
  306. package/.next/standalone/agents-manage-ui/.next/static/chunks/9773-05b506b28d6e39a2.js +0 -25
  307. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-a77bea18c2ec4ddf.js +0 -1
  308. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-bd3483f62fc4cfa6.js +0 -1
  309. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-f16e83f5a76314a9.js +0 -1
  310. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-bd3483f62fc4cfa6.js +0 -1
  311. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-ab237a58ec5484e3.js +0 -1
  312. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-43fa3e7cf1f000d9.js +0 -1
  313. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-f16e83f5a76314a9.js +0 -1
  314. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-43fa3e7cf1f000d9.js +0 -1
  315. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-2f2f306471f494fb.js +0 -1
  316. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-c8a3cd07bfba729e.js +0 -1
  317. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-7917e532e48d68bc.js +0 -1
  318. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-f16e83f5a76314a9.js +0 -1
  319. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-bf4c5ee1fcd0a1f8.js +0 -1
  320. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-38d3932163173796.js +0 -1
  321. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-f6d7e7f8ecab1e3c.js +0 -1
  322. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/loading-2868de136b155d0e.js +0 -1
  323. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page-d6f01d6d7fe69cea.js +0 -1
  324. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-f16e83f5a76314a9.js +0 -1
  325. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/page-0d87ce40bb16c1de.js +0 -1
  326. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-2868de136b155d0e.js +0 -1
  327. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-e7510fbf0b60102e.js +0 -1
  328. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-d6e247dbe00dedc9.js +0 -1
  329. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-597f4ccaf9557e60.js +0 -1
  330. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-64699c02792faa9e.js +0 -1
  331. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-f16e83f5a76314a9.js +0 -1
  332. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-f8a28b248b84c95c.js +0 -1
  333. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-113eab9fed572fa2.js +0 -1
  334. package/.next/standalone/agents-manage-ui/.next/static/css/e970895dc785a75c.css +0 -1
  335. /package/.next/standalone/agents-manage-ui/.next/static/{5x4YI62SrSI7BFnjIZTQf → YQiRd4Be9CAfAPdCkur2K}/_buildManifest.js +0 -0
  336. /package/.next/standalone/agents-manage-ui/.next/static/{5x4YI62SrSI7BFnjIZTQf → YQiRd4Be9CAfAPdCkur2K}/_ssgManifest.js +0 -0
@@ -1,19 +1,28 @@
1
- import { StopWhenSchema } from '@inkeep/agents-core/client-exports';
2
1
  import { z } from 'zod';
3
2
 
4
3
  const modelSettingsSchema = z.object({
5
4
  model: z.string().optional(), // Allow empty model - system will fall back to defaults
6
- providerOptions: z.record(z.string(), z.any()).optional(),
5
+ providerOptions: z.record(z.string(), z.any()).optional().nullable(),
6
+ });
7
+
8
+ const baseModelSettingsSchema = z.object({
9
+ model: z.string().min(1, 'Base model is required'),
10
+ providerOptions: z.record(z.string(), z.any()).optional().nullable(),
7
11
  });
8
12
 
9
13
  const projectModelsSchema = z.object({
10
- base: modelSettingsSchema,
14
+ base: baseModelSettingsSchema,
11
15
  structuredOutput: modelSettingsSchema.optional(),
12
16
  summarizer: modelSettingsSchema.optional(),
13
17
  });
14
18
 
15
19
  // Use the shared StopWhen schema with optional and nullable modifiers
16
- const projectStopWhenSchema = StopWhenSchema.optional().nullable();
20
+ const projectStopWhenSchema = z
21
+ .object({
22
+ transferCountIs: z.number().min(1).max(100).optional().nullable(),
23
+ stepCountIs: z.number().min(1).max(1000).optional().nullable(),
24
+ })
25
+ .optional();
17
26
 
18
27
  export const projectSchema = z.object({
19
28
  id: z
@@ -11,6 +11,7 @@ import {
11
11
  ItemCardTitle,
12
12
  } from '@/components/ui/item-card';
13
13
  import type { Project } from '@/lib/types/project';
14
+ import type { ProjectFormData } from './form/validation';
14
15
  import { ProjectItemMenu } from './project-item-menu';
15
16
 
16
17
  export interface ProjectItemProps extends Project {
@@ -38,7 +39,7 @@ export function ProjectItem({
38
39
  </ItemCardLink>
39
40
  <ProjectItemMenu
40
41
  projectName={name}
41
- projectData={{ id: projectId, name, description, models, stopWhen }}
42
+ projectData={{ id: projectId, name, description, models, stopWhen } as ProjectFormData}
42
43
  tenantId={tenantId}
43
44
  />
44
45
  </ItemCardHeader>
@@ -2,7 +2,7 @@ import type { Connection, Edge, Node } from '@xyflow/react';
2
2
  import { addEdge } from '@xyflow/react';
3
3
  import { EdgeType } from '@/components/graph/configuration/edge-types';
4
4
  import type { GraphMetadata } from '@/components/graph/configuration/graph-types';
5
- import { useGraphStore } from '@/features/graph/state/use-graph-store';
5
+ import { graphStore } from '@/features/graph/state/use-graph-store';
6
6
  import { eventBus } from '@/lib/events';
7
7
  import type { Command } from './command-manager';
8
8
 
@@ -13,25 +13,25 @@ export class AddNodeCommand implements Command {
13
13
  this.node = node;
14
14
  }
15
15
  execute() {
16
- const { setNodes } = useGraphStore.getState();
17
- setNodes((prev) => prev.concat(this.node));
16
+ const { actions } = graphStore.getState();
17
+ actions.setNodes((prev) => prev.concat(this.node));
18
18
  }
19
19
  undo() {
20
- const { setNodes } = useGraphStore.getState();
21
- setNodes((prev) => prev.filter((n) => n.id !== this.node.id));
20
+ const { actions } = graphStore.getState();
21
+ actions.setNodes((prev) => prev.filter((n) => n.id !== this.node.id));
22
22
  }
23
23
  }
24
24
 
25
25
  export class DeleteSelectionCommand implements Command {
26
26
  readonly name = 'DeleteSelection';
27
27
  execute() {
28
- const { deleteSelected } = useGraphStore.getState();
29
- deleteSelected();
28
+ const { actions } = graphStore.getState();
29
+ actions.deleteSelected();
30
30
  }
31
31
  undo() {
32
32
  // relies on store history; in a richer system we'd capture diffs
33
- const { undo } = useGraphStore.getState();
34
- undo();
33
+ const { actions } = graphStore.getState();
34
+ actions.undo();
35
35
  }
36
36
  }
37
37
 
@@ -43,8 +43,8 @@ export class ConnectEdgeCommand implements Command {
43
43
  this.connection = connection;
44
44
  }
45
45
  execute() {
46
- const { setEdges } = useGraphStore.getState();
47
- setEdges((eds) => {
46
+ const { actions } = graphStore.getState();
47
+ actions.setEdges((eds) => {
48
48
  const newEdges = addEdge(this.connection as any, eds);
49
49
  const last = newEdges[newEdges.length - 1];
50
50
  this.createdEdgeId = last?.id ?? null;
@@ -53,9 +53,9 @@ export class ConnectEdgeCommand implements Command {
53
53
  }
54
54
  undo() {
55
55
  if (!this.createdEdgeId) return;
56
- const { setEdges } = useGraphStore.getState();
56
+ const { actions } = graphStore.getState();
57
57
  const id = this.createdEdgeId;
58
- setEdges((eds) => eds.filter((e) => e.id !== id));
58
+ actions.setEdges((eds) => eds.filter((e) => e.id !== id));
59
59
  }
60
60
  }
61
61
 
@@ -69,21 +69,21 @@ export class UpdateMetadataCommand implements Command {
69
69
  this.value = value;
70
70
  }
71
71
  execute() {
72
- const { metadata, setMetadata } = useGraphStore.getState();
72
+ const { metadata, actions } = graphStore.getState();
73
73
  this.prev = metadata[this.field];
74
- setMetadata(this.field, this.value);
74
+ actions.setMetadata(this.field, this.value);
75
75
  }
76
76
  undo() {
77
- const { setMetadata } = useGraphStore.getState();
78
- setMetadata(this.field, this.prev as any);
77
+ const { actions } = graphStore.getState();
78
+ actions.setMetadata(this.field, this.prev as any);
79
79
  }
80
80
  }
81
81
 
82
82
  export class ClearSelectionCommand implements Command {
83
83
  readonly name = 'ClearSelection';
84
84
  execute() {
85
- const { clearSelection } = useGraphStore.getState();
86
- clearSelection();
85
+ const { actions } = graphStore.getState();
86
+ actions.clearSelection();
87
87
  }
88
88
  undo() {
89
89
  // no-op for now
@@ -99,12 +99,12 @@ export class AddPreparedEdgeCommand implements Command {
99
99
  this.deselectOtherEdgesIfA2A = Boolean(options?.deselectOtherEdgesIfA2A);
100
100
  }
101
101
  execute() {
102
- const { setEdges, setNodes } = useGraphStore.getState();
102
+ const { actions } = graphStore.getState();
103
103
  if (this.edge.type === EdgeType.A2A) {
104
104
  // deselect nodes when creating an A2A edge
105
- setNodes((nds) => nds.map((n) => ({ ...n, selected: false })));
105
+ actions.setNodes((nds) => nds.map((n) => ({ ...n, selected: false })));
106
106
  }
107
- setEdges((eds) => {
107
+ actions.setEdges((eds) => {
108
108
  if (eds.some((e) => e.id === this.edge.id)) return eds;
109
109
  const base =
110
110
  this.deselectOtherEdgesIfA2A && this.edge.type === EdgeType.A2A
@@ -116,8 +116,8 @@ export class AddPreparedEdgeCommand implements Command {
116
116
  });
117
117
  }
118
118
  undo() {
119
- const { setEdges } = useGraphStore.getState();
119
+ const { actions } = graphStore.getState();
120
120
  const id = this.edge.id;
121
- setEdges((eds) => eds.filter((e) => e.id !== id));
121
+ actions.setEdges((eds) => eds.filter((e) => e.id !== id));
122
122
  }
123
123
  }
@@ -9,6 +9,7 @@ import type { ArtifactComponent } from '@/lib/api/artifact-components';
9
9
  import type { DataComponent } from '@/lib/api/data-components';
10
10
  import type { MCPTool } from '@/lib/types/tools';
11
11
  import type { GraphErrorSummary } from '@/lib/utils/graph-error-parser';
12
+ import { useShallow } from 'zustand/react/shallow';
12
13
 
13
14
  type HistoryEntry = { nodes: Node[]; edges: Edge[] };
14
15
 
@@ -27,7 +28,7 @@ type GraphStateData = {
27
28
  showErrors: boolean;
28
29
  };
29
30
 
30
- type GraphState = GraphStateData & {
31
+ type GraphActions = {
31
32
  setInitial(
32
33
  nodes: Node[],
33
34
  edges: Edge[],
@@ -62,7 +63,11 @@ type GraphState = GraphStateData & {
62
63
  getEdgeErrors(edgeId: string): GraphErrorSummary['allErrors'];
63
64
  };
64
65
 
65
- export const useGraphStore = create<GraphState>()(
66
+ type GraphState = GraphStateData & {
67
+ actions: GraphActions;
68
+ };
69
+
70
+ export const graphStore = create<GraphState>()(
66
71
  devtools((set, get) => ({
67
72
  nodes: [],
68
73
  edges: [],
@@ -90,186 +95,208 @@ export const useGraphStore = create<GraphState>()(
90
95
  future: [],
91
96
  errors: null,
92
97
  showErrors: false,
93
- setInitial(
94
- nodes,
95
- edges,
96
- metadata,
97
- dataComponentLookup = {},
98
- artifactComponentLookup = {},
99
- toolLookup = {},
100
- agentToolConfigLookup = {}
101
- ) {
102
- set({
98
+ // Separate "namespace" for actions
99
+ actions: {
100
+ setInitial(
103
101
  nodes,
104
102
  edges,
105
103
  metadata,
106
- dataComponentLookup,
107
- artifactComponentLookup,
108
- toolLookup,
109
- agentToolConfigLookup,
110
- dirty: false,
111
- history: [],
112
- future: [],
113
- errors: null,
114
- showErrors: false,
115
- });
116
- },
117
- setDataComponentLookup(dataComponentLookup) {
118
- set({ dataComponentLookup });
119
- },
120
- setArtifactComponentLookup(artifactComponentLookup) {
121
- set({ artifactComponentLookup });
122
- },
123
- setToolLookup(toolLookup) {
124
- set({ toolLookup });
125
- },
126
- setAgentToolConfigLookup(agentToolConfigLookup) {
127
- set({ agentToolConfigLookup });
128
- },
129
- setNodes(updater) {
130
- set((state) => ({ nodes: updater(state.nodes) }));
131
- },
132
- setEdges(updater) {
133
- set((state) => ({ edges: updater(state.edges) }));
134
- },
135
- push(nodes, edges) {
136
- set((state) => ({
137
- history: [...state.history, { nodes, edges }],
138
- future: [],
139
- }));
140
- },
141
- onNodesChange(changes) {
142
- // Check if any change type would modify the graph (not just selection changes)
143
- const hasModifyingChange = changes.some(
144
- (change) =>
145
- change.type === 'remove' ||
146
- change.type === 'add' ||
147
- change.type === 'replace' ||
148
- change.type === 'position'
149
- );
104
+ dataComponentLookup = {},
105
+ artifactComponentLookup = {},
106
+ toolLookup = {},
107
+ agentToolConfigLookup = {}
108
+ ) {
109
+ set({
110
+ nodes,
111
+ edges,
112
+ metadata,
113
+ dataComponentLookup,
114
+ artifactComponentLookup,
115
+ toolLookup,
116
+ agentToolConfigLookup,
117
+ dirty: false,
118
+ history: [],
119
+ future: [],
120
+ errors: null,
121
+ showErrors: false,
122
+ });
123
+ },
124
+ setDataComponentLookup(dataComponentLookup) {
125
+ set({ dataComponentLookup });
126
+ },
127
+ setArtifactComponentLookup(artifactComponentLookup) {
128
+ set({ artifactComponentLookup });
129
+ },
130
+ setToolLookup(toolLookup) {
131
+ set({ toolLookup });
132
+ },
133
+ setAgentToolConfigLookup(agentToolConfigLookup) {
134
+ set({ agentToolConfigLookup });
135
+ },
136
+ setNodes(updater) {
137
+ set((state) => ({ nodes: updater(state.nodes) }));
138
+ },
139
+ setEdges(updater) {
140
+ set((state) => ({ edges: updater(state.edges) }));
141
+ },
142
+ push(nodes, edges) {
143
+ set((state) => ({
144
+ history: [...state.history, { nodes, edges }],
145
+ future: [],
146
+ }));
147
+ },
148
+ onNodesChange(changes) {
149
+ // Check if any change type would modify the graph (not just selection changes)
150
+ const hasModifyingChange = changes.some(
151
+ (change) =>
152
+ change.type === 'remove' ||
153
+ change.type === 'add' ||
154
+ change.type === 'replace' ||
155
+ change.type === 'position'
156
+ );
150
157
 
151
- set((state) => ({
152
- history: [...state.history, { nodes: state.nodes, edges: state.edges }],
153
- nodes: applyNodeChanges(changes, state.nodes),
154
- dirty: hasModifyingChange ? true : state.dirty,
155
- }));
156
- },
157
- onEdgesChange(changes) {
158
- // Check if any change type would modify the graph (not just selection changes)
159
- const hasModifyingChange = changes.some(
160
- (change) => change.type === 'remove' || change.type === 'add' || change.type === 'replace'
161
- );
158
+ set((state) => ({
159
+ history: [...state.history, { nodes: state.nodes, edges: state.edges }],
160
+ nodes: applyNodeChanges(changes, state.nodes),
161
+ dirty: hasModifyingChange ? true : state.dirty,
162
+ }));
163
+ },
164
+ onEdgesChange(changes) {
165
+ // Check if any change type would modify the graph (not just selection changes)
166
+ const hasModifyingChange = changes.some(
167
+ (change) => change.type === 'remove' || change.type === 'add' || change.type === 'replace'
168
+ );
162
169
 
163
- set((state) => {
164
- // Check for edge removals that disconnect agent from MCP node
165
- const removeChanges = changes.filter((change) => change.type === 'remove');
166
- let updatedNodes = state.nodes;
170
+ set((state) => {
171
+ // Check for edge removals that disconnect agent from MCP node
172
+ const removeChanges = changes.filter((change) => change.type === 'remove');
173
+ let updatedNodes = state.nodes;
167
174
 
168
- for (const removeChange of removeChanges) {
169
- const edgeToRemove = state.edges.find((e) => e.id === removeChange.id);
170
- if (edgeToRemove && edgeToRemove.targetHandle === mcpNodeHandleId) {
171
- // Find the target MCP node and clear its agentId
172
- const mcpNode = state.nodes.find((n) => n.id === edgeToRemove.target);
173
- if (mcpNode && mcpNode.type === NodeType.MCP) {
174
- updatedNodes = updatedNodes.map((n) =>
175
- n.id === mcpNode.id
176
- ? { ...n, data: { ...n.data, agentId: null, relationshipId: null } }
177
- : n
178
- );
175
+ for (const removeChange of removeChanges) {
176
+ const edgeToRemove = state.edges.find((e) => e.id === removeChange.id);
177
+ if (edgeToRemove && edgeToRemove.targetHandle === mcpNodeHandleId) {
178
+ // Find the target MCP node and clear its agentId
179
+ const mcpNode = state.nodes.find((n) => n.id === edgeToRemove.target);
180
+ if (mcpNode && mcpNode.type === NodeType.MCP) {
181
+ updatedNodes = updatedNodes.map((n) =>
182
+ n.id === mcpNode.id
183
+ ? { ...n, data: { ...n.data, agentId: null, relationshipId: null } }
184
+ : n
185
+ );
186
+ }
179
187
  }
180
188
  }
181
- }
182
189
 
183
- return {
184
- history: [...state.history, { nodes: state.nodes, edges: state.edges }],
185
- nodes: updatedNodes,
186
- edges: applyEdgeChanges(changes, state.edges),
187
- dirty: hasModifyingChange ? true : state.dirty,
188
- };
189
- });
190
- },
191
- onConnect(connection) {
192
- set((state) => ({ edges: addEdge(connection as any, state.edges) }));
193
- },
194
- setMetadata(field, value) {
195
- set((state) => ({ metadata: { ...state.metadata, [field]: value } }));
196
- },
197
- undo() {
198
- const { history } = get();
199
- if (history.length === 0) return;
200
- const prev = history[history.length - 1];
201
- set((state) => ({
202
- nodes: prev.nodes,
203
- edges: prev.edges,
204
- history: state.history.slice(0, -1),
205
- future: [{ nodes: state.nodes, edges: state.edges }, ...state.future],
206
- dirty: state.dirty,
207
- }));
208
- },
209
- redo() {
210
- const { future } = get();
211
- if (future.length === 0) return;
212
- const next = future[0];
213
- set((state) => ({
214
- nodes: next.nodes,
215
- edges: next.edges,
216
- future: state.future.slice(1),
217
- history: [...state.history, { nodes: state.nodes, edges: state.edges }],
218
- dirty: state.dirty,
219
- }));
220
- },
221
- markSaved() {
222
- set({ dirty: false });
223
- },
224
- markUnsaved() {
225
- set({ dirty: true });
226
- },
227
- clearSelection() {
228
- set((state) => ({
229
- nodes: state.nodes.map((n) => ({ ...n, selected: false })),
230
- edges: state.edges.map((e) => ({ ...e, selected: false })),
231
- dirty: state.dirty,
232
- }));
233
- },
234
- deleteSelected() {
235
- set((state) => {
236
- const nodesToDelete = new Set(
237
- state.nodes.filter((n) => n.selected && (n.deletable ?? true)).map((n) => n.id)
238
- );
239
- const edgesRemaining = state.edges.filter(
240
- (e) => !e.selected && !nodesToDelete.has(e.source) && !nodesToDelete.has(e.target)
241
- );
242
- const nodesRemaining = state.nodes.filter((n) => !nodesToDelete.has(n.id));
243
- return {
190
+ return {
191
+ history: [...state.history, { nodes: state.nodes, edges: state.edges }],
192
+ nodes: updatedNodes,
193
+ edges: applyEdgeChanges(changes, state.edges),
194
+ dirty: hasModifyingChange ? true : state.dirty,
195
+ };
196
+ });
197
+ },
198
+ onConnect(connection) {
199
+ set((state) => ({ edges: addEdge(connection as any, state.edges) }));
200
+ },
201
+ setMetadata(field, value) {
202
+ set((state) => ({ metadata: { ...state.metadata, [field]: value } }));
203
+ },
204
+ undo() {
205
+ const { history } = get();
206
+ if (history.length === 0) return;
207
+ const prev = history[history.length - 1];
208
+ set((state) => ({
209
+ nodes: prev.nodes,
210
+ edges: prev.edges,
211
+ history: state.history.slice(0, -1),
212
+ future: [{ nodes: state.nodes, edges: state.edges }, ...state.future],
213
+ dirty: state.dirty,
214
+ }));
215
+ },
216
+ redo() {
217
+ const { future } = get();
218
+ if (future.length === 0) return;
219
+ const next = future[0];
220
+ set((state) => ({
221
+ nodes: next.nodes,
222
+ edges: next.edges,
223
+ future: state.future.slice(1),
244
224
  history: [...state.history, { nodes: state.nodes, edges: state.edges }],
245
- nodes: nodesRemaining,
246
- edges: edgesRemaining,
247
- dirty: true,
248
- };
249
- });
250
- },
251
- setErrors(errors) {
252
- set({ errors, showErrors: errors !== null });
253
- },
254
- clearErrors() {
255
- set({ errors: null, showErrors: false });
256
- },
257
- setShowErrors(show) {
258
- set({ showErrors: show });
259
- },
260
- hasErrors() {
261
- const { errors } = get();
262
- return errors !== null && errors.totalErrors > 0;
263
- },
264
- getNodeErrors(nodeId) {
265
- const { errors } = get();
266
- if (!errors || !errors.nodeErrors[nodeId]) return [];
267
- return errors.nodeErrors[nodeId];
268
- },
269
- getEdgeErrors(edgeId) {
270
- const { errors } = get();
271
- if (!errors || !errors.edgeErrors[edgeId]) return [];
272
- return errors.edgeErrors[edgeId];
225
+ dirty: state.dirty,
226
+ }));
227
+ },
228
+ markSaved() {
229
+ set({ dirty: false });
230
+ },
231
+ markUnsaved() {
232
+ set({ dirty: true });
233
+ },
234
+ clearSelection() {
235
+ set((state) => ({
236
+ nodes: state.nodes.map((n) => ({ ...n, selected: false })),
237
+ edges: state.edges.map((e) => ({ ...e, selected: false })),
238
+ dirty: state.dirty,
239
+ }));
240
+ },
241
+ deleteSelected() {
242
+ set((state) => {
243
+ const nodesToDelete = new Set(
244
+ state.nodes.filter((n) => n.selected && (n.deletable ?? true)).map((n) => n.id)
245
+ );
246
+ const edgesRemaining = state.edges.filter(
247
+ (e) => !e.selected && !nodesToDelete.has(e.source) && !nodesToDelete.has(e.target)
248
+ );
249
+ const nodesRemaining = state.nodes.filter((n) => !nodesToDelete.has(n.id));
250
+ return {
251
+ history: [...state.history, { nodes: state.nodes, edges: state.edges }],
252
+ nodes: nodesRemaining,
253
+ edges: edgesRemaining,
254
+ dirty: true,
255
+ };
256
+ });
257
+ },
258
+ setErrors(errors) {
259
+ set({ errors, showErrors: errors !== null });
260
+ },
261
+ clearErrors() {
262
+ set({ errors: null, showErrors: false });
263
+ },
264
+ setShowErrors(show) {
265
+ set({ showErrors: show });
266
+ },
267
+ hasErrors() {
268
+ const { errors } = get();
269
+ return errors !== null && errors.totalErrors > 0;
270
+ },
271
+ getNodeErrors(nodeId) {
272
+ const { errors } = get();
273
+ if (!errors || !errors.nodeErrors[nodeId]) return [];
274
+ return errors.nodeErrors[nodeId];
275
+ },
276
+ getEdgeErrors(edgeId) {
277
+ const { errors } = get();
278
+ if (!errors || !errors.edgeErrors[edgeId]) return [];
279
+ return errors.edgeErrors[edgeId];
280
+ },
273
281
  },
274
282
  }))
275
283
  );
284
+
285
+ /**
286
+ * Actions are functions that update values in your store.
287
+ * These are static and do not change between renders.
288
+ *
289
+ * @see https://tkdodo.eu/blog/working-with-zustand#separate-actions-from-state
290
+ */
291
+ export const useGraphActions = () => graphStore((state) => state.actions);
292
+
293
+ /**
294
+ * Select values from the graph store (excluding actions).
295
+ *
296
+ * We explicitly use `GraphStateData` instead of `GraphState`,
297
+ * which includes actions, to encourage using `useGraphActions`
298
+ * when accessing or calling actions.
299
+ */
300
+ export function useGraphStore<T>(selector: (state: GraphStateData) => T): T {
301
+ return graphStore(useShallow(selector));
302
+ }
@@ -1,8 +1,8 @@
1
1
  import { useCallback, useEffect } from 'react';
2
- import { useGraphStore } from '@/features/graph/state/use-graph-store';
2
+ import { useGraphActions } from '@/features/graph/state/use-graph-store';
3
3
 
4
4
  export function useGraphShortcuts() {
5
- const { undo, redo, deleteSelected } = useGraphStore();
5
+ const { undo, redo, deleteSelected } = useGraphActions();
6
6
 
7
7
  const onKeyDown = useCallback(
8
8
  (e: KeyboardEvent) => {
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { useCallback } from 'react';
6
- import { useGraphStore } from '@/features/graph/state/use-graph-store';
6
+ import { useGraphStore, useGraphActions } from '@/features/graph/state/use-graph-store';
7
7
 
8
8
  export interface ErrorHelpers {
9
9
  hasFieldError: (fieldName: string) => boolean;
@@ -12,14 +12,12 @@ export interface ErrorHelpers {
12
12
  }
13
13
 
14
14
  export function useGraphErrors() {
15
- const errors = useGraphStore((state) => state.errors);
16
- const showErrors = useGraphStore((state) => state.showErrors);
17
- const hasErrors = useGraphStore((state) => state.hasErrors);
18
- const getNodeErrors = useGraphStore((state) => state.getNodeErrors);
19
- const getEdgeErrors = useGraphStore((state) => state.getEdgeErrors);
20
- const setErrors = useGraphStore((state) => state.setErrors);
21
- const clearErrors = useGraphStore((state) => state.clearErrors);
22
- const setShowErrors = useGraphStore((state) => state.setShowErrors);
15
+ const { errors, showErrors } = useGraphStore((state) => ({
16
+ errors: state.errors,
17
+ showErrors: state.showErrors,
18
+ }));
19
+ const { hasErrors, getNodeErrors, getEdgeErrors, setErrors, clearErrors, setShowErrors } =
20
+ useGraphActions();
23
21
 
24
22
  const getNodeErrorCount = (nodeId: string): number => {
25
23
  return getNodeErrors(nodeId).length;
@@ -1,6 +1,6 @@
1
1
  import { useReactFlow } from '@xyflow/react';
2
2
  import { useCallback, useRef } from 'react';
3
- import { useGraphStore } from '@/features/graph/state/use-graph-store';
3
+ import { useGraphActions } from '@/features/graph/state/use-graph-store';
4
4
  import type { ErrorHelpers } from './use-graph-errors';
5
5
 
6
6
  interface UseNodeEditorOptions {
@@ -10,7 +10,7 @@ interface UseNodeEditorOptions {
10
10
 
11
11
  export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOptions) {
12
12
  const { updateNodeData } = useReactFlow();
13
- const markUnsaved = useGraphStore((state) => state.markUnsaved);
13
+ const { markUnsaved } = useGraphActions();
14
14
 
15
15
  // Focus management for error fields
16
16
  const fieldRefs = useRef<Record<string, HTMLElement>>({});
@@ -107,8 +107,8 @@ export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOpt
107
107
  const finalKey = nestedPath[nestedPath.length - 1];
108
108
  if (value === undefined || value === null || value === '') {
109
109
  delete current[finalKey];
110
- // If the parent object becomes empty, clean it up
111
- if (Object.keys(updatedParent).length === 0 || Object.keys(current).length === 0) {
110
+ // Check if the parent object becomes empty after deletion
111
+ if (Object.keys(updatedParent).length === 0) {
112
112
  updateField(parentField, null);
113
113
  return;
114
114
  }