@lunora/react 1.0.0-alpha.33 → 1.0.0-alpha.35

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/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{AuthLoading as t,Authenticated as o,Unauthenticated as u}from"./packem_shared/AuthLoading-eLWn4Z7G.mjs";import{useAuthState as a}from"./packem_shared/useAuthState-jnCMkIwt.mjs";import{LunoraProvider as f,useLunora as n}from"./packem_shared/LunoraProvider-InsjxtOB.mjs";import{CheckoutButton as d,CustomerPortalButton as i,useCheckout as x}from"./packem_shared/CheckoutButton-DS_DKgNf.mjs";import{lunoraQueryOptions as c}from"./packem_shared/lunoraQueryOptions-BhiUY9ZF.mjs";import{useAgent as h}from"./packem_shared/useAgent-DNKxqQ9F.mjs";import{useAgentChat as A}from"./packem_shared/useAgentChat-BmYXshp0.mjs";import{useAgentState as U}from"./packem_shared/useAgentState-DO0yz6OU.mjs";import{useAgentToolEvents as P}from"./packem_shared/useAgentToolEvents-DTWZCIfd.mjs";import{default as S}from"./packem_shared/useAuth-CWkJn7i9.mjs";import{default as R}from"./packem_shared/useClientQuery-EPo__hzu.mjs";import{default as M}from"./packem_shared/useConnectionStatus-PL5D-S7t.mjs";import{useFlag as b,useFlags as v}from"./packem_shared/useFlag-Dh7bXXPx.mjs";import{useHttpStream as I}from"./packem_shared/useHttpStream-DFswZrRk.mjs";import{default as z}from"./packem_shared/useInfiniteQuery-DyExohf2.mjs";import{useMutation as O}from"./packem_shared/useMutation-B4uL3Rde.mjs";import{useMutator as j}from"./packem_shared/useMutator-D3CGrk5-.mjs";import{usePaginatedQuery as w}from"./packem_shared/usePaginatedQuery-Roo_jyC9.mjs";import{hydratePreloaded as G,default as J}from"./packem_shared/hydratePreloaded-DltXxPnp.mjs";import{usePresence as N}from"./packem_shared/usePresence-SJBy81um.mjs";import{default as X}from"./packem_shared/useQuery-m-trnMUV.mjs";import{useRateLimit as Z}from"./packem_shared/useRateLimit-DqikMrX9.mjs";import{useStream as $}from"./packem_shared/useStream-CGcSWvPI.mjs";import{default as re}from"./packem_shared/useSubscription-CiQk8tFR.mjs";import{useVoiceAgent as oe}from"./packem_shared/useVoiceAgent-4gj2W2jc.mjs";import{createClientQuery as se,getErrorCode as ae,getRetryAfterMs as pe,isConflictError as fe,isForbiddenError as ne,isRateLimitedError as me,isUnauthorizedError as de}from"@lunora/client";import{RestrictionError as xe,UploadControl as le,UploadError as ce}from"@visulima/storage-client";import{useChunkedRestUpload as he,useFileInput as Ce,useMultipartUpload as Ae,usePasteUpload as ye,useTusUpload as Ue,useUpload as Ee}from"@visulima/storage-client/react";export{t as AuthLoading,o as Authenticated,d as CheckoutButton,i as CustomerPortalButton,f as LunoraProvider,xe as RestrictionError,u as Unauthenticated,le as UploadControl,ce as UploadError,se as createClientQuery,ae as getErrorCode,pe as getRetryAfterMs,G as hydratePreloaded,fe as isConflictError,ne as isForbiddenError,me as isRateLimitedError,de as isUnauthorizedError,c as lunoraQueryOptions,h as useAgent,A as useAgentChat,U as useAgentState,P as useAgentToolEvents,S as useAuth,a as useAuthState,x as useCheckout,he as useChunkedRestUpload,R as useClientQuery,M as useConnectionStatus,Ce as useFileInput,b as useFlag,v as useFlags,I as useHttpStream,z as useInfiniteQuery,n as useLunora,Ae as useMultipartUpload,O as useMutation,j as useMutator,w as usePaginatedQuery,ye as usePasteUpload,J as usePreloadedQuery,N as usePresence,X as useQuery,Z as useRateLimit,$ as useStream,re as useSubscription,Ue as useTusUpload,Ee as useUpload,oe as useVoiceAgent};
2
+ import{AuthLoading as t,Authenticated as o,Unauthenticated as u}from"./packem_shared/AuthLoading-eLWn4Z7G.mjs";import{useAuthState as a}from"./packem_shared/useAuthState-jnCMkIwt.mjs";import{LunoraProvider as f,useLunora as n}from"./packem_shared/LunoraProvider-InsjxtOB.mjs";import{CheckoutButton as d,CustomerPortalButton as i,useCheckout as x}from"./packem_shared/CheckoutButton-DS_DKgNf.mjs";import{lunoraQueryOptions as c}from"./packem_shared/lunoraQueryOptions-BhiUY9ZF.mjs";import{useAgent as h}from"./packem_shared/useAgent-DNKxqQ9F.mjs";import{useAgentChat as A}from"./packem_shared/useAgentChat-BdDuGIHz.mjs";import{useAgentState as U}from"./packem_shared/useAgentState-DO0yz6OU.mjs";import{useAgentToolEvents as P}from"./packem_shared/useAgentToolEvents-DTWZCIfd.mjs";import{default as S}from"./packem_shared/useAuth-CWkJn7i9.mjs";import{default as R}from"./packem_shared/useClientQuery-EPo__hzu.mjs";import{default as M}from"./packem_shared/useConnectionStatus-PL5D-S7t.mjs";import{useFlag as b,useFlags as v}from"./packem_shared/useFlag-Dh7bXXPx.mjs";import{useHttpStream as I}from"./packem_shared/useHttpStream-DFswZrRk.mjs";import{default as z}from"./packem_shared/useInfiniteQuery-DyExohf2.mjs";import{useMutation as O}from"./packem_shared/useMutation-B4uL3Rde.mjs";import{useMutator as j}from"./packem_shared/useMutator-D3CGrk5-.mjs";import{usePaginatedQuery as w}from"./packem_shared/usePaginatedQuery-Roo_jyC9.mjs";import{hydratePreloaded as G,default as J}from"./packem_shared/hydratePreloaded-DltXxPnp.mjs";import{usePresence as N}from"./packem_shared/usePresence-SJBy81um.mjs";import{default as X}from"./packem_shared/useQuery-m-trnMUV.mjs";import{useRateLimit as Z}from"./packem_shared/useRateLimit-DqikMrX9.mjs";import{useStream as $}from"./packem_shared/useStream-CGcSWvPI.mjs";import{default as re}from"./packem_shared/useSubscription-CiQk8tFR.mjs";import{useVoiceAgent as oe}from"./packem_shared/useVoiceAgent-4gj2W2jc.mjs";import{createClientQuery as se,getErrorCode as ae,getRetryAfterMs as pe,isConflictError as fe,isForbiddenError as ne,isRateLimitedError as me,isUnauthorizedError as de}from"@lunora/client";import{RestrictionError as xe,UploadControl as le,UploadError as ce}from"@visulima/storage-client";import{useChunkedRestUpload as he,useFileInput as Ce,useMultipartUpload as Ae,usePasteUpload as ye,useTusUpload as Ue,useUpload as Ee}from"@visulima/storage-client/react";export{t as AuthLoading,o as Authenticated,d as CheckoutButton,i as CustomerPortalButton,f as LunoraProvider,xe as RestrictionError,u as Unauthenticated,le as UploadControl,ce as UploadError,se as createClientQuery,ae as getErrorCode,pe as getRetryAfterMs,G as hydratePreloaded,fe as isConflictError,ne as isForbiddenError,me as isRateLimitedError,de as isUnauthorizedError,c as lunoraQueryOptions,h as useAgent,A as useAgentChat,U as useAgentState,P as useAgentToolEvents,S as useAuth,a as useAuthState,x as useCheckout,he as useChunkedRestUpload,R as useClientQuery,M as useConnectionStatus,Ce as useFileInput,b as useFlag,v as useFlags,I as useHttpStream,z as useInfiniteQuery,n as useLunora,Ae as useMultipartUpload,O as useMutation,j as useMutator,w as usePaginatedQuery,ye as usePasteUpload,J as usePreloadedQuery,N as usePresence,X as useQuery,Z as useRateLimit,$ as useStream,re as useSubscription,Ue as useTusUpload,Ee as useUpload,oe as useVoiceAgent};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{c as ot}from"react/compiler-runtime";import{reconcileOptimistic as Q,maxSeq as U}from"@lunora/client";import{useState as st,useRef as rt}from"react";import{useMutation as J}from"./useMutation-B4uL3Rde.mjs";import{useStream as it}from"./useStream-CGcSWvPI.mjs";import V from"./useSubscription-CiQk8tFR.mjs";const ct={__lunoraRef:""},lt={__lunoraRef:""},dt=[],wt=i=>{const t=ot(47),{api:S,cancel:l,limit:d,send:W,sendArgs:_,stream:u,threadKey:e}=i;let m;t[0]!==d||t[1]!==e?(m=d===void 0?{key:e}:{key:e,limit:d},t[0]=d,t[1]=e,t[2]=m):m=t[2];const X=m,{data:Y}=V(S.agents.agentMessages,X);let h;t[3]!==e?(h={key:e},t[3]=e,t[4]=h):h=t[4];const{data:Z}=V(S.agents.agentThread,h);let p;t[5]!==u||t[6]!==e?(p=u===void 0?"skip":{key:e},t[5]=u,t[6]=e,t[7]=p):p=t[7];const z=p,{chunks:x}=it(u??lt,z),B=J(W),L=J(l??ct),tt=J(S.agents.agentResolveApproval);let f;t[8]===Symbol.for("react.memo_cache_sentinel")?(f=[],t[8]=f):f=t[8];const[j,N]=st(f),R=rt(0),P=Z,q=P?.status,s=P?.instanceId,a=Y??dt;let g;if(t[9]!==a||t[10]!==j){const n=Q(j,a),o=U(a);g=n.length===0?a:[...a,...n.map((K,G)=>({content:K.content,optimistic:!0,role:"user",seq:o+1+G}))],t[9]=a,t[10]=j,t[11]=g}else g=t[11];const T=g;let y;t[12]!==a?(y=a.filter(ut),t[12]=a,t[13]=y):y=t[13];const c=y.length;let v;if(t[14]!==c||t[15]!==x||t[16]!==e){let n;t[18]!==c||t[19]!==e?(n=o=>o.kind!=="progress"&&o.threadKey===e&&o.turn>=c,t[18]=c,t[19]=e,t[20]=n):n=t[20],v=x.filter(n).map(mt).join(""),t[14]=c,t[15]=x,t[16]=e,t[17]=v}else v=t[17];const b=v,{mutate:E}=B,{mutate:M}=L,{mutate:r}=tt;let w;t[21]!==a||t[22]!==_||t[23]!==E||t[24]!==e?(w=async(n,o)=>{const K=R.current;R.current=R.current+1;const G=U(a);N(H=>[...Q(H,a),{content:n,id:K,maxDurableSeqAtSend:G}]);try{await E({input:n,threadKey:e,..._,...o})}catch(H){const et=H;throw N(nt=>nt.filter(at=>at.id!==K)),et}},t[21]=a,t[22]=_,t[23]=E,t[24]=e,t[25]=w):w=t[25];const $=w;let I;t[26]!==s||t[27]!==r||t[28]!==e?(I=async(n,o)=>{if(s===void 0)throw new Error("useAgentChat: cannot approve — no in-flight run (thread has no instanceId)");await r({decision:"approve",instanceId:s,threadKey:e,toolCallId:n,...o===void 0?{}:{note:o}})},t[26]=s,t[27]=r,t[28]=e,t[29]=I):I=t[29];const D=I;let k;t[30]!==s||t[31]!==r||t[32]!==e?(k=async(n,o)=>{if(s===void 0)throw new Error("useAgentChat: cannot reject — no in-flight run (thread has no instanceId)");await r({decision:"reject",instanceId:s,threadKey:e,toolCallId:n,...o===void 0?{}:{note:o}})},t[30]=s,t[31]=r,t[32]=e,t[33]=k):k=t[33];const O=k;let A;t[34]!==M||t[35]!==l||t[36]!==s||t[37]!==e?(A=async()=>{l===void 0||s===void 0||await M({instanceId:s,threadKey:e})},t[34]=M,t[35]=l,t[36]=s,t[37]=e,t[38]=A):A=t[38];const F=A;let C;return t[39]!==D||t[40]!==F||t[41]!==T||t[42]!==O||t[43]!==$||t[44]!==q||t[45]!==b?(C={approve:D,cancel:F,messages:T,reject:O,send:$,status:q,streamingText:b},t[39]=D,t[40]=F,t[41]=T,t[42]=O,t[43]=$,t[44]=q,t[45]=b,t[46]=C):C=t[46],C};function ut(i){return i.role==="assistant"}function mt(i){return i.text}export{wt as useAgentChat};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/react",
3
- "version": "1.0.0-alpha.33",
3
+ "version": "1.0.0-alpha.35",
4
4
  "description": "React hooks for Lunora: useQuery, useMutation, useSubscription, and useAuth",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -53,9 +53,9 @@
