@chat-lab/ui 0.1.0-beta.39 → 0.1.0-beta.40
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/dist/adk/components/Debug/Events/EventDetail.cjs +1 -4
- package/dist/adk/components/Debug/Events/EventDetail.cjs.map +1 -1
- package/dist/adk/components/Debug/Events/EventDetail.d.ts.map +1 -1
- package/dist/adk/components/Debug/Events/EventDetail.js +1 -4
- package/dist/adk/components/Debug/Events/EventDetail.js.map +1 -1
- package/dist/adk/components/Debug/Events/EventTab.d.ts.map +1 -1
- package/dist/adk/components/Debug/Events/index.cjs +3 -2
- package/dist/adk/components/Debug/Events/index.cjs.map +1 -1
- package/dist/adk/components/Debug/Events/index.d.ts.map +1 -1
- package/dist/adk/components/Debug/Events/index.js +3 -2
- package/dist/adk/components/Debug/Events/index.js.map +1 -1
- package/dist/adk/components/Debug/Trace/TraceDetail.cjs +6 -6
- package/dist/adk/components/Debug/Trace/TraceDetail.cjs.map +1 -1
- package/dist/adk/components/Debug/Trace/TraceDetail.d.ts.map +1 -1
- package/dist/adk/components/Debug/Trace/TraceDetail.js +6 -6
- package/dist/adk/components/Debug/Trace/TraceDetail.js.map +1 -1
- package/dist/adk/components/Debug/Trace/TraceMessageGroup.cjs +12 -5
- package/dist/adk/components/Debug/Trace/TraceMessageGroup.cjs.map +1 -1
- package/dist/adk/components/Debug/Trace/TraceMessageGroup.d.ts +1 -0
- package/dist/adk/components/Debug/Trace/TraceMessageGroup.d.ts.map +1 -1
- package/dist/adk/components/Debug/Trace/TraceMessageGroup.js +13 -6
- package/dist/adk/components/Debug/Trace/TraceMessageGroup.js.map +1 -1
- package/dist/adk/components/Debug/Trace/index.cjs +7 -3
- package/dist/adk/components/Debug/Trace/index.cjs.map +1 -1
- package/dist/adk/components/Debug/Trace/index.d.ts.map +1 -1
- package/dist/adk/components/Debug/Trace/index.js +7 -3
- package/dist/adk/components/Debug/Trace/index.js.map +1 -1
- package/dist/adk/components/Debug/Trace/utils.cjs +1 -0
- package/dist/adk/components/Debug/Trace/utils.cjs.map +1 -1
- package/dist/adk/components/Debug/Trace/utils.d.ts.map +1 -1
- package/dist/adk/components/Debug/Trace/utils.js +1 -0
- package/dist/adk/components/Debug/Trace/utils.js.map +1 -1
- package/dist/adk/components/Debug/index.cjs +1 -1
- package/dist/adk/components/Debug/index.cjs.map +1 -1
- package/dist/adk/components/Debug/index.js +1 -1
- package/dist/adk/components/Debug/index.js.map +1 -1
- package/dist/adk/hooks/useEvents.cjs +13 -5
- package/dist/adk/hooks/useEvents.cjs.map +1 -1
- package/dist/adk/hooks/useEvents.d.ts +10 -5
- package/dist/adk/hooks/useEvents.d.ts.map +1 -1
- package/dist/adk/hooks/useEvents.js +13 -5
- package/dist/adk/hooks/useEvents.js.map +1 -1
- package/dist/assets/Empty.cjs +8 -0
- package/dist/assets/Empty.cjs.map +1 -0
- package/dist/assets/Empty.d.ts +3 -0
- package/dist/assets/Empty.d.ts.map +1 -0
- package/dist/assets/Empty.js +6 -0
- package/dist/assets/Empty.js.map +1 -0
- package/dist/components/Chatkit/index.cjs +2 -2
- package/dist/components/Chatkit/index.cjs.map +1 -1
- package/dist/components/Chatkit/index.d.ts.map +1 -1
- package/dist/components/Chatkit/index.js +2 -2
- package/dist/components/Chatkit/index.js.map +1 -1
- package/dist/components/ThreadOptionsMenu.cjs +8 -1
- package/dist/components/ThreadOptionsMenu.cjs.map +1 -1
- package/dist/components/ThreadOptionsMenu.d.ts.map +1 -1
- package/dist/components/ThreadOptionsMenu.js +8 -1
- package/dist/components/ThreadOptionsMenu.js.map +1 -1
- package/dist/components/assistant-ui/WarningModal.cjs +13 -0
- package/dist/components/assistant-ui/WarningModal.cjs.map +1 -0
- package/dist/components/assistant-ui/WarningModal.d.ts +12 -0
- package/dist/components/assistant-ui/WarningModal.d.ts.map +1 -0
- package/dist/components/assistant-ui/WarningModal.js +11 -0
- package/dist/components/assistant-ui/WarningModal.js.map +1 -0
- package/dist/components/thread-list.cjs +1 -1
- package/dist/components/thread-list.cjs.map +1 -1
- package/dist/components/thread-list.js +1 -1
- package/dist/components/thread-list.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/loader.cjs +29 -0
- package/dist/node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/loader.cjs.map +1 -0
- package/dist/node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/loader.js +24 -0
- package/dist/node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/loader.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var main = require('../../../../node_modules/.pnpm/react-json-view@1.21.3_@types_react@17.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-json-view/dist/main.cjs');
|
|
6
|
-
var utils = require('../../../../lib/utils.cjs');
|
|
7
6
|
var chevronLeft = require('../../../../node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/chevron-left.cjs');
|
|
8
7
|
|
|
9
8
|
function EventDetail({ message, onBack }) {
|
|
@@ -37,9 +36,7 @@ function EventDetail({ message, onBack }) {
|
|
|
37
36
|
return message;
|
|
38
37
|
}
|
|
39
38
|
};
|
|
40
|
-
return (jsxRuntime.jsxs("div", { className: "flex flex-col h-full bg-background w-full", children: [jsxRuntime.
|
|
41
|
-
? 'border-blue-500 text-blue-600'
|
|
42
|
-
: 'border-transparent text-muted-foreground hover:text-foreground'), children: tab }, tab))) })] }), jsxRuntime.jsx("div", { className: "flex-1 overflow-auto p-4", children: jsxRuntime.jsx(main, { src: getTabContent(), name: null, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, collapsed: 2, theme: "rjv-default", style: { fontSize: '12px', fontFamily: 'monospace' } }) })] }));
|
|
39
|
+
return (jsxRuntime.jsxs("div", { className: "flex flex-col h-full bg-background w-full", children: [jsxRuntime.jsx("div", { className: "flex items-center justify-between px-4 h-12 shrink-0", children: jsxRuntime.jsxs("div", { className: "flex items-center gap-2 overflow-hidden", children: [jsxRuntime.jsx("button", { onClick: onBack, className: "p-1 hover:bg-muted rounded-full transition-colors shrink-0", children: jsxRuntime.jsx(chevronLeft.default, { className: "w-5 h-5" }) }), jsxRuntime.jsx("h2", { className: "text-[14px] text-[#0C0D0E] font-medium leading-[22px] truncate", title: getEventTitle(message), children: getEventTitle(message) })] }) }), jsxRuntime.jsx("div", { className: "flex-1 overflow-auto p-4", children: jsxRuntime.jsx(main, { src: getTabContent(), name: null, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, collapsed: 2, theme: "rjv-default", style: { fontSize: '12px', fontFamily: 'monospace' } }) })] }));
|
|
43
40
|
}
|
|
44
41
|
|
|
45
42
|
module.exports = EventDetail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventDetail.cjs","sources":["../../../../../src/adk/components/Debug/Events/EventDetail.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronLeft } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { cn } from '@/lib/utils';\nimport { ADKMessage } from '@chat-lab/core';\n\ninterface EventDetailProps {\n message: ADKMessage['adkResponses'][number];\n onBack?: () => void;\n}\n\nexport default function EventDetail({ message, onBack }: EventDetailProps) {\n const [activeTab, setActiveTab] = useState<'event' | 'request' | 'response'>(\n 'request',\n );\n\n const getEventTitle = (msg: ADKMessage['adkResponses'][number]) => {\n const parts = msg?.content?.parts || [];\n if (msg?.error) {\n return `error: ${msg.error}`;\n }\n\n const functionCall = parts.find((p: any) => p.functionCall) as any;\n if (functionCall) return `functionCall: ${functionCall.functionCall.name}`;\n\n const functionResponse = parts.find((p: any) => p.functionResponse) as any;\n if (functionResponse)\n return `functionResponse: ${functionResponse.functionResponse.name}`;\n\n const text = parts.find((p: any) => p.text) as any;\n if (text)\n return `text: ${text.text.slice(0, 20)}${text.text.length > 20 ? '...' : ''}`;\n\n return 'Event';\n };\n\n const getTabContent = () => {\n switch (activeTab) {\n case 'event':\n return message;\n // case 'request':\n // // Display raw ADK responses if available, otherwise the message itself\n // return message;\n // case 'response':\n // return {}; // Placeholder for now\n default:\n return message;\n }\n };\n\n return (\n <div className=\"flex flex-col h-full bg-background w-full\">\n <div className=\"flex items-center justify-between px-4 h-12 shrink-0\">\n <div className=\"flex items-center gap-2 overflow-hidden\">\n <button\n onClick={onBack}\n className=\"p-1 hover:bg-muted rounded-full transition-colors shrink-0\"\n >\n <ChevronLeft className=\"w-5 h-5\" />\n </button>\n <h2\n className=\"text-[14px] text-[#0C0D0E] font-medium leading-[22px] truncate\"\n title={getEventTitle(message)}\n >\n {getEventTitle(message)}\n </h2>\n </div>\n
|
|
1
|
+
{"version":3,"file":"EventDetail.cjs","sources":["../../../../../src/adk/components/Debug/Events/EventDetail.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronLeft } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { cn } from '@/lib/utils';\nimport { ADKMessage } from '@chat-lab/core';\n\ninterface EventDetailProps {\n message: ADKMessage['adkResponses'][number];\n onBack?: () => void;\n}\n\nexport default function EventDetail({ message, onBack }: EventDetailProps) {\n const [activeTab, setActiveTab] = useState<'event' | 'request' | 'response'>(\n 'request',\n );\n\n const getEventTitle = (msg: ADKMessage['adkResponses'][number]) => {\n const parts = msg?.content?.parts || [];\n if (msg?.error) {\n return `error: ${msg.error}`;\n }\n\n const functionCall = parts.find((p: any) => p.functionCall) as any;\n if (functionCall) return `functionCall: ${functionCall.functionCall.name}`;\n\n const functionResponse = parts.find((p: any) => p.functionResponse) as any;\n if (functionResponse)\n return `functionResponse: ${functionResponse.functionResponse.name}`;\n\n const text = parts.find((p: any) => p.text) as any;\n if (text)\n return `text: ${text.text.slice(0, 20)}${text.text.length > 20 ? '...' : ''}`;\n\n return 'Event';\n };\n\n const getTabContent = () => {\n switch (activeTab) {\n case 'event':\n return message;\n // case 'request':\n // // Display raw ADK responses if available, otherwise the message itself\n // return message;\n // case 'response':\n // return {}; // Placeholder for now\n default:\n return message;\n }\n };\n\n return (\n <div className=\"flex flex-col h-full bg-background w-full\">\n <div className=\"flex items-center justify-between px-4 h-12 shrink-0\">\n <div className=\"flex items-center gap-2 overflow-hidden\">\n <button\n onClick={onBack}\n className=\"p-1 hover:bg-muted rounded-full transition-colors shrink-0\"\n >\n <ChevronLeft className=\"w-5 h-5\" />\n </button>\n <h2\n className=\"text-[14px] text-[#0C0D0E] font-medium leading-[22px] truncate\"\n title={getEventTitle(message)}\n >\n {getEventTitle(message)}\n </h2>\n </div>\n </div>\n\n <div className=\"flex-1 overflow-auto p-4\">\n <ReactJson\n src={getTabContent()}\n name={null}\n displayDataTypes={false}\n displayObjectSize={false}\n enableClipboard={true}\n collapsed={2}\n theme=\"rjv-default\"\n style={{ fontSize: '12px', fontFamily: 'monospace' }}\n />\n </div>\n </div>\n );\n}\n"],"names":["useState","_jsxs","_jsx","ChevronLeft","ReactJson"],"mappings":";;;;;;;AAWwB,SAAA,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAoB,EAAA;IACvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CACxC,SAAS,CACV,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG,CAAC,GAAuC,KAAI;QAChE,MAAM,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;AACxC,QAAA,IAAI,GAAG,EAAE,KAAK,EAAE;AACd,YAAA,OAAO,CAAU,OAAA,EAAA,GAAG,CAAC,KAAK,EAAE,CAAC;SAC9B;AAED,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,YAAY,CAAQ,CAAC;AACnE,QAAA,IAAI,YAAY;AAAE,YAAA,OAAO,iBAAiB,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAE3E,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,gBAAgB,CAAQ,CAAC;AAC3E,QAAA,IAAI,gBAAgB;AAClB,YAAA,OAAO,qBAAqB,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAEvE,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAQ,CAAC;AACnD,QAAA,IAAI,IAAI;AACN,YAAA,OAAO,CAAS,MAAA,EAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAA,CAAE,CAAC;AAEhF,QAAA,OAAO,OAAO,CAAC;AACjB,KAAC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAK;QACzB,QAAQ,SAAS;AACf,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,OAAO,CAAC;;;;;;AAMjB,YAAA;AACE,gBAAA,OAAO,OAAO,CAAC;SAClB;AACH,KAAC,CAAC;IAEF,QACEC,yBAAK,SAAS,EAAC,2CAA2C,EACxD,QAAA,EAAA,CAAAC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uDAAuD,EAAA,QAAA,EACpED,yBAAK,SAAS,EAAC,yCAAyC,EAAA,QAAA,EAAA,CACtDC,cACE,CAAA,QAAA,EAAA,EAAA,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,4DAA4D,EAAA,QAAA,EAEtEA,eAACC,mBAAW,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,GAC5B,EACTD,cAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAC,gEAAgE,EAC1E,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAA,QAAA,EAE5B,aAAa,CAAC,OAAO,CAAC,EAAA,CACpB,CACD,EAAA,CAAA,EAAA,CACF,EAENA,cAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,0BAA0B,EAAA,QAAA,EACvCA,eAACE,IAAS,EAAA,EACR,GAAG,EAAE,aAAa,EAAE,EACpB,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,KAAK,EACvB,iBAAiB,EAAE,KAAK,EACxB,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,EACZ,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EACpD,CAAA,EAAA,CACE,CACF,EAAA,CAAA,EACN;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventDetail.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Events/EventDetail.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,UAAU,gBAAgB;IACxB,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"EventDetail.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Events/EventDetail.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,UAAU,gBAAgB;IACxB,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,gBAAgB,eAwExE"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import ReactJson from '../../../../node_modules/.pnpm/react-json-view@1.21.3_@types_react@17.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-json-view/dist/main.js';
|
|
4
|
-
import { cn } from '../../../../lib/utils.js';
|
|
5
4
|
import ChevronLeft from '../../../../node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/chevron-left.js';
|
|
6
5
|
|
|
7
6
|
function EventDetail({ message, onBack }) {
|
|
@@ -35,9 +34,7 @@ function EventDetail({ message, onBack }) {
|
|
|
35
34
|
return message;
|
|
36
35
|
}
|
|
37
36
|
};
|
|
38
|
-
return (jsxs("div", { className: "flex flex-col h-full bg-background w-full", children: [
|
|
39
|
-
? 'border-blue-500 text-blue-600'
|
|
40
|
-
: 'border-transparent text-muted-foreground hover:text-foreground'), children: tab }, tab))) })] }), jsx("div", { className: "flex-1 overflow-auto p-4", children: jsx(ReactJson, { src: getTabContent(), name: null, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, collapsed: 2, theme: "rjv-default", style: { fontSize: '12px', fontFamily: 'monospace' } }) })] }));
|
|
37
|
+
return (jsxs("div", { className: "flex flex-col h-full bg-background w-full", children: [jsx("div", { className: "flex items-center justify-between px-4 h-12 shrink-0", children: jsxs("div", { className: "flex items-center gap-2 overflow-hidden", children: [jsx("button", { onClick: onBack, className: "p-1 hover:bg-muted rounded-full transition-colors shrink-0", children: jsx(ChevronLeft, { className: "w-5 h-5" }) }), jsx("h2", { className: "text-[14px] text-[#0C0D0E] font-medium leading-[22px] truncate", title: getEventTitle(message), children: getEventTitle(message) })] }) }), jsx("div", { className: "flex-1 overflow-auto p-4", children: jsx(ReactJson, { src: getTabContent(), name: null, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, collapsed: 2, theme: "rjv-default", style: { fontSize: '12px', fontFamily: 'monospace' } }) })] }));
|
|
41
38
|
}
|
|
42
39
|
|
|
43
40
|
export { EventDetail as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventDetail.js","sources":["../../../../../src/adk/components/Debug/Events/EventDetail.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronLeft } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { cn } from '@/lib/utils';\nimport { ADKMessage } from '@chat-lab/core';\n\ninterface EventDetailProps {\n message: ADKMessage['adkResponses'][number];\n onBack?: () => void;\n}\n\nexport default function EventDetail({ message, onBack }: EventDetailProps) {\n const [activeTab, setActiveTab] = useState<'event' | 'request' | 'response'>(\n 'request',\n );\n\n const getEventTitle = (msg: ADKMessage['adkResponses'][number]) => {\n const parts = msg?.content?.parts || [];\n if (msg?.error) {\n return `error: ${msg.error}`;\n }\n\n const functionCall = parts.find((p: any) => p.functionCall) as any;\n if (functionCall) return `functionCall: ${functionCall.functionCall.name}`;\n\n const functionResponse = parts.find((p: any) => p.functionResponse) as any;\n if (functionResponse)\n return `functionResponse: ${functionResponse.functionResponse.name}`;\n\n const text = parts.find((p: any) => p.text) as any;\n if (text)\n return `text: ${text.text.slice(0, 20)}${text.text.length > 20 ? '...' : ''}`;\n\n return 'Event';\n };\n\n const getTabContent = () => {\n switch (activeTab) {\n case 'event':\n return message;\n // case 'request':\n // // Display raw ADK responses if available, otherwise the message itself\n // return message;\n // case 'response':\n // return {}; // Placeholder for now\n default:\n return message;\n }\n };\n\n return (\n <div className=\"flex flex-col h-full bg-background w-full\">\n <div className=\"flex items-center justify-between px-4 h-12 shrink-0\">\n <div className=\"flex items-center gap-2 overflow-hidden\">\n <button\n onClick={onBack}\n className=\"p-1 hover:bg-muted rounded-full transition-colors shrink-0\"\n >\n <ChevronLeft className=\"w-5 h-5\" />\n </button>\n <h2\n className=\"text-[14px] text-[#0C0D0E] font-medium leading-[22px] truncate\"\n title={getEventTitle(message)}\n >\n {getEventTitle(message)}\n </h2>\n </div>\n
|
|
1
|
+
{"version":3,"file":"EventDetail.js","sources":["../../../../../src/adk/components/Debug/Events/EventDetail.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronLeft } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { cn } from '@/lib/utils';\nimport { ADKMessage } from '@chat-lab/core';\n\ninterface EventDetailProps {\n message: ADKMessage['adkResponses'][number];\n onBack?: () => void;\n}\n\nexport default function EventDetail({ message, onBack }: EventDetailProps) {\n const [activeTab, setActiveTab] = useState<'event' | 'request' | 'response'>(\n 'request',\n );\n\n const getEventTitle = (msg: ADKMessage['adkResponses'][number]) => {\n const parts = msg?.content?.parts || [];\n if (msg?.error) {\n return `error: ${msg.error}`;\n }\n\n const functionCall = parts.find((p: any) => p.functionCall) as any;\n if (functionCall) return `functionCall: ${functionCall.functionCall.name}`;\n\n const functionResponse = parts.find((p: any) => p.functionResponse) as any;\n if (functionResponse)\n return `functionResponse: ${functionResponse.functionResponse.name}`;\n\n const text = parts.find((p: any) => p.text) as any;\n if (text)\n return `text: ${text.text.slice(0, 20)}${text.text.length > 20 ? '...' : ''}`;\n\n return 'Event';\n };\n\n const getTabContent = () => {\n switch (activeTab) {\n case 'event':\n return message;\n // case 'request':\n // // Display raw ADK responses if available, otherwise the message itself\n // return message;\n // case 'response':\n // return {}; // Placeholder for now\n default:\n return message;\n }\n };\n\n return (\n <div className=\"flex flex-col h-full bg-background w-full\">\n <div className=\"flex items-center justify-between px-4 h-12 shrink-0\">\n <div className=\"flex items-center gap-2 overflow-hidden\">\n <button\n onClick={onBack}\n className=\"p-1 hover:bg-muted rounded-full transition-colors shrink-0\"\n >\n <ChevronLeft className=\"w-5 h-5\" />\n </button>\n <h2\n className=\"text-[14px] text-[#0C0D0E] font-medium leading-[22px] truncate\"\n title={getEventTitle(message)}\n >\n {getEventTitle(message)}\n </h2>\n </div>\n </div>\n\n <div className=\"flex-1 overflow-auto p-4\">\n <ReactJson\n src={getTabContent()}\n name={null}\n displayDataTypes={false}\n displayObjectSize={false}\n enableClipboard={true}\n collapsed={2}\n theme=\"rjv-default\"\n style={{ fontSize: '12px', fontFamily: 'monospace' }}\n />\n </div>\n </div>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAWwB,SAAA,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAoB,EAAA;IACvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CACxC,SAAS,CACV,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG,CAAC,GAAuC,KAAI;QAChE,MAAM,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;AACxC,QAAA,IAAI,GAAG,EAAE,KAAK,EAAE;AACd,YAAA,OAAO,CAAU,OAAA,EAAA,GAAG,CAAC,KAAK,EAAE,CAAC;SAC9B;AAED,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,YAAY,CAAQ,CAAC;AACnE,QAAA,IAAI,YAAY;AAAE,YAAA,OAAO,iBAAiB,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAE3E,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,gBAAgB,CAAQ,CAAC;AAC3E,QAAA,IAAI,gBAAgB;AAClB,YAAA,OAAO,qBAAqB,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAEvE,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAQ,CAAC;AACnD,QAAA,IAAI,IAAI;AACN,YAAA,OAAO,CAAS,MAAA,EAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAA,CAAE,CAAC;AAEhF,QAAA,OAAO,OAAO,CAAC;AACjB,KAAC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAK;QACzB,QAAQ,SAAS;AACf,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,OAAO,CAAC;;;;;;AAMjB,YAAA;AACE,gBAAA,OAAO,OAAO,CAAC;SAClB;AACH,KAAC,CAAC;IAEF,QACEA,cAAK,SAAS,EAAC,2CAA2C,EACxD,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uDAAuD,EAAA,QAAA,EACpED,cAAK,SAAS,EAAC,yCAAyC,EAAA,QAAA,EAAA,CACtDC,GACE,CAAA,QAAA,EAAA,EAAA,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,4DAA4D,EAAA,QAAA,EAEtEA,IAAC,WAAW,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,GAC5B,EACTA,GAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAC,gEAAgE,EAC1E,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAA,QAAA,EAE5B,aAAa,CAAC,OAAO,CAAC,EAAA,CACpB,CACD,EAAA,CAAA,EAAA,CACF,EAENA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,0BAA0B,EAAA,QAAA,EACvCA,IAAC,SAAS,EAAA,EACR,GAAG,EAAE,aAAa,EAAE,EACpB,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,KAAK,EACvB,iBAAiB,EAAE,KAAK,EACxB,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,EACZ,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EACpD,CAAA,EAAA,CACE,CACF,EAAA,CAAA,EACN;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventTab.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Events/EventTab.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"EventTab.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Events/EventTab.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAWtC,QAAA,MAAM,MAAM,GAAI,OAAO,WAAW,gBAyJjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -5,6 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var index = require('../../../../node_modules/ahooks/es/useVirtualList/index.cjs');
|
|
6
6
|
var card = require('../../../../components/ui/card.cjs');
|
|
7
7
|
var EventDetail = require('./EventDetail.cjs');
|
|
8
|
+
var Empty = require('../../../../assets/Empty.cjs');
|
|
8
9
|
var keys = require('../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.cjs');
|
|
9
10
|
|
|
10
11
|
const renderSummary = (message) => {
|
|
@@ -55,9 +56,9 @@ const Events = (props) => {
|
|
|
55
56
|
if (selectedMessage) {
|
|
56
57
|
return (jsxRuntime.jsx(card.Card, { className: "bg-background h-full overflow-hidden w-full border-none mt-2", children: jsxRuntime.jsx(EventDetail, { message: selectedMessage, onBack: () => setSelectedMessage(undefined) }) }));
|
|
57
58
|
}
|
|
58
|
-
return (jsxRuntime.jsx(card.Card, { className: "bg-background h-full flex flex-col w-full border-none", children: jsxRuntime.jsx(card.CardContent, { ref: containerRef, className: "flex-1 overflow-y-auto min-h-0 p-4", children: events.length === 0 ? (jsxRuntime.jsx("div", { className: "
|
|
59
|
+
return (jsxRuntime.jsx(card.Card, { className: "bg-background h-full flex flex-col w-full border-none", children: jsxRuntime.jsx(card.CardContent, { ref: containerRef, className: "flex-1 overflow-y-auto min-h-0 p-4", children: events.length === 0 ? (jsxRuntime.jsx("div", { className: "h-full flex items-center justify-center", children: jsxRuntime.jsx(Empty, {}) })) : (jsxRuntime.jsx("div", { ref: wrapperRef, children: list.map(ele => {
|
|
59
60
|
const e = ele.data;
|
|
60
|
-
return (jsxRuntime.jsx("div", { className: "rounded-md border cursor-pointer hover:bg-accent/50 transition
|
|
61
|
+
return (jsxRuntime.jsx("div", { className: "rounded-md border cursor-pointer hover:bg-accent/50 transition mb-2 hover:bg-[#f5f5f5] ", onClick: () => setSelectedMessage(e), children: jsxRuntime.jsx("div", { className: "w-full", children: jsxRuntime.jsx("div", { className: "flex items-center justify-between px-4 py-3", children: jsxRuntime.jsxs("div", { className: "flex items-center gap-3 flex-1 min-w-0 mr-2 font-medium text-[#0C0D0E]", children: [jsxRuntime.jsx("div", { className: " text-muted-foreground shrink-0", children: ele.index }), jsxRuntime.jsx("div", { className: "truncate", children: renderSummary(e) })] }) }) }) }, e.id));
|
|
61
62
|
}) })) }) }));
|
|
62
63
|
};
|
|
63
64
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/adk/components/Debug/Events/index.tsx"],"sourcesContent":["import React, { useMemo, useState, useRef } from 'react';\nimport { useVirtualList } from 'ahooks';\nimport dayjs from 'dayjs';\nimport { EventsProps } from './types';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { Separator } from '@/components/ui/separator';\nimport { ADKMessage, MessageStatus } from '@chat-lab/core';\nimport Trace from '../Trace';\nimport { TraceSpan } from '../Trace/types';\nimport EventDetail from './EventDetail';\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { keys } from 'lodash-es';\n\nconst renderSummary = (message: ADKMessage['adkResponses'][number]) => {\n if (message.error) {\n return `error:${message.error}`;\n }\n if (\n message.actions?.stateDelta &&\n keys(message.actions.stateDelta).length > 0\n ) {\n return `eventAction:state`;\n }\n if (\n message.actions?.artifactDelta &&\n keys(message.actions.artifactDelta).length > 0\n ) {\n return `eventAction:artifact`;\n }\n const parts = (message?.content?.parts || []).map((c: any) => {\n if (c.functionCall) return `functionCall:${c.functionCall.name}`;\n if (c.functionResponse)\n return `functionResponse:${c.functionResponse.name}`;\n if (c.text) return `text:${c.text}`;\n if (c.inlineData) return `inlineData:${c.inlineData.mimeType}`;\n if (c.fileData) return `fileData:${c.fileData.displayName}`;\n if (c.errorMessage) return `errorMessage:${c.errorMessage}`;\n return 'unknown';\n });\n const s = parts.join(' ');\n return s;\n};\nconst Events = (props: EventsProps) => {\n const { messages } = props;\n const [selectedMessage, setSelectedMessage] = useState<\n ADKMessage['adkResponses'][number] | undefined\n >();\n\n const containerRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const events = useMemo(\n () =>\n messages\n .map(msg => msg.adkResponses)\n .filter(Boolean)\n .flat(),\n [messages],\n );\n\n const [list] = useVirtualList(events, {\n containerTarget: containerRef,\n wrapperTarget: wrapperRef,\n itemHeight: 60,\n overscan: 10,\n });\n\n if (selectedMessage) {\n return (\n <Card className=\"bg-background h-full overflow-hidden w-full border-none mt-2\">\n <EventDetail\n message={selectedMessage}\n onBack={() => setSelectedMessage(undefined)}\n />\n </Card>\n );\n }\n\n return (\n <Card className=\"bg-background h-full flex flex-col w-full border-none\">\n <CardContent\n ref={containerRef}\n className=\"flex-1 overflow-y-auto min-h-0 p-4\"\n >\n {events.length === 0 ? (\n <div className=\"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../src/adk/components/Debug/Events/index.tsx"],"sourcesContent":["import React, { useMemo, useState, useRef } from 'react';\nimport { useVirtualList } from 'ahooks';\nimport dayjs from 'dayjs';\nimport { EventsProps } from './types';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { Separator } from '@/components/ui/separator';\nimport { ADKMessage, MessageStatus } from '@chat-lab/core';\nimport Trace from '../Trace';\nimport { TraceSpan } from '../Trace/types';\nimport EventDetail from './EventDetail';\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { keys } from 'lodash-es';\nimport Empty from '@/assets/Empty';\n\nconst renderSummary = (message: ADKMessage['adkResponses'][number]) => {\n if (message.error) {\n return `error:${message.error}`;\n }\n if (\n message.actions?.stateDelta &&\n keys(message.actions.stateDelta).length > 0\n ) {\n return `eventAction:state`;\n }\n if (\n message.actions?.artifactDelta &&\n keys(message.actions.artifactDelta).length > 0\n ) {\n return `eventAction:artifact`;\n }\n const parts = (message?.content?.parts || []).map((c: any) => {\n if (c.functionCall) return `functionCall:${c.functionCall.name}`;\n if (c.functionResponse)\n return `functionResponse:${c.functionResponse.name}`;\n if (c.text) return `text:${c.text}`;\n if (c.inlineData) return `inlineData:${c.inlineData.mimeType}`;\n if (c.fileData) return `fileData:${c.fileData.displayName}`;\n if (c.errorMessage) return `errorMessage:${c.errorMessage}`;\n return 'unknown';\n });\n const s = parts.join(' ');\n return s;\n};\nconst Events = (props: EventsProps) => {\n const { messages } = props;\n const [selectedMessage, setSelectedMessage] = useState<\n ADKMessage['adkResponses'][number] | undefined\n >();\n\n const containerRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const events = useMemo(\n () =>\n messages\n .map(msg => msg.adkResponses)\n .filter(Boolean)\n .flat(),\n [messages],\n );\n\n const [list] = useVirtualList(events, {\n containerTarget: containerRef,\n wrapperTarget: wrapperRef,\n itemHeight: 60,\n overscan: 10,\n });\n\n if (selectedMessage) {\n return (\n <Card className=\"bg-background h-full overflow-hidden w-full border-none mt-2\">\n <EventDetail\n message={selectedMessage}\n onBack={() => setSelectedMessage(undefined)}\n />\n </Card>\n );\n }\n\n return (\n <Card className=\"bg-background h-full flex flex-col w-full border-none\">\n <CardContent\n ref={containerRef}\n className=\"flex-1 overflow-y-auto min-h-0 p-4\"\n >\n {events.length === 0 ? (\n <div className=\"h-full flex items-center justify-center\">\n <Empty />\n </div>\n ) : (\n <div ref={wrapperRef}>\n {list.map(ele => {\n const e = ele.data;\n return (\n <div\n key={e.id}\n className=\"rounded-md border cursor-pointer hover:bg-accent/50 transition mb-2 hover:bg-[#f5f5f5] \"\n onClick={() => setSelectedMessage(e)}\n >\n <div className=\"w-full\">\n <div className=\"flex items-center justify-between px-4 py-3\">\n <div className=\"flex items-center gap-3 flex-1 min-w-0 mr-2 font-medium text-[#0C0D0E]\">\n <div className=\" text-muted-foreground shrink-0\">\n {ele.index}\n </div>\n <div className=\"truncate\">{renderSummary(e)}</div>\n </div>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n )}\n </CardContent>\n </Card>\n );\n};\n\nexport default Events;\n"],"names":["useState","useRef","useMemo","useVirtualList","_jsx","Card","CardContent","_jsxs"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Events/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Events/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAkDtC,QAAA,MAAM,MAAM,GAAI,OAAO,WAAW,gBA0EjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { useState, useRef, useMemo } from 'react';
|
|
|
3
3
|
import useVirtualList from '../../../../node_modules/ahooks/es/useVirtualList/index.js';
|
|
4
4
|
import { Card, CardContent } from '../../../../components/ui/card.js';
|
|
5
5
|
import EventDetail from './EventDetail.js';
|
|
6
|
+
import Empty from '../../../../assets/Empty.js';
|
|
6
7
|
import keys from '../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js';
|
|
7
8
|
|
|
8
9
|
const renderSummary = (message) => {
|
|
@@ -53,9 +54,9 @@ const Events = (props) => {
|
|
|
53
54
|
if (selectedMessage) {
|
|
54
55
|
return (jsx(Card, { className: "bg-background h-full overflow-hidden w-full border-none mt-2", children: jsx(EventDetail, { message: selectedMessage, onBack: () => setSelectedMessage(undefined) }) }));
|
|
55
56
|
}
|
|
56
|
-
return (jsx(Card, { className: "bg-background h-full flex flex-col w-full border-none", children: jsx(CardContent, { ref: containerRef, className: "flex-1 overflow-y-auto min-h-0 p-4", children: events.length === 0 ? (jsx("div", { className: "
|
|
57
|
+
return (jsx(Card, { className: "bg-background h-full flex flex-col w-full border-none", children: jsx(CardContent, { ref: containerRef, className: "flex-1 overflow-y-auto min-h-0 p-4", children: events.length === 0 ? (jsx("div", { className: "h-full flex items-center justify-center", children: jsx(Empty, {}) })) : (jsx("div", { ref: wrapperRef, children: list.map(ele => {
|
|
57
58
|
const e = ele.data;
|
|
58
|
-
return (jsx("div", { className: "rounded-md border cursor-pointer hover:bg-accent/50 transition
|
|
59
|
+
return (jsx("div", { className: "rounded-md border cursor-pointer hover:bg-accent/50 transition mb-2 hover:bg-[#f5f5f5] ", onClick: () => setSelectedMessage(e), children: jsx("div", { className: "w-full", children: jsx("div", { className: "flex items-center justify-between px-4 py-3", children: jsxs("div", { className: "flex items-center gap-3 flex-1 min-w-0 mr-2 font-medium text-[#0C0D0E]", children: [jsx("div", { className: " text-muted-foreground shrink-0", children: ele.index }), jsx("div", { className: "truncate", children: renderSummary(e) })] }) }) }) }, e.id));
|
|
59
60
|
}) })) }) }));
|
|
60
61
|
};
|
|
61
62
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/adk/components/Debug/Events/index.tsx"],"sourcesContent":["import React, { useMemo, useState, useRef } from 'react';\nimport { useVirtualList } from 'ahooks';\nimport dayjs from 'dayjs';\nimport { EventsProps } from './types';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { Separator } from '@/components/ui/separator';\nimport { ADKMessage, MessageStatus } from '@chat-lab/core';\nimport Trace from '../Trace';\nimport { TraceSpan } from '../Trace/types';\nimport EventDetail from './EventDetail';\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { keys } from 'lodash-es';\n\nconst renderSummary = (message: ADKMessage['adkResponses'][number]) => {\n if (message.error) {\n return `error:${message.error}`;\n }\n if (\n message.actions?.stateDelta &&\n keys(message.actions.stateDelta).length > 0\n ) {\n return `eventAction:state`;\n }\n if (\n message.actions?.artifactDelta &&\n keys(message.actions.artifactDelta).length > 0\n ) {\n return `eventAction:artifact`;\n }\n const parts = (message?.content?.parts || []).map((c: any) => {\n if (c.functionCall) return `functionCall:${c.functionCall.name}`;\n if (c.functionResponse)\n return `functionResponse:${c.functionResponse.name}`;\n if (c.text) return `text:${c.text}`;\n if (c.inlineData) return `inlineData:${c.inlineData.mimeType}`;\n if (c.fileData) return `fileData:${c.fileData.displayName}`;\n if (c.errorMessage) return `errorMessage:${c.errorMessage}`;\n return 'unknown';\n });\n const s = parts.join(' ');\n return s;\n};\nconst Events = (props: EventsProps) => {\n const { messages } = props;\n const [selectedMessage, setSelectedMessage] = useState<\n ADKMessage['adkResponses'][number] | undefined\n >();\n\n const containerRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const events = useMemo(\n () =>\n messages\n .map(msg => msg.adkResponses)\n .filter(Boolean)\n .flat(),\n [messages],\n );\n\n const [list] = useVirtualList(events, {\n containerTarget: containerRef,\n wrapperTarget: wrapperRef,\n itemHeight: 60,\n overscan: 10,\n });\n\n if (selectedMessage) {\n return (\n <Card className=\"bg-background h-full overflow-hidden w-full border-none mt-2\">\n <EventDetail\n message={selectedMessage}\n onBack={() => setSelectedMessage(undefined)}\n />\n </Card>\n );\n }\n\n return (\n <Card className=\"bg-background h-full flex flex-col w-full border-none\">\n <CardContent\n ref={containerRef}\n className=\"flex-1 overflow-y-auto min-h-0 p-4\"\n >\n {events.length === 0 ? (\n <div className=\"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/adk/components/Debug/Events/index.tsx"],"sourcesContent":["import React, { useMemo, useState, useRef } from 'react';\nimport { useVirtualList } from 'ahooks';\nimport dayjs from 'dayjs';\nimport { EventsProps } from './types';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { Separator } from '@/components/ui/separator';\nimport { ADKMessage, MessageStatus } from '@chat-lab/core';\nimport Trace from '../Trace';\nimport { TraceSpan } from '../Trace/types';\nimport EventDetail from './EventDetail';\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { keys } from 'lodash-es';\nimport Empty from '@/assets/Empty';\n\nconst renderSummary = (message: ADKMessage['adkResponses'][number]) => {\n if (message.error) {\n return `error:${message.error}`;\n }\n if (\n message.actions?.stateDelta &&\n keys(message.actions.stateDelta).length > 0\n ) {\n return `eventAction:state`;\n }\n if (\n message.actions?.artifactDelta &&\n keys(message.actions.artifactDelta).length > 0\n ) {\n return `eventAction:artifact`;\n }\n const parts = (message?.content?.parts || []).map((c: any) => {\n if (c.functionCall) return `functionCall:${c.functionCall.name}`;\n if (c.functionResponse)\n return `functionResponse:${c.functionResponse.name}`;\n if (c.text) return `text:${c.text}`;\n if (c.inlineData) return `inlineData:${c.inlineData.mimeType}`;\n if (c.fileData) return `fileData:${c.fileData.displayName}`;\n if (c.errorMessage) return `errorMessage:${c.errorMessage}`;\n return 'unknown';\n });\n const s = parts.join(' ');\n return s;\n};\nconst Events = (props: EventsProps) => {\n const { messages } = props;\n const [selectedMessage, setSelectedMessage] = useState<\n ADKMessage['adkResponses'][number] | undefined\n >();\n\n const containerRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const events = useMemo(\n () =>\n messages\n .map(msg => msg.adkResponses)\n .filter(Boolean)\n .flat(),\n [messages],\n );\n\n const [list] = useVirtualList(events, {\n containerTarget: containerRef,\n wrapperTarget: wrapperRef,\n itemHeight: 60,\n overscan: 10,\n });\n\n if (selectedMessage) {\n return (\n <Card className=\"bg-background h-full overflow-hidden w-full border-none mt-2\">\n <EventDetail\n message={selectedMessage}\n onBack={() => setSelectedMessage(undefined)}\n />\n </Card>\n );\n }\n\n return (\n <Card className=\"bg-background h-full flex flex-col w-full border-none\">\n <CardContent\n ref={containerRef}\n className=\"flex-1 overflow-y-auto min-h-0 p-4\"\n >\n {events.length === 0 ? (\n <div className=\"h-full flex items-center justify-center\">\n <Empty />\n </div>\n ) : (\n <div ref={wrapperRef}>\n {list.map(ele => {\n const e = ele.data;\n return (\n <div\n key={e.id}\n className=\"rounded-md border cursor-pointer hover:bg-accent/50 transition mb-2 hover:bg-[#f5f5f5] \"\n onClick={() => setSelectedMessage(e)}\n >\n <div className=\"w-full\">\n <div className=\"flex items-center justify-between px-4 py-3\">\n <div className=\"flex items-center gap-3 flex-1 min-w-0 mr-2 font-medium text-[#0C0D0E]\">\n <div className=\" text-muted-foreground shrink-0\">\n {ele.index}\n </div>\n <div className=\"truncate\">{renderSummary(e)}</div>\n </div>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n )}\n </CardContent>\n </Card>\n );\n};\n\nexport default Events;\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -27,12 +27,12 @@ const TraceDetail = (props) => {
|
|
|
27
27
|
display: 'flex',
|
|
28
28
|
justifyContent: 'space-between',
|
|
29
29
|
alignItems: 'center',
|
|
30
|
-
}, children: [jsxRuntime.jsx("div", { children: jsxRuntime.jsx("div", { className: "text-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
}, children: [jsxRuntime.jsx("div", { children: jsxRuntime.jsx("div", { className: "text-[16px] leading-[22px] text-muted-foreground font-medium break-all", children: "Event" }) }), onCancel && (jsxRuntime.jsx(button.Button, { onClick: onCancel, type: "primary", children: jsxRuntime.jsx(x.default, {}) }))] }), jsxRuntime.jsx("div", { style: { flex: '1 1 auto', overflow: 'auto' }, children: jsxRuntime.jsx(main, { src: span, name: null, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, collapsed: 2, theme: "rjv-default", style: {
|
|
31
|
+
fontSize: '12px',
|
|
32
|
+
fontFamily: 'monospace',
|
|
33
|
+
minWidth: '100%',
|
|
34
|
+
width: 'fit-content',
|
|
35
|
+
} }) })] }) }));
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
module.exports = TraceDetail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceDetail.cjs","sources":["../../../../../src/adk/components/Debug/Trace/TraceDetail.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { TraceSpan } from './types';\nimport { Button } from '@/components/ui/button';\nimport { ClosedCaption, X } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { omit } from 'lodash-es';\n\nconst TraceDetail = (props: {\n selectedSpan?: TraceSpan;\n onCancel?: () => void;\n}) => {\n const { selectedSpan, onCancel } = props;\n\n const span = omit(selectedSpan, 'children');\n // const flatSpans = useMemo(() => {\n // if (!selectedSpan) return [];\n // const result: TraceSpan[] = [];\n // const traverse = (span: TraceSpan) => {\n // const { children, ...rest } = span;\n // result.push(rest as TraceSpan);\n // if (span.children) {\n // span.children.forEach(traverse);\n // }\n // };\n // traverse(selectedSpan);\n // return result;\n // }, [selectedSpan]);\n\n // if (!selectedSpan) return null;\n\n return (\n <div className=\"flex flex-col overflow-auto pl-4 bg-muted/10 h-full border-t\">\n <div className=\"space-y-6 h-full flex flex-col\">\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <div>\n <div className=\"text-
|
|
1
|
+
{"version":3,"file":"TraceDetail.cjs","sources":["../../../../../src/adk/components/Debug/Trace/TraceDetail.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { TraceSpan } from './types';\nimport { Button } from '@/components/ui/button';\nimport { ClosedCaption, X } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { omit } from 'lodash-es';\n\nconst TraceDetail = (props: {\n selectedSpan?: TraceSpan;\n onCancel?: () => void;\n}) => {\n const { selectedSpan, onCancel } = props;\n\n const span = omit(selectedSpan, 'children');\n // const flatSpans = useMemo(() => {\n // if (!selectedSpan) return [];\n // const result: TraceSpan[] = [];\n // const traverse = (span: TraceSpan) => {\n // const { children, ...rest } = span;\n // result.push(rest as TraceSpan);\n // if (span.children) {\n // span.children.forEach(traverse);\n // }\n // };\n // traverse(selectedSpan);\n // return result;\n // }, [selectedSpan]);\n\n // if (!selectedSpan) return null;\n\n return (\n <div className=\"flex flex-col overflow-auto pl-4 bg-muted/10 h-full border-t\">\n <div className=\"space-y-6 h-full flex flex-col\">\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <div>\n <div className=\"text-[16px] leading-[22px] text-muted-foreground font-medium break-all\">\n Event\n </div>\n </div>\n {onCancel && (\n <Button onClick={onCancel} type=\"primary\">\n <X />\n </Button>\n )}\n </div>\n <div style={{ flex: '1 1 auto', overflow: 'auto' }}>\n <ReactJson\n src={span}\n name={null}\n displayDataTypes={false}\n displayObjectSize={false}\n enableClipboard={true}\n collapsed={2}\n theme=\"rjv-default\"\n style={{\n fontSize: '12px',\n fontFamily: 'monospace',\n minWidth: '100%',\n width: 'fit-content',\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default TraceDetail;\n"],"names":["_jsx","_jsxs","Button","X","ReactJson"],"mappings":";;;;;;;;AAOA,MAAM,WAAW,GAAG,CAAC,KAGpB,KAAI;AACH,IAAA,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;AAiB5C,IAAA,QACEA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAC3EC,eAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAC7C,QAAA,EAAA,CAAAA,eAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,cAAc,EAAE,eAAe;AAC/B,wBAAA,UAAU,EAAE,QAAQ;AACrB,qBAAA,EAAA,QAAA,EAAA,CAEDD,cACE,CAAA,KAAA,EAAA,EAAA,QAAA,EAAAA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wEAAwE,EAEjF,QAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CACF,EACL,QAAQ,KACPA,cAAA,CAACE,aAAM,EAAA,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,SAAS,EAAA,QAAA,EACvCF,cAAC,CAAAG,SAAC,KAAG,EACE,CAAA,CACV,CACG,EAAA,CAAA,EACNH,wBAAK,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAChD,QAAA,EAAAA,cAAA,CAACI,IAAS,EACR,EAAA,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,KAAK,EACvB,iBAAiB,EAAE,KAAK,EACxB,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,EACZ,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE;AACL,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,UAAU,EAAE,WAAW;AACvB,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,KAAK,EAAE,aAAa;AACrB,yBAAA,EAAA,CACD,EACE,CAAA,CAAA,EAAA,CACF,EACF,CAAA,EACN;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceDetail.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Trace/TraceDetail.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMpC,QAAA,MAAM,WAAW,GAAI,OAAO;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,
|
|
1
|
+
{"version":3,"file":"TraceDetail.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Trace/TraceDetail.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMpC,QAAA,MAAM,WAAW,GAAI,OAAO;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,gBA6DA,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -25,12 +25,12 @@ const TraceDetail = (props) => {
|
|
|
25
25
|
display: 'flex',
|
|
26
26
|
justifyContent: 'space-between',
|
|
27
27
|
alignItems: 'center',
|
|
28
|
-
}, children: [jsx("div", { children: jsx("div", { className: "text-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
}, children: [jsx("div", { children: jsx("div", { className: "text-[16px] leading-[22px] text-muted-foreground font-medium break-all", children: "Event" }) }), onCancel && (jsx(Button, { onClick: onCancel, type: "primary", children: jsx(X, {}) }))] }), jsx("div", { style: { flex: '1 1 auto', overflow: 'auto' }, children: jsx(ReactJson, { src: span, name: null, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, collapsed: 2, theme: "rjv-default", style: {
|
|
29
|
+
fontSize: '12px',
|
|
30
|
+
fontFamily: 'monospace',
|
|
31
|
+
minWidth: '100%',
|
|
32
|
+
width: 'fit-content',
|
|
33
|
+
} }) })] }) }));
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export { TraceDetail as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceDetail.js","sources":["../../../../../src/adk/components/Debug/Trace/TraceDetail.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { TraceSpan } from './types';\nimport { Button } from '@/components/ui/button';\nimport { ClosedCaption, X } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { omit } from 'lodash-es';\n\nconst TraceDetail = (props: {\n selectedSpan?: TraceSpan;\n onCancel?: () => void;\n}) => {\n const { selectedSpan, onCancel } = props;\n\n const span = omit(selectedSpan, 'children');\n // const flatSpans = useMemo(() => {\n // if (!selectedSpan) return [];\n // const result: TraceSpan[] = [];\n // const traverse = (span: TraceSpan) => {\n // const { children, ...rest } = span;\n // result.push(rest as TraceSpan);\n // if (span.children) {\n // span.children.forEach(traverse);\n // }\n // };\n // traverse(selectedSpan);\n // return result;\n // }, [selectedSpan]);\n\n // if (!selectedSpan) return null;\n\n return (\n <div className=\"flex flex-col overflow-auto pl-4 bg-muted/10 h-full border-t\">\n <div className=\"space-y-6 h-full flex flex-col\">\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <div>\n <div className=\"text-
|
|
1
|
+
{"version":3,"file":"TraceDetail.js","sources":["../../../../../src/adk/components/Debug/Trace/TraceDetail.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { TraceSpan } from './types';\nimport { Button } from '@/components/ui/button';\nimport { ClosedCaption, X } from 'lucide-react';\nimport ReactJson from 'react-json-view';\nimport { omit } from 'lodash-es';\n\nconst TraceDetail = (props: {\n selectedSpan?: TraceSpan;\n onCancel?: () => void;\n}) => {\n const { selectedSpan, onCancel } = props;\n\n const span = omit(selectedSpan, 'children');\n // const flatSpans = useMemo(() => {\n // if (!selectedSpan) return [];\n // const result: TraceSpan[] = [];\n // const traverse = (span: TraceSpan) => {\n // const { children, ...rest } = span;\n // result.push(rest as TraceSpan);\n // if (span.children) {\n // span.children.forEach(traverse);\n // }\n // };\n // traverse(selectedSpan);\n // return result;\n // }, [selectedSpan]);\n\n // if (!selectedSpan) return null;\n\n return (\n <div className=\"flex flex-col overflow-auto pl-4 bg-muted/10 h-full border-t\">\n <div className=\"space-y-6 h-full flex flex-col\">\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <div>\n <div className=\"text-[16px] leading-[22px] text-muted-foreground font-medium break-all\">\n Event\n </div>\n </div>\n {onCancel && (\n <Button onClick={onCancel} type=\"primary\">\n <X />\n </Button>\n )}\n </div>\n <div style={{ flex: '1 1 auto', overflow: 'auto' }}>\n <ReactJson\n src={span}\n name={null}\n displayDataTypes={false}\n displayObjectSize={false}\n enableClipboard={true}\n collapsed={2}\n theme=\"rjv-default\"\n style={{\n fontSize: '12px',\n fontFamily: 'monospace',\n minWidth: '100%',\n width: 'fit-content',\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default TraceDetail;\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;AAOA,MAAM,WAAW,GAAG,CAAC,KAGpB,KAAI;AACH,IAAA,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;AAiB5C,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAC3EC,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAC7C,QAAA,EAAA,CAAAA,IAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,cAAc,EAAE,eAAe;AAC/B,wBAAA,UAAU,EAAE,QAAQ;AACrB,qBAAA,EAAA,QAAA,EAAA,CAEDD,GACE,CAAA,KAAA,EAAA,EAAA,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wEAAwE,EAEjF,QAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CACF,EACL,QAAQ,KACPA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,SAAS,EAAA,QAAA,EACvCA,GAAC,CAAA,CAAC,KAAG,EACE,CAAA,CACV,CACG,EAAA,CAAA,EACNA,aAAK,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAChD,QAAA,EAAAA,GAAA,CAAC,SAAS,EACR,EAAA,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,KAAK,EACvB,iBAAiB,EAAE,KAAK,EACxB,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,EACZ,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE;AACL,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,UAAU,EAAE,WAAW;AACvB,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,KAAK,EAAE,aAAa;AACrB,yBAAA,EAAA,CACD,EACE,CAAA,CAAA,EAAA,CACF,EACF,CAAA,EACN;AACJ;;;;"}
|
|
@@ -4,10 +4,13 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var utils$1 = require('../../../../lib/utils.cjs');
|
|
6
6
|
var utils = require('./utils.cjs');
|
|
7
|
+
var Empty = require('../../../../assets/Empty.cjs');
|
|
7
8
|
var chevronDown = require('../../../../node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs');
|
|
8
9
|
var chevronRight = require('../../../../node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs');
|
|
10
|
+
var loaderCircle = require('../../../../node_modules/.pnpm/lucide-react@0.552.0_react@17.0.2/node_modules/lucide-react/dist/esm/icons/loader-circle.cjs');
|
|
9
11
|
|
|
10
|
-
const TraceMessageGroup = ({ msg, msgIndex, invocationId, traces, isExpanded, onToggleExpand, collapsedIds, onToggleCollapse, selectedSpan, onSelectSpan, }) => {
|
|
12
|
+
const TraceMessageGroup = ({ msg, msgIndex, loading, invocationId, traces, isExpanded, onToggleExpand, collapsedIds, onToggleCollapse, selectedSpan, onSelectSpan, }) => {
|
|
13
|
+
const [hasRootSpan, setHasRootSpan] = React.useState(false);
|
|
11
14
|
// Process and build render tree for this message's traces
|
|
12
15
|
const { renderList, totalDuration } = React.useMemo(() => {
|
|
13
16
|
if (!traces.length)
|
|
@@ -21,21 +24,25 @@ const TraceMessageGroup = ({ msg, msgIndex, invocationId, traces, isExpanded, on
|
|
|
21
24
|
if (end > maxEnd)
|
|
22
25
|
maxEnd = end;
|
|
23
26
|
});
|
|
27
|
+
const level0Span = list.find(node => node.level === 0);
|
|
28
|
+
if (level0Span && level0Span?.span.name === 'POST /run_sse') {
|
|
29
|
+
setHasRootSpan(true);
|
|
30
|
+
}
|
|
24
31
|
return {
|
|
25
32
|
renderList: list,
|
|
26
33
|
totalDuration: Math.max(maxEnd, 1),
|
|
27
34
|
};
|
|
28
35
|
}, [traces, collapsedIds]);
|
|
29
|
-
return (jsxRuntime.jsxs("div", { className: "border border-[#EAEDF1] rounded-[8px]", children: [jsxRuntime.jsxs("div", { className:
|
|
36
|
+
return (jsxRuntime.jsxs("div", { className: "border border-[#EAEDF1] rounded-[8px]", children: [jsxRuntime.jsxs("div", { className: utils$1.cn('flex items-center justify-between p-4 bg-card hover:bg-muted/30 cursor-pointer top-0 z-30 transition', isExpanded ? '' : 'hover:bg-[#f5f5f5] '), onClick: () => onToggleExpand(msg.id), children: [jsxRuntime.jsx("div", { className: "flex items-center gap-2 font-medium truncate pr-4 leading-[22px] text-[#0C0D0E]", children: jsxRuntime.jsx("span", { className: "text-muted-foreground font-mono leading-[22px] font-medium truncate text-[#0C0D0E]", children: typeof msg.content === 'string'
|
|
30
37
|
? msg.content
|
|
31
|
-
: msg?.content?.[0]?.text || 'Unknown Message' }) }), isExpanded ? (jsxRuntime.jsx(chevronDown.default, { className: "w-4 h-4 text-muted-foreground shrink-0" })) : (jsxRuntime.jsx(chevronRight.default, { className: "w-4 h-4 text-muted-foreground shrink-0" }))] }), isExpanded && (jsxRuntime.jsxs("div", { className: "flex flex-col px-4", children: [jsxRuntime.jsxs("div", { className: "text-[13px] leading-[22px] text-[#737A87] mb-2", children: ["Invocation ID:", jsxRuntime.jsx("div", { children: invocationId })] }), renderList.length > 0
|
|
38
|
+
: msg?.content?.[0]?.text || 'Unknown Message' }) }), isExpanded ? (jsxRuntime.jsx(chevronDown.default, { className: "w-4 h-4 text-muted-foreground shrink-0" })) : (jsxRuntime.jsx(chevronRight.default, { className: "w-4 h-4 text-muted-foreground shrink-0" }))] }), isExpanded && (jsxRuntime.jsxs("div", { className: "flex flex-col px-4", children: [jsxRuntime.jsxs("div", { className: "text-[13px] leading-[22px] text-[#737A87] mb-2", children: ["Invocation ID:", jsxRuntime.jsx("div", { children: invocationId })] }), renderList.length > 0 && hasRootSpan && (jsxRuntime.jsx("div", { className: utils$1.cn('flex flex-col pt-0'), children: jsxRuntime.jsx("div", { className: "min-w-fit flex flex-col font-sans text-xs", children: jsxRuntime.jsx("div", { className: "flex flex-col", children: renderList.map((node, index) => {
|
|
32
39
|
const isSelected = node.span.id === selectedSpan?.id;
|
|
33
40
|
const duration = node.span.duration || 0;
|
|
34
41
|
const hasChildren = node.span.children && node.span.children.length > 0;
|
|
35
42
|
// Timeline calculations
|
|
36
43
|
const relativeWidth = (duration / totalDuration) * 100;
|
|
37
44
|
const relativeLeft = (node.offset / totalDuration) * 100;
|
|
38
|
-
return (jsxRuntime.jsxs("div", { className: utils$1.cn('flex items-center py-1
|
|
45
|
+
return (jsxRuntime.jsxs("div", { className: utils$1.cn('flex items-center py-1 relative cursor-pointer hover:bg-muted/50 rounded-sm group min-h-[32px] overflow-hidden', isSelected && 'bg-muted'), onClick: () => {
|
|
39
46
|
onSelectSpan(isSelected ? null : node.span);
|
|
40
47
|
}, children: [jsxRuntime.jsxs("div", { className: "flex items-center w-[50%] shrink-0 h-full relative overflow-hidden pr-4", children: [jsxRuntime.jsx("div", { className: "flex shrink-0 h-full absolute left-0 top-0 bottom-0 pointer-events-none", children: node.guides.map((hasLine, i) => (jsxRuntime.jsx("div", { className: "h-full relative flex justify-center", style: { width: utils.INDENT_SIZE }, children: hasLine && (jsxRuntime.jsx("div", { className: "w-px h-full bg-border/50" })) }, i))) }), node.level > 0 && (jsxRuntime.jsxs("div", { className: "absolute h-full pointer-events-none", style: {
|
|
41
48
|
left: (node.level - 1) * utils.INDENT_SIZE,
|
|
@@ -50,7 +57,7 @@ const TraceMessageGroup = ({ msg, msgIndex, invocationId, traces, isExpanded, on
|
|
|
50
57
|
width: `${Math.max(relativeWidth, 0.1)}%`,
|
|
51
58
|
minWidth: '1px',
|
|
52
59
|
}, children: [jsxRuntime.jsx("div", { className: "absolute left-0 top-0 bottom-0 bg-[#D1F5DD] z-0 rounded w-full" }), jsxRuntime.jsxs("span", { className: "whitespace-nowrap text-xs font-mono font-medium text-green-900 z-10 relative px-1", children: [duration.toFixed(2), " ms"] })] }) })] }, node.span.id || index));
|
|
53
|
-
}) }) }) })) : (jsxRuntime.jsx("div", { className: "
|
|
60
|
+
}) }) }) })), !hasRootSpan && !loading && (jsxRuntime.jsx("div", { className: "h-[200px] flex items-center justify-center", children: jsxRuntime.jsx(Empty, {}) })), !hasRootSpan && loading && (jsxRuntime.jsx("div", { className: "h-[200px] flex items-center justify-center", children: jsxRuntime.jsx(loaderCircle.default, { className: "size-[6] animate-spin" }) }))] }))] }));
|
|
54
61
|
};
|
|
55
62
|
|
|
56
63
|
module.exports = TraceMessageGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceMessageGroup.cjs","sources":["../../../../../src/adk/components/Debug/Trace/TraceMessageGroup.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { cn } from '@/lib/utils';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport { TraceSpan } from './types';\nimport {\n getIcon,\n processTraceData,\n buildRenderTree,\n INDENT_SIZE,\n} from './utils';\n\ninterface TraceMessageGroupProps {\n msg: any;\n msgIndex: number;\n invocationId?: string;\n traces: TraceSpan[];\n isExpanded: boolean;\n onToggleExpand: (id: string) => void;\n collapsedIds: Set<string>;\n onToggleCollapse: (id: string, e: React.MouseEvent) => void;\n selectedSpan: TraceSpan | null;\n onSelectSpan: (span: TraceSpan | null) => void;\n}\n\nconst TraceMessageGroup: React.FC<TraceMessageGroupProps> = ({\n msg,\n msgIndex,\n invocationId,\n traces,\n isExpanded,\n onToggleExpand,\n collapsedIds,\n onToggleCollapse,\n selectedSpan,\n onSelectSpan,\n}) => {\n // Process and build render tree for this message's traces\n const { renderList, totalDuration } = useMemo(() => {\n if (!traces.length) return { renderList: [], totalDuration: 1 };\n\n const processedTrace = processTraceData(traces);\n const list = buildRenderTree(processedTrace, collapsedIds);\n\n // Calculate duration for this group based on the sequential layout\n let maxEnd = 0;\n list.forEach(node => {\n const end = node.offset + (node.span.duration || 0);\n if (end > maxEnd) maxEnd = end;\n });\n\n return {\n renderList: list,\n totalDuration: Math.max(maxEnd, 1),\n };\n }, [traces, collapsedIds]);\n\n return (\n <div className=\"border border-[#EAEDF1] rounded-[8px]\">\n {/* Header Card */}\n <div\n className=\"flex items-center justify-between p-4 bg-card hover:bg-muted/30 cursor-pointer transition-colors sticky top-0 z-30\"\n onClick={() => onToggleExpand(msg.id)}\n >\n <div className=\"flex items-center gap-2 bg-white font-medium truncate pr-4 leading-[22px] text-[#0C0D0E]\">\n <span className=\"text-muted-foreground font-mono leading-[22px] font-medium truncate text-[#0C0D0E]\">\n {typeof msg.content === 'string'\n ? msg.content\n : msg?.content?.[0]?.text || 'Unknown Message'}\n </span>\n </div>\n {isExpanded ? (\n <ChevronDown className=\"w-4 h-4 text-muted-foreground shrink-0\" />\n ) : (\n <ChevronRight className=\"w-4 h-4 text-muted-foreground shrink-0\" />\n )}\n </div>\n\n {isExpanded && (\n <div className=\"flex flex-col px-4\">\n {/* Trace Tree List */}\n <div className=\"text-[13px] leading-[22px] text-[#737A87] mb-2\">\n Invocation ID:\n <div>{invocationId}</div>\n </div>\n {renderList.length > 0 ? (\n <div className={cn('flex flex-col pt-0')}>\n <div className=\"min-w-fit flex flex-col font-sans text-xs\">\n <div className=\"flex flex-col\">\n {renderList.map((node, index) => {\n const isSelected = node.span.id === selectedSpan?.id;\n const duration = node.span.duration || 0;\n const hasChildren =\n node.span.children && node.span.children.length > 0;\n\n // Timeline calculations\n const relativeWidth = (duration / totalDuration) * 100;\n const relativeLeft = (node.offset / totalDuration) * 100;\n\n return (\n <div\n key={node.span.id || index}\n className={cn(\n 'flex items-center py-1 px-2 relative cursor-pointer hover:bg-muted/50 rounded-sm group min-h-[32px] overflow-hidden',\n isSelected && 'bg-muted',\n )}\n onClick={() => {\n onSelectSpan(isSelected ? null : node.span);\n }}\n >\n {/* Left Section: Tree Lines + Icon + Name */}\n <div className=\"flex items-center w-[50%] shrink-0 h-full relative overflow-hidden pr-4\">\n {/* Tree Guides and Connectors */}\n <div className=\"flex shrink-0 h-full absolute left-0 top-0 bottom-0 pointer-events-none\">\n {node.guides.map((hasLine, i) => (\n <div\n key={i}\n className=\"h-full relative flex justify-center\"\n style={{ width: INDENT_SIZE }}\n >\n {hasLine && (\n <div className=\"w-px h-full bg-border/50\" />\n )}\n </div>\n ))}\n </div>\n\n {/* Current Node Connector (Lines) */}\n {node.level > 0 && (\n <div\n className=\"absolute h-full pointer-events-none\"\n style={{\n left: (node.level - 1) * INDENT_SIZE,\n width: INDENT_SIZE,\n }}\n >\n <div\n className={cn(\n 'absolute right-0 top-0 w-[50%] h-[50%] border-b border-l border-border/50 rounded-bl-lg',\n )}\n style={{\n transform: 'translateX(-0.5px)',\n }}\n />\n {!node.isLast && (\n <div className=\"absolute left-1/2 top-1/2 bottom-0 w-px bg-border/50 -translate-x-1/2\" />\n )}\n </div>\n )}\n\n {/* Line to Children (if any) */}\n {hasChildren && !node.isCollapsed && (\n <div\n className=\"absolute h-1/2 bottom-0 pointer-events-none\"\n style={{\n left: node.level * INDENT_SIZE,\n width: INDENT_SIZE,\n }}\n >\n <div className=\"absolute left-1/2 top-0 bottom-0 w-px bg-border/50 -translate-x-1/2\" />\n </div>\n )}\n\n {/* Spacing for Indentation */}\n <div\n style={{ width: node.level * INDENT_SIZE }}\n className=\"shrink-0\"\n />\n\n {/* Collapse Toggle or Spacer */}\n <div className=\"w-4 h-4 mr-1 shrink-0 flex items-center justify-center relative z-20\">\n {hasChildren && (\n <div\n onClick={e => onToggleCollapse(node.span.id, e)}\n className=\"cursor-pointer hover:bg-black/10 rounded p-0.5 transition-colors\"\n >\n {node.isCollapsed ? (\n <ChevronRight className=\"w-3 h-3\" />\n ) : (\n <ChevronDown className=\"w-3 h-3\" />\n )}\n </div>\n )}\n </div>\n\n {/* Icon */}\n <span className=\"mr-2 shrink-0 z-10 relative bg-background rounded-full\">\n {getIcon(node)}\n </span>\n\n <div\n className=\"truncate font-sans text-sm text-foreground/90\"\n title={node.span.name}\n >\n {node.span.name}\n </div>\n </div>\n\n {/* Right Section: Duration Bar */}\n <div className=\"flex-1 h-full relative flex items-center\">\n <div\n className=\"absolute top-1/2 -translate-y-1/2 h-[24px] flex items-center rounded\"\n style={{\n left: `${relativeLeft}%`,\n width: `${Math.max(relativeWidth, 0.1)}%`,\n minWidth: '1px',\n }}\n >\n {/* Background Progress Bar */}\n <div className=\"absolute left-0 top-0 bottom-0 bg-[#D1F5DD] z-0 rounded w-full\" />\n {/* Text Content */}\n <span className=\"whitespace-nowrap text-xs font-mono font-medium text-green-900 z-10 relative px-1\">\n {duration.toFixed(2)} ms\n </span>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n ) : (\n <div className=\"text-muted-foreground pb-2\">\n {`暂无 Trace 数据。`}\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default TraceMessageGroup;\n"],"names":["useMemo","processTraceData","buildRenderTree","_jsxs","_jsx","ChevronDown","ChevronRight","cn","INDENT_SIZE","getIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TraceMessageGroup.cjs","sources":["../../../../../src/adk/components/Debug/Trace/TraceMessageGroup.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { cn } from '@/lib/utils';\nimport { ChevronDown, ChevronRight, LoaderCircle } from 'lucide-react';\nimport { TraceSpan } from './types';\nimport {\n getIcon,\n processTraceData,\n buildRenderTree,\n INDENT_SIZE,\n RenderNode,\n} from './utils';\nimport Empty from '@/assets/Empty';\n\ninterface TraceMessageGroupProps {\n msg: any;\n msgIndex: number;\n invocationId?: string;\n traces: TraceSpan[];\n loading: boolean;\n isExpanded: boolean;\n onToggleExpand: (id: string) => void;\n collapsedIds: Set<string>;\n onToggleCollapse: (id: string, e: React.MouseEvent) => void;\n selectedSpan: TraceSpan | null;\n onSelectSpan: (span: TraceSpan | null) => void;\n}\n\nconst TraceMessageGroup: React.FC<TraceMessageGroupProps> = ({\n msg,\n msgIndex,\n loading,\n invocationId,\n traces,\n isExpanded,\n onToggleExpand,\n collapsedIds,\n onToggleCollapse,\n selectedSpan,\n onSelectSpan,\n}) => {\n const [hasRootSpan, setHasRootSpan] = useState<boolean>(false);\n // Process and build render tree for this message's traces\n const { renderList, totalDuration } = useMemo(() => {\n if (!traces.length) return { renderList: [], totalDuration: 1 };\n\n const processedTrace = processTraceData(traces);\n const list = buildRenderTree(processedTrace, collapsedIds);\n\n // Calculate duration for this group based on the sequential layout\n let maxEnd = 0;\n list.forEach(node => {\n const end = node.offset + (node.span.duration || 0);\n if (end > maxEnd) maxEnd = end;\n });\n\n const level0Span = list.find(node => node.level === 0);\n\n if (level0Span && level0Span?.span.name === 'POST /run_sse') {\n setHasRootSpan(true);\n }\n return {\n renderList: list,\n totalDuration: Math.max(maxEnd, 1),\n };\n }, [traces, collapsedIds]);\n\n return (\n <div className=\"border border-[#EAEDF1] rounded-[8px]\">\n {/* Header Card */}\n <div\n className={cn(\n 'flex items-center justify-between p-4 bg-card hover:bg-muted/30 cursor-pointer top-0 z-30 transition',\n isExpanded ? '' : 'hover:bg-[#f5f5f5] ',\n )}\n onClick={() => onToggleExpand(msg.id)}\n >\n <div className=\"flex items-center gap-2 font-medium truncate pr-4 leading-[22px] text-[#0C0D0E]\">\n <span className=\"text-muted-foreground font-mono leading-[22px] font-medium truncate text-[#0C0D0E]\">\n {typeof msg.content === 'string'\n ? msg.content\n : msg?.content?.[0]?.text || 'Unknown Message'}\n </span>\n </div>\n {isExpanded ? (\n <ChevronDown className=\"w-4 h-4 text-muted-foreground shrink-0\" />\n ) : (\n <ChevronRight className=\"w-4 h-4 text-muted-foreground shrink-0\" />\n )}\n </div>\n\n {isExpanded && (\n <div className=\"flex flex-col px-4\">\n {/* Trace Tree List */}\n <div className=\"text-[13px] leading-[22px] text-[#737A87] mb-2\">\n Invocation ID:\n <div>{invocationId}</div>\n </div>\n {renderList.length > 0 && hasRootSpan && (\n <div className={cn('flex flex-col pt-0')}>\n <div className=\"min-w-fit flex flex-col font-sans text-xs\">\n <div className=\"flex flex-col\">\n {renderList.map((node, index) => {\n const isSelected = node.span.id === selectedSpan?.id;\n const duration = node.span.duration || 0;\n const hasChildren =\n node.span.children && node.span.children.length > 0;\n\n // Timeline calculations\n const relativeWidth = (duration / totalDuration) * 100;\n const relativeLeft = (node.offset / totalDuration) * 100;\n\n return (\n <div\n key={node.span.id || index}\n className={cn(\n 'flex items-center py-1 relative cursor-pointer hover:bg-muted/50 rounded-sm group min-h-[32px] overflow-hidden',\n isSelected && 'bg-muted',\n )}\n onClick={() => {\n onSelectSpan(isSelected ? null : node.span);\n }}\n >\n {/* Left Section: Tree Lines + Icon + Name */}\n <div className=\"flex items-center w-[50%] shrink-0 h-full relative overflow-hidden pr-4\">\n {/* Tree Guides and Connectors */}\n <div className=\"flex shrink-0 h-full absolute left-0 top-0 bottom-0 pointer-events-none\">\n {node.guides.map((hasLine, i) => (\n <div\n key={i}\n className=\"h-full relative flex justify-center\"\n style={{ width: INDENT_SIZE }}\n >\n {hasLine && (\n <div className=\"w-px h-full bg-border/50\" />\n )}\n </div>\n ))}\n </div>\n\n {/* Current Node Connector (Lines) */}\n {node.level > 0 && (\n <div\n className=\"absolute h-full pointer-events-none\"\n style={{\n left: (node.level - 1) * INDENT_SIZE,\n width: INDENT_SIZE,\n }}\n >\n <div\n className={cn(\n 'absolute right-0 top-0 w-[50%] h-[50%] border-b border-l border-border/50 rounded-bl-lg',\n )}\n style={{\n transform: 'translateX(-0.5px)',\n }}\n />\n {!node.isLast && (\n <div className=\"absolute left-1/2 top-1/2 bottom-0 w-px bg-border/50 -translate-x-1/2\" />\n )}\n </div>\n )}\n\n {/* Line to Children (if any) */}\n {hasChildren && !node.isCollapsed && (\n <div\n className=\"absolute h-1/2 bottom-0 pointer-events-none\"\n style={{\n left: node.level * INDENT_SIZE,\n width: INDENT_SIZE,\n }}\n >\n <div className=\"absolute left-1/2 top-0 bottom-0 w-px bg-border/50 -translate-x-1/2\" />\n </div>\n )}\n\n {/* Spacing for Indentation */}\n <div\n style={{ width: node.level * INDENT_SIZE }}\n className=\"shrink-0\"\n />\n\n {/* Collapse Toggle or Spacer */}\n <div className=\"w-4 h-4 mr-1 shrink-0 flex items-center justify-center relative z-20\">\n {hasChildren && (\n <div\n onClick={e => onToggleCollapse(node.span.id, e)}\n className=\"cursor-pointer hover:bg-black/10 rounded p-0.5 transition-colors\"\n >\n {node.isCollapsed ? (\n <ChevronRight className=\"w-3 h-3\" />\n ) : (\n <ChevronDown className=\"w-3 h-3\" />\n )}\n </div>\n )}\n </div>\n\n {/* Icon */}\n <span className=\"mr-2 shrink-0 z-10 relative bg-background rounded-full\">\n {getIcon(node)}\n </span>\n\n <div\n className=\"truncate font-sans text-sm text-foreground/90\"\n title={node.span.name}\n >\n {node.span.name}\n </div>\n </div>\n\n {/* Right Section: Duration Bar */}\n <div className=\"flex-1 h-full relative flex items-center\">\n <div\n className=\"absolute top-1/2 -translate-y-1/2 h-[24px] flex items-center rounded\"\n style={{\n left: `${relativeLeft}%`,\n width: `${Math.max(relativeWidth, 0.1)}%`,\n minWidth: '1px',\n }}\n >\n {/* Background Progress Bar */}\n <div className=\"absolute left-0 top-0 bottom-0 bg-[#D1F5DD] z-0 rounded w-full\" />\n {/* Text Content */}\n <span className=\"whitespace-nowrap text-xs font-mono font-medium text-green-900 z-10 relative px-1\">\n {duration.toFixed(2)} ms\n </span>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n )}\n {!hasRootSpan && !loading && (\n <div className=\"h-[200px] flex items-center justify-center\">\n <Empty />\n </div>\n )}\n {!hasRootSpan && loading && (\n <div className=\"h-[200px] flex items-center justify-center\">\n <LoaderCircle className=\"size-[6] animate-spin\" />\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default TraceMessageGroup;\n"],"names":["useState","useMemo","processTraceData","buildRenderTree","_jsxs","cn","_jsx","ChevronDown","ChevronRight","INDENT_SIZE","getIcon","LoaderCircle"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceMessageGroup.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Trace/TraceMessageGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TraceMessageGroup.d.ts","sourceRoot":"","sources":["../../../../../src/adk/components/Debug/Trace/TraceMessageGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAUpC,UAAU,sBAAsB;IAC9B,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5D,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8NvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|