@axiom-lattice/react-sdk 4.6.1 → 4.6.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.
- package/dist/{AgentDetailSideApp-3IKTT5EP.mjs → AgentDetailSideApp-4LEF6MS5.mjs} +6 -6
- package/dist/{AgentGovernanceWorkbench-SJYGZUBS.mjs → AgentGovernanceWorkbench-2DXFFSY4.mjs} +7 -7
- package/dist/{MessageGraph-2DLQE4CF.mjs → MessageGraph-AOTQBN3S.mjs} +2 -2
- package/dist/{ReactChart-UZRL2DT6.mjs → ReactChart-HPD5TQOE.mjs} +2 -2
- package/dist/{TasksSideApp-LJGEJHCJ.mjs → TasksSideApp-TSMN3OAM.mjs} +3 -3
- package/dist/{TeamWorkspace-MPS5CTI7.mjs → TeamWorkspace-JVO6SBQH.mjs} +2 -2
- package/dist/{TopologyRuntimeView-FCQZPEAF.mjs → TopologyRuntimeView-GHOPKUAU.mjs} +3 -3
- package/dist/{WorkflowAutomationView-COZISURR.mjs → WorkflowAutomationView-OLFR3AZH.mjs} +5 -5
- package/dist/{chunk-T6G7S34S.mjs → chunk-4QPBMVJD.mjs} +2 -2
- package/dist/{chunk-GIMKS3S3.mjs → chunk-D3657YM2.mjs} +2 -2
- package/dist/{chunk-WETKGEA6.mjs → chunk-ERYKIL3X.mjs} +4 -4
- package/dist/{chunk-WWLRMGB4.mjs → chunk-JWVMQZ6G.mjs} +4 -4
- package/dist/{chunk-PXBOJXSD.mjs → chunk-PS5OPS6W.mjs} +5 -5
- package/dist/{chunk-VUZRG7KX.mjs → chunk-Z6XUZLP7.mjs} +74 -61
- package/dist/chunk-Z6XUZLP7.mjs.map +1 -0
- package/dist/{chunk-4L6LWUPC.mjs → chunk-ZGGVWYV4.mjs} +2 -2
- package/dist/{embed-page-AgentDetailSideApp-2C2ZR62Q.js → embed-page-AgentDetailSideApp-NTLAFO5C.js} +1 -1
- package/dist/{embed-page-AgentGovernanceWorkbench-GG4ONSTS.js → embed-page-AgentGovernanceWorkbench-QPVBOMLH.js} +1 -1
- package/dist/{embed-page-MessageGraph-WMYTVUUC.js → embed-page-MessageGraph-JAJGMYKH.js} +1 -1
- package/dist/{embed-page-ReactChart-7XCMDMH6.js → embed-page-ReactChart-WUG6TEAZ.js} +1 -1
- package/dist/{embed-page-SkillFlow-XMMHEHQL.js → embed-page-SkillFlow-TSBZ4V2P.js} +1 -1
- package/dist/{embed-page-TasksSideApp-4ZJ4Q4CL.js → embed-page-TasksSideApp-TJI22YGD.js} +1 -1
- package/dist/{embed-page-TeamWorkspace-H5OOEN3K.js → embed-page-TeamWorkspace-OJJLN5VI.js} +1 -1
- package/dist/{embed-page-TopologyRuntimeView-QMXWERVC.js → embed-page-TopologyRuntimeView-ZFU4N6TV.js} +1 -1
- package/dist/{embed-page-WorkflowAutomationView-L2OEGCA5.js → embed-page-WorkflowAutomationView-ALXV7VQQ.js} +1 -1
- package/dist/{embed-page-chunk-CZE4IEB3.js → embed-page-chunk-DZQBVJ7Z.js} +1 -1
- package/dist/{embed-page-chunk-N2ISCAS7.js → embed-page-chunk-IPIJ2SG6.js} +1 -1
- package/dist/{embed-page-chunk-SUMYB6ZA.js → embed-page-chunk-N22EGQAJ.js} +1 -1
- package/dist/{embed-page-chunk-OHDEKFTU.js → embed-page-chunk-O72XBKQH.js} +2 -2
- package/dist/{embed-page-chunk-XIXSRYJY.js → embed-page-chunk-QMVIL4BJ.js} +190 -185
- package/dist/{embed-page-chunk-2G54EIW2.js → embed-page-chunk-UT3WYBZH.js} +1 -1
- package/dist/embed-page-chunk-YPNSOZYW.js +8 -0
- package/dist/embed-page.js +1 -1
- package/dist/index.js +63 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -7
- package/package.json +3 -3
- package/dist/chunk-VUZRG7KX.mjs.map +0 -1
- package/dist/embed-page-chunk-HEMNMC4X.js +0 -7
- /package/dist/{AgentDetailSideApp-3IKTT5EP.mjs.map → AgentDetailSideApp-4LEF6MS5.mjs.map} +0 -0
- /package/dist/{AgentGovernanceWorkbench-SJYGZUBS.mjs.map → AgentGovernanceWorkbench-2DXFFSY4.mjs.map} +0 -0
- /package/dist/{MessageGraph-2DLQE4CF.mjs.map → MessageGraph-AOTQBN3S.mjs.map} +0 -0
- /package/dist/{ReactChart-UZRL2DT6.mjs.map → ReactChart-HPD5TQOE.mjs.map} +0 -0
- /package/dist/{TasksSideApp-LJGEJHCJ.mjs.map → TasksSideApp-TSMN3OAM.mjs.map} +0 -0
- /package/dist/{TeamWorkspace-MPS5CTI7.mjs.map → TeamWorkspace-JVO6SBQH.mjs.map} +0 -0
- /package/dist/{TopologyRuntimeView-FCQZPEAF.mjs.map → TopologyRuntimeView-GHOPKUAU.mjs.map} +0 -0
- /package/dist/{WorkflowAutomationView-COZISURR.mjs.map → WorkflowAutomationView-OLFR3AZH.mjs.map} +0 -0
- /package/dist/{chunk-T6G7S34S.mjs.map → chunk-4QPBMVJD.mjs.map} +0 -0
- /package/dist/{chunk-GIMKS3S3.mjs.map → chunk-D3657YM2.mjs.map} +0 -0
- /package/dist/{chunk-WETKGEA6.mjs.map → chunk-ERYKIL3X.mjs.map} +0 -0
- /package/dist/{chunk-WWLRMGB4.mjs.map → chunk-JWVMQZ6G.mjs.map} +0 -0
- /package/dist/{chunk-PXBOJXSD.mjs.map → chunk-PS5OPS6W.mjs.map} +0 -0
- /package/dist/{chunk-4L6LWUPC.mjs.map → chunk-ZGGVWYV4.mjs.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`),t))if(await n(m),i=m.type==="stream.completed",i)break;if(i)break}}if(p.done)break}if(!i)throw R()}finally{if(!a)try{await r.cancel()}catch{}r.releaseLock()}}var ge=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,n,t=[]){let r=Object.keys(e);return n.every(o=>o in e)&&r.every(o=>n.includes(o)||t.includes(o))}function d(e){return typeof e=="string"}function M(e){if(!f(e)||!h(e,["id","projectId","createdAt","updatedAt"],["label"])||!d(e.id)||!d(e.projectId)||e.label!==void 0&&!d(e.label)||!d(e.createdAt)||!d(e.updatedAt))return;let n=new Date(e.createdAt),t=new Date(e.updatedAt);if(!(Number.isNaN(n.getTime())||Number.isNaN(t.getTime())))return{id:e.id,projectId:e.projectId,...e.label===void 0?{}:{label:e.label},createdAt:n,updatedAt:t}}function re(e){if(!f(e)||e.success!==!1||!f(e.error))return!1;let n=e.error;return h(e,["success","error"])&&h(n,["code","message","retryable"])&&typeof n.code=="string"&&ge.has(n.code)&&typeof n.message=="string"&&typeof n.retryable=="boolean"}function he(e){if(!f(e))return!1;let n=["projectSelector","modelSelector","threadManagement","attachments","hitl","genUI"];return h(e,n,["files"])&&n.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(n=>f(n)&&h(n,["label","text"])&&d(n.label)&&n.label.length>=1&&n.label.length<=40&&d(n.text)&&n.text.length>=1&&n.text.length<=500)}function be(e){return f(e)&&h(e,[],["title","welcomeMessage","primaryColor","quickPrompts"])&&(e.title===void 0||d(e.title))&&(e.welcomeMessage===void 0||d(e.welcomeMessage))&&(e.primaryColor===void 0||d(e.primaryColor))&&(e.quickPrompts===void 0||ye(e.quickPrompts))}function we(e){if(!f(e)||!h(e,["webApp","projects","models"],["thread"])||!f(e.webApp))return;let n=e.webApp;if(!h(n,["id","name","assistant","defaultProjectId","features","appearance","identityAssurance"],["description","defaultModelKey"])||!d(n.id)||!d(n.name)||!d(n.defaultProjectId)||n.description!==void 0&&!d(n.description)||n.defaultModelKey!==void 0&&!d(n.defaultModelKey)||n.identityAssurance!=="unverified"||!f(n.assistant)||!h(n.assistant,["id","name"],["description"])||!d(n.assistant.id)||!d(n.assistant.name)||n.assistant.description!==void 0&&!d(n.assistant.description)||!he(n.features)||!be(n.appearance)||!Array.isArray(e.projects)||!e.projects.every(r=>f(r)&&h(r,["id","name"])&&d(r.id)&&d(r.name))||!Array.isArray(e.models)||!e.models.every(r=>f(r)&&h(r,["key","label"])&&d(r.key)&&d(r.label)))return;let t=e.thread===void 0?void 0:M(e.thread);if(!(e.thread!==void 0&&!t))return{...e,...t?{thread:t}:{}}}function Ee(e){if(!f(e)||!h(e,["records","total"])||!Array.isArray(e.records)||typeof e.total!="number")return;let n=e.records.map(M);return n.every(t=>t!==void 0)?{records:n,total:e.total}:void 0}function Ce(e){return f(e)&&d(e.id)&&(e.role==="human"||e.role==="ai")&&(e.content===void 0||d(e.content)||Array.isArray(e.content)&&e.content.every(n=>P(n)!==void 0))}function Re(e){return f(e)&&h(e,["messages"])&&Array.isArray(e.messages)&&e.messages.every(Ce)?e:void 0}function Se(e){return f(e)&&h(e,["ref","name","mimeType","size"])&&d(e.ref)&&d(e.name)&&d(e.mimeType)&&typeof e.size=="number"?e:void 0}function oe(e,n){return t=>f(t)&&h(t,e)&&n(t)?t:void 0}var D=class{constructor(n){this.options=n;this.baseUrl=`${n.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(n.webAppId)}/runtime`,this.fetchImplementation=n.fetch??globalThis.fetch.bind(globalThis)}baseUrl;fetchImplementation;async bootstrap(n={},t){return this.request("bootstrap",we,{query:n,signal:t})}async listThreads(n={},t){return this.request("threads",Ee,{query:n,signal:t})}async createThread(n={},t){return this.request("threads",M,{method:"POST",body:n,signal:t})}async updateThread(n,t,r){return this.request(`threads/${encodeURIComponent(n)}`,M,{method:"PATCH",body:t,signal:r})}async deleteThread(n,t={},r){await this.request(`threads/${encodeURIComponent(n)}`,oe(["id"],o=>d(o.id)),{method:"DELETE",query:t,signal:r})}async getMessages(n,t={},r){return this.request(`threads/${encodeURIComponent(n)}/messages`,Re,{query:t,signal:r})}async streamMessage(n,t,r,o){return this.streamRequest(`threads/${encodeURIComponent(n)}/messages/stream`,t,r,o)}async resumeInterrupt(n,t,r,o,s){return this.streamRequest(`threads/${encodeURIComponent(n)}/interrupts/${encodeURIComponent(t)}/resume`,r,o,s)}async streamRequest(n,t,r,o){let s;try{s=await this.fetchRequest(n,{method:"POST",body:t,signal:o})}catch(i){throw se(i)||i instanceof g?i:new g("STREAM_FAILED","Stream failed",!0)}if(s.ok||await this.throwResponseError(s),!s.body||!s.headers.get("content-type")?.toLowerCase().includes("text/event-stream")){if(s.body)try{await s.body.cancel()}catch{}throw new g("STREAM_FAILED","Stream failed",!0,s.status)}await ne(s.body,r)}async abort(n,t={},r){await this.request(`threads/${encodeURIComponent(n)}/abort`,oe(["aborted"],o=>typeof o.aborted=="boolean"),{method:"POST",query:t,signal:r})}async uploadAttachment(n,t,r={},o){let s=new FormData,i=typeof File<"u"&&t instanceof File?t.name:"attachment";return s.append("file",t,i),this.request(`threads/${encodeURIComponent(n)}/attachments`,Se,{method:"POST",query:r,body:s,signal:o})}async request(n,t,r={}){let o;try{o=await this.fetchRequest(n,r)}catch(a){throw se(a)||a instanceof g?a:new g("INTERNAL_ERROR","Request failed",!0)}let s;try{s=await o.json()}catch{throw this.internalError(o.status)}if(re(s))throw new g(s.error.code,s.error.message,s.error.retryable,o.status);if(!o.ok||!f(s)||!h(s,["success","data"])||s.success!==!0)throw this.internalError(o.status);let i=t(s.data);if(i===void 0)throw this.internalError(o.status);return i}async fetchRequest(n,t){let r=await this.options.identityProvider.getIdentity(t.signal),o=new URL(`${this.baseUrl}/${n}`);for(let[a,p]of Object.entries(t.query??{}))p!==void 0&&o.searchParams.set(a,p);let s=new Headers;r.bearerToken!==void 0?s.set("Authorization",`Bearer ${r.bearerToken}`):s.set("X-Axiom-External-User-Id",r.externalUserId??"");let i;return t.body instanceof FormData?i=t.body:t.body!==void 0&&(s.set("Content-Type","application/json"),i=JSON.stringify(t.body)),this.fetchImplementation(o,{method:t.method??"GET",headers:s,body:i,signal:t.signal,credentials:"omit"})}async throwResponseError(n){let t;try{t=await n.json()}catch{throw this.internalError(n.status)}throw re(t)?new g(t.error.code,t.error.message,t.error.retryable,n.status):this.internalError(n.status)}internalError(n){return new g("INTERNAL_ERROR","Invalid server response",!1,n)}};function se(e){return typeof e=="object"&&e!==null&&"name"in e&&e.name==="AbortError"}var _=I(H());var W=I(L());function ie(){let{createThread:e}=x(),{menuCollapsed:n,setMenuCollapsed:t}=Y();(0,_.useEffect)(()=>{n===void 0&&t(!0)},[n,t]);let r=(0,_.useCallback)(async()=>{try{await e("New Thread")}catch(c){console.error("Failed to create new thread:",c)}},[e]),o=n??!0,p=[{id:"new-analysis",builtin:"new-analysis",type:"action",name:"New Thread",icon:(0,W.jsx)(V,{size:20}),order:0},...o?[{id:"thread-history-toggle",type:"action",name:"History",icon:(0,W.jsx)(N,{size:20}),order:1}]:[{id:"thread-history",builtin:"thread-history",type:"drawer",name:"History",icon:(0,W.jsx)(N,{size:20}),order:1,title:"Conversation History",width:320,inline:!0,inlineDefaultExpanded:!0,content:(0,W.jsx)(ee,{})}]];return(0,W.jsx)(Z,{items:p,showBranding:!1,showToggle:!0,showNewAnalysis:!1,defaultExpanded:!o,collapsed:o,onCollapsedChange:t,onNewAnalysis:r,onItemClick:c=>{c.type==="action"&&c.builtin==="new-analysis"?r():c.type==="action"&&c.id==="thread-history-toggle"&&t(!1)}},o?"agent-chat-sidebar-collapsed":"agent-chat-sidebar-expanded")}function ae(e){if(typeof window>"u"||typeof XMLHttpRequest>"u")return()=>{};let n=`${e.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(e.webAppId)}/runtime/`,t=XMLHttpRequest.prototype.open,r=XMLHttpRequest.prototype.send,o=new WeakMap;return XMLHttpRequest.prototype.open=function(i,a){o.set(this,String(a)),t.call(this,i,a,!0)},XMLHttpRequest.prototype.send=function(i){let a=o.get(this)??"";if(!a.startsWith(n)||!/\/sandbox\/uploadfile$/.test(a)){r.call(this,i);return}if(e.identity.mode==="unverified"){this.setRequestHeader("X-Axiom-External-User-Id",e.identity.userId),r.call(this,i);return}e.identity.tokenProvider().then(p=>{this.setRequestHeader("Authorization",`Bearer ${p}`),r.call(this,i)}).catch(()=>{r.call(this,i)})},()=>{XMLHttpRequest.prototype.open=t,XMLHttpRequest.prototype.send=r}}var Ie=/^#[0-9A-Fa-f]{6}$/;function ke(e){return typeof e=="string"&&Ie.test(e)}function de(e){return ke(e)?e:void 0}function U(e,n){let t=parseInt(e.replace("#",""),16),r=Math.round(2.55*n),o=(t>>16)+r,s=(t>>8&255)+r,i=(t&255)+r;return"#"+(16777216+(o<255?o<1?0:o:255)*65536+(s<255?s<1?0:s:255)*256+(i<255?i<1?0:i:255)).toString(16).slice(1)}function pe(e){if(e!==void 0)return{token:{colorPrimary:e,colorPrimaryHover:U(e,20),colorPrimaryActive:U(e,-15),colorPrimaryBg:U(e,45)+"20"}}}var u=I(L());function We(e,n){let t=O(e.welcome),r=O(n.title),o=t??O(n.welcomeMessage),s=e.quickPrompts??n.quickPrompts??[],i=de(n.primaryColor);return{...r!==void 0?{title:r}:{},...o!==void 0?{welcome:o}:{},quickPrompts:s,...i!==void 0?{primaryColor:i}:{}}}function O(e){return typeof e=="string"&&e.length>0?e:void 0}function Te(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 Pe(e){return e instanceof g?e:new g("INTERNAL_ERROR","Request failed",!0)}function Le(e){return e.mode==="unverified"?`unverified:${e.userId}`:"verified:token"}function At(e){Te(e);let n=`${e.gatewayUrl}\0${e.webAppId}\0${Le(e.identity)}`;return(0,u.jsx)(xe,{...e},n)}function xe({gatewayUrl:e,webAppId:n,identity:t,onError:r,onChatReady:o,onChatMessage:s,fetch:i,className:a,welcome:p,quickPrompts:c}){let[A,y]=(0,l.useState)({status:"loading"}),m=(0,l.useRef)(t);m.current=t;let T=(0,l.useRef)(r);T.current=r;let S=(0,l.useRef)();return S.current||(S.current=new D({gatewayUrl:e,webAppId:n,identityProvider:{getIdentity:async()=>{let w=m.current;if(w.mode!=="verified")return{externalUserId:w.userId};try{return{bearerToken:await w.tokenProvider()}}catch{throw new g("USER_ID_REQUIRED","Identity token provider failed",!0)}}},...i?{fetch:i}:{}})),(0,l.useEffect)(()=>ae({gatewayUrl:e,webAppId:n,identity:t}),[e,n,t]),(0,l.useEffect)(()=>{let w=!1,E=S.current;return(async()=>{try{let q=await E.bootstrap({});if(w)return;y({status:"ready",bootstrap:q})}catch(q){if(w)return;let v=Pe(q);y({status:"error",error:v}),T.current?.(v)}})(),()=>{w=!0}},[]),A.status==="loading"?(0,u.jsx)("div",{className:a}):A.status==="error"?(0,u.jsxs)("div",{className:a,role:"alert",children:[(0,u.jsx)("strong",{children:"Unable to load the assistant"}),(0,u.jsx)("div",{children:A.error.code}),(0,u.jsx)("button",{type:"button",onClick:()=>y({status:"loading"}),children:"Retry"})]}):(0,u.jsx)(De,{className:a,gatewayUrl:e,webAppId:n,identity:t,bootstrap:A.bootstrap,onChatReady:o,onChatMessage:s,welcome:p,quickPrompts:c})}function Me(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 De({gatewayUrl:e,webAppId:n,identity:t,bootstrap:r,onChatReady:o,onChatMessage:s,className:i,welcome:a,quickPrompts:p}){let c=(0,l.useMemo)(()=>Me(r.webApp.assistant),[r.webApp.assistant]),A=(0,l.useMemo)(()=>We({welcome:a,quickPrompts:p},r.webApp.appearance),[a,p,r.webApp.appearance]),y=(0,l.useMemo)(()=>pe(A.primaryColor),[A.primaryColor]),m=(0,l.useMemo)(()=>t.mode==="unverified"?{mode:"unverified",userId:t.userId}:{mode:"verified",tokenProvider:t.tokenProvider},[t]),T=(0,l.useCallback)(E=>new $({gatewayUrl:e,webAppId:n,identity:m,assistantId:E.assistantId,transport:E.transport,...E.timeout!==void 0?{timeout:E.timeout}:{},...E.headers!==void 0?{headers:E.headers}:{}}),[e,n,m]),S=(0,l.useMemo)(()=>({baseURL:`${e.replace(/\/$/,"")}/api/web-apps/${n}/runtime`,apiKey:"",transport:"sse",assistantId:c.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}),[c.id,e,n]),w=(0,l.useMemo)(()=>({assistants:[c],currentAssistant:c,isLoading:!1,error:null,listAssistants:async()=>{},getAssistant:async()=>c,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()=>{}}),[c]);return(0,u.jsx)(j,{theme:y,children:(0,u.jsx)(z,{config:{baseURL:S.baseURL,apiKey:"",assistantId:"__BASE__",transport:"sse"},createClient:T,children:(0,u.jsx)(K,{initialConfig:S,persistToLocalStorage:!1,children:(0,u.jsx)(G.Provider,{value:w,children:(0,u.jsx)(J,{children:(0,u.jsx)(_e,{className:i,onChatReady:o,onChatMessage:s,title:A.title,welcome:A.welcome,quickPrompts:A.quickPrompts})})})})})})}function _e({className:e,onChatReady:n,onChatMessage:t,title:r,welcome:o,quickPrompts:s=[]}){let{threadId:i}=x(),{currentAssistant:a}=Q();if(!a)return null;let p=i??"";if(!p)return(0,u.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,u.jsx)(B,{tip:"Creating conversation..."})});let c=r??o,A=r!==void 0&&o!==void 0?o:"";return(0,u.jsx)("div",{className:e,children:(0,u.jsx)(te,{thread_id:p,assistant_id:a.id,name:a.name,description:a.description,menu:(0,u.jsx)(ie,{}),showProjectSelector:!1,showSkillSlot:!1,showDatabaseSlot:!1,showAgentSlot:!1,showMetricsDataSourceSlot:!1,headerRight:null,emptyStateGreeting:c?(0,u.jsx)("span",{children:c}):void 0,emptyStateQuestion:A,senderPromptsItems:s.length>0?s.map((y,m)=>({key:`quick-${m}`,label:y.label,description:y.text})):void 0,showSkillPrompts:!1,showQuickAnalysis:!1,onChatReady:n,onChatMessage:t})})}export{Ie as a,At as b};
|
|
1
|
+
import{M as N,a as G,b as Q,qb as ee,r as V,rb as te,ta as J,ua as x,wa as Y,ya as Z}from"./embed-page-chunk-QMVIL4BJ.js";import{a as C,d as P,e as $,f as F,m as X,s as z,w as K}from"./embed-page-chunk-YPNSOZYW.js";import{a as L}from"./embed-page-chunk-MB65DZAX.js";import{M as j,va as B}from"./embed-page-chunk-O4QK5LWZ.js";import{a as H}from"./embed-page-chunk-4BKXE5ON.js";import{e as I}from"./embed-page-chunk-6Y3UYJ6Z.js";var l=I(H());var g=class extends Error{code;retryable;status;constructor(n,t,r,o){super(t),this.name="AgentWebAppRuntimeClientError",this.code=n,this.retryable=r,this.status=o}};function R(){return new g("STREAM_FAILED","Stream failed",!0)}var ce=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 k(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function b(e,n){return Object.keys(e).length===n.length&&n.every(r=>r in e)}function ue(e){return k(e)&&b(e,["code","message","retryable"])&&typeof e.code=="string"&&ce.has(e.code)&&typeof e.message=="string"&&typeof e.retryable=="boolean"}function le(e){if(!k(e))return!1;let n=e.data===void 0?["id","type","prompt"]:["id","type","prompt","data"];return b(e,n)&&typeof e.id=="string"&&typeof e.type=="string"&&typeof e.prompt=="string"&&(e.data===void 0||k(e.data))}var fe=new Set([C.HUMAN,C.AI,C.TOOL,C.INTERRUPT,C.MESSAGE_COMPLETED,C.MESSAGE_FAILED,C.THREAD_IDLE]);function Ae(e,n){let t;try{t=JSON.parse(e)}catch{throw R()}if(!k(t)||typeof t.type!="string")throw R();if(fe.has(t.type)||t.type==="error"&&k(t.data)&&!k(t.error)){let r=F(t,n);return r.length===0?[]:r}switch(t.type){case"message.delta":if(b(t,["type","text"])&&typeof t.text=="string")return[t];break;case"message.completed":if(b(t,["type","messageId"])&&typeof t.messageId=="string")return[t];break;case"tool.started":if(b(t,["type","id","name"])&&typeof t.id=="string"&&typeof t.name=="string")return[t];break;case"tool.completed":if(b(t,["type","id"])&&typeof t.id=="string")return[t];break;case"interrupt.created":if(b(t,["type","interrupt"])&&le(t.interrupt))return[t];break;case"genui.render":if(b(t,["type","block"])&&P(t.block))return[t];break;case"error":if(b(t,["type","error"])&&ue(t.error))return[t];break;case"stream.completed":if(b(t,["type"]))return[t];break}throw R()}function me(e){return e instanceof Error&&e.name==="AbortError"}async function ne(e,n){let t=$({allowGenUI:!0,allowInterrupts:!0}),r=e.getReader(),o=new TextDecoder,s="",i=!1,a=!1;try{for(;!i;){let p;try{p=await r.read()}catch(A){if(me(A))return;throw R()}p.done&&(a=!0);try{s+=o.decode(p.value,{stream:!p.done})}catch{throw R()}let c=s.split(/\r?\n\r?\n/);s=p.done?"":c.pop()??"";for(let A of c){let y=A.split(/\r?\n/).filter(m=>m==="data"||m.startsWith("data:")).map(m=>m==="data"?"":m.slice(5).replace(/^ /,""));if(y.length!==0){for(let m of Ae(y.join(`
|
|
2
|
+
`),t))if(await n(m),i=m.type==="stream.completed",i)break;if(i)break}}if(p.done)break}if(!i)throw R()}finally{if(!a)try{await r.cancel()}catch{}r.releaseLock()}}var ge=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,n,t=[]){let r=Object.keys(e);return n.every(o=>o in e)&&r.every(o=>n.includes(o)||t.includes(o))}function d(e){return typeof e=="string"}function M(e){if(!f(e)||!h(e,["id","projectId","createdAt","updatedAt"],["label"])||!d(e.id)||!d(e.projectId)||e.label!==void 0&&!d(e.label)||!d(e.createdAt)||!d(e.updatedAt))return;let n=new Date(e.createdAt),t=new Date(e.updatedAt);if(!(Number.isNaN(n.getTime())||Number.isNaN(t.getTime())))return{id:e.id,projectId:e.projectId,...e.label===void 0?{}:{label:e.label},createdAt:n,updatedAt:t}}function re(e){if(!f(e)||e.success!==!1||!f(e.error))return!1;let n=e.error;return h(e,["success","error"])&&h(n,["code","message","retryable"])&&typeof n.code=="string"&&ge.has(n.code)&&typeof n.message=="string"&&typeof n.retryable=="boolean"}function he(e){if(!f(e))return!1;let n=["projectSelector","modelSelector","threadManagement","attachments","hitl","genUI"];return h(e,n,["files"])&&n.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(n=>f(n)&&h(n,["label","text"])&&d(n.label)&&n.label.length>=1&&n.label.length<=40&&d(n.text)&&n.text.length>=1&&n.text.length<=500)}function be(e){return f(e)&&h(e,[],["title","welcomeMessage","primaryColor","quickPrompts"])&&(e.title===void 0||d(e.title))&&(e.welcomeMessage===void 0||d(e.welcomeMessage))&&(e.primaryColor===void 0||d(e.primaryColor))&&(e.quickPrompts===void 0||ye(e.quickPrompts))}function we(e){if(!f(e)||!h(e,["webApp","projects","models"],["thread"])||!f(e.webApp))return;let n=e.webApp;if(!h(n,["id","name","assistant","defaultProjectId","features","appearance","identityAssurance"],["description","defaultModelKey"])||!d(n.id)||!d(n.name)||!d(n.defaultProjectId)||n.description!==void 0&&!d(n.description)||n.defaultModelKey!==void 0&&!d(n.defaultModelKey)||n.identityAssurance!=="unverified"||!f(n.assistant)||!h(n.assistant,["id","name"],["description"])||!d(n.assistant.id)||!d(n.assistant.name)||n.assistant.description!==void 0&&!d(n.assistant.description)||!he(n.features)||!be(n.appearance)||!Array.isArray(e.projects)||!e.projects.every(r=>f(r)&&h(r,["id","name"])&&d(r.id)&&d(r.name))||!Array.isArray(e.models)||!e.models.every(r=>f(r)&&h(r,["key","label"])&&d(r.key)&&d(r.label)))return;let t=e.thread===void 0?void 0:M(e.thread);if(!(e.thread!==void 0&&!t))return{...e,...t?{thread:t}:{}}}function Ee(e){if(!f(e)||!h(e,["records","total"])||!Array.isArray(e.records)||typeof e.total!="number")return;let n=e.records.map(M);return n.every(t=>t!==void 0)?{records:n,total:e.total}:void 0}function Ce(e){return f(e)&&d(e.id)&&(e.role==="human"||e.role==="ai")&&(e.content===void 0||d(e.content)||Array.isArray(e.content)&&e.content.every(n=>P(n)!==void 0))}function Re(e){return f(e)&&h(e,["messages"])&&Array.isArray(e.messages)&&e.messages.every(Ce)?e:void 0}function Se(e){return f(e)&&h(e,["ref","name","mimeType","size"])&&d(e.ref)&&d(e.name)&&d(e.mimeType)&&typeof e.size=="number"?e:void 0}function oe(e,n){return t=>f(t)&&h(t,e)&&n(t)?t:void 0}var D=class{constructor(n){this.options=n;this.baseUrl=`${n.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(n.webAppId)}/runtime`,this.fetchImplementation=n.fetch??globalThis.fetch.bind(globalThis)}baseUrl;fetchImplementation;async bootstrap(n={},t){return this.request("bootstrap",we,{query:n,signal:t})}async listThreads(n={},t){return this.request("threads",Ee,{query:n,signal:t})}async createThread(n={},t){return this.request("threads",M,{method:"POST",body:n,signal:t})}async updateThread(n,t,r){return this.request(`threads/${encodeURIComponent(n)}`,M,{method:"PATCH",body:t,signal:r})}async deleteThread(n,t={},r){await this.request(`threads/${encodeURIComponent(n)}`,oe(["id"],o=>d(o.id)),{method:"DELETE",query:t,signal:r})}async getMessages(n,t={},r){return this.request(`threads/${encodeURIComponent(n)}/messages`,Re,{query:t,signal:r})}async streamMessage(n,t,r,o){return this.streamRequest(`threads/${encodeURIComponent(n)}/messages/stream`,t,r,o)}async resumeInterrupt(n,t,r,o,s){return this.streamRequest(`threads/${encodeURIComponent(n)}/interrupts/${encodeURIComponent(t)}/resume`,r,o,s)}async streamRequest(n,t,r,o){let s;try{s=await this.fetchRequest(n,{method:"POST",body:t,signal:o})}catch(i){throw se(i)||i instanceof g?i:new g("STREAM_FAILED","Stream failed",!0)}if(s.ok||await this.throwResponseError(s),!s.body||!s.headers.get("content-type")?.toLowerCase().includes("text/event-stream")){if(s.body)try{await s.body.cancel()}catch{}throw new g("STREAM_FAILED","Stream failed",!0,s.status)}await ne(s.body,r)}async abort(n,t={},r){await this.request(`threads/${encodeURIComponent(n)}/abort`,oe(["aborted"],o=>typeof o.aborted=="boolean"),{method:"POST",query:t,signal:r})}async uploadAttachment(n,t,r={},o){let s=new FormData,i=typeof File<"u"&&t instanceof File?t.name:"attachment";return s.append("file",t,i),this.request(`threads/${encodeURIComponent(n)}/attachments`,Se,{method:"POST",query:r,body:s,signal:o})}async request(n,t,r={}){let o;try{o=await this.fetchRequest(n,r)}catch(a){throw se(a)||a instanceof g?a:new g("INTERNAL_ERROR","Request failed",!0)}let s;try{s=await o.json()}catch{throw this.internalError(o.status)}if(re(s))throw new g(s.error.code,s.error.message,s.error.retryable,o.status);if(!o.ok||!f(s)||!h(s,["success","data"])||s.success!==!0)throw this.internalError(o.status);let i=t(s.data);if(i===void 0)throw this.internalError(o.status);return i}async fetchRequest(n,t){let r=await this.options.identityProvider.getIdentity(t.signal),o=new URL(`${this.baseUrl}/${n}`);for(let[a,p]of Object.entries(t.query??{}))p!==void 0&&o.searchParams.set(a,p);let s=new Headers;r.bearerToken!==void 0?s.set("Authorization",`Bearer ${r.bearerToken}`):s.set("X-Axiom-External-User-Id",r.externalUserId??"");let i;return t.body instanceof FormData?i=t.body:t.body!==void 0&&(s.set("Content-Type","application/json"),i=JSON.stringify(t.body)),this.fetchImplementation(o,{method:t.method??"GET",headers:s,body:i,signal:t.signal,credentials:"omit"})}async throwResponseError(n){let t;try{t=await n.json()}catch{throw this.internalError(n.status)}throw re(t)?new g(t.error.code,t.error.message,t.error.retryable,n.status):this.internalError(n.status)}internalError(n){return new g("INTERNAL_ERROR","Invalid server response",!1,n)}};function se(e){return typeof e=="object"&&e!==null&&"name"in e&&e.name==="AbortError"}var _=I(H());var W=I(L());function ie(){let{createThread:e}=x(),{menuCollapsed:n,setMenuCollapsed:t}=Y();(0,_.useEffect)(()=>{n===void 0&&t(!0)},[n,t]);let r=(0,_.useCallback)(async()=>{try{await e("New Thread")}catch(c){console.error("Failed to create new thread:",c)}},[e]),o=n??!0,p=[{id:"new-analysis",builtin:"new-analysis",type:"action",name:"New Thread",icon:(0,W.jsx)(V,{size:20}),order:0},...o?[{id:"thread-history-toggle",type:"action",name:"History",icon:(0,W.jsx)(N,{size:20}),order:1}]:[{id:"thread-history",builtin:"thread-history",type:"drawer",name:"History",icon:(0,W.jsx)(N,{size:20}),order:1,title:"Conversation History",width:320,inline:!0,inlineDefaultExpanded:!0,content:(0,W.jsx)(ee,{})}]];return(0,W.jsx)(Z,{items:p,showBranding:!1,showToggle:!0,showNewAnalysis:!1,defaultExpanded:!o,collapsed:o,onCollapsedChange:t,onNewAnalysis:r,onItemClick:c=>{c.type==="action"&&c.builtin==="new-analysis"?r():c.type==="action"&&c.id==="thread-history-toggle"&&t(!1)}},o?"agent-chat-sidebar-collapsed":"agent-chat-sidebar-expanded")}function ae(e){if(typeof window>"u"||typeof XMLHttpRequest>"u")return()=>{};let n=`${e.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(e.webAppId)}/runtime/`,t=XMLHttpRequest.prototype.open,r=XMLHttpRequest.prototype.send,o=new WeakMap;return XMLHttpRequest.prototype.open=function(i,a){o.set(this,String(a)),t.call(this,i,a,!0)},XMLHttpRequest.prototype.send=function(i){let a=o.get(this)??"";if(!a.startsWith(n)||!/\/sandbox\/uploadfile$/.test(a)){r.call(this,i);return}if(e.identity.mode==="unverified"){this.setRequestHeader("X-Axiom-External-User-Id",e.identity.userId),r.call(this,i);return}e.identity.tokenProvider().then(p=>{this.setRequestHeader("Authorization",`Bearer ${p}`),r.call(this,i)}).catch(()=>{r.call(this,i)})},()=>{XMLHttpRequest.prototype.open=t,XMLHttpRequest.prototype.send=r}}var Ie=/^#[0-9A-Fa-f]{6}$/;function ke(e){return typeof e=="string"&&Ie.test(e)}function de(e){return ke(e)?e:void 0}function U(e,n){let t=parseInt(e.replace("#",""),16),r=Math.round(2.55*n),o=(t>>16)+r,s=(t>>8&255)+r,i=(t&255)+r;return"#"+(16777216+(o<255?o<1?0:o:255)*65536+(s<255?s<1?0:s:255)*256+(i<255?i<1?0:i:255)).toString(16).slice(1)}function pe(e){if(e!==void 0)return{token:{colorPrimary:e,colorPrimaryHover:U(e,20),colorPrimaryActive:U(e,-15),colorPrimaryBg:U(e,45)+"20"}}}var u=I(L());function We(e,n){let t=O(e.welcome),r=O(n.title),o=t??O(n.welcomeMessage),s=e.quickPrompts??n.quickPrompts??[],i=de(n.primaryColor);return{...r!==void 0?{title:r}:{},...o!==void 0?{welcome:o}:{},quickPrompts:s,...i!==void 0?{primaryColor:i}:{}}}function O(e){return typeof e=="string"&&e.length>0?e:void 0}function Te(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 Pe(e){return e instanceof g?e:new g("INTERNAL_ERROR","Request failed",!0)}function Le(e){return e.mode==="unverified"?`unverified:${e.userId}`:"verified:token"}function At(e){Te(e);let n=`${e.gatewayUrl}\0${e.webAppId}\0${Le(e.identity)}`;return(0,u.jsx)(xe,{...e},n)}function xe({gatewayUrl:e,webAppId:n,identity:t,onError:r,onChatReady:o,onChatMessage:s,fetch:i,className:a,welcome:p,quickPrompts:c}){let[A,y]=(0,l.useState)({status:"loading"}),m=(0,l.useRef)(t);m.current=t;let T=(0,l.useRef)(r);T.current=r;let S=(0,l.useRef)();return S.current||(S.current=new D({gatewayUrl:e,webAppId:n,identityProvider:{getIdentity:async()=>{let w=m.current;if(w.mode!=="verified")return{externalUserId:w.userId};try{return{bearerToken:await w.tokenProvider()}}catch{throw new g("USER_ID_REQUIRED","Identity token provider failed",!0)}}},...i?{fetch:i}:{}})),(0,l.useEffect)(()=>ae({gatewayUrl:e,webAppId:n,identity:t}),[e,n,t]),(0,l.useEffect)(()=>{let w=!1,E=S.current;return(async()=>{try{let q=await E.bootstrap({});if(w)return;y({status:"ready",bootstrap:q})}catch(q){if(w)return;let v=Pe(q);y({status:"error",error:v}),T.current?.(v)}})(),()=>{w=!0}},[]),A.status==="loading"?(0,u.jsx)("div",{className:a}):A.status==="error"?(0,u.jsxs)("div",{className:a,role:"alert",children:[(0,u.jsx)("strong",{children:"Unable to load the assistant"}),(0,u.jsx)("div",{children:A.error.code}),(0,u.jsx)("button",{type:"button",onClick:()=>y({status:"loading"}),children:"Retry"})]}):(0,u.jsx)(De,{className:a,gatewayUrl:e,webAppId:n,identity:t,bootstrap:A.bootstrap,onChatReady:o,onChatMessage:s,welcome:p,quickPrompts:c})}function Me(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 De({gatewayUrl:e,webAppId:n,identity:t,bootstrap:r,onChatReady:o,onChatMessage:s,className:i,welcome:a,quickPrompts:p}){let c=(0,l.useMemo)(()=>Me(r.webApp.assistant),[r.webApp.assistant]),A=(0,l.useMemo)(()=>We({welcome:a,quickPrompts:p},r.webApp.appearance),[a,p,r.webApp.appearance]),y=(0,l.useMemo)(()=>pe(A.primaryColor),[A.primaryColor]),m=(0,l.useMemo)(()=>t.mode==="unverified"?{mode:"unverified",userId:t.userId}:{mode:"verified",tokenProvider:t.tokenProvider},[t]),T=(0,l.useCallback)(E=>new X({gatewayUrl:e,webAppId:n,identity:m,assistantId:E.assistantId,transport:E.transport,...E.timeout!==void 0?{timeout:E.timeout}:{},...E.headers!==void 0?{headers:E.headers}:{}}),[e,n,m]),S=(0,l.useMemo)(()=>({baseURL:`${e.replace(/\/$/,"")}/api/web-apps/${n}/runtime`,apiKey:"",transport:"sse",assistantId:c.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}),[c.id,e,n]),w=(0,l.useMemo)(()=>({assistants:[c],currentAssistant:c,isLoading:!1,error:null,listAssistants:async()=>{},getAssistant:async()=>c,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()=>{}}),[c]);return(0,u.jsx)(j,{theme:y,children:(0,u.jsx)(z,{config:{baseURL:S.baseURL,apiKey:"",assistantId:"__BASE__",transport:"sse"},createClient:T,children:(0,u.jsx)(K,{initialConfig:S,persistToLocalStorage:!1,children:(0,u.jsx)(G.Provider,{value:w,children:(0,u.jsx)(J,{children:(0,u.jsx)(_e,{className:i,onChatReady:o,onChatMessage:s,title:A.title,welcome:A.welcome,quickPrompts:A.quickPrompts})})})})})})}function _e({className:e,onChatReady:n,onChatMessage:t,title:r,welcome:o,quickPrompts:s=[]}){let{threadId:i}=x(),{currentAssistant:a}=Q();if(!a)return null;let p=i??"";if(!p)return(0,u.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,u.jsx)(B,{tip:"Creating conversation..."})});let c=r??o,A=r!==void 0&&o!==void 0?o:"";return(0,u.jsx)("div",{className:e,children:(0,u.jsx)(te,{thread_id:p,assistant_id:a.id,name:a.name,description:a.description,menu:(0,u.jsx)(ie,{}),showProjectSelector:!1,showSkillSlot:!1,showDatabaseSlot:!1,showAgentSlot:!1,showMetricsDataSourceSlot:!1,headerRight:null,emptyStateGreeting:c?(0,u.jsx)("span",{children:c}):void 0,emptyStateQuestion:A,senderPromptsItems:s.length>0?s.map((y,m)=>({key:`quick-${m}`,label:y.label,description:y.text})):void 0,showSkillPrompts:!1,showQuickAnalysis:!1,onChatReady:n,onChatMessage:t})})}export{Ie as a,At as b};
|