@inkeep/agents-manage-ui 0.16.0 → 0.16.1

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 (157) 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 +74 -74
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +4 -4
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js.nft.json +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  75. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +8 -8
  78. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route.js +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  82. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +4 -4
  84. package/.next/standalone/agents-manage-ui/.next/server/chunks/1616.js +1 -0
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/2067.js +11 -0
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/2539.js +4 -4
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/3388.js +1 -0
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/{1307.js → 3856.js} +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/6212.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/chunks/7269.js +1 -0
  93. package/.next/standalone/agents-manage-ui/.next/server/chunks/7457.js +2 -2
  94. package/.next/standalone/agents-manage-ui/.next/server/chunks/7683.js +1 -0
  95. package/.next/standalone/agents-manage-ui/.next/server/chunks/9235.js +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/static/chunks/1558-1902ff84dafc5b8f.js +1 -0
  101. package/.next/standalone/agents-manage-ui/.next/static/chunks/5763-74a168a5f84761f7.js +1 -0
  102. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-6976d39ec7f6ac78.js +1 -0
  103. package/.next/standalone/agents-manage-ui/.next/static/chunks/{6169-cfb0568c126fc299.js → 8988-0b24ec45fae98d4b.js} +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/static/chunks/9858-1e1f5164b005b5d5.js +1 -0
  105. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-3f77732c28eac5b2.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-3543a2908f3f930b.js → page-2ff4e9110b97be98.js} +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-3543a2908f3f930b.js → page-2ff4e9110b97be98.js} +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-98a9696e4a55253f.js +1 -0
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-4c2f2de1c22e9a1d.js → page-8356cdab82213d08.js} +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/{page-4c2f2de1c22e9a1d.js → page-8356cdab82213d08.js} +1 -1
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-e09895dc62b61b6e.js +1 -0
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5147f98b148f5a01.js +1 -0
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/{page-f51f1e9b46f8d1d8.js → page-c6663bec65b05b5e.js} +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-f9a4450c8779c664.js +1 -0
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-1c5769985850e2b3.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/{page-1454d3a9497b7a8d.js → page-1befa5c6752d0d34.js} +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/{page-3687185e09d92a58.js → page-25b84b1e4e21a45f.js} +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-524bf97da69dc1ab.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-57fe6b6817f72610.js → page-b43d9969547db312.js} +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-12e152d8dd947a35.js +1 -0
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-b585b784f596b473.js → page-2c30ed902003a4cb.js} +1 -1
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-e49e847d402ef20e.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-59ad0e44b2ea6daa.js +1 -0
  124. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-dfb60f6296b75b84.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-7eb12014eb28697d.js +1 -0
  126. package/.next/standalone/agents-manage-ui/package.json +1 -1
  127. package/.next/standalone/packages/agents-core/package.json +1 -1
  128. package/package.json +4 -4
  129. package/src/app/api/signoz/route.ts +81 -4
  130. package/src/components/graph/playground/chat-widget.tsx +37 -6
  131. package/src/components/graph/playground/playground.tsx +1 -0
  132. package/src/components/traces/timeline/timeline-wrapper.tsx +42 -12
  133. package/src/components/traces/traces-overview.tsx +48 -27
  134. package/src/hooks/use-signoz-config.ts +36 -0
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/4892.js +0 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/5907.js +0 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/5983.js +0 -1
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/7214.js +0 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/chunks/8844.js +0 -11
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/1558-6871cda73da725cf.js +0 -1
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/4492-96faff048274b09d.js +0 -1
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/548-97095c8b370861af.js +0 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-c5adaff49e8fee71.js +0 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-a768e71c916a6dba.js +0 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-a290beb6a02dec08.js +0 -1
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-d5916d3347ffdbb6.js +0 -1
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-094d349980b3678a.js +0 -1
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-b29c70030f92a432.js +0 -1
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-ee70b34d80767e4d.js +0 -1
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-2632014775ed1c26.js +0 -1
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-9e2c4332fd034ec4.js +0 -1
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-9e8626e7d7dbef89.js +0 -1
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-11f1d5551fbd41a8.js +0 -1
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-bc5b1909e8f4fc34.js +0 -1
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-9c8c2859e8a85366.js +0 -1
  156. /package/.next/standalone/agents-manage-ui/.next/static/{eNIbqawszv1jdMNTO9cjB → zCyXob78JMEB3IDoUAavP}/_buildManifest.js +0 -0
  157. /package/.next/standalone/agents-manage-ui/.next/static/{eNIbqawszv1jdMNTO9cjB → zCyXob78JMEB3IDoUAavP}/_ssgManifest.js +0 -0
@@ -110,8 +110,85 @@ export async function POST(request: NextRequest) {
110
110
  }
111
111
 
112
112
  export async function GET() {
113
- return NextResponse.json({
114
- status: 'ok',
115
- configured: !!SIGNOZ_URL && !!SIGNOZ_API_KEY,
116
- });
113
+ const logger = getLogger('signoz-config-check');
114
+
115
+ logger.info({
116
+ hasUrl: !!SIGNOZ_URL,
117
+ hasApiKey: !!SIGNOZ_API_KEY,
118
+ url: SIGNOZ_URL
119
+ }, 'Checking SigNoz configuration');
120
+
121
+ // First check if credentials are set
122
+ if (!SIGNOZ_URL || !SIGNOZ_API_KEY) {
123
+ logger.warn('SigNoz credentials not set');
124
+ return NextResponse.json({
125
+ status: 'not_configured',
126
+ configured: false,
127
+ error: 'SIGNOZ_URL or SIGNOZ_API_KEY not set.',
128
+ });
129
+ }
130
+
131
+ // Test the connection with minimal authenticated query
132
+ // 200/400 = valid API key
133
+ try {
134
+ const testPayload = {
135
+ start: Date.now() - 300000, // 5 minutes ago
136
+ end: Date.now(),
137
+ step: 60,
138
+ compositeQuery: {
139
+ queryType: 'builder',
140
+ panelType: 'graph',
141
+ builderQueries: {},
142
+ },
143
+ };
144
+
145
+ const signozEndpoint = `${SIGNOZ_URL}/api/v4/query_range`;
146
+ logger.info({ endpoint: signozEndpoint }, 'Testing SigNoz connection');
147
+
148
+ const response = await axios.post(signozEndpoint, testPayload, {
149
+ headers: {
150
+ 'Content-Type': 'application/json',
151
+ 'SIGNOZ-API-KEY': SIGNOZ_API_KEY,
152
+ },
153
+ timeout: 5000,
154
+ validateStatus: (status) => {
155
+ // Accept both 200 and 400 as success (both mean valid API key)
156
+ return status === 200 || status === 400;
157
+ },
158
+ });
159
+
160
+ logger.info({
161
+ status: response.status,
162
+ }, 'SigNoz health check successful (authenticated)');
163
+
164
+ return NextResponse.json({
165
+ status: 'ok',
166
+ configured: true,
167
+ });
168
+ } catch (error) {
169
+ logger.error({
170
+ error,
171
+ message: error instanceof Error ? error.message : 'Unknown error',
172
+ code: axios.isAxiosError(error) ? error.code : undefined,
173
+ status: axios.isAxiosError(error) ? error.response?.status : undefined,
174
+ responseData: axios.isAxiosError(error) ? error.response?.data : undefined,
175
+ }, 'SigNoz connection test failed');
176
+
177
+ let errorMessage = 'Failed to connect to SigNoz';
178
+ if (axios.isAxiosError(error)) {
179
+ if (error.code === 'ECONNREFUSED' || error.code === 'ENOTFOUND') {
180
+ errorMessage = 'Check SIGNOZ_URL.';
181
+ } else if (error.response?.status === 401 || error.response?.status === 403) {
182
+ errorMessage = 'Invalid SIGNOZ_API_KEY.';
183
+ } else if (error.code === 'ETIMEDOUT' || error.code === 'ECONNABORTED') {
184
+ errorMessage = 'SigNoz connection timed out';
185
+ }
186
+ }
187
+
188
+ return NextResponse.json({
189
+ status: 'connection_failed',
190
+ configured: false,
191
+ error: errorMessage,
192
+ });
193
+ }
117
194
  }
@@ -2,7 +2,8 @@
2
2
  import { InkeepEmbeddedChat } from '@inkeep/agents-ui';
3
3
  import type { ComponentsConfig, InkeepCallbackEvent } from '@inkeep/agents-ui/types';
4
4
  import { nanoid } from 'nanoid';
5
- import { useEffect, useRef } from 'react';
5
+ import { useCallback, useEffect, useRef } from 'react';
6
+ import type { ConversationDetail } from '@/components/traces/timeline/types';
6
7
  import { useRuntimeConfig } from '@/contexts/runtime-config-context';
7
8
  import { IkpMessage as IkpMessageComponent } from './ikp-message';
8
9
 
@@ -15,6 +16,7 @@ interface ChatWidgetProps {
15
16
  startPolling: () => void;
16
17
  stopPolling: () => void;
17
18
  customHeaders?: Record<string, string>;
19
+ chatActivities: ConversationDetail | null;
18
20
  }
