@bikdotai/bik-component-library 0.0.720-beta.4 → 0.0.720-beta.6
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
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js");const s="BIKChatbotDB",o=1,n="sessions";let t=null;function r(){return e.__awaiter(this,void 0,void 0,(function*(){return t||new Promise(((e,r)=>{console.log(`🗄️ [DB] Opening database: ${s}`);const i=indexedDB.open(s,o);i.onerror=()=>{console.error("❌ [DB] Failed to open database:",i.error),r(i.error)},i.onsuccess=()=>{t=i.result,console.log("✅ [DB] Database opened successfully"),e(t)},i.onupgradeneeded=e=>{console.log("🔄 [DB] Database upgrade needed");const s=e.target.result;if(!s.objectStoreNames.contains(n)){s.createObjectStore(n,{keyPath:"sessionId"}).createIndex("updatedAt","updatedAt",{unique:!1}),console.log(`📦 [DB] Created object store: ${n}`)}}}))}))}exports.loadSession=function(s){return e.__awaiter(this,void 0,void 0,(function*(){console.log(`🔍 [DB] Loading session with sessionId: "${s}"`);const e=yield r();return new Promise(((o,t)=>{const r=e.transaction([n],"readonly").objectStore(n),i=r.get(s);i.onsuccess=()=>{const e=i.result;if(e)console.log("📁 [DB] Loaded session:",{sessionId:s,recordSessionId:e.sessionId,messageCount:e.messages.length,messageRoles:e.messages.map((e=>e.role)),createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()});else{console.log(`📁 [DB] No session found for sessionId: "${s}"`);const e=r.getAllKeys();e.onsuccess=()=>{console.log("🔍 [DB] All existing session keys:",e.result)}}o(e||null)},i.onerror=()=>{console.error("❌ [DB] Failed to load session:",i.error),t(i.error)}}))}))},exports.saveSession=function(s,o){var t;return e.__awaiter(this,void 0,void 0,(function*(){console.log("💾 [DB] Saving session:",{sessionId:s,recordSessionId:o.sessionId,sessionIdMatch:s===o.sessionId,messageCount:o.messages.length,lastMessage:(null===(t=o.messages[o.messages.length-1])||void 0===t?void 0:t.role)||"none",updatedAt:new Date(o.updatedAt).toISOString()});const e=yield r();return new Promise(((t,r)=>{const i=e.transaction([n],"readwrite").objectStore(n).put(o);i.onsuccess=()=>{console.log(`✅ [DB] Session saved successfully: "${s}" (record.sessionId: "${o.sessionId}")`),t()},i.onerror=()=>{console.error("❌ [DB] Failed to save session:",i.error),r(i.error)}}))}))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var s=require("../../../_virtual/_tslib.js"),e=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var s=require("../../../_virtual/_tslib.js"),e=require("react"),t=require("../types/chat.js"),a=require("./aiService.js"),n=require("./db.js");exports.useAIChat=function(o){var i=this;let{system:l,conversationId:g,skipInitialization:d=!1,customFunctions:r,functionHandler:c,responseFormat:u,onMessageReceived:I,displayInUI:m,maxToolCalls:h,maxTokens:p,apiAdapter:v}=o;const[b,C]=e.useState((()=>t.createSessionRecord(g))),[A,j]=e.useState([]),[O,f]=e.useState(),[S,y]=e.useState(!1);e.useEffect((()=>{console.log(`🔄 [useAIChat] Loading session for conversationId: ${g}, displayInUI: ${m}`),console.log("🔍 [useAIChat] Current hook state before load:",{messagesCount:A.length,conversationMessagesCount:b.messages.length,lastResponseId:O}),n.loadSession(g).then((s=>{var e,a,n;if(s){if(console.log("📁 [useAIChat] Session loaded from DB:",{sessionId:s.sessionId,totalMessages:s.messages.length,messageRoles:s.messages.map((s=>s.role)),lastResponseId:null===(e=s.metadata)||void 0===e?void 0:e.lastResponseId}),C(s),f(null===(a=s.metadata)||void 0===a?void 0:a.lastResponseId),m)console.log(`👁️ [useAIChat] displayInUI=true - Loading ALL ${s.messages.length} messages to UI`),j(s.messages);else{const e=s.messages.filter((s=>"user"===s.role));console.log(`🔇 [useAIChat] displayInUI=false - Loading only ${e.length} user messages to UI (${s.messages.length} total in session)`),j(e)}console.log("✅ [useAIChat] Session state updated:",{conversationMessages:s.messages.length,uiMessages:m?s.messages.length:s.messages.filter((s=>"user"===s.role)).length,lastResponseId:null===(n=s.metadata)||void 0===n?void 0:n.lastResponseId})}else{console.log(`📁 [useAIChat] No existing session found for conversationId: ${g}`);const s=t.createSessionRecord(g);C(s),j([]),f(void 0),console.log("🆕 [useAIChat] Created fresh session:",{sessionId:s.sessionId,messageCount:0})}})).catch((s=>{console.error("❌ [useAIChat] Failed to load session:",s);const e=t.createSessionRecord(g);C(e),j([]),f(void 0)}))}),[g,m]);const R=e.useMemo((()=>d?null:new a.AIService({system:Object.assign(Object.assign({},l),{handleCallback:(s,e)=>{var t;null===(t=l.handleCallback)||void 0===t||t.call(l,s,e)}}),dispatchMessage:s=>{console.log("💬 [useAIChat] dispatchMessage called:",{messageId:s.id,role:s.role,content:s.content.substring(0,100)+(s.content.length>100?"...":""),displayInUI:m}),C((e=>{const t=Object.assign(Object.assign({},e),{updatedAt:Date.now(),messages:[...e.messages,s]});return console.log(`💾 [useAIChat] Saving message to session - Total messages now: ${t.messages.length}`),n.saveSession(t.sessionId,Object.assign(Object.assign({},t),{metadata:Object.assign(Object.assign({},t.metadata||{}),{lastResponseId:O})})),t})),m?(console.log("👁️ [useAIChat] displayInUI=true - Adding message to UI state"),j((e=>[...e,s]))):console.log("🔇 [useAIChat] displayInUI=false - Message saved to session but NOT added to UI state")},customFunctions:r,functionHandler:c,responseFormat:u,onMessageReceived:I,displayInUI:m,maxToolCalls:h,maxTokens:p,apiAdapter:v})),[l.id,d,u,h,p,g]);return{messages:A,conversation:b,sendMessage:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default";return s.__awaiter(i,void 0,void 0,(function*(){if(!R)return void console.warn("⚠️ [useAIChat] sendMessage called but service is null");const s={id:`u-${Date.now()}`,role:"user",content:e,timestamp:Date.now()};console.log("📤 [useAIChat] Sending user message:",{messageId:s.id,content:e.substring(0,100)+(e.length>100?"...":""),conversationId:g,displayInUI:m,currentMessagesCount:A.length,currentLastResponseId:O}),j((e=>(console.log(`📝 [useAIChat] Adding user message to UI - Previous count: ${e.length}, New count: ${e.length+1}`),[...e,s]))),C((e=>{var t;console.log("🔄 [useAIChat] Current conversation state before update:",{sessionId:e.sessionId,currentMessageCount:e.messages.length,lastMessage:(null===(t=e.messages[e.messages.length-1])||void 0===t?void 0:t.role)||"none"});const a=Object.assign(Object.assign({},e),{updatedAt:Date.now(),messages:[...e.messages,s]});return console.log(`💾 [useAIChat] Saving user message to session - Previous: ${e.messages.length}, New total: ${a.messages.length}`),console.log("🔍 [useAIChat] Session update details:",{sessionId:a.sessionId,messageCount:a.messages.length,lastResponseId:O,hasMetadata:!!a.metadata}),n.saveSession(a.sessionId,Object.assign(Object.assign({},a),{metadata:Object.assign(Object.assign({},a.metadata||{}),{lastResponseId:O})})),a})),y(!0);try{const e=yield R.generate([...A,s].map((s=>({role:s.role,content:s.content}))),g,t,O);(null==e?void 0:e.responseId)&&(f(e.responseId),C((s=>{const t=Object.assign(Object.assign({},s),{metadata:Object.assign(Object.assign({},s.metadata||{}),{lastResponseId:e.responseId})});return n.saveSession(t.sessionId,t),t})))}catch(s){const e=(null==s?void 0:s.message)||"Something went wrong. Please try again.",t={id:`err-${Date.now()}`,role:"system",content:e,timestamp:Date.now()};j((s=>[...s,t])),C((s=>{const e=Object.assign(Object.assign({},s),{updatedAt:Date.now(),messages:[...s.messages,t]});return n.saveSession(e.sessionId,Object.assign(Object.assign({},e),{metadata:Object.assign(Object.assign({},e.metadata||{}),{lastResponseId:O})})),e}))}finally{y(!1)}}))},isApiCallInProgress:S}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../_virtual/_tslib.js";const
|
|
1
|
+
import{__awaiter as e}from"../../../_virtual/_tslib.js";const s="BIKChatbotDB",o=1,n="sessions";let t=null;function r(){return e(this,void 0,void 0,(function*(){return t||new Promise(((e,r)=>{console.log(`🗄️ [DB] Opening database: ${s}`);const i=indexedDB.open(s,o);i.onerror=()=>{console.error("❌ [DB] Failed to open database:",i.error),r(i.error)},i.onsuccess=()=>{t=i.result,console.log("✅ [DB] Database opened successfully"),e(t)},i.onupgradeneeded=e=>{console.log("🔄 [DB] Database upgrade needed");const s=e.target.result;if(!s.objectStoreNames.contains(n)){s.createObjectStore(n,{keyPath:"sessionId"}).createIndex("updatedAt","updatedAt",{unique:!1}),console.log(`📦 [DB] Created object store: ${n}`)}}}))}))}function i(s,o){var t;return e(this,void 0,void 0,(function*(){console.log("💾 [DB] Saving session:",{sessionId:s,recordSessionId:o.sessionId,sessionIdMatch:s===o.sessionId,messageCount:o.messages.length,lastMessage:(null===(t=o.messages[o.messages.length-1])||void 0===t?void 0:t.role)||"none",updatedAt:new Date(o.updatedAt).toISOString()});const e=yield r();return new Promise(((t,r)=>{const i=e.transaction([n],"readwrite").objectStore(n).put(o);i.onsuccess=()=>{console.log(`✅ [DB] Session saved successfully: "${s}" (record.sessionId: "${o.sessionId}")`),t()},i.onerror=()=>{console.error("❌ [DB] Failed to save session:",i.error),r(i.error)}}))}))}function d(s){return e(this,void 0,void 0,(function*(){console.log(`🔍 [DB] Loading session with sessionId: "${s}"`);const e=yield r();return new Promise(((o,t)=>{const r=e.transaction([n],"readonly").objectStore(n),i=r.get(s);i.onsuccess=()=>{const e=i.result;if(e)console.log("📁 [DB] Loaded session:",{sessionId:s,recordSessionId:e.sessionId,messageCount:e.messages.length,messageRoles:e.messages.map((e=>e.role)),createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()});else{console.log(`📁 [DB] No session found for sessionId: "${s}"`);const e=r.getAllKeys();e.onsuccess=()=>{console.log("🔍 [DB] All existing session keys:",e.result)}}o(e||null)},i.onerror=()=>{console.error("❌ [DB] Failed to load session:",i.error),t(i.error)}}))}))}export{d as loadSession,i as saveSession};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as s}from"../../../_virtual/_tslib.js";import{useState as e,useEffect as
|
|
1
|
+
import{__awaiter as s}from"../../../_virtual/_tslib.js";import{useState as e,useEffect as t,useMemo as a}from"react";import{createSessionRecord as n}from"../types/chat.js";import{AIService as o}from"./aiService.js";import{loadSession as l,saveSession as i}from"./db.js";function g(g){var d=this;let{system:r,conversationId:c,skipInitialization:u=!1,customFunctions:m,functionHandler:I,responseFormat:h,onMessageReceived:p,displayInUI:v,maxToolCalls:b,maxTokens:C,apiAdapter:j}=g;const[A,f]=e((()=>n(c))),[O,y]=e([]),[M,R]=e(),[w,U]=e(!1);t((()=>{console.log(`🔄 [useAIChat] Loading session for conversationId: ${c}, displayInUI: ${v}`),console.log("🔍 [useAIChat] Current hook state before load:",{messagesCount:O.length,conversationMessagesCount:A.messages.length,lastResponseId:M}),l(c).then((s=>{var e,t,a;if(s){if(console.log("📁 [useAIChat] Session loaded from DB:",{sessionId:s.sessionId,totalMessages:s.messages.length,messageRoles:s.messages.map((s=>s.role)),lastResponseId:null===(e=s.metadata)||void 0===e?void 0:e.lastResponseId}),f(s),R(null===(t=s.metadata)||void 0===t?void 0:t.lastResponseId),v)console.log(`👁️ [useAIChat] displayInUI=true - Loading ALL ${s.messages.length} messages to UI`),y(s.messages);else{const e=s.messages.filter((s=>"user"===s.role));console.log(`🔇 [useAIChat] displayInUI=false - Loading only ${e.length} user messages to UI (${s.messages.length} total in session)`),y(e)}console.log("✅ [useAIChat] Session state updated:",{conversationMessages:s.messages.length,uiMessages:v?s.messages.length:s.messages.filter((s=>"user"===s.role)).length,lastResponseId:null===(a=s.metadata)||void 0===a?void 0:a.lastResponseId})}else{console.log(`📁 [useAIChat] No existing session found for conversationId: ${c}`);const s=n(c);f(s),y([]),R(void 0),console.log("🆕 [useAIChat] Created fresh session:",{sessionId:s.sessionId,messageCount:0})}})).catch((s=>{console.error("❌ [useAIChat] Failed to load session:",s);const e=n(c);f(e),y([]),R(void 0)}))}),[c,v]);const $=a((()=>u?null:new o({system:Object.assign(Object.assign({},r),{handleCallback:(s,e)=>{var t;null===(t=r.handleCallback)||void 0===t||t.call(r,s,e)}}),dispatchMessage:s=>{console.log("💬 [useAIChat] dispatchMessage called:",{messageId:s.id,role:s.role,content:s.content.substring(0,100)+(s.content.length>100?"...":""),displayInUI:v}),f((e=>{const t=Object.assign(Object.assign({},e),{updatedAt:Date.now(),messages:[...e.messages,s]});return console.log(`💾 [useAIChat] Saving message to session - Total messages now: ${t.messages.length}`),i(t.sessionId,Object.assign(Object.assign({},t),{metadata:Object.assign(Object.assign({},t.metadata||{}),{lastResponseId:M})})),t})),v?(console.log("👁️ [useAIChat] displayInUI=true - Adding message to UI state"),y((e=>[...e,s]))):console.log("🔇 [useAIChat] displayInUI=false - Message saved to session but NOT added to UI state")},customFunctions:m,functionHandler:I,responseFormat:h,onMessageReceived:p,displayInUI:v,maxToolCalls:b,maxTokens:C,apiAdapter:j})),[r.id,u,h,b,C,c]);return{messages:O,conversation:A,sendMessage:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default";return s(d,void 0,void 0,(function*(){if(!$)return void console.warn("⚠️ [useAIChat] sendMessage called but service is null");const s={id:`u-${Date.now()}`,role:"user",content:e,timestamp:Date.now()};console.log("📤 [useAIChat] Sending user message:",{messageId:s.id,content:e.substring(0,100)+(e.length>100?"...":""),conversationId:c,displayInUI:v,currentMessagesCount:O.length,currentLastResponseId:M}),y((e=>(console.log(`📝 [useAIChat] Adding user message to UI - Previous count: ${e.length}, New count: ${e.length+1}`),[...e,s]))),f((e=>{var t;console.log("🔄 [useAIChat] Current conversation state before update:",{sessionId:e.sessionId,currentMessageCount:e.messages.length,lastMessage:(null===(t=e.messages[e.messages.length-1])||void 0===t?void 0:t.role)||"none"});const a=Object.assign(Object.assign({},e),{updatedAt:Date.now(),messages:[...e.messages,s]});return console.log(`💾 [useAIChat] Saving user message to session - Previous: ${e.messages.length}, New total: ${a.messages.length}`),console.log("🔍 [useAIChat] Session update details:",{sessionId:a.sessionId,messageCount:a.messages.length,lastResponseId:M,hasMetadata:!!a.metadata}),i(a.sessionId,Object.assign(Object.assign({},a),{metadata:Object.assign(Object.assign({},a.metadata||{}),{lastResponseId:M})})),a})),U(!0);try{const e=yield $.generate([...O,s].map((s=>({role:s.role,content:s.content}))),c,t,M);(null==e?void 0:e.responseId)&&(R(e.responseId),f((s=>{const t=Object.assign(Object.assign({},s),{metadata:Object.assign(Object.assign({},s.metadata||{}),{lastResponseId:e.responseId})});return i(t.sessionId,t),t})))}catch(s){const e=(null==s?void 0:s.message)||"Something went wrong. Please try again.",t={id:`err-${Date.now()}`,role:"system",content:e,timestamp:Date.now()};y((s=>[...s,t])),f((s=>{const e=Object.assign(Object.assign({},s),{updatedAt:Date.now(),messages:[...s.messages,t]});return i(e.sessionId,Object.assign(Object.assign({},e),{metadata:Object.assign(Object.assign({},e.metadata||{}),{lastResponseId:M})})),e}))}finally{U(!1)}}))},isApiCallInProgress:w}}export{g as useAIChat};
|