@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.
- package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
- package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +124 -124
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -6
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +13 -13
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +8 -8
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +6 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2067.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2083.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2782.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2783.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5272.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5889.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6641.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7457.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7504.js +4 -4
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{7179.js → 8113.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{5161.js → 9030.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9590.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/49858-9d58688d4acdd420.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{6421-cb6a00515df54821.js → 6719-bb09f191938cb7ac.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{71558-ff8bd92c9f16102a.js → 71558-8c90050e5b46bdf0.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-ffb071960bb6a52d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{92775-e7b3d0637300a752.js → 92775-6154f3e2dbf25027.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-b960036bcc85d3b9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-b6820d15c91f654e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-013084adf0c84769.js → page-ba7bbb5f394d08c6.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-013084adf0c84769.js → page-ba7bbb5f394d08c6.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-70b2c0bde95fb111.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-7cfcfb3a80bf221e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-7cfcfb3a80bf221e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-a3a9abf70d9708cb.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-410153ca99558d01.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-4dc5dfe14604ed79.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-e68d844d3b805e0c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-99f344b9d5a5fa96.js → page-392b54a9fcca9c82.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-0ed47fceaff02b66.js → page-081794f241d22954.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-deaf66cb43b600bb.js → page-2e21df93ae170354.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-167b090dfd540351.js → page-f60a2b27bb64a938.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-6cc996c59acc014b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-9ff5161ce114bde5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{layout-26668fcb6b5d4aa3.js → layout-599c4be2f5e54c71.js} +1 -1
- package/.next/standalone/agents-manage-ui/package.json +1 -1
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +4 -4
- package/src/app/api/signoz/conversations/[conversationId]/route.ts +116 -20
- package/src/components/traces/timeline/render-panel-content.tsx +36 -16
- package/src/components/traces/timeline/timeline-item.tsx +46 -13
- package/src/components/traces/timeline/timeline-wrapper.tsx +11 -2
- package/src/components/traces/timeline/types.ts +11 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2763.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5164.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6355.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/49858-7df5d3e19fc00977.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-dcb80d18a69e0eb9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-95c46094584aa3c3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-beebccdca5a32bec.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-5e420340db7db8fd.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-d4e7e4c89fda5656.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-d4e7e4c89fda5656.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-c5d14bd718503aa5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5af431fda2d331ab.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-6a5dca20f1b92f16.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-565b009565f2c16b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-77d9931139aa8a9f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-cfb0f468a352af84.js +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{L7k_o8pGWV27BP4i5LdVD → 2eCWRxylMQoerKDNqjgMo}/_buildManifest.js +0 -0
- /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.
|
|
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.
|
|
89
|
-
"@inkeep/agents-manage-api": "^0.19.
|
|
90
|
-
"@inkeep/agents-run-api": "^0.19.
|
|
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.
|
|
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
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
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
|
-
|
|
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
|
|
927
|
-
const
|
|
928
|
-
const
|
|
929
|
-
const
|
|
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
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
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.
|
|
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
|
-
|
|
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="
|
|
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="
|
|
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.
|
|
236
|
-
<Info label="To agent" value={a.
|
|
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.
|
|
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.
|
|
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="
|
|
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.
|
|
419
|
-
<Info label="
|
|
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
|
|
195
|
-
: 'Collapse AI streaming
|
|
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
|
|
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.
|
|
265
|
+
from={activity.delegationFromSubAgentId || 'Unknown sub agent'}
|
|
231
266
|
to={
|
|
232
|
-
activity.
|
|
233
|
-
|
|
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.
|
|
278
|
+
from={activity.transferFromSubAgentId || 'Unknown sub agent'}
|
|
245
279
|
to={
|
|
246
|
-
activity.
|
|
247
|
-
|
|
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.
|
|
332
|
+
{activity.type === ACTIVITY_TYPES.AI_GENERATION && activity.subAgentName && (
|
|
300
333
|
<div className="mb-1">
|
|
301
|
-
<Badge variant="code">{activity.
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
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")}};
|