53
53
  "access": "public"
54
54
  },
55
55
  "dependencies": {
56
- "@lunora/client": "1.0.0-alpha.29",
56
+ "@lunora/client": "1.0.0-alpha.31",
57
57
  "@lunora/errors": "1.0.0-alpha.8",
58
- "@lunora/ratelimit": "1.0.0-alpha.10",
58
+ "@lunora/ratelimit": "1.0.0-alpha.11",
59
59
  "@visulima/storage-client": "1.0.0"
60
60
  },
61
61
  "peerDependencies": {
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{c as re}from"react/compiler-runtime";import{useState as oe,useRef as se}from"react";import{useMutation as L}from"./useMutation-B4uL3Rde.mjs";import{useStream as ae}from"./useStream-CGcSWvPI.mjs";import P from"./useSubscription-CiQk8tFR.mjs";const ie={__lunoraRef:""},ce={__lunoraRef:""},le=[],Q=(a,e)=>{const u=e.filter(i=>i.role==="user"),c=new Set;return a.filter(i=>{for(let l=i.durableUserCountAtSend;l<u.length;l+=1){const f=u[l];if(f!==void 0&&!c.has(l)&&f.content===i.content)return c.add(l),!1}return!0})},ve=a=>{const e=re(49),{api:u,cancel:c,limit:i,send:l,sendArgs:f,stream:g,threadKey:t}=a;let p;e[0]!==i||e[1]!==t?(p=i===void 0?{key:t}:{key:t,limit:i},e[0]=i,e[1]=t,e[2]=p):p=e[2];const V=p,{data:W}=P(u.agents.agentMessages,V);let y;e[3]!==t?(y={key:t},e[3]=t,e[4]=y):y=e[4];const{data:X}=P(u.agents.agentThread,y);let v;e[5]!==g||e[6]!==t?(v=g===void 0?"skip":{key:t},e[5]=g,e[6]=t,e[7]=v):v=e[7];const Y=v,{chunks:R}=ae(g??ce,Y),Z=L(l),z=L(c??ie),G=L(u.agents.agentResolveApproval);let w;e[8]===Symbol.for("react.memo_cache_sentinel")?(w=[],e[8]=w):w=e[8];const[$,N]=oe(w),b=se(0),O=X,q=O?.status,s=O?.instanceId,r=W??le;let C;if(e[9]!==r||e[10]!==$){const o=Q($,r);let n;if(e[12]!==r){n=-1;for(const d of r)d.seq>n&&(n=d.seq);e[12]=r,e[13]=n}else n=e[13];C=o.length===0?r:[...r,...o.map((d,H)=>({content:d.content,optimistic:!0,role:"user",seq:n+1+H}))],e[9]=r,e[10]=$,e[11]=C}else C=e[11];const x=C;let I;e[14]!==r?(I=r.filter(de),e[14]=r,e[15]=I):I=e[15];const m=I.length;let k;if(e[16]!==m||e[17]!==R||e[18]!==t){let o;e[20]!==m||e[21]!==t?(o=n=>n.kind!=="progress"&&n.threadKey===t&&n.turn>=m,e[20]=m,e[21]=t,e[22]=o):o=e[22],k=R.filter(o).map(ue).join(""),e[16]=m,e[17]=R,e[18]=t,e[19]=k}else k=e[19];const T=k,{mutate:E}=Z,{mutate:M}=z,{mutate:h}=G;let A;e[23]!==r||e[24]!==f||e[25]!==E||e[26]!==t?(A=async(o,n)=>{const d=b.current;b.current=b.current+1;const H=r.filter(fe).length;N(J=>[...Q(J,r),{content:o,durableUserCountAtSend:H,id:d}]);try{await E({input:o,threadKey:t,...f,...n})}catch(J){const ee=J;throw N(te=>te.filter(ne=>ne.id!==d)),ee}},e[23]=r,e[24]=f,e[25]=E,e[26]=t,e[27]=A):A=e[27];const U=A;let K;e[28]!==s||e[29]!==h||e[30]!==t?(K=async(o,n)=>{if(s===void 0)throw new Error("useAgentChat: cannot approve — no in-flight run (thread has no instanceId)");await h({decision:"approve",instanceId:s,threadKey:t,toolCallId:o,...n===void 0?{}:{note:n}})},e[28]=s,e[29]=h,e[30]=t,e[31]=K):K=e[31];const B=K;let S;e[32]!==s||e[33]!==h||e[34]!==t?(S=async(o,n)=>{if(s===void 0)throw new Error("useAgentChat: cannot reject — no in-flight run (thread has no instanceId)");await h({decision:"reject",instanceId:s,threadKey:t,toolCallId:o,...n===void 0?{}:{note:n}})},e[32]=s,e[33]=h,e[34]=t,e[35]=S):S=e[35];const D=S;let _;e[36]!==M||e[37]!==c||e[38]!==s||e[39]!==t?(_=async()=>{c===void 0||s===void 0||await M({instanceId:s,threadKey:t})},e[36]=M,e[37]=c,e[38]=s,e[39]=t,e[40]=_):_=e[40];const F=_;let j;return e[41]!==B||e[42]!==F||e[43]!==x||e[44]!==D||e[45]!==U||e[46]!==q||e[47]!==T?(j={approve:B,cancel:F,messages:x,reject:D,send:U,status:q,streamingText:T},e[41]=B,e[42]=F,e[43]=x,e[44]=D,e[45]=U,e[46]=q,e[47]=T,e[48]=j):j=e[48],j};function de(a){return a.role==="assistant"}function ue(a){return a.text}function fe(a){return a.role==="user"}export{ve as useAgentChat};