@fses/workbench-app 0.2.20 → 0.3.0
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/WORKBENCH-CLOSURE.json +14 -14
- package/dist/{WorkbenchCardCenterDrawer-CWBuBD04.js → WorkbenchCardCenterDrawer-BOGnU-yE.js} +2 -2
- package/dist/{WorkbenchDiagnosticsFooter-BxpwRNMe.js → WorkbenchDiagnosticsFooter-DmkrIuSA.js} +1 -1
- package/dist/{WorkbenchDiagnosticsPage-D0mWFNWS.js → WorkbenchDiagnosticsPage-D8jFQL6N.js} +1 -1
- package/dist/{Workspace-DwnUU7_7.js → Workspace-CLKgeb_a.js} +1024 -1023
- package/dist/{customCardCatalog-DcoxF7gK.js → customCardCatalog-BtPqvNq5.js} +1 -1
- package/dist/fses-workbench-app.js +91 -88
- package/dist/i18n/index.d.ts +17 -0
- package/dist/i18n/index.js +14 -0
- package/dist/{index-CytMrt6f.js → index-R9-vwhCW.js} +50 -49
- package/dist/index.d.ts +2 -0
- package/dist/runtime/index.js +1 -1
- package/dist/{useWorkbenchRuntime-CJLqEtgU.js → useWorkbenchRuntime-DqU8RWC9.js} +693 -692
- package/dist/version.d.ts +1 -1
- package/node_modules/@fses/ai-chat/dist/fses-ai-chat.js +2 -4
- package/node_modules/@fses/ai-chat/dist/fses-ai-chat.umd.cjs +1 -1
- package/node_modules/@fses/ai-chat/package.json +3 -3
- package/node_modules/@fses/workbench-card/package.json +1 -1
- package/package.json +7 -3
package/dist/version.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @author seadon
|
|
5
5
|
* @created 2026-08-17
|
|
6
6
|
*/
|
|
7
|
-
export declare const WORKBENCH_APP_VERSION = "0.
|
|
7
|
+
export declare const WORKBENCH_APP_VERSION = "0.3.0";
|
|
8
8
|
export declare const WORKBENCH_APP_VERSION_META_NAME = "workbench-app-version";
|
|
9
9
|
/**
|
|
10
10
|
* 将当前包版本写入页面 head 的 meta 标签。
|
|
@@ -1315,10 +1315,8 @@ function Po(e, t) {
|
|
|
1315
1315
|
}
|
|
1316
1316
|
function _s(e, t) {
|
|
1317
1317
|
if (!t.cardRecommendationDraft) return fs(t);
|
|
1318
|
-
const i = vi(t), n = xi(t);
|
|
1319
|
-
|
|
1320
|
-
const d = Po(e, t);
|
|
1321
|
-
return d || (fc(e, n) ? n : n || i || ys(t) || Is(t.id));
|
|
1318
|
+
const i = vi(t), n = xi(t), d = Po(e, t);
|
|
1319
|
+
return d || (fc(e, i) ? i : fc(e, n) ? n : n || i || ys(t) || Is(t.id));
|
|
1322
1320
|
}
|
|
1323
1321
|
function Mu(e, t, i = []) {
|
|
1324
1322
|
if (!e.cardRecommendationDraft || !t) return !1;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
`+Ee),Z&&Ks([na,Sa,Na],Xe=>{Ee=Cs(Ee,Xe," ")}),oe&&Fe?oe.createHTML(Ee):Ee},s.setConfig=function(){let ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Rt(ue),U=!0},s.clearConfig=function(){at=null,U=!1},s.isValidAttribute=function(ue,T,V){at||Rt({});const pe=sa(ue),aa=sa(T);return Oa(pe,aa,V)},s.addHook=function(ue,T){typeof T=="function"&&Os(Ce[ue],T)},s.removeHook=function(ue,T){if(T!==void 0){const V=Io(Ce[ue],T);return V===-1?void 0:wo(Ce[ue],V,1)[0]}return gc(Ce[ue])},s.removeHooks=function(ue){Ce[ue]=[]},s.removeAllHooks=function(){Ce=Ic()},s}var Dc=wc();function ut(e){return e.replace(/\*\*/g,"").replace(/`/g,"").trim()}function pi(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(s=>ut(s))}function mi(e){return/^\s*\|.+\|\s*$/.test(e)}function Zo(e){if(!mi(e))return!1;const s=pi(e);return s.length>0&&s.every(c=>/^:?-{3,}:?$/.test(c.trim()))}function Jo(e){const s=e.split(/\r?\n/),c=[];for(let o=0;o<s.length-1;){if(!mi(s[o])||!Zo(s[o+1])){o+=1;continue}const p=pi(s[o]),u=[];let b=o+2;for(;b<s.length&&mi(s[b]);b+=1){const P=pi(s[b]);P.length>=p.length&&u.push(P.slice(0,p.length))}p.length>=1&&u.length>0&&c.push({index:o,headers:p,rows:u}),o=Math.max(b,o+1)}return c}function Xo(e,s){const o=e.split(/\r?\n/).slice(0,s).reverse().map(p=>{var u;return(u=p.match(/^\s{0,3}#{1,6}\s+(.+?)\s*$/))==null?void 0:u[1]}).find(Boolean);return ut(o??m("FAC.48941787576223563"))}function Wc(e){const s=ut(e).replace(/[↑↓↗↘]/g,"").trim();if(!s||/^[—-]+$/.test(s))return null;const c=s.match(/-?\d+(?:,\d{3})*(?:\.\d+)?|-?\d+(?:\.\d+)?/);if(!c)return null;let o=Number(c[0].replace(/,/g,""));return Number.isFinite(o)?(s.includes(m("FAC.3ecc1787576306006"))?o*=1e8:s.includes(m("FAC.50661787576306025"))&&(o*=1e4),o):null}function ed(e){const s=ut(e).replace(/[↑↓↗↘]/g,"").replace(/\s+/g,"").trim();return!s||/^[—-]+$/.test(s)?!1:/^[+-]?(?:\d+(?:,\d{3})*|\d+)(?:\.\d+)?(?:%|万|亿|万元|亿元)?$/.test(s)}function ad(e){const s=ut(e).trim();return!s||/^[—-]+$/.test(s)}function td(e){return/环比|同比|占比|变化/.test(e)}function Pr(e){const s=ut(e).toLowerCase().replace(/\s+/g,"");return/^(#|no\.?|number|rank|ranking|排名|排行|名次|序号|序)$/.test(s)}function sd(e){return/环比|同比|占比|变化|增长率|增幅/.test(ut(e))}function Ar(e){return td(e)||sd(e)}function ui(e){const s=ut(e).replace(/[\s_-]+/g,"");return{compact:s,normalized:s.toLowerCase()}}function hi(e){const{compact:s,normalized:c}=ui(e);return c==="id"||/(?:^|[\s_-])id$/i.test(ut(e))||/[A-Z0-9]ID$/.test(s)||/id$/.test(c)&&!/(paid|valid|invalid)$/.test(c)}function rd(e){const{normalized:s}=ui(e);return hi(e)||/number$|no$|code$|date$|time$|日期|时间|编号|单号|订单号|流水号|编码/.test(s)}function id(e){const s=ut(e).toLowerCase().replace(/\s+/g,"");return/date|time|month|week|quarter|year|region|area|city|category|customer|channel|月份|日期|时间|周期|季度|年份|年度|区域|地区|城市|省份|门店|部门|品类|分类|类别|客户|渠道|平台|名称|姓名|类型|项目/.test(s)}function cd(e){const{normalized:s}=ui(e);return hi(e)||/number$|no$|code$|编号|单号|订单号|流水号|编码/.test(s)}function kr(e,s){const c=e.rows.map(o=>o[s]??"").filter(o=>!ad(o));return c.length>0&&c.every(ed)}function Nc(e){var b;const s=e.headers.map((P,E)=>({header:P,index:E})).filter(({header:P})=>!Pr(P)&&!Ar(P)),c=s.find(({header:P})=>hi(P));if(c)return c.index;const o=s.find(({header:P})=>cd(P));if(o)return o.index;const p=s.find(({header:P})=>id(P));if(p)return p.index;const u=s.find(({index:P})=>!kr(e,P));return(u==null?void 0:u.index)??((b=s[0])==null?void 0:b.index)??0}function Bc(e,s,c,o,p=""){const u=`${p}
|
|
3
3
|
${s}
|
|
4
4
|
${e}`;return/k\s*线图?|kline|蜡烛图|candlestick/i.test(u)?"candlestick":/桑基图|桑基|sankey/i.test(u)?"sankey":/热力图|heat\s*map|heatmap/i.test(u)?"heatmap":/雷达图|radar/i.test(u)?"radar":/气泡图|bubble/i.test(u)?"bubble":/散点图|scatter/i.test(u)?"scatter":/漏斗图|funnel/i.test(u)?"funnel":/仪表盘|仪表图|gauge/i.test(u)?"gauge":/箱线图|盒须图|boxplot|box\s*plot/i.test(u)?"boxplot":/树图|树状图|tree\b/i.test(u)?"tree":/矩形树图|treemap/i.test(u)?"treemap":/旭日图|sunburst/i.test(u)?"sunburst":/网络图|关系图|graph|network/i.test(u)?"graph":/地图|map\b/i.test(u)?"map":/环形图|环图|donut/i.test(u)&&o.length===1?"donut":/柱状图|柱形图|bar\s*chart|bar\b/i.test(u)?o.length>1?"grouped-bar":"bar":/折线图|line\s*chart|line\b/i.test(u)?"line":/占比|占比图|饼图/.test(u)&&o.length===1?"pie":/趋势|月份|日期|时间|年度|季度|周/.test(`${u}
|
|
5
|
-
${c}`)?"line":o.length>1?"grouped-bar":"bar"}function jc(e){return e.rows.length!==1?!1:e.headers.every(s=>!Pr(s)&&!Ar(s))&&e.headers.every((s,c)=>kr(e,c))}function nd(e){if(jc(e))return!0;const s=Nc(e);return e.headers.some((c,o)=>o===s||Pr(c)||Ar(c)?!1:kr(e,o))}function ld(e,s,c){var W,$;const o=Xo(e,s.index);if(jc(s)){const K=s.headers.map((S,D)=>({指标:ut(S),数值:Wc(s.rows[0][D]??"")??0}));return{type:"chart-card",id:`derived-${Rc(`${o}:${JSON.stringify(K)}`)}`,title:o,chart:{type:Bc(e,o,m("FAC.73f01787576271781"),[m("FAC.a9b91787576271315")],c.userQuestion),xField:m("FAC.73f01787576271781"),yFields:[m("FAC.a9b91787576271315")],data:K},summary:m("FAC.931e1787576147997"),source:{label:m("FAC.b1571787576194136"),value:"assistant-response"},permission:{label:m("FAC.de5c1787576194356"),level:"self",downloadable:!1},actions:["insert-left"],meta:{generatedBy:"agent",...(W=c.userQuestion)!=null&&W.trim()?{prompt:c.userQuestion.trim()}:{},version:1}}}const p=Nc(s),u=s.headers[p],b=s.headers.map((K,S)=>({header:K,index:S})).filter(({header:K,index:S})=>S===p||Pr(K)||Ar(K)||rd(K)?!1:kr(s,S));if(b.length===0)return null;const P=b.map(K=>K.header),E=s.rows.map(K=>{const S={[u]:ut(K[p]??"")};for(const{header:D,index:M}of b)S[D]=Wc(K[M]??"")??0;return S});return{type:"chart-card",id:`derived-${Rc(`${o}:${JSON.stringify(E)}`)}`,title:o,chart:{type:Bc(e,o,u,P,c.userQuestion),xField:u,yFields:P,data:E},summary:m("FAC.931e1787576147997"),source:{label:m("FAC.b1571787576194136"),value:"assistant-response"},permission:{label:m("FAC.de5c1787576194356"),level:"self",downloadable:!1},actions:["insert-left"],meta:{generatedBy:"agent",...($=c.userQuestion)!=null&&$.trim()?{prompt:c.userQuestion.trim()}:{},version:1}}}function Rc(e){let s=0;for(let c=0;c<e.length;c+=1)s=(s<<5)-s+e.charCodeAt(c)|0;return Math.abs(s).toString(36)}function Mc(e,s={}){return Jo(e).filter(nd).map(c=>ld(e,c,s)).filter(c=>!!c)}const od={area:"area",bar:"bar",boxplot:"boxplot",bubble:"bubble",candlestick:"candlestick",donut:"donut",funnel:"funnel",gauge:"gauge",graph:"graph","grouped-bar":"grouped-bar","horizontal-bar":"horizontal-bar",heatmap:"heatmap",kline:"candlestick",line:"line",map:"map","mini-bar":"mini-bar",network:"network",pie:"pie",radar:"radar",sankey:"sankey",scatter:"scatter",sunburst:"sunburst",tree:"tree",treemap:"treemap"};function ta(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function yi(e){let s=0;for(let c=0;c<e.length;c+=1)s=(s<<5)-s+e.charCodeAt(c)|0;return Math.abs(s).toString(36)}function Sr(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return ta(e)&&(e.type==="json"&&"value"in e||"value"in e&&ta(e.value))?Sr(e.value):e}function Vc(e){return typeof e!="string"?"bar":od[e]??"bar"}function dd(e){const c=(Array.isArray(e)?e:[]).filter(o=>o==="view"||o==="download"||o==="insert-left"||o==="save-doc"||o==="save-kb"||o==="upgrade");return c.includes("insert-left")?c:[...c,"insert-left"]}function Lc(e){for(const s of e){if(!ta(s))continue;const c={},o=Qe(s.unitCode||s.unit_code),p=Qe(s.unitLabel||s.unit_label||s.unit),u=Qe(s.valueFormat||s.value_format||s.format),b=Qe(s.displayValue||s.display_value),P=fi(s.decimalPlaces??s.decimal_places??s.scale);if(o&&(c.unitCode=o),p&&(c.unitLabel=p),u&&(c.valueFormat=u),b&&(c.displayValue=b),P!==null&&(c.decimalPlaces=Math.max(0,Math.min(8,Math.trunc(P)))),Object.keys(c).length>0)return c}}function pd(e){const s=ta(e.chart)?e.chart:{},c=ta(e.dataBinding)?e.dataBinding:void 0,o=ta(c==null?void 0:c.fieldMapping)?c.fieldMapping:void 0,p=typeof e.title=="string"&&e.title.trim()?e.title.trim():"",u=typeof s.xField=="string"&&s.xField.trim()?s.xField.trim():"",b=Array.isArray(s.yFields)?s.yFields.filter(W=>typeof W=="string"&&W.trim().length>0).map(W=>W.trim()):[],P=Array.isArray(s.data)?s.data.filter(ta):[];if(!p||!u||b.length===0||P.length===0)return null;const E=Lc([s.valueSpec,s.displaySpec,e.displaySpec,c==null?void 0:c.displaySpec]);return{type:"chart-card",id:typeof e.id=="string"&&e.id.trim()?e.id.trim():`tool-${yi(`${p}:${JSON.stringify(P)}`)}`,title:p,...typeof e.period=="string"&&e.period.trim()?{period:e.period.trim()}:{},chart:{type:Vc(s.type),xField:u,yFields:b,data:P,...s.sort==="asc"||s.sort==="desc"||s.sort==="none"?{sort:s.sort}:{},...typeof s.limit=="number"&&Number.isFinite(s.limit)?{limit:s.limit}:{},...Array.isArray(s.hiddenSeries)?{hiddenSeries:s.hiddenSeries.filter(W=>typeof W=="string")}:{},...E?{valueSpec:E}:{}},...typeof e.summary=="string"&&e.summary.trim()?{summary:e.summary.trim()}:{},source:{label:ta(e.source)&&typeof e.source.label=="string"&&e.source.label.trim()?e.source.label.trim():m("FAC.af7f1787576194158"),...ta(e.source)&&typeof e.source.value=="string"?{value:e.source.value}:{}},...c?{dataBinding:{...typeof c.bindingKind=="string"&&c.bindingKind.trim()?{bindingKind:c.bindingKind.trim()}:{},...typeof c.source=="string"&&c.source.trim()?{source:c.source.trim()}:{},...typeof c.bindingId=="string"&&c.bindingId.trim()?{bindingId:c.bindingId.trim()}:{},...typeof c.refreshApi=="string"&&c.refreshApi.trim()?{refreshApi:c.refreshApi.trim()}:{},...typeof c.question=="string"&&c.question.trim()?{question:c.question.trim()}:{},...typeof c.validatedSql=="string"&&c.validatedSql.trim()?{validatedSql:c.validatedSql.trim()}:{},...typeof c.sqlDialect=="string"&&c.sqlDialect.trim()?{sqlDialect:c.sqlDialect.trim()}:{},...typeof c.contractHash=="string"&&c.contractHash.trim()?{contractHash:c.contractHash.trim()}:{},...typeof c.executeApi=="string"&&c.executeApi.trim()?{executeApi:c.executeApi.trim()}:{},...typeof c.metricCode=="string"&&c.metricCode.trim()?{metricCode:c.metricCode.trim()}:{},...typeof c.metricId=="string"&&c.metricId.trim()?{metricId:c.metricId.trim()}:{},...typeof c.metricName=="string"&&c.metricName.trim()?{metricName:c.metricName.trim()}:{},...typeof c.readbackApi=="string"&&c.readbackApi.trim()?{readbackApi:c.readbackApi.trim()}:{},...o?{fieldMapping:{...typeof o.xField=="string"?{xField:o.xField}:{},...Array.isArray(o.yFields)?{yFields:o.yFields.filter(W=>typeof W=="string")}:{}}}:{},...ta(c.paramsSchema)?{paramsSchema:c.paramsSchema}:{},...ta(c.permissionContext)?{permissionContext:c.permissionContext}:{}}}:{},permission:{label:ta(e.permission)&&typeof e.permission.label=="string"&&e.permission.label.trim()?e.permission.label.trim():m("FAC.724b1787576194399"),...ta(e.permission)&&e.permission.level==="team"?{level:"team"}:{},...ta(e.permission)&&e.permission.level==="org"?{level:"org"}:{},...ta(e.permission)&&e.permission.level==="self"?{level:"self"}:{},...ta(e.permission)&&typeof e.permission.downloadable=="boolean"?{downloadable:e.permission.downloadable}:{downloadable:!1}},actions:dd(e.actions),meta:{generatedBy:"agent",version:ta(e.meta)&&typeof e.meta.version=="number"&&Number.isFinite(e.meta.version)?e.meta.version:1,...ta(e.meta)&&typeof e.meta.prompt=="string"?{prompt:e.meta.prompt}:{}}}}function Gc(e){const s=typeof e.title=="string"&&e.title.trim()?e.title.trim():"",c=typeof e.xField=="string"&&e.xField.trim()?e.xField.trim():"",o=Array.isArray(e.yFields)?e.yFields.filter(b=>typeof b=="string"&&b.trim().length>0).map(b=>b.trim()):[],p=Array.isArray(e.data)?e.data.filter(ta):[];if(!s||!c||o.length===0||p.length===0)return null;const u=Lc([e.displaySpec]);return{type:"chart-card",id:`tool-${yi(`${s}:${JSON.stringify(p)}`)}`,title:s,...typeof e.period=="string"&&e.period.trim()?{period:e.period.trim()}:{},chart:{type:Vc(e.chartType),xField:c,yFields:o,data:p,...u?{valueSpec:u}:{}},...typeof e.summary=="string"&&e.summary.trim()?{summary:e.summary.trim()}:{},source:{label:m("FAC.af7f1787576194158"),value:"generate_chart"},permission:{label:m("FAC.724b1787576194399"),level:"self",downloadable:!1},actions:["insert-left"],meta:{generatedBy:"agent",version:1}}}function Qe(e){return typeof e=="string"&&e.trim()?e.trim():""}function fi(e){const s=typeof e=="number"?e:Number(e);return Number.isFinite(s)?s:null}function md(e,s){const c=Qe(e.primaryFormat||e.format||e.valueFormat);if(c==="currency"||c==="number"||c==="percent")return c;const o=s.toLowerCase();return/率|占比|percent|percentage|ratio|rate/.test(o)?"percent":"number"}function ud(e){if(!ta(e))return{label:m("FAC.39f71787576181027"),level:"self"};const s=e.level==="team"||e.level==="org"||e.level==="self"?e.level:"self";return{label:Qe(e.label)||m("FAC.39f71787576181027"),level:s}}function hd(e,s){const o={...ta(e.displaySpec)?e.displaySpec:ta(s.displaySpec)?s.displaySpec:{},...s,...e},p={},u=Qe(o.unitCode||o.unit_code||o.unit),b=Qe(o.unitLabel||o.unit_label||o.unitName||o.unit_name||o.unit),P=Qe(o.valueFormat||o.value_format||o.primaryFormat||o.format),E=Qe(o.displayValue||o.display_value),W=fi(o.decimalPlaces??o.decimal_places??o.scale);return u&&(p.unitCode=u),b&&(p.unitLabel=b),P&&(p.valueFormat=P),E&&(p.displayValue=E),W!==null&&(p.decimalPlaces=Math.max(0,Math.min(8,Math.trunc(W)))),Object.keys(p).length>0?p:void 0}function yd(e){const s=Sr(e);if(!ta(s))return null;const c=ta(s.source)?s.source:{},o=Qe(c.value),p=Qe(s.metricCode||s.metric_code),u=Qe(s.metricId||s.metric_id),b=Qe(s.metricName||s.metric_name||s.title)||p||u||m("FAC.d44f1787576271804"),P=fi(s.value??s.currentValue??s.primaryValue),E=!!(p||u||Qe(s.metricName||s.metric_name)||o==="execute_metric_api"||s.aggregation);if(P===null||!E)return null;const W=ta(s.dataBinding)?s.dataBinding:{},$=ta(W.permissionContext)?W.permissionContext:{...Qe(s.tenantId)?{tenantId:Qe(s.tenantId)}:{},...Qe(s.appId)?{appId:Qe(s.appId)}:{}},K=Qe(W.question),S=Qe(W.bindingId)||u||p,D=Qe(W.metricCode)||p,M=Qe(W.metricId)||u,q=hd(s,W),ee=Qe(s.displayValue||s.display_value||W.displayValue||(q==null?void 0:q.displayValue));return{type:"metric-card",id:`metric-${yi(`${M||D||b}:${P}`)}`,title:b,metricName:b,...D?{metricCode:D}:{},...M?{metricId:M}:{},value:P,...ee?{displayValue:ee}:{},...q?{displaySpec:q}:{},format:md({...s,...q??{}},b),source:{label:Qe(c.label)||m("FAC.fb301787576174781"),...o?{value:o}:{value:"execute_metric_api"}},dataBinding:{...K?{question:K}:{},...S?{bindingId:S}:{},...Qe(W.contractHash||s.contractHash)?{contractHash:Qe(W.contractHash||s.contractHash)}:{},executeApi:Qe(W.executeApi)||"/apps/api/v1/sp/ai/metric/metrics/execute",...D?{metricCode:D}:{},...M?{metricId:M}:{},...q?{displaySpec:q}:{},...ee?{displayValue:ee}:{},...q!=null&&q.unitCode?{unitCode:q.unitCode}:{},...q!=null&&q.unitLabel?{unitLabel:q.unitLabel}:{},...q!=null&&q.valueFormat?{valueFormat:q.valueFormat}:{},...(q==null?void 0:q.decimalPlaces)!==void 0?{decimalPlaces:q.decimalPlaces}:{},readbackApi:Qe(W.readbackApi)||"/apps/api/v1/sp/ai/metric/metrics/userReadback",refreshApi:Qe(W.refreshApi)||"/apps/api/v1/sp/ai/metric/metrics/execute",...Array.isArray(W.queryFilters)?{queryFilters:W.queryFilters}:{},...ta(W.paramsSchema)?{paramsSchema:W.paramsSchema}:{},...Object.keys($).length>0?{permissionContext:$}:{}},permission:ud(s.permission),meta:{generatedBy:"agent",version:ta(s.meta)&&typeof s.meta.version=="number"&&Number.isFinite(s.meta.version)?s.meta.version:1,...ta(s.meta)&&Qe(s.meta.prompt)?{prompt:Qe(s.meta.prompt)}:{}}}}function fd(e){const s=Sr(e);return ta(s)?s.type==="chart-card"?pd(s):s.type==="chart-spec"||typeof s.title=="string"&&typeof s.chartType=="string"&&typeof s.xField=="string"&&Array.isArray(s.yFields)&&Array.isArray(s.data)?Gc(s):null:null}const bd=[/需要确认口径/u,/存在多个可用口径/u,/请(?:回复|选择)序号/u,/(?:回复|选择)候选?序号/u,/业务行动/u,/业务动作/u,/load_data_action_candidates/u,/permissionDeniedCandidates/u,/未通过权限校验/u,/权限校验/u,/创建草稿/u,/不能继续创建草稿或执行/u,/可用业务行动/u,/执行.*行动/u,/还差\s*\d+\s*个(?:必填)?信息/u,/请回复[“"]?确认提交/u,/暂时不会提交/u,/草稿已准备/u];function zc(e){return bd.some(s=>s.test(e))}function gd(e){return e.role==="assistant"&&e.conclusion===!0&&!zc(e.content)}function Cd(e){var s;return e.role==="assistant"&&e.conclusion===!0&&!e.loading&&!e.streaming&&!!((s=e.cards)!=null&&s.length)&&!zc(e.content)}const Td=128e3;function xd(e,s={}){const c=s.contextWindow??Td,o=e.reduce((P,E)=>P+bi(E),0),p=Math.ceil(o/3.5),u=c>0?Math.round(p/c*100):0,b=Math.min(100,Math.max(0,u));return{estimatedTokens:p,contextWindow:c,percent:b,level:b>=90?"critical":b>=70?"warning":"normal"}}function bi(e){return e==null?0:typeof e=="string"?e.length:typeof e=="number"||typeof e=="boolean"?String(e).length:Array.isArray(e)?e.reduce((s,c)=>s+bi(c),0):typeof e=="object"?Object.entries(e).reduce((s,[c,o])=>s+c.length+bi(o),0):0}let Pd=0,qc=0;function Wt(){return`msg_${++Pd}`}function Nt(){const e=new Date,s=String(e.getHours()).padStart(2,"0"),c=String(e.getMinutes()).padStart(2,"0");return`${s}:${c}`}function Kc(e){return e.role!=="status"&&!e.cardRecommendationDraft}function Oc(e){if(typeof e!="string"||!e.trim())return NaN;const s=Date.parse(e);return Number.isFinite(s)?s:NaN}function Ad(e,s){const c=Oc(s.timestamp);if(!Number.isFinite(c)){e.push(s);return}const o=e.findIndex(p=>{const u=Oc(p.timestamp);return Number.isFinite(u)&&u>c});if(o>=0){e.splice(o,0,s);return}e.push(s)}function rs(e){if(typeof e!="string"||!e.startsWith("workbench-turn-"))return"";const s=["-reply","-conclusion-stream","-item-","-process-","-task-","-card-mutation-confirmation"];for(const c of s){const o=e.indexOf(c,15);if(o>15)return e.slice(15,o)}return""}function _r(e){var c;const s=(c=e.cardRecommendationDraft)==null?void 0:c.sourceTurnId;return typeof s=="string"&&s.trim()?s.trim():""}function Er(e){const s=e.cardRecommendationDraft,c=s==null?void 0:s.placementTurnId;return typeof c=="string"&&c.trim()?c.trim():""}function zt(e){const s=e.workbenchTurnId;return typeof s=="string"&&s.trim()?s.trim():""}function qt(e){return Er(e)||_r(e)||zt(e)||rs(e.id)}function Qs(e){return e==null?"":Array.isArray(e)?`[${e.map(Qs).join(",")}]`:Ye(e)?`{${Object.keys(e).sort().map(s=>`${JSON.stringify(s)}:${Qs(e[s])}`).join(",")}}`:JSON.stringify(e)??String(e)}function xs(e){return Ye(e)?e:{}}function kd(e){return typeof e=="string"&&e.trim()?e.trim():Ye(e)?J(e.key)||J(e.dataIndex)||J(e.data_index)||J(e.field)||J(e.name):""}function $c(e){const s=xs(e.data);return(Array.isArray(e.rows)?e.rows:Array.isArray(s.rows)?s.rows:[]).filter(Ye)}function Hc(e,s){const c=xs(e.data),o=Array.isArray(e.columns)?e.columns:Array.isArray(c.columns)?c.columns:[],p=[...new Set(s.flatMap(b=>Object.keys(b)))],u=o.map((b,P)=>{const E=kd(b);return E&&s.some(W=>Object.prototype.hasOwnProperty.call(W,E))?E:p[P]||E}).filter(Boolean);return[...new Set(u.length>0?u:p)]}function gi(e){if(!Ye(e))return"";const s=xs(e.metadata),c=J(e.resultId)||J(s.resultId)||J(e.id),o=J(e.sourceTurnId)||J(s.sourceTurnId);if(o&&(!c||c.startsWith(`${o}:`)))return`turn:${o}`;if(c)return`result:${c}`;if(o)return`turn:${o}`;const p=$c(e),u=Hc(e,p);if(p.length>0&&u.length>0)return`rows:${Qs({keys:u,rows:p.slice(0,5)})}`;const b=xs(e.data),P=Object.prototype.hasOwnProperty.call(e,"value")?e.value:b.value;return P===void 0?"":`value:${Qs(P)}`}function Ci(e){return[e,...Array.isArray(e.viewAlternatives)?e.viewAlternatives.flatMap(s=>Ci(s)):[]]}function Sd(e){const s=e.recommendations.flatMap(Ci).map(p=>gi(p.queryResult)).filter(Boolean),c=gi(e.queryResult),o=s.length>0?s:c?[c]:[];return[...new Set(o)].sort()}function _d(e){return e.role==="assistant"&&!!e.queryResultTable&&!e.cardRecommendationDraft&&!e.content.trim()}function Ed(e){return e.role==="status"&&e.loading===!0&&!e.cardRecommendationDraft&&/^思考中[.。…]*$/u.test(e.content.trim())}function vd(e){if(e.role!=="status"||!e.loading)return;const s=Date.now();typeof e.startTime!="number"&&(e.startTime=s),e.endTime=typeof e.endTime=="number"?e.endTime:s,e.loading=!1}function Uc(e){var c;if(!((c=e.processInvocations)!=null&&c.length))return;const s=new Date().toISOString();for(const o of e.processInvocations)o.status==="running"&&(o.status="done",o.completedAt=o.completedAt||s)}function Qc(e){if(Uc(e),e.role==="status"){vd(e);return}if(e.role!=="assistant"||!e.loading&&!e.streaming)return;const s=Date.now();typeof e.startTime!="number"&&(e.startTime=s),e.endTime=typeof e.endTime=="number"?e.endTime:s,e.loading=!1,e.streaming=!1}function Fd(e,s){if(s.renderedInMarkdown)return;const c=Array.isArray(e.queryResultTables)?e.queryResultTables:e.queryResultTable?[e.queryResultTable]:[],o=JSON.stringify(s);if(c.some(u=>JSON.stringify(u)===o))return;const p=[...c,s];e.queryResultTable=p[0],p.length>1&&(e.queryResultTables=p)}function Id(e){return typeof e.totalCount=="number"?e.totalCount:typeof e.returnedCount=="number"?e.returnedCount:e.rows.length}function Yc(e){return e.rows.length<=1&&Id(e)<=1&&e.columns.length<=1}function wd(e,s){return!!e.trim()&&Yc(s)}function vr(e){const s=Array.isArray(e.queryResultTables)?e.queryResultTables:e.queryResultTable?[e.queryResultTable]:[];if(s.length===0)return;const c=s.filter(o=>!wd(e.content,o));if(c.length!==s.length){if(c.length===0){e.queryResultTable=void 0,e.queryResultTables=void 0;return}e.queryResultTable=c[0],e.queryResultTables=c.length>1?c:void 0}}function Zc(e,s){if(!_d(s)||!s.queryResultTable)return null;if(s.queryResultTable.renderedInMarkdown)return s;const c=qt(s);if(!c)return null;const o=e.findIndex(p=>ht(p,c));return o<0?null:(Yc(s.queryResultTable)||Fd(e[o],s.queryResultTable),e[o])}function ht(e,s){if(e.role!=="assistant"||e.cardRecommendationDraft||!e.content.trim())return!1;const c=zt(e);return c?c===s:rs(e.id)!==s?!1:e.id.endsWith("-reply")||e.id.endsWith("-conclusion-stream")}function Ti(e,s){return!!(s&&e.some(c=>ht(c,s)))}function Jc(e){let s=e.toLocaleLowerCase();for(;/\d,\d/u.test(s);)s=s.replace(/(\d),(\d)/gu,"$1$2");return s}function Dd(e){if(!Ye(e))return[];const s=Ye(e.data)?e.data:{},c=[e.displayRows,s.displayRows,e.rows,s.rows];for(const o of c)if(Array.isArray(o))return o.filter(Ye);return[]}function Wd(e){const s=e.cardRecommendationDraft;return s?[s.queryResult,...s.recommendations.map(c=>c.queryResult)].filter(Ye):[]}function Nd(e){const s=new Set;for(const c of Wd(e)){const o=Object.prototype.hasOwnProperty.call(c,"value")?c.value:void 0,p=Dd(c),u=[o,...p.slice(0,5).flatMap(b=>Object.values(b))];for(const b of u){if(typeof b!="string"&&typeof b!="number")continue;const P=String(b).trim();P.length<2||s.add(Jc(P))}}return[...s].slice(0,8)}function Xc(e,s){const c=Nd(s);if(c.length===0)return"";const o=e.flatMap(p=>{const u=qt(p);if(!u||!ht(p,u))return[];const b=Jc(p.content);return c.every(P=>b.includes(P))?[u]:[]});return new Set(o).size===1&&o[0]||""}function is(e,s){if(!s.cardRecommendationDraft)return qt(s);const c=_r(s),o=Er(s);if(Ti(e,c))return c;const p=Xc(e,s);return p||(Ti(e,o)?o:o||c||zt(s)||rs(s.id))}function Bd(e,s,c=[]){if(!e.cardRecommendationDraft||!s)return!1;const o=_r(e),p=Er(e);return o===s||o.startsWith(`${s}:`)?!0:o&&Ti(c,o)?!1:p===s?!0:zt(e)===s||rs(e.id)===s}function en(e,s){if(!s.cardRecommendationDraft)return!1;const c=is(e,s);if(!c)return!1;const o=e.findIndex(p=>ht(p,c));return o<0?!1:(e.splice(o+1,0,s),!0)}function jd(e,s){if(!s.thinkingProcess)return!1;const c=qt(s);if(!c)return!1;const o=e.findIndex(p=>ht(p,c));return o<0?!1:(e.splice(o,0,s),!0)}function Ps(e,s){const c=qt(s);if(!c||!ht(s,c))return!1;const o=e.flatMap((E,W)=>E.cardRecommendationDraft&&is(e,E)===c?[W]:[]);if(o.length===0)return!1;const p=e.findIndex(E=>E.id===s.id),u=o.every((E,W)=>E===p+W+1);if(p<0||u)return!1;const b=o.map(E=>e[E]);for(let E=o.length-1;E>=0;E-=1)e.splice(o[E],1);const P=e.findIndex(E=>E.id===s.id);return e.splice(P+1,0,...b),!0}function an(e){let s=!1;for(let c=0;c<e.length;c+=1){let o=!1;for(const p of[...e])o=Ps(e,p)||o;if(!o)return s;s=!0}return s}function xi(e){if(!e.cardRecommendationDraft)return"";const s=Sd(e.cardRecommendationDraft);return s.length===1?s[0]:s.length>1?`multi:${s.join("|")}`:_r(e)||Er(e)||zt(e)||rs(e.id)}function cs(e,s){const c=xi(s);if(c)for(let o=e.length-1;o>=0;o-=1){const p=e[o];(p==null?void 0:p.id)!==s.id&&xi(p)===c&&e.splice(o,1)}}function Pi(e){const s=e.cardRecommendationDraft;return s?s.recommendations.length>1||(s.totalRecommendationCount??0)>1||(s.eligibleCandidateCount??0)>1||(s.returnedCandidateCount??0)>1||(s.readyCandidateCount??0)>1||Array.isArray(s.chartFamilyCoverage)&&s.chartFamilyCoverage.length>0||!!(s.echartsCoverage&&Object.keys(s.echartsCoverage).length>0):!1}function Rd(e){const s=e.cardRecommendationDraft;return s?[s.queryResult,...s.recommendations.flatMap(Ci).map(c=>c.queryResult)].filter(Ye).some(c=>{const o=xs(c.metadata);return!!(J(c.resultId)||J(o.resultId)||J(c.id)||J(c.sourceTurnId)||J(o.sourceTurnId))}):!1}function As(e){const s=e.cardRecommendationDraft;return!s||e.workbenchInterleavedPlacement==="recommendation"?!1:s.recommendations.length<=1&&!Pi(e)}function Md(e){return As(e)&&!Rd(e)}function Ai(e,s){const c=e.findIndex(o=>o.id===s.id);if(c<0)return"";for(let o=c-1;o>=0;o-=1){const p=e[o];if(!p||p.role!=="assistant"||p.cardRecommendationDraft||!p.content.trim())continue;const u=qt(p);if(u&&ht(p,u))return u}return""}function tn(e,s,c){if(!Pi(s)||!As(c))return!1;const o=is(e,s),p=is(e,c);if(o&&p&&o===p)return!0;const u=Ai(e,s),b=Ai(e,c);return!!(u&&b&&u===b)}function ks(e,s){if(Pi(s))for(let c=e.length-1;c>=0;c-=1){const o=e[c];o&&o.id!==s.id&&tn(e,s,o)&&e.splice(c,1)}}function Vd(e){if(!As(e))return"";const s=e.cardRecommendationDraft,c=s==null?void 0:s.recommendations[0];return Qs({prompt:(s==null?void 0:s.prompt)||"",title:(c==null?void 0:c.title)||"",capabilityId:(c==null?void 0:c.capabilityId)||"",queryResult:(c==null?void 0:c.queryResult)||(s==null?void 0:s.queryResult)||null})}function Ld(e){if(!As(e))return null;const s=e.cardRecommendationDraft,c=s==null?void 0:s.recommendations[0],o=(c==null?void 0:c.queryResult)||(s==null?void 0:s.queryResult);return Ye(o)?o:null}function Gd(e){const s=xs(e.data);return(Array.isArray(e.columns)?e.columns:Array.isArray(s.columns)?s.columns:[]).map(o=>typeof o=="string"?o.trim():Ye(o)?J(o.label)||J(o.title)||J(o.name)||J(o.key):"").filter(Boolean)}function zd(e){var K,S;const s=Ld(e),c=e.cardRecommendationDraft,o=c==null?void 0:c.recommendations[0];if(!s)return(((K=o==null?void 0:o.title)==null?void 0:K.trim().length)||0)>0?1:0;const p=$c(s),u=Hc(s,p),P=Gd(s).filter((D,M)=>{const q=u[M]||"";return D&&D!==q}).length,E=p.slice(0,5).reduce((D,M)=>D+u.filter(q=>M[q]!==null&&M[q]!==void 0&&String(M[q]).trim()!=="").length,0),W=gi(s)?4:0,$=(S=o==null?void 0:o.title)!=null&&S.trim()?2:0;return u.length*20+Math.min(p.length,20)*3+P*6+Math.min(E,30)+W+$}function qd(e,s,c){if(Md(s))return!0;if(!As(s))return!1;const o=Xc(e,s);return!!(o&&o===c)}function Kd(e){const s=new Map;for(let o=0;o<e.length;o+=1){const p=e[o];if(!p)continue;const u=Ai(e,p);if(!u||!qd(e,p,u))continue;const b=Vd(p),P=s.get(u)||[];P.push({index:o,message:p,signature:b,score:zd(p)}),s.set(u,P)}const c=new Set;for(const o of s.values()){if(o.length<=1)continue;const p=o.reduce((u,b)=>b.score!==u.score?b.score>u.score?b:u:(b.signature!==u.signature,b.index>u.index?b:u));for(const u of o)u.index!==p.index&&c.add(u.index)}for(let o=e.length-1;o>=0;o-=1)c.has(o)&&e.splice(o,1)}function Kt(e){for(const s of[...e])ks(e,s);Kd(e)}function Ys(e,s){return As(s)&&e.some(c=>tn(e,c,s))}function Od(e){const s=[];for(const c of e)Zc(s,c)||s.push(c);return s}function sn(){var e,s;if(typeof((e=globalThis.crypto)==null?void 0:e.randomUUID)=="function"){const c=globalThis.crypto.randomUUID();if(typeof c=="string"&&c.trim())return c}if(typeof((s=globalThis.crypto)==null?void 0:s.getRandomValues)=="function"){const c=new Uint32Array(4);return globalThis.crypto.getRandomValues(c),`conv_${Array.from(c,o=>o.toString(16).padStart(8,"0")).join("")}`}return qc+=1,`conv_${Date.now().toString(36)}_${qc.toString(36)}`}function _t(e){return typeof e=="function"?e():e}function $d(e){return typeof e=="function"?e():e}function rn(e){const s="data: ";if(!e.startsWith(s))return null;const c=e.slice(s.length).trim();if(!c)return null;try{return JSON.parse(c)}catch{return null}}function Ye(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ss(e){if(Ye(e)&&e.type==="text"&&typeof e.value=="string"||Ye(e)&&e.type==="json"&&"value"in e)return Ss(e.value);if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}function J(e){return typeof e=="string"&&e.trim()?e.trim():""}function Hd(e){if(!Ye(e))return null;const s=J(e.name),c=J(e.mimeType)||"application/octet-stream",o=e.type==="image"?"image":e.type==="file"?"file":null;if(!s||!o)return null;const p=typeof e.size=="number"&&Number.isFinite(e.size)&&e.size>=0?Math.floor(e.size):void 0,u=J(e.fileId),b=Ud(e.downloadUrl);return{type:o,name:s,mimeType:c,...p!==void 0?{size:p}:{},...u?{fileId:u}:{},...b?{downloadUrl:b}:{}}}function Ud(e){const s=J(e);return/^(?:https?:\/\/|\/)/iu.test(s)?s:""}function cn(e,s=!1){return Array.isArray(e)?e.map(Hd).filter(c=>!!c).map(c=>({...c,...s&&c.downloadUrl?{url:c.downloadUrl}:{}})):[]}function Qd(e){if(e===null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:void 0}function ki(e){if(!Ye(e))return null;const s=new Set,c=(Array.isArray(e.columns)?e.columns:[]).map(b=>{if(!Ye(b))return null;const P=J(b.key)||J(b.name);return!P||s.has(P)?null:(s.add(P),{key:P,label:J(b.label)||P})}).filter(b=>!!b);if(c.length===0)return null;const o=(Array.isArray(e.rows)?e.rows:[]).filter(Ye).map(b=>{const P={};for(const E of c){const W=Qd(b[E.key]);W!==void 0&&(P[E.key]=W)}return P}),p=typeof e.returnedCount=="number"&&Number.isFinite(e.returnedCount)?Math.max(0,Math.floor(e.returnedCount)):void 0,u=typeof e.totalCount=="number"&&Number.isFinite(e.totalCount)?Math.max(0,Math.floor(e.totalCount)):void 0;return{columns:c,rows:o,...e.renderedInMarkdown===!0?{renderedInMarkdown:!0}:{},...J(e.title)?{title:J(e.title)}:{},...p!==void 0?{returnedCount:p}:{},...u!==void 0?{totalCount:u}:{}}}function nn(e){return Array.isArray(e)?e.map(s=>ki(s)).filter(s=>!!s):[]}function ln(e){return e instanceof Error&&e.message.trim()||Ye(e)&&typeof e.message=="string"&&e.message.trim()?e.message.trim():String(e||m("FAC.1d911787576233473"))}function Yd(e){return Ye(e)&&typeof e.code=="number"&&"data"in e?e.data:e}async function Si(e){return Yd(await e.json())}function Zd(e){return Array.isArray(e)?e.flatMap(s=>{if(!Ye(s))return[];const c=J(s.threadId);return c?[{threadId:c,title:J(s.title)||void 0,chatMode:J(s.chatMode)||void 0,createdAt:J(s.createdAt)||void 0,updatedAt:J(s.updatedAt)||void 0}]:[]}):[]}function on(e){const s=J(e).replace(/\s+/g," ");return s?s.length>20?`${s.slice(0,20)}...`:s:m("FAC.4cc71787576270855")}const Jd=m("FAC.62491787576125451"),Xd=m("FAC.57731787576132424"),ep=new Set(["load_semantic_context","get_query_context"]);function ap(e){return/加载语义上下文返回结果/.test(e)?/"queryContext"\s*:/.test(e)||/"matchedMetrics"\s*:/.test(e)||/"matchedDimensions"\s*:/.test(e)||/"matchedFilters"\s*:/.test(e)||/"matchedOntologyObjects"\s*:/.test(e)||/"ontologyAssets"\s*:/.test(e):!1}function tp(e){return/加载本体知识返回结果/.test(e)?/"glossary"\s*:/.test(e)||/"models"\s*:/.test(e)||/"databaseObject"\s*:/.test(e)||/"objectType"\s*:/.test(e)||/"lineage"\s*:/.test(e)||/"businessRules"\s*:/.test(e):!1}function sp(e){return ap(e)?Jd:tp(e)?Xd:e}function dn(e){if(!Ye(e))return null;const s=typeof e.index=="number"&&Number.isFinite(e.index)?e.index:void 0;return s?{index:s,label:J(e.label)||m("FAC.ed1b1787576170097",{p0:s}),...J(e.description)?{description:J(e.description)}:{},...J(e.appId)?{appId:J(e.appId)}:{},...J(e.modelCode)?{modelCode:J(e.modelCode)}:{},...J(e.metricCode)?{metricCode:J(e.metricCode)}:{},...J(e.fieldCode)?{fieldCode:J(e.fieldCode)}:{},...J(e.source)?{source:J(e.source)}:{}}:null}function pn(e){if(!Ye(e))return null;const s=J(e.code)||J(e.name),c=J(e.name)||s;return!s||!c?null:{code:s,name:c,...J(e.displayValue)?{displayValue:J(e.displayValue)}:{},...typeof e.required=="boolean"?{required:e.required}:{},...J(e.source)?{source:J(e.source)}:{}}}function mn(e){if(!Ye(e))return null;const s=J(e.taskId),c=J(e.taskKind),o=J(e.title);if(!s||!c||!o)return null;const u=(Array.isArray(e.confirmationOptions)?e.confirmationOptions:[]).map(dn).filter(W=>!!W),b=dn(e.confirmedSelection),P=(Array.isArray(e.fields)?e.fields:[]).map(pn).filter(W=>!!W),E=(Array.isArray(e.missingFields)?e.missingFields:[]).map(pn).filter(W=>!!W);return{turnId:J(e.turnId),taskId:s,taskKind:c,taskKindLabel:J(e.taskKindLabel)||c,title:o,status:J(e.status)||"waiting_confirmation",statusLabel:J(e.statusLabel)||m("FAC.1dfd1787576245429"),statusTone:["neutral","brand","warning","success","danger"].includes(J(e.statusTone))?J(e.statusTone):"neutral",fields:P,missingFields:E,canConfirm:e.canConfirm===!0,...J(e.confirmPhrase)?{confirmPhrase:J(e.confirmPhrase)}:{},...J(e.cancelPhrase)?{cancelPhrase:J(e.cancelPhrase)}:{},...u.length>0?{confirmationOptions:u}:{},...b?{confirmedSelection:b}:{},...J(e.lastErrorMessage)?{lastErrorMessage:J(e.lastErrorMessage)}:{},...J(e.resultSummary)?{resultSummary:J(e.resultSummary)}:{}}}function un(e){const s=Ss(e);if(!Ye(s))return null;const c=Ye(s.queryContext)?s.queryContext:s,o=J(c.tenantId),p=J(c.appId),u=J(c.dialect);return o||p||u?{tenantId:o,appId:p,dialect:u}:null}function rp(e){const s=Ss(e);if(!Ye(s))return;const c=un(s),o=Fr(s.matchedMetrics),p=Fr(s.matchedDimensions),u=Fr(s.matchedFilters),b=Fr(s.matchedOntologyObjects??s.ontologyAssets);if(c||Array.isArray(s.matchedMetrics)||Array.isArray(s.matchedDimensions)||Array.isArray(s.matchedFilters)||Array.isArray(s.matchedOntologyObjects)||Array.isArray(s.ontologyAssets))return[m("FAC.42491787576161629",{p0:Ir(o,"未匹配到明确指标")}),m("FAC.b02e1787576162256",{p0:Ir(p,"未匹配到明确维度")}),...u.length?[m("FAC.94bb1787576152279",{p0:Ir(u,"未匹配到明确过滤条件")})]:[],...b.length?[m("FAC.cc931787576162911",{p0:Ir(b,"未匹配到明确本体")})]:[]].join(`
|
|
5
|
+
${c}`)?"line":o.length>1?"grouped-bar":"bar"}function jc(e){return e.rows.length!==1?!1:e.headers.every(s=>!Pr(s)&&!Ar(s))&&e.headers.every((s,c)=>kr(e,c))}function nd(e){if(jc(e))return!0;const s=Nc(e);return e.headers.some((c,o)=>o===s||Pr(c)||Ar(c)?!1:kr(e,o))}function ld(e,s,c){var W,$;const o=Xo(e,s.index);if(jc(s)){const K=s.headers.map((S,D)=>({指标:ut(S),数值:Wc(s.rows[0][D]??"")??0}));return{type:"chart-card",id:`derived-${Rc(`${o}:${JSON.stringify(K)}`)}`,title:o,chart:{type:Bc(e,o,m("FAC.73f01787576271781"),[m("FAC.a9b91787576271315")],c.userQuestion),xField:m("FAC.73f01787576271781"),yFields:[m("FAC.a9b91787576271315")],data:K},summary:m("FAC.931e1787576147997"),source:{label:m("FAC.b1571787576194136"),value:"assistant-response"},permission:{label:m("FAC.de5c1787576194356"),level:"self",downloadable:!1},actions:["insert-left"],meta:{generatedBy:"agent",...(W=c.userQuestion)!=null&&W.trim()?{prompt:c.userQuestion.trim()}:{},version:1}}}const p=Nc(s),u=s.headers[p],b=s.headers.map((K,S)=>({header:K,index:S})).filter(({header:K,index:S})=>S===p||Pr(K)||Ar(K)||rd(K)?!1:kr(s,S));if(b.length===0)return null;const P=b.map(K=>K.header),E=s.rows.map(K=>{const S={[u]:ut(K[p]??"")};for(const{header:D,index:M}of b)S[D]=Wc(K[M]??"")??0;return S});return{type:"chart-card",id:`derived-${Rc(`${o}:${JSON.stringify(E)}`)}`,title:o,chart:{type:Bc(e,o,u,P,c.userQuestion),xField:u,yFields:P,data:E},summary:m("FAC.931e1787576147997"),source:{label:m("FAC.b1571787576194136"),value:"assistant-response"},permission:{label:m("FAC.de5c1787576194356"),level:"self",downloadable:!1},actions:["insert-left"],meta:{generatedBy:"agent",...($=c.userQuestion)!=null&&$.trim()?{prompt:c.userQuestion.trim()}:{},version:1}}}function Rc(e){let s=0;for(let c=0;c<e.length;c+=1)s=(s<<5)-s+e.charCodeAt(c)|0;return Math.abs(s).toString(36)}function Mc(e,s={}){return Jo(e).filter(nd).map(c=>ld(e,c,s)).filter(c=>!!c)}const od={area:"area",bar:"bar",boxplot:"boxplot",bubble:"bubble",candlestick:"candlestick",donut:"donut",funnel:"funnel",gauge:"gauge",graph:"graph","grouped-bar":"grouped-bar","horizontal-bar":"horizontal-bar",heatmap:"heatmap",kline:"candlestick",line:"line",map:"map","mini-bar":"mini-bar",network:"network",pie:"pie",radar:"radar",sankey:"sankey",scatter:"scatter",sunburst:"sunburst",tree:"tree",treemap:"treemap"};function ta(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function yi(e){let s=0;for(let c=0;c<e.length;c+=1)s=(s<<5)-s+e.charCodeAt(c)|0;return Math.abs(s).toString(36)}function Sr(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return ta(e)&&(e.type==="json"&&"value"in e||"value"in e&&ta(e.value))?Sr(e.value):e}function Vc(e){return typeof e!="string"?"bar":od[e]??"bar"}function dd(e){const c=(Array.isArray(e)?e:[]).filter(o=>o==="view"||o==="download"||o==="insert-left"||o==="save-doc"||o==="save-kb"||o==="upgrade");return c.includes("insert-left")?c:[...c,"insert-left"]}function Lc(e){for(const s of e){if(!ta(s))continue;const c={},o=Qe(s.unitCode||s.unit_code),p=Qe(s.unitLabel||s.unit_label||s.unit),u=Qe(s.valueFormat||s.value_format||s.format),b=Qe(s.displayValue||s.display_value),P=fi(s.decimalPlaces??s.decimal_places??s.scale);if(o&&(c.unitCode=o),p&&(c.unitLabel=p),u&&(c.valueFormat=u),b&&(c.displayValue=b),P!==null&&(c.decimalPlaces=Math.max(0,Math.min(8,Math.trunc(P)))),Object.keys(c).length>0)return c}}function pd(e){const s=ta(e.chart)?e.chart:{},c=ta(e.dataBinding)?e.dataBinding:void 0,o=ta(c==null?void 0:c.fieldMapping)?c.fieldMapping:void 0,p=typeof e.title=="string"&&e.title.trim()?e.title.trim():"",u=typeof s.xField=="string"&&s.xField.trim()?s.xField.trim():"",b=Array.isArray(s.yFields)?s.yFields.filter(W=>typeof W=="string"&&W.trim().length>0).map(W=>W.trim()):[],P=Array.isArray(s.data)?s.data.filter(ta):[];if(!p||!u||b.length===0||P.length===0)return null;const E=Lc([s.valueSpec,s.displaySpec,e.displaySpec,c==null?void 0:c.displaySpec]);return{type:"chart-card",id:typeof e.id=="string"&&e.id.trim()?e.id.trim():`tool-${yi(`${p}:${JSON.stringify(P)}`)}`,title:p,...typeof e.period=="string"&&e.period.trim()?{period:e.period.trim()}:{},chart:{type:Vc(s.type),xField:u,yFields:b,data:P,...s.sort==="asc"||s.sort==="desc"||s.sort==="none"?{sort:s.sort}:{},...typeof s.limit=="number"&&Number.isFinite(s.limit)?{limit:s.limit}:{},...Array.isArray(s.hiddenSeries)?{hiddenSeries:s.hiddenSeries.filter(W=>typeof W=="string")}:{},...E?{valueSpec:E}:{}},...typeof e.summary=="string"&&e.summary.trim()?{summary:e.summary.trim()}:{},source:{label:ta(e.source)&&typeof e.source.label=="string"&&e.source.label.trim()?e.source.label.trim():m("FAC.af7f1787576194158"),...ta(e.source)&&typeof e.source.value=="string"?{value:e.source.value}:{}},...c?{dataBinding:{...typeof c.bindingKind=="string"&&c.bindingKind.trim()?{bindingKind:c.bindingKind.trim()}:{},...typeof c.source=="string"&&c.source.trim()?{source:c.source.trim()}:{},...typeof c.bindingId=="string"&&c.bindingId.trim()?{bindingId:c.bindingId.trim()}:{},...typeof c.refreshApi=="string"&&c.refreshApi.trim()?{refreshApi:c.refreshApi.trim()}:{},...typeof c.question=="string"&&c.question.trim()?{question:c.question.trim()}:{},...typeof c.validatedSql=="string"&&c.validatedSql.trim()?{validatedSql:c.validatedSql.trim()}:{},...typeof c.sqlDialect=="string"&&c.sqlDialect.trim()?{sqlDialect:c.sqlDialect.trim()}:{},...typeof c.contractHash=="string"&&c.contractHash.trim()?{contractHash:c.contractHash.trim()}:{},...typeof c.executeApi=="string"&&c.executeApi.trim()?{executeApi:c.executeApi.trim()}:{},...typeof c.metricCode=="string"&&c.metricCode.trim()?{metricCode:c.metricCode.trim()}:{},...typeof c.metricId=="string"&&c.metricId.trim()?{metricId:c.metricId.trim()}:{},...typeof c.metricName=="string"&&c.metricName.trim()?{metricName:c.metricName.trim()}:{},...typeof c.readbackApi=="string"&&c.readbackApi.trim()?{readbackApi:c.readbackApi.trim()}:{},...o?{fieldMapping:{...typeof o.xField=="string"?{xField:o.xField}:{},...Array.isArray(o.yFields)?{yFields:o.yFields.filter(W=>typeof W=="string")}:{}}}:{},...ta(c.paramsSchema)?{paramsSchema:c.paramsSchema}:{},...ta(c.permissionContext)?{permissionContext:c.permissionContext}:{}}}:{},permission:{label:ta(e.permission)&&typeof e.permission.label=="string"&&e.permission.label.trim()?e.permission.label.trim():m("FAC.724b1787576194399"),...ta(e.permission)&&e.permission.level==="team"?{level:"team"}:{},...ta(e.permission)&&e.permission.level==="org"?{level:"org"}:{},...ta(e.permission)&&e.permission.level==="self"?{level:"self"}:{},...ta(e.permission)&&typeof e.permission.downloadable=="boolean"?{downloadable:e.permission.downloadable}:{downloadable:!1}},actions:dd(e.actions),meta:{generatedBy:"agent",version:ta(e.meta)&&typeof e.meta.version=="number"&&Number.isFinite(e.meta.version)?e.meta.version:1,...ta(e.meta)&&typeof e.meta.prompt=="string"?{prompt:e.meta.prompt}:{}}}}function Gc(e){const s=typeof e.title=="string"&&e.title.trim()?e.title.trim():"",c=typeof e.xField=="string"&&e.xField.trim()?e.xField.trim():"",o=Array.isArray(e.yFields)?e.yFields.filter(b=>typeof b=="string"&&b.trim().length>0).map(b=>b.trim()):[],p=Array.isArray(e.data)?e.data.filter(ta):[];if(!s||!c||o.length===0||p.length===0)return null;const u=Lc([e.displaySpec]);return{type:"chart-card",id:`tool-${yi(`${s}:${JSON.stringify(p)}`)}`,title:s,...typeof e.period=="string"&&e.period.trim()?{period:e.period.trim()}:{},chart:{type:Vc(e.chartType),xField:c,yFields:o,data:p,...u?{valueSpec:u}:{}},...typeof e.summary=="string"&&e.summary.trim()?{summary:e.summary.trim()}:{},source:{label:m("FAC.af7f1787576194158"),value:"generate_chart"},permission:{label:m("FAC.724b1787576194399"),level:"self",downloadable:!1},actions:["insert-left"],meta:{generatedBy:"agent",version:1}}}function Qe(e){return typeof e=="string"&&e.trim()?e.trim():""}function fi(e){const s=typeof e=="number"?e:Number(e);return Number.isFinite(s)?s:null}function md(e,s){const c=Qe(e.primaryFormat||e.format||e.valueFormat);if(c==="currency"||c==="number"||c==="percent")return c;const o=s.toLowerCase();return/率|占比|percent|percentage|ratio|rate/.test(o)?"percent":"number"}function ud(e){if(!ta(e))return{label:m("FAC.39f71787576181027"),level:"self"};const s=e.level==="team"||e.level==="org"||e.level==="self"?e.level:"self";return{label:Qe(e.label)||m("FAC.39f71787576181027"),level:s}}function hd(e,s){const o={...ta(e.displaySpec)?e.displaySpec:ta(s.displaySpec)?s.displaySpec:{},...s,...e},p={},u=Qe(o.unitCode||o.unit_code||o.unit),b=Qe(o.unitLabel||o.unit_label||o.unitName||o.unit_name||o.unit),P=Qe(o.valueFormat||o.value_format||o.primaryFormat||o.format),E=Qe(o.displayValue||o.display_value),W=fi(o.decimalPlaces??o.decimal_places??o.scale);return u&&(p.unitCode=u),b&&(p.unitLabel=b),P&&(p.valueFormat=P),E&&(p.displayValue=E),W!==null&&(p.decimalPlaces=Math.max(0,Math.min(8,Math.trunc(W)))),Object.keys(p).length>0?p:void 0}function yd(e){const s=Sr(e);if(!ta(s))return null;const c=ta(s.source)?s.source:{},o=Qe(c.value),p=Qe(s.metricCode||s.metric_code),u=Qe(s.metricId||s.metric_id),b=Qe(s.metricName||s.metric_name||s.title)||p||u||m("FAC.d44f1787576271804"),P=fi(s.value??s.currentValue??s.primaryValue),E=!!(p||u||Qe(s.metricName||s.metric_name)||o==="execute_metric_api"||s.aggregation);if(P===null||!E)return null;const W=ta(s.dataBinding)?s.dataBinding:{},$=ta(W.permissionContext)?W.permissionContext:{...Qe(s.tenantId)?{tenantId:Qe(s.tenantId)}:{},...Qe(s.appId)?{appId:Qe(s.appId)}:{}},K=Qe(W.question),S=Qe(W.bindingId)||u||p,D=Qe(W.metricCode)||p,M=Qe(W.metricId)||u,q=hd(s,W),ee=Qe(s.displayValue||s.display_value||W.displayValue||(q==null?void 0:q.displayValue));return{type:"metric-card",id:`metric-${yi(`${M||D||b}:${P}`)}`,title:b,metricName:b,...D?{metricCode:D}:{},...M?{metricId:M}:{},value:P,...ee?{displayValue:ee}:{},...q?{displaySpec:q}:{},format:md({...s,...q??{}},b),source:{label:Qe(c.label)||m("FAC.fb301787576174781"),...o?{value:o}:{value:"execute_metric_api"}},dataBinding:{...K?{question:K}:{},...S?{bindingId:S}:{},...Qe(W.contractHash||s.contractHash)?{contractHash:Qe(W.contractHash||s.contractHash)}:{},executeApi:Qe(W.executeApi)||"/apps/api/v1/sp/ai/metric/metrics/execute",...D?{metricCode:D}:{},...M?{metricId:M}:{},...q?{displaySpec:q}:{},...ee?{displayValue:ee}:{},...q!=null&&q.unitCode?{unitCode:q.unitCode}:{},...q!=null&&q.unitLabel?{unitLabel:q.unitLabel}:{},...q!=null&&q.valueFormat?{valueFormat:q.valueFormat}:{},...(q==null?void 0:q.decimalPlaces)!==void 0?{decimalPlaces:q.decimalPlaces}:{},readbackApi:Qe(W.readbackApi)||"/apps/api/v1/sp/ai/metric/metrics/userReadback",refreshApi:Qe(W.refreshApi)||"/apps/api/v1/sp/ai/metric/metrics/execute",...Array.isArray(W.queryFilters)?{queryFilters:W.queryFilters}:{},...ta(W.paramsSchema)?{paramsSchema:W.paramsSchema}:{},...Object.keys($).length>0?{permissionContext:$}:{}},permission:ud(s.permission),meta:{generatedBy:"agent",version:ta(s.meta)&&typeof s.meta.version=="number"&&Number.isFinite(s.meta.version)?s.meta.version:1,...ta(s.meta)&&Qe(s.meta.prompt)?{prompt:Qe(s.meta.prompt)}:{}}}}function fd(e){const s=Sr(e);return ta(s)?s.type==="chart-card"?pd(s):s.type==="chart-spec"||typeof s.title=="string"&&typeof s.chartType=="string"&&typeof s.xField=="string"&&Array.isArray(s.yFields)&&Array.isArray(s.data)?Gc(s):null:null}const bd=[/需要确认口径/u,/存在多个可用口径/u,/请(?:回复|选择)序号/u,/(?:回复|选择)候选?序号/u,/业务行动/u,/业务动作/u,/load_data_action_candidates/u,/permissionDeniedCandidates/u,/未通过权限校验/u,/权限校验/u,/创建草稿/u,/不能继续创建草稿或执行/u,/可用业务行动/u,/执行.*行动/u,/还差\s*\d+\s*个(?:必填)?信息/u,/请回复[“"]?确认提交/u,/暂时不会提交/u,/草稿已准备/u];function zc(e){return bd.some(s=>s.test(e))}function gd(e){return e.role==="assistant"&&e.conclusion===!0&&!zc(e.content)}function Cd(e){var s;return e.role==="assistant"&&e.conclusion===!0&&!e.loading&&!e.streaming&&!!((s=e.cards)!=null&&s.length)&&!zc(e.content)}const Td=128e3;function xd(e,s={}){const c=s.contextWindow??Td,o=e.reduce((P,E)=>P+bi(E),0),p=Math.ceil(o/3.5),u=c>0?Math.round(p/c*100):0,b=Math.min(100,Math.max(0,u));return{estimatedTokens:p,contextWindow:c,percent:b,level:b>=90?"critical":b>=70?"warning":"normal"}}function bi(e){return e==null?0:typeof e=="string"?e.length:typeof e=="number"||typeof e=="boolean"?String(e).length:Array.isArray(e)?e.reduce((s,c)=>s+bi(c),0):typeof e=="object"?Object.entries(e).reduce((s,[c,o])=>s+c.length+bi(o),0):0}let Pd=0,qc=0;function Wt(){return`msg_${++Pd}`}function Nt(){const e=new Date,s=String(e.getHours()).padStart(2,"0"),c=String(e.getMinutes()).padStart(2,"0");return`${s}:${c}`}function Kc(e){return e.role!=="status"&&!e.cardRecommendationDraft}function Oc(e){if(typeof e!="string"||!e.trim())return NaN;const s=Date.parse(e);return Number.isFinite(s)?s:NaN}function Ad(e,s){const c=Oc(s.timestamp);if(!Number.isFinite(c)){e.push(s);return}const o=e.findIndex(p=>{const u=Oc(p.timestamp);return Number.isFinite(u)&&u>c});if(o>=0){e.splice(o,0,s);return}e.push(s)}function rs(e){if(typeof e!="string"||!e.startsWith("workbench-turn-"))return"";const s=["-reply","-conclusion-stream","-item-","-process-","-task-","-card-mutation-confirmation"];for(const c of s){const o=e.indexOf(c,15);if(o>15)return e.slice(15,o)}return""}function _r(e){var c;const s=(c=e.cardRecommendationDraft)==null?void 0:c.sourceTurnId;return typeof s=="string"&&s.trim()?s.trim():""}function Er(e){const s=e.cardRecommendationDraft,c=s==null?void 0:s.placementTurnId;return typeof c=="string"&&c.trim()?c.trim():""}function zt(e){const s=e.workbenchTurnId;return typeof s=="string"&&s.trim()?s.trim():""}function qt(e){return Er(e)||_r(e)||zt(e)||rs(e.id)}function Qs(e){return e==null?"":Array.isArray(e)?`[${e.map(Qs).join(",")}]`:Ye(e)?`{${Object.keys(e).sort().map(s=>`${JSON.stringify(s)}:${Qs(e[s])}`).join(",")}}`:JSON.stringify(e)??String(e)}function xs(e){return Ye(e)?e:{}}function kd(e){return typeof e=="string"&&e.trim()?e.trim():Ye(e)?J(e.key)||J(e.dataIndex)||J(e.data_index)||J(e.field)||J(e.name):""}function $c(e){const s=xs(e.data);return(Array.isArray(e.rows)?e.rows:Array.isArray(s.rows)?s.rows:[]).filter(Ye)}function Hc(e,s){const c=xs(e.data),o=Array.isArray(e.columns)?e.columns:Array.isArray(c.columns)?c.columns:[],p=[...new Set(s.flatMap(b=>Object.keys(b)))],u=o.map((b,P)=>{const E=kd(b);return E&&s.some(W=>Object.prototype.hasOwnProperty.call(W,E))?E:p[P]||E}).filter(Boolean);return[...new Set(u.length>0?u:p)]}function gi(e){if(!Ye(e))return"";const s=xs(e.metadata),c=J(e.resultId)||J(s.resultId)||J(e.id),o=J(e.sourceTurnId)||J(s.sourceTurnId);if(o&&(!c||c.startsWith(`${o}:`)))return`turn:${o}`;if(c)return`result:${c}`;if(o)return`turn:${o}`;const p=$c(e),u=Hc(e,p);if(p.length>0&&u.length>0)return`rows:${Qs({keys:u,rows:p.slice(0,5)})}`;const b=xs(e.data),P=Object.prototype.hasOwnProperty.call(e,"value")?e.value:b.value;return P===void 0?"":`value:${Qs(P)}`}function Ci(e){return[e,...Array.isArray(e.viewAlternatives)?e.viewAlternatives.flatMap(s=>Ci(s)):[]]}function Sd(e){const s=e.recommendations.flatMap(Ci).map(p=>gi(p.queryResult)).filter(Boolean),c=gi(e.queryResult),o=s.length>0?s:c?[c]:[];return[...new Set(o)].sort()}function _d(e){return e.role==="assistant"&&!!e.queryResultTable&&!e.cardRecommendationDraft&&!e.content.trim()}function Ed(e){return e.role==="status"&&e.loading===!0&&!e.cardRecommendationDraft&&/^思考中[.。…]*$/u.test(e.content.trim())}function vd(e){if(e.role!=="status"||!e.loading)return;const s=Date.now();typeof e.startTime!="number"&&(e.startTime=s),e.endTime=typeof e.endTime=="number"?e.endTime:s,e.loading=!1}function Uc(e){var c;if(!((c=e.processInvocations)!=null&&c.length))return;const s=new Date().toISOString();for(const o of e.processInvocations)o.status==="running"&&(o.status="done",o.completedAt=o.completedAt||s)}function Qc(e){if(Uc(e),e.role==="status"){vd(e);return}if(e.role!=="assistant"||!e.loading&&!e.streaming)return;const s=Date.now();typeof e.startTime!="number"&&(e.startTime=s),e.endTime=typeof e.endTime=="number"?e.endTime:s,e.loading=!1,e.streaming=!1}function Fd(e,s){if(s.renderedInMarkdown)return;const c=Array.isArray(e.queryResultTables)?e.queryResultTables:e.queryResultTable?[e.queryResultTable]:[],o=JSON.stringify(s);if(c.some(u=>JSON.stringify(u)===o))return;const p=[...c,s];e.queryResultTable=p[0],p.length>1&&(e.queryResultTables=p)}function Id(e){return typeof e.totalCount=="number"?e.totalCount:typeof e.returnedCount=="number"?e.returnedCount:e.rows.length}function Yc(e){return e.rows.length<=1&&Id(e)<=1&&e.columns.length<=1}function wd(e,s){return!!e.trim()&&Yc(s)}function vr(e){const s=Array.isArray(e.queryResultTables)?e.queryResultTables:e.queryResultTable?[e.queryResultTable]:[];if(s.length===0)return;const c=s.filter(o=>!wd(e.content,o));if(c.length!==s.length){if(c.length===0){e.queryResultTable=void 0,e.queryResultTables=void 0;return}e.queryResultTable=c[0],e.queryResultTables=c.length>1?c:void 0}}function Zc(e,s){if(!_d(s)||!s.queryResultTable)return null;if(s.queryResultTable.renderedInMarkdown)return s;const c=qt(s);if(!c)return null;const o=e.findIndex(p=>ht(p,c));return o<0?null:(Yc(s.queryResultTable)||Fd(e[o],s.queryResultTable),e[o])}function ht(e,s){if(e.role!=="assistant"||e.cardRecommendationDraft||!e.content.trim())return!1;const c=zt(e);return c?c===s:rs(e.id)!==s?!1:e.id.endsWith("-reply")||e.id.endsWith("-conclusion-stream")}function Ti(e,s){return!!(s&&e.some(c=>ht(c,s)))}function Jc(e){let s=e.toLocaleLowerCase();for(;/\d,\d/u.test(s);)s=s.replace(/(\d),(\d)/gu,"$1$2");return s}function Dd(e){if(!Ye(e))return[];const s=Ye(e.data)?e.data:{},c=[e.displayRows,s.displayRows,e.rows,s.rows];for(const o of c)if(Array.isArray(o))return o.filter(Ye);return[]}function Wd(e){const s=e.cardRecommendationDraft;return s?[s.queryResult,...s.recommendations.map(c=>c.queryResult)].filter(Ye):[]}function Nd(e){const s=new Set;for(const c of Wd(e)){const o=Object.prototype.hasOwnProperty.call(c,"value")?c.value:void 0,p=Dd(c),u=[o,...p.slice(0,5).flatMap(b=>Object.values(b))];for(const b of u){if(typeof b!="string"&&typeof b!="number")continue;const P=String(b).trim();P.length<2||s.add(Jc(P))}}return[...s].slice(0,8)}function Xc(e,s){const c=Nd(s);if(c.length===0)return"";const o=e.flatMap(p=>{const u=qt(p);if(!u||!ht(p,u))return[];const b=Jc(p.content);return c.every(P=>b.includes(P))?[u]:[]});return new Set(o).size===1&&o[0]||""}function is(e,s){if(!s.cardRecommendationDraft)return qt(s);const c=_r(s),o=Er(s),p=Xc(e,s);return p||(Ti(e,c)?c:Ti(e,o)?o:o||c||zt(s)||rs(s.id))}function Bd(e,s,c=[]){if(!e.cardRecommendationDraft||!s)return!1;const o=_r(e),p=Er(e);return o===s||o.startsWith(`${s}:`)?!0:o&&Ti(c,o)?!1:p===s?!0:zt(e)===s||rs(e.id)===s}function en(e,s){if(!s.cardRecommendationDraft)return!1;const c=is(e,s);if(!c)return!1;const o=e.findIndex(p=>ht(p,c));return o<0?!1:(e.splice(o+1,0,s),!0)}function jd(e,s){if(!s.thinkingProcess)return!1;const c=qt(s);if(!c)return!1;const o=e.findIndex(p=>ht(p,c));return o<0?!1:(e.splice(o,0,s),!0)}function Ps(e,s){const c=qt(s);if(!c||!ht(s,c))return!1;const o=e.flatMap((E,W)=>E.cardRecommendationDraft&&is(e,E)===c?[W]:[]);if(o.length===0)return!1;const p=e.findIndex(E=>E.id===s.id),u=o.every((E,W)=>E===p+W+1);if(p<0||u)return!1;const b=o.map(E=>e[E]);for(let E=o.length-1;E>=0;E-=1)e.splice(o[E],1);const P=e.findIndex(E=>E.id===s.id);return e.splice(P+1,0,...b),!0}function an(e){let s=!1;for(let c=0;c<e.length;c+=1){let o=!1;for(const p of[...e])o=Ps(e,p)||o;if(!o)return s;s=!0}return s}function xi(e){if(!e.cardRecommendationDraft)return"";const s=Sd(e.cardRecommendationDraft);return s.length===1?s[0]:s.length>1?`multi:${s.join("|")}`:_r(e)||Er(e)||zt(e)||rs(e.id)}function cs(e,s){const c=xi(s);if(c)for(let o=e.length-1;o>=0;o-=1){const p=e[o];(p==null?void 0:p.id)!==s.id&&xi(p)===c&&e.splice(o,1)}}function Pi(e){const s=e.cardRecommendationDraft;return s?s.recommendations.length>1||(s.totalRecommendationCount??0)>1||(s.eligibleCandidateCount??0)>1||(s.returnedCandidateCount??0)>1||(s.readyCandidateCount??0)>1||Array.isArray(s.chartFamilyCoverage)&&s.chartFamilyCoverage.length>0||!!(s.echartsCoverage&&Object.keys(s.echartsCoverage).length>0):!1}function Rd(e){const s=e.cardRecommendationDraft;return s?[s.queryResult,...s.recommendations.flatMap(Ci).map(c=>c.queryResult)].filter(Ye).some(c=>{const o=xs(c.metadata);return!!(J(c.resultId)||J(o.resultId)||J(c.id)||J(c.sourceTurnId)||J(o.sourceTurnId))}):!1}function As(e){const s=e.cardRecommendationDraft;return!s||e.workbenchInterleavedPlacement==="recommendation"?!1:s.recommendations.length<=1&&!Pi(e)}function Md(e){return As(e)&&!Rd(e)}function Ai(e,s){const c=e.findIndex(o=>o.id===s.id);if(c<0)return"";for(let o=c-1;o>=0;o-=1){const p=e[o];if(!p||p.role!=="assistant"||p.cardRecommendationDraft||!p.content.trim())continue;const u=qt(p);if(u&&ht(p,u))return u}return""}function tn(e,s,c){if(!Pi(s)||!As(c))return!1;const o=is(e,s),p=is(e,c);if(o&&p&&o===p)return!0;const u=Ai(e,s),b=Ai(e,c);return!!(u&&b&&u===b)}function ks(e,s){if(Pi(s))for(let c=e.length-1;c>=0;c-=1){const o=e[c];o&&o.id!==s.id&&tn(e,s,o)&&e.splice(c,1)}}function Vd(e){if(!As(e))return"";const s=e.cardRecommendationDraft,c=s==null?void 0:s.recommendations[0];return Qs({prompt:(s==null?void 0:s.prompt)||"",title:(c==null?void 0:c.title)||"",capabilityId:(c==null?void 0:c.capabilityId)||"",queryResult:(c==null?void 0:c.queryResult)||(s==null?void 0:s.queryResult)||null})}function Ld(e){if(!As(e))return null;const s=e.cardRecommendationDraft,c=s==null?void 0:s.recommendations[0],o=(c==null?void 0:c.queryResult)||(s==null?void 0:s.queryResult);return Ye(o)?o:null}function Gd(e){const s=xs(e.data);return(Array.isArray(e.columns)?e.columns:Array.isArray(s.columns)?s.columns:[]).map(o=>typeof o=="string"?o.trim():Ye(o)?J(o.label)||J(o.title)||J(o.name)||J(o.key):"").filter(Boolean)}function zd(e){var K,S;const s=Ld(e),c=e.cardRecommendationDraft,o=c==null?void 0:c.recommendations[0];if(!s)return(((K=o==null?void 0:o.title)==null?void 0:K.trim().length)||0)>0?1:0;const p=$c(s),u=Hc(s,p),P=Gd(s).filter((D,M)=>{const q=u[M]||"";return D&&D!==q}).length,E=p.slice(0,5).reduce((D,M)=>D+u.filter(q=>M[q]!==null&&M[q]!==void 0&&String(M[q]).trim()!=="").length,0),W=gi(s)?4:0,$=(S=o==null?void 0:o.title)!=null&&S.trim()?2:0;return u.length*20+Math.min(p.length,20)*3+P*6+Math.min(E,30)+W+$}function qd(e,s,c){if(Md(s))return!0;if(!As(s))return!1;const o=Xc(e,s);return!!(o&&o===c)}function Kd(e){const s=new Map;for(let o=0;o<e.length;o+=1){const p=e[o];if(!p)continue;const u=Ai(e,p);if(!u||!qd(e,p,u))continue;const b=Vd(p),P=s.get(u)||[];P.push({index:o,message:p,signature:b,score:zd(p)}),s.set(u,P)}const c=new Set;for(const o of s.values()){if(o.length<=1)continue;const p=o.reduce((u,b)=>b.score!==u.score?b.score>u.score?b:u:(b.signature!==u.signature,b.index>u.index?b:u));for(const u of o)u.index!==p.index&&c.add(u.index)}for(let o=e.length-1;o>=0;o-=1)c.has(o)&&e.splice(o,1)}function Kt(e){for(const s of[...e])ks(e,s);Kd(e)}function Ys(e,s){return As(s)&&e.some(c=>tn(e,c,s))}function Od(e){const s=[];for(const c of e)Zc(s,c)||s.push(c);return s}function sn(){var e,s;if(typeof((e=globalThis.crypto)==null?void 0:e.randomUUID)=="function"){const c=globalThis.crypto.randomUUID();if(typeof c=="string"&&c.trim())return c}if(typeof((s=globalThis.crypto)==null?void 0:s.getRandomValues)=="function"){const c=new Uint32Array(4);return globalThis.crypto.getRandomValues(c),`conv_${Array.from(c,o=>o.toString(16).padStart(8,"0")).join("")}`}return qc+=1,`conv_${Date.now().toString(36)}_${qc.toString(36)}`}function _t(e){return typeof e=="function"?e():e}function $d(e){return typeof e=="function"?e():e}function rn(e){const s="data: ";if(!e.startsWith(s))return null;const c=e.slice(s.length).trim();if(!c)return null;try{return JSON.parse(c)}catch{return null}}function Ye(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ss(e){if(Ye(e)&&e.type==="text"&&typeof e.value=="string"||Ye(e)&&e.type==="json"&&"value"in e)return Ss(e.value);if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}function J(e){return typeof e=="string"&&e.trim()?e.trim():""}function Hd(e){if(!Ye(e))return null;const s=J(e.name),c=J(e.mimeType)||"application/octet-stream",o=e.type==="image"?"image":e.type==="file"?"file":null;if(!s||!o)return null;const p=typeof e.size=="number"&&Number.isFinite(e.size)&&e.size>=0?Math.floor(e.size):void 0,u=J(e.fileId),b=Ud(e.downloadUrl);return{type:o,name:s,mimeType:c,...p!==void 0?{size:p}:{},...u?{fileId:u}:{},...b?{downloadUrl:b}:{}}}function Ud(e){const s=J(e);return/^(?:https?:\/\/|\/)/iu.test(s)?s:""}function cn(e,s=!1){return Array.isArray(e)?e.map(Hd).filter(c=>!!c).map(c=>({...c,...s&&c.downloadUrl?{url:c.downloadUrl}:{}})):[]}function Qd(e){if(e===null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:void 0}function ki(e){if(!Ye(e))return null;const s=new Set,c=(Array.isArray(e.columns)?e.columns:[]).map(b=>{if(!Ye(b))return null;const P=J(b.key)||J(b.name);return!P||s.has(P)?null:(s.add(P),{key:P,label:J(b.label)||P})}).filter(b=>!!b);if(c.length===0)return null;const o=(Array.isArray(e.rows)?e.rows:[]).filter(Ye).map(b=>{const P={};for(const E of c){const W=Qd(b[E.key]);W!==void 0&&(P[E.key]=W)}return P}),p=typeof e.returnedCount=="number"&&Number.isFinite(e.returnedCount)?Math.max(0,Math.floor(e.returnedCount)):void 0,u=typeof e.totalCount=="number"&&Number.isFinite(e.totalCount)?Math.max(0,Math.floor(e.totalCount)):void 0;return{columns:c,rows:o,...e.renderedInMarkdown===!0?{renderedInMarkdown:!0}:{},...J(e.title)?{title:J(e.title)}:{},...p!==void 0?{returnedCount:p}:{},...u!==void 0?{totalCount:u}:{}}}function nn(e){return Array.isArray(e)?e.map(s=>ki(s)).filter(s=>!!s):[]}function ln(e){return e instanceof Error&&e.message.trim()||Ye(e)&&typeof e.message=="string"&&e.message.trim()?e.message.trim():String(e||m("FAC.1d911787576233473"))}function Yd(e){return Ye(e)&&typeof e.code=="number"&&"data"in e?e.data:e}async function Si(e){return Yd(await e.json())}function Zd(e){return Array.isArray(e)?e.flatMap(s=>{if(!Ye(s))return[];const c=J(s.threadId);return c?[{threadId:c,title:J(s.title)||void 0,chatMode:J(s.chatMode)||void 0,createdAt:J(s.createdAt)||void 0,updatedAt:J(s.updatedAt)||void 0}]:[]}):[]}function on(e){const s=J(e).replace(/\s+/g," ");return s?s.length>20?`${s.slice(0,20)}...`:s:m("FAC.4cc71787576270855")}const Jd=m("FAC.62491787576125451"),Xd=m("FAC.57731787576132424"),ep=new Set(["load_semantic_context","get_query_context"]);function ap(e){return/加载语义上下文返回结果/.test(e)?/"queryContext"\s*:/.test(e)||/"matchedMetrics"\s*:/.test(e)||/"matchedDimensions"\s*:/.test(e)||/"matchedFilters"\s*:/.test(e)||/"matchedOntologyObjects"\s*:/.test(e)||/"ontologyAssets"\s*:/.test(e):!1}function tp(e){return/加载本体知识返回结果/.test(e)?/"glossary"\s*:/.test(e)||/"models"\s*:/.test(e)||/"databaseObject"\s*:/.test(e)||/"objectType"\s*:/.test(e)||/"lineage"\s*:/.test(e)||/"businessRules"\s*:/.test(e):!1}function sp(e){return ap(e)?Jd:tp(e)?Xd:e}function dn(e){if(!Ye(e))return null;const s=typeof e.index=="number"&&Number.isFinite(e.index)?e.index:void 0;return s?{index:s,label:J(e.label)||m("FAC.ed1b1787576170097",{p0:s}),...J(e.description)?{description:J(e.description)}:{},...J(e.appId)?{appId:J(e.appId)}:{},...J(e.modelCode)?{modelCode:J(e.modelCode)}:{},...J(e.metricCode)?{metricCode:J(e.metricCode)}:{},...J(e.fieldCode)?{fieldCode:J(e.fieldCode)}:{},...J(e.source)?{source:J(e.source)}:{}}:null}function pn(e){if(!Ye(e))return null;const s=J(e.code)||J(e.name),c=J(e.name)||s;return!s||!c?null:{code:s,name:c,...J(e.displayValue)?{displayValue:J(e.displayValue)}:{},...typeof e.required=="boolean"?{required:e.required}:{},...J(e.source)?{source:J(e.source)}:{}}}function mn(e){if(!Ye(e))return null;const s=J(e.taskId),c=J(e.taskKind),o=J(e.title);if(!s||!c||!o)return null;const u=(Array.isArray(e.confirmationOptions)?e.confirmationOptions:[]).map(dn).filter(W=>!!W),b=dn(e.confirmedSelection),P=(Array.isArray(e.fields)?e.fields:[]).map(pn).filter(W=>!!W),E=(Array.isArray(e.missingFields)?e.missingFields:[]).map(pn).filter(W=>!!W);return{turnId:J(e.turnId),taskId:s,taskKind:c,taskKindLabel:J(e.taskKindLabel)||c,title:o,status:J(e.status)||"waiting_confirmation",statusLabel:J(e.statusLabel)||m("FAC.1dfd1787576245429"),statusTone:["neutral","brand","warning","success","danger"].includes(J(e.statusTone))?J(e.statusTone):"neutral",fields:P,missingFields:E,canConfirm:e.canConfirm===!0,...J(e.confirmPhrase)?{confirmPhrase:J(e.confirmPhrase)}:{},...J(e.cancelPhrase)?{cancelPhrase:J(e.cancelPhrase)}:{},...u.length>0?{confirmationOptions:u}:{},...b?{confirmedSelection:b}:{},...J(e.lastErrorMessage)?{lastErrorMessage:J(e.lastErrorMessage)}:{},...J(e.resultSummary)?{resultSummary:J(e.resultSummary)}:{}}}function un(e){const s=Ss(e);if(!Ye(s))return null;const c=Ye(s.queryContext)?s.queryContext:s,o=J(c.tenantId),p=J(c.appId),u=J(c.dialect);return o||p||u?{tenantId:o,appId:p,dialect:u}:null}function rp(e){const s=Ss(e);if(!Ye(s))return;const c=un(s),o=Fr(s.matchedMetrics),p=Fr(s.matchedDimensions),u=Fr(s.matchedFilters),b=Fr(s.matchedOntologyObjects??s.ontologyAssets);if(c||Array.isArray(s.matchedMetrics)||Array.isArray(s.matchedDimensions)||Array.isArray(s.matchedFilters)||Array.isArray(s.matchedOntologyObjects)||Array.isArray(s.ontologyAssets))return[m("FAC.42491787576161629",{p0:Ir(o,"未匹配到明确指标")}),m("FAC.b02e1787576162256",{p0:Ir(p,"未匹配到明确维度")}),...u.length?[m("FAC.94bb1787576152279",{p0:Ir(u,"未匹配到明确过滤条件")})]:[],...b.length?[m("FAC.cc931787576162911",{p0:Ir(b,"未匹配到明确本体")})]:[]].join(`
|
|
6
6
|
`)}function Fr(e){if(!Array.isArray(e))return[];const s=[];for(const c of e){const o=ip(c);o&&!s.includes(o)&&s.push(o)}return s}function Ir(e,s){if(e.length===0)return s;const c=e.slice(0,5);return`${c.join("、")}${e.length>c.length?` 等 ${e.length} 项`:""}`}function ip(e){if(!Ye(e))return J(e);const s=Ye(e.asset)?e.asset:e;return J(s.name)||J(s.label)||J(s.title)||J(s.metricName)||J(s.dimensionName)||J(s.fieldName)||J(s.modelName)||J(s.modelCode)||J(s.code)||J(s.id)}function cp(e,s){return s?{tenantId:s.tenantId||e.tenantId,appId:s.appId||e.appId,dialect:s.dialect||e.dialect}:e}function np(e,s,c){const o=Ss(e);if(!Ye(o))return null;const p=J(o.sql),u=J(o.tenantId)||s.tenantId,b=J(o.appId)||s.appId,P=J(o.sqlDialect)||J(o.dialect)||s.dialect||"sql";return!c.trim()||!p||!u||!b||!P?null:{question:c.trim(),validatedSql:p,sqlDialect:P,paramsSchema:{type:"object"},permissionContext:{tenantId:u,appId:b}}}function lp(e){const s=Ss(e);return!Ye(s)||s.success!==!0?null:Array.isArray(s.rows)&&s.rows.length>0?s.rows.filter(Ye).map(c=>({...c})):typeof s.rowCount=="number"&&s.rowCount>0?[]:null}const op=new Set(["no color","none","null","n/a","unknown","无","无颜色","空","未填","未设置","缺失"]);function _i(e){return e==null?"":String(e).trim().toLowerCase().replace(/\s+/g," ")}function Ei(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e!="string")return null;const s=e.trim().replace(/,/g,"");if(!/^-?\d+(?:\.\d+)?$/.test(s))return null;const c=Number(s);return Number.isFinite(c)?c:null}function vi(e){const s=_i(e);return s===""||op.has(s)}function hn(e,s){const c=Ei(e),o=Ei(s);if(c!==null&&o!==null)return Math.abs(c-o)<1e-9?1:0;if(vi(e)&&vi(s))return 1;const p=_i(e),u=_i(s);return!p||!u?0:p===u?1:p.includes(u)||u.includes(p)?.75:0}function dp(e){const s=new Set;for(const c of e)for(const o of Object.keys(c))s.add(o);return[...s]}function pp(e,s,c,o){var E,W;if(e.length===0||c.length===0)return 0;const p=Math.min(e.length,c.length);let u=0;for(let $=0;$<p;$+=1)u+=hn((E=e[$])==null?void 0:E[s],(W=c[$])==null?void 0:W[o]);u/=p;const b=new Set;let P=0;for(const $ of e){let K=-1,S=0;c.forEach((D,M)=>{if(b.has(M))return;const q=hn($[s],D[o]);q>S&&(S=q,K=M)}),K!==-1&&b.add(K),P+=S}return Math.max(u,P/e.length)}function yn(e,s){const c=e.map(p=>p[s]).filter(p=>!vi(p));return c.length===0?!1:c.filter(p=>Ei(p)!==null).length/c.length>=.8}function fn(e,s,c,o,p){let u,b=0;for(const P of o){if(p.has(P))continue;const E=pp(e,s,c,P);E>b&&(b=E,u=P)}return b>=.74?u:void 0}function bn(e,s,c,o,p){const u=yn(e,s),b=o.filter(P=>!p.has(P)&&yn(c,P)===u);return b.length===1?b[0]:void 0}function mp(e,s){const c={xField:e.chart.xField,yFields:[...e.chart.yFields]},o=dp(s);if(o.length===0)return c;const p=new Set,u=e.chart.yFields.map(P=>{const E=fn(e.chart.data,P,s,o,p)||bn(e.chart.data,P,s,o,p);return E?(p.add(E),E):P});return{xField:fn(e.chart.data,e.chart.xField,s,o,p)||bn(e.chart.data,e.chart.xField,s,o,p)||e.chart.xField,yFields:u}}function gn(e,s,c=[]){if(!s||e.dataBinding)return e;const o=mp(e,c);return{...e,dataBinding:{...s,fieldMapping:{...s.fieldMapping,xField:o.xField,yFields:o.yFields},paramsSchema:s.paramsSchema||{type:"object"}}}}const up={load_semantic_context:m("FAC.c2631787576193173"),load_ontology:m("FAC.dd401787576203571"),execute_query_dispatcher:m("FAC.91aa1787576204171"),get_query_context:m("FAC.13321787576193311"),get_connection_config:m("FAC.9df91787576193414"),search_business_glossary:m("FAC.14091787576222276"),match_metrics:m("FAC.dff11787576245549"),match_dimensions:m("FAC.5d131787576251814"),validate_sql:m("FAC.e4af1787576204618"),explain_plan:m("FAC.48541787576205142"),execute_metric_api:m("FAC.e7731787576205669"),execute_sql_api:m("FAC.c6391787576177367"),skill:m("FAC.417a1787576252333"),task:m("FAC.ff8d1787576222389")},hp={perception:m("FAC.75eb1787576252487"),reasoning:m("FAC.41f91787576252857"),visualization:m("FAC.0ea01787576271206"),insights:m("FAC.d6d71787576253031")};function Fi(e){return up[e]||m("FAC.938a1787576171066",{p0:e})}function yp(e,s){return e.role==="status"&&e.loading===!0&&e.content===Fi(s)}function fp(e){return hp[e]||e}function wr(e){return e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}function bp(...e){const s={};for(const c of e)if(c){if(c instanceof Headers){c.forEach((o,p)=>{s[p]=o});continue}if(Array.isArray(c)){for(const[o,p]of c)s[o]=p;continue}Object.assign(s,c)}return s}function Cn(e){const s=t.ref([]),c=t.ref(null),o=t.ref(!1),p=t.ref(!1),u=t.ref(!1),b=t.ref(!1),P=t.ref(null),E=t.ref(null),W=t.ref(null),$=t.ref(null);let K=!1;const S=()=>{var w;return((w=e.headers)==null?void 0:w.call(e))??{}},D=()=>typeof e.assistantPersona=="function"?e.assistantPersona():e.assistantPersona,M=()=>{const w=_t(e.activeConversationId);return typeof w=="string"?w.trim():""},q=t.computed(()=>s.value.find(w=>w.id===c.value)??null),ee=t.ref([]),We=t.computed(()=>xd(ee.value.filter(Kc)));function ne(w,I){var Z;const Y=w.trim();if(!Y)return;const _=(I==null?void 0:I.persisted)!==!1,O=(I==null?void 0:I.threadId)||(_?Y:"");(Z=e.onConversationChange)==null||Z.call(e,Y,{id:Y,...O?{threadId:O}:{},...I!=null&&I.clientDraftId?{clientDraftId:I.clientDraftId}:{},persisted:_})}function he(w,I){const Y=I==null?void 0:I.trim(),_=Y?s.value.find(B=>B.id===Y)??null:q.value;if(!_)throw new Error(m("FAC.929e1787576166445"));const O={...w,id:w.id||Wt(),timestamp:w.timestamp||Nt()};vr(O);const Z=_.messages.findIndex(B=>B.id===O.id);if(Z>=0){const B={..._.messages[Z],...O,timestamp:O.timestamp||_.messages[Z].timestamp};return _.messages[Z]=B,cs(_.messages,B),Ys(_.messages,B)?(_.messages.splice(Z,1),B):(ks(_.messages,B),Kt(_.messages),Ps(_.messages,B),B)}const R=Zc(_.messages,O);return R||(cs(_.messages,O),O.cardRecommendationDraft&&Ys(_.messages,O)?O:(O.cardRecommendationDraft&&ks(_.messages,O),en(_.messages,O)?(Kt(_.messages),q.value===_&&ee.value!==_.messages&&(ee.value=_.messages),O):jd(_.messages,O)?(q.value===_&&ee.value!==_.messages&&(ee.value=_.messages),O):(Ad(_.messages,O),Ps(_.messages,O),Kt(_.messages),q.value===_&&ee.value!==_.messages&&(ee.value=_.messages),O)))}function oe(w){return w.replace(/\s+/gu," ").trim()}function Ve(w,I){var U;const Y=w.trim();if(!Y||I.length===0)return!1;const _=s.value.find(re=>re.id===Y)??null;if(!_)return!1;const O=new Map;for(const re of I){const xe=oe(re.content);xe&&O.set(xe,(O.get(xe)||0)+1)}const Z=new Map;for(const re of _.messages){if(re.role!=="user")continue;const xe=oe(re.content);xe&&Z.set(xe,(Z.get(xe)||0)+1)}let R=0,B=!1;for(const re of I){const xe=re.turnId.trim(),Pe=oe(re.content);let Fe=xe?_.messages.findIndex(He=>He.role==="user"&&He.workbenchTurnId===xe):-1;const Je=Pe&&O.get(Pe)===Z.get(Pe);if(Fe<0&&Je&&(Fe=_.messages.findIndex((He,v)=>v>=R&&He.role==="user"&&oe(He.content)===Pe)),Fe<0)continue;R=Fe+1;const Te=_.messages[Fe];xe&&Te.workbenchTurnId!==xe&&(Te.workbenchTurnId=xe,B=!0),re.attachments.length>0&&!((U=Te.attachments)!=null&&U.length)&&(Te.attachments=re.attachments.map(He=>({...He})),B=!0)}return B}function ie(w,I){const Y=w.trim();if(!Y)return!1;const _=s.value.find(re=>re.id===Y)??null;if(!_)return!1;const O=Array.from(new Set(I.map(re=>re.trim()).filter(Boolean)));if(O.length===0)return!1;const Z=new Set;for(const re of _.messages){if(re.role!=="assistant"||re.cardRecommendationDraft||!re.content.trim())continue;const xe=zt(re)||rs(re.id);xe&&Z.add(xe)}let R=0,B=!1;for(const re of _.messages){if(re.role!=="assistant"||re.cardRecommendationDraft||!re.content.trim()||zt(re))continue;const Pe=rs(re.id);if(Pe){re.workbenchTurnId=Pe,B=!0;continue}for(;R<O.length&&Z.has(O[R]);)R+=1;const Fe=O[R];if(!Fe)break;re.workbenchTurnId=Fe,Z.add(Fe),R+=1,B=!0}const U=an(_.messages);return B||U}function ae(w,I,Y){var te;const _=w.trim(),O=I.trim();if(!_||!O||Y.length===0)return!1;const Z=s.value.find(N=>N.id===_)??null;if(!Z)return!1;const B=Y.filter(N=>N.role==="assistant"&&!N.cardRecommendationDraft&&N.content.trim()).map(N=>N.content.trim()).join(`
|
|
7
7
|
`).replace(/\s+/gu," ").trim();let U=B?Z.messages.findIndex(N=>N.role==="assistant"&&!N.cardRecommendationDraft&&N.content.replace(/\s+/gu," ").trim()===B):-1;if(U<0&&(U=Z.messages.findIndex(N=>ht(N,O))),U<0)return!1;const re=Z.messages[U],xe=Y.map(N=>{const H={...N,id:N.id||Wt(),loading:!1,streaming:!1,timestamp:N.timestamp||re.timestamp||Nt(),workbenchTurnId:O};return Uc(H),vr(H),H});let Pe=-1;for(let N=U-1;N>=0;N-=1)if(((te=Z.messages[N])==null?void 0:te.role)==="user"){Pe=N;break}const Fe=Z.messages.slice(U+1).findIndex(N=>N.role==="user"),Je=Fe>=0?U+Fe+1:Z.messages.length,Te=Z.messages.flatMap((N,H)=>{const ke=ht(N,O),Be=!!N.cardRecommendationDraft&&Bd(N,O,Z.messages),qe=N.content.replace(/\s+/gu," ").trim(),Ue=H>Pe&&H<Je,wa=Ue&&N.role==="status",ua=H>Pe&&H<Je&&Ed(N);wa&&!ua&&Qc(N);const f=H>Pe&&H<Je&&N.role==="assistant"&&!N.cardRecommendationDraft&&!!qe&&B.includes(qe),x=Ue&&N.role==="assistant"&&!N.cardRecommendationDraft&&(N.loading===!0||N.streaming===!0);return x&&Qc(N),ke||Be||ua||f||x?[H]:[]});for(let N=Te.length-1;N>=0;N-=1)Z.messages.splice(Te[N],1);const He=Math.min(U,Z.messages.length);return Z.messages.splice(He,0,...xe),xe.some(N=>!!N.workbenchInterleavedPlacement)||an(Z.messages),q.value===Z&&ee.value!==Z.messages&&(ee.value=Z.messages),!0}t.watch(q,w=>{ee.value=(w==null?void 0:w.messages)??[]},{immediate:!0}),t.watch(ee,w=>{q.value&&q.value.messages!==w&&(q.value.messages=w)},{flush:"sync"});async function Ne(w,I){return fetch(`${e.apiBaseUrl}${w}`,{...I,headers:bp(I==null?void 0:I.headers,S())})}function le(w){var Z,R;const I=new URLSearchParams,Y=(Z=_t(e.chatMode))==null?void 0:Z.trim(),_=(R=_t(e.workspaceId))==null?void 0:R.trim();Y&&I.set("chatMode",Y),_&&I.set("workspaceId",_);const O=I.toString();return O?`${w}?${O}`:w}function ge(){const w=S();return w["x-trace-id"]||w["X-Trace-Id"]||w["x-request-id"]||w["X-Request-Id"]||""}function Ce(w){var I,Y;if(w instanceof Error){(I=e.onError)==null||I.call(e,w);return}(Y=e.onError)==null||Y.call(e,new Error(typeof w=="string"?w:m("FAC.4f531787576253382")))}function na(w,I=null,Y=[],_=""){var Z;if(!e.enableChartCards||!gd(w)||(Z=w.cards)!=null&&Z.length)return;const O=Mc(w.content,{userQuestion:_});O.length>0&&(w.cards=O.map(R=>gn(R,I,Y)))}function Sa(w){return!!(!w||w.persisted===!1||w.historyLoaded||w.messages.length>0)}async function Na(){if(!(K||p.value)){p.value=!0;try{const w=await Ne(le("/chat/conversations"));if(!w.ok)return;const I=await Si(w),_=Zd(I.conversations).map(Z=>({id:Z.threadId,threadId:Z.threadId,title:on(Z.title),messages:[],persisted:!0,historyLoaded:!1,chatMode:Z.chatMode,createdAt:Z.createdAt,updatedAt:Z.updatedAt}));s.value=c.value?[...s.value,..._.filter(Z=>Z.id!==c.value)]:_,K=!0;const O=M();O&&s.value.some(R=>R.id===O)&&await la(O,{silent:!0})}catch(w){Ce(w)}finally{p.value=!1}}}async function ea(w){var Y;const I=s.value.find(_=>_.id===w);if(!(!I||I.persisted===!1||I.historyLoaded||I.messages.length>0))try{const _=await Ne(`/chat/${w}/history`);if(!_.ok)return;const Z=(await Si(_)).messages||[];I.messages=Od(Z.map(R=>{let B="";typeof R.content=="string"?B=R.content:Array.isArray(R.content)?R.role==="tool"?B=R.content.filter(Te=>{var He,v;return Te.type==="tool-result"&&((He=Te.output)==null?void 0:He.type)==="text"&&!((v=Te.output.value)!=null&&v.includes("no output"))}).map(Te=>{const He=Fi(Te.toolName);return m("FAC.4d7f1787576131218",{p0:He,p1:Te.output.value})}).join(`
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fses/ai-chat",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"echarts": "^5.4.0 || ^6.0.0",
|
|
49
49
|
"marked": "^18.0.0",
|
|
50
50
|
"vue": "^3.5.32",
|
|
51
|
-
"@fses/workbench-card": "0.
|
|
51
|
+
"@fses/workbench-card": "0.4.0"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"dompurify": "^3.4.0",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"typescript": "^5.4.5",
|
|
72
72
|
"vite": "^5.4.19",
|
|
73
73
|
"vue-tsc": "^2.2.10",
|
|
74
|
-
"@fses/workbench-card": "0.
|
|
74
|
+
"@fses/workbench-card": "0.4.0"
|
|
75
75
|
},
|
|
76
76
|
"scripts": {
|
|
77
77
|
"stub": "node ./scripts/clean-tsbuildinfo.mjs && vue-tsc --emitDeclarationOnly",
|
package/package.json
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"@byteluck-fe/workbench-template": "0.1.1",
|
|
12
12
|
"@byteluck/agentic-protocol": "2.2.1",
|
|
13
13
|
"@byteluck/workbench-skill-contracts": "0.1.0",
|
|
14
|
-
"@fses/ai-chat": "
|
|
15
|
-
"@fses/workbench-card": "0.
|
|
14
|
+
"@fses/ai-chat": "2.0.0",
|
|
15
|
+
"@fses/workbench-card": "0.4.0",
|
|
16
16
|
"@microsoft/fetch-event-source": "2.0.1",
|
|
17
17
|
"axios": "^1.15.0",
|
|
18
18
|
"clsx": "^2.1.1",
|
|
@@ -70,6 +70,10 @@
|
|
|
70
70
|
"import": "./dist/fses-workbench-app.js",
|
|
71
71
|
"types": "./dist/fde-runtime/runtime/fdeSkillDisplayLabel.d.ts"
|
|
72
72
|
},
|
|
73
|
+
"./i18n": {
|
|
74
|
+
"import": "./dist/i18n/index.js",
|
|
75
|
+
"types": "./dist/i18n/index.d.ts"
|
|
76
|
+
},
|
|
73
77
|
"./plugin": {
|
|
74
78
|
"import": "./dist/plugin/index.js",
|
|
75
79
|
"types": "./dist/plugin/index.d.ts"
|
|
@@ -147,5 +151,5 @@
|
|
|
147
151
|
},
|
|
148
152
|
"type": "module",
|
|
149
153
|
"types": "./dist/index.d.ts",
|
|
150
|
-
"version": "0.
|
|
154
|
+
"version": "0.3.0"
|
|
151
155
|
}
|