PageSourceSearch

https://portal.mosslusewomble.com/assets/PracticeAIChatStreamingContext-Bu7836x9.js

js mosslusewomble.com collected 2026-10-10 00:08:24 UTC 47,553 bytes, 6 lines download raw bytes

1
2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="63af6a62-9ccc-587f-b116-8308d911fb63")}catch(e){}}();
3import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{Gc as t,Ol as n,Rc as r,a as i,gs as a,n as o,si as s,yl as c}from"./api-0FTZ9xlc.js";import{i as l,t as u}from"./react-DjXLjDm_.js";import{s as d}from"./sentry-DKIEfPU-.js";import{St as f,Vr as p,bn as m,fr as h,pr as g}from"./antd-iNNfoiky.js";import{i as _}from"./utils-DwjbL0ii.js";import{t as v}from"./useQuery-D8rx8y5J.js";import{n as y}from"./queryClient-DJrk4hg6.js";import{t as b}from"./useInfiniteQuery-CVgnqQyK.js";import{t as ee}from"./useMutation-Dx9kXCzF.js";import{a as te}from"./useSearch-CVS8cWA_.js";import{t as ne}from"./useRouterState-BuA5cU20.js";import{C as re,_ as ie,f as ae,v as oe}from"./useClient-CTSk_eaN.js";import{t as x}from"./Box-BBT42iet.js";import{U as se,W as ce}from"./lodash-B-lSKmAj.js";import{t as S}from"./colors-C2gF8DY0.js";import{Zi as le}from"./userAction-Cd4w5LV_.js";import{pr as ue}from"./icons-CWn6T3-i.js";import{t as C}from"./baseUrl-B2TilqWl.js";import{t as de}from"./useFeatureFlags-BY4zIb5f.js";import{n as fe}from"./EndCloseYearMonthProvider-CsDAbG20.js";import{$ as pe,A as w,c as me,et as he,g as ge,h as _e,j as ve,l as ye,m as T,o as E,r as D,y as be,z as O}from"./api-CpZA7O1k.js";import{a as xe,c as k,d as Se,i as A,l as Ce,o as we,t as Te,u as j}from"./streaming-CusBgW9q.js";import{t as M}from"./queryKeys-Vmi7tJcw.js";import{Z as Ee,zt as De}from"./client-DF518mH2.js";import{c as Oe}from"./end-close-CGlg56EJ.js";import{A as N,z as ke}from"./practice-EBhaK7AE.js";import{t as Ae}from"./QueryKeyFactory-b3Y-c6w3.js";import{Mt as P,Nt as je,ht as F,mt as Me}from"./useClientPortalMessaging-C_syRwaX.js";import{B as Ne,Z as I,t as Pe}from"./utils-BMXYCPTB.js";import{P as Fe}from"./qb-D4QoiQGr.js";import{a as Ie,o as L}from"./error.utils-CRa1cAar.js";import{n as Le,t as Re}from"./queryKeys-BeCKrCSQ.js";import{t as ze}from"./QueryKeyFactory-BiatJ7Ct.js";import{a as Be,t as Ve}from"./QueryKeyFactory-D48NcFp1.js";import{t as He}from"./QueryKeysFactory-CRygC1yY.js";import{n as R,t as z}from"./spreadsheetOps-pVlh5Pp9.js";import{a as Ue,i as We,n as Ge,o as B}from"./maskedRoutes-Bb3edo5Q.js";function V(e){if(!e)return null;if(typeof e==`object`)return e;if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}}function Ke(e){return e.type===`dynamic-tool`&&`toolName`in e&&e.toolName===`generate_pdf`||e.type===`tool-generate_pdf`}function qe(e){let t=V(e);if(!t||typeof t!=`object`)return null;let{success:n,files:r,message:i,error:a}=t;return typeof n!=`boolean`||!Array.isArray(r)||typeof i!=`string`?null:n?r.every(Je)?{success:!0,files:r,message:i,error:null}:null:{success:!1,files:[],message:i,error:Ye(a)?a:{message:i}}}var Je=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.fileKey==`string`&&typeof t.fileName==`string`&&typeof t.mimeType==`string`},Ye=e=>!e||typeof e!=`object`?!1:typeof e.message==`string`,H=e=>e.type===`dynamic-tool`,Xe=e=>e.type===`data-tool-approval`,U=e=>e.type===`dynamic-tool`&&`toolName`in e?e.toolName:j(e)?Ce(e):null,Ze=(e,t)=>U(e)===t,Qe=e=>(j(e)||H(e))&&`state`in e&&e.state===`output-available`,$e=e=>(j(e)||H(e))&&`state`in e&&(e.state===`input-streaming`||e.state===`input-available`),et=e=>{let t=e.toolLatency;return typeof t?.durationMs==`number`?{durationMs:t.durationMs,batchSize:typeof t.batchSize==`number`?t.batchSize:1}:null},tt=new Set,nt=e=>(tt.add(e),()=>{tt.delete(e)}),rt=e=>{for(let t of tt)t(e)};function it(e){let t=Object.entries(e).map(([e,t])=>[e,t??0]);return Object.fromEntries(t)}var at={double__create_closing_task:`closingTask`,double__update_closing_task:`closingTask`,double__create_custom_task:`nonClosingTask`,double__update_custom_task:`nonClosingTask`,double__create_firm_task:`nonClosingTask`,double__update_firm_task:`nonClosingTask`,double__create_project_task:`projectTask`,double__update_project_task:`projectTask`},ot=/^(closingTask|nonClosingTask|projectTask)-\d+$/,st=e=>{let t=U(e),n=t?at[t]:void 0;if(!n)return null;let r=V(`output`in e?e.output:void 0);if(!r||typeof r!=`object`)return null;let{taskId:i,clientId:a,attachmentIds:o}=r;return typeof i!=`number`||!Array.isArray(o)||o.length===0?null:{attachableKey:`${n}-${i}`,clientId:typeof a==`number`?a:null}},ct=(e,t)=>
3typeof e!=`string`||!ot.test(e)?null:{attachableKey:e,clientId:typeof t==`number`?t:null},lt=e=>{let t=e.input,n=V(`output`in e?e.output:void 0),r=Array.isArray(n?.movedAttachments)?n.movedAttachments:[],i=[ct(t?.target?.attachmentKey,t?.targetClientId),...r.map(e=>ct(e.previousAttachmentKey,t?.sourceClientId))].filter(e=>e!==null);return[...new Map(i.map(e=>[e.attachableKey,e])).values()]},ut=async({attachableKey:e,clientId:t})=>{let{token:n,uid:r}=i.getState().userResults;try{if(t!=null){if(!r)return;let n=await Ee(t,r,{taskIds:[e]});i.dispatch(P(it(n)))}else{if(!n)return;let t=await ke(n,{taskIds:[e]});for(let e in t)t[e]=t[e]?.count??t[e];i.dispatch(P(it(t)))}}catch{}},dt=e=>{e&&(y.invalidateQueries({queryKey:Ae.attachmentsByAttachableKey(e.attachableKey)}),ut(e))},ft=({part:e})=>{dt(st(e))},pt=({part:e})=>{lt(e).forEach(dt)},mt=e=>{let t=!1;return n=>{t||(t=!0,e(n).finally(()=>{t=!1}))}},ht=e=>{let t=Number(e?.clientId),n=Number(e?.date);return!t||!n?null:{clientId:t,date:n}},gt=mt(async e=>{let n=ht(e);if(!n)return;let{clientId:r,date:o}=n,{token:c,uid:l,practiceId:u}=i.getState().userResults,d=i.getState().clients.entities[r]?.clientQbId;if(c&&d)try{let[e,n]=await Promise.all([Oe(r,o,{isGetAnnotation:!0}),De(c,String(o),r,l,d,u)]);if(n?.tasks){let e=Object.fromEntries(n.tasks.map(e=>[e.id,e])),a=Object.fromEntries((n.nonClosingTasks??[]).map(e=>[e.id,e]));i.dispatch(s({...e,...a})),i.dispatch(t({[r]:n.nonClosingTasks??[]}))}e?.endClose&&i.dispatch(a(e.endClose))}catch{}}),W=e=>{rt(),gt(e.closeContext),ft(e)},_t=e=>{W(e),e.loadedClientId!=null&&y.invalidateQueries({queryKey:M.accrualAccounts(e.loadedClientId)})},vt=({accrualAccountId:e,taskId:t,page:n,pageSize:r,sorter:i,filters:a,status:s,search:c})=>o.post(`/accruals/accounts/${e}/tasks/${t}/new-accrual-transactions`,{page:n,pageSize:r,sorter:i,filters:a,status:s,search:c}),yt=(e,t,n)=>[I,e,Ne.NewAccrualTransactions,t,n],bt=(e,t,n,r)=>({clientId:e,reportType:Ne.NewAccrualTransactions,queryKeyResolver:(i,a)=>[...yt(e,t,n),r,i],monthDate:r,resolver:async e=>{let{page:i=1,pageSize:a=20,sorter:o,filters:s,status:c,search:l}=e;return vt({accrualAccountId:t,taskId:n,page:i,pageSize:a,sorter:o,filters:Pe(r,s),status:c,search:l})}}),xt=e=>{let t=V(`output`in e?e.output:void 0);if(!t||typeof t!=`object`)return null;let{clientId:n,accrualAccountId:r,taskId:i,transactionRef:a,failedEntryCount:o}=t;return typeof n!=`number`||typeof r!=`number`||typeof i!=`number`||typeof a!=`string`?null:{clientId:n,accrualAccountId:r,taskId:i,transactionRef:a,failedEntryCount:typeof o==`number`?o:0}},St=e=>{let t=xt(e.part);if(!t)return;let n=e.loadedClientId??(e.scope.type===`client`?e.scope.clientId:void 0);if(n==null||n!==t.clientId)return;W(e);let{clientId:r,accrualAccountId:i,taskId:a,transactionRef:o,failedEntryCount:s}=t;y.invalidateQueries({queryKey:M.accruals(i)}),y.invalidateQueries({queryKey:M.allAccrualAccountExcludedLists(i)}),y.invalidateQueries({queryKey:M.transactionAccruals(r,o)}),y.invalidateQueries({queryKey:M.accrualsToReview(i)}),y.invalidateQueries({queryKey:M.unscheduledAccruals(i)}),y.invalidateQueries({queryKey:M.allAccrualReports}),y.invalidateQueries({queryKey:yt(r,i,a)}),s>0&&y.invalidateQueries({queryKey:M.failedAccruals(r)})},Ct=({loadedClientId:e})=>{e!=null&&y.invalidateQueries({queryKey:M.importsProgress(e)})},G={all:[`practiceAIChat`,`asyncAgents`],configs:()=>[...G.all,`configs`],suggestions:()=>[...G.all,`suggestions`],runs:e=>[...G.all,`runs`,e],humanRequests:()=>[...G.all,`humanRequests`]},wt=()=>{y.invalidateQueries({queryKey:G.configs()})},Tt=()=>[`bank-feed`,`enabled`],Et={accountsByClientId:e=>[`bank-feed`,e,`accounts`]},Dt={practiceBankFeedConnections:e=>[`practice`,e,`bank-feed`,`connections`]},K={bankFeedAccountsByClientId:e=>[`bank-feed`,e,`bank-feed-accounts`],bankFeedAccountsMappingByClientId:e=>[`bank-feed`,e,`bank-feed-accounts`,`mapping`],bankFeedAccountTransactionsById:(e,t)=>[`bank-feed`,e,`bank-feed-accounts`,t,`transactions`]},q={eventBasedProcessingResultsComparison:(e,t,n)=>[`bank-feed`,e,`event-based-processing-results-comparison`,t,n],eventBasedProcessingUpdates:(e,t)=>[`bank-feed`,e,`event-based-processing-updates`,t],eventBasedProcessingResults:(e,t)=>[`bank-feed`,e,`event-based-processing-results`,t],preloadBankFeedAccountCluster
3sWithDBSnapshot:e=>[`bank-feed`,e,`clustered-transactions`,`preload-with-db-snapshot`],clusterizedTransactions:(e,t)=>[`bank-feed`,e,`clustered-transactions`,t],prefetchBankFeedAccountClusters:e=>[`bank-feed`,e,`clustered-transactions`,`prefetch`],ledgerTransactionsForClusterizing:(e,t)=>[`bank-feed`,e,`ledger-transactions`,t],allLedgerTransactionsForClusterizing:e=>[`bank-feed`,e,`ledger-transactions`,`all`],ledgerTransactionsForUncertainSuggestion:e=>[`bank-feed`,e,`ledger-transactions`,`related-query`],ledgerTransactionsByIds:(e,t)=>[`bank-feed`,e,`ledger-transactions`,t??`all`],ledgerTransactionsForMatching:(e,t)=>[`bank-feed`,e,`ledger-transactions-for-matching`,t],ledgerTransactionsForBankFeedAccount:(e,t)=>[`bank-feed`,e,`ledger-transactions-for-bank-feed-account`,t],vendorsWithTransactions:e=>[`bank-feed`,e,`vendors-with-transactions`],vendorExpenseAccountNames:e=>[`bank-feed`,e,`vendor-expense-account-names`]},Ot=(e,t)=>[`bank-feed`,e,`matched-or-posted-transactions`,t],kt=(e,t)=>[`bank-feed`,e,`deleted-transactions`,t],At={bankFeedRulesByClientId:e=>[`bank-feed`,e,`rules`]},jt={bankFeedTransactionsClientCommunication:e=>[`bank-feed`,e,`transactions-client-communication`],paginated:(e,t)=>[...jt.bankFeedTransactionsClientCommunication(e),`paginated`,t]},Mt={bankFeedConnectionRequestsByClientId:e=>[`bank-feed`,e,`connection-requests`]},Nt={conditionValidation:(e,t,n)=>[`bank-feed`,e,`validation`,t,n]},Pt=async(e,t)=>o.post(`/client/${e}/bank-feeds/session`,void 0,{params:{bankConnectorId:t}}),Ft=async()=>o.post(`/practice/bank-feeds/connections/session`),It=async e=>o.get(`/client/${e}/bank-feeds/accounts`),Lt=async(e,t)=>o.delete(`/client/${e}/bank-feeds/accounts/${t}`),Rt=async(e,t)=>o.delete(`/client/${e}/bank-feeds/bank-feed-accounts/${t}`),zt=async(e,t,n=!1)=>o.post(`/client/${e}/bank-feeds/accounts/bulk-setup`,{accountsSetupInfo:t,isPracticeBankFeedConnection:n}),Bt=async(e,t,{isClientPortal:n,bankFeedConnectorProfileId:r}={})=>o.post(`${n?`/client-portal/client`:`/client`}/${e}/bank-feeds/accounts/${t}/connected`,{bankFeedConnectorProfileId:r}),Vt=async e=>o.get(`/client/${e}/bank-feeds/bank-feed-accounts`),Ht=async(e,t)=>o.get(`/client/${e}/bank-feeds/bank-feed-accounts/${t}/ledger-transactions`),Ut=async({clientId:e,bankFeedAccountId:t},n)=>o.get(`/client/${e}/bank-feeds/bank-feed-accounts/${t}/clusterize-transactions`,{signal:n}),Wt=async e=>{let t=await Ut(e);return`results`in t?t.results:t},Gt=async({clientId:e,bankFeedAccountId:t})=>o.post(`/client/${e}/bank-feeds/bank-feed-accounts/${t}/clusterize-transactions/payload`),Kt=async({clientId:e,bankFeedAccountId:t,fileKey:n})=>o.post(`/client/${e}/bank-feeds/bank-feed-accounts/${t}/clusterize-transactions`,{fileKey:n}),qt=async({clientId:e,bankFeedAccountId:t,ledgerAccount:n,expenseAccounts:r})=>o.post(`/client/${e}/bank-feeds/bank-feed-accounts/${t}/clusterize-transactions-v2`,{ledgerAccount:n,expenseAccounts:r}),Jt=async e=>o.get(`/client/${e}/bank-feeds/bank-feed-accounts-mapping`),Yt=async(e,t)=>o.patch(`/client/${e}/bank-feeds/bank-feed-accounts-mapping`,t),Xt=async({clientId:e,bankFeedAccountId:t,isMatchedOrPosted:n,isDeleted:r})=>o.get(`/client/${e}/bank-feeds/bank-feed-transactions`,{params:{bankFeedAccountId:t,isMatchedOrPosted:n,isDeleted:r}}),Zt=async(e,t)=>o.delete(`/client/${e}/bank-feeds/bank-feed-transactions/${t}`),Qt=async(e,t)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/bulk-delete`,{bankFeedTransactionIds:t}),$t=async(e,t)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/${t}/revert-delete`),en=async(e,t,n)=>o.patch(`/client/${e}/bank-feeds/bank-feed-transactions/${t}`,n),tn=async(e,t,n)=>o.patch(`/client/${e}/bank-feeds/bank-feed-transactions/bulk`,{bankFeedTransactionIds:t,data:n}),nn=async(e,t,n,r,i)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/${t}/match`,{ledgerTransactionIds:n,bankFeedTransactionIdToMatch:r,transactionsToCreate:i}),rn=async(e,t)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/bulk-match-job`,{transactions:t}),an=async(e,t)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/${t}/post`),on=async(e,t,n)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/${t}/split`,{lineItems:n?.map(e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==null)))}),sn=async(e,t,n)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/bulk-post`,{bankFeedTransactionIds:t,bankFeedAccountIds:n}),cn=async(e,t,n)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/${t}/revert-match-or-post`,{ledgerTransaction:n}),ln=async(e,t)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/refresh`,{bankFeedAccountIds:t}),un=async(e,t)=>o.post(`/client/${e}/bank-feeds/vendors`,t),dn=async(e,t)=>o.post(`/client/${e}/bank-feeds/vendors/bulk-create`,{vendors:t}),fn=async(e,t)=>o.get(`/client/${e}/bank-feeds/rules`,{params:{bankFeedAccountId:t}}),pn=async(e,t)=>o.post(`/client/${e}/bank-feeds/rules`,t),mn=async(e,t)=>o.post(`/client/${e}/bank-feeds/rules/bulk-create`,{rules:t}),hn=async(e,t,n)=>o.put(`/client/${e}/bank-feeds/rules/${t}`,n),gn=async(e,t)=>o.delete(`/client/${e}/bank-feeds/rules/${t}`),_n=async(e,t,n)=>o.post(`/client/${e}/bank-feeds/rules/validate-condition`,{transactionId:t,condition:n}),vn=async(e,t,n,r)=>o.post(`/client/${e}/bank-feeds/get-client-communication`,{ledgerTransactions:t,vendorsWithTransactionsIds:n,expenseAccounts:r}),yn=async(e,t)=>{let{sorter:n,...r}=t;return o.get(`/client/${e}/bank-feeds/client-communication`,{params:{...r,sortField:n?.field,sortOrder:n?.order}})},bn=async(e,t)=>o.post(`/client/${e}/bank-feeds/bank-feed-transactions/create-from-csv`,t),xn=async(e,t)=>o.post(`/client/${e}/bank-feeds/connection-requests`,t),Sn=async(e,t)=>o.put(`/client/${e}/bank-feeds/connection-requests/${t.id}`,t),Cn=async e=>o.get(`/client/${e}/bank-feeds/connection-requests`),wn=async(e,t)=>o.get(`/client-portal/client/${e}/bank-feeds/connection-requests`,{params:{contactId:t}}),Tn=async(e,t)=>o.get(`/client-portal/client/${e}/bank-feeds/session`,{params:{bankConnectorId:t}}),En=async e=>o.post(`/client-portal/client/${e}/bank-feeds/session`),Dn=async(e,t,n)=>o.delete(`${n?`/client-portal/client`:`/client`}/${e}/bank-feeds/connection-requests/${t}`),On=async(e,t)=>o.post(`/client-portal/client/${e}/bank-feeds/connection-requests/${t}/complete`),kn=async e=>o.post(`/practice/bank-feeds/connections`,e),An=async()=>o.get(`/practice/bank-feeds/connections`),jn=async e=>o.delete(`/practice/bank-feeds/connections/${e}`),Mn={getClientListPropertyAttachment:e=>[`clientListAttachment`,e],closePerformance:()=>[`clientList`,`closePerformance`],openCloses:()=>[`clientList`,`openCloses`],clientEndCloses:e=>[`clientList`,`clientEndCloses`,e],lastPostedBankFeedTransaction:()=>[`clientList`,`lastPostedBankFeedTransaction`],nonPostedOrMatchedTransactionsCounts:()=>[`clientList`,`nonPostedOrMatchedTransactionsCounts`],entityStatusUpdatedAt:e=>[`clientList`,`entityStatusUpdatedAt`,e.entity,e.status,e.endCloseType,e.taxProjectType],columnConfigurations:(e,t)=>[`clientList`,`columnConfigurations`,e,t]},Nn=Mn.nonPostedOrMatchedTransactionsCounts(),Pn=e=>{e.cancelQueries({queryKey:Nn})},Fn=(e,t)=>
3{e.invalidateQueries({queryKey:Nn,...t&&{refetchType:t}})},In=(e,t,n,r)=>{Pn(e),e.setQueryData(Nn,e=>{let r=e?.byClientId,i=r?.[t];return i===void 0?e:{byClientId:{...r,[t]:Math.max(0,i+n)}}}),Fn(e,r)};function Ln(e,t,n,r){let i=K.bankFeedAccountsByClientId(t),a=e.getQueryData(i)?.find(e=>e.id===n);if(e.setQueryData(i,e=>e?.map(e=>e.id===n?{...e,transactionCount:e.transactionCount+r}:e)),!a){Pn(e),Fn(e,`none`);return}a.isDisabled||In(e,t,r,`none`)}function Rn(e,t,n,r){let i=K.bankFeedAccountsByClientId(t),a=e.getQueryData(i)?.find(e=>e.id===n);if(e.setQueryData(i,e=>e?.map(e=>e.id===n?{...e,transactionCount:r}:e)),!a){Pn(e),Fn(e);return}a.isDisabled||In(e,t,r-a.transactionCount)}var zn=`This account is mapped to a ledger account that no longer exists in the chart of accounts. Update the mapping to resume syncing.`,Bn=`We couldn't process transactions for this account. Refresh the page to try again.`,Vn=(e,t,n)=>{e.setQueryData(q.clusterizedTransactions(t,n),{status:`pending`})},Hn=(e,t,n,r,{keepExistingError:i=!1}={})=>{e.setQueryData(q.clusterizedTransactions(t,n),e=>i&&e&&`status`in e&&e.status===`error`?e:{...se(ce({autoClassifications:[],potentialMatches:[],uncertainTransactions:[],mediumConfidenceTransactions:[],newVendorTransactions:[],remainingTransactions:[],rulesTransactions:[],similarBankFeedTransactions:[]},e,r),`error`),status:`syncing`})},Un=(e,t,n,r)=>{e.setQueryData(q.clusterizedTransactions(t,n),{status:`error`,error:r})},Wn=(e,t,n,r)=>{Rn(e,t,n,r.autoClassifications.length+r.potentialMatches.length+r.uncertainTransactions.length+r.mediumConfidenceTransactions.length+r.newVendorTransactions.length+r.rulesTransactions.length+r.remainingTransactions.length)},Gn=async(e,t,n)=>
3{let r=await Wt({clientId:t,bankFeedAccountId:n});Hn(e,t,n,r),Wn(e,t,n,r)},Kn=async({queryClient:e,clientId:t,bankFeedAccountId:n,ledgerAccountId:r,accounts:i,expenseAccounts:a,seedStoredClusters:o=!1})=>{let s=i.find(e=>e.Id===r);if(!s){Un(e,t,n,zn);return}try{o&&await Gn(e,t,n),await qt({clientId:t,bankFeedAccountId:n,ledgerAccount:s,expenseAccounts:a}),o||Hn(e,t,n)}catch(r){Un(e,t,n,Bn),d(r)}},qn=e=>e.AccountType!==`Accounts Receivable`&&e.AccountType!==`Accounts Payable`&&e.AccountType!==`Credit Card`&&e.AccountSubType!==`Checking`,Jn=(e,t)=>{let n=e.filter(qn);return t?.filter(e=>n.some(t=>t.Id===e.id))},Yn=async(e,t,n)=>(await e.fetchQuery({queryKey:K.bankFeedAccountsByClientId(t),queryFn:async()=>(await Vt(t)).bankFeedAccounts,staleTime:0})).find(e=>e.id===n)?.ledgerAccountId,Xn=e=>r.selectById(i.getState(),e)?.accounts??[],Zn=(e,t)=>{let n=e.getQueryData(q.vendorExpenseAccountNames(t));return Jn(Xn(t),n)??[]},Qn=async(e,t,n)=>{let r=await Yn(e,t,n);r&&await Kn({queryClient:e,clientId:t,bankFeedAccountId:n,ledgerAccountId:r,accounts:Xn(t),expenseAccounts:Zn(e,t),seedStoredClusters:!0})},$n=e=>{let t=V(`output`in e?e.output:void 0);if(!t||typeof t!=`object`)return null;let{createdCount:n,bankFeedAccountId:r,clientId:i}=t;return typeof n!=`number`||typeof r!=`number`||typeof i!=`number`?null:{clientId:i,bankFeedAccountId:r}},er=async e=>{if(r.selectById(i.getState(),e)?.platform!==ae.qbo)return;let{accounts:t}=await Fe(e);t.length!==0&&i.dispatch(c({id:e,changes:{accounts:t}}))},tr=e=>{Promise.all([y.invalidateQueries({queryKey:Et.accountsByClientId(e)}),y.invalidateQueries({queryKey:K.bankFeedAccountsByClientId(e)})]).catch(d)},nr=async(e,t,n=!1)=>{tr(e),await er(e).catch(d),!(n&&r.selectById(i.getState(),e)?.platform===ae.qbo)&&await Qn(y,e,t)},rr=({loadedClientId:e,part:t,scope:n,releaseCurrentBankFeedsBackendProcessing:r})=>{let i=e??(n.type===`client`?n.clientId:void 0);if(i==null)return;let a=$n(t);a&&a.clientId===i&&nr(i,a.bankFeedAccountId,r).catch(d)},ir=({part:e})=>{let t=e.input?.clientId;typeof t==`number`&&y.invalidateQueries({queryKey:we.scopedMemoryAll({type:`client`,clientId:t})})},ar=({part:e})=>{y.invalidateQueries({queryKey:Re.lists()});let t=e.input?.noteId;typeof t==`number`&&(y.invalidateQueries({queryKey:Re.history(t)}),y.invalidateQueries({queryKey:Ae.attachmentsByAttachableKey(Le(t))}))},or=mt(async()=>{let{token:e,uid:t}=i.getState().userResults;if(e&&t)try{let n=(await N(e,t))?.nonClosingTasks??[],r=Object.fromEntries(n.map(e=>[e.id,e]));i.dispatch(s(r))}catch{}}),sr=e=>{rt({silent:!0}),or(),ft(e)},cr={allLoanTasks:()=>[`loans`,`task`],allReconciliationBalances:()=>[`loans`,`reconciliation-balances`],importSchedule:e=>[`loans`,`import-schedule`,e],loanTask:e=>[`loans`,`task`,e],loanPaymentMatches:(e,t,n)=>[`loans`,`payment-match`,e,t,n],reconciliationBalances:(e,t,n)=>[`loans`,`reconciliation-balances`,e,t,n]},lr=e=>{W(e),y.invalidateQueries({queryKey:cr.allLoanTasks()})},ur=`/memories/`,dr=`/client-memories/`,fr=({part:e,scope:t,loadedClientId:n})=>{let r=e.input?.file_path;typeof r==`string`&&(r.startsWith(dr)?n!=null&&y.invalidateQueries({queryKey:we.scopedMemoryAll({type:`client`,clientId:n})}):r.startsWith(ur)&&y.invalidateQueries({queryKey:we.scopedMemoryAll(t)}))},pr=e=>{y.invalidateQueries({queryKey:ze.projectTasksPrefix()}),y.invalidateQueries({queryKey:ze.projectsTasksCountStatus()}),rt({silent:!0}),ft(e)},mr=e=>{let t=V(`output`in e?e.output:void 0);if(!t||typeof t!=`object`)return null;let{started:n,upgraded:r,clientId:i}=t;return n!==!0&&r!==!0?null:typeof i==`number`?i:null},hr=async()=>{let e=await Be();i.dispatch(n(e)),await y.invalidateQueries({queryKey:Ve.all()})},gr=async()=>{await Promise.all([y.invalidateQueries({queryKey:He.practiceSubscriptions}),hr()])},_r=({part:e})=>{mr(e)!=null&&gr().catch(d)},vr=()=>{y.invalidateQueries({queryKey:_e.skills()})},yr={write_file:fr,edit_file:fr,[pe]:ir,create_skill:vr,update_skill:vr,double__create_loan:lr,double__create_project_task:pr,double__update_project_task:pr,double__create_agent_c
3onfig:wt,double__update_agent_config:wt,double__create_note:ar,double__update_note:ar,double__create_closing_task:W,double__update_closing_task:W,double__create_custom_task:W,double__update_custom_task:W,double__create_firm_task:sr,double__update_firm_task:sr,[be]:_t,double__create_accrual_from_transaction:St,[w]:Ct,[ve]:rr,double__create_account_reconciliation_task:W,double__move_attachables:pt,[O]:_r,[he]:_r},br=(e,t,n,r,i=!1)=>{for(let a of e.parts){if(!Qe(a))continue;let e=U(a);(e?yr[e]:void 0)?.({part:a,scope:t,loadedClientId:n,closeContext:r,releaseCurrentBankFeedsBackendProcessing:i})}},J=e(l(),1);function xr(e){return typeof e==`object`&&!!e&&`answers`in e}function Sr(e){let t=e.at(-1);return t?.role===`assistant`&&t.parts.some(e=>Ze(e,`ask_user_question`)&&e.state===`output-available`&&xr(e.output))}function Cr(e){let t=e.at(-1);return t?.role===`assistant`&&t.parts.some(e=>Ze(e,`request_browser_takeover`)&&e.state===`approval-responded`)}function wr(e){return Tr(e).length>0}function Tr(e){let t=e.at(-1);return t?.role===`assistant`?t.parts.filter(e=>e.type===`dynamic-tool`&&e.state===`approval-requested`||Ze(e,`ask_user_question`)&&(e.state===`input-available`||e.state===`input-streaming`)):[]}function Er(e,t){let n=new Set(t.flatMap(e=>e.parts).filter(e=>`toolCallId`in e&&`state`in e&&(e.state===`output-available`||e.state===`output-error`)).map(e=>e.toolCallId));return Tr(e).every(e=>n.has(e.toolCallId))}function Dr(e){return Se(e)?!0:!Sr(e.messages)&&!Cr(e.messages)?!1:!wr(e.messages)}function Or(e){let t=e.at(-1);if(!t)return``;let n=t.parts.map(e=>`${U(e)??e.type}~${`toolCallId`in e?e.toolCallId:``}~${`state`in e?e.state:``}~${`output`in e&&xr(e.output)?JSON.stringify(e.output):``}`);return`${e.length}~${t.id}~${n.join(`|`)}`}function kr(){let e=null;return t=>{if(!Dr(t))return!1;let n=Or(t.messages);return n!==e&&(e=n,!0)}}var Ar=e=>e.includes(`is experiencing a temporary outage`)&&e.includes(`Switch to another model`),jr=e=>{Ar(e.message)&&m.error({title:e.message})},Mr=`You don't have access to this chat`,Nr=`Something went wrong while loading this chat`,Pr=e=>Ie(e)||L(e),Fr=e=>Pr(e)?Mr:`${Nr}. Please try again.`,Ir=new WeakSet,Lr=e=>{(0,J.useEffect)(()=>{e&&!Ir.has(e)&&(Ir.add(e),m.error({title:Fr(e)}))},[e])},Rr=e=>(document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)),zr=()=>document.visibilityState===`visible`,Br=()=>(0,J.useSyncExternalStore)(Rr,zr,()=>!0),Vr=(e,t,n)=>{if(!e)return e;let r=!1,i=e.pages.map(e=>({...e,chats:e.chats.map(e=>e.id!==t||e.isUnread===n?e:(r=!0,{...e,isUnread:n}))}));return r?{...e,pages:i}:e},Hr=()=>{let e=_();return{clearUnread:(0,J.useCallback)(t=>{e.setQueryData(T.chats(),e=>Vr(e,t,!1))},[e]),markUnread:(0,J.useCallback)(t=>{e.setQueryData(T.chats(),e=>Vr(e,t,!0))},[e])}},Ur=e=>{let{clearUnread:t}=Hr(),n=Br(),{data:r,error:i,isFetching:a,refetch:o}=v({enabled:typeof e==`number`&&n,queryKey:T.chat(e),queryFn:()=>D(e),retryOnMount:!1});Lr(i);let s=(0,J.useCallback)(async()=>typeof e==`number`?o():void 0,[e,o]),c=(0,J.useCallback)(async()=>{let e=(await s())?.data;return e?e.latestRun??null:void 0},[s]);return(0,J.useEffect)(()=>{r&&e!==null&&t(e)},[r,e,t]),{messages:r?.messages,model:r?.model,title:r?.title,latestRun:r?.latestRun??null,suggestedPromptId:r?.suggestedPromptId??null,suggestedPromptFeedbackType:r?.suggestedPromptFeedbackType??null,sourceAgentRun:r?.sourceAgentRun??null,isFetching:a,refetch:s,refetchLatestRun:c}},Y=e=>{let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0},X=e=>{let t=Object.fromEntries(Object.entries(e).filter(([,e])=>e!=null));return Object.keys(t).length?t:void 0},Wr=({taskId:e,source:t,clientId:n,endCloseId:r,projectId:i})=>X({clientId:Y(n),endCloseId:Y(r),projectId:Y(i),selectedTaskId:e,selectedTaskSource:t}),Gr=e=>e.kind===`task`?Wr(e):e.kind===`bankFeed`?X({clientId:Y(e.clientId),bankFeedAccountId:Y(e.bankFeedAccountId)}):X({clientId:e.clientId,endCloseId:e.endCloseId,projectId:e.projectId,communicationTab:e.communicationTab,selectedQuestionId:e.selectedQuestionId,selectedQuestionSubject:e.selectedQuestionSubject,selectedAttachmentIds:e.selectedAttachmentIds}),Kr=({activeTask:e,activeProjectTask:t,clientId:n,endCloseId:r,projectId:i})=>{if(t&&t.clientId===n&&t.projectId===i)return X({clientId:n,projectId:i,selectedTaskId:t.taskId,selectedTaskSource:`project`});if(e)return e.source===`closing`?e.endCloseId===r?X({clientId:n,endCloseId:r,selectedTaskId:e.taskId,selectedTaskSource:`closing`}):void 0:e.source===`nonclosing`?e.clientId===n?X({clientId:n,endCloseId:r,projectId:i,selectedTaskId:e.taskId,selectedTaskSource:`nonclosing`}):void 0:e.source===`project`?e.projectId===i?X({clientId:n,projectId:i,selectedTaskId:e.taskId,selectedTaskSource:`project`}):void 0:X({selectedTaskId:e.taskId,selectedTaskSource:`firm`})},qr=({pathname:e,clientPage:t,clientId:n,endCloseId:r,projectId:i,activeTask:a,activeProjectTask:o,urlTaskId:s,urlSelectedTaskId:c})=>{let l=Kr({activeTask:a,activeProjectTask:o,clientId:n,endCloseId:r,projectId:i});if(t===`tax-return`)return l||X({clientId:n,projectId:i,selectedTaskId:i?s??c:void 0});if(r){let e=t===`close`||t===`close-next`;return e&&l||t===`bank-feeds`&&a?.source===`nonclosing`&&l?l:X({clientId:n,endCloseId:r,selectedTaskId:e?s??c:void 0})}if(e.startsWith(`/firm-tasks`))return a?.source===`firm`?l:void 0;
3if(e.startsWith(`/clients/`))return X({clientId:n})},Jr=`p`,Yr=`skill_mention`,Z=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Xr=e=>e===`private`||e===`firm`||e===`client`,Zr=e=>{if(!Z(e)||typeof e.type!=`string`)return null;if(e.type===`text`)return typeof e.text==`string`?{type:`text`,text:e.text}:null;if(e.type!==`data-skill`||!Z(e.data))return null;let{skillId:t,name:n,type:r}=e.data;return typeof t!=`number`||!Number.isFinite(t)||typeof n!=`string`||!Xr(r)?null:{type:`data-skill`,data:{skillId:t,name:n,type:r}}},Qr=e=>{if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let n of e){let e=Zr(n);if(!e)return null;t.push(e)}return t},$r=({promptParts:e})=>Qr(e)||[],ei=e=>e.flatMap(e=>e.type===`text`?e.text.length>0?[{type:`text`,text:e.text}]:[]:e.type!==`data-skill`||!Xr(e.data.type)?[]:[{type:`data-skill`,data:{skillId:e.data.skillId,name:e.data.name,type:e.data.type}}]),ti=e=>e?e.type===`data-skill`||/^[A-Za-z0-9@]/.test(e.text):!1,ni=e=>{let t=``;return e.forEach((n,r)=>{if(n.type===`text`){t+=n.text;return}t&&!/\s$/.test(t)&&(t+=` `),t+=`@${n.data.name}`,ti(e[r+1])&&(t+=` `)}),t.trim()},ri=e=>({type:Yr,skillId:e.data.skillId,name:e.data.name,skillType:e.data.type,children:[{text:``}]}),ii=e=>{if(e.length===0)return[{text:``}];let t=[];return e.forEach(e=>{`type`in e&&e.type===Yr&&t.length===0&&t.push({text:``}),t.push(e),`type`in e&&e.type===Yr&&t.push({text:``})}),t},ai=e=>{let t=[],n=[],r=()=>{t.push({type:Jr,children:ii(n)}),n=[]};return e.forEach(e=>{if(e.type===`data-skill`){n.push(ri(e));return}e.text.split(`
4`).forEach((e,t)=>{t>0&&r(),e.length>0&&n.push({text:e})})}),r(),t},oi=()=>{let e=new Map,t=new Set;return{subscribe:e=>(t.add(e),()=>{t.delete(e)}),getSnapshots:()=>e,setSnapshot:(n,r)=>{if(e.has(n)&&e.get(n)===r)return;let i=new Map(e);i.set(n,r),e=i,t.forEach(e=>e())}}},si=(e,t)=>{let n=e.getSnapshots().get(t);n?.selectedAttachmentIds&&e.setSnapshot(t,{...n,selectedAttachmentIds:void 0})},ci=e=>e===`closing`||e===`nonclosing`||e===`firm`||e===`project`?e:void 0,li=e=>{let t=V(e);return Z(t)?t:void 0},ui=e=>Z(e.currentUser)&&Z(e.today),di=e=>{let t=Z(e.selectedTask)?e.selectedTask:void 0,n=Z(e.selectedQuestion)?e.selectedQuestion:void 0,r=Z(e.bankFeed)&&Z(e.bankFeed.account)?e.bankFeed.account:void 0;return X({clientId:Y(Z(e.client)?e.client.id:void 0),endCloseId:Y(Z(e.endClose)?e.endClose.id:void 0),projectId:Y(Z(e.project)?e.project.id:void 0),selectedTaskId:Y(t?.id),selectedTaskSource:ci(t?.source),bankFeedAccountId:Y(r?.id),communicationTab:e.communicationTab===`txns`||e.communicationTab===`non-txns`||e.communicationTab===`inbound`?e.communicationTab:void 0,selectedQuestionId:Y(n?.id),selectedQuestionSubject:typeof n?.subject==`string`?n.subject:void 0})??null},Q=e=>e.findLast(e=>e.role===`user`),fi=e=>{if(!e)return null;let t=e.parts.filter(e=>e.type===`data-content`).map(e=>li(`data`in e?e.data:void 0)).filter(e=>e!==void 0&&ui(e)).find(e=>Z(e.visibleContext))?.visibleContext;return Z(t)?di(t):null},pi=(e,t,n,r)=>t.has(e)||n.length>0||r===void 0,mi=(e,t,n)=>t.has(e)?t.get(e)??null:fi(n),hi=(e,t)=>{if(!Z(e?.metadata)||!Z(e.metadata[t]))return;let{state:n}=e.metadata[t];return n===`replay-complete`||n===`unavailable`||n===`end`?n:void 0},gi=e=>hi(e,`chatRunStream`),_i=[0,1e3,2e3,4e3,8e3],vi=[2e3,5e3,1e4,3e4],yi=e=>e?.status===`RUNNING`&&e.endReason!==`stopped`,bi=e=>e.status===`streaming`||e.status===`submitted`,xi=e=>e[e.length-1]?.role===`assistant`?e.slice(0,-1):e,Si=(e,t,n)=>e&&e.anchorUserMessageId===Q(t)?.id?n?xi(e.messages):e.messages:n?xi(t):null,Ci=e=>new Promise(t=>{window.setTimeout(t,e)}),wi=({chat:e,latestRun:t,refetchLatestRun:n,enabled:r,onRunSettled:i})=>{let a=(0,J.useRef)(e);a.current=e;let o=(0,J.useRef)(n);o.current=n;let s=(0,J.useRef)(t);s.current=t;let c=(0,J.useRef)(r);c.current=r;let l=(0,J.useRef)(i);l.current=i;let u=(0,J.useRef)(0),d=(0,J.useCallback)(()=>{u.current+=1},[]);(0,J.useEffect)(()=>(r||d(),d),[r,d]);let f=(0,J.useRef)(null),p=(0,J.useRef)(0),[m,h]=(0,J.useState)(!1),g=(0,J.useCallback)(e=>{c.current&&(f.current={anchorUserMessageId:Q(e)?.id,messages:e},p.current=0,u.current+=1,h(!0))},[]),_=(0,J.useCallback)(async()=>{u.current+=1;let e=u.current;for(let t=0;;t+=1){if(await Ci(vi[Math.min(t,vi.length-1)]??3e4),u.current!==e)return;let n=await o.current();if(u.current!==e)return;if(!(n===void 0||yi(n))){f.current=null,p.current=0,h(!1),l.current?.();return}}},[]),v=(0,J.useCallback)(async e=>{if(e===`unavailable`)return _();let t=_i[p.current];
4if(t===void 0)return;p.current+=1,await Ci(t);let n=await o.current();if(n===void 0)return v(e);if(!yi(n))return;let r=a.current();if(!r||bi(r))return;let i=Si(f.current,r.messages,n.resumable??!1);i!==null&&(r.setMessages(i),await r.resumeStream())},[_]),y=(0,J.useCallback)(({message:e,isAbort:t,isDisconnect:n})=>{if(!c.current)return;let r=gi(e);if(r===`end`){f.current=null,p.current=0,(s.current?.status===`RUNNING`?o.current():Promise.resolve()).then(()=>h(!1));return}t||(n&&a.current()?.clearError(),v(r))},[v]),b=r&&!m&&yi(t)&&!!t.resumable;return{onTurnStart:g,onFinish:y,hasLocalRun:m,resume:b,initialMessages:e=>b&&e?xi(e):e}},$=u(),Ti=({chatId:e,contextSnapshotStore:t,onStreamUpdate:n,onFinish:r})=>{let{messages:i,latestRun:a,refetchLatestRun:o}=Ur(e);return i?(0,$.jsx)(Di,{chatId:e,initialMessages:i,latestRun:a,refetchLatestRun:o,contextSnapshotStore:t,onStreamUpdate:n,onFinish:r}):null},Ei=(e,t,n)=>new k({api:`${C}/${ye(e)}`,fetch:Te,headers:{auth:`Bearer ${i.getState().userResults?.token}`},prepareSendMessagesRequest:r=>{n(r.messages);let i=r.body?.context??mi(e,t.getSnapshots(),Q(r.messages))??void 0;return{body:{...r.body,...i?{context:i}:{},id:r.id,messages:r.messages,trigger:r.trigger,messageId:r.messageId}}},prepareReconnectToStreamRequest:A}),Di=({chatId:e,initialMessages:t,latestRun:n,refetchLatestRun:r,contextSnapshotStore:i,onStreamUpdate:a,onFinish:o})=>{let{releaseAiChatWorkerRuns:s}=de(),c=_(),l=(0,J.useRef)(null),u=wi({chat:()=>l.current,latestRun:n,refetchLatestRun:r,enabled:s,onRunSettled:(0,J.useCallback)(()=>{c.invalidateQueries({queryKey:T.chat(e)})},[e,c])}),d=(0,J.useMemo)(()=>Ei(e,i,u.onTurnStart),[e,i,u.onTurnStart]),[f]=(0,J.useState)(kr),p=xe({id:`practice-ai-chat-${e}`,transport:d,sendAutomaticallyWhen:f,onFinish:t=>{u.onFinish(t),t.isError||si(i,e),!(s&&t.isError)&&o(e,t.message)},onError:jr,messages:u.initialMessages(t),resume:u.resume});l.current=p;let m=(0,J.useRef)(p);m.current=p;let h=(0,J.useRef)(t);return(0,J.useEffect)(()=>{if(h.current===t)return;h.current=t;let e=m.current;e.status!==`streaming`&&e.status!==`submitted`&&(!wr(e.messages)||Er(e.messages,t))&&e.setMessages(t)},[t]),(0,J.useEffect)(()=>{a(e,m.current)},[e,p.status,p.messages,p.error,a]),(0,J.useEffect)(()=>()=>a(e,null),[e,a]),null},Oi=re.div.withConfig({displayName:`notification__ToastCloseIcon`,componentId:`sc-td6778-0`})`position:absolute;top:${e=>e.shiftVertically?`4px`:`unset`};right:0;`,ki=re(f).withConfig({displayName:`notification__SuccessIcon`,componentId:`sc-td6778-1`})`color:${S.Green500};font-size:24px;`,Ai=oe`.ant-notification-notice-message{margin-bottom:0}`,ji=({message:e,duration:t=5,style:n={maxWidth:`220px`},...r})=>m.open({style:n,duration:t,icon:null,title:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ai,{}),e]}),...r}),Mi=({message:e,buttonText:t,onButtonClick:n,successIcon:r,duration:i=10,style:a={minWidth:`440px`},...o})=>m.open({duration:i,style:a,title:(0,$.jsxs)(x,{$display:`flex`,$justifyContent:`space-between`,$alignItems:`center`,$gap:`8px`,children:[(0,$.jsx)(Ai,{}),(0,$.jsxs)(x,{$display:`flex`,$alignItems:`center`,$gap:`8px`,children:[r??(0,$.jsx)(ki,{}),(0,$.jsx)(`span`,{children:e})]}),!!n&&t&&(0,$.jsx)(g,{type:`text`,onClick:n,children:t})]}),closeIcon:(0,$.jsx)(Oi,{shiftVertically:!!n&&!!t,children:(0,$.jsx)(ue,{stroke:S.ButtonIconGrey,strokeWidth:1.5,width:24,height:24})}),...o}),Ni=({onUndo:e,...t})=>Mi({buttonText:`Undo`,onButtonClick:e,...t}),Pi=null,Fi=()=>{if(Pi)return Pi;let e=window.AudioContext??window.webkitAudioContext;return e?(Pi=new e,Pi):null},Ii=async()=>{try{let e=Fi();if(!e)return;e.state===`suspended`&&await e.resume();let t=(t,n,r)=>{let i=e.createOscillator(),a=e.createGain();i.connect(a),a.connect(e.destination),i.type=`sine`,i.frequency.value=t,a.gain.setValueAtTime(.2,n),a.gain.exponentialRampToValueAtTime(.01,n+r),i.start(n),i.stop(n+r)},n=.1;t(880,e.currentTime,n),t(1320,e.currentTime+n,.15)}catch{}},Li=({key:e,message:t,isViewing:n,isTabVisible:r,onClick:i})=>{n&&r||(r||Ii(),!n&&Mi({key:e,message:t,buttonText:`View`,successIcon:(0,$.jsx)(p,{style:{color:S.Green500,fontSize:24}}),pauseOnHover:!0,onButtonClick:()=>{i(),m.destroy(e)}}))},Ri=({chatId:e,message:t,...n})=>Li({...n,key:`practice-ai-chat-finish-${e}-${t.id}`,message:`Ask Double responded`}),zi=(0,J.createContext)(null),Bi=()=>
4{let e=_(),{clearUnread:t}=Hr(),{mutate:n}=ee({mutationFn:e=>me(e),onMutate:async n=>{await e.cancelQueries({queryKey:T.chats()}),t(n)},onSettled:()=>{e.invalidateQueries({queryKey:T.chats()})}});return n},Vi=`chat`,Hi=()=>{let e=(0,J.useRef)({section:Vi,tab:`skills`}),t=Ue(`ai`),n=B(`ai`,e=>({section:e.section??Vi,chatId:e.chatId,tab:e.tab??`skills`,agentId:e.agentId,agentChatId:e.agentChatId})),r=B(`ai`,e=>e.prompt);return t&&(e.current={...n}),{isOpen:t,latestValues:e,initialPrompt:r,...n}},Ui=()=>{let e=te();return(0,J.useCallback)(t=>Ge(e,`ai`,{chatId:t}),[e])},Wi=()=>{let{open:e,close:t}=We(`ai`);return{openChat:(0,J.useCallback)(t=>{e({section:`chat`,chatId:t})},[e]),openPersonalization:(0,J.useCallback)(t=>{e({section:`personalization`,tab:t})},[e]),openAgents:(0,J.useCallback)((t,n)=>{e({section:`agents`,agentId:t,agentChatId:n})},[e]),openSearch:(0,J.useCallback)(()=>{e({section:`search`})},[e]),close:t}},Gi=e(h(),1),Ki=e=>{let t=(0,Gi.default)().startOf(`day`),n=t.valueOf(),r=t.subtract(1,`day`).valueOf(),i=t.subtract(7,`day`).valueOf(),a=t.subtract(14,`day`).valueOf(),o={today:[],yesterday:[],thisWeek:[],lastWeek:[],older:[]};for(let t of e){let e=(0,Gi.default)(t.updatedAt).valueOf();e>=n?o.today.push(t):e>=r?o.yesterday.push(t):e>=i?o.thisWeek.push(t):e>=a?o.lastWeek.push(t):o.older.push(t)}return o},qi=e=>e.updatedAt===e.createdAt,Ji=25,Yi=[],Xi=e=>{let{data:t,isSuccess:n,fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a}=b({enabled:e,queryKey:T.chats(),initialPageParam:0,queryFn:({pageParam:e,signal:t})=>E(e,Ji,t),getNextPageParam:(e,t)=>e.chats.length<Ji?void 0:t.length*Ji,select:e=>{let t=new Set;return e.pages.flatMap(e=>e.chats).filter(e=>!t.has(e.id)&&(t.add(e.id),!0))}}),o=t??Yi;return{chats:(0,J.useMemo)(()=>Ki(o.filter(e=>!qi(e))),[o]),allChats:o,isSuccess:n,fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a}},Zi=e=>{(0,J.useEffect)(()=>{if(!e)return;let t=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,t),()=>{window.removeEventListener(`beforeunload`,t)}},[e])},Qi=`transaction-keeper-attachments`,$i=`transaction-external-attachments`,ea={getTransactionAttachment:(e,t)=>[`transaction_attachment`,e,t],transactionKeeperAttachmentsForClient:e=>[Qi,e],transactionKeeperAttachments:(e,t,n=``)=>[Qi,e,{...t?{attachmentKey:t}:{},...n?{vendorId:n}:{}}],transactionExternalAttachments:({uid:e,selectedQbId:t,clientId:n,transactionTypeValue:r,transactionTypeId:i,practiceId:a,isXero:o,entityValueId:s,nameId:c,type:l})=>o?[$i,e,a,n,s,c,l]:[$i,e,a,n,t,{...r?{transactionTypeValue:r}:{},...i?{transactionTypeId:i}:{},...c?{nameId:c}:{}},l],clientAttachableByKey:(e,t,n)=>[`client-attachable-by-key`,e,t,n]};function ta(){let e=le(),t=_();return(0,J.useCallback)(async n=>{if(!n?.clientId||!n.selectedQuestionId)return;let r=n.clientId,i=n.selectedQuestionId;try{let[n,a]=await Promise.all([F(r,i),Me(r,[i])]),o=a.find(e=>e.id===i);if(o){let t=`${o.attachmentId}-client`;e(je(t,n)),e(P({[t]:o.count}))}await t.invalidateQueries({queryKey:ea.transactionKeeperAttachmentsForClient(r)})}catch(e){d(e)}},[e,t])}var na=e=>e===`streaming`||e===`submitted`,ra=e=>{let t=0;for(let n=e.length-1;n>=0;--n)if(e[n]?.role===`user`){t=n+1;break}return e.slice(t).flatMap(e=>{if(e.role!==`assistant`)return[];let t=e.parts.filter(e=>R(e)!==null||z(e)!==null);return t.length>0?[{...e,parts:t}]:[]})},ia=(e,t)=>e.length===t.length&&e.every((e,n)=>{let r=t[n];return!r||e.id!==r.id||e.parts.length!==r.parts.length?!1:e.parts.every((e,t)=>{let n=r.parts[t];if(!n)return!1;let i=R(e)??z(e),a=R(n)??z(n);return i?.id===a?.id})}),aa=e=>{for(let t of e.parts){if(!Ke(t)||!(`state`in t)||t.state!==`output-available`)continue;let e=qe(`output`in t?t.output:void 0);if(e?.success&&e.files.length>0)return!0}return!1},oa=({children:e})=>{let t=_(),n=te(),{markUnread:r,clearUnread:i}=Hr(),a=Bi(),{openChat:o,close:s}=Wi(),{isOpen:c,chatId:l,agentChatId:u,initialPrompt:d}=Hi(),f=ne({select:e=>e.status===`idle`}),p=Br(),h=(0,J.useCallback)(e=>e?o():s(),[o,s]),g=c,[v,y]=(0,J.useState)(null),[b,ee]=(0,J.useState)(new Map),[re,ae]=(0,J.useState)(new Set),[oe,x]=(0,J.useState)(new Map),[se,ce]=(0,J.useState)(new Set),[S,le]=(0,J.useState)(new Set),[ue,C]=(0,J.useState)(!0),[pe,w]=(0,J.useState)(null),[me,he]=(0,J.useState)(!1),[_e,ve]=(0,J.useState)(!1),[ye,E]=(0,J.useState)(null),[D,be]=(0,J.useState)(null),[O]=(0,J.useState)(oi),xe=ta(),k=(0,J.useRef)(null),[Se,A]=(0,J.useState)(null),[Ce,we]=(0,J.useState)(()=>new Set),{chats:Te,allChats:j,isSuccess:M,fetchNextPage:Ee,hasNextPage:De,isFetchingNextPage:Oe}
4=Xi(g),N=l??u??v,ke=ie(),P=fe(),{releaseCurrentBankFeedsBackendProcessing:je}=de(),F=(0,J.useRef)({streams:b,activeChatId:N,open:g,loadedClientId:D,closeClientId:ke,closeDate:P,releaseCurrentBankFeedsBackendProcessing:je});F.current={streams:b,activeChatId:N,open:g,loadedClientId:D,closeClientId:ke,closeDate:P,releaseCurrentBankFeedsBackendProcessing:je},(0,J.useEffect)(()=>{g&&l&&p&&a(l)},[l,p,a,g]),(0,J.useEffect)(()=>n.subscribe(`onResolved`,e=>{e.pathChanged&&(C(!0),E(null),w(null),k.current=null,A(null))}),[n]);let Me=(0,J.useCallback)(()=>C(!1),[]),Ne=(0,J.useCallback)(()=>w(null),[]),I=(0,J.useCallback)(()=>E(null),[]),Pe=(0,J.useCallback)(e=>be(e),[]),Fe=(0,J.useCallback)(e=>{we(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),Ie=(0,J.useCallback)(()=>{E(null),y(null),C(!1),w(null),k.current=null,A(null),o()},[o]),L=(0,J.useCallback)((e,t)=>{E(null),y(null),C(!1),w(e),k.current=t,A(null),o()},[o]),Le=(0,J.useCallback)((e,t,n)=>L({kind:`prompt`,prompt:e,source:t},{id:n,prompt:e}),[L]),Re=(0,J.useCallback)(e=>L({kind:`selected-text`,text:e},null),[L]);(0,J.useEffect)(()=>{d&&f&&L({kind:`prompt`,prompt:d},null)},[d,f,L]);let ze=(0,J.useCallback)(e=>{E({kind:`task`,...e}),y(null),C(!1),w(null),k.current=null,A(null),o()},[o]),Be=(0,J.useCallback)(e=>{E({kind:`pinned`,...e}),y(null),C(!1),w(null),k.current=null,A(null),o()},[o]),Ve=(0,J.useCallback)((e,t)=>{E({kind:`bankFeed`,...e}),y(null),C(!1),w(t?{kind:`prompt`,prompt:t}:null),k.current=null,A(null),o()},[o]),He=(0,J.useCallback)(async()=>{g&&(ve(!0),await s())},[s,g]),R=(0,J.useCallback)(async()=>{_e&&(ve(!1),he(!0),await o())},[o,_e]),z=(0,J.useCallback)(e=>{e!==F.current.activeChatId&&(I(),A(null)),o(e)},[I,o]),Ue=(0,J.useCallback)(e=>{le(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),We=(0,J.useCallback)(e=>{le(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},[]),Ge=(0,J.useCallback)(e=>{ae(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n}),ce(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),B=(0,J.useCallback)(e=>{ae(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},[]),V=(0,J.useMemo)(()=>{let e=new Set;return b.forEach((t,n)=>{na(t.status)&&e.add(n)}),N!==null&&e.add(N),e},[b,N]),Ke=(0,J.useCallback)((e,t)=>{B(e),ee(n=>{let r=n.get(e);if(t===null){if(!r)return n;let t=new Map(n);return t.delete(e),t}if(r&&r.status===t.status&&r.messages===t.messages&&r.error===t.error)return n;let i=new Map(n);return i.set(e,t),i}),t&&x(n=>{let r=n.get(e),i=ra(t.messages);if(!r&&i.length===0)return n;let a=i.length>0?i:r?.messages??[];if(r?.status===t.status&&ia(r.messages,a))return n;let o=new Map(n);return o.set(e,{messages:a,status:t.status}),o})},[B]),qe=(0,J.useCallback)(e=>{x(t=>{if(!t.has(e))return t;let n=new Map(t);return n.delete(e),n})},[]),Je=(0,J.useCallback)((e,n)=>{if(gi(n)===`unavailable`){t.invalidateQueries({queryKey:T.chat(e),refetchType:`none`}),ra([n]).length>0&&m.warning({key:`spreadsheet-stream-unavailable-${e}`,title:`Live spreadsheet preview interrupted`,description:`Ask Double is still working in the background. Cells streamed after the interruption are missing from this preview, so review the file once the run finishes and ask Ask Double to re-apply any missing edits.`,duration:0});return}x(t=>{let r=t.get(e),i=ra([n])[0];if(!r&&!i)return t;let a=r?.messages??[],o=i&&a.some(e=>e.id===i.id),s;s=i?o?a.map(e=>e.id===i.id?i:e):[...a,i]:a;let c=new Map(t);return c.set(e,{messages:s,status:`ready`}),c});let{activeChatId:o,open:s,loadedClientId:c,closeClientId:l,closeDate:u,releaseCurrentBankFeedsBackendProcessing:d}=F.current,f=document.visibilityState===`visible`,p=e===o&&s&&f;p?a(e):r(e),Ri({chatId:e,message:n,isViewing:p,isTabVisible:f,onClick:()=>{z(e),i(e)}}),t.invalidateQueries({queryKey:T.chat(e),refetchType:`none`}),t.invalidateQueries({queryKey:T.chatTokenUsage(e)}),aa(n)&&t.invalidateQueries({queryKey:Ae.attachmentsByAttachableKey(ge(e))}),xe(mi(e,O.getSnapshots(),Q(F.current.streams.get(e)?.messages??[]))),br(n,{type:`practice`},c,{clientId:l,date:u},d)},[i,O,z,a,r,t,xe]),Ye=(0,J.useMemo)(()=>{let e=new Map;return b.forEach((t,n)=>e.set(n,t.status)),e},[b]),H=(0,J.useMemo)(()=>{let e=new Set(re);return b.forEach((t,n)=>{na(t.status)&&e.add(n)}),e},[b,re]),Xe=(0,J.useMemo)(()=>H.size>=5,[H]);Zi((0,J.useMemo)(()=>{let e=!1;return H.forEach(t=>{S.has(t)||(e=!0)}),e},[S,H]));let U=(0,J.useMemo)(()=>({chats:Te,allChats:j,chatsLoaded:M,fetchMoreChats:Ee,hasMoreChats:De,isFetchingMoreChats:Oe,open:g,setOpenState:h,activeChatId:N,setUserSelectedChatId:y,streamStatuses:Ye,activeStream:N===null?void 0:b.get(N),spreadsheet
4Streams:oe,releaseSpreadsheetStream:qe,clearUnread:i,isAtStreamCap:Xe,markSendStarted:Ge,clearSendStarted:B,locallyRunChatIds:se,stoppedChatIds:S,markStopped:Ue,clearStopped:We,freshChatOnNextOpen:ue,consumeFreshChatOnNextOpen:Me,openFresh:Ie,pendingComposerSeed:pe,consumePendingComposerSeed:Ne,openFreshWithPrompt:Le,openFreshWithSelectedText:Re,pendingSuggestedPromptRef:k,pendingAgentRunFork:Se,setPendingAgentRunFork:A,dismissedForkChipChatIds:Ce,dismissForkChip:Fe,explicitContext:ye,clearExplicitContext:I,openFreshForTask:ze,openFreshForPinnedContext:Be,openFreshForBankFeed:Ve,loadedClientId:D,setLoadedClientId:Pe,contextSnapshotStore:O,skipOpenAnimation:me,setSkipOpenAnimation:he,suspendForReceiptReview:He,restoreAfterReceiptReview:R}),[N,j,Te,M,I,We,i,O,Me,Ne,ye,Ce,Fe,Ee,ue,De,Xe,Ge,B,se,Oe,D,Ue,h,g,Ie,Le,Re,pe,Se,ze,Be,Ve,qe,Pe,me,He,R,S,oe,Ye,b]);return(0,$.jsxs)(zi.Provider,{value:U,children:[[...V].map(e=>(0,$.jsx)(Ti,{chatId:e,contextSnapshotStore:O,onStreamUpdate:Ke,onFinish:Je},e)),e]})},sa=()=>{let e=(0,J.useContext)(zi);if(!e)throw Error(`usePracticeAIChatStreamingContext must be used within PracticeAIChatStreamingProvider`);return e},ca=()=>(0,J.useContext)(zi);export{pn as $,bt as $t,jr as A,nn as At,Un as B,_n as Bt,$r as C,Xt as Ct,Y as D,yn as Dt,Gr as E,Wt as Et,cr as F,Kt as Ft,mn as G,jt as Gt,Hn as H,K as Ht,Jn as I,ln as It,rn as J,q as Jt,dn as K,Nt as Kt,Kn as L,$t as Lt,kr as M,en as Mt,wr as N,tn as Nt,Ur as O,An as Ot,br as P,an as Pt,xn as Q,G as Qt,Bn as R,cn as Rt,ni as S,fn as St,qr as T,Tn as Tt,Ln as U,Mt as Ut,Vn as V,Et as Vt,Mn as W,At as Wt,zt as X,Ot as Xt,sn as Y,kt as Yt,On as Z,Dt as Zt,hi as _,Vt as _t,Qi as a,et as an,Ft as at,pi as b,wn as bt,Hi as c,Xe as cn,Rt as ct,Bi as d,qe as dn,Zt as dt,yt as en,bn as et,Li as f,V as fn,jn as ft,wi as g,Ut as gt,Ni as h,It as ht,$i as i,nt as in,kn as it,Er as j,Yt as jt,Lr as k,Bt as kt,Wi as l,Ze as ln,Dn as lt,ji as m,hn as mt,sa as n,it as nn,En as nt,ea as o,U as on,un as ot,Mi as p,Sn as pt,Qt as q,Tt as qt,ca as r,rt as rn,Gt as rt,qi as s,$e as sn,Lt as st,oa as t,gt as tn,Pt as tt,Ui as u,Ke as un,gn as ut,Q as v,Jt as vt,ei as w,vn as wt,ai as x,Ht as xt,mi as y,Cn as yt,Wn as z,on as zt};
5//# sourceMappingURL=PracticeAIChatStreamingContext-Bu7836x9.js.map
6//# debugId=63af6a62-9ccc-587f-b116-8308d911fb63

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.