@inkeep/agents-manage-ui 0.19.5 → 0.19.7

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 (149) 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 +124 -124
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -6
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +13 -13
  6. package/.next/standalone/agents-manage-ui/.next/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]/agents/[agentId]/page.js +2 -2
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.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 +6 -6
  84. package/.next/standalone/agents-manage-ui/.next/server/chunks/2067.js +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/2083.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/2782.js +1 -0
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/2783.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/5272.js +1 -0
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/5889.js +1 -0
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/6641.js +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/chunks/7457.js +2 -2
  93. package/.next/standalone/agents-manage-ui/.next/server/chunks/7504.js +4 -4
  94. package/.next/standalone/agents-manage-ui/.next/server/chunks/{7179.js → 8113.js} +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/chunks/{5161.js → 9030.js} +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/chunks/9590.js +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/static/chunks/49858-9d58688d4acdd420.js +1 -0
  102. package/.next/standalone/agents-manage-ui/.next/static/chunks/{6421-cb6a00515df54821.js → 6719-bb09f191938cb7ac.js} +1 -1
  103. package/.next/standalone/agents-manage-ui/.next/static/chunks/{71558-ff8bd92c9f16102a.js → 71558-8c90050e5b46bdf0.js} +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-ffb071960bb6a52d.js +1 -0
  105. package/.next/standalone/agents-manage-ui/.next/static/chunks/{92775-e7b3d0637300a752.js → 92775-6154f3e2dbf25027.js} +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-b960036bcc85d3b9.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-b6820d15c91f654e.js +1 -0
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-013084adf0c84769.js → page-ba7bbb5f394d08c6.js} +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-013084adf0c84769.js → page-ba7bbb5f394d08c6.js} +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-70b2c0bde95fb111.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-7cfcfb3a80bf221e.js +1 -0
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-7cfcfb3a80bf221e.js +1 -0
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-a3a9abf70d9708cb.js +1 -0
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-410153ca99558d01.js +1 -0
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-4dc5dfe14604ed79.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-e68d844d3b805e0c.js +1 -0
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-99f344b9d5a5fa96.js → page-392b54a9fcca9c82.js} +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-0ed47fceaff02b66.js → page-081794f241d22954.js} +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-deaf66cb43b600bb.js → page-2e21df93ae170354.js} +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-167b090dfd540351.js → page-f60a2b27bb64a938.js} +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-6cc996c59acc014b.js +1 -0
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-9ff5161ce114bde5.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{layout-26668fcb6b5d4aa3.js → layout-599c4be2f5e54c71.js} +1 -1
  124. package/.next/standalone/agents-manage-ui/package.json +1 -1
  125. package/.next/standalone/packages/agents-core/package.json +1 -1
  126. package/package.json +4 -4
  127. package/src/app/api/signoz/conversations/[conversationId]/route.ts +116 -20
  128. package/src/components/traces/timeline/render-panel-content.tsx +36 -16
  129. package/src/components/traces/timeline/timeline-item.tsx +46 -13
  130. package/src/components/traces/timeline/timeline-wrapper.tsx +11 -2
  131. package/src/components/traces/timeline/types.ts +11 -6
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/2763.js +0 -1
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/5164.js +0 -1
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/6355.js +0 -1
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/49858-7df5d3e19fc00977.js +0 -1
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-dcb80d18a69e0eb9.js +0 -1
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-95c46094584aa3c3.js +0 -1
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-beebccdca5a32bec.js +0 -1
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-5e420340db7db8fd.js +0 -1
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-d4e7e4c89fda5656.js +0 -1
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-d4e7e4c89fda5656.js +0 -1
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-c5d14bd718503aa5.js +0 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5af431fda2d331ab.js +0 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-6a5dca20f1b92f16.js +0 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-565b009565f2c16b.js +0 -1
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-77d9931139aa8a9f.js +0 -1
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-cfb0f468a352af84.js +0 -1
  148. /package/.next/standalone/agents-manage-ui/.next/static/{L7k_o8pGWV27BP4i5LdVD → 2eCWRxylMQoerKDNqjgMo}/_buildManifest.js +0 -0
  149. /package/.next/standalone/agents-manage-ui/.next/static/{L7k_o8pGWV27BP4i5LdVD → 2eCWRxylMQoerKDNqjgMo}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-manage-ui",
3
- "version": "0.19.5",
3
+ "version": "0.19.7",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -85,9 +85,9 @@
85
85
  "use-stick-to-bottom": "^1.1.1",
86
86
  "zod": "^4.1.11",
87
87
  "zustand": "^5.0.7",
