@wandox/sdk 0.2.2 → 0.2.4
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/{V2Workbench-DAISzjAm.cjs → V2Workbench-D6dvEP4Z.cjs} +1 -1
- package/dist/{V2Workbench-CYLZl-xN.js → V2Workbench-G2bDh6BA.js} +2 -2
- package/dist/{arc-C5jT3DnU.cjs → arc-BkBZlP_A.cjs} +1 -1
- package/dist/{arc-BunGwpLF.js → arc-i7AiDgeR.js} +1 -1
- package/dist/{architectureDiagram-3BPJPVTR-C2DqULa4.cjs → architectureDiagram-3BPJPVTR-f1EdL5hl.cjs} +1 -1
- package/dist/{architectureDiagram-3BPJPVTR-BHZ-bq1T.js → architectureDiagram-3BPJPVTR-uda1MMUR.js} +3 -3
- package/dist/{blockDiagram-GPEHLZMM-Det2MAN5.js → blockDiagram-GPEHLZMM-BGN6tHd3.js} +3 -3
- package/dist/{blockDiagram-GPEHLZMM-Bo_nB3qy.cjs → blockDiagram-GPEHLZMM-M2Tz0Pr4.cjs} +1 -1
- package/dist/{c4Diagram-AAUBKEIU-Ch0riHab.cjs → c4Diagram-AAUBKEIU-CDNGauB_.cjs} +1 -1
- package/dist/{c4Diagram-AAUBKEIU-CsrqHbqo.js → c4Diagram-AAUBKEIU-pZXW-ano.js} +2 -2
- package/dist/{channel-CCculgSt.cjs → channel-CCD4RO7P.cjs} +1 -1
- package/dist/{channel-CqpIau2e.js → channel-DBxAHVU7.js} +1 -1
- package/dist/{chunk-2J33WTMH-JWoQ5wVu.cjs → chunk-2J33WTMH-FKfDhde-.cjs} +1 -1
- package/dist/{chunk-2J33WTMH-CTKwMaGP.js → chunk-2J33WTMH-bEvwef-g.js} +1 -1
- package/dist/{chunk-4BX2VUAB-DYIisole.js → chunk-4BX2VUAB-BJSUd0yQ.js} +1 -1
- package/dist/{chunk-4BX2VUAB-BZSlyaCg.cjs → chunk-4BX2VUAB-OCFpNzMC.cjs} +1 -1
- package/dist/{chunk-55IACEB6-XLpDuekc.js → chunk-55IACEB6-BVmQ01HH.js} +1 -1
- package/dist/{chunk-55IACEB6-HnOiZtv9.cjs → chunk-55IACEB6-DVdg4xdH.cjs} +1 -1
- package/dist/{chunk-727SXJPM-BR9NcwXR.js → chunk-727SXJPM-DKdHyyLT.js} +5 -5
- package/dist/{chunk-727SXJPM-68u1QM5E.cjs → chunk-727SXJPM-l9WBBjns.cjs} +1 -1
- package/dist/{chunk-AQP2D5EJ-CXlMYEop.js → chunk-AQP2D5EJ-CULIggDf.js} +3 -3
- package/dist/{chunk-AQP2D5EJ-BkuE9_zi.cjs → chunk-AQP2D5EJ-yCXqd_6D.cjs} +1 -1
- package/dist/{chunk-FMBD7UC4-Dw0a3AJ-.cjs → chunk-FMBD7UC4-CakyvtQ4.cjs} +1 -1
- package/dist/{chunk-FMBD7UC4-JJNXsWjl.js → chunk-FMBD7UC4-DJXMQXo_.js} +1 -1
- package/dist/{chunk-ND2GUHAM-CITgMeMc.cjs → chunk-ND2GUHAM-DjThLqeS.cjs} +1 -1
- package/dist/{chunk-ND2GUHAM-BqlPf64U.js → chunk-ND2GUHAM-xncvFFt-.js} +1 -1
- package/dist/{chunk-QZHKN3VN-CW0H55tb.cjs → chunk-QZHKN3VN-CUl6V9kU.cjs} +1 -1
- package/dist/{chunk-QZHKN3VN-CAJTYZ5B.js → chunk-QZHKN3VN-qmQr6bfu.js} +1 -1
- package/dist/{classDiagram-4FO5ZUOK-ChE9XN3i.js → classDiagram-4FO5ZUOK-BeAU2xMc.js} +2 -2
- package/dist/{classDiagram-4FO5ZUOK-C5tNY3K3.cjs → classDiagram-4FO5ZUOK-UIEVIV5l.cjs} +1 -1
- package/dist/{classDiagram-v2-Q7XG4LA2-CRf1KaTy.js → classDiagram-v2-Q7XG4LA2-DvnvOdmJ.js} +2 -2
- package/dist/{classDiagram-v2-Q7XG4LA2-C5tNY3K3.cjs → classDiagram-v2-Q7XG4LA2-UIEVIV5l.cjs} +1 -1
- package/dist/{cose-bilkent-S5V4N54A-DITbR2zy.cjs → cose-bilkent-S5V4N54A-BY80nrOj.cjs} +1 -1
- package/dist/{cose-bilkent-S5V4N54A-CY45gzce.js → cose-bilkent-S5V4N54A-BwahTgKE.js} +2 -2
- package/dist/{dagre-BM42HDAG-fnp5Wty6.cjs → dagre-BM42HDAG-C9oi-PBt.cjs} +1 -1
- package/dist/{dagre-BM42HDAG--O1tnF58.js → dagre-BM42HDAG-ClocbEgh.js} +1 -1
- package/dist/{diagram-2AECGRRQ-D5UjJPFV.js → diagram-2AECGRRQ-BV7RxnvR.js} +2 -2
- package/dist/{diagram-2AECGRRQ-ETkwjSUn.cjs → diagram-2AECGRRQ-DQ4Fvuyc.cjs} +1 -1
- package/dist/{diagram-5GNKFQAL-LluhArjq.cjs → diagram-5GNKFQAL-B4jOsHQY.cjs} +1 -1
- package/dist/{diagram-5GNKFQAL-BXsJ2kC2.js → diagram-5GNKFQAL-DziYh-9x.js} +3 -3
- package/dist/{diagram-KO2AKTUF-CJ3_562Z.cjs → diagram-KO2AKTUF-rSU6PJsU.cjs} +1 -1
- package/dist/{diagram-KO2AKTUF-Xmmt6BTQ.js → diagram-KO2AKTUF-tvSVJtdI.js} +2 -2
- package/dist/{diagram-LMA3HP47-PhBkaPN8.cjs → diagram-LMA3HP47-HfVQo7SD.cjs} +1 -1
- package/dist/{diagram-LMA3HP47-CGAthpdv.js → diagram-LMA3HP47-wz_tErEB.js} +2 -2
- package/dist/{diagram-OG6HWLK6-2K_0332M.cjs → diagram-OG6HWLK6-BgV34R4X.cjs} +1 -1
- package/dist/{diagram-OG6HWLK6-Bz_1lsTo.js → diagram-OG6HWLK6-Cnm3b-Zp.js} +3 -3
- package/dist/{erDiagram-TEJ5UH35-DI6AVIdC.cjs → erDiagram-TEJ5UH35-BQBbu7Zc.cjs} +1 -1
- package/dist/{erDiagram-TEJ5UH35-DM8U1mwy.js → erDiagram-TEJ5UH35-YLNfMMf5.js} +4 -4
- package/dist/{flowDiagram-I6XJVG4X-KUNswkeD.js → flowDiagram-I6XJVG4X-B1PRq33D.js} +6 -6
- package/dist/{flowDiagram-I6XJVG4X-B4zNT6DY.cjs → flowDiagram-I6XJVG4X-Lwl0iikW.cjs} +1 -1
- package/dist/{ganttDiagram-6RSMTGT7-7JIhx1d9.js → ganttDiagram-6RSMTGT7-CHQJQnaq.js} +3 -3
- package/dist/{ganttDiagram-6RSMTGT7-YYw1kJJR.cjs → ganttDiagram-6RSMTGT7-YQBJ0jsG.cjs} +1 -1
- package/dist/{gitGraphDiagram-PVQCEYII-C7yIh1GL.cjs → gitGraphDiagram-PVQCEYII-CR7jDw3s.cjs} +1 -1
- package/dist/{gitGraphDiagram-PVQCEYII-d7BzW5H_.js → gitGraphDiagram-PVQCEYII-DR5W4qeJ.js} +3 -3
- package/dist/{index-DBKw4lJx.js → index-C9mNWDpD.js} +46 -35
- package/dist/{index-C01lBhHB.cjs → index-CPpPf-ol.cjs} +1 -1
- package/dist/{index-DxMaiuxU.js → index-CWED9RHQ.js} +2 -2
- package/dist/{index-BA1nle1c.cjs → index-DaQiMhn3.cjs} +9 -9
- package/dist/{infoDiagram-5YYISTIA-BR94Io4B.js → infoDiagram-5YYISTIA-CZpm-U4O.js} +1 -1
- package/dist/{infoDiagram-5YYISTIA-CAqGeZnP.cjs → infoDiagram-5YYISTIA-DHKHjzGv.cjs} +1 -1
- package/dist/{ishikawaDiagram-YF4QCWOH-DzN6mmyN.cjs → ishikawaDiagram-YF4QCWOH-CLUKpP_t.cjs} +1 -1
- package/dist/{ishikawaDiagram-YF4QCWOH-DsNSRAyv.js → ishikawaDiagram-YF4QCWOH-DvE5cc79.js} +1 -1
- package/dist/{journeyDiagram-JHISSGLW-CNfwaLhS.cjs → journeyDiagram-JHISSGLW-BIced7Dp.cjs} +1 -1
- package/dist/{journeyDiagram-JHISSGLW-DwV_CE7f.js → journeyDiagram-JHISSGLW-CV5x-gLE.js} +4 -4
- package/dist/{kanban-definition-UN3LZRKU-Bizyoykj.cjs → kanban-definition-UN3LZRKU-BI_3FmDm.cjs} +1 -1
- package/dist/{kanban-definition-UN3LZRKU-CQ5UQd_l.js → kanban-definition-UN3LZRKU-bmpBMFyw.js} +2 -2
- package/dist/{linear-D8pHvqtM.js → linear-0QuZO-z3.js} +1 -1
- package/dist/{linear-BwCu3bns.cjs → linear-DGmDFaZ5.cjs} +1 -1
- package/dist/{mermaid.core-Do5-NVQf.js → mermaid.core-BSzVj9oo.js} +35 -35
- package/dist/{mermaid.core-BtIoEVwS.cjs → mermaid.core-ClLxugfZ.cjs} +3 -3
- package/dist/{mindmap-definition-RKZ34NQL-CBblbBH6.js → mindmap-definition-RKZ34NQL-Dr_NxcVN.js} +3 -3
- package/dist/{mindmap-definition-RKZ34NQL-1O-wdIkS.cjs → mindmap-definition-RKZ34NQL-y1Fe8hve.cjs} +1 -1
- package/dist/{pieDiagram-4H26LBE5-BYAeFQLy.js → pieDiagram-4H26LBE5-C_4xfhkq.js} +3 -3
- package/dist/{pieDiagram-4H26LBE5-BAPkofLT.cjs → pieDiagram-4H26LBE5-wF3h_TDN.cjs} +1 -1
- package/dist/{quadrantDiagram-W4KKPZXB-zCk9E9DR.js → quadrantDiagram-W4KKPZXB-B-8sqw4C.js} +2 -2
- package/dist/{quadrantDiagram-W4KKPZXB-CBNGzNid.cjs → quadrantDiagram-W4KKPZXB-DYJ7U4Ro.cjs} +1 -1
- package/dist/{requirementDiagram-4Y6WPE33-BRbHgrl2.js → requirementDiagram-4Y6WPE33-DH6qHAb4.js} +3 -3
- package/dist/{requirementDiagram-4Y6WPE33-HVBwXxbm.cjs → requirementDiagram-4Y6WPE33-DqEyiRAP.cjs} +1 -1
- package/dist/{sankeyDiagram-5OEKKPKP-BPQl8AOh.cjs → sankeyDiagram-5OEKKPKP-D5D7BbtQ.cjs} +1 -1
- package/dist/{sankeyDiagram-5OEKKPKP-CevraOeN.js → sankeyDiagram-5OEKKPKP-edGQCCi6.js} +1 -1
- package/dist/{sequenceDiagram-3UESZ5HK-J8j32UFS.js → sequenceDiagram-3UESZ5HK-BC7KU3NR.js} +3 -3
- package/dist/{sequenceDiagram-3UESZ5HK-BXx5iGBc.cjs → sequenceDiagram-3UESZ5HK-eODiBTW9.cjs} +1 -1
- package/dist/{stateDiagram-AJRCARHV-CdnKc4gl.cjs → stateDiagram-AJRCARHV-B3kmWUQo.cjs} +1 -1
- package/dist/{stateDiagram-AJRCARHV-BDQqlk0x.js → stateDiagram-AJRCARHV-DQ8PstOa.js} +2 -2
- package/dist/{stateDiagram-v2-BHNVJYJU-CRNIY1n9.js → stateDiagram-v2-BHNVJYJU-CK2n-1wG.js} +2 -2
- package/dist/{stateDiagram-v2-BHNVJYJU-CNBLzoQS.cjs → stateDiagram-v2-BHNVJYJU-pj170Ut1.cjs} +1 -1
- package/dist/{timeline-definition-PNZ67QCA-CbHWwt-Z.js → timeline-definition-PNZ67QCA-69y0BMrg.js} +2 -2
- package/dist/{timeline-definition-PNZ67QCA-D8jGtJM3.cjs → timeline-definition-PNZ67QCA-DeHnz_Tu.cjs} +1 -1
- package/dist/{vennDiagram-CIIHVFJN-BdBtnUNe.js → vennDiagram-CIIHVFJN-B766yr-s.js} +1 -1
- package/dist/{vennDiagram-CIIHVFJN-C3sPVQmj.cjs → vennDiagram-CIIHVFJN-BjLD-Ngt.cjs} +1 -1
- package/dist/wandox.cjs +1 -1
- package/dist/wandox.css +1 -1
- package/dist/wandox.js +1 -1
- package/dist/wandox.umd.js +3 -3
- package/dist/{wardleyDiagram-YWT4CUSO-BGwGLPEP.js → wardleyDiagram-YWT4CUSO-DIIBTggN.js} +2 -2
- package/dist/{wardleyDiagram-YWT4CUSO-CXweoZ8S.cjs → wardleyDiagram-YWT4CUSO-GHA7Jg-F.cjs} +1 -1
- package/dist/{xychartDiagram-2RQKCTM6-D-ha4QKl.js → xychartDiagram-2RQKCTM6-BGmZSuqu.js} +2 -2
- package/dist/{xychartDiagram-2RQKCTM6-B4UCQKfg.cjs → xychartDiagram-2RQKCTM6-Cgd1y87s.cjs} +1 -1
- package/package.json +2 -2
package/dist/wandox.umd.js
CHANGED
|
@@ -712,7 +712,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
|
|
|
712
712
|
`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:s,tableCell:l,tableRow:o}};function s(p,m,g,v){return u(d(p,g,v),p.align)}function o(p,m,g,v){const y=h(p,g,v),A=u([y]);return A.slice(0,A.indexOf(`
|
|
713
713
|
`))}function l(p,m,g,v){const y=g.enter("tableCell"),A=g.enter("phrasing"),b=g.containerPhrasing(p,{...v,before:a,after:a});return A(),y(),b}function u(p,m){return Dsn(p,{align:m,alignDelimiters:n,padding:r,stringLength:i})}function d(p,m,g){const v=p.children;let y=-1;const A=[],b=m.enter("table");for(;++y<v.length;)A[y]=h(v[y],m,g);return b(),A}function h(p,m,g){const v=p.children;let y=-1;const A=[],b=m.enter("tableRow");for(;++y<v.length;)A[y]=l(v[y],p,m,g);return b(),A}function f(p,m,g){let v=Yyt.inlineCode(p,m,g);return g.stack.includes("tableCell")&&(v=v.replace(/\|/g,"\\$&")),v}}function Ion(){return{exit:{taskListCheckValueChecked:Wyt,taskListCheckValueUnchecked:Wyt,paragraph:Son}}}function Con(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:won}}}function Wyt(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function Son(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const r=this.stack[this.stack.length-1];r.type;const n=r.children[0];if(n&&n.type==="text"){const i=t.children;let a=-1,s;for(;++a<i.length;){const o=i[a];if(o.type==="paragraph"){s=o;break}}s===r&&(n.value=n.value.slice(1),n.value.length===0?r.children.shift():r.position&&n.position&&typeof n.position.start.offset=="number"&&(n.position.start.column++,n.position.start.offset++,r.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function won(e,t,r,n){const i=e.children[0],a=typeof e.checked=="boolean"&&i&&i.type==="paragraph",s="["+(e.checked?"x":" ")+"] ",o=r.createTracker(n);a&&o.move(s);let l=Yyt.listItem(e,t,r,{...n,...o.current()});return a&&(l=l.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,u)),l;function u(d){return d+s}}function Ton(){return[asn(),wsn(),Msn(),gon(),Ion()]}function Ron(e){return{extensions:[ssn(),Tsn(e),Nsn(),Eon(e),Con()]}}const kon={tokenize:Pon,partial:!0},Uyt={tokenize:Don,partial:!0},Zyt={tokenize:Lon,partial:!0},Hyt={tokenize:Von,partial:!0},Mon={tokenize:Fon,partial:!0},Kyt={name:"wwwAutolink",tokenize:Oon,previous:Xyt},Jyt={name:"protocolAutolink",tokenize:Bon,previous:_yt},i1={name:"emailAutolink",tokenize:zon,previous:$yt},Pv={};function Non(){return{text:Pv}}let xS=48;for(;xS<123;)Pv[xS]=i1,xS++,xS===58?xS=65:xS===91&&(xS=97);Pv[43]=i1,Pv[45]=i1,Pv[46]=i1,Pv[95]=i1,Pv[72]=[i1,Jyt],Pv[104]=[i1,Jyt],Pv[87]=[i1,Kyt],Pv[119]=[i1,Kyt];function zon(e,t,r){const n=this;let i,a;return s;function s(h){return!awe(h)||!$yt.call(n,n.previous)||swe(n.events)?r(h):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),o(h))}function o(h){return awe(h)?(e.consume(h),o):h===64?(e.consume(h),l):r(h)}function l(h){return h===46?e.check(Mon,d,u)(h):h===45||h===95||du(h)?(a=!0,e.consume(h),l):d(h)}function u(h){return e.consume(h),i=!0,l}function d(h){return a&&i&&_u(n.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(h)):r(h)}}function Oon(e,t,r){const n=this;return i;function i(s){return s!==87&&s!==119||!Xyt.call(n,n.previous)||swe(n.events)?r(s):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(kon,e.attempt(Uyt,e.attempt(Zyt,a),r),r)(s))}function a(s){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(s)}}function Bon(e,t,r){const n=this;let i="",a=!1;return s;function s(h){return(h===72||h===104)&&_yt.call(n,n.previous)&&!swe(n.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),i+=String.fromCodePoint(h),e.consume(h),o):r(h)}function o(h){if(_u(h)&&i.length<5)return i+=String.fromCodePoint(h),e.consume(h),o;if(h===58){const f=i.toLowerCase();if(f==="http"||f==="https")return e.consume(h),l}return r(h)}function l(h){return h===47?(e.consume(h),a?u:(a=!0,l)):r(h)}function u(h){return h===null||b$(h)||ja(h)||AS(h)||A$(h)?r(h):e.attempt(Uyt,e.attempt(Zyt,d),r)(h)}function d(h){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(h)}}function Pon(e,t,r){let n=0;return i;function i(s){return(s===87||s===119)&&n<3?(n++,e.consume(s),i):s===46&&n===3?(e.consume(s),a):r(s)}function a(s){return s===null?r(s):t(s)}}function Don(e,t,r){let n,i,a;return s;function s(u){return u===46||u===95?e.check(Hyt,l,o)(u):u===null||ja(u)||AS(u)||u!==45&&A$(u)?l(u):(a=!0,e.consume(u),s)}function o(u){return u===95?n=!0:(i=n,n=void 0),e.consume(u),s}function l(u){return i||n||!a?r(u):t(u)}}function Lon(e,t){let r=0,n=0;return i;function i(s){return s===40?(r++,e.consume(s),i):s===41&&n<r?a(s):s===33||s===34||s===38||s===39||s===41||s===42||s===44||s===46||s===58||s===59||s===60||s===63||s===93||s===95||s===126?e.check(Hyt,t,a)(s):s===null||ja(s)||AS(s)?t(s):(e.consume(s),i)}function a(s){return s===41&&n++,e.consume(s),i}}function Von(e,t,r){return n;function n(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),n):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||ja(o)||AS(o)?t(o):r(o)}function i(o){return o===null||o===40||o===91||ja(o)||AS(o)?t(o):n(o)}function a(o){return _u(o)?s(o):r(o)}function s(o){return o===59?(e.consume(o),n):_u(o)?(e.consume(o),s):r(o)}}function Fon(e,t,r){return n;function n(a){return e.consume(a),i}function i(a){return du(a)?r(a):t(a)}}function Xyt(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||ja(e)}function _yt(e){return!_u(e)}function $yt(e){return!(e===47||awe(e))}function awe(e){return e===43||e===45||e===46||e===95||du(e)}function swe(e){let t=e.length,r=!1;for(;t--;){const n=e[t][1];if((n.type==="labelLink"||n.type==="labelImage")&&!n._balanced){r=!0;break}if(n._gfmAutolinkLiteralWalkedInto){r=!1;break}}return e.length>0&&!r&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}const jon={tokenize:Hon,partial:!0};function qon(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:Won,continuation:{tokenize:Uon},exit:Zon}},text:{91:{name:"gfmFootnoteCall",tokenize:Gon},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Qon,resolveTo:Yon}}}}function Qon(e,t,r){const n=this;let i=n.events.length;const a=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let s;for(;i--;){const l=n.events[i][1];if(l.type==="labelImage"){s=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return o;function o(l){if(!s||!s._balanced)return r(l);const u=qm(n.sliceSerialize({start:s.end,end:n.now()}));return u.codePointAt(0)!==94||!a.includes(u.slice(1))?r(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function Yon(e,t){let r=e.length;for(;r--;)if(e[r][1].type==="labelImage"&&e[r][0]==="enter"){e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const n={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},o=[e[r+1],e[r+2],["enter",n,t],e[r+3],e[r+4],["enter",i,t],["exit",i,t],["enter",a,t],["enter",s,t],["exit",s,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",n,t]];return e.splice(r,e.length-r+1,...o),e}function Gon(e,t,r){const n=this,i=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let a=0,s;return o;function o(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),l}function l(h){return h!==94?r(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(h){if(a>999||h===93&&!s||h===null||h===91||ja(h))return r(h);if(h===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return i.includes(qm(n.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):r(h)}return ja(h)||(s=!0),a++,e.consume(h),h===92?d:u}function d(h){return h===91||h===92||h===93?(e.consume(h),a++,u):u(h)}}function Won(e,t,r){const n=this,i=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let a,s=0,o;return l;function l(m){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(m){return m===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):r(m)}function d(m){if(s>999||m===93&&!o||m===null||m===91||ja(m))return r(m);if(m===93){e.exit("chunkString");const g=e.exit("gfmFootnoteDefinitionLabelString");return a=qm(n.sliceSerialize(g)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return ja(m)||(o=!0),s++,e.consume(m),m===92?h:d}function h(m){return m===91||m===92||m===93?(e.consume(m),s++,d):d(m)}function f(m){return m===58?(e.enter("definitionMarker"),e.consume(m),e.exit("definitionMarker"),i.includes(a)||i.push(a),qi(e,p,"gfmFootnoteDefinitionWhitespace")):r(m)}function p(m){return t(m)}}function Uon(e,t,r){return e.check(EV,t,e.attempt(jon,t,r))}function Zon(e){e.exit("gfmFootnoteDefinition")}function Hon(e,t,r){const n=this;return qi(e,i,"gfmFootnoteDefinitionIndent",5);function i(a){const s=n.events[n.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?t(a):r(a)}}function Kon(e){let r=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:a,resolveAll:i};return r==null&&(r=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function i(s,o){let l=-1;for(;++l<s.length;)if(s[l][0]==="enter"&&s[l][1].type==="strikethroughSequenceTemporary"&&s[l][1]._close){let u=l;for(;u--;)if(s[u][0]==="exit"&&s[u][1].type==="strikethroughSequenceTemporary"&&s[u][1]._open&&s[l][1].end.offset-s[l][1].start.offset===s[u][1].end.offset-s[u][1].start.offset){s[l][1].type="strikethroughSequence",s[u][1].type="strikethroughSequence";const d={type:"strikethrough",start:Object.assign({},s[u][1].start),end:Object.assign({},s[l][1].end)},h={type:"strikethroughText",start:Object.assign({},s[u][1].end),end:Object.assign({},s[l][1].start)},f=[["enter",d,o],["enter",s[u][1],o],["exit",s[u][1],o],["enter",h,o]],p=o.parser.constructs.insideSpan.null;p&&tf(f,f.length,0,x$(p,s.slice(u+1,l),o)),tf(f,f.length,0,[["exit",h,o],["enter",s[l][1],o],["exit",s[l][1],o],["exit",d,o]]),tf(s,u-1,l-u+3,f),l=u+f.length-2;break}}for(l=-1;++l<s.length;)s[l][1].type==="strikethroughSequenceTemporary"&&(s[l][1].type="data");return s}function a(s,o,l){const u=this.previous,d=this.events;let h=0;return f;function f(m){return u===126&&d[d.length-1][1].type!=="characterEscape"?l(m):(s.enter("strikethroughSequenceTemporary"),p(m))}function p(m){const g=m7(u);if(m===126)return h>1?l(m):(s.consume(m),h++,p);if(h<2&&!r)return l(m);const v=s.exit("strikethroughSequenceTemporary"),y=m7(m);return v._open=!y||y===2&&!!g,v._close=!g||g===2&&!!y,o(m)}}}class Jon{constructor(){this.map=[]}add(t,r,n){Xon(this,t,r,n)}consume(t){if(this.map.sort(function(a,s){return a[0]-s[0]}),this.map.length===0)return;let r=this.map.length;const n=[];for(;r>0;)r-=1,n.push(t.slice(this.map[r][0]+this.map[r][1]),this.map[r][2]),t.length=this.map[r][0];n.push(t.slice()),t.length=0;let i=n.pop();for(;i;){for(const a of i)t.push(a);i=n.pop()}this.map.length=0}}function Xon(e,t,r,n){let i=0;if(!(r===0&&n.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=r,e.map[i][2].push(...n);return}i+=1}e.map.push([t,r,n])}}function _on(e,t){let r=!1;const n=[];for(;t<e.length;){const i=e[t];if(r){if(i[0]==="enter")i[1].type==="tableContent"&&n.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const a=n.length-1;n[a]=n[a]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(r=!0);t+=1}return n}function $on(){return{flow:{null:{name:"table",tokenize:eln,resolveAll:tln}}}}function eln(e,t,r){const n=this;let i=0,a=0,s;return o;function o(M){let k=n.events.length-1;for(;k>-1;){const N=n.events[k][1].type;if(N==="lineEnding"||N==="linePrefix")k--;else break}const z=k>-1?n.events[k][1].type:null,O=z==="tableHead"||z==="tableRow"?w:l;return O===w&&n.parser.lazy[n.now().line]?r(M):O(M)}function l(M){return e.enter("tableHead"),e.enter("tableRow"),u(M)}function u(M){return M===124||(s=!0,a+=1),d(M)}function d(M){return M===null?r(M):En(M)?a>1?(a=0,n.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),p):r(M):Mi(M)?qi(e,d,"whitespace")(M):(a+=1,s&&(s=!1,i+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),s=!0,d):(e.enter("data"),h(M)))}function h(M){return M===null||M===124||ja(M)?(e.exit("data"),d(M)):(e.consume(M),M===92?f:h)}function f(M){return M===92||M===124?(e.consume(M),h):h(M)}function p(M){return n.interrupt=!1,n.parser.lazy[n.now().line]?r(M):(e.enter("tableDelimiterRow"),s=!1,Mi(M)?qi(e,m,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):m(M))}function m(M){return M===45||M===58?v(M):M===124?(s=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),g):C(M)}function g(M){return Mi(M)?qi(e,v,"whitespace")(M):v(M)}function v(M){return M===58?(a+=1,s=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),y):M===45?(a+=1,y(M)):M===null||En(M)?x(M):C(M)}function y(M){return M===45?(e.enter("tableDelimiterFiller"),A(M)):C(M)}function A(M){return M===45?(e.consume(M),A):M===58?(s=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),b):(e.exit("tableDelimiterFiller"),b(M))}function b(M){return Mi(M)?qi(e,x,"whitespace")(M):x(M)}function x(M){return M===124?m(M):M===null||En(M)?!s||i!==a?C(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(M)):C(M)}function C(M){return r(M)}function w(M){return e.enter("tableRow"),S(M)}function S(M){return M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),S):M===null||En(M)?(e.exit("tableRow"),t(M)):Mi(M)?qi(e,S,"whitespace")(M):(e.enter("data"),T(M))}function T(M){return M===null||M===124||ja(M)?(e.exit("data"),S(M)):(e.consume(M),M===92?R:T)}function R(M){return M===92||M===124?(e.consume(M),T):T(M)}}function tln(e,t){let r=-1,n=!0,i=0,a=[0,0,0,0],s=[0,0,0,0],o=!1,l=0,u,d,h;const f=new Jon;for(;++r<e.length;){const p=e[r],m=p[1];p[0]==="enter"?m.type==="tableHead"?(o=!1,l!==0&&(e1t(f,t,l,u,d),d=void 0,l=0),u={type:"table",start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(r,0,[["enter",u,t]])):m.type==="tableRow"||m.type==="tableDelimiterRow"?(n=!0,h=void 0,a=[0,0,0,0],s=[0,r+1,0,0],o&&(o=!1,d={type:"tableBody",start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(r,0,[["enter",d,t]])),i=m.type==="tableDelimiterRow"?2:d?3:1):i&&(m.type==="data"||m.type==="tableDelimiterMarker"||m.type==="tableDelimiterFiller")?(n=!1,s[2]===0&&(a[1]!==0&&(s[0]=s[1],h=O$(f,t,a,i,void 0,h),a=[0,0,0,0]),s[2]=r)):m.type==="tableCellDivider"&&(n?n=!1:(a[1]!==0&&(s[0]=s[1],h=O$(f,t,a,i,void 0,h)),a=s,s=[a[1],r,0,0])):m.type==="tableHead"?(o=!0,l=r):m.type==="tableRow"||m.type==="tableDelimiterRow"?(l=r,a[1]!==0?(s[0]=s[1],h=O$(f,t,a,i,r,h)):s[1]!==0&&(h=O$(f,t,s,i,r,h)),i=0):i&&(m.type==="data"||m.type==="tableDelimiterMarker"||m.type==="tableDelimiterFiller")&&(s[3]=r)}for(l!==0&&e1t(f,t,l,u,d),f.consume(t.events),r=-1;++r<t.events.length;){const p=t.events[r];p[0]==="enter"&&p[1].type==="table"&&(p[1]._align=_on(t.events,r))}return e}function O$(e,t,r,n,i,a){const s=n===1?"tableHeader":n===2?"tableDelimiter":"tableData",o="tableContent";r[0]!==0&&(a.end=Object.assign({},v7(t.events,r[0])),e.add(r[0],0,[["exit",a,t]]));const l=v7(t.events,r[1]);if(a={type:s,start:Object.assign({},l),end:Object.assign({},l)},e.add(r[1],0,[["enter",a,t]]),r[2]!==0){const u=v7(t.events,r[2]),d=v7(t.events,r[3]),h={type:o,start:Object.assign({},u),end:Object.assign({},d)};if(e.add(r[2],0,[["enter",h,t]]),n!==2){const f=t.events[r[2]],p=t.events[r[3]];if(f[1].end=Object.assign({},p[1].end),f[1].type="chunkText",f[1].contentType="text",r[3]>r[2]+1){const m=r[2]+1,g=r[3]-r[2]-1;e.add(m,g,[])}}e.add(r[3]+1,0,[["exit",h,t]])}return i!==void 0&&(a.end=Object.assign({},v7(t.events,i)),e.add(i,0,[["exit",a,t]]),a=void 0),a}function e1t(e,t,r,n,i){const a=[],s=v7(t.events,r);i&&(i.end=Object.assign({},s),a.push(["exit",i,t])),n.end=Object.assign({},s),a.push(["exit",n,t]),e.add(r+1,0,a)}function v7(e,t){const r=e[t],n=r[0]==="enter"?"start":"end";return r[1][n]}const rln={name:"tasklistCheck",tokenize:iln};function nln(){return{text:{91:rln}}}function iln(e,t,r){const n=this;return i;function i(l){return n.previous!==null||!n._gfmTasklistFirstContentOfListItem?r(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),a)}function a(l){return ja(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),s):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),s):r(l)}function s(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),o):r(l)}function o(l){return En(l)?t(l):Mi(l)?e.check({tokenize:aln},t,r)(l):r(l)}}function aln(e,t,r){return qi(e,n,"whitespace");function n(i){return i===null?r(i):t(i)}}function sln(e){return k0t([Non(),qon(),Kon(e),$on(),nln()])}const oln={};function Mx(e){const t=this,r=e||oln,n=t.data(),i=n.micromarkExtensions||(n.micromarkExtensions=[]),a=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),s=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);i.push(sln(r)),a.push(Ton()),s.push(Ron(r))}let B$,t1t=Promise.resolve();const ES=new Map,lln=50,cln={startOnLoad:!1,look:"handDrawn",securityLevel:"strict",fontFamily:"monospace",suppressErrorRendering:!0};function uln(){return B$||(B$=Promise.resolve().then(()=>q4n).then(e=>e.default).catch(e=>{throw B$=void 0,e})),B$}function dln(e,t){if(ES.delete(e),ES.set(e,t),ES.size>lln){const r=ES.keys().next().value;r!==void 0&&ES.delete(r)}}function r1t(e,t){const r=String(t);return/^(?:height|width|x|y|cx|cy|r|rx|ry)$/i.test(e)&&/^(?:NaN|[-+]?Infinity)$/i.test(r.trim())?"0":r}async function hln(e,t,r){const n=SVGElement.prototype.setAttribute,i=SVGElement.prototype.setAttributeNS;SVGElement.prototype.setAttribute=function(a,s){return n.call(this,a,r1t(a,s))},SVGElement.prototype.setAttributeNS=function(a,s,o){return i.call(this,a,s,r1t(s,o))};try{const a=await e.render(t,r);return vln(a.svg)}finally{SVGElement.prototype.setAttribute=n,SVGElement.prototype.setAttributeNS=i}}function fln(e,t){const r=ES.get(e);if(r)return Promise.resolve(r);const n=t1t.then(async()=>{if(t())return null;const i=ES.get(e);if(i)return i;const a=await uln();if(t())return null;a.initialize(cln);const s=`mermaid-${Date.now()}-${Math.random().toString(36).slice(2,11)}`,o=await hln(a,s,e);return dln(e,o),o});return t1t=n.then(()=>{},()=>{}),n}const n1t=[/graph\s*(TD|TB|BT|RL|LR)/i,/flowchart\s*(TD|TB|BT|RL|LR)/i,/sequenceDiagram/i,/classDiagram/i,/stateDiagram/i,/erDiagram/i,/\bgantt\b/i,/\bpie\b/i,/\bjourney\b/i,/gitGraph/i,/xychart(?:-beta)?/i,/\bquadrantChart\b/i],owe=[/^graph\s*(TD|TB|BT|RL|LR)/i,/^flowchart\s*(TD|TB|BT|RL|LR)/i,/^sequenceDiagram/i,/^classDiagram/i,/^stateDiagram/i,/^erDiagram/i,/^gantt/i,/^pie/i,/^journey/i,/^gitGraph/i,/^xychart(?:-beta)?/i,/^quadrantChart/i];function pln(e){return Array.from(e.matchAll(/```mermaid[^\r\n]*\r?\n([\s\S]*?)```/gi),t=>t[1].trim())}const mln=[/^#{1,6}\s/,/^\|.*\|/,/^[-*+]\s/,/^\d+\.\s/,/^>\s/,/^!\[/,/^\[.*\]\(.*\)/,/^<button\b/i,/^<div\b/i,/^<table\b/i];function i1t(e,t){let r=t,n=!1;for(let i=t+1;i<e.length;i++){const a=e[i],s=a.trim();if(s===""){n=!0;continue}if(mln.some(o=>o.test(s))||n&&!a.startsWith(" ")&&!a.startsWith(" ")&&!(/^(subgraph|end|style|classDef|click|linkStyle|class\s|section|title|dateFormat|axisFormat|x-axis|y-axis|line|bar|participant|actor|Note|loop|alt|opt|par|rect|activate|deactivate|%%)/i.test(s)||/-->|==>|-.->|-->/i.test(s)||owe.some(l=>l.test(s))))break;r=i,n=!1}return r}function gln(e){var p;const t=e.split(`
|
|
714
714
|
`),r=t.findIndex(m=>/^xychart(?:-beta)?\b/i.test(m.trim()));if(r===-1)return e;let n=-1,i=null,a=null,s="";const o=(p=t.find(m=>/^\s*x-axis\b[^\[]*\[/i.test(m)))==null?void 0:p.match(/^\s*x-axis\b[^\[]*\[([^\]]*)\]/i),l=(o==null?void 0:o[1].trim())??"",u=o?l?l.split(",").length:0:null,d=[],h=/^(\s*)(bar|line)\b([\s\S]*?)\[([^\]]*)\](\s*)$/i;for(let m=0;m<t.length;m++){const g=t[m],v=g.match(/^\s*y-axis\b(.*)$/i);if(v){n=m;const A=v[1],b=A.match(/"([^"]*)"|\[([^\]]*)\]/);s=b?b[1]??b[2]??"":"";const x=A.match(/([-\d.]+)\s*-->\s*([-\d.]+)/);x&&(i=Number.parseFloat(x[1]),a=Number.parseFloat(x[2]));continue}const y=g.match(h);if(y){const A=y[4].split(",").map(b=>{const x=Number(b.trim());return Number.isFinite(x)?(d.push(x),b.trim()):"0"});if(u!==null){for(;A.length<u;)A.push("0");A.length>u&&(A.length=u)}t[m]=`${y[1]}${y[2]}${y[3]}[${A.join(", ")}]${y[5]}`}}if(n===-1||i===null||a===null||!Number.isFinite(i)||!Number.isFinite(a)||i>=a){const m=d.length>0?Math.min(...d):0,g=d.length>0?Math.max(...d):1,v=g-m,y=v===0?1:v*.1,A=Math.floor(m-y),b=Math.ceil(g+y),C=` y-axis${s?` "${s}"`:""} ${A} --> ${b}`;if(n!==-1)t[n]=C;else{const w=t.findIndex((T,R)=>R>r&&/^\s*x-axis\b/i.test(T)),S=w===-1?r+1:w+1;t.splice(S,0,C)}}return t.join(`
|
|
715
|
-
`)}function vln(e){if(!e||e.indexOf("NaN")===-1&&e.indexOf("Infinity")===-1)return e;let t=e.replace(/="((?:NaN|-?Infinity)[a-z%]*)"/gi,'="0"');return t=t.replace(/\btransform="[^"]*"/gi,r=>r.replace(/(NaN|-?Infinity)/gi,"0")),t}function Nx({chart:e,streaming:t=!1,ready:r=!0}){const n=I.useRef(null),i=I.useRef(null),[a,s]=I.useState("empty"),o=t&&!r;return I.useEffect(()=>{const l=n.current,u=i.current;if(!l||!u)return;let d=!1;const h=e.trim();if(!h)return u.replaceChildren(),s("empty"),()=>{d=!0};if(o)return s("pending"),()=>{d=!0};u.replaceChildren(),s("loading");const f=async()=>{try{const v=gln(h),y=await fln(v,()=>d);!d&&i.current===u&&(y?(u.innerHTML=y,s("rendered")):(u.replaceChildren(),s("error")))}catch{!d&&i.current===u&&(u.replaceChildren(),s("error"))}};let p,m;const g=()=>{p=window.setTimeout(()=>void f(),180)};return"IntersectionObserver"in window?(m=new IntersectionObserver(v=>{v.some(y=>y.isIntersecting)&&(m==null||m.disconnect(),g())},{rootMargin:"360px 0px"}),m.observe(l)):g(),()=>{d=!0,m==null||m.disconnect(),p!==void 0&&window.clearTimeout(p)}},[e,o]),E.jsxs("div",{ref:n,className:"wandox-mermaid-chart","aria-busy":a==="loading",children:[a==="loading"&&E.jsxs("output",{className:"wandox-mermaid-loading",children:[E.jsx("span",{className:"wandox-mermaid-loading__spinner","aria-hidden":"true"}),E.jsx("span",{className:"wandox-mermaid-loading__text",children:"加载中"})]}),a==="pending"&&E.jsx("output",{className:"wandox-mermaid-pending","aria-live":"polite",children:"图表生成中..."}),a==="error"&&E.jsx("div",{className:"wandox-mermaid-error",role:"alert",children:E.jsx("span",{children:"图表暂时无法渲染"})}),E.jsx("div",{ref:i,className:"wandox-mermaid-content",hidden:a!=="rendered"})]})}const a1t=I.createContext({});function yln(e){const t=[],r=/<button[^>]*>([^<]*)<\/button>/gi,n=/data-id=["']([^"']*)["']/i,i=/data-playbook-id=["']([^"']*)["']/i,a=/data-playbook-name=["']([^"']*)["']/i,s=/data-playbook-params='([^']*)'/i,o=/data-input-fields='([^']*)'/i,l=[],u=/```[\s\S]*?```|`[^`]+`/g;let d=u.exec(e);for(;d!==null;)l.push({start:d.index,end:d.index+d[0].length}),d=u.exec(e);const h=g=>l.some(v=>g>=v.start&&g<v.end);let f=0;const p=[];let m=r.exec(e);for(;m!==null;){if(h(m.index)){m=r.exec(e);continue}const g=m[0],v=m[1],y=n.exec(g),A=i.exec(g),b=a.exec(g),x=s.exec(g),C=o.exec(g);if((y||A)&&b){let w={};if(x)try{w=JSON.parse(x[1].replace(/"/g,'"').replace(/'/g,"'"))}catch{}let S=[];if(C)try{S=JSON.parse(C[1].replace(/"/g,'"').replace(/'/g,"'"))}catch{}p.push({index:m.index,length:g.length,info:{id:y==null?void 0:y[1],playbookId:A==null?void 0:A[1],playbookName:b[1],playbookParams:w,buttonText:v||b[1],inputFields:S}})}m=r.exec(e)}p.sort((g,v)=>g.index-v.index);for(const g of p)g.index>f&&t.push({text:e.slice(f,g.index),buttons:[]}),t.push({text:"",buttons:[g.info]}),f=g.index+g.length;return f<e.length&&t.push({text:e.slice(f),buttons:[]}),t.length>0?t:[{text:e,buttons:[]}]}function bln(e,t){if(e[t]!=="{")return-1;let r=0,n=!1,i=!1;for(let a=t;a<e.length;a+=1){const s=e[a];if(n){i?i=!1:s==="\\"?i=!0:s==='"'&&(n=!1);continue}if(s==='"')n=!0;else if(s==="{")r+=1;else if(s==="}"&&(r-=1,r===0))return a+1}return-1}function Aln(e){const t=[],r=[],n=/```[\s\S]*?```|`[^`]+`/g;let i=n.exec(e);for(;i!==null;)r.push({start:i.index,end:i.index+i[0].length}),i=n.exec(e);const a=d=>r.some(h=>d>=h.start&&d<h.end);let s=0;const o=[],l=/\[\[([^|\[\]]+)\|([^|\[\]]+)\|([^|\[\]]+)\|/g;let u=l.exec(e);for(;u!==null;){if(a(u.index)){u=l.exec(e);continue}const d=l.lastIndex,h=bln(e,d);if(h===-1||e.slice(h,h+2)!=="]]"){u=l.exec(e);continue}const f=e.slice(u.index,h+2),p=u[1],m=u[2],g=u[3],v=e.slice(d,h);let y={};try{y=JSON.parse(v)}catch{}o.push({index:u.index,length:f.length,info:{id:m,playbookId:void 0,playbookName:p,playbookParams:y,buttonText:p,inputFields:[],playbookType:g}}),u=l.exec(e)}o.sort((d,h)=>d.index-h.index),s=0;for(const d of o)d.index>s&&t.push({text:e.slice(s,d.index),buttons:[]}),t.push({text:"",buttons:[d.info]}),s=d.index+d.length;return s<e.length&&t.push({text:e.slice(s),buttons:[]}),t.length>0?t:[{text:e,buttons:[]}]}function xln(e){if(e){if(typeof e=="object"&&"data"in e){const t=e.data;if(t&&typeof t=="object")return t}return e}}function s1t(e){return(Array.isArray(e)?e.map(r=>[void 0,r]):e&&typeof e=="object"?Object.entries(e):[]).flatMap(([r,n])=>{if(!n||typeof n!="object")return[];const i=n,a=String(i.name||r||"").trim();return a?[{...i,name:a,label:String(i.label||a),type:String(i.type||"string"),required:i.required===!0}]:[]})}function Eln(e,t){const r=new Map(t.filter(n=>n.default!==void 0&&n.default!=="").map(n=>[n.name,n.default]));return r.size===0?e:e.map(n=>n.default!==void 0&&n.default!==""||!r.has(n.name)?n:{...n,default:r.get(n.name)})}function Iln(e){if(!e)return[];const t=e.content||{},r=s1t(e.input_fields??t.input_fields),n=t.yaml_content||"";if(n)try{const i=e8.parse(n),a=s1t(i==null?void 0:i.params);if(a.length>0)return Eln(a,r)}catch{}return r}function o1t({info:e}){const{onExecutePlaybook:t,onFillPlaybookParams:r,getPlaybookDetail:n}=I.useContext(a1t),[i,a]=I.useState(!1),[s,o]=I.useState(e.playbookId||""),l=(h,f)=>f.length===0?!1:(r&&r({playbookId:h,playbookName:e.playbookName,inputFields:f.map(p=>({...p,label:p.label||p.name})),initialParams:e.playbookParams,playbookType:e.playbookType}),!0),u=h=>{const f=(h==null?void 0:h.playbookId)||s||e.playbookId;f&&t&&t({message:e.playbookName,playbook_id:f,playbook_params:e.playbookParams,playbook_type:e.playbookType})},d=async()=>{if(i)return;const h=e.id||e.playbookId;if(!h){if(l(e.playbookId||"",e.inputFields))return;u();return}if(!n){if(l(e.playbookId||"",e.inputFields))return;u();return}a(!0);try{const f=xln(await n(h)),p=String((f==null?void 0:f.playbook_id)||e.playbookId||h);p&&o(p);const m=Iln(f);m.length>0?l(p,m):u({playbookId:p})}catch{if(l(e.playbookId||"",e.inputFields))return;u()}finally{a(!1)}};return E.jsxs("button",{type:"button",className:"wandox-playbook-button","data-id":e.id,"data-playbook-id":s||e.playbookId,"data-playbook-name":e.playbookName,"data-playbook-params":JSON.stringify(e.playbookParams),"data-input-fields":JSON.stringify(e.inputFields),onClick:d,disabled:i,children:[i?E.jsx(na,{className:"wandox-playbook-button-icon"}):E.jsx(Yh,{className:"wandox-playbook-button-icon"}),E.jsx("span",{children:e.buttonText})]})}const Cln=new Set(["csv","xlsx","xls","tsv","doc","docx","pdf","txt","md","zip","json"]),Sln=/\/api\/v1\/cognitive\/artifacts\/[^/]+\/download/i;function wln(e){const t=e.trim();if(!t)return!1;if(Sln.test(t))return!0;const r=t.split(/[?#]/,1)[0],n=/\.([a-z0-9]+)$/i.exec(r);return n!==null&&Cln.has(n[1].toLowerCase())}function l1t(e){try{const r=e.split(/[?#]/,1)[0].split("/").filter(Boolean).pop()||"";return decodeURIComponent(r)||"文件"}catch{return"文件"}}function lwe(e){const t=/\.([a-z0-9]+)$/i.exec(e);return t?t[1].toLowerCase():""}const Tln={excel:"#16a34a",pdf:"#dc2626",word:"#2563eb",zip:"#d97706",text:"#6b7280"};function Rln(e){const t=lwe(e),r=["csv","xlsx","xls","tsv"].includes(t)?"excel":["doc","docx"].includes(t)?"word":["txt","md","json"].includes(t)?"text":t,n={fontSize:22,color:Tln[r]||"#6b7280"};return r==="excel"?E.jsx(G$e,{style:n}):r==="pdf"?E.jsx(IH,{style:n}):r==="word"?E.jsx(oye,{style:n}):r==="zip"?E.jsx(W$e,{style:n}):r==="text"?E.jsx(MD,{style:n}):E.jsx(Ay,{style:n})}function c1t(e){return typeof e=="string"?e:typeof e=="number"?String(e):Array.isArray(e)?e.map(c1t).join(""):""}function u1t({href:e,children:t,onClick:r}){const n=c1t(t).trim(),a=n&&!/^https?:\/\//i.test(n)?n:l1t(e),s=lwe(a)||lwe(l1t(e));return E.jsxs("a",{className:"wandox-file-card",href:e,target:"_blank",rel:"noopener noreferrer",onClick:r,children:[E.jsx("span",{className:"wandox-file-card__icon",children:Rln(a)}),E.jsxs("span",{className:"wandox-file-card__body",children:[E.jsx("span",{className:"wandox-file-card__name",title:a,children:a}),E.jsxs("span",{className:"wandox-file-card__meta",children:["点击下载",s?` · ${s.toUpperCase()}`:""]})]}),E.jsx(fk,{className:"wandox-file-card__action"})]})}const cwe=I.createContext({streaming:!1,completeMermaidCodes:new Set,completeEChartsCodes:new Set});function kln(e){return[...e.matchAll(/```echarts[^\r\n]*\r?\n([\s\S]*?)```/gi)].map(t=>t[1].trim())}function Mln({className:e,children:t,...r}){const{streaming:n,completeMermaidCodes:i,completeEChartsCodes:a}=I.useContext(cwe),s=/language-(\w+)/.exec(e||""),o=String(t).replace(/\n$/,"");if(s&&s[1]==="echarts"){const l=!n||a.has(o.trim());return E.jsx(xtn,{source:o,streaming:n,ready:l})}if(s&&s[1]==="mermaid"){const l=!n||i.has(o.trim());return E.jsx(Nx,{chart:o,streaming:n,ready:l})}return E.jsx("code",{className:e,...r,children:t})}const d1t={a({href:e,children:t,...r}){return e&&jvt(String(e))?E.jsx(u7,{src:String(e),alt:"图片预览",size:"small"}):e&&wln(String(e))?E.jsx(u1t,{href:String(e),children:t}):E.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",...r,children:t})},table({children:e,...t}){return E.jsx("div",{className:"wandox-native-table-wrapper",children:E.jsx("table",{className:"wandox-native-table",...t,children:e})})},img({src:e,alt:t}){return e?E.jsx(u7,{src:String(e),alt:t||"图片预览",size:"small"}):null},code:Mln};function P$({content:e,streaming:t=!1}){if(!e||e.trim()==="")return null;const r=e.replace(/```[\s\S]*?```/g,"").replace(/`[^`]+`/g,"");if(r.includes("[[")&&(r.includes("|standard|")||r.includes("|exploration|")||r.includes("|fast_action|")||r.includes("|patrol|"))){const a=Aln(e),s=[];let o=[];const l=()=>{o.length>0&&(s.push(E.jsx("div",{className:"wandox-playbook-button-group",children:o.map((u,d)=>E.jsx(o1t,{info:u},`btn-${d}`))},`btn-group-${s.length}`)),o=[])};for(let u=0;u<a.length;u++){const d=a[u];d.buttons.length>0?o.push(...d.buttons):d.text.trim()&&(l(),s.push(E.jsx(D$,{content:d.text,streaming:t},`text-${u}`)))}return l(),E.jsx("div",{className:"wandox-markdown-with-buttons",children:s})}if(/<button[^>]*data-playbook-id/i.test(r)){const a=yln(e),s=[];let o=[];const l=()=>{o.length>0&&(s.push(E.jsx("div",{className:"wandox-playbook-button-group",children:o.map((u,d)=>E.jsx(o1t,{info:u},`btn-${d}`))},`btn-group-${s.length}`)),o=[])};for(let u=0;u<a.length;u++){const d=a[u];d.buttons.length>0?o.push(...d.buttons):d.text.trim()&&(l(),s.push(E.jsx(D$,{content:d.text,streaming:t},`text-${u}`)))}return l(),E.jsx("div",{className:"wandox-markdown-with-buttons",children:s})}return E.jsx(D$,{content:e,streaming:t})}function D$({content:e,streaming:t=!1}){if(!e||e.trim()==="")return null;const r=new Set(pln(e)),n=new Set(kln(e)),i=n1t.some(s=>s.test(e)),a=e.includes("```mermaid");if(i&&!a){const s=e.split(`
|
|
715
|
+
`)}function vln(e){if(!e||e.indexOf("NaN")===-1&&e.indexOf("Infinity")===-1)return e;let t=e.replace(/="((?:NaN|-?Infinity)[a-z%]*)"/gi,'="0"');return t=t.replace(/\btransform="[^"]*"/gi,r=>r.replace(/(NaN|-?Infinity)/gi,"0")),t}function Nx({chart:e,streaming:t=!1,ready:r=!0}){const n=I.useRef(null),i=I.useRef(null),[a,s]=I.useState("empty"),[o,l]=I.useState(),u=t&&!r;return I.useEffect(()=>{const d=n.current,h=i.current;if(!d||!h)return;let f=!1;const p=e.trim();if(!p)return h.replaceChildren(),s("empty"),()=>{f=!0};if(u)return s("pending"),()=>{f=!0};h.replaceChildren(),s("loading");const m=async()=>{try{const A=gln(p),b=await fln(A,()=>f);!f&&i.current===h&&(b?(h.innerHTML=b,l(void 0),s("rendered")):(h.replaceChildren(),l("图表源码为空"),s("error")))}catch(A){!f&&i.current===h&&(h.replaceChildren(),l(A instanceof Error&&A.message?A.message:String(A??"未知错误")),s("error"))}};let g,v;const y=()=>{g=window.setTimeout(()=>void m(),180)};return"IntersectionObserver"in window?(v=new IntersectionObserver(A=>{A.some(b=>b.isIntersecting)&&(v==null||v.disconnect(),y())},{rootMargin:"360px 0px"}),v.observe(d)):y(),()=>{f=!0,v==null||v.disconnect(),g!==void 0&&window.clearTimeout(g)}},[e,u]),E.jsxs("div",{ref:n,className:"wandox-mermaid-chart","aria-busy":a==="loading",children:[a==="loading"&&E.jsxs("output",{className:"wandox-mermaid-loading",children:[E.jsx("span",{className:"wandox-mermaid-loading__spinner","aria-hidden":"true"}),E.jsx("span",{className:"wandox-mermaid-loading__text",children:"加载中"})]}),a==="pending"&&E.jsx("output",{className:"wandox-mermaid-pending","aria-live":"polite",children:"图表生成中..."}),a==="error"&&E.jsxs("div",{className:"wandox-mermaid-error",role:"alert",children:[E.jsx("span",{children:"图表暂时无法渲染"}),o?E.jsx("span",{className:"wandox-mermaid-error__detail",children:o}):null]}),E.jsx("div",{ref:i,className:"wandox-mermaid-content",hidden:a!=="rendered"})]})}const a1t=I.createContext({});function yln(e){const t=[],r=/<button[^>]*>([^<]*)<\/button>/gi,n=/data-id=["']([^"']*)["']/i,i=/data-playbook-id=["']([^"']*)["']/i,a=/data-playbook-name=["']([^"']*)["']/i,s=/data-playbook-params='([^']*)'/i,o=/data-input-fields='([^']*)'/i,l=[],u=/```[\s\S]*?```|`[^`]+`/g;let d=u.exec(e);for(;d!==null;)l.push({start:d.index,end:d.index+d[0].length}),d=u.exec(e);const h=g=>l.some(v=>g>=v.start&&g<v.end);let f=0;const p=[];let m=r.exec(e);for(;m!==null;){if(h(m.index)){m=r.exec(e);continue}const g=m[0],v=m[1],y=n.exec(g),A=i.exec(g),b=a.exec(g),x=s.exec(g),C=o.exec(g);if((y||A)&&b){let w={};if(x)try{w=JSON.parse(x[1].replace(/"/g,'"').replace(/'/g,"'"))}catch{}let S=[];if(C)try{S=JSON.parse(C[1].replace(/"/g,'"').replace(/'/g,"'"))}catch{}p.push({index:m.index,length:g.length,info:{id:y==null?void 0:y[1],playbookId:A==null?void 0:A[1],playbookName:b[1],playbookParams:w,buttonText:v||b[1],inputFields:S}})}m=r.exec(e)}p.sort((g,v)=>g.index-v.index);for(const g of p)g.index>f&&t.push({text:e.slice(f,g.index),buttons:[]}),t.push({text:"",buttons:[g.info]}),f=g.index+g.length;return f<e.length&&t.push({text:e.slice(f),buttons:[]}),t.length>0?t:[{text:e,buttons:[]}]}function bln(e,t){if(e[t]!=="{")return-1;let r=0,n=!1,i=!1;for(let a=t;a<e.length;a+=1){const s=e[a];if(n){i?i=!1:s==="\\"?i=!0:s==='"'&&(n=!1);continue}if(s==='"')n=!0;else if(s==="{")r+=1;else if(s==="}"&&(r-=1,r===0))return a+1}return-1}function Aln(e){const t=[],r=[],n=/```[\s\S]*?```|`[^`]+`/g;let i=n.exec(e);for(;i!==null;)r.push({start:i.index,end:i.index+i[0].length}),i=n.exec(e);const a=d=>r.some(h=>d>=h.start&&d<h.end);let s=0;const o=[],l=/\[\[([^|\[\]]+)\|([^|\[\]]+)\|([^|\[\]]+)\|/g;let u=l.exec(e);for(;u!==null;){if(a(u.index)){u=l.exec(e);continue}const d=l.lastIndex,h=bln(e,d);if(h===-1||e.slice(h,h+2)!=="]]"){u=l.exec(e);continue}const f=e.slice(u.index,h+2),p=u[1],m=u[2],g=u[3],v=e.slice(d,h);let y={};try{y=JSON.parse(v)}catch{}o.push({index:u.index,length:f.length,info:{id:m,playbookId:void 0,playbookName:p,playbookParams:y,buttonText:p,inputFields:[],playbookType:g}}),u=l.exec(e)}o.sort((d,h)=>d.index-h.index),s=0;for(const d of o)d.index>s&&t.push({text:e.slice(s,d.index),buttons:[]}),t.push({text:"",buttons:[d.info]}),s=d.index+d.length;return s<e.length&&t.push({text:e.slice(s),buttons:[]}),t.length>0?t:[{text:e,buttons:[]}]}function xln(e){if(e){if(typeof e=="object"&&"data"in e){const t=e.data;if(t&&typeof t=="object")return t}return e}}function s1t(e){return(Array.isArray(e)?e.map(r=>[void 0,r]):e&&typeof e=="object"?Object.entries(e):[]).flatMap(([r,n])=>{if(!n||typeof n!="object")return[];const i=n,a=String(i.name||r||"").trim();return a?[{...i,name:a,label:String(i.label||a),type:String(i.type||"string"),required:i.required===!0}]:[]})}function Eln(e,t){const r=new Map(t.filter(n=>n.default!==void 0&&n.default!=="").map(n=>[n.name,n.default]));return r.size===0?e:e.map(n=>n.default!==void 0&&n.default!==""||!r.has(n.name)?n:{...n,default:r.get(n.name)})}function Iln(e){if(!e)return[];const t=e.content||{},r=s1t(e.input_fields??t.input_fields),n=t.yaml_content||"";if(n)try{const i=e8.parse(n),a=s1t(i==null?void 0:i.params);if(a.length>0)return Eln(a,r)}catch{}return r}function o1t({info:e}){const{onExecutePlaybook:t,onFillPlaybookParams:r,getPlaybookDetail:n}=I.useContext(a1t),[i,a]=I.useState(!1),[s,o]=I.useState(e.playbookId||""),l=(h,f)=>f.length===0?!1:(r&&r({playbookId:h,playbookName:e.playbookName,inputFields:f.map(p=>({...p,label:p.label||p.name})),initialParams:e.playbookParams,playbookType:e.playbookType}),!0),u=h=>{const f=(h==null?void 0:h.playbookId)||s||e.playbookId;f&&t&&t({message:e.playbookName,playbook_id:f,playbook_params:e.playbookParams,playbook_type:e.playbookType})},d=async()=>{if(i)return;const h=e.id||e.playbookId;if(!h){if(l(e.playbookId||"",e.inputFields))return;u();return}if(!n){if(l(e.playbookId||"",e.inputFields))return;u();return}a(!0);try{const f=xln(await n(h)),p=String((f==null?void 0:f.playbook_id)||e.playbookId||h);p&&o(p);const m=Iln(f);m.length>0?l(p,m):u({playbookId:p})}catch{if(l(e.playbookId||"",e.inputFields))return;u()}finally{a(!1)}};return E.jsxs("button",{type:"button",className:"wandox-playbook-button","data-id":e.id,"data-playbook-id":s||e.playbookId,"data-playbook-name":e.playbookName,"data-playbook-params":JSON.stringify(e.playbookParams),"data-input-fields":JSON.stringify(e.inputFields),onClick:d,disabled:i,children:[i?E.jsx(na,{className:"wandox-playbook-button-icon"}):E.jsx(Yh,{className:"wandox-playbook-button-icon"}),E.jsx("span",{children:e.buttonText})]})}const Cln=new Set(["csv","xlsx","xls","tsv","doc","docx","pdf","txt","md","zip","json"]),Sln=/\/api\/v1\/cognitive\/artifacts\/[^/]+\/download/i;function wln(e){const t=e.trim();if(!t)return!1;if(Sln.test(t))return!0;const r=t.split(/[?#]/,1)[0],n=/\.([a-z0-9]+)$/i.exec(r);return n!==null&&Cln.has(n[1].toLowerCase())}function l1t(e){try{const r=e.split(/[?#]/,1)[0].split("/").filter(Boolean).pop()||"";return decodeURIComponent(r)||"文件"}catch{return"文件"}}function lwe(e){const t=/\.([a-z0-9]+)$/i.exec(e);return t?t[1].toLowerCase():""}const Tln={excel:"#16a34a",pdf:"#dc2626",word:"#2563eb",zip:"#d97706",text:"#6b7280"};function Rln(e){const t=lwe(e),r=["csv","xlsx","xls","tsv"].includes(t)?"excel":["doc","docx"].includes(t)?"word":["txt","md","json"].includes(t)?"text":t,n={fontSize:22,color:Tln[r]||"#6b7280"};return r==="excel"?E.jsx(G$e,{style:n}):r==="pdf"?E.jsx(IH,{style:n}):r==="word"?E.jsx(oye,{style:n}):r==="zip"?E.jsx(W$e,{style:n}):r==="text"?E.jsx(MD,{style:n}):E.jsx(Ay,{style:n})}function c1t(e){return typeof e=="string"?e:typeof e=="number"?String(e):Array.isArray(e)?e.map(c1t).join(""):""}function u1t({href:e,children:t,onClick:r}){const n=c1t(t).trim(),a=n&&!/^https?:\/\//i.test(n)?n:l1t(e),s=lwe(a)||lwe(l1t(e));return E.jsxs("a",{className:"wandox-file-card",href:e,target:"_blank",rel:"noopener noreferrer",onClick:r,children:[E.jsx("span",{className:"wandox-file-card__icon",children:Rln(a)}),E.jsxs("span",{className:"wandox-file-card__body",children:[E.jsx("span",{className:"wandox-file-card__name",title:a,children:a}),E.jsxs("span",{className:"wandox-file-card__meta",children:["点击下载",s?` · ${s.toUpperCase()}`:""]})]}),E.jsx(fk,{className:"wandox-file-card__action"})]})}const cwe=I.createContext({streaming:!1,completeMermaidCodes:new Set,completeEChartsCodes:new Set});function kln(e){return[...e.matchAll(/```echarts[^\r\n]*\r?\n([\s\S]*?)```/gi)].map(t=>t[1].trim())}function Mln({className:e,children:t,...r}){const{streaming:n,completeMermaidCodes:i,completeEChartsCodes:a}=I.useContext(cwe),s=/language-(\w+)/.exec(e||""),o=String(t).replace(/\n$/,"");if(s&&s[1]==="echarts"){const l=!n||a.has(o.trim());return E.jsx(xtn,{source:o,streaming:n,ready:l})}if(s&&s[1]==="mermaid"){const l=!n||i.has(o.trim());return E.jsx(Nx,{chart:o,streaming:n,ready:l})}return E.jsx("code",{className:e,...r,children:t})}const d1t={a({href:e,children:t,...r}){return e&&jvt(String(e))?E.jsx(u7,{src:String(e),alt:"图片预览",size:"small"}):e&&wln(String(e))?E.jsx(u1t,{href:String(e),children:t}):E.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",...r,children:t})},table({children:e,...t}){return E.jsx("div",{className:"wandox-native-table-wrapper",children:E.jsx("table",{className:"wandox-native-table",...t,children:e})})},img({src:e,alt:t}){return e?E.jsx(u7,{src:String(e),alt:t||"图片预览",size:"small"}):null},code:Mln};function P$({content:e,streaming:t=!1}){if(!e||e.trim()==="")return null;const r=e.replace(/```[\s\S]*?```/g,"").replace(/`[^`]+`/g,"");if(r.includes("[[")&&(r.includes("|standard|")||r.includes("|exploration|")||r.includes("|fast_action|")||r.includes("|patrol|"))){const a=Aln(e),s=[];let o=[];const l=()=>{o.length>0&&(s.push(E.jsx("div",{className:"wandox-playbook-button-group",children:o.map((u,d)=>E.jsx(o1t,{info:u},`btn-${d}`))},`btn-group-${s.length}`)),o=[])};for(let u=0;u<a.length;u++){const d=a[u];d.buttons.length>0?o.push(...d.buttons):d.text.trim()&&(l(),s.push(E.jsx(D$,{content:d.text,streaming:t},`text-${u}`)))}return l(),E.jsx("div",{className:"wandox-markdown-with-buttons",children:s})}if(/<button[^>]*data-playbook-id/i.test(r)){const a=yln(e),s=[];let o=[];const l=()=>{o.length>0&&(s.push(E.jsx("div",{className:"wandox-playbook-button-group",children:o.map((u,d)=>E.jsx(o1t,{info:u},`btn-${d}`))},`btn-group-${s.length}`)),o=[])};for(let u=0;u<a.length;u++){const d=a[u];d.buttons.length>0?o.push(...d.buttons):d.text.trim()&&(l(),s.push(E.jsx(D$,{content:d.text,streaming:t},`text-${u}`)))}return l(),E.jsx("div",{className:"wandox-markdown-with-buttons",children:s})}return E.jsx(D$,{content:e,streaming:t})}function D$({content:e,streaming:t=!1}){if(!e||e.trim()==="")return null;const r=new Set(pln(e)),n=new Set(kln(e)),i=n1t.some(s=>s.test(e)),a=e.includes("```mermaid");if(i&&!a){const s=e.split(`
|
|
716
716
|
`);let o=-1;for(let l=0;l<s.length;l++){const u=s[l].trim();if(owe.some(d=>d.test(u))){o=l;break}}if(o!==-1){const l=i1t(s,o),u=s.slice(0,o).join(`
|
|
717
717
|
`).trim();let d=s.slice(o,l+1).join(`
|
|
718
718
|
`).trim();const h=s.slice(l+1).join(`
|
|
@@ -750,7 +750,7 @@ $3`).replace(/(\*\*[^*\n]+:\*\*)-/g,`$1
|
|
|
750
750
|
- `).replace(/([^\n])-(\*\*[^*\n]+\*\*)/g,`$1
|
|
751
751
|
- $2`),t=t.replace(/@@WANDOX_MD_TABLE_ROW_(\d+)@@/g,(s,o)=>a.rows[Number(o)]??""),t=t.replace(/@@WANDOX_MD_LINK_(\d+)@@/g,(s,o)=>n[Number(o)]??""),t}function v1t(e){try{return JSON.stringify(e,null,2)??""}catch{return String(e)}}function V$(e){if(e==null)return"";if(typeof e=="string")return y1t(L$(e.trim()));if(typeof e!="object")return String(e);if(Array.isArray(e))return v1t(e);const t=e;if(t.status==="failed")return typeof t.message=="string"&&t.message?t.message:"执行失败";let r=dwe(t);if(r===void 0&&t.type===void 0&&(r=t),typeof r=="object"&&r!==null){let i=dwe(r);i===void 0&&Vln(r.data)&&(i=dwe(r.data)),r=i!==void 0?i:v1t(r)}typeof r!="string"&&(r=r==null?"":String(r));let n=L$(r.trim());return n=y1t(n),n=jln(n),n}function y1t(e){const t=e.trim(),r=t.match(/^```(?:markdown|md)\s*\n([\s\S]*?)\n```\s*$/);if(r)return r[1].trim();const n=t.match(/^```\s*\n([\s\S]*?)\n```\s*$/);if(n){const i=n[1].trim();if(/^(?:#|\*\*|- |\|)/.test(i))return i}return e}const b1t=new Set(["dashboard","debug","echarts","form","markdown","mermaid","step","table","text"]);function hwe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function qln(e){const t=e.trim();if(!t.startsWith("[")||!t.endsWith("]"))return null;try{const r=JSON.parse(t);return Array.isArray(r)?r:null}catch{return null}}function Qln(e){if(Array.isArray(e)||typeof e=="string")return e;if(!hwe(e))return null;const t=typeof e.type=="string"?e.type.toLowerCase():void 0;return t&&b1t.has(t)?null:e.content??e.text??e.body??e.message??e.summary}function Yln(e){const t=typeof e=="string"?qln(e):e;return!Array.isArray(t)||t.length===0||!t.every(hwe)||t.every(r=>typeof r.type=="string"&&(b1t.has(r.type.toLowerCase())||r.type.toLowerCase()==="card")&&Object.prototype.hasOwnProperty.call(r,"content"))?null:t}function Gln(e){const t=new Set,r=[];for(const n of e)for(const i of Object.keys(n))i.startsWith("_")||t.has(i)||(t.add(i),r.push({name:i,label:i}));return r.length>0?r:void 0}function Wln(e){const t=Yln(Qln(e));if(!t)return null;const r=hwe(e)?e:void 0;return{type:"table",title:typeof(r==null?void 0:r.title)=="string"?r.title:void 0,content:t,fields_map:Gln(t)}}function fwe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Uln(e){return Array.isArray(e)?e.filter(t=>fwe(t)&&typeof t.name=="string"&&t.name.trim().length>0):[]}function Zln(e){if(!fwe(e)||e.type!=="debug"||!fwe(e.content))return null;const t=Uln(e.fields_map);return t.length===0?null:{type:"card",title:typeof e.title=="string"?e.title:void 0,content:e.content,fields_map:t}}function Hln(e){var t;return!!(e&&typeof e=="object"&&Array.isArray(e.fields_map)&&(((t=e.fields_map)==null?void 0:t.length)??0)>0)}function Kln(e){return!e||typeof e!="object"||Array.isArray(e)?!1:typeof e.content=="string"||typeof e.text=="string"||typeof e.body=="string"||typeof e.message=="string"||typeof e.summary=="string"}function Jln(e){const t=e.content;return typeof t=="string"?t.trim()!=="":!(!t||typeof t!="object"||Array.isArray(t)||typeof t.content!="string"||!t.content.trim())}function Xln({payload:e,errorFallback:t,onError:r}){const n=e&&typeof e=="object"?e.type:void 0,i=e&&typeof e=="object"&&!Array.isArray(e)?e.streaming===!0:!1,a=pSe(e)?e.input_params:void 0,s=Wln(e),o=e&&typeof e=="object"?e.content??e.text??e.body??e.message??e.summary:void 0,l=o!=null&&(typeof o!="string"||o.trim()!==""),u=d=>E.jsxs(E.Fragment,{children:[E.jsx(yV,{params:a,hideRawData:n==="debug"}),d]});if(s)return u(E.jsx(g1t,{payload:s}));if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||Array.isArray(e))return E.jsx(P$,{content:V$(e)});try{switch(n){case"dashboard":return u(E.jsx(vtn,{data:e,showSaveButton:!1}));case"step":return E.jsx(Bln,{payload:e,renderChild:d=>E.jsx(IS,{payload:d,errorFallback:t,onError:r})});case"debug":{const d=Zln(e);return u(d?E.jsx(Ltt,{payload:d}):E.jsx(ytn,{payload:e}))}case"table":{const d=e;return uwe(d).length===0?u(E.jsx("div",{className:"wandox-empty-content",children:"暂无符合条件的记录"})):u(E.jsx(g1t,{payload:d}))}case"markdown":case"card":{const d=e;if(Jln(d)){const f=V$(e);return u(E.jsx(P$,{content:f,streaming:i}))}if(Hln(d)||!Kln(d.content))return u(E.jsx(Ltt,{payload:d}));const h=V$(e);return u(E.jsx(P$,{content:h,streaming:i}))}case"mermaid":return u(E.jsx(Oln,{payload:e}));case"echarts":{const d=e,h=typeof d.content=="string"?d.content:void 0;return u(E.jsx(Jvt,{option:d.option??d.content,source:h,streaming:i,ready:!i}))}default:{if(a&&!l)return E.jsx(yV,{params:a});const d=V$(e);return u(E.jsx(P$,{content:d,streaming:i}))}}}catch{return E.jsx("div",{className:"wandox-empty-content",children:"内容渲染失败"})}}function IS(e){return E.jsx(Hvt,{resetKey:e.payload,fallback:e.errorFallback,onError:e.onError,children:E.jsx(Xln,{...e})})}const{RangePicker:pwe}=cs;function mwe(e,t){const r=e.options.find(o=>o.id===t),n=(r==null?void 0:r.params)??[],i=e.params??[];if(n.length===0&&i.length===0)return[];if(n.length===0)return i;if(i.length===0)return n;const a=new Set(n.map(o=>o.name)),s=[...n];for(const o of i)a.has(o.name)||s.push(o);return s}function A1t(e){const t={};for(const r of e)r.default!==void 0&&r.default!==null&&(t[r.name]=r.default);return t}function F$(e){if(!e)return null;if(Xr.isDayjs(e))return e.isValid()?e:null;if(typeof e!="string"&&typeof e!="number"&&!(e instanceof Date))return null;const t=Xr(e);return t.isValid()?t:null}function gwe(e){const t=e&&typeof e=="object"&&"start"in e&&"end"in e?[e.start,e.end]:Array.isArray(e)?e:null;if(!t||t.length!==2)return null;const r=F$(t[0]),n=F$(t[1]);return r&&n?[r,n]:null}function y7(e){return e.format?e.format:["datetime","datetimeRange","datetime_range"].includes(e.type)?"YYYY-MM-DD HH:mm:ss":["time","timeRange","time_range"].includes(e.type)?"HH:mm:ss":"YYYY-MM-DD"}function x1t(e){return e==="YYYY"?"year":e==="YYYY-MM"?"month":"date"}function _ln(e,t){return e.picker||x1t(t)}function vwe(e){return e.includes("ss")?"HH:mm:ss":"HH:mm"}function ywe(e){if(Xr.isDayjs(e))return e.isValid()?e:null;if(typeof e!="string"||!e)return null;const t=Xr(`2000-01-01 ${e}`);return t.isValid()?t:null}function E1t(e){if(!Array.isArray(e)||e.length!==2)return null;const t=ywe(e[0]),r=ywe(e[1]);return t&&r?[t,r]:null}function $ln({param:e,value:t,onChange:r,disabled:n}){const i=e.options&&e.options.length>0;switch(e.type){case"select":return i?E.jsx(Qn,{value:t,onChange:r,placeholder:e.description||"请选择",disabled:n,style:{width:"100%"},allowClear:!0,options:e.options.map(a=>({label:a,value:a}))}):E.jsx(Or,{value:t||"",onChange:a=>r(a.target.value),placeholder:e.description||"请输入",disabled:n});case"multi_select":return i?E.jsx(Qn,{mode:"multiple",value:t||[],onChange:r,placeholder:e.description||"请选择",disabled:n,style:{width:"100%"},allowClear:!0,options:e.options.map(a=>({label:a,value:a}))}):E.jsx(Or,{value:Array.isArray(t)?t.join(", "):t||"",onChange:a=>{const s=a.target.value;r(s?s.split(",").map(o=>o.trim()).filter(Boolean):[])},placeholder:e.description||"请输入(逗号分隔)",disabled:n});case"array":return i?E.jsx(Qn,{mode:"multiple",value:t||[],onChange:r,placeholder:e.description||"请选择",disabled:n,style:{width:"100%"},allowClear:!0,options:e.options.map(a=>({label:a,value:a}))}):E.jsx(Qn,{mode:"tags",value:t||[],onChange:r,placeholder:e.description||"请输入(回车添加)",disabled:n,style:{width:"100%"},tokenSeparators:[","]});case"string":case"text":return E.jsx(Or,{value:t||"",onChange:a=>r(a.target.value),placeholder:e.description||"请输入",disabled:n});case"date":{const a=y7(e),s={picker:_ln(e,a),format:a,showTime:e.show_time?{format:vwe(a)}:!1,disabled:n,style:{width:"100%"}};return e.range?E.jsx(pwe,{...s,value:gwe(t),onChange:(o,l)=>r(l)}):E.jsx(cs,{...s,value:F$(t),onChange:(o,l)=>r(l),placeholder:e.description||"请选择"})}case"dateRange":case"date_range":{const a=y7(e);return E.jsx(pwe,{value:gwe(t),picker:x1t(a),format:a,onChange:(s,o)=>{o&&o[0]&&o[1]?r({start:o[0],end:o[1]}):r(void 0)},disabled:n,style:{width:"100%"}})}case"datetime":{const a=y7(e);return E.jsx(cs,{value:F$(t),showTime:{format:vwe(a)},format:a,onChange:(s,o)=>r(o),placeholder:e.description||"请选择",disabled:n,style:{width:"100%"}})}case"datetimeRange":case"datetime_range":{const a=y7(e);return E.jsx(pwe,{value:gwe(t),showTime:{format:vwe(a)},format:a,onChange:(s,o)=>{o!=null&&o[0]&&o[1]?r({start:o[0],end:o[1]}):r(void 0)},disabled:n,style:{width:"100%"}})}case"time":{const a=y7(e);return e.range?E.jsx(bc.RangePicker,{value:E1t(t),format:a,onChange:(s,o)=>r(o),disabled:n,style:{width:"100%"}}):E.jsx(bc,{value:ywe(t),format:a,onChange:(s,o)=>r(o),placeholder:e.description||"请选择",disabled:n,style:{width:"100%"}})}case"timeRange":case"time_range":{const a=y7(e);return E.jsx(bc.RangePicker,{value:E1t(t),format:a,onChange:(s,o)=>r(o),disabled:n,style:{width:"100%"}})}default:return E.jsx(Or,{value:t||"",onChange:a=>r(a.target.value),placeholder:e.description||"请输入",disabled:n})}}function I1t({proposal:e,disabled:t=!1,proposalStatus:r,initialFilledParams:n,onConfirm:i,onReject:a}){const s=e.options.length===1,[o,l]=I.useState(()=>{if(s)return e.options[0].id;const w=e.options.find(S=>S.selected);return(w==null?void 0:w.id)||null}),[u,d]=I.useState(()=>{const w={};for(const S of e.options){const T=mwe(e,S.id),R=A1t(T);(S.selected||s)&&n?w[S.id]={...R,...n}:w[S.id]=R}return w});I.useEffect(()=>{s&&!o&&l(e.options[0].id)},[s,o,e.options]);const h=t||!!r,f=I.useMemo(()=>mwe(e,o),[e,o]),p=o?u[o]||{}:{},m=I.useMemo(()=>{if(!o)return!1;for(const w of f)if(w.required){const S=p[w.name];if(S==null||S===""||typeof S=="string"&&S.trim()===""||Array.isArray(S)&&S.length===0)return!1}return!0},[o,f,p]),g=I.useCallback(w=>{h||(l(w),d(S=>{if(S[w])return S;const T=mwe(e,w);return{...S,[w]:A1t(T)}}))},[h,e]),v=I.useCallback((w,S)=>{o&&d(T=>({...T,[o]:{...T[o]||{},[w]:S}}))},[o]),y=I.useCallback(()=>{!m||h||!o||i(o,p)},[m,h,o,p,i]),A=I.useCallback(()=>{h||a()},[h,a]),b=r==="confirmed"?"✅ 已确认":r==="rejected"?"❌ 已拒绝":null,x=f.length>0,C=!!(r||o&&(x||!r));return E.jsxs("div",{className:`wandox-proposal ${h?"wandox-proposal--disabled":""}`,children:[e.message&&E.jsx("div",{className:"wandox-proposal-hint",children:e.message}),E.jsx("div",{className:"wandox-proposal-options",children:e.options.map(w=>{const S=o===w.id;return E.jsxs("div",{className:`wandox-proposal-option ${S?"wandox-proposal-option--active":""} ${h?"wandox-proposal-option--disabled":""}`,onClick:()=>g(w.id),onKeyDown:T=>{(T.key==="Enter"||T.key===" ")&&g(w.id)},role:"radio","aria-checked":S,tabIndex:h?-1:0,children:[E.jsx("span",{className:"wandox-proposal-option-check"}),E.jsxs("div",{className:"wandox-proposal-option-body",children:[E.jsx("span",{className:"wandox-proposal-option-title",children:w.title}),w.description&&E.jsx("span",{className:"wandox-proposal-option-desc",children:w.description})]})]},w.id)})}),C&&E.jsxs("div",{className:"wandox-proposal-panel",children:[x&&E.jsx("div",{className:"wandox-proposal-params",children:f.map(w=>E.jsxs("div",{className:"wandox-proposal-param",children:[E.jsxs("label",{className:"wandox-proposal-param-label",children:[w.display_name,w.required&&E.jsx("span",{className:"wandox-proposal-param-required",children:"*"})]}),E.jsx("div",{className:"wandox-proposal-param-input",children:E.jsx($ln,{param:w,value:p[w.name],onChange:S=>v(w.name,S),disabled:h})})]},w.name))}),E.jsxs("div",{className:"wandox-proposal-footer",children:[b&&E.jsx("span",{className:"wandox-proposal-status",children:b}),!r&&E.jsxs(E.Fragment,{children:[E.jsx("button",{type:"button",className:"wandox-proposal-btn wandox-proposal-btn--confirm",disabled:!m||h,onClick:y,children:e.actions.confirm.label}),e.actions.reject&&E.jsx("button",{type:"button",className:"wandox-proposal-btn wandox-proposal-btn--reject",disabled:h,onClick:A,children:e.actions.reject.label})]})]})]})]})}const ecn={qty_expected:["plan_qty","qty_expected"]},C1t={warehouse_code:"仓库编码",warehouse_desc:"仓库名称",qty_expected:"建议数量",default_supplier_code:"供应商编码"};function S1t(e){return e.includes(">>")&&e.split(">>").pop()||e}function tcn(e,t){var n;if(t.includes(e))return e;const r=S1t(e);return t.includes(r)?r:(n=ecn[r])==null?void 0:n.find(i=>t.includes(i))}function rcn(e){const t=S1t(e.name);return C1t[t]?C1t[t]:e.label&&e.label!==e.name&&!e.label.includes(">>")?e.label:t}function bwe(e){return e!=null&&e!==""}function Awe(e,t,r){const n=e.action_id;if(bwe(n)){const a=r.find(s=>String(s.action_id)===String(n));if(a)return a}return r.find(a=>{if(!a.params)return!1;const s=[[e.query_text,a.params.query_text],[e.campaign_name,a.params.campaign_name]].filter(([o,l])=>bwe(o)&&bwe(l));return s.length>0&&s.every(([o,l])=>o===l)})??r[t]}function w1t(e){return/event:\s*error|"event_type"\s*:\s*"error"|"success"\s*:\s*false/.test(e)}function T1t(e,t={}){const r=(e==null?void 0:e.accessToken)??t.ssoToken,n=(e==null?void 0:e.domain)??t.ssoDomain,i=(e==null?void 0:e.tenantId)??t.ssoCompany;return{...e,accessToken:r,domain:n,tenantId:i,ssoToken:r,ssoDomain:n,ssoCompany:i}}function R1t(e,t={}){const r={};for(const[s,o]of Object.entries(t))r[s.toLowerCase()]=o;for(const[s,o]of Object.entries((e==null?void 0:e.headers)??{}))r[s.toLowerCase()]=o;const n=(e==null?void 0:e.accessToken)??(e==null?void 0:e.ssoToken),i=(e==null?void 0:e.domain)??(e==null?void 0:e.ssoDomain),a=(e==null?void 0:e.tenantId)??(e==null?void 0:e.ssoCompany);return n&&!r.authorization&&(r.authorization=`Bearer ${n}`),i&&!r["x-domain"]&&(r["x-domain"]=i),a&&!r["x-tenant-id"]&&(r["x-tenant-id"]=a),r}function ncn(e){const t=e.filter(r=>r!=null&&r!=="").slice(0,5);return t.length===0?!1:t.every(r=>{if(typeof r=="number")return!0;if(typeof r=="string"){const n=r.replace("%","").trim();return n!==""&&!Number.isNaN(Number(n))}return!1})}function k1t(e){return typeof e=="number"?e:typeof e=="string"&&Number.parseFloat(e.replace("%",""))||0}function icn(e,t){if(e.some(n=>Sx(n,t)))return!1;const r=e.filter(n=>n!=null).slice(0,5);return r.length===0?!1:r.some(n=>!!(Array.isArray(n)||typeof n=="object"&&n!==null||typeof n=="string"&&n.length>50))}function acn(e,t){if(e==null)return"-";if(Sx(e,t))return g$(e,t);if(Array.isArray(e)){if(e.every(r=>typeof r=="string")){const r=new Map;return E.jsx("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.6},children:e.map(n=>{const i=r.get(n)??0;return r.set(n,i+1),E.jsxs("div",{children:["• ",n]},`${n}-${i}`)})})}return E.jsx("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e,null,2)})}if(typeof e=="object"){const r=Object.entries(e);return E.jsx("div",{style:{lineHeight:1.6},children:r.map(([n,i])=>E.jsxs("div",{style:{marginBottom:4},children:[E.jsxs("span",{style:{color:"#666",fontWeight:500},children:[n,":"]}),E.jsx("span",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"},children:i===null?"-":String(i)})]},n))})}return E.jsx("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.6},children:String(e)})}function scn(e){return e.editable!==!1}function xwe(e){return!!e&&(!(e!=null&&e.status)||e.status==="pending")}function M1t(e,t){return`${e.replace(/\/$/,"")}${t}`}function ocn({value:e,fieldMeta:t,onChange:r,disabled:n}){const{type:i,input_type:a,options:s}=t;return a==="select"&&s&&s.length>0?E.jsx(Qn,{value:e,onChange:r,options:s,disabled:n,size:"small",style:{width:"100%",minWidth:100}}):i==="number"||i==="integer"||i==="float"?E.jsx(qd,{value:e,onChange:o=>r(o),disabled:n,size:"small",style:{width:"100%",minWidth:80}}):E.jsx(Or,{value:String(e??""),onChange:o=>r(o.target.value),disabled:n,size:"small",style:{width:"100%",minWidth:100}})}function N1t({payload:e,actions:t,auth:r,ssoToken:n,ssoDomain:i,ssoCompany:a,apiBaseUrl:s,actionExecuteUrl:o,batchActionExecuteUrl:l,onExecuteAction:u,onExecuteBatchActions:d}){var Y;const h=uwe(e),f=f1t(e),[p,m]=I.useState(new Set),[g,v]=I.useState(new Set),[y,A]=I.useState(new Set),[b,x]=I.useState([]),[C,w]=I.useState(!1),[S,T]=I.useState({done:0,total:0}),[R,M]=I.useState({}),k=I.useMemo(()=>T1t(r,{ssoToken:n,ssoDomain:i,ssoCompany:a}),[r,n,i,a]),z=I.useMemo(()=>{const W=new Map;for(const Z of t)if(Z.params_fields_map)for(const H of Z.params_fields_map)scn(H)&&!W.has(H.name)&&W.set(H.name,H);return W},[t]),O=I.useMemo(()=>h.map((W,Z)=>{const H=Awe(W,Z,t),K=(H==null?void 0:H.action_id)||`row-${Z}`;return{...W,_rowKey:K,_action:H}}),[h,t]),N=I.useCallback((W,Z,H,K)=>{var $,_,re,te;if((($=R[W])==null?void 0:$[Z])!==void 0)return R[W][Z];const J=(_=H==null?void 0:H.params)==null?void 0:_[Z];return J!==void 0?J:((te=(re=H==null?void 0:H.params_fields_map)==null?void 0:re.find(le=>le.name===Z))==null?void 0:te.display_value)??K},[R]),B=I.useCallback((W,Z,H)=>{M(K=>({...K,[W]:{...K[W],[Z]:H}}))},[]),P=I.useCallback(W=>{const Z={...W.params||{}},H=W.action_id||"",K=R[H];return K&&Object.assign(Z,K),Z},[R]),D=I.useCallback(async W=>{const Z=W.action_id;if(Z){m(H=>new Set(H).add(Z)),A(H=>{const K=new Set(H);return K.delete(Z),K});try{const H=P(W);if(u)await u({action:W,actionId:Z,params:H,auth:k});else{const K=o??(s!==void 0||k.accessToken||k.tenantId||k.domain?M1t(s??"","/api/v1/agents/actions/execute"):"");if(!K)throw new Error("缺少动作执行接口地址");const J=await fetch(K,{method:"POST",headers:R1t(k,{"content-type":"application/json"}),body:JSON.stringify({action_id:Z,action_params:H,stream:!0})});if(!J.ok)throw new Error(`HTTP ${J.status}`);const X=await J.text();if(w1t(X))throw new Error("执行失败")}v(K=>new Set(K).add(Z))}catch{A(H=>new Set(H).add(Z))}finally{m(H=>{const K=new Set(H);return K.delete(Z),K})}}},[P,o,s,u,k]),L=I.useCallback(async()=>{const W=O.filter(J=>{var X;return b.includes(J._rowKey)&&((X=J._action)==null?void 0:X.action_id)&&xwe(J._action)&&!g.has(J._action.action_id)});if(W.length===0)return;w(!0),T({done:0,total:W.length});const Z=W.map(J=>J._action).filter(J=>!!(J!=null&&J.action_id));if(!!(d||l||s!==void 0)&&Z.every(J=>J.supports_batch===!0)){const J=new Set(Z.map(_=>_.playbook_id).filter(Boolean)),X=Math.min(...Z.map(_=>_.batch_max_items??Number.MAX_SAFE_INTEGER));if(J.size!==1){wt.warning("批量执行只能选择同一场景的动作"),w(!1);return}if(Z.length>X){wt.warning(`本次最多批量执行 ${X} 条`),w(!1);return}const $=Z.map(_=>_.action_id);m(_=>new Set([..._,...$]));try{const _=crypto.randomUUID(),re=Z.map(te=>({action:te,actionId:te.action_id,params:P(te)}));if(d)await d({items:re,submitToken:_,auth:k});else{const te=l??(s!==void 0||k.accessToken||k.tenantId||k.domain?M1t(s??"","/api/v1/agents/actions/batch-execute"):"");if(!te)throw new Error("缺少批量动作执行接口地址");const le=await fetch(te,{method:"POST",headers:R1t(k,{"content-type":"application/json"}),body:JSON.stringify({items:re.map(oe=>({action_id:oe.actionId,params:oe.params})),submit_token:_,stream:!0})});if(!le.ok)throw new Error(`HTTP ${le.status}`);const se=await le.text();if(w1t(se))throw new Error("批量执行失败")}v(te=>new Set([...te,...$])),T({done:Z.length,total:Z.length})}catch(_){A(re=>new Set([...re,...$])),wt.error(_ instanceof Error?_.message:"批量执行失败")}finally{m(_=>{const re=new Set(_);for(const te of $)re.delete(te);return re})}}else for(let J=0;J<Z.length;J++)await D(Z[J]),T({done:J+1,total:Z.length});w(!1),x([])},[O,b,g,D,P,l,s,d,k]),{cols:V,detailFields:F}=I.useMemo(()=>{if(h.length===0)return{cols:[],detailFields:[]};const W=Object.keys(h[0]||{}),Z=["range","model","provider","deepseek-v3.2"],K=!!(f!=null&&f.length)?(f??[]).filter(oe=>W.includes(oe.name)).map(oe=>({name:oe.name,label:oe.label||oe.name})):W.filter(oe=>!Z.includes(oe)).map(oe=>({name:oe,label:oe})),J=new Set;for(const[oe]of z){const ie=tcn(oe,W);if(!ie)continue;const ue=K.find(ve=>ve.name===ie);!ue||ue.paramName||(ue.paramName=oe,J.add(oe))}const X=Array.from(z.entries()).filter(([oe])=>!J.has(oe)).map(([oe,ie])=>({name:oe,label:rcn(ie),paramName:oe})),$=[...K,...X],_=[],re=[];for(const oe of $){const ie=h.map((ue,ve)=>{var ke,Se,Le;if(!oe.paramName)return ue[oe.name];const fe=Awe(ue,ve,t);return((ke=fe==null?void 0:fe.params)==null?void 0:ke[oe.paramName])??((Le=(Se=fe==null?void 0:fe.params_fields_map)==null?void 0:Se.find(Ge=>Ge.name===oe.paramName))==null?void 0:Le.display_value)??ue[oe.name]});icn(ie,oe.label)?re.push(oe):_.push(oe)}const te=(oe,ie,ue)=>{const ve=h.map((be,Ie)=>{var me,ae,he;if(!ue)return be[oe];const ne=Awe(be,Ie,t);return((me=ne==null?void 0:ne.params)==null?void 0:me[ue])??((he=(ae=ne==null?void 0:ne.params_fields_map)==null?void 0:ae.find(ee=>ee.name===ue))==null?void 0:he.display_value)??be[oe]}),fe=ncn(ve),ke=ve.some(be=>Sx(be,ie)),Se=z.get(ue||oe),Le=be=>{var Ie,ne,me,ae,he;return ue?((ne=(Ie=be._action)==null?void 0:Ie.params)==null?void 0:ne[ue])??((he=(ae=(me=be._action)==null?void 0:me.params_fields_map)==null?void 0:ae.find(ee=>ee.name===ue))==null?void 0:he.display_value)??be[oe]:be[oe]},Ge=be=>{let Ie=0;for(const ne of be)/[\u4e00-\u9fff\u3000-\u303f\uff00-\uffef]/.test(ne)?Ie+=14:Ie+=8;return Ie},Be=Ge(ie)+32,Te=ve.slice(0,20).reduce((be,Ie)=>{if(Ie==null)return be;const ne=String(Ie);return Math.max(be,Ge(ne))},0)+16,xe=ke?Math.max(88,Math.min(120,Be)):Math.min(300,Math.max(80,Be,Te));return{title:ie,dataIndex:oe,key:ue||oe,ellipsis:ke?!1:{showTitle:!0},width:xe,sorter:fe?(be,Ie)=>k1t(Le(be))-k1t(Le(Ie)):(be,Ie)=>String(Le(be)??"").localeCompare(String(Le(Ie))??""),render:(be,Ie)=>{const ne=Ie._action,me=(ne==null?void 0:ne.action_id)||"",ae=(ne==null?void 0:ne.status)==="executed"||g.has(me),he=ue||oe,ee=N(me,he,ne,Le(Ie));return Se&&ne&&!ae?E.jsx(ocn,{value:ee,fieldMeta:Se,disabled:ne.status==="executing"||p.has(me),onChange:ce=>B(me,he,ce)}):g$(ee,ie)}}},le=_.map(oe=>te(oe.name,oe.label,oe.paramName));le.sort((oe,ie)=>{const ue=z.has(String(oe.key??""))?0:1,ve=z.has(String(ie.key??""))?0:1;return ue-ve});const se={title:"操作",key:"_operation",width:100,fixed:"right",render:(oe,ie)=>{const ue=ie._action;if(!ue)return E.jsx("span",{style:{color:"#999"},children:"—"});const ve=ue.action_id||"",fe=ue.status==="executing"||p.has(ve),ke=ue.status==="executed"||g.has(ve),Se=ue.status==="failed"||y.has(ve);return fe?E.jsx(Qs,{icon:E.jsx(na,{spin:!0}),color:"processing",children:"执行中"}):ke?E.jsx(Qs,{icon:E.jsx(xy,{}),color:"success",children:"已执行"}):Se?E.jsx(_t,{type:"link",size:"small",danger:!0,icon:E.jsx(IA,{}),onClick:()=>{Oi.confirm({title:"确认重试",content:`确定要重新执行「${ue.display_name||"该操作"}」吗?`,okText:"确认",cancelText:"取消",onOk:()=>D(ue)})},children:"重试"}):E.jsx(_t,{type:"link",size:"small",onClick:()=>{Oi.confirm({title:"确认执行",content:`确定要执行「${ue.display_name||"该操作"}」吗?`,okText:"确认",cancelText:"取消",onOk:()=>D(ue)})},children:ue.display_name||"执行"})}};return{cols:[...le,se],detailFields:re}},[h,t,f,z,p,g,y,D,N,B]),j=(Y=O.find(W=>{var Z;return b.includes(W._rowKey)&&((Z=W._action)==null?void 0:Z.supports_batch)}))==null?void 0:Y._action,G={selectedRowKeys:b,onChange:W=>x(W),getCheckboxProps:W=>{var H,K;const Z=(H=W._action)==null?void 0:H.action_id;return{disabled:!Z||!xwe(W._action)||g.has(Z??"")||!!(j&&(((K=W._action)==null?void 0:K.supports_batch)!==!0||W._action.playbook_id!==j.playbook_id))}}};if(O.length===0)return E.jsx("div",{className:"wandox-empty-content",children:"暂无数据"});const Q=O.filter(W=>{var Z;return b.includes(W._rowKey)&&((Z=W._action)==null?void 0:Z.action_id)&&xwe(W._action)&&!g.has(W._action.action_id)}).length;return E.jsxs("div",{className:"wandox-table-container wandox-action-table-container",children:[E.jsx("div",{className:"wandox-table-container__toolbar",children:E.jsxs(Qd,{children:[E.jsx(_t,{type:"primary",size:"small",disabled:C||Q===0,loading:C,onClick:()=>{Oi.confirm({title:"确认批量执行",content:`确定要批量执行选中的 ${Q} 条操作吗?`,okText:"确认",cancelText:"取消",onOk:L})},children:C?`执行中 (${S.done}/${S.total})`:`批量执行${Q>0?` (${Q})`:""}`}),g.size>0&&E.jsxs("span",{className:"wandox-action-table-stats",children:["已完成 ",g.size,"/",t.length]})]})}),E.jsx(qh,{columns:V,dataSource:O,rowKey:"_rowKey",rowSelection:G,size:"small",scroll:{x:"max-content"},tableLayout:void 0,showSorterTooltip:!1,expandable:F.length>0?{expandedRowRender:W=>E.jsx(Em,{column:1,size:"small",bordered:!0,styles:{label:{width:160,minWidth:160,maxWidth:160}},style:{background:"#fff",zoom:.8,tableLayout:"fixed"},children:F.map(({name:Z,label:H})=>E.jsx(Em.Item,{label:H,children:acn(W[Z],H)},Z))}),rowExpandable:()=>!0,expandIcon:({expanded:W,onExpand:Z,record:H})=>E.jsx("button",{type:"button",className:`wandox-table-expand-icon${W?" is-expanded":""}`,"aria-label":W?"收起行":"展开行",onClick:K=>Z(H,K),children:W?E.jsx(dH,{}):E.jsx(Z0e,{})})}:void 0,pagination:O.length>10?{defaultPageSize:10,showSizeChanger:!0,showTotal:W=>`共 ${W} 条`,pageSizeOptions:[10,20,50,100],size:"small"}:!1,rowClassName:W=>{var Z;return(Z=W._action)!=null&&Z.action_id&&g.has(W._action.action_id)?"wandox-action-row-done":""}})]})}function Tl(e){const{className:t,style:r,...n}=e;return E.jsx("div",{className:`wandox-payload-renderer${t?` ${t}`:""}`,style:r,children:E.jsx(IS,{...n})})}async function kV(e,t){var Q;const{onProgress:r,onContent:n,onOutput:i,onComplete:a,onError:s,onMessageId:o,onRecommend:l,onQueue:u,onProposal:d,onProcessEvent:h}=t,f=(Q=e.body)==null?void 0:Q.getReader(),p=new TextDecoder;let m="",g="",v="",y,A=!1,b=!1,x,C;const w=new Map,S=new Map;let T=0;const R=Y=>Y!=null&&String(Y).trim()!=="",M=Y=>Object.fromEntries(["step_index","step_name","step_id","total_steps","task_id","status","type","title","content","fields_map","output_type","output_data","output_fields_map","data","result","input_params","is_final","streaming","message","content_truncated","data_count","output"].filter(Z=>Y[Z]!==void 0).map(Z=>[Z,Y[Z]])),k=(Y,W,Z)=>{const H=Number(Z.sequence),K=Number.isFinite(H)&&H>=0?H:T+1;T=Math.max(T,K),h==null||h({...typeof Z.event_id=="string"&&Z.event_id?{event_id:Z.event_id}:{},type:Y,sequence:K,...typeof Z.timestamp=="string"&&Z.timestamp?{timestamp:Z.timestamp}:{},...Z.execution_id!==void 0||Z.executionId!==void 0?{execution_id:String(Z.execution_id??Z.executionId)}:{},...typeof Z.execution_type=="string"&&Z.execution_type?{execution_type:Z.execution_type}:{},...typeof Z.source=="string"&&Z.source?{source:Z.source}:{},data:W})},z=Y=>{const W=[];return Y.output&&(Array.isArray(Y.output)?W.push(...Y.output):W.push(Y.output)),Y.content&&typeof Y.content=="object"&&W.push(Y.content),{type:"step",title:Y.step_name,step_index:Y.step_index,step_name:Y.step_name,total_steps:Y.total_steps,task_id:Y.task_id,status:Y.status,children:W.length>0?W:void 0,input_params:Y.input_params,message:Y.message,content_truncated:Y.content_truncated}},O=Y=>({type:Y.type,title:Y.title,content:Y.content,fields_map:Y.fields_map,step_index:Y.step_index,step_name:Y.step_name,task_id:Y.task_id,execution_id:Y.execution_id??Y.executionId,status:Y.status,input_params:Y.input_params,is_final:Y.is_final,streaming:Y.streaming,message:Y.message,content_truncated:Y.content_truncated}),N=Y=>{const W=R(Y.task_id)?String(Y.task_id):Y.step_index!==void 0?String(Y.step_index):R(Y.execution_id)?String(Y.execution_id):"__default__";let Z="";if(typeof Y.text=="string")Z=Y.text;else if(typeof Y.content=="string")Z=Y.content;else if(typeof Y.delta=="string")Z=`${w.get(W)||""}${Y.delta}`;else return!1;w.set(W,Z);const H=R(Y.task_id)?S.get(String(Y.task_id)):void 0,K=!!(H||R(Y.task_id)||Y.step_index!==void 0||R(Y.step_name)),J=Y.is_step_content===!0||Y.is_step_content!==!1&&K;J||(v=Z);const X=Y.step_index??(H==null?void 0:H.step_index),$=Y.step_name??(H==null?void 0:H.step_name);if(J){const _=R(Y.task_id)?String(Y.task_id):X!==void 0?`step-${X}`:$||W,re=`content:${Y.execution_id??x??""}:${_}`;k("output",M({type:"markdown",title:$,content:Z,task_id:Y.task_id,step_index:X,step_name:$,streaming:!0}),{...Y,event_id:re})}return n==null||n(Z,{content:Z,text:typeof Y.text=="string"?Y.text:void 0,delta:typeof Y.delta=="string"?Y.delta:void 0,is_step_content:J,job_id:Y.job_id,task_id:Y.task_id,session_id:Y.session_id,timestamp:Y.timestamp,execution_id:Y.execution_id,step_index:X,step_name:$}),!0},B=new Set(["queue","thinking","step","content","output","recommend","proposal","complete","timeout","error","stopped"]),P=new Set(["execution_init","execution_started","resume_init","re_executing","step_running","step_awaiting_async","step_pending_async","step_completed","step_failed","substep_running","substep_completed","waiting_input","gateway_auth_required","return_previous","execution_completed","execution_failed"]),D=new Set(["execution_completed","execution_failed"]),L=new Set(["waiting_input","gateway_auth_required"]),V=(Y,W=g)=>{const Z=[Y.event_type,Y.event].find(re=>typeof re=="string"&&re.trim()),H=typeof Y.type=="string"&&B.has(Y.type.toLowerCase())?Y.type:"",K=String(W||Z||H||"output").toLowerCase(),J=Object.prototype.hasOwnProperty.call(Y,"outputs"),$=!W&&!Z&&!H&&(Y.success===!0&&(J||Y.summary!==void 0)||Y.summary!==void 0&&J)?"complete":K;return $==="content"||$==="output"&&typeof Y.text=="string"&&(Y.delta!==void 0||Y.task_id!==void 0)?"content":$},F=Y=>{var H,K;A=!0,Y.summary&&(v=Y.summary),Array.isArray(Y.outputs)?y=Y.outputs.length>0?Y.outputs:Y.final_output??Y.output??Y.result:typeof Y.outputs=="object"&&Y.outputs!==null?y=Y.outputs:y=Y.final_output??Y.output??Y.result;const W=Array.isArray(y)&&y.length===1?y[0]:y;if((W==null?void 0:W.type)==="card"&&((H=W==null?void 0:W.content)!=null&&H.content))try{const J=W.content.content;if(typeof J=="string"){const X=JSON.parse(J);X.message_type==="chitchat"&&X.quick_reply&&(v=X.quick_reply,y=null)}}catch{}const Z=Array.isArray(Y.outputs)?Y.actions||[]:((K=Y.outputs)==null?void 0:K.actions)||Y.actions||[];a==null||a(v,y,Z,Y.message_id,Y.execution_id??Y.executionId??x,typeof Y.conversation_id=="string"?Y.conversation_id:C)},j=(Y,W=g)=>{var K,J,X,$,_,re;x=Y.execution_id??Y.executionId??x,typeof Y.conversation_id=="string"&&Y.conversation_id&&(C=Y.conversation_id);const Z=Y.anchor_message_id||Y.message_id;Z&&(o==null||o(Z));const H=V(Y,W);if(P.has(H)){if(b=!0,R(Y.task_id)&&S.set(String(Y.task_id),{step_index:Y.step_index,step_name:Y.step_name??Y.playbook_name}),Array.isArray(Y.steps))for(const te of Y.steps){const le=te&&typeof te=="object"?te.task_id??te.step_id:void 0;R(le)&&S.set(String(le),{step_index:te.step_index,step_name:te.step_name??te.playbook_name})}if(k(H,Y,Y),(D.has(H)||L.has(H))&&(A=!0),H==="execution_failed"){const te=Y.error_message||Y.error||Y.message||"执行失败";return s==null||s(te),"stop"}return H==="execution_completed"?(a==null||a(Y.summary||"",Y.outputs??Y.final_output??Y.output??Y.result,Y.actions||[],Y.message_id,Y.execution_id??Y.executionId??x,typeof Y.conversation_id=="string"?Y.conversation_id:C),"stop"):"continue"}switch(H){case"queue":{b=!0,u==null||u({status:Y.status,position:Y.position,estimated_wait:Y.estimated_wait,progress:Y.progress,message:Y.message,request_id:Y.request_id});break}case"thinking":{b=!0;const te=Y.message||"思考中...";k("thinking",M({...Y,message:te}),Y),r==null||r(te);break}case"step":{b=!0;const te=Y.message||`${Y.step_name||""} ${Y.status==="done"?"✓":"..."}`;r==null||r(te),Y.task_id&&S.set(String(Y.task_id),{step_index:Y.step_index,step_name:Y.step_name});const le=z(Y);k("step",M(Y),Y),Y.step_name&&(i==null||i(le));break}case"content":{N(Y);break}case"output":{b=!0;const te=O(Y),le=Y.status==="done"||Y.is_final===!0?{...Y,streaming:!1}:Y;if(k("output",M(le),Y),i==null||i(te),Y.status==="failed"){const se=Y.message||`${Y.step_name||"任务"} 执行失败`;return A=!0,v="",s==null||s(se),"stop"}break}case"recommend":{b=!0,k("recommend",{message:Y.message,count:Array.isArray(Y.recommended_playbooks)?Y.recommended_playbooks.length:0},Y),l==null||l(Y.recommended_playbooks||[]);break}case"proposal":{A=!0,d==null||d(Y);break}case"complete":{F(Y);break}case"timeout":{const te=Y.message||`执行超时(${Y.timeout_seconds||300}秒)`;return A=!0,v="",k("error",{message:te,status:"failed"},Y),s==null||s(te),"stop"}case"error":{const te=Y.cancelled===!0||((K=Y.data)==null?void 0:K.cancelled)===!0,le=Y.message||((J=Y.data)==null?void 0:J.message)||(te?"任务已停止":"执行失败"),se=Y.code?` [${Y.code}]`:"",oe=`${le}${se}`;return A=!0,v="",k(te?"stopped":"error",{message:oe,status:Y.status||((X=Y.data)==null?void 0:X.status)},Y),s==null||s(oe,{cancelled:te,status:Y.status||(($=Y.data)==null?void 0:$.status)}),"stop"}case"stopped":{const te=Y.message||((_=Y.data)==null?void 0:_.message)||"任务已停止",le=Y.status||((re=Y.data)==null?void 0:re.status)||"stopped";return A=!0,v="",k("stopped",{message:te,status:le},Y),s==null||s(te,{cancelled:!0,status:le}),"stop"}default:N(Y),Y.message&&(r==null||r(Y.message)),Y.summary!==void 0&&F(Y)}return"continue"},G=Y=>{const W=Y.trim();if(!W)return g="","continue";if(W.startsWith(":"))return"continue";if(W.startsWith("event:"))return g=W.slice(6).trim(),"continue";const H=W.startsWith("data:")?W.slice(5).trim():W;if(!H)return"continue";try{const K=JSON.parse(H);return!K||typeof K!="object"||Array.isArray(K)?"continue":j(K,g)}catch{return"continue"}};if(!f)throw new Error("Response body is not readable");try{for(;;){const{done:Y,value:W}=await f.read();if(Y){m+=p.decode();for(const K of m.split(`
|
|
752
752
|
`))if(G(K)==="stop")return;m="";break}const Z=p.decode(W,{stream:!0});m+=Z;const H=m.split(`
|
|
753
|
-
`);m=H.pop()||"";for(const K of H)if(G(K)==="stop"){f.cancel();return}}!A&&b?s==null||s("流式响应异常结束"):!A&&v&&a?a(v,y,[],void 0,x,C):!A&&!v&&(s==null||s("流式响应异常结束"))}catch(Y){if((Y==null?void 0:Y.name)==="AbortError")return;s==null||s(Y.message||"流处理出错")}finally{try{f.releaseLock()}catch{}}}function z1t(e){const{ssoToken:t,ssoDomain:r,ssoCompany:n,onProgress:i,onContent:a,onOutput:s,onComplete:o,onError:l}=e,[u,d]=I.useState(!1),h=I.useRef(null),f=I.useCallback(()=>!t||!r||!n?(wt.warning("请先登录 SSO"),!1):!0,[t,r,n]),p=I.useCallback(async g=>{if(f()&&!u){d(!0);try{const v={action_id:g.action_id,action_params:g.action_params,stream:!0},y=new AbortController;h.current=y;const A=await fetch(`${Gi()}/api/v1/agents/actions/execute`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,"X-Tenant-ID":n,"X-Domain":r},body:JSON.stringify(v),signal:y.signal});if(!A.ok)throw new Error(`HTTP ${A.status}`);await kV(A,{assistantMsgId:`action_${Date.now()}`,onProgress:i,onContent:a,onOutput:s,onComplete:(b,x,C)=>{o==null||o(b,x,C)},onError:l})}catch(v){if(v instanceof DOMException&&v.name==="AbortError"||v instanceof Error&&v.name==="AbortError")return;const y=v instanceof Error?v.message:"未知错误";l==null||l(`执行出错: ${y}`)}finally{h.current=null,d(!1)}}},[o,a,l,s,i,n,r,t,f]),m=I.useCallback(()=>{h.current&&!h.current.signal.aborted&&h.current.abort()},[]);return{executing:u,executeAction:p,abort:m}}const lcn=e=>{const t=e.action_params?JSON.stringify(e.action_params):"";return`${e.action_id}:${t}`};function ccn({open:e,ssoToken:t,ssoDomain:r,ssoCompany:n,onClose:i,onExecuteAction:a,onExecuteComplete:s}){var M,k;const[o,l]=I.useState("操作执行"),[u,d]=I.useState([]),[h,f]=I.useState(""),[p,m]=I.useState(void 0),[g,v]=I.useState([]),[y,A]=I.useState(void 0),[b,x]=I.useState(!1),C=I.useRef(new Map),w=I.useRef(null),{executeAction:S,abort:T}=z1t({ssoToken:t,ssoDomain:r,ssoCompany:n,onProgress:z=>{A(void 0),d(O=>[...O,z])},onContent:z=>{A(void 0),f(z)},onOutput:z=>{A(void 0),v(O=>[...O,z])},onComplete:(z,O)=>{A(void 0);const N=z||"执行完成";f(N),m(O),w.current&&C.current.set(w.current,{title:o,progress:[...u,"执行完成"],content:N,payload:O,outputs:g,error:void 0,timestamp:Date.now()}),s&&s()},onError:z=>{A(z),w.current&&C.current.set(w.current,{title:o,progress:[...u],content:h,payload:p,outputs:g,error:z,timestamp:Date.now()})}});I.useEffect(()=>(e||T(),()=>{T()}),[e,T]),I.useEffect(()=>{a&&a(async z=>{if(z.executed_outputs){l(z.action_id||"操作执行"),d(["已执行完成"]),f(""),m(z.executed_outputs),v([]),A(void 0),x(!0);return}const O=lcn(z),N=C.current.get(O);if(N){l(N.title),d(N.progress),f(N.content),m(N.payload),v(N.outputs||[]),A(N.error),x(!0);return}w.current=O,l(z.action_id||"操作执行"),d([]),f(""),m(void 0),v([]),A(void 0),x(!1),await S(z)})},[a]);const R=()=>{T(),d([]),f(""),m(void 0),v([]),A(void 0),i()};return e?E.jsxs("div",{className:"wandox-root",children:[E.jsx("div",{className:"wandox-drawer-mask",onClick:R,onKeyDown:z=>z.key==="Escape"&&R(),role:"button",tabIndex:0,"aria-label":"关闭抽屉"}),E.jsxs("div",{className:"wandox-drawer wandox-drawer--right",children:[E.jsxs("div",{className:"wandox-drawer-header",children:[E.jsxs("span",{className:"wandox-drawer-title",children:[o,b&&E.jsx("span",{className:"wandox-tag wandox-tag-blue",children:"缓存数据"})]}),E.jsx("button",{type:"button",className:"wandox-drawer-close",onClick:R,"aria-label":"关闭",children:"✕"})]}),E.jsx("div",{className:"wandox-drawer-body",children:E.jsxs("div",{className:"wandox-drawer-content",children:[g.length>0&&(()=>{const z=g.filter(O=>{if(!O||typeof O!="object")return!1;const N=O;return N.content||N.type||Object.keys(N).length>1});return z.length===0?null:E.jsxs("div",{className:"wandox-result-section",children:[E.jsxs("div",{className:"wandox-section-title",children:[E.jsx("span",{className:"wandox-section-icon",children:"✨"}),E.jsx("span",{children:"执行结果"})]}),E.jsx("div",{className:"wandox-results-container",children:z.map((O,N)=>{const B=O,P=B.title?`output-${B.title}-${N}`:`output-${Date.now()}-${N}`;return E.jsxs("div",{className:"wandox-result-card",children:[O&&typeof O=="object"&&B.title&&E.jsx("div",{className:"wandox-result-card-title",children:String(B.title)}),E.jsx("div",{className:"wandox-result-card-body",children:E.jsx(Tl,{payload:O})})]},P)})})]})})(),(p||h)&&E.jsx("div",{className:"wandox-result-section",children:p&&typeof p=="object"&&p.type!==void 0?E.jsxs("div",{className:"wandox-result-card",children:[(p.title||((M=p.output_data)==null?void 0:M.title)||p.step_index)&&E.jsx("div",{className:"wandox-result-card-title",children:p.title||((k=p.output_data)==null?void 0:k.title)||(p.step_index?`Step${p.step_index}:${p.step_name||""}`:"执行结果")}),E.jsx("div",{className:"wandox-result-card-body",children:E.jsx(Tl,{payload:p})})]}):E.jsx("div",{className:"wandox-result-card",children:E.jsx("div",{className:"wandox-result-card-body",children:h&&typeof h=="string"&&h.trim()?E.jsx(kx,{remarkPlugins:[Mx],children:h}):E.jsx("div",{className:"wandox-empty-content",children:"暂无内容"})})})}),y&&E.jsxs("div",{className:"wandox-error-section",children:[E.jsx("div",{className:"wandox-error-icon",children:"⚠️"}),E.jsxs("div",{className:"wandox-error-content",children:[E.jsx("div",{className:"wandox-error-title",children:"执行失败"}),E.jsx("div",{className:"wandox-error-message",children:y})]})]})]})})]})]}):null}function ucn(e){return e===1||e===-1?e:null}function O1t(e){var i,a;const t=e.feedback,r=(i=e.meta_content)==null?void 0:i.feedback,n=[e.feedback_rating,typeof t=="object"&&t!==null?t.rating:t,(a=e.meta_content)==null?void 0:a.feedback_rating,typeof r=="object"&&r!==null?r.rating:r];for(const s of n){const o=ucn(s);if(o!==null)return o}return null}function B1t(e,t){return e===t?null:t}const CS=e=>e.action_id||e.label,dcn=e=>{var r;const t={};for(const n of e.params_fields_map||[])t[n.name]=((r=e.params)==null?void 0:r[n.name])??n.display_value??"";return{...t,...e.params||{}}},P1t=e=>e==null||e===""?"-":String(e);function D1t(e){const{open:t,actions:r,ssoToken:n,ssoDomain:i,ssoCompany:a,onClose:s,onExecuteComplete:o}=e;e.title;const[l,u]=I.useState(null),[d,h]=I.useState({}),[f,p]=I.useState(null),m=I.useRef(null),[g,v]=I.useState(new Set),[y,A]=I.useState({}),[b,x]=I.useState({}),[C,w]=I.useState([]),[S,T]=I.useState(""),[R,M]=I.useState(void 0),[k,z]=I.useState([]),[O,N]=I.useState(void 0),[B,P]=I.useState(""),[D,L]=I.useState(""),[V,F]=I.useState(""),[j,G]=I.useState(!1),[Q,Y]=I.useState("card"),[W,Z]=I.useState(new Set),[H,K]=I.useState([]),[J,X]=I.useState(!1),[$,_]=I.useState(null),[re,te]=I.useState(0),[le,se]=I.useState(0),[oe,ie]=I.useState([]),ue=I.useRef(null),ve=I.useRef(!1),fe=I.useRef(!1),ke=I.useRef(""),[Se,Le]=I.useState(null),[Ge,Be]=I.useState("asc"),{executeAction:Te,abort:xe}=z1t({ssoToken:n,ssoDomain:i,ssoCompany:a,onProgress:Ke=>{w(lt=>[...lt,Ke])},onContent:Ke=>{T(Ke)},onOutput:Ke=>{z(lt=>{const De=Ke;if(typeof De.step_index=="number"){const nt=lt.findIndex(et=>typeof et.step_index=="number"&&et.step_index===De.step_index);if(nt!==-1){const et=[...lt];return et[nt]=De,et}}return[...lt,Ke]})},onComplete:(Ke,lt)=>{Ke&&T(Ke),lt&&(M(lt),z(nt=>[...nt,lt]));const De=m.current;De&&x(nt=>({...nt,[De]:{content:Ke,payload:lt}})),N(void 0),p(null),m.current=null,o==null||o()},onError:Ke=>{N(Ke)}}),be=(Ke,lt)=>{var $e,ut,at;const De=CS(Ke),nt=y[De];if(nt&&Object.prototype.hasOwnProperty.call(nt,lt))return nt[lt];const et=($e=Ke.params)==null?void 0:$e[lt];return et!==void 0?et:((at=(ut=Ke.params_fields_map)==null?void 0:ut.find(vt=>vt.name===lt))==null?void 0:at.display_value)??""},Ie=Ke=>{const lt={...Ke.params||{}};for(const De of Ke.params_fields_map||[])lt[De.name]=be(Ke,De.name);return lt},ne=(Ke,lt,De)=>{const nt=CS(Ke);A(et=>({...et,[nt]:{...et[nt],[lt]:De}})),Ke.params={...Ke.params||{},[lt]:De}};I.useEffect(()=>{var Ke;if(!t)ke.current="",u(null),h({}),p(null),w([]),T(""),M(void 0),z([]),N(void 0),P(""),L(""),F(""),G(!1),A({}),x({}),Z(new Set),K([]),X(!1),_(null),te(0),se(0),ie([]),xe(),(Ke=ue.current)==null||Ke.abort(),ue.current=null,ve.current=!1,fe.current=!0,Lu.destroy("pool-notification"),Le(null),Be("asc");else{const lt=r.map(CS).join("|");ke.current!==lt&&(ke.current=lt,Z(new Set));const De={};for(const nt of r){const et=CS(nt);De[et]=dcn(nt)}A(De)}},[t,r,xe]),I.useEffect(()=>{if(t){const Ke=ce();Ke.length>0&&!D&&L(Ke[0].value)}},[t,D]);const me=Ke=>{Ke.params={...d},u(null),h({})},ae=()=>{u(null),h({})},he=async Ke=>{const lt=Ke.action_id;if(Ke.action_id){if(G(!0),(Ke.status==="executed"||g.has(lt||""))&&Ke.outputs){w(["已执行完成"]),T(""),z([Ke.outputs]),N(void 0),P(Ke.label||"");return}p(lt||null),m.current=lt||null,w([`正在执行: ${Ke.label||""}`]),T(""),M(void 0),z([]),N(void 0),P(Ke.label||""),await Te({action_id:Ke.action_id,action_params:Ie(Ke)}),lt&&v(De=>new Set(De).add(lt))}},ee=Ke=>{const lt=Ke.action_id||Ke.label;G(!0),P(Ke.label),N(void 0),w([]),z([]);const De=b[lt];if(De){const nt=De.content||"执行成功,暂无输出结果";T(nt),De.payload&&M(De.payload)}else Ke.outputs?z([Ke.outputs]):T("执行成功,暂无输出结果")},ce=()=>{const Ke=new Set;for(const lt of r)if(lt.params_fields_map)for(const De of lt.params_fields_map)Ke.add(De.label);return Array.from(Ke).map(lt=>({label:lt,value:lt}))};I.useEffect(()=>{if(!D){const Ke=ce();Ke.length>0&&L(Ke[0].value)}},[D,r]);const de=()=>!D||!V?r:r.filter(Ke=>{if(!Ke.params_fields_map)return!1;const lt=Ke.params_fields_map.find(et=>et.label===D);if(!lt)return!1;const De=String(be(Ke,lt.name)||"").toLowerCase(),nt=V.toLowerCase();return De.includes(nt)}),pe=Ke=>{Z(lt=>{const De=new Set(lt);if(De.has(Ke))De.delete(Ke);else{const nt=r.find(ut=>CS(ut)===Ke),et=r.filter(ut=>lt.has(CS(ut))),$e=et.find(ut=>ut.supports_batch===!0);if((nt==null?void 0:nt.supports_batch)===!0){const ut=et.some(vt=>vt.supports_batch!==!0||vt.playbook_id!==nt.playbook_id),at=Math.min(nt.batch_max_items??Number.MAX_SAFE_INTEGER,...et.map(vt=>vt.batch_max_items??Number.MAX_SAFE_INTEGER));if(ut)return wt.warning("批量执行只能选择同一场景且支持批量的动作"),lt;if(De.size+1>at)return wt.warning(`本次最多批量执行 ${at} 条`),lt}else if($e)return wt.warning("当前选择只能继续勾选同一场景且支持批量的动作"),lt;De.add(Ke)}return De})},Ae=I.useCallback(()=>{const Ke=Fe(),lt=new Set([...H.map(et=>et.action_id||et.label),...$?[$.action_id||$.label]:[]]),De=Ke.map(et=>et.action_id||et.label).filter(et=>!lt.has(et)&&!g.has(et)&&et!==f),nt=De.length>0&&De.every(et=>W.has(et));Z(nt?new Set:new Set(De))},[W,r,D,V,Se,Ge,H,$,g]),Me=I.useCallback(async(Ke,lt)=>{var De;if(!Ke.action_id)return"error";try{const nt={action_id:Ke.action_id,action_params:Ie(Ke),stream:!0},et=await fetch(`${Gi()}/api/v1/agents/actions/execute`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`,"X-Tenant-ID":a,"X-Domain":i},body:JSON.stringify(nt),signal:lt});if(!et.ok)throw new Error(`HTTP ${et.status}`);const $e=(De=et.body)==null?void 0:De.getReader();if($e)try{for(;;){const{done:ut}=await $e.read();if(ut)break}}catch(ut){if(lt.aborted)return"cancelled";throw ut}return"done"}catch{return lt.aborted?"cancelled":"error"}},[n,i,a,y]),Oe=I.useCallback((Ke,lt,De)=>{Lu.open({key:"pool-notification",message:"执行池运行中",description:E.jsxs("div",{className:"wandox-pool-notification",children:[E.jsxs("div",{className:"wandox-pool-notification-task",children:["当前:"," ",E.jsx("span",{className:"wandox-pool-notification-label",children:Ke.label})]}),E.jsx("div",{className:"wandox-pool-notification-progress",children:E.jsx(KZ,{percent:De>0?Math.round(lt/De*100):0,size:"small",strokeColor:{from:"#513aeb",to:"#4f46e5"},format:()=>`${lt}/${De}`})}),E.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[E.jsx("div",{className:"wandox-pool-notification-hint",children:"⚠️ 请勿关闭或离开当前界面"}),E.jsx("button",{type:"button",className:"wandox-pool-notification-skip-btn",onClick:()=>{var nt;ve.current=!0,(nt=ue.current)==null||nt.abort()},children:"跳过当前"})]})]}),placement:"bottomRight",duration:1e3,closable:!1})},[]),Ye=I.useCallback((Ke,lt)=>{const De=lt.length>0,nt=Ke-lt.length;Lu.open({key:"pool-notification",message:De?"执行完成(部分异常)":"全部执行完成",description:E.jsxs("div",{className:"wandox-pool-notification",children:[E.jsxs("div",{className:"wandox-pool-notification-result",children:[E.jsxs("span",{className:"wandox-pool-notification-result-success",children:["✓ 成功 ",nt," 个"]}),De&&E.jsxs("span",{className:"wandox-pool-notification-result-fail",children:["✗ 异常 ",lt.length," 个"]})]}),De&&E.jsx("div",{className:"wandox-pool-notification-errors",children:lt.map((et,$e)=>E.jsx("div",{className:"wandox-pool-notification-error-item",children:et},$e))}),E.jsx("button",{type:"button",className:"wandox-pool-notification-done-btn",onClick:()=>Lu.destroy("pool-notification"),children:"我知道了"})]}),placement:"bottomRight",duration:0,closable:!1})},[]),Ve=I.useRef([]);I.useEffect(()=>{Ve.current=H},[H]);const rt=I.useCallback(async Ke=>{if(Ke.length===0)return;X(!0),te(Ke.length),se(0),ie([]),fe.current=!1,Ve.current=Ke;let lt=0;const De=[],nt=()=>{const $e=Ve.current;if($e.length===0)return;const ut=$e[0],at=$e.slice(1);return Ve.current=at,K(at),ut};let et=nt();for(;et&&!fe.current;){const $e=et.action_id||et.label;_(et),p($e),m.current=$e;const ut=new AbortController;ue.current=ut,ve.current=!1,Oe(et,lt,lt+1+Ve.current.length);const at=await Me(et,ut.signal);if(fe.current)break;if(lt++,se(lt),at==="done")v(vt=>new Set(vt).add($e));else if(at==="cancelled"){const vt=`${et.label}: 已跳过`;De.push(vt),ie(bt=>[...bt,vt])}else{const vt=`${et.label}: 执行失败`;De.push(vt),ie(bt=>[...bt,vt])}p(null),m.current=null,et=nt()}X(!1),_(null),K([]),Ve.current=[],ue.current=null,fe.current?Lu.destroy("pool-notification"):Ye(lt,De),o==null||o()},[Me,Oe,Ye,o]),Ce=I.useCallback(async Ke=>{const lt=new Set(Ke.map(et=>et.playbook_id).filter(Boolean)),De=Math.min(...Ke.map(et=>et.batch_max_items??Number.MAX_SAFE_INTEGER));if(lt.size!==1){wt.warning("批量执行只能选择同一场景的动作");return}if(Ke.length>De){wt.warning(`本次最多批量执行 ${De} 条`);return}const nt=Ke.map(et=>CS(et));X(!0),K(Ke),te(Ke.length),se(0),ie([]),Lu.open({key:"pool-notification",message:"批量执行中",description:`正在一次执行 ${Ke.length} 个动作`,placement:"bottomRight",duration:0,closable:!1});try{const et=await fetch(`${Gi()}/api/v1/agents/actions/batch-execute`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`,"X-Tenant-ID":a,"X-Domain":i},body:JSON.stringify({items:Ke.map(ut=>({action_id:ut.action_id,params:Ie(ut)})),submit_token:crypto.randomUUID(),stream:!0})});if(!et.ok)throw new Error(`HTTP ${et.status}`);const $e=await et.text();if(/event:\s*error|"event_type"\s*:\s*"error"|"success"\s*:\s*false/.test($e))throw new Error("批量执行失败");v(ut=>new Set([...ut,...nt])),se(Ke.length),Ye(Ke.length,[]),o==null||o()}catch(et){const $e=et instanceof Error?et.message:"批量执行失败";ie([$e]),Ye(Ke.length,[$e])}finally{X(!1),K([]),_(null)}},[n,i,a,y,Ye,o]),Xe=I.useCallback(()=>{const Ke=Fe(),lt=new Set([...Ve.current.map(nt=>nt.action_id||nt.label),...$?[$.action_id||$.label]:[]]),De=Ke.filter(nt=>{const et=nt.action_id||nt.label;return W.has(et)&&!g.has(et)&&(!nt.status||nt.status==="pending")&&!lt.has(et)});if(De.length===0){wt.warning("请选择未执行的动作");return}if(Z(new Set),De.every(nt=>nt.supports_batch===!0)){Ce(De);return}if(J){const nt=[...Ve.current,...De];Ve.current=nt,K(nt),te(et=>et+De.length),wt.info(`已追加 ${De.length} 个动作到执行池`)}else K(De),rt(De)},[W,r,g,J,$,rt,Ce]),ye=()=>{const Ke=new Map;for(const lt of r)if(lt.params_fields_map)for(const De of lt.params_fields_map)Ke.has(De.name)||Ke.set(De.name,{name:De.name,label:De.label,type:De.type});return Array.from(Ke.values())},Pe=Ke=>{for(const lt of r)if(lt.params_fields_map){const De=lt.params_fields_map.find(nt=>nt.name===Ke);if(De&&(De.type==="number"||De.display_value!==void 0&&typeof De.display_value=="number"||De.display_value!==void 0&&!isNaN(Number(De.display_value))))return!0}return!1},Ne=Ke=>{Se===Ke?Be(lt=>lt==="asc"?"desc":"asc"):(Le(Ke),Be("asc"))},Fe=()=>{let Ke=de();return Se&&(Ke=[...Ke].sort((lt,De)=>{var at,vt;const nt=(at=lt.params_fields_map)==null?void 0:at.find(bt=>bt.name===Se),et=(vt=De.params_fields_map)==null?void 0:vt.find(bt=>bt.name===Se),$e=Number(nt?be(lt,nt.name):0),ut=Number(et?be(De,et.name):0);return Ge==="asc"?$e-ut:ut-$e})),Ke},tt=Ke=>{const lt=Ke.params_fields_map,De=Ke.action_id||Ke.label,nt=Ke.status==="executed"||g.has(De);return!lt||lt.length===0?E.jsx("div",{className:"wandox-action-card-empty",children:"暂无默认参数"}):E.jsx("div",{className:"wandox-action-card-params",children:lt.map(et=>E.jsxs("div",{className:"wandox-action-card-param-item",children:[E.jsxs("span",{className:"wandox-action-card-param-key",children:[et.label,":"]}),et.editable===!1||nt?E.jsx("span",{className:"wandox-action-card-param-value",children:P1t(be(Ke,et.name))}):et.input_type==="select"&&et.options?E.jsx(Qn,{value:String(be(Ke,et.name)??""),onChange:$e=>ne(Ke,et.name,$e),options:et.options,style:{flex:1,minWidth:120},size:"small"}):E.jsx(Or,{value:String(be(Ke,et.name)??""),onChange:$e=>ne(Ke,et.name,$e.target.value),placeholder:`请输入 ${et.label}`,style:{flex:1},size:"small"})]},et.name))})},We=Ke=>{const lt=Ke.params||{},De=Ke.params_fields_map,nt=et=>{const $e=De==null?void 0:De.find(ut=>ut.name===et);return($e==null?void 0:$e.label)||et};return E.jsxs("div",{className:"wandox-action-card-edit-form",children:[Object.entries(lt).map(([et])=>E.jsxs("div",{className:"wandox-action-card-form-item",children:[E.jsx("span",{className:"wandox-action-card-form-label",children:nt(et)}),E.jsx("input",{type:"text",className:"wandox-input",value:typeof d[et]=="object"?JSON.stringify(d[et]):String(d[et]??""),onChange:$e=>{let ut=$e.target.value;try{($e.target.value.startsWith("{")||$e.target.value.startsWith("["))&&(ut=JSON.parse($e.target.value))}catch{}h(at=>({...at,[et]:ut}))},placeholder:`请输入 ${nt(et)}`})]},et)),Object.keys(lt).length===0&&E.jsx("div",{className:"wandox-action-card-empty",children:"暂无可编辑参数"})]})},Je=Ke=>{const lt=Ke.action_id||Ke.label,De=l===lt,nt=f===lt,et=Ke.status==="executed"||g.has(lt);return E.jsxs("div",{className:`wandox-action-card-v2${et?" wandox-action-card-v2--executed":""}${nt?" wandox-action-card-v2--executing":""}`,children:[E.jsxs("div",{className:"wandox-action-card-v2-content",children:[E.jsx("div",{className:"wandox-action-card-v2-title",children:E.jsx("span",{className:"wandox-action-card-v2-title-text",children:Ke.label})}),De?We(Ke):E.jsx("div",{className:"wandox-action-card-v2-params",children:tt(Ke)})]}),E.jsx("div",{className:"wandox-action-card-v2-footer",children:De?E.jsxs(E.Fragment,{children:[E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--primary",onClick:()=>me(Ke),children:"保存"}),E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--ghost",onClick:ae,children:"取消"})]}):et?E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--success",onClick:()=>ee(Ke),children:"查看"}):E.jsx(E.Fragment,{children:E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--primary",id:Ke.action_id,"data-sensors-track":"true","data-sensors-name":"执行动作","data-sensors-module":"可执行动作",onClick:()=>{nt||he(Ke)},disabled:nt,children:nt?"执行中...":"执行"})})})]})},Ee=I.useCallback(Ke=>$&&($.action_id||$.label)===Ke?!0:H.some(lt=>(lt.action_id||lt.label)===Ke),[$,H]),gt=(Ke,lt,De)=>{if(!lt)return E.jsx("span",{className:"wandox-action-list-cell-placeholder",children:"-"});const nt=be(Ke,lt.name),et=P1t(nt);return lt.editable===!1||De.isExecuted||De.isExecuting||De.inPool?E.jsx("span",{className:"wandox-action-list-cell-text",title:et,children:et}):lt.input_type==="select"&<.options&<.options.length>0?E.jsx(Qn,{className:"wandox-action-list-cell-editor",size:"small",value:String(nt??""),options:lt.options,onChange:ut=>ne(Ke,lt.name,ut)}):E.jsx(Or,{className:"wandox-action-list-cell-editor",size:"small",value:String(nt??""),placeholder:`请输入 ${lt.label}`,onChange:ut=>ne(Ke,lt.name,ut.target.value)})},pt=()=>{const Ke=ye(),lt=Fe(),De=new Set([...H.map($e=>$e.action_id||$e.label),...$?[$.action_id||$.label]:[]]),nt=lt.filter($e=>!$e.status||$e.status==="pending").map($e=>$e.action_id||$e.label).filter($e=>!g.has($e)&&!De.has($e)&&$e!==f),et=nt.length>0&&nt.every($e=>W.has($e));return E.jsxs("div",{className:"wandox-action-list-view",children:[E.jsxs("div",{className:"wandox-batch-action-bar",children:[E.jsxs("span",{className:"wandox-batch-action-count",children:["已选 ",W.size," 项"]}),E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--primary",onClick:Xe,disabled:W.size===0,children:J?"追加到执行池":"批量执行"}),E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--ghost",onClick:()=>Z(new Set),disabled:W.size===0,children:"取消选择"})]}),oe.length>0&&!J&&E.jsxs("div",{className:"wandox-batch-errors",children:[E.jsxs("div",{className:"wandox-batch-errors-title",children:["执行异常(",oe.length,")"]}),oe.map(($e,ut)=>E.jsx("div",{className:"wandox-batch-error-item",children:$e},ut))]}),E.jsx("div",{className:"wandox-action-list-table-wrapper",children:E.jsxs("table",{className:"wandox-action-list-table",children:[E.jsx("thead",{children:E.jsxs("tr",{children:[E.jsx("th",{className:"wandox-action-list-th wandox-action-list-th--checkbox",children:E.jsx("input",{type:"checkbox",checked:et,onChange:Ae})}),E.jsx("th",{className:"wandox-action-list-th",children:"名称"}),Ke.map($e=>E.jsxs("th",{className:`wandox-action-list-th ${Pe($e.name)?"wandox-action-list-th--sortable":""}`,onClick:()=>Pe($e.name)&&Ne($e.name),children:[E.jsx("span",{children:$e.label}),Pe($e.name)&&E.jsx("span",{className:"wandox-action-list-sort-icon",children:Se===$e.name?Ge==="asc"?" ↑":" ↓":" ↕"})]},$e.name)),E.jsx("th",{className:"wandox-action-list-th wandox-action-list-th--status",children:"状态"}),E.jsx("th",{className:"wandox-action-list-th wandox-action-list-th--action",children:"操作"})]})}),E.jsxs("tbody",{children:[lt.map($e=>{const ut=$e.action_id||$e.label,at=$e.status==="executed"||g.has(ut),vt=f===ut,bt=Ee(ut),Rt=H.some(fr=>(fr.action_id||fr.label)===ut),Ft=W.has(ut),Vt=(!$e.status||$e.status==="pending")&&!at&&!bt&&!vt;return E.jsxs("tr",{className:`wandox-action-list-row ${Ft?"wandox-action-list-row--selected":""} ${at?"wandox-action-list-row--executed":""} ${bt?"wandox-action-list-row--in-pool":""}`,children:[E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--checkbox",children:E.jsx("input",{type:"checkbox",checked:Ft,onChange:()=>Vt&&pe(ut),disabled:!Vt})}),E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--name",title:$e.label,children:$e.label}),Ke.map(fr=>{var Qt;const qr=(Qt=$e.params_fields_map)==null?void 0:Qt.find(it=>it.name===fr.name);return E.jsx("td",{className:`wandox-action-list-td ${qr&&qr.editable!==!1&&!at&&!vt&&!bt?"wandox-action-list-td--editable":""}`,children:gt($e,qr,{isExecuted:at,isExecuting:vt,inPool:bt})},fr.name)}),E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--status",children:vt?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--executing",children:"执行中"}):Rt?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--queued",children:"排队中"}):at?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--done",children:"已执行"}):E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--pending",children:"待执行"})}),E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--action",children:at?E.jsx("button",{type:"button",className:"wandox-action-list-btn wandox-action-list-btn--view",onClick:()=>ee($e),children:"查看"}):bt?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--queued",style:{fontSize:11},children:vt?"执行中":"等待中"}):E.jsx("button",{type:"button",className:"wandox-action-list-btn wandox-action-list-btn--exec",onClick:()=>!vt&&!bt&&he($e),disabled:vt||bt,children:"执行"})})]},ut)}),lt.length===0&&E.jsx("tr",{children:E.jsx("td",{colSpan:Ke.length+4,className:"wandox-action-list-empty",children:"没有找到匹配的动作"})})]})]})})]})},yt=()=>{if(C.length===0&&k.length===0&&!O&&!S)return E.jsxs("div",{className:"wandox-execution-empty",children:[E.jsx("div",{className:"wandox-execution-empty-icon",children:"📋"}),E.jsx("div",{className:"wandox-execution-empty-text",children:"点击上方按钮执行动作"})]});const Ke=C.length===0&&(S||k.length>0);return E.jsxs("div",{className:"wandox-execution-process",children:[!Ke&&C.length>0&&E.jsxs("div",{className:"wandox-progress-section",children:[E.jsx("div",{className:"wandox-progress-title",children:"执行进度"}),E.jsx("div",{className:"wandox-progress-timeline",children:C.map((lt,De)=>E.jsxs("div",{className:"wandox-progress-item",children:[E.jsx("span",{className:"wandox-progress-dot",children:E.jsx("span",{className:"wandox-progress-check",children:"✓"})}),E.jsx("span",{className:"wandox-progress-text",children:lt})]},`${lt}-${De}`))})]}),S&&E.jsx("div",{className:"wandox-content-section",children:E.jsx(Tl,{payload:{type:"markdown",content:S}})}),!S&&k.length===0&&C.length===0&&!O&&E.jsx("div",{className:"wandox-execution-empty",children:E.jsx("div",{className:"wandox-execution-empty-text",children:"暂无执行结果"})}),O&&E.jsxs("div",{className:"wandox-error-section",children:[E.jsx("div",{className:"wandox-error-icon",children:"✗"}),E.jsxs("div",{className:"wandox-error-content",children:[E.jsx("div",{className:"wandox-error-title",children:"执行失败"}),E.jsx("div",{className:"wandox-error-message",children:O})]})]})]})};return t?E.jsxs("div",{className:"wandox-root",children:[E.jsx("div",{className:"wandox-drawer-mask",onClick:s,onKeyDown:Ke=>Ke.key==="Escape"&&s(),role:"button",tabIndex:0,"aria-label":"关闭抽屉"}),E.jsxs("div",{className:`wandox-drawer wandox-drawer--right wandox-action-detail-drawer ${Q==="list"?"wandox-drawer--wide":""}`,children:[E.jsxs("div",{className:"wandox-drawer-header",children:[E.jsxs("span",{className:"wandox-drawer-title",children:["可执行动作(",r.length,")"]}),E.jsxs("div",{className:"wandox-drawer-header-actions",children:[E.jsxs("div",{className:"wandox-view-mode-toggle",children:[E.jsx("button",{type:"button",className:`wandox-view-mode-btn ${Q==="card"?"wandox-view-mode-btn--active":""}`,onClick:()=>Y("card"),title:"卡片模式",children:E.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",children:[E.jsx("rect",{x:"1",y:"1",width:"6",height:"6",rx:"1"}),E.jsx("rect",{x:"9",y:"1",width:"6",height:"6",rx:"1"}),E.jsx("rect",{x:"1",y:"9",width:"6",height:"6",rx:"1"}),E.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"1"})]})}),E.jsx("button",{type:"button",className:`wandox-view-mode-btn ${Q==="list"?"wandox-view-mode-btn--active":""}`,onClick:()=>Y("list"),title:"列表模式",children:E.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",children:[E.jsx("rect",{x:"1",y:"2",width:"14",height:"2.5",rx:"0.5"}),E.jsx("rect",{x:"1",y:"6.75",width:"14",height:"2.5",rx:"0.5"}),E.jsx("rect",{x:"1",y:"11.5",width:"14",height:"2.5",rx:"0.5"})]})})]}),E.jsx("button",{type:"button",className:"wandox-drawer-close",onClick:s,children:"✕"})]})]}),E.jsx("div",{className:"wandox-drawer-body",children:E.jsxs("div",{className:"wandox-action-detail-content",children:[ce().length>0&&E.jsx("div",{className:"wandox-action-filter-section",children:E.jsxs(Qd.Compact,{style:{width:"100%"},children:[E.jsx(Qn,{value:D,onChange:Ke=>{L(Ke),F("")},placeholder:"选择字段",style:{width:150},options:[...ce()]}),E.jsx(Or,{value:V,onChange:Ke=>F(Ke.target.value),placeholder:"输入过滤值",disabled:!D,style:{flex:1},allowClear:!0})]})}),E.jsx("div",{className:"wandox-action-cards-section",children:Q==="card"?E.jsxs("div",{className:"wandox-action-cards-grid",children:[de().map(Ke=>E.jsx("div",{className:"wandox-action-card-wrapper",children:Je(Ke)},Ke.action_id||Ke.label)),de().length===0&&(D||V)&&E.jsxs("div",{className:"wandox-action-empty-filter",children:[E.jsx("div",{className:"wandox-action-empty-icon",children:"🔍"}),E.jsx("div",{className:"wandox-action-empty-text",children:"没有找到匹配的动作"})]})]}):pt()}),j&&E.jsxs("div",{className:"wandox-execution-section wandox-execution-panel-slide",onClick:Ke=>Ke.stopPropagation(),children:[E.jsxs("div",{className:"wandox-execution-panel-header",children:[E.jsx("span",{className:"wandox-execution-panel-title",children:"执行结果"}),E.jsx("button",{type:"button",className:"wandox-execution-panel-close",onClick:()=>G(!1),"aria-label":"关闭",children:"✕"})]}),yt()]})]})})]})]}):null}function j$(e){const t={unit:"day",interval:1,hour:9,minute:0,weekDays:[1],monthDay:1,yearMonth:1,yearDay:1,customCron:""};if(!e)return t;const r=e.trim().split(/\s+/);if(r.length<5)return t;const n=Number.parseInt(r[0],10)||0,i=r[1].includes("/")?0:Number.parseInt(r[1],10)||0;if(r[1].startsWith("*/"))return{...t,unit:"hour",interval:Number.parseInt(r[1].slice(2),10)||1,hour:0,minute:n};if(r[3]!=="*"&&!r[3].startsWith("*/"))return{...t,unit:"year",hour:i,minute:n,yearMonth:Number.parseInt(r[3],10)||1,yearDay:Number.parseInt(r[2],10)||1};if(r[3].startsWith("*/"))return{...t,unit:"month",interval:Number.parseInt(r[3].slice(2),10)||1,hour:i,minute:n,monthDay:Number.parseInt(r[2],10)||1};if(r[4]!=="*"){const a=r[4].split(",").map(s=>Number.parseInt(s,10)).filter(s=>!Number.isNaN(s));return{...t,unit:"week",hour:i,minute:n,weekDays:a.length>0?a:[1]}}return r[2].startsWith("*/")?{...t,unit:"day",interval:Number.parseInt(r[2].slice(2),10)||1,hour:i,minute:n}:r[2]!=="*"?{...t,unit:"month",interval:1,hour:i,minute:n,monthDay:Number.parseInt(r[2],10)||1}:{...t,unit:"day",interval:1,hour:i,minute:n}}const hcn=["周日","周一","周二","周三","周四","周五","周六"],fcn=[{value:"hour",label:"小时",hint:"高频轮询"},{value:"day",label:"每天",hint:"日常任务"},{value:"week",label:"每周",hint:"固定周几"},{value:"month",label:"每月",hint:"月度复盘"},{value:"year",label:"每年",hint:"年度节点"},{value:"custom",label:"Cron",hint:"高级规则"}],pcn=[{v:1,l:"周一"},{v:2,l:"周二"},{v:3,l:"周三"},{v:4,l:"周四"},{v:5,l:"周五"},{v:6,l:"周六"},{v:0,l:"周日"}];function mcn(e,t,r,n,i,a,s,o,l){switch(e){case"hour":return`${n} */${t} * * *`;case"day":return t===1?`${n} ${r} * * *`:`${n} ${r} */${t} * *`;case"week":return`${n} ${r} * * ${i.length>0?i.join(","):"1"}`;case"month":return t===1?`${n} ${r} ${a} * *`:`${n} ${r} ${a} */${t} *`;case"year":return`${n} ${r} ${o} ${s} *`;case"custom":return l.trim()||`${n} ${r} * * *`;default:return`${n} ${r} * * *`}}function gcn(e,t,r,n,i,a,s,o,l){const u=`${String(r).padStart(2,"0")}:${String(n).padStart(2,"0")}`;switch(e){case"hour":return`每 ${t} 小时执行一次(每小时第 ${n} 分)`;case"day":return t===1?`每天 ${u} 执行`:`每 ${t} 天 ${u} 执行`;case"week":return`每周 ${i.length>0?i.map(h=>hcn[h]).join("、"):"周一"} ${u} 执行`;case"month":return t===1?`每月第 ${a} 天 ${u} 执行`:`每 ${t} 个月第 ${a} 天 ${u} 执行`;case"year":return`每年 ${s} 月 ${o} 日 ${u} 执行`;case"custom":return l.trim()?`自定义:${l.trim()}`:"请输入 Cron 表达式";default:return`每天 ${u} 执行`}}function Ewe({defaultValue:e,onChange:t}){const r=j$(e),[n,i]=I.useState(r.unit),[a,s]=I.useState(r.interval),[o,l]=I.useState(r.hour),[u,d]=I.useState(r.minute),[h,f]=I.useState(r.weekDays),[p,m]=I.useState(r.monthDay),[g,v]=I.useState(r.yearMonth),[y,A]=I.useState(r.yearDay),[b,x]=I.useState(r.customCron),C=I.useMemo(()=>mcn(n,a,o,u,h,p,g,y,b),[n,a,o,u,h,p,g,y,b]),w=I.useMemo(()=>gcn(n,a,o,u,h,p,g,y,b),[n,a,o,u,h,p,g,y,b]),S=I.useRef(t);S.current=t,I.useEffect(()=>{var k;(k=S.current)==null||k.call(S,C,w)},[C,w]);const T=Array.from({length:24},(k,z)=>({value:z,label:String(z).padStart(2,"0")})),R=Array.from({length:60},(k,z)=>({value:z,label:String(z).padStart(2,"0")})),M=Array.from({length:12},(k,z)=>({value:z+1,label:`${z+1} 月`}));return E.jsxs("div",{className:"sfp-root",children:[E.jsx(wD,{block:!0,size:"small",className:"sfp-freq-segmented",value:n,"aria-label":"调度频率",options:fcn.map(({value:k,label:z,hint:O})=>({value:k,label:E.jsxs("span",{className:"sfp-freq-option",children:[E.jsx("span",{className:"sfp-freq-option__label",children:z}),E.jsx("span",{className:"sfp-freq-option__hint",children:O})]})})),onChange:k=>{i(k),s(1)}}),E.jsxs("div",{className:"sfp-config",children:[E.jsxs("div",{className:"sfp-config-title",children:[E.jsx(oXe,{}),E.jsx("span",{children:"执行规则"})]}),n==="hour"&&E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-text",children:"每"}),E.jsx(qd,{min:1,max:24,value:a,onChange:k=>s(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"小时,在第"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R}),E.jsx("span",{className:"sfp-text",children:"分钟执行"})]}),n==="day"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-text",children:"每"}),E.jsx(qd,{min:1,max:365,value:a,onChange:k=>s(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"天执行一次"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="week"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row sfp-row-wrap",children:[E.jsx("span",{className:"sfp-label",children:"执行日期"}),E.jsx("div",{className:"sfp-weekday-tags",children:pcn.map(({v:k,l:z})=>E.jsx(Qs.CheckableTag,{checked:h.includes(k),onChange:O=>{O?f(N=>[...N,k].sort((B,P)=>B-P)):h.length>1&&f(N=>N.filter(B=>B!==k))},children:z},k))})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="month"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-text",children:"每"}),E.jsx(qd,{min:1,max:12,value:a,onChange:k=>s(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"个月执行一次"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"执行日期"}),E.jsx("span",{className:"sfp-text",children:"第"}),E.jsx(qd,{min:1,max:31,value:p,onChange:k=>m(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"天"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="year"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"执行月份"}),E.jsx(Qn,{value:g,onChange:k=>v(k),className:"sfp-select sfp-select--month",size:"middle",options:M})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"执行日期"}),E.jsx("span",{className:"sfp-text",children:"第"}),E.jsx(qd,{min:1,max:31,value:y,onChange:k=>A(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"天"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="custom"&&E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"Cron 表达式"}),E.jsx(Or,{value:b,onChange:k=>x(k.target.value),placeholder:"例如:0 9 * * 1-5",size:"middle",className:"sfp-cron-input"})]})]}),E.jsxs("div",{className:"sfp-preview",children:[E.jsx(CH,{className:"sfp-preview-icon"}),E.jsx("span",{children:w})]})]})}const{Text:L1t}=Qh,q$="0 9 * * *";function $d(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function MV(e,t){return $d(e)&&typeof e.message=="string"?e.message:t}function Q$(e){return $d(e)?e.data??e.result??e.results??e:e}function b7(e){return e?String(e.schedule_id??e.id??""):""}function V1t(e){return(e==null?void 0:e.name)||(e==null?void 0:e.schedule_name)||(e==null?void 0:e.title)||"未命名任务"}function vcn(e){return(e==null?void 0:e.cron_expression)||(e==null?void 0:e.schedule_cron)||q$}function ycn(e){return(e==null?void 0:e.playbook_params)??(e==null?void 0:e.schedule_params)??(e==null?void 0:e.params)??{}}function F1t(e){return e?typeof e.is_active=="boolean"?e.is_active:typeof e.is_enabled=="boolean"?e.is_enabled:typeof e.enabled=="boolean"?e.enabled:!0:!0}function bcn(e){const t=Q$(e),r=$d(t)?t.items??t.records??t.rows??t.schedules??t.list??t.data:t;return Array.isArray(r)?r.filter($d).map(n=>n):[]}function Acn(e){const t=Q$(e),r=$d(t)?t.items??t.records??t.rows??t.webhooks??t.list??t.data:t;return Array.isArray(r)?r.filter($d).map(n=>{const i=n.webhook_id??n.id,a=typeof n.name=="string"&&n.name.trim()?n.name:i?String(i):"未命名通知地址";return{webhook_id:i?String(i):"",name:a,platform:typeof n.platform=="string"?n.platform:void 0,is_active:typeof n.is_active=="boolean"?n.is_active:void 0,is_default:typeof n.is_default=="boolean"?n.is_default:void 0}}).filter(n=>n.webhook_id):[]}function xcn(e){return(Array.isArray(e)?e:$d(e)?Object.values(e):[]).filter($d).map(r=>{const n=typeof r.name=="string"?r.name:"",i=Array.isArray(r.enum)?r.enum.filter(a=>typeof a=="string"):Array.isArray(r.options)?r.options.map(a=>typeof a=="string"?a:$d(a)&&typeof a.value=="string"?a.value:"").filter(Boolean):void 0;return{name:n,label:typeof r.label=="string"?r.label:typeof r.display_name=="string"?r.display_name:n,type:typeof r.type=="string"?r.type:"string",required:!!r.required,default:r.default,mock:r.mock,enum:i,file_type:typeof r.file_type=="string"?r.file_type:void 0,description:typeof r.description=="string"?r.description:void 0}}).filter(r=>r.name)}function Ecn(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function Icn(e){switch(e){case"dingtalk":return"钉钉";case"feishu":case"lark":return"飞书";case"wecom":case"wechat_work":return"企微";default:return e||""}}function j1t(e){const t=Icn(e.platform);return t?`${e.name} (${t})`:e.name}function q1t({open:e,agentId:t,playbookId:r,playbookName:n,onClose:i,onSuccess:a}){const[s,o]=I.useState([]),[l,u]=I.useState([]),[d,h]=I.useState([]),[f,p]=I.useState(!1),[m,g]=I.useState(!1),[v,y]=I.useState(!1),[A,b]=I.useState("create"),[x,C]=I.useState(""),[w,S]=I.useState(""),[T,R]=I.useState(!0),[M,k]=I.useState(""),[z,O]=I.useState(0),[N,B]=I.useState(q$),[P,D]=I.useState({}),[L,V]=I.useState({}),[F,j]=I.useState(!1),[G,Q]=I.useState(""),[Y,W]=I.useState(""),[Z,H]=I.useState(""),K=d.length>0,J=I.useMemo(()=>{const Te=l.map(xe=>[xe.webhook_id,j1t(xe)]);return new Map(Te)},[l]),X=I.useMemo(()=>{const Te=new Set,xe=l.map(be=>(Te.add(be.webhook_id),{value:be.webhook_id,label:`${j1t(be)}${be.is_default?" · 默认":""}`,disabled:be.is_active===!1}));return M&&!Te.has(M)&&xe.unshift({value:M,label:`当前通知地址 (${M})`,disabled:!1}),xe},[l,M]);function $(Te=l){var xe;return((xe=Te.find(be=>be.is_default&&be.is_active!==!1))==null?void 0:xe.webhook_id)||""}function _(Te={},xe=d){const be={};for(const Ie of xe)Te[Ie.name]!==void 0&&Te[Ie.name]!==""?be[Ie.name]=Te[Ie.name]:Ie.default!==void 0&&Ie.default!==""?be[Ie.name]=Ie.default:Ie.type==="boolean"?be[Ie.name]=!1:Ie.type==="number"||Ie.type==="integer"||Ie.type==="float"?be[Ie.name]=void 0:be[Ie.name]="";return be}function re(Te=d,xe=l,be=Z||n){const Ie=be||"";b("create"),C(""),S(Ie?`${Ie} 定时任务`:"定时任务"),R(!0),k($(xe)),B(q$),O(ne=>ne+1),D(_({},Te)),W("")}function te(Te,xe=d){b("edit"),C(b7(Te)),S(V1t(Te)),R(F1t(Te)),k(Te.webhook_id||""),B(vcn(Te)),O(be=>be+1),D(_(ycn(Te),xe)),W("")}async function le(){if(!r)return h([]),{fields:[],name:""};y(!0);try{const Te=await Xg({playbook_id:r}),xe=Q$(Te),be=$d(xe)?xe:{},ne=(typeof be.name=="string"&&be.name.trim()?be.name.trim():$d(be.meta)&&typeof be.meta.name=="string"?be.meta.name.trim():"")||n||"";H(ne);const me=$d(be.content)?be.content.yaml_content:be.yaml_content,ae=typeof me=="string"&&me?e8.parse(me):null,he=xcn($d(ae)?ae.params:[]);return h(he),{fields:he,name:ne}}catch{return h([]),{fields:[],name:""}}finally{y(!1)}}async function se(){g(!0);try{const Te=await iK({}),xe=Acn(Te);return u(xe),xe}catch(Te){return u([]),wt.error(MV(Te,"获取通知地址失败")),[]}finally{g(!1)}}async function oe(Te,xe=d,be=l,Ie=Z||n){if(!t||!r)return[];p(!0);try{const ne=await Mtt({agent_id:t,playbook_id:r}),me=bcn(ne);o(me);const ae=Te?me.find(ce=>b7(ce)===Te):null,he=x?me.find(ce=>b7(ce)===x):null,ee=ae||he||me[0];return ee?te(ee,xe):re(xe,be,Ie),me}catch(ne){return o([]),re(xe,be,Ie),wt.error(MV(ne,"获取定时任务失败")),[]}finally{p(!1)}}I.useEffect(()=>{!e||!t||!r||(W(""),V({}),Q(""),H(""),(async()=>{const[{fields:Te,name:xe},be]=await Promise.all([le(),se()]);await oe(void 0,Te,be,xe)})())},[e,t,r]);const ie=(Te,xe)=>{D(be=>({...be,[Te]:xe}))},ue=Te=>async({file:xe,onSuccess:be,onError:Ie})=>{var ne;V(me=>({...me,[Te]:!0}));try{const me=await Cy(xe),ae=(ne=me==null?void 0:me.data)==null?void 0:ne.url;if(!ae)throw new Error("上传失败");ie(Te,ae),be==null||be(me),wt.success("文件上传成功")}catch(me){Ie==null||Ie(me instanceof Error?me:new Error("文件上传失败")),wt.error(MV(me,"文件上传失败"))}finally{V(me=>({...me,[Te]:!1}))}},ve=()=>{if(!t)return wt.warning("缺少智能体ID"),!1;if(!r)return wt.warning("缺少场景ID"),!1;if(!w.trim())return wt.warning("请输入任务名称"),!1;if(!M)return wt.warning("请选择通知地址"),!1;if(T&&!N.trim())return wt.warning("请设置调度频率"),!1;for(const Te of d){const xe=P[Te.name];if(Te.required&&xe!==0&&xe!==!1&&(xe==null||xe===""))return wt.warning(`请填写「${Te.label||Te.name}」`),!1}return!0},fe=()=>{const Te=N||q$,xe=K?{...P}:void 0;return{name:w.trim(),agent_id:t,playbook_id:r,webhook_id:M,is_active:T,schedule_type:"custom",cron_expression:Te,playbook_params:xe}},ke=async()=>{if(ve()){W(""),j(!0);try{if(A==="edit"&&x)await Ntt(x,{},fe()),wt.success("定时任务已更新"),await oe(x);else{const Te=await ktt({},fe()),xe=Q$(Te),be=$d(xe)?b7(xe):"";wt.success("定时任务已创建"),await oe(be||void 0)}a==null||a()}catch(Te){W(MV(Te,"保存失败"))}finally{j(!1)}}},Se=async Te=>{const xe=b7(Te);if(xe){Q(xe);try{await ztt(xe,{}),wt.success("定时任务已删除"),x===xe&&C(""),await oe(),a==null||a()}catch(be){wt.error(MV(be,"删除失败"))}finally{Q("")}}},Le=Te=>{const xe=Te.cron_expression||Te.schedule_cron||"未设置频率",be=Ecn(Te.next_run_at),Ie=Te.webhook_id?Te.webhook_name||J.get(Te.webhook_id)||Te.webhook_id:"",ne=be?`${xe} · 下次 ${be}`:xe;return Ie?`${ne} · 通知 ${Ie}`:ne},Ge=Te=>{const xe=P[Te.name];switch(Te.type){case"file":{const be=Te.file_type||void 0,Ie=xe?String(xe).split("/").pop():"";return Ie?E.jsxs("div",{className:"sm-file-value",children:[E.jsx("span",{className:"sm-file-name",children:Ie}),E.jsx(_t,{size:"small",type:"text",danger:!0,onClick:()=>ie(Te.name,""),children:"删除"})]}):E.jsxs(Im.Dragger,{accept:be,showUploadList:!1,customRequest:ue(Te.name),disabled:!!L[Te.name],className:"sm-upload",children:[E.jsx("p",{style:{marginBottom:4},children:E.jsx(SC,{style:{fontSize:24,color:"#8b5cf6"}})}),E.jsx("p",{style:{fontSize:12,margin:0,color:"#6b7280"},children:L[Te.name]?"上传中...":"点击或拖拽文件上传"})]})}case"boolean":return E.jsx(_c,{checked:!!xe,onChange:be=>ie(Te.name,be),size:"small"});case"number":case"integer":case"float":{const be=typeof xe=="number"?xe:typeof xe=="string"&&xe.trim()!==""?Number(xe):void 0;return E.jsx(qd,{style:{width:"100%"},value:Number.isNaN(be)?void 0:be,onChange:Ie=>ie(Te.name,Ie),placeholder:`请输入${Te.label}`,size:"middle"})}case"array":case"object":return E.jsx(Or.TextArea,{value:typeof xe=="string"?xe:xe!=null?JSON.stringify(xe):"",onChange:be=>ie(Te.name,be.target.value),autoSize:{minRows:1,maxRows:4},placeholder:Te.description||"JSON 格式"});default:return Te.enum&&Te.enum.length>0?E.jsx(Qn,{style:{width:"100%"},value:typeof xe=="string"?xe:void 0,onChange:be=>ie(Te.name,be),placeholder:`请选择${Te.label}`,options:Te.enum.map(be=>({value:be,label:be})),size:"middle"}):E.jsx(Or,{value:typeof xe=="string"||typeof xe=="number"?String(xe):"",onChange:be=>ie(Te.name,be.target.value),placeholder:`请输入${Te.label}`,size:"middle"})}},Be=()=>E.jsxs("div",{className:"sm-footer",children:[E.jsx(_t,{onClick:i,children:"关闭"}),E.jsx(_t,{type:"primary",loading:F,onClick:ke,children:A==="edit"?"保存修改":"创建任务"})]});return E.jsxs(Oi,{title:null,open:e,onCancel:i,width:920,centered:!0,footer:Be(),className:"schedule-modal",closable:!1,zIndex:1e4,styles:{container:{padding:0}},children:[E.jsxs("div",{className:"sm-header",children:[E.jsx(To,{className:"sm-header-icon"}),E.jsxs("div",{children:[E.jsx("div",{className:"sm-header-title",children:"定时触发配置"}),E.jsx("div",{className:"sm-header-sub",children:Z||n||r||"当前场景"})]}),E.jsx(_t,{type:"primary",icon:E.jsx(Al,{}),onClick:()=>re(),children:"创建任务"})]}),E.jsxs("div",{className:"sm-layout",children:[E.jsxs("aside",{className:"sm-task-panel",children:[E.jsx("div",{className:"sm-task-panel-head",children:E.jsxs("div",{children:[E.jsx("div",{className:"sm-task-panel-title",children:"已创建任务"}),E.jsxs("div",{className:"sm-task-panel-count",children:[s.length," 个定时任务"]})]})}),E.jsx(xa,{spinning:f,children:s.length===0?E.jsx("div",{className:"sm-task-empty",children:E.jsx(Kl,{image:Kl.PRESENTED_IMAGE_SIMPLE,description:"暂无定时任务"})}):E.jsx("div",{className:"sm-task-list",children:s.map(Te=>{const xe=b7(Te),be=A==="edit"&&x===xe,Ie=F1t(Te);return E.jsxs("div",{className:`sm-task-item${be?" sm-task-item--active":""}`,children:[E.jsxs("button",{type:"button",className:"sm-task-select",onClick:()=>te(Te),children:[E.jsxs("div",{className:"sm-task-item-main",children:[E.jsxs("div",{className:"sm-task-item-title",children:[E.jsx("span",{children:V1t(Te)}),E.jsx(Qs,{color:Ie?"green":"default",children:Ie?"启用":"停用"})]}),E.jsx("div",{className:"sm-task-item-meta",children:Le(Te)})]}),E.jsx(hk,{className:"sm-task-edit"})]}),E.jsx("div",{className:"sm-task-actions",children:E.jsx(UZ,{title:"删除定时任务",description:"删除后不可恢复,确认删除?",okText:"删除",cancelText:"取消",okButtonProps:{danger:!0,loading:G===xe},onConfirm:ne=>{ne==null||ne.stopPropagation(),Se(Te)},onCancel:ne=>ne==null?void 0:ne.stopPropagation(),children:E.jsx(_t,{type:"text",size:"small",danger:!0,icon:E.jsx(_f,{}),onClick:ne=>ne.stopPropagation()})})})]},xe||Te.name)})})})]}),E.jsxs("section",{className:"sm-editor",children:[E.jsxs("div",{className:"sm-editor-head",children:[E.jsxs("div",{children:[E.jsx("div",{className:"sm-editor-title",children:A==="edit"?"编辑任务定时器":"创建任务定时器"}),E.jsx("div",{className:"sm-editor-sub",children:"按当前智能体和场景执行定时触发"})]}),E.jsxs("div",{className:"sm-header-switch",children:[E.jsx(L1t,{type:"secondary",style:{fontSize:12},children:T?"已启用":"已停用"}),E.jsx(_c,{size:"small",checked:T,onChange:R})]})]}),E.jsxs("div",{className:"sm-body",children:[E.jsxs("div",{className:"sm-section",children:[E.jsxs("div",{className:"sm-label",children:["任务名称",E.jsx("span",{style:{color:"#ef4444",marginLeft:2},children:"*"})]}),E.jsx(Or,{value:w,onChange:Te=>S(Te.target.value),placeholder:"例如:每日店铺表现分析"})]}),E.jsxs("div",{className:"sm-section",children:[E.jsxs("div",{className:"sm-label",children:["通知地址",E.jsx("span",{style:{color:"#ef4444",marginLeft:2},children:"*"})]}),E.jsx("div",{className:"sm-param-hint",children:"任务触发后的消息通知地址"}),E.jsx(Qn,{allowClear:!0,showSearch:!0,loading:m,disabled:m,value:M||void 0,onChange:Te=>k(Te||""),placeholder:"请选择通知 Webhook",optionFilterProp:"label",options:X}),!m&&l.length===0&&E.jsx("div",{className:"sm-inline-alert",children:"暂无可用通知地址,请先在通知配置中创建"})]}),T?E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sm-section",children:[E.jsx("div",{className:"sm-label",children:"调度频率"}),E.jsx("div",{className:"sm-param-hint",children:"设置场景自动执行的时间间隔和触发时间"}),E.jsx(Ewe,{defaultValue:N,onChange:Te=>B(Te)},z)]}),(v||K)&&E.jsxs("div",{className:"sm-section",children:[E.jsx("div",{className:"sm-label",children:"执行参数"}),E.jsx("div",{className:"sm-param-hint",children:"定时执行时传给当前场景的参数"}),E.jsx("div",{className:"sm-form-panel",children:v?E.jsxs("div",{style:{padding:18,textAlign:"center"},children:[E.jsx(xa,{size:"small"}),E.jsx("span",{style:{marginLeft:8,fontSize:12,color:"#9ca3af"},children:"加载参数配置..."})]}):E.jsx("div",{className:"sm-dynamic-fields",children:d.map(Te=>E.jsxs("div",{className:"sm-field-item",children:[E.jsxs("div",{className:"sm-field-label",children:[Te.label||Te.name,Te.required&&E.jsx("span",{style:{color:"#ef4444",marginLeft:2},children:"*"})]}),Te.description&&E.jsx("div",{className:"sm-field-desc",children:Te.description}),Ge(Te)]},Te.name))})})]})]}):E.jsxs("div",{className:"sm-disabled-hint",children:[E.jsx(To,{style:{fontSize:28,color:"#d1d5db"}}),E.jsx(L1t,{type:"secondary",style:{fontSize:13},children:"任务已停用,保存后不会自动触发"})]}),Y&&E.jsx("div",{style:{color:"#ef4444",fontSize:12,padding:"8px 0 0",textAlign:"center"},children:Y})]})]})]})]})}function Q1t(e){return!!(e&&/\/api\/v1\/cognitive\/artifacts\/[^/]+\/download/.test(e))}function Ccn(e,t){if(!e)return t;const r=/filename\*=(?:UTF-8'')?([^;]+)/i.exec(e);if(r)try{return decodeURIComponent(r[1].replace(/["']/g,"").trim())}catch{}const n=/filename="?([^";]+)"?/i.exec(e);return n?n[1].trim():t}function Y1t(e){return e.startsWith("artifact:")?e.slice(9):null}async function Y$(e,t="文件"){const r=await fetch(`${Gi()}/api/v1/cognitive/artifacts/${e}/download`,{headers:fG()});if(!r.ok)throw new Error(`下载失败(HTTP ${r.status})`);const n=await r.blob(),i=Ccn(r.headers.get("content-disposition"),t),a=URL.createObjectURL(n),s=document.createElement("a");s.href=a,s.download=i,s.click(),URL.revokeObjectURL(a)}async function Scn(e){const t=await fetch(`${Gi()}/api/v1/cognitive/runs/${e}/report.md`,{headers:fG()});if(!t.ok)throw new Error(`报告打开失败(HTTP ${t.status})`);const r=await t.text(),n=URL.createObjectURL(new Blob([r],{type:"text/plain"}));window.open(n,"_blank","noopener,noreferrer"),setTimeout(()=>URL.revokeObjectURL(n),6e4)}const wcn=new Set(["完成","已完成","执行完成"]);function G1t(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function G$(e){return e==null?!1:typeof e=="string"?e.trim().length>0:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function Tcn(e){const{data:t}=e,r=[];return Array.isArray(t.output)?r.push(...t.output.filter(G$)):G$(t.output)&&r.push(t.output),Array.isArray(t.children)&&r.push(...t.children.filter(G$)),G$(t.content)&&r.push(G1t(t.content)&&typeof t.content.type=="string"?t.content:{type:typeof t.type=="string"?t.type:"markdown",title:t.title,content:t.content,fields_map:t.fields_map,input_params:t.input_params,streaming:t.streaming===!0}),r}function W1t(e){return(e==null?void 0:e.origin)==="live"&&e.status==="running"}function U1t(e){return[...e].filter(t=>t.type==="step"||t.type==="output").sort((t,r)=>t.sequence-r.sequence)}function W$(e,t){return e.event_id||`${e.type}-${e.sequence}-${t}`}function Rcn(e){const t=U1t(e);let r=-1;for(let n=t.length-1;n>=0;n-=1)if(t[n].type==="step"){r=n;break}return r<0?{previousEventKeys:[]}:{activeStepKey:W$(t[r],r),previousEventKeys:t.slice(0,r).map((n,i)=>W$(n,i))}}function Z1t(e){const t=e.content.trim();return t?/^✅\s*.*执行完成(?:\s|$)/.test(t)?!0:e.process?e.process.status==="running"&&e.stream_content_received!==!0?!0:e.process.status==="stopped"&&(e.execution_status==="stopped"||e.execution_status==="stopping"||["任务已停止","已停止","正在停止..."].includes(t)):!1:!1}function kcn(e){if(e.ui_payload)return!0;const t=e.content.trim();return!!(t&&!t.startsWith("⏳")&&!wcn.has(t)&&!Z1t(e))}function H1t(e){const t=e.trim();if(!t.startsWith("[")&&!t.startsWith("{"))return e;try{return JSON.parse(t)}catch{return e}}function NV(e){if(Array.isArray(e))return e.flatMap(NV);if(typeof e=="string"){const t=H1t(e);return t!==e?NV(t):e.trim()?[{type:"markdown",content:e}]:[]}if(typeof e=="number"||typeof e=="boolean")return[{type:"text",content:e}];if(!G1t(e))return[];if(typeof e.type!="string"&&typeof e.content=="string"){const t=H1t(e.content);if(t!==e.content){const r=NV(t);if(r.length>0)return r}}return[e]}function Mcn(e){return e.flatMap(t=>(t==null?void 0:t.type)==="step"&&Array.isArray(t.children)?NV(t.children).filter(r=>(r==null?void 0:r.streaming)!==!0):[])}function Ncn(e,t,r){if(!Array.isArray(e))return;const n=NV(e);if(!t)return n;const i=n.filter(s=>(s==null?void 0:s.type)!=="step");if(i.length>0)return i;if(r)return;const a=Mcn(n);return a.length>0?a:void 0}function zcn(e){const{data:t}=e,r=typeof t.step_name=="string"?t.step_name.trim():"",n=typeof t.title=="string"?t.title.trim():"",i=typeof t.message=="string"?t.message.trim():"";return e.type==="thinking"?i||"正在分析":e.type==="step"?r||n||i||`步骤 ${e.sequence}`:e.type==="output"?r?`${r} · 输出`:n||"步骤输出":e.type==="error"?i||"执行失败":e.type==="stopped"?i||"任务已停止":e.type==="recommend"?i||"生成推荐内容":n||i||`过程记录 ${e.sequence}`}function Ocn(e,t){if(e.type==="error")return"failed";if(e.type==="stopped")return"stopped";if(e.type==="thinking")return t==="running"?"running":"done";const r=String(e.data.status||"").toLowerCase();return["failed","error"].includes(r)?"failed":["stopped","cancelled","canceled"].includes(r)?"stopped":["running","pending","executing"].includes(r)?t==="failed"?"failed":t==="stopped"?"stopped":t==="completed"?"done":"running":"done"}function Bcn(e){return e==="running"?"执行中":e==="failed"?"失败":e==="stopped"?"已停止":"已完成"}function Pcn(e,t,r){const n=typeof e.duration_ms=="number"&&Number.isFinite(e.duration_ms),i=n?Math.max(0,e.duration_ms):0;if(e.status!=="running"){if(n)return i;const s=e.events.map(d=>Date.parse(d.timestamp||"")).filter(Number.isFinite);if(s.length===0)return 0;const o=Date.parse(t),l=Math.min(...s),u=Number.isFinite(o)?Math.max(o,...s):Math.max(...s);return Math.max(0,u-l)}const a=Date.parse(e.started_at||t);return Number.isFinite(a)?Math.max(i,r-a):i}function Dcn(e){if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleTimeString("zh-CN",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Lcn(e,t){return e.status==="running"?`思考中(已用时 ${t} 秒)`:e.status==="failed"?`思考失败(用时 ${t} 秒)`:e.status==="stopped"?`已停止(用时 ${t} 秒)`:`用时 ${t} 秒`}function Vcn({process:e,messageTimestamp:t,autoCollapseOnTerminal:r=!0,hasOutputPayload:n=!1}){const i=I.useMemo(()=>U1t((e==null?void 0:e.events)||[]),[e==null?void 0:e.events]),a=I.useMemo(()=>i.map((S,T)=>W$(S,T)),[i]),s=I.useMemo(()=>Rcn(i),[i]),[o,l]=I.useState(()=>W1t(e)),[u,d]=I.useState(()=>new Set(a)),[h,f]=I.useState(()=>Date.now()),p=I.useRef(""),m=I.useRef(new Set),g=e==null?void 0:e.started_at,v=e==null?void 0:e.origin,y=e?`${v||""}\0${g||""}`:"",A=W1t(e),b=I.useRef(y),x=I.useRef(e==null?void 0:e.status);if(I.useEffect(()=>{if((e==null?void 0:e.status)!=="running")return;f(Date.now());const S=window.setInterval(()=>f(Date.now()),1e3);return()=>window.clearInterval(S)},[e==null?void 0:e.status]),I.useEffect(()=>{const S=e==null?void 0:e.status,T=b.current!==y,R=x.current==="running"&&S!==void 0&&S!=="running";T?(l(A),d(new Set(a)),m.current.clear(),p.current=`${y}\0__reset__`):R?(r&&l(!1),d(new Set(a)),m.current.clear()):S!==void 0&&S!=="running"&&d(M=>{const k=new Set(M);for(const z of a)m.current.has(z)||k.add(z);return k}),b.current=y,x.current=S},[r,a,e==null?void 0:e.status,y,A]),I.useEffect(()=>{d(S=>{const T=new Set(S);let R=!1;for(const M of a)!T.has(M)&&!m.current.has(M)&&(T.add(M),R=!0);return R?T:S})},[a]),I.useEffect(()=>{if((e==null?void 0:e.status)!=="running"||v!=="live"||!s.activeStepKey)return;const S=`${y}\0${s.activeStepKey}`;p.current!==S&&(p.current=S,s.previousEventKeys.length!==0&&d(T=>{const R=new Set(T);for(const M of s.previousEventKeys)m.current.has(M)||R.add(M);return R}))},[e==null?void 0:e.status,v,y,s]),!e)return null;const C=Math.round(Pcn(e,t,h)/1e3),w=i.length>0||e.status==="running";return E.jsxs("section",{className:`wandox-message-process wandox-message-process--${e.status}`,children:[E.jsxs("button",{type:"button",className:"wandox-message-process__toggle",onClick:()=>w&&l(S=>!S),"aria-expanded":w?o:void 0,disabled:!w,children:[E.jsx("span",{className:"wandox-message-process__summary-icon","aria-hidden":"true",children:e.status==="running"?E.jsx("span",{className:"wandox-message-process__spinner"}):E.jsx("svg",{viewBox:"0 0 20 20",width:"16",height:"16",fill:"none",children:e.status==="failed"?E.jsx("path",{d:"m6.5 6.5 7 7m0-7-7 7",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"}):e.status==="stopped"?E.jsx("rect",{x:"6.2",y:"6.2",width:"7.6",height:"7.6",rx:"1",fill:"currentColor"}):E.jsx("path",{d:"M5.5 10.3 8.4 13l6.1-6",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),E.jsx("span",{children:Lcn(e,C)}),w&&E.jsx("svg",{className:`wandox-message-process__chevron${o?" wandox-message-process__chevron--expanded":""}`,viewBox:"0 0 20 20",width:"14",height:"14",fill:"none","aria-hidden":"true",children:E.jsx("path",{d:"m8 6.5 3.5 3.5L8 13.5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})})]}),o&&w&&E.jsxs("div",{className:"wandox-message-process__events",children:[i.map((S,T)=>{const R=Ocn(S,e.status),M=n&&S.type==="output"?[]:Tcn(S),k=Dcn(S.timestamp),z=W$(S,T),O=M.length>0,N=O&&m.current.has(z)&&!u.has(z),B=E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"wandox-message-process__event-title-group",children:[E.jsx("div",{className:"wandox-message-process__event-title",children:zcn(S)}),O&&E.jsx("svg",{className:`wandox-message-process__event-chevron${N?" wandox-message-process__event-chevron--expanded":""}`,viewBox:"0 0 20 20",width:"13",height:"13",fill:"none","aria-hidden":"true",children:E.jsx("path",{d:"m8 6.5 3.5 3.5L8 13.5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})}),R!=="done"&&E.jsx("span",{className:`wandox-message-process__event-status wandox-message-process__event-status--${R}`,children:Bcn(R)})]}),k&&E.jsx("time",{className:"wandox-message-process__event-time",children:k})]});return E.jsxs("div",{className:`wandox-message-process__event wandox-message-process__event--${R}`,children:[E.jsx("span",{className:"wandox-message-process__event-marker","aria-hidden":"true",children:R==="running"&&E.jsx("span",{className:"wandox-message-process__event-loading-spinner"})}),E.jsxs("div",{className:"wandox-message-process__event-content",children:[O?E.jsx("button",{type:"button",className:"wandox-message-process__event-header wandox-message-process__event-header--toggle","aria-expanded":N,onClick:()=>d(P=>{const D=new Set(P);return D.has(z)?(D.delete(z),m.current.add(z)):(D.add(z),m.current.delete(z)),D}),children:B}):E.jsx("div",{className:"wandox-message-process__event-header",children:B}),N&&M.map((P,D)=>{const L=`${S.sequence}-payload-${D}`;return E.jsx("div",{className:"wandox-message-process__event-payload",children:E.jsx(IS,{payload:P})},L)})]})]},z)}),e.truncated===!0&&E.jsxs("div",{className:"wandox-message-process__notice wandox-message-process__notice--footer",children:["过程记录较多,当前展示前 ",i.length," 条"]})]})]})}const Fcn=10,jcn=48;function qcn({scrollTop:e,hasMore:t,loading:r,failed:n}){return e<=jcn&&t&&!r&&!n}const Qcn={loading:"加载中...",loadMore:"加载更多",executionResult:"执行结果",executableActions:"可执行动作"};function A7(e,t){return(e==null?void 0:e[t])||Qcn[t]}function Iwe(e){if(typeof e!="string")return;const t=e.trim();if(!(!t||t.toLowerCase()==="empty"))return t}function K1t(e){var r;const t=(r=e.meta_content)==null?void 0:r.artifacts;return Array.isArray(t)?t.filter(n=>!!n&&typeof n=="object"&&typeof n.artifact_id=="string"):[]}function Ycn({messageId:e,dataIndex:t,role:r,className:n,containerRef:i,forceRender:a,children:s}){const o=I.useRef(null),[l,u]=I.useState(a);return I.useEffect(()=>{a&&u(!0)},[a]),I.useEffect(()=>{const d=o.current,h=i.current;if(!d||!h||l)return;if(!("IntersectionObserver"in window)){u(!0);return}const f=new IntersectionObserver(p=>{p.some(m=>m.isIntersecting)&&(u(!0),f.disconnect())},{root:h,rootMargin:"600px 0px"});return f.observe(d),()=>f.disconnect()},[i,l]),E.jsx("div",{ref:o,"data-message-id":e,"data-message-index":t,className:n,style:l?void 0:{minHeight:r==="user"?64:112},"aria-busy":!l,children:l?s:E.jsx("div",{className:"wandox-message-deferred-placeholder","aria-hidden":"true"})})}function Cwe({messages:e,executing:t,auth:r,ssoToken:n,ssoDomain:i,ssoCompany:a,apiBaseUrl:s,ossUploadUrl:o,uploadFile:l,actionExecuteUrl:u,batchActionExecuteUrl:d,onExecuteAction:h,onExecuteBatchActions:f,getPlaybookDetail:p,labels:m,autoCollapseProcessOnTerminal:g=!0,onExecutePlaybook:v,onFillPlaybookParams:y,onRespondToProposal:A,messagesTotal:b,hasMoreMessages:x,loadMoreMessages:C,loading:w,messageToolbar:S,onOpenActionDrawer:T,emptyContent:R,initialLoadingContent:M,containerRef:k,endRef:z,className:O,conversationKey:N}){var de;const B=o??(s!==void 0?`${s.replace(/\/$/,"")}/api/v1/oss/upload2`:void 0),P=T1t(r,{ssoToken:n,ssoDomain:i,ssoCompany:a}),D=!!(h||u||s!==void 0||P.accessToken||P.tenantId||P.domain),L=I.useRef(null),V=I.useRef(null),F=k||L,j=z||V,G=I.useRef(0),Q=I.useRef(!1),Y=I.useRef(null),W=I.useRef(!1),Z=I.useRef(!1),H=I.useRef(0),K=I.useRef(0),J=I.useRef(null),X=I.useRef([]),$=I.useRef(null),_=I.useRef(!1),re=I.useRef(!1),te=I.useRef(!1),le=I.useRef(null),se=I.useRef(N),[oe,ie]=I.useState(!0),[ue,ve]=I.useState(!1),[fe,ke]=I.useState(!1),Se=!!(C&&e.length>0&&(x??(b!==void 0&&e.length<b))),Le=e.some(pe=>pe.retrigger_status==="executing"),Ge=e.some(pe=>{var Ae;return((Ae=pe.process)==null?void 0:Ae.status)==="running"}),Be=!!M;se.current!==N&&(se.current=N,G.current=0,_.current=!1,Q.current=!1,W.current=!1,Z.current=!1,H.current=0,K.current=0,J.current=null,re.current=!1,te.current=!1,(de=le.current)==null||de.call(le),le.current=null);const Te=I.useCallback(()=>{const pe=F.current;return pe?pe.scrollHeight-pe.scrollTop-pe.clientHeight<100:!0},[F]),xe=I.useCallback((pe="smooth")=>{const Ae=F.current;Ae&&(Ae.scrollLeft=0,pe==="auto"?Ae.scrollTop=Ae.scrollHeight:Ae.scrollTo({top:Ae.scrollHeight,behavior:pe}))},[F]),be=I.useCallback(()=>{for(const pe of X.current)clearTimeout(pe);X.current=[]},[]),Ie=I.useCallback(()=>{be(),$.current&&clearTimeout($.current),$.current=null,W.current=!1,Z.current=!1,H.current=0,K.current=0,J.current=null},[be]),ne=I.useCallback(()=>{const pe=F.current;if(!pe)return;const Ae=J.current;if(Ae){const Oe=Array.from(pe.querySelectorAll(".wandox-message")).find(Ye=>Ye.dataset.messageId===Ae.messageId);if(Oe){const Ye=Oe.getBoundingClientRect().top-pe.getBoundingClientRect().top;pe.scrollTop+=Ye-Ae.viewportOffset;return}}const Me=pe.scrollHeight-H.current;pe.scrollTop=Math.max(0,K.current+Me)},[F]),me=I.useCallback(()=>{be(),$.current&&(clearTimeout($.current),$.current=null),ne(),X.current=[100,300,600].map(pe=>setTimeout(()=>{ne(),pe===600&&Ie()},pe))},[be,Ie,ne]),ae=I.useCallback(()=>{$.current&&clearTimeout($.current),$.current=setTimeout(()=>{$.current=null,W.current&&(ne(),Ie())},800)},[Ie,ne]),he=I.useCallback(async()=>{if(!C||!Se||w||W.current)return;const pe=F.current;if(pe){H.current=pe.scrollHeight,K.current=pe.scrollTop;const Me=pe.getBoundingClientRect().top,Oe=Array.from(pe.querySelectorAll(".wandox-message")).find(Ve=>Ve.getBoundingClientRect().bottom>Me),Ye=Oe==null?void 0:Oe.dataset.messageId;J.current=Oe&&Ye?{messageId:Ye,viewportOffset:Oe.getBoundingClientRect().top-Me}:null}W.current=!0,Z.current=!0,ve(!0),ke(!1);let Ae=!1;try{await C()}catch{Ae=!0,ke(!0)}finally{ve(!1),Ae?Ie():ae()}},[F,ae,Se,C,w,Ie]);I.useEffect(()=>{$.current&&(clearTimeout($.current),$.current=null),be(),ve(!1),ke(!1)},[be,N]),I.useEffect(()=>()=>{var pe;be(),$.current&&clearTimeout($.current),(pe=le.current)==null||pe.call(le)},[be]),I.useLayoutEffect(()=>{const pe=e.length,Ae=G.current;if(pe>Ae){if(W.current){me(),G.current=pe;return}const Me=setTimeout(()=>{const Oe=Te();Ae===0?xe("auto"):Oe&&!Q.current&&xe("smooth")},100);return G.current=pe,()=>clearTimeout(Me)}G.current=pe},[Te,e.length,me,xe]);const ee=(()=>{if(e.length===0)return"";const pe=e[e.length-1];try{return JSON.stringify({outputs:pe==null?void 0:pe.outputs,uiPayload:pe==null?void 0:pe.ui_payload,content:pe==null?void 0:pe.content,executionStatus:pe==null?void 0:pe.execution_status,process:pe==null?void 0:pe.process})}catch{return`${(pe==null?void 0:pe.id)||""}:${(pe==null?void 0:pe.execution_status)||""}`}})();I.useEffect(()=>{if(e.length===0||W.current||Z.current)return;if(e[e.length-1].role==="assistant"&&!Q.current){const Ae=setTimeout(()=>{const Me=F.current;Me&&Me.scrollBy({top:300,behavior:"smooth"})},100);return()=>clearTimeout(Ae)}},[F,ee,e]),I.useEffect(()=>{if(!t||W.current||Z.current||Q.current)return;const pe=setTimeout(()=>{xe("smooth")},100);return()=>clearTimeout(pe)},[t,ee,xe]),I.useEffect(()=>{const pe=F.current;if(!pe)return;const Ae=()=>{Y.current&&clearTimeout(Y.current),Q.current=!0,Y.current=setTimeout(()=>{Q.current=!1},500),qcn({scrollTop:pe.scrollTop,hasMore:Se,loading:w||ue||W.current,failed:fe})&&he()};return pe.addEventListener("scroll",Ae),()=>{pe.removeEventListener("scroll",Ae),Y.current&&clearTimeout(Y.current)}},[F,Se,fe,w,ue,he]),I.useLayoutEffect(()=>{var Ce;if(!Be)return;if(w){if(re.current||te.current||e.length>0)return;re.current=!0,te.current=!1,_.current=!1,ie(!1);return}if(!re.current||te.current||Z.current)return;if(te.current=!0,e.length===0){_.current=!0,ie(!0);return}(Ce=le.current)==null||Ce.call(le);let pe=0,Ae=0,Me=0,Oe=-1;const Ye=F.current,Ve=typeof ResizeObserver<"u"&&Ye?new ResizeObserver(()=>{Me=0}):null;Ve&&Ye&&Ve.observe(Ye);const rt=()=>{const Xe=F.current;if(!Xe){_.current=!0,ie(!0);return}Xe.scrollLeft=0,Xe.scrollTop=Xe.scrollHeight;const ye=Xe.scrollHeight;if(Me=ye===Oe?Me+1:0,Oe=ye,Ae+=1,Me>=3||Ae>=30){Xe.scrollTop=Xe.scrollHeight,Ve==null||Ve.disconnect(),le.current=null,_.current=!0,ie(!0);return}pe=requestAnimationFrame(rt)};return pe=requestAnimationFrame(rt),le.current=()=>{cancelAnimationFrame(pe),Ve==null||Ve.disconnect()},()=>{var Xe;(Xe=le.current)==null||Xe.call(le),le.current=null}},[F,Be,w,e.length]),I.useEffect(()=>{if(Be||e.length===0){e.length===0&&(_.current=!1);return}if(Z.current||w||_.current)return;_.current=!0;const pe=requestAnimationFrame(()=>xe("auto"));return()=>cancelAnimationFrame(pe)},[Be,w,e.length,xe]);const ce=!!(Be&&!ue&&(w&&e.length===0||!oe));return E.jsx(a1t.Provider,{value:{onExecutePlaybook:v,onFillPlaybookParams:y,getPlaybookDetail:p,uploadFile:l,ossUploadUrl:B,auth:P},children:E.jsxs("div",{className:`wandox-chat-messages${O?` ${O}`:""}`,ref:F,children:[e.length===0&&!ce&&(w?M??R:R),ce&&E.jsx("div",{className:"wandox-chat-initial-loading-overlay","aria-live":"polite",children:M}),Se&&(ue||fe)&&E.jsx("div",{className:"wandox-load-more-container",children:ue?E.jsx("output",{className:"wandox-load-more-loading wandox-load-more-status","aria-live":"polite",children:A7(m,"loading")}):E.jsx("button",{type:"button",className:"wandox-load-more-btn",onClick:()=>{he()},disabled:w,children:A7(m,"loadMore")})}),e.map((pe,Ae)=>{var Xe;const Me=Ae===e.length-1,Oe=`${pe.role}:${pe.id}`,Ye=pe.message_id||pe.id,Ve=Z1t(pe),rt=Array.isArray(pe.outputs),Ce=Ncn(pe.outputs,pe.process,kcn(pe));return E.jsxs(Ycn,{messageId:Ye,dataIndex:Ae,role:pe.role,containerRef:F,forceRender:Ae>=e.length-3,className:`wandox-message ${pe.role}${pe.role==="user"&&pe.proposal?" wandox-message--proposal":""}`,children:[pe.role==="user"&&pe.proposal&&pe.content&&E.jsx("div",{className:"wandox-message-content wandox-message-content--user-text",children:pe.content}),E.jsxs("div",{className:"wandox-message-content",children:[pe.role==="assistant"&&pe.retrigger_status==="executing"&&!pe.process&&E.jsxs("output",{className:"wandox-retrigger-state wandox-retrigger-state--loading","aria-live":"polite",children:[E.jsxs("span",{className:"wandox-retrigger-loader","aria-hidden":"true",children:[E.jsx("span",{}),E.jsx("span",{}),E.jsx("span",{})]}),E.jsxs("span",{className:"wandox-retrigger-state__copy",children:[E.jsx("strong",{children:"正在重新生成"}),E.jsx("span",{children:"正在重新分析并整理结果"})]})]}),pe.role==="assistant"&&pe.retrigger_status==="failed"&&!pe.process&&E.jsxs("div",{className:"wandox-retrigger-state wandox-retrigger-state--failed",role:"alert",children:[E.jsx("span",{className:"wandox-retrigger-error-icon","aria-hidden":"true"}),E.jsxs("span",{className:"wandox-retrigger-state__copy",children:[E.jsx("strong",{children:"重新生成失败"}),E.jsx("span",{children:pe.retrigger_error||"服务暂时无法完成请求,请稍后重试"})]})]}),pe.role==="user"&&pe.proposal?E.jsx(I1t,{proposal:pe.proposal,disabled:!0,proposalStatus:pe.proposal_status,initialFilledParams:(Xe=pe.meta_content)==null?void 0:Xe.filled_params,onConfirm:()=>{},onReject:()=>{}}):pe.role==="user"&&E.jsxs(E.Fragment,{children:[pe.content,pe.attachments&&pe.attachments.length>0&&E.jsx("div",{className:"wandox-message-attachments",children:pe.attachments.map(ye=>ye.type==="image"?E.jsx("div",{className:"wandox-message-attachment-image-wrapper",children:E.jsx(_ge,{src:ye.url,alt:ye.name||"图片",className:"wandox-message-attachment-image"})},ye.url):E.jsxs("a",{href:ye.url,target:"_blank",rel:"noopener noreferrer",className:"wandox-message-attachment-file",children:[E.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[E.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),E.jsx("polyline",{points:"14 2 14 8 20 8"}),E.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),E.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),E.jsx("polyline",{points:"10 9 9 9 8 9"})]}),E.jsx("span",{children:ye.name||"文件"})]},ye.url||ye.name))})]}),pe.role==="assistant"&&E.jsx(Vcn,{process:pe.process,messageTimestamp:pe.timestamp,autoCollapseOnTerminal:g,hasOutputPayload:rt}),Ce&&Ce.length>0&&E.jsx("div",{className:"wandox-outputs-container",children:Ce.map((ye,Pe)=>{const Ne=Iwe(ye.title),Fe=ye.type==="table"&&Me&&pe.actions&&pe.actions.length>0&&D;return E.jsxs("div",{className:"wandox-execution-result",children:[(Ne||ye.step_index)&&E.jsx("div",{className:"wandox-result-title",children:Ne||(ye.step_index?`Step${ye.step_index}:${ye.step_name||""}`:A7(m,"executionResult"))}),E.jsx("div",{className:"wandox-result-body",children:Fe?E.jsxs(E.Fragment,{children:[E.jsx(yV,{params:ye.input_params}),E.jsx(N1t,{payload:ye,actions:pe.actions??[],auth:P,apiBaseUrl:s,actionExecuteUrl:u,batchActionExecuteUrl:d,onExecuteAction:h,onExecuteBatchActions:f})]}):E.jsx(IS,{payload:ye})})]},`output-${Pe}-${Ne||ye.step_index}`)})}),pe.ui_payload&&!rt&&(()=>{var tt,We,Je,Ee,gt,pt;const ye=pe.ui_payload,Pe=Iwe((tt=pe.ui_payload)==null?void 0:tt.title),Ne=Iwe((Je=(We=pe.ui_payload)==null?void 0:We.output_data)==null?void 0:Je.title),Fe=(ye==null?void 0:ye.type)==="table"&&Me&&pe.actions&&pe.actions.length>0&&D;return E.jsxs("div",{className:"wandox-execution-result",children:[(Pe||Ne||((Ee=pe.ui_payload)==null?void 0:Ee.step_index))&&E.jsx("div",{className:"wandox-result-title",children:Pe||Ne||((gt=pe.ui_payload)!=null&>.step_index?`Step${pe.ui_payload.step_index}:${((pt=pe.ui_payload)==null?void 0:pt.step_name)||""}`:A7(m,"executionResult"))}),E.jsx("div",{className:"wandox-result-body",children:Fe?E.jsxs(E.Fragment,{children:[E.jsx(yV,{params:ye.input_params}),E.jsx(N1t,{payload:ye,actions:pe.actions??[],auth:P,apiBaseUrl:s,actionExecuteUrl:u,batchActionExecuteUrl:d,onExecuteAction:h,onExecuteBatchActions:f})]}):E.jsx(IS,{payload:pe.ui_payload})})]})})(),pe.role==="assistant"&&!pe.retrigger_status&&pe.content&&(pe.content.startsWith("❌")||pe.content.startsWith("⏳")&&!Ce&&!pe.process)&&E.jsx(IS,{payload:L$(pe.content.replace(/^❌\s*/,""))}),pe.role==="assistant"&&!pe.retrigger_status&&!Ce&&!pe.ui_payload&&!pe.proposal&&pe.content&&!Ve&&!pe.content.startsWith("❌")&&!pe.content.startsWith("⏳")&&E.jsx("div",{className:"wandox-execution-result",children:E.jsx(IS,{payload:L$(pe.content)})}),pe.role==="assistant"&&K1t(pe).length>0&&E.jsx("div",{className:"wandox-message-artifacts",children:K1t(pe).map(ye=>{const Pe=ye.oss_url||`${(s==null?void 0:s.replace(/\/$/,""))||""}/api/v1/cognitive/artifacts/${ye.artifact_id}/download`;return E.jsx(u1t,{href:Pe,onClick:ye.oss_url?void 0:Ne=>{Ne.preventDefault(),Y$(ye.artifact_id,ye.filename||ye.artifact_id).catch(Fe=>{})},children:ye.filename||ye.artifact_id},ye.artifact_id)})}),pe.role==="assistant"&&pe.proposal&&E.jsx(I1t,{proposal:pe.proposal,disabled:t,proposalStatus:pe.proposal_status,onConfirm:(ye,Pe)=>{var Fe,tt,We;const Ne=(Fe=pe.proposal)==null?void 0:Fe.options.find(Je=>Je.id===ye);A==null||A({proposal_id:((tt=pe.proposal)==null?void 0:tt.proposal_id)??"",proposal_action:"confirm",selected_option_id:ye,filled_params:Pe,messageId:pe.id,proposalMessage:(We=pe.proposal)==null?void 0:We.message,optionTitle:Ne==null?void 0:Ne.title})},onReject:()=>{var ye;A==null||A({proposal_id:((ye=pe.proposal)==null?void 0:ye.proposal_id)??"",proposal_action:"reject",messageId:pe.id})}}),pe.role==="assistant"&&pe.actions&&pe.actions.length>0&&T&&(()=>{const ye=pe.ui_payload;return(!!(Ce!=null&&Ce.some(Ne=>(Ne==null?void 0:Ne.type)==="table"))||(ye==null?void 0:ye.type)==="table"&&!rt)&&D?null:E.jsx("div",{className:"wandox-execution-results",children:E.jsx("button",{type:"button",className:"wandox-execution-results-btn",disabled:!Me,"aria-disabled":!Me,title:Me?void 0:"仅最新一条消息可执行动作",onClick:()=>{var Ne;Me&&T(A7(m,"executableActions"),((Ne=pe.actions)==null?void 0:Ne.map(Fe=>({action_id:Fe.action_id,playbook_id:Fe.playbook_id,label:Fe.display_name||"执行",params:Fe.params,params_fields_map:Fe.params_fields_map,status:Fe.status,supports_batch:Fe.supports_batch,batch_max_items:Fe.batch_max_items,batch_id:Fe.batch_id,outputs:Fe.outputs})))||[])},children:E.jsxs("div",{className:"wandox-execution-results-content",children:[E.jsxs("div",{className:"wandox-execution-results-text",children:[A7(m,"executableActions")," (",pe.actions.length,")"]}),E.jsx("div",{className:"wandox-execution-results-arrow",children:E.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-label":"箭头",role:"img",children:E.jsx("polyline",{points:"9 18 15 12 9 6"})})})]})})})})(),S==null?void 0:S(pe,Me)]})]},Oe)}),t&&!Le&&!Ge&&E.jsx("div",{className:"wandox-message assistant",children:E.jsx("div",{className:"wandox-message-content",children:E.jsx("div",{className:"wandox-typing-indicator",children:E.jsx("span",{className:"wandox-typing-dot"})})})}),E.jsx("div",{ref:j})]})})}function J1t(e){const t=Gi(),r=I.useCallback(async n=>{const{data:i}=await Xg({playbook_id:n});return i},[]);return E.jsx(Cwe,{apiBaseUrl:t,getPlaybookDetail:r,...e})}function Gcn(e){var n;const t=e.outputs,r=e.ui_payload;return!!((t==null?void 0:t.type)==="table"||(r==null?void 0:r.type)==="table"||Array.isArray(e.outputs)&&e.outputs.some(i=>(i==null?void 0:i.type)==="table")||((n=e.meta_content)==null?void 0:n.output_type)==="table")}function Wcn(e,t){const r=URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.click(),URL.revokeObjectURL(r)}function Swe(e){var t;return(t=e.meta_content)!=null&&t.playbook_id?"数据报表":"对话内容"}function X1t(){return new Date().toISOString().slice(0,10)}async function Ucn(e){const t=e.message_id||e.id;if(t)try{await _1t(String(t),"pdf",Swe(e));return}catch{}Zcn(e)}function Zcn(e){const t=`${Swe(e)}_${X1t()}`,r=document.querySelector(`[data-message-id="${e.message_id||e.id}"] .wandox-message-content`);if(!r){wt.warning("无法定位消息内容");return}const n=window.open("","_blank");if(!n){wt.warning("请允许弹出窗口");return}n.document.write(`<!DOCTYPE html><html><head><meta charset="utf-8"><title>${t}</title><style>body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;padding:20px;color:#333}table{border-collapse:collapse;width:100%}th,td{border:1px solid #d9d9d9;padding:6px 8px;font-size:13px;text-align:left}th{background:#fafafa}img{max-width:100%}pre{white-space:pre-wrap;word-break:break-all;font-size:12px;background:#f5f5f5;padding:12px;border-radius:4px}button,.ant-btn,.ant-tooltip-open{display:none!important}</style></head><body>${r.innerHTML}</body></html>`),n.document.close(),n.onload=()=>{n.print(),n.close()}}async function Hcn(e){const t=e.message_id||e.id;if(t)try{await _1t(String(t),"docx",Swe(e))}catch{wt.warning("导出 Word 失败,请稍后再试")}}async function _1t(e,t,r){const n=await Ht({method:"GET",url:`/api/v1/agents/messages/${encodeURIComponent(e)}/export`,params:{format:t},responseType:"blob",requestType:"json"}),i=n instanceof Blob?n:n.data;if(!i)throw new Error("empty export response");const a=t==="docx"?"docx":"pdf",s=t==="docx"?"application/msword":"application/pdf";Wcn(new Blob([i],{type:i.type||s}),`${r}_${X1t()}.${a}`)}function Kcn(){if(typeof window>"u")return"";const e=window.location.origin;return e.startsWith("http://localhost")||e.startsWith("http://127.0.0.1")||(e==="https://ai.wandox.com"||e==="https://test-ai.wandox.com")?e:"https://ai.wandox.com"}function Jcn(e){const t=e.message_id||e.id,r=new URLSearchParams;return r.set("message_id",String(t)),`${Kcn()}/result-editor/?${r.toString()}`}function Xcn(e){window.open(Jcn(e),"_blank","noopener,noreferrer")}function zV(e){return(e==null?void 0:e.trim().toLowerCase())==="maiduo"}function _cn(e){const t=encodeURIComponent(String(e));return`${typeof window>"u"?"":window.location.origin}/work-lite/?execution_id=${t}`}const $cn=["回答不准确","缺少数据依据","未解决问题","内容不完整","表达不清晰","其他"],$1t={visible:!1,messageId:"",name:"",description:"",loading:!1},U$={visible:!1,messageId:"",agentId:"",playbookId:"",playbookName:""};function wwe(e){var t,r,n;return(e==null?void 0:e.playbook_id)||((t=e==null?void 0:e.meta_content)==null?void 0:t.playbook_id)||((n=(r=e==null?void 0:e.actions)==null?void 0:r[0])==null?void 0:n.playbook_id)||""}function eun(){return E.jsx("div",{className:"wandox-chat-empty-icon",children:E.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[E.jsx("path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"}),E.jsx("path",{d:"M20 2v4"}),E.jsx("path",{d:"M22 4h-4"}),E.jsx("circle",{cx:"4",cy:"20",r:"2"})]})})}function ebt(){return E.jsxs("output",{className:"wandox-chat-history-loading","aria-label":"正在加载历史记录",children:[E.jsxs("div",{className:"wandox-chat-history-loading-aura","aria-hidden":"true",children:[Array.from({length:12},(e,t)=>({angle:t*30,delay:t*.08})).map(({angle:e,delay:t})=>E.jsx("span",{className:"wandox-chat-history-ray",style:{"--ray-angle":`${e}deg`,"--ray-delay":`${t}s`}},e)),E.jsx("img",{className:"wandox-loading-brand-mark",src:zk,alt:"","aria-hidden":"true"})]}),E.jsx("div",{className:"wandox-chat-history-loading-text",children:"正在加载历史记录..."})]})}function tun({hasPlaybooks:e}){const{t}=Ok();return E.jsxs("div",{className:"wandox-chat-empty",children:[E.jsx(eun,{}),E.jsx("div",{className:"wandox-chat-empty-title",children:t("chat.startConversation")}),E.jsx("div",{className:"wandox-chat-empty-desc",children:t("chat.startConversationDesc")}),e&&E.jsxs("div",{className:"wandox-chat-empty-hint",children:[E.jsx("span",{className:"wandox-hint-icon",children:"💡"}),E.jsx("span",{children:t("chat.quickActionHint")})]})]})}function tbt({msg:e,domain:t,onSolidifyMessage:r,showSolidify:n=!0,onOpenScheduleDialog:i,onRetrigger:a,feedbackRating:s=null,feedbackPending:o=!1,onFeedback:l,extraActions:u}){var B;const{t:d}=Ok(),[h,f]=I.useState(!1),[p,m]=I.useState([]),[g,v]=I.useState(""),y=I.useRef(null);if(I.useEffect(()=>{var P;h&&((P=y.current)==null||P.scrollIntoView({behavior:"smooth",block:"center"}))},[h]),e.role!=="assistant")return null;const A=e.execution_status==="executing"||e.execution_status==="stopping",b=!!e.message_id&&!A&&e.retrigger_status!=="executing"&&e.retrigger_status!=="failed",x=String(e.execution_id??"").trim(),C=!!x&&zV(t),w=!!e.message_id&&!A&&!!l,S=P=>{m(D=>D.includes(P)?D.filter(L=>L!==P):[...D,P])},T=()=>{f(!1),l==null||l(e,1)},R=()=>{if(s===-1){f(!1),l==null||l(e,-1);return}f(!0)},M=async()=>{await(l==null?void 0:l(e,-1,{tags:p,text:g.trim()}))&&f(!1)},k=!!e.message_id&&!Gcn(e)&&e.execution_status!=="failed"&&((B=e.process)==null?void 0:B.status)!=="failed",z=[{key:"edit",icon:E.jsx(hk,{}),label:"在线编辑"},{type:"divider"},{key:"word",icon:E.jsx(oye,{}),label:"导出 Word"},{key:"pdf",icon:E.jsx(IH,{}),label:"导出 PDF"}],O=({key:P})=>{P==="edit"?Xcn(e):P==="word"?Hcn(e):P==="pdf"&&Ucn(e)},N=async()=>{const P=e.content??"";if(!P){wt.warning("没有可复制的内容");return}try{await navigator.clipboard.writeText(P),wt.success("已复制");return}catch{}const D=document.createElement("textarea");D.value=P,D.style.position="fixed",D.style.opacity="0",document.body.appendChild(D),D.select();const L=document.execCommand("copy");document.body.removeChild(D),L?wt.success("已复制"):wt.warning("复制失败,请手动选择内容复制")};return E.jsxs("div",{className:"wandox-message-toolbar-shell",children:[E.jsxs("div",{className:"wandox-solidify-button-container",children:[e.role==="assistant"&&E.jsx(Yn,{title:"复制",children:E.jsx(_t,{type:"text",icon:E.jsx(k$e,{}),"aria-label":"复制",onClick:()=>void N()})}),w&&E.jsxs(E.Fragment,{children:[E.jsx(Yn,{title:"有帮助",children:E.jsx(_t,{type:"text",className:`wandox-message-feedback-button${s===1?" wandox-message-feedback-button--active":""}`,icon:s===1?E.jsx(DMr,{}):E.jsx(FMr,{}),"aria-label":"点赞","aria-pressed":s===1,disabled:o,onClick:T})}),E.jsx(Yn,{title:"需改进",children:E.jsx(_t,{type:"text",className:`wandox-message-feedback-button${s===-1?" wandox-message-feedback-button--active":""}`,icon:s===-1?E.jsx(cMr,{}):E.jsx(hMr,{}),"aria-label":"点踩","aria-pressed":s===-1,"aria-expanded":h,disabled:o,onClick:R})})]}),n&&e.message_id&&r&&E.jsx(Yn,{title:d("chat.solidify"),children:E.jsx(_t,{type:"text",icon:E.jsx(t7r,{}),onClick:()=>e.message_id&&r(e.message_id)})}),e.message_id&&!!wwe(e)&&E.jsx(Yn,{title:"定时触发配置",children:E.jsx(_t,{type:"text",icon:E.jsx(To,{}),onClick:()=>i(e.message_id||e.id)})}),C&&E.jsx(Yn,{title:"场景调整",children:E.jsx(_t,{type:"text",icon:E.jsx(hk,{}),onClick:()=>window.open(_cn(x),"_blank","noopener,noreferrer")})}),b&&a&&E.jsx(Yn,{title:"重新生成",children:E.jsx(_t,{type:"text",icon:E.jsx(i7r,{}),onClick:()=>a(e)})}),k&&E.jsx(Jf,{trigger:["click"],menu:{items:z,onClick:O},children:E.jsx(Yn,{title:"导出 / 在线编辑",children:E.jsx(_t,{type:"text",icon:E.jsx(my,{}),"aria-label":"导出消息"})})}),u]}),h&&E.jsxs("section",{ref:y,className:"wandox-message-feedback-panel","aria-label":"点踩反馈",children:[E.jsxs("div",{className:"wandox-message-feedback-panel__header",children:[E.jsx("strong",{children:"哪里需要改进?"}),E.jsx(_t,{type:"text",size:"small",icon:E.jsx(Pa,{}),"aria-label":"关闭反馈",onClick:()=>f(!1)})]}),E.jsx("div",{className:"wandox-message-feedback-panel__tags",children:$cn.map(P=>{const D=p.includes(P);return E.jsx("button",{type:"button",className:`wandox-message-feedback-tag${D?" wandox-message-feedback-tag--selected":""}`,"aria-pressed":D,disabled:o,onClick:()=>S(P),children:P},P)})}),E.jsx(Or.TextArea,{className:"wandox-message-feedback-panel__input",value:g,placeholder:"请补充具体问题(可选)",autoSize:{minRows:2,maxRows:4},maxLength:500,disabled:o,onChange:P=>v(P.target.value)}),E.jsx("div",{className:"wandox-message-feedback-panel__footer",children:E.jsx(_t,{type:"primary",loading:o,onClick:M,children:"提交"})})]})]})}function run({state:e,onChange:t,onClose:r,onSave:n}){const{t:i}=Ok();return e.visible?E.jsx("div",{className:"wandox-dialog-overlay",onClick:r,onKeyDown:a=>a.key==="Escape"&&r(),"aria-hidden":"true",children:E.jsxs("dialog",{className:"wandox-dialog-content",open:!0,onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:[E.jsxs("div",{className:"wandox-dialog-header",children:[E.jsx("h3",{className:"wandox-dialog-title",children:i("chat.solidifyTitle")}),E.jsx("button",{type:"button",className:"wandox-dialog-close",onClick:r,children:E.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[E.jsx("title",{children:i("close")}),E.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),E.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),E.jsxs("div",{className:"wandox-dialog-body",children:[E.jsxs("div",{className:"wandox-form-group",children:[E.jsxs("label",{htmlFor:"playbook-name",className:"wandox-form-label",children:[i("chat.scenarioName")," ",E.jsx("span",{className:"wandox-form-required",children:"*"})]}),E.jsx("input",{id:"playbook-name",type:"text",className:"wandox-form-input",placeholder:i("chat.scenarioNamePlaceholder"),value:e.name,onChange:a=>t({name:a.target.value}),disabled:e.loading})]}),E.jsxs("div",{className:"wandox-form-group",children:[E.jsx("label",{htmlFor:"playbook-description",className:"wandox-form-label",children:i("chat.scenarioDesc")}),E.jsx("textarea",{id:"playbook-description",className:"wandox-form-textarea",placeholder:i("chat.scenarioDescPlaceholder"),rows:4,value:e.description,onChange:a=>t({description:a.target.value}),disabled:e.loading})]})]}),E.jsxs("div",{className:"wandox-dialog-footer",children:[E.jsx("button",{type:"button",className:"wandox-dialog-button wandox-dialog-button-secondary",onClick:r,disabled:e.loading,children:i("cancel")}),E.jsx("button",{type:"button",className:"wandox-dialog-button wandox-dialog-button-primary",onClick:n,disabled:e.loading,children:e.loading?i("dashboard.saving"):i("save")})]})]})}):null}function nun(e){if(typeof e!="string")return"对话内容";const t=e.replace(/```[\s\S]*?```/g,"代码内容").replace(/[#>*_`~\[\]()]/g," ").replace(/\s+/g," ").trim();return t||"对话内容"}function rbt({messages:e,scrollContainerRef:t,mode:r="codex"}){const n=I.useMemo(()=>e.map((b,x)=>({message:b,messageIndex:x})).filter(({message:b})=>b.role==="user").map(({message:b,messageIndex:x})=>({messageIndex:x,title:nun(b.content),content:b.content})),[e]),[i,a]=I.useState(),[s,o]=I.useState(!1),[l,u]=I.useState(),[d,h]=I.useState(),f=I.useRef(null),p=I.useRef(null),m=I.useCallback(()=>{const b=t.current;if(!b||n.length===0)return;const x=b.scrollTop+Math.min(120,b.clientHeight*.22);let C=n[0].messageIndex;for(const w of n){const S=b.querySelector(`[data-message-index="${w.messageIndex}"]`);if(!S||S.offsetTop>x)break;C=w.messageIndex}a(w=>w===C?w:C)},[n,t]);I.useEffect(()=>{const b=t.current;if(!b||n.length===0)return;let x=0;const C=()=>{cancelAnimationFrame(x),x=requestAnimationFrame(m)};return m(),b.addEventListener("scroll",C,{passive:!0}),window.addEventListener("resize",C),()=>{cancelAnimationFrame(x),b.removeEventListener("scroll",C),window.removeEventListener("resize",C)}},[n.length,t,m]),I.useEffect(()=>{if(r!=="codex")for(const b of[f.current,p.current]){if(!b)continue;const x=b.querySelector(`[data-outline-message-index="${i}"]`);if(!x)continue;const C=x.offsetTop,w=C+x.offsetHeight;C<b.scrollTop?b.scrollTo({top:C,behavior:"smooth"}):w>b.scrollTop+b.clientHeight&&b.scrollTo({top:w-b.clientHeight,behavior:"smooth"})}},[i,s,r]),I.useEffect(()=>{if(r!=="codex")return;const b=f.current;if(!b||i===void 0)return;const x=b.querySelector(`[data-outline-message-index="${i}"]`);if(!x)return;const C=x.offsetTop,w=C+x.offsetHeight;C<b.scrollTop?b.scrollTo({top:C,behavior:"smooth"}):w>b.scrollTop+b.clientHeight&&b.scrollTo({top:w-b.clientHeight,behavior:"smooth"})},[i,r]);const g=b=>{const x=t.current,C=x==null?void 0:x.querySelector(`[data-message-index="${b}"]`);!x||!C||(x.scrollTo({top:Math.max(0,C.offsetTop-24),behavior:"smooth"}),a(b))},v=(b,x)=>{const C=x.closest(".wandox-conversation-outline"),w=C==null?void 0:C.getBoundingClientRect(),S=x.getBoundingClientRect();u(b),w&&h(S.top+S.height/2-w.top)},y=()=>{u(void 0),h(void 0)};if(n.length===0)return null;if(r==="codex"){const b=n.find(C=>C.messageIndex===l),x=d??0;return E.jsxs("aside",{className:`wandox-conversation-outline wandox-conversation-outline--left${b?" wandox-conversation-outline--hovering":""}`,style:{height:`min(${n.length*22}px, calc(100% - 48px))`},"aria-label":"对话导航(左侧)",onMouseLeave:y,onBlur:C=>{C.currentTarget.contains(C.relatedTarget)||y()},children:[E.jsx("div",{className:"wandox-conversation-outline__rail",ref:f,children:n.map(C=>{const w=i===C.messageIndex,S=l===C.messageIndex;return E.jsx("button",{type:"button","data-outline-message-index":C.messageIndex,className:`wandox-conversation-outline__rail-item${w?" wandox-conversation-outline__rail-item--active":""}${S?" wandox-conversation-outline__rail-item--hovered":""}`,onClick:()=>g(C.messageIndex),onFocus:T=>v(C.messageIndex,T.currentTarget),onMouseEnter:T=>v(C.messageIndex,T.currentTarget),"aria-label":C.title,"aria-current":w?"location":void 0,children:E.jsx("span",{className:"wandox-conversation-outline__rail-marker"})},C.messageIndex)})}),b&&E.jsx("button",{type:"button",className:"wandox-conversation-outline__codex-card",style:{top:`clamp(44px, ${x}px, calc(100% - 44px))`},onClick:()=>g(b.messageIndex),children:E.jsx("span",{className:"wandox-conversation-outline__codex-summary",children:b.content})})]})}const A=`min(${n.length*22}px, 352px, calc(100% - 120px))`;return E.jsxs("aside",{className:`wandox-conversation-outline wandox-conversation-outline--right${s?" wandox-conversation-outline--open":""}`,style:{height:A},"aria-label":"对话导航(右侧)",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>o(!0),onBlur:b=>{b.currentTarget.contains(b.relatedTarget)||o(!1)},children:[E.jsx("div",{className:"wandox-conversation-outline__rail",ref:f,children:n.map(b=>{const x=i===b.messageIndex;return E.jsx("button",{type:"button","data-outline-message-index":b.messageIndex,className:`wandox-conversation-outline__rail-item${x?" wandox-conversation-outline__rail-item--active":""}`,onClick:()=>g(b.messageIndex),"aria-label":b.title,"aria-current":x?"location":void 0,children:E.jsx("span",{className:"wandox-conversation-outline__rail-marker"})},b.messageIndex)})}),s&&E.jsx("div",{className:"wandox-conversation-outline__card",children:E.jsx("div",{className:"wandox-conversation-outline__list",ref:p,children:n.map(b=>{const x=i===b.messageIndex;return E.jsxs("button",{type:"button","data-outline-message-index":b.messageIndex,className:`wandox-conversation-outline__item${x?" wandox-conversation-outline__item--active":""}`,onClick:()=>g(b.messageIndex),title:b.title,"aria-current":x?"location":void 0,children:[E.jsx("span",{className:"wandox-conversation-outline__title",children:b.title}),E.jsx("span",{className:"wandox-conversation-outline__item-marker"})]},b.messageIndex)})})})]})}function iun(e){const{messages:t,playbooks:r,messagesTotal:n,hasMoreMessages:i,loadMoreMessages:a,loading:s,executing:o,ssoToken:l,ssoDomain:u,ssoCompany:d,activeAgent:h,headerExtra:f,onExecutePlaybook:p,onFillPlaybookParams:m,onSolidifySuccess:g,onDashboardPreview:v,onSolidifyComplete:y,onExecuteComplete:A,onRespondToProposal:b,onRetrigger:x}=e,{t:C}=Ok(),[w,S]=I.useState(!1),[T,R]=I.useState([]),[M,k]=I.useState(""),[z,O]=I.useState($1t),[N,B]=I.useState(U$),[P,D]=I.useState({}),[L,V]=I.useState(()=>new Set),F=I.useRef(null),j=I.useMemo(()=>new Map(r.map(J=>[J.playbook_id,J.name])),[r]),G=()=>{O($1t)},Q=async J=>{var X;try{const $=await Stt({message_id:J});if($.success){const _=((X=$.data)==null?void 0:X.session_id)||J;v&&v({session_id:_,type:"dashboard_intent",intents:[],data:{}});try{const re=await PNr({session_id:_});re.success&&re.data?(v&&v(re.data),y&&y(),wt.success(C("chat.previewSuccess"))):wt.error(C("chat.previewFailed"))}catch(re){wt.error(`预览失败:${re instanceof Error?re.message:"未知错误"}`)}}}catch($){wt.error(`保存失败:${$ instanceof Error?$.message:"未知错误"}`)}},Y=async()=>{if(!z.name.trim()){wt.warning(C("chat.pleaseInputName"));return}O(J=>({...J,loading:!0}));try{const J=await Stt({message_id:z.messageId});J.success?(wt.success(C("chat.solidifySuccess")),G(),g&&g()):wt.error(`${C("chat.solidifyFailed")}: ${J.message||"Unknown error"}`)}catch(J){wt.error(`${C("chat.solidifyFailed")}: ${J instanceof Error?J.message:"Unknown error"}`)}finally{O(J=>({...J,loading:!1}))}},W=J=>{var te,le,se,oe;const X=t.find(ie=>ie.message_id===J||ie.id===J),$=wwe(X),_=h&&h!=="default"?h:String(((te=X==null?void 0:X.meta_content)==null?void 0:te.agent_id)||""),re=((se=(le=X==null?void 0:X.actions)==null?void 0:le.find(ie=>ie.playbook_id===$))==null?void 0:se.display_name)||((oe=X==null?void 0:X.meta_content)==null?void 0:oe.playbook_name)||j.get($)||$;if(!_){wt.warning("缺少智能体ID,无法配置定时触发");return}if(!$){wt.warning("缺少场景ID,无法配置定时触发");return}B({visible:!0,messageId:J,agentId:_,playbookId:$,playbookName:re})},Z=()=>{B(U$)},H=I.useCallback(J=>{const X=J.message_id;return X&&Object.prototype.hasOwnProperty.call(P,X)?P[X]:O1t(J)},[P]),K=I.useCallback(async(J,X,$)=>{var le;const _=J.message_id;if(!_||L.has(_))return!1;const re=H(J),te=B1t(re,X);D(se=>({...se,[_]:te})),V(se=>new Set(se).add(_));try{const se=await Itt({domain:u},{message_id:_,rating:te,tags:(le=$==null?void 0:$.tags)!=null&&le.length?$.tags:void 0,text:($==null?void 0:$.text)||void 0});if((se==null?void 0:se.success)===!1)throw new Error(se.message||"反馈提交失败");return!0}catch(se){return D(oe=>({...oe,[_]:re})),wt.error(se instanceof Error?se.message:"反馈提交失败,请稍后重试"),!1}finally{V(se=>{const oe=new Set(se);return oe.delete(_),oe})}},[L,H,u]);return E.jsxs("div",{className:"wandox-chat-section",children:[E.jsxs("div",{className:"wandox-chat-section__body",children:[f&&E.jsx("div",{className:"wandox-chat-section__header-extra",children:f}),E.jsx(J1t,{messages:t,executing:o,ssoToken:l,ssoDomain:u,ssoCompany:d,onExecutePlaybook:p,onFillPlaybookParams:m,onRespondToProposal:b,messagesTotal:n,hasMoreMessages:i,loadMoreMessages:a,loading:s,containerRef:F,conversationKey:h,initialLoadingContent:E.jsx(ebt,{}),onOpenActionDrawer:(J,X)=>{k(J),R(X),S(!0)},emptyContent:E.jsx(tun,{hasPlaybooks:r.length>0}),messageToolbar:J=>E.jsx(tbt,{msg:J,domain:u,onSolidifyMessage:Q,onOpenScheduleDialog:W,onRetrigger:x,feedbackRating:H(J),feedbackPending:!!J.message_id&&L.has(J.message_id),onFeedback:K})}),E.jsx(rbt,{messages:t,scrollContainerRef:F,mode:"deepseek"})]}),l&&u&&d&&E.jsx(D1t,{open:w,title:M,actions:T,ssoToken:l,ssoDomain:u,ssoCompany:d,onClose:()=>S(!1),onExecuteComplete:A}),E.jsx(run,{state:z,onChange:J=>O(X=>({...X,...J})),onClose:G,onSave:Y}),E.jsx(q1t,{open:N.visible,agentId:N.agentId,playbookId:N.playbookId,playbookName:N.playbookName,onClose:Z})]})}function aun({token:e,domain:t,tenantId:r,agentId:n="",limit:i=5,enabled:a=!0}){const[s,o]=I.useState(""),[l,u]=I.useState([]),[d,h]=I.useState(!1),f=I.useRef(null),p=I.useRef(null),m=I.useCallback(()=>{var v;p.current&&window.clearTimeout(p.current),(v=f.current)==null||v.abort(),o(""),u([]),h(!1)},[]),g=I.useCallback(v=>{const y=v.trim();if(!a||!e||!t||!y){m();return}p.current&&window.clearTimeout(p.current),p.current=window.setTimeout(async()=>{var b,x,C;(b=f.current)==null||b.abort();const A=new AbortController;f.current=A,h(!0);try{const w=new URLSearchParams({q:y,agent_id:n,limit:String(i)}),S=await fetch(`${Gi()}/api/v1/agents/autocomplete?${w.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${e}`,"x-domain":t,...r?{"x-tenant-id":r}:{}},signal:A.signal});if(!S.ok)throw new Error(`HTTP ${S.status}`);const T=await S.json();o(((x=T==null?void 0:T.data)==null?void 0:x.rewritten_question)||""),u(Array.isArray((C=T==null?void 0:T.data)==null?void 0:C.questions)?T.data.questions:[])}catch(w){w.name!=="AbortError"&&(o(""),u([]))}finally{A.signal.aborted||h(!1)}},250)},[n,m,t,a,i,r,e]);return I.useEffect(()=>m,[m]),{rewrittenQuestion:s,questions:l,loading:d,search:g,clear:m}}const sun={},nbt=e=>{let t;const r=new Set,n=(d,h)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const p=t;t=h??(typeof f!="object"||f===null)?f:Object.assign({},t,f),r.forEach(m=>m(t,p))}},i=()=>t,l={setState:n,getState:i,getInitialState:()=>u,subscribe:d=>(r.add(d),()=>r.delete(d)),destroy:()=>{r.clear()}},u=t=e(n,i,l);return l},oun=e=>e?nbt(e):nbt;var ibt={exports:{}},abt={},sbt={exports:{}},obt={};/**
|
|
753
|
+
`);m=H.pop()||"";for(const K of H)if(G(K)==="stop"){f.cancel();return}}!A&&b?s==null||s("流式响应异常结束"):!A&&v&&a?a(v,y,[],void 0,x,C):!A&&!v&&(s==null||s("流式响应异常结束"))}catch(Y){if((Y==null?void 0:Y.name)==="AbortError")return;s==null||s(Y.message||"流处理出错")}finally{try{f.releaseLock()}catch{}}}function z1t(e){const{ssoToken:t,ssoDomain:r,ssoCompany:n,onProgress:i,onContent:a,onOutput:s,onComplete:o,onError:l}=e,[u,d]=I.useState(!1),h=I.useRef(null),f=I.useCallback(()=>!t||!r||!n?(wt.warning("请先登录 SSO"),!1):!0,[t,r,n]),p=I.useCallback(async g=>{if(f()&&!u){d(!0);try{const v={action_id:g.action_id,action_params:g.action_params,stream:!0},y=new AbortController;h.current=y;const A=await fetch(`${Gi()}/api/v1/agents/actions/execute`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,"X-Tenant-ID":n,"X-Domain":r},body:JSON.stringify(v),signal:y.signal});if(!A.ok)throw new Error(`HTTP ${A.status}`);await kV(A,{assistantMsgId:`action_${Date.now()}`,onProgress:i,onContent:a,onOutput:s,onComplete:(b,x,C)=>{o==null||o(b,x,C)},onError:l})}catch(v){if(v instanceof DOMException&&v.name==="AbortError"||v instanceof Error&&v.name==="AbortError")return;const y=v instanceof Error?v.message:"未知错误";l==null||l(`执行出错: ${y}`)}finally{h.current=null,d(!1)}}},[o,a,l,s,i,n,r,t,f]),m=I.useCallback(()=>{h.current&&!h.current.signal.aborted&&h.current.abort()},[]);return{executing:u,executeAction:p,abort:m}}const lcn=e=>{const t=e.action_params?JSON.stringify(e.action_params):"";return`${e.action_id}:${t}`};function ccn({open:e,ssoToken:t,ssoDomain:r,ssoCompany:n,onClose:i,onExecuteAction:a,onExecuteComplete:s}){var M,k;const[o,l]=I.useState("操作执行"),[u,d]=I.useState([]),[h,f]=I.useState(""),[p,m]=I.useState(void 0),[g,v]=I.useState([]),[y,A]=I.useState(void 0),[b,x]=I.useState(!1),C=I.useRef(new Map),w=I.useRef(null),{executeAction:S,abort:T}=z1t({ssoToken:t,ssoDomain:r,ssoCompany:n,onProgress:z=>{A(void 0),d(O=>[...O,z])},onContent:z=>{A(void 0),f(z)},onOutput:z=>{A(void 0),v(O=>[...O,z])},onComplete:(z,O)=>{A(void 0);const N=z||"执行完成";f(N),m(O),w.current&&C.current.set(w.current,{title:o,progress:[...u,"执行完成"],content:N,payload:O,outputs:g,error:void 0,timestamp:Date.now()}),s&&s()},onError:z=>{A(z),w.current&&C.current.set(w.current,{title:o,progress:[...u],content:h,payload:p,outputs:g,error:z,timestamp:Date.now()})}});I.useEffect(()=>(e||T(),()=>{T()}),[e,T]),I.useEffect(()=>{a&&a(async z=>{if(z.executed_outputs){l(z.action_id||"操作执行"),d(["已执行完成"]),f(""),m(z.executed_outputs),v([]),A(void 0),x(!0);return}const O=lcn(z),N=C.current.get(O);if(N){l(N.title),d(N.progress),f(N.content),m(N.payload),v(N.outputs||[]),A(N.error),x(!0);return}w.current=O,l(z.action_id||"操作执行"),d([]),f(""),m(void 0),v([]),A(void 0),x(!1),await S(z)})},[a]);const R=()=>{T(),d([]),f(""),m(void 0),v([]),A(void 0),i()};return e?E.jsxs("div",{className:"wandox-root",children:[E.jsx("div",{className:"wandox-drawer-mask",onClick:R,onKeyDown:z=>z.key==="Escape"&&R(),role:"button",tabIndex:0,"aria-label":"关闭抽屉"}),E.jsxs("div",{className:"wandox-drawer wandox-drawer--right",children:[E.jsxs("div",{className:"wandox-drawer-header",children:[E.jsxs("span",{className:"wandox-drawer-title",children:[o,b&&E.jsx("span",{className:"wandox-tag wandox-tag-blue",children:"缓存数据"})]}),E.jsx("button",{type:"button",className:"wandox-drawer-close",onClick:R,"aria-label":"关闭",children:"✕"})]}),E.jsx("div",{className:"wandox-drawer-body",children:E.jsxs("div",{className:"wandox-drawer-content",children:[g.length>0&&(()=>{const z=g.filter(O=>{if(!O||typeof O!="object")return!1;const N=O;return N.content||N.type||Object.keys(N).length>1});return z.length===0?null:E.jsxs("div",{className:"wandox-result-section",children:[E.jsxs("div",{className:"wandox-section-title",children:[E.jsx("span",{className:"wandox-section-icon",children:"✨"}),E.jsx("span",{children:"执行结果"})]}),E.jsx("div",{className:"wandox-results-container",children:z.map((O,N)=>{const B=O,P=B.title?`output-${B.title}-${N}`:`output-${Date.now()}-${N}`;return E.jsxs("div",{className:"wandox-result-card",children:[O&&typeof O=="object"&&B.title&&E.jsx("div",{className:"wandox-result-card-title",children:String(B.title)}),E.jsx("div",{className:"wandox-result-card-body",children:E.jsx(Tl,{payload:O})})]},P)})})]})})(),(p||h)&&E.jsx("div",{className:"wandox-result-section",children:p&&typeof p=="object"&&p.type!==void 0?E.jsxs("div",{className:"wandox-result-card",children:[(p.title||((M=p.output_data)==null?void 0:M.title)||p.step_index)&&E.jsx("div",{className:"wandox-result-card-title",children:p.title||((k=p.output_data)==null?void 0:k.title)||(p.step_index?`Step${p.step_index}:${p.step_name||""}`:"执行结果")}),E.jsx("div",{className:"wandox-result-card-body",children:E.jsx(Tl,{payload:p})})]}):E.jsx("div",{className:"wandox-result-card",children:E.jsx("div",{className:"wandox-result-card-body",children:h&&typeof h=="string"&&h.trim()?E.jsx(kx,{remarkPlugins:[Mx],children:h}):E.jsx("div",{className:"wandox-empty-content",children:"暂无内容"})})})}),y&&E.jsxs("div",{className:"wandox-error-section",children:[E.jsx("div",{className:"wandox-error-icon",children:"⚠️"}),E.jsxs("div",{className:"wandox-error-content",children:[E.jsx("div",{className:"wandox-error-title",children:"执行失败"}),E.jsx("div",{className:"wandox-error-message",children:y})]})]})]})})]})]}):null}function ucn(e){return e===1||e===-1?e:null}function O1t(e){var i,a;const t=e.feedback,r=(i=e.meta_content)==null?void 0:i.feedback,n=[e.feedback_rating,typeof t=="object"&&t!==null?t.rating:t,(a=e.meta_content)==null?void 0:a.feedback_rating,typeof r=="object"&&r!==null?r.rating:r];for(const s of n){const o=ucn(s);if(o!==null)return o}return null}function B1t(e,t){return e===t?null:t}const CS=e=>e.action_id||e.label,dcn=e=>{var r;const t={};for(const n of e.params_fields_map||[])t[n.name]=((r=e.params)==null?void 0:r[n.name])??n.display_value??"";return{...t,...e.params||{}}},P1t=e=>e==null||e===""?"-":String(e);function D1t(e){const{open:t,actions:r,ssoToken:n,ssoDomain:i,ssoCompany:a,onClose:s,onExecuteComplete:o}=e;e.title;const[l,u]=I.useState(null),[d,h]=I.useState({}),[f,p]=I.useState(null),m=I.useRef(null),[g,v]=I.useState(new Set),[y,A]=I.useState({}),[b,x]=I.useState({}),[C,w]=I.useState([]),[S,T]=I.useState(""),[R,M]=I.useState(void 0),[k,z]=I.useState([]),[O,N]=I.useState(void 0),[B,P]=I.useState(""),[D,L]=I.useState(""),[V,F]=I.useState(""),[j,G]=I.useState(!1),[Q,Y]=I.useState("card"),[W,Z]=I.useState(new Set),[H,K]=I.useState([]),[J,X]=I.useState(!1),[$,_]=I.useState(null),[re,te]=I.useState(0),[le,se]=I.useState(0),[oe,ie]=I.useState([]),ue=I.useRef(null),ve=I.useRef(!1),fe=I.useRef(!1),ke=I.useRef(""),[Se,Le]=I.useState(null),[Ge,Be]=I.useState("asc"),{executeAction:Te,abort:xe}=z1t({ssoToken:n,ssoDomain:i,ssoCompany:a,onProgress:Ke=>{w(lt=>[...lt,Ke])},onContent:Ke=>{T(Ke)},onOutput:Ke=>{z(lt=>{const De=Ke;if(typeof De.step_index=="number"){const nt=lt.findIndex(et=>typeof et.step_index=="number"&&et.step_index===De.step_index);if(nt!==-1){const et=[...lt];return et[nt]=De,et}}return[...lt,Ke]})},onComplete:(Ke,lt)=>{Ke&&T(Ke),lt&&(M(lt),z(nt=>[...nt,lt]));const De=m.current;De&&x(nt=>({...nt,[De]:{content:Ke,payload:lt}})),N(void 0),p(null),m.current=null,o==null||o()},onError:Ke=>{N(Ke)}}),be=(Ke,lt)=>{var $e,ut,at;const De=CS(Ke),nt=y[De];if(nt&&Object.prototype.hasOwnProperty.call(nt,lt))return nt[lt];const et=($e=Ke.params)==null?void 0:$e[lt];return et!==void 0?et:((at=(ut=Ke.params_fields_map)==null?void 0:ut.find(vt=>vt.name===lt))==null?void 0:at.display_value)??""},Ie=Ke=>{const lt={...Ke.params||{}};for(const De of Ke.params_fields_map||[])lt[De.name]=be(Ke,De.name);return lt},ne=(Ke,lt,De)=>{const nt=CS(Ke);A(et=>({...et,[nt]:{...et[nt],[lt]:De}})),Ke.params={...Ke.params||{},[lt]:De}};I.useEffect(()=>{var Ke;if(!t)ke.current="",u(null),h({}),p(null),w([]),T(""),M(void 0),z([]),N(void 0),P(""),L(""),F(""),G(!1),A({}),x({}),Z(new Set),K([]),X(!1),_(null),te(0),se(0),ie([]),xe(),(Ke=ue.current)==null||Ke.abort(),ue.current=null,ve.current=!1,fe.current=!0,Lu.destroy("pool-notification"),Le(null),Be("asc");else{const lt=r.map(CS).join("|");ke.current!==lt&&(ke.current=lt,Z(new Set));const De={};for(const nt of r){const et=CS(nt);De[et]=dcn(nt)}A(De)}},[t,r,xe]),I.useEffect(()=>{if(t){const Ke=ce();Ke.length>0&&!D&&L(Ke[0].value)}},[t,D]);const me=Ke=>{Ke.params={...d},u(null),h({})},ae=()=>{u(null),h({})},he=async Ke=>{const lt=Ke.action_id;if(Ke.action_id){if(G(!0),(Ke.status==="executed"||g.has(lt||""))&&Ke.outputs){w(["已执行完成"]),T(""),z([Ke.outputs]),N(void 0),P(Ke.label||"");return}p(lt||null),m.current=lt||null,w([`正在执行: ${Ke.label||""}`]),T(""),M(void 0),z([]),N(void 0),P(Ke.label||""),await Te({action_id:Ke.action_id,action_params:Ie(Ke)}),lt&&v(De=>new Set(De).add(lt))}},ee=Ke=>{const lt=Ke.action_id||Ke.label;G(!0),P(Ke.label),N(void 0),w([]),z([]);const De=b[lt];if(De){const nt=De.content||"执行成功,暂无输出结果";T(nt),De.payload&&M(De.payload)}else Ke.outputs?z([Ke.outputs]):T("执行成功,暂无输出结果")},ce=()=>{const Ke=new Set;for(const lt of r)if(lt.params_fields_map)for(const De of lt.params_fields_map)Ke.add(De.label);return Array.from(Ke).map(lt=>({label:lt,value:lt}))};I.useEffect(()=>{if(!D){const Ke=ce();Ke.length>0&&L(Ke[0].value)}},[D,r]);const de=()=>!D||!V?r:r.filter(Ke=>{if(!Ke.params_fields_map)return!1;const lt=Ke.params_fields_map.find(et=>et.label===D);if(!lt)return!1;const De=String(be(Ke,lt.name)||"").toLowerCase(),nt=V.toLowerCase();return De.includes(nt)}),pe=Ke=>{Z(lt=>{const De=new Set(lt);if(De.has(Ke))De.delete(Ke);else{const nt=r.find(ut=>CS(ut)===Ke),et=r.filter(ut=>lt.has(CS(ut))),$e=et.find(ut=>ut.supports_batch===!0);if((nt==null?void 0:nt.supports_batch)===!0){const ut=et.some(vt=>vt.supports_batch!==!0||vt.playbook_id!==nt.playbook_id),at=Math.min(nt.batch_max_items??Number.MAX_SAFE_INTEGER,...et.map(vt=>vt.batch_max_items??Number.MAX_SAFE_INTEGER));if(ut)return wt.warning("批量执行只能选择同一场景且支持批量的动作"),lt;if(De.size+1>at)return wt.warning(`本次最多批量执行 ${at} 条`),lt}else if($e)return wt.warning("当前选择只能继续勾选同一场景且支持批量的动作"),lt;De.add(Ke)}return De})},Ae=I.useCallback(()=>{const Ke=Fe(),lt=new Set([...H.map(et=>et.action_id||et.label),...$?[$.action_id||$.label]:[]]),De=Ke.map(et=>et.action_id||et.label).filter(et=>!lt.has(et)&&!g.has(et)&&et!==f),nt=De.length>0&&De.every(et=>W.has(et));Z(nt?new Set:new Set(De))},[W,r,D,V,Se,Ge,H,$,g]),Me=I.useCallback(async(Ke,lt)=>{var De;if(!Ke.action_id)return"error";try{const nt={action_id:Ke.action_id,action_params:Ie(Ke),stream:!0},et=await fetch(`${Gi()}/api/v1/agents/actions/execute`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`,"X-Tenant-ID":a,"X-Domain":i},body:JSON.stringify(nt),signal:lt});if(!et.ok)throw new Error(`HTTP ${et.status}`);const $e=(De=et.body)==null?void 0:De.getReader();if($e)try{for(;;){const{done:ut}=await $e.read();if(ut)break}}catch(ut){if(lt.aborted)return"cancelled";throw ut}return"done"}catch{return lt.aborted?"cancelled":"error"}},[n,i,a,y]),Oe=I.useCallback((Ke,lt,De)=>{Lu.open({key:"pool-notification",message:"执行池运行中",description:E.jsxs("div",{className:"wandox-pool-notification",children:[E.jsxs("div",{className:"wandox-pool-notification-task",children:["当前:"," ",E.jsx("span",{className:"wandox-pool-notification-label",children:Ke.label})]}),E.jsx("div",{className:"wandox-pool-notification-progress",children:E.jsx(KZ,{percent:De>0?Math.round(lt/De*100):0,size:"small",strokeColor:{from:"#513aeb",to:"#4f46e5"},format:()=>`${lt}/${De}`})}),E.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[E.jsx("div",{className:"wandox-pool-notification-hint",children:"⚠️ 请勿关闭或离开当前界面"}),E.jsx("button",{type:"button",className:"wandox-pool-notification-skip-btn",onClick:()=>{var nt;ve.current=!0,(nt=ue.current)==null||nt.abort()},children:"跳过当前"})]})]}),placement:"bottomRight",duration:1e3,closable:!1})},[]),Ye=I.useCallback((Ke,lt)=>{const De=lt.length>0,nt=Ke-lt.length;Lu.open({key:"pool-notification",message:De?"执行完成(部分异常)":"全部执行完成",description:E.jsxs("div",{className:"wandox-pool-notification",children:[E.jsxs("div",{className:"wandox-pool-notification-result",children:[E.jsxs("span",{className:"wandox-pool-notification-result-success",children:["✓ 成功 ",nt," 个"]}),De&&E.jsxs("span",{className:"wandox-pool-notification-result-fail",children:["✗ 异常 ",lt.length," 个"]})]}),De&&E.jsx("div",{className:"wandox-pool-notification-errors",children:lt.map((et,$e)=>E.jsx("div",{className:"wandox-pool-notification-error-item",children:et},$e))}),E.jsx("button",{type:"button",className:"wandox-pool-notification-done-btn",onClick:()=>Lu.destroy("pool-notification"),children:"我知道了"})]}),placement:"bottomRight",duration:0,closable:!1})},[]),Ve=I.useRef([]);I.useEffect(()=>{Ve.current=H},[H]);const rt=I.useCallback(async Ke=>{if(Ke.length===0)return;X(!0),te(Ke.length),se(0),ie([]),fe.current=!1,Ve.current=Ke;let lt=0;const De=[],nt=()=>{const $e=Ve.current;if($e.length===0)return;const ut=$e[0],at=$e.slice(1);return Ve.current=at,K(at),ut};let et=nt();for(;et&&!fe.current;){const $e=et.action_id||et.label;_(et),p($e),m.current=$e;const ut=new AbortController;ue.current=ut,ve.current=!1,Oe(et,lt,lt+1+Ve.current.length);const at=await Me(et,ut.signal);if(fe.current)break;if(lt++,se(lt),at==="done")v(vt=>new Set(vt).add($e));else if(at==="cancelled"){const vt=`${et.label}: 已跳过`;De.push(vt),ie(bt=>[...bt,vt])}else{const vt=`${et.label}: 执行失败`;De.push(vt),ie(bt=>[...bt,vt])}p(null),m.current=null,et=nt()}X(!1),_(null),K([]),Ve.current=[],ue.current=null,fe.current?Lu.destroy("pool-notification"):Ye(lt,De),o==null||o()},[Me,Oe,Ye,o]),Ce=I.useCallback(async Ke=>{const lt=new Set(Ke.map(et=>et.playbook_id).filter(Boolean)),De=Math.min(...Ke.map(et=>et.batch_max_items??Number.MAX_SAFE_INTEGER));if(lt.size!==1){wt.warning("批量执行只能选择同一场景的动作");return}if(Ke.length>De){wt.warning(`本次最多批量执行 ${De} 条`);return}const nt=Ke.map(et=>CS(et));X(!0),K(Ke),te(Ke.length),se(0),ie([]),Lu.open({key:"pool-notification",message:"批量执行中",description:`正在一次执行 ${Ke.length} 个动作`,placement:"bottomRight",duration:0,closable:!1});try{const et=await fetch(`${Gi()}/api/v1/agents/actions/batch-execute`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`,"X-Tenant-ID":a,"X-Domain":i},body:JSON.stringify({items:Ke.map(ut=>({action_id:ut.action_id,params:Ie(ut)})),submit_token:crypto.randomUUID(),stream:!0})});if(!et.ok)throw new Error(`HTTP ${et.status}`);const $e=await et.text();if(/event:\s*error|"event_type"\s*:\s*"error"|"success"\s*:\s*false/.test($e))throw new Error("批量执行失败");v(ut=>new Set([...ut,...nt])),se(Ke.length),Ye(Ke.length,[]),o==null||o()}catch(et){const $e=et instanceof Error?et.message:"批量执行失败";ie([$e]),Ye(Ke.length,[$e])}finally{X(!1),K([]),_(null)}},[n,i,a,y,Ye,o]),Xe=I.useCallback(()=>{const Ke=Fe(),lt=new Set([...Ve.current.map(nt=>nt.action_id||nt.label),...$?[$.action_id||$.label]:[]]),De=Ke.filter(nt=>{const et=nt.action_id||nt.label;return W.has(et)&&!g.has(et)&&(!nt.status||nt.status==="pending")&&!lt.has(et)});if(De.length===0){wt.warning("请选择未执行的动作");return}if(Z(new Set),De.every(nt=>nt.supports_batch===!0)){Ce(De);return}if(J){const nt=[...Ve.current,...De];Ve.current=nt,K(nt),te(et=>et+De.length),wt.info(`已追加 ${De.length} 个动作到执行池`)}else K(De),rt(De)},[W,r,g,J,$,rt,Ce]),ye=()=>{const Ke=new Map;for(const lt of r)if(lt.params_fields_map)for(const De of lt.params_fields_map)Ke.has(De.name)||Ke.set(De.name,{name:De.name,label:De.label,type:De.type});return Array.from(Ke.values())},Pe=Ke=>{for(const lt of r)if(lt.params_fields_map){const De=lt.params_fields_map.find(nt=>nt.name===Ke);if(De&&(De.type==="number"||De.display_value!==void 0&&typeof De.display_value=="number"||De.display_value!==void 0&&!isNaN(Number(De.display_value))))return!0}return!1},Ne=Ke=>{Se===Ke?Be(lt=>lt==="asc"?"desc":"asc"):(Le(Ke),Be("asc"))},Fe=()=>{let Ke=de();return Se&&(Ke=[...Ke].sort((lt,De)=>{var at,vt;const nt=(at=lt.params_fields_map)==null?void 0:at.find(bt=>bt.name===Se),et=(vt=De.params_fields_map)==null?void 0:vt.find(bt=>bt.name===Se),$e=Number(nt?be(lt,nt.name):0),ut=Number(et?be(De,et.name):0);return Ge==="asc"?$e-ut:ut-$e})),Ke},tt=Ke=>{const lt=Ke.params_fields_map,De=Ke.action_id||Ke.label,nt=Ke.status==="executed"||g.has(De);return!lt||lt.length===0?E.jsx("div",{className:"wandox-action-card-empty",children:"暂无默认参数"}):E.jsx("div",{className:"wandox-action-card-params",children:lt.map(et=>E.jsxs("div",{className:"wandox-action-card-param-item",children:[E.jsxs("span",{className:"wandox-action-card-param-key",children:[et.label,":"]}),et.editable===!1||nt?E.jsx("span",{className:"wandox-action-card-param-value",children:P1t(be(Ke,et.name))}):et.input_type==="select"&&et.options?E.jsx(Qn,{value:String(be(Ke,et.name)??""),onChange:$e=>ne(Ke,et.name,$e),options:et.options,style:{flex:1,minWidth:120},size:"small"}):E.jsx(Or,{value:String(be(Ke,et.name)??""),onChange:$e=>ne(Ke,et.name,$e.target.value),placeholder:`请输入 ${et.label}`,style:{flex:1},size:"small"})]},et.name))})},We=Ke=>{const lt=Ke.params||{},De=Ke.params_fields_map,nt=et=>{const $e=De==null?void 0:De.find(ut=>ut.name===et);return($e==null?void 0:$e.label)||et};return E.jsxs("div",{className:"wandox-action-card-edit-form",children:[Object.entries(lt).map(([et])=>E.jsxs("div",{className:"wandox-action-card-form-item",children:[E.jsx("span",{className:"wandox-action-card-form-label",children:nt(et)}),E.jsx("input",{type:"text",className:"wandox-input",value:typeof d[et]=="object"?JSON.stringify(d[et]):String(d[et]??""),onChange:$e=>{let ut=$e.target.value;try{($e.target.value.startsWith("{")||$e.target.value.startsWith("["))&&(ut=JSON.parse($e.target.value))}catch{}h(at=>({...at,[et]:ut}))},placeholder:`请输入 ${nt(et)}`})]},et)),Object.keys(lt).length===0&&E.jsx("div",{className:"wandox-action-card-empty",children:"暂无可编辑参数"})]})},Je=Ke=>{const lt=Ke.action_id||Ke.label,De=l===lt,nt=f===lt,et=Ke.status==="executed"||g.has(lt);return E.jsxs("div",{className:`wandox-action-card-v2${et?" wandox-action-card-v2--executed":""}${nt?" wandox-action-card-v2--executing":""}`,children:[E.jsxs("div",{className:"wandox-action-card-v2-content",children:[E.jsx("div",{className:"wandox-action-card-v2-title",children:E.jsx("span",{className:"wandox-action-card-v2-title-text",children:Ke.label})}),De?We(Ke):E.jsx("div",{className:"wandox-action-card-v2-params",children:tt(Ke)})]}),E.jsx("div",{className:"wandox-action-card-v2-footer",children:De?E.jsxs(E.Fragment,{children:[E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--primary",onClick:()=>me(Ke),children:"保存"}),E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--ghost",onClick:ae,children:"取消"})]}):et?E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--success",onClick:()=>ee(Ke),children:"查看"}):E.jsx(E.Fragment,{children:E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--primary",id:Ke.action_id,"data-sensors-track":"true","data-sensors-name":"执行动作","data-sensors-module":"可执行动作",onClick:()=>{nt||he(Ke)},disabled:nt,children:nt?"执行中...":"执行"})})})]})},Ee=I.useCallback(Ke=>$&&($.action_id||$.label)===Ke?!0:H.some(lt=>(lt.action_id||lt.label)===Ke),[$,H]),gt=(Ke,lt,De)=>{if(!lt)return E.jsx("span",{className:"wandox-action-list-cell-placeholder",children:"-"});const nt=be(Ke,lt.name),et=P1t(nt);return lt.editable===!1||De.isExecuted||De.isExecuting||De.inPool?E.jsx("span",{className:"wandox-action-list-cell-text",title:et,children:et}):lt.input_type==="select"&<.options&<.options.length>0?E.jsx(Qn,{className:"wandox-action-list-cell-editor",size:"small",value:String(nt??""),options:lt.options,onChange:ut=>ne(Ke,lt.name,ut)}):E.jsx(Or,{className:"wandox-action-list-cell-editor",size:"small",value:String(nt??""),placeholder:`请输入 ${lt.label}`,onChange:ut=>ne(Ke,lt.name,ut.target.value)})},pt=()=>{const Ke=ye(),lt=Fe(),De=new Set([...H.map($e=>$e.action_id||$e.label),...$?[$.action_id||$.label]:[]]),nt=lt.filter($e=>!$e.status||$e.status==="pending").map($e=>$e.action_id||$e.label).filter($e=>!g.has($e)&&!De.has($e)&&$e!==f),et=nt.length>0&&nt.every($e=>W.has($e));return E.jsxs("div",{className:"wandox-action-list-view",children:[E.jsxs("div",{className:"wandox-batch-action-bar",children:[E.jsxs("span",{className:"wandox-batch-action-count",children:["已选 ",W.size," 项"]}),E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--primary",onClick:Xe,disabled:W.size===0,children:J?"追加到执行池":"批量执行"}),E.jsx("button",{type:"button",className:"wandox-action-btn-v2 wandox-action-btn-v2--ghost",onClick:()=>Z(new Set),disabled:W.size===0,children:"取消选择"})]}),oe.length>0&&!J&&E.jsxs("div",{className:"wandox-batch-errors",children:[E.jsxs("div",{className:"wandox-batch-errors-title",children:["执行异常(",oe.length,")"]}),oe.map(($e,ut)=>E.jsx("div",{className:"wandox-batch-error-item",children:$e},ut))]}),E.jsx("div",{className:"wandox-action-list-table-wrapper",children:E.jsxs("table",{className:"wandox-action-list-table",children:[E.jsx("thead",{children:E.jsxs("tr",{children:[E.jsx("th",{className:"wandox-action-list-th wandox-action-list-th--checkbox",children:E.jsx("input",{type:"checkbox",checked:et,onChange:Ae})}),E.jsx("th",{className:"wandox-action-list-th",children:"名称"}),Ke.map($e=>E.jsxs("th",{className:`wandox-action-list-th ${Pe($e.name)?"wandox-action-list-th--sortable":""}`,onClick:()=>Pe($e.name)&&Ne($e.name),children:[E.jsx("span",{children:$e.label}),Pe($e.name)&&E.jsx("span",{className:"wandox-action-list-sort-icon",children:Se===$e.name?Ge==="asc"?" ↑":" ↓":" ↕"})]},$e.name)),E.jsx("th",{className:"wandox-action-list-th wandox-action-list-th--status",children:"状态"}),E.jsx("th",{className:"wandox-action-list-th wandox-action-list-th--action",children:"操作"})]})}),E.jsxs("tbody",{children:[lt.map($e=>{const ut=$e.action_id||$e.label,at=$e.status==="executed"||g.has(ut),vt=f===ut,bt=Ee(ut),Rt=H.some(fr=>(fr.action_id||fr.label)===ut),Ft=W.has(ut),Vt=(!$e.status||$e.status==="pending")&&!at&&!bt&&!vt;return E.jsxs("tr",{className:`wandox-action-list-row ${Ft?"wandox-action-list-row--selected":""} ${at?"wandox-action-list-row--executed":""} ${bt?"wandox-action-list-row--in-pool":""}`,children:[E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--checkbox",children:E.jsx("input",{type:"checkbox",checked:Ft,onChange:()=>Vt&&pe(ut),disabled:!Vt})}),E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--name",title:$e.label,children:$e.label}),Ke.map(fr=>{var Qt;const qr=(Qt=$e.params_fields_map)==null?void 0:Qt.find(it=>it.name===fr.name);return E.jsx("td",{className:`wandox-action-list-td ${qr&&qr.editable!==!1&&!at&&!vt&&!bt?"wandox-action-list-td--editable":""}`,children:gt($e,qr,{isExecuted:at,isExecuting:vt,inPool:bt})},fr.name)}),E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--status",children:vt?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--executing",children:"执行中"}):Rt?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--queued",children:"排队中"}):at?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--done",children:"已执行"}):E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--pending",children:"待执行"})}),E.jsx("td",{className:"wandox-action-list-td wandox-action-list-td--action",children:at?E.jsx("button",{type:"button",className:"wandox-action-list-btn wandox-action-list-btn--view",onClick:()=>ee($e),children:"查看"}):bt?E.jsx("span",{className:"wandox-action-list-badge wandox-action-list-badge--queued",style:{fontSize:11},children:vt?"执行中":"等待中"}):E.jsx("button",{type:"button",className:"wandox-action-list-btn wandox-action-list-btn--exec",onClick:()=>!vt&&!bt&&he($e),disabled:vt||bt,children:"执行"})})]},ut)}),lt.length===0&&E.jsx("tr",{children:E.jsx("td",{colSpan:Ke.length+4,className:"wandox-action-list-empty",children:"没有找到匹配的动作"})})]})]})})]})},yt=()=>{if(C.length===0&&k.length===0&&!O&&!S)return E.jsxs("div",{className:"wandox-execution-empty",children:[E.jsx("div",{className:"wandox-execution-empty-icon",children:"📋"}),E.jsx("div",{className:"wandox-execution-empty-text",children:"点击上方按钮执行动作"})]});const Ke=C.length===0&&(S||k.length>0);return E.jsxs("div",{className:"wandox-execution-process",children:[!Ke&&C.length>0&&E.jsxs("div",{className:"wandox-progress-section",children:[E.jsx("div",{className:"wandox-progress-title",children:"执行进度"}),E.jsx("div",{className:"wandox-progress-timeline",children:C.map((lt,De)=>E.jsxs("div",{className:"wandox-progress-item",children:[E.jsx("span",{className:"wandox-progress-dot",children:E.jsx("span",{className:"wandox-progress-check",children:"✓"})}),E.jsx("span",{className:"wandox-progress-text",children:lt})]},`${lt}-${De}`))})]}),S&&E.jsx("div",{className:"wandox-content-section",children:E.jsx(Tl,{payload:{type:"markdown",content:S}})}),!S&&k.length===0&&C.length===0&&!O&&E.jsx("div",{className:"wandox-execution-empty",children:E.jsx("div",{className:"wandox-execution-empty-text",children:"暂无执行结果"})}),O&&E.jsxs("div",{className:"wandox-error-section",children:[E.jsx("div",{className:"wandox-error-icon",children:"✗"}),E.jsxs("div",{className:"wandox-error-content",children:[E.jsx("div",{className:"wandox-error-title",children:"执行失败"}),E.jsx("div",{className:"wandox-error-message",children:O})]})]})]})};return t?E.jsxs("div",{className:"wandox-root",children:[E.jsx("div",{className:"wandox-drawer-mask",onClick:s,onKeyDown:Ke=>Ke.key==="Escape"&&s(),role:"button",tabIndex:0,"aria-label":"关闭抽屉"}),E.jsxs("div",{className:`wandox-drawer wandox-drawer--right wandox-action-detail-drawer ${Q==="list"?"wandox-drawer--wide":""}`,children:[E.jsxs("div",{className:"wandox-drawer-header",children:[E.jsxs("span",{className:"wandox-drawer-title",children:["可执行动作(",r.length,")"]}),E.jsxs("div",{className:"wandox-drawer-header-actions",children:[E.jsxs("div",{className:"wandox-view-mode-toggle",children:[E.jsx("button",{type:"button",className:`wandox-view-mode-btn ${Q==="card"?"wandox-view-mode-btn--active":""}`,onClick:()=>Y("card"),title:"卡片模式",children:E.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",children:[E.jsx("rect",{x:"1",y:"1",width:"6",height:"6",rx:"1"}),E.jsx("rect",{x:"9",y:"1",width:"6",height:"6",rx:"1"}),E.jsx("rect",{x:"1",y:"9",width:"6",height:"6",rx:"1"}),E.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"1"})]})}),E.jsx("button",{type:"button",className:`wandox-view-mode-btn ${Q==="list"?"wandox-view-mode-btn--active":""}`,onClick:()=>Y("list"),title:"列表模式",children:E.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",children:[E.jsx("rect",{x:"1",y:"2",width:"14",height:"2.5",rx:"0.5"}),E.jsx("rect",{x:"1",y:"6.75",width:"14",height:"2.5",rx:"0.5"}),E.jsx("rect",{x:"1",y:"11.5",width:"14",height:"2.5",rx:"0.5"})]})})]}),E.jsx("button",{type:"button",className:"wandox-drawer-close",onClick:s,children:"✕"})]})]}),E.jsx("div",{className:"wandox-drawer-body",children:E.jsxs("div",{className:"wandox-action-detail-content",children:[ce().length>0&&E.jsx("div",{className:"wandox-action-filter-section",children:E.jsxs(Qd.Compact,{style:{width:"100%"},children:[E.jsx(Qn,{value:D,onChange:Ke=>{L(Ke),F("")},placeholder:"选择字段",style:{width:150},options:[...ce()]}),E.jsx(Or,{value:V,onChange:Ke=>F(Ke.target.value),placeholder:"输入过滤值",disabled:!D,style:{flex:1},allowClear:!0})]})}),E.jsx("div",{className:"wandox-action-cards-section",children:Q==="card"?E.jsxs("div",{className:"wandox-action-cards-grid",children:[de().map(Ke=>E.jsx("div",{className:"wandox-action-card-wrapper",children:Je(Ke)},Ke.action_id||Ke.label)),de().length===0&&(D||V)&&E.jsxs("div",{className:"wandox-action-empty-filter",children:[E.jsx("div",{className:"wandox-action-empty-icon",children:"🔍"}),E.jsx("div",{className:"wandox-action-empty-text",children:"没有找到匹配的动作"})]})]}):pt()}),j&&E.jsxs("div",{className:"wandox-execution-section wandox-execution-panel-slide",onClick:Ke=>Ke.stopPropagation(),children:[E.jsxs("div",{className:"wandox-execution-panel-header",children:[E.jsx("span",{className:"wandox-execution-panel-title",children:"执行结果"}),E.jsx("button",{type:"button",className:"wandox-execution-panel-close",onClick:()=>G(!1),"aria-label":"关闭",children:"✕"})]}),yt()]})]})})]})]}):null}function j$(e){const t={unit:"day",interval:1,hour:9,minute:0,weekDays:[1],monthDay:1,yearMonth:1,yearDay:1,customCron:""};if(!e)return t;const r=e.trim().split(/\s+/);if(r.length<5)return t;const n=Number.parseInt(r[0],10)||0,i=r[1].includes("/")?0:Number.parseInt(r[1],10)||0;if(r[1].startsWith("*/"))return{...t,unit:"hour",interval:Number.parseInt(r[1].slice(2),10)||1,hour:0,minute:n};if(r[3]!=="*"&&!r[3].startsWith("*/"))return{...t,unit:"year",hour:i,minute:n,yearMonth:Number.parseInt(r[3],10)||1,yearDay:Number.parseInt(r[2],10)||1};if(r[3].startsWith("*/"))return{...t,unit:"month",interval:Number.parseInt(r[3].slice(2),10)||1,hour:i,minute:n,monthDay:Number.parseInt(r[2],10)||1};if(r[4]!=="*"){const a=r[4].split(",").map(s=>Number.parseInt(s,10)).filter(s=>!Number.isNaN(s));return{...t,unit:"week",hour:i,minute:n,weekDays:a.length>0?a:[1]}}return r[2].startsWith("*/")?{...t,unit:"day",interval:Number.parseInt(r[2].slice(2),10)||1,hour:i,minute:n}:r[2]!=="*"?{...t,unit:"month",interval:1,hour:i,minute:n,monthDay:Number.parseInt(r[2],10)||1}:{...t,unit:"day",interval:1,hour:i,minute:n}}const hcn=["周日","周一","周二","周三","周四","周五","周六"],fcn=[{value:"hour",label:"小时",hint:"高频轮询"},{value:"day",label:"每天",hint:"日常任务"},{value:"week",label:"每周",hint:"固定周几"},{value:"month",label:"每月",hint:"月度复盘"},{value:"year",label:"每年",hint:"年度节点"},{value:"custom",label:"Cron",hint:"高级规则"}],pcn=[{v:1,l:"周一"},{v:2,l:"周二"},{v:3,l:"周三"},{v:4,l:"周四"},{v:5,l:"周五"},{v:6,l:"周六"},{v:0,l:"周日"}];function mcn(e,t,r,n,i,a,s,o,l){switch(e){case"hour":return`${n} */${t} * * *`;case"day":return t===1?`${n} ${r} * * *`:`${n} ${r} */${t} * *`;case"week":return`${n} ${r} * * ${i.length>0?i.join(","):"1"}`;case"month":return t===1?`${n} ${r} ${a} * *`:`${n} ${r} ${a} */${t} *`;case"year":return`${n} ${r} ${o} ${s} *`;case"custom":return l.trim()||`${n} ${r} * * *`;default:return`${n} ${r} * * *`}}function gcn(e,t,r,n,i,a,s,o,l){const u=`${String(r).padStart(2,"0")}:${String(n).padStart(2,"0")}`;switch(e){case"hour":return`每 ${t} 小时执行一次(每小时第 ${n} 分)`;case"day":return t===1?`每天 ${u} 执行`:`每 ${t} 天 ${u} 执行`;case"week":return`每周 ${i.length>0?i.map(h=>hcn[h]).join("、"):"周一"} ${u} 执行`;case"month":return t===1?`每月第 ${a} 天 ${u} 执行`:`每 ${t} 个月第 ${a} 天 ${u} 执行`;case"year":return`每年 ${s} 月 ${o} 日 ${u} 执行`;case"custom":return l.trim()?`自定义:${l.trim()}`:"请输入 Cron 表达式";default:return`每天 ${u} 执行`}}function Ewe({defaultValue:e,onChange:t}){const r=j$(e),[n,i]=I.useState(r.unit),[a,s]=I.useState(r.interval),[o,l]=I.useState(r.hour),[u,d]=I.useState(r.minute),[h,f]=I.useState(r.weekDays),[p,m]=I.useState(r.monthDay),[g,v]=I.useState(r.yearMonth),[y,A]=I.useState(r.yearDay),[b,x]=I.useState(r.customCron),C=I.useMemo(()=>mcn(n,a,o,u,h,p,g,y,b),[n,a,o,u,h,p,g,y,b]),w=I.useMemo(()=>gcn(n,a,o,u,h,p,g,y,b),[n,a,o,u,h,p,g,y,b]),S=I.useRef(t);S.current=t,I.useEffect(()=>{var k;(k=S.current)==null||k.call(S,C,w)},[C,w]);const T=Array.from({length:24},(k,z)=>({value:z,label:String(z).padStart(2,"0")})),R=Array.from({length:60},(k,z)=>({value:z,label:String(z).padStart(2,"0")})),M=Array.from({length:12},(k,z)=>({value:z+1,label:`${z+1} 月`}));return E.jsxs("div",{className:"sfp-root",children:[E.jsx(wD,{block:!0,size:"small",className:"sfp-freq-segmented",value:n,"aria-label":"调度频率",options:fcn.map(({value:k,label:z,hint:O})=>({value:k,label:E.jsxs("span",{className:"sfp-freq-option",children:[E.jsx("span",{className:"sfp-freq-option__label",children:z}),E.jsx("span",{className:"sfp-freq-option__hint",children:O})]})})),onChange:k=>{i(k),s(1)}}),E.jsxs("div",{className:"sfp-config",children:[E.jsxs("div",{className:"sfp-config-title",children:[E.jsx(oXe,{}),E.jsx("span",{children:"执行规则"})]}),n==="hour"&&E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-text",children:"每"}),E.jsx(qd,{min:1,max:24,value:a,onChange:k=>s(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"小时,在第"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R}),E.jsx("span",{className:"sfp-text",children:"分钟执行"})]}),n==="day"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-text",children:"每"}),E.jsx(qd,{min:1,max:365,value:a,onChange:k=>s(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"天执行一次"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="week"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row sfp-row-wrap",children:[E.jsx("span",{className:"sfp-label",children:"执行日期"}),E.jsx("div",{className:"sfp-weekday-tags",children:pcn.map(({v:k,l:z})=>E.jsx(Qs.CheckableTag,{checked:h.includes(k),onChange:O=>{O?f(N=>[...N,k].sort((B,P)=>B-P)):h.length>1&&f(N=>N.filter(B=>B!==k))},children:z},k))})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="month"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-text",children:"每"}),E.jsx(qd,{min:1,max:12,value:a,onChange:k=>s(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"个月执行一次"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"执行日期"}),E.jsx("span",{className:"sfp-text",children:"第"}),E.jsx(qd,{min:1,max:31,value:p,onChange:k=>m(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"天"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="year"&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"执行月份"}),E.jsx(Qn,{value:g,onChange:k=>v(k),className:"sfp-select sfp-select--month",size:"middle",options:M})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"执行日期"}),E.jsx("span",{className:"sfp-text",children:"第"}),E.jsx(qd,{min:1,max:31,value:y,onChange:k=>A(k??1),className:"sfp-number",size:"middle"}),E.jsx("span",{className:"sfp-text",children:"天"})]}),E.jsxs("div",{className:"sfp-row",children:[E.jsxs("span",{className:"sfp-label",children:[E.jsx(To,{})," 执行时间"]}),E.jsx(Qn,{value:o,onChange:k=>l(k),className:"sfp-select sfp-select--compact",size:"middle",options:T}),E.jsx("span",{className:"sfp-sep",children:":"}),E.jsx(Qn,{value:u,onChange:k=>d(k),className:"sfp-select sfp-select--compact",size:"middle",options:R})]})]}),n==="custom"&&E.jsxs("div",{className:"sfp-row",children:[E.jsx("span",{className:"sfp-label",children:"Cron 表达式"}),E.jsx(Or,{value:b,onChange:k=>x(k.target.value),placeholder:"例如:0 9 * * 1-5",size:"middle",className:"sfp-cron-input"})]})]}),E.jsxs("div",{className:"sfp-preview",children:[E.jsx(CH,{className:"sfp-preview-icon"}),E.jsx("span",{children:w})]})]})}const{Text:L1t}=Qh,q$="0 9 * * *";function $d(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function MV(e,t){return $d(e)&&typeof e.message=="string"?e.message:t}function Q$(e){return $d(e)?e.data??e.result??e.results??e:e}function b7(e){return e?String(e.schedule_id??e.id??""):""}function V1t(e){return(e==null?void 0:e.name)||(e==null?void 0:e.schedule_name)||(e==null?void 0:e.title)||"未命名任务"}function vcn(e){return(e==null?void 0:e.cron_expression)||(e==null?void 0:e.schedule_cron)||q$}function ycn(e){return(e==null?void 0:e.playbook_params)??(e==null?void 0:e.schedule_params)??(e==null?void 0:e.params)??{}}function F1t(e){return e?typeof e.is_active=="boolean"?e.is_active:typeof e.is_enabled=="boolean"?e.is_enabled:typeof e.enabled=="boolean"?e.enabled:!0:!0}function bcn(e){const t=Q$(e),r=$d(t)?t.items??t.records??t.rows??t.schedules??t.list??t.data:t;return Array.isArray(r)?r.filter($d).map(n=>n):[]}function Acn(e){const t=Q$(e),r=$d(t)?t.items??t.records??t.rows??t.webhooks??t.list??t.data:t;return Array.isArray(r)?r.filter($d).map(n=>{const i=n.webhook_id??n.id,a=typeof n.name=="string"&&n.name.trim()?n.name:i?String(i):"未命名通知地址";return{webhook_id:i?String(i):"",name:a,platform:typeof n.platform=="string"?n.platform:void 0,is_active:typeof n.is_active=="boolean"?n.is_active:void 0,is_default:typeof n.is_default=="boolean"?n.is_default:void 0}}).filter(n=>n.webhook_id):[]}function xcn(e){return(Array.isArray(e)?e:$d(e)?Object.values(e):[]).filter($d).map(r=>{const n=typeof r.name=="string"?r.name:"",i=Array.isArray(r.enum)?r.enum.filter(a=>typeof a=="string"):Array.isArray(r.options)?r.options.map(a=>typeof a=="string"?a:$d(a)&&typeof a.value=="string"?a.value:"").filter(Boolean):void 0;return{name:n,label:typeof r.label=="string"?r.label:typeof r.display_name=="string"?r.display_name:n,type:typeof r.type=="string"?r.type:"string",required:!!r.required,default:r.default,mock:r.mock,enum:i,file_type:typeof r.file_type=="string"?r.file_type:void 0,description:typeof r.description=="string"?r.description:void 0}}).filter(r=>r.name)}function Ecn(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function Icn(e){switch(e){case"dingtalk":return"钉钉";case"feishu":case"lark":return"飞书";case"wecom":case"wechat_work":return"企微";default:return e||""}}function j1t(e){const t=Icn(e.platform);return t?`${e.name} (${t})`:e.name}function q1t({open:e,agentId:t,playbookId:r,playbookName:n,onClose:i,onSuccess:a}){const[s,o]=I.useState([]),[l,u]=I.useState([]),[d,h]=I.useState([]),[f,p]=I.useState(!1),[m,g]=I.useState(!1),[v,y]=I.useState(!1),[A,b]=I.useState("create"),[x,C]=I.useState(""),[w,S]=I.useState(""),[T,R]=I.useState(!0),[M,k]=I.useState(""),[z,O]=I.useState(0),[N,B]=I.useState(q$),[P,D]=I.useState({}),[L,V]=I.useState({}),[F,j]=I.useState(!1),[G,Q]=I.useState(""),[Y,W]=I.useState(""),[Z,H]=I.useState(""),K=d.length>0,J=I.useMemo(()=>{const Te=l.map(xe=>[xe.webhook_id,j1t(xe)]);return new Map(Te)},[l]),X=I.useMemo(()=>{const Te=new Set,xe=l.map(be=>(Te.add(be.webhook_id),{value:be.webhook_id,label:`${j1t(be)}${be.is_default?" · 默认":""}`,disabled:be.is_active===!1}));return M&&!Te.has(M)&&xe.unshift({value:M,label:`当前通知地址 (${M})`,disabled:!1}),xe},[l,M]);function $(Te=l){var xe;return((xe=Te.find(be=>be.is_default&&be.is_active!==!1))==null?void 0:xe.webhook_id)||""}function _(Te={},xe=d){const be={};for(const Ie of xe)Te[Ie.name]!==void 0&&Te[Ie.name]!==""?be[Ie.name]=Te[Ie.name]:Ie.default!==void 0&&Ie.default!==""?be[Ie.name]=Ie.default:Ie.type==="boolean"?be[Ie.name]=!1:Ie.type==="number"||Ie.type==="integer"||Ie.type==="float"?be[Ie.name]=void 0:be[Ie.name]="";return be}function re(Te=d,xe=l,be=Z||n){const Ie=be||"";b("create"),C(""),S(Ie?`${Ie} 定时任务`:"定时任务"),R(!0),k($(xe)),B(q$),O(ne=>ne+1),D(_({},Te)),W("")}function te(Te,xe=d){b("edit"),C(b7(Te)),S(V1t(Te)),R(F1t(Te)),k(Te.webhook_id||""),B(vcn(Te)),O(be=>be+1),D(_(ycn(Te),xe)),W("")}async function le(){if(!r)return h([]),{fields:[],name:""};y(!0);try{const Te=await Xg({playbook_id:r}),xe=Q$(Te),be=$d(xe)?xe:{},ne=(typeof be.name=="string"&&be.name.trim()?be.name.trim():$d(be.meta)&&typeof be.meta.name=="string"?be.meta.name.trim():"")||n||"";H(ne);const me=$d(be.content)?be.content.yaml_content:be.yaml_content,ae=typeof me=="string"&&me?e8.parse(me):null,he=xcn($d(ae)?ae.params:[]);return h(he),{fields:he,name:ne}}catch{return h([]),{fields:[],name:""}}finally{y(!1)}}async function se(){g(!0);try{const Te=await iK({}),xe=Acn(Te);return u(xe),xe}catch(Te){return u([]),wt.error(MV(Te,"获取通知地址失败")),[]}finally{g(!1)}}async function oe(Te,xe=d,be=l,Ie=Z||n){if(!t||!r)return[];p(!0);try{const ne=await Mtt({agent_id:t,playbook_id:r}),me=bcn(ne);o(me);const ae=Te?me.find(ce=>b7(ce)===Te):null,he=x?me.find(ce=>b7(ce)===x):null,ee=ae||he||me[0];return ee?te(ee,xe):re(xe,be,Ie),me}catch(ne){return o([]),re(xe,be,Ie),wt.error(MV(ne,"获取定时任务失败")),[]}finally{p(!1)}}I.useEffect(()=>{!e||!t||!r||(W(""),V({}),Q(""),H(""),(async()=>{const[{fields:Te,name:xe},be]=await Promise.all([le(),se()]);await oe(void 0,Te,be,xe)})())},[e,t,r]);const ie=(Te,xe)=>{D(be=>({...be,[Te]:xe}))},ue=Te=>async({file:xe,onSuccess:be,onError:Ie})=>{var ne;V(me=>({...me,[Te]:!0}));try{const me=await Cy(xe),ae=(ne=me==null?void 0:me.data)==null?void 0:ne.url;if(!ae)throw new Error("上传失败");ie(Te,ae),be==null||be(me),wt.success("文件上传成功")}catch(me){Ie==null||Ie(me instanceof Error?me:new Error("文件上传失败")),wt.error(MV(me,"文件上传失败"))}finally{V(me=>({...me,[Te]:!1}))}},ve=()=>{if(!t)return wt.warning("缺少智能体ID"),!1;if(!r)return wt.warning("缺少场景ID"),!1;if(!w.trim())return wt.warning("请输入任务名称"),!1;if(!M)return wt.warning("请选择通知地址"),!1;if(T&&!N.trim())return wt.warning("请设置调度频率"),!1;for(const Te of d){const xe=P[Te.name];if(Te.required&&xe!==0&&xe!==!1&&(xe==null||xe===""))return wt.warning(`请填写「${Te.label||Te.name}」`),!1}return!0},fe=()=>{const Te=N||q$,xe=K?{...P}:void 0;return{name:w.trim(),agent_id:t,playbook_id:r,webhook_id:M,is_active:T,schedule_type:"custom",cron_expression:Te,playbook_params:xe}},ke=async()=>{if(ve()){W(""),j(!0);try{if(A==="edit"&&x)await Ntt(x,{},fe()),wt.success("定时任务已更新"),await oe(x);else{const Te=await ktt({},fe()),xe=Q$(Te),be=$d(xe)?b7(xe):"";wt.success("定时任务已创建"),await oe(be||void 0)}a==null||a()}catch(Te){W(MV(Te,"保存失败"))}finally{j(!1)}}},Se=async Te=>{const xe=b7(Te);if(xe){Q(xe);try{await ztt(xe,{}),wt.success("定时任务已删除"),x===xe&&C(""),await oe(),a==null||a()}catch(be){wt.error(MV(be,"删除失败"))}finally{Q("")}}},Le=Te=>{const xe=Te.cron_expression||Te.schedule_cron||"未设置频率",be=Ecn(Te.next_run_at),Ie=Te.webhook_id?Te.webhook_name||J.get(Te.webhook_id)||Te.webhook_id:"",ne=be?`${xe} · 下次 ${be}`:xe;return Ie?`${ne} · 通知 ${Ie}`:ne},Ge=Te=>{const xe=P[Te.name];switch(Te.type){case"file":{const be=Te.file_type||void 0,Ie=xe?String(xe).split("/").pop():"";return Ie?E.jsxs("div",{className:"sm-file-value",children:[E.jsx("span",{className:"sm-file-name",children:Ie}),E.jsx(_t,{size:"small",type:"text",danger:!0,onClick:()=>ie(Te.name,""),children:"删除"})]}):E.jsxs(Im.Dragger,{accept:be,showUploadList:!1,customRequest:ue(Te.name),disabled:!!L[Te.name],className:"sm-upload",children:[E.jsx("p",{style:{marginBottom:4},children:E.jsx(SC,{style:{fontSize:24,color:"#8b5cf6"}})}),E.jsx("p",{style:{fontSize:12,margin:0,color:"#6b7280"},children:L[Te.name]?"上传中...":"点击或拖拽文件上传"})]})}case"boolean":return E.jsx(_c,{checked:!!xe,onChange:be=>ie(Te.name,be),size:"small"});case"number":case"integer":case"float":{const be=typeof xe=="number"?xe:typeof xe=="string"&&xe.trim()!==""?Number(xe):void 0;return E.jsx(qd,{style:{width:"100%"},value:Number.isNaN(be)?void 0:be,onChange:Ie=>ie(Te.name,Ie),placeholder:`请输入${Te.label}`,size:"middle"})}case"array":case"object":return E.jsx(Or.TextArea,{value:typeof xe=="string"?xe:xe!=null?JSON.stringify(xe):"",onChange:be=>ie(Te.name,be.target.value),autoSize:{minRows:1,maxRows:4},placeholder:Te.description||"JSON 格式"});default:return Te.enum&&Te.enum.length>0?E.jsx(Qn,{style:{width:"100%"},value:typeof xe=="string"?xe:void 0,onChange:be=>ie(Te.name,be),placeholder:`请选择${Te.label}`,options:Te.enum.map(be=>({value:be,label:be})),size:"middle"}):E.jsx(Or,{value:typeof xe=="string"||typeof xe=="number"?String(xe):"",onChange:be=>ie(Te.name,be.target.value),placeholder:`请输入${Te.label}`,size:"middle"})}},Be=()=>E.jsxs("div",{className:"sm-footer",children:[E.jsx(_t,{onClick:i,children:"关闭"}),E.jsx(_t,{type:"primary",loading:F,onClick:ke,children:A==="edit"?"保存修改":"创建任务"})]});return E.jsxs(Oi,{title:null,open:e,onCancel:i,width:920,centered:!0,footer:Be(),className:"schedule-modal",closable:!1,zIndex:1e4,styles:{container:{padding:0}},children:[E.jsxs("div",{className:"sm-header",children:[E.jsx(To,{className:"sm-header-icon"}),E.jsxs("div",{children:[E.jsx("div",{className:"sm-header-title",children:"定时触发配置"}),E.jsx("div",{className:"sm-header-sub",children:Z||n||r||"当前场景"})]}),E.jsx(_t,{type:"primary",icon:E.jsx(Al,{}),onClick:()=>re(),children:"创建任务"})]}),E.jsxs("div",{className:"sm-layout",children:[E.jsxs("aside",{className:"sm-task-panel",children:[E.jsx("div",{className:"sm-task-panel-head",children:E.jsxs("div",{children:[E.jsx("div",{className:"sm-task-panel-title",children:"已创建任务"}),E.jsxs("div",{className:"sm-task-panel-count",children:[s.length," 个定时任务"]})]})}),E.jsx(xa,{spinning:f,children:s.length===0?E.jsx("div",{className:"sm-task-empty",children:E.jsx(Kl,{image:Kl.PRESENTED_IMAGE_SIMPLE,description:"暂无定时任务"})}):E.jsx("div",{className:"sm-task-list",children:s.map(Te=>{const xe=b7(Te),be=A==="edit"&&x===xe,Ie=F1t(Te);return E.jsxs("div",{className:`sm-task-item${be?" sm-task-item--active":""}`,children:[E.jsxs("button",{type:"button",className:"sm-task-select",onClick:()=>te(Te),children:[E.jsxs("div",{className:"sm-task-item-main",children:[E.jsxs("div",{className:"sm-task-item-title",children:[E.jsx("span",{children:V1t(Te)}),E.jsx(Qs,{color:Ie?"green":"default",children:Ie?"启用":"停用"})]}),E.jsx("div",{className:"sm-task-item-meta",children:Le(Te)})]}),E.jsx(hk,{className:"sm-task-edit"})]}),E.jsx("div",{className:"sm-task-actions",children:E.jsx(UZ,{title:"删除定时任务",description:"删除后不可恢复,确认删除?",okText:"删除",cancelText:"取消",okButtonProps:{danger:!0,loading:G===xe},onConfirm:ne=>{ne==null||ne.stopPropagation(),Se(Te)},onCancel:ne=>ne==null?void 0:ne.stopPropagation(),children:E.jsx(_t,{type:"text",size:"small",danger:!0,icon:E.jsx(_f,{}),onClick:ne=>ne.stopPropagation()})})})]},xe||Te.name)})})})]}),E.jsxs("section",{className:"sm-editor",children:[E.jsxs("div",{className:"sm-editor-head",children:[E.jsxs("div",{children:[E.jsx("div",{className:"sm-editor-title",children:A==="edit"?"编辑任务定时器":"创建任务定时器"}),E.jsx("div",{className:"sm-editor-sub",children:"按当前智能体和场景执行定时触发"})]}),E.jsxs("div",{className:"sm-header-switch",children:[E.jsx(L1t,{type:"secondary",style:{fontSize:12},children:T?"已启用":"已停用"}),E.jsx(_c,{size:"small",checked:T,onChange:R})]})]}),E.jsxs("div",{className:"sm-body",children:[E.jsxs("div",{className:"sm-section",children:[E.jsxs("div",{className:"sm-label",children:["任务名称",E.jsx("span",{style:{color:"#ef4444",marginLeft:2},children:"*"})]}),E.jsx(Or,{value:w,onChange:Te=>S(Te.target.value),placeholder:"例如:每日店铺表现分析"})]}),E.jsxs("div",{className:"sm-section",children:[E.jsxs("div",{className:"sm-label",children:["通知地址",E.jsx("span",{style:{color:"#ef4444",marginLeft:2},children:"*"})]}),E.jsx("div",{className:"sm-param-hint",children:"任务触发后的消息通知地址"}),E.jsx(Qn,{allowClear:!0,showSearch:!0,loading:m,disabled:m,value:M||void 0,onChange:Te=>k(Te||""),placeholder:"请选择通知 Webhook",optionFilterProp:"label",options:X}),!m&&l.length===0&&E.jsx("div",{className:"sm-inline-alert",children:"暂无可用通知地址,请先在通知配置中创建"})]}),T?E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"sm-section",children:[E.jsx("div",{className:"sm-label",children:"调度频率"}),E.jsx("div",{className:"sm-param-hint",children:"设置场景自动执行的时间间隔和触发时间"}),E.jsx(Ewe,{defaultValue:N,onChange:Te=>B(Te)},z)]}),(v||K)&&E.jsxs("div",{className:"sm-section",children:[E.jsx("div",{className:"sm-label",children:"执行参数"}),E.jsx("div",{className:"sm-param-hint",children:"定时执行时传给当前场景的参数"}),E.jsx("div",{className:"sm-form-panel",children:v?E.jsxs("div",{style:{padding:18,textAlign:"center"},children:[E.jsx(xa,{size:"small"}),E.jsx("span",{style:{marginLeft:8,fontSize:12,color:"#9ca3af"},children:"加载参数配置..."})]}):E.jsx("div",{className:"sm-dynamic-fields",children:d.map(Te=>E.jsxs("div",{className:"sm-field-item",children:[E.jsxs("div",{className:"sm-field-label",children:[Te.label||Te.name,Te.required&&E.jsx("span",{style:{color:"#ef4444",marginLeft:2},children:"*"})]}),Te.description&&E.jsx("div",{className:"sm-field-desc",children:Te.description}),Ge(Te)]},Te.name))})})]})]}):E.jsxs("div",{className:"sm-disabled-hint",children:[E.jsx(To,{style:{fontSize:28,color:"#d1d5db"}}),E.jsx(L1t,{type:"secondary",style:{fontSize:13},children:"任务已停用,保存后不会自动触发"})]}),Y&&E.jsx("div",{style:{color:"#ef4444",fontSize:12,padding:"8px 0 0",textAlign:"center"},children:Y})]})]})]})]})}function Q1t(e){return!!(e&&/\/api\/v1\/cognitive\/artifacts\/[^/]+\/download/.test(e))}function Ccn(e,t){if(!e)return t;const r=/filename\*=(?:UTF-8'')?([^;]+)/i.exec(e);if(r)try{return decodeURIComponent(r[1].replace(/["']/g,"").trim())}catch{}const n=/filename="?([^";]+)"?/i.exec(e);return n?n[1].trim():t}function Y1t(e){return e.startsWith("artifact:")?e.slice(9):null}async function Y$(e,t="文件"){const r=await fetch(`${Gi()}/api/v1/cognitive/artifacts/${e}/download`,{headers:fG()});if(!r.ok)throw new Error(`下载失败(HTTP ${r.status})`);const n=await r.blob(),i=Ccn(r.headers.get("content-disposition"),t),a=URL.createObjectURL(n),s=document.createElement("a");s.href=a,s.download=i,s.click(),URL.revokeObjectURL(a)}async function Scn(e){const t=await fetch(`${Gi()}/api/v1/cognitive/runs/${e}/report.md`,{headers:fG()});if(!t.ok)throw new Error(`报告打开失败(HTTP ${t.status})`);const r=await t.text(),n=URL.createObjectURL(new Blob([r],{type:"text/plain"}));window.open(n,"_blank","noopener,noreferrer"),setTimeout(()=>URL.revokeObjectURL(n),6e4)}const wcn=new Set(["完成","已完成","执行完成"]);function G1t(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function G$(e){return e==null?!1:typeof e=="string"?e.trim().length>0:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function Tcn(e){const{data:t}=e,r=[];return Array.isArray(t.output)?r.push(...t.output.filter(G$)):G$(t.output)&&r.push(t.output),Array.isArray(t.children)&&r.push(...t.children.filter(G$)),G$(t.content)&&r.push(G1t(t.content)&&typeof t.content.type=="string"?t.content:{type:typeof t.type=="string"?t.type:"markdown",title:t.title,content:t.content,fields_map:t.fields_map,input_params:t.input_params,streaming:t.streaming===!0}),r}function W1t(e){return(e==null?void 0:e.origin)==="live"&&e.status==="running"}function U1t(e){return[...e].filter(t=>t.type==="step"||t.type==="output").sort((t,r)=>t.sequence-r.sequence)}function W$(e,t){return e.event_id||`${e.type}-${e.sequence}-${t}`}function Rcn(e){const t=U1t(e);let r=-1;for(let n=t.length-1;n>=0;n-=1)if(t[n].type==="step"){r=n;break}return r<0?{previousEventKeys:[]}:{activeStepKey:W$(t[r],r),previousEventKeys:t.slice(0,r).map((n,i)=>W$(n,i))}}function Z1t(e){const t=e.content.trim();return t?/^✅\s*.*执行完成(?:\s|$)/.test(t)?!0:e.process?e.process.status==="running"&&e.stream_content_received!==!0?!0:e.process.status==="stopped"&&(e.execution_status==="stopped"||e.execution_status==="stopping"||["任务已停止","已停止","正在停止..."].includes(t)):!1:!1}function kcn(e){if(e.ui_payload)return!0;const t=e.content.trim();return!!(t&&!t.startsWith("⏳")&&!wcn.has(t)&&!Z1t(e))}function H1t(e){const t=e.trim();if(!t.startsWith("[")&&!t.startsWith("{"))return e;try{return JSON.parse(t)}catch{return e}}function NV(e){if(Array.isArray(e))return e.flatMap(NV);if(typeof e=="string"){const t=H1t(e);return t!==e?NV(t):e.trim()?[{type:"markdown",content:e}]:[]}if(typeof e=="number"||typeof e=="boolean")return[{type:"text",content:e}];if(!G1t(e))return[];if(typeof e.type!="string"&&typeof e.content=="string"){const t=H1t(e.content);if(t!==e.content){const r=NV(t);if(r.length>0)return r}}return[e]}function Mcn(e){return e.flatMap(t=>(t==null?void 0:t.type)==="step"&&Array.isArray(t.children)?NV(t.children).filter(r=>(r==null?void 0:r.streaming)!==!0):[])}function Ncn(e,t,r){if(!Array.isArray(e))return;const n=NV(e);if(!t)return n;const i=n.filter(s=>(s==null?void 0:s.type)!=="step");if(i.length>0)return i;if(r)return;const a=Mcn(n);return a.length>0?a:void 0}function zcn(e){const{data:t}=e,r=typeof t.step_name=="string"?t.step_name.trim():"",n=typeof t.title=="string"?t.title.trim():"",i=typeof t.message=="string"?t.message.trim():"";return e.type==="thinking"?i||"正在分析":e.type==="step"?r||n||i||`步骤 ${e.sequence}`:e.type==="output"?r?`${r} · 输出`:n||"步骤输出":e.type==="error"?i||"执行失败":e.type==="stopped"?i||"任务已停止":e.type==="recommend"?i||"生成推荐内容":n||i||`过程记录 ${e.sequence}`}function Ocn(e,t){if(e.type==="error")return"failed";if(e.type==="stopped")return"stopped";if(e.type==="thinking")return t==="running"?"running":"done";const r=String(e.data.status||"").toLowerCase();return["failed","error"].includes(r)?"failed":["stopped","cancelled","canceled"].includes(r)?"stopped":["running","pending","executing"].includes(r)?t==="failed"?"failed":t==="stopped"?"stopped":t==="completed"?"done":"running":"done"}function Bcn(e){return e==="running"?"执行中":e==="failed"?"失败":e==="stopped"?"已停止":"已完成"}function Pcn(e,t,r){const n=typeof e.duration_ms=="number"&&Number.isFinite(e.duration_ms),i=n?Math.max(0,e.duration_ms):0;if(e.status!=="running"){if(n)return i;const s=e.events.map(d=>Date.parse(d.timestamp||"")).filter(Number.isFinite);if(s.length===0)return 0;const o=Date.parse(t),l=Math.min(...s),u=Number.isFinite(o)?Math.max(o,...s):Math.max(...s);return Math.max(0,u-l)}const a=Date.parse(e.started_at||t);return Number.isFinite(a)?Math.max(i,r-a):i}function Dcn(e){if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleTimeString("zh-CN",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Lcn(e,t){return e.status==="running"?`思考中(已用时 ${t} 秒)`:e.status==="failed"?`思考失败(用时 ${t} 秒)`:e.status==="stopped"?`已停止(用时 ${t} 秒)`:`用时 ${t} 秒`}function Vcn({process:e,messageTimestamp:t,autoCollapseOnTerminal:r=!0,hasOutputPayload:n=!1}){const i=I.useMemo(()=>U1t((e==null?void 0:e.events)||[]),[e==null?void 0:e.events]),a=I.useMemo(()=>i.map((S,T)=>W$(S,T)),[i]),s=I.useMemo(()=>Rcn(i),[i]),[o,l]=I.useState(()=>W1t(e)),[u,d]=I.useState(()=>new Set(a)),[h,f]=I.useState(()=>Date.now()),p=I.useRef(""),m=I.useRef(new Set),g=e==null?void 0:e.started_at,v=e==null?void 0:e.origin,y=e?`${v||""}\0${g||""}`:"",A=W1t(e),b=I.useRef(y),x=I.useRef(e==null?void 0:e.status);if(I.useEffect(()=>{if((e==null?void 0:e.status)!=="running")return;f(Date.now());const S=window.setInterval(()=>f(Date.now()),1e3);return()=>window.clearInterval(S)},[e==null?void 0:e.status]),I.useEffect(()=>{const S=e==null?void 0:e.status,T=b.current!==y,R=x.current==="running"&&S!==void 0&&S!=="running";T?(l(A),d(new Set(a)),m.current.clear(),p.current=`${y}\0__reset__`):R?(r&&l(!1),d(new Set(a)),m.current.clear()):S!==void 0&&S!=="running"&&d(M=>{const k=new Set(M);for(const z of a)m.current.has(z)||k.add(z);return k}),b.current=y,x.current=S},[r,a,e==null?void 0:e.status,y,A]),I.useEffect(()=>{d(S=>{const T=new Set(S);let R=!1;for(const M of a)!T.has(M)&&!m.current.has(M)&&(T.add(M),R=!0);return R?T:S})},[a]),I.useEffect(()=>{if((e==null?void 0:e.status)!=="running"||v!=="live"||!s.activeStepKey)return;const S=`${y}\0${s.activeStepKey}`;p.current!==S&&(p.current=S,s.previousEventKeys.length!==0&&d(T=>{const R=new Set(T);for(const M of s.previousEventKeys)m.current.has(M)||R.add(M);return R}))},[e==null?void 0:e.status,v,y,s]),!e)return null;const C=Math.round(Pcn(e,t,h)/1e3),w=i.length>0||e.status==="running";return E.jsxs("section",{className:`wandox-message-process wandox-message-process--${e.status}`,children:[E.jsxs("button",{type:"button",className:"wandox-message-process__toggle",onClick:()=>w&&l(S=>!S),"aria-expanded":w?o:void 0,disabled:!w,children:[E.jsx("span",{className:"wandox-message-process__summary-icon","aria-hidden":"true",children:e.status==="running"?E.jsx("span",{className:"wandox-message-process__spinner"}):E.jsx("svg",{viewBox:"0 0 20 20",width:"16",height:"16",fill:"none",children:e.status==="failed"?E.jsx("path",{d:"m6.5 6.5 7 7m0-7-7 7",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"}):e.status==="stopped"?E.jsx("rect",{x:"6.2",y:"6.2",width:"7.6",height:"7.6",rx:"1",fill:"currentColor"}):E.jsx("path",{d:"M5.5 10.3 8.4 13l6.1-6",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),E.jsx("span",{children:Lcn(e,C)}),w&&E.jsx("svg",{className:`wandox-message-process__chevron${o?" wandox-message-process__chevron--expanded":""}`,viewBox:"0 0 20 20",width:"14",height:"14",fill:"none","aria-hidden":"true",children:E.jsx("path",{d:"m8 6.5 3.5 3.5L8 13.5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})})]}),o&&w&&E.jsxs("div",{className:"wandox-message-process__events",children:[i.map((S,T)=>{const R=Ocn(S,e.status),M=n&&S.type==="output"?[]:Tcn(S),k=Dcn(S.timestamp),z=W$(S,T),O=M.length>0,N=O&&m.current.has(z)&&!u.has(z),B=E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"wandox-message-process__event-title-group",children:[E.jsx("div",{className:"wandox-message-process__event-title",children:zcn(S)}),O&&E.jsx("svg",{className:`wandox-message-process__event-chevron${N?" wandox-message-process__event-chevron--expanded":""}`,viewBox:"0 0 20 20",width:"13",height:"13",fill:"none","aria-hidden":"true",children:E.jsx("path",{d:"m8 6.5 3.5 3.5L8 13.5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})}),R!=="done"&&E.jsx("span",{className:`wandox-message-process__event-status wandox-message-process__event-status--${R}`,children:Bcn(R)})]}),k&&E.jsx("time",{className:"wandox-message-process__event-time",children:k})]});return E.jsxs("div",{className:`wandox-message-process__event wandox-message-process__event--${R}`,children:[E.jsx("span",{className:"wandox-message-process__event-marker","aria-hidden":"true",children:R==="running"&&E.jsx("span",{className:"wandox-message-process__event-loading-spinner"})}),E.jsxs("div",{className:"wandox-message-process__event-content",children:[O?E.jsx("button",{type:"button",className:"wandox-message-process__event-header wandox-message-process__event-header--toggle","aria-expanded":N,onClick:()=>d(P=>{const D=new Set(P);return D.has(z)?(D.delete(z),m.current.add(z)):(D.add(z),m.current.delete(z)),D}),children:B}):E.jsx("div",{className:"wandox-message-process__event-header",children:B}),N&&M.map((P,D)=>{const L=`${S.sequence}-payload-${D}`;return E.jsx("div",{className:"wandox-message-process__event-payload",children:E.jsx(IS,{payload:P})},L)})]})]},z)}),e.truncated===!0&&E.jsxs("div",{className:"wandox-message-process__notice wandox-message-process__notice--footer",children:["过程记录较多,当前展示前 ",i.length," 条"]})]})]})}const Fcn=10,jcn=48;function qcn({scrollTop:e,hasMore:t,loading:r,failed:n}){return e<=jcn&&t&&!r&&!n}const Qcn={loading:"加载中...",loadMore:"加载更多",executionResult:"执行结果",executableActions:"可执行动作"};function A7(e,t){return(e==null?void 0:e[t])||Qcn[t]}function Iwe(e){if(typeof e!="string")return;const t=e.trim();if(!(!t||t.toLowerCase()==="empty"))return t}function K1t(e){var r;const t=(r=e.meta_content)==null?void 0:r.artifacts;return Array.isArray(t)?t.filter(n=>!!n&&typeof n=="object"&&typeof n.artifact_id=="string"):[]}function Ycn({messageId:e,dataIndex:t,role:r,className:n,containerRef:i,forceRender:a,children:s}){const o=I.useRef(null),[l,u]=I.useState(a);return I.useEffect(()=>{a&&u(!0)},[a]),I.useEffect(()=>{const d=o.current,h=i.current;if(!d||!h||l)return;if(!("IntersectionObserver"in window)){u(!0);return}const f=new IntersectionObserver(p=>{p.some(m=>m.isIntersecting)&&(u(!0),f.disconnect())},{root:h,rootMargin:"600px 0px"});return f.observe(d),()=>f.disconnect()},[i,l]),E.jsx("div",{ref:o,"data-message-id":e,"data-message-index":t,className:n,style:l?void 0:{minHeight:r==="user"?64:112},"aria-busy":!l,children:l?s:E.jsx("div",{className:"wandox-message-deferred-placeholder","aria-hidden":"true"})})}function Cwe({messages:e,executing:t,auth:r,ssoToken:n,ssoDomain:i,ssoCompany:a,apiBaseUrl:s,ossUploadUrl:o,uploadFile:l,actionExecuteUrl:u,batchActionExecuteUrl:d,onExecuteAction:h,onExecuteBatchActions:f,getPlaybookDetail:p,labels:m,autoCollapseProcessOnTerminal:g=!0,onExecutePlaybook:v,onFillPlaybookParams:y,onRespondToProposal:A,messagesTotal:b,hasMoreMessages:x,loadMoreMessages:C,loading:w,messageToolbar:S,onOpenActionDrawer:T,emptyContent:R,initialLoadingContent:M,containerRef:k,endRef:z,className:O,conversationKey:N}){var de;const B=o??(s!==void 0?`${s.replace(/\/$/,"")}/api/v1/oss/upload2`:void 0),P=T1t(r,{ssoToken:n,ssoDomain:i,ssoCompany:a}),D=!!(h||u||s!==void 0||P.accessToken||P.tenantId||P.domain),L=I.useRef(null),V=I.useRef(null),F=k||L,j=z||V,G=I.useRef(0),Q=I.useRef(!1),Y=I.useRef(null),W=I.useRef(!1),Z=I.useRef(!1),H=I.useRef(0),K=I.useRef(0),J=I.useRef(null),X=I.useRef([]),$=I.useRef(null),_=I.useRef(!1),re=I.useRef(!1),te=I.useRef(!1),le=I.useRef(null),se=I.useRef(N),[oe,ie]=I.useState(!0),[ue,ve]=I.useState(!1),[fe,ke]=I.useState(!1),Se=!!(C&&e.length>0&&(x??(b!==void 0&&e.length<b))),Le=e.some(pe=>pe.retrigger_status==="executing"),Ge=e.some(pe=>{var Ae;return((Ae=pe.process)==null?void 0:Ae.status)==="running"}),Be=!!M;se.current!==N&&(se.current=N,G.current=0,_.current=!1,Q.current=!1,W.current=!1,Z.current=!1,H.current=0,K.current=0,J.current=null,re.current=!1,te.current=!1,(de=le.current)==null||de.call(le),le.current=null);const Te=I.useCallback(()=>{const pe=F.current;return pe?pe.scrollHeight-pe.scrollTop-pe.clientHeight<100:!0},[F]),xe=I.useCallback((pe="smooth")=>{const Ae=F.current;Ae&&(Ae.scrollLeft=0,pe==="auto"?Ae.scrollTop=Ae.scrollHeight:Ae.scrollTo({top:Ae.scrollHeight,behavior:pe}))},[F]),be=I.useCallback(()=>{for(const pe of X.current)clearTimeout(pe);X.current=[]},[]),Ie=I.useCallback(()=>{be(),$.current&&clearTimeout($.current),$.current=null,W.current=!1,Z.current=!1,H.current=0,K.current=0,J.current=null},[be]),ne=I.useCallback(()=>{const pe=F.current;if(!pe)return;const Ae=J.current;if(Ae){const Oe=Array.from(pe.querySelectorAll(".wandox-message")).find(Ye=>Ye.dataset.messageId===Ae.messageId);if(Oe){const Ye=Oe.getBoundingClientRect().top-pe.getBoundingClientRect().top;pe.scrollTop+=Ye-Ae.viewportOffset;return}}const Me=pe.scrollHeight-H.current;pe.scrollTop=Math.max(0,K.current+Me)},[F]),me=I.useCallback(()=>{be(),$.current&&(clearTimeout($.current),$.current=null),ne(),X.current=[100,300,600].map(pe=>setTimeout(()=>{ne(),pe===600&&Ie()},pe))},[be,Ie,ne]),ae=I.useCallback(()=>{$.current&&clearTimeout($.current),$.current=setTimeout(()=>{$.current=null,W.current&&(ne(),Ie())},800)},[Ie,ne]),he=I.useCallback(async()=>{if(!C||!Se||w||W.current)return;const pe=F.current;if(pe){H.current=pe.scrollHeight,K.current=pe.scrollTop;const Me=pe.getBoundingClientRect().top,Oe=Array.from(pe.querySelectorAll(".wandox-message")).find(Ve=>Ve.getBoundingClientRect().bottom>Me),Ye=Oe==null?void 0:Oe.dataset.messageId;J.current=Oe&&Ye?{messageId:Ye,viewportOffset:Oe.getBoundingClientRect().top-Me}:null}W.current=!0,Z.current=!0,ve(!0),ke(!1);let Ae=!1;try{await C()}catch{Ae=!0,ke(!0)}finally{ve(!1),Ae?Ie():ae()}},[F,ae,Se,C,w,Ie]);I.useEffect(()=>{$.current&&(clearTimeout($.current),$.current=null),be(),ve(!1),ke(!1)},[be,N]),I.useEffect(()=>()=>{var pe;be(),$.current&&clearTimeout($.current),(pe=le.current)==null||pe.call(le)},[be]),I.useLayoutEffect(()=>{const pe=e.length,Ae=G.current;if(pe>Ae){if(W.current){me(),G.current=pe;return}const Me=setTimeout(()=>{const Oe=Te();Ae===0?xe("auto"):Oe&&!Q.current&&xe("smooth")},100);return G.current=pe,()=>clearTimeout(Me)}G.current=pe},[Te,e.length,me,xe]);const ee=(()=>{if(e.length===0)return"";const pe=e[e.length-1];try{return JSON.stringify({outputs:pe==null?void 0:pe.outputs,uiPayload:pe==null?void 0:pe.ui_payload,content:pe==null?void 0:pe.content,executionStatus:pe==null?void 0:pe.execution_status,process:pe==null?void 0:pe.process})}catch{return`${(pe==null?void 0:pe.id)||""}:${(pe==null?void 0:pe.execution_status)||""}`}})();I.useEffect(()=>{if(e.length===0||W.current||Z.current)return;if(e[e.length-1].role==="assistant"&&!Q.current){const Ae=setTimeout(()=>{const Me=F.current;Me&&Me.scrollBy({top:300,behavior:"smooth"})},100);return()=>clearTimeout(Ae)}},[F,ee,e]),I.useEffect(()=>{if(!t||W.current||Z.current||Q.current)return;const pe=setTimeout(()=>{xe("smooth")},100);return()=>clearTimeout(pe)},[t,ee,xe]),I.useEffect(()=>{const pe=F.current;if(!pe)return;const Ae=()=>{Y.current&&clearTimeout(Y.current),Q.current=!0,Y.current=setTimeout(()=>{Q.current=!1},500),qcn({scrollTop:pe.scrollTop,hasMore:Se,loading:w||ue||W.current,failed:fe})&&he()};return pe.addEventListener("scroll",Ae),()=>{pe.removeEventListener("scroll",Ae),Y.current&&clearTimeout(Y.current)}},[F,Se,fe,w,ue,he]),I.useLayoutEffect(()=>{var Ce;if(!Be)return;if(w){if(re.current||te.current||e.length>0)return;re.current=!0,te.current=!1,_.current=!1,ie(!1);return}if(!re.current||te.current||Z.current)return;if(te.current=!0,e.length===0){_.current=!0,ie(!0);return}(Ce=le.current)==null||Ce.call(le);let pe=0,Ae=0,Me=0,Oe=-1;const Ye=F.current,Ve=typeof ResizeObserver<"u"&&Ye?new ResizeObserver(()=>{Me=0}):null;Ve&&Ye&&Ve.observe(Ye);const rt=()=>{const Xe=F.current;if(!Xe){_.current=!0,ie(!0);return}Xe.scrollLeft=0,Xe.scrollTop=Xe.scrollHeight;const ye=Xe.scrollHeight;if(Me=ye===Oe?Me+1:0,Oe=ye,Ae+=1,Me>=3||Ae>=30){Xe.scrollTop=Xe.scrollHeight,Ve==null||Ve.disconnect(),le.current=null,_.current=!0,ie(!0);return}pe=requestAnimationFrame(rt)};return pe=requestAnimationFrame(rt),le.current=()=>{cancelAnimationFrame(pe),Ve==null||Ve.disconnect()},()=>{var Xe;(Xe=le.current)==null||Xe.call(le),le.current=null}},[F,Be,w,e.length]),I.useEffect(()=>{if(Be||e.length===0){e.length===0&&(_.current=!1);return}if(Z.current||w||_.current)return;_.current=!0;const pe=requestAnimationFrame(()=>xe("auto"));return()=>cancelAnimationFrame(pe)},[Be,w,e.length,xe]);const ce=!!(Be&&!ue&&(w&&e.length===0||!oe));return E.jsx(a1t.Provider,{value:{onExecutePlaybook:v,onFillPlaybookParams:y,getPlaybookDetail:p,uploadFile:l,ossUploadUrl:B,auth:P},children:E.jsxs("div",{className:`wandox-chat-messages${O?` ${O}`:""}`,ref:F,children:[e.length===0&&!ce&&(w?M??R:R),ce&&E.jsx("div",{className:"wandox-chat-initial-loading-overlay","aria-live":"polite",children:M}),Se&&(ue||fe)&&E.jsx("div",{className:"wandox-load-more-container",children:ue?E.jsx("output",{className:"wandox-load-more-loading wandox-load-more-status","aria-live":"polite",children:A7(m,"loading")}):E.jsx("button",{type:"button",className:"wandox-load-more-btn",onClick:()=>{he()},disabled:w,children:A7(m,"loadMore")})}),e.map((pe,Ae)=>{var Xe;const Me=Ae===e.length-1,Oe=`${pe.role}:${pe.id}`,Ye=pe.message_id||pe.id,Ve=Z1t(pe),rt=Array.isArray(pe.outputs),Ce=Ncn(pe.outputs,pe.process,kcn(pe));return E.jsxs(Ycn,{messageId:Ye,dataIndex:Ae,role:pe.role,containerRef:F,forceRender:Ae>=e.length-3,className:`wandox-message ${pe.role}${pe.role==="user"&&pe.proposal?" wandox-message--proposal":""}`,children:[pe.role==="user"&&pe.proposal&&pe.content&&E.jsx("div",{className:"wandox-message-content wandox-message-content--user-text",children:pe.content}),E.jsxs("div",{className:"wandox-message-content",children:[pe.role==="assistant"&&pe.retrigger_status==="executing"&&!pe.process&&E.jsxs("output",{className:"wandox-retrigger-state wandox-retrigger-state--loading","aria-live":"polite",children:[E.jsxs("span",{className:"wandox-retrigger-loader","aria-hidden":"true",children:[E.jsx("span",{}),E.jsx("span",{}),E.jsx("span",{})]}),E.jsxs("span",{className:"wandox-retrigger-state__copy",children:[E.jsx("strong",{children:"正在重新生成"}),E.jsx("span",{children:"正在重新分析并整理结果"})]})]}),pe.role==="assistant"&&pe.retrigger_status==="failed"&&!pe.process&&E.jsxs("div",{className:"wandox-retrigger-state wandox-retrigger-state--failed",role:"alert",children:[E.jsx("span",{className:"wandox-retrigger-error-icon","aria-hidden":"true"}),E.jsxs("span",{className:"wandox-retrigger-state__copy",children:[E.jsx("strong",{children:"重新生成失败"}),E.jsx("span",{children:pe.retrigger_error||"服务暂时无法完成请求,请稍后重试"})]})]}),pe.role==="user"&&pe.proposal?E.jsx(I1t,{proposal:pe.proposal,disabled:!0,proposalStatus:pe.proposal_status,initialFilledParams:(Xe=pe.meta_content)==null?void 0:Xe.filled_params,onConfirm:()=>{},onReject:()=>{}}):pe.role==="user"&&E.jsxs(E.Fragment,{children:[pe.content,pe.attachments&&pe.attachments.length>0&&E.jsx("div",{className:"wandox-message-attachments",children:pe.attachments.map(ye=>ye.type==="image"?E.jsx("div",{className:"wandox-message-attachment-image-wrapper",children:E.jsx(_ge,{src:ye.url,alt:ye.name||"图片",className:"wandox-message-attachment-image"})},ye.url):E.jsxs("a",{href:ye.url,target:"_blank",rel:"noopener noreferrer",className:"wandox-message-attachment-file",children:[E.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[E.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),E.jsx("polyline",{points:"14 2 14 8 20 8"}),E.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),E.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),E.jsx("polyline",{points:"10 9 9 9 8 9"})]}),E.jsx("span",{children:ye.name||"文件"})]},ye.url||ye.name))})]}),pe.role==="assistant"&&E.jsx(Vcn,{process:pe.process,messageTimestamp:pe.timestamp,autoCollapseOnTerminal:g,hasOutputPayload:rt}),Ce&&Ce.length>0&&E.jsx("div",{className:"wandox-outputs-container",children:Ce.map((ye,Pe)=>{const Ne=Iwe(ye.title),Fe=ye.type==="table"&&Me&&pe.actions&&pe.actions.length>0&&D;return E.jsxs("div",{className:"wandox-execution-result",children:[(Ne||ye.step_index)&&E.jsx("div",{className:"wandox-result-title",children:Ne||(ye.step_index?`Step${ye.step_index}:${ye.step_name||""}`:A7(m,"executionResult"))}),E.jsx("div",{className:"wandox-result-body",children:Fe?E.jsxs(E.Fragment,{children:[E.jsx(yV,{params:ye.input_params}),E.jsx(N1t,{payload:ye,actions:pe.actions??[],auth:P,apiBaseUrl:s,actionExecuteUrl:u,batchActionExecuteUrl:d,onExecuteAction:h,onExecuteBatchActions:f})]}):E.jsx(IS,{payload:ye})})]},`output-${Pe}-${Ne||ye.step_index}`)})}),pe.ui_payload&&!rt&&(()=>{var tt,We,Je,Ee,gt,pt;const ye=pe.ui_payload,Pe=Iwe((tt=pe.ui_payload)==null?void 0:tt.title),Ne=Iwe((Je=(We=pe.ui_payload)==null?void 0:We.output_data)==null?void 0:Je.title),Fe=(ye==null?void 0:ye.type)==="table"&&Me&&pe.actions&&pe.actions.length>0&&D;return E.jsxs("div",{className:"wandox-execution-result",children:[(Pe||Ne||((Ee=pe.ui_payload)==null?void 0:Ee.step_index))&&E.jsx("div",{className:"wandox-result-title",children:Pe||Ne||((gt=pe.ui_payload)!=null&>.step_index?`Step${pe.ui_payload.step_index}:${((pt=pe.ui_payload)==null?void 0:pt.step_name)||""}`:A7(m,"executionResult"))}),E.jsx("div",{className:"wandox-result-body",children:Fe?E.jsxs(E.Fragment,{children:[E.jsx(yV,{params:ye.input_params}),E.jsx(N1t,{payload:ye,actions:pe.actions??[],auth:P,apiBaseUrl:s,actionExecuteUrl:u,batchActionExecuteUrl:d,onExecuteAction:h,onExecuteBatchActions:f})]}):E.jsx(IS,{payload:pe.ui_payload})})]})})(),pe.role==="assistant"&&!pe.retrigger_status&&pe.content&&(pe.content.startsWith("❌")||pe.content.startsWith("⏳")&&!Ce&&!pe.process)&&E.jsx(IS,{payload:L$(pe.content.replace(/^❌\s*/,""))}),pe.role==="assistant"&&!pe.retrigger_status&&!Ce&&!pe.ui_payload&&!pe.proposal&&pe.content&&!Ve&&!pe.content.startsWith("❌")&&!pe.content.startsWith("⏳")&&E.jsx("div",{className:"wandox-execution-result",children:E.jsx(IS,{payload:L$(pe.content)})}),pe.role==="assistant"&&K1t(pe).length>0&&E.jsx("div",{className:"wandox-message-artifacts",children:K1t(pe).map(ye=>{const Pe=ye.oss_url||`${(s==null?void 0:s.replace(/\/$/,""))||""}/api/v1/cognitive/artifacts/${ye.artifact_id}/download`;return E.jsx(u1t,{href:Pe,onClick:ye.oss_url?void 0:Ne=>{Ne.preventDefault(),Y$(ye.artifact_id,ye.filename||ye.artifact_id).catch(Fe=>{})},children:ye.filename||ye.artifact_id},ye.artifact_id)})}),pe.role==="assistant"&&pe.proposal&&E.jsx(I1t,{proposal:pe.proposal,disabled:t,proposalStatus:pe.proposal_status,onConfirm:(ye,Pe)=>{var Fe,tt,We;const Ne=(Fe=pe.proposal)==null?void 0:Fe.options.find(Je=>Je.id===ye);A==null||A({proposal_id:((tt=pe.proposal)==null?void 0:tt.proposal_id)??"",proposal_action:"confirm",selected_option_id:ye,filled_params:Pe,messageId:pe.id,proposalMessage:(We=pe.proposal)==null?void 0:We.message,optionTitle:Ne==null?void 0:Ne.title})},onReject:()=>{var ye;A==null||A({proposal_id:((ye=pe.proposal)==null?void 0:ye.proposal_id)??"",proposal_action:"reject",messageId:pe.id})}}),pe.role==="assistant"&&pe.actions&&pe.actions.length>0&&T&&(()=>{const ye=pe.ui_payload;return(!!(Ce!=null&&Ce.some(Ne=>(Ne==null?void 0:Ne.type)==="table"))||(ye==null?void 0:ye.type)==="table"&&!rt)&&D?null:E.jsx("div",{className:"wandox-execution-results",children:E.jsx("button",{type:"button",className:"wandox-execution-results-btn",disabled:!Me,"aria-disabled":!Me,title:Me?void 0:"仅最新一条消息可执行动作",onClick:()=>{var Ne;Me&&T(A7(m,"executableActions"),((Ne=pe.actions)==null?void 0:Ne.map(Fe=>({action_id:Fe.action_id,playbook_id:Fe.playbook_id,label:Fe.display_name||"执行",params:Fe.params,params_fields_map:Fe.params_fields_map,status:Fe.status,supports_batch:Fe.supports_batch,batch_max_items:Fe.batch_max_items,batch_id:Fe.batch_id,outputs:Fe.outputs})))||[])},children:E.jsxs("div",{className:"wandox-execution-results-content",children:[E.jsxs("div",{className:"wandox-execution-results-text",children:[A7(m,"executableActions")," (",pe.actions.length,")"]}),E.jsx("div",{className:"wandox-execution-results-arrow",children:E.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-label":"箭头",role:"img",children:E.jsx("polyline",{points:"9 18 15 12 9 6"})})})]})})})})(),S==null?void 0:S(pe,Me)]})]},Oe)}),t&&!Le&&!Ge&&E.jsx("div",{className:"wandox-message assistant",children:E.jsx("div",{className:"wandox-message-content",children:E.jsx("div",{className:"wandox-typing-indicator",children:E.jsx("span",{className:"wandox-typing-dot"})})})}),E.jsx("div",{ref:j})]})})}function J1t(e){const t=Gi(),r=I.useCallback(async n=>{const{data:i}=await Xg({playbook_id:n});return i},[]);return E.jsx(Cwe,{apiBaseUrl:t,getPlaybookDetail:r,...e})}function Gcn(e){var n;const t=e.outputs,r=e.ui_payload;return!!((t==null?void 0:t.type)==="table"||(r==null?void 0:r.type)==="table"||Array.isArray(e.outputs)&&e.outputs.some(i=>(i==null?void 0:i.type)==="table")||((n=e.meta_content)==null?void 0:n.output_type)==="table")}function Wcn(e,t){const r=URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.click(),URL.revokeObjectURL(r)}function Swe(e){var t;return(t=e.meta_content)!=null&&t.playbook_id?"数据报表":"对话内容"}function X1t(){return new Date().toISOString().slice(0,10)}async function Ucn(e){const t=e.message_id||e.id;if(t)try{await _1t(String(t),"pdf",Swe(e));return}catch{}Zcn(e)}function Zcn(e){const t=`${Swe(e)}_${X1t()}`,r=document.querySelector(`[data-message-id="${e.message_id||e.id}"] .wandox-message-content`);if(!r){wt.warning("无法定位消息内容");return}const n=window.open("","_blank");if(!n){wt.warning("请允许弹出窗口");return}n.document.write(`<!DOCTYPE html><html><head><meta charset="utf-8"><title>${t}</title><style>body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;padding:20px;color:#333}table{border-collapse:collapse;width:100%}th,td{border:1px solid #d9d9d9;padding:6px 8px;font-size:13px;text-align:left}th{background:#fafafa}img{max-width:100%}pre{white-space:pre-wrap;word-break:break-all;font-size:12px;background:#f5f5f5;padding:12px;border-radius:4px}button,.ant-btn,.ant-tooltip-open{display:none!important}</style></head><body>${r.innerHTML}</body></html>`),n.document.close(),n.onload=()=>{n.print(),n.close()}}async function Hcn(e){const t=e.message_id||e.id;if(t)try{await _1t(String(t),"docx",Swe(e))}catch{wt.warning("导出 Word 失败,请稍后再试")}}async function _1t(e,t,r){const n=await Ht({method:"GET",url:`/api/v1/agents/messages/${encodeURIComponent(e)}/export`,params:{format:t},responseType:"blob",requestType:"json"}),i=n instanceof Blob?n:n.data;if(!i)throw new Error("empty export response");const a=t==="docx"?"docx":"pdf",s=t==="docx"?"application/msword":"application/pdf";Wcn(new Blob([i],{type:i.type||s}),`${r}_${X1t()}.${a}`)}function Kcn(){if(typeof window>"u")return"";const e=window.location.origin;return e.startsWith("http://localhost")||e.startsWith("http://127.0.0.1")?e:"https://ai.wandox.com"}function Jcn(e){const t=e.message_id||e.id,r=new URLSearchParams;r.set("message_id",String(t));const n=localStorage.getItem("sso_token");n&&r.set("token",n);const i=localStorage.getItem("sso_domain");i&&r.set("domain",i);const a=localStorage.getItem("sso_company");return a&&r.set("company",a),`${Kcn()}/result-editor/?${r.toString()}`}function Xcn(e){window.open(Jcn(e),"_blank","noopener,noreferrer")}function zV(e){return(e==null?void 0:e.trim().toLowerCase())==="maiduo"}function _cn(e){const t=encodeURIComponent(String(e));return`${typeof window>"u"?"":window.location.origin}/work-lite/?execution_id=${t}`}const $cn=["回答不准确","缺少数据依据","未解决问题","内容不完整","表达不清晰","其他"],$1t={visible:!1,messageId:"",name:"",description:"",loading:!1},U$={visible:!1,messageId:"",agentId:"",playbookId:"",playbookName:""};function wwe(e){var t,r,n;return(e==null?void 0:e.playbook_id)||((t=e==null?void 0:e.meta_content)==null?void 0:t.playbook_id)||((n=(r=e==null?void 0:e.actions)==null?void 0:r[0])==null?void 0:n.playbook_id)||""}function eun(){return E.jsx("div",{className:"wandox-chat-empty-icon",children:E.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[E.jsx("path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"}),E.jsx("path",{d:"M20 2v4"}),E.jsx("path",{d:"M22 4h-4"}),E.jsx("circle",{cx:"4",cy:"20",r:"2"})]})})}function ebt(){return E.jsxs("output",{className:"wandox-chat-history-loading","aria-label":"正在加载历史记录",children:[E.jsxs("div",{className:"wandox-chat-history-loading-aura","aria-hidden":"true",children:[Array.from({length:12},(e,t)=>({angle:t*30,delay:t*.08})).map(({angle:e,delay:t})=>E.jsx("span",{className:"wandox-chat-history-ray",style:{"--ray-angle":`${e}deg`,"--ray-delay":`${t}s`}},e)),E.jsx("img",{className:"wandox-loading-brand-mark",src:zk,alt:"","aria-hidden":"true"})]}),E.jsx("div",{className:"wandox-chat-history-loading-text",children:"正在加载历史记录..."})]})}function tun({hasPlaybooks:e}){const{t}=Ok();return E.jsxs("div",{className:"wandox-chat-empty",children:[E.jsx(eun,{}),E.jsx("div",{className:"wandox-chat-empty-title",children:t("chat.startConversation")}),E.jsx("div",{className:"wandox-chat-empty-desc",children:t("chat.startConversationDesc")}),e&&E.jsxs("div",{className:"wandox-chat-empty-hint",children:[E.jsx("span",{className:"wandox-hint-icon",children:"💡"}),E.jsx("span",{children:t("chat.quickActionHint")})]})]})}function tbt({msg:e,domain:t,onSolidifyMessage:r,showSolidify:n=!0,onOpenScheduleDialog:i,onRetrigger:a,feedbackRating:s=null,feedbackPending:o=!1,onFeedback:l,extraActions:u}){var B;const{t:d}=Ok(),[h,f]=I.useState(!1),[p,m]=I.useState([]),[g,v]=I.useState(""),y=I.useRef(null);if(I.useEffect(()=>{var P;h&&((P=y.current)==null||P.scrollIntoView({behavior:"smooth",block:"center"}))},[h]),e.role!=="assistant")return null;const A=e.execution_status==="executing"||e.execution_status==="stopping",b=!!e.message_id&&!A&&e.retrigger_status!=="executing"&&e.retrigger_status!=="failed",x=String(e.execution_id??"").trim(),C=!!x&&zV(t),w=!!e.message_id&&!A&&!!l,S=P=>{m(D=>D.includes(P)?D.filter(L=>L!==P):[...D,P])},T=()=>{f(!1),l==null||l(e,1)},R=()=>{if(s===-1){f(!1),l==null||l(e,-1);return}f(!0)},M=async()=>{await(l==null?void 0:l(e,-1,{tags:p,text:g.trim()}))&&f(!1)},k=!!e.message_id&&!Gcn(e)&&e.execution_status!=="failed"&&((B=e.process)==null?void 0:B.status)!=="failed",z=[{key:"edit",icon:E.jsx(hk,{}),label:"在线编辑"},{type:"divider"},{key:"word",icon:E.jsx(oye,{}),label:"导出 Word"},{key:"pdf",icon:E.jsx(IH,{}),label:"导出 PDF"}],O=({key:P})=>{P==="edit"?Xcn(e):P==="word"?Hcn(e):P==="pdf"&&Ucn(e)},N=async()=>{const P=e.content??"";if(!P){wt.warning("没有可复制的内容");return}try{await navigator.clipboard.writeText(P),wt.success("已复制");return}catch{}const D=document.createElement("textarea");D.value=P,D.style.position="fixed",D.style.opacity="0",document.body.appendChild(D),D.select();const L=document.execCommand("copy");document.body.removeChild(D),L?wt.success("已复制"):wt.warning("复制失败,请手动选择内容复制")};return E.jsxs("div",{className:"wandox-message-toolbar-shell",children:[E.jsxs("div",{className:"wandox-solidify-button-container",children:[e.role==="assistant"&&E.jsx(Yn,{title:"复制",children:E.jsx(_t,{type:"text",icon:E.jsx(k$e,{}),"aria-label":"复制",onClick:()=>void N()})}),w&&E.jsxs(E.Fragment,{children:[E.jsx(Yn,{title:"有帮助",children:E.jsx(_t,{type:"text",className:`wandox-message-feedback-button${s===1?" wandox-message-feedback-button--active":""}`,icon:s===1?E.jsx(DMr,{}):E.jsx(FMr,{}),"aria-label":"点赞","aria-pressed":s===1,disabled:o,onClick:T})}),E.jsx(Yn,{title:"需改进",children:E.jsx(_t,{type:"text",className:`wandox-message-feedback-button${s===-1?" wandox-message-feedback-button--active":""}`,icon:s===-1?E.jsx(cMr,{}):E.jsx(hMr,{}),"aria-label":"点踩","aria-pressed":s===-1,"aria-expanded":h,disabled:o,onClick:R})})]}),n&&e.message_id&&r&&E.jsx(Yn,{title:d("chat.solidify"),children:E.jsx(_t,{type:"text",icon:E.jsx(t7r,{}),onClick:()=>e.message_id&&r(e.message_id)})}),e.message_id&&!!wwe(e)&&E.jsx(Yn,{title:"定时触发配置",children:E.jsx(_t,{type:"text",icon:E.jsx(To,{}),onClick:()=>i(e.message_id||e.id)})}),C&&E.jsx(Yn,{title:"场景调整",children:E.jsx(_t,{type:"text",icon:E.jsx(hk,{}),onClick:()=>window.open(_cn(x),"_blank","noopener,noreferrer")})}),b&&a&&E.jsx(Yn,{title:"重新生成",children:E.jsx(_t,{type:"text",icon:E.jsx(i7r,{}),onClick:()=>a(e)})}),k&&E.jsx(Jf,{trigger:["click"],menu:{items:z,onClick:O},children:E.jsx(Yn,{title:"导出 / 在线编辑",children:E.jsx(_t,{type:"text",icon:E.jsx(my,{}),"aria-label":"导出消息"})})}),u]}),h&&E.jsxs("section",{ref:y,className:"wandox-message-feedback-panel","aria-label":"点踩反馈",children:[E.jsxs("div",{className:"wandox-message-feedback-panel__header",children:[E.jsx("strong",{children:"哪里需要改进?"}),E.jsx(_t,{type:"text",size:"small",icon:E.jsx(Pa,{}),"aria-label":"关闭反馈",onClick:()=>f(!1)})]}),E.jsx("div",{className:"wandox-message-feedback-panel__tags",children:$cn.map(P=>{const D=p.includes(P);return E.jsx("button",{type:"button",className:`wandox-message-feedback-tag${D?" wandox-message-feedback-tag--selected":""}`,"aria-pressed":D,disabled:o,onClick:()=>S(P),children:P},P)})}),E.jsx(Or.TextArea,{className:"wandox-message-feedback-panel__input",value:g,placeholder:"请补充具体问题(可选)",autoSize:{minRows:2,maxRows:4},maxLength:500,disabled:o,onChange:P=>v(P.target.value)}),E.jsx("div",{className:"wandox-message-feedback-panel__footer",children:E.jsx(_t,{type:"primary",loading:o,onClick:M,children:"提交"})})]})]})}function run({state:e,onChange:t,onClose:r,onSave:n}){const{t:i}=Ok();return e.visible?E.jsx("div",{className:"wandox-dialog-overlay",onClick:r,onKeyDown:a=>a.key==="Escape"&&r(),"aria-hidden":"true",children:E.jsxs("dialog",{className:"wandox-dialog-content",open:!0,onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:[E.jsxs("div",{className:"wandox-dialog-header",children:[E.jsx("h3",{className:"wandox-dialog-title",children:i("chat.solidifyTitle")}),E.jsx("button",{type:"button",className:"wandox-dialog-close",onClick:r,children:E.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[E.jsx("title",{children:i("close")}),E.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),E.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),E.jsxs("div",{className:"wandox-dialog-body",children:[E.jsxs("div",{className:"wandox-form-group",children:[E.jsxs("label",{htmlFor:"playbook-name",className:"wandox-form-label",children:[i("chat.scenarioName")," ",E.jsx("span",{className:"wandox-form-required",children:"*"})]}),E.jsx("input",{id:"playbook-name",type:"text",className:"wandox-form-input",placeholder:i("chat.scenarioNamePlaceholder"),value:e.name,onChange:a=>t({name:a.target.value}),disabled:e.loading})]}),E.jsxs("div",{className:"wandox-form-group",children:[E.jsx("label",{htmlFor:"playbook-description",className:"wandox-form-label",children:i("chat.scenarioDesc")}),E.jsx("textarea",{id:"playbook-description",className:"wandox-form-textarea",placeholder:i("chat.scenarioDescPlaceholder"),rows:4,value:e.description,onChange:a=>t({description:a.target.value}),disabled:e.loading})]})]}),E.jsxs("div",{className:"wandox-dialog-footer",children:[E.jsx("button",{type:"button",className:"wandox-dialog-button wandox-dialog-button-secondary",onClick:r,disabled:e.loading,children:i("cancel")}),E.jsx("button",{type:"button",className:"wandox-dialog-button wandox-dialog-button-primary",onClick:n,disabled:e.loading,children:e.loading?i("dashboard.saving"):i("save")})]})]})}):null}function nun(e){if(typeof e!="string")return"对话内容";const t=e.replace(/```[\s\S]*?```/g,"代码内容").replace(/[#>*_`~\[\]()]/g," ").replace(/\s+/g," ").trim();return t||"对话内容"}function rbt({messages:e,scrollContainerRef:t,mode:r="codex"}){const n=I.useMemo(()=>e.map((b,x)=>({message:b,messageIndex:x})).filter(({message:b})=>b.role==="user").map(({message:b,messageIndex:x})=>({messageIndex:x,title:nun(b.content),content:b.content})),[e]),[i,a]=I.useState(),[s,o]=I.useState(!1),[l,u]=I.useState(),[d,h]=I.useState(),f=I.useRef(null),p=I.useRef(null),m=I.useCallback(()=>{const b=t.current;if(!b||n.length===0)return;const x=b.scrollTop+Math.min(120,b.clientHeight*.22);let C=n[0].messageIndex;for(const w of n){const S=b.querySelector(`[data-message-index="${w.messageIndex}"]`);if(!S||S.offsetTop>x)break;C=w.messageIndex}a(w=>w===C?w:C)},[n,t]);I.useEffect(()=>{const b=t.current;if(!b||n.length===0)return;let x=0;const C=()=>{cancelAnimationFrame(x),x=requestAnimationFrame(m)};return m(),b.addEventListener("scroll",C,{passive:!0}),window.addEventListener("resize",C),()=>{cancelAnimationFrame(x),b.removeEventListener("scroll",C),window.removeEventListener("resize",C)}},[n.length,t,m]),I.useEffect(()=>{if(r!=="codex")for(const b of[f.current,p.current]){if(!b)continue;const x=b.querySelector(`[data-outline-message-index="${i}"]`);if(!x)continue;const C=x.offsetTop,w=C+x.offsetHeight;C<b.scrollTop?b.scrollTo({top:C,behavior:"smooth"}):w>b.scrollTop+b.clientHeight&&b.scrollTo({top:w-b.clientHeight,behavior:"smooth"})}},[i,s,r]),I.useEffect(()=>{if(r!=="codex")return;const b=f.current;if(!b||i===void 0)return;const x=b.querySelector(`[data-outline-message-index="${i}"]`);if(!x)return;const C=x.offsetTop,w=C+x.offsetHeight;C<b.scrollTop?b.scrollTo({top:C,behavior:"smooth"}):w>b.scrollTop+b.clientHeight&&b.scrollTo({top:w-b.clientHeight,behavior:"smooth"})},[i,r]);const g=b=>{const x=t.current,C=x==null?void 0:x.querySelector(`[data-message-index="${b}"]`);!x||!C||(x.scrollTo({top:Math.max(0,C.offsetTop-24),behavior:"smooth"}),a(b))},v=(b,x)=>{const C=x.closest(".wandox-conversation-outline"),w=C==null?void 0:C.getBoundingClientRect(),S=x.getBoundingClientRect();u(b),w&&h(S.top+S.height/2-w.top)},y=()=>{u(void 0),h(void 0)};if(n.length===0)return null;if(r==="codex"){const b=n.find(C=>C.messageIndex===l),x=d??0;return E.jsxs("aside",{className:`wandox-conversation-outline wandox-conversation-outline--left${b?" wandox-conversation-outline--hovering":""}`,style:{height:`min(${n.length*22}px, calc(100% - 48px))`},"aria-label":"对话导航(左侧)",onMouseLeave:y,onBlur:C=>{C.currentTarget.contains(C.relatedTarget)||y()},children:[E.jsx("div",{className:"wandox-conversation-outline__rail",ref:f,children:n.map(C=>{const w=i===C.messageIndex,S=l===C.messageIndex;return E.jsx("button",{type:"button","data-outline-message-index":C.messageIndex,className:`wandox-conversation-outline__rail-item${w?" wandox-conversation-outline__rail-item--active":""}${S?" wandox-conversation-outline__rail-item--hovered":""}`,onClick:()=>g(C.messageIndex),onFocus:T=>v(C.messageIndex,T.currentTarget),onMouseEnter:T=>v(C.messageIndex,T.currentTarget),"aria-label":C.title,"aria-current":w?"location":void 0,children:E.jsx("span",{className:"wandox-conversation-outline__rail-marker"})},C.messageIndex)})}),b&&E.jsx("button",{type:"button",className:"wandox-conversation-outline__codex-card",style:{top:`clamp(44px, ${x}px, calc(100% - 44px))`},onClick:()=>g(b.messageIndex),children:E.jsx("span",{className:"wandox-conversation-outline__codex-summary",children:b.content})})]})}const A=`min(${n.length*22}px, 352px, calc(100% - 120px))`;return E.jsxs("aside",{className:`wandox-conversation-outline wandox-conversation-outline--right${s?" wandox-conversation-outline--open":""}`,style:{height:A},"aria-label":"对话导航(右侧)",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>o(!0),onBlur:b=>{b.currentTarget.contains(b.relatedTarget)||o(!1)},children:[E.jsx("div",{className:"wandox-conversation-outline__rail",ref:f,children:n.map(b=>{const x=i===b.messageIndex;return E.jsx("button",{type:"button","data-outline-message-index":b.messageIndex,className:`wandox-conversation-outline__rail-item${x?" wandox-conversation-outline__rail-item--active":""}`,onClick:()=>g(b.messageIndex),"aria-label":b.title,"aria-current":x?"location":void 0,children:E.jsx("span",{className:"wandox-conversation-outline__rail-marker"})},b.messageIndex)})}),s&&E.jsx("div",{className:"wandox-conversation-outline__card",children:E.jsx("div",{className:"wandox-conversation-outline__list",ref:p,children:n.map(b=>{const x=i===b.messageIndex;return E.jsxs("button",{type:"button","data-outline-message-index":b.messageIndex,className:`wandox-conversation-outline__item${x?" wandox-conversation-outline__item--active":""}`,onClick:()=>g(b.messageIndex),title:b.title,"aria-current":x?"location":void 0,children:[E.jsx("span",{className:"wandox-conversation-outline__title",children:b.title}),E.jsx("span",{className:"wandox-conversation-outline__item-marker"})]},b.messageIndex)})})})]})}function iun(e){const{messages:t,playbooks:r,messagesTotal:n,hasMoreMessages:i,loadMoreMessages:a,loading:s,executing:o,ssoToken:l,ssoDomain:u,ssoCompany:d,activeAgent:h,headerExtra:f,onExecutePlaybook:p,onFillPlaybookParams:m,onSolidifySuccess:g,onDashboardPreview:v,onSolidifyComplete:y,onExecuteComplete:A,onRespondToProposal:b,onRetrigger:x}=e,{t:C}=Ok(),[w,S]=I.useState(!1),[T,R]=I.useState([]),[M,k]=I.useState(""),[z,O]=I.useState($1t),[N,B]=I.useState(U$),[P,D]=I.useState({}),[L,V]=I.useState(()=>new Set),F=I.useRef(null),j=I.useMemo(()=>new Map(r.map(J=>[J.playbook_id,J.name])),[r]),G=()=>{O($1t)},Q=async J=>{var X;try{const $=await Stt({message_id:J});if($.success){const _=((X=$.data)==null?void 0:X.session_id)||J;v&&v({session_id:_,type:"dashboard_intent",intents:[],data:{}});try{const re=await PNr({session_id:_});re.success&&re.data?(v&&v(re.data),y&&y(),wt.success(C("chat.previewSuccess"))):wt.error(C("chat.previewFailed"))}catch(re){wt.error(`预览失败:${re instanceof Error?re.message:"未知错误"}`)}}}catch($){wt.error(`保存失败:${$ instanceof Error?$.message:"未知错误"}`)}},Y=async()=>{if(!z.name.trim()){wt.warning(C("chat.pleaseInputName"));return}O(J=>({...J,loading:!0}));try{const J=await Stt({message_id:z.messageId});J.success?(wt.success(C("chat.solidifySuccess")),G(),g&&g()):wt.error(`${C("chat.solidifyFailed")}: ${J.message||"Unknown error"}`)}catch(J){wt.error(`${C("chat.solidifyFailed")}: ${J instanceof Error?J.message:"Unknown error"}`)}finally{O(J=>({...J,loading:!1}))}},W=J=>{var te,le,se,oe;const X=t.find(ie=>ie.message_id===J||ie.id===J),$=wwe(X),_=h&&h!=="default"?h:String(((te=X==null?void 0:X.meta_content)==null?void 0:te.agent_id)||""),re=((se=(le=X==null?void 0:X.actions)==null?void 0:le.find(ie=>ie.playbook_id===$))==null?void 0:se.display_name)||((oe=X==null?void 0:X.meta_content)==null?void 0:oe.playbook_name)||j.get($)||$;if(!_){wt.warning("缺少智能体ID,无法配置定时触发");return}if(!$){wt.warning("缺少场景ID,无法配置定时触发");return}B({visible:!0,messageId:J,agentId:_,playbookId:$,playbookName:re})},Z=()=>{B(U$)},H=I.useCallback(J=>{const X=J.message_id;return X&&Object.prototype.hasOwnProperty.call(P,X)?P[X]:O1t(J)},[P]),K=I.useCallback(async(J,X,$)=>{var le;const _=J.message_id;if(!_||L.has(_))return!1;const re=H(J),te=B1t(re,X);D(se=>({...se,[_]:te})),V(se=>new Set(se).add(_));try{const se=await Itt({domain:u},{message_id:_,rating:te,tags:(le=$==null?void 0:$.tags)!=null&&le.length?$.tags:void 0,text:($==null?void 0:$.text)||void 0});if((se==null?void 0:se.success)===!1)throw new Error(se.message||"反馈提交失败");return!0}catch(se){return D(oe=>({...oe,[_]:re})),wt.error(se instanceof Error?se.message:"反馈提交失败,请稍后重试"),!1}finally{V(se=>{const oe=new Set(se);return oe.delete(_),oe})}},[L,H,u]);return E.jsxs("div",{className:"wandox-chat-section",children:[E.jsxs("div",{className:"wandox-chat-section__body",children:[f&&E.jsx("div",{className:"wandox-chat-section__header-extra",children:f}),E.jsx(J1t,{messages:t,executing:o,ssoToken:l,ssoDomain:u,ssoCompany:d,onExecutePlaybook:p,onFillPlaybookParams:m,onRespondToProposal:b,messagesTotal:n,hasMoreMessages:i,loadMoreMessages:a,loading:s,containerRef:F,conversationKey:h,initialLoadingContent:E.jsx(ebt,{}),onOpenActionDrawer:(J,X)=>{k(J),R(X),S(!0)},emptyContent:E.jsx(tun,{hasPlaybooks:r.length>0}),messageToolbar:J=>E.jsx(tbt,{msg:J,domain:u,onSolidifyMessage:Q,onOpenScheduleDialog:W,onRetrigger:x,feedbackRating:H(J),feedbackPending:!!J.message_id&&L.has(J.message_id),onFeedback:K})}),E.jsx(rbt,{messages:t,scrollContainerRef:F,mode:"deepseek"})]}),l&&u&&d&&E.jsx(D1t,{open:w,title:M,actions:T,ssoToken:l,ssoDomain:u,ssoCompany:d,onClose:()=>S(!1),onExecuteComplete:A}),E.jsx(run,{state:z,onChange:J=>O(X=>({...X,...J})),onClose:G,onSave:Y}),E.jsx(q1t,{open:N.visible,agentId:N.agentId,playbookId:N.playbookId,playbookName:N.playbookName,onClose:Z})]})}function aun({token:e,domain:t,tenantId:r,agentId:n="",limit:i=5,enabled:a=!0}){const[s,o]=I.useState(""),[l,u]=I.useState([]),[d,h]=I.useState(!1),f=I.useRef(null),p=I.useRef(null),m=I.useCallback(()=>{var v;p.current&&window.clearTimeout(p.current),(v=f.current)==null||v.abort(),o(""),u([]),h(!1)},[]),g=I.useCallback(v=>{const y=v.trim();if(!a||!e||!t||!y){m();return}p.current&&window.clearTimeout(p.current),p.current=window.setTimeout(async()=>{var b,x,C;(b=f.current)==null||b.abort();const A=new AbortController;f.current=A,h(!0);try{const w=new URLSearchParams({q:y,agent_id:n,limit:String(i)}),S=await fetch(`${Gi()}/api/v1/agents/autocomplete?${w.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${e}`,"x-domain":t,...r?{"x-tenant-id":r}:{}},signal:A.signal});if(!S.ok)throw new Error(`HTTP ${S.status}`);const T=await S.json();o(((x=T==null?void 0:T.data)==null?void 0:x.rewritten_question)||""),u(Array.isArray((C=T==null?void 0:T.data)==null?void 0:C.questions)?T.data.questions:[])}catch(w){w.name!=="AbortError"&&(o(""),u([]))}finally{A.signal.aborted||h(!1)}},250)},[n,m,t,a,i,r,e]);return I.useEffect(()=>m,[m]),{rewrittenQuestion:s,questions:l,loading:d,search:g,clear:m}}const sun={},nbt=e=>{let t;const r=new Set,n=(d,h)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const p=t;t=h??(typeof f!="object"||f===null)?f:Object.assign({},t,f),r.forEach(m=>m(t,p))}},i=()=>t,l={setState:n,getState:i,getInitialState:()=>u,subscribe:d=>(r.add(d),()=>r.delete(d)),destroy:()=>{r.clear()}},u=t=e(n,i,l);return l},oun=e=>e?nbt(e):nbt;var ibt={exports:{}},abt={},sbt={exports:{}},obt={};/**
|
|
754
754
|
* @license React
|
|
755
755
|
* use-sync-external-store-shim.production.js
|
|
756
756
|
*
|
|
@@ -783,7 +783,7 @@ ${Be}`;L(Te)},recommendations:b,agentId:p}),E.jsx(Mwe,{executing:W,onSend:H,play
|
|
|
783
783
|
- \`outputs\` / \`ui_payload\` 结构化结果
|
|
784
784
|
- 执行过程与附件等既有消息协议
|
|
785
785
|
|
|
786
|
-
聊天和历史接口尚未接入,当前数据只保存在面板本地。`}]}]},{id:"listing-analysis",title:"Listing 深度分析",updatedLabel:"1w",messages:[{id:"listing-analysis-user-1",role:"user",content:"帮我整理一份 Listing 优化检查清单。",timestamp:"2026-08-25T03:18:00.000Z"},{id:"listing-analysis-assistant-1",role:"assistant",content:"可以优先检查 **标题关键词、五点描述、主图信息密度、A+ 内容** 与搜索词覆盖。这个回复来自本地 Demo,不会产生网络请求。",timestamp:"2026-08-25T03:18:02.000Z"}]},{id:"ads-weekly-report",title:"广告数据周报",updatedLabel:"2w",messages:[]},{id:"launch-plan",title:"新品上架计划",updatedLabel:"2w",messages:[]},{id:"review-insight",title:"竞品评论洞察",updatedLabel:"1mo",messages:[]},{id:"keyword-opportunity",title:"关键词机会分析",updatedLabel:"1mo",messages:[]}];let pAt=0;const t3e=e=>(pAt+=1,`${e}-${Date.now()}-${pAt}`),Vhn=e=>{const t=e.replace(/\s+/g," ").trim();return t.length>20?`${t.slice(0,20)}…`:t},Fhn=()=>Lhn.map(e=>({...e,messages:e.messages.map(t=>({...t}))}));function jhn({onClose:e}){const[t,r]=I.useState(Fhn),[n,i]=I.useState(null),[a,s]=I.useState(!1),[o,l]=I.useState(""),[u,d]=I.useState(!1),[h,f]=I.useState("静态 Demo · 消息不会发送到服务端"),p=I.useRef(null),m=I.useRef(null),g=I.useMemo(()=>t.find(M=>M.id===n)??null,[n,t]),v=(g==null?void 0:g.messages)??[],y=I.useMemo(()=>{const M=o.trim().toLocaleLowerCase();return M?t.filter(k=>k.title.toLocaleLowerCase().includes(M)):t},[t,o]),A=I.useCallback(()=>{const M=m.current!==null;m.current&&(clearTimeout(m.current),m.current=null),d(!1),M&&f("已停止本地 Demo 回复")},[]);I.useEffect(()=>()=>{m.current&&(clearTimeout(m.current),m.current=null)},[]),I.useEffect(()=>{const M=k=>{var z;(z=p.current)!=null&&z.contains(k.target)||s(!1)};return document.addEventListener("pointerdown",M),()=>document.removeEventListener("pointerdown",M)},[]),I.useEffect(()=>{const M=k=>{if(k.key==="Escape"){if(a){s(!1);return}e()}};return document.addEventListener("keydown",M),()=>document.removeEventListener("keydown",M)},[a,e]);const b=I.useCallback(()=>{A(),i(null),s(!1),l(""),f("静态 Demo · 消息不会发送到服务端")},[A]),x=I.useCallback(M=>{A(),i(M),s(!1),l(""),f("已载入本地历史 Demo")},[A]),C=I.useCallback(M=>{const k=M.trim();if(!k||u)return;A();const z=new Date().toISOString(),O={id:t3e("user"),role:"user",content:k,timestamp:z},N=n??t3e("conversation");r(B=>B.find(D=>D.id===N)?B.map(D=>D.id===N?{...D,updatedLabel:"刚刚",messages:[...D.messages,O]}:D):[{id:N,title:Vhn(k)||"新会话",updatedLabel:"刚刚",messages:[O]},...B]),i(N),d(!0),f("正在生成本地 Demo 回复…"),m.current=setTimeout(()=>{const B={id:t3e("assistant"),role:"assistant",content:"已收到。这是一条由前端本地生成的 Demo 回复,用于验证 V2 输入框、消息追加和统一内容解析;当前没有调用聊天或历史接口。",timestamp:new Date().toISOString()};r(P=>P.map(D=>D.id===N?{...D,updatedLabel:"刚刚",messages:[...D.messages,B]}:D)),m.current=null,d(!1),f("静态 Demo · 消息不会发送到服务端")},700)},[n,u,A]),w=I.useCallback(()=>{s(M=>!M)},[]),S=I.useCallback(()=>{f("该能力将在新接口接入后开放")},[]),T=I.useCallback(M=>{M.dataTransfer.types.includes("Files")&&(M.preventDefault(),M.stopPropagation(),f("附件将在新接口接入后开放"))},[]),R=I.useCallback(M=>{Array.from(M.clipboardData.items).some(z=>z.type.startsWith("image/"))&&(M.preventDefault(),M.stopPropagation(),f("图片粘贴将在新接口接入后开放"))},[]);return E.jsxs("aside",{className:"wandox-root wandox-console-chat wandox-agent-panel","aria-label":"Wandox 会话面板",children:[E.jsxs("header",{className:"wandox-agent-panel__header",children:[E.jsxs("div",{className:"wandox-agent-panel__brand-row",children:[E.jsxs("div",{className:"wandox-agent-panel__brand",children:[E.jsx(lee,{className:"wandox-agent-panel__brand-mark"}),E.jsx("span",{children:"Wandox"})]}),E.jsx("button",{type:"button",className:"wandox-agent-panel__icon-button",onClick:e,title:"关闭面板","aria-label":"关闭面板",children:E.jsx(Pa,{})})]}),E.jsxs("div",{className:"wandox-agent-panel__navigation",children:[E.jsx("button",{type:"button",className:`wandox-agent-panel__icon-button wandox-agent-panel__new-chat${g?"":" wandox-agent-panel__new-chat--hidden"}`,onClick:b,disabled:!g,title:"新会话","aria-label":"新会话",tabIndex:g?0:-1,children:E.jsx(hk,{})}),E.jsxs("div",{className:"wandox-agent-panel__history-anchor",ref:p,children:[E.jsxs("button",{type:"button",className:"wandox-agent-panel__conversation-title",onClick:w,"aria-expanded":a,"aria-haspopup":"true",children:[E.jsx("span",{children:(g==null?void 0:g.title)??"新会话"}),E.jsx(py,{className:a?"wandox-agent-panel__title-arrow--open":""})]}),a&&E.jsxs("section",{className:"wandox-agent-panel__history","aria-label":"会话历史",children:[E.jsx(Or,{value:o,onChange:M=>l(M.target.value),prefix:E.jsx(Vh,{}),allowClear:!0,placeholder:"搜索最近会话",className:"wandox-agent-panel__history-search",autoFocus:!0}),E.jsx("div",{className:"wandox-agent-panel__history-label",children:"最近会话"}),E.jsx("div",{className:"wandox-agent-panel__history-list",children:y.length>0?y.map(M=>E.jsxs("button",{type:"button",className:`wandox-agent-panel__history-item${M.id===n?" wandox-agent-panel__history-item--active":""}`,onClick:()=>x(M.id),children:[E.jsx("span",{children:M.title}),E.jsx("time",{children:M.updatedLabel})]},M.id)):E.jsx("div",{className:"wandox-agent-panel__history-empty",children:"没有匹配的会话"})})]})]}),E.jsx("button",{type:"button",className:"wandox-agent-panel__icon-button",onClick:S,title:"更多","aria-label":"更多",children:E.jsx(my,{})})]})]}),E.jsx("div",{className:"wandox-console-chat__body wandox-agent-panel__body",children:E.jsx(Cwe,{messages:v,executing:u,conversationKey:n??"new-conversation",emptyContent:E.jsx("div",{className:"wandox-agent-panel__empty",children:E.jsx(lee,{className:"wandox-agent-panel__empty-mark"})})})}),E.jsxs("div",{className:"wandox-console-chat__input wandox-agent-panel__input",children:[E.jsx("div",{className:"wandox-agent-panel__chat-input-guard",onDragEnterCapture:T,onDragOverCapture:T,onDropCapture:T,onPasteCapture:R,children:E.jsx(Mwe,{onSend:C,executing:u,onStop:A,placeholder:"给 Wandox 发送消息",hideUploadButton:!0,autoFocusInput:!1,leadingActions:E.jsx("button",{type:"button",className:"wandox-chat-input-upload-leading",onClick:S,title:"添加文件","aria-label":"添加文件",children:E.jsx(Al,{})})},n??"new-conversation")}),E.jsx("div",{className:"wandox-agent-panel__demo-notice","aria-live":"polite",children:h})]})]})}const r3e=(e,t)=>({value:e.getPropertyValue(t),priority:e.getPropertyPriority(t)}),KV=(e,t,r)=>{if(r.value){e.setProperty(t,r.value,r.priority);return}e.removeProperty(t)},qhn=e=>Number.isFinite(e)?Math.min(Ohn,Math.max(zhn,Math.round(e))):dAt;class Qhn{constructor(t){ct(this,"queryClient");ct(this,"root",null);ct(this,"container",null);ct(this,"bodyStyleSnapshot",null);ct(this,"panelWidth",dAt);ct(this,"listeningForResize",!1);ct(this,"closing",!1);ct(this,"lifecycleVersion",0);ct(this,"closeFallbackTimer",null);ct(this,"closeTransitionEndHandler",null);ct(this,"requestClose",()=>{const t=this.lifecycleVersion;queueMicrotask(()=>{t===this.lifecycleVersion&&this.close()})});ct(this,"applyLayout",()=>{if(!this.container||!this.bodyStyleSnapshot||this.closing||typeof window>"u")return;const t=this.getRenderedWidth();this.container.style.width=`${t}px`,this.bodyStyleSnapshot.body.style.setProperty("padding-right",window.innerWidth<=Bhn?"0px":`${t}px`,"important"),this.bodyStyleSnapshot.body.style.setProperty("box-sizing","border-box","important")});this.queryClient=t}open(t={}){if(typeof window>"u"||typeof document>"u")throw new Error("[Wandox] openAgentPanel is only available in a browser");const r=document.getElementById(uAt);if(r&&r!==this.container)throw new Error("[Wandox] Agent panel is already managed by another SDK instance");const n=this.closing&&this.container?window.getComputedStyle(this.container).transform:null;this.lifecycleVersion+=1,this.cancelCloseMotion(),this.panelWidth=qhn(t.width);let i=!1;if(!this.container||!this.root){const u=document.body;this.bodyStyleSnapshot={body:u,paddingRight:r3e(u.style,"padding-right"),boxSizing:r3e(u.style,"box-sizing"),transition:r3e(u.style,"transition"),computedTransition:window.getComputedStyle(u).transition},this.container=document.createElement("div"),this.container.id=uAt,this.container.className=`wandox-agent-panel-root ${e3e}`,Object.assign(this.container.style,{position:"fixed",top:"0",right:"0",bottom:"0",height:"100vh",zIndex:"999999",background:"#ffffff"}),document.body.appendChild(this.container),this.root=qf(this.container),i=!0}const a=this.container,s=this.root,o=this.prefersReducedMotion(),l=!!n&&n!=="none";return l&&n&&(a.style.transform=n),a.classList.remove(fAt),a.removeAttribute("aria-hidden"),this.installBodyTransition(),a.style.width=`${this.getRenderedWidth()}px`,this.bodyStyleSnapshot&&this.bodyStyleSnapshot.body.style.setProperty("box-sizing","border-box","important"),(i||l)&&!o&&a.offsetWidth,a.classList.remove(e3e),l&&a.style.removeProperty("transform"),this.applyLayout(),o&&this.bodyStyleSnapshot&&(this.bodyStyleSnapshot.body.offsetWidth,this.restoreBodyTransition()),this.startListeningForResize(),s.render(E.jsx(Lv,{queryClient:this.queryClient,children:E.jsx(jhn,{onClose:this.requestClose})})),{element:a,close:()=>this.close(),destroy:()=>this.destroy()}}close(){const t=this.container;if(!t||!this.root||this.closing)return;const r=++this.lifecycleVersion;if(this.stopListeningForResize(),this.prefersReducedMotion()){this.installBodyTransition(),this.restoreBodyPadding(),this.bodyStyleSnapshot&&this.bodyStyleSnapshot.body.offsetWidth,this.teardown();return}this.closing=!0,this.installBodyTransition(),this.closeTransitionEndHandler=n=>{n.target!==t||n.propertyName!=="transform"||this.finalizeClose(r,t)},t.addEventListener("transitionend",this.closeTransitionEndHandler),this.closeFallbackTimer=window.setTimeout(()=>this.finalizeClose(r,t),hAt+80),t.classList.remove(e3e),t.classList.add(fAt),t.setAttribute("aria-hidden","true"),this.restoreBodyPadding()}destroy(){this.lifecycleVersion+=1,this.prepareImmediateBodyRestore(),this.teardown()}getRenderedWidth(){return Math.min(this.panelWidth,window.innerWidth)}startListeningForResize(){this.listeningForResize||(window.addEventListener("resize",this.applyLayout),this.listeningForResize=!0)}stopListeningForResize(){!this.listeningForResize||typeof window>"u"||(window.removeEventListener("resize",this.applyLayout),this.listeningForResize=!1)}prefersReducedMotion(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(Dhn).matches}installBodyTransition(){if(!this.bodyStyleSnapshot)return;const{body:t,computedTransition:r}=this.bodyStyleSnapshot;if(this.prefersReducedMotion()){t.style.setProperty("transition","none","important");return}const n=`padding-right ${hAt}ms ${Phn}`,i=r.trim(),a=!i||i==="none"||i==="all 0s ease 0s"?n:`${i}, ${n}`;t.style.setProperty("transition",a,"important")}restoreBodyPadding(){if(!this.bodyStyleSnapshot)return;const{body:t,paddingRight:r}=this.bodyStyleSnapshot;KV(t.style,"padding-right",r)}restoreBodyTransition(){if(!this.bodyStyleSnapshot)return;const{body:t,transition:r}=this.bodyStyleSnapshot;KV(t.style,"transition",r)}prepareImmediateBodyRestore(){if(!this.bodyStyleSnapshot)return;const{body:t}=this.bodyStyleSnapshot;t.style.setProperty("transition","none","important"),this.restoreBodyPadding(),t.offsetWidth}finalizeClose(t,r){t!==this.lifecycleVersion||r!==this.container||!this.closing||this.teardown()}cancelCloseMotion(){this.closeTransitionEndHandler&&this.container&&this.container.removeEventListener("transitionend",this.closeTransitionEndHandler),this.closeTransitionEndHandler=null,this.closeFallbackTimer!==null&&typeof window<"u"&&window.clearTimeout(this.closeFallbackTimer),this.closeFallbackTimer=null,this.closing=!1}teardown(){var t,r;this.cancelCloseMotion(),this.stopListeningForResize(),(t=this.root)==null||t.unmount(),this.root=null,(r=this.container)==null||r.remove(),this.container=null,this.restoreBodyStyle()}restoreBodyStyle(){if(!this.bodyStyleSnapshot)return;const{body:t,paddingRight:r,boxSizing:n,transition:i}=this.bodyStyleSnapshot;KV(t.style,"padding-right",r),KV(t.style,"box-sizing",n),KV(t.style,"transition",i),this.bodyStyleSnapshot=null}}const Yhn="0.2.2",mAt={file:Ay,artifact:Y$e,url:NMr,knowledge:Q$e,dataset:nMr};function Ghn({snapshot:e}){return e?e.items.length===0?E.jsx("div",{className:"wandox-conversations__sources-empty-note",children:"对话中上传的文件、生成的报告与引用会出现在这里。"}):E.jsx("div",{className:"wandox-conversations__sources-list",children:e.items.map(t=>E.jsx(gAt,{item:t},t.source_id))}):null}function gAt({item:e,onOpenUrl:t}){const r=mAt[e.kind]??Ay,n=e.url||e.download_url||null,i=Q1t(n),a=E.jsxs(E.Fragment,{children:[E.jsx(r,{"aria-hidden":"true"}),E.jsx("span",{className:"wandox-conversations__sources-item-title",title:e.title,children:e.title})]});if(n&&!i)return E.jsx("a",{className:"wandox-conversations__sources-item",href:n,onClick:t?s=>{s.preventDefault(),t(e,n)}:void 0,target:t?void 0:"_blank",rel:t?void 0:"noopener noreferrer",children:a});if(n&&i){const s=Y1t(e.source_id);return E.jsx("button",{type:"button",className:"wandox-conversations__sources-item",onClick:()=>{s&&Y$(s,e.title).catch(o=>{})},children:a})}return E.jsx("div",{className:"wandox-conversations__sources-item",children:a})}function Whn(e){return["file","artifact","dataset","url","knowledge"].map(t=>({kind:t,items:e.items.filter(r=>r.kind===t)})).filter(t=>t.items.length>0)}function Uhn({item:e,onOpenUrl:t}){const r=mAt[e.kind]??Ay,n=e.url||e.download_url||null,i=Q1t(n),a=e.path||e.badge||null,s=E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"wandox-conversations__sources-pane-item-title",children:[E.jsx(r,{"aria-hidden":"true"}),E.jsx("span",{title:e.title,children:e.title})]}),a?E.jsx("div",{className:"wandox-conversations__sources-pane-item-sub",title:a,children:a}):null]});if(n&&!i)return E.jsx("a",{className:"wandox-conversations__sources-pane-item",href:n,onClick:t?o=>{o.preventDefault(),t(e,n)}:void 0,target:t?void 0:"_blank",rel:t?void 0:"noopener noreferrer",children:s});if(n&&i){const o=Y1t(e.source_id);return E.jsx("button",{type:"button",className:"wandox-conversations__sources-pane-item",onClick:()=>{o&&Y$(o,e.title).catch(l=>{})},children:s})}return E.jsx("div",{className:"wandox-conversations__sources-pane-item",children:s})}function Zhn({fact:e}){const t=String(e.nature||"").toLowerCase();return E.jsxs("div",{className:"wandox-conversations__fact-row",children:[E.jsx("span",{className:`wandox-conversations__fact-badge wandox-conversations__fact-badge--${t}`,children:e.nature_label||e.badge||e.nature||"事实"}),E.jsx("span",{className:"wandox-conversations__fact-text",title:e.fact,children:e.fact})]})}function Hhn({rows:e,loading:t,error:r}){if(t)return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:E.jsx("div",{className:"wandox-conversations__sources-pane-note",children:"加载中…"})});if(r)return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:E.jsx("div",{className:"wandox-conversations__sources-pane-note",children:r})});if(e.length===0)return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:E.jsx("div",{className:"wandox-conversations__sources-pane-note",children:"本会话还没有事实依据"})});const n=[...e].sort((i,a)=>(i.turn_no??0)-(a.turn_no??0)).reduce((i,a)=>{const s=i[i.length-1];return s&&s.turnNo===(a.turn_no??null)?s.facts.push(a):i.push({turnNo:a.turn_no??null,facts:[a]}),i},[]);return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:n.map(i=>E.jsxs("section",{children:[i.turnNo?E.jsxs("div",{className:"wandox-conversations__sources-group-title",children:["`第 $",i.turnNo," 轮`"]}):null,E.jsx("div",{className:"wandox-conversations__fact-group",children:i.facts.map((a,s)=>E.jsx(Zhn,{fact:a},a.id??`${i.turnNo}-${s}`))})]},i.turnNo??"conversation"))})}function Khn({snapshot:e,onClose:t,factRows:r,factsLoading:n,factsError:i,onOpenItem:a,resourceTabs:s,onCloseResourceTab:o}){const[l,u]=I.useState("sources"),d=s&&s.length>0?s[s.length-1].key:null;I.useEffect(()=>{d&&u(d)},[d]),I.useEffect(()=>{const p=m=>{m.key==="Escape"&&t()};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[t]);const h=Whn(e),f=[{key:"sources",label:"来源",closable:!1,children:E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:h.map(p=>E.jsx("section",{children:E.jsx("div",{className:"wandox-conversations__sources-pane-group",children:p.items.map(m=>E.jsx(Uhn,{item:m,onOpenUrl:a},m.source_id))})},p.kind))})}];r&&r.length>0&&f.push({key:"facts",label:"依据",closable:!1,children:E.jsx(Hhn,{rows:r,loading:n,error:i})});for(const p of s??[])f.push({key:p.key,label:p.title,closable:!0,children:E.jsx("iframe",{className:"wandox-conversations__sources-pane-frame",src:p.url,title:p.title})});return E.jsx("aside",{className:"wandox-conversations__sources-pane",children:E.jsx(xD,{className:"wandox-conversations__sources-pane-tabs",size:"small",type:"editable-card",hideAdd:!0,activeKey:l,onChange:u,onEdit:(p,m)=>{m==="remove"&&(o==null||o(String(p)),u("sources"))},tabBarExtraContent:{right:E.jsx("button",{type:"button",className:"wandox-conversations__sources-pane-close","aria-label":"关闭来源分屏",onClick:t,children:E.jsx(Pa,{})})},items:f})})}const vAt="(min-width: 1120px)";function Jhn(){const[e,t]=I.useState(()=>window.matchMedia(vAt).matches);return I.useEffect(()=>{const r=window.matchMedia(vAt),n=i=>t(i.matches);return r.addEventListener("change",n),()=>r.removeEventListener("change",n)},[]),e}function Xhn({snapshot:e,origin:t,onOpenAll:r,onOpenItem:n,factRows:i}){const a=Jhn(),[s,o]=I.useState(null),l=s??a;if(!e)return null;const u=e.items.length>0,d=e.counts,h=[d.file?"上传":"",d.artifact?"来源":"",d.url+d.knowledge?"链接":""].filter(Boolean).join(" · ");return l?E.jsxs("aside",{className:"wandox-conversations__sources-card",children:[E.jsxs("header",{className:"wandox-conversations__sources-head",children:[E.jsx("span",{children:"导出与报告"}),E.jsx("button",{type:"button",className:"wandox-conversations__sources-collapse","aria-label":"收起来源卡",onClick:()=>o(!1),children:E.jsx(Pa,{})})]}),t?E.jsx("div",{className:"wandox-conversations__sources-origin",children:`来自:${t}`}):null,u?null:E.jsx("div",{className:"wandox-conversations__sources-empty-note",children:"对话中上传的文件、生成的报告与引用会出现在这里。"}),h?E.jsxs("div",{className:"wandox-conversations__sources-counts",children:[h,":"]}):null,u?E.jsx("div",{className:"wandox-conversations__sources-list",children:e.items.slice(0,5).map(f=>E.jsx(gAt,{item:f,onOpenUrl:n},f.source_id))}):null,i&&i.length>0?E.jsxs("div",{className:"wandox-conversations__sources-facts",children:[E.jsx("div",{className:"wandox-conversations__sources-counts",children:"依据:"}),E.jsx("div",{className:"wandox-conversations__sources-list",children:i.slice(0,3).map((f,p)=>E.jsxs("div",{className:"wandox-conversations__sources-item",children:[E.jsx(Q$e,{"aria-hidden":"true"}),E.jsx("span",{className:"wandox-conversations__sources-item-title",title:f.fact,children:f.fact})]},f.id??`fact-${p}`))})]}):null,r&&u?E.jsxs("button",{type:"button",className:"wandox-conversations__sources-more",onClick:r,children:["查看全部",E.jsx(hy,{})]}):null]}):E.jsxs("button",{type:"button",className:"wandox-conversations__sources-pill",title:t?`来自:${t}`:"查看会话来源",onClick:()=>o(!0),children:[E.jsx(Ay,{"aria-hidden":"true"}),E.jsx("span",{children:"导出与报告"}),u?E.jsx("span",{className:"wandox-conversations__sources-pill-count",children:e.items.length}):null]})}const _hn={sparkles:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"}),E.jsx("path",{d:"M20 2v4"}),E.jsx("path",{d:"M22 4h-4"}),E.jsx("circle",{cx:"4",cy:"20",r:"2"})]}),layers:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"}),E.jsx("path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"}),E.jsx("path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"})]}),"messages-square":E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"}),E.jsx("path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1"})]}),"building-2":E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M10 12h4"}),E.jsx("path",{d:"M10 8h4"}),E.jsx("path",{d:"M14 21v-3a2 2 0 0 0-4 0v3"}),E.jsx("path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2"}),E.jsx("path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16"})]}),menu:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M4 6h16"}),E.jsx("path",{d:"M4 12h16"}),E.jsx("path",{d:"M4 18h16"})]}),x:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M18 6 6 18"}),E.jsx("path",{d:"m6 6 12 12"})]}),"arrow-left":E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"m12 19-7-7 7-7"}),E.jsx("path",{d:"M19 12H5"})]})};function Lx({name:e}){return E.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","data-lucide":e,"aria-hidden":"true",className:`lucide lucide-${e}`,children:_hn[e]})}function N7(e){return typeof e=="string"&&e.length>=10?e.slice(0,10):""}function Vx(e,t=3){const r=Array.isArray(e)?e.map(n=>String(n)):e!=null?[String(e)]:[];return r.length?r.length<=t?r.join("、"):`${r.slice(0,t).join("、")} 等 ${r.length} 个`:""}function $hn(e,t){const r=[];if(e&&typeof e=="object"){const n=Vx(e.asins),i=Vx(e.campaigns??e.campaign_ids),a=Vx(e.sites);a&&r.push(`站点 ${a}`),n&&r.push(`ASIN ${n}`),i&&r.push(`活动 ${i}`)}return t&&r.push(`专家范围:${t}`),r.length?r.join(" · "):"公司全量范围"}function efn(e){switch(e){case"user":return"你发起的讨论";case"watch":return"你交代的盯住";case"suggestion":return"小多建议推进";default:return e||"小多"}}function yAt(e){return e?e.slice(0,16).replace("T"," "):""}function tfn(e){const t=r=>Math.max(a3e(r.last_run_at)??0,a3e(r.created_at)??0);return e.map(r=>({row:r,chat:{id:r.conversation_id,title:r.title||"未命名会话",scope:$hn(r.scope_config,r.domain_scope),source:efn(r.source),preview:r.attention==="has_update"?"有更新:盯住或建议有新结论":r.last_run_at?`上次更新 ${yAt(r.last_run_at)}`:"尚无讨论记录",status:r.attention==="has_update"?"有更新":"",messages:[],confirmed:!0,live:!0,updatedAt:r.last_run_at??r.created_at??void 0}})).sort((r,n)=>t(n.row)-t(r.row)).map(({chat:r})=>r)}function cee(e,t=new Date){if(!e)return"";const r=new Date(e);if(Number.isNaN(r.getTime()))return"";const n=`${String(r.getHours()).padStart(2,"0")}:${String(r.getMinutes()).padStart(2,"0")}`,i=s=>new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),a=Math.round((i(t)-i(r))/864e5);return a<=0?n:a===1?"昨天":a<=7?`${a} 天前`:`${String(r.getMonth()+1).padStart(2,"0")}-${String(r.getDate()).padStart(2,"0")}`}function rfn(e){const t=[],r=[],n=[];for(const i of e){if(!i||typeof i!="object")continue;const a=String(i.kind??"");a==="finding"?t.push(i):a==="running"?r.push(i):a==="waiting"&&n.push(i)}return{findings:t,running:r,waiting:n}}function nfn(e){switch(String(e??"")){case"new":return"新发现";case"handling":return"处理中";case"waiting_data":return"等数据";case"decided":return"已决定";default:return""}}function uee(e,t=new Date){if(!e)return"";const r=new Date(e);if(Number.isNaN(r.getTime()))return"";const n=t.getTime()-r.getTime();if(n<36e5)return"刚刚";if(n<864e5)return`${Math.floor(n/36e5)}小时前`;const i=Math.floor(n/864e5);return i<=7?`${i}天前`:`${r.getMonth()+1}月${r.getDate()}日`}function ifn(e,t=new Date){const r=s=>new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),n=r(t),i={today:[],yesterday:[],week:[],earlier:[]};for(const s of e){if(s.draft){i.today.unshift(s);continue}const o=s.updatedAt?new Date(s.updatedAt).getTime():Number.NaN,l=Number.isNaN(o)?null:Math.round((n-r(new Date(o)))/864e5);l===null||l>7?i.earlier.push(s):l<=0?i.today.push(s):l===1?i.yesterday.push(s):i.week.push(s)}return[{key:"today",label:"今天",chats:i.today},{key:"yesterday",label:"昨天",chats:i.yesterday},{key:"week",label:"过去 7 天",chats:i.week},{key:"earlier",label:"更早",chats:i.earlier}].filter(s=>s.chats.length>0)}function afn(e){switch((e.state??"").trim()){case"有新结论":return"有新结论";case"正在推进":return"正在推进";case"持续关注":return"持续关注";case"待执行":return"待执行";case"已完成":return"已完成";case"已暂停":return"已暂停"}const t=String(e.status||"").toLowerCase();return t==="paused"?"已暂停":t==="done"?"已完成":e.last_run_id?"持续关注":"待执行"}function bAt(e){return e.filter(t=>String(t.status||"active").toLowerCase()!=="cancelled").map(t=>{const r=String(t.status||"active").toLowerCase();return{id:t.task_id,source:t.source==="ai_generated"?"结合你的岗位":"小多建议推进",title:t.title||t.question||"值得推进的事",why:t.why||"",next:t.question||"",state:afn(t),stateText:(t.state??"").trim(),status:r,attention:t.attention==="has_update",messages:[],live:!0,conversationId:t.conversation_id??null,updatedAt:t.last_run_at??t.updated_at??t.created_at??void 0}})}function AAt(e,t,r){return[{label:"当前职责",value:e?(t==null?void 0:t.duty)||(t==null?void 0:t.personaText)||"以服务端配置为准":"德国站广告运营"},{label:"经营目标",value:e?(t==null?void 0:t.goals)||"以服务端配置为准":"控制试错成本"},{label:"讨论范围",value:"调查与讨论,尚未执行专家动作"},{label:"来源与更新",value:[r.source,cee(r.updatedAt)].filter(Boolean).join(" · ")}]}function sfn(e,t){const r=`${e.business_type_code||""}:${e.group_code||""}`,n=t.get(r);return n||(e.group_name||e.business_type_name?[e.business_type_name,e.group_name].filter(Boolean).join(" · "):e.group_code||e.business_type_code||"")}function ofn(e){switch(e){case"pending":return"等待决定";case"accepted":return"已采纳";case"confirmed":return"已确认 · 已按这个方向继续";case"dispatched":return"已交办 · 等待执行回执";case"executing":return"执行中";case"observing":return"观察中";case"reviewed":return"已复盘";case"rejected":case"ignored":case"dismissed":return"已忽略";case"expired":return"已过期";default:return e||"等待决定"}}function lfn(e){return e==="pending"?"待采纳":["rejected","ignored","dismissed","cancelled"].includes(e)?"忽略历史":"执行历史"}function n3e(e,t,r={}){const n=[];for(const i of e){const a=i.id,s=String(i.status||"pending").toLowerCase(),o=r[String(a)],l=o?"执行历史":lfn(s);n.push({id:a,group:sfn(i,t),agent:i.agent_name||i.agent_code||"数字人",object:i.object_name||i.sub_title||`建议 #${a}`,text:i.main_title||i.content||i.sub_title||"(无标题建议)",state:l,created:N7(i.created_at),handled:l==="待采纳"?"":N7(i.updated_at)||N7(i.created_at),result:o?`已采纳 · 事项 ${o.matterId||"已立项"}`:ofn(s),live:!0,agentId:i.agent_id??void 0,groupKey:`${i.business_type_code||""}:${i.group_code||""}`})}return n}function cfn(e){const t=new Map,r=(n,i,a)=>{if(!n||!i)return;let s=t.get(n);s||(s=new Map,t.set(n,s)),s.set(i,a||i)};if(Array.isArray(e))for(const n of e){const i=String(n.dim??n.option_type??"").trim(),a=String(n.name??"").trim(),s=String(n.code??"").trim()||(i==="service_target"?a:"");r(i,s,a)}else if(e&&typeof e=="object"){for(const[n,i]of Object.entries(e))if(Array.isArray(i))for(const a of i)r(n,String((a==null?void 0:a.code)??(a==null?void 0:a.name)??"").trim(),String((a==null?void 0:a.name)??"").trim())}return t}function ufn(e){const t=[],r=new Map;if(!e)return{options:t,labels:r};const n=cfn(e.items),i=n.get("business_type"),a=n.get("group"),s=Array.isArray(e.digital_humans)?e.digital_humans:[];for(const o of s){const l=String(o.business_type_code??"").trim(),u=String(o.group_code??"").trim();if(!l&&!u)continue;const d=`${l}:${u}`;if(r.has(d))continue;const h=[(i==null?void 0:i.get(l))||l,(a==null?void 0:a.get(u))||u].filter(Boolean).join(" · ")||d;r.set(d,h),t.push({key:d,label:h,businessType:l,groupCode:u})}return{options:t,labels:r}}function dfn(e){switch(e){case"triggered":return"已触发";case"not_triggered":return"未触发";case"waiting_data":return"等待数据";default:return""}}function hfn(e){switch(e){case"pending_decision":return"待决定";case"executing":return"执行中";case"observing":return"观察中";case"reviewed":case"cancelled":return"已复盘";default:return"待决定"}}function ffn(e){return String(e.matter_id??e.id??"")}function pfn(e){const t=[];for(const r of e){const n=ffn(r);if(!n)continue;const i=r.proposal&&typeof r.proposal=="object"?r.proposal:null,a=typeof(i==null?void 0:i.action)=="string"&&i.action||typeof(i==null?void 0:i.content)=="string"&&i.content||typeof(i==null?void 0:i.summary)=="string"&&i.summary||"查看事项方案";t.push({id:n,title:r.title||"未命名事项",sub:String(r.playbook_id||r.source_agent_suggestion_id||""),state:hfn(r.status),expert:r.expert_agent||"",summary:r.summary||"",action:a,result:r.review_conclusion||(r.status==="executing"?"等待执行回执":r.status==="observing"?`观察至 ${N7(r.observe_until)||"待定"}`:""),live:!0})}return t}function xAt(e){const t=i=>i.replace(/^盯住\s*/,"")||i,r=(e.topic||"").trim();if(r)return t(r);const n=(e.title||"").trim();return n?t(n):""}function i3e(e){const t=String(e.status||"").toLowerCase();return{product:xAt(e)||"盯住的事",paused:t==="paused",cancelled:t==="cancelled",watchId:e.watch_id,pendingConfirm:t==="pending_confirm",topic:e.topic||"",originalText:e.original_text??void 0}}function mfn(e,t,r,n){var u,d,h,f,p,m,g,v;const i=(e.object_candidates??[]).map(y=>typeof y=="string"?y:(y==null?void 0:y.name)??"").filter(y=>!!y),a=(e.task??((u=e.proposal)==null?void 0:u.task)??((h=(d=e.proposal)==null?void 0:d.check_spec)==null?void 0:h.topic)??"").trim(),s=((f=e.proposal)==null?void 0:f.display)??null,o=((s==null?void 0:s.lines)??[]).filter(y=>typeof y=="string"&&!!y.trim()),l=((s==null?void 0:s.warnings)??[]).filter(y=>typeof y=="string"&&!!y.trim());return{product:i[0]??(r&&n?n.product:null)??(e.title||"").trim()??null,task:a||t,originalText:(e.original_text??"").trim()||void 0,scheduleType:e.schedule_type??((m=(p=e.proposal)==null?void 0:p.schedule)==null?void 0:m.schedule_type)??"",scheduleValue:e.schedule??((v=(g=e.proposal)==null?void 0:g.schedule)==null?void 0:v.schedule_value)??"",displayLines:o.length?o:void 0,displayWarnings:l.length?l:void 0,notifyText:(s==null?void 0:s.notify_text)??void 0,candidates:i.length?i:void 0}}function gfn(e){if(!e)return"";const t=[];return t.push(e.last_automation_at?`上次自动执行 ${yAt(e.last_automation_at)}`:"尚无自动执行记录"),typeof e.attention_count=="number"&&e.attention_count>0&&t.push(`${e.attention_count} 项有更新`),t.join(" · ")}const vfn={enterprise_rule:"企业规则",position_policy:"岗位策略",personal_pref:"个人偏好",product_knowledge:"商品知识",action_experience:"动作经验"},yfn={draft:"草稿",in_review:"待审核",reviewing:"待审核",pending:"待审核",rejected:"已驳回",active:"已生效",confirmed:"已生效",retired:"已撤回"};function bfn(e){return e.map((t,r)=>{const n=String(t.category||t.ktype||""),i=t.content_md||t.content||"",a=Number(t.doc_id??t.id);return{key:String(t.doc_id??t.id??`k-${r}`),docId:Number.isSafeInteger(a)&&a>0?a:null,label:t.category_label||vfn[n]||n||"知识素材",title:t.title||"",titleAuto:t.title_auto===!0,meta:[t.scope_label||(t.owner_type==="global"?"全局":t.owner_type||""),t.status_label||yfn[String(t.status||"").toLowerCase()]||(t.status?String(t.status):""),N7(t.updated_at||t.created_at)].filter(Boolean).join(" · "),body:i,status:t.status?String(t.status):""}})}function Afn(e){if(!e)return null;const t=String(e.persona||""),r=t.includes("管理员")?"企业管理员":t.includes("负责人")?"经营负责人":"广告运营",n=e.permissions&&typeof e.permissions=="object"?e.permissions:null,i=n==null?void 0:n.can_view,a=[];if(typeof e.business_scope=="string"&&e.business_scope)a.push(e.business_scope);else if(e.business_scope&&typeof e.business_scope=="object")for(const[s,o]of Object.entries(e.business_scope)){const l=Vx(o,4);l&&a.push(`${s}:${l}`)}return{userId:e.user_id||"",name:e.name||"(未命名)",personaText:t||"未配置岗位",personaKey:r,configured:e.configured!==!1,scopeLines:a,duty:e.duty||"",dutySource:e.duty_source||"",goals:e.goals||"",canViewText:typeof i=="string"?i:i&&typeof i=="object"?Object.entries(i).map(([s,o])=>`${s}:${Vx(o,4)}`).filter(s=>s.length>0&&!s.endsWith(":")).join(";"):"",canActText:Vx(n==null?void 0:n.can_act,4),needsApprovalText:Vx(n==null?void 0:n.needs_approval,4),auto:(n==null?void 0:n.auto_execute)===!0}}function xfn(e){return e.map(t=>({userId:String(t.user_id||""),name:t.name||t.username||"成员",role:t.persona||"",scope:typeof t.business_scope=="string"?t.business_scope:t.business_scope&&typeof t.business_scope=="object"?Object.entries(t.business_scope).map(([r,n])=>`${r} ${Vx(n,3)}`).filter(r=>!r.endsWith(" ")).join(" · "):t.duty||"",configured:t.configured!==!1}))}const Efn={"tool/catalog":"盘点可用数据","tool/selected":"选定取数工具","tool/called":"调用工具取数","tool/result":"解析返回结果","tool/parallel-batch":"并行批量取数","tool/failure-route-hint":"异常换路重试","tool/cached-hit":"命中缓存,直接复用","query/empty":"查询无结果","cognition/ended":"本轮收口"},Ifn={understand:"理解问题,拆解目标",plan:"规划调查路径",execute:"执行调查",verify:"核对结论",synthesize:"汇总结论",summarize:"汇总结论",report:"整理输出",done:"收尾"};function Cfn(e){const t=e.trim();if(!t)return"";const r=Efn[t];if(r)return r;const n=t.indexOf("/");return n>0&&/^(tool|phase|query)$/.test(t.slice(0,n))?t.slice(n+1).replace(/[-_]+/g," ").trim():t}function Sfn(e){const t=e.trim();return t?Ifn[t]??t:""}function a3e(e){const t=(e??"").trim();if(!t)return null;const r=t.includes("T")?t:t.replace(" ","T"),n=Date.parse(r);return Number.isFinite(n)?n:null}function wfn(e){const t=Array.isArray(e)?e:[];if(t.length===0)return null;const r=new Map;for(const n of t){const i=String((n==null?void 0:n.text)??"").replace(/\s+/g," ").trim();i&&r.set(`${n.type}\0${i}`,{name:i,status:n.status==="running"?"running":"done",note:"",ts:a3e(n.ts)??void 0})}return r.size===0?null:[...r.values()]}const EAt={待采纳:"pending",执行历史:"accepted",忽略历史:"dismissed"},Tfn=[["运营","5","ASIN 与店铺经营"],["广告","10","活动、预算与关键词"],["采购","18","需求、订单与交期"],["库存优化","5","缺货、积压与去化"]],IAt={广告运营:{name:"张三",goal:"在既定预算内改善投放效率,保护新品测试窗口",data:"广告表现、订单与商品基础信息",approval:"增加总预算 → 李雯 · 经营负责人"},经营负责人:{name:"李雯",goal:"提高新品成功率,改善老品贡献利润",data:"负责范围内的销售、广告、成本与利润",approval:"超出季度预算 → 企业负责人"},企业管理员:{name:"陈敏",goal:"维护岗位、业务归属与授权记录",data:"成员、岗位、数据连接状态;不默认开放经营数据",approval:"经营规则变更 → 经营负责人"}};function Rfn(e,t){return e==="广告运营"?t.scope:e==="经营负责人"?"德国、美国站 · 店铺 A / B · 家居品类":"组织与账号配置 · 无业务数据授权"}function kfn(e,t){return e==="广告运营"?t.action:e==="经营负责人"?"经营方案审批、预算分配与团队分工":"维护成员授权,保存变更记录"}function Mfn(){return[{id:1,title:"老品利润改善",sub:"6 个活动 · 24 个关键词",state:"待决定",expert:"广告",summary:"广告花费上升,利润承压。建议先降低低效词竞价,保留新品测试词。",action:"24 个关键词竞价降低 10%",result:"生效 72 小时后首次检查;归因窗口成熟后评价利润与订单变化。"},{id:2,title:"采购交期异常",sub:"3 笔采购单",state:"待决定",expert:"采购",summary:"供应商承诺与物流预计相差 5–8 天。我已整理冲突记录,需要采购负责人核实。",action:"发起交期核实任务",result:"收到新交期后重新测算缺货风险。"},{id:3,title:"夏季新品验证",sub:"4 个新品 ASIN",state:"观察中",expert:"运营",summary:"转化数据尚未成熟,暂不判定新品失败。维持已批准的测试预算。",action:"继续观察至周五",result:"周五检查转化、投入和库存保障。"},{id:4,title:"日常广告预算优化",sub:"16 个活动",state:"执行中",expert:"广告",summary:"在既有授权内调整预算分配,已完成 11 个活动,其余 5 个等待回执。",action:"核对执行回执",result:"回执齐全后开始效果观察。"},{id:5,title:"上一轮竞价调整复盘",sub:"12 个活动",state:"已复盘",expert:"广告",summary:"8 个活动达到目标,2 个无明显改善,2 个受促销影响,暂不归因。",action:"查看效果与经验",result:"有效动作记录为候选经验;无效动作进入策略重审。"}]}function Nfn(){return[{id:1,group:"广告",agent:"关键词竞价数字人",object:"E58012005 自动",text:"24 个低效关键词竞价降低 10%,保留新品测试词",state:"待采纳",created:"2026-09-28",handled:"",result:"等待决定"},{id:2,group:"采购",agent:"交期跟进数字人",object:"PO2026092803",text:"核实供应商交期与物流预计相差 5–8 天的原因",state:"待采纳",created:"2026-09-27",handled:"",result:"等待决定"},{id:3,group:"运营",agent:"新品验证数字人",object:"便携咖啡机 · B0DEMO0001",text:"延长新品验证窗口 3 天,维持原测试预算",state:"待采纳",created:"2026-09-26",handled:"",result:"等待决定"},{id:4,group:"广告",agent:"预算优化数字人",object:"16 个广告活动",text:"按转化表现重新分配日预算,总预算不变",state:"执行历史",created:"2026-09-25",handled:"2026-09-26",result:"执行中 · 11/16 已回执"},{id:5,group:"广告",agent:"关键词竞价数字人",object:"12 个广告活动",text:"低效关键词竞价降低 10%",state:"执行历史",created:"2026-09-22",handled:"2026-09-23",result:"已执行 · 8 项达标,2 项无改善,2 项暂无法归因"},{id:6,group:"库存优化",agent:"库存去化数字人",object:"SKU-DEMO-06",text:"调整积压商品促销方案并跟踪去化",state:"执行历史",created:"2026-09-24",handled:"2026-09-25",result:"执行失败 · 平台拒绝,待处理"},{id:7,group:"广告",agent:"关键词竞价数字人",object:"E5601101-Broad",text:"提高宽泛匹配竞价 10%",state:"忽略历史",created:"2026-09-24",handled:"2026-09-25",result:"忽略原因:新品测试期,暂不调整"},{id:8,group:"采购",agent:"交期跟进数字人",object:"PO2026092201",text:"追加补货以覆盖预计缺口",state:"忽略历史",created:"2026-09-22",handled:"2026-09-24",result:"忽略原因:到货计划已更新"}]}function zfn(){return[{id:1,source:"每日经营检查",title:"这周,先一起梳理新品的测试预算",why:"你负责德国站的新品投放,也希望控制试错成本。我建议先确认每款新品的测试目标,再看预算是否分散。",next:"先梳理测试目标与当前分配,与你确认优先级后,再调用广告专家形成动作。",state:"推荐",messages:[]},{id:2,source:"岗位关注建议",title:"销量没下降,老品利润也可能在流失",why:"结合广告运营岗位本周的关注主题,建议检查折扣、广告投入与贡献利润是否同步变化。先确定你有权查看的数据范围。",next:"先用广告花费与订单定位值得关注的商品;需要完整成本时,请经营负责人参与核实。",state:"推荐",messages:[]}]}function Ofn(){const e=(t,r,n)=>{const i=new Date;return i.setDate(i.getDate()-t),i.setHours(r,n,0,0),i.toISOString()};return[{id:1,title:"新品测试预算是否需要重新分配",scope:"德国站 · 店铺 A · 4 个新品",source:"小多每日经营检查",preview:"等你确认调查范围",status:"待确认",messages:[],confirmed:!1,updatedAt:e(0,10,12)},{id:2,title:"咖啡机销量变化",scope:"美国站 · 店铺 A · B0DEMO0001",source:"你交代的盯住",preview:"今天 09:00 · 销量下降达到提醒条件",status:"有更新",messages:[],confirmed:!0,updatedAt:e(0,9,0)},{id:3,title:"德国站新品验证",scope:"德国站 · 店铺 A · 新品测试",source:"你发起的讨论",preview:"上次停在:确认测试窗口",status:"",messages:[],confirmed:!0,updatedAt:e(1,16,40)}]}function Bfn(){return{role:"广告运营",scope:"德国站 · 店铺 A · 家居品类",action:"单次竞价调整 ≤ 10%",auto:!1}}function Pfn(){return{product:"咖啡机",metric:"销量",threshold:20,channel:"通过我的钉钉提醒我",paused:!1}}function s3e(e,t,r){const n=e.match(/(\d+(?:\.\d+)?)\s*[%%]/);return{product:/咖啡/.test(e)?"咖啡机":/收纳/.test(e)?"收纳包":t&&r?r.product:null,metric:/销售额/.test(e)?"销售额":t&&r?r.metric:"销量",threshold:n?Number(n[1]):t&&r?r.threshold:20,explicit:!!n,channel:/不要.*钉钉|仅站内|只在站内/.test(e)?"在站内提醒我":t&&r?r.channel:"通过我的钉钉提醒我"}}const Dfn=["建议编号","领域","数字人","业务对象","建议内容","状态","建议日期","处理日期","执行结果或忽略原因"];function Lfn(e){return`\uFEFF${[Dfn,...e.map(n=>[String(n.id),n.group,n.agent,n.object,n.text,n.state,n.created,n.handled,n.result])].map(n=>n.map(i=>`"${String(i).replace(/"/g,'""')}"`).join(",")).join(`\r
|
|
786
|
+
聊天和历史接口尚未接入,当前数据只保存在面板本地。`}]}]},{id:"listing-analysis",title:"Listing 深度分析",updatedLabel:"1w",messages:[{id:"listing-analysis-user-1",role:"user",content:"帮我整理一份 Listing 优化检查清单。",timestamp:"2026-08-25T03:18:00.000Z"},{id:"listing-analysis-assistant-1",role:"assistant",content:"可以优先检查 **标题关键词、五点描述、主图信息密度、A+ 内容** 与搜索词覆盖。这个回复来自本地 Demo,不会产生网络请求。",timestamp:"2026-08-25T03:18:02.000Z"}]},{id:"ads-weekly-report",title:"广告数据周报",updatedLabel:"2w",messages:[]},{id:"launch-plan",title:"新品上架计划",updatedLabel:"2w",messages:[]},{id:"review-insight",title:"竞品评论洞察",updatedLabel:"1mo",messages:[]},{id:"keyword-opportunity",title:"关键词机会分析",updatedLabel:"1mo",messages:[]}];let pAt=0;const t3e=e=>(pAt+=1,`${e}-${Date.now()}-${pAt}`),Vhn=e=>{const t=e.replace(/\s+/g," ").trim();return t.length>20?`${t.slice(0,20)}…`:t},Fhn=()=>Lhn.map(e=>({...e,messages:e.messages.map(t=>({...t}))}));function jhn({onClose:e}){const[t,r]=I.useState(Fhn),[n,i]=I.useState(null),[a,s]=I.useState(!1),[o,l]=I.useState(""),[u,d]=I.useState(!1),[h,f]=I.useState("静态 Demo · 消息不会发送到服务端"),p=I.useRef(null),m=I.useRef(null),g=I.useMemo(()=>t.find(M=>M.id===n)??null,[n,t]),v=(g==null?void 0:g.messages)??[],y=I.useMemo(()=>{const M=o.trim().toLocaleLowerCase();return M?t.filter(k=>k.title.toLocaleLowerCase().includes(M)):t},[t,o]),A=I.useCallback(()=>{const M=m.current!==null;m.current&&(clearTimeout(m.current),m.current=null),d(!1),M&&f("已停止本地 Demo 回复")},[]);I.useEffect(()=>()=>{m.current&&(clearTimeout(m.current),m.current=null)},[]),I.useEffect(()=>{const M=k=>{var z;(z=p.current)!=null&&z.contains(k.target)||s(!1)};return document.addEventListener("pointerdown",M),()=>document.removeEventListener("pointerdown",M)},[]),I.useEffect(()=>{const M=k=>{if(k.key==="Escape"){if(a){s(!1);return}e()}};return document.addEventListener("keydown",M),()=>document.removeEventListener("keydown",M)},[a,e]);const b=I.useCallback(()=>{A(),i(null),s(!1),l(""),f("静态 Demo · 消息不会发送到服务端")},[A]),x=I.useCallback(M=>{A(),i(M),s(!1),l(""),f("已载入本地历史 Demo")},[A]),C=I.useCallback(M=>{const k=M.trim();if(!k||u)return;A();const z=new Date().toISOString(),O={id:t3e("user"),role:"user",content:k,timestamp:z},N=n??t3e("conversation");r(B=>B.find(D=>D.id===N)?B.map(D=>D.id===N?{...D,updatedLabel:"刚刚",messages:[...D.messages,O]}:D):[{id:N,title:Vhn(k)||"新会话",updatedLabel:"刚刚",messages:[O]},...B]),i(N),d(!0),f("正在生成本地 Demo 回复…"),m.current=setTimeout(()=>{const B={id:t3e("assistant"),role:"assistant",content:"已收到。这是一条由前端本地生成的 Demo 回复,用于验证 V2 输入框、消息追加和统一内容解析;当前没有调用聊天或历史接口。",timestamp:new Date().toISOString()};r(P=>P.map(D=>D.id===N?{...D,updatedLabel:"刚刚",messages:[...D.messages,B]}:D)),m.current=null,d(!1),f("静态 Demo · 消息不会发送到服务端")},700)},[n,u,A]),w=I.useCallback(()=>{s(M=>!M)},[]),S=I.useCallback(()=>{f("该能力将在新接口接入后开放")},[]),T=I.useCallback(M=>{M.dataTransfer.types.includes("Files")&&(M.preventDefault(),M.stopPropagation(),f("附件将在新接口接入后开放"))},[]),R=I.useCallback(M=>{Array.from(M.clipboardData.items).some(z=>z.type.startsWith("image/"))&&(M.preventDefault(),M.stopPropagation(),f("图片粘贴将在新接口接入后开放"))},[]);return E.jsxs("aside",{className:"wandox-root wandox-console-chat wandox-agent-panel","aria-label":"Wandox 会话面板",children:[E.jsxs("header",{className:"wandox-agent-panel__header",children:[E.jsxs("div",{className:"wandox-agent-panel__brand-row",children:[E.jsxs("div",{className:"wandox-agent-panel__brand",children:[E.jsx(lee,{className:"wandox-agent-panel__brand-mark"}),E.jsx("span",{children:"Wandox"})]}),E.jsx("button",{type:"button",className:"wandox-agent-panel__icon-button",onClick:e,title:"关闭面板","aria-label":"关闭面板",children:E.jsx(Pa,{})})]}),E.jsxs("div",{className:"wandox-agent-panel__navigation",children:[E.jsx("button",{type:"button",className:`wandox-agent-panel__icon-button wandox-agent-panel__new-chat${g?"":" wandox-agent-panel__new-chat--hidden"}`,onClick:b,disabled:!g,title:"新会话","aria-label":"新会话",tabIndex:g?0:-1,children:E.jsx(hk,{})}),E.jsxs("div",{className:"wandox-agent-panel__history-anchor",ref:p,children:[E.jsxs("button",{type:"button",className:"wandox-agent-panel__conversation-title",onClick:w,"aria-expanded":a,"aria-haspopup":"true",children:[E.jsx("span",{children:(g==null?void 0:g.title)??"新会话"}),E.jsx(py,{className:a?"wandox-agent-panel__title-arrow--open":""})]}),a&&E.jsxs("section",{className:"wandox-agent-panel__history","aria-label":"会话历史",children:[E.jsx(Or,{value:o,onChange:M=>l(M.target.value),prefix:E.jsx(Vh,{}),allowClear:!0,placeholder:"搜索最近会话",className:"wandox-agent-panel__history-search",autoFocus:!0}),E.jsx("div",{className:"wandox-agent-panel__history-label",children:"最近会话"}),E.jsx("div",{className:"wandox-agent-panel__history-list",children:y.length>0?y.map(M=>E.jsxs("button",{type:"button",className:`wandox-agent-panel__history-item${M.id===n?" wandox-agent-panel__history-item--active":""}`,onClick:()=>x(M.id),children:[E.jsx("span",{children:M.title}),E.jsx("time",{children:M.updatedLabel})]},M.id)):E.jsx("div",{className:"wandox-agent-panel__history-empty",children:"没有匹配的会话"})})]})]}),E.jsx("button",{type:"button",className:"wandox-agent-panel__icon-button",onClick:S,title:"更多","aria-label":"更多",children:E.jsx(my,{})})]})]}),E.jsx("div",{className:"wandox-console-chat__body wandox-agent-panel__body",children:E.jsx(Cwe,{messages:v,executing:u,conversationKey:n??"new-conversation",emptyContent:E.jsx("div",{className:"wandox-agent-panel__empty",children:E.jsx(lee,{className:"wandox-agent-panel__empty-mark"})})})}),E.jsxs("div",{className:"wandox-console-chat__input wandox-agent-panel__input",children:[E.jsx("div",{className:"wandox-agent-panel__chat-input-guard",onDragEnterCapture:T,onDragOverCapture:T,onDropCapture:T,onPasteCapture:R,children:E.jsx(Mwe,{onSend:C,executing:u,onStop:A,placeholder:"给 Wandox 发送消息",hideUploadButton:!0,autoFocusInput:!1,leadingActions:E.jsx("button",{type:"button",className:"wandox-chat-input-upload-leading",onClick:S,title:"添加文件","aria-label":"添加文件",children:E.jsx(Al,{})})},n??"new-conversation")}),E.jsx("div",{className:"wandox-agent-panel__demo-notice","aria-live":"polite",children:h})]})]})}const r3e=(e,t)=>({value:e.getPropertyValue(t),priority:e.getPropertyPriority(t)}),KV=(e,t,r)=>{if(r.value){e.setProperty(t,r.value,r.priority);return}e.removeProperty(t)},qhn=e=>Number.isFinite(e)?Math.min(Ohn,Math.max(zhn,Math.round(e))):dAt;class Qhn{constructor(t){ct(this,"queryClient");ct(this,"root",null);ct(this,"container",null);ct(this,"bodyStyleSnapshot",null);ct(this,"panelWidth",dAt);ct(this,"listeningForResize",!1);ct(this,"closing",!1);ct(this,"lifecycleVersion",0);ct(this,"closeFallbackTimer",null);ct(this,"closeTransitionEndHandler",null);ct(this,"requestClose",()=>{const t=this.lifecycleVersion;queueMicrotask(()=>{t===this.lifecycleVersion&&this.close()})});ct(this,"applyLayout",()=>{if(!this.container||!this.bodyStyleSnapshot||this.closing||typeof window>"u")return;const t=this.getRenderedWidth();this.container.style.width=`${t}px`,this.bodyStyleSnapshot.body.style.setProperty("padding-right",window.innerWidth<=Bhn?"0px":`${t}px`,"important"),this.bodyStyleSnapshot.body.style.setProperty("box-sizing","border-box","important")});this.queryClient=t}open(t={}){if(typeof window>"u"||typeof document>"u")throw new Error("[Wandox] openAgentPanel is only available in a browser");const r=document.getElementById(uAt);if(r&&r!==this.container)throw new Error("[Wandox] Agent panel is already managed by another SDK instance");const n=this.closing&&this.container?window.getComputedStyle(this.container).transform:null;this.lifecycleVersion+=1,this.cancelCloseMotion(),this.panelWidth=qhn(t.width);let i=!1;if(!this.container||!this.root){const u=document.body;this.bodyStyleSnapshot={body:u,paddingRight:r3e(u.style,"padding-right"),boxSizing:r3e(u.style,"box-sizing"),transition:r3e(u.style,"transition"),computedTransition:window.getComputedStyle(u).transition},this.container=document.createElement("div"),this.container.id=uAt,this.container.className=`wandox-agent-panel-root ${e3e}`,Object.assign(this.container.style,{position:"fixed",top:"0",right:"0",bottom:"0",height:"100vh",zIndex:"999999",background:"#ffffff"}),document.body.appendChild(this.container),this.root=qf(this.container),i=!0}const a=this.container,s=this.root,o=this.prefersReducedMotion(),l=!!n&&n!=="none";return l&&n&&(a.style.transform=n),a.classList.remove(fAt),a.removeAttribute("aria-hidden"),this.installBodyTransition(),a.style.width=`${this.getRenderedWidth()}px`,this.bodyStyleSnapshot&&this.bodyStyleSnapshot.body.style.setProperty("box-sizing","border-box","important"),(i||l)&&!o&&a.offsetWidth,a.classList.remove(e3e),l&&a.style.removeProperty("transform"),this.applyLayout(),o&&this.bodyStyleSnapshot&&(this.bodyStyleSnapshot.body.offsetWidth,this.restoreBodyTransition()),this.startListeningForResize(),s.render(E.jsx(Lv,{queryClient:this.queryClient,children:E.jsx(jhn,{onClose:this.requestClose})})),{element:a,close:()=>this.close(),destroy:()=>this.destroy()}}close(){const t=this.container;if(!t||!this.root||this.closing)return;const r=++this.lifecycleVersion;if(this.stopListeningForResize(),this.prefersReducedMotion()){this.installBodyTransition(),this.restoreBodyPadding(),this.bodyStyleSnapshot&&this.bodyStyleSnapshot.body.offsetWidth,this.teardown();return}this.closing=!0,this.installBodyTransition(),this.closeTransitionEndHandler=n=>{n.target!==t||n.propertyName!=="transform"||this.finalizeClose(r,t)},t.addEventListener("transitionend",this.closeTransitionEndHandler),this.closeFallbackTimer=window.setTimeout(()=>this.finalizeClose(r,t),hAt+80),t.classList.remove(e3e),t.classList.add(fAt),t.setAttribute("aria-hidden","true"),this.restoreBodyPadding()}destroy(){this.lifecycleVersion+=1,this.prepareImmediateBodyRestore(),this.teardown()}getRenderedWidth(){return Math.min(this.panelWidth,window.innerWidth)}startListeningForResize(){this.listeningForResize||(window.addEventListener("resize",this.applyLayout),this.listeningForResize=!0)}stopListeningForResize(){!this.listeningForResize||typeof window>"u"||(window.removeEventListener("resize",this.applyLayout),this.listeningForResize=!1)}prefersReducedMotion(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(Dhn).matches}installBodyTransition(){if(!this.bodyStyleSnapshot)return;const{body:t,computedTransition:r}=this.bodyStyleSnapshot;if(this.prefersReducedMotion()){t.style.setProperty("transition","none","important");return}const n=`padding-right ${hAt}ms ${Phn}`,i=r.trim(),a=!i||i==="none"||i==="all 0s ease 0s"?n:`${i}, ${n}`;t.style.setProperty("transition",a,"important")}restoreBodyPadding(){if(!this.bodyStyleSnapshot)return;const{body:t,paddingRight:r}=this.bodyStyleSnapshot;KV(t.style,"padding-right",r)}restoreBodyTransition(){if(!this.bodyStyleSnapshot)return;const{body:t,transition:r}=this.bodyStyleSnapshot;KV(t.style,"transition",r)}prepareImmediateBodyRestore(){if(!this.bodyStyleSnapshot)return;const{body:t}=this.bodyStyleSnapshot;t.style.setProperty("transition","none","important"),this.restoreBodyPadding(),t.offsetWidth}finalizeClose(t,r){t!==this.lifecycleVersion||r!==this.container||!this.closing||this.teardown()}cancelCloseMotion(){this.closeTransitionEndHandler&&this.container&&this.container.removeEventListener("transitionend",this.closeTransitionEndHandler),this.closeTransitionEndHandler=null,this.closeFallbackTimer!==null&&typeof window<"u"&&window.clearTimeout(this.closeFallbackTimer),this.closeFallbackTimer=null,this.closing=!1}teardown(){var t,r;this.cancelCloseMotion(),this.stopListeningForResize(),(t=this.root)==null||t.unmount(),this.root=null,(r=this.container)==null||r.remove(),this.container=null,this.restoreBodyStyle()}restoreBodyStyle(){if(!this.bodyStyleSnapshot)return;const{body:t,paddingRight:r,boxSizing:n,transition:i}=this.bodyStyleSnapshot;KV(t.style,"padding-right",r),KV(t.style,"box-sizing",n),KV(t.style,"transition",i),this.bodyStyleSnapshot=null}}const Yhn="0.2.4",mAt={file:Ay,artifact:Y$e,url:NMr,knowledge:Q$e,dataset:nMr};function Ghn({snapshot:e}){return e?e.items.length===0?E.jsx("div",{className:"wandox-conversations__sources-empty-note",children:"对话中上传的文件、生成的报告与引用会出现在这里。"}):E.jsx("div",{className:"wandox-conversations__sources-list",children:e.items.map(t=>E.jsx(gAt,{item:t},t.source_id))}):null}function gAt({item:e,onOpenUrl:t}){const r=mAt[e.kind]??Ay,n=e.url||e.download_url||null,i=Q1t(n),a=E.jsxs(E.Fragment,{children:[E.jsx(r,{"aria-hidden":"true"}),E.jsx("span",{className:"wandox-conversations__sources-item-title",title:e.title,children:e.title})]});if(n&&!i)return E.jsx("a",{className:"wandox-conversations__sources-item",href:n,onClick:t?s=>{s.preventDefault(),t(e,n)}:void 0,target:t?void 0:"_blank",rel:t?void 0:"noopener noreferrer",children:a});if(n&&i){const s=Y1t(e.source_id);return E.jsx("button",{type:"button",className:"wandox-conversations__sources-item",onClick:()=>{s&&Y$(s,e.title).catch(o=>{})},children:a})}return E.jsx("div",{className:"wandox-conversations__sources-item",children:a})}function Whn(e){return["file","artifact","dataset","url","knowledge"].map(t=>({kind:t,items:e.items.filter(r=>r.kind===t)})).filter(t=>t.items.length>0)}function Uhn({item:e,onOpenUrl:t}){const r=mAt[e.kind]??Ay,n=e.url||e.download_url||null,i=Q1t(n),a=e.path||e.badge||null,s=E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"wandox-conversations__sources-pane-item-title",children:[E.jsx(r,{"aria-hidden":"true"}),E.jsx("span",{title:e.title,children:e.title})]}),a?E.jsx("div",{className:"wandox-conversations__sources-pane-item-sub",title:a,children:a}):null]});if(n&&!i)return E.jsx("a",{className:"wandox-conversations__sources-pane-item",href:n,onClick:t?o=>{o.preventDefault(),t(e,n)}:void 0,target:t?void 0:"_blank",rel:t?void 0:"noopener noreferrer",children:s});if(n&&i){const o=Y1t(e.source_id);return E.jsx("button",{type:"button",className:"wandox-conversations__sources-pane-item",onClick:()=>{o&&Y$(o,e.title).catch(l=>{})},children:s})}return E.jsx("div",{className:"wandox-conversations__sources-pane-item",children:s})}function Zhn({fact:e}){const t=String(e.nature||"").toLowerCase();return E.jsxs("div",{className:"wandox-conversations__fact-row",children:[E.jsx("span",{className:`wandox-conversations__fact-badge wandox-conversations__fact-badge--${t}`,children:e.nature_label||e.badge||e.nature||"事实"}),E.jsx("span",{className:"wandox-conversations__fact-text",title:e.fact,children:e.fact})]})}function Hhn({rows:e,loading:t,error:r}){if(t)return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:E.jsx("div",{className:"wandox-conversations__sources-pane-note",children:"加载中…"})});if(r)return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:E.jsx("div",{className:"wandox-conversations__sources-pane-note",children:r})});if(e.length===0)return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:E.jsx("div",{className:"wandox-conversations__sources-pane-note",children:"本会话还没有事实依据"})});const n=[...e].sort((i,a)=>(i.turn_no??0)-(a.turn_no??0)).reduce((i,a)=>{const s=i[i.length-1];return s&&s.turnNo===(a.turn_no??null)?s.facts.push(a):i.push({turnNo:a.turn_no??null,facts:[a]}),i},[]);return E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:n.map(i=>E.jsxs("section",{children:[i.turnNo?E.jsxs("div",{className:"wandox-conversations__sources-group-title",children:["`第 $",i.turnNo," 轮`"]}):null,E.jsx("div",{className:"wandox-conversations__fact-group",children:i.facts.map((a,s)=>E.jsx(Zhn,{fact:a},a.id??`${i.turnNo}-${s}`))})]},i.turnNo??"conversation"))})}function Khn({snapshot:e,onClose:t,factRows:r,factsLoading:n,factsError:i,onOpenItem:a,resourceTabs:s,onCloseResourceTab:o}){const[l,u]=I.useState("sources"),d=s&&s.length>0?s[s.length-1].key:null;I.useEffect(()=>{d&&u(d)},[d]),I.useEffect(()=>{const p=m=>{m.key==="Escape"&&t()};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[t]);const h=Whn(e),f=[{key:"sources",label:"来源",closable:!1,children:E.jsx("div",{className:"wandox-conversations__sources-pane-body",children:h.map(p=>E.jsx("section",{children:E.jsx("div",{className:"wandox-conversations__sources-pane-group",children:p.items.map(m=>E.jsx(Uhn,{item:m,onOpenUrl:a},m.source_id))})},p.kind))})}];r&&r.length>0&&f.push({key:"facts",label:"依据",closable:!1,children:E.jsx(Hhn,{rows:r,loading:n,error:i})});for(const p of s??[])f.push({key:p.key,label:p.title,closable:!0,children:E.jsx("iframe",{className:"wandox-conversations__sources-pane-frame",src:p.url,title:p.title})});return E.jsx("aside",{className:"wandox-conversations__sources-pane",children:E.jsx(xD,{className:"wandox-conversations__sources-pane-tabs",size:"small",type:"editable-card",hideAdd:!0,activeKey:l,onChange:u,onEdit:(p,m)=>{m==="remove"&&(o==null||o(String(p)),u("sources"))},tabBarExtraContent:{right:E.jsx("button",{type:"button",className:"wandox-conversations__sources-pane-close","aria-label":"关闭来源分屏",onClick:t,children:E.jsx(Pa,{})})},items:f})})}const vAt="(min-width: 1120px)";function Jhn(){const[e,t]=I.useState(()=>window.matchMedia(vAt).matches);return I.useEffect(()=>{const r=window.matchMedia(vAt),n=i=>t(i.matches);return r.addEventListener("change",n),()=>r.removeEventListener("change",n)},[]),e}function Xhn({snapshot:e,origin:t,onOpenAll:r,onOpenItem:n,factRows:i}){const a=Jhn(),[s,o]=I.useState(null),l=s??a;if(!e)return null;const u=e.items.length>0,d=e.counts,h=[d.file?"上传":"",d.artifact?"来源":"",d.url+d.knowledge?"链接":""].filter(Boolean).join(" · ");return l?E.jsxs("aside",{className:"wandox-conversations__sources-card",children:[E.jsxs("header",{className:"wandox-conversations__sources-head",children:[E.jsx("span",{children:"导出与报告"}),E.jsx("button",{type:"button",className:"wandox-conversations__sources-collapse","aria-label":"收起来源卡",onClick:()=>o(!1),children:E.jsx(Pa,{})})]}),t?E.jsx("div",{className:"wandox-conversations__sources-origin",children:`来自:${t}`}):null,u?null:E.jsx("div",{className:"wandox-conversations__sources-empty-note",children:"对话中上传的文件、生成的报告与引用会出现在这里。"}),h?E.jsxs("div",{className:"wandox-conversations__sources-counts",children:[h,":"]}):null,u?E.jsx("div",{className:"wandox-conversations__sources-list",children:e.items.slice(0,5).map(f=>E.jsx(gAt,{item:f,onOpenUrl:n},f.source_id))}):null,i&&i.length>0?E.jsxs("div",{className:"wandox-conversations__sources-facts",children:[E.jsx("div",{className:"wandox-conversations__sources-counts",children:"依据:"}),E.jsx("div",{className:"wandox-conversations__sources-list",children:i.slice(0,3).map((f,p)=>E.jsxs("div",{className:"wandox-conversations__sources-item",children:[E.jsx(Q$e,{"aria-hidden":"true"}),E.jsx("span",{className:"wandox-conversations__sources-item-title",title:f.fact,children:f.fact})]},f.id??`fact-${p}`))})]}):null,r&&u?E.jsxs("button",{type:"button",className:"wandox-conversations__sources-more",onClick:r,children:["查看全部",E.jsx(hy,{})]}):null]}):E.jsxs("button",{type:"button",className:"wandox-conversations__sources-pill",title:t?`来自:${t}`:"查看会话来源",onClick:()=>o(!0),children:[E.jsx(Ay,{"aria-hidden":"true"}),E.jsx("span",{children:"导出与报告"}),u?E.jsx("span",{className:"wandox-conversations__sources-pill-count",children:e.items.length}):null]})}const _hn={sparkles:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"}),E.jsx("path",{d:"M20 2v4"}),E.jsx("path",{d:"M22 4h-4"}),E.jsx("circle",{cx:"4",cy:"20",r:"2"})]}),layers:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"}),E.jsx("path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"}),E.jsx("path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"})]}),"messages-square":E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"}),E.jsx("path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1"})]}),"building-2":E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M10 12h4"}),E.jsx("path",{d:"M10 8h4"}),E.jsx("path",{d:"M14 21v-3a2 2 0 0 0-4 0v3"}),E.jsx("path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2"}),E.jsx("path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16"})]}),menu:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M4 6h16"}),E.jsx("path",{d:"M4 12h16"}),E.jsx("path",{d:"M4 18h16"})]}),x:E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"M18 6 6 18"}),E.jsx("path",{d:"m6 6 12 12"})]}),"arrow-left":E.jsxs(E.Fragment,{children:[E.jsx("path",{d:"m12 19-7-7 7-7"}),E.jsx("path",{d:"M19 12H5"})]})};function Lx({name:e}){return E.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","data-lucide":e,"aria-hidden":"true",className:`lucide lucide-${e}`,children:_hn[e]})}function N7(e){return typeof e=="string"&&e.length>=10?e.slice(0,10):""}function Vx(e,t=3){const r=Array.isArray(e)?e.map(n=>String(n)):e!=null?[String(e)]:[];return r.length?r.length<=t?r.join("、"):`${r.slice(0,t).join("、")} 等 ${r.length} 个`:""}function $hn(e,t){const r=[];if(e&&typeof e=="object"){const n=Vx(e.asins),i=Vx(e.campaigns??e.campaign_ids),a=Vx(e.sites);a&&r.push(`站点 ${a}`),n&&r.push(`ASIN ${n}`),i&&r.push(`活动 ${i}`)}return t&&r.push(`专家范围:${t}`),r.length?r.join(" · "):"公司全量范围"}function efn(e){switch(e){case"user":return"你发起的讨论";case"watch":return"你交代的盯住";case"suggestion":return"小多建议推进";default:return e||"小多"}}function yAt(e){return e?e.slice(0,16).replace("T"," "):""}function tfn(e){const t=r=>Math.max(a3e(r.last_run_at)??0,a3e(r.created_at)??0);return e.map(r=>({row:r,chat:{id:r.conversation_id,title:r.title||"未命名会话",scope:$hn(r.scope_config,r.domain_scope),source:efn(r.source),preview:r.attention==="has_update"?"有更新:盯住或建议有新结论":r.last_run_at?`上次更新 ${yAt(r.last_run_at)}`:"尚无讨论记录",status:r.attention==="has_update"?"有更新":"",messages:[],confirmed:!0,live:!0,updatedAt:r.last_run_at??r.created_at??void 0}})).sort((r,n)=>t(n.row)-t(r.row)).map(({chat:r})=>r)}function cee(e,t=new Date){if(!e)return"";const r=new Date(e);if(Number.isNaN(r.getTime()))return"";const n=`${String(r.getHours()).padStart(2,"0")}:${String(r.getMinutes()).padStart(2,"0")}`,i=s=>new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),a=Math.round((i(t)-i(r))/864e5);return a<=0?n:a===1?"昨天":a<=7?`${a} 天前`:`${String(r.getMonth()+1).padStart(2,"0")}-${String(r.getDate()).padStart(2,"0")}`}function rfn(e){const t=[],r=[],n=[];for(const i of e){if(!i||typeof i!="object")continue;const a=String(i.kind??"");a==="finding"?t.push(i):a==="running"?r.push(i):a==="waiting"&&n.push(i)}return{findings:t,running:r,waiting:n}}function nfn(e){switch(String(e??"")){case"new":return"新发现";case"handling":return"处理中";case"waiting_data":return"等数据";case"decided":return"已决定";default:return""}}function uee(e,t=new Date){if(!e)return"";const r=new Date(e);if(Number.isNaN(r.getTime()))return"";const n=t.getTime()-r.getTime();if(n<36e5)return"刚刚";if(n<864e5)return`${Math.floor(n/36e5)}小时前`;const i=Math.floor(n/864e5);return i<=7?`${i}天前`:`${r.getMonth()+1}月${r.getDate()}日`}function ifn(e,t=new Date){const r=s=>new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),n=r(t),i={today:[],yesterday:[],week:[],earlier:[]};for(const s of e){if(s.draft){i.today.unshift(s);continue}const o=s.updatedAt?new Date(s.updatedAt).getTime():Number.NaN,l=Number.isNaN(o)?null:Math.round((n-r(new Date(o)))/864e5);l===null||l>7?i.earlier.push(s):l<=0?i.today.push(s):l===1?i.yesterday.push(s):i.week.push(s)}return[{key:"today",label:"今天",chats:i.today},{key:"yesterday",label:"昨天",chats:i.yesterday},{key:"week",label:"过去 7 天",chats:i.week},{key:"earlier",label:"更早",chats:i.earlier}].filter(s=>s.chats.length>0)}function afn(e){switch((e.state??"").trim()){case"有新结论":return"有新结论";case"正在推进":return"正在推进";case"持续关注":return"持续关注";case"待执行":return"待执行";case"已完成":return"已完成";case"已暂停":return"已暂停"}const t=String(e.status||"").toLowerCase();return t==="paused"?"已暂停":t==="done"?"已完成":e.last_run_id?"持续关注":"待执行"}function bAt(e){return e.filter(t=>String(t.status||"active").toLowerCase()!=="cancelled").map(t=>{const r=String(t.status||"active").toLowerCase();return{id:t.task_id,source:t.source==="ai_generated"?"结合你的岗位":"小多建议推进",title:t.title||t.question||"值得推进的事",why:t.why||"",next:t.question||"",state:afn(t),stateText:(t.state??"").trim(),status:r,attention:t.attention==="has_update",messages:[],live:!0,conversationId:t.conversation_id??null,updatedAt:t.last_run_at??t.updated_at??t.created_at??void 0}})}function AAt(e,t,r){return[{label:"当前职责",value:e?(t==null?void 0:t.duty)||(t==null?void 0:t.personaText)||"以服务端配置为准":"德国站广告运营"},{label:"经营目标",value:e?(t==null?void 0:t.goals)||"以服务端配置为准":"控制试错成本"},{label:"讨论范围",value:"调查与讨论,尚未执行专家动作"},{label:"来源与更新",value:[r.source,cee(r.updatedAt)].filter(Boolean).join(" · ")}]}function sfn(e,t){const r=`${e.business_type_code||""}:${e.group_code||""}`,n=t.get(r);return n||(e.group_name||e.business_type_name?[e.business_type_name,e.group_name].filter(Boolean).join(" · "):e.group_code||e.business_type_code||"")}function ofn(e){switch(e){case"pending":return"等待决定";case"accepted":return"已采纳";case"confirmed":return"已确认 · 已按这个方向继续";case"dispatched":return"已交办 · 等待执行回执";case"executing":return"执行中";case"observing":return"观察中";case"reviewed":return"已复盘";case"rejected":case"ignored":case"dismissed":return"已忽略";case"expired":return"已过期";default:return e||"等待决定"}}function lfn(e){return e==="pending"?"待采纳":["rejected","ignored","dismissed","cancelled"].includes(e)?"忽略历史":"执行历史"}function n3e(e,t,r={}){const n=[];for(const i of e){const a=i.id,s=String(i.status||"pending").toLowerCase(),o=r[String(a)],l=o?"执行历史":lfn(s);n.push({id:a,group:sfn(i,t),agent:i.agent_name||i.agent_code||"数字人",object:i.object_name||i.sub_title||`建议 #${a}`,text:i.main_title||i.content||i.sub_title||"(无标题建议)",state:l,created:N7(i.created_at),handled:l==="待采纳"?"":N7(i.updated_at)||N7(i.created_at),result:o?`已采纳 · 事项 ${o.matterId||"已立项"}`:ofn(s),live:!0,agentId:i.agent_id??void 0,groupKey:`${i.business_type_code||""}:${i.group_code||""}`})}return n}function cfn(e){const t=new Map,r=(n,i,a)=>{if(!n||!i)return;let s=t.get(n);s||(s=new Map,t.set(n,s)),s.set(i,a||i)};if(Array.isArray(e))for(const n of e){const i=String(n.dim??n.option_type??"").trim(),a=String(n.name??"").trim(),s=String(n.code??"").trim()||(i==="service_target"?a:"");r(i,s,a)}else if(e&&typeof e=="object"){for(const[n,i]of Object.entries(e))if(Array.isArray(i))for(const a of i)r(n,String((a==null?void 0:a.code)??(a==null?void 0:a.name)??"").trim(),String((a==null?void 0:a.name)??"").trim())}return t}function ufn(e){const t=[],r=new Map;if(!e)return{options:t,labels:r};const n=cfn(e.items),i=n.get("business_type"),a=n.get("group"),s=Array.isArray(e.digital_humans)?e.digital_humans:[];for(const o of s){const l=String(o.business_type_code??"").trim(),u=String(o.group_code??"").trim();if(!l&&!u)continue;const d=`${l}:${u}`;if(r.has(d))continue;const h=[(i==null?void 0:i.get(l))||l,(a==null?void 0:a.get(u))||u].filter(Boolean).join(" · ")||d;r.set(d,h),t.push({key:d,label:h,businessType:l,groupCode:u})}return{options:t,labels:r}}function dfn(e){switch(e){case"triggered":return"已触发";case"not_triggered":return"未触发";case"waiting_data":return"等待数据";default:return""}}function hfn(e){switch(e){case"pending_decision":return"待决定";case"executing":return"执行中";case"observing":return"观察中";case"reviewed":case"cancelled":return"已复盘";default:return"待决定"}}function ffn(e){return String(e.matter_id??e.id??"")}function pfn(e){const t=[];for(const r of e){const n=ffn(r);if(!n)continue;const i=r.proposal&&typeof r.proposal=="object"?r.proposal:null,a=typeof(i==null?void 0:i.action)=="string"&&i.action||typeof(i==null?void 0:i.content)=="string"&&i.content||typeof(i==null?void 0:i.summary)=="string"&&i.summary||"查看事项方案";t.push({id:n,title:r.title||"未命名事项",sub:String(r.playbook_id||r.source_agent_suggestion_id||""),state:hfn(r.status),expert:r.expert_agent||"",summary:r.summary||"",action:a,result:r.review_conclusion||(r.status==="executing"?"等待执行回执":r.status==="observing"?`观察至 ${N7(r.observe_until)||"待定"}`:""),live:!0})}return t}function xAt(e){const t=i=>i.replace(/^盯住\s*/,"")||i,r=(e.topic||"").trim();if(r)return t(r);const n=(e.title||"").trim();return n?t(n):""}function i3e(e){const t=String(e.status||"").toLowerCase();return{product:xAt(e)||"盯住的事",paused:t==="paused",cancelled:t==="cancelled",watchId:e.watch_id,pendingConfirm:t==="pending_confirm",topic:e.topic||"",originalText:e.original_text??void 0}}function mfn(e,t,r,n){var u,d,h,f,p,m,g,v;const i=(e.object_candidates??[]).map(y=>typeof y=="string"?y:(y==null?void 0:y.name)??"").filter(y=>!!y),a=(e.task??((u=e.proposal)==null?void 0:u.task)??((h=(d=e.proposal)==null?void 0:d.check_spec)==null?void 0:h.topic)??"").trim(),s=((f=e.proposal)==null?void 0:f.display)??null,o=((s==null?void 0:s.lines)??[]).filter(y=>typeof y=="string"&&!!y.trim()),l=((s==null?void 0:s.warnings)??[]).filter(y=>typeof y=="string"&&!!y.trim());return{product:i[0]??(r&&n?n.product:null)??(e.title||"").trim()??null,task:a||t,originalText:(e.original_text??"").trim()||void 0,scheduleType:e.schedule_type??((m=(p=e.proposal)==null?void 0:p.schedule)==null?void 0:m.schedule_type)??"",scheduleValue:e.schedule??((v=(g=e.proposal)==null?void 0:g.schedule)==null?void 0:v.schedule_value)??"",displayLines:o.length?o:void 0,displayWarnings:l.length?l:void 0,notifyText:(s==null?void 0:s.notify_text)??void 0,candidates:i.length?i:void 0}}function gfn(e){if(!e)return"";const t=[];return t.push(e.last_automation_at?`上次自动执行 ${yAt(e.last_automation_at)}`:"尚无自动执行记录"),typeof e.attention_count=="number"&&e.attention_count>0&&t.push(`${e.attention_count} 项有更新`),t.join(" · ")}const vfn={enterprise_rule:"企业规则",position_policy:"岗位策略",personal_pref:"个人偏好",product_knowledge:"商品知识",action_experience:"动作经验"},yfn={draft:"草稿",in_review:"待审核",reviewing:"待审核",pending:"待审核",rejected:"已驳回",active:"已生效",confirmed:"已生效",retired:"已撤回"};function bfn(e){return e.map((t,r)=>{const n=String(t.category||t.ktype||""),i=t.content_md||t.content||"",a=Number(t.doc_id??t.id);return{key:String(t.doc_id??t.id??`k-${r}`),docId:Number.isSafeInteger(a)&&a>0?a:null,label:t.category_label||vfn[n]||n||"知识素材",title:t.title||"",titleAuto:t.title_auto===!0,meta:[t.scope_label||(t.owner_type==="global"?"全局":t.owner_type||""),t.status_label||yfn[String(t.status||"").toLowerCase()]||(t.status?String(t.status):""),N7(t.updated_at||t.created_at)].filter(Boolean).join(" · "),body:i,status:t.status?String(t.status):""}})}function Afn(e){if(!e)return null;const t=String(e.persona||""),r=t.includes("管理员")?"企业管理员":t.includes("负责人")?"经营负责人":"广告运营",n=e.permissions&&typeof e.permissions=="object"?e.permissions:null,i=n==null?void 0:n.can_view,a=[];if(typeof e.business_scope=="string"&&e.business_scope)a.push(e.business_scope);else if(e.business_scope&&typeof e.business_scope=="object")for(const[s,o]of Object.entries(e.business_scope)){const l=Vx(o,4);l&&a.push(`${s}:${l}`)}return{userId:e.user_id||"",name:e.name||"(未命名)",personaText:t||"未配置岗位",personaKey:r,configured:e.configured!==!1,scopeLines:a,duty:e.duty||"",dutySource:e.duty_source||"",goals:e.goals||"",canViewText:typeof i=="string"?i:i&&typeof i=="object"?Object.entries(i).map(([s,o])=>`${s}:${Vx(o,4)}`).filter(s=>s.length>0&&!s.endsWith(":")).join(";"):"",canActText:Vx(n==null?void 0:n.can_act,4),needsApprovalText:Vx(n==null?void 0:n.needs_approval,4),auto:(n==null?void 0:n.auto_execute)===!0}}function xfn(e){return e.map(t=>({userId:String(t.user_id||""),name:t.name||t.username||"成员",role:t.persona||"",scope:typeof t.business_scope=="string"?t.business_scope:t.business_scope&&typeof t.business_scope=="object"?Object.entries(t.business_scope).map(([r,n])=>`${r} ${Vx(n,3)}`).filter(r=>!r.endsWith(" ")).join(" · "):t.duty||"",configured:t.configured!==!1}))}const Efn={"tool/catalog":"盘点可用数据","tool/selected":"选定取数工具","tool/called":"调用工具取数","tool/result":"解析返回结果","tool/parallel-batch":"并行批量取数","tool/failure-route-hint":"异常换路重试","tool/cached-hit":"命中缓存,直接复用","query/empty":"查询无结果","cognition/ended":"本轮收口"},Ifn={understand:"理解问题,拆解目标",plan:"规划调查路径",execute:"执行调查",verify:"核对结论",synthesize:"汇总结论",summarize:"汇总结论",report:"整理输出",done:"收尾"};function Cfn(e){const t=e.trim();if(!t)return"";const r=Efn[t];if(r)return r;const n=t.indexOf("/");return n>0&&/^(tool|phase|query)$/.test(t.slice(0,n))?t.slice(n+1).replace(/[-_]+/g," ").trim():t}function Sfn(e){const t=e.trim();return t?Ifn[t]??t:""}function a3e(e){const t=(e??"").trim();if(!t)return null;const r=t.includes("T")?t:t.replace(" ","T"),n=Date.parse(r);return Number.isFinite(n)?n:null}function wfn(e){const t=Array.isArray(e)?e:[];if(t.length===0)return null;const r=new Map;for(const n of t){const i=String((n==null?void 0:n.text)??"").replace(/\s+/g," ").trim();i&&r.set(`${n.type}\0${i}`,{name:i,status:n.status==="running"?"running":"done",note:"",ts:a3e(n.ts)??void 0})}return r.size===0?null:[...r.values()]}const EAt={待采纳:"pending",执行历史:"accepted",忽略历史:"dismissed"},Tfn=[["运营","5","ASIN 与店铺经营"],["广告","10","活动、预算与关键词"],["采购","18","需求、订单与交期"],["库存优化","5","缺货、积压与去化"]],IAt={广告运营:{name:"张三",goal:"在既定预算内改善投放效率,保护新品测试窗口",data:"广告表现、订单与商品基础信息",approval:"增加总预算 → 李雯 · 经营负责人"},经营负责人:{name:"李雯",goal:"提高新品成功率,改善老品贡献利润",data:"负责范围内的销售、广告、成本与利润",approval:"超出季度预算 → 企业负责人"},企业管理员:{name:"陈敏",goal:"维护岗位、业务归属与授权记录",data:"成员、岗位、数据连接状态;不默认开放经营数据",approval:"经营规则变更 → 经营负责人"}};function Rfn(e,t){return e==="广告运营"?t.scope:e==="经营负责人"?"德国、美国站 · 店铺 A / B · 家居品类":"组织与账号配置 · 无业务数据授权"}function kfn(e,t){return e==="广告运营"?t.action:e==="经营负责人"?"经营方案审批、预算分配与团队分工":"维护成员授权,保存变更记录"}function Mfn(){return[{id:1,title:"老品利润改善",sub:"6 个活动 · 24 个关键词",state:"待决定",expert:"广告",summary:"广告花费上升,利润承压。建议先降低低效词竞价,保留新品测试词。",action:"24 个关键词竞价降低 10%",result:"生效 72 小时后首次检查;归因窗口成熟后评价利润与订单变化。"},{id:2,title:"采购交期异常",sub:"3 笔采购单",state:"待决定",expert:"采购",summary:"供应商承诺与物流预计相差 5–8 天。我已整理冲突记录,需要采购负责人核实。",action:"发起交期核实任务",result:"收到新交期后重新测算缺货风险。"},{id:3,title:"夏季新品验证",sub:"4 个新品 ASIN",state:"观察中",expert:"运营",summary:"转化数据尚未成熟,暂不判定新品失败。维持已批准的测试预算。",action:"继续观察至周五",result:"周五检查转化、投入和库存保障。"},{id:4,title:"日常广告预算优化",sub:"16 个活动",state:"执行中",expert:"广告",summary:"在既有授权内调整预算分配,已完成 11 个活动,其余 5 个等待回执。",action:"核对执行回执",result:"回执齐全后开始效果观察。"},{id:5,title:"上一轮竞价调整复盘",sub:"12 个活动",state:"已复盘",expert:"广告",summary:"8 个活动达到目标,2 个无明显改善,2 个受促销影响,暂不归因。",action:"查看效果与经验",result:"有效动作记录为候选经验;无效动作进入策略重审。"}]}function Nfn(){return[{id:1,group:"广告",agent:"关键词竞价数字人",object:"E58012005 自动",text:"24 个低效关键词竞价降低 10%,保留新品测试词",state:"待采纳",created:"2026-09-28",handled:"",result:"等待决定"},{id:2,group:"采购",agent:"交期跟进数字人",object:"PO2026092803",text:"核实供应商交期与物流预计相差 5–8 天的原因",state:"待采纳",created:"2026-09-27",handled:"",result:"等待决定"},{id:3,group:"运营",agent:"新品验证数字人",object:"便携咖啡机 · B0DEMO0001",text:"延长新品验证窗口 3 天,维持原测试预算",state:"待采纳",created:"2026-09-26",handled:"",result:"等待决定"},{id:4,group:"广告",agent:"预算优化数字人",object:"16 个广告活动",text:"按转化表现重新分配日预算,总预算不变",state:"执行历史",created:"2026-09-25",handled:"2026-09-26",result:"执行中 · 11/16 已回执"},{id:5,group:"广告",agent:"关键词竞价数字人",object:"12 个广告活动",text:"低效关键词竞价降低 10%",state:"执行历史",created:"2026-09-22",handled:"2026-09-23",result:"已执行 · 8 项达标,2 项无改善,2 项暂无法归因"},{id:6,group:"库存优化",agent:"库存去化数字人",object:"SKU-DEMO-06",text:"调整积压商品促销方案并跟踪去化",state:"执行历史",created:"2026-09-24",handled:"2026-09-25",result:"执行失败 · 平台拒绝,待处理"},{id:7,group:"广告",agent:"关键词竞价数字人",object:"E5601101-Broad",text:"提高宽泛匹配竞价 10%",state:"忽略历史",created:"2026-09-24",handled:"2026-09-25",result:"忽略原因:新品测试期,暂不调整"},{id:8,group:"采购",agent:"交期跟进数字人",object:"PO2026092201",text:"追加补货以覆盖预计缺口",state:"忽略历史",created:"2026-09-22",handled:"2026-09-24",result:"忽略原因:到货计划已更新"}]}function zfn(){return[{id:1,source:"每日经营检查",title:"这周,先一起梳理新品的测试预算",why:"你负责德国站的新品投放,也希望控制试错成本。我建议先确认每款新品的测试目标,再看预算是否分散。",next:"先梳理测试目标与当前分配,与你确认优先级后,再调用广告专家形成动作。",state:"推荐",messages:[]},{id:2,source:"岗位关注建议",title:"销量没下降,老品利润也可能在流失",why:"结合广告运营岗位本周的关注主题,建议检查折扣、广告投入与贡献利润是否同步变化。先确定你有权查看的数据范围。",next:"先用广告花费与订单定位值得关注的商品;需要完整成本时,请经营负责人参与核实。",state:"推荐",messages:[]}]}function Ofn(){const e=(t,r,n)=>{const i=new Date;return i.setDate(i.getDate()-t),i.setHours(r,n,0,0),i.toISOString()};return[{id:1,title:"新品测试预算是否需要重新分配",scope:"德国站 · 店铺 A · 4 个新品",source:"小多每日经营检查",preview:"等你确认调查范围",status:"待确认",messages:[],confirmed:!1,updatedAt:e(0,10,12)},{id:2,title:"咖啡机销量变化",scope:"美国站 · 店铺 A · B0DEMO0001",source:"你交代的盯住",preview:"今天 09:00 · 销量下降达到提醒条件",status:"有更新",messages:[],confirmed:!0,updatedAt:e(0,9,0)},{id:3,title:"德国站新品验证",scope:"德国站 · 店铺 A · 新品测试",source:"你发起的讨论",preview:"上次停在:确认测试窗口",status:"",messages:[],confirmed:!0,updatedAt:e(1,16,40)}]}function Bfn(){return{role:"广告运营",scope:"德国站 · 店铺 A · 家居品类",action:"单次竞价调整 ≤ 10%",auto:!1}}function Pfn(){return{product:"咖啡机",metric:"销量",threshold:20,channel:"通过我的钉钉提醒我",paused:!1}}function s3e(e,t,r){const n=e.match(/(\d+(?:\.\d+)?)\s*[%%]/);return{product:/咖啡/.test(e)?"咖啡机":/收纳/.test(e)?"收纳包":t&&r?r.product:null,metric:/销售额/.test(e)?"销售额":t&&r?r.metric:"销量",threshold:n?Number(n[1]):t&&r?r.threshold:20,explicit:!!n,channel:/不要.*钉钉|仅站内|只在站内/.test(e)?"在站内提醒我":t&&r?r.channel:"通过我的钉钉提醒我"}}const Dfn=["建议编号","领域","数字人","业务对象","建议内容","状态","建议日期","处理日期","执行结果或忽略原因"];function Lfn(e){return`\uFEFF${[Dfn,...e.map(n=>[String(n.id),n.group,n.agent,n.object,n.text,n.state,n.created,n.handled,n.result])].map(n=>n.map(i=>`"${String(i).replace(/"/g,'""')}"`).join(",")).join(`\r
|
|
787
787
|
`)}`}function Vfn(e,t,r){return`专家建议-${e}-${t||"不限"}-${r||"不限"}.csv`}function Ffn(e){return{mode:e,active:!1,loading:!1,sendPending:!1,error:"",conversationsError:"",suggestionsError:"",notice:"",statusLine:"",statusRaw:null,conversationRows:[],turns:{},turnsLoading:null,cards:{},stream:null,runs:{},lastRunIds:{},sendNotices:{},watchRows:[],watchRowsHasMore:!1,watchDetail:null,watchDeleteTarget:null,conversationDeleteTarget:null,conversationRenameTarget:null,watchChecks:[],watchChecksHasMore:!1,recommendationsHasMore:!1,watchParsed:null,suggestionTaskRows:[],adviceRows:[],adviceTotal:0,adviceCounts:{pending:0,accepted:0,dismissed:0},adviceDateFrom:"",adviceDateTo:"",adoptedMarks:{},matterRows:[],agentGroups:null,groupOptions:[],me:null,meRaw:null,members:[],memberTarget:"",knowledgeCards:[],workspaceMeEdit:!1,knowledgeWithdrawTarget:null}}function jfn(e=!1){return{page:"home",pageBack:null,domain:"",current:e?"":1,note:"",jobs:e?[]:Mfn(),conversations:[],chatSession:0,scopeChoice:"自动调用专家",focusRequest:null,advice:e?[]:Nfn(),adviceTab:"待采纳",advicePage:1,advicePageSize:10,agentFilter:"",dateFrom:e?"":"2026-09-21",dateTo:e?"":"2026-09-28",exportNote:"",exportCsv:"",watchStage:"input",watchText:"",watchDraft:"",watchEdit:!1,watchProposal:null,watchSaved:e?null:Pfn(),recommendations:e?[]:zfn(),recActive:e?"":1,homeNotice:"",enterpriseTab:"业务",persona:"广告运营",memberEdit:!1,enterpriseNotice:"",permission:Bfn(),chats12:e?[]:Ofn(),chat12:e?"":1,revise12:!1,live:Ffn(e)}}function qfn(e){return e==="home"||e==="watch"||e==="recommendation"?"home":e==="work"?"work":e==="conversation12"?"history":e==="company"?"company":null}const CAt=new Set(["home","work","company","conversation12"]),Qfn=new Set(["watch","recommendation","detail","chat"]);function Yfn(e){return Qfn.has(e)}function NS(e){return CAt.has(e.page)?e.page:e.pageBack}function Ym(e,t){if(!e.live.mode)return!1;if(e.live.sendPending||typeof t=="string"&&e.live.runs[t])return!0;const r=e.live.stream;return!r||r.status!=="streaming"?!1:t===void 0?!0:t===null?r.conversationId===null:r.conversationId===t}function o3e(e,t){const r=e.live.stream;if(r&&r.status==="streaming"&&r.conversationId===t)return r.stopping?"stopping":"running";const n=e.live.runs[t];return n?n.stopping?"stopping":"running":null}function Gfn(e,t){if(e.status!=="done"||!(t!=null&&t.length))return!1;if(e.runId){if(t.some(n=>n.role!=="user"&&String(n.run_id??"")===e.runId))return!0;if(e.recovered)return!1}const r=e.question.trim();return r?t.some(n=>n.role==="user"&&n.content.trim()===r):!1}function l3e(e,t=e.adviceTab){const{domain:r,agentFilter:n,dateFrom:i,dateTo:a}=e;return e.advice.filter(s=>s.state===t&&(!r||s.group===r||s.groupKey===r)&&(!n||s.agent===n||s.agentId!=null&&String(s.agentId)===n)&&(!i||(t==="待采纳"?s.created:s.handled)>=i)&&(!a||(t==="待采纳"?s.created:s.handled)<=a))}function Wfn(e){return[...new Set(e.advice.filter(t=>!e.domain||t.group===e.domain||t.groupKey===e.domain).map(t=>t.agent))]}function Ufn(e){var t;if(e.live.mode){const r=((t=e.live.agentGroups)==null?void 0:t.digital_humans)??[],n=new Map;for(const i of r){const a=(i.name||"").trim();if(!a)continue;const s=(i.service_target??"").trim()||"未分组",o=n.get(s)??[];o.push({value:String(i.agent_id??"")||a,label:a}),n.set(s,o)}return[{value:"",label:"全部数字人"},...[...n.entries()].map(([i,a])=>({label:i,options:a}))]}return[{value:"",label:"全部数字人"},...Wfn(e).map(r=>({value:r,label:r}))]}function Zfn(e){const t=l3e(e);return{csv:Lfn(t),filename:Vfn(e.adviceTab,e.dateFrom,e.dateTo),count:t.length}}function SAt(e){return e.chats12.find(t=>t.id===e.chat12)??e.chats12[0]}function c3e(e,t,r){return e.chats12.map(n=>n.id===t?{...n,...r}:n)}function wAt(e,t){return{id:e,title:t||"新会话",scope:"业务范围待明确",source:"你发起的讨论",preview:"说说你希望推进什么",status:"",messages:[],confirmed:!0,live:!0}}function Hfn(e,t){var r,n,i,a,s,o,l,u,d,h,f,p,m;switch(t.type){case"nav/home":return{...e,page:"home",pageBack:null,domain:"",note:""};case"nav/work":return{...e,page:"work",pageBack:null,domain:"",note:""};case"nav/company":return{...e,page:"company",pageBack:null,domain:"",note:""};case"nav/history":return{...e,page:"conversation12",pageBack:null,domain:"",note:""};case"nav/back":{const g=e.pageBack&&CAt.has(e.pageBack)?e.pageBack:"home";return{...e,page:g,pageBack:null,domain:"",note:""}}case"job/open":return{...e,current:t.id,page:"detail",pageBack:NS(e),note:""};case"job/approve":return{...e,jobs:e.jobs.map(g=>g.id===e.current?{...g,state:"执行中"}:g),note:"模拟交办成功。执行状态与效果结论将分别追踪。"};case"job/modify":return{...e,note:"请在下方补充调整要求,本轮要求不会自动成为企业长期偏好。",focusRequest:{target:"w6",token:Date.now()}};case"scope/change":return{...e,scopeChoice:t.value};case"send":{const g=t.text??t.inputValue;if(/盯住|盯着|持续关注/.test(g)){const A=s3e(g,!1,e.watchSaved);return{...e,page:"watch",pageBack:NS(e),watchEdit:!1,watchText:"",watchStage:A.product?"confirm":"choose",watchDraft:g,watchProposal:A}}const v=g.trim();if(!v)return{...e,focusRequest:{target:"w6",token:Date.now()}};const y={id:Date.now(),session:e.chatSession,text:v,scope:e.scopeChoice||"自动调用专家",job:e.page==="detail"?e.current:null};return{...e,conversations:[...e.conversations,y],page:e.page==="detail"?e.page:"chat",pageBack:NS(e)}}case"advice/tab":return{...e,adviceTab:t.tab,advicePage:1,exportNote:""};case"advice/domain":return{...e,domain:t.domain,agentFilter:"",advicePage:1,exportNote:""};case"advice/filter":{const g=t.key==="from"?{dateFrom:t.value}:t.key==="to"?{dateTo:t.value}:{agentFilter:t.value};return{...e,...g,advicePage:1,exportNote:""}}case"advice/page":return{...e,advicePage:t.page,advicePageSize:t.size};case"advice/adopt":return{...e,advice:e.advice.map(g=>g.id===t.id?{...g,state:"执行历史",handled:"2026-09-28",result:"待执行 · 已采纳,等待回执"}:g),exportNote:""};case"advice/ignore":return{...e,advice:e.advice.map(g=>g.id===t.id?{...g,state:"忽略历史",handled:"2026-09-28",result:"忽略原因:用户手动忽略"}:g),exportNote:""};case"advice/export":return{...e,exportCsv:t.csv,exportNote:t.note};case"watch/new":return{...e,page:"watch",pageBack:NS(e),watchStage:"input",watchText:"",watchDraft:"",watchEdit:!1};case"watch/view":return{...e,page:"watch",pageBack:NS(e),watchStage:"saved"};case"watch/draft":return{...e,watchDraft:t.value};case"watch/propose":{const g=e.watchDraft.trim();if(!g)return e;const v=s3e(g,e.watchEdit,e.watchSaved);return{...e,watchText:g,watchProposal:v,watchStage:v.product?"confirm":"choose"}}case"watch/chooseProduct":return e.watchStage!=="choose"||!e.watchProposal?e:{...e,watchProposal:{...e.watchProposal,product:t.product},watchStage:"confirm"};case"watch/confirm":{const g=e.watchProposal;if(!g||!(g.product||g.task))return e;const v=e.watchSaved,y={product:g.product??(v==null?void 0:v.product)??"盯住的事",metric:g.metric??(v==null?void 0:v.metric),threshold:g.threshold??(v==null?void 0:v.threshold),channel:g.channel??(v==null?void 0:v.channel),paused:e.watchEdit&&v?v.paused:!1,watchId:v==null?void 0:v.watchId,pendingConfirm:v==null?void 0:v.pendingConfirm,topic:g.task||e.watchText||(v==null?void 0:v.topic),originalText:g.originalText??(v==null?void 0:v.originalText),notifyText:g.notifyText??(v==null?void 0:v.notifyText)};return{...e,watchSaved:y,watchStage:"saved"}}case"watch/revise":return{...e,watchStage:"input"};case"watch/edit":return{...e,watchEdit:!0,watchStage:"input",watchDraft:"",watchText:""};case"watch/pause":return e.watchSaved?{...e,watchSaved:{...e.watchSaved,paused:!e.watchSaved.paused}}:e;case"watch/requestDelete":return{...e,live:{...e.live,watchDeleteTarget:t.watchId}};case"watch/cancelDelete":return{...e,live:{...e.live,watchDeleteTarget:null}};case"conversation/requestDelete":return{...e,live:{...e.live,conversationDeleteTarget:t.id}};case"conversation/cancelDelete":return{...e,live:{...e.live,conversationDeleteTarget:null}};case"conversation/requestRename":return{...e,live:{...e.live,conversationRenameTarget:t.id}};case"conversation/cancelRename":return{...e,live:{...e.live,conversationRenameTarget:null}};case"watch/delete":return{...e,live:{...e.live,watchDeleteTarget:null}};case"knowledge/requestWithdraw":return{...e,live:{...e.live,knowledgeWithdrawTarget:t.docId}};case"knowledge/cancelWithdraw":return{...e,live:{...e.live,knowledgeWithdrawTarget:null}};case"knowledge/withdraw":return{...e,live:{...e.live,knowledgeWithdrawTarget:null}};case"workspace/me/edit":return{...e,live:{...e.live,workspaceMeEdit:!0}};case"workspace/me/cancelEdit":return{...e,live:{...e.live,workspaceMeEdit:!1}};case"workspace/me/save":return{...e,live:{...e.live,workspaceMeEdit:!1}};case"workspace/me/permission/save":return e;case"watch/select":{const g=e.live.watchRows.find(v=>v.watch_id===t.watchId);return g?{...e,page:"watch",pageBack:NS(e),watchStage:"saved",watchEdit:!1,watchSaved:i3e(g)}:e}case"rec/open":return{...e,recActive:t.id,recommendations:e.recommendations.map(g=>g.id===t.id&&g.state==="待执行"?{...g,state:"正在推进"}:g),page:"recommendation",pageBack:NS(e)};case"rec/run":return{...e,recommendations:e.recommendations.map(g=>g.id===t.id&&(g.state==="待执行"||g.state==="推荐")?{...g,state:"正在推进"}:g)};case"rec/pause":return{...e,recommendations:e.recommendations.map(g=>g.id===t.id?{...g,state:g.state==="已暂停"?"持续关注":"已暂停",status:g.state==="已暂停"?"active":"paused"}:g),homeNotice:((r=e.recommendations.find(g=>g.id===t.id))==null?void 0:r.state)==="已暂停"?"已恢复这条建议。":"已暂停这条建议;历史保留。"};case"rec/cancel":return{...e,recommendations:e.recommendations.filter(g=>g.id!==t.id),recActive:e.recActive===t.id?((n=e.recommendations.find(g=>g.id!==t.id))==null?void 0:n.id)??"":e.recActive,homeNotice:"已关闭这条建议;同主题不会再自动出现。"};case"rec/select":return{...e,recActive:t.id};case"rec/send":{const g=t.value.trim();return g?{...e,recommendations:e.recommendations.map(v=>v.id===e.recActive?{...v,messages:[...v.messages,g]}:v)}:e}case"ent/tab":return{...e,enterpriseTab:t.tab,memberEdit:!1,enterpriseNotice:""};case"ent/member":{const g=!!t.memberId&&t.memberId!==e.live.memberTarget;return e.memberEdit&&!g?{...e,memberEdit:!1}:{...e,memberEdit:!0,live:t.memberId?{...e.live,memberTarget:t.memberId}:e.live}}case"ent/back":return{...e,memberEdit:!1};case"ent/save":return e.persona!=="企业管理员"?e:{...e,permission:{...e.permission,scope:t.scope,action:t.action,auto:t.auto},enterpriseNotice:"模拟已保存 · 陈敏更新张三的授权范围与动作边界。",memberEdit:!1};case"ent/note":return t.value.trim()?{...e,enterpriseNotice:"已记录为待确认素材,尚未改变企业规则。"}:e;case"c12/select":{const g=e.chats12.find(y=>y.id===t.id),v=e.chats12.filter(y=>!y.draft||y.id===t.id);return{...e,chat12:t.id,chats12:g&&g.status==="有更新"?v.map(y=>y.id===t.id?{...y,status:""}:y):v,revise12:!1}}case"c12/new":{const g=e.chats12.find(A=>A.draft&&!A.messages.length);if(g)return{...e,chat12:g.id,page:"conversation12",revise12:!1};const v=Date.now();return{...e,chats12:[{id:v,title:"新会话",scope:"业务范围待明确",source:"你发起的讨论",preview:"说说你希望推进什么",status:"",messages:[],confirmed:!1,draft:!0},...e.chats12],chat12:v,page:"conversation12",revise12:!1}}case"c12/rename":return{...e,chats12:e.chats12.map(g=>g.id===t.id?{...g,title:t.title}:g)};case"c12/confirm":return{...e,chats12:c3e(e,e.chat12,{confirmed:!0,status:"",preview:"已确认范围 · 调查待开始"})};case"c12/revise":return{...e,revise12:!0,focusRequest:{target:"c12",token:Date.now()}};case"c12/send":{const g=t.value.trim();if(!g)return e;const v=SAt(e);return v?{...e,chats12:c3e(e,e.chat12,{messages:[...v.messages,g],title:v.title==="新会话"?g.slice(0,22):v.title,preview:`上次补充:${g.slice(0,22)}`}),revise12:!1}:e}case"c12/investigate":{const g=SAt(e);return g?{...e,chats12:c3e(e,e.chat12,{messages:[...g.messages,"先核实库存、流量与转化变化"],preview:"正在讨论:核实销量变化原因"})}:e}case"live/loading":return{...e,live:{...e.live,loading:t.value}};case"live/sendPending":return{...e,live:{...e.live,sendPending:t.value}};case"live/error":return{...e,live:{...e.live,error:t.message}};case"live/notice":return{...e,live:{...e.live,notice:t.text}};case"live/homeNotice":return{...e,homeNotice:t.text};case"live/dismiss":return{...e,live:{...e.live,error:"",notice:""}};case"live/cardUpsert":{const g=t.card;return!g||typeof g.card_id!="string"||!g.card_id?e:{...e,live:{...e.live,cards:{...e.live.cards,[g.card_id]:g}}}}case"live/cardsHydrate":{if(!Array.isArray(t.cards)||t.cards.length===0)return e;const g={...e.live.cards};for(const v of t.cards)v&&typeof v.card_id=="string"&&v.card_id&&(g[v.card_id]=v);return{...e,live:{...e.live,cards:g}}}case"live/hydrateConversations":{const g=tfn(t.rows),v=[...e.chats12.filter(A=>A.draft),...g],y=v.some(A=>A.id===e.chat12);return{...e,chats12:v,chat12:y?e.chat12:((i=v[0])==null?void 0:i.id)??"",live:{...e.live,active:!0,conversationRows:t.rows,conversationsError:""}}}case"live/conversationArchived":{const g=e.chats12.filter(v=>v.id!==t.id);return{...e,chats12:g,chat12:e.chat12===t.id?((a=g[0])==null?void 0:a.id)??"":e.chat12}}case"live/conversationRenamed":return{...e,chats12:e.chats12.map(g=>g.id===t.id?{...g,title:t.title}:g)};case"live/conversationsError":return{...e,live:{...e.live,conversationsError:t.message}};case"live/suggestionsError":return{...e,live:{...e.live,suggestionsError:t.message}};case"live/conversationUpsert":{const v=e.chats12.some(y=>y.id===t.conversationId)?e.chats12.map(y=>y.id===t.conversationId?{...y,status:""}:y):[wAt(t.conversationId,t.title),...e.chats12];return{...e,chats12:v,chat12:t.select?t.conversationId:e.chat12,page:t.select?"conversation12":e.page,revise12:t.select?!1:e.revise12,live:{...e.live,active:!0}}}case"live/draftBound":{const g=e.chats12.filter(A=>A.id!==t.draftId),y=g.some(A=>A.id===t.conversationId)?g.map(A=>A.id===t.conversationId?{...A,status:""}:A):[wAt(t.conversationId,t.title),...g];return{...e,chats12:y,chat12:t.conversationId,page:"conversation12",revise12:!1,live:{...e.live,active:!0}}}case"live/hydrateStatus":return{...e,live:{...e.live,active:!0,statusRaw:t.row,statusLine:gfn(t.row)}};case"live/hydrateWatches":{const g=e.watchSaved??(t.rows[0]?i3e(t.rows[0]):null),v=g!=null&&g.watchId?t.rows.find(A=>A.watch_id===g.watchId):void 0,y=v?i3e(v):g;return{...e,watchSaved:y,live:{...e.live,active:!0,watchRows:t.rows,watchRowsHasMore:t.hasMore}}}case"live/watchDetailLoaded":return{...e,live:{...e.live,active:!0,watchDetail:t.row}};case"live/watchChecksLoaded":return{...e,live:{...e.live,active:!0,watchChecks:t.rows,watchChecksHasMore:t.hasMore}};case"live/watchChecksAppend":return{...e,live:{...e.live,active:!0,watchChecks:[...e.live.watchChecks,...t.rows],watchChecksHasMore:t.hasMore}};case"live/hydrateSuggestionTasks":{const g=bAt(t.rows),v=g.some(y=>y.id===e.recActive);return{...e,recommendations:g,recActive:v?e.recActive:((s=g[0])==null?void 0:s.id)??"",live:{...e.live,active:!0,suggestionTaskRows:t.rows,suggestionsError:"",recommendationsHasMore:t.hasMore}}}case"live/appendSuggestionTasks":{const g=bAt(t.rows),v=new Set(e.recommendations.map(A=>A.id)),y=[...e.recommendations,...g.filter(A=>!v.has(A.id))];return{...e,recommendations:y,live:{...e.live,recommendationsHasMore:t.hasMore}}}case"live/appendWatches":{const g=new Set(e.live.watchRows.map(y=>y.watch_id)),v=[...e.live.watchRows,...t.rows.filter(y=>!g.has(y.watch_id))];return{...e,live:{...e.live,watchRows:v,watchRowsHasMore:t.hasMore}}}case"live/suggestionConversation":return{...e,recommendations:e.recommendations.map(g=>g.id===t.id?{...g,conversationId:t.conversationId}:g)};case"live/hydrateAdvice":{const g=new Map(e.live.groupOptions.map(v=>[v.key,v.label]));return{...e,advice:n3e(t.rows,g,e.live.adoptedMarks),live:{...e.live,active:!0,adviceRows:t.rows,adviceTotal:t.total,adviceDateFrom:t.dateFrom||e.live.adviceDateFrom,adviceDateTo:t.dateTo||e.live.adviceDateTo}}}case"live/hydrateAdviceCounts":return{...e,live:{...e.live,active:!0,adviceCounts:t.counts}};case"live/adopted":{const g=String(t.id),v={...e.live.adoptedMarks,[g]:{matterId:t.matterId,at:new Date().toISOString().slice(0,10)}},y=new Map(e.live.groupOptions.map(A=>[A.key,A.label]));return{...e,advice:n3e(e.live.adviceRows,y,v),exportNote:"",live:{...e.live,adoptedMarks:v,notice:t.matterId?`已采纳并立项:事项 ${t.matterId}`:"已采纳并立项。"}}}case"live/hydrateMatters":{const g=pfn(t.rows),v=g.some(y=>y.id===e.current);return{...e,jobs:g,current:v?e.current:((o=g[0])==null?void 0:o.id)??"",live:{...e.live,active:!0,matterRows:t.rows}}}case"live/matterDispatched":return{...e,jobs:e.jobs.map(g=>g.id===t.id?{...g,state:"执行中"}:g),note:"已交办 · 等待执行回执,效果将另行判定。"};case"live/hydrateGroups":{const{options:g,labels:v}=ufn(t.payload);return{...e,advice:e.live.adviceRows.length?n3e(e.live.adviceRows,v,e.live.adoptedMarks):e.advice,live:{...e.live,active:!0,agentGroups:t.payload,groupOptions:g}}}case"watch/confirmPending":{const g=e.live.watchRows.map(y=>y.watch_id===t.watchId?{...y,status:"active"}:y),v=e.watchSaved&&e.watchSaved.watchId===t.watchId?{...e.watchSaved,pendingConfirm:!1,paused:!1}:e.watchSaved;return{...e,watchSaved:v,live:{...e.live,watchRows:g,notice:"盯住已确认生效。"}}}case"watch/deleted":{const g=t.watchId,v=e.page==="watch"&&((l=e.watchSaved)==null?void 0:l.watchId)===g;return{...e,page:v?"home":e.page,pageBack:v?null:e.pageBack,watchSaved:((u=e.watchSaved)==null?void 0:u.watchId)===g?null:e.watchSaved,watchEdit:!1,live:{...e.live,watchRows:e.live.watchRows.filter(y=>y.watch_id!==g),watchDetail:((d=e.live.watchDetail)==null?void 0:d.watch_id)===g?null:e.live.watchDetail,watchDeleteTarget:null}}}case"live/hydrateWorkspaceMe":{const g=Afn(t.me);return g?{...e,persona:g.personaKey,permission:{role:g.personaText||e.permission.role,scope:g.scopeLines.join(" · ")||e.permission.scope,action:g.canActText||e.permission.action,auto:g.auto},live:{...e.live,active:!0,me:g,meRaw:t.me}}:{...e,live:{...e.live,active:!0,me:null,meRaw:t.me}}}case"live/hydrateMembers":{const g=xfn(t.rows);let v=e.live.memberTarget;if(!g.some(y=>y.userId&&y.userId===v)){const y=(h=e.live.me)==null?void 0:h.userId;v=((f=g.find(A=>A.userId&&A.userId===y))==null?void 0:f.userId)??((p=g[0])==null?void 0:p.userId)??""}return{...e,live:{...e.live,active:!0,members:g,memberTarget:v}}}case"live/mePermissionSaved":{const g=e.live.me;return g?{...e,live:{...e.live,me:{...g,canViewText:t.canViewText??g.canViewText,canActText:t.canActText??g.canActText,needsApprovalText:t.needsApprovalText??g.needsApprovalText}}}:e}case"live/permissionSaved":{const g=e.live.members.find(v=>v.userId===e.live.memberTarget)??e.live.members[0];return{...e,permission:{...e.permission,scope:t.scope,action:t.action,auto:t.auto},enterpriseNotice:`已保存 · ${(g==null?void 0:g.name)||"成员"}的授权范围与动作边界已更新。`,memberEdit:!1}}case"live/hydrateKnowledge":return{...e,live:{...e.live,active:!0,knowledgeCards:bfn(t.rows)}};case"live/watchParsed":{if(e.watchStage==="saved"&&((m=e.watchSaved)==null?void 0:m.topic)===t.text)return{...e,live:{...e.live,watchParsed:t.parsed}};const v=t.parsed?mfn(t.parsed,t.text,t.edit,t.saved):s3e(t.text,t.edit,t.saved);return{...e,watchText:t.text,watchProposal:v,watchStage:e.live.mode||v.product?"confirm":"choose",live:{...e.live,watchParsed:t.parsed}}}case"live/watchCreated":{const g={product:t.proposal.product??"盯住的事",paused:!1,watchId:t.watchId??void 0,pendingConfirm:!t.confirmed,topic:t.proposal.task||e.watchText,originalText:t.proposal.originalText,notifyText:t.proposal.notifyText};return{...e,watchSaved:g,watchStage:"saved",live:{...e.live,notice:t.confirmed?"盯住已创建并确认生效。":t.watchId?"盯住已创建,等待确认后生效。":"盯住已创建。"}}}case"live/exported":return{...e,exportCsv:t.csv,exportNote:t.note};case"live/streamStart":{const g=e.live.stream,v={...e.live.runs};g&&g.status==="streaming"&&g.conversationId&&g.conversationId!==t.conversationId&&(v[g.conversationId]={runId:g.runId,question:g.question,startedAt:g.startedAt,stopping:g.stopping});const y={...e.live.sendNotices};return t.conversationId&&(delete v[t.conversationId],t.recovered||delete y[t.conversationId]),{...e,page:t.surface==="detail"?"detail":t.surface==="c12"?"conversation12":t.surface==="chat"?"chat":e.page,live:{...e.live,runs:v,sendNotices:y,stream:{surface:t.surface,conversationId:t.conversationId,runId:t.runId??null,question:t.question,thinking:"",steps:[],facts:[],answer:"",status:"streaming",startedAt:t.startedAt??Date.now(),durationMs:null,slow:!1,error:"",stopping:!1,stopped:!1,recovered:t.recovered??!1,delivery:null}}}}case"live/streamBound":{const g=e.live.stream;if(!g)return e;const v=t.conversationId??g.conversationId,y={...e.live.runs};return v&&delete y[v],{...e,live:{...e.live,runs:y,stream:{...g,conversationId:v,runId:t.runId}}}}case"live/streamThinking":{const g=e.live.stream;return g?{...e,live:{...e.live,stream:{...g,thinking:Sfn(t.text),slow:!1}}}:e}case"live/streamStep":{const g=e.live.stream;if(!g)return e;const v=Cfn(t.step.name);if(!v)return e;const y={...t.step,name:v},A=g.steps.map(x=>x.name).lastIndexOf(y.name),b=A>=0?g.steps.map((x,C)=>C===A?{...x,...y}:x):[...g.steps,{...y,ts:Date.now()}];return{...e,live:{...e.live,stream:{...g,steps:b,slow:!1}}}}case"live/streamSlow":{const g=e.live.stream;return!g||g.status!=="streaming"?e:{...e,live:{...e.live,stream:{...g,slow:t.value}}}}case"live/streamDone":{const g=e.live.stream;return g?{...e,live:{...e.live,runs:dee(e.live.runs,g.conversationId),stream:{...g,status:"done",answer:t.answer,facts:t.facts,durationMs:g.durationMs??Date.now()-g.startedAt,slow:!1,stopping:!1,stopped:t.stopped??!1,delivery:t.delivery??null}}}:e}case"live/streamError":{const g=e.live.stream;return g?{...e,live:{...e.live,runs:dee(e.live.runs,g.conversationId),stream:{...g,status:"error",error:t.message,durationMs:g.durationMs??Date.now()-g.startedAt,slow:!1,stopping:!1}}}:{...e,live:{...e.live,error:t.message}}}case"live/streamStopping":{const g=e.live.stream,v=g&&g.status==="streaming"&&g.conversationId===t.conversationId?g:null,y=e.live.runs[t.conversationId];return!v&&!y?e:{...e,live:{...e.live,stream:v?{...v,stopping:t.value}:g,runs:y?{...e.live.runs,[t.conversationId]:{...y,stopping:t.value}}:e.live.runs}}}case"live/streamDiscard":{const g=e.live.stream;return!g||g.status!=="streaming"||g.conversationId!==t.conversationId?e:{...e,live:{...e.live,stream:null}}}case"live/runSettled":return e.live.runs[t.conversationId]?{...e,live:{...e.live,runs:dee(e.live.runs,t.conversationId)}}:e;case"live/runRegister":{const g=e.live.stream;if(g&&g.status==="streaming"&&g.conversationId===t.conversationId)return e;const v=e.live.runs[t.conversationId];return{...e,live:{...e.live,runs:{...e.live.runs,[t.conversationId]:{runId:t.runId,question:t.question??(v==null?void 0:v.question)??"",startedAt:t.startedAt??(v==null?void 0:v.startedAt)??Date.now(),stopping:(v==null?void 0:v.stopping)??!1}}}}}case"live/sendNotice":return{...e,live:{...e.live,sendNotices:{...e.live.sendNotices,[t.conversationId]:t.text}}};case"live/sendNoticeClear":return t.conversationId in e.live.sendNotices?{...e,live:{...e.live,sendNotices:dee(e.live.sendNotices,t.conversationId)}}:e;case"live/turnsLoading":return{...e,live:{...e.live,turnsLoading:t.conversationId}};case"live/turnsLoaded":return{...e,live:{...e.live,turnsLoading:e.live.turnsLoading===t.conversationId?null:e.live.turnsLoading,lastRunIds:t.lastRunId===void 0?e.live.lastRunIds:{...e.live.lastRunIds,[t.conversationId]:t.lastRunId},turns:{...e.live.turns,[t.conversationId]:[...t.turns].sort((g,v)=>g.turn_no-v.turn_no||(g.role===v.role?0:g.role==="user"?-1:1))}}};default:return e}}function dee(e,t){if(!t||!(t in e))return e;const r={...e};return delete r[t],r}const hee=[0,1500,4e3];async function u3e(e){const{data:t}=await Dtt({conversation_id:e,limit:200});return qwe(t).filter(r=>!!r.artifact_id)}function Kfn(e){const t=new Map;for(const r of e??[]){const n=r.run_id?String(r.run_id):"";if(!n)continue;const i=t.get(n);i?i.push(r):t.set(n,[r])}return t}function Jfn(e){return e.oss_url?e.oss_url:`${Gi()}/api/v1/cognitive/artifacts/${e.artifact_id}/download`}function Xfn(e,t,r,n){if(!r)return;let i=0,a=!1;const s=async()=>{if(!a){try{if(await e.refetchQueries({queryKey:t,exact:!0}),(e.getQueryData(t)??[]).some(u=>n?u.run_id&&String(u.run_id)===String(n)||u.kind==="data":!!u.artifact_id)||i>=hee.length-1){a=!0;return}}catch{if(i>=hee.length-1){a=!0;return}}i+=1,setTimeout(s,hee[i])}};setTimeout(s,hee[0])}function $u(e){const t=(e==null?void 0:e.data)??e;return t==null||typeof t!="object"?null:t}function Fx(e,t=[]){const r=(e==null?void 0:e.data)??e;if(Array.isArray(r))return r;for(const n of[...t,"items","list","rows","data"]){const i=r==null?void 0:r[n];if(Array.isArray(i))return i}if(r&&typeof r=="object"){for(const n of Object.values(r))if(Array.isArray(n))return n}return[]}function d3e(e,t){const r=(e==null?void 0:e.data)??e,n=r==null?void 0:r.items;return Array.isArray(n)?n:t}function h3e(e){const t=(e==null?void 0:e.data)??e;return!!(t!=null&&t.has_more)}function Xi(e){if(!e)return"请求失败";const t=e,r=(t==null?void 0:t.data)??t;return typeof(r==null?void 0:r.message)=="string"&&r.message?r.message:typeof(t==null?void 0:t.message)=="string"&&t.message?t.message:t!=null&&t.status?`HTTP ${t.status}`:"请求失败"}function _fn(e){var i,a,s,o;const t=e;if(((t==null?void 0:t.status)??((i=t==null?void 0:t.data)==null?void 0:i.code)??((a=t==null?void 0:t.data)==null?void 0:a.status)??((s=t==null?void 0:t.response)==null?void 0:s.status))===409)return!0;const n=String((t==null?void 0:t.message)??((o=t==null?void 0:t.data)==null?void 0:o.message)??"");return/409|conflict|已确认过|重复确认/.test(n)}function $fn(e){var n,i,a;const t=e;return((t==null?void 0:t.status)??((n=t==null?void 0:t.data)==null?void 0:n.code)??((i=t==null?void 0:t.data)==null?void 0:i.status)??((a=t==null?void 0:t.response)==null?void 0:a.status))===429}async function epn(e=50){const t=await E9r({limit:e});return Fx(t,["conversations"])}async function f3e(e){const t=await C9r(e,{});return $u(t)}async function TAt(e={}){const t=await M9r({...e,limit:e.limit??10});return{items:d3e(t,Fx(t,["watches"])),has_more:h3e(t)}}async function tpn(e){const t=await z9r(e,{});return $u(t)}async function RAt(e,t={}){const r=await P9r(e,{limit:t.limit??50,...t.beforeId!=null?{before_id:Number(t.beforeId)}:{}});return{items:d3e(r,Fx(r,["checks"])),has_more:h3e(r)}}async function rpn(){const e=await W9r({});return $u(e)}async function npn(e=10){const t=await U9r({limit:e}),r=$u(t)??{};return{items:Array.isArray(r.items)?r.items:[],note:typeof r.note=="string"?r.note:""}}async function kAt(e={}){const t=await Z9r({...e,limit:e.limit??10});return{items:d3e(t,Fx(t,["tasks"])),has_more:h3e(t)}}async function ipn(){const e=await j9r();return $u(e)}async function fee(e){const t=await q9r({status:e.status,limit:e.limit,offset:e.offset,business_type:e.businessType||void 0,group_code:e.groupCode||void 0,agent_id:e.agentId||void 0,agent_code:e.agentCode||void 0,created_from:e.createdFrom||void 0,created_to:e.createdTo||void 0,range:e.range}),r=(t==null?void 0:t.data)??t,n=Array.isArray(r==null?void 0:r.items)?r.items:[];return{items:n,total:Number((r==null?void 0:r.total)??n.length),has_more:!!(r!=null&&r.has_more),dateFrom:String((r==null?void 0:r.date_from)??""),dateTo:String((r==null?void 0:r.date_to)??"")}}async function apn(){const e=await _9r({});return $u(e)}async function spn(){const e=await tzr({});return Fx(e,["members"])}async function opn(e=50){const t=await Y9r({limit:e});return Fx(t,["matters"])}async function lpn(e={}){const t=await p9r({limit:e.limit??50,status:e.status});return Fx(t,["items","knowledge","docs"])}async function cpn(e){const t=await A9r(e);return $u(t)}async function upn(e){const t=await I9r(e);return $u(t)}async function dpn(e){await k9r(e,{})}async function hpn(e){await T9r(e,{})}async function fpn(e){const t=await y9r(e);return $u(t)}async function ppn(e,t){await S9r(e,{},{title:t})}async function mpn(e,t){const r=await F9r({},{text:e});return $u(r)}async function gpn(e){const t=await N9r(e);return $u(t)}async function MAt(e){await L9r(e,{})}async function vpn(e){await D9r(e,{})}async function ypn(e){await V9r(e,{})}async function bpn(e){await O9r(e,{})}async function Apn(e,t){await B9r(e,{},t)}async function xpn(e){const t=typeof e=="number"?e:Number(e);if(!Number.isFinite(t))throw new Error("建议缺少数字主键,无法采纳");const r=await Q9r(t,{});return $u(r)}async function Epn(e){await H9r(e,{})}async function Ipn(e){await K9r(e,{})}async function Cpn(e){await J9r(e,{})}async function NAt(e){const t=await X9r(e,{});return $u(t)}async function Spn(e){await izr({},e)}async function wpn(e){await x9r(e)}async function Tpn(e){await $9r({},e)}async function Rpn(e){await ezr({},e)}async function kpn(e=50){const t=await nzr({limit:e});return Fx(t,["items","history","records"])}async function Mpn(e,t={}){await G9r(e,{},t)}async function Npn(e,t){await rzr(e,{},t)}async function zpn(e){try{const t=await Ht.download({method:"GET",url:"/api/v1/cognitive/agent-suggestions/export",params:e,requestType:"json"});return{blob:t,text:await t.text()}}catch(t){const r=t==null?void 0:t.data;if(r instanceof Blob){const n=await r.text().then(i=>{try{return JSON.parse(i)}catch{return null}},()=>null);if(typeof(n==null?void 0:n.message)=="string"&&n.message)throw new Error(n.message)}throw t}}async function Opn(e){var i;const r=await g9r(e,{limit:200});return(Array.isArray((i=r==null?void 0:r.data)==null?void 0:i.items)?r.data.items:[]).filter(a=>!!a&&typeof a.card_id=="string"&&typeof a.shape=="string")}async function Bpn(e,t,r){return(await m9r(e,{},{action_id:t,text:r||"",channel:"web"})).data??{status:"duplicate"}}async function zAt(e,t){if(!e.body)throw new Error("No response body");const r=e.body.getReader(),n=new TextDecoder;let i="",a=null;const s=o=>{var u,d,h,f;const l=o.trim();if(!l||((u=t.onActivity)==null||u.call(t),l.startsWith(":")))return!1;if(l.startsWith("event:"))return a=l.slice(6).trim(),!1;if(l.startsWith("data:")&&a){const p=l.slice(5).trim(),m=((d=t.eventAliases)==null?void 0:d[a])??a;if(p==="[DONE]")return a=null,!0;try{const g=JSON.parse(p);m==="run_event"?(h=t.onRunEvent)==null||h.call(t,g):t.onFrame({type:m,data:g})}catch{}return a=null,((f=t.isTerminal)==null?void 0:f.call(t,m))??!1}return!1};for(;;){const{done:o,value:l}=await r.read();if(o)break;i+=n.decode(l,{stream:!0});const u=i.split(`
|
|
788
788
|
`);i=u.pop()??"";for(const d of u)if(s(d)){await r.cancel().catch(()=>{});return}}if(i+=n.decode(),i.trim()){for(const o of i.split(`
|
|
789
789
|
`))if(s(o)){await r.cancel().catch(()=>{});return}}}async function Ppn(e,t,r){const n=await fetch(`${Gi()}${e}`,{method:"POST",headers:{...fG(),Accept:"text/event-stream"},body:JSON.stringify(t),signal:r.signal});if(n.status===401&&DVe(`${Gi()}${e}`,!0)){VVe(),window.location.replace("/");return}if(!n.ok){const a=await n.json().catch(()=>null),s=new Error(typeof(a==null?void 0:a.message)=="string"&&a.message?a.message:`HTTP ${n.status}`);throw s.status=n.status,s}const i=n.headers.get("content-type")||"";if(!n.body||!i.includes("text/event-stream")){const a=await n.json().catch(()=>null);if(a&&typeof a=="object"){if(a.success===!1)throw new Error(a.message||"请求失败");r.onFrame({type:"complete",data:a.data??a});return}throw new Error("响应不是事件流")}await zAt(n,r)}async function Dpn(e,t){await Ppn("/api/v1/cognitive/ask/stream",e,t)}async function z7(e){const t=await v9r(e);return $u(t)}async function OAt(e){const t=await b9r(e);return $u(t)}async function BAt(e,t){const r=await fetch(`${Gi()}/api/v1/cognitive/runs/${e}/events/stream?after_seq=${t.afterSeq??0}`,{headers:{...fG(),Accept:"text/event-stream"},signal:t.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);await zAt(r,{...t,eventAliases:{run_event:"run_event"}})}const Us="wandox-cognitive",an={root:[Us],conversations:[Us,"conversations"],conversation:e=>[Us,"conversation",e],conversationArtifacts:e=>[Us,"conversation-artifacts",e],conversationFiles:e=>[Us,"conversation-files",e],conversationSources:e=>[Us,"conversation-sources",e],conversationFacts:e=>[Us,"conversation-facts",e],conversationCards:e=>[Us,"conversation-cards",e],status:[Us,"status"],homeFindings:[Us,"home-findings"],watches:[Us,"watches"],watchDetail:e=>[Us,"watch",e],watchChecks:e=>[Us,"watch-checks",e],suggestionTasks:[Us,"suggestion-tasks"],suggestionTask:e=>[Us,"suggestion-task",e],agentGroups:[Us,"agent-groups"],agentSuggestions:[Us,"agent-suggestions"],matters:[Us,"matters"],workspaceMe:[Us,"workspace-me"],workspaceMembers:[Us,"workspace-members"],permissionHistory:[Us,"permission-history"],knowledge:[Us,"knowledge"],knowledgeDetail:e=>[Us,"knowledge-detail",String(e)]};function Lpn(e){const t=e.trim();if(!t)return{businessType:void 0,groupCode:void 0};const r=t.indexOf(":");return r<0?{businessType:t,groupCode:void 0}:{businessType:t.slice(0,r),groupCode:t.slice(r+1)}}function Vpn(e,t,r,n=null,i){var W;const a=Ui({queryKey:an.conversations,queryFn:()=>epn(),enabled:e}),s=Ui({queryKey:an.status,queryFn:()=>rpn(),enabled:e,refetchInterval:6e4}),o=Ui({queryKey:an.watches,queryFn:()=>TAt(),enabled:e,refetchInterval:3e4}),l=Ui({queryKey:an.suggestionTasks,queryFn:()=>kAt(),enabled:e}),u=Ui({queryKey:an.agentGroups,queryFn:()=>ipn(),enabled:e}),d=i??{tab:"待采纳",domain:"",agentFilter:"",dateFrom:"",dateTo:"",page:1,pageSize:10},h=Lpn(d.domain),f=Ui({queryKey:[...an.agentSuggestions,d.tab,d.domain,d.agentFilter,d.dateFrom,d.dateTo,d.page,d.pageSize],queryFn:()=>fee({status:EAt[d.tab]??"pending",limit:d.pageSize,offset:(d.page-1)*d.pageSize,businessType:h.businessType,groupCode:h.groupCode,agentId:d.agentFilter||void 0,createdFrom:d.dateFrom||void 0,createdTo:d.dateTo||void 0}),enabled:i!==void 0,placeholderData:Z=>Z}),p=Ui({queryKey:[...an.agentSuggestions,"counts",d.domain,d.agentFilter,d.dateFrom,d.dateTo],queryFn:async()=>{const Z={limit:1,offset:0,businessType:h.businessType,groupCode:h.groupCode,agentId:d.agentFilter||void 0,createdFrom:d.dateFrom||void 0,createdTo:d.dateTo||void 0},[H,K,J]=await Promise.all([fee({...Z,status:"pending"}),fee({...Z,status:"accepted"}),fee({...Z,status:"dismissed"})]);return{pending:H.total,accepted:K.total,dismissed:J.total}},enabled:i!==void 0,placeholderData:Z=>Z}),m=Ui({queryKey:an.matters,queryFn:()=>opn(),enabled:e}),g=Ui({queryKey:an.workspaceMe,queryFn:()=>apn(),enabled:e}),v=Ui({queryKey:an.workspaceMembers,queryFn:()=>spn(),enabled:e}),y=Ui({queryKey:an.knowledge,queryFn:()=>lpn(),enabled:e}),A=Ui({queryKey:an.conversation(r??"none"),queryFn:()=>f3e(r),enabled:!!r}),b=Ui({queryKey:an.conversationCards(r??"none"),queryFn:()=>Opn(r),enabled:!!r,staleTime:15e3});I.useEffect(()=>{const Z=b.data;Z&&Z.length>0&&t({type:"live/cardsHydrate",cards:Z})},[b.data,t]),Ui({queryKey:an.conversationArtifacts(r??"none"),queryFn:()=>u3e(r),enabled:!!r,staleTime:3e4});const x=Ui({queryKey:an.watchDetail(n??"none"),queryFn:()=>tpn(n),enabled:!!n}),C=Ui({queryKey:an.watchChecks(n??"none"),queryFn:()=>RAt(n),enabled:!!n}),w=a.data;I.useEffect(()=>{w&&t({type:"live/hydrateConversations",rows:w})},[w,t]);const S=s.data;I.useEffect(()=>{S&&t({type:"live/hydrateStatus",row:S})},[S,t]);const T=a.error;I.useEffect(()=>{T&&t({type:"live/conversationsError",message:Xi(T)})},[T,t]);const R=l.error;I.useEffect(()=>{R&&t({type:"live/suggestionsError",message:Xi(R)})},[R,t]);const M=o.data;I.useEffect(()=>{M&&t({type:"live/hydrateWatches",rows:M.items,hasMore:M.has_more})},[M,t]);const k=l.data;I.useEffect(()=>{k&&t({type:"live/hydrateSuggestionTasks",rows:k.items,hasMore:k.has_more})},[k,t]);const z=u.data;I.useEffect(()=>{z!==void 0&&t({type:"live/hydrateGroups",payload:z})},[z,t]);const O=f.data;I.useEffect(()=>{O&&t({type:"live/hydrateAdvice",rows:O.items,total:O.total,dateFrom:O.dateFrom,dateTo:O.dateTo})},[O,t]);const N=p.data;I.useEffect(()=>{N&&t({type:"live/hydrateAdviceCounts",counts:N})},[N,t]);const B=m.data;I.useEffect(()=>{B&&t({type:"live/hydrateMatters",rows:B})},[B,t]);const P=g.data;I.useEffect(()=>{P!==void 0&&t({type:"live/hydrateWorkspaceMe",me:P})},[P,t]);const D=v.data;I.useEffect(()=>{D&&t({type:"live/hydrateMembers",rows:D})},[D,t]);const L=y.data;I.useEffect(()=>{L&&t({type:"live/hydrateKnowledge",rows:L})},[L,t]);const V=A.data;I.useEffect(()=>{V&&t({type:"live/turnsLoaded",conversationId:V.conversation_id??r,turns:V.turns??[],lastRunId:typeof V.last_run_id=="string"&&V.last_run_id?V.last_run_id:null})},[V,r,t]);const F=A.isPending;I.useEffect(()=>{r&&F&&t({type:"live/turnsLoading",conversationId:r})},[F,r,t]);const j=x.data;I.useEffect(()=>{if(!n){t({type:"live/watchDetailLoaded",row:null});return}j!==void 0&&t({type:"live/watchDetailLoaded",row:j})},[e,n,j,t]);const G=C.data;I.useEffect(()=>{if(!n){t({type:"live/watchChecksLoaded",rows:[],hasMore:!1});return}G!==void 0&&t({type:"live/watchChecksLoaded",rows:G.items??[],hasMore:G.has_more})},[e,n,G,t]);const Q=[a,s,o,l,u,f,m,g,v,y].some(Z=>Z.isPending);I.useEffect(()=>{t({type:"live/loading",value:Q})},[Q,t]);const Y=(W=[a,s,o,l,u,f,m,g,v,y,A].find(Z=>Z.error))==null?void 0:W.error;I.useEffect(()=>{Y&&t({type:"live/error",message:Xi(Y)})},[Y,t])}function Fpn(e,t){return Ui({queryKey:an.knowledgeDetail(t??"none"),queryFn:()=>t===null?Promise.resolve(null):cpn(t),enabled:e&&t!==null,staleTime:5*60*1e3})}function jpn(e){return Ui({queryKey:an.permissionHistory,queryFn:()=>kpn(),enabled:e,staleTime:60*1e3})}function p3e(e){return e?`conv:${e}`:"new"}const m3e="misc",qpn=8e3,PAt="已按你的要求停止,本轮尚未形成结论。";function DAt(e){return e.stopped===!0||String(e.status??"")==="cancelled"}function LAt(e){return String(e.step_name??"").trim()==="正在停止"}function g3e(e){return!e||e==="running"||e==="cancelling"}function Qpn(e,t,r){const n=e.live.turns[t]??[],i=r?n.find(a=>a.role==="user"&&String(a.run_id??"")===r):void 0;if(i)return i.content;for(let a=n.length-1;a>=0;a-=1)if(n[a].role==="user")return n[a].content;return""}const Ypn=new Set(["detail","chat","conversation12"]);function VAt(e){var n;if(!Ypn.has(e.page))return null;const t=(n=e.live.stream)==null?void 0:n.conversationId;if(typeof t=="string"&&t)return t;const r=e.chats12.find(i=>i.id===e.chat12);return r!=null&&r.live?String(r.id):null}function pee(e){const t=(e==null?void 0:e.conclusion)??(e==null?void 0:e.answer);if(typeof t=="string")return t;if(t&&typeof t=="object"){const r=t.conclusion;return typeof r=="string"?r:JSON.stringify(t)}return""}function Gpn(e){const t=e.trim();return t?/^call_\d+$/i.test(t)||/^版本链v_\d+$/i.test(t)?"查证":/^user_corrected$/i.test(t)?"用户修正":t:""}function FAt(e){const t=e==null?void 0:e.facts;return Array.isArray(t)?t.filter(r=>!!r&&typeof r=="object").map(r=>({fact:String(r.fact??r.content??""),nature:String(r.nature??""),factSource:Gpn(String(r.fact_source??r.source??"")),objectName:String(r.object_name??""),status:String(r.status??"")})).filter(r=>!!r.fact):[]}function jAt(e){const t=e==null?void 0:e.delivery;if(!t||typeof t!="object")return null;const r=t,n=Number(r.claimed),i=Number(r.delivered);return!Number.isFinite(n)||!Number.isFinite(i)?null:{claimed:n,delivered:i,complete:r.complete===!0||n<=i,kind:typeof r.kind=="string"?r.kind:null,artifact_url:typeof r.artifact_url=="string"?r.artifact_url:null,note:typeof r.note=="string"?r.note:null}}const Wpn=45e3,Upn=9e4;function JV(e,t){e.invalidateQueries({queryKey:an.conversations}),typeof t=="string"&&t&&e.invalidateQueries({queryKey:an.conversation(t)})}async function Zpn(e,t){try{const r=await xpn(t);e.dispatch({type:"live/adopted",id:t,matterId:(r==null?void 0:r.matter_id)??null}),e.qc.invalidateQueries({queryKey:an.agentSuggestions}),e.qc.invalidateQueries({queryKey:an.matters})}catch(r){e.dispatch({type:"live/error",message:`采纳失败:${Xi(r)}`})}}async function qAt(e,t,r,n){const i=e.getState(),a=(t??i.watchDraft).trim();if(!a){e.releaseSend();return}const s=r??i.watchEdit,o=n!==void 0?n:i.watchSaved;try{const l=await mpn(a);e.dispatch({type:"live/watchParsed",text:a,parsed:l,edit:s,saved:o})}catch(l){e.dispatch({type:"live/watchParsed",text:a,parsed:null,edit:s,saved:o}),e.dispatch({type:"live/error",message:`解析服务暂不可用:${Xi(l)}`})}finally{e.releaseSend()}}async function Hpn(e){var l,u,d,h,f;const t=e.getState(),r=t.watchProposal;if(!(r!=null&&r.product)){e.releaseSend();return}const n=((l=t.live.watchParsed)==null?void 0:l.proposal)??null,i=t.live.watchParsed??null,a={topic:String((i==null?void 0:i.task)??(n==null?void 0:n.task)??((u=n==null?void 0:n.check_spec)==null?void 0:u.topic)??r.task??t.watchText??"").slice(0,200)};r.product&&(a.title=r.product);const s=(i==null?void 0:i.schedule_type)??((d=n==null?void 0:n.schedule)==null?void 0:d.schedule_type)??"";s&&(a.schedule_type=String(s));const o=((i==null?void 0:i.schedule)??((h=n==null?void 0:n.schedule)==null?void 0:h.schedule_value)??r.scheduleValue??"").trim();if(o&&(a.schedule_value=o),i!=null&&i.original_text&&(a.original_text=i.original_text),!t.watchEdit&&e.watchOrigin.current&&(a.origin_conversation_id=e.watchOrigin.current),!a.topic){e.dispatch({type:"live/error",message:"创建盯住失败:缺少任务文本。"}),e.releaseSend();return}try{if(t.watchEdit&&((f=t.watchSaved)!=null&&f.watchId)){const p={topic:a.topic};a.title&&(p.title=a.title),a.schedule_value&&(p.schedule_value=a.schedule_value),await Apn(t.watchSaved.watchId,p),e.dispatch({type:"watch/confirm"}),e.dispatch({type:"live/notice",text:"盯住配置已更新。"})}else{const p=await gpn(a),m=typeof(p==null?void 0:p.watch_id)=="string"?p.watch_id:null;let g=!1;if(m)try{await MAt(m),g=!0}catch{}e.dispatch({type:"live/watchCreated",watchId:m,proposal:r,confirmed:g})}e.qc.invalidateQueries({queryKey:an.watches})}catch(p){e.dispatch({type:"live/error",message:`创建盯住失败:${Xi(p)}`})}finally{e.releaseSend()}}async function Kpn(e,t){try{await MAt(t),e.dispatch({type:"watch/confirmPending",watchId:t}),e.qc.invalidateQueries({queryKey:an.watches})}catch(r){e.dispatch({type:"live/error",message:`确认失败:${Xi(r)}`})}finally{e.releaseSend()}}async function Jpn(e){const r=e.getState().watchSaved;if(!(r!=null&&r.watchId)){e.dispatch({type:"watch/pause"}),e.releaseSend();return}const n=r.paused;try{n?await ypn(r.watchId):await vpn(r.watchId),e.dispatch({type:"watch/pause"}),e.dispatch({type:"live/notice",text:n?"已恢复盯住。":"已暂停盯住。"}),e.qc.invalidateQueries({queryKey:an.watches})}catch(i){e.dispatch({type:"live/error",message:`操作失败:${Xi(i)}`})}finally{e.releaseSend()}}async function Xpn(e,t){try{await bpn(t),e.dispatch({type:"watch/deleted",watchId:t}),e.dispatch({type:"live/notice",text:"已删除盯住。"}),e.qc.invalidateQueries({queryKey:an.watches})}catch(r){e.dispatch({type:"live/error",message:`删除失败:${Xi(r)}`})}finally{e.releaseSend()}}async function _pn(e,t){const n=e.getState().recommendations.find(i=>i.id===t);if(!(n!=null&&n.live)){e.dispatch({type:"rec/open",id:t});return}if(n.conversationId){e.dispatch({type:"nav/history"}),e.dispatch({type:"c12/select",id:n.conversationId}),v3e(e,n.conversationId),e.qc.invalidateQueries({queryKey:an.conversations});return}e.dispatch({type:"rec/open",id:t})}async function $pn(e,t){try{const r=await NAt(String(t)),n=typeof(r==null?void 0:r.conversation_id)=="string"?r.conversation_id:null,i=typeof(r==null?void 0:r.run_id)=="string"?r.run_id:null;e.dispatch({type:"rec/open",id:t}),n&&e.dispatch({type:"live/suggestionConversation",id:t,conversationId:n}),i?(e.dispatch({type:"live/streamStart",surface:"recommendation",conversationId:n,question:"现在就查一次"}),e.dispatch({type:"live/streamBound",conversationId:n,runId:i}),emn(e,i,n)):e.dispatch({type:"live/notice",text:"已触发一次调查,结论出来后会在这里显示。"}),e.qc.invalidateQueries({queryKey:an.suggestionTasks}),e.qc.invalidateQueries({queryKey:an.conversations})}catch(r){e.dispatch({type:"live/error",message:`触发调查失败:${Xi(r)}`})}finally{e.releaseSend()}}function emn(e,t,r,n={}){const i=new AbortController;let a=!1;const s=()=>{const u=e.getState().live.stream;return(u==null?void 0:u.surface)===(n.surface??"recommendation")&&(u.runId===t||u.conversationId===r)},o=u=>{if(a||(a=!0,!s()))return;const d=String(u.status??""),h=DAt(u),f=pee(u)||(h?PAt:"");!h&&d&&d!=="success"&&d!=="completed"&&!f?e.dispatch({type:"live/streamError",message:String(u.error||u.hint||`运行状态:${d}`)}):e.dispatch({type:"live/streamDone",answer:f,facts:FAt(u),stopped:h,delivery:jAt(u)}),r&&e.qc.invalidateQueries({queryKey:an.conversation(r)}),e.qc.invalidateQueries({queryKey:an.conversations}),e.qc.invalidateQueries({queryKey:an.suggestionTasks})},l=u=>{if(!s())return;const d=u.payload&&typeof u.payload=="object"?u.payload:{},h=String(u.event_type??"");if(h.startsWith("tool/")){const p=String(d.step_name??d.tool??d.name??h).trim();if(!p)return;e.dispatch({type:"live/streamStep",step:{name:p,status:String(d.status??(h.endsWith("started")?"running":"done")),note:typeof d.note=="string"?d.note:""}});return}const f=d.message??d.summary??d.phase??u.phase;typeof f=="string"&&f.trim()&&e.dispatch({type:"live/streamThinking",text:f.trim()})};BAt(t,{afterSeq:0,signal:i.signal,isTerminal:u=>u==="complete"||u==="error",onRunEvent:l,onFrame:u=>{const d=u.data??{};if(u.type==="card"){d&&typeof d.card_id=="string"&&e.dispatch({type:"live/cardUpsert",card:d});return}u.type==="thinking"?typeof d.message=="string"&&d.message&&e.dispatch({type:"live/streamThinking",text:d.message}):u.type==="step"?e.dispatch({type:"live/streamStep",step:{name:typeof d.step_name=="string"&&d.step_name||"处理中",status:String(d.status??"running"),note:typeof d.note=="string"?d.note:""}}):u.type==="complete"?pee(d)?o(d):z7(t).then(h=>{const f=h!=null&&h.judgment&&typeof h.judgment=="object"?h.judgment:{};o({...h??{},...f,status:String((h==null?void 0:h.status)??d.status??"")})}).catch(()=>o({...d,status:String(d.status??"")||"success"})):u.type==="error"&&(a=!0,s()&&e.dispatch({type:"live/streamError",message:String(d.message||"运行失败")}))}}).catch(u=>{i.signal.aborted||a||(a=!0,s()&&e.dispatch({type:"live/streamError",message:Xi(u)}))})}async function tmn(e,t){var i;const n=((i=e.getState().recommendations.find(a=>a.id===t))==null?void 0:i.state)!=="已暂停";try{n?await Epn(String(t)):await Ipn(String(t)),e.dispatch({type:"rec/pause",id:t}),e.qc.invalidateQueries({queryKey:an.suggestionTasks})}catch(a){e.dispatch({type:"live/error",message:`操作失败:${Xi(a)}`})}finally{e.releaseSend()}}async function rmn(e,t){try{await Cpn(String(t)),e.dispatch({type:"rec/cancel",id:t}),e.qc.invalidateQueries({queryKey:an.suggestionTasks})}catch(r){e.dispatch({type:"live/error",message:`操作失败:${Xi(r)}`})}finally{e.releaseSend()}}async function nmn(e){const r=e.getState().recommendations.length;try{const n=await kAt({offset:r,limit:20});e.dispatch({type:"live/appendSuggestionTasks",rows:n.items,hasMore:n.has_more})}catch(n){e.dispatch({type:"live/error",message:`加载更多建议失败:${Xi(n)}`})}}async function imn(e){const r=e.getState().live.watchRows.length;try{const n=await TAt({offset:r,limit:20});e.dispatch({type:"live/appendWatches",rows:n.items,hasMore:n.has_more})}catch(n){e.dispatch({type:"live/error",message:`加载更多盯住失败:${Xi(n)}`})}}async function amn(e){var s;const t=e.getState(),r=((s=t.watchSaved)==null?void 0:s.watchId)??null;if(!r)return;const n=t.live.watchChecks,i=n[n.length-1],a=(i==null?void 0:i.id)??null;if(a!=null)try{const o=await RAt(String(r),{beforeId:a});e.dispatch({type:"live/watchChecksAppend",rows:o.items,hasMore:o.has_more})}catch(o){e.dispatch({type:"live/error",message:`加载更多执行记录失败:${Xi(o)}`})}}async function smn(e){const t=e.getState(),r=t.jobs.find(n=>n.id===t.current);if(!(r!=null&&r.live)){e.dispatch({type:"job/approve"});return}try{await Mpn(String(r.id)),e.dispatch({type:"live/matterDispatched",id:r.id}),e.qc.invalidateQueries({queryKey:an.matters})}catch(n){e.dispatch({type:"live/error",message:`交办失败:${Xi(n)}`})}}async function omn(e,t){const r=t.trim();if(r)try{await Spn({content:r}),e.dispatch({type:"ent/note",value:r}),e.qc.invalidateQueries({queryKey:an.knowledge})}catch(n){e.dispatch({type:"live/error",message:`提交失败:${Xi(n)}`})}}async function lmn(e,t){try{await wpn(t),e.dispatch({type:"live/notice",text:"已撤回草稿。"}),e.qc.invalidateQueries({queryKey:an.knowledge})}catch(r){e.dispatch({type:"live/error",message:_fn(r)?"该素材不是草稿,无法撤回(待审/已生效请走管理台)。":`撤回失败:${Xi(r)}`})}finally{e.releaseSend()}}async function cmn(e,t){try{await Tpn(t),e.dispatch({type:"live/notice",text:"已保存画像,立即生效。"}),e.qc.invalidateQueries({queryKey:an.workspaceMe})}catch(r){e.dispatch({type:"live/error",message:`保存失败:${Xi(r)}`})}finally{e.releaseSend()}}async function umn(e,t){const{field:r,lines:n}=t,i={};r==="can_view"&&(i.can_view=n),r==="can_act"&&(i.can_act=n),r==="needs_approval"&&(i.needs_approval=n);try{await Rpn(i);const a=n.join("、");e.dispatch({type:"live/mePermissionSaved",...r==="can_view"?{canViewText:a}:{},...r==="can_act"?{canActText:a}:{},...r==="needs_approval"?{needsApprovalText:a}:{}}),e.dispatch({type:"live/notice",text:"已保存授权边界,立即生效。"}),e.qc.invalidateQueries({queryKey:an.workspaceMe}),e.qc.invalidateQueries({queryKey:an.permissionHistory})}catch(a){e.dispatch({type:"live/error",message:`保存授权失败:${Xi(a)}`})}finally{e.releaseSend()}}async function dmn(e,t){var s;const r=e.getState(),n=r.live.members.find(o=>o.userId&&o.userId===r.live.memberTarget)??r.live.members[0];if(!(n!=null&&n.userId)){e.dispatch({type:"live/error",message:"未找到可编辑的成员(workspace/members 为空)。"});return}const i=((s=r.live.meRaw)==null?void 0:s.permissions)??null,a={};i!=null&&i.can_view&&typeof i.can_view=="object"&&!Array.isArray(i.can_view)&&(a.can_view=i.can_view),Array.isArray(i==null?void 0:i.needs_approval)&&(a.needs_approval=i.needs_approval),a.can_act=t.action?[t.action]:Array.isArray(i==null?void 0:i.can_act)?i.can_act:[],a.auto_execute=t.auto;try{await Npn(n.userId,a),e.dispatch({type:"live/permissionSaved",scope:t.scope,action:t.action,auto:t.auto}),e.qc.invalidateQueries({queryKey:an.workspaceMe}),e.qc.invalidateQueries({queryKey:an.workspaceMembers})}catch(o){e.dispatch({type:"live/error",message:`保存授权失败:${Xi(o)}`})}}async function QAt(e,t,r){const n=t.slice(0,22);try{const i=await upn({source:"user",title:n}),a=typeof(i==null?void 0:i.conversation_id)=="string"?i.conversation_id:null;if(!a){e.dispatch({type:"live/error",message:"新建会话失败:服务端未返回会话 ID"}),e.releaseSend();return}r!=null?e.dispatch({type:"live/draftBound",draftId:r,conversationId:a,title:n}):e.dispatch({type:"live/conversationUpsert",conversationId:a,title:n,select:!0}),e.qc.invalidateQueries({queryKey:an.conversations}),e.startAsk({question:t,conversationId:a,surface:"c12"},e.lockKey)}catch(i){e.dispatch({type:"live/error",message:`新建会话失败:${Xi(i)}`}),e.releaseSend()}}async function hmn(e,t){if(o3e(e.getState(),t)!=="stopping"){e.dispatch({type:"live/streamStopping",conversationId:t,value:!0});try{const r=await fpn(t),n=String((r==null?void 0:r.status)??"");if(n==="cancelling")return;if(e.dispatch({type:"live/streamStopping",conversationId:t,value:!1}),n==="idle"){e.dispatch({type:"live/runSettled",conversationId:t}),JV(e.qc,t),e.dispatch({type:"live/notice",text:(r==null?void 0:r.note)||"当前没有正在处理的任务。"});return}e.dispatch({type:"live/notice",text:(r==null?void 0:r.note)||"这一轮已经结束,停止未生效。"})}catch(r){e.dispatch({type:"live/streamStopping",conversationId:t,value:!1}),e.dispatch({type:"live/error",message:`停止失败:${Xi(r)}`})}}}async function fmn(e,t){const r=t.trim();if(!r){e.releaseSend();return}const n=e.getState(),i=n.recommendations.find(s=>s.id===n.recActive);if(!(i!=null&&i.live)){e.dispatch({type:"rec/send",value:t}),e.releaseSend();return}let a=typeof i.conversationId=="string"?i.conversationId:null;if(!a)try{const s=await NAt(String(i.id));a=typeof(s==null?void 0:s.conversation_id)=="string"?s.conversation_id:null,a&&e.dispatch({type:"live/suggestionConversation",id:i.id,conversationId:a})}catch(s){e.dispatch({type:"live/error",message:`建议会话准备失败:${Xi(s)}`}),e.releaseSend();return}e.startAsk({question:r,conversationId:a,surface:"recommendation"},e.lockKey)}function v3e(e,t){const r=e.getState().chats12.find(n=>n.id===t);!(r!=null&&r.live)||r.status!=="有更新"||dpn(String(t)).then(()=>void e.qc.invalidateQueries({queryKey:an.conversations})).catch(()=>{})}async function pmn(e,t){try{await hpn(String(t)),e.dispatch({type:"live/conversationArchived",id:t}),e.dispatch({type:"live/notice",text:"会话已删除。"}),e.qc.invalidateQueries({queryKey:an.conversations})}catch(r){e.dispatch({type:"live/error",message:`删除会话失败:${Xi(r)}`})}}async function mmn(e,t,r){try{await ppn(String(t),r),e.dispatch({type:"live/conversationRenamed",id:t,title:r}),e.dispatch({type:"live/notice",text:"会话已重命名。"}),e.qc.invalidateQueries({queryKey:an.conversations})}catch(n){e.dispatch({type:"live/error",message:`重命名会话失败:${Xi(n)}`})}}function gmn(e,t){const r=URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,document.body.appendChild(n),n.click(),n.remove(),window.setTimeout(()=>URL.revokeObjectURL(r),3e4)}async function vmn(e){var s;const t=e.getState(),r={},n=t.live.groupOptions.find(o=>o.key===t.domain);n!=null&&n.businessType&&(r.business_type=n.businessType),n!=null&&n.groupCode&&(r.group_code=n.groupCode);const a=(((s=t.live.agentGroups)==null?void 0:s.digital_humans)??[]).find(o=>(String(o.agent_id??"")||(o.name??"").trim())===t.agentFilter);(a==null?void 0:a.agent_id)!=null&&(r.agent_id=String(a.agent_id)),t.adviceTab==="待采纳"?r.status="pending":t.adviceTab==="执行历史"?r.status="accepted":r.status="dismissed",t.dateFrom&&(r.created_from=t.dateFrom),t.dateTo&&(r.created_to=t.dateTo);try{const{blob:o,text:l}=await zpn(r);gmn(o,`专家建议-${t.adviceTab}-${t.dateFrom||"不限"}-${t.dateTo||"不限"}.csv`),e.dispatch({type:"live/exported",csv:l,note:"已从服务端导出 CSV(UTF-8 带 BOM),文件开始下载;预览为服务端返回内容。"})}catch(o){e.dispatch({type:"live/error",message:`导出失败:${Xi(o)}`})}}function ymn(e,t,r){var w;const n=I.useRef(t);n.current=t;const i=Ro(),a=I.useRef(null),s=I.useRef(null),o=I.useRef(new Set),l=I.useRef(null),u=I.useRef(new Set),d=I.useRef(new Set),h=I.useRef(async()=>{}),f=I.useCallback(S=>{o.current.delete(S),r({type:"live/sendPending",value:!1})},[r]),p=I.useCallback((S,T)=>{var le;l.current&&o.current.delete(l.current),T&&o.current.delete(T);let R=p3e(S.conversationId);o.current.add(R),l.current=R,(le=a.current)==null||le.abort();const M=new AbortController;a.current=M;const k=S.resume;r({type:"live/streamStart",surface:S.surface,question:S.question,conversationId:S.conversationId,...k?{runId:k.runId,recovered:!0,startedAt:k.startedAt}:{}}),r({type:"live/sendPending",value:!1});const z=S.conversationId??void 0;let O=Date.now(),N=Date.now(),B=(k==null?void 0:k.runId)??null,P=null,D="ask",L=0,V=M;const F=()=>a.current===V;let j=!1;const G=()=>{var se;return!j&&((se=n.current.live.stream)==null?void 0:se.status)==="streaming"},Q=()=>{D="done",window.clearInterval(L),j&&B&&u.current.add(B),F()&&(a.current=null,l.current=null,f(R))},Y=se=>{const oe=p3e(se);oe!==R&&(o.current.delete(R),R=oe,o.current.add(oe),F()&&(l.current=oe))},W=()=>{var se;return((se=n.current.live.stream)==null?void 0:se.conversationId)??S.conversationId??null},Z=()=>{const se=W();se&&r({type:"live/streamStopping",conversationId:se,value:!0})},H=se=>{j=!0,Z();const oe=B??(typeof se.run_id=="string"?se.run_id:null);let ie=0;const ue=window.setInterval(()=>{if(ie+=1,!F()){window.clearInterval(ue);return}if(!oe||ie>30){window.clearInterval(ue),r({type:"live/streamError",message:"停止已受理,仍在等待收口;结论可稍后在会话记录中查看。"});return}z7(oe).then(ve=>{if(!F()){window.clearInterval(ue);return}const fe=String((ve==null?void 0:ve.status)??"");!fe||fe==="running"||fe==="cancelling"||(window.clearInterval(ue),$(fe,ve??{}))}).catch(()=>{})},3e3)},K=se=>{var fe,ke,Se;j=!0;const oe=String(se.status??""),ie=DAt(se);if(!ie&&oe==="cancelling"){H(se);return}const ue=pee(se)||(ie?PAt:"");r(!ie&&oe&&oe!=="success"&&oe!=="completed"&&!ue?{type:"live/streamError",message:String(se.error||se.hint||`运行状态:${oe}`)}:{type:"live/streamDone",answer:ue,facts:FAt(se),stopped:ie,delivery:jAt(se)}),JV(i,se.conversation_id??((fe=n.current.live.stream)==null?void 0:fe.conversationId)??S.conversationId);const ve=String(se.conversation_id??((ke=n.current.live.stream)==null?void 0:ke.conversationId)??S.conversationId??"");ve&&Xfn(i,an.conversationArtifacts(ve),ve,(Se=n.current.live.stream)==null?void 0:Se.runId)},J=se=>{const oe=se==null?void 0:se.steps;if(Array.isArray(oe))for(const ie of oe){if(!ie||typeof ie!="object")continue;const ue=String(ie.name??ie.step_name??ie.tool??"").trim();ue&&r({type:"live/streamStep",step:{name:ue,status:String(ie.status??"running"),note:typeof ie.note=="string"?ie.note:""}})}},X=se=>{const oe=se.payload&&typeof se.payload=="object"?se.payload:{},ie=String(se.event_type??"");if(ie.startsWith("tool/")){const ve=String(oe.step_name??oe.tool??oe.name??ie).trim();if(!ve)return;r({type:"live/streamStep",step:{name:ve,status:String(oe.status??(ie.endsWith("started")?"running":"done")),note:typeof oe.note=="string"?oe.note:""}});return}const ue=oe.message??oe.summary??oe.phase??se.phase;typeof ue=="string"&&ue.trim()&&r({type:"live/streamThinking",text:ue.trim()})},$=(se,oe)=>{const ie=oe.judgment&&typeof oe.judgment=="object"?oe.judgment:{};K({...oe,...ie,status:se})},_=se=>{const oe=new AbortController;V=oe,a.current=oe,D="tail";let ie=null;const ue=async ve=>{const fe=String(ve.status??"");if(pee(ve)){K(ve);return}const ke=await z7(se).catch(()=>null);if(F()){if(ke){$(String(ke.status??"")||fe,ke);return}K({...ve,status:fe||"success"})}};BAt(se,{afterSeq:0,signal:oe.signal,isTerminal:ve=>ve==="complete"||ve==="error",onActivity:()=>{O=Date.now()},onRunEvent:ve=>{F()&&X(ve)},onFrame:ve=>{if(!F())return;const fe=ve.data??{};if(ve.type==="card"){fe&&typeof fe.card_id=="string"&&r({type:"live/cardUpsert",card:fe});return}ve.type==="thinking"?typeof fe.message=="string"&&fe.message&&r({type:"live/streamThinking",text:fe.message}):ve.type==="step"?(LAt(fe)&&Z(),r({type:"live/streamStep",step:{name:typeof fe.step_name=="string"&&fe.step_name||"处理中",status:String(fe.status??"running"),note:typeof fe.note=="string"?fe.note:""}})):ve.type==="complete"?ie=ue(fe):ve.type==="error"&&(j=!0,r({type:"live/streamError",message:String(fe.message||"运行失败")}))}}).catch(ve=>{oe.signal.aborted||(j=!0,r({type:"live/streamError",message:Xi(ve)}))}).then(async()=>{await ie}).finally(()=>{D==="tail"&&Q()})},re=async()=>{const se=B;if(!se||!F())return!1;try{const[oe,ie]=await Promise.all([z7(se).catch(()=>null),OAt(se).catch(()=>null)]);if(!F()||j)return!0;if(J(ie),!oe)return!1;const ue=String(oe.status??"");return g3e(ue)?(ue==="cancelling"&&Z(),_(se),!0):($(ue,oe),Q(),!0)}catch{return!1}},te=()=>{j=!0,r({type:"live/streamError",message:P?Xi(P):"本轮连接中断,结果可稍后在会话记录中查看。"}),Q()};if(k){J(k.progress),k.status==="cancelling"&&Z(),_(k.runId);return}L=window.setInterval(()=>{if(D!=="ask"||!F()||!G())return;const se=Date.now(),oe=se-O>Wpn;(oe||se-N>Upn)&&r({type:"live/streamSlow",value:!0}),oe&&B&&(window.clearInterval(L),D="recovering",V.abort(),re().then(ie=>{!ie&&D==="recovering"&&te()}))},5e3),Dpn(z?{question:S.question,conversation_id:z}:{question:S.question},{signal:M.signal,isTerminal:se=>se==="complete"||se==="error",onActivity:()=>{O=Date.now()},onFrame:se=>{if(N=Date.now(),!F())return;const oe=se.data??{};switch(se.type){case"card":{oe&&typeof oe.card_id=="string"&&r({type:"live/cardUpsert",card:oe});break}case"start":{const ie=typeof oe.conversation_id=="string"?oe.conversation_id:null;B=typeof oe.run_id=="string"?oe.run_id:null,r({type:"live/streamBound",conversationId:ie,runId:B}),ie&&Y(ie),ie&&!S.conversationId&&(r({type:"live/conversationUpsert",conversationId:ie,title:S.question.slice(0,22),select:!0}),JV(i,ie));break}case"thinking":typeof oe.message=="string"&&oe.message&&r({type:"live/streamThinking",text:oe.message});break;case"step":{LAt(oe)&&Z();const ie={name:typeof oe.step_name=="string"&&oe.step_name||"处理中",status:String(oe.status??"running"),note:typeof oe.note=="string"?oe.note:""};r({type:"live/streamStep",step:ie});break}case"complete":K(oe);break;case"error":j=!0,r({type:"live/streamError",message:String(oe.message||"运行失败")});break}}}).catch(se=>{M.signal.aborted||(P=se)}).then(async()=>{if(D!=="ask")return;if(P&&$fn(P)&&F()){j=!0;const oe=S.conversationId;oe?(r({type:"live/streamDiscard",conversationId:oe}),r({type:"live/sendNotice",conversationId:oe,text:Xi(P)})):r({type:"live/streamError",message:Xi(P)}),Q(),oe&&h.current(oe,void 0,{fresh:!0});return}if(!F()||!G()){Q();return}D="recovering",!await re()&&D==="recovering"&&te()})},[r,i,f]),m=I.useCallback(async(S,T,R={})=>{var M;if(!d.current.has(S)){d.current.add(S);try{const k=n.current;let z=R.fresh?null:T??((M=k.live.runs[S])==null?void 0:M.runId)??k.live.lastRunIds[S]??null;if(!z){const V=await f3e(S).catch(()=>null);z=typeof(V==null?void 0:V.last_run_id)=="string"&&V.last_run_id?V.last_run_id:null}if(!z||u.current.has(z)){r({type:"live/runSettled",conversationId:S});return}const O=n.current.live.stream;if(O&&O.status==="streaming"&&O.runId===z)return;const[N,B]=await Promise.all([z7(z).catch(()=>null),OAt(z).catch(()=>null)]);if(!N)return;const P=String(N.status??"");if(!g3e(P)){u.current.add(z),r({type:"live/runSettled",conversationId:S}),JV(i,S);return}const D=n.current;if(D.page!=="conversation12"||D.chat12!==S)return;const L=D.live.runs[S];p({question:(L==null?void 0:L.question)||Qpn(D,S,z),conversationId:S,surface:"c12",resume:{runId:z,status:P,progress:B,startedAt:L==null?void 0:L.startedAt}})}finally{d.current.delete(S)}}},[r,i,p]);h.current=m;const g=t.page==="conversation12"&&typeof t.chat12=="string"?t.chat12:null,v=t.live.stream,y=v&&v.status==="streaming"?v.conversationId:null,A=g?((w=t.live.runs[g])==null?void 0:w.runId)??null:null,b=g?t.live.lastRunIds[g]??null:null,x=g?t.live.turns[g]:void 0;I.useEffect(()=>{if(!g||y===g)return;const S=A??b;if(!(!S||u.current.has(S))){if(x!=null&&x.some(T=>T.role!=="user"&&String(T.run_id??"")===S)){u.current.add(S);return}m(g,S)}},[g,y,A,b,x,m]);const C=Object.keys(t.live.runs).sort().join("|");return I.useEffect(()=>{if(!C)return;const S=()=>{for(const[R,M]of Object.entries(n.current.live.runs)){if(!M.runId){f3e(R).then(z=>{const O=typeof(z==null?void 0:z.last_run_id)=="string"&&z.last_run_id?z.last_run_id:null;O&&r({type:"live/runRegister",conversationId:R,runId:O})}).catch(()=>{});continue}const k=M.runId;z7(k).then(z=>{if(!z)return;const O=String(z.status??"");if(O==="cancelling"){M.stopping||r({type:"live/streamStopping",conversationId:R,value:!0});return}g3e(O)||(u.current.add(k),r({type:"live/runSettled",conversationId:R}),JV(i,R))}).catch(()=>{})}},T=window.setInterval(S,qpn);return()=>window.clearInterval(T)},[e,C,r,i]),I.useCallback(S=>{const T=z=>({getState:()=>n.current,dispatch:r,qc:i,startAsk:p,lockKey:z,releaseSend:()=>{z&&f(z)},watchOrigin:s}),R=T(""),M=z=>{const O=p3e(z);return o.current.has(O)||Ym(n.current,z)?null:(o.current.add(O),r({type:"live/sendPending",value:!0}),T(O))},k=()=>o.current.has(m3e)||n.current.live.sendPending?null:(o.current.add(m3e),r({type:"live/sendPending",value:!0}),T(m3e));switch(S.type){case"send":{const z=S.text??S.inputValue;if(!z.trim())return;const O=M(null);if(!O)return;if(/盯住|盯着|持续关注/.test(z)){s.current=VAt(n.current),r(S),qAt(O,z,!1,n.current.watchSaved);return}const N=z.trim();if(n.current.page==="detail"){p({question:N,conversationId:null,surface:"detail"},O.lockKey);return}QAt(O,N);return}case"c12/send":{const z=S.value.trim();if(!z)return;const O=n.current.chats12.find(B=>B.id===n.current.chat12);if(!(O!=null&&O.live)){const B=M(null);if(!B)return;QAt(B,z,O==null?void 0:O.id);return}const N=M(String(O.id));if(!N)return;p({question:z,conversationId:String(O.id),surface:"c12"},N.lockKey);return}case"c12/stop":hmn(R,S.conversationId);return;case"rec/send":{if(!S.value.trim())return;const z=n.current.recommendations.find(N=>N.id===n.current.recActive),O=M(z!=null&&z.live&&typeof z.conversationId=="string"?z.conversationId:null);if(!O)return;fmn(O,S.value);return}case"advice/adopt":Zpn(R,S.id);return;case"advice/ignore":R.dispatch({type:"live/notice",text:"忽略由第三方系统处理,本期工作台只读展示。"});return;case"advice/export":vmn(R);return;case"watch/propose":{if(!n.current.watchDraft.trim())return;const z=k();if(!z)return;s.current=VAt(n.current),qAt(z);return}case"watch/confirm":{const z=k();z&&Hpn(z);return}case"watch/pause":{const z=k();z&&Jpn(z);return}case"watch/delete":{const z=k();z&&Xpn(z,S.watchId);return}case"watch/confirmPending":{const z=k();z&&Kpn(z,S.watchId);return}case"rec/open":_pn(R,S.id);return;case"rec/run":{const z=k();z&&$pn(z,S.id);return}case"rec/pause":{const z=k();z&&tmn(z,S.id);return}case"rec/cancel":{const z=k();z&&rmn(z,S.id);return}case"live/loadMoreSuggestions":nmn(R);return;case"live/loadMoreWatches":imn(R);return;case"live/loadMoreWatchChecks":amn(R);return;case"job/approve":smn(R);return;case"ent/note":omn(R,S.value);return;case"knowledge/withdraw":{const z=k();z&&lmn(z,S.docId);return}case"workspace/me/save":{const z=k();z&&cmn(z,S.payload);return}case"workspace/me/permission/save":{const z=k();z&&umn(z,{field:S.field,lines:S.lines});return}case"ent/save":dmn(R,{scope:S.scope,action:S.action,auto:S.auto});return;case"c12/new":r(S);return;case"c12/select":r(S),v3e(R,S.id);return;case"c12/archive":pmn(R,S.id);return;case"c12/rename":mmn(R,S.id,S.title);return;case"live/openConversation":r({type:"nav/history"}),r({type:"c12/select",id:S.id}),v3e(R,S.id);return;case"live/retryConversations":i.invalidateQueries({queryKey:an.conversations});return;case"live/retrySuggestions":i.invalidateQueries({queryKey:an.suggestionTasks});return;default:r(S)}},[e,r,i,p,f])}const YAt={file:0,artifact:0,url:0,knowledge:0,dataset:0},bmn=["file","artifact","url","knowledge"];function GAt(e){const t=new Map;for(const r of e??[])r.run_id&&r.turn_no!=null&&!t.has(String(r.run_id))&&t.set(String(r.run_id),r.turn_no);return t}function Amn(e,t,r){const n=[];for(const a of e??[]){const s=a.filename||a.name;s&&n.push({source_id:`file:${a.file_id||s}`,kind:"file",title:s,badge:a.oss_error?"归档失败":null,turn_no:null,created_at:a.created_at??null,download_url:a.raw_oss_url||null})}for(const a of t??[])n.push({source_id:`artifact:${a.artifact_id}`,kind:"artifact",title:a.filename||a.artifact_id,badge:a.kind==="data"?"导出文件":a.kind==="report"?"Run 报告":a.kind??null,turn_no:a.run_id&&r?r.get(String(a.run_id))??null:null,run_id:a.run_id??null,created_at:a.created_at??null,download_url:Jfn(a)});const i={...YAt};for(const a of n)i[a.kind]+=1;return{items:n,counts:i}}async function xmn(e){const{data:t}=await Ht({method:"GET",url:`/api/v1/cognitive/conversations/${e}/sources`,params:{limit:200},responseType:"json",requestType:"json"}),n=(Array.isArray(t==null?void 0:t.sources)?t.sources:[]).filter(a=>!!a&&typeof a.source_id=="string"&&typeof a.kind=="string"&&bmn.includes(a.kind)).map(a=>({...a,title:a.title||a.source_id})),i={...YAt,...(t==null?void 0:t.counts)??{}};return{items:n,counts:i}}async function Emn(e){const{data:t}=await R9r(e);return qwe(t)}async function Imn(e){const{data:t}=await w9r(e,{});return(Array.isArray(t)?t:t&&typeof t=="object"&&Array.isArray(t.items)?t.items:[]).filter(n=>!!n&&typeof n.fact=="string")}function WAt(e,t){const r=e??"none",n=Ui({queryKey:an.conversationSources(r),queryFn:()=>xmn(e),enabled:!!e,staleTime:3e4,retry:!1}),i=!!e&&n.isError,a=Ui({queryKey:an.conversationFiles(r),queryFn:()=>Emn(e),enabled:i,staleTime:3e4}),s=Ui({queryKey:an.conversationArtifacts(r),queryFn:()=>u3e(e),enabled:i,staleTime:3e4}),o=Amn(a.data,s.data,t);return{data:e?n.data??o:null,isLoading:n.isLoading||n.isError&&(a.isLoading||s.isLoading)}}const Cmn='button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])';function mee({open:e,onClose:t,panelRef:r,triggerRef:n}){const i=I.useRef(t);i.current=t,I.useEffect(()=>{var h;if(!e||!window.matchMedia("(max-width: 767px)").matches)return;const a=r.current,s=()=>a?Array.from(a.querySelectorAll(Cmn)):[];(h=s()[0]??a)==null||h.focus();const o=document.querySelector(".wandox-conversations__messages"),l=document.body.style.overflow,u=(o==null?void 0:o.style.overflow)??"";document.body.style.overflow="hidden",o&&(o.style.overflow="hidden");const d=f=>{if(f.key==="Escape"){f.preventDefault(),i.current();return}if(f.key!=="Tab")return;const p=s();if(!p.length)return;const m=p.indexOf(document.activeElement),g=m<=0,v=m===-1||m===p.length-1;(f.shiftKey?g:v)&&(f.preventDefault(),p[f.shiftKey?p.length-1:0].focus())};return document.addEventListener("keydown",d,!0),()=>{var f;document.removeEventListener("keydown",d,!0),document.body.style.overflow=l,o&&(o.style.overflow=u),(f=n.current)==null||f.focus()}},[e,r,n])}function y3e({open:e,axis:t,threshold:r,edgeOpenPx:n,scrollableRef:i,onOpen:a,onClose:s}){const[o,l]=I.useState(!1),[u,d]=I.useState(0),h=I.useRef(null),f=I.useRef(0),p=I.useRef(s);p.current=s;const m=I.useRef(a);return m.current=a,I.useEffect(()=>{if(e||t!=="x"||!n||!window.matchMedia("(max-width: 767px)").matches)return;let A=0,b=0,x=!1;const C=S=>{A=S.touches[0].clientX,b=S.touches[0].clientY,x=A<=n},w=S=>{var M;if(!x)return;x=!1;const T=S.changedTouches[0].clientX-A,R=S.changedTouches[0].clientY-b;T>60&&Math.abs(T)>Math.abs(R)*1.5&&((M=m.current)==null||M.call(m))};return document.addEventListener("touchstart",C,{passive:!0}),document.addEventListener("touchend",w,{passive:!0}),()=>{document.removeEventListener("touchstart",C),document.removeEventListener("touchend",w)}},[e,t,n]),{dragging:o,offset:u,bind:{onTouchStart:A=>{if(!e||t==="y"&&(i!=null&&i.current)&&i.current.scrollTop>0)return;const b=A.touches[0];h.current={x:b.clientX,y:b.clientY},f.current=0,d(0),l(!0)},onTouchMove:A=>{const b=h.current;if(!b)return;const x=A.touches[0],C=t==="x"?x.clientX-b.x:x.clientY-b.y,w=t==="x"?Math.min(0,C):Math.max(0,C);f.current=w,d(w)},onTouchEnd:()=>{if(!h.current)return;h.current=null,l(!1),d(0),(t==="x"?f.current<-r:f.current>r)&&p.current()}}}}function b3e(e){const t=Math.max(0,Math.floor(e/1e3)),r=Math.floor(t/3600),n=Math.floor(t%3600/60),i=t%60;return r>0?`${r}h ${n}m ${i}s`:n>0?`${n}m ${i}s`:`${i}s`}function Smn(e){if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleTimeString("zh-CN",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function gee({status:e,steps:t,thinking:r,startedAt:n,durationMs:i}){const a=e==="streaming",[s,o]=I.useState(a),[l,u]=I.useState(()=>Date.now()),d=I.useRef(e);I.useEffect(()=>{d.current==="streaming"&&e!=="streaming"&&o(!1),d.current=e},[e]),I.useEffect(()=>{if(!a||i!==null)return;const g=window.setInterval(()=>u(Date.now()),1e3);return()=>window.clearInterval(g)},[a,i]);const h=a?i??(n?Math.max(0,l-n):0):i??0,f=!!n&&h>0,p=e==="error"?`思考失败${f?`(用时 ${b3e(h)})`:""}`:a?`思考中${f?`(已用时 ${b3e(h)})`:""}`:`已思考${f?`(用时 ${b3e(h)})`:""}`,m=t.length||a?E.jsx(h0e,{mode:"start",titleSpan:"82px",className:"wandox-conversations__process-antd",items:[...t.map((g,v)=>({key:`${g.name}-${v}`,title:Smn(g.ts),loading:g.status!=="done",content:E.jsxs("div",{className:"wandox-conversations__process-step",children:[E.jsx("span",{className:"wandox-conversations__process-step-name",children:g.name}),g.note?E.jsx("span",{className:"wandox-conversations__process-step-note",children:g.note}):null]})})),...a?[{key:"thinking-live",loading:!0,content:E.jsx("span",{className:"wandox-conversations__process-step-note",children:r||"小多正在处理…"})}]:[]]}):null;return E.jsxs("div",{className:"wandox-conversations__process",children:[E.jsxs("button",{type:"button",className:"wandox-conversations__process-toggle","aria-expanded":s,onClick:()=>o(g=>!g),children:[a?E.jsx("span",{className:"wandox-conversations__process-spinner","aria-hidden":"true"}):E.jsx("span",{className:`wandox-conversations__process-stateicon${e==="error"?" wandox-conversations__process-stateicon--error":""}`,"aria-hidden":"true",children:e==="error"?"✕":"✓"}),E.jsx("span",{className:`wandox-conversations__process-elapsed${a?" wandox-conversations__process-elapsed--thinking":""}`,children:p}),E.jsx("svg",{className:`wandox-conversations__process-chevron${s?" wandox-conversations__process-chevron--expanded":""}`,viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:E.jsx("path",{d:"M6 4l4 4-4 4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})]}),s?m:null]})}function wmn(e){if(e.kind==="report")return E.jsx(Y$e,{});const t=/\.([a-z0-9]+)$/i.exec(e.filename||""),r=t?t[1].toLowerCase():"",n={fontSize:15};return["csv","xlsx","xls","tsv"].includes(r)?E.jsx(G$e,{style:{...n,color:"#16a34a"}}):r==="pdf"?E.jsx(IH,{style:{...n,color:"#dc2626"}}):["doc","docx"].includes(r)?E.jsx(oye,{style:{...n,color:"#2563eb"}}):r==="zip"?E.jsx(W$e,{style:{...n,color:"#d97706"}}):["txt","md","json"].includes(r)?E.jsx(MD,{style:{...n,color:"#6b7280"}}):E.jsx(Ay,{style:n})}function Tmn(e){return e==="data"?"导出文件":e==="report"?"Run 报告":e||null}function UAt({item:e}){const t=Tmn(e.kind),r=[{key:"download",label:"下载文件"}];e.kind==="report"&&e.run_id&&r.push({key:"report",label:"查看报告"});const n=({key:i})=>{if(i==="download"){if(e.oss_url){window.open(e.oss_url,"_blank","noopener,noreferrer");return}Y$(e.artifact_id,e.filename||e.artifact_id).catch(a=>{wt.error(a.message||"下载失败,请稍后重试")})}else i==="report"&&e.run_id&&Scn(String(e.run_id)).catch(a=>{wt.error(a.message||"报告打开失败,请稍后重试")})};return E.jsxs("div",{className:"wandox-conversations__artifacts-row",children:[wmn(e),E.jsx("span",{className:"wandox-conversations__artifacts-name",title:e.filename,children:e.filename||"未命名文件"}),t?E.jsx("span",{className:`wandox-conversations__artifacts-badge${e.kind==="report"?" wandox-conversations__artifacts-badge--report":""}`,children:t}):null,E.jsx(Jf,{menu:{items:r,onClick:n},trigger:["click"],placement:"bottomRight",children:E.jsx("button",{type:"button",className:"wandox-conversations__artifacts-more","aria-label":`文件操作:${e.filename||""}`,children:E.jsx(GMr,{})})})]})}function ZAt(e){return e.role==="final"||e.role==="intermediate"?e.role:e.kind==="dataset"||e.kind==="tool_result"?"intermediate":"final"}function HAt({artifacts:e}){if(!(e!=null&&e.length))return null;const t=e.filter(n=>ZAt(n)==="final"),r=e.filter(n=>ZAt(n)==="intermediate");return E.jsxs("div",{className:"wandox-conversations__artifacts",children:[E.jsx("div",{className:"wandox-conversations__artifacts-head",children:`已生成 ${e.length} 个文件`}),t.map(n=>E.jsx(UAt,{item:n},n.artifact_id)),r.length?E.jsxs("details",{className:"wandox-conversations__artifacts-intermediate",children:[E.jsx("summary",{children:`分析过程文件(${r.length})`}),r.map(n=>E.jsx(UAt,{item:n},n.artifact_id))]}):null]})}function Rmn(e,t){if(e.status==="awaiting"){const r=Date.parse(e.issued_at);if(Number.isFinite(r)&&t>r+e.ttl_seconds*1e3)return"expired"}return e.status}function Vv(){return E.jsxs(E.Fragment,{children:[E.jsx("img",{className:"wandox-conversations__brand-mark",src:zk,alt:"","aria-hidden":"true"}),"小多"]})}function O7({text:e}){return E.jsx("div",{className:"wandox-conversations__md",children:E.jsx(kx,{remarkPlugins:[Mx],children:e})})}function vee(e){const t=new Map;return e.map(r=>{const n=(t.get(r)??0)+1;return t.set(r,n),{key:`${n}-${r}`,text:r}})}function yee(e){return t=>{t.key==="Enter"&&!t.shiftKey&&!t.nativeEvent.isComposing&&(t.preventDefault(),e())}}function bee(e){const t=I.useRef(!1);return I.useEffect(()=>{e||(t.current=!1)}),()=>e||t.current?!1:(t.current=!0,!0)}function A3e({dispatch:e,scopeChoice:t,showScope:r=!0,sending:n=!1}){const[i,a]=I.useState(""),s=bee(n),o=()=>{!i.trim()||!s()||(e({type:"send",inputValue:i}),a(""))};return E.jsxs("div",{className:"w-composer",children:[E.jsx("textarea",{id:"w6-input",className:"w-composer__input","aria-label":"告诉小多你的目标",placeholder:"想了解什么,或希望我推进什么?",value:i,disabled:n,onChange:l=>a(l.target.value),onKeyDown:yee(o)}),E.jsxs("div",{className:"w-tools",children:[r?E.jsxs("select",{id:"w6-scope",className:"w-composer__select","aria-label":"专家范围",value:t,disabled:n,onChange:l=>e({type:"scope/change",value:l.target.value}),children:[E.jsx("option",{children:"自动调用专家"}),Tfn.map(l=>E.jsx("option",{children:l[0]},l[0]))]}):null,E.jsxs("button",{type:"button",className:"w-send","data-do":"send","aria-label":n?"正在发送":"发送","aria-busy":n,disabled:!i.trim()||n,onClick:o,children:[E.jsx("span",{children:n?"发送中…":"发送"}),n?E.jsx(na,{spin:!0}):E.jsx(CC,{})]})]})]})}function kmn({dispatch:e,sending:t=!1}){const[r,n]=I.useState(""),i=bee(t),a=()=>{!r.trim()||!i()||(e({type:"rec/send",value:r}),n(""))};return E.jsxs("div",{className:"wandox-recommendation__composer w-composer",children:[E.jsx("textarea",{id:"h11-input",className:"w-composer__input","aria-label":"补充推进信息",placeholder:"补充你的目标、顾虑,或想先看的问题…",value:r,disabled:t,onChange:s=>n(s.target.value),onKeyDown:yee(a)}),E.jsx("div",{className:"w-tools",children:E.jsx("button",{type:"button",className:"w-send","data-rec-send":"","aria-label":t?"正在发送":"发送","aria-busy":t,disabled:!r.trim()||t,onClick:a,children:t?E.jsx(na,{spin:!0}):E.jsx(CC,{})})})]})}function Mmn({dispatch:e,draft:t,sending:r=!1}){const n=bee(r),i=()=>{!t.trim()||!n()||e({type:"watch/propose"})};return E.jsxs("div",{className:"w-composer",children:[E.jsx("textarea",{id:"w8-input",className:"w-composer__input","aria-label":"交代要盯住的事",placeholder:"例如:盯住咖啡机销量,明显下降时在会话里提醒我",value:t,disabled:r,onChange:a=>e({type:"watch/draft",value:a.target.value}),onKeyDown:yee(i)}),E.jsxs("div",{className:"w-tools",children:[E.jsx("span",{className:"w-subhead",children:"说清你关心的事,小多来找对象和规则"}),E.jsx("button",{type:"button",className:"w-send","data-eight":"propose","aria-label":r?"正在发送":"发送","aria-busy":r,disabled:!t.trim()||r,onClick:i,children:r?E.jsx(na,{spin:!0}):E.jsx(CC,{})})]})]})}function Nmn({dispatch:e,revise:t,sending:r=!1,runState:n=null,onStop:i}){const[a,s]=I.useState(""),o=bee(r),l=()=>{!a.trim()||!o()||(e({type:"c12/send",value:a}),s(""))},u=n==="running"&&!!i,d=n==="stopping"&&!!i;return E.jsx("div",{className:"wandox-conversations__composer",children:E.jsxs("div",{className:`wandox-conversations__composer-shell${d?" has-wait":""}`,children:[E.jsx(Or.TextArea,{id:"c12-input","aria-label":"继续这件事的讨论",placeholder:n?"小多正在处理上一条,回复后可继续…":t?"补充你的要求…":"补充信息,或交代下一步…",value:a,autoSize:{minRows:1,maxRows:6},disabled:r,onChange:h=>s(h.target.value),onKeyDown:yee(l)}),E.jsx("div",{className:"wandox-conversations__composer-actions",children:d?E.jsxs("button",{type:"button",className:"wandox-conversations__composer-btn wandox-conversations__composer-btn--stopping","data-c12":"stop","aria-label":"正在停止","aria-busy":"true",disabled:!0,title:"正在停止,等当前步骤结束后给出已获得的结果",children:[E.jsx(na,{spin:!0}),E.jsx("span",{children:"正在停止…"})]}):u?E.jsx("button",{type:"button",className:"wandox-conversations__composer-btn wandox-conversations__composer-btn--stop","data-c12":"stop","aria-label":"停止本次处理",title:"停止本次处理;已获得的结果会保留",onClick:i,children:E.jsx("span",{className:"wandox-conversations__stop-glyph","aria-hidden":!0})}):E.jsx("button",{type:"button",className:"wandox-conversations__composer-btn wandox-conversations__composer-btn--send","data-c12":"send","aria-label":r?"正在发送":"发送","aria-busy":r,disabled:!a.trim()||r,onClick:l,children:r?E.jsx(na,{spin:!0}):E.jsx(CC,{})})})]})})}function KAt(){return E.jsx("p",{className:"w-notice wandox-conversations__stopped-note",role:"status",children:"已停止,以下为停止前已获得的结果。"})}function JAt({delivery:e}){return e.complete?null:E.jsxs("p",{className:"w-notice wandox-conversations__delivery-note",role:"status",children:[`本次为部分交付(${e.delivered}/${e.claimed}),可继续要求补齐。`,e.artifact_url?E.jsxs(E.Fragment,{children:[" ",E.jsx("a",{className:"w-link",href:e.artifact_url,target:"_blank",rel:"noreferrer",children:"下载已交付部分 →"})]}):null,e.note?E.jsx("span",{className:"wandox-conversations__delivery-note-detail",children:e.note}):null]})}function Aee({stream:e,userClass:t="w-message",artifacts:r,hideQuestion:n=!1}){return E.jsxs(E.Fragment,{children:[n?null:E.jsx("div",{className:t,children:e.question}),E.jsxs("div",{className:"w-answer",children:[E.jsx("h3",{className:"w-title w-title--card",children:E.jsx(Vv,{})}),e.status==="streaming"?E.jsxs(E.Fragment,{children:[E.jsx(gee,{status:e.status,steps:e.steps,thinking:e.thinking,startedAt:e.startedAt,durationMs:e.durationMs}),e.stopping?E.jsx("p",{className:"w-muted w-clamp",role:"status",children:"正在停止,等当前步骤结束后给出已获得的结果。"}):e.slow?E.jsx("p",{className:"w-muted w-clamp",children:"处理时间较长,仍在进行;结论出来后会显示在这里。"}):null]}):null,e.status==="done"&&e.stopped?E.jsx(KAt,{}):null,e.status==="done"&&e.delivery?E.jsx(JAt,{delivery:e.delivery}):null,e.status==="done"&&e.answer?E.jsx(O7,{text:e.answer}):null,e.status!=="streaming"?E.jsx(HAt,{artifacts:r}):null,e.status==="error"?E.jsx("p",{className:"w-notice",role:"alert",children:`本轮未完成:${e.error}`}):null,e.status!=="streaming"?E.jsx(gee,{status:e.status,steps:e.steps,thinking:e.thinking,startedAt:e.startedAt,durationMs:e.durationMs}):null]})]})}function zmn({stream:e}){return e.status==="error"?E.jsx("p",{className:"w-notice",role:"alert",children:`本轮未完成:${e.error}`}):e.status!=="done"?null:E.jsxs(E.Fragment,{children:[e.stopped?E.jsx(KAt,{}):null,e.delivery?E.jsx(JAt,{delivery:e.delivery}):null,E.jsx(gee,{status:e.status,steps:e.steps,thinking:e.thinking,startedAt:e.startedAt,durationMs:e.durationMs})]})}function Omn(){const[e,t]=I.useState(()=>Date.now());return I.useEffect(()=>{const r=window.setInterval(()=>t(Date.now()),3e4);return()=>window.clearInterval(r)},[]),e}function Bmn({extra:e}){const t=e.requested_pct,r=e.effective_pct,n=[];return t!=null&&Number.isFinite(Number(t))&&n.push(`策略请求 ${t}%`),r!=null&&Number.isFinite(Number(r))&&n.push(`实际生效 ${r}%`),n.length===0&&!e.limit_reason?null:E.jsxs("span",{className:"wandox-conversations__icard-field-extra",children:[n.length>0?`(${n.join(" / ")})`:null,e.limit_reason?E.jsx("span",{className:"wandox-conversations__icard-field-extra-detail",children:e.limit_reason}):null]})}function XAt({card:e,onRespond:t}){var g,v;const r=Omn(),n=Rmn(e,r),[i,a]=I.useState(null),[s,o]=I.useState(null),[l,u]=I.useState("");if(e.v>1)return E.jsxs("div",{className:"wandox-conversations__icard","data-shape":"fallback",children:[E.jsx("div",{className:"wandox-conversations__icard-title",children:e.title}),E.jsx("div",{className:"wandox-conversations__icard-text",children:e.text_fallback})]});const d=y=>{a(y.action_id);const A=s===y.action_id;t==null||t(e,y.action_id,A&&l.trim()||void 0)},h=y=>{if(!(!t||i)){if(y.requires_text&&s!==y.action_id){o(y.action_id);return}if(y.risk==="high"){Oi.confirm({title:y.label,content:"该操作不可逆或直接影响线上,确认执行?",okText:"确认执行",cancelText:"再想想",onOk:()=>d(y)});return}d(y)}},f=n==="expired"?"已过期":n==="cancelled"?"已关闭":n==="superseded"?"已被新内容替代":null,p=n!=="awaiting"&&n!=="answered",m=((g=e.body)==null?void 0:g.fields)??[];return E.jsxs("div",{className:"wandox-conversations__icard","data-shape":e.shape,children:[E.jsx("div",{className:"wandox-conversations__icard-title",children:e.title}),(v=e.body)!=null&&v.text?E.jsx("div",{className:"wandox-conversations__icard-text",children:e.body.text}):null,m.length>0?E.jsx("div",{className:"wandox-conversations__icard-fields",children:m.map(y=>E.jsxs("div",{className:"wandox-conversations__icard-field",children:[E.jsx("span",{className:"wandox-conversations__icard-field-k",children:y.k}),E.jsxs("span",{className:"wandox-conversations__icard-field-v",children:[y.v,y.extra?E.jsx(Bmn,{extra:y.extra}):null]})]},y.k))}):null,n==="answered"&&e.answered?E.jsxs("div",{className:"wandox-conversations__icard-answered",children:[`已答复 · ${e.answered.label}`,e.answered.text?`:${e.answered.text.slice(0,40)}`:"",` · ${e.answered.who} · ${e.answered.at}`]}):null,n==="awaiting"&&t?E.jsxs(E.Fragment,{children:[s?E.jsx("textarea",{className:"wandox-conversations__icard-note",value:l,rows:2,maxLength:1e3,placeholder:"补充说明(可留空)",onChange:y=>u(y.target.value)}):null,E.jsx("div",{className:"wandox-conversations__icard-actions",children:e.actions.map(y=>E.jsx("button",{type:"button",className:y.style==="primary"?"w-primary":y.style==="danger"?"w-chip wandox-conversations__icard-danger":"w-chip",disabled:i!==null,onClick:()=>h(y),children:s===y.action_id&&y.requires_text?"确认发送":y.label},y.action_id))}),e.shape==="choice"?E.jsx("div",{className:"wandox-conversations__icard-hint",children:"以上都不对?直接在下方输入框回复也可以。"}):null]}):null,p&&f?E.jsx("div",{className:"wandox-conversations__icard-closed",children:f}):null]})}function Pmn({state:e,dispatch:t}){var i;const r=e.conversations.filter(a=>!a.job&&a.session===e.chatSession),n=e.live.mode&&((i=e.live.stream)==null?void 0:i.surface)==="chat"?e.live.stream:null;return E.jsxs(E.Fragment,{children:[E.jsx("button",{type:"button",className:"w-link w-back","data-nav":"home",onClick:()=>t({type:"nav/home"}),children:"← 回到小多"}),E.jsx("h1",{className:"w-title w-title--page",children:"和小多一起想清楚"}),vee(r.map(a=>a.text)).map((a,s)=>E.jsxs(I.Fragment,{children:[E.jsx("div",{className:"w-message",children:a.text}),E.jsxs("div",{className:"w-answer",children:[E.jsx("h3",{className:"w-title w-title--card",children:E.jsx(Vv,{})}),E.jsx("p",{children:`我会先明确业务范围与目标,再装配${r[s].scope==="自动调用专家"?"相关":r[s].scope}专家,结合企业知识、当前数据和历史动作效果展开调查。`}),E.jsx("p",{className:"w-muted w-clamp",children:"这是会话流程演示,尚未进行真实数据查询或执行动作。"})]})]},a.key)),n?E.jsx(Aee,{stream:n}):null,E.jsx(A3e,{dispatch:t,scopeChoice:e.scopeChoice,sending:Ym(e,null)})]})}const Dmn=[["业务","我负责的业务"],["知识","知识与规则"],["团队","团队与授权"]],Lmn=[{field:"can_view",label:"可以查看",placeholder:"如:负责范围内的广告表现、订单与商品基础信息"},{field:"can_act",label:"可以操作",placeholder:"如:单次竞价调整不超过 10%"},{field:"needs_approval",label:"需要确认",placeholder:"如:增加总预算须经营负责人批准"}],_At=1e3,$At=500;function Vmn(e){return e?e.split(/[;;、,,]/).map(t=>t.trim()).filter(Boolean).join(`
|