@next-bricks/ai-portal 0.65.1 → 0.65.3

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.
Files changed (69) hide show
  1. package/dist/bricks.json +39 -42
  2. package/dist/chunks/{2742.19b8cbd2.js → 2742.3340a00e.js} +2 -2
  3. package/dist/chunks/2742.3340a00e.js.map +1 -0
  4. package/dist/chunks/3186.81f0a2f0.js +2 -0
  5. package/dist/chunks/3186.81f0a2f0.js.map +1 -0
  6. package/dist/chunks/4208.002ac189.js +2 -0
  7. package/dist/chunks/4208.002ac189.js.map +1 -0
  8. package/dist/chunks/4577.66294512.js +2 -0
  9. package/dist/chunks/4577.66294512.js.map +1 -0
  10. package/dist/chunks/4864.03882076.js +2 -0
  11. package/dist/chunks/4864.03882076.js.map +1 -0
  12. package/dist/chunks/5452.e451b025.js +2 -0
  13. package/dist/chunks/5452.e451b025.js.map +1 -0
  14. package/dist/chunks/{6450.ade6ef3e.js → 6450.9e9165f9.js} +2 -2
  15. package/dist/chunks/{6450.ade6ef3e.js.map → 6450.9e9165f9.js.map} +1 -1
  16. package/dist/chunks/{9515.468a8527.js → 9515.b58eb80e.js} +2 -2
  17. package/dist/chunks/9515.b58eb80e.js.map +1 -0
  18. package/dist/chunks/{9525.9e5140be.js → 9525.a53ee2a7.js} +3 -3
  19. package/dist/chunks/{9525.9e5140be.js.map → 9525.a53ee2a7.js.map} +1 -1
  20. package/dist/chunks/chat-panel.e8afa537.js +2 -0
  21. package/dist/chunks/chat-panel.e8afa537.js.map +1 -0
  22. package/dist/chunks/{chat-stream.90aa7647.js → chat-stream.cef88ead.js} +2 -2
  23. package/dist/chunks/{chat-stream.90aa7647.js.map → chat-stream.cef88ead.js.map} +1 -1
  24. package/dist/chunks/{main.d8edfa91.js → main.abe54caf.js} +2 -2
  25. package/dist/chunks/{main.d8edfa91.js.map → main.abe54caf.js.map} +1 -1
  26. package/dist/chunks/running-flow.37a428cf.js +3 -0
  27. package/dist/chunks/running-flow.37a428cf.js.map +1 -0
  28. package/dist/examples.json +17 -17
  29. package/dist/index.d03181ae.js +2 -0
  30. package/dist/{index.90d9f9da.js.map → index.d03181ae.js.map} +1 -1
  31. package/dist/manifest.json +371 -375
  32. package/dist/types.json +142 -167
  33. package/dist-types/chat-stream/Aside/TaskApp/TaskApp.d.ts +6 -0
  34. package/dist-types/chat-stream/StreamContext.d.ts +1 -0
  35. package/dist-types/chat-stream/interfaces.d.ts +6 -2
  36. package/dist-types/chat-stream/useAutoScroll.d.ts +1 -0
  37. package/dist-types/chat-stream/useConversationStream.d.ts +7 -2
  38. package/dist-types/running-flow/index.d.ts +2 -4
  39. package/dist-types/shared/ActivityPlan/PlanStateIcon.d.ts +7 -0
  40. package/dist-types/shared/ActivityPlan/i18n.d.ts +2 -1
  41. package/dist-types/shared/AskUser/AskUser.d.ts +6 -0
  42. package/dist-types/shared/AskUserTag/AskUserTag.d.ts +7 -0
  43. package/dist-types/shared/ChatBox/ChatBox.d.ts +3 -1
  44. package/dist-types/shared/TaskContext.d.ts +2 -0
  45. package/dist-types/shared/bricks.d.ts +0 -2
  46. package/dist-types/shared/getFlatChunks.d.ts +11 -2
  47. package/dist-types/shared/interfaces.d.ts +7 -2
  48. package/dist-types/shared/useFulfilledActiveDetail.d.ts +2 -2
  49. package/package.json +2 -2
  50. package/dist/chunks/2742.19b8cbd2.js.map +0 -1
  51. package/dist/chunks/3186.5c0ff6ad.js +0 -2
  52. package/dist/chunks/3186.5c0ff6ad.js.map +0 -1
  53. package/dist/chunks/4208.9304234a.js +0 -2
  54. package/dist/chunks/4208.9304234a.js.map +0 -1
  55. package/dist/chunks/5452.a5594a29.js +0 -2
  56. package/dist/chunks/5452.a5594a29.js.map +0 -1
  57. package/dist/chunks/7139.80d52ac3.js +0 -2
  58. package/dist/chunks/7139.80d52ac3.js.map +0 -1
  59. package/dist/chunks/7159.2fdda135.js +0 -2
  60. package/dist/chunks/7159.2fdda135.js.map +0 -1
  61. package/dist/chunks/9515.468a8527.js.map +0 -1
  62. package/dist/chunks/chat-panel.ca430fc7.js +0 -2
  63. package/dist/chunks/chat-panel.ca430fc7.js.map +0 -1
  64. package/dist/chunks/running-flow.4b117f11.js +0 -3
  65. package/dist/chunks/running-flow.4b117f11.js.map +0 -1
  66. package/dist/index.90d9f9da.js +0 -2
  67. package/dist-types/shared/ActivityPlan/getStateIcon.d.ts +0 -6
  68. /package/dist/chunks/{9525.9e5140be.js.LICENSE.txt → 9525.a53ee2a7.js.LICENSE.txt} +0 -0
  69. /package/dist/chunks/{running-flow.4b117f11.js.LICENSE.txt → running-flow.37a428cf.js.LICENSE.txt} +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[5452],{2367:(e,t,a)=>{a.d(t,{U:()=>r});var n=a(18769);function r(e,t,a,r){return(0,n.useMemo)((()=>{if(!e)return null;switch(e.type){case"job":{const a=null==t?void 0:t.get(e.id);if(a)return{type:"job",job:a};break}case"flow":{const t=null==a?void 0:a.get(e.id);if(t)return{type:"flow",flow:t};break}case"activity":{const t=null==r?void 0:r.get(e.id);if(t)return{type:"activity",flow:t.flow,activity:t.activity};break}}return null}),[e,r,a,t])}},6115:(e,t,a)=>{a.d(t,{M:()=>M});var n=a(18769),r=a.n(n),o=a(53373),l=a.n(o),i=a(67177),s=a(30672),c=a(72591),d=a.n(c),E=a(1740),u=a.n(E),p=a(88128),m=a.n(p),T=a(30855),_=a.n(T),A=a(93051),b=a.n(A),S=a(73656),g=a.n(S),f=a(87545),v={};v.styleTagTransform=g(),v.setAttributes=_(),v.insert=m().bind(null,"head"),v.domAPI=u(),v.insertStyleElement=b(),d()(f.A,v);const R=f.A&&f.A.locals?f.A.locals:void 0;var x=a(36903);let C=function(e){return e.ARGUMENTS="ARGUMENTS",e.PROCESS="PROCESS",e.RESPONSE="RESPONSE",e}({});const I="bricks/ai-portal/ToolCallDetail",O=i.i18n.getFixedT(null,I);var N=a(39439),h=a(29386),k=a(20555);function M(e){let{job:t}=e;const a=t.toolCall,[o,i,s]=(0,n.useMemo)((()=>{var e;const a=null===(e=t.messages)||void 0===e?void 0:e.filter((e=>"tool"===e.role)),n=[],r=[];let o;for(const e of null!=a?a:[])for(const t of e.parts){var l;if("data"===t.type)switch(null===(l=t.data)||void 0===l?void 0:l.type){case"progress":o=t;continue;case"markdown":case"cmdb_instance_detail":case"static_data_view":continue;default:n.push(t);continue}else if("file"===t.type)continue;r.push(t)}return[o,n,r]}),[t.messages]),c=i.length>0||!!o,d=s.length>0,E=["working","input-required"].includes(t.state)&&c||d?"completed":t.state,u=t.isError||"failed"===E;return r().createElement(r().Fragment,null,r().createElement("div",{className:R.detail},r().createElement("div",{className:R.heading},O(C.ARGUMENTS),":"),r().createElement("div",{className:`${R.body} ${x.A.markdown}`},r().createElement(y,{content:a.originalArguments,maybeJson:!0,fallbackAsMarkdown:!0}))),c&&r().createElement("div",{className:R.detail},r().createElement("div",{className:R.heading},O(C.PROCESS),":"),r().createElement("div",{className:R.body},i.map(((e,t)=>{var a;return"stream"===(null===(a=e.data)||void 0===a?void 0:a.type)?r().createElement("div",{key:t,className:l()(R["stream-message"],x.A.markdown)},r().createElement(h.w,{className:x.A["markdown-wrapper"],content:e.data.message})):r().createElement("div",{key:t,className:x.A.markdown},r().createElement(y,{content:JSON.stringify(e)}))})),!!o&&r().createElement("div",{className:l()(R["progress-container"],{[R["progress-fallback"]]:u})},r().createElement(N.W,{progress:o,failed:u})))),d&&r().createElement("div",{className:R.detail},r().createElement("div",{className:R.heading},O(C.RESPONSE),":"),r().createElement("div",{className:`${R.body} ${x.A.markdown}`},s.map(((e,t)=>{var a;return"data"===e.type&&"progress"===(null===(a=e.data)||void 0===a?void 0:a.type)?null:r().createElement(y,{key:t,content:"text"===e.type?e.text:JSON.stringify(e),maybeJson:"text"===e.type})})))))}function y(e){let{content:t,maybeJson:a,fallbackAsMarkdown:o}=e;const[l,i,c]=(0,n.useMemo)((()=>{if(a&&t)try{const e=JSON.parse(t);return[JSON.stringify(e,null,2),!1,!1]}catch{if(o)return[t,!1,!0]}return[t,!0,!1]}),[t,o,a]);return c?r().createElement("div",{className:R["markdown-block"]},r().createElement(h.w,{className:x.A["markdown-wrapper"],content:l})):i?r().createElement("div",{className:R["code-fallback"]},r().createElement(k.j,null,r().createElement("code",null,l))):r().createElement(s.yQ,{className:R["code-block"],source:l,language:"json",themeVariant:"elevo"})}(0,i.initializeI18n)(I,{en:{ARGUMENTS:"Arguments",PROCESS:"Process",RESPONSE:"Response"},zh:{ARGUMENTS:"参数",PROCESS:"过程",RESPONSE:"响应"}})},8590:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(36758),r=a.n(n),o=a(40935),l=a.n(o)()(r());l.push([e.id,".node-feedback--qSAvjvCa{width:var(--cruise-canvas-node-width-medium);background:rgba(255,255,255,0.2);border-radius:12px;border:1px solid rgba(255,255,255,0.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px 28px}.heading--zbbPDsFk{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.title--l9cmJRhB{font-weight:500}.form-item--wtgYuM1v{font-size:12px;line-height:17px;color:rgba(0,0,0,0.88)}.form-item--wtgYuM1v.horizontal--zqc5U1Jh{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:1em}.form-item--wtgYuM1v.vertical--i26lXOiT{margin-top:16px}.form-item--wtgYuM1v.vertical--i26lXOiT label{display:block;color:rgba(0,0,0,0.45);margin-bottom:8px}.form-item--wtgYuM1v textarea{width:100%;background:none;border-radius:8px;border:1px solid rgba(0,0,0,0.15);padding:8px;color:#262626}.form-item--wtgYuM1v textarea:focus{outline:none;border-color:rgba(0,0,0,0.25)}.options--Cak4FPTk{display:flex;align-items:center}.radio--P5Vo_D45{position:relative;cursor:pointer}.radio--P5Vo_D45 input{width:0px;height:0px;position:absolute;-webkit-appearance:none;-moz-appearance:none;appearance:none}.radio--P5Vo_D45 span{display:flex;align-items:center;justify-content:center;width:64px;height:28px;border-radius:8px;background:none;border:1px solid rgba(0,0,0,0.15)}.radio--P5Vo_D45 input:checked + span{background:rgba(255,255,255,0.5);border:none}.radio--P5Vo_D45 input:not(:checked) + span:hover{background:rgba(255,255,255,0.3);border:none}.radio--P5Vo_D45 + .radio--P5Vo_D45{margin-left:8px}.submit--eCyA49Nq{display:flex;justify-content:end;margin-top:18px;gap:8px}.validate--krlXob4C .form-item--wtgYuM1v:has(input:invalid) .label--U8YsN4Mm{color:#f24c25}.submitted--XxktB9y5{background:#d0e7d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;font-weight:500;color:#009929;padding:17px;text-align:center}",""]),l.locals={"node-feedback":"node-feedback--qSAvjvCa",heading:"heading--zbbPDsFk",title:"title--l9cmJRhB","form-item":"form-item--wtgYuM1v",horizontal:"horizontal--zqc5U1Jh",vertical:"vertical--i26lXOiT",options:"options--Cak4FPTk",radio:"radio--P5Vo_D45",submit:"submit--eCyA49Nq",validate:"validate--krlXob4C",label:"label--U8YsN4Mm",submitted:"submitted--XxktB9y5"};const i=l},20918:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(36758),r=a.n(n),o=a(40935),l=a.n(o)()(r());l.push([e.id,".button--Fe8aCvnf{background:rgba(255,255,255,0.5);box-shadow:0px 4px 8px 0px rgba(0,0,0,0.06);border:1px solid rgba(255,255,255,0.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;gap:5px;height:40px;border-radius:20px;padding:0 16px;color:#262626;cursor:pointer;margin:0 auto}.button--Fe8aCvnf:focus{outline:none}.button--Fe8aCvnf[disabled]{color:rgba(0,0,0,0.45);cursor:default}",""]),l.locals={button:"button--Fe8aCvnf"};const i=l},32146:(e,t,a)=>{a.d(t,{d:()=>r});var n=a(18769);function r(e){let{activeDetail:t,activeExpandedViewJobId:a,activeFile:r,activeImages:o,subActiveDetail:l,setActiveFile:i,setActiveImages:s,setActiveExpandedViewJobId:c,setActiveDetail:d,setSubActiveDetail:E}=e;const u=(0,n.useRef)(!1);(0,n.useEffect)((()=>{const e=()=>{u.current=!0},t=()=>{u.current=!1};return document.addEventListener("compositionstart",e),document.addEventListener("compositionend",t),()=>{document.removeEventListener("compositionstart",e),document.removeEventListener("compositionend",t)}}),[]),(0,n.useEffect)((()=>{const e=e=>{u.current||"Escape"===e.key&&(r?i(null):o?s(null):a?c(null):l?E(null):t&&d(null))};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[t,a,r,o,l,i,s,c,d,E])}},39439:(e,t,a)=>{a.d(t,{W:()=>v});var n=a(18769),r=a.n(n),o=a(53373),l=a.n(o),i=a(72591),s=a.n(i),c=a(1740),d=a.n(c),E=a(88128),u=a.n(E),p=a(30855),m=a.n(p),T=a(93051),_=a.n(T),A=a(73656),b=a.n(A),S=a(67993),g={};g.styleTagTransform=b(),g.setAttributes=m(),g.insert=u().bind(null,"head"),g.domAPI=d(),g.insertStyleElement=_(),s()(S.A,g);const f=S.A&&S.A.locals?S.A.locals:void 0;function v(e){let{progress:t,failed:a}=e;const n=t.data;return r().createElement("div",{className:l()(f["progress-line"],{[f.failed]:a})},r().createElement("div",{className:l()(f.step),key:n.progress},r().createElement("div",{className:f.axis},r().createElement("div",{className:f.line}),r().createElement("div",{className:f.dot})),r().createElement("div",{className:f.progress},r().createElement("span",{className:f.count},n.progress),r().createElement("span",null,"/"),r().createElement("span",{className:f.total},n.total)),r().createElement("div",{className:f.description},n.message)))}},39649:(e,t,a)=>{a.d(t,{t:()=>k});var n=a(18769),r=a.n(n),o=a(53373),l=a.n(o),i=a(21302),s=a.n(i),c=a(41030),d=a(62916),E=a(72591),u=a.n(E),p=a(1740),m=a.n(p),T=a(88128),_=a.n(T),A=a(30855),b=a.n(A),S=a(93051),g=a.n(S),f=a(73656),v=a.n(f),R=a(42671),x={};x.styleTagTransform=v(),x.setAttributes=b(),x.insert=_().bind(null,"head"),x.domAPI=m(),x.insertStyleElement=g(),u()(R.A,x);const C=R.A&&R.A.locals?R.A.locals:void 0;var I=a(30672),O=a(76720),N=a(39439);const h=e=>{let t;return null==e||e.findLast((e=>{var a;return t=null===(a=e.parts)||void 0===a?void 0:a.findLast((e=>{var t;return"data"===e.type&&"progress"===(null===(t=e.data)||void 0===t?void 0:t.type)})),!!t})),t};function k(e){var t;let{job:a,variant:o}=e;const{setActiveDetail:i,separateInstructions:E}=(0,n.useContext)(O.j),u=a.toolCall,p=(null===(t=u.annotations)||void 0===t?void 0:t.title)||u.name,m=E?p:a.instruction||p,[T,_]=(0,n.useMemo)((()=>{var e;const t=null===(e=a.messages)||void 0===e?void 0:e.filter((e=>"tool"===e.role));return[h(t),null==t?void 0:t.some((e=>e.parts.some((e=>"text"===e.type))))]}),[a.messages]),A=(0,n.useMemo)((()=>"read-only"===o),[o]),b=(0,n.useCallback)((()=>{if("read-only"===o)return;const e={type:"job",id:a.id};i((t=>(0,c.isEqual)(t,e)?t:e))}),[a.id,o,i]),S=["working","input-required"].includes(a.state)&&_?"completed":a.state,g=a.isError||"failed"===S;return r().createElement("div",{className:l()(C["tool-call"],{[C.failed]:g,[C["read-only"]]:A}),onClick:b},r().createElement("div",{className:l()(C.status)},a.isError||"failed"===S?r().createElement(I.Bj,{className:C.icon,lib:"fa",prefix:"fas",icon:"xmark"}):"completed"===S?r().createElement(I.Bj,{className:C.icon,lib:"fa",prefix:"fas",icon:"check"}):"working"===S?r().createElement(I.Bj,{className:C.icon,lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}):"input-required"===S?r().createElement(I.Bj,{className:C.icon,lib:"fa",prefix:"far",icon:"circle-user"}):"canceled"===S||"terminated"===S?r().createElement(I.Bj,{className:C.icon,lib:"fa",prefix:"far",icon:"circle-stop"}):r().createElement(I.Bj,{className:C.icon,lib:"fa",prefix:"far",icon:"clock"}),r().createElement("span",{className:C.name},"read-only"===o?p:m),a.startTime?r().createElement("span",{className:C.timing},`${(0,d.P)(1e3*a.startTime,d.c.accurate)}${a.endTime?` (${s().duration(1e3*a.endTime-1e3*a.startTime).humanize({ss:-1})})`:""}`):null),!!T&&!A&&r().createElement(N.W,{progress:T,failed:g}))}},42671:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(36758),r=a.n(n),o=a(40935),l=a.n(o)()(r());l.push([e.id,'.tool-call--aTh276av{--failed-color:#f24c25;--border-color:#e2e2ec;--status-border-color:rgba(226,226,236,0.8);font-size:13px;color:#595959;border-radius:10px;border:1px solid var(--border-color);background:#e6e9f3}.tool-call--aTh276av:not(.read-only--xWUswNds):hover{background:#e4e9fb;border:1px solid #b8c1ff}.tool-call--aTh276av:not(:last-child){margin-bottom:10px}.tool-call--aTh276av:not(.read-only--xWUswNds){cursor:pointer}.tool-call--aTh276av .status--V5ZXGYOG:not(:last-child){border-bottom:1px solid var(--status-border-color)}.read-only--xWUswNds{font-size:14px;padding:4px}.failed--sz70SlSa{background:#fef5f3}.failed--sz70SlSa:not(.read-only--xWUswNds):hover{background:#fee7e1;border:1px solid #ffc3b5}.failed--sz70SlSa .status--V5ZXGYOG:not(:last-child){border-bottom:1px solid rgba(253,225,218,0.8)}.status--V5ZXGYOG{height:24px;display:flex;align-items:center;padding:0 12px;color:#262626}.timing--GjuZkMuV{display:none;color:#8c8c8c}.read-only--xWUswNds .timing--GjuZkMuV,\n[class^="node-job--"]:hover .timing--GjuZkMuV,\n.status--V5ZXGYOG:hover .timing--GjuZkMuV{display:block}.icon--LTp5Jjna{margin-right:8px;color:#8c8c8c}.failed--sz70SlSa .icon--LTp5Jjna{color:var(--failed-color)}.name--FwiqyIlQ{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',""]),l.locals={"tool-call":"tool-call--aTh276av","read-only":"read-only--xWUswNds",status:"status--V5ZXGYOG",failed:"failed--sz70SlSa",timing:"timing--GjuZkMuV",icon:"icon--LTp5Jjna",name:"name--FwiqyIlQ"};const i=l},62309:(e,t,a)=>{a.d(t,{f:()=>M});var n=a(18769),r=a.n(n),o=a(53373),l=a.n(o),i=a(60128),s=a(41030),c=a(73301),d=a(72591),E=a.n(d),u=a(1740),p=a.n(u),m=a(88128),T=a.n(m),_=a(30855),A=a.n(_),b=a(93051),S=a.n(b),g=a(73656),f=a.n(g),v=a(85036),R={};R.styleTagTransform=f(),R.setAttributes=A(),R.insert=T().bind(null,"head"),R.domAPI=p(),R.insertStyleElement=S(),E()(v.A,R);const x=v.A&&v.A.locals?v.A.locals:void 0;var C=a(30672),I=a(23241),O=a(40177),N=a(76720),h=a(91797),k=a(65549);function M(e){var t,a;let{views:o}=e;const d=(0,n.useMemo)((()=>(0,s.uniqueId)()),[]),{workspace:E,previewUrlTemplate:u,activeExpandedViewJobId:p,setActiveExpandedViewJobId:m,manuallyUpdatedViews:T,showFeedbackOnView:_,onFeedbackOnView:A,feedbackDoneViews:b}=(0,n.useContext)(N.j),S=(0,n.useRef)(null),g=(0,n.useRef)(null),f=p?null!==(t=null==T?void 0:T.get(p))&&void 0!==t?t:null===(a=o.find((e=>e.id===p)))||void 0===a?void 0:a.view:null,v=(0,h.G)(null==f?void 0:f.viewId,_)||f&&(null==b?void 0:b.has(f.viewId)),[R,M]=(0,n.useState)(null),y=!!R&&!(null==f||!f.viewId)&&"config"!==f.from,[D,w]=(0,n.useState)(o);(0,n.useEffect)((()=>{var e;M(null);let t=!1;return null==f||null===(e=f.asyncConstructedView)||void 0===e||e.then((e=>{t||M(e)})),()=>{t=!0}}),[f]),(0,n.useEffect)((()=>{Promise.all(o.map((async e=>{var t;const a=await e.view.asyncConstructedView;return{...e,title:null==a||null===(t=a.entry)||void 0===t||null===(t=t.defaultExport)||void 0===t?void 0:t.title}}))).then((e=>{w(e)}))}),[o]),(0,n.useEffect)((()=>{const e=S.current;if(!e)return;const t=(0,I.d)(d),a=(0,i.unstable_createRoot)(e,{portal:t,supportsUseChildren:!0});return g.current=a,()=>{a.unmount(),t.remove(),g.current=null}}),[d]);const[P,F]=(0,n.useState)(!0);(0,n.useEffect)((()=>{if(F(!0),!R)return;let e=!1;return(async()=>{try{var t;const a=await(0,c.z)(R,{rootId:d,workspace:E,expanded:!0,withContexts:R.withContexts});if(e)return;const{brick:n,context:r,functions:o,templates:l}=a;await(null===(t=g.current)||void 0===t?void 0:t.render(n,{context:r,functions:o,templates:l}))}catch(e){console.error("Failed to render view:",e)}e||F(!1)})(),()=>{e=!0}}),[d,E,R]);const L=(0,n.useCallback)((()=>{m(null)}),[m]);return r().createElement("div",{className:x["expanded-view"]},P&&r().createElement("div",{className:x.loading},r().createElement(C.Bj,{lib:"antd",icon:"loading-3-quarters",spinning:!0})),r().createElement("div",{className:l()(x.body,{}),ref:S,"data-root-id":d}),r().createElement("ul",{className:x.nav},D.map((e=>{var t;return r().createElement("li",{key:e.id},r().createElement("button",{className:l()(x["nav-button"],{[x.active]:p===e.id}),onClick:()=>m(e.id)},null!==(t=e.title)&&void 0!==t?t:"…"))}))),r().createElement("div",{className:x.buttons},_&&!v&&y&&r().createElement(C.Py,{icon:O.mJ,onClick:()=>null==A?void 0:A(f.viewId)}),!(null==f||!f.viewId||f.withContexts||!u)&&r().createElement(C.Py,{icon:O.ju,onClick:()=>{window.open(`${(0,i.getBasePath)().slice(0,-1)}${(0,k.Q)(u,{viewId:f.viewId})}`,"_blank")}}),r().createElement(C.Py,{icon:O.LQ,onClick:L})))}},62916:(e,t,a)=>{a.d(t,{c:()=>c,P:()=>d});var n=a(21302),r=a(67177);const o="libs-datetime";let l=function(e){return e.TODAY="TODAY",e.YESTERDAY="YESTERDAY",e.FUTURE_AFTER="FUTURE_AFTER",e.FORMAT_MEDIUM_DATETIME="FORMAT_MEDIUM_DATETIME",e.FORMAT_MEDIUM_DATE="FORMAT_MEDIUM_DATE",e.FORMAT_SHORT_DATETIME="FORMAT_SHORT_DATETIME",e.FORMAT_SHORT_DATE="FORMAT_SHORT_DATE",e.FORMAT_SHORT_DAY_DATETIME="FORMAT_SHORT_DAY_DATETIME",e.FORMAT_SHORT_DAY_DATE="FORMAT_SHORT_DAY_DATE",e.SECONDS="SECONDS",e.MILL_SECONDS="MILL_SECONDS",e.MINUTES="MINUTES",e.HOURS="HOURS",e.DAYS="DARS",e.MONTHS="MONTHS",e}({});const i={[l.YESTERDAY]:"Yesterday",[l.TODAY]:"Today",[l.FUTURE_AFTER]:"After {{time}}",[l.FORMAT_MEDIUM_DATETIME]:"LLL",[l.FORMAT_MEDIUM_DATE]:"LL",[l.FORMAT_SHORT_DATETIME]:"MMM D ah:mm",[l.FORMAT_SHORT_DATE]:"MMM D",[l.FORMAT_SHORT_DAY_DATETIME]:"MMM D HH:mm",[l.FORMAT_SHORT_DAY_DATE]:"MMM D",[l.MONTHS]:"months",[l.HOURS]:"hours",[l.SECONDS]:"seconds",[l.MILL_SECONDS]:"millseconds",[l.DAYS]:"days",[l.MINUTES]:"minutes"},s={[l.YESTERDAY]:"昨天",[l.TODAY]:"今天",[l.FUTURE_AFTER]:"{{time}}后",[l.FORMAT_MEDIUM_DATETIME]:"LL ah:mm",[l.FORMAT_MEDIUM_DATE]:"LL",[l.FORMAT_SHORT_DATETIME]:"MMMD日 ah:mm",[l.FORMAT_SHORT_DATE]:"MMMD日",[l.FORMAT_SHORT_DAY_DATETIME]:"MMMD日 HH:mm",[l.FORMAT_SHORT_DAY_DATE]:"MMMD日",[l.MONTHS]:"个月",[l.HOURS]:"小时",[l.SECONDS]:"秒",[l.MILL_SECONDS]:"毫秒",[l.DAYS]:"天",[l.MINUTES]:"分钟"};(0,r.initializeI18n)(o,{en:i,zh:s});let c=function(e){return e.full="full",e.default="default",e.relative="relative",e.past="past",e.future="future",e.accurate="accurate",e.auto="auto",e}({});const d=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.auto,a=arguments.length>2?arguments[2]:void 0;if(null==e||e===-1/0||e===1/0)return null;const i=n(e),s=n().add(0),d="date"===a?"LL":"LL HH:mm",E=r.i18n.t(`${o}:${"date"===a?l.FORMAT_MEDIUM_DATE:l.FORMAT_MEDIUM_DATETIME}`),u=r.i18n.t(`${o}:${"date"===a?l.FORMAT_SHORT_DATE:l.FORMAT_SHORT_DATETIME}`),p=r.i18n.t(`${o}:${"date"===a?l.FORMAT_SHORT_DAY_DATE:l.FORMAT_SHORT_DAY_DATETIME}`),m="date"===a?"LL":"LL HH:mm:ss";let T;switch(t){case c.full:T=i.format(d);break;case c.default:T=i.format(m);break;case c.relative:{const e=+i-+s;T=e<=0?n.duration(e).humanize(!0):r.i18n.t(`${o}:${l.FUTURE_AFTER}`,{time:n.duration(e).humanize()});break}case c.past:T=n.duration(Math.min(+i-+s,0)).humanize(!0);break;case c.future:T=r.i18n.t(`${o}:${l.FUTURE_AFTER}`,{time:n.duration(Math.max(+i-+s,0)).humanize()});break;case c.accurate:T=(()=>{const e=+i.diff(s,"days",!0).toFixed(1);let t="";const n=i.year()<s.year()?"lastYear":e<-2||i.isBefore(s.clone().add(-1,"day"),"day")?"twoDaysBefore":i.isSame(s.clone().add(-1,"day"),"day")?"yesterday":i.isSame(s,"day")?"sameDay":e<2&&i.isSame(s.clone().add(1,"day"),"day")?"nextDay":e<7?"nextWeek":"default";switch(n){case"sameDay":case"yesterday":t=`${r.i18n.t(`${o}:${"yesterday"===n?l.YESTERDAY:l.TODAY}`)}${"date"===a?"":` ${i.format("HH:mm")}`}`;break;case"lastYear":default:t=i.format(d);break;case"twoDaysBefore":t=i.format(p)}return t})();break;default:T=i.format(i.year()===s.year()?u:E)}return T}},67993:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(36758),r=a.n(n),o=a(40935),l=a.n(o)()(r());l.push([e.id,".progress-line--CX_xuAHC{--breathing-color:rgba(205,205,217,0.7);--breathing-color-2:rgba(205,205,217,0);display:flex;flex-direction:column}.progress-line--CX_xuAHC .step--YXd66tSR{position:relative;display:flex;align-items:center;padding:10px 4px 10px 16px;color:rgba(0,0,0,0.5)}.progress-line--CX_xuAHC .step--YXd66tSR .axis--T4nVxQt5{position:absolute;top:0;bottom:0;left:14px;width:1px}.progress-line--CX_xuAHC .step--YXd66tSR .axis--T4nVxQt5 .line--BUSBjzxD{width:1px;height:100%;background:linear-gradient(172deg,rgba(205,205,217,0) 0%,#cdcdd9 46%,rgba(205,205,217,0) 100%)}.progress-line--CX_xuAHC .step--YXd66tSR .axis--T4nVxQt5 .dot--TPMEta87{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:5px;height:5px;background:rgba(205,205,217,1);border-radius:50%}.progress-line--CX_xuAHC .step--YXd66tSR .progress--alc7SspF{padding:3px;margin:0 8px 0 12px;border-radius:10px;line-height:1;background:#ffffff}.progress-line--CX_xuAHC .step--YXd66tSR .progress--alc7SspF .count--RdZcMYhZ{font-weight:400}.progress-line--CX_xuAHC .step--YXd66tSR .progress--alc7SspF .total--BKoLTm8c{opacity:0.6}.progress-line--CX_xuAHC .step--YXd66tSR .description--AyfMh1_M{flex:1;color:#999}.progress-line--CX_xuAHC .step--YXd66tSR:last-child .progress--alc7SspF .count--RdZcMYhZ{font-weight:600}.failed--Q9TADo_k .step--YXd66tSR:last-child .axis--T4nVxQt5 .line--BUSBjzxD{background:linear-gradient(172deg,rgba(242,76,37,0) 0%,rgba(242,76,37,0.3) 47%,rgba(242,76,37,0) 100%)}.failed--Q9TADo_k .step--YXd66tSR:last-child .axis--T4nVxQt5 .dot--TPMEta87{background:rgba(255,154,120,1)}.failed--Q9TADo_k .step--YXd66tSR:last-child .progress--alc7SspF{background:#ffd6d6}.failed--Q9TADo_k .step--YXd66tSR:last-child .progress--alc7SspF .count--RdZcMYhZ{color:#f44336}",""]),l.locals={"progress-line":"progress-line--CX_xuAHC",step:"step--YXd66tSR",axis:"axis--T4nVxQt5",line:"line--BUSBjzxD",dot:"dot--TPMEta87",progress:"progress--alc7SspF",count:"count--RdZcMYhZ",total:"total--BKoLTm8c",description:"description--AyfMh1_M",failed:"failed--Q9TADo_k"};const i=l},78697:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(36758),r=a.n(n),o=a(40935),l=a.n(o)()(r());l.push([e.id,".node-replay--RJPyOwC6{width:var(--cruise-canvas-node-width-large);max-width:100%;background:rgba(255,255,255,0.5);border-radius:12px;border:1px solid rgba(255,255,255,0.4);padding:4px}.finished--DCI6ewIN:not(.chat--YJT4RmwA){max-width:90vw}.node-replay--RJPyOwC6.chat--YJT4RmwA{margin-top:14px}.bar--Pae7qP58{background:rgba(184,187,205,0.3);border-radius:8px;border:1px solid rgba(255,255,255,0.4);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.buttons--m0009sdd{display:flex;align-items:center;gap:8px}.label--VlLhkZeC{font-weight:500}.cases--czpvOoLX,\n.projects--W1KI5fUu{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.content--rFWHJyEy{padding:0 16px 16px}.heading--jlFUCX5n{margin:26px 0 10px;color:rgba(0,0,0,0.6);line-height:20px}.tips--FzM5aSiq{font-size:12px;line-height:20px;color:rgba(0,0,0,0.35);margin:-3px 0 10px}.project--BSu5VIGZ{width:100%}.project--BSu5VIGZ::part(link){height:48px;background:rgba(255,255,255,0.5);border-radius:12px;border:1px solid rgba(255,255,255,0.4);display:flex;align-items:center;padding:0 16px;gap:6px;font-weight:500;color:#262626}.project--BSu5VIGZ::part(link):hover{color:var(--elevo-color-brand)}.tag--Hp8eFjie{display:inline-block;padding:0 4px;background:rgba(37,64,255,0.1);border-radius:4px;color:var(--elevo-color-brand)}",""]),l.locals={"node-replay":"node-replay--RJPyOwC6",finished:"finished--DCI6ewIN",chat:"chat--YJT4RmwA",bar:"bar--Pae7qP58",buttons:"buttons--m0009sdd",label:"label--VlLhkZeC",cases:"cases--czpvOoLX",projects:"projects--W1KI5fUu",content:"content--rFWHJyEy",heading:"heading--jlFUCX5n",tips:"tips--FzM5aSiq",project:"project--BSu5VIGZ",tag:"tag--Hp8eFjie"};const i=l},85036:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(36758),r=a.n(n),o=a(40935),l=a.n(o)()(r());l.push([e.id,".expanded-view--Pl3PL2nR{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;background:rgba(247,248,250,0.5);-webkit-backdrop-filter:blur(74px);backdrop-filter:blur(74px);padding:106px var(--page-padding-right) 40px var(--page-padding-left);overflow-y:auto;display:flex;flex-direction:column;align-items:center}.nav--dLWwzH3E{position:absolute;top:39px;left:50%;transform:translate(-50%,0);list-style:none;margin:0 0 25px;padding:4px;display:flex;justify-content:start;align-items:center;background:rgba(2,0,102,0.05);box-shadow:inset 0px 1px 2px 0px #cdd1d7;border-radius:21px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.nav-button--zv2Yj10m{display:flex;align-items:center;height:34px;padding:0 26px;background:none;border:none;color:#595959;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.nav-button--zv2Yj10m:not(:last-child){margin-right:12px}.nav-button--zv2Yj10m.active--MHyqtaKu{background:rgba(255,255,255,0.6);border-radius:20px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:var(--elevo-color-brand);text-shadow:-0.02ex 0 0 currentColor,0.02ex 0 0 currentColor}.nav-button--zv2Yj10m:hover{color:var(--elevo-color-brand)}.body--edodw95r{width:100%;max-width:1556px}.body--edodw95r.small--Y90AL_bt{max-width:804px}.loading--UxfFogUY{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;color:#fff}.buttons--ZZYyY2LU{position:absolute;top:24px;right:24px;display:flex;gap:12px}",""]),l.locals={"expanded-view":"expanded-view--Pl3PL2nR",nav:"nav--dLWwzH3E","nav-button":"nav-button--zv2Yj10m",active:"active--MHyqtaKu",body:"body--edodw95r",small:"small--Y90AL_bt",loading:"loading--UxfFogUY",buttons:"buttons--ZZYyY2LU"};const i=l},87545:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(36758),r=a.n(n),o=a(40935),l=a.n(o)()(r());l.push([e.id,'.detail--JiiWugxP{margin-top:20px;color:#595959;margin-bottom:7px}.code-block--wccWPbbW::part(pre){border:1px solid #ccd1de}.code-fallback--a8nCduaZ [class*="code-wrapper--"]::part(pre){white-space:pre-wrap;background:#fef5f3!important}.progress-container--tFUAQo73,\n.stream-message--G0tAm9aa{border-radius:9px;border:1px solid #ccd1de;background:#fff}.progress-container--tFUAQo73{padding:6px 2px}.progress-fallback--Xto82BYu{background:#fef5f3}.stream-message--G0tAm9aa{padding:1em;margin:0.5em 0}.markdown-block--C3siNgW9{border:1px solid #ccd1de;border-radius:9px;padding:1em;background:#fff}',""]),l.locals={detail:"detail--JiiWugxP","code-block":"code-block--wccWPbbW","code-fallback":"code-fallback--a8nCduaZ","progress-container":"progress-container--tFUAQo73","stream-message":"stream-message--G0tAm9aa","progress-fallback":"progress-fallback--Xto82BYu","markdown-block":"markdown-block--C3siNgW9"};const i=l},88253:(e,t,a)=>{a.d(t,{o:()=>r});var n=a(18769);function r(e){return(0,n.useMemo)((()=>{const t=new Map,a=new Map;for(const n of e){n.taskId&&t.set(n.taskId,n);for(const e of n.spec)for(const t of e.serviceFlowActivities)t.taskId&&a.set(t.taskId,{activity:t,flow:n})}return{flowMap:t,activityMap:a}}),[e])}},94625:(e,t,a)=>{a.d(t,{k:()=>M});var n=a(18769),r=a.n(n),o=a(53373),l=a.n(o),i=a(67177),s=a(72591),c=a.n(s),d=a(1740),E=a.n(d),u=a(88128),p=a.n(u),m=a(30855),T=a.n(m),_=a(93051),A=a.n(_),b=a(73656),S=a.n(b),g=a(8590),f={};f.styleTagTransform=S(),f.setAttributes=T(),f.insert=p().bind(null,"head"),f.domAPI=E(),f.insertStyleElement=A(),c()(g.A,f);const v=g.A&&g.A.locals?g.A.locals:void 0;let R=function(e){return e.YES="YES",e.NO="NO",e.SUBMIT="SUBMIT",e.RESET="RESET",e.FEEDBACK_NODE_TITLE="FEEDBACK_NODE_TITLE",e.PROBLEM_FEEDBACK="PROBLEM_FEEDBACK",e.PROBLEM_FEEDBACK_PLACEHOLDER="PROBLEM_FEEDBACK_PLACEHOLDER",e.IS_THE_TASK_PLAN_COMPLETE="IS_THE_TASK_PLAN_COMPLETE",e.IS_THE_TASK_PLAN_LOGICALLY_CORRECT="IS_THE_TASK_PLAN_LOGICALLY_CORRECT",e.ARE_THE_TASK_PLAN_STEPS_CONCISE="ARE_THE_TASK_PLAN_STEPS_CONCISE",e.ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE="ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE",e.IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT="IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT",e.THANKS_FOR_YOUR_FEEDBACK="THANKS_FOR_YOUR_FEEDBACK",e}({});const x="bricks/ai-portal/NodeFeedback",C=i.i18n.getFixedT(null,x);var I=a(30672),O=a(40177),N=a(76720);let h;function k(){return h||(h=[{label:`1. ${C(R.IS_THE_TASK_PLAN_COMPLETE)}`,value:"计划完备",group:"plan"},{label:`2. ${C(R.IS_THE_TASK_PLAN_LOGICALLY_CORRECT)}`,value:"逻辑正确",group:"plan"},{label:`3. ${C(R.ARE_THE_TASK_PLAN_STEPS_CONCISE)}`,value:"步骤精简",group:"plan"},{label:`4. ${C(R.ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE)}`,value:"结论准确",group:"result"},{label:`5. ${C(R.IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT)}`,value:"支撑证据充足",group:"result"}]),h}function M(e){let{className:t}=e;const{submittingFeedback:a,submittedFeedback:o,setShowFeedback:i,onSubmitFeedback:s}=(0,n.useContext)(N.j),c=(0,n.useRef)(null),d=k(),[E,u]=(0,n.useState)(!1),p=(0,n.useCallback)((e=>{var t,a;if(e.preventDefault(),u(!0),null===(t=c.current)||void 0===t||!t.reportValidity())return;const n=new FormData(c.current),r=[],o=[];for(let e=0;e<d.length;e++){const t=n.get(`feedback-check-${e}`);t&&("plan"===d[e].group?r.push(t):o.push(t))}s({plan:r,result:o,feedback:null!==(a=n.get("feedback"))&&void 0!==a?a:""})}),[d,s]),m=(0,n.useCallback)((e=>{var t;e.preventDefault(),u(!1),null===(t=c.current)||void 0===t||t.reset()}),[]);return o?r().createElement("div",{className:l()(v["node-feedback"],v.submitted,t)},C(R.THANKS_FOR_YOUR_FEEDBACK)):r().createElement("div",{className:l()(v["node-feedback"],t)},r().createElement("div",{className:v.heading},r().createElement("div",{className:v.title},C(R.FEEDBACK_NODE_TITLE)),r().createElement(I.Py,{icon:O.LQ,variant:"mini",onClick:()=>i(!1)})),r().createElement("form",{className:l()(v.form,{[v.validate]:E}),ref:c},d.map(((e,t)=>r().createElement("div",{key:t,className:`${v["form-item"]} ${v.horizontal}`},r().createElement("div",{className:v.label},e.label),r().createElement("div",{className:v.options},r().createElement("label",{className:v.radio},r().createElement("input",{type:"radio",required:!0,name:`feedback-check-${t}`,value:e.value}),r().createElement("span",null,C(R.YES))),r().createElement("label",{className:v.radio},r().createElement("input",{type:"radio",required:!0,name:`feedback-check-${t}`,value:""}),r().createElement("span",null,C(R.NO))))))),r().createElement("div",{className:`${v["form-item"]} ${v.vertical}`},r().createElement("label",{htmlFor:"feedback-content"},C(R.PROBLEM_FEEDBACK)),r().createElement("textarea",{id:"feedback-content",name:"feedback",placeholder:C(R.PROBLEM_FEEDBACK_PLACEHOLDER),rows:2})),r().createElement("div",{className:v.submit},r().createElement(I.Gx,{themeVariant:"elevo",type:"text",onClick:m},C(R.RESET)),r().createElement(I.Gx,{themeVariant:"elevo",type:"primary",shape:"round",onClick:p,disabled:a},C(R.SUBMIT)))))}(0,i.initializeI18n)(x,{en:{YES:"Yes",NO:"No",SUBMIT:"Submit",RESET:"Reset",FEEDBACK_NODE_TITLE:"How do you think Elevo has done this task?",PROBLEM_FEEDBACK:"Problem feedback",PROBLEM_FEEDBACK_PLACEHOLDER:"Please describe the problem you encountered.",IS_THE_TASK_PLAN_COMPLETE:"Is the task plan complete:",IS_THE_TASK_PLAN_LOGICALLY_CORRECT:"Is the task plan logically correct:",ARE_THE_TASK_PLAN_STEPS_CONCISE:"Are the task plan steps concise:",ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE:"Are the analytical conclusions accurate:",IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT:"Is the evidence supporting the conclusions sufficient:",THANKS_FOR_YOUR_FEEDBACK:"Thank you for helping us become better."},zh:{YES:"是",NO:"否",SUBMIT:"提交",RESET:"重置",FEEDBACK_NODE_TITLE:"Elevo 完成这项任务的效果如何?",PROBLEM_FEEDBACK:"问题反馈",PROBLEM_FEEDBACK_PLACEHOLDER:"欢迎留下您的意见",IS_THE_TASK_PLAN_COMPLETE:"任务计划是否完备:",IS_THE_TASK_PLAN_LOGICALLY_CORRECT:"任务计划是否逻辑正确:",ARE_THE_TASK_PLAN_STEPS_CONCISE:"任务计划步骤是否精简:",ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE:"分析结论是否准确:",IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT:"结论的支撑证据是否充足:",THANKS_FOR_YOUR_FEEDBACK:"感谢你帮我们变得更好。"}})},96923:(e,t,a)=>{a.d(t,{s:()=>O});var n=a(18769),r=a.n(n),o=a(67177),l=a(30672);let i=function(e){return e.SEND_MESSAGE="SEND_MESSAGE",e.CONFIRM_TO_TERMINATE_THE_TASK_TITLE="CONFIRM_TO_TERMINATE_THE_TASK_TITLE",e.CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION="CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION",e.TERMINATE_THE_TASK="TERMINATE_THE_TASK",e}({});const s="bricks/ai-portal/ChatBox",c=o.i18n.getFixedT(null,s);var d=a(76720),E=a(72591),u=a.n(E),p=a(1740),m=a.n(p),T=a(88128),_=a.n(T),A=a(30855),b=a.n(A),S=a(93051),g=a.n(S),f=a(73656),v=a.n(f),R=a(20918),x={};x.styleTagTransform=v(),x.setAttributes=b(),x.insert=_().bind(null,"head"),x.domAPI=m(),x.insertStyleElement=g(),u()(R.A,x);const C=R.A&&R.A.locals?R.A.locals:void 0;var I=a(40177);function O(e){let{state:t,canChat:a}=e;const{humanInput:o,onTerminate:s,supports:E,aiEmployees:u,commands:p,uploadOptions:m}=(0,n.useContext)(d.j),[T,_]=(0,n.useState)(!1);(0,n.useEffect)((()=>{_(!1)}),[t]);const A=(0,n.useCallback)((async()=>{try{await(0,l.ui)({type:"confirm",title:c(i.CONFIRM_TO_TERMINATE_THE_TASK_TITLE),content:c(i.CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION)})}catch{return}s(),_(!0)}),[s]);return!a&&null!=E&&E.intercept?r().createElement("button",{className:C.button,onClick:A,disabled:T},r().createElement(l.Bj,I.T3),c(i.TERMINATE_THE_TASK)):r().createElement(l.IV,{placeholder:c(i.SEND_MESSAGE),autoFocus:!0,autoFade:!0,aiEmployees:u,commands:p,suggestionsPlacement:"top",uploadOptions:m,onChatSubmit:e=>{const{content:t,...a}=e.detail;o(t,void 0,a)},onTerminate:A})}(0,o.initializeI18n)(s,{en:{SEND_MESSAGE:"Send message",CONFIRM_TO_TERMINATE_THE_TASK_TITLE:"Are you sure to terminate the task?",CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION:"After terminating the task, Elevo will no longer proceed with your request. Please confirm.",TERMINATE_THE_TASK:"Terminate the task"},zh:{SEND_MESSAGE:"发送消息",CONFIRM_TO_TERMINATE_THE_TASK_TITLE:"确定终止任务吗?",CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION:"终止任务后 Elevo 将不会继续执行您的请求,请确认。",TERMINATE_THE_TASK:"终止任务"}})},98153:(e,t,a)=>{a.d(t,{A:()=>M});var n=a(89575),r=a(18769),o=a.n(r),l=a(67177),i=a(72591),s=a.n(i),c=a(1740),d=a.n(c),E=a(88128),u=a.n(E),p=a(30855),m=a.n(p),T=a(93051),_=a.n(T),A=a(73656),b=a.n(A),S=a(78697),g={};g.styleTagTransform=b(),g.setAttributes=m(),g.insert=u().bind(null,"head"),g.domAPI=d(),g.insertStyleElement=_(),s()(S.A,g);const f=S.A&&S.A.locals?S.A.locals:void 0;var v=a(30672),R=a(76720),x=a(40177);let C=function(e){return e.WATCH_AGAIN="WATCH_AGAIN",e.TRY_IT_OUT="TRY_IT_OUT",e.CASE_REPLAYING="CASE_REPLAYING",e.CASE_REPLAY_FINISHED="CASE_REPLAY_FINISHED",e.SKIP_TO_RESULTS="SKIP_TO_RESULTS",e.OTHER_CASES="OTHER_CASES",e.PROJECT_TIPS="PROJECT_TIPS",e.GET_STARTED_WITH_PROJECTS_PREFIX="GET_STARTED_WITH_PROJECTS_PREFIX",e.PROJECTS="PROJECTS",e.GET_STARTED_WITH_PROJECTS_SUFFIX="GET_STARTED_WITH_PROJECTS_SUFFIX",e}({});const I="bricks/ai-portal/NodeReplay",O=l.i18n.getFixedT(null,I),N=a.p+"images/b567cca3.png";var h=a(53373),k=a.n(h);function M(e){let{finished:t,ui:a}=e;const{conversationId:l,showCases:i,exampleProjects:s,skipToResults:c,watchAgain:d,tryItOut:E}=(0,r.useContext)(R.j);return o().createElement("div",{className:k()(f["node-replay"],{[f.finished]:t,[f.chat]:"chat"===a})},o().createElement("div",{className:f.bar},o().createElement("div",{className:f.label},O(t?C.CASE_REPLAY_FINISHED:C.CASE_REPLAYING)),o().createElement("div",{className:f.buttons},t?o().createElement(v.Gx,{themeVariant:"elevo",onClick:d},O(C.WATCH_AGAIN)):o().createElement(v.Gx,{themeVariant:"elevo",onClick:c},O(C.SKIP_TO_RESULTS)),o().createElement(v.Gx,{type:"primary",themeVariant:"elevo",onClick:E},O(C.TRY_IT_OUT)))),t&&o().createElement("div",{className:f.content},!i||i.length>0&&o().createElement(o().Fragment,null,o().createElement("div",{className:f.heading},O(C.OTHER_CASES)),i?o().createElement("ul",{className:f.cases},i.filter((e=>e.conversationId!==l)).slice(0,3).map((e=>o().createElement("li",{key:e.conversationId},o().createElement(v.p9,{caseTitle:e.title,summary:e.summary,url:e.url}))))):o().createElement(v.Bj,(0,n.A)({className:f.loading},x.Xc))),!s||s.length>0&&o().createElement(o().Fragment,null,o().createElement("div",{className:f.heading},O(C.GET_STARTED_WITH_PROJECTS_PREFIX),o().createElement("span",{className:f.tag},O(C.PROJECTS)),O(C.GET_STARTED_WITH_PROJECTS_SUFFIX)),o().createElement("div",{className:f.tips},O(C.PROJECT_TIPS)),s?o().createElement("ul",{className:f.projects},s.slice(0,2).map((e=>o().createElement("li",{key:e.instanceId},o().createElement(v.EM,{className:f.project,url:e.url},o().createElement("img",{src:N,width:16,height:16}),e.name))))):o().createElement(v.Bj,(0,n.A)({className:f.loading},x.Xc)))))}(0,l.initializeI18n)(I,{en:{WATCH_AGAIN:"Watch again",TRY_IT_OUT:"Try it out",CASE_REPLAYING:"The case is replaying...",CASE_REPLAY_FINISHED:"The case replay has finished.",SKIP_TO_RESULTS:"Skip to results",OTHER_CASES:"Other cases",PROJECT_TIPS:"Start your project collaboration journey and achieve shared goals with team members and AI employees.",GET_STARTED_WITH_PROJECTS_PREFIX:"Get started with ",PROJECTS:"Projects",GET_STARTED_WITH_PROJECTS_SUFFIX:""},zh:{WATCH_AGAIN:"再次观看",TRY_IT_OUT:"尝试同款",CASE_REPLAYING:"案例回放中...",CASE_REPLAY_FINISHED:"案例回放完成",SKIP_TO_RESULTS:"跳转到结果",OTHER_CASES:"其他案例",PROJECT_TIPS:"开启项目协作之旅,和团队成员及多位AI数字人一起实现共同制定的目标。",GET_STARTED_WITH_PROJECTS_PREFIX:"开启 ",PROJECTS:"项目",GET_STARTED_WITH_PROJECTS_SUFFIX:" 体验"}})}}]);