88
- "@inkeep/agents-core": "^0.19.5",
89
- "@inkeep/agents-manage-api": "^0.19.5",
90
- "@inkeep/agents-run-api": "^0.19.5"
88
+ "@inkeep/agents-core": "^0.19.7",
89
+ "@inkeep/agents-manage-api": "^0.19.7",
90
+ "@inkeep/agents-run-api": "^0.19.7"
91
91
  },
92
92
  "devDependencies": {
93
93
  "@vitest/web-worker": "3.1.4",
@@ -646,6 +646,69 @@ function buildConversationListPayload(
646
646
  ]
647
647
  ),
648
648
 
649
+ // AI streaming object
650
+ aiStreamingObject: listQuery(
651
+ QUERY_EXPRESSIONS.AI_STREAMING_OBJECT,
652
+ [
653
+ {
654
+ key: {
655
+ key: SPAN_KEYS.AI_OPERATION_ID,
656
+ ...QUERY_FIELD_CONFIGS.STRING_TAG_COLUMN,
657
+ },
658
+ op: OPERATORS.EQUALS,
659
+ value: AI_OPERATIONS.STREAM_OBJECT,
660
+ },
661
+ ],
662
+ [
663
+ {
664
+ key: SPAN_KEYS.SPAN_ID,
665
+ ...QUERY_FIELD_CONFIGS.STRING_TAG_COLUMN,
666
+ },
667
+ {
668
+ key: SPAN_KEYS.TRACE_ID,
669
+ ...QUERY_FIELD_CONFIGS.STRING_TAG_COLUMN,
670
+ },
671
+ {
672
+ key: SPAN_KEYS.TIMESTAMP,
673
+ ...QUERY_FIELD_CONFIGS.INT64_TAG_COLUMN,
674
+ },
675
+ {
676
+ key: SPAN_KEYS.HAS_ERROR,
677
+ ...QUERY_FIELD_CONFIGS.BOOL_TAG_COLUMN,
678
+ },
679
+ {
680
+ key: SPAN_KEYS.DURATION_NANO,
681
+ ...QUERY_FIELD_CONFIGS.FLOAT64_TAG_COLUMN,
682
+ },
683
+ { key: SPAN_KEYS.SUB_AGENT_ID, ...QUERY_FIELD_CONFIGS.STRING_TAG },
684
+ { key: SPAN_KEYS.SUB_AGENT_NAME, ...QUERY_FIELD_CONFIGS.STRING_TAG },
685
+ {
686
+ key: SPAN_KEYS.AI_RESPONSE_OBJECT,
687
+ ...QUERY_FIELD_CONFIGS.STRING_TAG,
688
+ },
689
+ {
690
+ key: SPAN_KEYS.AI_MODEL_ID,
691
+ ...QUERY_FIELD_CONFIGS.STRING_TAG,
692
+ },
693
+ {
694
+ key: SPAN_KEYS.AI_MODEL_PROVIDER,
695
+ ...QUERY_FIELD_CONFIGS.STRING_TAG,
696
+ },
697
+ {
698
+ key: SPAN_KEYS.AI_OPERATION_ID,
699
+ ...QUERY_FIELD_CONFIGS.STRING_TAG,
700
+ },
701
+ {
702
+ key: SPAN_KEYS.GEN_AI_USAGE_INPUT_TOKENS,
703
+ ...QUERY_FIELD_CONFIGS.INT64_TAG,
704
+ },
705
+ {
706
+ key: SPAN_KEYS.GEN_AI_USAGE_OUTPUT_TOKENS,
707
+ ...QUERY_FIELD_CONFIGS.INT64_TAG,
708
+ },
709
+ ]
710
+ ),
711
+
649
712
  // context fetchers
