codicent-app-sdk 0.4.27 → 0.4.28

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.
@@ -1 +1 @@
1
- {"version":3,"file":"useCodicentApp.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCodicentApp.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAyB,MAAM,UAAU,CAAC;AACpG,OAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAA2B,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,wCAAyC,qBAAqB,KA6KlF,gBACN,CAAC"}
1
+ {"version":3,"file":"useCodicentApp.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCodicentApp.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAyB,MAAM,UAAU,CAAC;AACpG,OAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAA2B,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,wCAAyC,qBAAqB,KAoMlF,gBACN,CAAC"}
@@ -1 +1 @@
1
- "use strict";var e=require("react");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("react/jsx-runtime");var t=require("../utils/appState.js");require("../_virtual/index.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("../utils/cacheManager.js");var r=require("./useAudioRecorder.js"),s=require("./useAuthState.js"),n=require("./useRealtimeVoiceAI.js"),a=require("./useTools.js");exports.useCodicentApp=({auth0:c,toolsConfig:u,authOptions:i})=>{const o=s.default(c,i),l=e.useRef(t.createAppStateMachine(o.codicentService,(()=>{}))),[d,m]=e.useState(),{service:p,context:h}=l.current,{nickname:f,name:A,error:g,errorType:k,selectedApp:v}=h,C=e.useCallback(((e,t)=>{const r=e.get("file").name;p.uploadFile(r,e).then((e=>{p.sendMessage(`#transcribe ${""!==t?(t.startsWith("#")?"":"#")+t+" ":""}#file:${e}`).then((()=>{})).catch(console.warn)}))}),[p]),S=r.useAudioRecorder(C),[b,q]=e.useState(),[w,j]=e.useState(),[y,x]=e.useState(!1),N=e.useMemo((()=>new Audio("./notification.mp3")),[]),T=e.useCallback((()=>x(!0)),[]),R=a.default(p,q,j,N,b,T,u),M=n.default(p,R);e.useEffect((()=>{y&&(M?.disconnectConversation(),x(!1))}),[y,M]),e.useEffect((()=>{o.isAuthenticated&&o.user&&o.accessToken&&l.current.updateContext({isAuthenticated:o.isAuthenticated,user:{sub:o.user.sub,email:o.user.email},accessToken:o.accessToken})}),[o.isAuthenticated,o.user,o.accessToken]);const _=e.useRef(o.isAuthenticated);e.useEffect((()=>{const e=!0===_.current,t=!0===o.isAuthenticated;e&&!t&&l.current.logout(),_.current=o.isAuthenticated}),[o.isAuthenticated]),e.useEffect((()=>l.current.updateContext({nickname:o.nickname})),[o.nickname]),e.useEffect((()=>{l.current.update();let e,t=l.current.getCurrentStateName();m(l.current.getCurrentStateName()),JSON.stringify(l.current.context);let r="hasAccess"===l.current.getCurrentStateName();const s=n=>setInterval((()=>{const n=l.current.getCurrentStateName();"hasAccess"!==n||r?"hasAccess"!==n&&r&&(console.log("🚨 Left stable state - switching to fast polling (200ms)"),r=!1,clearInterval(e),e=s(200)):(console.log("🎯 Reached stable state - switching to slower polling (1000ms)"),r=!0,clearInterval(e),e=s(1e3));const a=JSON.stringify(l.current.context);l.current.update();const c=JSON.stringify(l.current.context),u=l.current.getCurrentStateName();u===t&&a===c||(m(u),t=u)}),n);return e=s(r?1e3:200),()=>clearInterval(e)}),[]);const I=e.useCallback((e=>e.replace("{nickname}",f||"unknown").replace("{token}",encodeURIComponent(o.accessToken||"unknown")).replace("{app}",v||"unknown")),[f,o.accessToken,v]),E=e.useCallback((e=>{l.current.updateContext({isAnonymous:e})}),[]),O=e.useCallback((()=>l.current.isBusy()),[]);return e.useMemo((()=>({audio:S,auth:o,currentStateName:d,stateMachine:l.current,service:p,context:h,state:d,nickname:f,name:A,error:g,errorType:k,fixAppUrl:I,setAnonymous:E,allStates:l.current.allStates,isBusy:O,voice:M,html:b,setHtml:q,script:w})),[d,f,A,g,k,b,w,o.isAuthenticated,o.isLoading,S.isRecording,M?.isConnected,I,E,O])};
1
+ "use strict";var e=require("react");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("react/jsx-runtime");var t=require("../utils/appState.js");require("../_virtual/index.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("../utils/cacheManager.js");var r=require("./useAudioRecorder.js"),s=require("./useAuthState.js"),n=require("./useRealtimeVoiceAI.js"),a=require("./useTools.js");exports.useCodicentApp=({auth0:c,toolsConfig:u,authOptions:i})=>{const o=s.default(c,i),l=e.useRef(null);l.current||(l.current=t.createAppStateMachine(o.codicentService,(()=>{})));const[d,m]=e.useState((()=>{let e="",t=l.current.getCurrentStateName(),r=0;for(;t!==e&&r<10;)l.current.update(),e=t,t=l.current.getCurrentStateName(),r++;return t})),{service:p,context:h}=l.current,{nickname:f,name:g,error:A,errorType:k,selectedApp:C}=h,S=e.useCallback(((e,t)=>{const r=e.get("file").name;p.uploadFile(r,e).then((e=>{p.sendMessage(`#transcribe ${""!==t?(t.startsWith("#")?"":"#")+t+" ":""}#file:${e}`).then((()=>{})).catch(console.warn)}))}),[p]),v=r.useAudioRecorder(S),[b,q]=e.useState(),[w,j]=e.useState(),[y,x]=e.useState(!1),N=e.useMemo((()=>new Audio("./notification.mp3")),[]),T=e.useCallback((()=>x(!0)),[]),R=a.default(p,q,j,N,b,T,u),M=n.default(p,R);e.useEffect((()=>{y&&(M?.disconnectConversation(),x(!1))}),[y,M]),e.useEffect((()=>{o.isAuthenticated&&o.user&&o.accessToken&&l.current.updateContext({isAuthenticated:o.isAuthenticated,user:{sub:o.user.sub,email:o.user.email},accessToken:o.accessToken})}),[o.isAuthenticated,o.user,o.accessToken]);const _=e.useRef(o.isAuthenticated);e.useEffect((()=>{const e=!0===_.current,t=!0===o.isAuthenticated;e&&!t&&l.current.logout(),_.current=o.isAuthenticated}),[o.isAuthenticated]),e.useEffect((()=>l.current.updateContext({nickname:o.nickname})),[o.nickname]),e.useEffect((()=>{l.current.update();let e,t=l.current.getCurrentStateName();m(l.current.getCurrentStateName()),JSON.stringify(l.current.context);let r="hasAccess"===l.current.getCurrentStateName();const s=n=>setInterval((()=>{const n=l.current.getCurrentStateName();"hasAccess"!==n||r?"hasAccess"!==n&&r&&(console.log("🚨 Left stable state - switching to fast polling (200ms)"),r=!1,clearInterval(e),e=s(200)):(console.log("🎯 Reached stable state - switching to slower polling (1000ms)"),r=!0,clearInterval(e),e=s(1e3));const a=JSON.stringify(l.current.context);l.current.update();const c=JSON.stringify(l.current.context),u=l.current.getCurrentStateName();u===t&&a===c||(m(u),t=u)}),n);return e=s(r?1e3:200),()=>clearInterval(e)}),[]);const I=e.useCallback((e=>e.replace("{nickname}",f||"unknown").replace("{token}",encodeURIComponent(o.accessToken||"unknown")).replace("{app}",C||"unknown")),[f,o.accessToken,C]),E=e.useCallback((e=>{l.current.updateContext({isAnonymous:e})}),[]),O=e.useCallback((()=>l.current.isBusy()),[]);return e.useMemo((()=>({audio:v,auth:o,currentStateName:d,stateMachine:l.current,service:p,context:h,state:d,nickname:f,name:g,error:A,errorType:k,fixAppUrl:I,setAnonymous:E,allStates:l.current.allStates,isBusy:O,voice:M,html:b,setHtml:q,script:w})),[d,f,g,A,k,b,w,o.isAuthenticated,o.isLoading,v.isRecording,M?.isConnected,I,E,O])};
@@ -1 +1 @@
1
- {"version":3,"file":"useCodicentApp.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCodicentApp.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAyB,MAAM,UAAU,CAAC;AACpG,OAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAA2B,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,wCAAyC,qBAAqB,KA6KlF,gBACN,CAAC"}
1
+ {"version":3,"file":"useCodicentApp.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCodicentApp.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAyB,MAAM,UAAU,CAAC;AACpG,OAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAA2B,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,wCAAyC,qBAAqB,KAoMlF,gBACN,CAAC"}
@@ -1 +1 @@
1
- import{useRef as e,useState as t,useCallback as n,useMemo as r,useEffect as s}from"react";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"react/jsx-runtime";import{createAppStateMachine as o}from"../utils/appState.js";import"../_virtual/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../utils/cacheManager.js";import{useAudioRecorder as a}from"./useAudioRecorder.js";import c from"./useAuthState.js";import i from"./useRealtimeVoiceAI.js";import u from"./useTools.js";const l=({auth0:l,toolsConfig:m,authOptions:p})=>{const d=c(l,p),h=e(o(d.codicentService,(()=>{}))),[g,A]=t(),{service:k,context:v}=h.current,{nickname:f,name:w,error:j,errorType:y,selectedApp:S}=v,b=n(((e,t)=>{const n=e.get("file").name;k.uploadFile(n,e).then((e=>{k.sendMessage(`#transcribe ${""!==t?(t.startsWith("#")?"":"#")+t+" ":""}#file:${e}`).then((()=>{})).catch(console.warn)}))}),[k]),C=a(b),[x,N]=t(),[T,_]=t(),[I,R]=t(!1),M=r((()=>new Audio("./notification.mp3")),[]),O=n((()=>R(!0)),[]),J=u(k,N,_,M,x,O,m),B=i(k,J);s((()=>{I&&(B?.disconnectConversation(),R(!1))}),[I,B]),s((()=>{d.isAuthenticated&&d.user&&d.accessToken&&h.current.updateContext({isAuthenticated:d.isAuthenticated,user:{sub:d.user.sub,email:d.user.email},accessToken:d.accessToken})}),[d.isAuthenticated,d.user,d.accessToken]);const L=e(d.isAuthenticated);s((()=>{const e=!0===L.current,t=!0===d.isAuthenticated;e&&!t&&h.current.logout(),L.current=d.isAuthenticated}),[d.isAuthenticated]),s((()=>h.current.updateContext({nickname:d.nickname})),[d.nickname]),s((()=>{h.current.update();let e,t=h.current.getCurrentStateName();A(h.current.getCurrentStateName()),JSON.stringify(h.current.context);let n="hasAccess"===h.current.getCurrentStateName();const r=s=>setInterval((()=>{const s=h.current.getCurrentStateName();"hasAccess"!==s||n?"hasAccess"!==s&&n&&(console.log("🚨 Left stable state - switching to fast polling (200ms)"),n=!1,clearInterval(e),e=r(200)):(console.log("🎯 Reached stable state - switching to slower polling (1000ms)"),n=!0,clearInterval(e),e=r(1e3));const o=JSON.stringify(h.current.context);h.current.update();const a=JSON.stringify(h.current.context),c=h.current.getCurrentStateName();c===t&&o===a||(A(c),t=c)}),s);return e=r(n?1e3:200),()=>clearInterval(e)}),[]);const U=n((e=>e.replace("{nickname}",f||"unknown").replace("{token}",encodeURIComponent(d.accessToken||"unknown")).replace("{app}",S||"unknown")),[f,d.accessToken,S]),$=n((e=>{h.current.updateContext({isAnonymous:e})}),[]),F=n((()=>h.current.isBusy()),[]);return r((()=>({audio:C,auth:d,currentStateName:g,stateMachine:h.current,service:k,context:v,state:g,nickname:f,name:w,error:j,errorType:y,fixAppUrl:U,setAnonymous:$,allStates:h.current.allStates,isBusy:F,voice:B,html:x,setHtml:N,script:T})),[g,f,w,j,y,x,T,d.isAuthenticated,d.isLoading,C.isRecording,B?.isConnected,U,$,F])};export{l as useCodicentApp};
1
+ import{useRef as e,useState as t,useCallback as r,useMemo as n,useEffect as s}from"react";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"react/jsx-runtime";import{createAppStateMachine as o}from"../utils/appState.js";import"../_virtual/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../utils/cacheManager.js";import{useAudioRecorder as c}from"./useAudioRecorder.js";import a from"./useAuthState.js";import i from"./useRealtimeVoiceAI.js";import u from"./useTools.js";const l=({auth0:l,toolsConfig:m,authOptions:p})=>{const d=a(l,p),h=e(null);h.current||(h.current=o(d.codicentService,(()=>{})));const[g,A]=t((()=>{let e="",t=h.current.getCurrentStateName(),r=0;for(;t!==e&&r<10;)h.current.update(),e=t,t=h.current.getCurrentStateName(),r++;return t})),{service:f,context:k}=h.current,{nickname:v,name:S,error:w,errorType:C,selectedApp:j}=k,y=r(((e,t)=>{const r=e.get("file").name;f.uploadFile(r,e).then((e=>{f.sendMessage(`#transcribe ${""!==t?(t.startsWith("#")?"":"#")+t+" ":""}#file:${e}`).then((()=>{})).catch(console.warn)}))}),[f]),b=c(y),[x,N]=t(),[T,_]=t(),[I,R]=t(!1),M=n((()=>new Audio("./notification.mp3")),[]),O=r((()=>R(!0)),[]),J=u(f,N,_,M,x,O,m),B=i(f,J);s((()=>{I&&(B?.disconnectConversation(),R(!1))}),[I,B]),s((()=>{d.isAuthenticated&&d.user&&d.accessToken&&h.current.updateContext({isAuthenticated:d.isAuthenticated,user:{sub:d.user.sub,email:d.user.email},accessToken:d.accessToken})}),[d.isAuthenticated,d.user,d.accessToken]);const L=e(d.isAuthenticated);s((()=>{const e=!0===L.current,t=!0===d.isAuthenticated;e&&!t&&h.current.logout(),L.current=d.isAuthenticated}),[d.isAuthenticated]),s((()=>h.current.updateContext({nickname:d.nickname})),[d.nickname]),s((()=>{h.current.update();let e,t=h.current.getCurrentStateName();A(h.current.getCurrentStateName()),JSON.stringify(h.current.context);let r="hasAccess"===h.current.getCurrentStateName();const n=s=>setInterval((()=>{const s=h.current.getCurrentStateName();"hasAccess"!==s||r?"hasAccess"!==s&&r&&(console.log("🚨 Left stable state - switching to fast polling (200ms)"),r=!1,clearInterval(e),e=n(200)):(console.log("🎯 Reached stable state - switching to slower polling (1000ms)"),r=!0,clearInterval(e),e=n(1e3));const o=JSON.stringify(h.current.context);h.current.update();const c=JSON.stringify(h.current.context),a=h.current.getCurrentStateName();a===t&&o===c||(A(a),t=a)}),s);return e=n(r?1e3:200),()=>clearInterval(e)}),[]);const U=r((e=>e.replace("{nickname}",v||"unknown").replace("{token}",encodeURIComponent(d.accessToken||"unknown")).replace("{app}",j||"unknown")),[v,d.accessToken,j]),$=r((e=>{h.current.updateContext({isAnonymous:e})}),[]),F=r((()=>h.current.isBusy()),[]);return n((()=>({audio:b,auth:d,currentStateName:g,stateMachine:h.current,service:f,context:k,state:g,nickname:v,name:S,error:w,errorType:C,fixAppUrl:U,setAnonymous:$,allStates:h.current.allStates,isBusy:F,voice:B,html:x,setHtml:N,script:T})),[g,v,S,w,C,x,T,d.isAuthenticated,d.isLoading,b.isRecording,B?.isConnected,U,$,F])};export{l as useCodicentApp};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codicent-app-sdk",
3
- "version": "0.4.27",
3
+ "version": "0.4.28",
4
4
  "description": "SDK for building AI-powered applications with Codicent",
5
5
  "type": "module",
6
6
  "main": "dist/cjs/index.js",