@axiom-lattice/gateway 4.10.0 → 4.10.2

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 (34) hide show
  1. package/dist/chunk-GXZFO3VU.mjs +42 -0
  2. package/dist/chunk-GXZFO3VU.mjs.map +1 -0
  3. package/dist/embed/{embed-page-AgentDetailSideApp-GH3XNS5A.js → embed-page-AgentDetailSideApp-2M4MLVQQ.js} +1 -1
  4. package/dist/embed/{embed-page-AgentGovernanceWorkbench-AXHLZTUG.js → embed-page-AgentGovernanceWorkbench-KEVBIQP6.js} +1 -1
  5. package/dist/embed/{embed-page-MessageGraph-HLLPBTLQ.js → embed-page-MessageGraph-PRBUQINR.js} +1 -1
  6. package/dist/embed/{embed-page-ReactChart-46EYPRQ7.js → embed-page-ReactChart-V6JJXCEV.js} +1 -1
  7. package/dist/embed/{embed-page-SkillFlow-NMUDTNTY.js → embed-page-SkillFlow-6LPE2VG3.js} +1 -1
  8. package/dist/embed/{embed-page-TasksSideApp-DOCKHJCF.js → embed-page-TasksSideApp-OFZI54MF.js} +1 -1
  9. package/dist/embed/{embed-page-TeamWorkspace-LXOIMYRW.js → embed-page-TeamWorkspace-QSSAF3AA.js} +1 -1
  10. package/dist/embed/{embed-page-TopologyRuntimeView-DT7XXEK2.js → embed-page-TopologyRuntimeView-PHULW2NG.js} +1 -1
  11. package/dist/embed/{embed-page-WorkflowAutomationView-ONAY4RTM.js → embed-page-WorkflowAutomationView-LQS6H7X6.js} +1 -1
  12. package/dist/embed/{embed-page-chunk-OY4CDWED.js → embed-page-chunk-7PNQFZMK.js} +7 -7
  13. package/dist/embed/{embed-page-chunk-F7G2DME5.js → embed-page-chunk-D5EY6ASK.js} +1 -1
  14. package/dist/embed/{embed-page-chunk-JQSBSZMP.js → embed-page-chunk-IJ2YWGKU.js} +1 -1
  15. package/dist/embed/{embed-page-chunk-H4W4NDIY.js → embed-page-chunk-O44JEYLD.js} +7 -7
  16. package/dist/embed/embed-page-chunk-PFCR6CFL.js +2 -0
  17. package/dist/embed/{embed-page-chunk-RA35MUYW.js → embed-page-chunk-SSWDAKQU.js} +1 -1
  18. package/dist/embed/{embed-page-chunk-LGZUYB7B.js → embed-page-chunk-YNHKD2CY.js} +1 -1
  19. package/dist/embed/embed-page.js +1 -1
  20. package/dist/index.d.mts +15 -1
  21. package/dist/index.d.ts +15 -1
  22. package/dist/index.js +54 -20
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +47 -17
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/{open-FJ3BY3CL.mjs → open-GNBMCHYA.mjs} +4 -39
  27. package/dist/open-GNBMCHYA.mjs.map +1 -0
  28. package/dist/{open-files-V3R2BFTV.mjs → open-files-FS5AN6Q6.mjs} +4 -4
  29. package/dist/openRateLimiter-XEOL3A5G.mjs +8 -0
  30. package/dist/openRateLimiter-XEOL3A5G.mjs.map +1 -0
  31. package/package.json +4 -4
  32. package/dist/embed/embed-page-chunk-NR2PTMJ6.js +0 -2
  33. package/dist/open-FJ3BY3CL.mjs.map +0 -1
  34. /package/dist/{open-files-V3R2BFTV.mjs.map → open-files-FS5AN6Q6.mjs.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{M as G,a as pe,b as ce,r as me,sb as he,ta as fe,tb as be,ua as q,wa as Ae,ya as ge}from"./embed-page-chunk-7PNQFZMK.js";import{B as ue,a as S,e as v,f as ne,g as oe,n as ae,r as L,s as ie,t as se,u as de,x as le}from"./embed-page-chunk-O44JEYLD.js";import{a as M}from"./embed-page-chunk-QV7QAJ4N.js";import{i as Q,j as Ne,k as Oe,l as je,m as Fe}from"./embed-page-chunk-QULNM5O2.js";import{M as te,va as re}from"./embed-page-chunk-MHGVD4EV.js";import{a as ee}from"./embed-page-chunk-R5QL57JJ.js";import{c as T,f as R}from"./embed-page-chunk-QBTAJ2YI.js";var Ie=T(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.default=void 0;var it={items_per_page:"\u6761/\u9875",jump_to:"\u8DF3\u81F3",jump_to_confirm:"\u786E\u5B9A",page:"\u9875",prev_page:"\u4E0A\u4E00\u9875",next_page:"\u4E0B\u4E00\u9875",prev_5:"\u5411\u524D 5 \u9875",next_5:"\u5411\u540E 5 \u9875",prev_3:"\u5411\u524D 3 \u9875",next_3:"\u5411\u540E 3 \u9875",page_size:"\u9875\u7801"},Qt=O.default=it});var _e=T(j=>{"use strict";var st=Ne().default;Object.defineProperty(j,"__esModule",{value:!0});j.default=void 0;var Pe=st(Oe()),dt=je(),lt=(0,Pe.default)((0,Pe.default)({},dt.commonLocale),{},{locale:"zh_CN",today:"\u4ECA\u5929",now:"\u6B64\u523B",backToToday:"\u8FD4\u56DE\u4ECA\u5929",ok:"\u786E\u5B9A",timeSelect:"\u9009\u62E9\u65F6\u95F4",dateSelect:"\u9009\u62E9\u65E5\u671F",weekSelect:"\u9009\u62E9\u5468",clear:"\u6E05\u9664",week:"\u5468",month:"\u6708",year:"\u5E74",previousMonth:"\u4E0A\u4E2A\u6708 (\u7FFB\u9875\u4E0A\u952E)",nextMonth:"\u4E0B\u4E2A\u6708 (\u7FFB\u9875\u4E0B\u952E)",monthSelect:"\u9009\u62E9\u6708\u4EFD",yearSelect:"\u9009\u62E9\u5E74\u4EFD",decadeSelect:"\u9009\u62E9\u5E74\u4EE3",previousYear:"\u4E0A\u4E00\u5E74 (Control\u952E\u52A0\u5DE6\u65B9\u5411\u952E)",nextYear:"\u4E0B\u4E00\u5E74 (Control\u952E\u52A0\u53F3\u65B9\u5411\u952E)",previousDecade:"\u4E0A\u4E00\u5E74\u4EE3",nextDecade:"\u4E0B\u4E00\u5E74\u4EE3",previousCentury:"\u4E0A\u4E00\u4E16\u7EAA",nextCentury:"\u4E0B\u4E00\u4E16\u7EAA",yearFormat:"YYYY\u5E74",cellDateFormat:"D",monthBeforeYear:!1}),Yt=j.default=lt});var V=T(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.default=void 0;var pt={placeholder:"\u8BF7\u9009\u62E9\u65F6\u95F4",rangePlaceholder:["\u5F00\u59CB\u65F6\u95F4","\u7ED3\u675F\u65F6\u95F4"]},Zt=F.default=pt});var Y=T(H=>{"use strict";var We=Q().default;Object.defineProperty(H,"__esModule",{value:!0});H.default=void 0;var ct=We(_e()),ut=We(V()),Le={lang:Object.assign({placeholder:"\u8BF7\u9009\u62E9\u65E5\u671F",yearPlaceholder:"\u8BF7\u9009\u62E9\u5E74\u4EFD",quarterPlaceholder:"\u8BF7\u9009\u62E9\u5B63\u5EA6",monthPlaceholder:"\u8BF7\u9009\u62E9\u6708\u4EFD",weekPlaceholder:"\u8BF7\u9009\u62E9\u5468",rangePlaceholder:["\u5F00\u59CB\u65E5\u671F","\u7ED3\u675F\u65E5\u671F"],rangeYearPlaceholder:["\u5F00\u59CB\u5E74\u4EFD","\u7ED3\u675F\u5E74\u4EFD"],rangeMonthPlaceholder:["\u5F00\u59CB\u6708\u4EFD","\u7ED3\u675F\u6708\u4EFD"],rangeQuarterPlaceholder:["\u5F00\u59CB\u5B63\u5EA6","\u7ED3\u675F\u5B63\u5EA6"],rangeWeekPlaceholder:["\u5F00\u59CB\u5468","\u7ED3\u675F\u5468"]},ct.default),timePickerLocale:Object.assign({},ut.default)};Le.lang.ok="\u786E\u5B9A";var tr=H.default=Le});var xe=T(B=>{"use strict";var mt=Q().default;Object.defineProperty(B,"__esModule",{value:!0});B.default=void 0;var ft=mt(Y()),nr=B.default=ft.default});var ve=T(X=>{"use strict";var z=Q().default;Object.defineProperty(X,"__esModule",{value:!0});X.default=void 0;var At=z(Ie()),gt=z(xe()),ht=z(Y()),bt=z(V()),y="${label}\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684${type}",yt={locale:"zh-cn",Pagination:At.default,DatePicker:ht.default,TimePicker:bt.default,Calendar:gt.default,global:{placeholder:"\u8BF7\u9009\u62E9",close:"\u5173\u95ED"},Table:{filterTitle:"\u7B5B\u9009",filterConfirm:"\u786E\u5B9A",filterReset:"\u91CD\u7F6E",filterEmptyText:"\u65E0\u7B5B\u9009\u9879",filterCheckAll:"\u5168\u9009",filterSearchPlaceholder:"\u5728\u7B5B\u9009\u9879\u4E2D\u641C\u7D22",emptyText:"\u6682\u65E0\u6570\u636E",selectAll:"\u5168\u9009\u5F53\u9875",selectInvert:"\u53CD\u9009\u5F53\u9875",selectNone:"\u6E05\u7A7A\u6240\u6709",selectionAll:"\u5168\u9009\u6240\u6709",sortTitle:"\u6392\u5E8F",expand:"\u5C55\u5F00\u884C",collapse:"\u5173\u95ED\u884C",triggerDesc:"\u70B9\u51FB\u964D\u5E8F",triggerAsc:"\u70B9\u51FB\u5347\u5E8F",cancelSort:"\u53D6\u6D88\u6392\u5E8F"},Modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",justOkText:"\u77E5\u9053\u4E86"},Tour:{Next:"\u4E0B\u4E00\u6B65",Previous:"\u4E0A\u4E00\u6B65",Finish:"\u7ED3\u675F\u5BFC\u89C8"},Popconfirm:{cancelText:"\u53D6\u6D88",okText:"\u786E\u5B9A"},Transfer:{titles:["",""],searchPlaceholder:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",itemUnit:"\u9879",itemsUnit:"\u9879",remove:"\u5220\u9664",selectCurrent:"\u5168\u9009\u5F53\u9875",removeCurrent:"\u5220\u9664\u5F53\u9875",selectAll:"\u5168\u9009\u6240\u6709",deselectAll:"\u53D6\u6D88\u5168\u9009",removeAll:"\u5220\u9664\u5168\u90E8",selectInvert:"\u53CD\u9009\u5F53\u9875"},Upload:{uploading:"\u6587\u4EF6\u4E0A\u4F20\u4E2D",removeFile:"\u5220\u9664\u6587\u4EF6",uploadError:"\u4E0A\u4F20\u9519\u8BEF",previewFile:"\u9884\u89C8\u6587\u4EF6",downloadFile:"\u4E0B\u8F7D\u6587\u4EF6"},Empty:{description:"\u6682\u65E0\u6570\u636E"},Icon:{icon:"\u56FE\u6807"},Text:{edit:"\u7F16\u8F91",copy:"\u590D\u5236",copied:"\u590D\u5236\u6210\u529F",expand:"\u5C55\u5F00",collapse:"\u6536\u8D77"},Form:{optional:"\uFF08\u53EF\u9009\uFF09",defaultValidateMessages:{default:"\u5B57\u6BB5\u9A8C\u8BC1\u9519\u8BEF${label}",required:"\u8BF7\u8F93\u5165${label}",enum:"${label}\u5FC5\u987B\u662F\u5176\u4E2D\u4E00\u4E2A[${enum}]",whitespace:"${label}\u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26",date:{format:"${label}\u65E5\u671F\u683C\u5F0F\u65E0\u6548",parse:"${label}\u4E0D\u80FD\u8F6C\u6362\u4E3A\u65E5\u671F",invalid:"${label}\u662F\u4E00\u4E2A\u65E0\u6548\u65E5\u671F"},types:{string:y,method:y,array:y,object:y,number:y,date:y,boolean:y,integer:y,float:y,regexp:y,email:y,url:y,hex:y},string:{len:"${label}\u987B\u4E3A${len}\u4E2A\u5B57\u7B26",min:"${label}\u6700\u5C11${min}\u4E2A\u5B57\u7B26",max:"${label}\u6700\u591A${max}\u4E2A\u5B57\u7B26",range:"${label}\u987B\u5728${min}-${max}\u5B57\u7B26\u4E4B\u95F4"},number:{len:"${label}\u5FC5\u987B\u7B49\u4E8E${len}",min:"${label}\u6700\u5C0F\u503C\u4E3A${min}",max:"${label}\u6700\u5927\u503C\u4E3A${max}",range:"${label}\u987B\u5728${min}-${max}\u4E4B\u95F4"},array:{len:"\u987B\u4E3A${len}\u4E2A${label}",min:"\u6700\u5C11${min}\u4E2A${label}",max:"\u6700\u591A${max}\u4E2A${label}",range:"${label}\u6570\u91CF\u987B\u5728${min}-${max}\u4E4B\u95F4"},pattern:{mismatch:"${label}\u4E0E\u6A21\u5F0F\u4E0D\u5339\u914D${pattern}"}}},Image:{preview:"\u9884\u89C8"},QRCode:{expired:"\u4E8C\u7EF4\u7801\u8FC7\u671F",refresh:"\u70B9\u51FB\u5237\u65B0",scanned:"\u5DF2\u626B\u63CF"},ColorPicker:{presetEmpty:"\u6682\u65E0",transparent:"\u65E0\u8272",singleColor:"\u5355\u8272",gradientColor:"\u6E10\u53D8\u8272"}},ar=X.default=yt});var qe=T((sr,Me)=>{"use strict";Me.exports=ve()});var u=R(ee());var g=class extends Error{code;retryable;status;constructor(r,t,n,a){super(t),this.name="AgentWebAppRuntimeClientError",this.code=r,this.retryable=n,this.status=a}};function k(){return new g("STREAM_FAILED","Stream failed",!0)}var He=new Set(["WEB_APP_NOT_FOUND","WEB_APP_DISABLED","USER_ID_REQUIRED","INVALID_USER_ID","PROJECT_NOT_ALLOWED","PROJECT_SELECTOR_DISABLED","MODEL_NOT_ALLOWED","FEATURE_DISABLED","THREAD_NOT_FOUND","STREAM_CONFLICT","STREAM_FAILED","INVALID_REQUEST","INTERNAL_ERROR"]);function I(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function w(e,r){return Object.keys(e).length===r.length&&r.every(n=>n in e)}function Be(e){return I(e)&&w(e,["code","message","retryable"])&&typeof e.code=="string"&&He.has(e.code)&&typeof e.message=="string"&&typeof e.retryable=="boolean"}function ze(e){if(!I(e))return!1;let r=e.data===void 0?["id","type","prompt"]:["id","type","prompt","data"];return w(e,r)&&typeof e.id=="string"&&typeof e.type=="string"&&typeof e.prompt=="string"&&(e.data===void 0||I(e.data))}var Xe=new Set([S.HUMAN,S.AI,S.TOOL,S.INTERRUPT,S.MESSAGE_COMPLETED,S.MESSAGE_FAILED,S.THREAD_IDLE]);function Ke(e,r){let t;try{t=JSON.parse(e)}catch{throw k()}if(!I(t)||typeof t.type!="string")throw k();if(Xe.has(t.type)||t.type==="error"&&I(t.data)&&!I(t.error)){let n=oe(t,r);return n.length===0?[]:n}switch(t.type){case"message.delta":if(w(t,["type","text"])&&typeof t.text=="string")return[t];break;case"message.completed":if(w(t,["type","messageId"])&&typeof t.messageId=="string")return[t];break;case"tool.started":if(w(t,["type","id","name"])&&typeof t.id=="string"&&typeof t.name=="string")return[t];break;case"tool.completed":if(w(t,["type","id"])&&typeof t.id=="string")return[t];break;case"interrupt.created":if(w(t,["type","interrupt"])&&ze(t.interrupt))return[t];break;case"genui.render":if(w(t,["type","block"])&&v(t.block))return[t];break;case"error":if(w(t,["type","error"])&&Be(t.error))return[t];break;case"stream.completed":if(w(t,["type"]))return[t];break}throw k()}function Ge(e){return e instanceof Error&&e.name==="AbortError"}async function ye(e,r){let t=ne({allowGenUI:!0,allowInterrupts:!0}),n=e.getReader(),a=new TextDecoder,o="",i=!1,d=!1;try{for(;!i;){let l;try{l=await n.read()}catch(p){if(Ge(p))return;throw k()}l.done&&(d=!0);try{o+=a.decode(l.value,{stream:!l.done})}catch{throw k()}let C=o.split(/\r?\n\r?\n/);o=l.done?"":C.pop()??"";for(let p of C){let A=p.split(/\r?\n/).filter(m=>m==="data"||m.startsWith("data:")).map(m=>m==="data"?"":m.slice(5).replace(/^ /,""));if(A.length!==0){for(let m of Ke(A.join(`
2
+ `),t))if(await r(m),i=m.type==="stream.completed",i)break;if(i)break}}if(l.done)break}if(!i)throw k()}finally{if(!d)try{await n.cancel()}catch{}n.releaseLock()}}var Qe=new Set(["WEB_APP_NOT_FOUND","WEB_APP_DISABLED","USER_ID_REQUIRED","INVALID_USER_ID","PROJECT_NOT_ALLOWED","PROJECT_SELECTOR_DISABLED","MODEL_NOT_ALLOWED","FEATURE_DISABLED","THREAD_NOT_FOUND","STREAM_CONFLICT","STREAM_FAILED","INVALID_REQUEST","INTERNAL_ERROR"]);function f(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function h(e,r,t=[]){let n=Object.keys(e);return r.every(a=>a in e)&&n.every(a=>r.includes(a)||t.includes(a))}function s(e){return typeof e=="string"}function D(e){if(!f(e)||!h(e,["id","projectId","createdAt","updatedAt"],["label"])||!s(e.id)||!s(e.projectId)||e.label!==void 0&&!s(e.label)||!s(e.createdAt)||!s(e.updatedAt))return;let r=new Date(e.createdAt),t=new Date(e.updatedAt);if(!(Number.isNaN(r.getTime())||Number.isNaN(t.getTime())))return{id:e.id,projectId:e.projectId,...e.label===void 0?{}:{label:e.label},createdAt:r,updatedAt:t}}function Ce(e){if(!f(e)||e.success!==!1||!f(e.error))return!1;let r=e.error;return h(e,["success","error"])&&h(r,["code","message","retryable"])&&typeof r.code=="string"&&Qe.has(r.code)&&typeof r.message=="string"&&typeof r.retryable=="boolean"}function Ve(e){if(!f(e))return!1;let r=["projectSelector","modelSelector","threadManagement","attachments","hitl","genUI"];return h(e,r,["files"])&&r.every(t=>typeof e[t]=="boolean")&&(e.files===void 0||typeof e.files=="boolean")}function Ye(e){return Array.isArray(e)&&e.length<=6&&e.every(r=>f(r)&&h(r,["label","text"])&&s(r.label)&&r.label.length>=1&&r.label.length<=40&&s(r.text)&&r.text.length>=1&&r.text.length<=500)}function Je(e){return f(e)&&h(e,[],["title","welcomeMessage","primaryColor","quickPrompts"])&&(e.title===void 0||s(e.title))&&(e.welcomeMessage===void 0||s(e.welcomeMessage))&&(e.primaryColor===void 0||s(e.primaryColor))&&(e.quickPrompts===void 0||Ye(e.quickPrompts))}function Ze(e){if(!f(e)||!h(e,["webApp","projects","models"],["thread"])||!f(e.webApp))return;let r=e.webApp;if(!h(r,["id","name","assistant","defaultProjectId","features","appearance","identityAssurance"],["description","defaultModelKey"])||!s(r.id)||!s(r.name)||!s(r.defaultProjectId)||r.description!==void 0&&!s(r.description)||r.defaultModelKey!==void 0&&!s(r.defaultModelKey)||r.identityAssurance!=="unverified"||!f(r.assistant)||!h(r.assistant,["id","name"],["description"])||!s(r.assistant.id)||!s(r.assistant.name)||r.assistant.description!==void 0&&!s(r.assistant.description)||!Ve(r.features)||!Je(r.appearance)||!Array.isArray(e.projects)||!e.projects.every(n=>f(n)&&h(n,["id","name"])&&s(n.id)&&s(n.name))||!Array.isArray(e.models)||!e.models.every(n=>f(n)&&h(n,["key","label"])&&s(n.key)&&s(n.label)))return;let t=e.thread===void 0?void 0:D(e.thread);if(!(e.thread!==void 0&&!t))return{...e,...t?{thread:t}:{}}}function et(e){if(!f(e)||!h(e,["records","total"])||!Array.isArray(e.records)||typeof e.total!="number")return;let r=e.records.map(D);return r.every(t=>t!==void 0)?{records:r,total:e.total}:void 0}function tt(e){return f(e)&&s(e.id)&&(e.role==="human"||e.role==="ai")&&(e.content===void 0||s(e.content)||Array.isArray(e.content)&&e.content.every(r=>v(r)!==void 0))}function rt(e){return f(e)&&h(e,["messages"])&&Array.isArray(e.messages)&&e.messages.every(tt)?e:void 0}function nt(e){return f(e)&&h(e,["ref","name","mimeType","size"])&&s(e.ref)&&s(e.name)&&s(e.mimeType)&&typeof e.size=="number"?e:void 0}function we(e,r){return t=>f(t)&&h(t,e)&&r(t)?t:void 0}var U=class{constructor(r){this.options=r;this.baseUrl=`${r.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(r.webAppId)}/runtime`,this.fetchImplementation=r.fetch??globalThis.fetch.bind(globalThis),this.translate=r.translate}baseUrl;fetchImplementation;translate;async bootstrap(r={},t){return this.request("bootstrap",Ze,{query:r,signal:t})}async listThreads(r={},t){return this.request("threads",et,{query:r,signal:t})}async createThread(r={},t){return this.request("threads",D,{method:"POST",body:r,signal:t})}async updateThread(r,t,n){return this.request(`threads/${encodeURIComponent(r)}`,D,{method:"PATCH",body:t,signal:n})}async deleteThread(r,t={},n){await this.request(`threads/${encodeURIComponent(r)}`,we(["id"],a=>s(a.id)),{method:"DELETE",query:t,signal:n})}async getMessages(r,t={},n){return this.request(`threads/${encodeURIComponent(r)}/messages`,rt,{query:t,signal:n})}async streamMessage(r,t,n,a){return this.streamRequest(`threads/${encodeURIComponent(r)}/messages/stream`,t,n,a)}async resumeInterrupt(r,t,n,a,o){return this.streamRequest(`threads/${encodeURIComponent(r)}/interrupts/${encodeURIComponent(t)}/resume`,n,a,o)}async streamRequest(r,t,n,a){let o;try{o=await this.fetchRequest(r,{method:"POST",body:t,signal:a})}catch(i){throw Ee(i)||i instanceof g?i:new g("STREAM_FAILED",this.translate?.("integration.error.streamFailed")??"Stream failed",!0)}if(o.ok||await this.throwResponseError(o),!o.body||!o.headers.get("content-type")?.toLowerCase().includes("text/event-stream")){if(o.body)try{await o.body.cancel()}catch{}throw new g("STREAM_FAILED",this.translate?.("integration.error.streamFailed")??"Stream failed",!0,o.status)}await ye(o.body,n)}async abort(r,t={},n){await this.request(`threads/${encodeURIComponent(r)}/abort`,we(["aborted"],a=>typeof a.aborted=="boolean"),{method:"POST",query:t,signal:n})}async uploadAttachment(r,t,n={},a){let o=new FormData,i=typeof File<"u"&&t instanceof File?t.name:"attachment";return o.append("file",t,i),this.request(`threads/${encodeURIComponent(r)}/attachments`,nt,{method:"POST",query:n,body:o,signal:a})}async request(r,t,n={}){let a;try{a=await this.fetchRequest(r,n)}catch(d){throw Ee(d)||d instanceof g?d:new g("INTERNAL_ERROR",this.translate?.("integration.error.requestFailed")??"Request failed",!0)}let o;try{o=await a.json()}catch{throw this.internalError(a.status)}if(Ce(o))throw new g(o.error.code,o.error.message,o.error.retryable,a.status);if(!a.ok||!f(o)||!h(o,["success","data"])||o.success!==!0)throw this.internalError(a.status);let i=t(o.data);if(i===void 0)throw this.internalError(a.status);return i}async fetchRequest(r,t){let n=await this.options.identityProvider.getIdentity(t.signal),a=new URL(`${this.baseUrl}/${r}`);for(let[d,l]of Object.entries(t.query??{}))l!==void 0&&a.searchParams.set(d,l);let o=new Headers;n.bearerToken!==void 0?o.set("Authorization",`Bearer ${n.bearerToken}`):o.set("X-Axiom-External-User-Id",n.externalUserId??"");let i;return t.body instanceof FormData?i=t.body:t.body!==void 0&&(o.set("Content-Type","application/json"),i=JSON.stringify(t.body)),this.fetchImplementation(a,{method:t.method??"GET",headers:o,body:i,signal:t.signal,credentials:"omit"})}async throwResponseError(r){let t;try{t=await r.json()}catch{throw this.internalError(r.status)}throw Ce(t)?new g(t.error.code,t.error.message,t.error.retryable,r.status):this.internalError(r.status)}internalError(r){return new g("INTERNAL_ERROR",this.translate?.("integration.error.invalidServerResponse")??"Invalid server response",!1,r)}};function Ee(e){return typeof e=="object"&&e!==null&&"name"in e&&e.name==="AbortError"}var $=R(ee());var P=R(M());function Re(){let e=L(),{createThread:r}=q(),{menuCollapsed:t,setMenuCollapsed:n}=Ae();(0,$.useEffect)(()=>{t===void 0&&n(!0)},[t,n]);let a=(0,$.useCallback)(async()=>{try{await r(e("integration.sidebar.newThread"))}catch(p){console.error("Failed to create new thread:",p)}},[r,e]),o=t??!0,i={id:"new-analysis",builtin:"new-analysis",type:"action",name:e("integration.sidebar.newThread"),icon:(0,P.jsx)(me,{size:20}),order:0},d={id:"thread-history-toggle",type:"action",name:e("integration.sidebar.history"),icon:(0,P.jsx)(G,{size:20}),order:1},l={id:"thread-history",builtin:"thread-history",type:"drawer",name:e("integration.sidebar.history"),icon:(0,P.jsx)(G,{size:20}),order:1,title:e("integration.sidebar.historyTitle"),width:320,inline:!0,inlineDefaultExpanded:!0,content:(0,P.jsx)(he,{})},C=[i,...o?[d]:[l]];return(0,P.jsx)(ge,{items:C,showBranding:!1,showToggle:!0,showNewAnalysis:!1,defaultExpanded:!o,collapsed:o,onCollapsedChange:n,onNewAnalysis:a,onItemClick:p=>{p.type==="action"&&p.builtin==="new-analysis"?a():p.type==="action"&&p.id==="thread-history-toggle"&&n(!1)}},o?"agent-chat-sidebar-collapsed":"agent-chat-sidebar-expanded")}function Se(e){if(typeof window>"u"||typeof XMLHttpRequest>"u")return()=>{};let r=`${e.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(e.webAppId)}/runtime/`,t=XMLHttpRequest.prototype.open,n=XMLHttpRequest.prototype.send,a=new WeakMap;return XMLHttpRequest.prototype.open=function(i,d){a.set(this,String(d)),t.call(this,i,d,!0)},XMLHttpRequest.prototype.send=function(i){let d=a.get(this)??"";if(!d.startsWith(r)||!/\/sandbox\/uploadfile$/.test(d)){n.call(this,i);return}if(e.identity.mode==="unverified"){this.setRequestHeader("X-Axiom-External-User-Id",e.identity.userId),n.call(this,i);return}e.identity.tokenProvider().then(l=>{this.setRequestHeader("Authorization",`Bearer ${l}`),n.call(this,i)}).catch(()=>{n.call(this,i)})},()=>{XMLHttpRequest.prototype.open=t,XMLHttpRequest.prototype.send=n}}var ot=/^#[0-9A-Fa-f]{6}$/;function at(e){return typeof e=="string"&&ot.test(e)}function Te(e){return at(e)?e:void 0}function N(e,r){let t=parseInt(e.replace("#",""),16),n=Math.round(2.55*r),a=(t>>16)+n,o=(t>>8&255)+n,i=(t&255)+n;return"#"+(16777216+(a<255?a<1?0:a:255)*65536+(o<255?o<1?0:o:255)*256+(i<255?i<1?0:i:255)).toString(16).slice(1)}function ke(e){if(e!==void 0)return{token:{colorPrimary:e,colorPrimaryHover:N(e,20),colorPrimaryActive:N(e,-15),colorPrimaryBg:N(e,45)+"20"}}}var De=R(Fe()),Ue=R(qe()),c=R(M()),Ct={"en-US":De.default,"zh-CN":Ue.default};function wt(e,r){let t=J(e.welcome),n=J(r.title),a=t??J(r.welcomeMessage),o=e.quickPrompts??r.quickPrompts??[],i=Te(r.primaryColor);return{...n!==void 0?{title:n}:{},...a!==void 0?{welcome:a}:{},quickPrompts:o,...i!==void 0?{primaryColor:i}:{}}}function J(e){return typeof e=="string"&&e.length>0?e:void 0}function Et(e){if(!e.gatewayUrl.trim())throw new Error("AgentChatApp requires gatewayUrl");try{new URL(e.gatewayUrl)}catch{throw new Error("AgentChatApp gatewayUrl must be a valid URL")}if(!e.webAppId.trim())throw new Error("AgentChatApp requires webAppId");if(e.identity.mode==="unverified"){if(!e.identity.userId.trim())throw new Error("AgentChatApp requires identity.userId")}else if(typeof e.identity.tokenProvider!="function")throw new Error("AgentChatApp requires identity.tokenProvider");if(!e.fetch&&typeof globalThis.fetch!="function")throw new Error("AgentChatApp requires a fetch implementation")}function Rt(e,r){return e instanceof g?e:new g("INTERNAL_ERROR",r("integration.error.requestFailed"),!0)}function St(e){return e.mode==="unverified"?`unverified:${e.userId}`:"verified:token"}function Tr(e){Et(e);let r=`${e.gatewayUrl}\0${e.webAppId}\0${St(e.identity)}`,t=e.storageKey??ie,n=(0,u.useMemo)(()=>e.locale??se(t)??"en-US",[e.locale,t]);return(0,c.jsx)(de,{locale:n,storageKey:t,onLocaleChange:e.onLocaleChange,children:(0,c.jsx)(Tt,{...e,locale:n},r)})}function Tt({gatewayUrl:e,webAppId:r,identity:t,onError:n,onChatReady:a,onChatMessage:o,fetch:i,className:d,welcome:l,quickPrompts:C,locale:p="en-US"}){let A=L(),[m,E]=(0,u.useState)({status:"loading"}),x=(0,u.useRef)(t);x.current=t;let _=(0,u.useRef)(n);_.current=n;let W=(0,u.useRef)();return W.current||(W.current=new U({gatewayUrl:e,webAppId:r,identityProvider:{getIdentity:async()=>{let b=x.current;if(b.mode!=="verified")return{externalUserId:b.userId};try{return{bearerToken:await b.tokenProvider()}}catch{throw new g("USER_ID_REQUIRED",A("integration.error.identityTokenFailed"),!0)}}},translate:A,...i?{fetch:i}:{}})),(0,u.useEffect)(()=>Se({gatewayUrl:e,webAppId:r,identity:t}),[e,r,t]),(0,u.useEffect)(()=>{let b=!1,$e=W.current;return(async()=>{try{let K=await $e.bootstrap({});if(b)return;E({status:"ready",bootstrap:K})}catch(K){if(b)return;let Z=Rt(K,A);E({status:"error",error:Z}),_.current?.(Z)}})(),()=>{b=!0}},[]),m.status==="loading"?(0,c.jsx)("div",{className:d}):m.status==="error"?(0,c.jsxs)("div",{className:d,role:"alert",children:[(0,c.jsx)("strong",{children:A("integration.chat.loadFailed")}),(0,c.jsx)("div",{children:m.error.code}),(0,c.jsx)("button",{type:"button",onClick:()=>E({status:"loading"}),children:A("common.retry")})]}):(0,c.jsx)(It,{className:d,gatewayUrl:e,webAppId:r,identity:t,bootstrap:m.bootstrap,onChatReady:a,onChatMessage:o,welcome:l,quickPrompts:C,locale:p})}function kt(e){return{id:e.id,name:e.name,...e.description!==void 0?{description:e.description}:{},graphDefinition:void 0,createdAt:new Date(0),updatedAt:new Date(0)}}function It({gatewayUrl:e,webAppId:r,identity:t,bootstrap:n,onChatReady:a,onChatMessage:o,className:i,welcome:d,quickPrompts:l,locale:C="en-US"}){let p=(0,u.useMemo)(()=>kt(n.webApp.assistant),[n.webApp.assistant]),A=(0,u.useMemo)(()=>wt({welcome:d,quickPrompts:l},n.webApp.appearance),[d,l,n.webApp.appearance]),m=(0,u.useMemo)(()=>ke(A.primaryColor),[A.primaryColor]),E=(0,u.useMemo)(()=>t.mode==="unverified"?{mode:"unverified",userId:t.userId}:{mode:"verified",tokenProvider:t.tokenProvider},[t]),x=(0,u.useCallback)(b=>new ae({gatewayUrl:e,webAppId:r,identity:E,assistantId:b.assistantId,transport:b.transport,...b.timeout!==void 0?{timeout:b.timeout}:{},...b.headers!==void 0?{headers:b.headers}:{}}),[e,r,E]),_=(0,u.useMemo)(()=>({baseURL:`${e.replace(/\/$/,"")}/api/web-apps/${r}/runtime`,apiKey:"",transport:"sse",assistantId:p.id,enableSkillSlot:!1,enableDatabaseSlot:!1,enableAgentSlot:!1,enableMetricsDataSourceSlot:!1,enableModelSelector:!1,enableWorkspace:!1,enableCustomMenu:!1,showSideMenu:!1,enableAssistantCreation:!1,enableAssistantEditing:!1,enableThreadCreation:!0,enableThreadList:!0}),[p.id,e,r]),W=(0,u.useMemo)(()=>({assistants:[p],currentAssistant:p,isLoading:!1,error:null,listAssistants:async()=>{},getAssistant:async()=>p,createAssistant:async()=>{throw new Error("Not implemented in a Web App")},updateAssistant:async()=>{throw new Error("Not implemented in a Web App")},deleteAssistant:async()=>{},selectAssistant:async()=>{},clearCurrentAssistant:()=>{},refresh:async()=>{}}),[p]);return(0,c.jsx)(te,{theme:m,locale:Ct[C],children:(0,c.jsx)(le,{config:{baseURL:_.baseURL,apiKey:"",assistantId:"__BASE__",transport:"sse"},createClient:x,children:(0,c.jsx)(ue,{initialConfig:_,persistToLocalStorage:!1,children:(0,c.jsx)(pe.Provider,{value:W,children:(0,c.jsx)(fe,{children:(0,c.jsx)(Pt,{className:i,onChatReady:a,onChatMessage:o,title:A.title,welcome:A.welcome,quickPrompts:A.quickPrompts})})})})})})}function Pt({className:e,onChatReady:r,onChatMessage:t,title:n,welcome:a,quickPrompts:o=[]}){let i=L(),{threadId:d}=q(),{currentAssistant:l}=ce();if(!l)return null;let C=d??"";if(!C)return(0,c.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,c.jsx)(re,{tip:i("integration.chat.creatingConversation")})});let p=n??a,A=n!==void 0&&a!==void 0?a:"";return(0,c.jsx)("div",{className:e,children:(0,c.jsx)(be,{thread_id:C,assistant_id:l.id,name:l.name,description:l.description,menu:(0,c.jsx)(Re,{}),showProjectSelector:!1,showSkillSlot:!1,showDatabaseSlot:!1,showAgentSlot:!1,showMetricsDataSourceSlot:!1,headerRight:null,emptyStateGreeting:p?(0,c.jsx)("span",{children:p}):void 0,emptyStateQuestion:A,senderPromptsItems:o.length>0?o.map((m,E)=>({key:`quick-${E}`,label:m.label,description:m.text})):void 0,showSkillPrompts:!1,showQuickAnalysis:!1,onChatReady:r,onChatMessage:t})})}export{ot as a,Tr as b};
@@ -1,4 +1,4 @@
1
- import{b as sn,c as an,d as En}from"./embed-page-chunk-WTOAQDQN.js";import{a as cn,b as Ae,e as ke,f as vn,h as Cn,i as _n}from"./embed-page-chunk-V2GBFWLG.js";import{Fa as ln,H as wn,R as Sn,U as bn,fa as An,la as kn,o as Oe,oa as Tn,q as yn,t as xn,u as Me,v as Fe}from"./embed-page-chunk-OY4CDWED.js";import{r as _e}from"./embed-page-chunk-H4W4NDIY.js";import{a as Ve}from"./embed-page-chunk-QV7QAJ4N.js";import{Ia as se,La as Xe,Z as dn,aa as Te,ba as gn,fa as hn,va as mn}from"./embed-page-chunk-MHGVD4EV.js";import{a as lr}from"./embed-page-chunk-R5QL57JJ.js";import{f as Re}from"./embed-page-chunk-QBTAJ2YI.js";var ie=Re(lr());var E=Re(Ve());if(typeof document<"u"){let u="workflow-node-spin-keyframes";if(!document.getElementById(u)){let o=document.createElement("style");o.id=u,o.textContent="@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }",document.head.appendChild(o)}}var{Text:ae}=Xe,Qe={opacity:0},De={running:{color:"#1677ff",icon:(0,E.jsx)(bn,{size:14,style:{animation:"spin 1s linear infinite"}})},completed:{color:"#52c41a",icon:(0,E.jsx)(Oe,{size:14})},failed:{color:"#ff4d4f",icon:(0,E.jsx)(Me,{size:14})},interrupted:{color:"#faad14",icon:(0,E.jsx)(yn,{size:14})},skipped:{color:"#8c8c8c",icon:(0,E.jsx)(Fe,{size:14})}},Nn={running:"chatWorkspace.workflowNode.stepStatus.running",completed:"chatWorkspace.workflowNode.stepStatus.completed",failed:"chatWorkspace.workflowNode.stepStatus.failed",interrupted:"chatWorkspace.workflowNode.stepStatus.interrupted",skipped:"chatWorkspace.workflowNode.stepStatus.skipped"},In={color:"#d9d9d9",icon:(0,E.jsx)(Fe,{size:14})},Ln={agent:{color:"#6366f1",bg:"#EEF2FF",border:"#6366f1"},map:{color:"#10b981",bg:"#ECFDF5",border:"#10b981"},terminal:{color:"#64748b",bg:"#F8FAFC",border:"#94a3b8"}},Rn={success:{color:"#22c55e",bg:"#F0FDF4",label:"chatWorkspace.workflowNode.terminal.success"},failed:{color:"#ef4444",bg:"#FEF2F2",label:"chatWorkspace.workflowNode.terminal.failed"},__default:{color:"#94a3b8",bg:"#F8FAFC",label:"chatWorkspace.workflowNode.terminal.stop"}};function cr(u){return(u||"?").split(/[\s_-]+/).filter(Boolean).map(o=>o[0]).join("").toUpperCase().slice(0,2)}function un({schema:u,t:o}){let p=u;if(!p||typeof p!="object")return(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowNode.noSchema")});let m=p.properties,S=p.required||[],I=p.items,g=a=>a==="string"?"green":a==="number"||a==="integer"?"orange":a==="boolean"?"purple":a==="array"?"cyan":a==="object"?"blue":"default",c=a=>{let s=a.type;if(s==="array"&&a.items){let h=a.items.type;return h?`Array<${h}>`:"Array"}return s||"any"};return(0,E.jsxs)("div",{style:{maxWidth:340,maxHeight:360,overflow:"auto",fontSize:12},children:[m&&(0,E.jsxs)("div",{children:[(0,E.jsx)(ae,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5,display:"block",marginBottom:6},children:o("chatWorkspace.workflowNode.properties")}),Object.entries(m).map(([a,s])=>{let h=S.includes(a),r=s.description,l=c(s),A=s.properties,O=s.items,D=!!(A||O);return(0,E.jsx)(Te,{title:D?(0,E.jsx)(un,{t:o,schema:D?A?s:O:void 0}):r||void 0,placement:"left",overlayStyle:{maxWidth:360},children:(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"3px 6px",borderRadius:4,marginBottom:2,background:h?"rgba(99,102,241,0.04)":"transparent",cursor:D?"pointer":"default"},children:[(0,E.jsx)(ae,{style:{fontSize:11,fontWeight:h?600:400,fontFamily:"monospace"},children:a}),h&&(0,E.jsx)("span",{style:{color:"#ef4444",fontSize:9},children:"*"}),r&&!D&&(0,E.jsx)(ae,{type:"secondary",style:{fontSize:10,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r}),(0,E.jsx)(se,{color:g(l),style:{margin:0,fontSize:9,padding:"0 4px",lineHeight:"16px",marginLeft:"auto"},children:l})]})},a)})]}),!m&&I&&(0,E.jsxs)("div",{children:[(0,E.jsx)(ae,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5,display:"block",marginBottom:4},children:o("chatWorkspace.workflowNode.items")}),(0,E.jsx)(un,{t:o,schema:I})]})]})}var On=72,sr=3,ar=({data:u})=>{let o=_e();if(!u)return null;let{nodeType:p,name:m,description:S,ref:I,refAgentName:g,refAgentType:c,refDeleted:a,outputKey:s,nodeSchema:h,config:r,status:l,source:A,innerRef:O,inputTemplate:D,ask:Z,condition:j,runState:N,pending:B}=u,C=Ln[p]||Ln.agent,W=Rn[l||""]||Rn.__default,P=N?De[N.status]||De.running:null,z=P?.color,U=P?.icon,q=l==="success"?(0,E.jsx)(Oe,{size:14,color:"#22c55e"}):l==="failed"?(0,E.jsx)(Me,{size:14,color:"#ef4444"}):(0,E.jsx)(Fe,{size:14,color:"#94a3b8"}),fe=l==="success"?(0,E.jsx)(Oe,{size:32,color:W.color}):l==="failed"?(0,E.jsx)(Me,{size:32,color:W.color}):(0,E.jsx)(xn,{size:32,color:W.color}),ue=r?.title,oe=r?.maxRetries,J=r?.timeout,te=r?.batchSize,X=r?.maxConcurrency,G=r?.innerConcurrency,ee=N?.selected,_=!!N||B;function de(V){return V==null?"-":V<1e3?`${V}ms`:`${(V/1e3).toFixed(1)}s`}if(p==="terminal"){let V=W.color,ne=W.bg,pe=o(W.label),ce=fe;_&&(N?(V=z||V,pe=N.status,ce=(0,E.jsx)("span",{style:{fontSize:18},children:U})):B&&(V=In.color,ne="#fafafa",pe=o("chatWorkspace.workflowNode.pending"),ce=(0,E.jsx)(Fe,{size:18,style:{color:In.color}})));let me=ee&&z?`0 4px 16px ${z}30`:"0 2px 8px rgba(0,0,0,0.06)";return(0,E.jsxs)("div",{style:{padding:4,display:"flex",flexDirection:"column",alignItems:"center",opacity:B?.5:1},children:[(0,E.jsx)(ke,{type:"target",position:Ae.Top,style:Qe}),(0,E.jsx)(Te,{title:_&&N?o(Nn[N.status]):m,children:(0,E.jsx)("div",{style:{width:On,height:On,borderRadius:"50%",background:ne,border:`${sr}px solid ${B?`${V}80`:V}`,borderStyle:B?"dashed":"solid",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:me,transition:"all 0.2s ease",cursor:"default"},onMouseEnter:B?void 0:K=>{K.currentTarget.style.transform="scale(1.08)",K.currentTarget.style.boxShadow=`0 4px 16px ${V}30`},onMouseLeave:B?void 0:K=>{K.currentTarget.style.transform="scale(1)",K.currentTarget.style.boxShadow=me},children:ce})}),(0,E.jsx)(ae,{style:{fontSize:11,color:V,marginTop:6,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px"},children:pe}),(0,E.jsx)(ke,{type:"source",position:Ae.Bottom,style:Qe})]})}let le=_&&z?z:C.border,Ee=_&&z?z:C.color,he=p==="agent"?(0,E.jsx)(Tn,{size:14}):p==="map"?(0,E.jsx)(An,{size:14}):cr(m),ve=N?de(N.durationMs):null,Se=ee&&z?`0 4px 14px ${z}20`:"0 1px 6px rgba(0,0,0,0.08)",be=_&&z?z:C.color;return(0,E.jsxs)("div",{style:{padding:4},children:[(0,E.jsx)(ke,{type:"target",position:Ae.Top,style:Qe}),(0,E.jsxs)("div",{style:{width:260,minHeight:90,boxSizing:"border-box",background:"#fff",borderRadius:12,boxShadow:Se,border:"1px solid #e5e7eb",borderLeft:`3px solid ${le}`,borderStyle:I?"dashed":"solid",overflow:"hidden",transition:"all 0.2s ease",...B?{opacity:.5,borderStyle:"dashed"}:{}},onMouseEnter:B?void 0:V=>{V.currentTarget.style.transform="translateY(-2px)",V.currentTarget.style.boxShadow=`0 4px 12px ${be}20`},onMouseLeave:B?void 0:V=>{V.currentTarget.style.transform="translateY(0)",V.currentTarget.style.boxShadow=Se},children:[(0,E.jsxs)("div",{style:{background:C.bg,padding:"6px 12px",display:"flex",alignItems:"center",gap:6,borderBottom:"1px solid #f1f5f9"},children:[(0,E.jsx)("div",{style:{width:24,height:24,borderRadius:"50%",backgroundColor:Ee,color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,flexShrink:0},children:he}),(0,E.jsx)("div",{style:{flex:1,minWidth:0},children:(0,E.jsx)(ae,{strong:!0,style:{fontSize:12,color:C.color},ellipsis:{tooltip:m},children:m})}),_&&U&&(0,E.jsx)(Te,{title:N?o(Nn[N.status]):void 0,children:(0,E.jsx)("span",{style:{color:z,fontSize:12,display:"flex",flexShrink:0},children:U})})]}),(0,E.jsxs)("div",{style:{padding:"10px 12px"},children:[S&&(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11,display:"block",marginTop:2,lineHeight:1.4},ellipsis:{tooltip:S},children:S}),p==="map"&&A&&(0,E.jsxs)(ae,{type:"secondary",style:{fontSize:11,display:"block",marginTop:4,lineHeight:1.4,color:C.color,background:C.bg,padding:"2px 6px",borderRadius:4,maxHeight:32,overflow:"hidden"},ellipsis:{tooltip:A},children:["\u2190 ",A]}),p!=="map"&&D&&(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11,display:"block",marginTop:4,lineHeight:1.4,color:C.color,background:C.bg,padding:"2px 6px",borderRadius:4,maxHeight:32,overflow:"hidden"},ellipsis:{tooltip:D},children:D}),(0,E.jsxs)("div",{style:{display:"flex",gap:4,marginTop:6,flexWrap:"wrap"},children:[!_&&p==="agent"&&I&&(0,E.jsx)(Te,{title:a?o("chatWorkspace.workflowNode.refDeleted",{ref:I}):o("chatWorkspace.workflowNode.refDelegated",{name:g??I}),children:(0,E.jsx)(se,{color:a?"red":"purple",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},icon:(0,E.jsx)(Sn,{size:10}),children:a?o("chatWorkspace.workflowNode.refDeletedTag",{ref:I}):`\u2192 ${g??I}`})}),!_&&p==="agent"&&!I&&(0,E.jsx)(se,{color:"default",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:o("chatWorkspace.workflowNode.inline")}),Z&&(0,E.jsx)(Te,{title:o("chatWorkspace.workflowNode.askTooltip"),children:(0,E.jsx)("div",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,borderRadius:"50%",background:"#fff7e6",border:"1px solid #ffd591",cursor:"default"},children:(0,E.jsx)(kn,{size:12,style:{color:"#fa8c16"}})})}),j&&(0,E.jsx)(Te,{title:o("chatWorkspace.workflowNode.when",{condition:j}),children:(0,E.jsx)("div",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,borderRadius:"50%",background:"#f0f5ff",border:"1px solid #adc6ff",cursor:"default"},children:(0,E.jsx)(wn,{size:12,style:{color:"#2f54eb"}})})}),!_&&p==="map"&&O&&(0,E.jsx)(se,{color:"purple",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:O}),!_&&p==="map"&&D&&(0,E.jsx)(se,{color:"default",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px",maxWidth:120},title:D,children:D.length>20?D.slice(0,18)+"\u2026":D}),!_&&p==="map"&&(te||X||G)&&(0,E.jsxs)(se,{color:"cyan",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:[te??50,"\xD7",X??10,"\xD7",G??5]}),!_&&oe?(0,E.jsxs)(se,{style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:["\u21BB ",oe]}):null,!_&&J?(0,E.jsxs)(se,{style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:["\u23F1 ",J,"s"]}):null,ve&&(0,E.jsx)(se,{color:N?"blue":"default",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:ve}),s&&(0,E.jsx)("span",{style:{marginLeft:"auto"}}),s&&(0,E.jsx)(gn,{trigger:"hover",placement:"right",mouseEnterDelay:.2,title:(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,E.jsx)(ae,{strong:!0,style:{fontSize:12},children:o("chatWorkspace.workflowNode.output")}),(0,E.jsx)(ae,{style:{fontSize:11,fontFamily:"monospace",color:"#6366f1"},children:s})]}),content:h?(0,E.jsx)(un,{t:o,schema:h}):(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowNode.noSchema")}),children:(0,E.jsxs)(se,{style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px",flexShrink:0,cursor:"default"},children:["\u2192 ",s]})})]})]})]}),(0,E.jsx)(ke,{type:"source",position:Ae.Bottom,style:Qe})]})},Mn=ar;var H=Re(Ve()),{Text:ge}=Xe;function Fn(u){return new Date(u).toLocaleString()}function ur(u){return u.input?typeof u.input.rendered=="string"?u.input.rendered:typeof u.input.description=="string"?u.input.description:JSON.stringify(u.input,null,2):null}function pr(u){return u.output?typeof u.output.result=="string"?u.output.result:typeof u.output=="object"?JSON.stringify(u.output,null,2):String(u.output):null}function fr({step:u}){let o=_e(),p=ur(u),m=pr(u),S=De[u.status]||De.running,I=[{key:"io",label:o("chatWorkspace.workflowCanvas.tabIo"),children:(0,H.jsxs)(H.Fragment,{children:[p&&(0,H.jsxs)("div",{style:{marginBottom:m?12:0},children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5},children:o("chatWorkspace.workflowCanvas.input")}),(0,H.jsx)("div",{style:{background:"rgba(0,0,0,0.02)",borderRadius:8,padding:"8px 10px",marginTop:4,maxHeight:200,overflow:"auto"},children:u.input?.description?(0,H.jsx)(ln,{content:p}):(0,H.jsx)("pre",{style:{margin:0,fontSize:11,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"monospace"},children:p})})]}),m&&(0,H.jsxs)("div",{children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5},children:o("chatWorkspace.workflowCanvas.output")}),(0,H.jsx)("div",{style:{background:"linear-gradient(135deg, rgba(99,102,241,0.04) 0%, rgba(99,102,241,0.01) 100%)",borderRadius:8,padding:"8px 10px",marginTop:4,maxHeight:200,overflow:"auto"},children:u.output?.result?(0,H.jsx)(ln,{content:m}):(0,H.jsx)("pre",{style:{margin:0,fontSize:11,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"monospace"},children:m})})]}),!p&&!m&&(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowCanvas.noIo")})]})}];return(0,H.jsxs)("div",{style:{maxWidth:480},children:[(0,H.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[(0,H.jsx)("span",{style:{color:S.color,fontSize:14},children:S.icon}),(0,H.jsx)(ge,{strong:!0,style:{fontSize:14},children:u.stepName}),(0,H.jsx)(se,{color:"purple",style:{fontSize:11},children:u.stepType})]}),u.edgePurpose&&(0,H.jsx)("div",{style:{marginBottom:10},children:(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowCanvas.purpose",{purpose:u.edgePurpose})})}),u.errorMessage&&(0,H.jsx)("div",{style:{background:"#FEF2F2",border:"1px solid #FECACA",borderRadius:8,padding:"8px 12px",marginBottom:12,overflow:"hidden"},children:(0,H.jsx)(ge,{type:"danger",style:{fontSize:11,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:u.errorMessage})}),(0,H.jsx)(hn,{activeKey:"io",items:I,size:"small",style:{marginBottom:-8}}),(0,H.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginTop:12,paddingTop:8,borderTop:"1px solid #f0f0f0"},children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10},children:o("chatWorkspace.workflowCanvas.started",{time:Fn(u.startedAt)})}),u.completedAt&&(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10},children:o("chatWorkspace.workflowCanvas.ended",{time:Fn(u.completedAt)})})]})]})}function Pe(u,o){return u.find(p=>p.stepName===o.name)??null}function Ze(u,o,p,m){let S=u.ref&&m?m.get(u.ref):void 0;return{nodeType:u.type,name:u.name,description:u.description,ref:u.ref,refAgentName:S?.name,refAgentType:S?.type,refDeleted:u.ref&&m?!S:void 0,outputKey:u.output?.key,nodeSchema:u.output?.schema,config:u.config,status:u.status,source:u.source,innerRef:u.node?.ref,inputTemplate:u.input?.template,ask:u.ask,condition:u.condition,runState:o,pending:p}}function Dn(u){let o=new Map;for(let p of u)if(p.parentGroup&&p.type!=="terminal"){let m=o.get(p.parentGroup)||[];m.push(p.id),o.set(p.parentGroup,m)}return Array.from(o.entries()).map(([p,m])=>({sourceId:p,childIds:m}))}function dr(){let u=_e();return(0,H.jsxs)("div",{style:{width:"100%",height:"100%",position:"relative",pointerEvents:"none"},children:[(0,H.jsx)(ke,{type:"target",position:Ae.Top,style:{opacity:0}}),(0,H.jsx)(ke,{type:"source",position:Ae.Bottom,style:{opacity:0}}),(0,H.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,border:"2px dashed #a78bfa",borderRadius:12,background:"rgba(167, 139, 250, 0.04)"}}),(0,H.jsx)("div",{style:{position:"absolute",top:8,left:12,fontSize:12,fontWeight:600,color:"#7c3aed",padding:"2px 8px",background:"rgba(167, 139, 250, 0.08)",borderRadius:6,whiteSpace:"nowrap",zIndex:2},children:u("chatWorkspace.workflowCanvas.parallel")})]})}function gr(u,o){let p=u.nodes,m=u.edges,S=Dn(p),I=new Set(S.map(N=>N.sourceId)),g=new Set(S.flatMap(N=>N.childIds)),c=268,a=100,s=40;for(let N of S){let B=p.find(C=>C.id===N.sourceId);if(B){let C=N.childIds.length;B.width=C*c+(C-1)*s+40,B.height=a+100}}let h=p.filter(N=>!g.has(N.id)),r=an(h,m,{nodeWidth:c,nodeHeight:a,ranksep:120}),l=h.find(N=>!I.has(N.id)&&N.type!=="terminal"),A=l?r.get(l.id):void 0,O=l?l.width??c:c,D=A?A.x+O/2:0;for(let N of h){if(I.has(N.id))continue;let B=r.get(N.id);if(!B)continue;let C=N.width??c;B.x=D-C/2}let Z=h.filter(N=>r.has(N.id)&&!I.has(N.id)&&N.type!=="terminal").map(N=>{let B=r.get(N.id);return{id:N.id,type:"workflow",position:B,data:{...Ze(N,void 0,void 0,o)}}});for(let N of S){let B=p.find(J=>J.id===N.sourceId),C=r.get(N.sourceId);if(!B||!C)continue;let W=B.width,P=B.height,z=N.childIds.length,U=D-W/2,q=z*c+(z-1)*s,fe=D-q/2,ue=C.y+(P-a)/2;for(let J=0;J<z;J++){let te=N.childIds[J],X=p.find(G=>G.id===te);X&&Z.push({id:X.id,type:"workflow",position:{x:fe+J*(c+s),y:ue},data:{...Ze(X,void 0,void 0,o),parallelGroup:!0},style:{zIndex:2}})}let oe=`group_${N.sourceId}`;Z.push({id:oe,type:"groupLabel",position:{x:U,y:C.y},data:{},selectable:!1,draggable:!1,style:{zIndex:0,width:W,height:P}})}let j=[];for(let N of m){let B=sn(N);for(let C of B){let W=p.find(U=>U.id===C);if(W?.type==="terminal"&&W.name==="__end"||I.has(N.from)&&p.find(q=>q.id===C)?.parentGroup===N.from)continue;let P=I.has(N.from)?`group_${N.from}`:N.from,z=I.has(C)?`group_${C}`:C;j.push({id:`${P}-${z}`,source:P,target:z,type:"straight",markerEnd:{type:cn.ArrowClosed}})}}return{nodes:Z,edges:j}}function hr(u,o,p,m){let S=u.nodes,I=u.edges,g=Dn(S),c=new Set(g.map(C=>C.sourceId)),a=new Set(g.flatMap(C=>C.childIds)),s=268,h=100,r=40;for(let C of g){let W=S.find(P=>P.id===C.sourceId);if(W){let P=C.childIds.length;W.width=P*s+(P-1)*r+40,W.height=h+100}}let l=S.filter(C=>!a.has(C.id)),A=an(l,I,{nodeWidth:s,nodeHeight:h,ranksep:120}),O=l.find(C=>!c.has(C.id)&&C.type!=="terminal"),D=O?A.get(O.id):void 0,Z=O?O.width??s:s,j=D?D.x+Z/2:0;for(let C of l){if(c.has(C.id))continue;let W=A.get(C.id);if(!W)continue;let P=C.width??s;W.x=j-P/2}let N=l.filter(C=>A.has(C.id)&&!c.has(C.id)).map(C=>{let W=A.get(C.id),P=Pe(o,C),z=C.type==="terminal",U=P&&(!z||P.status!=="running")?{status:P.status,stepType:P.stepType,durationMs:P.durationMs,selected:!1}:void 0;return{id:C.id,type:"workflow",position:W,style:z?{width:s,height:h}:void 0,data:Ze(C,U,!P&&!z,m)}});for(let C of g){let W=S.find(X=>X.id===C.sourceId),P=A.get(C.sourceId);if(!W||!P)continue;let z=W.width,U=W.height,q=C.childIds.length,fe=q*s+(q-1)*r,ue=j-fe/2,oe=P.y+(U-h)/2;for(let X=0;X<q;X++){let G=C.childIds[X],ee=S.find(le=>le.id===G);if(!ee)continue;let _=Pe(o,ee),de=_?{status:_.status,stepType:_.stepType,durationMs:_.durationMs,selected:!1}:void 0;N.push({id:ee.id,type:"workflow",position:{x:ue+X*(s+r),y:oe},data:{...Ze(ee,de,!_,m),parallelGroup:!0},style:{zIndex:2}})}let J=j-z/2,te=`group_${C.sourceId}`;N.push({id:te,type:"groupLabel",position:{x:J,y:P.y},data:{},selectable:!1,draggable:!1,style:{zIndex:0,width:z,height:U}})}let B=[];for(let C of I){let W=sn(C);for(let P of W){if(c.has(C.from)&&S.find(_=>_.id===P)?.parentGroup===C.from)continue;let z=c.has(C.from)?`group_${C.from}`:C.from,U=c.has(P)?`group_${P}`:P,q=S.find(ee=>ee.id===C.from),ue=(q?Pe(o,q):void 0)!==void 0,oe=S.find(ee=>ee.id===P),te=(oe?Pe(o,oe):void 0)!==void 0,X=ue&&te,G=X?"#6366f1":"#d9d9d9";B.push({id:`${z}-${U}`,source:z,target:U,type:"straight",animated:X,style:X?{stroke:G,strokeWidth:2}:{stroke:G,strokeWidth:2,strokeDasharray:"6 4",opacity:.25},markerEnd:{type:cn.ArrowClosed,color:G,width:20,height:20}})}}return{nodes:N,edges:B}}var mr=({dsl:u,steps:o,assistantId:p,agentNameMap:m,onNodeClick:S,height:I="100%"})=>{let g=_e(),c=!!o,a=(0,ie.useMemo)(()=>({workflow:Mn,groupLabel:dr}),[]),{nodes:s,edges:h}=(0,ie.useMemo)(()=>c?hr(u,o,void 0,m):gr(u,m),[u,o,c,m]),[r,l,A]=Cn(s),[O,D,Z]=_n(h),[j,N]=(0,ie.useState)(null),B=(0,ie.useMemo)(()=>{if(!c||!j)return null;let U=u.nodes.find(q=>q.id===j);return U?Pe(o,U):null},[u.nodes,o,j,c]);(0,ie.useEffect)(()=>{l(s),D(h)},[s,h,l,D]);let C=(0,ie.useCallback)(()=>{l(U=>U.map(q=>({...q,data:{...q.data,runState:q.data.runState?{...q.data.runState,selected:!1}:void 0}})))},[l]);(0,ie.useEffect)(()=>{c&&l(U=>U.map(q=>({...q,data:{...q.data,runState:q.data.runState?{...q.data.runState,selected:q.id===j}:void 0}})))},[j,l,c]);let W=(0,ie.useCallback)((U,q)=>{c?N(q.id):S?.(q.id)},[c,S]),P=(0,ie.useCallback)(()=>{c&&(C(),N(null))},[c,C]),z=(0,ie.useCallback)(()=>{C(),N(null)},[C]);return!u.nodes||u.nodes.length===0?c?(0,H.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:300},children:(0,H.jsx)(mn,{size:"large"})}):(0,H.jsx)(dn,{description:g("chatWorkspace.workflowCanvas.noNodes")}):(0,H.jsx)(vn,{children:(0,H.jsx)(En,{nodes:r,edges:O,nodeTypes:a,onNodesChange:A,onEdgesChange:Z,onNodeClick:W,onPaneClick:c?P:void 0,height:I,fitView:!0,fitViewOptions:c?{padding:.3}:void 0,minZoom:c?.3:void 0,maxZoom:c?1.5:void 0,nodesDraggable:!1,nodesConnectable:c?!1:void 0,defaultEdgeOptions:c?void 0:{style:{strokeWidth:2}},backgroundGap:c?20:void 0,miniMap:c?{nodeStrokeWidth:3,pannable:!0,zoomable:!0,style:{backgroundColor:"#f5f5f5"}}:void 0,children:c&&B&&j&&(0,H.jsxs)("div",{style:{position:"absolute",right:24,top:24,width:460,maxHeight:"calc(100% - 48px)",background:"#fff",borderRadius:16,boxShadow:"0 8px 30px rgba(0,0,0,0.12)",border:"1px solid #e5e7eb",zIndex:10,overflow:"auto",padding:20},children:[(0,H.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11,textTransform:"uppercase",letterSpacing:.5},children:g("chatWorkspace.workflowCanvas.stepDetail")}),(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11,cursor:"pointer"},onClick:z,children:g("common.close")})]}),(0,H.jsx)(fr,{step:B})]})})})},Gr=mr;var yr=Object.create,Pn=Object.defineProperty,xr=Object.getOwnPropertyDescriptor,wr=Object.getOwnPropertyNames,Sr=Object.getPrototypeOf,br=Object.prototype.hasOwnProperty,$=(u,o)=>()=>(o||(u((o={exports:{}}).exports,o),u=null),o.exports),Ar=(u,o,p,m)=>{if(o&&typeof o=="object"||typeof o=="function")for(var S=wr(o),I=0,g=S.length,c;I<g;I++)c=S[I],!br.call(u,c)&&c!==p&&Pn(u,c,{get:(a=>o[a]).bind(null,c),enumerable:!(m=xr(o,c))||m.enumerable});return u},kr=(u,o,p)=>(p=u!=null?yr(Sr(u)):{},Ar(o||!u||!u.__esModule?Pn(p,"default",{value:u,enumerable:!0}):p,u)),We=$(((u,o)=>{function p(a){return typeof a>"u"||a===null}function m(a){return typeof a=="object"&&a!==null}function S(a){return Array.isArray(a)?a:p(a)?[]:[a]}function I(a,s){if(s){let h=Object.keys(s);for(let r=0,l=h.length;r<l;r+=1){let A=h[r];a[A]=s[A]}}return a}function g(a,s){let h="";for(let r=0;r<s;r+=1)h+=a;return h}function c(a){return a===0&&Number.NEGATIVE_INFINITY===1/a}o.exports.isNothing=p,o.exports.isObject=m,o.exports.toArray=S,o.exports.repeat=g,o.exports.isNegativeZero=c,o.exports.extend=I})),He=$(((u,o)=>{function p(S,I){let g="",c=S.reason||"(unknown reason)";return S.mark?(S.mark.name&&(g+='in "'+S.mark.name+'" '),g+="("+(S.mark.line+1)+":"+(S.mark.column+1)+")",!I&&S.mark.snippet&&(g+=`
1
+ import{b as sn,c as an,d as En}from"./embed-page-chunk-WTOAQDQN.js";import{a as cn,b as Ae,e as ke,f as vn,h as Cn,i as _n}from"./embed-page-chunk-V2GBFWLG.js";import{Fa as ln,H as wn,R as Sn,U as bn,fa as An,la as kn,o as Oe,oa as Tn,q as yn,t as xn,u as Me,v as Fe}from"./embed-page-chunk-7PNQFZMK.js";import{r as _e}from"./embed-page-chunk-O44JEYLD.js";import{a as Ve}from"./embed-page-chunk-QV7QAJ4N.js";import{Ia as se,La as Xe,Z as dn,aa as Te,ba as gn,fa as hn,va as mn}from"./embed-page-chunk-MHGVD4EV.js";import{a as lr}from"./embed-page-chunk-R5QL57JJ.js";import{f as Re}from"./embed-page-chunk-QBTAJ2YI.js";var ie=Re(lr());var E=Re(Ve());if(typeof document<"u"){let u="workflow-node-spin-keyframes";if(!document.getElementById(u)){let o=document.createElement("style");o.id=u,o.textContent="@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }",document.head.appendChild(o)}}var{Text:ae}=Xe,Qe={opacity:0},De={running:{color:"#1677ff",icon:(0,E.jsx)(bn,{size:14,style:{animation:"spin 1s linear infinite"}})},completed:{color:"#52c41a",icon:(0,E.jsx)(Oe,{size:14})},failed:{color:"#ff4d4f",icon:(0,E.jsx)(Me,{size:14})},interrupted:{color:"#faad14",icon:(0,E.jsx)(yn,{size:14})},skipped:{color:"#8c8c8c",icon:(0,E.jsx)(Fe,{size:14})}},Nn={running:"chatWorkspace.workflowNode.stepStatus.running",completed:"chatWorkspace.workflowNode.stepStatus.completed",failed:"chatWorkspace.workflowNode.stepStatus.failed",interrupted:"chatWorkspace.workflowNode.stepStatus.interrupted",skipped:"chatWorkspace.workflowNode.stepStatus.skipped"},In={color:"#d9d9d9",icon:(0,E.jsx)(Fe,{size:14})},Ln={agent:{color:"#6366f1",bg:"#EEF2FF",border:"#6366f1"},map:{color:"#10b981",bg:"#ECFDF5",border:"#10b981"},terminal:{color:"#64748b",bg:"#F8FAFC",border:"#94a3b8"}},Rn={success:{color:"#22c55e",bg:"#F0FDF4",label:"chatWorkspace.workflowNode.terminal.success"},failed:{color:"#ef4444",bg:"#FEF2F2",label:"chatWorkspace.workflowNode.terminal.failed"},__default:{color:"#94a3b8",bg:"#F8FAFC",label:"chatWorkspace.workflowNode.terminal.stop"}};function cr(u){return(u||"?").split(/[\s_-]+/).filter(Boolean).map(o=>o[0]).join("").toUpperCase().slice(0,2)}function un({schema:u,t:o}){let p=u;if(!p||typeof p!="object")return(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowNode.noSchema")});let m=p.properties,S=p.required||[],I=p.items,g=a=>a==="string"?"green":a==="number"||a==="integer"?"orange":a==="boolean"?"purple":a==="array"?"cyan":a==="object"?"blue":"default",c=a=>{let s=a.type;if(s==="array"&&a.items){let h=a.items.type;return h?`Array<${h}>`:"Array"}return s||"any"};return(0,E.jsxs)("div",{style:{maxWidth:340,maxHeight:360,overflow:"auto",fontSize:12},children:[m&&(0,E.jsxs)("div",{children:[(0,E.jsx)(ae,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5,display:"block",marginBottom:6},children:o("chatWorkspace.workflowNode.properties")}),Object.entries(m).map(([a,s])=>{let h=S.includes(a),r=s.description,l=c(s),A=s.properties,O=s.items,D=!!(A||O);return(0,E.jsx)(Te,{title:D?(0,E.jsx)(un,{t:o,schema:D?A?s:O:void 0}):r||void 0,placement:"left",overlayStyle:{maxWidth:360},children:(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"3px 6px",borderRadius:4,marginBottom:2,background:h?"rgba(99,102,241,0.04)":"transparent",cursor:D?"pointer":"default"},children:[(0,E.jsx)(ae,{style:{fontSize:11,fontWeight:h?600:400,fontFamily:"monospace"},children:a}),h&&(0,E.jsx)("span",{style:{color:"#ef4444",fontSize:9},children:"*"}),r&&!D&&(0,E.jsx)(ae,{type:"secondary",style:{fontSize:10,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r}),(0,E.jsx)(se,{color:g(l),style:{margin:0,fontSize:9,padding:"0 4px",lineHeight:"16px",marginLeft:"auto"},children:l})]})},a)})]}),!m&&I&&(0,E.jsxs)("div",{children:[(0,E.jsx)(ae,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5,display:"block",marginBottom:4},children:o("chatWorkspace.workflowNode.items")}),(0,E.jsx)(un,{t:o,schema:I})]})]})}var On=72,sr=3,ar=({data:u})=>{let o=_e();if(!u)return null;let{nodeType:p,name:m,description:S,ref:I,refAgentName:g,refAgentType:c,refDeleted:a,outputKey:s,nodeSchema:h,config:r,status:l,source:A,innerRef:O,inputTemplate:D,ask:Z,condition:j,runState:N,pending:B}=u,C=Ln[p]||Ln.agent,W=Rn[l||""]||Rn.__default,P=N?De[N.status]||De.running:null,z=P?.color,U=P?.icon,q=l==="success"?(0,E.jsx)(Oe,{size:14,color:"#22c55e"}):l==="failed"?(0,E.jsx)(Me,{size:14,color:"#ef4444"}):(0,E.jsx)(Fe,{size:14,color:"#94a3b8"}),fe=l==="success"?(0,E.jsx)(Oe,{size:32,color:W.color}):l==="failed"?(0,E.jsx)(Me,{size:32,color:W.color}):(0,E.jsx)(xn,{size:32,color:W.color}),ue=r?.title,oe=r?.maxRetries,J=r?.timeout,te=r?.batchSize,X=r?.maxConcurrency,G=r?.innerConcurrency,ee=N?.selected,_=!!N||B;function de(V){return V==null?"-":V<1e3?`${V}ms`:`${(V/1e3).toFixed(1)}s`}if(p==="terminal"){let V=W.color,ne=W.bg,pe=o(W.label),ce=fe;_&&(N?(V=z||V,pe=N.status,ce=(0,E.jsx)("span",{style:{fontSize:18},children:U})):B&&(V=In.color,ne="#fafafa",pe=o("chatWorkspace.workflowNode.pending"),ce=(0,E.jsx)(Fe,{size:18,style:{color:In.color}})));let me=ee&&z?`0 4px 16px ${z}30`:"0 2px 8px rgba(0,0,0,0.06)";return(0,E.jsxs)("div",{style:{padding:4,display:"flex",flexDirection:"column",alignItems:"center",opacity:B?.5:1},children:[(0,E.jsx)(ke,{type:"target",position:Ae.Top,style:Qe}),(0,E.jsx)(Te,{title:_&&N?o(Nn[N.status]):m,children:(0,E.jsx)("div",{style:{width:On,height:On,borderRadius:"50%",background:ne,border:`${sr}px solid ${B?`${V}80`:V}`,borderStyle:B?"dashed":"solid",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:me,transition:"all 0.2s ease",cursor:"default"},onMouseEnter:B?void 0:K=>{K.currentTarget.style.transform="scale(1.08)",K.currentTarget.style.boxShadow=`0 4px 16px ${V}30`},onMouseLeave:B?void 0:K=>{K.currentTarget.style.transform="scale(1)",K.currentTarget.style.boxShadow=me},children:ce})}),(0,E.jsx)(ae,{style:{fontSize:11,color:V,marginTop:6,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px"},children:pe}),(0,E.jsx)(ke,{type:"source",position:Ae.Bottom,style:Qe})]})}let le=_&&z?z:C.border,Ee=_&&z?z:C.color,he=p==="agent"?(0,E.jsx)(Tn,{size:14}):p==="map"?(0,E.jsx)(An,{size:14}):cr(m),ve=N?de(N.durationMs):null,Se=ee&&z?`0 4px 14px ${z}20`:"0 1px 6px rgba(0,0,0,0.08)",be=_&&z?z:C.color;return(0,E.jsxs)("div",{style:{padding:4},children:[(0,E.jsx)(ke,{type:"target",position:Ae.Top,style:Qe}),(0,E.jsxs)("div",{style:{width:260,minHeight:90,boxSizing:"border-box",background:"#fff",borderRadius:12,boxShadow:Se,border:"1px solid #e5e7eb",borderLeft:`3px solid ${le}`,borderStyle:I?"dashed":"solid",overflow:"hidden",transition:"all 0.2s ease",...B?{opacity:.5,borderStyle:"dashed"}:{}},onMouseEnter:B?void 0:V=>{V.currentTarget.style.transform="translateY(-2px)",V.currentTarget.style.boxShadow=`0 4px 12px ${be}20`},onMouseLeave:B?void 0:V=>{V.currentTarget.style.transform="translateY(0)",V.currentTarget.style.boxShadow=Se},children:[(0,E.jsxs)("div",{style:{background:C.bg,padding:"6px 12px",display:"flex",alignItems:"center",gap:6,borderBottom:"1px solid #f1f5f9"},children:[(0,E.jsx)("div",{style:{width:24,height:24,borderRadius:"50%",backgroundColor:Ee,color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,flexShrink:0},children:he}),(0,E.jsx)("div",{style:{flex:1,minWidth:0},children:(0,E.jsx)(ae,{strong:!0,style:{fontSize:12,color:C.color},ellipsis:{tooltip:m},children:m})}),_&&U&&(0,E.jsx)(Te,{title:N?o(Nn[N.status]):void 0,children:(0,E.jsx)("span",{style:{color:z,fontSize:12,display:"flex",flexShrink:0},children:U})})]}),(0,E.jsxs)("div",{style:{padding:"10px 12px"},children:[S&&(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11,display:"block",marginTop:2,lineHeight:1.4},ellipsis:{tooltip:S},children:S}),p==="map"&&A&&(0,E.jsxs)(ae,{type:"secondary",style:{fontSize:11,display:"block",marginTop:4,lineHeight:1.4,color:C.color,background:C.bg,padding:"2px 6px",borderRadius:4,maxHeight:32,overflow:"hidden"},ellipsis:{tooltip:A},children:["\u2190 ",A]}),p!=="map"&&D&&(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11,display:"block",marginTop:4,lineHeight:1.4,color:C.color,background:C.bg,padding:"2px 6px",borderRadius:4,maxHeight:32,overflow:"hidden"},ellipsis:{tooltip:D},children:D}),(0,E.jsxs)("div",{style:{display:"flex",gap:4,marginTop:6,flexWrap:"wrap"},children:[!_&&p==="agent"&&I&&(0,E.jsx)(Te,{title:a?o("chatWorkspace.workflowNode.refDeleted",{ref:I}):o("chatWorkspace.workflowNode.refDelegated",{name:g??I}),children:(0,E.jsx)(se,{color:a?"red":"purple",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},icon:(0,E.jsx)(Sn,{size:10}),children:a?o("chatWorkspace.workflowNode.refDeletedTag",{ref:I}):`\u2192 ${g??I}`})}),!_&&p==="agent"&&!I&&(0,E.jsx)(se,{color:"default",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:o("chatWorkspace.workflowNode.inline")}),Z&&(0,E.jsx)(Te,{title:o("chatWorkspace.workflowNode.askTooltip"),children:(0,E.jsx)("div",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,borderRadius:"50%",background:"#fff7e6",border:"1px solid #ffd591",cursor:"default"},children:(0,E.jsx)(kn,{size:12,style:{color:"#fa8c16"}})})}),j&&(0,E.jsx)(Te,{title:o("chatWorkspace.workflowNode.when",{condition:j}),children:(0,E.jsx)("div",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,borderRadius:"50%",background:"#f0f5ff",border:"1px solid #adc6ff",cursor:"default"},children:(0,E.jsx)(wn,{size:12,style:{color:"#2f54eb"}})})}),!_&&p==="map"&&O&&(0,E.jsx)(se,{color:"purple",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:O}),!_&&p==="map"&&D&&(0,E.jsx)(se,{color:"default",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px",maxWidth:120},title:D,children:D.length>20?D.slice(0,18)+"\u2026":D}),!_&&p==="map"&&(te||X||G)&&(0,E.jsxs)(se,{color:"cyan",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:[te??50,"\xD7",X??10,"\xD7",G??5]}),!_&&oe?(0,E.jsxs)(se,{style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:["\u21BB ",oe]}):null,!_&&J?(0,E.jsxs)(se,{style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:["\u23F1 ",J,"s"]}):null,ve&&(0,E.jsx)(se,{color:N?"blue":"default",style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px"},children:ve}),s&&(0,E.jsx)("span",{style:{marginLeft:"auto"}}),s&&(0,E.jsx)(gn,{trigger:"hover",placement:"right",mouseEnterDelay:.2,title:(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,E.jsx)(ae,{strong:!0,style:{fontSize:12},children:o("chatWorkspace.workflowNode.output")}),(0,E.jsx)(ae,{style:{fontSize:11,fontFamily:"monospace",color:"#6366f1"},children:s})]}),content:h?(0,E.jsx)(un,{t:o,schema:h}):(0,E.jsx)(ae,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowNode.noSchema")}),children:(0,E.jsxs)(se,{style:{margin:0,fontSize:10,padding:"0 5px",lineHeight:"16px",flexShrink:0,cursor:"default"},children:["\u2192 ",s]})})]})]})]}),(0,E.jsx)(ke,{type:"source",position:Ae.Bottom,style:Qe})]})},Mn=ar;var H=Re(Ve()),{Text:ge}=Xe;function Fn(u){return new Date(u).toLocaleString()}function ur(u){return u.input?typeof u.input.rendered=="string"?u.input.rendered:typeof u.input.description=="string"?u.input.description:JSON.stringify(u.input,null,2):null}function pr(u){return u.output?typeof u.output.result=="string"?u.output.result:typeof u.output=="object"?JSON.stringify(u.output,null,2):String(u.output):null}function fr({step:u}){let o=_e(),p=ur(u),m=pr(u),S=De[u.status]||De.running,I=[{key:"io",label:o("chatWorkspace.workflowCanvas.tabIo"),children:(0,H.jsxs)(H.Fragment,{children:[p&&(0,H.jsxs)("div",{style:{marginBottom:m?12:0},children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5},children:o("chatWorkspace.workflowCanvas.input")}),(0,H.jsx)("div",{style:{background:"rgba(0,0,0,0.02)",borderRadius:8,padding:"8px 10px",marginTop:4,maxHeight:200,overflow:"auto"},children:u.input?.description?(0,H.jsx)(ln,{content:p}):(0,H.jsx)("pre",{style:{margin:0,fontSize:11,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"monospace"},children:p})})]}),m&&(0,H.jsxs)("div",{children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10,textTransform:"uppercase",letterSpacing:.5},children:o("chatWorkspace.workflowCanvas.output")}),(0,H.jsx)("div",{style:{background:"linear-gradient(135deg, rgba(99,102,241,0.04) 0%, rgba(99,102,241,0.01) 100%)",borderRadius:8,padding:"8px 10px",marginTop:4,maxHeight:200,overflow:"auto"},children:u.output?.result?(0,H.jsx)(ln,{content:m}):(0,H.jsx)("pre",{style:{margin:0,fontSize:11,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"monospace"},children:m})})]}),!p&&!m&&(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowCanvas.noIo")})]})}];return(0,H.jsxs)("div",{style:{maxWidth:480},children:[(0,H.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[(0,H.jsx)("span",{style:{color:S.color,fontSize:14},children:S.icon}),(0,H.jsx)(ge,{strong:!0,style:{fontSize:14},children:u.stepName}),(0,H.jsx)(se,{color:"purple",style:{fontSize:11},children:u.stepType})]}),u.edgePurpose&&(0,H.jsx)("div",{style:{marginBottom:10},children:(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11},children:o("chatWorkspace.workflowCanvas.purpose",{purpose:u.edgePurpose})})}),u.errorMessage&&(0,H.jsx)("div",{style:{background:"#FEF2F2",border:"1px solid #FECACA",borderRadius:8,padding:"8px 12px",marginBottom:12,overflow:"hidden"},children:(0,H.jsx)(ge,{type:"danger",style:{fontSize:11,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:u.errorMessage})}),(0,H.jsx)(hn,{activeKey:"io",items:I,size:"small",style:{marginBottom:-8}}),(0,H.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginTop:12,paddingTop:8,borderTop:"1px solid #f0f0f0"},children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10},children:o("chatWorkspace.workflowCanvas.started",{time:Fn(u.startedAt)})}),u.completedAt&&(0,H.jsx)(ge,{type:"secondary",style:{fontSize:10},children:o("chatWorkspace.workflowCanvas.ended",{time:Fn(u.completedAt)})})]})]})}function Pe(u,o){return u.find(p=>p.stepName===o.name)??null}function Ze(u,o,p,m){let S=u.ref&&m?m.get(u.ref):void 0;return{nodeType:u.type,name:u.name,description:u.description,ref:u.ref,refAgentName:S?.name,refAgentType:S?.type,refDeleted:u.ref&&m?!S:void 0,outputKey:u.output?.key,nodeSchema:u.output?.schema,config:u.config,status:u.status,source:u.source,innerRef:u.node?.ref,inputTemplate:u.input?.template,ask:u.ask,condition:u.condition,runState:o,pending:p}}function Dn(u){let o=new Map;for(let p of u)if(p.parentGroup&&p.type!=="terminal"){let m=o.get(p.parentGroup)||[];m.push(p.id),o.set(p.parentGroup,m)}return Array.from(o.entries()).map(([p,m])=>({sourceId:p,childIds:m}))}function dr(){let u=_e();return(0,H.jsxs)("div",{style:{width:"100%",height:"100%",position:"relative",pointerEvents:"none"},children:[(0,H.jsx)(ke,{type:"target",position:Ae.Top,style:{opacity:0}}),(0,H.jsx)(ke,{type:"source",position:Ae.Bottom,style:{opacity:0}}),(0,H.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,border:"2px dashed #a78bfa",borderRadius:12,background:"rgba(167, 139, 250, 0.04)"}}),(0,H.jsx)("div",{style:{position:"absolute",top:8,left:12,fontSize:12,fontWeight:600,color:"#7c3aed",padding:"2px 8px",background:"rgba(167, 139, 250, 0.08)",borderRadius:6,whiteSpace:"nowrap",zIndex:2},children:u("chatWorkspace.workflowCanvas.parallel")})]})}function gr(u,o){let p=u.nodes,m=u.edges,S=Dn(p),I=new Set(S.map(N=>N.sourceId)),g=new Set(S.flatMap(N=>N.childIds)),c=268,a=100,s=40;for(let N of S){let B=p.find(C=>C.id===N.sourceId);if(B){let C=N.childIds.length;B.width=C*c+(C-1)*s+40,B.height=a+100}}let h=p.filter(N=>!g.has(N.id)),r=an(h,m,{nodeWidth:c,nodeHeight:a,ranksep:120}),l=h.find(N=>!I.has(N.id)&&N.type!=="terminal"),A=l?r.get(l.id):void 0,O=l?l.width??c:c,D=A?A.x+O/2:0;for(let N of h){if(I.has(N.id))continue;let B=r.get(N.id);if(!B)continue;let C=N.width??c;B.x=D-C/2}let Z=h.filter(N=>r.has(N.id)&&!I.has(N.id)&&N.type!=="terminal").map(N=>{let B=r.get(N.id);return{id:N.id,type:"workflow",position:B,data:{...Ze(N,void 0,void 0,o)}}});for(let N of S){let B=p.find(J=>J.id===N.sourceId),C=r.get(N.sourceId);if(!B||!C)continue;let W=B.width,P=B.height,z=N.childIds.length,U=D-W/2,q=z*c+(z-1)*s,fe=D-q/2,ue=C.y+(P-a)/2;for(let J=0;J<z;J++){let te=N.childIds[J],X=p.find(G=>G.id===te);X&&Z.push({id:X.id,type:"workflow",position:{x:fe+J*(c+s),y:ue},data:{...Ze(X,void 0,void 0,o),parallelGroup:!0},style:{zIndex:2}})}let oe=`group_${N.sourceId}`;Z.push({id:oe,type:"groupLabel",position:{x:U,y:C.y},data:{},selectable:!1,draggable:!1,style:{zIndex:0,width:W,height:P}})}let j=[];for(let N of m){let B=sn(N);for(let C of B){let W=p.find(U=>U.id===C);if(W?.type==="terminal"&&W.name==="__end"||I.has(N.from)&&p.find(q=>q.id===C)?.parentGroup===N.from)continue;let P=I.has(N.from)?`group_${N.from}`:N.from,z=I.has(C)?`group_${C}`:C;j.push({id:`${P}-${z}`,source:P,target:z,type:"straight",markerEnd:{type:cn.ArrowClosed}})}}return{nodes:Z,edges:j}}function hr(u,o,p,m){let S=u.nodes,I=u.edges,g=Dn(S),c=new Set(g.map(C=>C.sourceId)),a=new Set(g.flatMap(C=>C.childIds)),s=268,h=100,r=40;for(let C of g){let W=S.find(P=>P.id===C.sourceId);if(W){let P=C.childIds.length;W.width=P*s+(P-1)*r+40,W.height=h+100}}let l=S.filter(C=>!a.has(C.id)),A=an(l,I,{nodeWidth:s,nodeHeight:h,ranksep:120}),O=l.find(C=>!c.has(C.id)&&C.type!=="terminal"),D=O?A.get(O.id):void 0,Z=O?O.width??s:s,j=D?D.x+Z/2:0;for(let C of l){if(c.has(C.id))continue;let W=A.get(C.id);if(!W)continue;let P=C.width??s;W.x=j-P/2}let N=l.filter(C=>A.has(C.id)&&!c.has(C.id)).map(C=>{let W=A.get(C.id),P=Pe(o,C),z=C.type==="terminal",U=P&&(!z||P.status!=="running")?{status:P.status,stepType:P.stepType,durationMs:P.durationMs,selected:!1}:void 0;return{id:C.id,type:"workflow",position:W,style:z?{width:s,height:h}:void 0,data:Ze(C,U,!P&&!z,m)}});for(let C of g){let W=S.find(X=>X.id===C.sourceId),P=A.get(C.sourceId);if(!W||!P)continue;let z=W.width,U=W.height,q=C.childIds.length,fe=q*s+(q-1)*r,ue=j-fe/2,oe=P.y+(U-h)/2;for(let X=0;X<q;X++){let G=C.childIds[X],ee=S.find(le=>le.id===G);if(!ee)continue;let _=Pe(o,ee),de=_?{status:_.status,stepType:_.stepType,durationMs:_.durationMs,selected:!1}:void 0;N.push({id:ee.id,type:"workflow",position:{x:ue+X*(s+r),y:oe},data:{...Ze(ee,de,!_,m),parallelGroup:!0},style:{zIndex:2}})}let J=j-z/2,te=`group_${C.sourceId}`;N.push({id:te,type:"groupLabel",position:{x:J,y:P.y},data:{},selectable:!1,draggable:!1,style:{zIndex:0,width:z,height:U}})}let B=[];for(let C of I){let W=sn(C);for(let P of W){if(c.has(C.from)&&S.find(_=>_.id===P)?.parentGroup===C.from)continue;let z=c.has(C.from)?`group_${C.from}`:C.from,U=c.has(P)?`group_${P}`:P,q=S.find(ee=>ee.id===C.from),ue=(q?Pe(o,q):void 0)!==void 0,oe=S.find(ee=>ee.id===P),te=(oe?Pe(o,oe):void 0)!==void 0,X=ue&&te,G=X?"#6366f1":"#d9d9d9";B.push({id:`${z}-${U}`,source:z,target:U,type:"straight",animated:X,style:X?{stroke:G,strokeWidth:2}:{stroke:G,strokeWidth:2,strokeDasharray:"6 4",opacity:.25},markerEnd:{type:cn.ArrowClosed,color:G,width:20,height:20}})}}return{nodes:N,edges:B}}var mr=({dsl:u,steps:o,assistantId:p,agentNameMap:m,onNodeClick:S,height:I="100%"})=>{let g=_e(),c=!!o,a=(0,ie.useMemo)(()=>({workflow:Mn,groupLabel:dr}),[]),{nodes:s,edges:h}=(0,ie.useMemo)(()=>c?hr(u,o,void 0,m):gr(u,m),[u,o,c,m]),[r,l,A]=Cn(s),[O,D,Z]=_n(h),[j,N]=(0,ie.useState)(null),B=(0,ie.useMemo)(()=>{if(!c||!j)return null;let U=u.nodes.find(q=>q.id===j);return U?Pe(o,U):null},[u.nodes,o,j,c]);(0,ie.useEffect)(()=>{l(s),D(h)},[s,h,l,D]);let C=(0,ie.useCallback)(()=>{l(U=>U.map(q=>({...q,data:{...q.data,runState:q.data.runState?{...q.data.runState,selected:!1}:void 0}})))},[l]);(0,ie.useEffect)(()=>{c&&l(U=>U.map(q=>({...q,data:{...q.data,runState:q.data.runState?{...q.data.runState,selected:q.id===j}:void 0}})))},[j,l,c]);let W=(0,ie.useCallback)((U,q)=>{c?N(q.id):S?.(q.id)},[c,S]),P=(0,ie.useCallback)(()=>{c&&(C(),N(null))},[c,C]),z=(0,ie.useCallback)(()=>{C(),N(null)},[C]);return!u.nodes||u.nodes.length===0?c?(0,H.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:300},children:(0,H.jsx)(mn,{size:"large"})}):(0,H.jsx)(dn,{description:g("chatWorkspace.workflowCanvas.noNodes")}):(0,H.jsx)(vn,{children:(0,H.jsx)(En,{nodes:r,edges:O,nodeTypes:a,onNodesChange:A,onEdgesChange:Z,onNodeClick:W,onPaneClick:c?P:void 0,height:I,fitView:!0,fitViewOptions:c?{padding:.3}:void 0,minZoom:c?.3:void 0,maxZoom:c?1.5:void 0,nodesDraggable:!1,nodesConnectable:c?!1:void 0,defaultEdgeOptions:c?void 0:{style:{strokeWidth:2}},backgroundGap:c?20:void 0,miniMap:c?{nodeStrokeWidth:3,pannable:!0,zoomable:!0,style:{backgroundColor:"#f5f5f5"}}:void 0,children:c&&B&&j&&(0,H.jsxs)("div",{style:{position:"absolute",right:24,top:24,width:460,maxHeight:"calc(100% - 48px)",background:"#fff",borderRadius:16,boxShadow:"0 8px 30px rgba(0,0,0,0.12)",border:"1px solid #e5e7eb",zIndex:10,overflow:"auto",padding:20},children:[(0,H.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11,textTransform:"uppercase",letterSpacing:.5},children:g("chatWorkspace.workflowCanvas.stepDetail")}),(0,H.jsx)(ge,{type:"secondary",style:{fontSize:11,cursor:"pointer"},onClick:z,children:g("common.close")})]}),(0,H.jsx)(fr,{step:B})]})})})},Gr=mr;var yr=Object.create,Pn=Object.defineProperty,xr=Object.getOwnPropertyDescriptor,wr=Object.getOwnPropertyNames,Sr=Object.getPrototypeOf,br=Object.prototype.hasOwnProperty,$=(u,o)=>()=>(o||(u((o={exports:{}}).exports,o),u=null),o.exports),Ar=(u,o,p,m)=>{if(o&&typeof o=="object"||typeof o=="function")for(var S=wr(o),I=0,g=S.length,c;I<g;I++)c=S[I],!br.call(u,c)&&c!==p&&Pn(u,c,{get:(a=>o[a]).bind(null,c),enumerable:!(m=xr(o,c))||m.enumerable});return u},kr=(u,o,p)=>(p=u!=null?yr(Sr(u)):{},Ar(o||!u||!u.__esModule?Pn(p,"default",{value:u,enumerable:!0}):p,u)),We=$(((u,o)=>{function p(a){return typeof a>"u"||a===null}function m(a){return typeof a=="object"&&a!==null}function S(a){return Array.isArray(a)?a:p(a)?[]:[a]}function I(a,s){if(s){let h=Object.keys(s);for(let r=0,l=h.length;r<l;r+=1){let A=h[r];a[A]=s[A]}}return a}function g(a,s){let h="";for(let r=0;r<s;r+=1)h+=a;return h}function c(a){return a===0&&Number.NEGATIVE_INFINITY===1/a}o.exports.isNothing=p,o.exports.isObject=m,o.exports.toArray=S,o.exports.repeat=g,o.exports.isNegativeZero=c,o.exports.extend=I})),He=$(((u,o)=>{function p(S,I){let g="",c=S.reason||"(unknown reason)";return S.mark?(S.mark.name&&(g+='in "'+S.mark.name+'" '),g+="("+(S.mark.line+1)+":"+(S.mark.column+1)+")",!I&&S.mark.snippet&&(g+=`
2
2
 
3
3
  `+S.mark.snippet),c+" "+g):c}function m(S,I){Error.call(this),this.name="YAMLException",this.reason=S,this.mark=I,this.message=p(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}m.prototype=Object.create(Error.prototype),m.prototype.constructor=m,m.prototype.toString=function(I){return this.name+": "+p(this,I)},o.exports=m})),Tr=$(((u,o)=>{var p=We();function m(g,c,a,s,h){let r="",l="",A=Math.floor(h/2)-1;return s-c>A&&(r=" ... ",c=s-A+r.length),a-s>A&&(l=" ...",a=s+A-l.length),{str:r+g.slice(c,a).replace(/\t/g,"\u2192")+l,pos:s-c+r.length}}function S(g,c){return p.repeat(" ",c-g.length)+g}function I(g,c){if(c=Object.create(c||null),!g.buffer)return null;c.maxLength||(c.maxLength=79),typeof c.indent!="number"&&(c.indent=1),typeof c.linesBefore!="number"&&(c.linesBefore=3),typeof c.linesAfter!="number"&&(c.linesAfter=2);let a=/\r?\n|\r|\0/g,s=[0],h=[],r,l=-1;for(;r=a.exec(g.buffer);)h.push(r.index),s.push(r.index+r[0].length),g.position<=r.index&&l<0&&(l=s.length-2);l<0&&(l=s.length-1);let A="",O=Math.min(g.line+c.linesAfter,h.length).toString().length,D=c.maxLength-(c.indent+O+3);for(let j=1;j<=c.linesBefore&&!(l-j<0);j++){let N=m(g.buffer,s[l-j],h[l-j],g.position-(s[l]-s[l-j]),D);A=p.repeat(" ",c.indent)+S((g.line-j+1).toString(),O)+" | "+N.str+`
4
4
  `+A}let Z=m(g.buffer,s[l],h[l],g.position,D);A+=p.repeat(" ",c.indent)+S((g.line+1).toString(),O)+" | "+Z.str+`
@@ -1,3 +1,3 @@
1
- import{Pa as T,Xa as C,Ya as j,va as S}from"./embed-page-chunk-OY4CDWED.js";import{r as d,w as x}from"./embed-page-chunk-H4W4NDIY.js";import{a as p}from"./embed-page-chunk-QV7QAJ4N.js";import{La as I,U as v,W as b,lb as P}from"./embed-page-chunk-MHGVD4EV.js";import{a as M}from"./embed-page-chunk-R5QL57JJ.js";import{f as a}from"./embed-page-chunk-QBTAJ2YI.js";var h=a(M());var t=a(p()),{Text:c}=I,_=({workflowContext:e,onClose:g,onToolCompleted:m,initialMessageRequest:n,onInitialMessageSubmitted:u,attemptedInitialMessageRequestIdsRef:f,rawInitialMessage:o,showHeader:s=!0})=>{let r=d(),$=x("agent-architect"),y=e?.id?`${$.tenantId}:${e.id}`:null,A=(0,h.useMemo)(()=>{if(e?.id&&e?.name)return e.type==="agent"?`[Context: You're viewing agent "${e.name}" (assistant: ${e.id})]`:`[Context: You're viewing workflow "${e.name}" (agent: ${e.id})]`},[e]),L=(0,h.useMemo)(()=>{if(!n||!e?.id)return null;if(o)return n;let l;return e.type==="workflow"?l=[`Purpose: ${n.content.trim()}`,"",`Workflow "${e.id}" has been created with an empty YAML DSL. Based on the purpose above, load the 'create-workflow' skill, design the workflow using the YAML needs+if DSL, and update it via update_workflow. Make sure to include a descriptive name.`].join(`
1
+ import{Pa as T,Xa as C,Ya as j,va as S}from"./embed-page-chunk-7PNQFZMK.js";import{r as d,y as x}from"./embed-page-chunk-O44JEYLD.js";import{a as p}from"./embed-page-chunk-QV7QAJ4N.js";import{La as I,U as v,W as b,lb as P}from"./embed-page-chunk-MHGVD4EV.js";import{a as M}from"./embed-page-chunk-R5QL57JJ.js";import{f as a}from"./embed-page-chunk-QBTAJ2YI.js";var h=a(M());var t=a(p()),{Text:c}=I,_=({workflowContext:e,onClose:g,onToolCompleted:m,initialMessageRequest:n,onInitialMessageSubmitted:u,attemptedInitialMessageRequestIdsRef:f,rawInitialMessage:o,showHeader:s=!0})=>{let r=d(),$=x("agent-architect"),y=e?.id?`${$.tenantId}:${e.id}`:null,A=(0,h.useMemo)(()=>{if(e?.id&&e?.name)return e.type==="agent"?`[Context: You're viewing agent "${e.name}" (assistant: ${e.id})]`:`[Context: You're viewing workflow "${e.name}" (agent: ${e.id})]`},[e]),L=(0,h.useMemo)(()=>{if(!n||!e?.id)return null;if(o)return n;let l;return e.type==="workflow"?l=[`Purpose: ${n.content.trim()}`,"",`Workflow "${e.id}" has been created with an empty YAML DSL. Based on the purpose above, load the 'create-workflow' skill, design the workflow using the YAML needs+if DSL, and update it via update_workflow. Make sure to include a descriptive name.`].join(`
2
2
  `):l=[`Purpose: ${n.content.trim()}`,"",`Configure the topology for workflow "${e.id}" based on this purpose. Create sub-agents, set up the processing pipeline, and wire them together with topology edges.`,"The current name is a placeholder \u2014 feel free to update it via update_processing_agent if you have a better one."].join(`
3
3
  `),{...n,content:l}},[n?.requestId,n?.content,e?.id,e?.type,o]);return(0,t.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",borderLeft:"1px solid #f0f0f0",background:"rgba(255, 255, 255, 0.92)"},children:[s&&(0,t.jsxs)("div",{style:{padding:"12px 12px",borderBottom:"1px solid #f0f0f0",display:"flex",justifyContent:"space-between",alignItems:"flex-start"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(c,{strong:!0,children:r("chat.copilot.agentBuilder")}),e&&(0,t.jsx)("div",{children:(0,t.jsx)(c,{type:"secondary",style:{fontSize:12},children:r("chat.copilot.viewing",{name:e.name})})})]}),g&&(0,t.jsx)(b,{type:"text",size:"small","aria-label":r("chat.copilot.close"),icon:(0,t.jsx)(P,{}),onClick:g})]}),y?(0,t.jsxs)(S,{threadId:y,assistantId:"agent-architect",options:{streaming:!0},onToolCompleted:m,children:[(0,t.jsx)(C,{request:L,onSubmitted:u,attemptedRequestIdsRef:f}),(0,t.jsx)(j,{showHeader:!1,showEmptyState:!1,showDatabaseSlot:!1,showSkillSlot:!1,showAgentSlot:!1,showMetricsDataSourceSlot:!1,systemContext:A})]}):(0,t.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"100%",textAlign:"center",gap:4,padding:"0 8px"},children:[(0,t.jsx)(c,{strong:!0,children:r("chat.copilot.agentBuilder")}),(0,t.jsx)(c,{type:"secondary",children:r("chat.copilot.selectWorkflow")})]})]})};var i=a(p()),O=({project:e,projects:g,value:m,onChange:n,selectable:u=!0,loading:f})=>{let o=d();return e?(0,i.jsxs)("div",{"data-testid":"training-context-card",style:{display:"flex",alignItems:"center",gap:8},children:[(0,i.jsx)("span",{style:{fontSize:12,color:"rgba(0,0,0,0.45)",flexShrink:0},children:o("governance.learning.projectLabel")}),u?(0,i.jsx)(T,{kind:"training",value:m??e.id,onChange:s=>{s&&n?.(s)},style:{minWidth:0}}):(0,i.jsx)("span",{style:{fontSize:12,fontWeight:500},children:e.name})]}):f?null:(0,i.jsx)(v,{type:"warning",showIcon:!0,message:o("governance.learning.noProject"),description:o("governance.learning.noProjectDescription")})};export{O as a,_ as b};
@@ -1,4 +1,4 @@
1
- import{b as h}from"./embed-page-chunk-NR2PTMJ6.js";import"./embed-page-chunk-OY4CDWED.js";import"./embed-page-chunk-H4W4NDIY.js";import{a as E}from"./embed-page-chunk-QV7QAJ4N.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-QULNM5O2.js";import{a as b}from"./embed-page-chunk-MHGVD4EV.js";import"./embed-page-chunk-R5QL57JJ.js";import"./embed-page-chunk-QOWM3LMZ.js";import"./embed-page-chunk-EUOOO2LS.js";import"./embed-page-chunk-5JDQ456X.js";import{b as f}from"./embed-page-chunk-HYPA2PHA.js";import{c as z,f as l}from"./embed-page-chunk-QBTAJ2YI.js";var x=z(m=>{"use strict";var y=b();m.createRoot=y.createRoot,m.hydrateRoot=y.hydrateRoot;var te});var T=l(x()),M=l(b());var w="axiom-web-app-embed";var _=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function R(e,t){return{source:w,version:1,type:e,payload:t}}var B=6,H=40,Q=500;function q(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e,n=Object.keys(t);return n.length!==2||!n.includes("label")||!n.includes("text")?!1:typeof t.label=="string"&&t.label.length>=1&&t.label.length<=H&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=Q}function G(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=B)break;q(n)&&t.push({label:n.label,text:n.text})}return t}function C(e){if(typeof e!="object"||e===null)return null;let t=e,n={};if(typeof t.welcome=="string"&&t.welcome.length>0&&(n.welcome=t.welcome),Array.isArray(t.quicks)){let a=G(t.quicks);(a.length>0||t.quicks.length===0)&&(n.quicks=a)}return n.welcome===void 0&&n.quicks===void 0?null:n}function A(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==w||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var r=l(E()),S=/^[A-Za-z0-9._:@-]{1,128}$/,v="axiom-embed-root",k="axiom-embed-style",P=32768,j=`
1
+ import{b as h}from"./embed-page-chunk-PFCR6CFL.js";import"./embed-page-chunk-7PNQFZMK.js";import"./embed-page-chunk-O44JEYLD.js";import{a as E}from"./embed-page-chunk-QV7QAJ4N.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-QULNM5O2.js";import{a as b}from"./embed-page-chunk-MHGVD4EV.js";import"./embed-page-chunk-R5QL57JJ.js";import"./embed-page-chunk-QOWM3LMZ.js";import"./embed-page-chunk-EUOOO2LS.js";import"./embed-page-chunk-5JDQ456X.js";import{b as f}from"./embed-page-chunk-HYPA2PHA.js";import{c as z,f as l}from"./embed-page-chunk-QBTAJ2YI.js";var x=z(m=>{"use strict";var y=b();m.createRoot=y.createRoot,m.hydrateRoot=y.hydrateRoot;var te});var T=l(x()),M=l(b());var w="axiom-web-app-embed";var _=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function R(e,t){return{source:w,version:1,type:e,payload:t}}var B=6,H=40,Q=500;function q(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e,n=Object.keys(t);return n.length!==2||!n.includes("label")||!n.includes("text")?!1:typeof t.label=="string"&&t.label.length>=1&&t.label.length<=H&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=Q}function G(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=B)break;q(n)&&t.push({label:n.label,text:n.text})}return t}function C(e){if(typeof e!="object"||e===null)return null;let t=e,n={};if(typeof t.welcome=="string"&&t.welcome.length>0&&(n.welcome=t.welcome),Array.isArray(t.quicks)){let a=G(t.quicks);(a.length>0||t.quicks.length===0)&&(n.quicks=a)}return n.welcome===void 0&&n.quicks===void 0?null:n}function A(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==w||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var r=l(E()),S=/^[A-Za-z0-9._:@-]{1,128}$/,v="axiom-embed-root",k="axiom-embed-style",P=32768,j=`
2
2
  html, body, #${v} { height: 100%; margin: 0; }
3
3
  .axiom-embed-fill { height: 100% !important; min-height: 0 !important; }
4
4
  .axiom-embed-card { display: flex; align-items: center; justify-content: center; height: 100%; margin: 0; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 14px; color: #64748b; padding: 24px; box-sizing: border-box; text-align: center; }
package/dist/index.d.mts CHANGED
@@ -175,6 +175,20 @@ declare class MessageRouter {
175
175
  * thin HTTP shell.
176
176
  */
177
177
 
178
+ /**
179
+ * A model the deployment registered for execution, as the registry holds it.
180
+ *
181
+ * The config travels with the key because the catalog needs it: a bare key is
182
+ * not something to offer a user. `GET /api/models` used to call
183
+ * `lattice.client.getConfig()` for exactly this — the deployment's display
184
+ * name, and the upstream model it names. Handing back keys alone left catalog
185
+ * entries with nothing to render, so the deployment's `default` alias showed up
186
+ * as a row literally labelled `default`.
187
+ */
188
+ interface RegisteredModel {
189
+ modelKey: string;
190
+ config: LLMConfig;
191
+ }
178
192
  /** Narrow persistence and registry dependencies of the service. */
179
193
  interface ModelProviderServiceDeps {
180
194
  providerStore: ModelProviderStore;
@@ -183,7 +197,7 @@ interface ModelProviderServiceDeps {
183
197
  register(tenantId: string, modelKey: string, config: LLMConfig): void;
184
198
  has(tenantId: string, modelKey: string): boolean;
185
199
  remove(tenantId: string, modelKey: string): boolean;
186
- listRegistered(tenantId: string): string[];
200
+ listRegistered(tenantId: string): RegisteredModel[];
187
201
  /**
188
202
  * Drop the registry's cached "this tenant has no default model" answer.
189
203
  *
package/dist/index.d.ts CHANGED
@@ -175,6 +175,20 @@ declare class MessageRouter {
175
175
  * thin HTTP shell.
176
176
  */
177
177
 
178
+ /**
179
+ * A model the deployment registered for execution, as the registry holds it.
180
+ *
181
+ * The config travels with the key because the catalog needs it: a bare key is
182
+ * not something to offer a user. `GET /api/models` used to call
183
+ * `lattice.client.getConfig()` for exactly this — the deployment's display
184
+ * name, and the upstream model it names. Handing back keys alone left catalog
185
+ * entries with nothing to render, so the deployment's `default` alias showed up
186
+ * as a row literally labelled `default`.
187
+ */
188
+ interface RegisteredModel {
189
+ modelKey: string;
190
+ config: LLMConfig;
191
+ }
178
192
  /** Narrow persistence and registry dependencies of the service. */
179
193
  interface ModelProviderServiceDeps {
180
194
  providerStore: ModelProviderStore;
@@ -183,7 +197,7 @@ interface ModelProviderServiceDeps {
183
197
  register(tenantId: string, modelKey: string, config: LLMConfig): void;
184
198
  has(tenantId: string, modelKey: string): boolean;
185
199
  remove(tenantId: string, modelKey: string): boolean;
186
- listRegistered(tenantId: string): string[];
200
+ listRegistered(tenantId: string): RegisteredModel[];
187
201
  /**
188
202
  * Drop the registry's cached "this tenant has no default model" answer.
189
203
  *
package/dist/index.js CHANGED
@@ -2057,7 +2057,7 @@ function extractFailureReason(task) {
2057
2057
  return extractText2(task.status.message.parts);
2058
2058
  }
2059
2059
  function observationEventKey(task, result, failureReason) {
2060
- const digest = (0, import_node_crypto30.createHash)("sha256").update(JSON.stringify({
2060
+ const digest = (0, import_node_crypto31.createHash)("sha256").update(JSON.stringify({
2061
2061
  state: task.status.state,
2062
2062
  timestamp: task.status.timestamp,
2063
2063
  message: task.status.message,
@@ -2067,7 +2067,7 @@ function observationEventKey(task, result, failureReason) {
2067
2067
  return `a2a-status-observation:${task.id}:${digest}`;
2068
2068
  }
2069
2069
  function snapshotEventKey(task) {
2070
- const digest = (0, import_node_crypto30.createHash)("sha256").update(JSON.stringify(task)).digest("hex");
2070
+ const digest = (0, import_node_crypto31.createHash)("sha256").update(JSON.stringify(task)).digest("hex");
2071
2071
  return `a2a-task-snapshot:${task.id}:${digest}`;
2072
2072
  }
2073
2073
  function isGovernedObservation(state) {
@@ -2079,11 +2079,11 @@ function isA2ATaskSnapshot(value) {
2079
2079
  function snapshotSequence(value) {
2080
2080
  return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : void 0;
2081
2081
  }
2082
- var import_node_crypto30, import_node_util, import_core80, TASK_STATUS_TO_A2A_STATE, TITLE_MAX_LENGTH, A2ATaskScopeConflictError, A2ATaskStoreAdapter;
2082
+ var import_node_crypto31, import_node_util, import_core80, TASK_STATUS_TO_A2A_STATE, TITLE_MAX_LENGTH, A2ATaskScopeConflictError, A2ATaskStoreAdapter;
2083
2083
  var init_A2ATaskStoreAdapter = __esm({
2084
2084
  "src/services/a2a/A2ATaskStoreAdapter.ts"() {
2085
2085
  "use strict";
2086
- import_node_crypto30 = require("crypto");
2086
+ import_node_crypto31 = require("crypto");
2087
2087
  import_node_util = require("util");
2088
2088
  import_core80 = require("@axiom-lattice/core");
2089
2089
  TASK_STATUS_TO_A2A_STATE = {
@@ -3540,6 +3540,10 @@ var init_openAuditService = __esm({
3540
3540
  });
3541
3541
 
3542
3542
  // src/services/open/openRateLimiter.ts
3543
+ var openRateLimiter_exports = {};
3544
+ __export(openRateLimiter_exports, {
3545
+ OpenRateLimiter: () => OpenRateLimiter
3546
+ });
3543
3547
  var OpenRateLimiter;
3544
3548
  var init_openRateLimiter = __esm({
3545
3549
  "src/services/open/openRateLimiter.ts"() {
@@ -3547,8 +3551,8 @@ var init_openRateLimiter = __esm({
3547
3551
  OpenRateLimiter = class {
3548
3552
  constructor(options = {}) {
3549
3553
  this.buckets = /* @__PURE__ */ new Map();
3550
- this.defaultPerMinute = options.defaultPerMinute ?? 60;
3551
- this.agentPerMinute = options.agentPerMinute ?? 10;
3554
+ this.defaultPerMinute = options.defaultPerMinute ?? 6e4;
3555
+ this.agentPerMinute = options.agentPerMinute ?? 2e3;
3552
3556
  }
3553
3557
  bucketClass(domain) {
3554
3558
  return domain === "agent" ? "agent" : "default";
@@ -21846,11 +21850,16 @@ var ModelProviderService = class {
21846
21850
  )
21847
21851
  }));
21848
21852
  if (models.length === 0) {
21849
- for (const modelKey2 of this.deps.registry.listRegistered(
21853
+ for (const { modelKey: modelKey2, config } of this.deps.registry.listRegistered(
21850
21854
  PHASE1_REGISTRY_TENANT
21851
21855
  )) {
21852
21856
  models.push({
21853
21857
  modelKey: modelKey2,
21858
+ // Carry the registered config's name, the way `GET /api/models` did.
21859
+ // Without it these rows have nothing to render but the registry key —
21860
+ // which is how the deployment's `default` alias came to be offered as
21861
+ // a model literally called "default".
21862
+ displayName: config.displayName || config.model || modelKey2,
21854
21863
  providerId: "",
21855
21864
  providerName: "registered",
21856
21865
  source: "registered",
@@ -21914,7 +21923,7 @@ var ModelProviderService = class {
21914
21923
  const provider = await this.deps.providerStore.getProviderById(tenantId, providerId2);
21915
21924
  if (!provider) {
21916
21925
  const prefix = `${providerId2}/`;
21917
- for (const modelKey2 of this.deps.registry.listRegistered(tenantId)) {
21926
+ for (const { modelKey: modelKey2 } of this.deps.registry.listRegistered(tenantId)) {
21918
21927
  if (modelKey2.startsWith(prefix)) {
21919
21928
  this.deps.registry.remove(tenantId, modelKey2);
21920
21929
  }
@@ -21923,7 +21932,7 @@ var ModelProviderService = class {
21923
21932
  }
21924
21933
  const models = await this.deps.providerStore.listModels(tenantId, providerId2);
21925
21934
  const current = new Set(models.map((model) => (0, import_protocols16.toModelKey)(providerId2, model.modelId)));
21926
- for (const modelKey2 of this.deps.registry.listRegistered(tenantId)) {
21935
+ for (const { modelKey: modelKey2 } of this.deps.registry.listRegistered(tenantId)) {
21927
21936
  if (modelKey2.startsWith(`${providerId2}/`) && !current.has(modelKey2)) {
21928
21937
  this.deps.registry.remove(tenantId, modelKey2);
21929
21938
  }
@@ -28909,7 +28918,15 @@ var registerLatticeRoutes = (app2, channelDeps, options = {}) => {
28909
28918
  register: (tenantId, modelKey2, config) => import_core57.modelLatticeManager.registerLatticeWithTenant(tenantId, modelKey2, config),
28910
28919
  has: (tenantId, modelKey2) => import_core57.modelLatticeManager.hasLatticeWithTenant(tenantId, modelKey2),
28911
28920
  remove: (tenantId, modelKey2) => import_core57.modelLatticeManager.removeLatticeWithTenant(tenantId, modelKey2),
28912
- listRegistered: (tenantId) => import_core57.modelLatticeManager.getLatticeKeysByTenant(tenantId),
28921
+ listRegistered: (tenantId) => (
28922
+ // The config comes along so the catalog can name these rows: a bare
28923
+ // registry key is not something to offer a user. Same call the legacy
28924
+ // `GET /api/models` made.
28925
+ import_core57.modelLatticeManager.getAllLatticesByTenant(tenantId).map((lattice) => ({
28926
+ modelKey: lattice.key,
28927
+ config: lattice.client.getConfig()
28928
+ }))
28929
+ ),
28913
28930
  forgetTenantDefaultMiss: (tenantId) => import_core57.modelLatticeManager.forgetTenantDefaultMiss(tenantId)
28914
28931
  },
28915
28932
  onChanged: (tenantId, providerId2) => broadcastModelProviderChanged(tenantId, providerId2)
@@ -30987,6 +31004,7 @@ function createAuditLoggerMiddleware() {
30987
31004
  var import_core97 = require("@axiom-lattice/core");
30988
31005
 
30989
31006
  // src/channels/wecom/WecomChannelAdapter.ts
31007
+ var import_node_crypto27 = require("crypto");
30990
31008
  var import_zod17 = require("zod");
30991
31009
  var WecomAiBot = __toESM(require("@wecom/aibot-node-sdk"));
30992
31010
 
@@ -31064,8 +31082,12 @@ var wecomChannelAdapter = {
31064
31082
  return;
31065
31083
  }
31066
31084
  connection.client.reply(replyTarget.rawTarget.frame, {
31067
- msgtype: "text",
31068
- text: { content: message.text }
31085
+ msgtype: "stream",
31086
+ stream: {
31087
+ id: (0, import_node_crypto27.randomUUID)(),
31088
+ finish: true,
31089
+ content: message.text
31090
+ }
31069
31091
  });
31070
31092
  },
31071
31093
  resolveThreadId(message, binding) {
@@ -31235,7 +31257,7 @@ var configureSwagger = async (app2, customSwaggerConfig, customSwaggerUiConfig)
31235
31257
  };
31236
31258
 
31237
31259
  // src/services/agent_task_consumer.ts
31238
- var import_node_crypto27 = require("crypto");
31260
+ var import_node_crypto28 = require("crypto");
31239
31261
  var import_core70 = require("@axiom-lattice/core");
31240
31262
  var import_protocols32 = require("@axiom-lattice/protocols");
31241
31263
  var handleAgentTask = async (taskRequest, retryCount = 0) => {
@@ -31259,7 +31281,7 @@ var handleAgentTask = async (taskRequest, retryCount = 0) => {
31259
31281
  const agent = import_core70.agentInstanceManager.getAgent({ assistant_id, thread_id, tenant_id, workspace_id: scope.workspaceId, project_id: scope.projectId, custom_run_config: runConfig });
31260
31282
  if (callback_event) {
31261
31283
  const callbackEvent = callback_event;
31262
- const messageId = typeof input?.id === "string" && input.id !== "" ? input.id : (0, import_node_crypto27.randomUUID)();
31284
+ const messageId = typeof input?.id === "string" && input.id !== "" ? input.id : (0, import_node_crypto28.randomUUID)();
31263
31285
  let settled = false;
31264
31286
  const subscriptions = [];
31265
31287
  const dispose = () => {
@@ -32249,11 +32271,11 @@ async function prepareProjectTaskRuntime(runtime, log2) {
32249
32271
  var import_core74 = require("@axiom-lattice/core");
32250
32272
 
32251
32273
  // src/services/plugins/PluginDeploymentService.ts
32252
- var import_node_crypto29 = require("crypto");
32274
+ var import_node_crypto30 = require("crypto");
32253
32275
  var import_core73 = require("@axiom-lattice/core");
32254
32276
 
32255
32277
  // src/services/plugins/pluginDeploymentNaming.ts
32256
- var import_node_crypto28 = require("crypto");
32278
+ var import_node_crypto29 = require("crypto");
32257
32279
  var PLUGIN_GUEST_PORT = 8080;
32258
32280
  var SANDBOX_NAME_HASH_LENGTH = 16;
32259
32281
  function pluginSandboxName(tenantId, pluginType) {
@@ -32263,7 +32285,7 @@ function pluginSandboxName(tenantId, pluginType) {
32263
32285
  if (!pluginType || typeof pluginType !== "string") {
32264
32286
  throw new Error("pluginSandboxName: pluginType must be a non-empty string");
32265
32287
  }
32266
- const hash = (0, import_node_crypto28.createHash)("sha256").update(`${tenantId}\0${pluginType}`).digest("hex").slice(0, SANDBOX_NAME_HASH_LENGTH);
32288
+ const hash = (0, import_node_crypto29.createHash)("sha256").update(`${tenantId}\0${pluginType}`).digest("hex").slice(0, SANDBOX_NAME_HASH_LENGTH);
32267
32289
  return `plugin-${hash}`;
32268
32290
  }
32269
32291
 
@@ -32390,7 +32412,7 @@ var PluginDeploymentService = class {
32390
32412
  const failedAt = this.nowIso();
32391
32413
  await this.store.upsert(
32392
32414
  this.buildRecord({
32393
- id: existing?.id ?? (0, import_node_crypto29.randomUUID)(),
32415
+ id: existing?.id ?? (0, import_node_crypto30.randomUUID)(),
32394
32416
  tenantId,
32395
32417
  pluginType,
32396
32418
  pluginVersion: manifest.version,
@@ -32412,7 +32434,7 @@ var PluginDeploymentService = class {
32412
32434
  );
32413
32435
  }
32414
32436
  const record = this.buildRecord({
32415
- id: existing?.id ?? (0, import_node_crypto29.randomUUID)(),
32437
+ id: existing?.id ?? (0, import_node_crypto30.randomUUID)(),
32416
32438
  tenantId,
32417
32439
  pluginType,
32418
32440
  pluginVersion: manifest.version,
@@ -33623,6 +33645,7 @@ var start = async (config) => {
33623
33645
  const { registerOpenAuditRoutes: registerOpenAuditRoutes2 } = await Promise.resolve().then(() => (init_open_audit(), open_audit_exports));
33624
33646
  const { registerOpenExposureRoutes: registerOpenExposureRoutes2 } = await Promise.resolve().then(() => (init_open_exposure(), open_exposure_exports));
33625
33647
  const { openLattice: openLattice2 } = await Promise.resolve().then(() => (init_openLattice(), openLattice_exports));
33648
+ const { OpenRateLimiter: OpenRateLimiter2 } = await Promise.resolve().then(() => (init_openRateLimiter(), openRateLimiter_exports));
33626
33649
  const { createKbProvider: createKbProvider2 } = await Promise.resolve().then(() => (init_kbProvider(), kbProvider_exports));
33627
33650
  const { createOpenSandboxProvider: createOpenSandboxProvider2 } = await Promise.resolve().then(() => (init_sandboxProvider(), sandboxProvider_exports));
33628
33651
  const { createAgentProvider: createAgentProvider2 } = await Promise.resolve().then(() => (init_agentProvider(), agentProvider_exports));
@@ -33642,7 +33665,18 @@ var start = async (config) => {
33642
33665
  })
33643
33666
  );
33644
33667
  await registerExposedPluginTools2();
33645
- registerOpenRoutes2(app);
33668
+ const openRateLimitPerMinute = Number(
33669
+ process.env.OPEN_RATE_LIMIT_PER_MINUTE
33670
+ );
33671
+ const openAgentRateLimitPerMinute = Number(
33672
+ process.env.OPEN_AGENT_RATE_LIMIT_PER_MINUTE
33673
+ );
33674
+ registerOpenRoutes2(app, {
33675
+ rateLimiter: new OpenRateLimiter2({
33676
+ ...Number.isFinite(openRateLimitPerMinute) && openRateLimitPerMinute > 0 ? { defaultPerMinute: openRateLimitPerMinute } : {},
33677
+ ...Number.isFinite(openAgentRateLimitPerMinute) && openAgentRateLimitPerMinute > 0 ? { agentPerMinute: openAgentRateLimitPerMinute } : {}
33678
+ })
33679
+ });
33646
33680
  registerOpenSessionRoutes2(app);
33647
33681
  registerOpenCatalogRoutes2(app);
33648
33682
  registerOpenFilesRoutes2(app);