@objectstack/console 11.9.0 → 11.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.objectui-sha +1 -1
- package/dist/assets/{AdapterProvider-DVX_k0gB.js → AdapterProvider-DVMiVYFP.js} +1 -1
- package/dist/assets/{AiPendingActionsPage-La6Ze-fz.js → AiPendingActionsPage-Bou3pWLX.js} +1 -1
- package/dist/assets/{ApiConsolePage-CBAIJWJ_.js → ApiConsolePage-BcYl4bAX.js} +1 -1
- package/dist/assets/{AppDocsIndex-B04zB99i.js → AppDocsIndex-C_YBwvgj.js} +1 -1
- package/dist/assets/{AppManagementPage-DJchVHa5.js → AppManagementPage-YsvEXLrM.js} +1 -1
- package/dist/assets/{ApprovalsInboxPage-Ddy3SDqP.js → ApprovalsInboxPage-ZUhRdtFJ.js} +1 -1
- package/dist/assets/{AuditLogPage-r6ifzD0U.js → AuditLogPage-CF4t6YyY.js} +1 -1
- package/dist/assets/{ComponentNavView-DbfuUNGc.js → ComponentNavView-B2h1_hKD.js} +1 -1
- package/dist/assets/{ConsoleFloatingChatbot-BAW-WlIf.js → ConsoleFloatingChatbot-B-0CCFP0.js} +1 -1
- package/dist/assets/{DashboardView-Djw0MggX.js → DashboardView-h39c92Wy.js} +1 -1
- package/dist/assets/{DashboardWidgetInspector-BVvGLv7b.js → DashboardWidgetInspector-C09xfdI4.js} +1 -1
- package/dist/assets/{DeveloperHubPage-DlfRVfB3.js → DeveloperHubPage-tKxNPDnb.js} +1 -1
- package/dist/assets/{ExpressionProvider-DGF3MugJ.js → ExpressionProvider-Ccb8aGyF.js} +1 -1
- package/dist/assets/{FlowRunsPage-C4_71jyO.js → FlowRunsPage-DgR4Cvr0.js} +1 -1
- package/dist/assets/{IntegrationsPage-sLCzz4vL.js → IntegrationsPage-DHRFBzYf.js} +1 -1
- package/dist/assets/InterfaceListPage-DNilCW1a.js +1 -0
- package/dist/assets/{ManagedByBadge-CDDSvYHn.js → ManagedByBadge-CBYGpiPD.js} +1 -1
- package/dist/assets/{MarketplaceAccessDenied-D_tpevwJ.js → MarketplaceAccessDenied-yP86owRY.js} +1 -1
- package/dist/assets/{MarketplaceInstalledPage-CkUEaBR9.js → MarketplaceInstalledPage-BT9VRrrF.js} +1 -1
- package/dist/assets/{MarketplacePackagePage-CKZ9QH3r.js → MarketplacePackagePage-DfBf7Y3G.js} +1 -1
- package/dist/assets/{MarketplacePage-BdxwjGoT.js → MarketplacePage-DUrowkIP.js} +1 -1
- package/dist/assets/{MetadataInspector-Cgk4Y1A7.js → MetadataInspector-Cd9-_Ogw.js} +1 -1
- package/dist/assets/{MetadataProvider-Cu56xdi9.js → MetadataProvider-A34LFAxj.js} +1 -1
- package/dist/assets/{PageView-C1patuLx.js → PageView-DFYIJhh4.js} +1 -1
- package/dist/assets/{ProfilePage-Bd6u25mD.js → ProfilePage-BWc59SYM.js} +1 -1
- package/dist/assets/{PublicFormsPage-DMSTg6WT.js → PublicFormsPage-Bon7Mqob.js} +1 -1
- package/dist/assets/{RecordDetailView-CXltbudR.js → RecordDetailView-CQfdHDqF.js} +3 -3
- package/dist/assets/{RecordFormPage-C3okBT1R.js → RecordFormPage-BfX89gAL.js} +1 -1
- package/dist/assets/{ReportDefaultInspector-CssrqnGI.js → ReportDefaultInspector-DdZJIfG8.js} +2 -2
- package/dist/assets/{ReportView-DqC6GJsU.js → ReportView-Bp_UWpRC.js} +1 -1
- package/dist/assets/{SearchResultsPage-DoTdiqLP.js → SearchResultsPage-DpUit7MF.js} +1 -1
- package/dist/assets/{SettingsHub-BMclJbZT.js → SettingsHub-Bx2yYwy8.js} +1 -1
- package/dist/assets/{SettingsView-BriYkHIM.js → SettingsView-CwMpw6lM.js} +1 -1
- package/dist/assets/{SystemHubPage-u4cJwRz3.js → SystemHubPage-B46BQlXn.js} +1 -1
- package/dist/assets/data-adapter-CkwHF3aY.js +7 -0
- package/dist/assets/{framework-WZr4krBC.js → framework-CAn_0ZHj.js} +5 -5
- package/dist/assets/{highlighted-body-OFNGDK62-De1Z23h7.js → highlighted-body-OFNGDK62-Cek-BVxH.js} +1 -1
- package/dist/assets/index-Ci5dbUDe.css +2 -0
- package/dist/assets/index-Dw-VsD8-.js +2 -0
- package/dist/assets/mermaid-GHXKKRXX-CntU1OOA.js +1 -0
- package/dist/assets/{metadata-admin-G3YkfiAa.js → metadata-admin-CUGZYzm9.js} +6 -6
- package/dist/assets/plugin-calendar-BYYpyQXW.js +1 -0
- package/dist/assets/plugin-charts-CeCFBrf0.js +7 -0
- package/dist/assets/{plugin-chatbot-DoDgOZ1X.js → plugin-chatbot-Ds6mwpav.js} +4 -4
- package/dist/assets/plugin-dashboard-DjVYQ8s5.js +6 -0
- package/dist/assets/plugin-form-BefVAcDj.js +1 -0
- package/dist/assets/{plugin-gantt-nPjFN--f.js → plugin-gantt-sL0M2g77.js} +2 -2
- package/dist/assets/plugin-grid-xiUREPgU.js +8 -0
- package/dist/assets/plugin-kanban-De5n2Rkv.js +1 -0
- package/dist/assets/plugin-map-BpSLuy6T.js +1 -0
- package/dist/assets/{plugin-markdown-DN5tgnpR.js → plugin-markdown-DnUEVbKI.js} +1 -1
- package/dist/assets/{plugin-report-BzdS88ls.js → plugin-report-CIAIFu54.js} +2 -2
- package/dist/assets/plugin-timeline-CmsJV3D0.js +1 -0
- package/dist/assets/plugin-tree-DS93-F9J.js +1 -0
- package/dist/assets/{plugin-view-B0FdLoWA.js → plugin-view-DDQkdQz8.js} +1 -1
- package/dist/assets/{plugins-views-BKj7GUfw.js → plugins-views-CtiW6Mj2.js} +3 -3
- package/dist/assets/{skeletons-DQtGqEIo.js → skeletons-DE_bYYsB.js} +1 -1
- package/dist/assets/src-CnWu84r5.js +12 -0
- package/dist/assets/{src-Dt23JboC.js → src-wFj3msfP.js} +1 -1
- package/dist/assets/{types-C_3ZSSQo.js → types-CdToCFDG.js} +1 -1
- package/dist/assets/ui-components-BNnJ5f3_.js +42 -0
- package/dist/assets/{ui-layout-B6R0dB1y.js → ui-layout-CFpFE-2o.js} +1 -1
- package/dist/assets/{useOpenRecordList-CiUIxuVn.js → useOpenRecordList-Cjt1zpXo.js} +1 -1
- package/dist/assets/useReconcileOnError-DIcM3hYv.js +1 -0
- package/dist/assets/useRecordApprovals-cQzq7nP6.js +1 -0
- package/dist/index.html +4 -4
- package/package.json +1 -1
- package/dist/assets/InterfaceListPage-CxfEqY2Z.js +0 -1
- package/dist/assets/data-adapter-D0RtPrPs.js +0 -7
- package/dist/assets/index-CN2ZOfrA.css +0 -2
- package/dist/assets/index-DoXSjQ3z.js +0 -2
- package/dist/assets/mermaid-GHXKKRXX-aGLnXuPV.js +0 -1
- package/dist/assets/plugin-calendar-_Py45vU-.js +0 -1
- package/dist/assets/plugin-charts-Bchg0hAC.js +0 -7
- package/dist/assets/plugin-dashboard-CqUaEqJ2.js +0 -6
- package/dist/assets/plugin-form-CUnJuXVB.js +0 -1
- package/dist/assets/plugin-grid-Ber_5UtY.js +0 -8
- package/dist/assets/plugin-kanban-Cng34wUx.js +0 -1
- package/dist/assets/plugin-map-DMseuRbE.js +0 -1
- package/dist/assets/plugin-timeline-CFOn7Ntr.js +0 -1
- package/dist/assets/plugin-tree-DRaXkomQ.js +0 -1
- package/dist/assets/src-hN5UFV3j.js +0 -12
- package/dist/assets/ui-components-BTSIX9CP.js +0 -42
- package/dist/assets/useActionModal-B60Ph5_U.js +0 -1
- package/dist/assets/useReconcileOnError-BUw6x-9Q.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{_ as t,t as n}from"./vendor-react-slxo-5GC.js";import{f as r}from"./infrastructure-BySW-NB0.js";import{H as i,M as a}from"./framework-WZr4krBC.js";import{Cr as o,Dn as s,En as c,Gn as l,Gt as u,Ht as d,Kn as f,On as p,Tn as m,Ut as h,Vt as g,Wt as _,Xn as v,Yn as y,jc as b,qn as x,wn as S}from"./ui-components-BTSIX9CP.js";import{n as C}from"./plugin-form-CUnJuXVB.js";import{t as w}from"./recordFormNavigation-CXt3jCB4.js";var T=e(t(),1),E=n(),D=(0,T.createContext)({favorites:null,recent:null}),O=(0,T.createContext)(null);function k({children:e}){let[t,n]=(0,T.useState)({favorites:null,recent:null}),r=(0,T.useRef)({attach:(e,t)=>{n(n=>n[e]===t?n:{...n,[e]:t})}});return(0,E.jsx)(O.Provider,{value:r.current,children:(0,E.jsx)(D.Provider,{value:t,children:e})})}function A(e){return(0,T.useContext)(D)[e]}function ee(){let e=(0,T.useContext)(O);return(0,T.useCallback)((t,n)=>{e?.attach(t,n)},[e])}function j(e,t){return t?`${e}:u:${t}`:e}function M(e,t){let n=(0,T.useRef)(t);n.current=t,(0,T.useEffect)(()=>{if(typeof window>`u`)return;let t=t=>{if(!(t.key!==e||t.storageArea!==localStorage)){if(t.newValue==null){n.current(null);return}try{n.current(JSON.parse(t.newValue))}catch{n.current(null)}}};return window.addEventListener(`storage`,t),()=>window.removeEventListener(`storage`,t)},[e])}function N(e,t=500){let n=null,r=null,i=!1,a=async()=>{if(n&&=(clearTimeout(n),null),!i)return;let t=r;i=!1,r=null;try{await e(t)}catch{}};return{schedule:e=>{r=e,i=!0,n&&clearTimeout(n),n=setTimeout(()=>{n=null,a()},t)},flush:a,cancel:()=>{n&&clearTimeout(n),n=null,i=!1,r=null}}}var P=`objectui-recent-items`,F=8;function I(e){try{let t=localStorage.getItem(j(P,e));return t?JSON.parse(t):[]}catch{return[]}}function L(e,t){try{localStorage.setItem(j(P,t),JSON.stringify(e))}catch{}}var R=(0,T.createContext)(null);function z({children:e}){let{user:t}=r(),n=t?.id??null,i=A(`recent`),[a,o]=(0,T.useState)(()=>I(n));(0,T.useEffect)(()=>{o(I(n))},[n]),M(j(P,n),e=>{o(Array.isArray(e)?e.filter(e=>e&&typeof e.id==`string`).slice(0,F):[])});let s=(0,T.useRef)(0);(0,T.useEffect)(()=>{if(!i)return;let e=++s.current,t=!1;return(async()=>{try{let r=await i.load();if(t||e!==s.current)return;let a=(Array.isArray(r)?r:[]).filter(e=>e&&typeof e.id==`string`).slice(0,F);o(a),L(a,n)}catch{}})(),()=>{t=!0}},[i,n]);let c=(0,T.useMemo)(()=>N(async e=>{i&&await i.save(e)},500),[i]);(0,T.useEffect)(()=>()=>{c.flush()},[c]);let l=(0,T.useCallback)(e=>{L(e,n),i&&c.schedule(e)},[n,i,c]),u=(0,T.useCallback)(e=>{o(t=>{let n=t.filter(t=>t.id!==e.id),r=[{...e,visitedAt:new Date().toISOString()},...n].slice(0,F);return l(r),r})},[l]),d=(0,T.useCallback)(()=>{o([]),l([])},[l]),f=(0,T.useMemo)(()=>({recentItems:a,addRecentItem:u,clearRecentItems:d}),[a,u,d]);return(0,E.jsx)(R.Provider,{value:f,children:e})}function B(){return(0,T.useContext)(R)||{recentItems:[],addRecentItem:()=>{},clearRecentItems:()=>{}}}var V=`objectui-favorites`,H=`objectui-nav-pins`,U=20,W=20;function G(e){let t=0,n=0,r=!1;for(let i of e)i.type===`nav`?(n++,n>W&&(r=!0)):(t++,t>U&&(r=!0));if(!r)return e;let i=[],a=0,o=0;for(let t of e)t.type===`nav`?o<W&&(i.push(t),o++):a<U&&(i.push(t),a++);return i}function K(e){try{let t=localStorage.getItem(j(V,e));return t?JSON.parse(t):[]}catch{return[]}}function q(e,t){try{localStorage.setItem(j(V,t),JSON.stringify(e))}catch{}}function J(e){let t;try{t=localStorage.getItem(H)}catch{return{migrated:e,didMigrate:!1}}if(!t)return{migrated:e,didMigrate:!1};let n=[];try{let e=JSON.parse(t);Array.isArray(e)&&(n=e.filter(e=>typeof e==`string`))}catch{}try{localStorage.removeItem(H)}catch{}if(n.length===0)return{migrated:e,didMigrate:!1};let r=new Set(e.filter(e=>e.type===`nav`&&e.navId).map(e=>e.navId)),i=new Date().toISOString(),a=[];for(let e of n)r.has(e)||a.push({id:`nav:${e}`,label:e,href:``,type:`nav`,navId:e,pinned:!0,favoritedAt:i});return a.length===0?{migrated:e,didMigrate:!0}:{migrated:[...e,...a],didMigrate:!0}}var Y=(0,T.createContext)(null);function X({children:e}){let{user:t}=r(),n=t?.id??null,i=A(`favorites`),[a,o]=(0,T.useState)(()=>K(n));(0,T.useEffect)(()=>{o(K(n))},[n]),M(j(V,n),e=>{o(Array.isArray(e)?G(e.filter(e=>e&&typeof e.id==`string`)):[])});let s=(0,T.useRef)(0);(0,T.useEffect)(()=>{if(!i)return;let e=++s.current,t=!1;return(async()=>{try{let r=await i.load();if(t||e!==s.current)return;let a=G((Array.isArray(r)?r:[]).filter(e=>e&&typeof e.id==`string`)),l=K(n),u=new Set(a.filter(e=>e.type===`nav`&&e.navId).map(e=>e.navId)),d=l.filter(e=>e.type===`nav`&&e.navId&&!u.has(e.navId)),f=a,p=!1;d.length>0&&(f=G([...a,...d]),p=!0);let{migrated:m,didMigrate:h}=J(f);h&&(f=G(m),p=!0),o(f),q(f,n),p&&c.schedule(f)}catch{}})(),()=>{t=!0}},[i,n]),(0,T.useEffect)(()=>{i||o(e=>{let{migrated:t,didMigrate:r}=J(e);if(!r)return e;let i=G(t);return q(i,n),i})},[i,n]);let c=(0,T.useMemo)(()=>N(async e=>{i&&await i.save(e)},500),[i]);(0,T.useEffect)(()=>()=>{c.flush()},[c]);let l=(0,T.useCallback)(e=>{q(e,n),i&&c.schedule(e)},[n,i,c]),u=(0,T.useCallback)(e=>{o(t=>{if(t.some(t=>t.id===e.id))return t;let n=G([{...e,favoritedAt:new Date().toISOString()},...t]);return l(n),n})},[l]),d=(0,T.useCallback)(e=>{o(t=>{let n=t.filter(t=>t.id!==e);return l(n),n})},[l]),f=(0,T.useCallback)(e=>{o(t=>{let n=t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):G([{...e,favoritedAt:new Date().toISOString()},...t]);return l(n),n})},[l]),p=(0,T.useCallback)(()=>{o([]),l([])},[l]),m=(0,T.useCallback)((e,t)=>{!e||!t||o(n=>{let r=!1,i=n.map(n=>n.id===e&&n.label!==t?(r=!0,{...n,label:t}):n);return r?(l(i),i):n})},[l]),h=(0,T.useCallback)((e,t)=>{o(n=>{let r=!1,i=n.map(n=>n.id!==e||!!n.pinned===t?n:(r=!0,{...n,pinned:t}));return r?(l(i),i):n})},[l]),g=(0,T.useMemo)(()=>{let e=new Set;for(let t of a)t.pinned&&t.type===`nav`&&t.navId&&e.add(t.navId);return{favorites:a,addFavorite:u,removeFavorite:d,toggleFavorite:f,isFavorite:e=>a.some(t=>t.id===e),clearFavorites:p,refreshLabel:m,setPinned:h,isPinned:e=>a.some(t=>t.id===e&&!!t.pinned),pinnedNavIds:e}},[a,u,d,f,p,m,h]);return(0,E.jsx)(Y.Provider,{value:g,children:e})}function Z(){return(0,T.useContext)(Y)||{favorites:[],addFavorite:()=>{},removeFavorite:()=>{},toggleFavorite:()=>{},isFavorite:()=>!1,clearFavorites:()=>{},refreshLabel:()=>{},setPinned:()=>{},isPinned:()=>!1,pinnedNavIds:new Set}}function Q(){return`${``.replace(/\/$/,``)}/api/v1`}async function $(e,t){let n=await fetch(`${Q()}${e}`,{credentials:`include`,headers:{"Content-Type":`application/json`,...t?.headers||{}},...t}),r=null;try{r=await n.json()}catch{}if(!n.ok){let e=Error(r?.error||`HTTP ${n.status}`);throw e.code=r?.code??`HTTP_${n.status}`,e.status=n.status,e}return r}function te(e,t,n){let[r,i]=(0,T.useState)(!1),[a,o]=(0,T.useState)(!0),[s,c]=(0,T.useState)([]),l=(0,T.useRef)(!1),u=(0,T.useCallback)(async()=>{if(!(!e||!t)&&!l.current){i(!0);try{c((await $(`/approvals/requests?object=${encodeURIComponent(e)}&recordId=${encodeURIComponent(t)}`))?.data??[]),o(!0)}catch(e){(e?.status===404||e?.status===501)&&(l.current=!0,o(!1))}finally{i(!1)}}},[e,t]);(0,T.useEffect)(()=>{if(!e||!t){c([]);return}u()},[e,t,u]);let d=(0,T.useMemo)(()=>s.find(e=>e.status===`pending`)??null,[s]),f=(0,T.useMemo)(()=>s.length===0?null:[...s].sort((e,t)=>{let n=e.submitted_at||e.completed_at||``;return(t.submitted_at||t.completed_at||``).localeCompare(n)})[0]??null,[s]),p=!!d&&!!n&&(d.pending_approvers??[]).includes(n),m=(0,T.useCallback)(async(e,t)=>{if(!d)throw Error(`No pending request`);let r=await $(`/approvals/requests/${encodeURIComponent(d.id)}/${e}`,{method:`POST`,body:JSON.stringify({...n?{actorId:n}:{},...t?.comment?{comment:t.comment}:{}})});return await u(),r?.request},[d,n,u]);return{loading:r,available:a,pendingRequest:d,latestRequest:f,canDecide:p,approve:(0,T.useCallback)(e=>m(`approve`,e),[m]),reject:(0,T.useCallback)(e=>m(`reject`,e),[m]),refresh:u}}var ne={sm:`sm:max-w-sm`,default:`sm:max-w-lg`,lg:`sm:max-w-2xl`,xl:`sm:max-w-5xl`,full:`sm:max-w-[95vw] sm:w-full`},re={lg:`sm:max-w-2xl`,xl:`sm:max-w-3xl`,full:`sm:max-w-[95vw]`};function ie(e){if(typeof e==`string`){let t=e.match(/^(create|new|add|edit|update)_(.+)$/);return t?{objectName:t[2],mode:t[1]===`edit`||t[1]===`update`?`edit`:`create`}:{objectName:e,mode:`create`}}return e&&typeof e==`object`?e.type&&!e.content&&!e.objectName&&!e.placement?{content:e}:e:{}}function ae(e){let[t,n]=(0,T.useState)(null),{objects:r}=a(),D=(0,T.useCallback)(e=>{n(t=>(t?.resolve(e),null))},[]),O=(0,T.useCallback)(e=>new Promise(t=>{n({d:ie(e),resolve:t})}),[]),k=null;if(t){let n=t.d,a=e=>{e||D({success:!1})};if(n.objectName&&!n.content){let t=n.fields||n.sections?{}:w(r.find(e=>e?.name===n.objectName));k=(0,E.jsx)(C,{schema:{type:`object-form`,formType:`modal`,objectName:n.objectName,mode:n.mode||`create`,recordId:n.recordId,title:n.title,description:n.description,fields:n.fields,...t,modalSize:n.size,open:!0,onOpenChange:a,onSuccess:e=>D({success:!0,reload:!0,data:e}),onCancel:()=>D({success:!1}),showSubmit:!0,showCancel:!0},dataSource:e})}else{let e=n.placement||`center`,t=n.content?(0,E.jsx)(i,{schema:n.content}):n.description?(0,E.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n.description}):null;k=e===`side`?(0,E.jsx)(g,{open:!0,onOpenChange:a,children:(0,E.jsxs)(d,{side:n.side||`right`,className:b(`w-full overflow-y-auto`,re[n.size||`default`]),children:[n.title&&(0,E.jsxs)(_,{children:[(0,E.jsx)(u,{children:n.title}),n.description&&(0,E.jsx)(h,{children:n.description})]}),(0,E.jsx)(`div`,{className:`py-3`,children:t})]})}):e===`bottom`?(0,E.jsx)(S,{open:!0,onOpenChange:a,children:(0,E.jsxs)(m,{children:[n.title&&(0,E.jsxs)(s,{children:[(0,E.jsx)(p,{children:n.title}),n.description&&(0,E.jsx)(c,{children:n.description})]}),(0,E.jsx)(`div`,{className:`max-h-[75vh] overflow-y-auto px-4 pb-6`,children:t})]})}):(0,E.jsx)(l,{open:!0,onOpenChange:a,children:(0,E.jsxs)(f,{className:b(e===`fullscreen`?`h-[95vh] w-full max-w-[98vw] overflow-y-auto`:ne[n.size||`default`]),children:[n.title&&(0,E.jsxs)(y,{children:[(0,E.jsx)(v,{children:n.title}),n.description&&(0,E.jsx)(x,{children:n.description})]}),(0,E.jsx)(`div`,{children:t}),!n.content&&(0,E.jsx)(`div`,{className:`flex justify-end`,children:(0,E.jsx)(o,{onClick:()=>D({success:!0}),children:`OK`})})]})})}}return{modalHandler:O,modalElement:k,closeModal:D}}export{z as a,ee as c,Z as i,te as n,B as o,X as r,k as s,ae as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{_ as t,f as n,p as r,u as i}from"./vendor-react-slxo-5GC.js";import{M as a,V as o,a as s,j as c}from"./framework-WZr4krBC.js";import{Pt as l}from"./ui-components-BTSIX9CP.js";import{r as u}from"./vendor-ui-utils-C1OpMExs.js";import"./AdapterProvider-DVX_k0gB.js";import{a as d}from"./MetadataProvider-Cu56xdi9.js";import{i as f,o as p}from"./useActionModal-B60Ph5_U.js";import{n as m}from"./ui-layout-B6R0dB1y.js";import{n as h}from"./appRoute-D5vwtoc_.js";var g=e(t(),1);function _({objectName:e,objectLabel:t,dataSource:r,onEdit:a,onRefresh:c,onConfirm:l,onToast:d}){let f=i(),{appName:p}=n(),{t:m}=s(),h=`/apps/${p}`,{execute:_,loading:v,error:y,runner:b}=o({context:{objectName:e,objectLabel:t||e,baseUrl:h},onConfirm:l,onToast:d});return(0,g.useEffect)(()=>{b.registerHandler(`create`,async()=>(a?.(null),{success:!0})),b.registerHandler(`delete`,async n=>{let i=Array.isArray(n.params?.records)?n.params.records.filter(e=>e?.id!=null):null;if(i&&i.length>1){let n=await Promise.allSettled(i.map(t=>r.delete(e,t.id))),a=n.filter(e=>e.status===`rejected`).length,o=n.length-a;return c?.(),a===0?(u.success(m(`objectActions.bulkDeleteSuccess`,{count:o,label:t||e,defaultValue:`Deleted ${o} ${t||e} records`})),{success:!0,reload:!0}):(u.error(m(`objectActions.bulkDeletePartial`,{succeeded:o,failed:a,defaultValue:`${o} deleted, ${a} failed`})),{success:!1,error:`${a} failed`})}let a=n.params?.recordId??n.params?.record?.id??i?.[0]?.id??n.recordId;if(!a)return{success:!1,error:m(`objectActions.noRecordId`)};try{return await r.delete(e,a),c?.(),u.success(m(`objectActions.deleteSuccess`,{label:t||e})),{success:!0,reload:!0}}catch(n){return u.error(m(`objectActions.deleteFailed`,{label:t||e}),{description:n.message}),{success:!1,error:n.message}}}),b.registerHandler(`navigate`,async e=>{let t=e.params?.url||e.url;return t&&f(t.startsWith(`/`)?t:`${h}/${t}`),{success:!0}}),b.registerHandler(`refresh`,async()=>(c?.(),{success:!0,reload:!0}))},[b,e,r,a,c,f,h,m,t]),{execute:_,create:(0,g.useCallback)(()=>{a?.(null)},[a]),deleteRecord:(0,g.useCallback)(async e=>_({type:`delete`,confirmText:m(`objectActions.deleteConfirm`),params:{recordId:e}}),[_,m]),navigateToView:(0,g.useCallback)(t=>{f(`${h}/${e}/view/${t}`)},[f,h,e]),navigateToRecord:(0,g.useCallback)(t=>{f(`${h}/${e}/record/${encodeURIComponent(t)}`)},[f,h,e]),loading:v,error:y}}function v(e){return e==null?[]:Array.isArray(e)?e:[e]}function y(e,t){let{alias:n,value:i=`1`,replace:a=!0}=t??{},[o,s]=r(),c=(0,g.useMemo)(()=>v(n),[n]),l=(0,g.useCallback)(t=>t.get(e)===i||c.some(e=>t.get(e)===i),[e,i,c]),u=l(o),d=(0,g.useCallback)(t=>{if(t===l(o))return;let n=new URLSearchParams(o);if(t){n.set(e,i);for(let e of c)n.delete(e)}else{n.delete(e);for(let e of c)n.delete(e)}s(n,{replace:a})},[l,o,s,e,i,c,a]);return{open:u,setOpen:d,openOverlay:(0,g.useCallback)(()=>d(!0),[d]),closeOverlay:(0,g.useCallback)(()=>d(!1),[d]),toggleOverlay:(0,g.useCallback)(()=>{s(t=>{let n=new URLSearchParams(t);if(l(n)){n.delete(e);for(let e of c)n.delete(e)}else{n.set(e,i);for(let e of c)n.delete(e)}return n},{replace:a})},[s,l,e,i,c,a])}}var b=20;function x(e,t=``){let{href:n,external:r}=m(e,t);return r?n:!n||n===`#`?``:n}function S(e){return`nav:${e}`}function C(){let{favorites:e,addFavorite:t,removeFavorite:n,setPinned:r,pinnedNavIds:i}=f(),a=(0,g.useCallback)((e,i,a,o)=>{let s=S(e);i?(a&&t({id:s,label:a.label,href:x(a,o??``),type:`nav`,navId:e,pinned:!0}),r(s,!0)):n(s)},[t,n,r]),o=(0,g.useCallback)(e=>i.has(e),[i]),s=(0,g.useCallback)(e=>{if(i.size===0){let t=!1;for(let n of e)if(n.pinned){t=!0;break}if(!t)return e}let t=0,n=e=>e.map(e=>{let r=i.has(e.id)&&t<b;r&&t++;let a=e.children?.length?n(e.children):e.children;return r!==(e.pinned??!1)||a!==e.children?{...e,pinned:r,children:a}:e});return n(e)},[i]),c=(0,g.useCallback)(()=>{for(let t of e)t.type===`nav`&&n(t.id)},[e,n]);return{pinnedIds:(0,g.useMemo)(()=>Array.from(i),[i]),togglePin:a,isPinned:o,applyPins:s,clearPins:c}}var w=768,T=1024;function ee(){let{setOpen:e,isMobile:t}=l(),n=(0,g.useRef)(e);(0,g.useEffect)(()=>{n.current=e},[e]),(0,g.useEffect)(()=>{if(t)return;let e=!1;function r(){let t=window.innerWidth,r=t>=w&&t<T;r&&!e&&n.current(!1),e=r}return r(),window.addEventListener(`resize`,r),()=>window.removeEventListener(`resize`,r)},[t])}function te(e,t){return{name:e.name,label:e.label,pluralLabel:e.pluralLabel,description:e.description,icon:e.icon,group:e.group,sortOrder:e.sortOrder,enabled:e.enabled,fields:t,relationships:e.relationships}}function ne(e){return{name:e.name,label:e.label,type:e.type,group:e.group,description:e.description,required:e.required,unique:e.unique,readonly:e.readonly,hidden:e.hidden,defaultValue:e.defaultValue,placeholder:e.placeholder,options:e.options,externalId:e.externalId,trackHistory:e.trackHistory,indexed:e.indexed,referenceTo:e.referenceTo,formula:e.formula,sortOrder:e.sortOrder}}var re=class{adapter;constructor(e){this.adapter=e}async getItems(e){let t=await this.adapter.getClient().meta.getItems(e);return t&&typeof t==`object`&&`items`in t&&Array.isArray(t.items)?t.items:[]}async saveMetadataItem(e,t,n){await this.adapter.getClient().meta.saveItem(e,t,n),this.adapter.invalidateCache(`${e}:${t}`)}async deleteMetadataItem(e,t){await this.adapter.getClient().meta.saveItem(e,t,{name:t,enabled:!1,_deleted:!0}),this.adapter.invalidateCache(`${e}:${t}`)}async saveObject(e,t){let n=this.adapter.getClient(),r=te(e,t);await n.meta.saveItem(`object`,e.name,r),this.adapter.invalidateCache(`object:${e.name}`)}async deleteObject(e){await this.adapter.getClient().meta.saveItem(`object`,e,{name:e,enabled:!1,_deleted:!0}),this.adapter.invalidateCache(`object:${e}`)}async saveFields(e,t){let n=this.adapter.getClient(),r={};try{let t=await n.meta.getItem(`object`,e);r=t?.item??t??{}}catch{}let i={...r,name:e,fields:t.map(ne)};await n.meta.saveItem(`object`,e,i),this.adapter.invalidateCache(`object:${e}`)}static diffObjects(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Map(t.map(e=>[e.id,e]));for(let[e,t]of r)if(!n.has(e))return{type:`create`,object:t};for(let[e,t]of n)if(!r.has(e))return{type:`delete`,object:t};for(let[e,t]of r){let r=n.get(e);if(r&&JSON.stringify(r)!==JSON.stringify(t))return{type:`update`,object:t}}return null}static diffFields(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Map(t.map(e=>[e.id,e]));for(let[e,t]of r)if(!n.has(e))return{type:`create`,field:t};for(let[e,t]of n)if(!r.has(e))return{type:`delete`,field:t};for(let[e,t]of r){let r=n.get(e);if(r&&JSON.stringify(r)!==JSON.stringify(t))return{type:`update`,field:t}}return null}};function ie(){let e=c();return(0,g.useMemo)(()=>e?new re(e):null,[e])}var E=0;function D(e=`nav`){return`${e}_${Date.now()}_${++E}`}function O(e,t){return[...e,t]}function k(e,t,n){return e.filter(e=>!(e.type===t&&(t===`page`&&e.pageName===n||t===`dashboard`&&e.dashboardName===n))).map(e=>e.children&&e.children.length>0?{...e,children:k(e.children,t,n)}:e)}function A(e,t,n,r){return e.map(e=>{let i=e;return t===`page`&&e.type===`page`&&e.pageName===n?i={...e,pageName:r}:t===`dashboard`&&e.type===`dashboard`&&e.dashboardName===n&&(i={...e,dashboardName:r}),i.children&&i.children.length>0?{...i,children:A(i.children,t,n,r)}:i})}function j(e,t){return e.length===t.length?e===t?!0:JSON.stringify(e)===JSON.stringify(t):!1}function ae(e){return typeof e==`string`&&e.startsWith(`sys_`)}function oe(e){if(!e||typeof e!=`object`)return!1;let t=e;return t._packageId!=null||t._provenance===`package`?!0:ae(t.name)}function M(e){if(!e||typeof e!=`object`)return!1;let t=e,n=t._lock??t.protection?.lock;return n!==`full`&&n!==`no-overlay`}function N(){let e=c(),{apps:t,refresh:n}=a(),{t:r}=s(),i=(0,g.useRef)(e);i.current=e;let o=(0,g.useRef)(n);o.current=n;let l=(0,g.useCallback)(async(e,t)=>{let n=i.current?.getClient();n&&await n.meta.saveItem(`app`,e,t),await o.current?.()},[]),d=(0,g.useCallback)(e=>h(t,e),[t]),f=(0,g.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=O(a,{id:D(`nav_page`),type:`page`,label:n||t,pageName:t,icon:`FileText`}),s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.addedPage`,{name:n||t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),p=(0,g.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=O(a,{id:D(`nav_dash`),type:`dashboard`,label:n||t,dashboardName:t,icon:`LayoutDashboard`}),s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.addedDashboard`,{name:n||t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),m=(0,g.useCallback)(async(e,t)=>{let n=d(e);if(!n)return;let i=n.navigation??[],a=k(i,`page`,t);if(j(a,i))return;let o={...n,navigation:a};try{await l(e,o),u.success(r(`navigationSync.removedPage`,{name:t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...n,navigation:i}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),_=(0,g.useCallback)(async(e,t)=>{let n=d(e);if(!n)return;let i=n.navigation??[],a=k(i,`dashboard`,t);if(j(a,i))return;let o={...n,navigation:a};try{await l(e,o),u.success(r(`navigationSync.removedDashboard`,{name:t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...n,navigation:i}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),v=(0,g.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=A(a,`page`,t,n);if(j(o,a))return;let s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.renamedPage`,{oldName:t,newName:n}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),y=(0,g.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=A(a,`dashboard`,t,n);if(j(o,a))return;let s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.renamedDashboard`,{oldName:t,newName:n}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),b=e=>e&&typeof e==`object`&&`name`in e?e.name:void 0;return{syncPageCreated:f,syncDashboardCreated:p,syncPageDeleted:m,syncDashboardDeleted:_,syncPageRenamed:v,syncDashboardRenamed:y,syncPageCreatedAllApps:(0,g.useCallback)(async(e,n)=>{for(let r of t){let t=b(r);!t||!M(r)||await f(t,e,n)}},[t,f]),syncDashboardCreatedAllApps:(0,g.useCallback)(async(e,n)=>{for(let r of t){let t=b(r);!t||!M(r)||await p(t,e,n)}},[t,p]),syncPageDeletedAllApps:(0,g.useCallback)(async e=>{for(let n of t){let t=b(n);!t||!M(n)||await m(t,e)}},[t,m]),syncDashboardDeletedAllApps:(0,g.useCallback)(async e=>{for(let n of t){let t=b(n);!t||!M(n)||await _(t,e)}},[t,_]),syncPageRenamedAllApps:(0,g.useCallback)(async(e,n)=>{for(let r of t){let t=b(r);!t||!M(r)||await v(t,e,n)}},[t,v]),syncDashboardRenamedAllApps:(0,g.useCallback)(async(e,n)=>{for(let r of t){let t=b(r);!t||!M(r)||await y(t,e,n)}},[t,y])}}function P(){let{pages:e,dashboards:t,apps:n,getTypeStatus:r}=a(),i=c(),o=(0,g.useRef)(i);o.current=i;let s=d(),{syncPageCreated:l,syncDashboardCreated:u,syncPageDeleted:f,syncDashboardDeleted:p}=N(),m=(0,g.useRef)(null),h=(0,g.useRef)(null),_=(0,g.useRef)(0),v=(0,g.useRef)(!1),y=e=>e&&typeof e==`object`&&`name`in e?e.name:void 0;return(0,g.useEffect)(()=>{if(v.current)return;if(s){m.current=null,h.current=null;return}if(r&&(r(`page`)!==`ready`||r(`dashboard`)!==`ready`))return;let i=e=>new Set(e.filter(e=>!oe(e)).map(e=>e?.name).filter(e=>typeof e==`string`&&e.length>0)),a=i(e??[]),o=i(t??[]),c=m.current,d=h.current;if(c===null||d===null){m.current=a,h.current=o;return}let g=[...a].filter(e=>!c.has(e)),b=[...c].filter(e=>!a.has(e)),x=[...o].filter(e=>!d.has(e)),S=[...d].filter(e=>!o.has(e));if(g.length===0&&b.length===0&&x.length===0&&S.length===0){m.current=a,h.current=o;return}let C=++_.current;v.current=!0;let w=!1;return(async()=>{try{for(let e of n){if(w||_.current!==C)break;let t=y(e);if(!(!t||!M(e))){for(let e of g){if(w)break;await l(t,e)}for(let e of b){if(w)break;await f(t,e)}for(let e of x){if(w)break;await u(t,e)}for(let e of S){if(w)break;await p(t,e)}}}}finally{_.current===C&&(m.current=a,h.current=o,v.current=!1)}})(),()=>{w=!0}},[e,t,n,s,r,l,u,f,p]),null}var F=new Set([`view`,`record`,`page`,`dashboard`,`design`,`report`]);function I(e){return e.replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function L(e){try{return decodeURIComponent(e)}catch{return e}}function se({pathname:e,appName:t,objects:n=[],basePathSegment:r=`apps`,disabled:i=!1}){let{addRecentItem:a}=p(),o=(0,g.useRef)(n);o.current=n,(0,g.useEffect)(()=>{if(i||!t)return;let n=e.split(`/`).filter(Boolean);if(n[0]!==r||n[1]!==t)return;let s=n[2],c=n[3],l=`/${r}/${t}`;if(s===`metadata`){let e=n[3],t=n[4];e&&t&&t!==`new`&&a({id:`metadata:${e}:${L(t)}`,label:L(t),href:`${l}/metadata/${e}/${t}`,type:`metadata`});return}if(s&&!F.has(s)){let e=o.current.find(e=>e.name===s);e&&a({id:`object:${e.name}`,label:e.label||e.name,href:`${l}/${e.name}`,type:`object`});return}if(c)switch(s){case`dashboard`:a({id:`dashboard:${c}`,label:I(c),href:`${l}/dashboard/${c}`,type:`dashboard`});break;case`page`:a({id:`page:${c}`,label:I(c),href:`${l}/page/${c}`,type:`page`});break;case`report`:a({id:`report:${c}`,label:I(c),href:`${l}/report/${c}`,type:`report`});break;default:break}},[e,t,r,i])}function ce(e){return{status:`drafted`,drafted:e.items,...e.summary?{summary:e.summary}:{},...e.packageId?{packageId:e.packageId}:{},...e.autoPublishable?{autoPublishable:!0}:{},...e.failedCount?{failed:Array.from({length:e.failedCount},()=>null)}:{},...e.materialized?{materialized:!0}:{},...e.verification?{verification:e.verification}:{},...e.issues&&e.issues.length?{issues:e.issues}:{},...e.nextSteps&&e.nextSteps.length?{nextSteps:e.nextSteps}:{}}}function le(e){return{status:`blueprint_proposed`,...e.summary?{summary:e.summary}:{},counts:e.counts,questions:e.questions,...e.targetApp?{targetApp:e.targetApp}:{},blueprint:{objects:e.objects.map(e=>({name:e.name,...e.label?{label:e.label}:{},fields:Array.from({length:e.fieldCount},()=>null)})),assumptions:e.assumptions}}}var R=`objectstack:ai-chat-conversation-id`,z=`objectstack:ai-chat-messages`;function B(e,t){return t?`${R}:${e}:${t}`:`${R}:${e}`}function V(e){try{return localStorage.getItem(e)??void 0}catch{return}}function H(e,t){try{t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}}function U(e){return`${z}:${e}`}function W(e){try{let t=localStorage.getItem(U(e));if(!t)return[];let n=JSON.parse(t);return Array.isArray(n)?n.filter(e=>!!e&&typeof e==`object`&&typeof e.id==`string`&&(e.role===`user`||e.role===`assistant`||e.role===`system`)&&Array.isArray(e.parts)):[]}catch{return[]}}function G(e,t){if(e)try{if(t.length===0){localStorage.removeItem(U(e));return}localStorage.setItem(U(e),JSON.stringify(t))}catch{}}function ue(e){return e.map(e=>{let t=[];if(e.content&&t.push({type:`text`,text:e.content}),e.role===`assistant`)for(let n of e.toolInvocations??[]){let e=n.draftReview?ce(n.draftReview):n.proposedPlan?le(n.proposedPlan):void 0;t.push({type:`tool-${n.toolName}`,toolCallId:n.toolCallId,toolName:n.toolName,state:n.state??(n.errorText?`output-error`:`output-available`),...n.errorText?{errorText:n.errorText}:{},...e===void 0?{}:{output:e}})}if(t.length!==0)return{id:e.id,role:e.role,parts:t}}).filter(e=>!!e)}function K(e){return typeof e==`string`?e?[{type:`text`,text:e}]:[]:Array.isArray(e)?e.map(e=>{if(typeof e==`string`)return e?{type:`text`,text:e}:void 0;if(e&&typeof e==`object`&&`type`in e&&typeof e.type==`string`)return e;if(e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`)return{type:`text`,text:e.text}}).filter(e=>!!e):e&&typeof e==`object`&&`parts`in e&&Array.isArray(e.parts)?K(e.parts):[]}function de(e,t){for(let n of K(e)){let e=typeof n.toolCallId==`string`?n.toolCallId:void 0;if(!e)continue;let r=t.get(e);if(!r)continue;let i=n.output??n.result;if(i===void 0)continue;r.output=i;let a=n.errorText;r.state=n.isError||typeof a==`string`?`output-error`:`output-available`,typeof a==`string`&&(r.errorText=a)}}function q(e){if(!e)return[];let t=[],n=new Map;return e.forEach((e,r)=>{let i=e.role;if(i===`tool`){de(e.content,n);return}if(i!==`user`&&i!==`assistant`&&i!==`system`)return;let a=K(e.content);if(a.length!==0){if(i===`assistant`)for(let e of a){e.type===`tool-call`&&typeof e.toolName==`string`&&e.toolName&&(e.type=`tool-${e.toolName}`);let t=typeof e.toolCallId==`string`?e.toolCallId:void 0;t&&(e.type===`tool-call`||e.type.startsWith(`tool-`))&&n.set(t,e)}t.push({id:e.id??`msg-${r}`,role:i,parts:a})}}),t}function J(e){if(!(typeof e!=`string`||!e))try{let t=JSON.parse(e);return Array.isArray(t)?t:void 0}catch{return}}function fe(e){return e?e.map(e=>{let t=e.id,n=typeof e.content==`string`?e.content:``;if(e.role===`assistant`){let r=J(e.tool_calls);if(r&&r.length>0){let e=[];return n&&e.push({type:`text`,text:n}),e.push(...r),{id:t,role:`assistant`,content:e}}return{id:t,role:`assistant`,content:n}}if(e.role===`tool`){let r=J(e.content);return r&&r.length>0&&r[0]?.type===`tool-result`?{id:t,role:`tool`,content:r}:{id:t,role:`tool`,content:[{type:`tool-result`,toolCallId:e.tool_call_id??``,toolName:`unknown`,output:{type:`text`,value:n}}]}}return{id:t,role:e.role,content:n}}):[]}async function Y(e,t){let n=await fetch(`${e}/conversations/${encodeURIComponent(t)}`,{credentials:`include`});if(n.status===404||n.status===403)return null;if(!n.ok)throw Error(`GET conversation failed: ${n.status}`);return await n.json()}async function X(e){let t=await fetch(`${e}/conversations`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok)throw Error(`POST conversation failed: ${t.status}`);return await t.json()}async function pe(e,t){await fetch(`${e}/conversations/${encodeURIComponent(t)}`,{method:`DELETE`,credentials:`include`}).catch(()=>{})}function Z(e){let{userId:t,scope:n,apiBase:r,activeId:i,forceNew:a,resumeMode:o=`resume`}=e,[s,c]=(0,g.useState)(void 0),[l,u]=(0,g.useState)([]),[d,f]=(0,g.useState)(!!t),p=(0,g.useRef)(!0),m=(0,g.useRef)(void 0),h=(0,g.useRef)(void 0);(0,g.useEffect)(()=>(p.current=!0,()=>{p.current=!1}),[]),(0,g.useEffect)(()=>{if(!t){c(void 0),u([]),f(!1),m.current=void 0,h.current=void 0;return}let e=h.current!==n;if(!i&&!a&&!e&&m.current===t&&s)return;let l=!1,d=B(t,n);return!i&&(a||e&&m.current===t)&&(c(void 0),u([])),f(!0),(async()=>{try{if(i){let e=await Y(r,i);if(l)return;if(e){H(d,e.id),c(e.id);let r=q(e.messages);u(r.length>0?r:W(e.id)),m.current=t,h.current=n;return}H(d,void 0),G(i,[])}else if(!a){let e=V(d);if(e){let i=await Y(r,e);if(l)return;if(i){let e=q(i.messages);if(o!==`fresh`||e.length===0){c(i.id),u(o===`fresh`?[]:e.length>0?e:W(i.id)),m.current=t,h.current=n;return}}else H(d,void 0),G(e,[])}}let e=await X(r);if(l)return;H(d,e.id),c(e.id),u(q(e.messages)),m.current=t,h.current=n}catch{l||(c(void 0),u([]))}finally{l||f(!1)}})(),()=>{l=!0}},[t,n,r,i,a,o]);let _=(0,g.useCallback)(async()=>{if(!t)return;let e=B(t,n);f(!0);try{s&&await pe(r,s),G(s,[]),H(e,void 0);let t=await X(r);if(H(e,t.id),G(t.id,[]),!p.current)return;c(t.id),u([])}catch{p.current&&(c(void 0),u([]))}finally{p.current&&f(!1)}},[s,t,n,r]),v=(0,g.useCallback)(async()=>{if(!t)return;let e=B(t,n);f(!0);try{let i=await X(r);if(H(e,i.id),G(i.id,[]),!p.current)return;c(i.id),u([]),m.current=t,h.current=n}catch{}finally{p.current&&f(!1)}},[t,n,r]);return{conversationId:s,conversationScope:h.current,initialMessages:l,isLoading:d,reset:_,startNew:v}}var me=new Set([`new chat`,`new conversation`,`untitled`,`新对话`]);function he(e){let t=e?.trim().toLowerCase();return!t||me.has(t)}function ge(e){let t=e.messages;if(!t||t.length===0)return;for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role===`user`){let e=Q(n.content);if(e)return e}}let n=t[t.length-1];return Q(n?.content)}function Q(e){if(typeof e==`string`)return e.slice(0,140);if(e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`)return e.text.slice(0,140);if(e&&typeof e==`object`&&`parts`in e&&Array.isArray(e.parts))return Q(e.parts);if(Array.isArray(e)){let t=e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`?e.text:``).join(``);return t?t.slice(0,140):void 0}}function $(e){let t=e.title?.trim(),n=ge(e)??Q(e.preview);return{id:e.id,title:he(t)?void 0:t,agentId:e.agentId,createdAt:e.createdAt,updatedAt:e.updatedAt,preview:n}}async function _e(e,t){let n=await fetch(`${e}/conversations/${encodeURIComponent(t)}`,{credentials:`include`});if(!n.ok)return;let r=await n.json();return $(`conversation`in r&&r.conversation?r.conversation:r)}function ve(e){let{userId:t,apiBase:n,limit:r=50,refreshKey:i}=e,[a,o]=(0,g.useState)([]),[s,c]=(0,g.useState)(!!t),[l,u]=(0,g.useState)(void 0),[d,f]=(0,g.useState)(0),p=(0,g.useCallback)(async()=>{f(e=>e+1)},[]),m=(0,g.useCallback)(async e=>{try{await fetch(`${n}/conversations/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`})}finally{o(t=>t.filter(t=>t.id!==e))}},[n]),h=(0,g.useCallback)(async(e,t)=>{let r=t.trim();o(t=>t.map(t=>t.id===e?{...t,title:r||void 0}:t));let i=await fetch(`${n}/conversations/${encodeURIComponent(e)}`,{method:`PATCH`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:r})});if(!i.ok)throw f(e=>e+1),Error(`PATCH conversation failed: ${i.status}`)},[n]);return(0,g.useEffect)(()=>{if(!t){o([]),c(!1),u(void 0);return}let e=!1;return c(!0),u(void 0),(async()=>{try{let t=await fetch(`${n}/conversations?limit=${encodeURIComponent(String(r))}`,{credentials:`include`});if(!t.ok)throw Error(`GET conversations failed: ${t.status}`);let i=await t.json(),a=Array.isArray(i)?i:i.conversations??i.items??[];if(e)return;let s=a.map($).sort((e,t)=>(t.updatedAt??``).localeCompare(e.updatedAt??``));o(s);let c=s.filter(e=>!e.title&&!e.preview).slice(0,20);if(c.length>0){let t=await Promise.all(c.map(e=>_e(n,e.id).catch(()=>void 0)));if(e)return;let r=new Map(t.filter(e=>!!(e?.preview||e?.title)).map(e=>[e.id,e]));r.size>0&&o(e=>e.map(e=>{let t=r.get(e.id);return t?{...e,title:e.title??t.title,preview:e.preview??t.preview}:e}))}}catch(t){if(e)return;u(t instanceof Error?t:Error(String(t))),o([])}finally{e||c(!1)}})(),()=>{e=!0}},[t,n,r,d,i]),{conversations:a,isLoading:s,error:l,refetch:p,remove:m,rename:h}}async function ye(e){let t=await fetch(`/api/v1/meta/_drafts?packageId=${encodeURIComponent(e)}`,{credentials:`include`,headers:{Accept:`application/json`},cache:`no-store`});if(!t.ok)throw Error(`_drafts HTTP ${t.status}`);let n=await t.json(),r=Array.isArray(n)?n:n?.drafts??n?.data?.drafts??[];return Array.isArray(r)?r.length:0}function be(e){if(!e||e.length===0)return!1;let t=e[e.length-1];return!t||t.role!==`assistant`?!1:t.parts.some(e=>e.type===`text`&&String(e.text??``).trim().length>0)}function xe(e){let{chatApi:t,conversationId:n}=e,[r,i]=(0,g.useState)(!1),a=(0,g.useRef)(void 0);return{errorSuppressed:r,handleChatError:(0,g.useCallback)(async e=>{if(e?.notSent){i(!1);return}let r=t?.replace(/\/agents\/[^/]+\/chat$/,``);if(!n||!r){i(!1);return}try{let e=q((await Y(r,n))?.messages);if(be(e)&&a.current){a.current(e),i(!0);return}}catch{}i(!1)},[n,t]),setMessagesRef:a,resetSuppression:(0,g.useCallback)(()=>i(!1),[])}}export{Y as a,Z as c,P as d,ie as f,_ as g,y as h,fe as i,G as l,C as m,ye as n,ue as o,ee as p,ve as r,q as s,xe as t,se as u};
|