2
- //# sourceMappingURL=5452.a5594a29.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/5452.a5594a29.js","mappings":"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","sources":["webpack:///./src/shared/useFulfilledActiveDetail.ts","webpack:///./src/cruise-canvas/ToolCallDetail/ToolCallDetail.module.css?7f00","webpack:///./src/cruise-canvas/ToolCallDetail/i18n.ts","webpack:///./src/cruise-canvas/ToolCallDetail/ToolCallDetail.tsx","webpack:///./src/shared/NodeFeedback/NodeFeedback.module.css","webpack:///./src/shared/ChatBox/ChatBox.module.css","webpack:///./src/shared/useHandleEscape.ts","webpack:///./src/cruise-canvas/ToolProgressLine/ToolProgressLine.module.css?1d0e","webpack:///./src/cruise-canvas/ToolProgressLine/ToolProgressLine.tsx","webpack:///./src/cruise-canvas/ToolCallStatus/ToolCallStatus.module.css?6208","webpack:///./src/cruise-canvas/utils/getToolDataProgress.ts","webpack:///./src/cruise-canvas/ToolCallStatus/ToolCallStatus.tsx","webpack:///./src/cruise-canvas/ToolCallStatus/ToolCallStatus.module.css","webpack:///./src/shared/ExpandedView/ExpandedView.module.css?985a","webpack:///./src/shared/ExpandedView/ExpandedView.tsx","webpack:///../../../src/i18n/constants.ts","webpack:///../../../../src/i18n/locales/en.ts","webpack:///../../../../src/i18n/locales/zh.ts","webpack:///../../../src/i18n/index.ts","webpack:///../../src/humanizeTime.ts","webpack:///./src/cruise-canvas/ToolProgressLine/ToolProgressLine.module.css","webpack:///./src/cruise-canvas/NodeReplay/NodeReplay.module.css","webpack:///./src/shared/ExpandedView/ExpandedView.module.css","webpack:///./src/cruise-canvas/ToolCallDetail/ToolCallDetail.module.css","webpack:///./src/shared/useFlowAndActivityMap.ts","webpack:///./src/shared/NodeFeedback/NodeFeedback.module.css?99d4","webpack:///./src/shared/NodeFeedback/i18n.ts","webpack:///./src/shared/NodeFeedback/NodeFeedback.tsx","webpack:///./src/shared/ChatBox/i18n.ts","webpack:///./src/shared/ChatBox/ChatBox.module.css?ebca","webpack:///./src/shared/ChatBox/ChatBox.tsx","webpack:///./src/cruise-canvas/NodeReplay/NodeReplay.module.css?d0bd","webpack:///./src/cruise-canvas/NodeReplay/i18n.ts","webpack:///./src/cruise-canvas/NodeReplay/NodeReplay.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport type {\n ActiveDetail,\n ActivityWithFlow,\n FulfilledActiveDetail,\n Job,\n ServiceFlowRun,\n} from \"./interfaces\";\n\nexport function useFulfilledActiveDetail(\n activeDetail: ActiveDetail | null,\n jobMap: Map<string, Job> | undefined,\n flowMap: Map<string, ServiceFlowRun>,\n activityMap: Map<string, ActivityWithFlow>\n) {\n return useMemo<FulfilledActiveDetail | null>(() => {\n if (!activeDetail) {\n return null;\n }\n switch (activeDetail.type) {\n case \"job\": {\n const job = jobMap?.get(activeDetail.id);\n if (job) {\n return {\n type: \"job\",\n job,\n };\n }\n break;\n }\n case \"flow\": {\n const flow = flowMap?.get(activeDetail.id);\n if (flow) {\n return {\n type: \"flow\",\n flow,\n };\n }\n break;\n }\n case \"activity\": {\n const activityWithFlow = activityMap?.get(activeDetail.id);\n if (activityWithFlow) {\n return {\n type: \"activity\",\n flow: activityWithFlow.flow,\n activity: activityWithFlow.activity,\n };\n }\n break;\n }\n }\n return null;\n }, [activeDetail, activityMap, flowMap, jobMap]);\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ToolCallDetail.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ToolCallDetail.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ARGUMENTS = \"ARGUMENTS\",\n PROCESS = \"PROCESS\",\n RESPONSE = \"RESPONSE\",\n}\n\nconst en: Locale = {\n ARGUMENTS: \"Arguments\",\n PROCESS: \"Process\",\n RESPONSE: \"Response\",\n};\n\nconst zh: Locale = {\n ARGUMENTS: \"参数\",\n PROCESS: \"过程\",\n RESPONSE: \"响应\",\n};\n\nexport const NS = \"bricks/ai-portal/ToolCallDetail\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { DataPart, Job, Part } from \"../../shared/interfaces\";\nimport { WrappedCodeBlock } from \"../../shared/bricks\";\nimport styles from \"./ToolCallDetail.module.css\";\nimport sharedStyles from \"../shared.module.css\";\nimport { K, t, locales, NS } from \"./i18n\";\nimport { ToolProgressLine } from \"../ToolProgressLine/ToolProgressLine\";\nimport { EnhancedMarkdown } from \"../EnhancedMarkdown/EnhancedMarkdown\";\nimport { MarkdownPre } from \"../../shared/MarkdownPre\";\n\ninitializeI18n(NS, locales);\n\nexport interface ToolCallDetailProps {\n job: Job;\n}\n\nexport function ToolCallDetail({ job }: ToolCallDetailProps): JSX.Element {\n const toolCall = job.toolCall!;\n\n const [progress, intermediateParts, responseParts] = useMemo(() => {\n const toolCallMessages = job.messages?.filter((msg) => msg.role === \"tool\");\n const intermediateParts: DataPart[] = [];\n const responseParts: Part[] = [];\n let progress: DataPart | undefined;\n for (const message of toolCallMessages ?? []) {\n for (const part of message.parts) {\n if (part.type === \"data\") {\n switch (part.data?.type) {\n case \"progress\":\n // Take the last progress part\n progress = part;\n continue;\n case \"markdown\":\n case \"cmdb_instance_detail\":\n case \"static_data_view\":\n continue;\n default:\n intermediateParts.push(part);\n continue;\n }\n } else if (part.type === \"file\") {\n continue;\n }\n responseParts.push(part);\n }\n }\n return [progress, intermediateParts, responseParts];\n }, [job.messages]);\n\n const hasProcessParts = intermediateParts.length > 0 || !!progress;\n const hasResponseParts = responseParts.length > 0;\n const toolState =\n ([\"working\", \"input-required\"].includes(job.state) && hasProcessParts) ||\n hasResponseParts\n ? \"completed\"\n : job.state;\n\n const failed = job.isError || toolState === \"failed\";\n\n return (\n <>\n <div className={styles.detail}>\n <div className={styles.heading}>{t(K.ARGUMENTS)}:</div>\n <div className={`${styles.body} ${sharedStyles.markdown}`}>\n <PreComponent\n content={toolCall.originalArguments}\n maybeJson\n fallbackAsMarkdown\n />\n </div>\n </div>\n {hasProcessParts && (\n <div className={styles.detail}>\n <div className={styles.heading}>{t(K.PROCESS)}:</div>\n <div className={styles.body}>\n {intermediateParts.map((part, partIndex) =>\n part.data?.type === \"stream\" ? (\n <div\n key={partIndex}\n className={classNames(\n styles[\"stream-message\"],\n sharedStyles.markdown\n )}\n >\n <EnhancedMarkdown\n className={sharedStyles[\"markdown-wrapper\"]}\n content={part.data.message}\n />\n </div>\n ) : (\n <div key={partIndex} className={sharedStyles.markdown}>\n <PreComponent content={JSON.stringify(part)} />\n </div>\n )\n )}\n {!!progress && (\n <div\n className={classNames(styles[\"progress-container\"], {\n [styles[\"progress-fallback\"]]: failed,\n })}\n >\n <ToolProgressLine progress={progress} failed={failed} />\n </div>\n )}\n </div>\n </div>\n )}\n {hasResponseParts && (\n <div className={styles.detail}>\n <div className={styles.heading}>{t(K.RESPONSE)}:</div>\n <div className={`${styles.body} ${sharedStyles.markdown}`}>\n {responseParts.map((part, partIndex) =>\n part.type === \"data\" && part.data?.type === \"progress\" ? null : (\n <PreComponent\n key={partIndex}\n content={\n part.type === \"text\" ? part.text : JSON.stringify(part)\n }\n maybeJson={part.type === \"text\"}\n />\n )\n )}\n </div>\n </div>\n )}\n </>\n );\n}\n\nfunction PreComponent({\n content,\n maybeJson,\n fallbackAsMarkdown,\n}: {\n content?: string;\n maybeJson?: boolean;\n fallbackAsMarkdown?: boolean;\n}): JSX.Element | null {\n const [refinedContent, fallback, asMarkdown] = useMemo(() => {\n if (maybeJson && content) {\n try {\n const json = JSON.parse(content);\n return [JSON.stringify(json, null, 2), false, false];\n } catch {\n // Fallback to original content\n if (fallbackAsMarkdown) {\n return [content, false, true];\n }\n }\n }\n return [content, true, false];\n }, [content, fallbackAsMarkdown, maybeJson]);\n\n return asMarkdown ? (\n <div className={styles[\"markdown-block\"]}>\n <EnhancedMarkdown\n className={sharedStyles[\"markdown-wrapper\"]}\n content={refinedContent}\n />\n </div>\n ) : fallback ? (\n <div className={styles[\"code-fallback\"]}>\n <MarkdownPre>\n <code>{refinedContent}</code>\n </MarkdownPre>\n </div>\n ) : (\n <WrappedCodeBlock\n className={styles[\"code-block\"]}\n source={refinedContent!}\n language=\"json\"\n themeVariant=\"elevo\"\n />\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.node-feedback--qSAvjvCa{width:var(--cruise-canvas-node-width-medium);background:rgba(255,255,255,0.2);border-radius:12px;border:1px solid rgba(255,255,255,0.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px 28px}.heading--zbbPDsFk{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.title--l9cmJRhB{font-weight:500}.form-item--wtgYuM1v{font-size:12px;line-height:17px;color:rgba(0,0,0,0.88)}.form-item--wtgYuM1v.horizontal--zqc5U1Jh{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:1em}.form-item--wtgYuM1v.vertical--i26lXOiT{margin-top:16px}.form-item--wtgYuM1v.vertical--i26lXOiT label{display:block;color:rgba(0,0,0,0.45);margin-bottom:8px}.form-item--wtgYuM1v textarea{width:100%;background:none;border-radius:8px;border:1px solid rgba(0,0,0,0.15);padding:8px;color:#262626}.form-item--wtgYuM1v textarea:focus{outline:none;border-color:rgba(0,0,0,0.25)}.options--Cak4FPTk{display:flex;align-items:center}.radio--P5Vo_D45{position:relative;cursor:pointer}.radio--P5Vo_D45 input{width:0px;height:0px;position:absolute;-webkit-appearance:none;-moz-appearance:none;appearance:none}.radio--P5Vo_D45 span{display:flex;align-items:center;justify-content:center;width:64px;height:28px;border-radius:8px;background:none;border:1px solid rgba(0,0,0,0.15)}.radio--P5Vo_D45 input:checked + span{background:rgba(255,255,255,0.5);border:none}.radio--P5Vo_D45 input:not(:checked) + span:hover{background:rgba(255,255,255,0.3);border:none}.radio--P5Vo_D45 + .radio--P5Vo_D45{margin-left:8px}.submit--eCyA49Nq{display:flex;justify-content:end;margin-top:18px;gap:8px}.validate--krlXob4C .form-item--wtgYuM1v:has(input:invalid) .label--U8YsN4Mm{color:#f24c25}.submitted--XxktB9y5{background:#d0e7d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;font-weight:500;color:#009929;padding:17px;text-align:center}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"node-feedback\": `node-feedback--qSAvjvCa`,\n\t\"heading\": `heading--zbbPDsFk`,\n\t\"title\": `title--l9cmJRhB`,\n\t\"form-item\": `form-item--wtgYuM1v`,\n\t\"horizontal\": `horizontal--zqc5U1Jh`,\n\t\"vertical\": `vertical--i26lXOiT`,\n\t\"options\": `options--Cak4FPTk`,\n\t\"radio\": `radio--P5Vo_D45`,\n\t\"submit\": `submit--eCyA49Nq`,\n\t\"validate\": `validate--krlXob4C`,\n\t\"label\": `label--U8YsN4Mm`,\n\t\"submitted\": `submitted--XxktB9y5`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.button--Fe8aCvnf{background:rgba(255,255,255,0.5);box-shadow:0px 4px 8px 0px rgba(0,0,0,0.06);border:1px solid rgba(255,255,255,0.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;gap:5px;height:40px;border-radius:20px;padding:0 16px;color:#262626;cursor:pointer;margin:0 auto}.button--Fe8aCvnf:focus{outline:none}.button--Fe8aCvnf[disabled]{color:rgba(0,0,0,0.45);cursor:default}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"button\": `button--Fe8aCvnf`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { useEffect, useRef } from \"react\";\nimport type { TaskContextValue } from \"./TaskContext\";\n\nexport function useHandleEscape({\n activeDetail,\n activeExpandedViewJobId,\n activeFile,\n activeImages,\n subActiveDetail,\n setActiveFile,\n setActiveImages,\n setActiveExpandedViewJobId,\n setActiveDetail,\n setSubActiveDetail,\n}: TaskContextValue) {\n const compositionRef = useRef(false);\n\n useEffect(() => {\n const onCompositionStart = () => {\n compositionRef.current = true;\n };\n const onCompositionEnd = () => {\n compositionRef.current = false;\n };\n document.addEventListener(\"compositionstart\", onCompositionStart);\n document.addEventListener(\"compositionend\", onCompositionEnd);\n return () => {\n document.removeEventListener(\"compositionstart\", onCompositionStart);\n document.removeEventListener(\"compositionend\", onCompositionEnd);\n };\n }, []);\n\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Escape\") {\n if (activeFile) {\n setActiveFile(null);\n } else if (activeImages) {\n setActiveImages(null);\n } else if (activeExpandedViewJobId) {\n setActiveExpandedViewJobId(null);\n } else if (subActiveDetail) {\n setSubActiveDetail(null);\n } else if (activeDetail) {\n setActiveDetail(null);\n }\n }\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [\n activeDetail,\n activeExpandedViewJobId,\n activeFile,\n activeImages,\n subActiveDetail,\n setActiveFile,\n setActiveImages,\n setActiveExpandedViewJobId,\n setActiveDetail,\n setSubActiveDetail,\n ]);\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ToolProgressLine.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ToolProgressLine.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport styles from \"./ToolProgressLine.module.css\";\nimport { DataPart } from \"../../shared/interfaces\";\n\nexport interface ToolProgressLineProps {\n progress: DataPart;\n /**\n * 暂定失败肯定是最后一个\n */\n failed?: boolean;\n}\n\nexport function ToolProgressLine({\n progress,\n failed,\n}: ToolProgressLineProps): JSX.Element {\n const data = progress.data;\n\n return (\n <div\n className={classNames(styles[\"progress-line\"], {\n [styles[\"failed\"]]: failed,\n })}\n >\n <div className={classNames(styles.step)} key={data.progress}>\n <div className={styles.axis}>\n <div className={styles.line} />\n <div className={styles.dot} />\n </div>\n <div className={styles.progress}>\n <span className={styles.count}>{data.progress}</span>\n <span>/</span>\n <span className={styles.total}>{data.total}</span>\n </div>\n <div className={styles.description}>{data.message}</div>\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ToolCallStatus.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ToolCallStatus.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import type { DataPart, Message } from \"../../shared/interfaces\";\n\nexport const getToolDataProgress = (\n toolCallMessages: Message[] | undefined\n): DataPart | undefined => {\n let progressPart: DataPart | undefined;\n toolCallMessages?.findLast((message) => {\n progressPart = message.parts?.findLast((part) => {\n return part.type === \"data\" && part.data?.type === \"progress\";\n }) as DataPart | undefined;\n return !!progressPart;\n });\n return progressPart;\n};\n","import React, { useCallback, useContext, useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport moment from \"moment\";\nimport { isEqual } from \"lodash\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport styles from \"./ToolCallStatus.module.css\";\nimport { WrappedIcon } from \"../../shared/bricks\";\nimport { TaskContext } from \"../../shared/TaskContext\";\nimport { ToolProgressLine } from \"../ToolProgressLine/ToolProgressLine\";\nimport { getToolDataProgress } from \"../utils/getToolDataProgress\";\nimport type { ActiveDetail, Job, JobState } from \"../../shared/interfaces\";\n\nexport interface NodeJobToolCallProps {\n job: Job;\n variant?: \"default\" | \"read-only\";\n}\n\nexport function ToolCallStatus({\n job,\n variant,\n}: NodeJobToolCallProps): JSX.Element {\n const { setActiveDetail, separateInstructions } = useContext(TaskContext);\n const toolCall = job.toolCall!;\n const toolTitle = toolCall.annotations?.title || toolCall.name;\n const jobTitle = separateInstructions\n ? toolTitle\n : job.instruction || toolTitle;\n const [progress, hasToolCallResponse] = useMemo(() => {\n const toolCallMessages = job.messages?.filter((msg) => msg.role === \"tool\");\n return [\n getToolDataProgress(toolCallMessages),\n toolCallMessages?.some((msg) =>\n msg.parts.some((part) => part.type === \"text\")\n ),\n ];\n }, [job.messages]);\n\n const readOnly = useMemo(() => {\n return variant === \"read-only\";\n }, [variant]);\n\n const handleClick = useCallback(() => {\n if (variant === \"read-only\") {\n return;\n }\n const newActiveDetail: ActiveDetail = {\n type: \"job\",\n id: job.id,\n };\n setActiveDetail((prev) =>\n isEqual(prev, newActiveDetail) ? prev : newActiveDetail\n );\n }, [job.id, variant, setActiveDetail]);\n\n const toolState =\n [\"working\", \"input-required\"].includes(job.state) && hasToolCallResponse\n ? \"completed\"\n : job.state;\n\n const failed = job.isError || toolState === \"failed\";\n\n return (\n <div\n className={classNames(styles[\"tool-call\"], {\n [styles.failed]: failed,\n [styles[\"read-only\"]]: readOnly,\n })}\n onClick={handleClick}\n >\n <div className={classNames(styles.status)}>\n {job.isError || toolState === \"failed\" ? (\n <WrappedIcon\n className={styles.icon}\n lib=\"fa\"\n prefix=\"fas\"\n icon=\"xmark\"\n />\n ) : toolState === \"completed\" ? (\n <WrappedIcon\n className={styles.icon}\n lib=\"fa\"\n prefix=\"fas\"\n icon=\"check\"\n />\n ) : toolState === \"working\" ? (\n <WrappedIcon\n className={styles.icon}\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n ) : toolState === \"input-required\" ? (\n <WrappedIcon\n className={styles.icon}\n lib=\"fa\"\n prefix=\"far\"\n icon=\"circle-user\"\n />\n ) : toolState === \"canceled\" ||\n toolState === (\"terminated\" as JobState) ? (\n <WrappedIcon\n className={styles.icon}\n lib=\"fa\"\n prefix=\"far\"\n icon=\"circle-stop\"\n />\n ) : (\n <WrappedIcon\n className={styles.icon}\n lib=\"fa\"\n prefix=\"far\"\n icon=\"clock\"\n />\n )}\n <span className={styles.name}>\n {variant === \"read-only\" ? toolTitle : jobTitle}\n </span>\n {job.startTime ? (\n <span className={styles.timing}>\n {`${humanizeTime(job.startTime * 1000, HumanizeTimeFormat.accurate)}${\n job.endTime\n ? ` (${moment.duration(job.endTime * 1000 - job.startTime * 1000).humanize({ ss: -1 })})`\n : \"\"\n }`}\n </span>\n ) : null}\n </div>\n {!!progress && !readOnly && (\n <ToolProgressLine progress={progress} failed={failed} />\n )}\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.tool-call--aTh276av{--failed-color:#f24c25;--border-color:#e2e2ec;--status-border-color:rgba(226,226,236,0.8);font-size:13px;color:#595959;border-radius:10px;border:1px solid var(--border-color);background:#e6e9f3}.tool-call--aTh276av:not(.read-only--xWUswNds):hover{background:#e4e9fb;border:1px solid #b8c1ff}.tool-call--aTh276av:not(:last-child){margin-bottom:10px}.tool-call--aTh276av:not(.read-only--xWUswNds){cursor:pointer}.tool-call--aTh276av .status--V5ZXGYOG:not(:last-child){border-bottom:1px solid var(--status-border-color)}.read-only--xWUswNds{font-size:14px;padding:4px}.failed--sz70SlSa{background:#fef5f3}.failed--sz70SlSa:not(.read-only--xWUswNds):hover{background:#fee7e1;border:1px solid #ffc3b5}.failed--sz70SlSa .status--V5ZXGYOG:not(:last-child){border-bottom:1px solid rgba(253,225,218,0.8)}.status--V5ZXGYOG{height:24px;display:flex;align-items:center;padding:0 12px;color:#262626}.timing--GjuZkMuV{display:none;color:#8c8c8c}.read-only--xWUswNds .timing--GjuZkMuV,\n[class^=\"node-job--\"]:hover .timing--GjuZkMuV,\n.status--V5ZXGYOG:hover .timing--GjuZkMuV{display:block}.icon--LTp5Jjna{margin-right:8px;color:#8c8c8c}.failed--sz70SlSa .icon--LTp5Jjna{color:var(--failed-color)}.name--FwiqyIlQ{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"tool-call\": `tool-call--aTh276av`,\n\t\"read-only\": `read-only--xWUswNds`,\n\t\"status\": `status--V5ZXGYOG`,\n\t\"failed\": `failed--sz70SlSa`,\n\t\"timing\": `timing--GjuZkMuV`,\n\t\"icon\": `icon--LTp5Jjna`,\n\t\"name\": `name--FwiqyIlQ`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ExpandedView.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ExpandedView.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { getBasePath, unstable_createRoot } from \"@next-core/runtime\";\nimport { uniqueId } from \"lodash\";\nimport { convertView } from \"@next-tsx/converter\";\nimport type { GraphGeneratedView } from \"../../cruise-canvas/interfaces\";\nimport styles from \"./ExpandedView.module.css\";\nimport { WrappedIcon, WrappedIconButton } from \"../../shared/bricks\";\nimport { createPortal } from \"../../cruise-canvas/utils/createPortal\";\nimport { ICON_CLOSE, ICON_EXTERNAL_LINK, ICON_FEEDBACK } from \"../constants\";\nimport { TaskContext } from \"../TaskContext\";\nimport { useViewFeedbackDone } from \"../useViewFeedbackDone\";\nimport { parseTemplate } from \"../parseTemplate\";\nimport type { ParsedView } from \"../interfaces\";\nimport type { ModulePartOfComponent } from \"@next-tsx/parser\";\n\nexport interface ExpandedViewProps {\n views: GraphGeneratedView[];\n}\n\nexport function ExpandedView({ views }: ExpandedViewProps) {\n const rootId = useMemo(() => uniqueId(), []);\n const {\n workspace,\n previewUrlTemplate,\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n manuallyUpdatedViews,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n } = useContext(TaskContext);\n const containerRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<Awaited<\n ReturnType<typeof unstable_createRoot>\n > | null>(null);\n const generatedView = activeExpandedViewJobId\n ? (manuallyUpdatedViews?.get(activeExpandedViewJobId) ??\n views.find((v) => v.id === activeExpandedViewJobId)?.view)\n : null;\n const feedbackDone =\n useViewFeedbackDone(generatedView?.viewId, showFeedbackOnView) ||\n (generatedView && feedbackDoneViews?.has(generatedView.viewId));\n const [view, setView] = useState<ParsedView | null>(null);\n const canFeedback =\n !!view && !!generatedView?.viewId && generatedView.from !== \"config\";\n const [viewsWithTitle, setViewsWithTitle] = useState<\n Array<\n GraphGeneratedView & {\n title?: string;\n }\n >\n >(views);\n\n useEffect(() => {\n setView(null);\n let ignore = false;\n generatedView?.asyncConstructedView?.then((view) => {\n if (!ignore) {\n setView(view);\n }\n });\n return () => {\n ignore = true;\n };\n }, [generatedView]);\n\n useEffect(() => {\n Promise.all(\n views.map(async (v) => {\n const view = await v.view.asyncConstructedView;\n return {\n ...v,\n title: (view?.entry?.defaultExport as ModulePartOfComponent)?.title,\n };\n })\n ).then((result) => {\n setViewsWithTitle(result);\n });\n }, [views]);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n const portal = createPortal(rootId);\n const root = unstable_createRoot(container, {\n portal,\n supportsUseChildren: true,\n } as any);\n rootRef.current = root;\n\n return () => {\n root.unmount();\n portal.remove();\n rootRef.current = null;\n };\n }, [rootId]);\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n setLoading(true);\n if (!view) {\n return;\n }\n let ignore = false;\n (async () => {\n try {\n const convertedView = await convertView(view, {\n rootId,\n workspace,\n expanded: true,\n withContexts: view.withContexts,\n });\n if (ignore) {\n return;\n }\n const { brick, context, functions, templates } = convertedView;\n await rootRef.current?.render(brick, { context, functions, templates });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to render view:\", error);\n }\n if (!ignore) {\n setLoading(false);\n }\n })();\n\n return () => {\n ignore = true;\n };\n }, [rootId, workspace, view]);\n\n const handleClose = useCallback(() => {\n setActiveExpandedViewJobId(null);\n }, [setActiveExpandedViewJobId]);\n\n return (\n <div className={styles[\"expanded-view\"]}>\n {loading && (\n <div className={styles.loading}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n <div\n className={classNames(styles.body, {\n // [styles.small]: sizeSmall,\n })}\n ref={containerRef}\n data-root-id={rootId}\n />\n <ul className={styles.nav}>\n {viewsWithTitle.map((view) => (\n <li key={view.id}>\n <button\n className={classNames(styles[\"nav-button\"], {\n [styles.active]: activeExpandedViewJobId === view.id,\n })}\n onClick={() => setActiveExpandedViewJobId(view.id)}\n >\n {view.title ?? \"…\"}\n </button>\n </li>\n ))}\n </ul>\n <div className={styles.buttons}>\n {showFeedbackOnView && !feedbackDone && canFeedback && (\n <WrappedIconButton\n icon={ICON_FEEDBACK}\n onClick={() => onFeedbackOnView?.(generatedView.viewId)}\n />\n )}\n {!!(\n generatedView?.viewId &&\n !generatedView.withContexts &&\n previewUrlTemplate\n ) && (\n <WrappedIconButton\n icon={ICON_EXTERNAL_LINK}\n onClick={() => {\n window.open(\n `${getBasePath().slice(0, -1)}${parseTemplate(\n previewUrlTemplate,\n {\n viewId: generatedView.viewId,\n }\n )}`,\n \"_blank\"\n );\n }}\n />\n )}\n <WrappedIconButton icon={ICON_CLOSE} onClick={handleClose} />\n </div>\n </div>\n );\n}\n","export const NS_LIBS_DATETIME = \"libs-datetime\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n FUTURE_AFTER = \"FUTURE_AFTER\",\n FORMAT_MEDIUM_DATETIME = \"FORMAT_MEDIUM_DATETIME\",\n FORMAT_MEDIUM_DATE = \"FORMAT_MEDIUM_DATE\",\n FORMAT_SHORT_DATETIME = \"FORMAT_SHORT_DATETIME\",\n FORMAT_SHORT_DATE = \"FORMAT_SHORT_DATE\",\n FORMAT_SHORT_DAY_DATETIME = \"FORMAT_SHORT_DAY_DATETIME\",\n FORMAT_SHORT_DAY_DATE = \"FORMAT_SHORT_DAY_DATE\",\n SECONDS = \"SECONDS\",\n MILL_SECONDS = \"MILL_SECONDS\",\n MINUTES = \"MINUTES\",\n HOURS = \"HOURS\",\n DAYS = \"DARS\",\n MONTHS = \"MONTHS\",\n}\n\nexport type Locale = { [key in K]: string };\n","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"Yesterday\",\n [K.TODAY]: \"Today\",\n [K.FUTURE_AFTER]: \"After {{time}}\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LLL\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMM D ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMM D\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMM D HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMM D\",\n [K.MONTHS]: \"months\",\n [K.HOURS]: \"hours\",\n [K.SECONDS]: \"seconds\",\n [K.MILL_SECONDS]: \"millseconds\",\n [K.DAYS]: \"days\",\n [K.MINUTES]: \"minutes\",\n};\n\nexport default locale;\n","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"昨天\",\n [K.TODAY]: \"今天\",\n [K.FUTURE_AFTER]: \"{{time}}后\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LL ah:mm\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMMD日 ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMMD日\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMMD日 HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMMD日\",\n [K.MONTHS]: \"个月\",\n [K.HOURS]: \"小时\",\n [K.SECONDS]: \"秒\",\n [K.MILL_SECONDS]: \"毫秒\",\n [K.DAYS]: \"天\",\n [K.MINUTES]: \"分钟\",\n};\n\nexport default locale;\n","import { initializeI18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME } from \"./constants.js\";\nimport en from \"./locales/en.js\";\nimport zh from \"./locales/zh.js\";\n\nexport function addResourceBundle(): void {\n initializeI18n(NS_LIBS_DATETIME, { en, zh });\n}\n","import moment from \"moment\";\nimport { i18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME, K } from \"./i18n/constants.js\";\nimport { addResourceBundle } from \"./i18n/index.js\";\n\naddResourceBundle();\n\nconst TIME_OFFSET = 0;\n\nexport enum HumanizeTimeFormat {\n full = \"full\",\n default = \"default\",\n relative = \"relative\",\n past = \"past\",\n future = \"future\",\n accurate = \"accurate\",\n auto = \"auto\",\n}\n\nexport const humanizeTime = (\n time: moment.MomentInput,\n format: HumanizeTimeFormat = HumanizeTimeFormat.auto,\n /** 默认为 \"datetime\" */\n type?: \"datetime\" | \"date\"\n): string | null => {\n if (\n time === undefined ||\n time === null ||\n time === -Infinity ||\n time === Infinity\n ) {\n return null;\n }\n const m = moment(time);\n const now = moment().add(TIME_OFFSET);\n const fFull = type === \"date\" ? \"LL\" : \"LL HH:mm\";\n const fMedium = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_MEDIUM_DATE : K.FORMAT_MEDIUM_DATETIME}`\n );\n const fShort = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DATE : K.FORMAT_SHORT_DATETIME}`\n );\n const fShort24 = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DAY_DATE : K.FORMAT_SHORT_DAY_DATETIME}`\n );\n const fDefault = type === \"date\" ? \"LL\" : \"LL HH:mm:ss\";\n const fHourMinute = \"HH:mm\";\n let text;\n\n /* 用于精确显示时间的参数\n * 今天与昨天,显示:今天(昨天)x:x的格式,如:今天12:21、昨天16:33\n * 昨天以前的时间,显示:x月x日x时:x分,如:11月23日11:22\n * 今年以前的时间,显示:x年x月x日x时:x分,如:2016年11月11日11:11\n */\n const getAccurateTime = () => {\n const diff = +m.diff(now, \"days\", true).toFixed(1);\n let _text = \"\";\n const retVal =\n m.year() < now.year()\n ? \"lastYear\"\n : diff < -2 || m.isBefore(now.clone().add(-1, \"day\"), \"day\")\n ? \"twoDaysBefore\"\n : m.isSame(now.clone().add(-1, \"day\"), \"day\")\n ? \"yesterday\"\n : m.isSame(now, \"day\")\n ? \"sameDay\"\n : diff < 2 && m.isSame(now.clone().add(1, \"day\"), \"day\")\n ? \"nextDay\"\n : diff < 7\n ? \"nextWeek\"\n : \"default\";\n switch (retVal) {\n case \"sameDay\":\n case \"yesterday\":\n _text = `${i18n.t(`${NS_LIBS_DATETIME}:${retVal === \"yesterday\" ? K.YESTERDAY : K.TODAY}`)}${\n type === \"date\" ? \"\" : ` ${m.format(fHourMinute)}`\n }`;\n break;\n case \"lastYear\":\n _text = m.format(fFull);\n break;\n case \"twoDaysBefore\":\n _text = m.format(fShort24);\n break;\n default:\n _text = m.format(fFull);\n }\n\n return _text;\n };\n\n switch (format) {\n case HumanizeTimeFormat.full:\n text = m.format(fFull);\n break;\n case HumanizeTimeFormat.default:\n text = m.format(fDefault);\n break;\n case HumanizeTimeFormat.relative: {\n const diff = +m - +now;\n text =\n diff <= 0\n ? moment.duration(diff).humanize(true)\n : i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(diff).humanize(),\n });\n break;\n }\n case HumanizeTimeFormat.past:\n text = moment.duration(Math.min(+m - +now, 0)).humanize(true);\n break;\n case HumanizeTimeFormat.future:\n text = i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(Math.max(+m - +now, 0)).humanize(),\n });\n break;\n case HumanizeTimeFormat.accurate:\n text = getAccurateTime();\n break;\n default:\n text = m.format(m.year() === now.year() ? fShort : fMedium);\n }\n return text;\n};\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.progress-line--CX_xuAHC{--breathing-color:rgba(205,205,217,0.7);--breathing-color-2:rgba(205,205,217,0);display:flex;flex-direction:column}.progress-line--CX_xuAHC .step--YXd66tSR{position:relative;display:flex;align-items:center;padding:10px 4px 10px 16px;color:rgba(0,0,0,0.5)}.progress-line--CX_xuAHC .step--YXd66tSR .axis--T4nVxQt5{position:absolute;top:0;bottom:0;left:14px;width:1px}.progress-line--CX_xuAHC .step--YXd66tSR .axis--T4nVxQt5 .line--BUSBjzxD{width:1px;height:100%;background:linear-gradient(172deg,rgba(205,205,217,0) 0%,#cdcdd9 46%,rgba(205,205,217,0) 100%)}.progress-line--CX_xuAHC .step--YXd66tSR .axis--T4nVxQt5 .dot--TPMEta87{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:5px;height:5px;background:rgba(205,205,217,1);border-radius:50%}.progress-line--CX_xuAHC .step--YXd66tSR .progress--alc7SspF{padding:3px;margin:0 8px 0 12px;border-radius:10px;line-height:1;background:#ffffff}.progress-line--CX_xuAHC .step--YXd66tSR .progress--alc7SspF .count--RdZcMYhZ{font-weight:400}.progress-line--CX_xuAHC .step--YXd66tSR .progress--alc7SspF .total--BKoLTm8c{opacity:0.6}.progress-line--CX_xuAHC .step--YXd66tSR .description--AyfMh1_M{flex:1;color:#999}.progress-line--CX_xuAHC .step--YXd66tSR:last-child .progress--alc7SspF .count--RdZcMYhZ{font-weight:600}.failed--Q9TADo_k .step--YXd66tSR:last-child .axis--T4nVxQt5 .line--BUSBjzxD{background:linear-gradient(172deg,rgba(242,76,37,0) 0%,rgba(242,76,37,0.3) 47%,rgba(242,76,37,0) 100%)}.failed--Q9TADo_k .step--YXd66tSR:last-child .axis--T4nVxQt5 .dot--TPMEta87{background:rgba(255,154,120,1)}.failed--Q9TADo_k .step--YXd66tSR:last-child .progress--alc7SspF{background:#ffd6d6}.failed--Q9TADo_k .step--YXd66tSR:last-child .progress--alc7SspF .count--RdZcMYhZ{color:#f44336}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"progress-line\": `progress-line--CX_xuAHC`,\n\t\"step\": `step--YXd66tSR`,\n\t\"axis\": `axis--T4nVxQt5`,\n\t\"line\": `line--BUSBjzxD`,\n\t\"dot\": `dot--TPMEta87`,\n\t\"progress\": `progress--alc7SspF`,\n\t\"count\": `count--RdZcMYhZ`,\n\t\"total\": `total--BKoLTm8c`,\n\t\"description\": `description--AyfMh1_M`,\n\t\"failed\": `failed--Q9TADo_k`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.node-replay--RJPyOwC6{width:var(--cruise-canvas-node-width-large);max-width:100%;background:rgba(255,255,255,0.5);border-radius:12px;border:1px solid rgba(255,255,255,0.4);padding:4px}.finished--DCI6ewIN:not(.chat--YJT4RmwA){max-width:90vw}.node-replay--RJPyOwC6.chat--YJT4RmwA{margin-top:14px}.bar--Pae7qP58{background:rgba(184,187,205,0.3);border-radius:8px;border:1px solid rgba(255,255,255,0.4);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.buttons--m0009sdd{display:flex;align-items:center;gap:8px}.label--VlLhkZeC{font-weight:500}.cases--czpvOoLX,\n.projects--W1KI5fUu{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.content--rFWHJyEy{padding:0 16px 16px}.heading--jlFUCX5n{margin:26px 0 10px;color:rgba(0,0,0,0.6);line-height:20px}.tips--FzM5aSiq{font-size:12px;line-height:20px;color:rgba(0,0,0,0.35);margin:-3px 0 10px}.project--BSu5VIGZ{width:100%}.project--BSu5VIGZ::part(link){height:48px;background:rgba(255,255,255,0.5);border-radius:12px;border:1px solid rgba(255,255,255,0.4);display:flex;align-items:center;padding:0 16px;gap:6px;font-weight:500;color:#262626}.project--BSu5VIGZ::part(link):hover{color:var(--elevo-color-brand)}.tag--Hp8eFjie{display:inline-block;padding:0 4px;background:rgba(37,64,255,0.1);border-radius:4px;color:var(--elevo-color-brand)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"node-replay\": `node-replay--RJPyOwC6`,\n\t\"finished\": `finished--DCI6ewIN`,\n\t\"chat\": `chat--YJT4RmwA`,\n\t\"bar\": `bar--Pae7qP58`,\n\t\"buttons\": `buttons--m0009sdd`,\n\t\"label\": `label--VlLhkZeC`,\n\t\"cases\": `cases--czpvOoLX`,\n\t\"projects\": `projects--W1KI5fUu`,\n\t\"content\": `content--rFWHJyEy`,\n\t\"heading\": `heading--jlFUCX5n`,\n\t\"tips\": `tips--FzM5aSiq`,\n\t\"project\": `project--BSu5VIGZ`,\n\t\"tag\": `tag--Hp8eFjie`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.expanded-view--Pl3PL2nR{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;background:rgba(247,248,250,0.5);-webkit-backdrop-filter:blur(74px);backdrop-filter:blur(74px);padding:106px var(--page-padding-right) 40px var(--page-padding-left);overflow-y:auto;display:flex;flex-direction:column;align-items:center}.nav--dLWwzH3E{position:absolute;top:39px;left:50%;transform:translate(-50%,0);list-style:none;margin:0 0 25px;padding:4px;display:flex;justify-content:start;align-items:center;background:rgba(2,0,102,0.05);box-shadow:inset 0px 1px 2px 0px #cdd1d7;border-radius:21px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.nav-button--zv2Yj10m{display:flex;align-items:center;height:34px;padding:0 26px;background:none;border:none;color:#595959;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.nav-button--zv2Yj10m:not(:last-child){margin-right:12px}.nav-button--zv2Yj10m.active--MHyqtaKu{background:rgba(255,255,255,0.6);border-radius:20px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:var(--elevo-color-brand);text-shadow:-0.02ex 0 0 currentColor,0.02ex 0 0 currentColor}.nav-button--zv2Yj10m:hover{color:var(--elevo-color-brand)}.body--edodw95r{width:100%;max-width:1556px}.body--edodw95r.small--Y90AL_bt{max-width:804px}.loading--UxfFogUY{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;color:#fff}.buttons--ZZYyY2LU{position:absolute;top:24px;right:24px;display:flex;gap:12px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"expanded-view\": `expanded-view--Pl3PL2nR`,\n\t\"nav\": `nav--dLWwzH3E`,\n\t\"nav-button\": `nav-button--zv2Yj10m`,\n\t\"active\": `active--MHyqtaKu`,\n\t\"body\": `body--edodw95r`,\n\t\"small\": `small--Y90AL_bt`,\n\t\"loading\": `loading--UxfFogUY`,\n\t\"buttons\": `buttons--ZZYyY2LU`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.detail--JiiWugxP{margin-top:20px;color:#595959;margin-bottom:7px}.code-block--wccWPbbW::part(pre){border:1px solid #ccd1de}.code-fallback--a8nCduaZ [class*=\"code-wrapper--\"]::part(pre){white-space:pre-wrap;background:#fef5f3!important}.progress-container--tFUAQo73,\n.stream-message--G0tAm9aa{border-radius:9px;border:1px solid #ccd1de;background:#fff}.progress-container--tFUAQo73{padding:6px 2px}.progress-fallback--Xto82BYu{background:#fef5f3}.stream-message--G0tAm9aa{padding:1em;margin:0.5em 0}.markdown-block--C3siNgW9{border:1px solid #ccd1de;border-radius:9px;padding:1em;background:#fff}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"detail\": `detail--JiiWugxP`,\n\t\"code-block\": `code-block--wccWPbbW`,\n\t\"code-fallback\": `code-fallback--a8nCduaZ`,\n\t\"progress-container\": `progress-container--tFUAQo73`,\n\t\"stream-message\": `stream-message--G0tAm9aa`,\n\t\"progress-fallback\": `progress-fallback--Xto82BYu`,\n\t\"markdown-block\": `markdown-block--C3siNgW9`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { useMemo } from \"react\";\nimport type { ActivityWithFlow, ServiceFlowRun } from \"./interfaces\";\n\nexport function useFlowAndActivityMap(serviceFlows: ServiceFlowRun[]) {\n return useMemo(() => {\n const flowMap = new Map<string, ServiceFlowRun>();\n const activityMap = new Map<string, ActivityWithFlow>();\n\n for (const flow of serviceFlows) {\n if (flow.taskId) {\n flowMap.set(flow.taskId, flow);\n }\n for (const stage of flow.spec) {\n for (const activity of stage.serviceFlowActivities) {\n if (activity.taskId) {\n activityMap.set(activity.taskId, { activity, flow });\n }\n }\n }\n }\n\n return { flowMap, activityMap };\n }, [serviceFlows]);\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeFeedback.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeFeedback.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n YES = \"YES\",\n NO = \"NO\",\n SUBMIT = \"SUBMIT\",\n RESET = \"RESET\",\n FEEDBACK_NODE_TITLE = \"FEEDBACK_NODE_TITLE\",\n PROBLEM_FEEDBACK = \"PROBLEM_FEEDBACK\",\n PROBLEM_FEEDBACK_PLACEHOLDER = \"PROBLEM_FEEDBACK_PLACEHOLDER\",\n IS_THE_TASK_PLAN_COMPLETE = \"IS_THE_TASK_PLAN_COMPLETE\",\n IS_THE_TASK_PLAN_LOGICALLY_CORRECT = \"IS_THE_TASK_PLAN_LOGICALLY_CORRECT\",\n ARE_THE_TASK_PLAN_STEPS_CONCISE = \"ARE_THE_TASK_PLAN_STEPS_CONCISE\",\n ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE = \"ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE\",\n IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT = \"IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT\",\n THANKS_FOR_YOUR_FEEDBACK = \"THANKS_FOR_YOUR_FEEDBACK\",\n}\n\nconst en: Locale = {\n YES: \"Yes\",\n NO: \"No\",\n SUBMIT: \"Submit\",\n RESET: \"Reset\",\n FEEDBACK_NODE_TITLE: \"How do you think Elevo has done this task?\",\n PROBLEM_FEEDBACK: \"Problem feedback\",\n PROBLEM_FEEDBACK_PLACEHOLDER: \"Please describe the problem you encountered.\",\n IS_THE_TASK_PLAN_COMPLETE: \"Is the task plan complete:\",\n IS_THE_TASK_PLAN_LOGICALLY_CORRECT: \"Is the task plan logically correct:\",\n ARE_THE_TASK_PLAN_STEPS_CONCISE: \"Are the task plan steps concise:\",\n ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE:\n \"Are the analytical conclusions accurate:\",\n IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT:\n \"Is the evidence supporting the conclusions sufficient:\",\n THANKS_FOR_YOUR_FEEDBACK: \"Thank you for helping us become better.\",\n};\n\nconst zh: Locale = {\n YES: \"是\",\n NO: \"否\",\n SUBMIT: \"提交\",\n RESET: \"重置\",\n FEEDBACK_NODE_TITLE: \"Elevo 完成这项任务的效果如何?\",\n PROBLEM_FEEDBACK: \"问题反馈\",\n PROBLEM_FEEDBACK_PLACEHOLDER: \"欢迎留下您的意见\",\n IS_THE_TASK_PLAN_COMPLETE: \"任务计划是否完备:\",\n IS_THE_TASK_PLAN_LOGICALLY_CORRECT: \"任务计划是否逻辑正确:\",\n ARE_THE_TASK_PLAN_STEPS_CONCISE: \"任务计划步骤是否精简:\",\n ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE: \"分析结论是否准确:\",\n IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT:\n \"结论的支撑证据是否充足:\",\n THANKS_FOR_YOUR_FEEDBACK: \"感谢你帮我们变得更好。\",\n};\n\nexport const NS = \"bricks/ai-portal/NodeFeedback\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","// istanbul ignore file: experimental\nimport React, { useCallback, useContext, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport styles from \"./NodeFeedback.module.css\";\nimport { K, locales, NS, t } from \"./i18n\";\nimport { WrappedButton, WrappedIconButton } from \"../bricks\";\nimport { ICON_CLOSE } from \"../constants\";\nimport { TaskContext } from \"../TaskContext\";\n\ninitializeI18n(NS, locales);\n\nlet checks:\n | Array<{\n label: string;\n value: string;\n group: \"plan\" | \"result\";\n }>\n | undefined;\n\nfunction getChecks() {\n if (!checks) {\n checks = [\n {\n label: `1. ${t(K.IS_THE_TASK_PLAN_COMPLETE)}`,\n value: \"计划完备\",\n group: \"plan\",\n },\n {\n label: `2. ${t(K.IS_THE_TASK_PLAN_LOGICALLY_CORRECT)}`,\n value: \"逻辑正确\",\n group: \"plan\",\n },\n {\n label: `3. ${t(K.ARE_THE_TASK_PLAN_STEPS_CONCISE)}`,\n value: \"步骤精简\",\n group: \"plan\",\n },\n {\n label: `4. ${t(K.ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE)}`,\n value: \"结论准确\",\n group: \"result\",\n },\n {\n label: `5. ${t(K.IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT)}`,\n value: \"支撑证据充足\",\n group: \"result\",\n },\n ];\n }\n return checks;\n}\n\nexport interface NodeFeedbackProps {\n className?: string;\n}\n\nexport function NodeFeedback({ className }: NodeFeedbackProps): JSX.Element {\n const {\n submittingFeedback,\n submittedFeedback,\n setShowFeedback,\n onSubmitFeedback,\n } = useContext(TaskContext);\n const formRef = useRef<HTMLFormElement>(null);\n const checks = getChecks();\n const [triedSubmit, setTriedSubmit] = useState(false);\n\n const handleSubmit = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n setTriedSubmit(true);\n if (!formRef.current?.reportValidity()) {\n return;\n }\n const formData = new FormData(formRef.current!);\n const plan: string[] = [];\n const result: string[] = [];\n for (let i = 0; i < checks.length; i++) {\n const value = formData.get(`feedback-check-${i}`);\n if (value) {\n if (checks[i].group === \"plan\") {\n plan.push(value as string);\n } else {\n result.push(value as string);\n }\n }\n }\n onSubmitFeedback({\n plan,\n result,\n feedback: (formData.get(\"feedback\") ?? \"\") as string,\n });\n },\n [checks, onSubmitFeedback]\n );\n\n const handleReset = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n setTriedSubmit(false);\n formRef.current?.reset();\n }, []);\n\n if (submittedFeedback) {\n return (\n <div\n className={classNames(\n styles[\"node-feedback\"],\n styles.submitted,\n className\n )}\n >\n {t(K.THANKS_FOR_YOUR_FEEDBACK)}\n </div>\n );\n }\n\n return (\n <div className={classNames(styles[\"node-feedback\"], className)}>\n <div className={styles.heading}>\n <div className={styles.title}>{t(K.FEEDBACK_NODE_TITLE)}</div>\n <WrappedIconButton\n icon={ICON_CLOSE}\n variant=\"mini\"\n onClick={() => setShowFeedback(false)}\n />\n </div>\n <form\n className={classNames(styles.form, { [styles.validate]: triedSubmit })}\n ref={formRef}\n >\n {checks.map((check, index) => (\n <div\n key={index}\n className={`${styles[\"form-item\"]} ${styles.horizontal}`}\n >\n <div className={styles.label}>{check.label}</div>\n <div className={styles.options}>\n <label className={styles.radio}>\n <input\n type=\"radio\"\n required\n name={`feedback-check-${index}`}\n value={check.value}\n />\n <span>{t(K.YES)}</span>\n </label>\n <label className={styles.radio}>\n <input\n type=\"radio\"\n required\n name={`feedback-check-${index}`}\n value=\"\"\n />\n <span>{t(K.NO)}</span>\n </label>\n </div>\n </div>\n ))}\n <div className={`${styles[\"form-item\"]} ${styles.vertical}`}>\n <label htmlFor=\"feedback-content\">{t(K.PROBLEM_FEEDBACK)}</label>\n <textarea\n id=\"feedback-content\"\n name=\"feedback\"\n placeholder={t(K.PROBLEM_FEEDBACK_PLACEHOLDER)}\n rows={2}\n />\n </div>\n <div className={styles.submit}>\n <WrappedButton themeVariant=\"elevo\" type=\"text\" onClick={handleReset}>\n {t(K.RESET)}\n </WrappedButton>\n <WrappedButton\n themeVariant=\"elevo\"\n type=\"primary\"\n shape=\"round\"\n onClick={handleSubmit}\n disabled={submittingFeedback}\n >\n {t(K.SUBMIT)}\n </WrappedButton>\n </div>\n </form>\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n SEND_MESSAGE = \"SEND_MESSAGE\",\n CONFIRM_TO_TERMINATE_THE_TASK_TITLE = \"CONFIRM_TO_TERMINATE_THE_TASK_TITLE\",\n CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION = \"CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION\",\n TERMINATE_THE_TASK = \"TERMINATE_THE_TASK\",\n}\n\nconst en: Locale = {\n SEND_MESSAGE: \"Send message\",\n CONFIRM_TO_TERMINATE_THE_TASK_TITLE: \"Are you sure to terminate the task?\",\n CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION:\n \"After terminating the task, Elevo will no longer proceed with your request. Please confirm.\",\n TERMINATE_THE_TASK: \"Terminate the task\",\n};\n\nconst zh: Locale = {\n SEND_MESSAGE: \"发送消息\",\n CONFIRM_TO_TERMINATE_THE_TASK_TITLE: \"确定终止任务吗?\",\n CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION:\n \"终止任务后 Elevo 将不会继续执行您的请求,请确认。\",\n TERMINATE_THE_TASK: \"终止任务\",\n};\n\nexport const NS = \"bricks/ai-portal/ChatBox\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ChatBox.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ChatBox.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useCallback, useContext, useEffect, useState } from \"react\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { showDialog, WrappedChatInput, WrappedIcon } from \"../bricks\";\nimport { K, locales, NS, t } from \"./i18n\";\nimport { TaskContext } from \"../TaskContext\";\nimport type { ConversationState } from \"../interfaces\";\nimport styles from \"./ChatBox.module.css\";\nimport { ICON_STOP } from \"../constants\";\n\ninitializeI18n(NS, locales);\n\nexport interface ChatBoxProps {\n state: ConversationState | undefined;\n canChat: boolean;\n}\n\nexport function ChatBox({ state, canChat }: ChatBoxProps): JSX.Element {\n const {\n humanInput,\n onTerminate,\n supports,\n aiEmployees,\n commands,\n uploadOptions,\n } = useContext(TaskContext);\n\n const [terminating, setTerminating] = useState(false);\n\n useEffect(() => {\n setTerminating(false);\n }, [state]);\n\n const handleTerminate = useCallback(async () => {\n try {\n await showDialog({\n type: \"confirm\",\n title: t(K.CONFIRM_TO_TERMINATE_THE_TASK_TITLE),\n content: t(K.CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION),\n });\n } catch {\n return;\n }\n onTerminate();\n setTerminating(true);\n }, [onTerminate]);\n\n if (!canChat && supports?.intercept) {\n return (\n <button\n className={styles.button}\n onClick={handleTerminate}\n disabled={terminating}\n >\n <WrappedIcon {...ICON_STOP} />\n {t(K.TERMINATE_THE_TASK)}\n </button>\n );\n }\n\n return (\n <WrappedChatInput\n placeholder={t(K.SEND_MESSAGE)}\n autoFocus\n autoFade\n aiEmployees={aiEmployees}\n commands={commands}\n suggestionsPlacement=\"top\"\n uploadOptions={uploadOptions}\n onChatSubmit={(e) => {\n const { content, ...extra } = e.detail;\n humanInput(content, undefined, extra);\n }}\n onTerminate={handleTerminate}\n />\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeReplay.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeReplay.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n WATCH_AGAIN = \"WATCH_AGAIN\",\n TRY_IT_OUT = \"TRY_IT_OUT\",\n CASE_REPLAYING = \"CASE_REPLAYING\",\n CASE_REPLAY_FINISHED = \"CASE_REPLAY_FINISHED\",\n SKIP_TO_RESULTS = \"SKIP_TO_RESULTS\",\n OTHER_CASES = \"OTHER_CASES\",\n PROJECT_TIPS = \"PROJECT_TIPS\",\n GET_STARTED_WITH_PROJECTS_PREFIX = \"GET_STARTED_WITH_PROJECTS_PREFIX\",\n PROJECTS = \"PROJECTS\",\n GET_STARTED_WITH_PROJECTS_SUFFIX = \"GET_STARTED_WITH_PROJECTS_SUFFIX\",\n}\n\nconst en: Locale = {\n WATCH_AGAIN: \"Watch again\",\n TRY_IT_OUT: \"Try it out\",\n CASE_REPLAYING: \"The case is replaying...\",\n CASE_REPLAY_FINISHED: \"The case replay has finished.\",\n SKIP_TO_RESULTS: \"Skip to results\",\n OTHER_CASES: \"Other cases\",\n PROJECT_TIPS:\n \"Start your project collaboration journey and achieve shared goals with team members and AI employees.\",\n GET_STARTED_WITH_PROJECTS_PREFIX: \"Get started with \",\n PROJECTS: \"Projects\",\n GET_STARTED_WITH_PROJECTS_SUFFIX: \"\",\n};\n\nconst zh: Locale = {\n WATCH_AGAIN: \"再次观看\",\n TRY_IT_OUT: \"尝试同款\",\n CASE_REPLAYING: \"案例回放中...\",\n CASE_REPLAY_FINISHED: \"案例回放完成\",\n SKIP_TO_RESULTS: \"跳转到结果\",\n OTHER_CASES: \"其他案例\",\n PROJECT_TIPS:\n \"开启项目协作之旅,和团队成员及多位AI数字人一起实现共同制定的目标。\",\n GET_STARTED_WITH_PROJECTS_PREFIX: \"开启 \",\n PROJECTS: \"项目\",\n GET_STARTED_WITH_PROJECTS_SUFFIX: \" 体验\",\n};\n\nexport const NS = \"bricks/ai-portal/NodeReplay\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useContext } from \"react\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport styles from \"./NodeReplay.module.css\";\nimport {\n WrappedButton,\n WrappedIcon,\n WrappedLink,\n WrappedShowCase,\n} from \"../../shared/bricks\";\nimport { TaskContext } from \"../../shared/TaskContext\";\nimport { ICON_LOADING } from \"../../shared/constants\";\nimport { K, locales, NS, t } from \"./i18n\";\nimport projectIcon from \"./project@2x.png\";\nimport classNames from \"classnames\";\n\ninitializeI18n(NS, locales);\n\nexport interface NodeReplayProps {\n finished?: boolean;\n ui?: \"chat\" | \"canvas\";\n}\n\nexport function NodeReplay({ finished, ui }: NodeReplayProps) {\n const {\n conversationId,\n showCases,\n exampleProjects,\n skipToResults,\n watchAgain,\n tryItOut,\n } = useContext(TaskContext);\n\n return (\n <div\n className={classNames(styles[\"node-replay\"], {\n [styles.finished]: finished,\n [styles.chat]: ui === \"chat\",\n })}\n >\n <div className={styles.bar}>\n <div className={styles.label}>\n {finished ? t(K.CASE_REPLAY_FINISHED) : t(K.CASE_REPLAYING)}\n </div>\n <div className={styles.buttons}>\n {finished ? (\n <WrappedButton themeVariant=\"elevo\" onClick={watchAgain}>\n {t(K.WATCH_AGAIN)}\n </WrappedButton>\n ) : (\n <WrappedButton themeVariant=\"elevo\" onClick={skipToResults}>\n {t(K.SKIP_TO_RESULTS)}\n </WrappedButton>\n )}\n <WrappedButton type=\"primary\" themeVariant=\"elevo\" onClick={tryItOut}>\n {t(K.TRY_IT_OUT)}\n </WrappedButton>\n </div>\n </div>\n {finished && (\n <div className={styles.content}>\n {!showCases ||\n (showCases.length > 0 && (\n <>\n <div className={styles.heading}>{t(K.OTHER_CASES)}</div>\n {showCases ? (\n <ul className={styles.cases}>\n {showCases\n .filter((item) => item.conversationId !== conversationId)\n .slice(0, 3)\n .map((item) => (\n <li key={item.conversationId}>\n <WrappedShowCase\n caseTitle={item.title}\n summary={item.summary}\n url={item.url}\n />\n </li>\n ))}\n </ul>\n ) : (\n <WrappedIcon className={styles.loading} {...ICON_LOADING} />\n )}\n </>\n ))}\n {!exampleProjects ||\n (exampleProjects.length > 0 && (\n <>\n <div className={styles.heading}>\n {t(K.GET_STARTED_WITH_PROJECTS_PREFIX)}\n <span className={styles.tag}>{t(K.PROJECTS)}</span>\n {t(K.GET_STARTED_WITH_PROJECTS_SUFFIX)}\n </div>\n <div className={styles.tips}>{t(K.PROJECT_TIPS)}</div>\n {exampleProjects ? (\n <ul className={styles.projects}>\n {exampleProjects.slice(0, 2).map((item) => (\n <li key={item.instanceId}>\n <WrappedLink className={styles.project} url={item.url}>\n <img src={projectIcon} width={16} height={16} />\n {item.name}\n </WrappedLink>\n </li>\n ))}\n </ul>\n ) : (\n <WrappedIcon className={styles.loading} {...ICON_LOADING} />\n )}\n </>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"names":["useFulfilledActiveDetail","activeDetail","jobMap","flowMap","activityMap","useMemo","type","job","get","id","flow","activityWithFlow","activity","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","undefined","K","NS","t","i18n","getFixedT","ToolCallDetail","_ref","toolCall","progress","intermediateParts","responseParts","_job$messages","toolCallMessages","messages","filter","msg","role","message","part","parts","_part$data","data","push","hasProcessParts","length","hasResponseParts","toolState","includes","state","failed","isError","React","className","styles","detail","heading","ARGUMENTS","body","sharedStyles","markdown","PreComponent","content","originalArguments","maybeJson","fallbackAsMarkdown","PROCESS","map","partIndex","_part$data2","key","classNames","EnhancedMarkdown","JSON","stringify","ToolProgressLine","RESPONSE","_part$data3","text","_ref2","refinedContent","fallback","asMarkdown","json","parse","MarkdownPre","WrappedCodeBlock","source","language","themeVariant","initializeI18n","en","zh","___CSS_LOADER_EXPORT___","module","useHandleEscape","activeExpandedViewJobId","activeFile","activeImages","subActiveDetail","setActiveFile","setActiveImages","setActiveExpandedViewJobId","setActiveDetail","setSubActiveDetail","compositionRef","useRef","useEffect","onCompositionStart","current","onCompositionEnd","document","addEventListener","removeEventListener","onKeyDown","e","step","axis","line","dot","count","total","description","getToolDataProgress","progressPart","findLast","_message$parts","ToolCallStatus","_toolCall$annotations","variant","separateInstructions","useContext","TaskContext","toolTitle","annotations","title","name","jobTitle","instruction","hasToolCallResponse","some","readOnly","handleClick","useCallback","newActiveDetail","prev","isEqual","onClick","status","WrappedIcon","icon","lib","prefix","theme","spinning","startTime","timing","humanizeTime","HumanizeTimeFormat","accurate","endTime","moment","humanize","ss","ExpandedView","_manuallyUpdatedViews","_views$find","views","rootId","uniqueId","workspace","previewUrlTemplate","manuallyUpdatedViews","showFeedbackOnView","onFeedbackOnView","feedbackDoneViews","containerRef","rootRef","generatedView","find","v","view","feedbackDone","useViewFeedbackDone","viewId","has","setView","useState","canFeedback","from","viewsWithTitle","setViewsWithTitle","_generatedView$asyncC","ignore","asyncConstructedView","then","Promise","all","async","_view$entry","entry","defaultExport","result","container","portal","createPortal","root","unstable_createRoot","supportsUseChildren","unmount","remove","loading","setLoading","_rootRef$current","convertedView","convertView","expanded","withContexts","brick","context","functions","templates","render","error","console","handleClose","ref","nav","_view$title","active","buttons","WrappedIconButton","ICON_FEEDBACK","ICON_EXTERNAL_LINK","window","open","getBasePath","slice","parseTemplate","ICON_CLOSE","NS_LIBS_DATETIME","YESTERDAY","TODAY","FUTURE_AFTER","FORMAT_MEDIUM_DATETIME","FORMAT_MEDIUM_DATE","FORMAT_SHORT_DATETIME","FORMAT_SHORT_DATE","FORMAT_SHORT_DAY_DATETIME","FORMAT_SHORT_DAY_DATE","MONTHS","HOURS","SECONDS","MILL_SECONDS","DAYS","MINUTES","time","format","arguments","auto","Infinity","m","now","add","fFull","fMedium","fShort","fShort24","fDefault","full","default","relative","diff","past","Math","min","future","max","getAccurateTime","toFixed","_text","retVal","year","isBefore","clone","isSame","useFlowAndActivityMap","serviceFlows","Map","taskId","set","stage","spec","serviceFlowActivities","checks","getChecks","label","IS_THE_TASK_PLAN_COMPLETE","value","group","IS_THE_TASK_PLAN_LOGICALLY_CORRECT","ARE_THE_TASK_PLAN_STEPS_CONCISE","ARE_THE_ANALYTICAL_CONCLUSIONS_ACCURATE","IS_THE_EVIDENCE_SUPPORTING_THE_CONCLUSIONS_SUFFICIENT","NodeFeedback","submittingFeedback","submittedFeedback","setShowFeedback","onSubmitFeedback","formRef","triedSubmit","setTriedSubmit","handleSubmit","_formRef$current","_formData$get","preventDefault","reportValidity","formData","FormData","plan","i","feedback","handleReset","_formRef$current2","reset","submitted","THANKS_FOR_YOUR_FEEDBACK","FEEDBACK_NODE_TITLE","form","validate","check","index","horizontal","radio","required","YES","NO","vertical","htmlFor","PROBLEM_FEEDBACK","placeholder","PROBLEM_FEEDBACK_PLACEHOLDER","rows","submit","WrappedButton","RESET","shape","disabled","SUBMIT","ChatBox","canChat","humanInput","onTerminate","supports","aiEmployees","commands","uploadOptions","terminating","setTerminating","handleTerminate","showDialog","CONFIRM_TO_TERMINATE_THE_TASK_TITLE","CONFIRM_TO_TERMINATE_THE_TASK_DESCRIPTION","intercept","button","ICON_STOP","TERMINATE_THE_TASK","WrappedChatInput","SEND_MESSAGE","autoFocus","autoFade","suggestionsPlacement","onChatSubmit","extra","NodeReplay","finished","ui","conversationId","showCases","exampleProjects","skipToResults","watchAgain","tryItOut","chat","bar","CASE_REPLAY_FINISHED","CASE_REPLAYING","WATCH_AGAIN","SKIP_TO_RESULTS","TRY_IT_OUT","OTHER_CASES","cases","item","WrappedShowCase","caseTitle","summary","url","_extends","ICON_LOADING","GET_STARTED_WITH_PROJECTS_PREFIX","tag","PROJECTS","GET_STARTED_WITH_PROJECTS_SUFFIX","tips","PROJECT_TIPS","projects","instanceId","WrappedLink","project","src","projectIcon","width","height"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[7139],{625:(e,t,a)=>{function i(e){switch(e){case"input-required":return{lib:"antd",theme:"filled",icon:"pause-circle"};case"completed":return{lib:"antd",theme:"filled",icon:"check-circle"};case"failed":return{lib:"antd",theme:"filled",icon:"close-circle"};case"terminated":return{lib:"antd",theme:"filled",icon:"stop"};case"working":return{lib:"antd",icon:"loading-3-quarters",spinning:!0};default:return{lib:"antd",theme:"filled",icon:"clock-circle"}}}a.d(t,{W:()=>i})},27139:(e,t,a)=>{a.d(t,{C:()=>ue});var i=a(18769),n=a.n(i),l=a(60128),s=a(53373),o=a.n(s),c=a(52208),r=a(67101),d=a(13330),m=a(30672),p=a(30621),u=a(34246),f=a(76720),b=a(96923),h=a(40177),g=a(62309),v=a(72591),x=a.n(v),E=a(1740),w=a.n(E),k=a(88128),y=a.n(k),I=a(30855),A=a.n(I),T=a(93051),N=a.n(T),D=a(73656),S=a.n(D),C=a(83090),F={};F.styleTagTransform=S(),F.setAttributes=A(),F.insert=y().bind(null,"head"),F.domAPI=w(),F.insertStyleElement=N(),x()(C.A,F);const j=C.A&&C.A.locals?C.A.locals:void 0;var U=a(36903),G=a(39649),z=a(51069),R=a(89575),P=a(67177),B=a(83685),_={};_.styleTagTransform=S(),_.setAttributes=A(),_.insert=y().bind(null,"head"),_.domAPI=w(),_.insertStyleElement=N(),x()(B.A,_);const L=B.A&&B.A.locals?B.A.locals:void 0;var M=a(625);let O=function(e){return e.WAITING="WAITING",e.EXECUTING="EXECUTING",e.PAUSED="PAUSED",e.SUCCEEDED="SUCCEEDED",e.FAILED="FAILED",e.TERMINATED="TERMINATED",e}({});const V="bricks/ai-portal/FlowApp",q=P.i18n.getFixedT(null,V);var J=a(40563),X=a(9442),W=a(69493);function K(e){var t;let{flow:a,activity:l}=e;const{tasks:s,setActiveDetail:c}=(0,i.useContext)(f.j),r=(0,i.useMemo)((()=>s.find((e=>e.id===a.taskId))),[s,a.taskId]),d=(0,i.useMemo)((()=>a.spec.map((e=>{var t;return{...e,serviceFlowActivities:null===(t=e.serviceFlowActivities)||void 0===t?void 0:t.map((e=>{const t=s.find((t=>t.id===e.taskId));return{name:e.name,taskId:e.taskId,state:null==t?void 0:t.state,startTime:null==t?void 0:t.startTime,endTime:null==t?void 0:t.endTime}}))}}))),[a.spec,s]),p=(0,i.useMemo)((()=>Y(r.state)),[r.state]);return n().createElement("div",{className:L.app},n().createElement("div",{className:L.heading},n().createElement("div",{className:L.header},n().createElement("div",{className:o()(L.status,p.className)},n().createElement(m.Bj,p.icon),p.text),n().createElement("div",{className:L.title},`${null!==(t=a.space)&&void 0!==t&&t.name?`${a.space.name} / `:""}${a.name}`)),n().createElement("div",{className:L.chart},n().createElement(m.n$,{spec:d,activeActivityId:null==l?void 0:l.taskId,onActiveChange:e=>{e.detail&&c({type:"activity",id:e.detail})}}))),n().createElement("div",{className:L.body},l?n().createElement($,{activity:l}):n().createElement(m.F_,{className:L.blank,description:"您还未选择活动",illustration:"serviceflows"})))}function $(e){let{activity:t}=e;const{tasks:a,errors:l}=(0,i.useContext)(f.j),s=(0,i.useMemo)((()=>a.find((e=>e.id===t.taskId))),[a,t.taskId]),o=s.state,{icon:c,className:r}=(0,i.useMemo)((()=>Y(o)),[o]),b=(0,i.useMemo)((()=>[{...s,parent:void 0}]),[s]),{messages:h}=(0,d.p)(!0,s.state,b,l),g=(0,i.useRef)(null),v=(0,i.useRef)(null),{scrollable:x,scrollToBottom:E}=(0,J.i)(!0,g,v);return n().createElement(n().Fragment,null,n().createElement("div",{className:L["activity-title"]},n().createElement(m.Bj,(0,R.A)({},c,{className:r})),t.name),n().createElement("div",{className:L.chat,ref:g},n().createElement("div",{className:L.messages,ref:v},h.map(((e,t,a)=>n().createElement("div",{className:L.message,key:t},"user"===e.role?n().createElement(p.R,{content:e.content,mentionedAiEmployeeId:e.mentionedAiEmployeeId,cmd:e.cmd,files:e.files}):n().createElement(u.G,{chunks:e.chunks,scopeState:s.state,isLatest:t===a.length-1,isSubTask:!0})))))),n().createElement("button",{className:`${X.A["scroll-down"]} ${W.A["floating-button"]}`,style:{bottom:"30px"},hidden:!x,onClick:E},n().createElement(m.Bj,{lib:"antd",icon:"down"})))}function Y(e){const t=(0,M.W)(e);let a,i;switch(e){case"working":a=q(O.EXECUTING),i=L.working;break;case"completed":a=q(O.SUCCEEDED),i=L.completed;break;case"failed":a=q(O.FAILED),i=L.failed;break;case"input-required":a=q(O.PAUSED),i=L.paused;break;case"terminated":a=q(O.TERMINATED);break;default:a=q(e?O.EXECUTING:O.WAITING)}return{icon:t,text:a,className:i}}(0,P.initializeI18n)(V,{en:{WAITING:"Waiting",EXECUTING:"Executing",PAUSED:"Paused",SUCCEEDED:"Succeeded",FAILED:"Failed",TERMINATED:"Terminated"},zh:{WAITING:"等待中",EXECUTING:"执行中",PAUSED:"暂停",SUCCEEDED:"成功",FAILED:"失败",TERMINATED:"已终止"}});var Q=a(6115);const H={lib:"easyops",icon:"shrink"};function Z(e){let{detail:t,isSubTask:a,faded:l}=e;const{setActiveDetail:s,setSubActiveDetail:c}=(0,i.useContext)(f.j),{setUserClosedAside:r}=(0,i.useContext)(z.W);return n().createElement("div",{className:o()(j.aside,{[j.sub]:a,[j.faded]:l})},n().createElement("div",{className:j.box},n().createElement("div",{className:j.header},n().createElement("div",{className:j.title},"Elevo's Computer"),n().createElement(m.Py,{icon:H,variant:"mini",onClick:()=>{a?c(null):(s(null),r(!0))}})),n().createElement("div",{className:o()(j.body,{[j.scrollable]:"job"===t.type&&!t.job.generatedView})},"job"===t.type?n().createElement(n().Fragment,null,n().createElement(G.t,{job:t.job,variant:"read-only"}),t.job.generatedView?n().createElement(ee,{name:"View",source:t.job.generatedView.code,language:"jsx"}):n().createElement(Q.M,{job:t.job})):n().createElement(K,{flow:t.flow,activity:t.activity}))))}function ee(e){let{name:t,source:a,language:i}=e;return n().createElement("div",{className:o()(j.app,j.editor)},n().createElement("div",{className:j.heading},`${t}.${i}`),n().createElement("div",{className:o()(j.content,U.A.markdown)},n().createElement("div",{className:j.scroller},n().createElement(m.yQ,{className:j["code-block"],source:a,language:i,themeVariant:"elevo"}))))}var te=a(94625),ae=a(76239),ie={};ie.styleTagTransform=S(),ie.setAttributes=A(),ie.insert=y().bind(null,"head"),ie.domAPI=w(),ie.insertStyleElement=N(),x()(ae.A,ie);const ne=ae.A&&ae.A.locals?ae.A.locals:void 0;var le=a(86767),se=a(48952),oe=a(98153),ce=a(88253),re=a(2367),de=a(38717),me=a(6671),pe=a(32146);function ue(e,t){var a;let{conversationId:s,initialRequest:v,replay:x,replayDelay:E,supports:w,showHumanActions:k,showFeedback:y,showFeedbackAfterFailed:I,showFeedbackOnView:A,showUiSwitch:T,previewUrlTemplate:N,showCases:D,exampleProjects:S,tryItOutUrl:C,aiEmployees:F,commands:j,uploadOptions:U,onShare:G,onTerminate:R,onSubmitFeedback:P,onSwitchToCanvas:B,onFeedbackOnView:_,onDetailChange:L,onSplitChange:M}=e;const{conversation:O,tasks:V,serviceFlows:q,errors:K,humanInputRef:$,skipToResults:Y,watchAgain:Q}=(0,r.u)(s,v,x,E),H=!!O,ee=null!==(a=null==O?void 0:O.title)&&void 0!==a?a:"",ae=null==O?void 0:O.state,ie=h.QB.includes(ae)||"input-required"===ae,{flowMap:ue,activityMap:fe}=(0,ce.o)(q),{messages:be,jobMap:he,lastDetail:ge}=(0,d.p)(H,null==O?void 0:O.state,V,K,ue,fe,{showHumanActions:k,skipActivitySubTasks:!0});(0,i.useEffect)((()=>{L({projectId:null==O?void 0:O.projectId})}),[L,null==O?void 0:O.projectId]);const ve=(0,i.useMemo)((()=>he?[...he.values()].flatMap((e=>e.generatedView?{id:e.id,view:e.generatedView}:[])):[]),[he]),[xe,Ee]=(0,i.useState)(!1),[we,ke]=(0,i.useState)(!1),[ye,Ie]=(0,i.useState)(!!y);(0,i.useEffect)((()=>{Ie(!!y)}),[y]);const[Ae,Te]=(0,i.useState)(),Ne=(0,i.useCallback)((e=>{Ee(!0),P(e)}),[P]);(0,i.useImperativeHandle)(t,(()=>({feedbackSubmitDone:()=>{ke(!0),setTimeout((()=>{Ie(!1)}),3e3)},feedbackSubmitFailed:()=>{Ee(!1)},feedbackOnViewDone:e=>{Te((t=>{const a=new Set(t);return a.add(e),a}))}})),[]);const[De,Se]=(0,i.useState)(null),[Ce,Fe]=(0,i.useState)(null),[je,Ue]=(0,i.useState)(null),[Ge,ze]=(0,i.useState)(!1),Re=(0,i.useRef)(!1);(0,i.useEffect)((()=>{if(H){const e=setTimeout((()=>{Re.current=!0}),1e3);return()=>{clearTimeout(e)}}}),[H]);const Pe=!!v;(0,i.useEffect)((()=>{(Re.current||Pe)&&ge&&!Ge&&Fe(ge)}),[ge,Ge,Pe]),(0,i.useEffect)((()=>{(0,l.getRuntime)().applyPageTitle(ee)}),[ee]);const Be=(0,i.useCallback)(((e,t,a)=>{var i;null===(i=$.current)||void 0===i||i.call($,e,t,a)}),[$]),_e=be[0],Le="user"===(null==_e?void 0:_e.role)?_e:null,[Me,Oe]=(0,i.useState)(null),[Ve,qe]=(0,i.useState)(null),Je=s,Xe=(0,i.useMemo)((()=>({conversationId:s,conversationState:ae,tasks:V,errors:K,jobMap:he,flowMap:ue,activityMap:fe,workspace:Je,previewUrlTemplate:N,replay:x,showCases:D,exampleProjects:S,aiEmployees:F,commands:j,uploadOptions:U,humanInput:Be,onShare:G,onTerminate:R,supports:w,activeExpandedViewJobId:De,setActiveExpandedViewJobId:Se,activeDetail:Ce,setActiveDetail:Fe,subActiveDetail:je,setSubActiveDetail:Ue,submittingFeedback:xe,submittedFeedback:we,onSubmitFeedback:Ne,setShowFeedback:Ie,showFeedbackOnView:A,onFeedbackOnView:_,feedbackDoneViews:Ae,skipToResults:Y,watchAgain:Q,tryItOut(){const e=window.open(`${(0,l.getBasePath)().slice(0,-1)}${null!=C?C:"/elevo"}`,"_blank");e&&(e.__elevo_try_it_out=Le?{content:Le.content,cmd:Le.cmd,mentionedAiEmployeeId:Le.mentionedAiEmployeeId}:{})},activeFile:Me,setActiveFile:Oe,activeImages:Ve,setActiveImages:qe})),[s,ae,V,K,he,ue,fe,Je,N,x,D,S,F,j,U,Be,G,R,w,De,Ce,je,xe,we,Ne,A,_,Ae,Y,Q,Le,C,Me,Ve]),We=(0,i.useMemo)((()=>({lastDetail:ge,setUserClosedAside:ze})),[ge]),[Ke,$e]=(0,i.useState)(!1);(0,i.useEffect)((()=>{let e=!1;return Promise.race([(0,c.L)("light-plus"),new Promise((e=>setTimeout(e,5e3)))]).finally((()=>{e||$e(!0)})),()=>{e=!0}}),[]);const Ye=(0,i.useRef)(null),Qe=(0,i.useRef)(null),{scrollable:He,scrollToBottom:Ze}=(0,J.i)(H&&Ke,Ye,Qe),et=(0,re.U)(Ce,he,ue,fe),tt=(0,re.U)(je,he,ue,fe);(0,pe.d)(Xe);const at=!(!Ce&&!je);(0,i.useEffect)((()=>{M(at)}),[M,at]),(0,i.useEffect)((()=>{var e;null===(e=Ye.current)||void 0===e||e.focus()}),[H,Ke]);const it=!x&&(null==O?void 0:O.finished)&&"resume"!==O.mode&&!h.Z5.includes(ae);return n().createElement(f.j.Provider,{value:Xe},n().createElement(z.W.Provider,{value:We},n().createElement("div",{className:ne.container},n().createElement("div",{className:ne.header},n().createElement("h1",null,ee)),H&&Ke?n().createElement(n().Fragment,null,n().createElement("div",{className:ne.main,tabIndex:-1,ref:Ye},n().createElement("div",{className:ne.narrow,ref:Qe},be.map(((e,t,a)=>n().createElement("div",{className:ne.message,key:t},"user"===e.role?n().createElement(p.R,{content:e.content,cmd:e.cmd,mentionedAiEmployeeId:e.mentionedAiEmployeeId,files:e.files}):n().createElement(u.G,{chunks:e.chunks,scopeState:ae,isLatest:t===a.length-1&&!it,finished:O.finished})))),it&&n().createElement("div",{className:ne.message},n().createElement(u.G,{earlyFinished:!0})),x?(null==O?void 0:O.finished)&&n().createElement(oe.A,{finished:!0,ui:"chat"}):ye&&("completed"===ae||"failed"===ae&&I)&&V.length>0&&n().createElement(te.k,{className:ne.feedback}))),n().createElement("button",{className:`${X.A["scroll-down"]} ${W.A["floating-button"]}`,hidden:!He,onClick:Ze},n().createElement(m.Bj,{lib:"antd",icon:"down"})),(x?null==O||!O.finished:null==w?void 0:w.chat)?n().createElement("div",{className:ne.footer},n().createElement("div",{className:ne.narrow},x?n().createElement(oe.A,null):n().createElement(b.s,{state:ae,canChat:ie}))):null):n().createElement("div",{className:ne["loading-icon"]},n().createElement(m.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}))),n().createElement("div",{className:o()(ne.aside,{[ne.expanded]:!!et})},et&&n().createElement(Z,{detail:et,faded:!!tt}),tt&&n().createElement(Z,{detail:tt,isSubTask:!0})),De&&n().createElement(g.f,{views:ve}),T&&n().createElement("div",{className:o()(le.A.toolbar,ne.toolbar)},n().createElement(m.Py,{icon:h.Rq,variant:"mini",title:(0,se.t)(se.K.SWITCH_TO_CANVAS),onClick:B})),Me&&n().createElement(de.d,{file:Me}),Ve&&n().createElement(me.f,{images:Ve})))}},76239:(e,t,a)=>{a.d(t,{A:()=>p});var i=a(36758),n=a.n(i),l=a(40935),s=a.n(l),o=a(20062),c=a.n(o),r=new URL(a(32360),a.b),d=s()(n()),m=c()(r);d.push([e.id,`ai-portal\\.chat-stream{display:flex;position:relative;width:100%;height:100%;overflow:hidden;background-color:#f3f3f4;background-image:url(${m});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:rgba(0,0,0,0.88);--cruise-canvas-node-width-small:330px;--cruise-canvas-node-width-medium:453px;--cruise-canvas-node-width-large:800px;--cruise-canvas-primary-color:var(--elevo-color-brand);--cruise-canvas-input-background:rgba(255,255,255,0.8);--cruise-canvas-input-box-shadow:0px 1px 0px 0px #ffffff,inset 0px 2px 4px 0px #b3bcf9}.container--IOwk4fR1{display:flex;flex-direction:column;position:relative;flex:1;min-width:0}.header--O9c4lNA3{height:54px;padding:0 72px;display:flex;align-items:center;justify-content:space-between}.header--O9c4lNA3 h1{font-weight:500;font-size:14px;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.main--KDIjetJs{overflow-y:auto;flex:1;padding:20px 24px}.narrow--xWih9UIb{width:100%;max-width:800px;margin:0 auto}.message--YIXGDQNi + .message--YIXGDQNi{margin-top:40px}.loading-icon--lagcmORP{flex:1;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff}.footer--aLZ8UWjM{padding:0 20px 24px}.aside--Xjd6To2A{width:0%;height:100%;transition:width 0.2s ease-in-out;position:relative}.expanded--xZgk3uBF{width:50%}.feedback--YbYylTcK{margin:24px auto 0}.toolbar--uiLshJmw{left:20px;bottom:20px}@media (max-width: 1123px){div.toolbar--uiLshJmw{display:none}}`,""]),d.locals={container:"container--IOwk4fR1",header:"header--O9c4lNA3",main:"main--KDIjetJs",narrow:"narrow--xWih9UIb",message:"message--YIXGDQNi","loading-icon":"loading-icon--lagcmORP",footer:"footer--aLZ8UWjM",aside:"aside--Xjd6To2A",expanded:"expanded--xZgk3uBF",feedback:"feedback--YbYylTcK",toolbar:"toolbar--uiLshJmw"};const p=d},83090:(e,t,a)=>{a.d(t,{A:()=>o});var i=a(36758),n=a.n(i),l=a(40935),s=a.n(l)()(n());s.push([e.id,".aside--DDIdDtkt{padding:12px 12px 12px 0;height:100%}.faded--AsNxuT2v{opacity:0.4}.sub--d8EpebQt{position:absolute;top:16px;right:16px;left:-16px;height:calc(100% - 16px)}.box--niuFBiiQ{background:#ffffff;box-shadow:1px 1px 10px 0px rgba(0,10,26,0.1);border-radius:12px;height:100%;display:flex;flex-direction:column}.header--DPl_hrTp{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,0.15);padding:0 20px}.title--HlE9yRcJ{font-weight:500;font-size:16px;color:#262626}.body--OLKz1zeC{flex:1;min-height:0;padding:20px;display:flex;flex-direction:column}.body--OLKz1zeC.scrollable--JydKNhBJ{overflow-y:auto}.app--UanK0TGf{flex:1;min-height:0;background:#ffffff;border-radius:9px;border:1px solid #ccd1de;margin-top:16px;overflow:hidden;display:flex;flex-direction:column}.heading--ngRi_rQ4{background:#e6e9f3;color:#5e6472;padding:5px 14px}.content--I2i0y65v{font-size:12px;flex:1;min-height:0;position:relative}.scroller--mLfznC_I{height:100%;overflow-x:hidden;overflow-y:auto;overflow:hidden auto;padding:10px}.scroller--mLfznC_I.loading--U1GWHEp9{display:flex;align-items:center;justify-content:center}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(wrapper){position:static;margin:0}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(pre){background:none!important;padding:0;border-radius:0;border:0}",""]),s.locals={aside:"aside--DDIdDtkt",faded:"faded--AsNxuT2v",sub:"sub--d8EpebQt",box:"box--niuFBiiQ",header:"header--DPl_hrTp",title:"title--HlE9yRcJ",body:"body--OLKz1zeC",scrollable:"scrollable--JydKNhBJ",app:"app--UanK0TGf",heading:"heading--ngRi_rQ4",content:"content--I2i0y65v",scroller:"scroller--mLfznC_I",loading:"loading--U1GWHEp9",editor:"editor--p_Sqs1os","code-block":"code-block--XiUVX7st"};const o=s},83685:(e,t,a)=>{a.d(t,{A:()=>o});var i=a(36758),n=a.n(i),l=a(40935),s=a.n(l)()(n());s.push([e.id,".app--qxnx6yuG{border-radius:9px;border:1px solid #ccd1de;flex:1;min-height:0;display:flex;flex-direction:column}.heading--SbCRupnn{border-bottom:1px solid #ccd1de;border-radius:9px 9px 0 0;background-image:radial-gradient(circle at 1px 1px,#ddd 1px,transparent 0px);background-size:25px 25px;background-position:12px;max-height:30%;display:flex;flex-direction:column}.header--LGXNxV5J{display:flex;align-items:center;padding:16px 30px}.status--aqbJGBcl{background:#aeb3bc;border-radius:100px;height:40px;padding:9px 16px;display:flex;align-items:center;gap:8px;font-size:18px;color:#ffffff}.status--aqbJGBcl eo-icon{font-size:22px}.status--aqbJGBcl.paused--U1cc3Ksn{background:#f0a22e}.status--aqbJGBcl.working--f2PYqFo7{background:#4f69ff}.status--aqbJGBcl.completed--Ihiekkve{background:#08bf33}.status--aqbJGBcl.failed--kB8wxIZ0{background:var(--color-error)}.title--IRvB2t7z{font-weight:500;font-size:16px;margin-left:40px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart--mypbn8pI{padding:8px 22px 18px;overflow:auto;min-height:0}.body--jnk1EIz0{padding:16px 12px 12px;display:flex;flex:1;min-height:0;flex-direction:column;position:relative}.activity-title--hF6stwmT{font-weight:500;font-size:16px;display:flex;align-items:center;gap:6px;margin-bottom:16px}.activity-title--hF6stwmT eo-icon{font-size:20px;color:#8c8c8c}.activity-title--hF6stwmT .paused--U1cc3Ksn{color:#f0a22e}.activity-title--hF6stwmT .working--f2PYqFo7{color:#4f69ff}.activity-title--hF6stwmT .completed--Ihiekkve{color:#08bf33}.activity-title--hF6stwmT .failed--kB8wxIZ0{color:var(--color-error)}.chat--nEzTEXbV{background:rgba(227,228,229,0.4);border:1px solid rgba(0,0,0,0.1);border-radius:8px;padding:16px 20px;flex:1;min-height:0;overflow-y:auto}.messages--vLiwUYSP{width:100%;margin:0 auto}.message--Okzj6NDx + .message--Okzj6NDx{margin-top:40px}",""]),s.locals={app:"app--qxnx6yuG",heading:"heading--SbCRupnn",header:"header--LGXNxV5J",status:"status--aqbJGBcl",paused:"paused--U1cc3Ksn",working:"working--f2PYqFo7",completed:"completed--Ihiekkve",failed:"failed--kB8wxIZ0",title:"title--IRvB2t7z",chart:"chart--mypbn8pI",body:"body--jnk1EIz0","activity-title":"activity-title--hF6stwmT",chat:"chat--nEzTEXbV",messages:"messages--vLiwUYSP",message:"message--Okzj6NDx"};const o=s}}]);
2
- //# sourceMappingURL=7139.80d52ac3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/7139.80d52ac3.js","mappings":"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","sources":["webpack:///./src/shared/getFlowOrActivityIcon.ts","webpack:///./src/chat-stream/Aside/Aside.module.css?0aa1","webpack:///./src/chat-stream/Aside/FlowApp/FlowApp.module.css?5832","webpack:///./src/chat-stream/Aside/FlowApp/i18n.ts","webpack:///./src/chat-stream/Aside/FlowApp/FlowApp.tsx","webpack:///./src/chat-stream/Aside/Aside.tsx","webpack:///./src/chat-stream/styles.module.css?c00e","webpack:///./src/chat-stream/ChatStream.tsx","webpack:///./src/chat-stream/styles.module.css","webpack:///./src/chat-stream/Aside/Aside.module.css","webpack:///./src/chat-stream/Aside/FlowApp/FlowApp.module.css"],"sourcesContent":["import type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport type { ConversationState, JobState, TaskState } from \"./interfaces\";\n\nexport function getFlowOrActivityIcon(\n state: TaskState | JobState | ConversationState | undefined\n): GeneralIconProps {\n switch (state) {\n case \"input-required\":\n return { lib: \"antd\", theme: \"filled\", icon: \"pause-circle\" };\n case \"completed\":\n return { lib: \"antd\", theme: \"filled\", icon: \"check-circle\" };\n case \"failed\":\n return { lib: \"antd\", theme: \"filled\", icon: \"close-circle\" };\n case \"terminated\":\n return { lib: \"antd\", theme: \"filled\", icon: \"stop\" };\n case \"working\":\n return { lib: \"antd\", icon: \"loading-3-quarters\", spinning: true };\n default:\n return { lib: \"antd\", theme: \"filled\", icon: \"clock-circle\" };\n }\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Aside.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Aside.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./FlowApp.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./FlowApp.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n WAITING = \"WAITING\",\n EXECUTING = \"EXECUTING\",\n PAUSED = \"PAUSED\",\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\",\n TERMINATED = \"TERMINATED\",\n}\n\nconst en: Locale = {\n WAITING: \"Waiting\",\n EXECUTING: \"Executing\",\n PAUSED: \"Paused\",\n SUCCEEDED: \"Succeeded\",\n FAILED: \"Failed\",\n TERMINATED: \"Terminated\",\n};\n\nconst zh: Locale = {\n WAITING: \"等待中\",\n EXECUTING: \"执行中\",\n PAUSED: \"暂停\",\n SUCCEEDED: \"成功\",\n FAILED: \"失败\",\n TERMINATED: \"已终止\",\n};\n\nexport const NS = \"bricks/ai-portal/FlowApp\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useContext, useMemo, useRef } from \"react\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport styles from \"./FlowApp.module.css\";\nimport {\n WrappedBlankState,\n WrappedIcon,\n WrappedRunningFlow,\n} from \"../../../shared/bricks\";\nimport { getFlowOrActivityIcon } from \"../../../shared/getFlowOrActivityIcon\";\nimport type {\n ActivityRun,\n ConversationState,\n JobState,\n ServiceFlowRun,\n TaskState,\n} from \"../../../shared/interfaces\";\nimport { TaskContext } from \"../../../shared/TaskContext\";\nimport { K, locales, NS, t } from \"./i18n\";\nimport { useConversationStream } from \"../../useConversationStream\";\nimport { UserMessage } from \"../../UserMessage/UserMessage\";\nimport { AssistantMessage } from \"../../AssistantMessage/AssistantMessage\";\nimport { useAutoScroll } from \"../../useAutoScroll\";\nimport scrollStyles from \"../../ScrollDownButton.module.css\";\nimport floatingStyles from \"../../../shared/FloatingButton.module.css\";\n\ninitializeI18n(NS, locales);\n\nexport interface FlowAppProps {\n flow: ServiceFlowRun;\n activity?: ActivityRun;\n}\n\nexport function FlowApp({ flow, activity }: FlowAppProps) {\n const { tasks, setActiveDetail } = useContext(TaskContext);\n const flowTask = useMemo(() => {\n return tasks.find((t) => t.id === flow.taskId)!;\n }, [tasks, flow.taskId]);\n\n const runningSpec = useMemo(() => {\n return flow.spec.map((stage) => ({\n ...stage,\n serviceFlowActivities: stage.serviceFlowActivities?.map((activity) => {\n const task = tasks.find((t) => t.id === activity.taskId);\n return {\n name: activity.name,\n taskId: activity.taskId,\n state: task?.state,\n startTime: task?.startTime,\n endTime: task?.endTime,\n };\n }),\n }));\n }, [flow.spec, tasks]);\n\n const flowStatus = useMemo(\n () => getFlowStatusDisplay(flowTask.state),\n [flowTask.state]\n );\n\n return (\n <div className={styles.app}>\n <div className={styles.heading}>\n <div className={styles.header}>\n <div className={classNames(styles.status, flowStatus.className)}>\n <WrappedIcon {...flowStatus.icon} />\n {flowStatus.text}\n </div>\n <div className={styles.title}>\n {`${flow.space?.name ? `${flow.space.name} / ` : \"\"}${flow.name}`}\n </div>\n </div>\n <div className={styles.chart}>\n <WrappedRunningFlow\n spec={runningSpec}\n activeActivityId={activity?.taskId}\n onActiveChange={(e) => {\n if (e.detail) {\n setActiveDetail({ type: \"activity\", id: e.detail });\n }\n }}\n />\n </div>\n </div>\n <div className={styles.body}>\n {activity ? (\n <ActivityDetail activity={activity} />\n ) : (\n <WrappedBlankState\n className={styles.blank}\n description=\"您还未选择活动\"\n illustration=\"serviceflows\"\n />\n )}\n </div>\n </div>\n );\n}\n\ninterface ActivityDetailProps {\n activity: ActivityRun;\n}\n\nfunction ActivityDetail({ activity }: ActivityDetailProps) {\n const { tasks, errors } = useContext(TaskContext);\n const activityTask = useMemo(() => {\n return tasks.find((t) => t.id === activity.taskId)!;\n }, [tasks, activity.taskId]);\n const activityState = activityTask.state;\n\n const { icon, className } = useMemo(\n () => getFlowStatusDisplay(activityState),\n [activityState]\n );\n\n const fixedTasks = useMemo(() => {\n return [\n {\n ...activityTask,\n parent: undefined,\n },\n ];\n }, [activityTask]);\n\n const { messages } = useConversationStream(\n true,\n activityTask.state,\n fixedTasks,\n errors\n );\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const scrollContentRef = useRef<HTMLDivElement>(null);\n\n const { scrollable, scrollToBottom } = useAutoScroll(\n true,\n scrollContainerRef,\n scrollContentRef\n );\n\n return (\n <>\n <div className={styles[\"activity-title\"]}>\n <WrappedIcon {...icon} className={className} />\n {activity.name}\n </div>\n <div className={styles.chat} ref={scrollContainerRef}>\n <div className={styles.messages} ref={scrollContentRef}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage\n content={msg.content}\n mentionedAiEmployeeId={msg.mentionedAiEmployeeId}\n cmd={msg.cmd}\n files={msg.files}\n />\n ) : (\n <AssistantMessage\n chunks={msg.chunks}\n scopeState={activityTask.state}\n isLatest={index === list.length - 1}\n isSubTask\n />\n )}\n </div>\n ))}\n </div>\n </div>\n <button\n className={`${scrollStyles[\"scroll-down\"]} ${floatingStyles[\"floating-button\"]}`}\n style={{ bottom: \"30px\" }}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </button>\n </>\n );\n}\n\nfunction getFlowStatusDisplay(state: TaskState | JobState | ConversationState) {\n const icon = getFlowOrActivityIcon(state);\n let text: string;\n let className: string | undefined;\n\n switch (state) {\n case \"working\":\n text = t(K.EXECUTING);\n className = styles.working;\n break;\n case \"completed\":\n text = t(K.SUCCEEDED);\n className = styles.completed;\n break;\n case \"failed\":\n text = t(K.FAILED);\n className = styles.failed;\n break;\n case \"input-required\":\n text = t(K.PAUSED);\n className = styles.paused;\n break;\n case \"terminated\":\n text = t(K.TERMINATED);\n break;\n default:\n text = state ? t(K.EXECUTING) : t(K.WAITING);\n }\n\n return { icon, text, className };\n}\n","import React, { useContext } from \"react\";\nimport classNames from \"classnames\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport styles from \"./Aside.module.css\";\nimport sharedStyles from \"../../cruise-canvas/shared.module.css\";\nimport { WrappedCodeBlock, WrappedIconButton } from \"../../shared/bricks\";\nimport { ToolCallStatus } from \"../../cruise-canvas/ToolCallStatus/ToolCallStatus\";\nimport { TaskContext } from \"../../shared/TaskContext\";\nimport { StreamContext } from \"../StreamContext\";\nimport type {\n ActiveDetailOfActivity,\n FulfilledActiveDetail,\n} from \"../../shared/interfaces\";\nimport { FlowApp } from \"./FlowApp/FlowApp\";\nimport { ToolCallDetail } from \"../../cruise-canvas/ToolCallDetail/ToolCallDetail\";\n\nconst ICON_SHRINK: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"shrink\",\n};\n\nexport interface AsideProps {\n detail: FulfilledActiveDetail;\n isSubTask?: boolean;\n faded?: boolean;\n}\n\nexport function Aside({ detail, isSubTask, faded }: AsideProps) {\n const { setActiveDetail, setSubActiveDetail } = useContext(TaskContext);\n const { setUserClosedAside } = useContext(StreamContext);\n\n return (\n <div\n className={classNames(styles.aside, {\n [styles.sub]: isSubTask,\n [styles.faded]: faded,\n })}\n >\n <div className={styles.box}>\n <div className={styles.header}>\n <div className={styles.title}>Elevo&#39;s Computer</div>\n <WrappedIconButton\n icon={ICON_SHRINK}\n variant=\"mini\"\n onClick={() => {\n if (isSubTask) {\n setSubActiveDetail(null);\n } else {\n setActiveDetail(null);\n setUserClosedAside(true);\n }\n }}\n />\n </div>\n <div\n className={classNames(styles.body, {\n [styles.scrollable]:\n detail.type === \"job\" && !detail.job.generatedView,\n })}\n >\n {detail.type === \"job\" ? (\n <>\n <ToolCallStatus job={detail.job} variant=\"read-only\" />\n {detail.job.generatedView ? (\n <EditorApp\n name=\"View\"\n source={detail.job.generatedView.code}\n language=\"jsx\"\n />\n ) : (\n <ToolCallDetail job={detail.job} />\n )}\n </>\n ) : (\n <FlowApp\n flow={detail.flow}\n activity={(detail as ActiveDetailOfActivity).activity}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n\ninterface EditorAppProps {\n name: string;\n source: string;\n language: string;\n}\n\nfunction EditorApp({ name, source, language }: EditorAppProps) {\n return (\n <div className={classNames(styles.app, styles.editor)}>\n <div className={styles.heading}>{`${name}.${language}`}</div>\n <div className={classNames(styles.content, sharedStyles.markdown)}>\n <div className={styles.scroller}>\n <WrappedCodeBlock\n className={styles[\"code-block\"]}\n source={source}\n language={language}\n themeVariant=\"elevo\"\n />\n </div>\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","// istanbul ignore file: experimental\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { getBasePath, getRuntime } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport { preloadHighlighter } from \"@next-shared/markdown\";\nimport { useConversationDetail } from \"../cruise-canvas/useConversationDetail.js\";\nimport { useConversationStream } from \"./useConversationStream.js\";\nimport { WrappedIcon, WrappedIconButton } from \"../shared/bricks.js\";\nimport { UserMessage } from \"./UserMessage/UserMessage.js\";\nimport { AssistantMessage } from \"./AssistantMessage/AssistantMessage.js\";\nimport { TaskContext } from \"../shared/TaskContext.js\";\nimport { ChatBox } from \"../shared/ChatBox/ChatBox.js\";\nimport {\n DONE_STATES,\n ICON_CANVAS,\n NON_WORKING_STATES,\n} from \"../shared/constants.js\";\nimport { ExpandedView } from \"../shared/ExpandedView/ExpandedView.js\";\nimport { Aside } from \"./Aside/Aside.js\";\nimport { StreamContext } from \"./StreamContext.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { NodeFeedback } from \"../shared/NodeFeedback/NodeFeedback.js\";\nimport type { ChatStreamProps, ChatStreamRef, ConversationDetail } from \".\";\nimport styles from \"./styles.module.css\";\nimport toolbarStyles from \"../cruise-canvas/toolbar.module.css\";\nimport { K, t } from \"./i18n.js\";\nimport { NodeReplay } from \"../cruise-canvas/NodeReplay/NodeReplay.js\";\nimport type {\n ActiveDetail,\n ActiveImages,\n ExtraChatPayload,\n FileInfo,\n} from \"../shared/interfaces.js\";\nimport { useFlowAndActivityMap } from \"../shared/useFlowAndActivityMap.js\";\nimport { useFulfilledActiveDetail } from \"../shared/useFulfilledActiveDetail.js\";\nimport { useAutoScroll } from \"./useAutoScroll.js\";\nimport scrollStyles from \"./ScrollDownButton.module.css\";\nimport floatingStyles from \"../shared/FloatingButton.module.css\";\nimport { FilePreview } from \"../shared/FilePreview/FilePreview.js\";\nimport { ImagesPreview } from \"../shared/FilePreview/ImagesPreview.js\";\nimport { useHandleEscape } from \"../shared/useHandleEscape.js\";\n\ninterface ChatStreamComponentProps extends ChatStreamProps {\n conversationId: string;\n onShare: () => void;\n onTerminate: () => void;\n onSubmitFeedback: (detail: FeedbackDetail) => void;\n onSwitchToCanvas: () => void;\n onFeedbackOnView: (viewId: string) => void;\n onDetailChange: (detail: ConversationDetail) => void;\n onSplitChange: (split: boolean) => void;\n}\n\nexport function ChatStreamComponent(\n {\n conversationId,\n initialRequest,\n replay,\n replayDelay,\n supports,\n showHumanActions,\n showFeedback: propShowFeedback,\n showFeedbackAfterFailed,\n showFeedbackOnView,\n showUiSwitch,\n previewUrlTemplate,\n showCases,\n exampleProjects,\n tryItOutUrl,\n aiEmployees,\n commands,\n uploadOptions,\n onShare,\n onTerminate,\n onSubmitFeedback,\n onSwitchToCanvas,\n onFeedbackOnView,\n onDetailChange,\n onSplitChange,\n }: ChatStreamComponentProps,\n ref: React.Ref<ChatStreamRef>\n) {\n const {\n conversation,\n tasks,\n serviceFlows,\n errors,\n humanInputRef,\n skipToResults,\n watchAgain,\n } = useConversationDetail(\n conversationId,\n initialRequest,\n replay,\n replayDelay\n );\n const conversationAvailable = !!conversation;\n const pageTitle = conversation?.title ?? \"\";\n const conversationState = conversation?.state;\n const conversationDone = DONE_STATES.includes(conversationState!);\n const canChat = conversationDone || conversationState === \"input-required\";\n const { flowMap, activityMap } = useFlowAndActivityMap(serviceFlows);\n const { messages, jobMap, lastDetail } = useConversationStream(\n conversationAvailable,\n conversation?.state,\n tasks,\n errors,\n flowMap,\n activityMap,\n { showHumanActions, skipActivitySubTasks: true }\n );\n\n useEffect(() => {\n onDetailChange({\n projectId: conversation?.projectId,\n });\n }, [onDetailChange, conversation?.projectId]);\n\n const views = useMemo(() => {\n if (!jobMap) {\n return [];\n }\n return [...jobMap.values()].flatMap((job) =>\n job.generatedView\n ? {\n id: job.id,\n view: job.generatedView,\n }\n : []\n );\n }, [jobMap]);\n\n const [submittingFeedback, setSubmittingFeedback] = useState(false);\n const [submittedFeedback, setSubmittedFeedback] = useState(false);\n const [showFeedback, setShowFeedback] = useState<boolean>(!!propShowFeedback);\n useEffect(() => {\n setShowFeedback(!!propShowFeedback);\n }, [propShowFeedback]);\n const [feedbackDoneViews, setFeedbackDoneViews] = useState<\n Set<string> | undefined\n >();\n\n const handleSubmitFeedback = useCallback(\n (detail: FeedbackDetail) => {\n setSubmittingFeedback(true);\n onSubmitFeedback(detail);\n },\n [onSubmitFeedback]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n feedbackSubmitDone: () => {\n setSubmittedFeedback(true);\n setTimeout(() => {\n setShowFeedback(false);\n }, 3000);\n },\n feedbackSubmitFailed: () => {\n setSubmittingFeedback(false);\n },\n feedbackOnViewDone: (viewId: string) => {\n setFeedbackDoneViews((prev) => {\n const newSet = new Set(prev);\n newSet.add(viewId);\n return newSet;\n });\n },\n }),\n []\n );\n\n const [activeExpandedViewJobId, setActiveExpandedViewJobId] = useState<\n string | null\n >(null);\n\n const [activeDetail, setActiveDetail] = useState<ActiveDetail | null>(null);\n const [subActiveDetail, setSubActiveDetail] = useState<ActiveDetail | null>(\n null\n );\n const [userClosedAside, setUserClosedAside] = useState(false);\n\n // Delay flag to prevent the aside from being auto-opened for a completed task\n const delayRef = useRef(false);\n useEffect(() => {\n if (conversationAvailable) {\n const timer = setTimeout(() => {\n delayRef.current = true;\n }, 1000);\n return () => {\n clearTimeout(timer);\n };\n }\n }, [conversationAvailable]);\n\n const hasInitialRequest = !!initialRequest;\n useEffect(() => {\n if (\n (delayRef.current || hasInitialRequest) &&\n lastDetail &&\n !userClosedAside\n ) {\n setActiveDetail(lastDetail);\n }\n }, [lastDetail, userClosedAside, hasInitialRequest]);\n\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n\n const humanInput = useCallback(\n (input: string | null, action?: string, extra?: ExtraChatPayload) => {\n humanInputRef.current?.(input, action, extra);\n },\n [humanInputRef]\n );\n\n const firstMessage = messages[0];\n const userMessage = firstMessage?.role === \"user\" ? firstMessage : null;\n\n const [activeFile, setActiveFile] = useState<FileInfo | null>(null);\n const [activeImages, setActiveImages] = useState<ActiveImages | null>(null);\n\n const workspace = conversationId;\n const taskContextValue = useMemo(\n () => ({\n conversationId,\n conversationState,\n tasks,\n errors,\n jobMap,\n flowMap,\n activityMap,\n workspace,\n previewUrlTemplate,\n replay,\n showCases,\n exampleProjects,\n aiEmployees,\n commands,\n uploadOptions,\n\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n activeDetail,\n setActiveDetail,\n subActiveDetail,\n setSubActiveDetail,\n\n submittingFeedback,\n submittedFeedback,\n onSubmitFeedback: handleSubmitFeedback,\n setShowFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n\n skipToResults,\n watchAgain,\n tryItOut() {\n const win = window.open(\n `${getBasePath().slice(0, -1)}${tryItOutUrl ?? \"/elevo\"}`,\n \"_blank\"\n );\n if (win) {\n win.__elevo_try_it_out = userMessage\n ? {\n content: userMessage.content,\n cmd: userMessage.cmd,\n mentionedAiEmployeeId: userMessage.mentionedAiEmployeeId,\n }\n : {};\n }\n },\n activeFile,\n setActiveFile,\n activeImages,\n setActiveImages,\n }),\n [\n conversationId,\n conversationState,\n tasks,\n errors,\n jobMap,\n flowMap,\n activityMap,\n workspace,\n previewUrlTemplate,\n replay,\n showCases,\n exampleProjects,\n aiEmployees,\n commands,\n uploadOptions,\n\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n activeDetail,\n subActiveDetail,\n\n submittingFeedback,\n submittedFeedback,\n handleSubmitFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n\n skipToResults,\n watchAgain,\n userMessage,\n tryItOutUrl,\n activeFile,\n activeImages,\n ]\n );\n\n const streamContextValue = useMemo(\n () => ({\n lastDetail,\n setUserClosedAside,\n }),\n [lastDetail]\n );\n\n const [depsReady, setDepsReady] = useState(false);\n useEffect(() => {\n let ignore = false;\n Promise.race([\n preloadHighlighter(\"light-plus\"),\n // Wait at most 5s\n new Promise((resolve) => setTimeout(resolve, 5000)),\n ]).finally(() => {\n if (!ignore) {\n setDepsReady(true);\n }\n });\n return () => {\n ignore = true;\n };\n }, []);\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const scrollContentRef = useRef<HTMLDivElement>(null);\n\n const { scrollable, scrollToBottom } = useAutoScroll(\n conversationAvailable && depsReady,\n scrollContainerRef,\n scrollContentRef\n );\n\n const fulfilledActiveDetail = useFulfilledActiveDetail(\n activeDetail,\n jobMap,\n flowMap,\n activityMap\n );\n\n const fulfilledSubActiveDetail = useFulfilledActiveDetail(\n subActiveDetail,\n jobMap,\n flowMap,\n activityMap\n );\n\n useHandleEscape(taskContextValue);\n\n const split = !!(activeDetail || subActiveDetail);\n useEffect(() => {\n onSplitChange(split);\n }, [onSplitChange, split]);\n\n useEffect(() => {\n scrollContainerRef.current?.focus();\n }, [conversationAvailable, depsReady]);\n\n const earlyFinished =\n !replay &&\n conversation?.finished &&\n conversation.mode !== \"resume\" &&\n !NON_WORKING_STATES.includes(conversationState!);\n\n return (\n <TaskContext.Provider value={taskContextValue}>\n <StreamContext.Provider value={streamContextValue}>\n <div className={styles.container}>\n <div className={styles.header}>\n <h1>{pageTitle}</h1>\n </div>\n {conversationAvailable && depsReady ? (\n <>\n <div\n className={styles.main}\n tabIndex={-1}\n ref={scrollContainerRef}\n >\n <div className={styles.narrow} ref={scrollContentRef}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage\n content={msg.content}\n cmd={msg.cmd}\n mentionedAiEmployeeId={msg.mentionedAiEmployeeId}\n files={msg.files}\n />\n ) : (\n <AssistantMessage\n chunks={msg.chunks}\n scopeState={conversationState}\n isLatest={index === list.length - 1 && !earlyFinished}\n finished={conversation.finished}\n />\n )}\n </div>\n ))}\n {earlyFinished && (\n <div className={styles.message}>\n <AssistantMessage earlyFinished />\n </div>\n )}\n {replay\n ? conversation?.finished && (\n <NodeReplay finished ui=\"chat\" />\n )\n : showFeedback &&\n (conversationState === \"completed\" ||\n (conversationState === \"failed\" &&\n showFeedbackAfterFailed)) &&\n tasks.length > 0 && (\n <NodeFeedback className={styles.feedback} />\n )}\n </div>\n </div>\n <button\n className={`${scrollStyles[\"scroll-down\"]} ${floatingStyles[\"floating-button\"]}`}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </button>\n {(replay ? !conversation?.finished : supports?.chat) ? (\n <div className={styles.footer}>\n <div className={styles.narrow}>\n {replay ? (\n <NodeReplay />\n ) : (\n <ChatBox state={conversationState} canChat={canChat} />\n )}\n </div>\n </div>\n ) : null}\n </>\n ) : (\n <div className={styles[\"loading-icon\"]}>\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n )}\n </div>\n {\n <div\n className={classNames(styles.aside, {\n [styles.expanded]: !!fulfilledActiveDetail,\n })}\n >\n {fulfilledActiveDetail && (\n <Aside\n detail={fulfilledActiveDetail}\n faded={!!fulfilledSubActiveDetail}\n />\n )}\n {fulfilledSubActiveDetail && (\n <Aside detail={fulfilledSubActiveDetail} isSubTask />\n )}\n </div>\n }\n {activeExpandedViewJobId && <ExpandedView views={views!} />}\n {showUiSwitch && (\n <div className={classNames(toolbarStyles.toolbar, styles.toolbar)}>\n <WrappedIconButton\n icon={ICON_CANVAS}\n variant=\"mini\"\n title={t(K.SWITCH_TO_CANVAS)}\n onClick={onSwitchToCanvas}\n />\n </div>\n )}\n {activeFile && <FilePreview file={activeFile} />}\n {activeImages && <ImagesPreview images={activeImages} />}\n </StreamContext.Provider>\n </TaskContext.Provider>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../home-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `ai-portal\\\\.chat-stream{display:flex;position:relative;width:100%;height:100%;overflow:hidden;background-color:#f3f3f4;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:rgba(0,0,0,0.88);--cruise-canvas-node-width-small:330px;--cruise-canvas-node-width-medium:453px;--cruise-canvas-node-width-large:800px;--cruise-canvas-primary-color:var(--elevo-color-brand);--cruise-canvas-input-background:rgba(255,255,255,0.8);--cruise-canvas-input-box-shadow:0px 1px 0px 0px #ffffff,inset 0px 2px 4px 0px #b3bcf9}.container--IOwk4fR1{display:flex;flex-direction:column;position:relative;flex:1;min-width:0}.header--O9c4lNA3{height:54px;padding:0 72px;display:flex;align-items:center;justify-content:space-between}.header--O9c4lNA3 h1{font-weight:500;font-size:14px;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.main--KDIjetJs{overflow-y:auto;flex:1;padding:20px 24px}.narrow--xWih9UIb{width:100%;max-width:800px;margin:0 auto}.message--YIXGDQNi + .message--YIXGDQNi{margin-top:40px}.loading-icon--lagcmORP{flex:1;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff}.footer--aLZ8UWjM{padding:0 20px 24px}.aside--Xjd6To2A{width:0%;height:100%;transition:width 0.2s ease-in-out;position:relative}.expanded--xZgk3uBF{width:50%}.feedback--YbYylTcK{margin:24px auto 0}.toolbar--uiLshJmw{left:20px;bottom:20px}@media (max-width: 1123px){div.toolbar--uiLshJmw{display:none}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"container\": `container--IOwk4fR1`,\n\t\"header\": `header--O9c4lNA3`,\n\t\"main\": `main--KDIjetJs`,\n\t\"narrow\": `narrow--xWih9UIb`,\n\t\"message\": `message--YIXGDQNi`,\n\t\"loading-icon\": `loading-icon--lagcmORP`,\n\t\"footer\": `footer--aLZ8UWjM`,\n\t\"aside\": `aside--Xjd6To2A`,\n\t\"expanded\": `expanded--xZgk3uBF`,\n\t\"feedback\": `feedback--YbYylTcK`,\n\t\"toolbar\": `toolbar--uiLshJmw`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.aside--DDIdDtkt{padding:12px 12px 12px 0;height:100%}.faded--AsNxuT2v{opacity:0.4}.sub--d8EpebQt{position:absolute;top:16px;right:16px;left:-16px;height:calc(100% - 16px)}.box--niuFBiiQ{background:#ffffff;box-shadow:1px 1px 10px 0px rgba(0,10,26,0.1);border-radius:12px;height:100%;display:flex;flex-direction:column}.header--DPl_hrTp{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,0.15);padding:0 20px}.title--HlE9yRcJ{font-weight:500;font-size:16px;color:#262626}.body--OLKz1zeC{flex:1;min-height:0;padding:20px;display:flex;flex-direction:column}.body--OLKz1zeC.scrollable--JydKNhBJ{overflow-y:auto}.app--UanK0TGf{flex:1;min-height:0;background:#ffffff;border-radius:9px;border:1px solid #ccd1de;margin-top:16px;overflow:hidden;display:flex;flex-direction:column}.heading--ngRi_rQ4{background:#e6e9f3;color:#5e6472;padding:5px 14px}.content--I2i0y65v{font-size:12px;flex:1;min-height:0;position:relative}.scroller--mLfznC_I{height:100%;overflow-x:hidden;overflow-y:auto;overflow:hidden auto;padding:10px}.scroller--mLfznC_I.loading--U1GWHEp9{display:flex;align-items:center;justify-content:center}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(wrapper){position:static;margin:0}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(pre){background:none!important;padding:0;border-radius:0;border:0}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"aside\": `aside--DDIdDtkt`,\n\t\"faded\": `faded--AsNxuT2v`,\n\t\"sub\": `sub--d8EpebQt`,\n\t\"box\": `box--niuFBiiQ`,\n\t\"header\": `header--DPl_hrTp`,\n\t\"title\": `title--HlE9yRcJ`,\n\t\"body\": `body--OLKz1zeC`,\n\t\"scrollable\": `scrollable--JydKNhBJ`,\n\t\"app\": `app--UanK0TGf`,\n\t\"heading\": `heading--ngRi_rQ4`,\n\t\"content\": `content--I2i0y65v`,\n\t\"scroller\": `scroller--mLfznC_I`,\n\t\"loading\": `loading--U1GWHEp9`,\n\t\"editor\": `editor--p_Sqs1os`,\n\t\"code-block\": `code-block--XiUVX7st`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app--qxnx6yuG{border-radius:9px;border:1px solid #ccd1de;flex:1;min-height:0;display:flex;flex-direction:column}.heading--SbCRupnn{border-bottom:1px solid #ccd1de;border-radius:9px 9px 0 0;background-image:radial-gradient(circle at 1px 1px,#ddd 1px,transparent 0px);background-size:25px 25px;background-position:12px;max-height:30%;display:flex;flex-direction:column}.header--LGXNxV5J{display:flex;align-items:center;padding:16px 30px}.status--aqbJGBcl{background:#aeb3bc;border-radius:100px;height:40px;padding:9px 16px;display:flex;align-items:center;gap:8px;font-size:18px;color:#ffffff}.status--aqbJGBcl eo-icon{font-size:22px}.status--aqbJGBcl.paused--U1cc3Ksn{background:#f0a22e}.status--aqbJGBcl.working--f2PYqFo7{background:#4f69ff}.status--aqbJGBcl.completed--Ihiekkve{background:#08bf33}.status--aqbJGBcl.failed--kB8wxIZ0{background:var(--color-error)}.title--IRvB2t7z{font-weight:500;font-size:16px;margin-left:40px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart--mypbn8pI{padding:8px 22px 18px;overflow:auto;min-height:0}.body--jnk1EIz0{padding:16px 12px 12px;display:flex;flex:1;min-height:0;flex-direction:column;position:relative}.activity-title--hF6stwmT{font-weight:500;font-size:16px;display:flex;align-items:center;gap:6px;margin-bottom:16px}.activity-title--hF6stwmT eo-icon{font-size:20px;color:#8c8c8c}.activity-title--hF6stwmT .paused--U1cc3Ksn{color:#f0a22e}.activity-title--hF6stwmT .working--f2PYqFo7{color:#4f69ff}.activity-title--hF6stwmT .completed--Ihiekkve{color:#08bf33}.activity-title--hF6stwmT .failed--kB8wxIZ0{color:var(--color-error)}.chat--nEzTEXbV{background:rgba(227,228,229,0.4);border:1px solid rgba(0,0,0,0.1);border-radius:8px;padding:16px 20px;flex:1;min-height:0;overflow-y:auto}.messages--vLiwUYSP{width:100%;margin:0 auto}.message--Okzj6NDx + .message--Okzj6NDx{margin-top:40px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"app\": `app--qxnx6yuG`,\n\t\"heading\": `heading--SbCRupnn`,\n\t\"header\": `header--LGXNxV5J`,\n\t\"status\": `status--aqbJGBcl`,\n\t\"paused\": `paused--U1cc3Ksn`,\n\t\"working\": `working--f2PYqFo7`,\n\t\"completed\": `completed--Ihiekkve`,\n\t\"failed\": `failed--kB8wxIZ0`,\n\t\"title\": `title--IRvB2t7z`,\n\t\"chart\": `chart--mypbn8pI`,\n\t\"body\": `body--jnk1EIz0`,\n\t\"activity-title\": `activity-title--hF6stwmT`,\n\t\"chat\": `chat--nEzTEXbV`,\n\t\"messages\": `messages--vLiwUYSP`,\n\t\"message\": `message--Okzj6NDx`\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["getFlowOrActivityIcon","state","lib","theme","icon","spinning","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","undefined","K","NS","t","i18n","getFixedT","FlowApp","_ref","_flow$space","flow","activity","tasks","setActiveDetail","useContext","TaskContext","flowTask","useMemo","find","id","taskId","runningSpec","spec","map","stage","_stage$serviceFlowAct","serviceFlowActivities","task","name","startTime","endTime","flowStatus","getFlowStatusDisplay","React","className","styles","app","heading","header","classNames","status","WrappedIcon","text","title","space","chart","WrappedRunningFlow","activeActivityId","onActiveChange","e","detail","type","body","ActivityDetail","WrappedBlankState","blank","description","illustration","_ref2","errors","activityTask","activityState","fixedTasks","parent","messages","useConversationStream","scrollContainerRef","useRef","scrollContentRef","scrollable","scrollToBottom","useAutoScroll","_extends","chat","ref","msg","index","list","message","key","role","UserMessage","content","mentionedAiEmployeeId","cmd","files","AssistantMessage","chunks","scopeState","isLatest","length","isSubTask","scrollStyles","floatingStyles","style","bottom","hidden","onClick","EXECUTING","working","SUCCEEDED","completed","FAILED","failed","PAUSED","paused","TERMINATED","WAITING","initializeI18n","en","zh","ICON_SHRINK","Aside","faded","setSubActiveDetail","setUserClosedAside","StreamContext","aside","sub","box","WrappedIconButton","variant","job","generatedView","ToolCallStatus","EditorApp","source","code","language","ToolCallDetail","editor","sharedStyles","markdown","scroller","WrappedCodeBlock","themeVariant","ChatStreamComponent","_conversation$title","conversationId","initialRequest","replay","replayDelay","supports","showHumanActions","showFeedback","propShowFeedback","showFeedbackAfterFailed","showFeedbackOnView","showUiSwitch","previewUrlTemplate","showCases","exampleProjects","tryItOutUrl","aiEmployees","commands","uploadOptions","onShare","onTerminate","onSubmitFeedback","onSwitchToCanvas","onFeedbackOnView","onDetailChange","onSplitChange","conversation","serviceFlows","humanInputRef","skipToResults","watchAgain","useConversationDetail","conversationAvailable","pageTitle","conversationState","canChat","DONE_STATES","includes","flowMap","activityMap","useFlowAndActivityMap","jobMap","lastDetail","skipActivitySubTasks","useEffect","projectId","views","values","flatMap","view","submittingFeedback","setSubmittingFeedback","useState","submittedFeedback","setSubmittedFeedback","setShowFeedback","feedbackDoneViews","setFeedbackDoneViews","handleSubmitFeedback","useCallback","useImperativeHandle","feedbackSubmitDone","setTimeout","feedbackSubmitFailed","feedbackOnViewDone","viewId","prev","newSet","Set","add","activeExpandedViewJobId","setActiveExpandedViewJobId","activeDetail","subActiveDetail","userClosedAside","delayRef","timer","current","clearTimeout","hasInitialRequest","getRuntime","applyPageTitle","humanInput","input","action","extra","_humanInputRef$curren","call","firstMessage","userMessage","activeFile","setActiveFile","activeImages","setActiveImages","workspace","taskContextValue","tryItOut","win","window","open","getBasePath","slice","__elevo_try_it_out","streamContextValue","depsReady","setDepsReady","ignore","Promise","race","preloadHighlighter","resolve","finally","fulfilledActiveDetail","useFulfilledActiveDetail","fulfilledSubActiveDetail","useHandleEscape","split","_scrollContainerRef$c","focus","earlyFinished","finished","mode","NON_WORKING_STATES","Provider","value","container","main","tabIndex","narrow","NodeReplay","ui","NodeFeedback","feedback","footer","ChatBox","expanded","ExpandedView","toolbarStyles","toolbar","ICON_CANVAS","SWITCH_TO_CANVAS","FilePreview","file","ImagesPreview","images","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","module"],"sourceRoot":""}