@langsword/trace 0.0.4 → 0.0.5

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/trace.css CHANGED
@@ -6,4 +6,4 @@
6
6
  * Released under the MIT license
7
7
  *
8
8
  * Date: 2024-11-24T04:32:14.526Z
9
- */.viewer-zoom-in:before,.viewer-zoom-out:before,.viewer-one-to-one:before,.viewer-reset:before,.viewer-prev:before,.viewer-play:before,.viewer-next:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen:before,.viewer-fullscreen-exit:before,.viewer-close:before{background-image:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 560 40%22%3E%3Cpath fill%3D%22%23fff%22 d%3D%22M49.6 17.9h20.2v3.9H49.6zm123.1 2 10.9-11 2.7 2.8-8.2 8.2 8.2 8.2-2.7 2.7-10.9-10.9zm94 0-10.8-11-2.7 2.8 8.1 8.2-8.1 8.2 2.7 2.7 10.8-10.9zM212 9.3l20.1 10.6L212 30.5V9.3zm161.5 4.6-7.2 6 7.2 5.9v-4h12.4v4l7.3-5.9-7.3-6v4h-12.4v-4zm40.2 12.3 5.9 7.2 5.9-7.2h-4V13.6h4l-5.9-7.3-5.9 7.3h4v12.6h-4zm35.9-16.5h6.3v2h-4.3V16h-2V9.7Zm14 0h6.2V16h-2v-4.3h-4.2v-2Zm6.2 14V30h-6.2v-2h4.2v-4.3h2Zm-14 6.3h-6.2v-6.3h2v4.4h4.3v2Zm-438 .1v-8.3H9.6v-3.9h8.2V9.7h3.9v8.2h8.1v3.9h-8.1v8.3h-3.9zM93.6 9.7h-5.8v3.9h2V30h3.8V9.7zm16.1 0h-5.8v3.9h1.9V30h3.9V9.7zm-11.9 4.1h3.9v3.9h-3.9zm0 8.2h3.9v3.9h-3.9zm244.6-11.7 7.2 5.9-7.2 6v-3.6c-5.4-.4-7.8.8-8.7 2.8-.8 1.7-1.8 4.9 2.8 8.2-6.3-2-7.5-6.9-6-11.3 1.6-4.4 8-5 11.9-4.9v-3.1Zm147.2 13.4h6.3V30h-2v-4.3h-4.3v-2zm14 6.3v-6.3h6.2v2h-4.3V30h-1.9zm6.2-14h-6.2V9.7h1.9V14h4.3v2zm-13.9 0h-6.3v-2h4.3V9.7h2V16zm33.3 12.5 8.6-8.6-8.6-8.7 1.9-1.9 8.6 8.7 8.6-8.7 1.9 1.9-8.6 8.7 8.6 8.6-1.9 2-8.6-8.7-8.6 8.7-1.9-2zM297 10.3l-7.1 5.9 7.2 6v-3.6c5.3-.4 7.7.8 8.7 2.8.8 1.7 1.7 4.9-2.9 8.2 6.3-2 7.5-6.9 6-11.3-1.6-4.4-7.9-5-11.8-4.9v-3.1Zm-157.3-.6c2.3 0 4.4.7 6 2l2.5-3 1.9 9.2h-9.3l2.6-3.1a6.2 6.2 0 0 0-9.9 5.1c0 3.4 2.8 6.3 6.2 6.3 2.8 0 5.1-1.9 6-4.4h4c-1 4.7-5 8.3-10 8.3a10 10 0 0 1-10-10.2 10 10 0 0 1 10-10.2Z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.viewer-container::-moz-selection,.viewer-container *::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container *::selection{background-color:transparent}.viewer-container:focus{outline:0}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:#00000080;overflow:hidden}.viewer-list{box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;transition:opacity .15s;width:30px}.viewer-list>li:focus,.viewer-list>li:hover{opacity:.75}.viewer-list>li:focus{outline:0}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:focus,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;left:0;position:absolute;right:0;top:0;z-index:1}.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:6px 3px}.viewer-toolbar>ul>li{background-color:#00000080;border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:focus,.viewer-toolbar>ul>li:hover{background-color:#000c}.viewer-toolbar>ul>li:focus{box-shadow:0 0 3px #fff;outline:0;position:relative;z-index:1}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:#000c;border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1.2;margin:5px 5%;max-width:90%;min-height:14px;opacity:.8;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{-webkit-app-region:no-drag;background-color:#00000080;border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:#000c}.viewer-button:focus{box-shadow:0 0 3px #fff;outline:0}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:#00000080}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{transition:all .3s}@keyframes viewer-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.viewer-loading:after{animation:viewer-spinner 1s linear infinite;border:4px solid rgba(255,255,255,.1);border-left-color:#ffffff80;border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width: 767px){.viewer-hide-xs-down{display:none}}@media (max-width: 991px){.viewer-hide-sm-down{display:none}}@media (max-width: 1199px){.viewer-hide-md-down{display:none}}.trace-list-container[data-v-c0c90703]{padding:0;font-size:12px;color:#606266;height:100%;display:flex;flex-direction:column}.trace-list-container[data-v-c0c90703] .el-card{border:none;height:100%;display:flex;flex-direction:column}.trace-list-container[data-v-c0c90703] .el-card__body{padding:16px 16px 9px;flex:1;display:flex;flex-direction:column;overflow:hidden}.trace-content-wrapper[data-v-c0c90703]{display:flex;flex-direction:column;flex:1;min-height:0}.trace-table-wrapper[data-v-c0c90703]{flex:1;overflow:auto;margin-bottom:12px;min-height:0}.trace-pagination-wrapper[data-v-c0c90703]{margin-top:auto;padding-top:10px;border-top:1px solid #EBEEF5}.trace-toolbar[data-v-c0c90703]{margin-bottom:12px;padding:12px;background-color:#f8f9fa;border-radius:4px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}.toolbar-input[data-v-c0c90703]{width:300px}.toolbar-date-picker[data-v-c0c90703]{width:400px}.trace-list-container[data-v-c0c90703] .el-table{font-size:12px;color:#606266}.trace-list-container[data-v-c0c90703] .el-table th{background-color:#f3f5fa;color:#606266;font-size:12px;padding:8px 0;font-weight:500}.trace-list-container[data-v-c0c90703] .el-table td{font-size:12px;color:#606266;padding:8px 0}.trace-list-container[data-v-c0c90703] .el-table .el-link{font-size:12px}.trace-list-container[data-v-c0c90703] .el-table .el-button--text{font-size:12px;padding:0}.trace-list-container[data-v-c0c90703] .el-table .el-tag{font-size:12px}.trace-list-container[data-v-c0c90703] .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:#fafafa}.trace-list-container[data-v-c0c90703] .el-table--striped .el-table__body tr.el-table__row--striped:hover td{background-color:#f0f2f5}.trace-row[data-v-c0c90703]{cursor:pointer}.trace-row[data-v-c0c90703]:hover{background-color:#f0f2f5}.trace-pagination[data-v-c0c90703]{text-align:right;font-size:12px;color:#606266;font-weight:400}.trace-pagination[data-v-c0c90703] .el-pagination{font-size:12px;color:#606266;display:flex;align-items:center;justify-content:flex-end}.trace-pagination[data-v-c0c90703] .el-pagination *,.trace-pagination[data-v-c0c90703] .el-pagination__total{font-size:12px;color:#606266;margin-right:8px;height:28px;line-height:28px}.trace-pagination[data-v-c0c90703] .el-pagination .btn-next,.trace-pagination[data-v-c0c90703] .el-pagination .btn-prev,.trace-pagination[data-v-c0c90703] .el-pagination .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px;border:none;font-size:12px;height:28px;line-height:28px}.trace-pagination[data-v-c0c90703] .el-pagination .el-pager li{padding:0 4px;box-sizing:border-box;text-align:center}.trace-pagination[data-v-c0c90703] .el-pagination .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.trace-pagination[data-v-c0c90703] .el-pagination .btn-prev:hover,.trace-pagination[data-v-c0c90703] .el-pagination .btn-next:hover{color:#409eff}.trace-pagination[data-v-c0c90703] .el-pagination .el-pager li:hover:not(.active){color:#409eff}.trace-pagination[data-v-c0c90703] .el-pagination .el-pager li.active:hover{color:#fff}.trace-pagination[data-v-c0c90703] .el-pagination__sizes .el-input{font-size:12px}.trace-pagination[data-v-c0c90703] .el-pagination__sizes .el-input__inner{font-size:12px;height:28px;line-height:28px;padding:0 25px 0 8px}.trace-pagination[data-v-c0c90703] .el-pagination__jump{margin-left:16px;font-size:12px;color:#606266}.trace-pagination[data-v-c0c90703] .el-pagination__editor{font-size:12px;margin:0 4px}.trace-pagination[data-v-c0c90703] .el-pagination__editor .el-input__inner{font-size:12px;height:28px;line-height:28px;padding:0 4px;text-align:center}.text-muted[data-v-c0c90703]{color:#909399}.trace-detail-content[data-v-c0c90703]{height:calc(100vh - 100px);overflow:auto}.trace-info-section[data-v-c0c90703]{margin-bottom:20px;padding:0 10px}.trace-info-section[data-v-c0c90703] .el-descriptions{padding:0;font-size:12px!important}.trace-info-section[data-v-c0c90703] .el-descriptions *{font-size:12px!important}.trace-info-section[data-v-c0c90703] .el-descriptions__body .el-descriptions__table{margin:0}.trace-info-section[data-v-c0c90703] .el-descriptions__body .el-descriptions__table td,.trace-info-section[data-v-c0c90703] .el-descriptions__body .el-descriptions__table th{padding:8px 12px}.trace-info-section[data-v-c0c90703] .el-descriptions__label,.trace-info-section[data-v-c0c90703] .el-descriptions__content{font-size:12px!important;color:#606266;font-weight:400}.trace-info-section[data-v-c0c90703] .el-descriptions__body,.trace-info-section[data-v-c0c90703] .el-descriptions__body .el-descriptions__table,.trace-info-section[data-v-c0c90703] .el-descriptions__body .el-descriptions__table td,.trace-info-section[data-v-c0c90703] .el-descriptions__body .el-descriptions__table th{font-size:12px!important}.trace-info-section[data-v-c0c90703] .el-tag{font-size:12px;height:20px;line-height:20px;padding:0 6px}.span-tree-col[data-v-c0c90703]{height:calc(100vh - 300px);min-height:500px}.span-tree-col[data-v-c0c90703] .el-card__body{height:calc(100% - 57px);overflow:hidden;display:flex;flex-direction:column;padding:10px}.span-detail-col[data-v-c0c90703]{height:calc(100vh - 300px);min-height:500px}.span-detail-col[data-v-c0c90703] .el-card__body{height:100%;overflow:auto}.span-detail-content[data-v-c0c90703]{min-height:400px}.io-content[data-v-c0c90703]{padding:10px 0}.io-section[data-v-c0c90703]{margin-bottom:20px}.messages-section[data-v-c0c90703]{padding:10px}.message-item[data-v-c0c90703]{margin-bottom:10px}.message-icon[data-v-c0c90703]{margin-right:8px;font-size:14px}.message-role[data-v-c0c90703]{text-transform:capitalize;font-weight:500}.message-content[data-v-c0c90703]{padding:12px;background-color:#f5f7fa;border-radius:4px;border-left:3px solid #409eff}.message-content pre[data-v-c0c90703]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:13px;line-height:1.6}.message-content .structured-content[data-v-c0c90703]{background-color:transparent;padding:0}.message-content .markdown-content[data-v-c0c90703]{background-color:transparent;border:none;padding:0}.json-content[data-v-c0c90703]{padding:12px;background-color:#f5f7fa;border-radius:4px}.json-content pre[data-v-c0c90703]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:12px;line-height:1.6}.output-section[data-v-c0c90703]{padding:10px}.choice-item[data-v-c0c90703]{margin-bottom:15px;border:1px solid #ebeef5;border-radius:4px;overflow:hidden}.choice-header[data-v-c0c90703]{padding:8px 12px;background-color:#f5f7fa;border-bottom:1px solid #ebeef5;font-weight:500;font-size:13px}.choice-content[data-v-c0c90703]{padding:12px}.choice-content .structured-content[data-v-c0c90703]{margin-top:8px}.choice-content .markdown-content[data-v-c0c90703]{background-color:#f5f7fa}.message-header[data-v-c0c90703]{display:flex;align-items:center;margin-bottom:8px;font-weight:500;font-size:13px}.choice-content pre[data-v-c0c90703]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:13px;line-height:1.6}.empty-content[data-v-c0c90703]{padding:20px 0}.empty-io[data-v-c0c90703]{padding:40px 0}.event-attributes[data-v-c0c90703]{margin-top:10px;padding:10px;background-color:#f5f7fa;border-radius:4px;font-family:Courier New,monospace;font-size:12px}.raw-io-content[data-v-c0c90703]{padding:10px 0}.raw-io-section[data-v-c0c90703]{margin-bottom:20px}.code-editor-wrapper[data-v-c0c90703]{height:400px;max-height:600px;overflow:auto}.code-editor-wrapper[data-v-c0c90703] .CodeMirror{height:100%;font-size:13px;line-height:1.6;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace}.code-editor-wrapper[data-v-c0c90703] .CodeMirror-scroll{max-height:600px}.code-editor-wrapper[data-v-c0c90703] .CodeMirror-cursor{border-left:1px solid #fff}.code-editor-wrapper[data-v-c0c90703] .cm-string{color:#98d982}.code-editor-wrapper[data-v-c0c90703] .cm-number{color:#d19a66}.code-editor-wrapper[data-v-c0c90703] .cm-keyword{color:#c678dd}.code-editor-wrapper[data-v-c0c90703] .cm-atom{color:#56b6c2}.code-editor-wrapper[data-v-c0c90703] .cm-property,.code-editor-wrapper[data-v-c0c90703] .cm-variable{color:#e06c75}.code-editor-wrapper[data-v-c0c90703] .cm-operator{color:#56b6c2}.code-editor-wrapper[data-v-c0c90703] .cm-bracket,.code-editor-wrapper[data-v-c0c90703] .cm-punctuation{color:#abb2bf}.empty-raw-io[data-v-c0c90703]{padding:40px 0}.structured-content[data-v-c0c90703]{display:flex;flex-direction:column;gap:16px}.io-section .structured-content[data-v-c0c90703]{padding:10px}.content-element[data-v-c0c90703]{width:100%}.markdown-content[data-v-c0c90703]{padding:12px;background-color:#fff;border-radius:4px;border:1px solid #e4e7ed;line-height:1.8;word-wrap:break-word}.markdown-content[data-v-c0c90703] h1,.markdown-content[data-v-c0c90703] h2,.markdown-content[data-v-c0c90703] h3,.markdown-content[data-v-c0c90703] h4,.markdown-content[data-v-c0c90703] h5,.markdown-content[data-v-c0c90703] h6{margin-top:16px;margin-bottom:8px;font-weight:600;line-height:1.4}.markdown-content[data-v-c0c90703] h1{font-size:24px;border-bottom:1px solid #e4e7ed;padding-bottom:8px}.markdown-content[data-v-c0c90703] h2{font-size:20px;border-bottom:1px solid #e4e7ed;padding-bottom:6px}.markdown-content[data-v-c0c90703] h3{font-size:18px}.markdown-content[data-v-c0c90703] h4{font-size:16px}.markdown-content[data-v-c0c90703] h5{font-size:14px}.markdown-content[data-v-c0c90703] h6{font-size:13px}.markdown-content[data-v-c0c90703] p{margin:8px 0;line-height:1.8}.markdown-content[data-v-c0c90703] ul,.markdown-content[data-v-c0c90703] ol{margin:8px 0;padding-left:24px}.markdown-content[data-v-c0c90703] li{margin:4px 0;line-height:1.6}.markdown-content[data-v-c0c90703] code{padding:2px 6px;background-color:#f5f7fa;border-radius:3px;font-family:Courier New,monospace;font-size:12px;color:#e83e8c}.markdown-content[data-v-c0c90703] pre{padding:12px;background-color:#f5f7fa;border-radius:4px;overflow-x:auto;margin:8px 0}.markdown-content[data-v-c0c90703] pre code{padding:0;background-color:transparent;color:inherit;font-size:13px}.markdown-content[data-v-c0c90703] blockquote{margin:8px 0;padding:8px 16px;border-left:4px solid #409eff;background-color:#f5f7fa;color:#606266}.markdown-content[data-v-c0c90703] table{border-collapse:collapse;width:100%;margin:8px 0}.markdown-content[data-v-c0c90703] table th,.markdown-content[data-v-c0c90703] table td{border:1px solid #e4e7ed;padding:8px 12px;text-align:left}.markdown-content[data-v-c0c90703] table th{background-color:#f5f7fa;font-weight:600}.markdown-content[data-v-c0c90703] a{color:#409eff;text-decoration:none}.markdown-content[data-v-c0c90703] a:hover{text-decoration:underline}.image-content[data-v-c0c90703]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8px;background-color:#f5f7fa;border-radius:4px}.image-label[data-v-c0c90703]{font-size:12px;color:#606266;margin-bottom:8px;font-weight:500;background-color:#e6f7ff;padding:4px 12px;border-radius:4px;border:1px solid #91d5ff}.content-image[data-v-c0c90703]{max-width:100%;max-height:500px;cursor:pointer;border-radius:4px;transition:transform .2s}.content-image[data-v-c0c90703]:hover{transform:scale(1.02);box-shadow:0 4px 12px #00000026}.attributes-table .attribute-key[data-v-c0c90703]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attributes-table .attribute-value[data-v-c0c90703]{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all;line-height:1.5;max-height:4.5em}.attribute-tooltip{max-width:800px!important}.attribute-tooltip .attribute-tooltip-content{word-break:break-all;white-space:pre-wrap;line-height:1.6;max-height:300px;overflow-y:auto}
9
+ */.viewer-zoom-in:before,.viewer-zoom-out:before,.viewer-one-to-one:before,.viewer-reset:before,.viewer-prev:before,.viewer-play:before,.viewer-next:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen:before,.viewer-fullscreen-exit:before,.viewer-close:before{background-image:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 560 40%22%3E%3Cpath fill%3D%22%23fff%22 d%3D%22M49.6 17.9h20.2v3.9H49.6zm123.1 2 10.9-11 2.7 2.8-8.2 8.2 8.2 8.2-2.7 2.7-10.9-10.9zm94 0-10.8-11-2.7 2.8 8.1 8.2-8.1 8.2 2.7 2.7 10.8-10.9zM212 9.3l20.1 10.6L212 30.5V9.3zm161.5 4.6-7.2 6 7.2 5.9v-4h12.4v4l7.3-5.9-7.3-6v4h-12.4v-4zm40.2 12.3 5.9 7.2 5.9-7.2h-4V13.6h4l-5.9-7.3-5.9 7.3h4v12.6h-4zm35.9-16.5h6.3v2h-4.3V16h-2V9.7Zm14 0h6.2V16h-2v-4.3h-4.2v-2Zm6.2 14V30h-6.2v-2h4.2v-4.3h2Zm-14 6.3h-6.2v-6.3h2v4.4h4.3v2Zm-438 .1v-8.3H9.6v-3.9h8.2V9.7h3.9v8.2h8.1v3.9h-8.1v8.3h-3.9zM93.6 9.7h-5.8v3.9h2V30h3.8V9.7zm16.1 0h-5.8v3.9h1.9V30h3.9V9.7zm-11.9 4.1h3.9v3.9h-3.9zm0 8.2h3.9v3.9h-3.9zm244.6-11.7 7.2 5.9-7.2 6v-3.6c-5.4-.4-7.8.8-8.7 2.8-.8 1.7-1.8 4.9 2.8 8.2-6.3-2-7.5-6.9-6-11.3 1.6-4.4 8-5 11.9-4.9v-3.1Zm147.2 13.4h6.3V30h-2v-4.3h-4.3v-2zm14 6.3v-6.3h6.2v2h-4.3V30h-1.9zm6.2-14h-6.2V9.7h1.9V14h4.3v2zm-13.9 0h-6.3v-2h4.3V9.7h2V16zm33.3 12.5 8.6-8.6-8.6-8.7 1.9-1.9 8.6 8.7 8.6-8.7 1.9 1.9-8.6 8.7 8.6 8.6-1.9 2-8.6-8.7-8.6 8.7-1.9-2zM297 10.3l-7.1 5.9 7.2 6v-3.6c5.3-.4 7.7.8 8.7 2.8.8 1.7 1.7 4.9-2.9 8.2 6.3-2 7.5-6.9 6-11.3-1.6-4.4-7.9-5-11.8-4.9v-3.1Zm-157.3-.6c2.3 0 4.4.7 6 2l2.5-3 1.9 9.2h-9.3l2.6-3.1a6.2 6.2 0 0 0-9.9 5.1c0 3.4 2.8 6.3 6.2 6.3 2.8 0 5.1-1.9 6-4.4h4c-1 4.7-5 8.3-10 8.3a10 10 0 0 1-10-10.2 10 10 0 0 1 10-10.2Z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.viewer-container::-moz-selection,.viewer-container *::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container *::selection{background-color:transparent}.viewer-container:focus{outline:0}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:#00000080;overflow:hidden}.viewer-list{box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;transition:opacity .15s;width:30px}.viewer-list>li:focus,.viewer-list>li:hover{opacity:.75}.viewer-list>li:focus{outline:0}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:focus,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;left:0;position:absolute;right:0;top:0;z-index:1}.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:6px 3px}.viewer-toolbar>ul>li{background-color:#00000080;border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:focus,.viewer-toolbar>ul>li:hover{background-color:#000c}.viewer-toolbar>ul>li:focus{box-shadow:0 0 3px #fff;outline:0;position:relative;z-index:1}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:#000c;border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1.2;margin:5px 5%;max-width:90%;min-height:14px;opacity:.8;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{-webkit-app-region:no-drag;background-color:#00000080;border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:#000c}.viewer-button:focus{box-shadow:0 0 3px #fff;outline:0}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:#00000080}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{transition:all .3s}@keyframes viewer-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.viewer-loading:after{animation:viewer-spinner 1s linear infinite;border:4px solid rgba(255,255,255,.1);border-left-color:#ffffff80;border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width: 767px){.viewer-hide-xs-down{display:none}}@media (max-width: 991px){.viewer-hide-sm-down{display:none}}@media (max-width: 1199px){.viewer-hide-md-down{display:none}}.trace-list-container[data-v-3798c52b]{padding:0;font-size:12px;color:#606266;height:100%;display:flex;flex-direction:column}.trace-list-container[data-v-3798c52b] .el-card{border:none;height:100%;display:flex;flex-direction:column}.trace-list-container[data-v-3798c52b] .el-card__body{padding:16px 16px 9px;flex:1;display:flex;flex-direction:column;overflow:hidden}.trace-content-wrapper[data-v-3798c52b]{display:flex;flex-direction:column;flex:1;min-height:0}.trace-table-wrapper[data-v-3798c52b]{flex:1;overflow:auto;margin-bottom:12px;min-height:0}.trace-pagination-wrapper[data-v-3798c52b]{margin-top:auto;padding-top:10px;border-top:1px solid #EBEEF5}.trace-toolbar[data-v-3798c52b]{margin-bottom:12px;padding:12px;background-color:#f8f9fa;border-radius:4px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}.toolbar-input[data-v-3798c52b]{width:300px}.toolbar-date-picker[data-v-3798c52b]{width:400px}.trace-list-container[data-v-3798c52b] .el-table{font-size:12px;color:#606266}.trace-list-container[data-v-3798c52b] .el-table th{background-color:#f3f5fa;color:#606266;font-size:12px;padding:8px 0;font-weight:500}.trace-list-container[data-v-3798c52b] .el-table td{font-size:12px;color:#606266;padding:8px 0}.trace-list-container[data-v-3798c52b] .el-table .el-link{font-size:12px}.trace-list-container[data-v-3798c52b] .el-table .el-button--text{font-size:12px;padding:0}.trace-list-container[data-v-3798c52b] .el-table .el-tag{font-size:12px}.trace-list-container[data-v-3798c52b] .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:#fafafa}.trace-list-container[data-v-3798c52b] .el-table--striped .el-table__body tr.el-table__row--striped:hover td{background-color:#f0f2f5}.trace-row[data-v-3798c52b]{cursor:pointer}.trace-row[data-v-3798c52b]:hover{background-color:#f0f2f5}.trace-pagination[data-v-3798c52b]{text-align:right;font-size:12px;color:#606266;font-weight:400}.trace-pagination[data-v-3798c52b] .el-pagination{font-size:12px;color:#606266;display:flex;align-items:center;justify-content:flex-end}.trace-pagination[data-v-3798c52b] .el-pagination *,.trace-pagination[data-v-3798c52b] .el-pagination__total{font-size:12px;color:#606266;margin-right:8px;height:28px;line-height:28px}.trace-pagination[data-v-3798c52b] .el-pagination .btn-next,.trace-pagination[data-v-3798c52b] .el-pagination .btn-prev,.trace-pagination[data-v-3798c52b] .el-pagination .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px;border:none;font-size:12px;height:28px;line-height:28px}.trace-pagination[data-v-3798c52b] .el-pagination .el-pager li{padding:0 4px;box-sizing:border-box;text-align:center}.trace-pagination[data-v-3798c52b] .el-pagination .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.trace-pagination[data-v-3798c52b] .el-pagination .btn-prev:hover,.trace-pagination[data-v-3798c52b] .el-pagination .btn-next:hover{color:#409eff}.trace-pagination[data-v-3798c52b] .el-pagination .el-pager li:hover:not(.active){color:#409eff}.trace-pagination[data-v-3798c52b] .el-pagination .el-pager li.active:hover{color:#fff}.trace-pagination[data-v-3798c52b] .el-pagination__sizes .el-input{font-size:12px}.trace-pagination[data-v-3798c52b] .el-pagination__sizes .el-input__inner{font-size:12px;height:28px;line-height:28px;padding:0 25px 0 8px}.trace-pagination[data-v-3798c52b] .el-pagination__jump{margin-left:16px;font-size:12px;color:#606266}.trace-pagination[data-v-3798c52b] .el-pagination__editor{font-size:12px;margin:0 4px}.trace-pagination[data-v-3798c52b] .el-pagination__editor .el-input__inner{font-size:12px;height:28px;line-height:28px;padding:0 4px;text-align:center}.text-muted[data-v-3798c52b]{color:#909399}.trace-detail-content[data-v-3798c52b]{height:calc(100vh - 100px);overflow:auto}.trace-info-section[data-v-3798c52b]{margin-bottom:20px;padding:0 10px}.trace-info-section[data-v-3798c52b] .el-descriptions{padding:0;font-size:12px!important}.trace-info-section[data-v-3798c52b] .el-descriptions *{font-size:12px!important}.trace-info-section[data-v-3798c52b] .el-descriptions__body .el-descriptions__table{margin:0}.trace-info-section[data-v-3798c52b] .el-descriptions__body .el-descriptions__table td,.trace-info-section[data-v-3798c52b] .el-descriptions__body .el-descriptions__table th{padding:8px 12px}.trace-info-section[data-v-3798c52b] .el-descriptions__label,.trace-info-section[data-v-3798c52b] .el-descriptions__content{font-size:12px!important;color:#606266;font-weight:400}.trace-info-section[data-v-3798c52b] .el-descriptions__body,.trace-info-section[data-v-3798c52b] .el-descriptions__body .el-descriptions__table,.trace-info-section[data-v-3798c52b] .el-descriptions__body .el-descriptions__table td,.trace-info-section[data-v-3798c52b] .el-descriptions__body .el-descriptions__table th{font-size:12px!important}.trace-info-section[data-v-3798c52b] .el-tag{font-size:12px;height:20px;line-height:20px;padding:0 6px}.span-tree-col[data-v-3798c52b]{height:calc(100vh - 300px);min-height:500px}.span-tree-col[data-v-3798c52b] .el-card__body{height:calc(100% - 57px);overflow:hidden;display:flex;flex-direction:column;padding:10px}.span-detail-col[data-v-3798c52b]{height:calc(100vh - 300px);min-height:500px}.span-detail-col[data-v-3798c52b] .el-card__body{height:100%;overflow:auto}.span-detail-content[data-v-3798c52b]{min-height:400px}.io-content[data-v-3798c52b]{padding:10px 0}.io-section[data-v-3798c52b]{margin-bottom:20px}.messages-section[data-v-3798c52b]{padding:10px}.message-item[data-v-3798c52b]{margin-bottom:10px}.message-icon[data-v-3798c52b]{margin-right:8px;font-size:14px}.message-role[data-v-3798c52b]{text-transform:capitalize;font-weight:500}.message-content[data-v-3798c52b]{padding:12px;background-color:#f5f7fa;border-radius:4px;border-left:3px solid #409eff}.message-content pre[data-v-3798c52b]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:13px;line-height:1.6}.message-content .structured-content[data-v-3798c52b]{background-color:transparent;padding:0}.message-content .markdown-content[data-v-3798c52b]{background-color:transparent;border:none;padding:0}.json-content[data-v-3798c52b]{padding:12px;background-color:#f5f7fa;border-radius:4px}.json-content pre[data-v-3798c52b]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:12px;line-height:1.6}.output-section[data-v-3798c52b]{padding:10px}.choice-item[data-v-3798c52b]{margin-bottom:15px;border:1px solid #ebeef5;border-radius:4px;overflow:hidden}.choice-header[data-v-3798c52b]{padding:8px 12px;background-color:#f5f7fa;border-bottom:1px solid #ebeef5;font-weight:500;font-size:13px}.choice-content[data-v-3798c52b]{padding:12px}.choice-content .structured-content[data-v-3798c52b]{margin-top:8px}.choice-content .markdown-content[data-v-3798c52b]{background-color:#f5f7fa}.message-header[data-v-3798c52b]{display:flex;align-items:center;margin-bottom:8px;font-weight:500;font-size:13px}.choice-content pre[data-v-3798c52b]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:13px;line-height:1.6}.empty-content[data-v-3798c52b]{padding:20px 0}.empty-io[data-v-3798c52b]{padding:40px 0}.event-attributes[data-v-3798c52b]{margin-top:10px;padding:10px;background-color:#f5f7fa;border-radius:4px;font-family:Courier New,monospace;font-size:12px}.raw-io-content[data-v-3798c52b]{padding:10px 0}.raw-io-section[data-v-3798c52b]{margin-bottom:20px}.code-editor-wrapper[data-v-3798c52b]{height:400px;max-height:600px;overflow:auto}.code-editor-wrapper[data-v-3798c52b] .CodeMirror{height:100%;font-size:13px;line-height:1.6;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace}.code-editor-wrapper[data-v-3798c52b] .CodeMirror-scroll{max-height:600px}.code-editor-wrapper[data-v-3798c52b] .CodeMirror-cursor{border-left:1px solid #fff}.code-editor-wrapper[data-v-3798c52b] .cm-string{color:#98d982}.code-editor-wrapper[data-v-3798c52b] .cm-number{color:#d19a66}.code-editor-wrapper[data-v-3798c52b] .cm-keyword{color:#c678dd}.code-editor-wrapper[data-v-3798c52b] .cm-atom{color:#56b6c2}.code-editor-wrapper[data-v-3798c52b] .cm-property,.code-editor-wrapper[data-v-3798c52b] .cm-variable{color:#e06c75}.code-editor-wrapper[data-v-3798c52b] .cm-operator{color:#56b6c2}.code-editor-wrapper[data-v-3798c52b] .cm-bracket,.code-editor-wrapper[data-v-3798c52b] .cm-punctuation{color:#abb2bf}.empty-raw-io[data-v-3798c52b]{padding:40px 0}.structured-content[data-v-3798c52b]{display:flex;flex-direction:column;gap:16px}.io-section .structured-content[data-v-3798c52b]{padding:10px}.content-element[data-v-3798c52b]{width:100%}.markdown-content[data-v-3798c52b]{padding:12px;background-color:#fff;border-radius:4px;border:1px solid #e4e7ed;line-height:1.8;word-wrap:break-word}.markdown-content[data-v-3798c52b] h1,.markdown-content[data-v-3798c52b] h2,.markdown-content[data-v-3798c52b] h3,.markdown-content[data-v-3798c52b] h4,.markdown-content[data-v-3798c52b] h5,.markdown-content[data-v-3798c52b] h6{margin-top:16px;margin-bottom:8px;font-weight:600;line-height:1.4}.markdown-content[data-v-3798c52b] h1{font-size:24px;border-bottom:1px solid #e4e7ed;padding-bottom:8px}.markdown-content[data-v-3798c52b] h2{font-size:20px;border-bottom:1px solid #e4e7ed;padding-bottom:6px}.markdown-content[data-v-3798c52b] h3{font-size:18px}.markdown-content[data-v-3798c52b] h4{font-size:16px}.markdown-content[data-v-3798c52b] h5{font-size:14px}.markdown-content[data-v-3798c52b] h6{font-size:13px}.markdown-content[data-v-3798c52b] p{margin:8px 0;line-height:1.8}.markdown-content[data-v-3798c52b] ul,.markdown-content[data-v-3798c52b] ol{margin:8px 0;padding-left:24px}.markdown-content[data-v-3798c52b] li{margin:4px 0;line-height:1.6}.markdown-content[data-v-3798c52b] code{padding:2px 6px;background-color:#f5f7fa;border-radius:3px;font-family:Courier New,monospace;font-size:12px;color:#e83e8c}.markdown-content[data-v-3798c52b] pre{padding:12px;background-color:#f5f7fa;border-radius:4px;overflow-x:auto;margin:8px 0}.markdown-content[data-v-3798c52b] pre code{padding:0;background-color:transparent;color:inherit;font-size:13px}.markdown-content[data-v-3798c52b] blockquote{margin:8px 0;padding:8px 16px;border-left:4px solid #409eff;background-color:#f5f7fa;color:#606266}.markdown-content[data-v-3798c52b] table{border-collapse:collapse;width:100%;margin:8px 0}.markdown-content[data-v-3798c52b] table th,.markdown-content[data-v-3798c52b] table td{border:1px solid #e4e7ed;padding:8px 12px;text-align:left}.markdown-content[data-v-3798c52b] table th{background-color:#f5f7fa;font-weight:600}.markdown-content[data-v-3798c52b] a{color:#409eff;text-decoration:none}.markdown-content[data-v-3798c52b] a:hover{text-decoration:underline}.image-content[data-v-3798c52b]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8px;background-color:#f5f7fa;border-radius:4px}.image-label[data-v-3798c52b]{font-size:12px;color:#606266;margin-bottom:8px;font-weight:500;background-color:#e6f7ff;padding:4px 12px;border-radius:4px;border:1px solid #91d5ff}.content-image[data-v-3798c52b]{max-width:100%;max-height:500px;cursor:pointer;border-radius:4px;transition:transform .2s}.content-image[data-v-3798c52b]:hover{transform:scale(1.02);box-shadow:0 4px 12px #00000026}.attributes-table .attribute-key[data-v-3798c52b]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attributes-table .attribute-value[data-v-3798c52b]{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all;line-height:1.5;max-height:4.5em}.attribute-tooltip{max-width:800px!important}.attribute-tooltip .attribute-tooltip-content{word-break:break-all;white-space:pre-wrap;line-height:1.6;max-height:300px;overflow-y:auto}
package/dist/trace.es.js CHANGED
@@ -8967,7 +8967,7 @@ nr.parse;
8967
8967
  rr.lex;
8968
8968
  const yd = () => typeof __TRACE_API_BASE_URL__ < "u" ? __TRACE_API_BASE_URL__ : typeof window < "u" && window.__TRACE_API_BASE_URL__ ? window.__TRACE_API_BASE_URL__ : typeof process < "u" && process.env && process.env.TRACE_API_BASE_URL ? process.env.TRACE_API_BASE_URL : "/tracing", pa = Dh.create({
8969
8969
  baseURL: yd(),
8970
- timeout: 3e4
8970
+ timeout: 36e5
8971
8971
  }), mi = {
8972
8972
  getTraceList(f, a, s, l, h) {
8973
8973
  const g = {};
@@ -11313,8 +11313,10 @@ const tv = ({ images: f = [], options: a = {} } = {}) => {
11313
11313
  const s = new Date(a);
11314
11314
  return isNaN(s.getTime()) ? "-" : s.toLocaleString("zh-CN");
11315
11315
  },
11316
- formatDuration(f) {
11317
- return f ? f < 1e3 ? `${f}ms` : `${(f / 1e3).toFixed(1)}s` : "-";
11316
+ formatNanoDuration(f) {
11317
+ if (!f) return "-";
11318
+ const a = f / 1e6;
11319
+ return a < 1e3 ? `${a.toFixed(2)}ms` : a < 6e4 ? `${(a / 1e3).toFixed(2)}s` : `${(a / 6e4).toFixed(2)}min`;
11318
11320
  },
11319
11321
  formatJson(f) {
11320
11322
  return f ? JSON.stringify(f, null, 2) : "";
@@ -11488,8 +11490,8 @@ var nv = function() {
11488
11490
  } }], null, !1, 3633653970) }) : a._e(), a.visibleColumns.trace_type ? s("el-table-column", { attrs: { prop: "trace_type", label: a.$t("trace.traceType"), width: "120" }, scopedSlots: a._u([{ key: "default", fn: function(b) {
11489
11491
  return [s("el-tag", { attrs: { size: "mini", type: "info" } }, [a._v(a._s(b.row.trace_type || "-"))])];
11490
11492
  } }], null, !1, 1175446173) }) : a._e(), a.visibleColumns.execution_time_ms ? s("el-table-column", { attrs: { prop: "execution_time_ms", label: a.$t("trace.executionTime"), width: "120" }, scopedSlots: a._u([{ key: "default", fn: function(b) {
11491
- return [a._v(" " + a._s(a.formatDuration(b.row.execution_time_ms)) + " ")];
11492
- } }], null, !1, 2586299640) }) : a._e(), a.visibleColumns.status ? s("el-table-column", { attrs: { prop: "status", label: a.$t("trace.status"), width: "100" }, scopedSlots: a._u([{ key: "default", fn: function(b) {
11493
+ return [a._v(" " + a._s(a.formatNanoDuration(b.row.execution_time_ms)) + " ")];
11494
+ } }], null, !1, 1733254102) }) : a._e(), a.visibleColumns.status ? s("el-table-column", { attrs: { prop: "status", label: a.$t("trace.status"), width: "100" }, scopedSlots: a._u([{ key: "default", fn: function(b) {
11493
11495
  return [s("el-tag", { attrs: { type: a.getStatusType(b.row.status), size: "mini" } }, [b.row.status === "OK" ? s("i", { staticClass: "el-icon-success" }) : a._e(), a._v(" " + a._s(b.row.status) + " ")])];
11494
11496
  } }], null, !1, 3672547022) }) : a._e(), a.visibleColumns.timestamp_ms ? s("el-table-column", { attrs: { prop: "timestamp_ms", label: a.$t("trace.timeCreated"), width: "180" }, scopedSlots: a._u([{ key: "default", fn: function(b) {
11495
11497
  return [a._v(" " + a._s(a.formatDateTime(b.row.timestamp_ms)) + " ")];
@@ -11505,7 +11507,7 @@ var nv = function() {
11505
11507
  a.showColumnDialog = !1;
11506
11508
  } } }, [a._v(a._s(a.$t("common.cancel")))]), s("el-button", { attrs: { size: "mini", type: "primary" }, on: { click: a.applyColumns } }, [a._v(a._s(a.$t("common.confirm")))])], 1)], 1), s("el-drawer", { attrs: { visible: a.drawerVisible, "with-header": !0, title: a.drawerTitle, size: "90%", direction: "rtl", "before-close": a.handleDrawerClose }, on: { "update:visible": function(b) {
11507
11509
  a.drawerVisible = b;
11508
- } } }, [a.currentTraceId ? s("div", { staticClass: "trace-detail-content" }, [s("div", { staticClass: "trace-info-section" }, [s("el-descriptions", { attrs: { column: 3, border: "" } }, [s("el-descriptions-item", { attrs: { label: a.$t("trace.traceId") } }, [a._v(a._s(a.traceInfo.trace_id))]), s("el-descriptions-item", { attrs: { label: a.$t("trace.status") } }, [s("el-tag", { attrs: { type: a.getStatusType(a.traceInfo.status), size: "mini" } }, [a._v(" " + a._s(a.traceInfo.status) + " ")])], 1), s("el-descriptions-item", { attrs: { label: a.$t("trace.executionTime") } }, [a._v(" " + a._s(a.formatDuration(a.traceInfo.execution_time_ms)) + " ")]), s("el-descriptions-item", { attrs: { label: a.$t("trace.timeCreated") } }, [a._v(" " + a._s(a.formatTimestamp(a.traceInfo.timestamp_ms)) + " ")]), s("el-descriptions-item", { attrs: { label: a.$t("trace.experimentId") } }, [a._v(a._s(a.traceInfo.experiment_id))]), s("el-descriptions-item", { attrs: { label: a.$t("trace.traceType") } }, [s("el-tag", { attrs: { size: "mini", type: "info" } }, [a._v(a._s(a.traceInfo.trace_type || "-"))])], 1), s("el-descriptions-item", { attrs: { label: a.$t("trace.traceName"), span: 2 } }, [a._v(" " + a._s(a.traceInfo.trace_name || "-") + " ")])], 1)], 1), s("el-divider"), s("el-row", { attrs: { gutter: 20 } }, [s("el-col", { staticClass: "span-tree-col", attrs: { span: 8 } }, [s("el-card", [s("div", { attrs: { slot: "header" }, slot: "header" }, [s("el-input", { attrs: { placeholder: a.$t("span.searchTree"), "prefix-icon": "el-icon-search", size: "small", clearable: "" }, on: { input: a.handleSpanSearch }, model: { value: a.spanSearchQuery, callback: function(b) {
11510
+ } } }, [a.currentTraceId ? s("div", { staticClass: "trace-detail-content" }, [s("div", { staticClass: "trace-info-section" }, [s("el-descriptions", { attrs: { column: 3, border: "" } }, [s("el-descriptions-item", { attrs: { label: a.$t("trace.traceId") } }, [a._v(a._s(a.traceInfo.trace_id))]), s("el-descriptions-item", { attrs: { label: a.$t("trace.status") } }, [s("el-tag", { attrs: { type: a.getStatusType(a.traceInfo.status), size: "mini" } }, [a._v(" " + a._s(a.traceInfo.status) + " ")])], 1), s("el-descriptions-item", { attrs: { label: a.$t("trace.executionTime") } }, [a._v(" " + a._s(a.formatNanoDuration(a.traceInfo.execution_time_ms)) + " ")]), s("el-descriptions-item", { attrs: { label: a.$t("trace.timeCreated") } }, [a._v(" " + a._s(a.formatTimestamp(a.traceInfo.timestamp_ms)) + " ")]), s("el-descriptions-item", { attrs: { label: a.$t("trace.experimentId") } }, [a._v(a._s(a.traceInfo.experiment_id))]), s("el-descriptions-item", { attrs: { label: a.$t("trace.traceType") } }, [s("el-tag", { attrs: { size: "mini", type: "info" } }, [a._v(a._s(a.traceInfo.trace_type || "-"))])], 1), s("el-descriptions-item", { attrs: { label: a.$t("trace.traceName"), span: 2 } }, [a._v(" " + a._s(a.traceInfo.trace_name || "-") + " ")])], 1)], 1), s("el-divider"), s("el-row", { attrs: { gutter: 20 } }, [s("el-col", { staticClass: "span-tree-col", attrs: { span: 8 } }, [s("el-card", [s("div", { attrs: { slot: "header" }, slot: "header" }, [s("el-input", { attrs: { placeholder: a.$t("span.searchTree"), "prefix-icon": "el-icon-search", size: "small", clearable: "" }, on: { input: a.handleSpanSearch }, model: { value: a.spanSearchQuery, callback: function(b) {
11509
11511
  a.spanSearchQuery = b;
11510
11512
  }, expression: "spanSearchQuery" } })], 1), s("TraceSpanTree", { attrs: { spans: a.filteredSpans, "selected-span-id": a.selectedSpanId, "trace-start-time": a.traceStartTime, "trace-end-time": a.traceEndTime }, on: { "span-select": a.handleSpanSelect } })], 1)], 1), s("el-col", { staticClass: "span-detail-col", attrs: { span: 16 } }, [s("el-card", [a.selectedSpan ? s("div", { staticClass: "span-detail-content" }, [s("el-tabs", { model: { value: a.activeTab, callback: function(b) {
11511
11513
  a.activeTab = b;
@@ -11554,7 +11556,7 @@ var nv = function() {
11554
11556
  iv,
11555
11557
  !1,
11556
11558
  null,
11557
- "c0c90703"
11559
+ "3798c52b"
11558
11560
  );
11559
11561
  const _f = av.exports, sv = {
11560
11562
  routes: [
package/dist/trace.umd.js CHANGED
@@ -66,7 +66,7 @@ ${a}</tr>
66
66
  `}tablecell(a,s){const l=s.header?"th":"td";return(s.align?`<${l} align="${s.align}">`:`<${l}>`)+a+`</${l}>
67
67
  `}strong(a){return`<strong>${a}</strong>`}em(a){return`<em>${a}</em>`}codespan(a){return`<code>${a}</code>`}br(){return"<br>"}del(a){return`<del>${a}</del>`}link(a,s,l){const h=go(a);if(h===null)return l;a=h;let g='<a href="'+a+'"';return s&&(g+=' title="'+s+'"'),g+=">"+l+"</a>",g}image(a,s,l){const h=go(a);if(h===null)return l;a=h;let g=`<img src="${a}" alt="${l}"`;return s&&(g+=` title="${s}"`),g+=">",g}text(a){return a}}class Ba{strong(a){return a}em(a){return a}codespan(a){return a}del(a){return a}html(a){return a}text(a){return a}link(a,s,l){return""+l}image(a,s,l){return""+l}br(){return""}}class Qt{constructor(a){Ne(this,"options");Ne(this,"renderer");Ne(this,"textRenderer");this.options=a||Pr,this.options.renderer=this.options.renderer||new Pi,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Ba}static parse(a,s){return new Qt(s).parse(a)}static parseInline(a,s){return new Qt(s).parseInline(a)}parse(a,s=!0){let l="";for(let h=0;h<a.length;h++){const g=a[h];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[g.type]){const p=g,y=this.options.extensions.renderers[p.type].call({parser:this},p);if(y!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(p.type)){l+=y||"";continue}}switch(g.type){case"space":continue;case"hr":{l+=this.renderer.hr();continue}case"heading":{const p=g;l+=this.renderer.heading(this.parseInline(p.tokens),p.depth,Uf(this.parseInline(p.tokens,this.textRenderer)));continue}case"code":{const p=g;l+=this.renderer.code(p.text,p.lang,!!p.escaped);continue}case"table":{const p=g;let y="",w="";for(let k=0;k<p.header.length;k++)w+=this.renderer.tablecell(this.parseInline(p.header[k].tokens),{header:!0,align:p.align[k]});y+=this.renderer.tablerow(w);let b="";for(let k=0;k<p.rows.length;k++){const A=p.rows[k];w="";for(let L=0;L<A.length;L++)w+=this.renderer.tablecell(this.parseInline(A[L].tokens),{header:!1,align:p.align[L]});b+=this.renderer.tablerow(w)}l+=this.renderer.table(y,b);continue}case"blockquote":{const p=g,y=this.parse(p.tokens);l+=this.renderer.blockquote(y);continue}case"list":{const p=g,y=p.ordered,w=p.start,b=p.loose;let k="";for(let A=0;A<p.items.length;A++){const L=p.items[A],H=L.checked,P=L.task;let $="";if(L.task){const N=this.renderer.checkbox(!!H);b?L.tokens.length>0&&L.tokens[0].type==="paragraph"?(L.tokens[0].text=N+" "+L.tokens[0].text,L.tokens[0].tokens&&L.tokens[0].tokens.length>0&&L.tokens[0].tokens[0].type==="text"&&(L.tokens[0].tokens[0].text=N+" "+L.tokens[0].tokens[0].text)):L.tokens.unshift({type:"text",text:N+" "}):$+=N+" "}$+=this.parse(L.tokens,b),k+=this.renderer.listitem($,P,!!H)}l+=this.renderer.list(k,y,w);continue}case"html":{const p=g;l+=this.renderer.html(p.text,p.block);continue}case"paragraph":{const p=g;l+=this.renderer.paragraph(this.parseInline(p.tokens));continue}case"text":{let p=g,y=p.tokens?this.parseInline(p.tokens):p.text;for(;h+1<a.length&&a[h+1].type==="text";)p=a[++h],y+=`
68
68
  `+(p.tokens?this.parseInline(p.tokens):p.text);l+=s?this.renderer.paragraph(y):y;continue}default:{const p='Token with "'+g.type+'" type was not found.';if(this.options.silent)return console.error(p),"";throw new Error(p)}}}return l}parseInline(a,s){s=s||this.renderer;let l="";for(let h=0;h<a.length;h++){const g=a[h];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[g.type]){const p=this.options.extensions.renderers[g.type].call({parser:this},g);if(p!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(g.type)){l+=p||"";continue}}switch(g.type){case"escape":{const p=g;l+=s.text(p.text);break}case"html":{const p=g;l+=s.html(p.text);break}case"link":{const p=g;l+=s.link(p.href,p.title,this.parseInline(p.tokens,s));break}case"image":{const p=g;l+=s.image(p.href,p.title,p.text);break}case"strong":{const p=g;l+=s.strong(this.parseInline(p.tokens,s));break}case"em":{const p=g;l+=s.em(this.parseInline(p.tokens,s));break}case"codespan":{const p=g;l+=s.codespan(p.text);break}case"br":{l+=s.br();break}case"del":{const p=g;l+=s.del(this.parseInline(p.tokens,s));break}case"text":{const p=g;l+=s.text(p.text);break}default:{const p='Token with "'+g.type+'" type was not found.';if(this.options.silent)return console.error(p),"";throw new Error(p)}}}return l}}class jn{constructor(a){Ne(this,"options");this.options=a||Pr}preprocess(a){return a}postprocess(a){return a}processAllTokens(a){return a}}Ne(jn,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"]));class yc{constructor(...a){Nf(this,Br);Ne(this,"defaults",Ma());Ne(this,"options",this.setOptions);Ne(this,"parse",Ia(this,Br,ao).call(this,Zt.lex,Qt.parse));Ne(this,"parseInline",Ia(this,Br,ao).call(this,Zt.lexInline,Qt.parseInline));Ne(this,"Parser",Qt);Ne(this,"Renderer",Pi);Ne(this,"TextRenderer",Ba);Ne(this,"Lexer",Zt);Ne(this,"Tokenizer",Ni);Ne(this,"Hooks",jn);this.use(...a)}walkTokens(a,s){var h,g;let l=[];for(const p of a)switch(l=l.concat(s.call(this,p)),p.type){case"table":{const y=p;for(const w of y.header)l=l.concat(this.walkTokens(w.tokens,s));for(const w of y.rows)for(const b of w)l=l.concat(this.walkTokens(b.tokens,s));break}case"list":{const y=p;l=l.concat(this.walkTokens(y.items,s));break}default:{const y=p;(g=(h=this.defaults.extensions)==null?void 0:h.childTokens)!=null&&g[y.type]?this.defaults.extensions.childTokens[y.type].forEach(w=>{const b=y[w].flat(1/0);l=l.concat(this.walkTokens(b,s))}):y.tokens&&(l=l.concat(this.walkTokens(y.tokens,s)))}}return l}use(...a){const s=this.defaults.extensions||{renderers:{},childTokens:{}};return a.forEach(l=>{const h={...l};if(h.async=this.defaults.async||h.async||!1,l.extensions&&(l.extensions.forEach(g=>{if(!g.name)throw new Error("extension name required");if("renderer"in g){const p=s.renderers[g.name];p?s.renderers[g.name]=function(...y){let w=g.renderer.apply(this,y);return w===!1&&(w=p.apply(this,y)),w}:s.renderers[g.name]=g.renderer}if("tokenizer"in g){if(!g.level||g.level!=="block"&&g.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const p=s[g.level];p?p.unshift(g.tokenizer):s[g.level]=[g.tokenizer],g.start&&(g.level==="block"?s.startBlock?s.startBlock.push(g.start):s.startBlock=[g.start]:g.level==="inline"&&(s.startInline?s.startInline.push(g.start):s.startInline=[g.start]))}"childTokens"in g&&g.childTokens&&(s.childTokens[g.name]=g.childTokens)}),h.extensions=s),l.renderer){const g=this.defaults.renderer||new Pi(this.defaults);for(const p in l.renderer){if(!(p in g))throw new Error(`renderer '${p}' does not exist`);if(p==="options")continue;const y=p,w=l.renderer[y],b=g[y];g[y]=(...k)=>{let A=w.apply(g,k);return A===!1&&(A=b.apply(g,k)),A||""}}h.renderer=g}if(l.tokenizer){const g=this.defaults.tokenizer||new Ni(this.defaults);for(const p in l.tokenizer){if(!(p in g))throw new Error(`tokenizer '${p}' does not exist`);if(["options","rules","lexer"].includes(p))continue;const y=p,w=l.tokenizer[y],b=g[y];g[y]=(...k)=>{let A=w.apply(g,k);return A===!1&&(A=b.apply(g,k)),A}}h.tokenizer=g}if(l.hooks){const g=this.defaults.hooks||new jn;for(const p in l.hooks){if(!(p in g))throw new Error(`hook '${p}' does not exist`);if(p==="options")continue;const y=p,w=l.hooks[y],b=g[y];jn.passThroughHooks.has(p)?g[y]=k=>{if(this.defaults.async)return Promise.resolve(w.call(g,k)).then(L=>b.call(g,L));const A=w.call(g,k);return b.call(g,A)}:g[y]=(...k)=>{let A=w.apply(g,k);return A===!1&&(A=b.apply(g,k)),A}}h.hooks=g}if(l.walkTokens){const g=this.defaults.walkTokens,p=l.walkTokens;h.walkTokens=function(y){let w=[];return w.push(p.call(this,y)),g&&(w=w.concat(g.call(this,y))),w}}this.defaults={...this.defaults,...h}}),this}setOptions(a){return this.defaults={...this.defaults,...a},this}lexer(a,s){return Zt.lex(a,s??this.defaults)}parser(a,s){return Qt.parse(a,s??this.defaults)}}Br=new WeakSet,ao=function(a,s){return(l,h)=>{const g={...h},p={...this.defaults,...g};this.defaults.async===!0&&g.async===!1&&(p.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),p.async=!0);const y=Ia(this,Br,Mf).call(this,!!p.silent,!!p.async);if(typeof l>"u"||l===null)return y(new Error("marked(): input parameter is undefined or null"));if(typeof l!="string")return y(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(l)+", string expected"));if(p.hooks&&(p.hooks.options=p),p.async)return Promise.resolve(p.hooks?p.hooks.preprocess(l):l).then(w=>a(w,p)).then(w=>p.hooks?p.hooks.processAllTokens(w):w).then(w=>p.walkTokens?Promise.all(this.walkTokens(w,p.walkTokens)).then(()=>w):w).then(w=>s(w,p)).then(w=>p.hooks?p.hooks.postprocess(w):w).catch(y);try{p.hooks&&(l=p.hooks.preprocess(l));let w=a(l,p);p.hooks&&(w=p.hooks.processAllTokens(w)),p.walkTokens&&this.walkTokens(w,p.walkTokens);let b=s(w,p);return p.hooks&&(b=p.hooks.postprocess(b)),b}catch(w){return y(w)}}},Mf=function(a,s){return l=>{if(l.message+=`
69
- Please report this to https://github.com/markedjs/marked.`,a){const h="<p>An error occurred:</p><pre>"+Lt(l.message+"",!0)+"</pre>";return s?Promise.resolve(h):h}if(s)return Promise.reject(l);throw l}};const Fr=new yc;function ve(f,a){return Fr.parse(f,a)}ve.options=ve.setOptions=function(f){return Fr.setOptions(f),ve.defaults=Fr.defaults,fo(ve.defaults),ve},ve.getDefaults=Ma,ve.defaults=Pr,ve.use=function(...f){return Fr.use(...f),ve.defaults=Fr.defaults,fo(ve.defaults),ve},ve.walkTokens=function(f,a){return Fr.walkTokens(f,a)},ve.parseInline=Fr.parseInline,ve.Parser=Qt,ve.parser=Qt.parse,ve.Renderer=Pi,ve.TextRenderer=Ba,ve.Lexer=Zt,ve.lexer=Zt.lex,ve.Tokenizer=Ni,ve.Hooks=jn,ve.parse=ve,ve.options,ve.setOptions,ve.use,ve.walkTokens,ve.parseInline,Qt.parse,Zt.lex;const bc=()=>typeof __TRACE_API_BASE_URL__<"u"?__TRACE_API_BASE_URL__:typeof window<"u"&&window.__TRACE_API_BASE_URL__?window.__TRACE_API_BASE_URL__:typeof process<"u"&&process.env&&process.env.TRACE_API_BASE_URL?process.env.TRACE_API_BASE_URL:"/tracing",Fi=Nt.create({baseURL:bc(),timeout:3e4}),rn={getTraceList(f,a,s,l,h){const g={};return f&&(g.query=f),a&&(g.startTime=a),s&&(g.endTime=s),l&&(g.pageNo=l),h&&(g.pageSize=h),Fi.get("/v1/trace",{params:g}).then(p=>p.data)},getTraceDetail(f){return Fi.get(`/v1/trace/${f}`).then(a=>a.data)},getTraceSpans(f){return Fi.get(`/v1/trace/${f}/spans`).then(a=>a.data)},deleteTraces(f,a,s){const l={};return f&&(l.query=f),a&&(l.startTime=a),s&&(l.endTime=s),Fi.delete("/v1/trace",{params:l}).then(h=>h.data)}};function Lo(f,a,s,l,h,g,p,y){var w=typeof f=="function"?f.options:f;return a&&(w.render=a,w.staticRenderFns=s,w._compiled=!0),g&&(w._scopeId="data-v-"+g),{exports:f,options:w}}const wc={name:"TraceSpanTree",props:{spans:{type:Array,default:()=>[]},selectedSpanId:{type:String,default:null},traceStartTime:{type:Number,default:0},traceEndTime:{type:Number,default:0}},data(){return{expandedNodes:new Set,treeData:[]}},watch:{spans:{immediate:!0,handler(){this.buildTree()}}},methods:{buildTree(){if(!this.spans||this.spans.length===0){this.treeData=[];return}const f=new Map,a=[];this.spans.forEach(s=>{f.set(s.span_id,{...s,children:[]})}),this.spans.forEach(s=>{const l=f.get(s.span_id);if(s.parent_span_id){const h=f.get(s.parent_span_id);h?h.children.push(l):a.push(l)}else a.push(l)}),a.forEach(s=>{this.sortChildren(s)}),this.treeData=a,this.treeData.length>0&&this.expandedNodes.add(this.treeData[0].span_id)},sortChildren(f){f.children&&f.children.length>0&&(f.children.sort((a,s)=>a.start_time_unix_nano-s.start_time_unix_nano),f.children.forEach(a=>this.sortChildren(a)))},handleNodeClick(f){this.$emit("span-select",f)},hasChildren(f){return f.children&&f.children.length>0},isExpanded(f){return this.expandedNodes.has(f.span_id)},toggleExpand(f){this.expandedNodes.has(f.span_id)?this.expandedNodes.delete(f.span_id):this.expandedNodes.add(f.span_id),this.$forceUpdate()},getNodeDepth(f){let a=0,s=f;for(;s.parent_span_id;){a++;const l=this.findNodeById(s.parent_span_id);if(!l)break;s=l}return a},findNodeById(f){const a=s=>{for(const l of s){if(l.span_id===f)return l;if(l.children&&l.children.length>0){const h=a(l.children);if(h)return h}}return null};return a(this.treeData)},getTimelineBarStyle(f){if(!this.traceStartTime||!this.traceEndTime||this.traceStartTime===this.traceEndTime)return{width:"100%"};const a=this.traceEndTime-this.traceStartTime,s=f.start_time_unix_nano-this.traceStartTime,l=f.duration_ns,h=s/a*100,g=l/a*100;return{left:`${h}%`,width:`${g}%`}},getTypeColor(f){return{SERVER:"primary",CHAT_MODEL:"success",LLM:"success",CHAIN:"warning",AGENT:"danger",TOOL:"info",JOB:"warning",FUNCTION:"info"}[f]||"info"},formatNanoDuration(f){if(!f)return"-";const a=f/1e6;return a<1e3?`${a.toFixed(2)}ms`:a<6e4?`${(a/1e3).toFixed(2)}s`:`${(a/6e4).toFixed(2)}min`},formatTime(f){if(!f)return"-";const a=f/1e6,s=new Date(a),l=s.getFullYear(),h=String(s.getMonth()+1).padStart(2,"0"),g=String(s.getDate()).padStart(2,"0"),p=String(s.getHours()).padStart(2,"0"),y=String(s.getMinutes()).padStart(2,"0"),w=String(s.getSeconds()).padStart(2,"0");return`${l}-${h}-${g} ${p}:${y}:${w}`}}};var xc=function(){var a=this,s=a._self._c;return s("div",{staticClass:"span-tree-container"},[a.treeData.length===0?s("div",{staticClass:"empty-state"},[s("el-empty",{attrs:{description:"暂无 Span 数据"}})],1):s("div",{staticClass:"timeline-wrapper"},[s("div",{staticClass:"timeline-header"},[s("div",{staticClass:"time-scale"},[s("span",{staticClass:"time-start"},[a._v(a._s(a.formatTime(a.traceStartTime)))]),s("span",{staticClass:"time-end"},[a._v(a._s(a.formatTime(a.traceEndTime)))])])]),s("div",{ref:"timelineContent",staticClass:"timeline-content"},a._l(a.treeData,function(l,h){return s("div",{key:l.span_id,staticClass:"timeline-node",class:{selected:a.selectedSpanId===l.span_id},on:{click:function(g){return a.handleNodeClick(l)}}},[s("div",{staticClass:"node-row"},[s("div",{staticClass:"node-info",style:{paddingLeft:`${a.getNodeDepth(l)*20}px`}},[a.hasChildren(l)?s("i",{staticClass:"expand-icon",class:a.isExpanded(l)?"el-icon-arrow-down":"el-icon-arrow-right",on:{click:function(g){return g.stopPropagation(),a.toggleExpand(l)}}}):s("i",{staticClass:"expand-icon-placeholder"}),s("el-tag",{staticClass:"type-tag",attrs:{type:a.getTypeColor(l.type),size:"mini"}},[a._v(" "+a._s(l.type)+" ")]),s("span",{staticClass:"node-name",attrs:{title:l.name}},[a._v(a._s(l.name))])],1),s("div",{staticClass:"node-duration"},[a._v(" "+a._s(a.formatNanoDuration(l.duration_ns))+" ")])]),s("div",{staticClass:"timeline-bar-wrapper"},[s("div",{staticClass:"timeline-bar",class:{selected:a.selectedSpanId===l.span_id},style:a.getTimelineBarStyle(l)})]),a.isExpanded(l)&&a.hasChildren(l)?s("div",{staticClass:"children-nodes"},a._l(l.children,function(g){return s("div",{key:g.span_id,staticClass:"timeline-node child-node",class:{selected:a.selectedSpanId===g.span_id},on:{click:function(p){return p.stopPropagation(),a.handleNodeClick(g)}}},[s("div",{staticClass:"node-row"},[s("div",{staticClass:"node-info",style:{paddingLeft:`${a.getNodeDepth(g)*20}px`}},[a.hasChildren(g)?s("i",{staticClass:"expand-icon",class:a.isExpanded(g)?"el-icon-arrow-down":"el-icon-arrow-right",on:{click:function(p){return p.stopPropagation(),a.toggleExpand(g)}}}):s("i",{staticClass:"expand-icon-placeholder"}),s("el-tag",{staticClass:"type-tag",attrs:{type:a.getTypeColor(g.type),size:"mini"}},[a._v(" "+a._s(g.type)+" ")]),s("span",{staticClass:"node-name",attrs:{title:g.name}},[a._v(a._s(g.name))])],1),s("div",{staticClass:"node-duration"},[a._v(" "+a._s(a.formatNanoDuration(g.duration_ns))+" ")])]),s("div",{staticClass:"timeline-bar-wrapper"},[s("div",{staticClass:"timeline-bar",class:{selected:a.selectedSpanId===g.span_id},style:a.getTimelineBarStyle(g)})]),a.isExpanded(g)&&a.hasChildren(g)?s("div",{staticClass:"children-nodes"},a._l(g.children,function(p){return s("div",{key:p.span_id,staticClass:"timeline-node child-node",class:{selected:a.selectedSpanId===p.span_id},on:{click:function(y){return y.stopPropagation(),a.handleNodeClick(p)}}},[s("div",{staticClass:"node-row"},[s("div",{staticClass:"node-info",style:{paddingLeft:`${a.getNodeDepth(p)*20}px`}},[s("i",{staticClass:"expand-icon-placeholder"}),s("el-tag",{staticClass:"type-tag",attrs:{type:a.getTypeColor(p.type),size:"mini"}},[a._v(" "+a._s(p.type)+" ")]),s("span",{staticClass:"node-name",attrs:{title:p.name}},[a._v(a._s(p.name))])],1),s("div",{staticClass:"node-duration"},[a._v(" "+a._s(a.formatNanoDuration(p.duration_ns))+" ")])]),s("div",{staticClass:"timeline-bar-wrapper"},[s("div",{staticClass:"timeline-bar",class:{selected:a.selectedSpanId===p.span_id},style:a.getTimelineBarStyle(p)})])])}),0):a._e()])}),0):a._e()])}),0)])])},kc=[],Sc=Lo(wc,xc,kc,!1,null,"4f00ade1");const $a=Sc.exports;/*!
69
+ Please report this to https://github.com/markedjs/marked.`,a){const h="<p>An error occurred:</p><pre>"+Lt(l.message+"",!0)+"</pre>";return s?Promise.resolve(h):h}if(s)return Promise.reject(l);throw l}};const Fr=new yc;function ve(f,a){return Fr.parse(f,a)}ve.options=ve.setOptions=function(f){return Fr.setOptions(f),ve.defaults=Fr.defaults,fo(ve.defaults),ve},ve.getDefaults=Ma,ve.defaults=Pr,ve.use=function(...f){return Fr.use(...f),ve.defaults=Fr.defaults,fo(ve.defaults),ve},ve.walkTokens=function(f,a){return Fr.walkTokens(f,a)},ve.parseInline=Fr.parseInline,ve.Parser=Qt,ve.parser=Qt.parse,ve.Renderer=Pi,ve.TextRenderer=Ba,ve.Lexer=Zt,ve.lexer=Zt.lex,ve.Tokenizer=Ni,ve.Hooks=jn,ve.parse=ve,ve.options,ve.setOptions,ve.use,ve.walkTokens,ve.parseInline,Qt.parse,Zt.lex;const bc=()=>typeof __TRACE_API_BASE_URL__<"u"?__TRACE_API_BASE_URL__:typeof window<"u"&&window.__TRACE_API_BASE_URL__?window.__TRACE_API_BASE_URL__:typeof process<"u"&&process.env&&process.env.TRACE_API_BASE_URL?process.env.TRACE_API_BASE_URL:"/tracing",Fi=Nt.create({baseURL:bc(),timeout:36e5}),rn={getTraceList(f,a,s,l,h){const g={};return f&&(g.query=f),a&&(g.startTime=a),s&&(g.endTime=s),l&&(g.pageNo=l),h&&(g.pageSize=h),Fi.get("/v1/trace",{params:g}).then(p=>p.data)},getTraceDetail(f){return Fi.get(`/v1/trace/${f}`).then(a=>a.data)},getTraceSpans(f){return Fi.get(`/v1/trace/${f}/spans`).then(a=>a.data)},deleteTraces(f,a,s){const l={};return f&&(l.query=f),a&&(l.startTime=a),s&&(l.endTime=s),Fi.delete("/v1/trace",{params:l}).then(h=>h.data)}};function Lo(f,a,s,l,h,g,p,y){var w=typeof f=="function"?f.options:f;return a&&(w.render=a,w.staticRenderFns=s,w._compiled=!0),g&&(w._scopeId="data-v-"+g),{exports:f,options:w}}const wc={name:"TraceSpanTree",props:{spans:{type:Array,default:()=>[]},selectedSpanId:{type:String,default:null},traceStartTime:{type:Number,default:0},traceEndTime:{type:Number,default:0}},data(){return{expandedNodes:new Set,treeData:[]}},watch:{spans:{immediate:!0,handler(){this.buildTree()}}},methods:{buildTree(){if(!this.spans||this.spans.length===0){this.treeData=[];return}const f=new Map,a=[];this.spans.forEach(s=>{f.set(s.span_id,{...s,children:[]})}),this.spans.forEach(s=>{const l=f.get(s.span_id);if(s.parent_span_id){const h=f.get(s.parent_span_id);h?h.children.push(l):a.push(l)}else a.push(l)}),a.forEach(s=>{this.sortChildren(s)}),this.treeData=a,this.treeData.length>0&&this.expandedNodes.add(this.treeData[0].span_id)},sortChildren(f){f.children&&f.children.length>0&&(f.children.sort((a,s)=>a.start_time_unix_nano-s.start_time_unix_nano),f.children.forEach(a=>this.sortChildren(a)))},handleNodeClick(f){this.$emit("span-select",f)},hasChildren(f){return f.children&&f.children.length>0},isExpanded(f){return this.expandedNodes.has(f.span_id)},toggleExpand(f){this.expandedNodes.has(f.span_id)?this.expandedNodes.delete(f.span_id):this.expandedNodes.add(f.span_id),this.$forceUpdate()},getNodeDepth(f){let a=0,s=f;for(;s.parent_span_id;){a++;const l=this.findNodeById(s.parent_span_id);if(!l)break;s=l}return a},findNodeById(f){const a=s=>{for(const l of s){if(l.span_id===f)return l;if(l.children&&l.children.length>0){const h=a(l.children);if(h)return h}}return null};return a(this.treeData)},getTimelineBarStyle(f){if(!this.traceStartTime||!this.traceEndTime||this.traceStartTime===this.traceEndTime)return{width:"100%"};const a=this.traceEndTime-this.traceStartTime,s=f.start_time_unix_nano-this.traceStartTime,l=f.duration_ns,h=s/a*100,g=l/a*100;return{left:`${h}%`,width:`${g}%`}},getTypeColor(f){return{SERVER:"primary",CHAT_MODEL:"success",LLM:"success",CHAIN:"warning",AGENT:"danger",TOOL:"info",JOB:"warning",FUNCTION:"info"}[f]||"info"},formatNanoDuration(f){if(!f)return"-";const a=f/1e6;return a<1e3?`${a.toFixed(2)}ms`:a<6e4?`${(a/1e3).toFixed(2)}s`:`${(a/6e4).toFixed(2)}min`},formatTime(f){if(!f)return"-";const a=f/1e6,s=new Date(a),l=s.getFullYear(),h=String(s.getMonth()+1).padStart(2,"0"),g=String(s.getDate()).padStart(2,"0"),p=String(s.getHours()).padStart(2,"0"),y=String(s.getMinutes()).padStart(2,"0"),w=String(s.getSeconds()).padStart(2,"0");return`${l}-${h}-${g} ${p}:${y}:${w}`}}};var xc=function(){var a=this,s=a._self._c;return s("div",{staticClass:"span-tree-container"},[a.treeData.length===0?s("div",{staticClass:"empty-state"},[s("el-empty",{attrs:{description:"暂无 Span 数据"}})],1):s("div",{staticClass:"timeline-wrapper"},[s("div",{staticClass:"timeline-header"},[s("div",{staticClass:"time-scale"},[s("span",{staticClass:"time-start"},[a._v(a._s(a.formatTime(a.traceStartTime)))]),s("span",{staticClass:"time-end"},[a._v(a._s(a.formatTime(a.traceEndTime)))])])]),s("div",{ref:"timelineContent",staticClass:"timeline-content"},a._l(a.treeData,function(l,h){return s("div",{key:l.span_id,staticClass:"timeline-node",class:{selected:a.selectedSpanId===l.span_id},on:{click:function(g){return a.handleNodeClick(l)}}},[s("div",{staticClass:"node-row"},[s("div",{staticClass:"node-info",style:{paddingLeft:`${a.getNodeDepth(l)*20}px`}},[a.hasChildren(l)?s("i",{staticClass:"expand-icon",class:a.isExpanded(l)?"el-icon-arrow-down":"el-icon-arrow-right",on:{click:function(g){return g.stopPropagation(),a.toggleExpand(l)}}}):s("i",{staticClass:"expand-icon-placeholder"}),s("el-tag",{staticClass:"type-tag",attrs:{type:a.getTypeColor(l.type),size:"mini"}},[a._v(" "+a._s(l.type)+" ")]),s("span",{staticClass:"node-name",attrs:{title:l.name}},[a._v(a._s(l.name))])],1),s("div",{staticClass:"node-duration"},[a._v(" "+a._s(a.formatNanoDuration(l.duration_ns))+" ")])]),s("div",{staticClass:"timeline-bar-wrapper"},[s("div",{staticClass:"timeline-bar",class:{selected:a.selectedSpanId===l.span_id},style:a.getTimelineBarStyle(l)})]),a.isExpanded(l)&&a.hasChildren(l)?s("div",{staticClass:"children-nodes"},a._l(l.children,function(g){return s("div",{key:g.span_id,staticClass:"timeline-node child-node",class:{selected:a.selectedSpanId===g.span_id},on:{click:function(p){return p.stopPropagation(),a.handleNodeClick(g)}}},[s("div",{staticClass:"node-row"},[s("div",{staticClass:"node-info",style:{paddingLeft:`${a.getNodeDepth(g)*20}px`}},[a.hasChildren(g)?s("i",{staticClass:"expand-icon",class:a.isExpanded(g)?"el-icon-arrow-down":"el-icon-arrow-right",on:{click:function(p){return p.stopPropagation(),a.toggleExpand(g)}}}):s("i",{staticClass:"expand-icon-placeholder"}),s("el-tag",{staticClass:"type-tag",attrs:{type:a.getTypeColor(g.type),size:"mini"}},[a._v(" "+a._s(g.type)+" ")]),s("span",{staticClass:"node-name",attrs:{title:g.name}},[a._v(a._s(g.name))])],1),s("div",{staticClass:"node-duration"},[a._v(" "+a._s(a.formatNanoDuration(g.duration_ns))+" ")])]),s("div",{staticClass:"timeline-bar-wrapper"},[s("div",{staticClass:"timeline-bar",class:{selected:a.selectedSpanId===g.span_id},style:a.getTimelineBarStyle(g)})]),a.isExpanded(g)&&a.hasChildren(g)?s("div",{staticClass:"children-nodes"},a._l(g.children,function(p){return s("div",{key:p.span_id,staticClass:"timeline-node child-node",class:{selected:a.selectedSpanId===p.span_id},on:{click:function(y){return y.stopPropagation(),a.handleNodeClick(p)}}},[s("div",{staticClass:"node-row"},[s("div",{staticClass:"node-info",style:{paddingLeft:`${a.getNodeDepth(p)*20}px`}},[s("i",{staticClass:"expand-icon-placeholder"}),s("el-tag",{staticClass:"type-tag",attrs:{type:a.getTypeColor(p.type),size:"mini"}},[a._v(" "+a._s(p.type)+" ")]),s("span",{staticClass:"node-name",attrs:{title:p.name}},[a._v(a._s(p.name))])],1),s("div",{staticClass:"node-duration"},[a._v(" "+a._s(a.formatNanoDuration(p.duration_ns))+" ")])]),s("div",{staticClass:"timeline-bar-wrapper"},[s("div",{staticClass:"timeline-bar",class:{selected:a.selectedSpanId===p.span_id},style:a.getTimelineBarStyle(p)})])])}),0):a._e()])}),0):a._e()])}),0)])])},kc=[],Sc=Lo(wc,xc,kc,!1,null,"4f00ade1");const $a=Sc.exports;/*!
70
70
  * Viewer.js v1.11.7
71
71
  * https://fengyuanchen.github.io/viewerjs
72
72
  *
@@ -79,7 +79,7 @@ Please report this to https://github.com/markedjs/marked.`,a){const h="<p>An err
79
79
  `),a){const p=this.$i18n.locale==="zh-CN"?"zh-CN":"en-US";let y="";if(this.dateRange.length===2&&this.dateRange[1]!==null?y=new Date(this.dateRange[1]).toLocaleString(p):this.dateRange.length===1&&this.dateRange[0]!==null&&(y=new Date(this.dateRange[0]).toLocaleString(p)),this.dateRange.length===2&&this.dateRange[0]!==null&&this.dateRange[0]!==void 0&&this.dateRange[0]!==""){const w=new Date(this.dateRange[0]).toLocaleString(p);s+=`${this.$t("trace.timeRange")}: ${w} ${this.$t("trace.to")} ${y}
80
80
  `}else this.$i18n.locale==="zh-CN"?s+=`${this.$t("trace.timeRange")}: ${this.$t("trace.before")} ${y} 之前
81
81
  `:s+=`${this.$t("trace.timeRange")}: ${this.$t("trace.before")} ${y}
82
- `}s+=this.$t("trace.deleteConfirmFooter")}try{await this.$confirm(s,this.$t("trace.confirmDelete"),{confirmButtonText:this.$t("trace.confirmDeleteButton"),cancelButtonText:this.$t("common.cancel"),type:l,dangerouslyUseHTMLString:!1}),this.deleteLoading=!0;let p=null,y=null;this.dateRange&&Array.isArray(this.dateRange)&&(this.dateRange.length===2?(this.dateRange[0]!==null&&this.dateRange[0]!==void 0&&this.dateRange[0]!==""&&(p=typeof this.dateRange[0]=="number"?this.dateRange[0]:parseInt(this.dateRange[0],10)),this.dateRange[1]!==null&&this.dateRange[1]!==void 0&&this.dateRange[1]!==""&&(y=typeof this.dateRange[1]=="number"?this.dateRange[1]:parseInt(this.dateRange[1],10))):this.dateRange.length===1&&this.dateRange[0]!==null&&(y=typeof this.dateRange[0]=="number"?this.dateRange[0]:parseInt(this.dateRange[0],10))),await rn.deleteTraces(f?this.searchQuery:null,p,y),this.$message.success(this.$t("trace.deleteSuccess")),await this.loadTraceList()}catch(p){if(p!=="cancel"){console.error("Failed to delete traces:",p);const y=((g=(h=p.response)==null?void 0:h.data)==null?void 0:g.message)||p.message||this.$t("trace.unknownError");this.$message.error(`${this.$t("trace.deleteFailed")}: ${y}`)}}finally{this.deleteLoading=!1}},getStatusType(f){return{OK:"success",ERROR:"danger",IN_PROGRESS:"warning",UNSET:"info"}[f]||"info"},formatDateTime(f){if(!f)return"-";const a=typeof f=="string"?parseInt(f,10):f;if(isNaN(a))return"-";const s=new Date(a);if(isNaN(s.getTime()))return"-";const l=s.getFullYear(),h=String(s.getMonth()+1).padStart(2,"0"),g=String(s.getDate()).padStart(2,"0"),p=String(s.getHours()).padStart(2,"0"),y=String(s.getMinutes()).padStart(2,"0"),w=String(s.getSeconds()).padStart(2,"0");return`${l}-${h}-${g} ${p}:${y}:${w}`},formatTimeAgo(f){if(!f)return"-";const a=typeof f=="string"?parseInt(f,10):f;if(isNaN(a))return"-";const l=Date.now()-a,h=this.$i18n.locale==="zh-CN",g=Math.floor(l/(1e3*60*60*24));if(g>0)return h?`${g} 天前`:`${g} days ago`;const p=Math.floor(l/(1e3*60*60));if(p>0)return h?`${p} 小时前`:`${p} hours ago`;const y=Math.floor(l/(1e3*60));return y>0?h?`${y} 分钟前`:`${y} minutes ago`:h?"刚刚":"Just now"},formatTimestamp(f){if(!f)return"-";const a=typeof f=="string"?parseInt(f,10):f;if(isNaN(a))return"-";const s=new Date(a);return isNaN(s.getTime())?"-":s.toLocaleString("zh-CN")},formatDuration(f){return f?f<1e3?`${f}ms`:`${(f/1e3).toFixed(1)}s`:"-"},formatJson(f){return f?JSON.stringify(f,null,2):""},formatRawJson(f){if(!f)return"";if(typeof f=="string")try{const a=JSON.parse(f);return JSON.stringify(a,null,2)}catch{try{const s=f.replace(/\\"/g,'"').replace(/^"|"$/g,""),l=JSON.parse(s);return JSON.stringify(l,null,2)}catch{return f}}return JSON.stringify(f,null,2)},handleCodeMirrorReady(f){this.$nextTick(()=>{f&&f.refresh()})},formatMessageContent(f){return typeof f=="string"?f:JSON.stringify(f,null,2)},formatEventTime(f){if(f.time_unix_nano){const a=f.time_unix_nano/1e6;return new Date(a).toLocaleString("zh-CN")}return f.timestamp?new Date(f.timestamp).toLocaleString("zh-CN"):"-"},getMessageIcon(f){return{user:"el-icon-user",assistant:"el-icon-service",system:"el-icon-setting"}[f]||"el-icon-document"},tableRowClassName({row:f,rowIndex:a}){return"trace-row"},getIndex(f){return(this.pageNo-1)*this.pageSize+f+1},applyColumns(){const f={};this.selectedColumns.forEach(a=>{f[a]=!0}),Object.keys(this.visibleColumns).forEach(a=>{this.selectedColumns.includes(a)||(f[a]=!1)}),this.visibleColumns=f,this.showColumnDialog=!1},renderStructuredContent(f){const a=[];if(!f)return a;try{if(Array.isArray(f))f.forEach((s,l)=>{var h;s&&typeof s=="object"?s.type==="text"&&s.text?a.push({type:"markdown",content:ve(s.text),key:`text-${l}`}):s.type==="image_url"&&((h=s.image_url)!=null&&h.url)?a.push({type:"image",url:s.image_url.url,key:`image-${l}`}):s.image_base64&&s.image_base64.trim()!==""?a.push({type:"image",url:this.formatBase64Image(s.image_base64),key:`base64-image-${l}`}):a.push({type:"markdown",content:ve("```json\n"+JSON.stringify(s,null,2)+"\n```"),key:`json-${l}`}):a.push({type:"markdown",content:ve(String(s)),key:`text-${l}`})});else if(typeof f=="string")a.push({type:"markdown",content:ve(f),key:"text-0"});else if(typeof f=="object")if(f.data&&Array.isArray(f.data.result)){const s=JSON.parse(JSON.stringify(f)),l=[];s.data&&s.data.result&&s.data.result.forEach((h,g)=>{h.image_base64&&h.image_base64.trim()!==""&&(l.push({type:"page",image_base64:h.image_base64,page_num:h.page_num,label:h.page_num!==void 0?`Page ${h.page_num}`:`Result ${g}`}),h.image_base64="[BASE64_IMAGE_DATA]"),h.seals&&Array.isArray(h.seals)&&h.seals.forEach((p,y)=>{p.image_base64&&p.image_base64.trim()!==""&&(l.push({type:"seal",image_base64:p.image_base64,page_num:h.page_num,seal_index:y,seal_value:p.value,label:`Seal: ${p.value||y}`}),p.image_base64="[BASE64_IMAGE_DATA]")})}),a.push({type:"markdown",content:ve("```json\n"+JSON.stringify(s,null,2)+"\n```"),key:"json-0"}),l.forEach((h,g)=>{a.push({type:"image",url:this.formatBase64Image(h.image_base64),key:`result-image-${g}`,label:h.label})})}else a.push({type:"markdown",content:ve("```json\n"+JSON.stringify(f,null,2)+"\n```"),key:"json-0"});else a.push({type:"markdown",content:ve(String(f)),key:"text-0"})}catch(s){console.error("Error rendering content:",s),a.push({type:"markdown",content:ve("Error rendering content"),key:"error-0"})}return a},formatBase64Image(f){return f?f.startsWith("data:image")?f:f.startsWith("/9j/")?`data:image/jpeg;base64,${f}`:f.startsWith("iVBOR")?`data:image/png;base64,${f}`:f.startsWith("R0lGOD")?`data:image/gif;base64,${f}`:`data:image/jpeg;base64,${f}`:""},handleImageClick(f){rp({options:this.viewerOptions,images:[f]})}}};var ip=function(){var l,h,g,p,y,w;var a=this,s=a._self._c;return s("div",{staticClass:"trace-list-container"},[s("el-card",[s("div",{staticClass:"trace-content-wrapper"},[s("div",{staticClass:"trace-toolbar"},[s("el-input",{staticClass:"toolbar-input",attrs:{placeholder:a.$t("trace.searchPlaceholder"),"prefix-icon":"el-icon-search",clearable:"",size:"mini"},on:{clear:a.handleSearchClear,input:a.handleSearch},model:{value:a.searchQuery,callback:function(b){a.searchQuery=b},expression:"searchQuery"}}),s("el-date-picker",{staticClass:"toolbar-date-picker",attrs:{type:"datetimerange","range-separator":a.$t("trace.to"),"start-placeholder":a.$t("trace.startTime"),"end-placeholder":a.$t("trace.endTime"),"value-format":"timestamp",format:"yyyy-MM-dd HH:mm:ss",size:"mini","picker-options":a.pickerOptions,clearable:""},on:{change:a.handleDateRangeChange},model:{value:a.dateRange,callback:function(b){a.dateRange=b},expression:"dateRange"}}),s("el-button",{attrs:{type:"danger",icon:"el-icon-delete",size:"mini",disabled:a.deleteLoading},on:{click:a.handleBatchDelete}},[a._v(" "+a._s(a.$t("trace.batchDelete"))+" ")]),s("el-button",{attrs:{icon:"el-icon-refresh",size:"mini",circle:"",title:a.$t("common.refresh")},on:{click:a.refresh}}),s("el-button",{attrs:{icon:"el-icon-setting",size:"mini"},on:{click:function(b){a.showColumnDialog=!0}}},[a._v(" "+a._s(a.$t("common.columns"))+" ")])],1),s("div",{staticClass:"trace-table-wrapper"},[s("el-table",{directives:[{name:"loading",rawName:"v-loading",value:a.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:a.filteredTraceList,size:"mini",stripe:"","row-class-name":a.tableRowClassName},on:{"row-click":a.handleRowClick}},[s("el-table-column",{attrs:{type:"index",label:"#",width:"60",index:a.getIndex}}),a.visibleColumns.trace_id?s("el-table-column",{attrs:{prop:"trace_id",label:a.$t("trace.requestId"),width:"280","show-overflow-tooltip":""},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-link",{attrs:{type:"primary"},on:{click:function(k){return k.stopPropagation(),a.viewDetail(b.row.trace_id)}}},[a._v(" "+a._s(b.row.trace_id)+" ")])]}}],null,!1,1400187371)}):a._e(),a.visibleColumns.trace_name?s("el-table-column",{attrs:{prop:"trace_name",label:a.$t("trace.traceName"),"min-width":"300","show-overflow-tooltip":""},scopedSlots:a._u([{key:"default",fn:function(b){return[s("span",[a._v(a._s(b.row.trace_name||"-"))])]}}],null,!1,3633653970)}):a._e(),a.visibleColumns.trace_type?s("el-table-column",{attrs:{prop:"trace_type",label:a.$t("trace.traceType"),width:"120"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tag",{attrs:{size:"mini",type:"info"}},[a._v(a._s(b.row.trace_type||"-"))])]}}],null,!1,1175446173)}):a._e(),a.visibleColumns.execution_time_ms?s("el-table-column",{attrs:{prop:"execution_time_ms",label:a.$t("trace.executionTime"),width:"120"},scopedSlots:a._u([{key:"default",fn:function(b){return[a._v(" "+a._s(a.formatDuration(b.row.execution_time_ms))+" ")]}}],null,!1,2586299640)}):a._e(),a.visibleColumns.status?s("el-table-column",{attrs:{prop:"status",label:a.$t("trace.status"),width:"100"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tag",{attrs:{type:a.getStatusType(b.row.status),size:"mini"}},[b.row.status==="OK"?s("i",{staticClass:"el-icon-success"}):a._e(),a._v(" "+a._s(b.row.status)+" ")])]}}],null,!1,3672547022)}):a._e(),a.visibleColumns.timestamp_ms?s("el-table-column",{attrs:{prop:"timestamp_ms",label:a.$t("trace.timeCreated"),width:"180"},scopedSlots:a._u([{key:"default",fn:function(b){return[a._v(" "+a._s(a.formatDateTime(b.row.timestamp_ms))+" ")]}}],null,!1,1082702673)}):a._e(),s("el-table-column",{attrs:{label:a.$t("common.operation"),width:"100",fixed:"right"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(k){return k.stopPropagation(),a.viewDetail(b.row.trace_id)}}},[a._v(" "+a._s(a.$t("common.viewDetail"))+" ")])]}}])})],1)],1),s("div",{staticClass:"trace-pagination-wrapper"},[a.total>0?s("el-pagination",{staticClass:"trace-pagination",attrs:{"current-page":a.pageNo,"page-sizes":[10,20,50,100],"page-size":a.pageSize,size:"mini",layout:"total, prev, pager, next, sizes, jumper",total:a.total,background:""},on:{"size-change":a.handleSizeChange,"current-change":a.handleCurrentChange}}):a._e()],1)])]),s("el-dialog",{attrs:{title:a.$t("trace.selectColumns"),visible:a.showColumnDialog,width:"400px"},on:{"update:visible":function(b){a.showColumnDialog=b}}},[s("el-checkbox-group",{model:{value:a.selectedColumns,callback:function(b){a.selectedColumns=b},expression:"selectedColumns"}},[s("el-checkbox",{attrs:{label:"trace_id"}},[a._v(a._s(a.$t("trace.requestId")))]),s("el-checkbox",{attrs:{label:"timestamp_ms"}},[a._v(a._s(a.$t("trace.timeCreated")))]),s("el-checkbox",{attrs:{label:"status"}},[a._v(a._s(a.$t("trace.status")))]),s("el-checkbox",{attrs:{label:"execution_time_ms"}},[a._v(a._s(a.$t("trace.executionTime")))]),s("el-checkbox",{attrs:{label:"trace_type"}},[a._v(a._s(a.$t("trace.traceType")))]),s("el-checkbox",{attrs:{label:"trace_name"}},[a._v(a._s(a.$t("trace.traceName")))])],1),s("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[s("el-button",{attrs:{size:"mini"},on:{click:function(b){a.showColumnDialog=!1}}},[a._v(a._s(a.$t("common.cancel")))]),s("el-button",{attrs:{size:"mini",type:"primary"},on:{click:a.applyColumns}},[a._v(a._s(a.$t("common.confirm")))])],1)],1),s("el-drawer",{attrs:{visible:a.drawerVisible,"with-header":!0,title:a.drawerTitle,size:"90%",direction:"rtl","before-close":a.handleDrawerClose},on:{"update:visible":function(b){a.drawerVisible=b}}},[a.currentTraceId?s("div",{staticClass:"trace-detail-content"},[s("div",{staticClass:"trace-info-section"},[s("el-descriptions",{attrs:{column:3,border:""}},[s("el-descriptions-item",{attrs:{label:a.$t("trace.traceId")}},[a._v(a._s(a.traceInfo.trace_id))]),s("el-descriptions-item",{attrs:{label:a.$t("trace.status")}},[s("el-tag",{attrs:{type:a.getStatusType(a.traceInfo.status),size:"mini"}},[a._v(" "+a._s(a.traceInfo.status)+" ")])],1),s("el-descriptions-item",{attrs:{label:a.$t("trace.executionTime")}},[a._v(" "+a._s(a.formatDuration(a.traceInfo.execution_time_ms))+" ")]),s("el-descriptions-item",{attrs:{label:a.$t("trace.timeCreated")}},[a._v(" "+a._s(a.formatTimestamp(a.traceInfo.timestamp_ms))+" ")]),s("el-descriptions-item",{attrs:{label:a.$t("trace.experimentId")}},[a._v(a._s(a.traceInfo.experiment_id))]),s("el-descriptions-item",{attrs:{label:a.$t("trace.traceType")}},[s("el-tag",{attrs:{size:"mini",type:"info"}},[a._v(a._s(a.traceInfo.trace_type||"-"))])],1),s("el-descriptions-item",{attrs:{label:a.$t("trace.traceName"),span:2}},[a._v(" "+a._s(a.traceInfo.trace_name||"-")+" ")])],1)],1),s("el-divider"),s("el-row",{attrs:{gutter:20}},[s("el-col",{staticClass:"span-tree-col",attrs:{span:8}},[s("el-card",[s("div",{attrs:{slot:"header"},slot:"header"},[s("el-input",{attrs:{placeholder:a.$t("span.searchTree"),"prefix-icon":"el-icon-search",size:"small",clearable:""},on:{input:a.handleSpanSearch},model:{value:a.spanSearchQuery,callback:function(b){a.spanSearchQuery=b},expression:"spanSearchQuery"}})],1),s("TraceSpanTree",{attrs:{spans:a.filteredSpans,"selected-span-id":a.selectedSpanId,"trace-start-time":a.traceStartTime,"trace-end-time":a.traceEndTime},on:{"span-select":a.handleSpanSelect}})],1)],1),s("el-col",{staticClass:"span-detail-col",attrs:{span:16}},[s("el-card",[a.selectedSpan?s("div",{staticClass:"span-detail-content"},[s("el-tabs",{model:{value:a.activeTab,callback:function(b){a.activeTab=b},expression:"activeTab"}},[s("el-tab-pane",{attrs:{label:`${a.$t("trace.inputs")} / ${a.$t("trace.outputs")}`,name:"io"}},[s("div",{staticClass:"io-content"},[a.hasInputs?s("div",{staticClass:"io-section"},[s("el-collapse",{model:{value:a.activeCollapse,callback:function(b){a.activeCollapse=b},expression:"activeCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.inputs"),name:"inputs"}},[(h=(l=a.selectedSpan.parsedContent)==null?void 0:l.inputs)!=null&&h.messages?s("div",{staticClass:"messages-section"},a._l(a.selectedSpan.parsedContent.inputs.messages,function(b,k){return s("div",{key:k,staticClass:"message-item"},[s("el-collapse",{model:{value:a.messageCollapse,callback:function(A){a.messageCollapse=A},expression:"messageCollapse"}},[s("el-collapse-item",{attrs:{name:`message-${k}`}},[s("template",{slot:"title"},[s("i",{staticClass:"message-icon",class:a.getMessageIcon(b.role)}),s("span",{staticClass:"message-role"},[a._v(a._s(b.role))])]),s("div",{staticClass:"message-content"},[s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(b.content),function(A){return s("div",{key:A.key,staticClass:"content-element"},[A.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(A.content)}}):A.type==="image"?s("div",{staticClass:"image-content"},[A.label?s("div",{staticClass:"image-label"},[a._v(a._s(A.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:A.url,alt:"content image"},on:{click:function(L){return a.handleImageClick(A.url)}}})]):a._e()])}),0)])],2)],1)],1)}),0):(g=a.selectedSpan.parsedContent)!=null&&g.inputs?s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(a.selectedSpan.parsedContent.inputs),function(b){return s("div",{key:b.key,staticClass:"content-element"},[b.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(b.content)}}):b.type==="image"?s("div",{staticClass:"image-content"},[b.label?s("div",{staticClass:"image-label"},[a._v(a._s(b.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:b.url,alt:"content image"},on:{click:function(k){return a.handleImageClick(b.url)}}})]):a._e()])}),0):s("div",{staticClass:"empty-content"},[s("el-empty",{attrs:{description:a.$t("trace.noInputs"),"image-size":80}})],1)])],1)],1):a._e(),a.hasOutputs?s("div",{staticClass:"io-section"},[s("el-collapse",{model:{value:a.activeCollapse,callback:function(b){a.activeCollapse=b},expression:"activeCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.outputs"),name:"outputs"}},[(y=(p=a.selectedSpan.parsedContent)==null?void 0:p.outputs)!=null&&y.choices?s("div",{staticClass:"outputs-section"},a._l(a.selectedSpan.parsedContent.outputs.choices,function(b,k){return s("div",{key:k,staticClass:"choice-item"},[s("div",{staticClass:"choice-header"},[s("span",[a._v("Choice "+a._s(k))])]),s("div",{staticClass:"choice-content"},[b.message?s("div",[s("div",{staticClass:"message-header"},[s("i",{staticClass:"el-icon-user message-icon"}),s("span",[a._v(a._s(b.message.role))])]),s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(b.message.content),function(A){return s("div",{key:A.key,staticClass:"content-element"},[A.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(A.content)}}):A.type==="image"?s("div",{staticClass:"image-content"},[A.label?s("div",{staticClass:"image-label"},[a._v(a._s(A.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:A.url,alt:"content image"},on:{click:function(L){return a.handleImageClick(A.url)}}})]):a._e()])}),0)]):s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(b),function(A){return s("div",{key:A.key,staticClass:"content-element"},[A.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(A.content)}}):A.type==="image"?s("div",{staticClass:"image-content"},[A.label?s("div",{staticClass:"image-label"},[a._v(a._s(A.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:A.url,alt:"content image"},on:{click:function(L){return a.handleImageClick(A.url)}}})]):a._e()])}),0)])])}),0):(w=a.selectedSpan.parsedContent)!=null&&w.outputs?s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(a.selectedSpan.parsedContent.outputs),function(b){return s("div",{key:b.key,staticClass:"content-element"},[b.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(b.content)}}):b.type==="image"?s("div",{staticClass:"image-content"},[b.label?s("div",{staticClass:"image-label"},[a._v(a._s(b.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:b.url,alt:"content image"},on:{click:function(k){return a.handleImageClick(b.url)}}})]):a._e()])}),0):s("div",{staticClass:"empty-content"},[s("el-empty",{attrs:{description:a.$t("trace.noOutputs"),"image-size":80}})],1)])],1)],1):a._e(),!a.hasInputs&&!a.hasOutputs?s("div",{staticClass:"empty-io"},[s("el-empty",{attrs:{description:a.$t("trace.noIoData")}})],1):a._e()])]),s("el-tab-pane",{attrs:{label:a.$t("trace.attributes"),name:"attributes"}},[s("el-table",{staticClass:"attributes-table",attrs:{data:a.attributesData,border:"",stripe:""}},[s("el-table-column",{attrs:{prop:"key",label:a.$t("trace.key"),width:"250"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tooltip",{attrs:{content:b.row.key,placement:"top","open-delay":500,"popper-class":"attribute-tooltip"}},[s("span",{staticClass:"attribute-key"},[a._v(a._s(b.row.key))])])]}}],null,!1,688878823)}),s("el-table-column",{attrs:{prop:"value",label:a.$t("trace.value")},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tooltip",{attrs:{placement:"top","open-delay":500,"popper-class":"attribute-tooltip"}},[s("div",{staticClass:"attribute-tooltip-content",attrs:{slot:"content"},slot:"content"},[a._v(a._s(b.row.value))]),s("div",{staticClass:"attribute-value"},[a._v(a._s(b.row.value))])])]}}],null,!1,4281519148)})],1)],1),s("el-tab-pane",{attrs:{label:a.$t("trace.rawInputsOutputs"),name:"raw"}},[a.activeTab==="raw"?s("div",{staticClass:"raw-io-content"},[a.rawInputs?s("div",{staticClass:"raw-io-section"},[s("el-collapse",{model:{value:a.rawIoCollapse,callback:function(b){a.rawIoCollapse=b},expression:"rawIoCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.rawInputs"),name:"rawInputs"}},[s("codemirror",{key:`raw-inputs-${a.selectedSpanId}-${a.rawInputsKey}`,staticClass:"code-editor-wrapper",attrs:{value:a.formatRawJson(a.rawInputs),options:a.cmOptions}})],1)],1)],1):a._e(),a.rawOutputs?s("div",{staticClass:"raw-io-section"},[s("el-collapse",{model:{value:a.rawIoCollapse,callback:function(b){a.rawIoCollapse=b},expression:"rawIoCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.rawOutputs"),name:"rawOutputs"}},[s("codemirror",{key:`raw-outputs-${a.selectedSpanId}-${a.rawOutputsKey}`,staticClass:"code-editor-wrapper",attrs:{value:a.formatRawJson(a.rawOutputs),options:a.cmOptions}})],1)],1)],1):a._e(),!a.rawInputs&&!a.rawOutputs?s("div",{staticClass:"empty-raw-io"},[s("el-empty",{attrs:{description:a.$t("trace.noIoData")}})],1):a._e()]):a._e()])],1)],1):s("el-empty",{attrs:{description:a.$t("trace.selectSpan")}})],1)],1)],1)],1):a._e()])],1)},ap=[],sp=Lo(np,ip,ap,!1,null,"c0c90703");const as=sp.exports,Al={routes:[{path:"/trace",name:"trace",component:as}],beforeEach:(f,a,s)=>{s()}},Ol={common:{home:"首页",todos:"待办事项",trace:"追踪",login:"登录",logout:"退出",user:"用户",search:"搜索",refresh:"刷新",columns:"列设置",confirm:"确定",cancel:"取消",operation:"操作",viewDetail:"查看详情",language:"语言"},span:{searchTree:"Span名称/Span类型"},trace:{title:"追踪列表",searchPlaceholder:"追踪ID/追踪名称/追踪类型",requestId:"追踪ID",timeCreated:"创建时间",status:"状态",executionTime:"执行时长",traceType:"追踪类型",traceName:"追踪名称",traceDetail:"追踪详情",traceId:"追踪ID",clientRequestId:"客户端请求ID",experimentId:"应用ID",spanDetail:"Span 详情",inputs:"输入",outputs:"输出",attributes:"属性",rawInputsOutputs:"原始输入输出",rawInputs:"原始输入",rawOutputs:"原始输出",events:"事件",selectSpan:"请选择一个 Span 查看详情",noInputs:"暂无输入数据",noOutputs:"暂无输出数据",noIoData:"暂无输入输出数据",noEvents:"暂无事件数据",key:"键",value:"值",selectColumns:"选择列",batchDelete:"批量删除",startTime:"开始时间",endTime:"结束时间",to:"至",confirmDelete:"确认删除",confirmDeleteButton:"确定删除",deleteAllWarning:`警告:您没有设置任何查询条件,这将删除所有 trace 数据!
82
+ `}s+=this.$t("trace.deleteConfirmFooter")}try{await this.$confirm(s,this.$t("trace.confirmDelete"),{confirmButtonText:this.$t("trace.confirmDeleteButton"),cancelButtonText:this.$t("common.cancel"),type:l,dangerouslyUseHTMLString:!1}),this.deleteLoading=!0;let p=null,y=null;this.dateRange&&Array.isArray(this.dateRange)&&(this.dateRange.length===2?(this.dateRange[0]!==null&&this.dateRange[0]!==void 0&&this.dateRange[0]!==""&&(p=typeof this.dateRange[0]=="number"?this.dateRange[0]:parseInt(this.dateRange[0],10)),this.dateRange[1]!==null&&this.dateRange[1]!==void 0&&this.dateRange[1]!==""&&(y=typeof this.dateRange[1]=="number"?this.dateRange[1]:parseInt(this.dateRange[1],10))):this.dateRange.length===1&&this.dateRange[0]!==null&&(y=typeof this.dateRange[0]=="number"?this.dateRange[0]:parseInt(this.dateRange[0],10))),await rn.deleteTraces(f?this.searchQuery:null,p,y),this.$message.success(this.$t("trace.deleteSuccess")),await this.loadTraceList()}catch(p){if(p!=="cancel"){console.error("Failed to delete traces:",p);const y=((g=(h=p.response)==null?void 0:h.data)==null?void 0:g.message)||p.message||this.$t("trace.unknownError");this.$message.error(`${this.$t("trace.deleteFailed")}: ${y}`)}}finally{this.deleteLoading=!1}},getStatusType(f){return{OK:"success",ERROR:"danger",IN_PROGRESS:"warning",UNSET:"info"}[f]||"info"},formatDateTime(f){if(!f)return"-";const a=typeof f=="string"?parseInt(f,10):f;if(isNaN(a))return"-";const s=new Date(a);if(isNaN(s.getTime()))return"-";const l=s.getFullYear(),h=String(s.getMonth()+1).padStart(2,"0"),g=String(s.getDate()).padStart(2,"0"),p=String(s.getHours()).padStart(2,"0"),y=String(s.getMinutes()).padStart(2,"0"),w=String(s.getSeconds()).padStart(2,"0");return`${l}-${h}-${g} ${p}:${y}:${w}`},formatTimeAgo(f){if(!f)return"-";const a=typeof f=="string"?parseInt(f,10):f;if(isNaN(a))return"-";const l=Date.now()-a,h=this.$i18n.locale==="zh-CN",g=Math.floor(l/(1e3*60*60*24));if(g>0)return h?`${g} 天前`:`${g} days ago`;const p=Math.floor(l/(1e3*60*60));if(p>0)return h?`${p} 小时前`:`${p} hours ago`;const y=Math.floor(l/(1e3*60));return y>0?h?`${y} 分钟前`:`${y} minutes ago`:h?"刚刚":"Just now"},formatTimestamp(f){if(!f)return"-";const a=typeof f=="string"?parseInt(f,10):f;if(isNaN(a))return"-";const s=new Date(a);return isNaN(s.getTime())?"-":s.toLocaleString("zh-CN")},formatNanoDuration(f){if(!f)return"-";const a=f/1e6;return a<1e3?`${a.toFixed(2)}ms`:a<6e4?`${(a/1e3).toFixed(2)}s`:`${(a/6e4).toFixed(2)}min`},formatJson(f){return f?JSON.stringify(f,null,2):""},formatRawJson(f){if(!f)return"";if(typeof f=="string")try{const a=JSON.parse(f);return JSON.stringify(a,null,2)}catch{try{const s=f.replace(/\\"/g,'"').replace(/^"|"$/g,""),l=JSON.parse(s);return JSON.stringify(l,null,2)}catch{return f}}return JSON.stringify(f,null,2)},handleCodeMirrorReady(f){this.$nextTick(()=>{f&&f.refresh()})},formatMessageContent(f){return typeof f=="string"?f:JSON.stringify(f,null,2)},formatEventTime(f){if(f.time_unix_nano){const a=f.time_unix_nano/1e6;return new Date(a).toLocaleString("zh-CN")}return f.timestamp?new Date(f.timestamp).toLocaleString("zh-CN"):"-"},getMessageIcon(f){return{user:"el-icon-user",assistant:"el-icon-service",system:"el-icon-setting"}[f]||"el-icon-document"},tableRowClassName({row:f,rowIndex:a}){return"trace-row"},getIndex(f){return(this.pageNo-1)*this.pageSize+f+1},applyColumns(){const f={};this.selectedColumns.forEach(a=>{f[a]=!0}),Object.keys(this.visibleColumns).forEach(a=>{this.selectedColumns.includes(a)||(f[a]=!1)}),this.visibleColumns=f,this.showColumnDialog=!1},renderStructuredContent(f){const a=[];if(!f)return a;try{if(Array.isArray(f))f.forEach((s,l)=>{var h;s&&typeof s=="object"?s.type==="text"&&s.text?a.push({type:"markdown",content:ve(s.text),key:`text-${l}`}):s.type==="image_url"&&((h=s.image_url)!=null&&h.url)?a.push({type:"image",url:s.image_url.url,key:`image-${l}`}):s.image_base64&&s.image_base64.trim()!==""?a.push({type:"image",url:this.formatBase64Image(s.image_base64),key:`base64-image-${l}`}):a.push({type:"markdown",content:ve("```json\n"+JSON.stringify(s,null,2)+"\n```"),key:`json-${l}`}):a.push({type:"markdown",content:ve(String(s)),key:`text-${l}`})});else if(typeof f=="string")a.push({type:"markdown",content:ve(f),key:"text-0"});else if(typeof f=="object")if(f.data&&Array.isArray(f.data.result)){const s=JSON.parse(JSON.stringify(f)),l=[];s.data&&s.data.result&&s.data.result.forEach((h,g)=>{h.image_base64&&h.image_base64.trim()!==""&&(l.push({type:"page",image_base64:h.image_base64,page_num:h.page_num,label:h.page_num!==void 0?`Page ${h.page_num}`:`Result ${g}`}),h.image_base64="[BASE64_IMAGE_DATA]"),h.seals&&Array.isArray(h.seals)&&h.seals.forEach((p,y)=>{p.image_base64&&p.image_base64.trim()!==""&&(l.push({type:"seal",image_base64:p.image_base64,page_num:h.page_num,seal_index:y,seal_value:p.value,label:`Seal: ${p.value||y}`}),p.image_base64="[BASE64_IMAGE_DATA]")})}),a.push({type:"markdown",content:ve("```json\n"+JSON.stringify(s,null,2)+"\n```"),key:"json-0"}),l.forEach((h,g)=>{a.push({type:"image",url:this.formatBase64Image(h.image_base64),key:`result-image-${g}`,label:h.label})})}else a.push({type:"markdown",content:ve("```json\n"+JSON.stringify(f,null,2)+"\n```"),key:"json-0"});else a.push({type:"markdown",content:ve(String(f)),key:"text-0"})}catch(s){console.error("Error rendering content:",s),a.push({type:"markdown",content:ve("Error rendering content"),key:"error-0"})}return a},formatBase64Image(f){return f?f.startsWith("data:image")?f:f.startsWith("/9j/")?`data:image/jpeg;base64,${f}`:f.startsWith("iVBOR")?`data:image/png;base64,${f}`:f.startsWith("R0lGOD")?`data:image/gif;base64,${f}`:`data:image/jpeg;base64,${f}`:""},handleImageClick(f){rp({options:this.viewerOptions,images:[f]})}}};var ip=function(){var l,h,g,p,y,w;var a=this,s=a._self._c;return s("div",{staticClass:"trace-list-container"},[s("el-card",[s("div",{staticClass:"trace-content-wrapper"},[s("div",{staticClass:"trace-toolbar"},[s("el-input",{staticClass:"toolbar-input",attrs:{placeholder:a.$t("trace.searchPlaceholder"),"prefix-icon":"el-icon-search",clearable:"",size:"mini"},on:{clear:a.handleSearchClear,input:a.handleSearch},model:{value:a.searchQuery,callback:function(b){a.searchQuery=b},expression:"searchQuery"}}),s("el-date-picker",{staticClass:"toolbar-date-picker",attrs:{type:"datetimerange","range-separator":a.$t("trace.to"),"start-placeholder":a.$t("trace.startTime"),"end-placeholder":a.$t("trace.endTime"),"value-format":"timestamp",format:"yyyy-MM-dd HH:mm:ss",size:"mini","picker-options":a.pickerOptions,clearable:""},on:{change:a.handleDateRangeChange},model:{value:a.dateRange,callback:function(b){a.dateRange=b},expression:"dateRange"}}),s("el-button",{attrs:{type:"danger",icon:"el-icon-delete",size:"mini",disabled:a.deleteLoading},on:{click:a.handleBatchDelete}},[a._v(" "+a._s(a.$t("trace.batchDelete"))+" ")]),s("el-button",{attrs:{icon:"el-icon-refresh",size:"mini",circle:"",title:a.$t("common.refresh")},on:{click:a.refresh}}),s("el-button",{attrs:{icon:"el-icon-setting",size:"mini"},on:{click:function(b){a.showColumnDialog=!0}}},[a._v(" "+a._s(a.$t("common.columns"))+" ")])],1),s("div",{staticClass:"trace-table-wrapper"},[s("el-table",{directives:[{name:"loading",rawName:"v-loading",value:a.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:a.filteredTraceList,size:"mini",stripe:"","row-class-name":a.tableRowClassName},on:{"row-click":a.handleRowClick}},[s("el-table-column",{attrs:{type:"index",label:"#",width:"60",index:a.getIndex}}),a.visibleColumns.trace_id?s("el-table-column",{attrs:{prop:"trace_id",label:a.$t("trace.requestId"),width:"280","show-overflow-tooltip":""},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-link",{attrs:{type:"primary"},on:{click:function(k){return k.stopPropagation(),a.viewDetail(b.row.trace_id)}}},[a._v(" "+a._s(b.row.trace_id)+" ")])]}}],null,!1,1400187371)}):a._e(),a.visibleColumns.trace_name?s("el-table-column",{attrs:{prop:"trace_name",label:a.$t("trace.traceName"),"min-width":"300","show-overflow-tooltip":""},scopedSlots:a._u([{key:"default",fn:function(b){return[s("span",[a._v(a._s(b.row.trace_name||"-"))])]}}],null,!1,3633653970)}):a._e(),a.visibleColumns.trace_type?s("el-table-column",{attrs:{prop:"trace_type",label:a.$t("trace.traceType"),width:"120"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tag",{attrs:{size:"mini",type:"info"}},[a._v(a._s(b.row.trace_type||"-"))])]}}],null,!1,1175446173)}):a._e(),a.visibleColumns.execution_time_ms?s("el-table-column",{attrs:{prop:"execution_time_ms",label:a.$t("trace.executionTime"),width:"120"},scopedSlots:a._u([{key:"default",fn:function(b){return[a._v(" "+a._s(a.formatNanoDuration(b.row.execution_time_ms))+" ")]}}],null,!1,1733254102)}):a._e(),a.visibleColumns.status?s("el-table-column",{attrs:{prop:"status",label:a.$t("trace.status"),width:"100"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tag",{attrs:{type:a.getStatusType(b.row.status),size:"mini"}},[b.row.status==="OK"?s("i",{staticClass:"el-icon-success"}):a._e(),a._v(" "+a._s(b.row.status)+" ")])]}}],null,!1,3672547022)}):a._e(),a.visibleColumns.timestamp_ms?s("el-table-column",{attrs:{prop:"timestamp_ms",label:a.$t("trace.timeCreated"),width:"180"},scopedSlots:a._u([{key:"default",fn:function(b){return[a._v(" "+a._s(a.formatDateTime(b.row.timestamp_ms))+" ")]}}],null,!1,1082702673)}):a._e(),s("el-table-column",{attrs:{label:a.$t("common.operation"),width:"100",fixed:"right"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(k){return k.stopPropagation(),a.viewDetail(b.row.trace_id)}}},[a._v(" "+a._s(a.$t("common.viewDetail"))+" ")])]}}])})],1)],1),s("div",{staticClass:"trace-pagination-wrapper"},[a.total>0?s("el-pagination",{staticClass:"trace-pagination",attrs:{"current-page":a.pageNo,"page-sizes":[10,20,50,100],"page-size":a.pageSize,size:"mini",layout:"total, prev, pager, next, sizes, jumper",total:a.total,background:""},on:{"size-change":a.handleSizeChange,"current-change":a.handleCurrentChange}}):a._e()],1)])]),s("el-dialog",{attrs:{title:a.$t("trace.selectColumns"),visible:a.showColumnDialog,width:"400px"},on:{"update:visible":function(b){a.showColumnDialog=b}}},[s("el-checkbox-group",{model:{value:a.selectedColumns,callback:function(b){a.selectedColumns=b},expression:"selectedColumns"}},[s("el-checkbox",{attrs:{label:"trace_id"}},[a._v(a._s(a.$t("trace.requestId")))]),s("el-checkbox",{attrs:{label:"timestamp_ms"}},[a._v(a._s(a.$t("trace.timeCreated")))]),s("el-checkbox",{attrs:{label:"status"}},[a._v(a._s(a.$t("trace.status")))]),s("el-checkbox",{attrs:{label:"execution_time_ms"}},[a._v(a._s(a.$t("trace.executionTime")))]),s("el-checkbox",{attrs:{label:"trace_type"}},[a._v(a._s(a.$t("trace.traceType")))]),s("el-checkbox",{attrs:{label:"trace_name"}},[a._v(a._s(a.$t("trace.traceName")))])],1),s("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[s("el-button",{attrs:{size:"mini"},on:{click:function(b){a.showColumnDialog=!1}}},[a._v(a._s(a.$t("common.cancel")))]),s("el-button",{attrs:{size:"mini",type:"primary"},on:{click:a.applyColumns}},[a._v(a._s(a.$t("common.confirm")))])],1)],1),s("el-drawer",{attrs:{visible:a.drawerVisible,"with-header":!0,title:a.drawerTitle,size:"90%",direction:"rtl","before-close":a.handleDrawerClose},on:{"update:visible":function(b){a.drawerVisible=b}}},[a.currentTraceId?s("div",{staticClass:"trace-detail-content"},[s("div",{staticClass:"trace-info-section"},[s("el-descriptions",{attrs:{column:3,border:""}},[s("el-descriptions-item",{attrs:{label:a.$t("trace.traceId")}},[a._v(a._s(a.traceInfo.trace_id))]),s("el-descriptions-item",{attrs:{label:a.$t("trace.status")}},[s("el-tag",{attrs:{type:a.getStatusType(a.traceInfo.status),size:"mini"}},[a._v(" "+a._s(a.traceInfo.status)+" ")])],1),s("el-descriptions-item",{attrs:{label:a.$t("trace.executionTime")}},[a._v(" "+a._s(a.formatNanoDuration(a.traceInfo.execution_time_ms))+" ")]),s("el-descriptions-item",{attrs:{label:a.$t("trace.timeCreated")}},[a._v(" "+a._s(a.formatTimestamp(a.traceInfo.timestamp_ms))+" ")]),s("el-descriptions-item",{attrs:{label:a.$t("trace.experimentId")}},[a._v(a._s(a.traceInfo.experiment_id))]),s("el-descriptions-item",{attrs:{label:a.$t("trace.traceType")}},[s("el-tag",{attrs:{size:"mini",type:"info"}},[a._v(a._s(a.traceInfo.trace_type||"-"))])],1),s("el-descriptions-item",{attrs:{label:a.$t("trace.traceName"),span:2}},[a._v(" "+a._s(a.traceInfo.trace_name||"-")+" ")])],1)],1),s("el-divider"),s("el-row",{attrs:{gutter:20}},[s("el-col",{staticClass:"span-tree-col",attrs:{span:8}},[s("el-card",[s("div",{attrs:{slot:"header"},slot:"header"},[s("el-input",{attrs:{placeholder:a.$t("span.searchTree"),"prefix-icon":"el-icon-search",size:"small",clearable:""},on:{input:a.handleSpanSearch},model:{value:a.spanSearchQuery,callback:function(b){a.spanSearchQuery=b},expression:"spanSearchQuery"}})],1),s("TraceSpanTree",{attrs:{spans:a.filteredSpans,"selected-span-id":a.selectedSpanId,"trace-start-time":a.traceStartTime,"trace-end-time":a.traceEndTime},on:{"span-select":a.handleSpanSelect}})],1)],1),s("el-col",{staticClass:"span-detail-col",attrs:{span:16}},[s("el-card",[a.selectedSpan?s("div",{staticClass:"span-detail-content"},[s("el-tabs",{model:{value:a.activeTab,callback:function(b){a.activeTab=b},expression:"activeTab"}},[s("el-tab-pane",{attrs:{label:`${a.$t("trace.inputs")} / ${a.$t("trace.outputs")}`,name:"io"}},[s("div",{staticClass:"io-content"},[a.hasInputs?s("div",{staticClass:"io-section"},[s("el-collapse",{model:{value:a.activeCollapse,callback:function(b){a.activeCollapse=b},expression:"activeCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.inputs"),name:"inputs"}},[(h=(l=a.selectedSpan.parsedContent)==null?void 0:l.inputs)!=null&&h.messages?s("div",{staticClass:"messages-section"},a._l(a.selectedSpan.parsedContent.inputs.messages,function(b,k){return s("div",{key:k,staticClass:"message-item"},[s("el-collapse",{model:{value:a.messageCollapse,callback:function(A){a.messageCollapse=A},expression:"messageCollapse"}},[s("el-collapse-item",{attrs:{name:`message-${k}`}},[s("template",{slot:"title"},[s("i",{staticClass:"message-icon",class:a.getMessageIcon(b.role)}),s("span",{staticClass:"message-role"},[a._v(a._s(b.role))])]),s("div",{staticClass:"message-content"},[s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(b.content),function(A){return s("div",{key:A.key,staticClass:"content-element"},[A.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(A.content)}}):A.type==="image"?s("div",{staticClass:"image-content"},[A.label?s("div",{staticClass:"image-label"},[a._v(a._s(A.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:A.url,alt:"content image"},on:{click:function(L){return a.handleImageClick(A.url)}}})]):a._e()])}),0)])],2)],1)],1)}),0):(g=a.selectedSpan.parsedContent)!=null&&g.inputs?s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(a.selectedSpan.parsedContent.inputs),function(b){return s("div",{key:b.key,staticClass:"content-element"},[b.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(b.content)}}):b.type==="image"?s("div",{staticClass:"image-content"},[b.label?s("div",{staticClass:"image-label"},[a._v(a._s(b.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:b.url,alt:"content image"},on:{click:function(k){return a.handleImageClick(b.url)}}})]):a._e()])}),0):s("div",{staticClass:"empty-content"},[s("el-empty",{attrs:{description:a.$t("trace.noInputs"),"image-size":80}})],1)])],1)],1):a._e(),a.hasOutputs?s("div",{staticClass:"io-section"},[s("el-collapse",{model:{value:a.activeCollapse,callback:function(b){a.activeCollapse=b},expression:"activeCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.outputs"),name:"outputs"}},[(y=(p=a.selectedSpan.parsedContent)==null?void 0:p.outputs)!=null&&y.choices?s("div",{staticClass:"outputs-section"},a._l(a.selectedSpan.parsedContent.outputs.choices,function(b,k){return s("div",{key:k,staticClass:"choice-item"},[s("div",{staticClass:"choice-header"},[s("span",[a._v("Choice "+a._s(k))])]),s("div",{staticClass:"choice-content"},[b.message?s("div",[s("div",{staticClass:"message-header"},[s("i",{staticClass:"el-icon-user message-icon"}),s("span",[a._v(a._s(b.message.role))])]),s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(b.message.content),function(A){return s("div",{key:A.key,staticClass:"content-element"},[A.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(A.content)}}):A.type==="image"?s("div",{staticClass:"image-content"},[A.label?s("div",{staticClass:"image-label"},[a._v(a._s(A.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:A.url,alt:"content image"},on:{click:function(L){return a.handleImageClick(A.url)}}})]):a._e()])}),0)]):s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(b),function(A){return s("div",{key:A.key,staticClass:"content-element"},[A.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(A.content)}}):A.type==="image"?s("div",{staticClass:"image-content"},[A.label?s("div",{staticClass:"image-label"},[a._v(a._s(A.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:A.url,alt:"content image"},on:{click:function(L){return a.handleImageClick(A.url)}}})]):a._e()])}),0)])])}),0):(w=a.selectedSpan.parsedContent)!=null&&w.outputs?s("div",{staticClass:"structured-content"},a._l(a.renderStructuredContent(a.selectedSpan.parsedContent.outputs),function(b){return s("div",{key:b.key,staticClass:"content-element"},[b.type==="markdown"?s("div",{staticClass:"markdown-content",domProps:{innerHTML:a._s(b.content)}}):b.type==="image"?s("div",{staticClass:"image-content"},[b.label?s("div",{staticClass:"image-label"},[a._v(a._s(b.label))]):a._e(),s("img",{staticClass:"content-image",attrs:{src:b.url,alt:"content image"},on:{click:function(k){return a.handleImageClick(b.url)}}})]):a._e()])}),0):s("div",{staticClass:"empty-content"},[s("el-empty",{attrs:{description:a.$t("trace.noOutputs"),"image-size":80}})],1)])],1)],1):a._e(),!a.hasInputs&&!a.hasOutputs?s("div",{staticClass:"empty-io"},[s("el-empty",{attrs:{description:a.$t("trace.noIoData")}})],1):a._e()])]),s("el-tab-pane",{attrs:{label:a.$t("trace.attributes"),name:"attributes"}},[s("el-table",{staticClass:"attributes-table",attrs:{data:a.attributesData,border:"",stripe:""}},[s("el-table-column",{attrs:{prop:"key",label:a.$t("trace.key"),width:"250"},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tooltip",{attrs:{content:b.row.key,placement:"top","open-delay":500,"popper-class":"attribute-tooltip"}},[s("span",{staticClass:"attribute-key"},[a._v(a._s(b.row.key))])])]}}],null,!1,688878823)}),s("el-table-column",{attrs:{prop:"value",label:a.$t("trace.value")},scopedSlots:a._u([{key:"default",fn:function(b){return[s("el-tooltip",{attrs:{placement:"top","open-delay":500,"popper-class":"attribute-tooltip"}},[s("div",{staticClass:"attribute-tooltip-content",attrs:{slot:"content"},slot:"content"},[a._v(a._s(b.row.value))]),s("div",{staticClass:"attribute-value"},[a._v(a._s(b.row.value))])])]}}],null,!1,4281519148)})],1)],1),s("el-tab-pane",{attrs:{label:a.$t("trace.rawInputsOutputs"),name:"raw"}},[a.activeTab==="raw"?s("div",{staticClass:"raw-io-content"},[a.rawInputs?s("div",{staticClass:"raw-io-section"},[s("el-collapse",{model:{value:a.rawIoCollapse,callback:function(b){a.rawIoCollapse=b},expression:"rawIoCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.rawInputs"),name:"rawInputs"}},[s("codemirror",{key:`raw-inputs-${a.selectedSpanId}-${a.rawInputsKey}`,staticClass:"code-editor-wrapper",attrs:{value:a.formatRawJson(a.rawInputs),options:a.cmOptions}})],1)],1)],1):a._e(),a.rawOutputs?s("div",{staticClass:"raw-io-section"},[s("el-collapse",{model:{value:a.rawIoCollapse,callback:function(b){a.rawIoCollapse=b},expression:"rawIoCollapse"}},[s("el-collapse-item",{attrs:{title:a.$t("trace.rawOutputs"),name:"rawOutputs"}},[s("codemirror",{key:`raw-outputs-${a.selectedSpanId}-${a.rawOutputsKey}`,staticClass:"code-editor-wrapper",attrs:{value:a.formatRawJson(a.rawOutputs),options:a.cmOptions}})],1)],1)],1):a._e(),!a.rawInputs&&!a.rawOutputs?s("div",{staticClass:"empty-raw-io"},[s("el-empty",{attrs:{description:a.$t("trace.noIoData")}})],1):a._e()]):a._e()])],1)],1):s("el-empty",{attrs:{description:a.$t("trace.selectSpan")}})],1)],1)],1)],1):a._e()])],1)},ap=[],sp=Lo(np,ip,ap,!1,null,"3798c52b");const as=sp.exports,Al={routes:[{path:"/trace",name:"trace",component:as}],beforeEach:(f,a,s)=>{s()}},Ol={common:{home:"首页",todos:"待办事项",trace:"追踪",login:"登录",logout:"退出",user:"用户",search:"搜索",refresh:"刷新",columns:"列设置",confirm:"确定",cancel:"取消",operation:"操作",viewDetail:"查看详情",language:"语言"},span:{searchTree:"Span名称/Span类型"},trace:{title:"追踪列表",searchPlaceholder:"追踪ID/追踪名称/追踪类型",requestId:"追踪ID",timeCreated:"创建时间",status:"状态",executionTime:"执行时长",traceType:"追踪类型",traceName:"追踪名称",traceDetail:"追踪详情",traceId:"追踪ID",clientRequestId:"客户端请求ID",experimentId:"应用ID",spanDetail:"Span 详情",inputs:"输入",outputs:"输出",attributes:"属性",rawInputsOutputs:"原始输入输出",rawInputs:"原始输入",rawOutputs:"原始输出",events:"事件",selectSpan:"请选择一个 Span 查看详情",noInputs:"暂无输入数据",noOutputs:"暂无输出数据",noIoData:"暂无输入输出数据",noEvents:"暂无事件数据",key:"键",value:"值",selectColumns:"选择列",batchDelete:"批量删除",startTime:"开始时间",endTime:"结束时间",to:"至",confirmDelete:"确认删除",confirmDeleteButton:"确定删除",deleteAllWarning:`警告:您没有设置任何查询条件,这将删除所有 trace 数据!
83
83
 
84
84
  此操作不可恢复,请确认是否继续?`,deleteConfirmMessage:"确定要删除符合以下条件的 trace 吗?",searchCondition:"搜索条件",timeRange:"时间范围",before:"在",deleteConfirmFooter:`
85
85
  此操作不可恢复,请确认是否继续?`,deleteSuccess:"删除成功",deleteFailed:"删除失败",unknownError:"未知错误"}},El={common:{home:"Home",todos:"Todos",trace:"Trace",login:"Login",logout:"Logout",user:"User",search:"Search",refresh:"Refresh",columns:"Columns",confirm:"Confirm",cancel:"Cancel",operation:"Operation",viewDetail:"View Detail",language:"Language"},span:{searchTree:"Span Name/Span Type"},trace:{title:"Traces",searchPlaceholder:"Trace ID/Trace Name/Trace Type",requestId:"Trace ID",timeCreated:"Time created",status:"Status",executionTime:"Execution time",traceType:"Trace Type",traceName:"Trace Name",traceDetail:"Trace Detail",traceId:"Trace ID",clientRequestId:"Client Request ID",experimentId:"Application ID",spanDetail:"Span Detail",inputs:"Inputs",outputs:"Outputs",attributes:"Attributes",rawInputsOutputs:"Raw Inputs/Outputs",rawInputs:"Raw Inputs",rawOutputs:"Raw Outputs",events:"Events",selectSpan:"Please select a Span to view details",noInputs:"No input data",noOutputs:"No output data",noIoData:"No input/output data",noEvents:"No event data",key:"Key",value:"Value",selectColumns:"Select Columns",batchDelete:"Batch Delete",startTime:"Start Time",endTime:"End Time",to:"to",confirmDelete:"Confirm Delete",confirmDeleteButton:"Confirm Delete",deleteAllWarning:`Warning: You have not set any query conditions. This will delete all trace data!
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langsword/trace",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Trace module for Langsword frontend",
5
5
  "main": "dist/trace.umd.js",
6
6
  "module": "dist/trace.es.js",