650
713
  contextFetchers: listQuery(
651
714
  QUERY_EXPRESSIONS.CONTEXT_FETCHERS,
@@ -745,7 +808,7 @@ function buildConversationListPayload(
745
808
  ...QUERY_FIELD_CONFIGS.STRING_TAG,
746
809
  },
747
810
  {
748
- key: SPAN_KEYS.ARTIFACT_AGENT_ID,
811
+ key: SPAN_KEYS.ARTIFACT_SUB_AGENT_ID,
749
812
  ...QUERY_FIELD_CONFIGS.STRING_TAG,
750
813
  },
751
814
  {
@@ -801,6 +864,7 @@ export async function GET(
801
864
  const aiAssistantSpans = parseList(resp, QUERY_EXPRESSIONS.AI_ASSISTANT_MESSAGES);
802
865
  const aiGenerationSpans = parseList(resp, QUERY_EXPRESSIONS.AI_GENERATIONS);
803
866
  const aiStreamingSpans = parseList(resp, QUERY_EXPRESSIONS.AI_STREAMING_TEXT);
867
+ const aiStreamingObjectSpans = parseList(resp, QUERY_EXPRESSIONS.AI_STREAMING_OBJECT);
804
868
  const contextFetcherSpans = parseList(resp, QUERY_EXPRESSIONS.CONTEXT_FETCHERS);
805
869
  const durationSpans = parseList(resp, QUERY_EXPRESSIONS.DURATION_SPANS);
806
870
  const artifactProcessingSpans = parseList(resp, QUERY_EXPRESSIONS.ARTIFACT_PROCESSING);
@@ -851,6 +915,7 @@ export async function GET(
851
915
  | 'user_message'
852
916
  | 'ai_assistant_message'
853
917
  | 'ai_model_streamed_text'
918
+ | 'ai_model_streamed_object'
854
919
  | 'artifact_processing';
855
920
  name: string;
856
921
  description: string;
@@ -883,14 +948,18 @@ export async function GET(
883
948
  toolCallResult?: string;
884
949
  aiTelemetryFunctionId?: string;
885
950
  // delegation/transfer
886
- delegationFromAgentId?: string;
887
- delegationToAgentId?: string;
888
- transferFromAgentId?: string;
889
- transferToAgentId?: string;
890
- // streaming
951
+ delegationFromSubAgentId?: string;
952
+ delegationToSubAgentId?: string;
953
+ transferFromSubAgentId?: string;
954
+ transferToSubAgentId?: string;
955
+ // streaming text
891
956
  aiStreamTextContent?: string;
892
957
  aiStreamTextModel?: string;
893
958
  aiStreamTextOperationId?: string;
959
+ // streaming object
960
+ aiStreamObjectContent?: string;
961
+ aiStreamObjectModel?: string;
962
+ aiStreamObjectOperationId?: string;
894
963
  // ai generation specifics
895
964
  aiResponseToolCalls?: string;
896
965
  aiPromptMessages?: string;
@@ -900,7 +969,7 @@ export async function GET(
900
969
  artifactName?: string;
901
970
  artifactDescription?: string;
902
971
  artifactData?: string;
903
- artifactAgentId?: string;
972
+ artifactSubAgentId?: string;
904
973
  artifactToolCallId?: string;
905
974
  hasError?: boolean;
906
975
  otelStatusCode?: string;
@@ -923,10 +992,10 @@ export async function GET(
923
992
  const toolType = getString(span, SPAN_KEYS.AI_TOOL_TYPE, '');
924
993
  const toolPurpose = getString(span, SPAN_KEYS.TOOL_PURPOSE, '');
925
994
  const aiTelemetryFunctionId = getString(span, SPAN_KEYS.AI_TELEMETRY_FUNCTION_ID, '');
926
- const delegationFromAgentId = getString(span, SPAN_KEYS.DELEGATION_FROM_SUB_AGENT_ID, '');
927
- const delegationToAgentId = getString(span, SPAN_KEYS.DELEGATION_TO_SUB_AGENT_ID, '');
928
- const transferFromAgentId = getString(span, SPAN_KEYS.TRANSFER_FROM_SUB_AGENT_ID, '');
929
- const transferToAgentId = getString(span, SPAN_KEYS.TRANSFER_TO_SUB_AGENT_ID, '');
995
+ const delegationFromSubAgentId = getString(span, SPAN_KEYS.DELEGATION_FROM_SUB_AGENT_ID, '');
996
+ const delegationToSubAgentId = getString(span, SPAN_KEYS.DELEGATION_TO_SUB_AGENT_ID, '');
997
+ const transferFromSubAgentId = getString(span, SPAN_KEYS.TRANSFER_FROM_SUB_AGENT_ID, '');
998
+ const transferToSubAgentId = getString(span, SPAN_KEYS.TRANSFER_TO_SUB_AGENT_ID, '');
930
999
 
931
1000
  // Extract tool call args and result for ALL tool calls
932
1001
  const toolCallArgs = getString(span, SPAN_KEYS.AI_TOOL_CALL_ARGS, '');
@@ -949,10 +1018,10 @@ export async function GET(
949
1018
  toolType: toolType || undefined,
950
1019
  toolPurpose: toolPurpose || undefined,
951
1020
  aiTelemetryFunctionId: aiTelemetryFunctionId || undefined,
952
- delegationFromAgentId: delegationFromAgentId || undefined,
953
- delegationToAgentId: delegationToAgentId || undefined,
954
- transferFromAgentId: transferFromAgentId || undefined,
955
- transferToAgentId: transferToAgentId || undefined,
1021
+ delegationFromSubAgentId: delegationFromSubAgentId || undefined,
1022
+ delegationToSubAgentId: delegationToSubAgentId || undefined,
1023
+ transferFromSubAgentId: transferFromSubAgentId || undefined,
1024
+ transferToSubAgentId: transferToSubAgentId || undefined,
956
1025
  toolCallArgs: toolCallArgs || undefined,
957
1026
  toolCallResult: toolCallResult || undefined,
958
1027
  });
@@ -1137,6 +1206,30 @@ export async function GET(
1137
1206
  });
1138
1207
  }
1139
1208
 
1209
+ // ai streaming object
1210
+ for (const span of aiStreamingObjectSpans) {
1211
+ const hasError = getField(span, SPAN_KEYS.HAS_ERROR) === true;
1212
+ const durMs = getNumber(span, SPAN_KEYS.DURATION_NANO) / 1e6;
1213
+ activities.push({
1214
+ id: getString(span, SPAN_KEYS.SPAN_ID, ''),
1215
+ type: ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT,
1216
+ name: ACTIVITY_NAMES.AI_STREAMING_OBJECT,
1217
+ description: 'AI model streaming object response',
1218
+ timestamp: span.timestamp,
1219
+ status: hasError ? ACTIVITY_STATUS.ERROR : ACTIVITY_STATUS.SUCCESS,
1220
+ subAgentId: getString(span, SPAN_KEYS.SUB_AGENT_ID, '') || undefined,
1221
+ subAgentName: getString(span, SPAN_KEYS.SUB_AGENT_NAME, ACTIVITY_NAMES.UNKNOWN_AGENT),
1222
+ result: hasError
1223
+ ? 'AI streaming object failed'
1224
+ : `AI object streamed successfully (${durMs.toFixed(2)}ms)`,
1225
+ aiStreamObjectContent: getString(span, SPAN_KEYS.AI_RESPONSE_OBJECT, ''),
1226
+ aiStreamObjectModel: getString(span, SPAN_KEYS.AI_MODEL_ID, 'Unknown Model'),
1227
+ aiStreamObjectOperationId: getString(span, SPAN_KEYS.AI_OPERATION_ID, '') || undefined,
1228
+ inputTokens: getNumber(span, SPAN_KEYS.GEN_AI_USAGE_INPUT_TOKENS, 0),
1229
+ outputTokens: getNumber(span, SPAN_KEYS.GEN_AI_USAGE_OUTPUT_TOKENS, 0),
1230
+ });
1231
+ }
1232
+
1140
1233
  // context fetchers
1141
1234
  for (const span of contextFetcherSpans) {
1142
1235
  const hasError = getField(span, SPAN_KEYS.HAS_ERROR) === true;
@@ -1169,7 +1262,7 @@ export async function GET(
1169
1262
  description: 'Artifact processed',
1170
1263
  timestamp: span.timestamp,
1171
1264
  status: hasError ? ACTIVITY_STATUS.ERROR : ACTIVITY_STATUS.SUCCESS,
1172
- subAgentName: getString(span, SPAN_KEYS.ARTIFACT_AGENT_ID, '') || 'Unknown Agent',
1265
+ subAgentName: getString(span, SPAN_KEYS.ARTIFACT_SUB_AGENT_ID, '') || 'Unknown Agent',
1173
1266
  result: hasError
1174
1267
  ? 'Artifact processing failed'
1175
1268
  : 'Artifact processed successfully',
@@ -1178,7 +1271,7 @@ export async function GET(
1178
1271
  artifactName: artifactName || undefined,
1179
1272
  artifactDescription: artifactDescription || undefined,
1180
1273
  artifactData: getString(span, SPAN_KEYS.ARTIFACT_DATA, '') || undefined,
1181
- artifactAgentId: getString(span, SPAN_KEYS.ARTIFACT_AGENT_ID, '') || undefined,
1274
+ artifactSubAgentId: getString(span, SPAN_KEYS.ARTIFACT_SUB_AGENT_ID, '') || undefined,
1182
1275
  artifactToolCallId: getString(span, SPAN_KEYS.ARTIFACT_TOOL_CALL_ID, '') || undefined,
1183
1276
  });
1184
1277
  }
@@ -1199,7 +1292,8 @@ export async function GET(
1199
1292
  (a) =>
1200
1293
  a.type === ACTIVITY_TYPES.AI_ASSISTANT_MESSAGE ||
1201
1294
  a.type === ACTIVITY_TYPES.AI_GENERATION ||
1202
- a.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT
1295
+ a.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT ||
1296
+ a.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT
1203
1297
  );
1204
1298
  const conversationStartTime = firstUser
1205
1299
  ? new Date(firstUser.timestamp).getTime()
@@ -1218,14 +1312,16 @@ export async function GET(
1218
1312
  for (const activity of activities) {
1219
1313
  if (
1220
1314
  (activity.type === ACTIVITY_TYPES.AI_GENERATION ||
1221
- activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT) &&
1315
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT ||
1316
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT) &&
1222
1317
  typeof activity.inputTokens === 'number'
1223
1318
  ) {
1224
1319
  totalInputTokens += activity.inputTokens;
1225
1320
  }
1226
1321
  if (
1227
1322
  (activity.type === ACTIVITY_TYPES.AI_GENERATION ||
1228
- activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT) &&
1323
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT ||
1324
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT) &&
1229
1325
  typeof activity.outputTokens === 'number'
1230
1326
  ) {
1231
1327
  totalOutputTokens += activity.outputTokens;
@@ -85,7 +85,7 @@ export function renderPanelContent({
85
85
  <Info label="Model" value={<ModelBadge model={a.aiModel || 'Unknown'} />} />
86
86
  <Info label="Input tokens" value={a.inputTokens?.toLocaleString() || '0'} />
87
87
  <Info label="Output tokens" value={a.outputTokens?.toLocaleString() || '0'} />
88
- <Info label="Agent" value={a.agentName || '-'} />
88
+ <Info label="Sub agent" value={a.subAgentName || '-'} />
89
89
  {a.aiResponseText && (
90
90
  <LabeledBlock label="Response text">
91
91
  <Bubble className="whitespace-pre-wrap break-words max-h-96 overflow-y-auto">
@@ -176,7 +176,7 @@ export function renderPanelContent({
176
176
  {a.aiResponseContent || 'Response content not available'}
177
177
  </Bubble>
178
178
  </LabeledBlock>
179
- <Info label="Agent" value={a.agentName || 'Unknown'} />
179
+ <Info label="Sub agent" value={a.subAgentName || 'Unknown'} />
180
180
  <StatusBadge status={a.status} />
181
181
  <Info label="Activity timestamp" value={formatDateTime(a.timestamp)} />
182
182
  </Section>
@@ -201,11 +201,6 @@ export function renderPanelContent({
201
201
  return (
202
202
  <>
203
203
  <Section>
204
- {a.contextAgentId && (
205
- <LabeledBlock label="Agent id">
206
- <Badge variant="code">{a.contextAgentId}</Badge>
207
- </LabeledBlock>
208
- )}
209
204
  {a.contextTrigger && <Info label="Trigger" value={a.contextTrigger} />}
210
205
  <StatusBadge status={a.status} />
211
206
  {a.contextStatusDescription && (
@@ -232,8 +227,8 @@ export function renderPanelContent({
232
227
  return (
233
228
  <>
234
229
  <Section>
235
- <Info label="From agent" value={a.delegationFromAgentId || 'Unknown Agent'} />
236
- <Info label="To agent" value={a.delegationToAgentId || 'Unknown Agent'} />
230
+ <Info label="From sub agent" value={a.delegationFromSubAgentId || 'Unknown Agent'} />
231
+ <Info label="To sub agent" value={a.delegationToSubAgentId || 'Unknown Agent'} />
237
232
  <Info
238
233
  label="Tool name"
239
234
  value={<Badge variant="code">{a.toolName || 'Unknown Tool'}</Badge>}
@@ -265,14 +260,14 @@ export function renderPanelContent({
265
260
  return (
266
261
  <>
267
262
  <Section>
268
- <LabeledBlock label="From agent">
263
+ <LabeledBlock label="From sub agent">
269
264
  <Badge variant="code">
270
- {a.transferFromAgentId || a.agentName || 'Unknown Agent'}
265
+ {a.transferFromSubAgentId || 'Unknown sub agent'}
271
266
  </Badge>
272
267
  </LabeledBlock>
273
- <LabeledBlock label="To agent">
268
+ <LabeledBlock label="To sub agent">
274
269
  <Badge variant="code">
275
- {a.transferToAgentId || a.toolName?.replace('transfer_to_', '') || 'Unknown target'}
270
+ {a.transferToSubAgentId || 'Unknown target'}
276
271
  </Badge>
277
272
  </LabeledBlock>
278
273
  <Info
@@ -318,7 +313,7 @@ export function renderPanelContent({
318
313
  </LabeledBlock>
319
314
  )}
320
315
  <Info label="Purpose" value={a.toolPurpose || 'No purpose information available'} />
321
- <Info label="Agent" value={a.agentName || 'Unknown agent'} />
316
+ <Info label="Sub agent" value={a.subAgentName || 'Unknown sub agent'} />
322
317
  <StatusBadge status={a.status} />
323
318
  {a.toolCallArgs && (
324
319
  <JsonEditorWithCopy
@@ -400,6 +395,31 @@ export function renderPanelContent({
400
395
  </>
401
396
  );
402
397
 
398
+ case 'ai_model_streamed_object':
399
+ return (
400
+ <>
401
+ <Section>
402
+ <Info label="Model" value={<ModelBadge model={a.aiStreamObjectModel || 'Unknown'} />} />
403
+ <Info label="Input tokens" value={a.inputTokens?.toLocaleString() || '0'} />
404
+ <Info label="Output tokens" value={a.outputTokens?.toLocaleString() || '0'} />
405
+ {a.aiStreamObjectContent && (
406
+ <LabeledBlock label="Structured object response">
407
+ <JsonEditorWithCopy
408
+ value={formatJsonSafely(a.aiStreamObjectContent)}
409
+ title="Object content"
410
+ uri="stream-object-response.json"
411
+ />
412
+ </LabeledBlock>
413
+ )}
414
+ <StatusBadge status={a.status} />
415
+ <Info label="Timestamp" value={formatDateTime(a.timestamp)} />
416
+ </Section>
417
+ <Divider />
418
+ {SignozButton}
419
+ {AdvancedBlock}
420
+ </>
421
+ );
422
+
403
423
  case 'artifact_processing':
404
424
  return (
405
425
  <>
@@ -415,8 +435,8 @@ export function renderPanelContent({
415
435
  />
416
436
  )}
417
437
  <StatusBadge status={a.status} />
418
- {a.artifactAgentId && (
419
- <Info label="Agent" value={a.artifactAgentId || 'Unknown Agent'} />
438
+ {a.artifactSubAgentId && (
439
+ <Info label="Sub agent" value={a.artifactSubAgentId || 'Unknown Sub Agent'} />
420
440
  )}
421
441
  {a.artifactId && (
422
442
  <Info label="Artifact ID" value={<Badge variant="code">{a.artifactId}</Badge>} />
@@ -56,6 +56,7 @@ function statusIcon(
56
56
  agent_generation: { Icon: Cpu, cls: 'text-purple-500' },
57
57
  ai_assistant_message: { Icon: Sparkles, cls: 'text-primary' },
58
58
  ai_model_streamed_text: { Icon: Sparkles, cls: 'text-primary' },
59
+ ai_model_streamed_object: { Icon: Sparkles, cls: 'text-primary' },
59
60
  context_fetch: { Icon: Settings, cls: 'text-indigo-400' },
60
61
  context_resolution: { Icon: Database, cls: 'text-indigo-400' },
61
62
  tool_call: { Icon: Hammer, cls: 'text-muted-foreground' },
@@ -191,8 +192,8 @@ export function TimelineItem({
191
192
  className="flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors"
192
193
  title={
193
194
  isAiMessageCollapsed
194
- ? 'Expand AI streaming response'
195
- : 'Collapse AI streaming response'
195
+ ? 'Expand AI streaming text'
196
+ : 'Collapse AI streaming text'
196
197
  }
197
198
  >
198
199
  {isAiMessageCollapsed ? (
@@ -200,7 +201,7 @@ export function TimelineItem({
200
201
  ) : (
201
202
  <ChevronDown className="h-3 w-3" />
202
203
  )}
203
- AI Streaming Response
204
+ AI Streaming Text
204
205
  </button>
205
206
  )}
206
207
  {!isAiMessageCollapsed && (
@@ -209,6 +210,40 @@ export function TimelineItem({
209
210
  </div>
210
211
  )}
211
212
 
213
+ {/* streamed object bubble */}
214
+ {activity.type === 'ai_model_streamed_object' && activity.aiStreamObjectContent && (
215
+ <div className="space-y-2">
216
+ {onToggleAiMessageCollapse && (
217
+ <button
218
+ type="button"
219
+ onClick={() => onToggleAiMessageCollapse(activity.id)}
220
+ className="flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors"
221
+ title={
222
+ isAiMessageCollapsed
223
+ ? 'Expand AI streaming object'
224
+ : 'Collapse AI streaming object'
225
+ }
226
+ >
227
+ {isAiMessageCollapsed ? (
228
+ <ChevronRight className="h-3 w-3" />
229
+ ) : (
230
+ <ChevronDown className="h-3 w-3" />
231
+ )}
232
+ AI Streaming Object
233
+ </button>
234
+ )}
235
+ {!isAiMessageCollapsed && (
236
+ <div className="mt-2">
237
+ <JsonEditorWithCopy
238
+ value={formatJsonSafely(activity.aiStreamObjectContent)}
239
+ title="Structured object response"
240
+ uri={`stream-object-${activity.id}.json`}
241
+ />
242
+ </div>
243
+ )}
244
+ </div>
245
+ )}
246
+
212
247
  {/* context fetch url */}
213
248
  {activity.type === 'context_fetch' && activity.toolResult && (
214
249
  <div className="mb-1">
@@ -227,11 +262,10 @@ export function TimelineItem({
227
262
  {activity.type === ACTIVITY_TYPES.TOOL_CALL &&
228
263
  activity.toolName?.includes('delegate') && (
229
264
  <Flow
230
- from={activity.delegationFromAgentId || activity.agentName || 'Unknown Agent'}
265
+ from={activity.delegationFromSubAgentId || 'Unknown sub agent'}
231
266
  to={
232
- activity.delegationToAgentId ||
233
- activity.toolName?.replace('delegate_to_', '') ||
234
- 'Target'
267
+ activity.delegationToSubAgentId ||
268
+ 'Unknown sub agent'
235
269
  }
236
270
  />
237
271
  )}
@@ -241,11 +275,10 @@ export function TimelineItem({
241
275
  (activity.toolType === TOOL_TYPES.TRANSFER ||
242
276
  activity.toolName?.includes('transfer')) && (
243
277
  <Flow
244
- from={activity.transferFromAgentId || activity.agentName || 'Unknown Agent'}
278
+ from={activity.transferFromSubAgentId || 'Unknown sub agent'}
245
279
  to={
246
- activity.transferToAgentId ||
247
- activity.toolName?.replace('transfer_to_', '') ||
248
- 'Target'
280
+ activity.transferToSubAgentId ||
281
+ 'Unknown sub agent'
249
282
  }
250
283
  />
251
284
  )}
@@ -296,9 +329,9 @@ export function TimelineItem({
296
329
  )}
297
330
 
298
331
  {/* agent name for AI generation */}
299
- {activity.type === ACTIVITY_TYPES.AI_GENERATION && activity.agentName && (
332
+ {activity.type === ACTIVITY_TYPES.AI_GENERATION && activity.subAgentName && (
300
333
  <div className="mb-1">
301
- <Badge variant="code">{activity.agentName}</Badge>
334
+ <Badge variant="code">{activity.subAgentName}</Badge>
302
335
  </div>
303
336
  )}
304
337
 
@@ -43,6 +43,8 @@ function panelTitle(selected: SelectedPanel) {
43
43
  return 'Tool call details';
44
44
  case 'ai_model_streamed_text':
45
45
  return 'AI Streaming text details';
46
+ case 'ai_model_streamed_object':
47
+ return 'AI Streaming object details';
46
48
  case 'mcp_tool_error':
47
49
  return 'MCP tool error details';
48
50
  case 'artifact_processing':
@@ -190,7 +192,7 @@ export function TimelineWrapper({
190
192
  type: 'tool_call' as const,
191
193
  description: `Called ${tc.toolName} tool${tc.toolDescription ? ` - ${tc.toolDescription}` : ''}`,
192
194
  timestamp: new Date(tc.timestamp).toISOString(),
193
- agentName: tc.agentName || 'AI Agent',
195
+ subAgentName: tc.subAgentName || 'AI Agent',
194
196
  toolResult: tc.result ?? tc.toolResult ?? 'Tool call completed',
195
197
  })) || []
196
198
  );
@@ -214,6 +216,7 @@ export function TimelineWrapper({
214
216
  (activity) =>
215
217
  activity.type === ACTIVITY_TYPES.AI_ASSISTANT_MESSAGE ||
216
218
  activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT ||
219
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT ||
217
220
  (activity.hasError && activity.otelStatusDescription)
218
221
  )
219
222
  .map((activity) => activity.id);
@@ -222,7 +225,11 @@ export function TimelineWrapper({
222
225
  // Memoize stream text IDs for cleaner collapse logic
223
226
  const streamTextIds = useMemo(() => {
224
227
  return sortedActivities
225
- .filter((activity) => activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT)
228
+ .filter(
229
+ (activity) =>
230
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT ||
231
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT
232
+ )
226
233
  .map((activity) => activity.id);
227
234
  }, [sortedActivities]);
228
235
 
@@ -296,6 +303,7 @@ export function TimelineWrapper({
296
303
  (activity) =>
297
304
  activity.type === ACTIVITY_TYPES.AI_ASSISTANT_MESSAGE ||
298
305
  activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT ||
306
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT ||
299
307
  (activity.hasError && activity.otelStatusDescription)
300
308
  )
301
309
  .map((activity) => activity.id);
@@ -358,6 +366,7 @@ export function TimelineWrapper({
358
366
  (activity) =>
359
367
  activity.type === ACTIVITY_TYPES.AI_ASSISTANT_MESSAGE ||
360
368
  activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_TEXT ||
369
+ activity.type === ACTIVITY_TYPES.AI_MODEL_STREAMED_OBJECT ||
361
370
  (activity.hasError && activity.otelStatusDescription)
362
371
  ) && (
363
372
  <div className="flex items-center gap-1">
@@ -21,6 +21,7 @@ export const ACTIVITY_TYPES = {
21
21
  USER_MESSAGE: 'user_message',
22
22
  AI_ASSISTANT_MESSAGE: 'ai_assistant_message',
23
23
  AI_MODEL_STREAMED_TEXT: 'ai_model_streamed_text',
24
+ AI_MODEL_STREAMED_OBJECT: 'ai_model_streamed_object',
24
25
  ARTIFACT_PROCESSING: 'artifact_processing',
25
26
  } as const;
26
27
 
@@ -33,7 +34,7 @@ export interface ActivityItem {
33
34
  description: string;
34
35
  timestamp: string;
35
36
  subAgentId?: string;
36
- agentName?: string;
37
+ subAgentName?: string;
37
38
  toolName?: string;
38
39
  toolResult?: string;
39
40
  status: 'success' | 'error' | 'pending';
@@ -58,10 +59,10 @@ export interface ActivityItem {
58
59
  aiResponseContent?: string;
59
60
  aiResponseTimestamp?: string;
60
61
  messageContent?: string;
61
- delegationFromAgentId?: string;
62
- delegationToAgentId?: string;
63
- transferFromAgentId?: string;
64
- transferToAgentId?: string;
62
+ delegationFromSubAgentId?: string;
63
+ delegationToSubAgentId?: string;
64
+ transferFromSubAgentId?: string;
65
+ transferToSubAgentId?: string;
65
66
  toolType?: string;
66
67
  toolPurpose?: string;
67
68
  contextConfigId?: string;
@@ -76,6 +77,10 @@ export interface ActivityItem {
76
77
  aiStreamTextModel?: string;
77
78
  aiStreamTextProvider?: string;
78
79
  aiStreamTextOperationId?: string;
80
+ aiStreamObjectContent?: string;
81
+ aiStreamObjectModel?: string;
82
+ aiStreamObjectProvider?: string;
83
+ aiStreamObjectOperationId?: string;
79
84
  toolCallArgs?: string;
80
85
  toolCallResult?: string;
81
86
  aiResponseText?: string;
@@ -92,7 +97,7 @@ export interface ActivityItem {
92
97
  artifactName?: string;
93
98
  artifactDescription?: string;
94
99
  artifactData?: string;
95
- artifactAgentId?: string;
100
+ artifactSubAgentId?: string;
96
101
  artifactToolCallId?: string;
97
102
  }
98
103
 
@@ -1 +0,0 @@
1
- exports.id=2763,exports.ids=[2763],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"}]])},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")},12604:(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)("70fba8b5415a6a1dddfbb432919bd041d258252c11",o.callServer,void 0,o.findSourceMapURL,"updateDataComponentAction"),q=(0,o.createServerReference)("704e74fd56d27e214dac339ce6c109f93c913affca",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"})]})})}},14186:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40b6311e5c1b02ed503a296e3dd44e36630340b8ed":()=>d.bW,"609e7e69861ceb7ffe3a3db16da67f843b346f92d7":()=>d.Dv,"60b08383f93ce019429e7fd89d6ea1a4b9aba20f4e":()=>p,"60bea1fc0e56be2c2122a9e9a02477868a751bb96b":()=>d.gL,"60e6ff263b08769ca9429c429a7cee6d3eb39dae9c":()=>d.qf,"7014d8a654c3e9d5161c739dfe666bb3c40a24c6fd":()=>s,"704e74fd56d27e214dac339ce6c109f93c913affca":()=>q,"70a87a6a2129c99ba18313f9ae7fb089fcc597a3ef":()=>d.Tg,"70fba8b5415a6a1dddfbb432919bd041d258252c11":()=>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){(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,"6080b0288eecdd5cd70059498b96279638ba23dfb4",null),(0,e.A)(k,"70608d14942c353267b3e3e7feb5bec4aee51c3d8f",null),(0,e.A)(l,"70f7324db10e21ed9dc4b1c0fd2f6e4a2bc2c6c3c9",null),(0,e.A)(m,"70aefcf76392b5d2b79e0ca06c407c161f54fb7f54",null),(0,e.A)(n,"700a4c6ee72665757f475e101b9b00b2b814b258a8",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,"60b08383f93ce019429e7fd89d6ea1a4b9aba20f4e",null),(0,e.A)(q,"704e74fd56d27e214dac339ce6c109f93c913affca",null),(0,e.A)(r,"70fba8b5415a6a1dddfbb432919bd041d258252c11",null),(0,e.A)(s,"7014d8a654c3e9d5161c739dfe666bb3c40a24c6fd",null)},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,12604)),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(43461);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")}};