19
21
 
20
22
  const styleOverrides = `
@@ -127,9 +129,35 @@ export function ChatWidget({
127
129
  startPolling,
128
130
  stopPolling,
129
131
  customHeaders = {},
132
+ chatActivities,
130
133
  }: ChatWidgetProps) {
131
134
  const { INKEEP_AGENTS_RUN_API_URL, INKEEP_AGENTS_RUN_API_BYPASS_SECRET } = useRuntimeConfig();
132
135
  const stopPollingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
136
+ const hasReceivedAssistantMessageRef = useRef(false);
137
+ const POLLING_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
138
+
139
+ // Helper function to reset the stop polling timeout
140
+ const resetStopPollingTimeout = useCallback(() => {
141
+ // Clear any existing timeout
142
+ if (stopPollingTimeoutRef.current) {
143
+ clearTimeout(stopPollingTimeoutRef.current);
144
+ stopPollingTimeoutRef.current = null;
145
+ }
146
+
147
+ // Set a new timeout for 5 minutes
148
+ stopPollingTimeoutRef.current = setTimeout(() => {
149
+ stopPolling();
150
+ stopPollingTimeoutRef.current = null;
151
+ }, POLLING_TIMEOUT_MS);
152
+ }, [stopPolling, POLLING_TIMEOUT_MS]);
153
+
154
+ // Reset timeout when new activities come in AFTER assistant message received
155
+ useEffect(() => {
156
+ // Only reset timeout if we've already received the assistant message and new activities were added
157
+ if (hasReceivedAssistantMessageRef.current) {
158
+ resetStopPollingTimeout();
159
+ }
160
+ }, [chatActivities?.activities?.length, resetStopPollingTimeout]);
133
161
 
134
162
  useEffect(() => {
135
163
  return () => {
@@ -147,13 +175,14 @@ export function ChatWidget({
147
175
  baseSettings={{
148
176
  onEvent: (event: InkeepCallbackEvent) => {
149
177
  if (event.eventName === 'assistant_message_received') {
150
- // Add a delay before stopping polling to allow activity data to be available
151
- stopPollingTimeoutRef.current = setTimeout(() => {
152
- stopPolling();
153
- stopPollingTimeoutRef.current = null;
154
- }, 15000);
178
+ // Mark that we've received the assistant message
179
+ hasReceivedAssistantMessageRef.current = true;
180
+ // Reset the timeout to 5 minutes after receiving an assistant message
181
+ resetStopPollingTimeout();
155
182
  }
156
183
  if (event.eventName === 'user_message_submitted') {
184
+ // Reset the flag
185
+ hasReceivedAssistantMessageRef.current = false;
157
186
  // Cancel any pending stop polling timeout since we need to keep polling
158
187
  if (stopPollingTimeoutRef.current) {
159
188
  clearTimeout(stopPollingTimeoutRef.current);
@@ -162,6 +191,8 @@ export function ChatWidget({
162
191
  startPolling();
163
192
  }
164
193
  if (event.eventName === 'chat_clear_button_clicked') {
194
+ // Reset the flag
195
+ hasReceivedAssistantMessageRef.current = false;
165
196
  // Cancel any pending stop polling timeout
166
197
  if (stopPollingTimeoutRef.current) {
167
198
  clearTimeout(stopPollingTimeoutRef.current);
@@ -82,6 +82,7 @@ export const Playground = ({
82
82
  projectId={projectId}
83
83
  tenantId={tenantId}
84
84
  customHeaders={customHeaders}
85
+ chatActivities={chatActivities}
85
86
  key={JSON.stringify(customHeaders)}
86
87
  />
87
88
  </ResizablePanel>
@@ -1,5 +1,5 @@
1
1
  import { AlertTriangle, ChevronDown, ChevronUp, Loader2, RefreshCw } from 'lucide-react';
2
- import { useCallback, useEffect, useMemo, useState } from 'react';
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
3
  import { toast } from 'sonner';
4
4
  import { StickToBottom } from 'use-stick-to-bottom';
5
5
  import { ConversationTracesLink } from '@/components/traces/signoz-link';
@@ -224,19 +224,49 @@ export function TimelineWrapper({
224
224
  .map((activity) => activity.id);
225
225
  }, [sortedActivities]);
226
226
 
227
- // Initialize AI messages based on view type when activities change
227
+ // Track which messages we've already processed
228
+ const processedIdsRef = useRef<Set<string>>(new Set());
229
+ const lastConversationRef = useRef<string | undefined>(undefined);
230
+
228
231
  useEffect(() => {
229
- if (enableAutoScroll) {
230
- // Live trace view: collapse all AI messages
231
- setCollapsedAiMessages(new Set(aiMessageIds));
232
- setAiMessagesGloballyCollapsed(true);
233
- } else {
234
- // Conversation details view: collapse only ai.streamText.doStream spans
235
- setCollapsedAiMessages(new Set(streamTextIds));
236
- setAiMessagesGloballyCollapsed(streamTextIds.length === aiMessageIds.length);
232
+ // Reset when conversation changes
233
+ if (conversationId !== lastConversationRef.current) {
234
+ lastConversationRef.current = conversationId;
235
+ processedIdsRef.current = new Set();
236
+ setCollapsedAiMessages(new Set());
237
+ setAiMessagesGloballyCollapsed(false);
237
238
  }
238
- }, [aiMessageIds, streamTextIds, enableAutoScroll]);
239
-
239
+
240
+ // Determine which IDs to auto-collapse based on view type
241
+ const idsToProcess = enableAutoScroll ? aiMessageIds : streamTextIds;
242
+
243
+ // Find new IDs that haven't been processed yet
244
+ const newIds = idsToProcess.filter(id => !processedIdsRef.current.has(id));
245
+
246
+ if (newIds.length > 0) {
247
+ // Mark these as processed
248
+ newIds.forEach(id => {
249
+ processedIdsRef.current.add(id);
250
+ });
251
+
252
+ // Add new IDs to collapsed set
253
+ setCollapsedAiMessages(prev => {
254
+ const updated = new Set(prev);
255
+ newIds.forEach(id => {
256
+ updated.add(id);
257
+ });
258
+ return updated;
259
+ });
260
+ // Update global state
261
+ const allProcessed = idsToProcess.every(id => processedIdsRef.current.has(id));
262
+ if (enableAutoScroll) {
263
+ setAiMessagesGloballyCollapsed(allProcessed && aiMessageIds.length > 0);
264
+ } else {
265
+ setAiMessagesGloballyCollapsed(allProcessed && streamTextIds.length === aiMessageIds.length && aiMessageIds.length > 0);
266
+ }
267
+ }
268
+ }, [conversationId, aiMessageIds, streamTextIds, enableAutoScroll]);
269
+
240
270
  // Functions to handle expand/collapse all (memoized to prevent unnecessary re-renders)
241
271
  const expandAllAiMessages = useCallback(() => {
242
272
  setCollapsedAiMessages(new Set());
@@ -1,11 +1,13 @@
1
1
  'use client';
2
2
 
3
- import { ArrowRightLeft, RefreshCw, SparklesIcon, Users, Wrench } from 'lucide-react';
3
+ import { AlertTriangle, ArrowRightLeft, SparklesIcon, Users, Wrench } from 'lucide-react';
4
4
  import { useParams, useRouter, useSearchParams } from 'next/navigation';
5
5
  import { useEffect, useMemo, useState } from 'react';
6
- import { Button } from '@/components/ui/button';
6
+ import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
7
7
  import { Card, CardContent } from '@/components/ui/card';
8
+ import { ExternalLink } from '@/components/ui/external-link';
8
9
  import { useAggregateStats, useConversationStats } from '@/hooks/use-traces';
10
+ import { useSignozConfig } from '@/hooks/use-signoz-config';
9
11
  import { type TimeRange, useTracesQueryState } from '@/hooks/use-traces-query-state';
10
12
  import { getSigNozStatsClient, type SpanFilterOptions } from '@/lib/api/signoz-stats';
11
13
  import { AreaChartCard } from './charts/area-chart-card';
@@ -14,6 +16,7 @@ import { ConversationStatsCard } from './conversation-stats/conversation-stats-c
14
16
  import { CUSTOM, DatePickerWithPresets } from './filters/date-picker';
15
17
  import { GraphFilter } from './filters/graph-filter';
16
18
  import { SpanFilters } from './filters/span-filters';
19
+ import { DOCS_BASE_URL } from '@/constants/page-descriptions';
17
20
 
18
21
  // Time range options
19
22
  const TIME_RANGES = {
@@ -42,6 +45,9 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
42
45
  setSpanFilter,
43
46
  } = useTracesQueryState();
44
47
 
48
+ // Check if Signoz is configured
49
+ const { isLoading: isSignozConfigLoading, configError: signozConfigError } = useSignozConfig();
50
+
45
51
  const [selectedGraph, setSelectedGraph] = useState<string | undefined>(undefined);
46
52
  const [searchQuery, setSearchQuery] = useState<string>('');
47
53
  const [debouncedSearchQuery, setDebouncedSearchQuery] = useState<string>('');
@@ -296,31 +302,46 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
296
302
 
297
303
  return (
298
304
  <div className="space-y-4">
299
- <div className="flex items-center justify-between">
300
- <div className="flex items-center gap-4">
301
- {/* Graph Filter */}
302
- <GraphFilter onSelect={setSelectedGraph} selectedValue={selectedGraph} />
303
- {/* Time Range Filter */}
304
- <DatePickerWithPresets
305
- label="Time range"
306
- onRemove={() => setSelectedTimeRange('15d')}
307
- value={
308
- selectedTimeRange === CUSTOM
309
- ? { from: customStartDate, to: customEndDate }
310
- : selectedTimeRange
311
- }
312
- onAdd={(value: TimeRange) => setSelectedTimeRange(value)}
313
- setCustomDateRange={(start: string, end: string) => setCustomDateRange(start, end)}
314
- options={Object.entries(TIME_RANGES).map(([value, config]) => ({
315
- value,
316
- label: config.label,
317
- }))}
318
- />
319
- </div>
320
- <Button variant="outline" size="sm" onClick={refresh}>
321
- <RefreshCw className="h-4 w-4" />
322
- Refresh
323
- </Button>
305
+ {/* Signoz Configuration Banner */}
306
+ {!isSignozConfigLoading && signozConfigError && (
307
+ <Alert variant="warning">
308
+ <AlertTriangle className="h-4 w-4" />
309
+ <AlertTitle>SigNoz Configuration Error</AlertTitle>
310
+ <AlertDescription>
311
+ <p>
312
+ {signozConfigError} Please follow the instructions in the{' '}
313
+ <ExternalLink
314
+ className="text-amber-700 dark:text-amber-300 dark:hover:text-amber-200"
315
+ iconClassName="text-amber-700 dark:text-amber-300 dark:group-hover/link:text-amber-200"
316
+ href={`${DOCS_BASE_URL}/quick-start/traces`}
317
+ >
318
+ traces setup guide
319
+ </ExternalLink>
320
+ .
321
+ </p>
322
+ </AlertDescription>
323
+ </Alert>
324
+ )}
325
+
326
+ <div className="flex items-center gap-4">
327
+ {/* Graph Filter */}
328
+ <GraphFilter onSelect={setSelectedGraph} selectedValue={selectedGraph} />
329
+ {/* Time Range Filter */}
330
+ <DatePickerWithPresets
331
+ label="Time range"
332
+ onRemove={() => setSelectedTimeRange('15d')}
333
+ value={
334
+ selectedTimeRange === CUSTOM
335
+ ? { from: customStartDate, to: customEndDate }
336
+ : selectedTimeRange
337
+ }
338
+ onAdd={(value: TimeRange) => setSelectedTimeRange(value)}
339
+ setCustomDateRange={(start: string, end: string) => setCustomDateRange(start, end)}
340
+ options={Object.entries(TIME_RANGES).map(([value, config]) => ({
341
+ value,
342
+ label: config.label,
343
+ }))}
344
+ />
324
345
  </div>
325
346
 
326
347
  <div className="flex flex-col gap-4">
@@ -0,0 +1,36 @@
1
+ import { useEffect, useState } from 'react';
2
+
3
+ interface SignozConfigStatus {
4
+ status: string;
5
+ configured: boolean;
6
+ error?: string;
7
+ }
8
+
9
+ export function useSignozConfig() {
10
+ const [isLoading, setIsLoading] = useState(true);
11
+ const [configError, setConfigError] = useState<string | null>(null);
12
+
13
+ useEffect(() => {
14
+ const checkConfig = async () => {
15
+ try {
16
+ setIsLoading(true);
17
+ const response = await fetch('/api/signoz');
18
+ if (!response.ok) {
19
+ throw new Error('Failed to check Signoz configuration');
20
+ }
21
+ const data: SignozConfigStatus = await response.json();
22
+ setConfigError(data.error || null);
23
+ } catch (err) {
24
+ console.error('Error checking Signoz configuration:', err);
25
+ setConfigError(err instanceof Error ? err.message : 'Failed to check SigNoz configuration');
26
+ } finally {
27
+ setIsLoading(false);
28
+ }
29
+ };
30
+
31
+ checkConfig();
32
+ }, []);
33
+
34
+ return { isLoading, configError };
35
+ }
36
+
@@ -1 +0,0 @@
1
- "use strict";exports.id=4892,exports.ids=[4892],exports.modules={25315:(a,b,c)=>{c.r(b),c.d(b,{"407d0f30961517c54f9e98fad3b0a1d618f2dcbe4f":()=>d.vj,"60031d4ea585b058059e7c22877d1a198a4663bba6":()=>d.xx,"602f71fb8c2a02815732779d1f508c4d5d23cc91ae":()=>d.Sw,"60935aab241d88d380f7ea94843a2d6a2e129f4822":()=>d.gA,"701b6957a4de1c337649f83dedc839634395e0e252":()=>d.vr});var d=c(54637)},35406:(a,b,c)=>{c.d(b,{A3:()=>i,Nv:()=>q,PC:()=>j,SH:()=>f,SL:()=>o,U_:()=>n,XQ:()=>m,YL:()=>r,aR:()=>d,cZ:()=>k,qf:()=>s,we:()=>l,yR:()=>e,yZ:()=>t,zD:()=>p});let d={AI_TOOL_CALL:"ai.toolCall",CONTEXT_RESOLUTION:"context-resolver.resolve_single_fetch_definition",CONTEXT_HANDLE:"context.handle_context_resolution",AGENT_GENERATION:"agent.generate",CONTEXT_FETCHER:"context-fetcher.http-request"},e={GENERATE_TEXT:"ai.generateText.doGenerate",STREAM_TEXT:"ai.streamText.doStream"},f={SPAN_ID:"spanID",TRACE_ID:"traceID",DURATION_NANO:"durationNano",TIMESTAMP:"timestamp",HAS_ERROR:"hasError",STATUS_MESSAGE:"status_message",OTEL_STATUS_CODE:"otel.status_code",OTEL_STATUS_DESCRIPTION:"otel.status_description",GRAPH_ID:"graph.id",GRAPH_NAME:"graph.name",TENANT_ID:"tenant.id",PROJECT_ID:"project.id",AI_AGENT_NAME:"ai.agentName",AI_AGENT_NAME_ALT:"ai.agent.name",AI_OPERATION_ID:"ai.operationId",AI_RESPONSE_TIMESTAMP:"ai.response.timestamp",AI_RESPONSE_CONTENT:"ai.response.content",AI_RESPONSE_TEXT:"ai.response.text",AI_RESPONSE_MODEL:"ai.response.model",AI_RESPONSE_TOOL_CALLS:"ai.response.toolCalls",AI_PROMPT_MESSAGES:"ai.prompt.messages",AI_MODEL_PROVIDER:"ai.model.provider",AI_TELEMETRY_FUNCTION_ID:"ai.telemetry.functionId",AI_MODEL_ID:"ai.model.id",AI_TOOL_CALL_NAME:"ai.toolCall.name",AI_TOOL_CALL_RESULT:"ai.toolCall.result",AI_TOOL_CALL_ARGS:"ai.toolCall.args",AI_TOOL_CALL_ID:"ai.toolCall.id",AI_TOOL_TYPE:"ai.toolType",TOOL_PURPOSE:"tool.purpose",AGENT_ID:"agent.id",AGENT_NAME:"agent.name",GEN_AI_USAGE_INPUT_TOKENS:"gen_ai.usage.input_tokens",GEN_AI_USAGE_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",CONTEXT_URL:"context.url",CONTEXT_CONFIG_ID:"context.context_config_id",CONTEXT_AGENT_GRAPH_ID:"context.agent_graph_id",CONTEXT_HEADERS_KEYS:"context.headers_keys",MESSAGE_CONTENT:"message.content",MESSAGE_TIMESTAMP:"message.timestamp",MCP_TOOL_DESCRIPTION:"mcp.tool.description",DELEGATION_FROM_AGENT_ID:"delegation.from_agent_id",DELEGATION_TO_AGENT_ID:"delegation.to_agent_id",TRANSFER_FROM_AGENT_ID:"transfer.from_agent_id",TRANSFER_TO_AGENT_ID:"transfer.to_agent_id",HTTP_URL:"http.url",HTTP_STATUS_CODE:"http.status_code",HTTP_RESPONSE_BODY_SIZE:"http.response.body_size",NAME:"name",PARENT_SPAN_ID:"parentSpanID",CONVERSATION_ID:"conversation.id"},g={STRING:"string",INT64:"int64",FLOAT64:"float64",BOOL:"bool"},h={TAG:"tag"},i={STRING_TAG:{dataType:g.STRING,type:h.TAG,isColumn:!1},STRING_TAG_COLUMN:{dataType:g.STRING,type:h.TAG,isColumn:!0},INT64_TAG:{dataType:g.INT64,type:h.TAG,isColumn:!1},INT64_TAG_COLUMN:{dataType:g.INT64,type:h.TAG,isColumn:!0},FLOAT64_TAG:{dataType:g.FLOAT64,type:h.TAG,isColumn:!1},FLOAT64_TAG_COLUMN:{dataType:g.FLOAT64,type:h.TAG,isColumn:!0},BOOL_TAG:{dataType:g.BOOL,type:h.TAG,isColumn:!1},BOOL_TAG_COLUMN:{dataType:g.BOOL,type:h.TAG,isColumn:!0}},j="unknown",k={MCP:"mcp",TRANSFER:"transfer",DELEGATION:"delegation"},l={EQUALS:"=",NOT_EQUALS:"!=",LESS_THAN:"<",GREATER_THAN:">",LESS_THAN_OR_EQUAL:"<=",GREATER_THAN_OR_EQUAL:">=",LIKE:"like",NOT_LIKE:"nlike",EXISTS:"exists",NOT_EXISTS:"nexists",AND:"AND",OR:"OR"},m={SPAN_NAMES:"spanNames",AGENT_MODEL_CALLS:"agentModelCalls",MODEL_CALLS:"modelCalls",LAST_ACTIVITY:"lastActivity",CONVERSATION_METADATA:"conversationMetadata",FILTERED_CONVERSATIONS:"filteredConversations",TOOLS:"tools",TRANSFERS:"transfers",DELEGATIONS:"delegations",AI_CALLS:"aiCalls",CONTEXT_ERRORS:"contextErrors",AGENT_GENERATION_ERRORS:"agentGenerationErrors",USER_MESSAGES:"userMessages",UNIQUE_GRAPHS:"uniqueGraphs",UNIQUE_MODELS:"uniqueModels",TOOL_CALLS:"toolCalls",CONTEXT_RESOLUTION:"contextResolution",CONTEXT_HANDLE:"contextHandle",AI_ASSISTANT_MESSAGES:"aiAssistantMessages",AI_GENERATIONS:"aiGenerations",AI_STREAMING_TEXT:"aiStreamingText",CONTEXT_FETCHERS:"contextFetchers",DURATION_SPANS:"durationSpans",AGENT_GENERATIONS:"agentGenerations",SPANS_WITH_ERRORS:"spansWithErrors"},n={SUM:"sum",MAX:"max",MIN:"min",AVG:"avg",COUNT:"count"},o={ASC:"asc",DESC:"desc"},p={BUILDER:"builder",CLICKHOUSE:"clickhouse",PROMQL:"promql"},q={LIST:"list",TABLE:"table",GRAPH:"graph",VALUE:"value"},r={TRACES:"traces",METRICS:"metrics",LOGS:"logs"},s={COUNT:"count",SUM:"sum",AVG:"avg",MIN:"min",MAX:"max",NOOP:"noop"},t={STEP:60,STEP_INTERVAL:60,OFFSET:0,DISABLED:!1,HAVING:[],LEGEND:"",LIMIT_NULL:null,LIMIT_ZERO:0,LIMIT_1000:1e3,EMPTY_GROUP_BY:[]}},40367:(a,b,c)=>{c.d(b,{H:()=>p});var d=c(36532),e=c(68764),f=c(34576),g=c(35406);let h=a=>Math.floor(a/1e6),i=f.union([f.string(),f.number(),f.boolean()]),j=a=>{try{if("true"===a)return i.parse(!0);if("false"===a)return i.parse(!1);let b=(a=>/^-?\d+(\.\d+)?$/.test(a)?Number(a):a)(a);if("number"==typeof b)return i.parse(b);return i.parse(a)}catch(b){return console.warn(`Failed to parse filter value "${a}":`,b),i.parse(a)}},k=a=>parseInt(a.values?.[0]?.value??"0",10)||0,l=a=>Number(a.values?.[0]?.value??0)||0,m=(a,b)=>{let c=new Date(a);c.setHours(0,0,0,0);let d=new Date(b);d.setHours(0,0,0,0);let e=[];for(let a=new Date(c);a<=d;a.setDate(a.getDate()+1))e.push(`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`);return e};(0,e.Ay)(d.A,{retries:3,retryDelay:e.Ay.exponentialDelay});class n{async makeRequest(a){return(await d.A.post("/api/signoz",a,{timeout:3e4,headers:{"Content-Type":"application/json"}})).data}extractSeries(a,b){return a?.data?.result?.find(a=>a?.queryName===b)?.series??[]}async getConversationStats(a,b,c,d,e,f,i){try{let j=this.buildCombinedPayload(a,b,c,d,i),k=await this.makeRequest(j),m=this.extractSeries(k,g.XQ.TOOLS),n=this.extractSeries(k,g.XQ.TRANSFERS),o=this.extractSeries(k,g.XQ.DELEGATIONS),p=this.extractSeries(k,g.XQ.AI_CALLS),q=this.extractSeries(k,g.XQ.LAST_ACTIVITY),r=this.extractSeries(k,g.XQ.CONVERSATION_METADATA),s=this.extractSeries(k,g.XQ.CONTEXT_ERRORS),t=this.extractSeries(k,g.XQ.AGENT_GENERATION_ERRORS),u=this.extractSeries(k,g.XQ.USER_MESSAGES),v=new Map;for(let a of r){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&v.set(b,{tenantId:a.labels?.[g.SH.TENANT_ID]??g.PC,graphId:a.labels?.[g.SH.GRAPH_ID]??g.PC,graphName:a.labels?.[g.SH.GRAPH_NAME]??g.PC})}let w=new Map;for(let a of q){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&w.set(b,l(a))}let x=new Map,y=new Map;for(let a of u){let b=a.labels?.[g.SH.CONVERSATION_ID],c=a.labels?.[g.SH.MESSAGE_CONTENT],d=l(a);b&&c&&(y.get(b)??y.set(b,[]).get(b))?.push({t:d,c:c})}for(let[a,b]of y){b.sort((a,b)=>a.t-b.t);let c=b[0];if(c){let b=c.c.length>100?`${c.c.slice(0,100)}...`:c.c;x.set(a,{content:b,timestamp:h(c.t)})}}let z=this.toConversationStats(m,n,o,p,v,s,t,x);if((c?.spanName||c?.attributes?.length)&&(z=await this.applySpanFilters(z,a,b,c,d)),f?.trim()){let a=f.toLowerCase().trim();z=z.filter(b=>b.firstUserMessage?.toLowerCase().includes(a)||b.conversationId.toLowerCase().includes(a)||b.graphId.toLowerCase().includes(a))}if(z.sort((a,b)=>((a=0,b=0)=>b-a)(w.get(a.conversationId),w.get(b.conversationId))),!e)return z;let{page:A,limit:B}=e,C=z.length,D=Math.ceil(C/B),E=(A-1)*B;return{data:z.slice(E,E+B),pagination:{page:A,limit:B,total:C,totalPages:D,hasNextPage:A<D,hasPreviousPage:A>1}}}catch(a){return console.error("getConversationStats error:",a),[]}}async getAICallsByGraph(a,b,c){try{let d=await this.makeRequest(this.buildCombinedPayload(a,b,void 0,c)),e=this.extractSeries(d,g.XQ.AI_CALLS),f=new Map;for(let a of e){let b=a.labels?.[g.SH.GRAPH_ID]||g.PC,c=k(a);c&&f.set(b,(f.get(b)||0)+c)}return[...f].map(([a,b])=>({graphId:a,totalCalls:b})).sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByGraph error:",a),[]}}async getAICallsByAgent(a,b,c,d,e){try{let f=await this.makeRequest(this.buildAgentModelBreakdownPayload(a,b,e)),h=this.extractSeries(f,"agentModelCalls"),i=new Map;for(let a of h){let b=a.labels?.[g.SH.AI_TELEMETRY_FUNCTION_ID]||g.PC,e=a.labels?.[g.SH.GRAPH_ID]||g.PC,f=a.labels?.[g.SH.AI_MODEL_ID]||g.PC,h=k(a);if(!h||c&&"all"!==c&&e!==c||d&&"all"!==d&&f!==d)continue;let j=`${b}::${e}::${f}`,l=i.get(j)||{agentId:b,graphId:e,modelId:f,totalCalls:0};l.totalCalls+=h,i.set(j,l)}return[...i.values()].sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByAgent error:",a),[]}}async getAICallsByModel(a,b,c,d){try{let e=await this.makeRequest(this.buildModelBreakdownPayload(a,b,d)),f=this.extractSeries(e,"modelCalls"),h=new Map;for(let a of f){let b=a.labels?.[g.SH.AI_MODEL_ID]||g.PC,d=a.labels?.[g.SH.GRAPH_ID]||g.PC,e=k(a);e&&(c&&"all"!==c&&d!==c||h.set(b,(h.get(b)||0)+e))}return[...h].map(([a,b])=>({modelId:a,totalCalls:b})).sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByModel error:",a),[]}}async getUniqueGraphs(a,b,c){try{let d=await this.makeRequest(this.buildUniqueGraphsPayload(a,b,c)),e=this.extractSeries(d,"uniqueGraphs").map(a=>a.labels?.[g.SH.GRAPH_ID]).filter(a=>!!a&&a!==g.PC).sort();return[...new Set(e)]}catch(a){return console.error("getUniqueGraphs error:",a),[]}}async getUniqueModels(a,b,c){try{let d=await this.makeRequest(this.buildUniqueModelsPayload(a,b,c)),e=this.extractSeries(d,"uniqueModels").map(a=>a.labels?.[g.SH.AI_MODEL_ID]).filter(a=>!!a&&a!==g.PC).sort();return[...new Set(e)]}catch(a){return console.error("getUniqueModels error:",a),[]}}async getConversationsPerDay(a,b,c,d){try{let e=await this.makeRequest(this.buildConversationMetadataPayload(a,b,c,d)),f=this.extractSeries(e,"conversationMetadata").length?this.extractSeries(await this.makeRequest(this.buildConversationActivityPayload(a,b,c,d)),"lastActivity"):[],g=new Map;for(let a of f){let b=h(l(a));if(!b)continue;let c=new Date(b),d=`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`;g.set(d,(g.get(d)||0)+1)}return m(a,b).map(a=>({date:a,count:g.get(a)||0}))}catch(c){return console.error("getConversationsPerDay error:",c),m(a,b).map(a=>({date:a,count:0}))}}async getAggregateStats(a,b,c,d,e){try{let f=await this.makeRequest(this.buildCombinedPayload(a,b,c,d,e)),h=this.extractSeries(f,"tools"),i=this.extractSeries(f,"transfers"),j=this.extractSeries(f,"delegations"),k=this.extractSeries(f,"aiCalls"),l=this.extractSeries(f,"conversationMetadata"),m=this.extractSeries(f,"contextErrors"),n=this.extractSeries(f,"agentGenerationErrors"),o=new Map;for(let a of l){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&o.set(b,{tenantId:a.labels?.[g.SH.TENANT_ID]??g.PC,graphId:a.labels?.[g.SH.GRAPH_ID]??g.PC,graphName:a.labels?.[g.SH.GRAPH_NAME]??g.PC})}let p=this.toConversationStats(h,i,j,k,o,m,n,new Map);return(c?.spanName||c?.attributes?.length)&&(p=await this.applySpanFilters(p,a,b,c,d)),{totalToolCalls:p.reduce((a,b)=>a+b.totalToolCalls,0),totalTransfers:p.reduce((a,b)=>a+b.totalTransfers,0),totalDelegations:p.reduce((a,b)=>a+b.totalDelegations,0),totalConversations:p.length,totalAICalls:p.reduce((a,b)=>a+b.totalAICalls,0)}}catch(a){return console.error("getAggregateStats error:",a),{totalToolCalls:0,totalTransfers:0,totalDelegations:0,totalConversations:0,totalAICalls:0}}}async getAvailableSpanNames(a,b,c,d){try{let e=[{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EXISTS,value:""}];c&&"all"!==c&&e.push({key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}),d&&e.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d});let f={start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.LIST,builderQueries:{spanNames:{dataSource:g.YL.TRACES,queryName:g.XQ.SPAN_NAMES,aggregateOperator:g.qf.NOOP,aggregateAttribute:{},filters:{op:g.we.AND,items:e},selectColumns:[{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.SPAN_NAMES,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,stepInterval:g.yZ.STEP_INTERVAL,limit:g.yZ.LIMIT_1000,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],groupBy:g.yZ.EMPTY_GROUP_BY,offset:g.yZ.OFFSET}}},dataSource:g.YL.TRACES,projectId:d},h=await this.makeRequest(f),i=h?.data?.result?.find(a=>a?.queryName==="spanNames")?.list??[],j=new Set;for(let a of i){let b=a?.data?.name??a?.name;b&&j.add(b)}return[...j].sort()}catch(a){return console.error("getAvailableSpanNames error:",a),[]}}toConversationStats(a,b,c,d,e,f,h,i){let j=new Map,l=a=>{let b=j.get(a);if(b)return b;let c={totalToolCalls:0,toolsUsed:new Map,transfers:new Map,totalTransfers:0,delegations:new Map,totalDelegations:0,totalAICalls:0,totalErrors:0};return j.set(a,c),c};for(let b of a){let a=b.labels?.[g.SH.CONVERSATION_ID];if(!a)continue;let c=b.labels?.[g.SH.AI_TOOL_CALL_NAME];if(!c)continue;let d=k(b);if(!d)continue;let e=b.labels?.[g.SH.MCP_TOOL_DESCRIPTION]||"",f=l(a);f.totalToolCalls+=d;let h=f.toolsUsed.get(c)||{name:c,calls:0,description:e};h.calls+=d,f.toolsUsed.set(c,h)}for(let a of b){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=a.labels?.[g.SH.TRANSFER_FROM_AGENT_ID],d=a.labels?.[g.SH.TRANSFER_TO_AGENT_ID],e=k(a);if(!c||!d||!e)continue;let f=l(b);f.totalTransfers+=e;let h=`${c}→${d}`,i=f.transfers.get(h)||{from:c,to:d,count:0};i.count+=e,f.transfers.set(h,i)}for(let a of c){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=a.labels?.[g.SH.DELEGATION_FROM_AGENT_ID],d=a.labels?.[g.SH.DELEGATION_TO_AGENT_ID],e=k(a);if(!c||!d||!e)continue;let f=l(b);f.totalDelegations+=e;let h=`${c}→${d}`,i=f.delegations.get(h)||{from:c,to:d,count:0};i.count+=e,f.delegations.set(h,i)}for(let a of d){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=k(a);c&&(l(b).totalAICalls+=c)}for(let a of[...f,...h]){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=k(a);c&&(l(b).totalErrors+=c)}let m=[];for(let a of new Set([...j.keys(),...e.keys()])){let b=j.get(a)||l(a),c=e.get(a)||{tenantId:g.PC,graphId:g.PC,graphName:g.PC};m.push({conversationId:a,tenantId:c.tenantId,graphId:c.graphId,graphName:c.graphName||"",totalToolCalls:b.totalToolCalls,toolsUsed:[...b.toolsUsed.values()],transfers:[...b.transfers.values()],totalTransfers:b.totalTransfers,delegations:[...b.delegations.values()],totalDelegations:b.totalDelegations,totalAICalls:b.totalAICalls,totalErrors:b.totalErrors,hasErrors:b.totalErrors>0,firstUserMessage:i.get(a)?.content,startTime:i.get(a)?.timestamp})}return m}async applySpanFilters(a,b,c,d,e){try{let f=await this.makeRequest(this.buildFilteredConversationsPayload(b,c,d,e)),h=this.extractSeries(f,"filteredConversations"),i=new Set(h.map(a=>a.labels?.[g.SH.CONVERSATION_ID]).filter(Boolean));return a.filter(a=>i.has(a.conversationId))}catch(b){return console.error("applySpanFilters error:",b),a}}buildAgentModelBreakdownPayload(a,b,c){return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{agentModelCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.AGENT_MODEL_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]]},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_TELEMETRY_FUNCTION_ID,...g.A3.STRING_TAG_COLUMN},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.AGENT_MODEL_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:c}}buildModelBreakdownPayload(a,b,c){return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{modelCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.MODEL_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]]},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG}],expression:g.XQ.MODEL_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_ZERO}}},dataSource:g.YL.TRACES,projectId:c}}buildConversationActivityPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c&&"all"!==c?[{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[],...d?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{lastActivity:{dataSource:g.YL.TRACES,queryName:g.XQ.LAST_ACTIVITY,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.LAST_ACTIVITY,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildConversationMetadataPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c&&"all"!==c?[{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[],...d?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{conversationMetadata:{dataSource:g.YL.TRACES,queryName:g.XQ.CONVERSATION_METADATA,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_NAME,...g.A3.STRING_TAG}],expression:g.XQ.CONVERSATION_METADATA,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildFilteredConversationsPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}];for(let a of(c.spanName&&e.push({key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:c.spanName}),c.attributes??[])){let b=a.operator??g.we.EQUALS,c=j(a.value),d="string";if("boolean"==typeof c?d="bool":"number"==typeof c&&(d=Number.isInteger(c)?"int64":"float64"),b===g.we.EXISTS||b===g.we.NOT_EXISTS){e.push({key:{key:a.key,...g.A3.STRING_TAG},op:b,value:""});continue}if(b!==g.we.LIKE&&b!==g.we.NOT_LIKE||"string"!=typeof c||c.includes("%")||(c=`%${c}%`),("int64"===d||"float64"===d)&&b===g.we.EQUALS){let b="int64"===d?g.A3.INT64_TAG:g.A3.FLOAT64_TAG;e.push({key:{key:a.key,...b},op:g.we.GREATER_THAN_OR_EQUAL,value:c}),e.push({key:{key:a.key,...b},op:g.we.LESS_THAN_OR_EQUAL,value:c})}else{let f="string"===d?g.A3.STRING_TAG:"int64"===d?g.A3.INT64_TAG:"float64"===d?g.A3.FLOAT64_TAG:g.A3.BOOL_TAG;e.push({key:{key:a.key,...f},op:b,value:c})}}return d&&e.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}),{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{filteredConversations:{dataSource:g.YL.TRACES,queryName:g.XQ.FILTERED_CONVERSATIONS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.FILTERED_CONVERSATIONS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildCombinedPayload(a,b,c,d,e){let f=a=>{let b=a;return d&&(b=[...b,{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]),e&&(b=[...b,{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:e}]),b};return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{tools:{dataSource:g.YL.TRACES,queryName:g.XQ.TOOLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.MCP}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_TOOL_CALL_NAME,...g.A3.STRING_TAG}],expression:g.XQ.TOOLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},transfers:{dataSource:g.YL.TRACES,queryName:g.XQ.TRANSFERS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.TRANSFER},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TRANSFER_FROM_AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.TRANSFER_TO_AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.TRANSFERS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},delegations:{dataSource:g.YL.TRACES,queryName:g.XQ.DELEGATIONS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.DELEGATION},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.DELEGATION_FROM_AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.DELEGATION_TO_AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.DELEGATIONS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},conversationMetadata:{dataSource:g.YL.TRACES,queryName:g.XQ.CONVERSATION_METADATA,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_NAME,...g.A3.STRING_TAG}],expression:g.XQ.CONVERSATION_METADATA,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},aiCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.AI_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:"ai.telemetry.functionId",...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.AI_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},lastActivity:{dataSource:g.YL.TRACES,queryName:g.XQ.LAST_ACTIVITY,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.LAST_ACTIVITY,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},contextErrors:{dataSource:g.YL.TRACES,queryName:g.XQ.CONTEXT_ERRORS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.CONTEXT_HANDLE},{key:{key:g.SH.HAS_ERROR,...g.A3.BOOL_TAG_COLUMN},op:g.we.EQUALS,value:!0},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.CONTEXT_ERRORS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},agentGenerationErrors:{dataSource:g.YL.TRACES,queryName:g.XQ.AGENT_GENERATION_ERRORS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AGENT_GENERATION},{key:{key:g.SH.HAS_ERROR,...g.A3.BOOL_TAG_COLUMN},op:g.we.EQUALS,value:!0},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.AGENT_GENERATION_ERRORS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},userMessages:{dataSource:g.YL.TRACES,queryName:g.XQ.USER_MESSAGES,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG}],expression:g.XQ.USER_MESSAGES,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildUniqueGraphsPayload(a,b,c){let d=[{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.NOT_EQUALS,value:g.PC},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{uniqueGraphs:{dataSource:g.YL.TRACES,queryName:g.XQ.UNIQUE_GRAPHS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:d},groupBy:[{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG}],expression:g.XQ.UNIQUE_GRAPHS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.GRAPH_ID,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:c}}buildUniqueModelsPayload(a,b,c){let d=[{key:{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EXISTS,value:""},{key:{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.NOT_EQUALS,value:g.PC},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{uniqueModels:{dataSource:g.YL.TRACES,queryName:g.XQ.UNIQUE_MODELS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:d},groupBy:[{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.UNIQUE_MODELS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.AI_MODEL_ID,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:c}}}let o=null;function p(){return o??=new n}}};
@@ -1 +0,0 @@
1
- exports.id=5907,exports.ids=[5907],exports.modules={114:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"404f8ffb5ef9fdd301cc82babf0a01378217d63003":()=>d.bW,"602e6c49dbbc97b56fa126f4154f4d6700d282ac60":()=>d.Dv,"605ae172c174c0f2d8107c51a2b815fb40ba27a604":()=>d.qf,"608baacd19c8087099ab74abdbab098ccf16a6d8cb":()=>d.gL,"60c13eb69d50f1c4a533ae2820a677b4795efd7271":()=>p,"70347d7dcfddb4cd11f63e606877496466123f1fc4":()=>r,"7060c38cebe3bad559d6913b3740c812f7f36e6650":()=>d.Tg,"709d7337b5217ace46a4a440983014d2cf8e9c2646":()=>s,"70e0ff0d58e8806620fa1759ad578695c59c0d17f2":()=>q});var d=c(72025),e=c(29991);c(58415);var f=c(83248),g=c(8703),h=c(45796),i=c(33451);async function j(a,b){(0,h.M2)(a),(0,h.nt)(b);let c=await (0,g.J)(`tenants/${a}/projects/${b}/data-components`);return{...c,data:c.data.map(a=>({...a,props:a.props||{}}))}}async function k(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c}`);return{...d.data,props:d.data.props||{}}}async function l(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components`,{method:"POST",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function m(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"6066208c618425c1146fcc3d27f305c001488e46c3",null),(0,e.A)(k,"706d070c1439657ee4395bbec972a789bd3ee54b86",null),(0,e.A)(l,"70ab3f30b458e5da601979be4ed7d4d5cb3e997a55",null),(0,e.A)(m,"700149510e595fd23844a46a26c07c118a9f05004b",null),(0,e.A)(n,"70205f10ee33ce78e99875b0ed3bee09b3117a602b",null);var o=c(36608);async function p(a,b){try{let c=await j(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function q(a,b,c){try{let d=await l(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/components`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function r(a,b,c){try{let d=await m(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/components`),(0,f.revalidatePath)(`/${a}/projects/${b}/components/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function s(a,b,c){try{return await n(a,b,c),(0,f.revalidatePath)(`/${a}/projects/${b}/components`),(0,f.revalidatePath)(`/${a}/projects/${b}/components/${c}`),{success:!0}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}(0,i.D)([p,q,r,s]),(0,e.A)(p,"60c13eb69d50f1c4a533ae2820a677b4795efd7271",null),(0,e.A)(q,"70e0ff0d58e8806620fa1759ad578695c59c0d17f2",null),(0,e.A)(r,"70347d7dcfddb4cd11f63e606877496466123f1fc4",null),(0,e.A)(s,"709d7337b5217ace46a4a440983014d2cf8e9c2646",null)},437:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(89892).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},24164:(a,b,c)=>{"use strict";c.d(b,{DataComponentForm:()=>x});var d=c(59111),e=c(6614),f=c(485),g=c(75823),h=c(68156),i=c(17130),j=c(16426),k=c(56019),l=c(2856),m=c(93622),n=c(35283),o=c(90147);let p=(0,o.createServerReference)("70347d7dcfddb4cd11f63e606877496466123f1fc4",o.callServer,void 0,o.findSourceMapURL,"updateDataComponentAction"),q=(0,o.createServerReference)("70e0ff0d58e8806620fa1759ad578695c59c0d17f2",o.callServer,void 0,o.findSourceMapURL,"createDataComponentAction");var r=c(42723);let s={id:"",name:"",description:"",props:""};var t=c(34576),u=c(80974),v=c(62503);let w=t.object({id:v.f,name:t.string().min(1,"Name is required."),description:t.string().min(1,"Description is required."),props:t.string().min(1,"Props schema is required.").transform((a,b)=>{try{let c=JSON.parse(a),d=(0,u._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:t.ZodIssueCode.custom,message:a}),t.NEVER}return c}catch(a){return b.addIssue({code:t.ZodIssueCode.custom,message:(0,u.SR)(a)}),t.NEVER}}).optional()});function x({tenantId:a,projectId:b,id:c,initialData:o}){let t=(0,g.mN)({resolver:(0,e.u)(w),defaultValues:(a=>{if(!a)return s;let b={...a};return b.props&&(b.props=(0,r.S_)(b.props)),b})(o)}),{isSubmitting:u}=t.formState,v=(0,f.useRouter)();(0,n.S)({form:t,nameField:"name",idField:"id",isEditing:!!c});let x=async d=>{try{let e={...d};if(c){let c=await p(a,b,e);if(!c.success)return void h.oR.error(c.error||"Failed to update component");h.oR.success("Component updated")}else{let c=await q(a,b,e);if(!c.success)return void h.oR.error(c.error||"Failed to create component");h.oR.success("Component created"),v.push(`/${a}/projects/${b}/components`)}}catch(b){console.error("Error submitting component:",b);let a=b instanceof Error?b.message:"An unexpected error occurred";h.oR.error(a)}};return(0,d.jsx)(m.lV,{...t,children:(0,d.jsxs)("form",{onSubmit:t.handleSubmit(x),className:"space-y-8",children:[(0,d.jsx)(i.a,{control:t.control,name:"name",label:"Name",placeholder:"ListOrders",description:"This name is used to identify the component in chat widget integration. Example: components: { ListOrders: MyListOrdersComponent }",isRequired:!0}),(0,d.jsx)(i.a,{control:t.control,name:"id",label:"Id",placeholder:"my-data-component",disabled:!!c,description:c?"":"Choose a unique identifier for this component. Using an existing id will replace that component.",isRequired:!0}),(0,d.jsx)(j.K,{control:t.control,name:"description",label:"Description",placeholder:"Display a list of user orders with interactive options",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(k.S,{control:t.control,name:"props",label:"Props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),(0,d.jsx)(l.$,{type:"submit",disabled:u,children:"Save"})]})})}},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},39878:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(59111),e=c(2856),f=c(80974),g=c(42723),h=c(67466);function i(a){return(0,d.jsxs)("div",{"data-slot":"json-editor",className:`space-y-3 relative overflow-hidden p-1 ${a.className||""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 absolute top-3 right-3 z-10",children:[!a.value?.trim()&&(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=(0,f.Qj)();a.onChange(b)},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",children:"Template"}),(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=a.value;if(b?.trim()){let c=(0,g.IB)(b);a.onChange(c)}},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",disabled:!a.value?.trim(),children:"Format"})]}),(0,d.jsx)(h.i,{value:a.value||"",onChange:a.onChange,placeholder:a.placeholder,disabled:a.disabled,readOnly:a.readOnly})]})}},41325:(a,b,c)=>{Promise.resolve().then(c.bind(c,24164)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},45622:()=>{},53261:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/components/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/components/error.tsx","default")},56019:(a,b,c)=>{"use strict";c.d(b,{S:()=>g});var d=c(59111),e=c(71771),f=c(39878);function g({control:a,name:b,label:c="JSON Schema",placeholder:g,disabled:h,description:i,readOnly:j,isRequired:k=!1}){return(0,d.jsx)(e.u,{control:a,name:b,label:c,description:i,isRequired:k,children:a=>(0,d.jsx)(f.$,{placeholder:g,...a,onChange:a.onChange,readOnly:j,disabled:h})})}},62503:(a,b,c)=>{"use strict";c.d(b,{f:()=>d});let d=c(34576).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},71708:(a,b,c)=>{Promise.resolve().then(c.bind(c,81331))},77709:(a,b,c)=>{Promise.resolve().then(c.bind(c,98261)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},80974:(a,b,c)=>{"use strict";c.d(b,{Qj:()=>k,SR:()=>l,_O:()=>j});var d=c(7352),e=c(43381);let f=d.ZU.Object({type:d.ZU.Union([d.ZU.Literal("string"),d.ZU.Literal("number"),d.ZU.Literal("integer"),d.ZU.Literal("boolean"),d.ZU.Literal("array"),d.ZU.Literal("object"),d.ZU.Literal("null")]),description:d.ZU.String({minLength:1}),format:d.ZU.Optional(d.ZU.String()),pattern:d.ZU.Optional(d.ZU.String()),minimum:d.ZU.Optional(d.ZU.Number()),maximum:d.ZU.Optional(d.ZU.Number()),minLength:d.ZU.Optional(d.ZU.Number()),maxLength:d.ZU.Optional(d.ZU.Number()),items:d.ZU.Optional(d.ZU.Any()),properties:d.ZU.Optional(d.ZU.Any()),enum:d.ZU.Optional(d.ZU.Array(d.ZU.Any())),const:d.ZU.Optional(d.ZU.Any()),default:d.ZU.Optional(d.ZU.Any())}),g=d.ZU.Object({type:d.ZU.Literal("object"),properties:d.ZU.Record(d.ZU.String(),f),required:d.ZU.Array(d.ZU.String(),{minItems:1}),additionalProperties:d.ZU.Optional(d.ZU.Boolean()),description:d.ZU.Optional(d.ZU.String())}),h=e.gv.Compile(f),i=e.gv.Compile(g);function j(a){let b=[],{parsed:c,errors:d}=function(a){let b=[],c=null;if(!a?.trim())return{parsed:null,errors:b};try{c=JSON.parse(a)}catch(a){b.push({path:"root",message:a instanceof Error?a.message:"Invalid JSON syntax",type:"syntax"})}return{parsed:c,errors:b}}(a);if(d.length>0)return{isValid:!1,errors:d,warnings:b};if(!c)return{isValid:!0,errors:[],warnings:["Empty schema provided"]};let e=[...function(a){let b=[];return a&&"object"==typeof a?!i.Check(a)&&(a.type&&"object"===a.type||b.push({path:"type",message:'Schema must have type: "object" for LLM compatibility',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties||b.push({path:"properties",message:'Schema must have a "properties" object',type:"schema"}),a.required&&Array.isArray(a.required)||b.push({path:"required",message:'Schema must have a "required" array (can be empty)',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{h.Check(c)||[...h.Errors(c)].forEach(c=>{let d=c.message;"/description"===c.path?d='Each property must have a "description" for LLM compatibility':"/type"===c.path&&(d='Each property must have a valid "type"'),b.push({path:`properties.${a}${c.path}`,message:d,type:"/description"===c.path?"llm_requirement":"schema"})})})):b.push({path:"root",message:"Schema must be an object",type:"schema"}),b}(c),...function(a){let b=[];return a&&"object"==typeof a&&(a.required&&Array.isArray(a.required)&&a.properties&&a.required.forEach(c=>{a.properties[c]||b.push({path:"required",message:`Required property "${c}" must exist in properties`,type:"schema"})}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{c.description&&"string"==typeof c.description&&0!==c.description.trim().length||b.push({path:`properties.${a}.description`,message:"Each property must have a non-empty description for LLM compatibility",type:"llm_requirement"})})),b}(c)];return{isValid:0===e.length,errors:e,warnings:b}}function k(){return JSON.stringify({type:"object",properties:{example_property:{type:"string",description:"Description of what this property represents"}},required:["example_property"]},null,2)}function l(a){if(a instanceof SyntaxError){let b=a.message.toLowerCase();return b.includes("unexpected end of json input")?"Incomplete JSON - missing closing brackets or quotes":b.includes("unexpected token")?"Invalid character in JSON - check for missing commas, quotes, or brackets":b.includes("expected property name")||b.includes("expected ':' after property name")?"Property names must be in double quotes":b.includes("duplicate keys")?"Duplicate property names are not allowed":"Invalid JSON syntax - check structure and formatting"}return"Unable to parse JSON"}},81331:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},85276:(a,b,c)=>{Promise.resolve().then(c.bind(c,53261))},92107:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(82058);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Components"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Components",description:i.yr}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-skeleton-${b}`))})]})})}},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))},98261:(a,b,c)=>{"use strict";c.d(b,{DataComponentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call DataComponentForm() from the server but DataComponentForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/data-components/form/data-component-form.tsx","DataComponentForm")}};
@@ -1 +0,0 @@
1
- exports.id=5983,exports.ids=[5983],exports.modules={437:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(89892).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},3339:(a,b,c)=>{Promise.resolve().then(c.bind(c,7838))},7838:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifacts/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifacts/error.tsx","default")},8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},39878:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(59111),e=c(2856),f=c(80974),g=c(42723),h=c(67466);function i(a){return(0,d.jsxs)("div",{"data-slot":"json-editor",className:`space-y-3 relative overflow-hidden p-1 ${a.className||""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 absolute top-3 right-3 z-10",children:[!a.value?.trim()&&(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=(0,f.Qj)();a.onChange(b)},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",children:"Template"}),(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=a.value;if(b?.trim()){let c=(0,g.IB)(b);a.onChange(c)}},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",disabled:!a.value?.trim(),children:"Format"})]}),(0,d.jsx)(h.i,{value:a.value||"",onChange:a.onChange,placeholder:a.placeholder,disabled:a.disabled,readOnly:a.readOnly})]})}},44733:(a,b,c)=>{"use strict";c.d(b,{ArtifactComponentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call ArtifactComponentForm() from the server but ArtifactComponentForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/artifact-components/form/artifact-component-form.tsx","ArtifactComponentForm")},45622:()=>{},56019:(a,b,c)=>{"use strict";c.d(b,{S:()=>g});var d=c(59111),e=c(71771),f=c(39878);function g({control:a,name:b,label:c="JSON Schema",placeholder:g,disabled:h,description:i,readOnly:j,isRequired:k=!1}){return(0,d.jsx)(e.u,{control:a,name:b,label:c,description:i,isRequired:k,children:a=>(0,d.jsx)(f.$,{placeholder:g,...a,onChange:a.onChange,readOnly:j,disabled:h})})}},59567:(a,b,c)=>{Promise.resolve().then(c.bind(c,44733)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},62503:(a,b,c)=>{"use strict";c.d(b,{f:()=>d});let d=c(34576).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},67815:(a,b,c)=>{Promise.resolve().then(c.bind(c,81884)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},79363:(a,b,c)=>{Promise.resolve().then(c.bind(c,82408))},80974:(a,b,c)=>{"use strict";c.d(b,{Qj:()=>k,SR:()=>l,_O:()=>j});var d=c(7352),e=c(43381);let f=d.ZU.Object({type:d.ZU.Union([d.ZU.Literal("string"),d.ZU.Literal("number"),d.ZU.Literal("integer"),d.ZU.Literal("boolean"),d.ZU.Literal("array"),d.ZU.Literal("object"),d.ZU.Literal("null")]),description:d.ZU.String({minLength:1}),format:d.ZU.Optional(d.ZU.String()),pattern:d.ZU.Optional(d.ZU.String()),minimum:d.ZU.Optional(d.ZU.Number()),maximum:d.ZU.Optional(d.ZU.Number()),minLength:d.ZU.Optional(d.ZU.Number()),maxLength:d.ZU.Optional(d.ZU.Number()),items:d.ZU.Optional(d.ZU.Any()),properties:d.ZU.Optional(d.ZU.Any()),enum:d.ZU.Optional(d.ZU.Array(d.ZU.Any())),const:d.ZU.Optional(d.ZU.Any()),default:d.ZU.Optional(d.ZU.Any())}),g=d.ZU.Object({type:d.ZU.Literal("object"),properties:d.ZU.Record(d.ZU.String(),f),required:d.ZU.Array(d.ZU.String(),{minItems:1}),additionalProperties:d.ZU.Optional(d.ZU.Boolean()),description:d.ZU.Optional(d.ZU.String())}),h=e.gv.Compile(f),i=e.gv.Compile(g);function j(a){let b=[],{parsed:c,errors:d}=function(a){let b=[],c=null;if(!a?.trim())return{parsed:null,errors:b};try{c=JSON.parse(a)}catch(a){b.push({path:"root",message:a instanceof Error?a.message:"Invalid JSON syntax",type:"syntax"})}return{parsed:c,errors:b}}(a);if(d.length>0)return{isValid:!1,errors:d,warnings:b};if(!c)return{isValid:!0,errors:[],warnings:["Empty schema provided"]};let e=[...function(a){let b=[];return a&&"object"==typeof a?!i.Check(a)&&(a.type&&"object"===a.type||b.push({path:"type",message:'Schema must have type: "object" for LLM compatibility',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties||b.push({path:"properties",message:'Schema must have a "properties" object',type:"schema"}),a.required&&Array.isArray(a.required)||b.push({path:"required",message:'Schema must have a "required" array (can be empty)',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{h.Check(c)||[...h.Errors(c)].forEach(c=>{let d=c.message;"/description"===c.path?d='Each property must have a "description" for LLM compatibility':"/type"===c.path&&(d='Each property must have a valid "type"'),b.push({path:`properties.${a}${c.path}`,message:d,type:"/description"===c.path?"llm_requirement":"schema"})})})):b.push({path:"root",message:"Schema must be an object",type:"schema"}),b}(c),...function(a){let b=[];return a&&"object"==typeof a&&(a.required&&Array.isArray(a.required)&&a.properties&&a.required.forEach(c=>{a.properties[c]||b.push({path:"required",message:`Required property "${c}" must exist in properties`,type:"schema"})}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{c.description&&"string"==typeof c.description&&0!==c.description.trim().length||b.push({path:`properties.${a}.description`,message:"Each property must have a non-empty description for LLM compatibility",type:"llm_requirement"})})),b}(c)];return{isValid:0===e.length,errors:e,warnings:b}}function k(){return JSON.stringify({type:"object",properties:{example_property:{type:"string",description:"Description of what this property represents"}},required:["example_property"]},null,2)}function l(a){if(a instanceof SyntaxError){let b=a.message.toLowerCase();return b.includes("unexpected end of json input")?"Incomplete JSON - missing closing brackets or quotes":b.includes("unexpected token")?"Invalid character in JSON - check for missing commas, quotes, or brackets":b.includes("expected property name")||b.includes("expected ':' after property name")?"Property names must be in double quotes":b.includes("duplicate keys")?"Duplicate property names are not allowed":"Invalid JSON syntax - check structure and formatting"}return"Unable to parse JSON"}},81884:(a,b,c)=>{"use strict";c.d(b,{ArtifactComponentForm:()=>y});var d=c(59111),e=c(6614),f=c(485),g=c(75823),h=c(68156),i=c(17130),j=c(16426),k=c(56019),l=c(2856),m=c(93622),n=c(35283),o=c(90147);let p=(0,o.createServerReference)("70b7bbad120534978a8635c7f4efcb941451b52b54",o.callServer,void 0,o.findSourceMapURL,"updateArtifactComponentAction"),q=(0,o.createServerReference)("709f2126a67fb20566eaabd0c58f720556d0ab8202",o.callServer,void 0,o.findSourceMapURL,"createArtifactComponentAction");var r=c(42723);let s={id:"",name:"",description:"",props:void 0};var t=c(34576),u=c(80974),v=c(62503);let w=t.object({id:v.f,name:t.string().min(1,"Name is required."),description:t.string().min(1,"Description is required."),props:t.union([t.string(),t.null(),t.undefined()]).transform((a,b)=>{if(a&&""!==a&&null!==a)try{let c=JSON.parse(a),d=(0,u._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:t.ZodIssueCode.custom,message:a}),t.NEVER}return c}catch(a){return b.addIssue({code:t.ZodIssueCode.custom,message:(0,u.SR)(a)}),t.NEVER}}).optional()}),x=a=>{if(!a)return s;let b={...a};return b.props&&""!==b.props&&null!==b.props?b.props=(0,r.S_)(b.props):b.props=void 0,b};function y({id:a,tenantId:b,projectId:c,initialData:o}){let r=(0,g.mN)({resolver:(0,e.u)(w),defaultValues:x(o)}),{isSubmitting:s}=r.formState,t=(0,f.useRouter)();(0,n.S)({form:r,nameField:"name",idField:"id",isEditing:!!a});let u=async d=>{try{let e={...x(d)};if(void 0===e.props&&(e.props=null),a){let a=await p(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to update artifact.");h.oR.success("Artifact updated.")}else{let a=await q(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to create artifact");h.oR.success("Artifact created."),t.push(`/${b}/projects/${c}/artifacts`)}}catch(b){console.error("Error submitting artifact:",b);let a=b instanceof Error?b.message:"An unexpected error occurred.";h.oR.error(a)}};return(0,d.jsx)(m.lV,{...r,children:(0,d.jsxs)("form",{onSubmit:r.handleSubmit(u),className:"space-y-8",children:[(0,d.jsx)(i.a,{control:r.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,d.jsx)(i.a,{control:r.control,name:"id",label:"Id",placeholder:"my-artifact",disabled:!!a,isRequired:!0,description:a?"":"Choose a unique identifier for this artifact. Using an existing id will replace that artifact."}),(0,d.jsx)(j.K,{control:r.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(k.S,{control:r.control,name:"props",label:"Props (JSON schema with inPreview indicators)",placeholder:"Enter a valid JSON Schema with inPreview flags, or leave empty to save entire tool result...",description:"Optional: Define specific fields with inPreview flags, or leave empty to capture the complete tool response"}),(0,d.jsx)(l.$,{type:"submit",disabled:s,children:"Save"})]})})}},82408:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},87783:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"404f8ffb5ef9fdd301cc82babf0a01378217d63003":()=>d.bW,"602e6c49dbbc97b56fa126f4154f4d6700d282ac60":()=>d.Dv,"604367946ac698f578c27e7daa96a77dbc47c3e2ec":()=>p,"605ae172c174c0f2d8107c51a2b815fb40ba27a604":()=>d.qf,"608baacd19c8087099ab74abdbab098ccf16a6d8cb":()=>d.gL,"70118245c353ea84f979e28ae82a7d18a66c497288":()=>s,"7060c38cebe3bad559d6913b3740c812f7f36e6650":()=>d.Tg,"709f2126a67fb20566eaabd0c58f720556d0ab8202":()=>q,"70b7bbad120534978a8635c7f4efcb941451b52b54":()=>r});var d=c(72025),e=c(29991);c(58415);var f=c(83248),g=c(8703),h=c(45796),i=c(33451);async function j(a,b){return(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`)}async function k(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`)).data}async function l(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`,{method:"POST",body:JSON.stringify(c)})).data}async function m(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)})).data}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"604a8e24cfdebcdc9ae08106dad9a6b8aed8d14dc2",null),(0,e.A)(k,"705e91edae403a70d370fbd05f686d2de6f377d10b",null),(0,e.A)(l,"70acc288d3eedd32814c352228d5e6cbf4d070b528",null),(0,e.A)(m,"705e12a9ff0f129ed2e578f34bee4237c46d06364a",null),(0,e.A)(n,"702a87c8644ec5d980f5e4bd46872b805de923ba1f",null);var o=c(36608);async function p(a,b){try{let c=await j(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function q(a,b,c){try{let d=await l(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function r(a,b,c){try{let d=await m(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function s(a,b,c){try{return await n(a,b,c),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts/${c}`),{success:!0}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}(0,i.D)([p,q,r,s]),(0,e.A)(p,"604367946ac698f578c27e7daa96a77dbc47c3e2ec",null),(0,e.A)(q,"709f2126a67fb20566eaabd0c58f720556d0ab8202",null),(0,e.A)(r,"70b7bbad120534978a8635c7f4efcb941451b52b54",null),(0,e.A)(s,"70118245c353ea84f979e28ae82a7d18a66c497288",null)},92478:()=>{},93056:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(82058);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Artifacts"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Artifacts",description:i.lh}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-artifact-${b}`))})]})})}},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))}};