cognova 0.2.9 → 0.2.11

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.
Files changed (194) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{pHQcHl8n.js → 0NJ3PaRM.js} +1 -1
  3. package/.output/public/_nuxt/{CGgZuPnb.js → 0yk-pS3R.js} +2 -2
  4. package/.output/public/_nuxt/{C8gtQaKB.js → 10_wwHSz.js} +1 -1
  5. package/.output/public/_nuxt/{BaYtugUf.js → 1zUTf4AP.js} +1 -1
  6. package/.output/public/_nuxt/{B63LIwsW.js → 2dNDtTiv.js} +3 -3
  7. package/.output/public/_nuxt/{Gy6_ehml.js → 2nOqGUPr.js} +1 -1
  8. package/.output/public/_nuxt/{C6UTTaCP.js → 3jQMk_5H.js} +1 -1
  9. package/.output/public/_nuxt/{BX6vcvkp.js → 4K03TkGA.js} +1 -1
  10. package/.output/public/_nuxt/{DjmFlCHK.js → 6boMs_nF.js} +1 -1
  11. package/.output/public/_nuxt/{CybU4a95.js → 7oCGSglN.js} +1 -1
  12. package/.output/public/_nuxt/{CfO_d5gC.js → 8q5NepGW.js} +1 -1
  13. package/.output/public/_nuxt/{DdXVAzIg.js → B93pdGAW.js} +1 -1
  14. package/.output/public/_nuxt/{D1t0272g.js → BA_pRWwX.js} +1 -1
  15. package/.output/public/_nuxt/{Be5L93GM.js → BDyn4ApB.js} +3 -3
  16. package/.output/public/_nuxt/{DHScQdvh.js → BGgwYWjH.js} +1 -1
  17. package/.output/public/_nuxt/{FYOLNuMV.js → BH0QDWEm.js} +1 -1
  18. package/.output/public/_nuxt/{BVc_fOF1.js → BHtY0l0l.js} +1 -1
  19. package/.output/public/_nuxt/{C6HEirAm.js → BIXrSYwR.js} +1 -1
  20. package/.output/public/_nuxt/BK8S2ony.js +1 -0
  21. package/.output/public/_nuxt/{DTu0K_pX.js → BKXg-alD.js} +1 -1
  22. package/.output/public/_nuxt/{Pa936BQP.js → BLnYhy_t.js} +1 -1
  23. package/.output/public/_nuxt/{wgX1ldgZ.js → BR8bKz8h.js} +1 -1
  24. package/.output/public/_nuxt/{B-513wJW.js → BS2ZNXI1.js} +1 -1
  25. package/.output/public/_nuxt/{a9_LvIZ4.js → BUghTae1.js} +1 -1
  26. package/.output/public/_nuxt/{B8Ou5yh2.js → BXuWCWsJ.js} +1 -1
  27. package/.output/public/_nuxt/{D_tCgCFX.js → BYHCP8x7.js} +1 -1
  28. package/.output/public/_nuxt/{CY3x8iy3.js → BZrSPX0S.js} +1 -1
  29. package/.output/public/_nuxt/{BNBGEa-U.js → B_wilgcd.js} +1 -1
  30. package/.output/public/_nuxt/BaZwjF8o.js +1 -0
  31. package/.output/public/_nuxt/{BwdxQyyo.js → Bciqk4dX.js} +1 -1
  32. package/.output/public/_nuxt/{BhnONkIm.js → Beom-INj.js} +1 -1
  33. package/.output/public/_nuxt/{CzurfTnt.js → BfcLZ_fC.js} +1 -1
  34. package/.output/public/_nuxt/{DwAJIRGg.js → Bk6JUtIo.js} +1 -1
  35. package/.output/public/_nuxt/BkfI94R8.js +1 -0
  36. package/.output/public/_nuxt/{Cs_udj6A.js → BmOtR1wX.js} +1 -1
  37. package/.output/public/_nuxt/{D7iYVmH6.js → BmVLxnDU.js} +1 -1
  38. package/.output/public/_nuxt/{6lIxuL6n.js → BtHQ1T0f.js} +1 -1
  39. package/.output/public/_nuxt/{RRbnMIVe.js → ByYh0uRg.js} +1 -1
  40. package/.output/public/_nuxt/{DBuW01Fx.js → C27WoGNZ.js} +1 -1
  41. package/.output/public/_nuxt/{DJ4pqxg-.js → C2FxZbO_.js} +1 -1
  42. package/.output/public/_nuxt/{myNwwtfj.js → C2vq6Te8.js} +1 -1
  43. package/.output/public/_nuxt/{C3JOLqW1.js → C39dQ88F.js} +1 -1
  44. package/.output/public/_nuxt/{4nN41Tyd.js → C3NST0BU.js} +1 -1
  45. package/.output/public/_nuxt/{BltasKce.js → C4mwL7SE.js} +1 -1
  46. package/.output/public/_nuxt/{B1vDCixB.js → C5R5QaCA.js} +1 -1
  47. package/.output/public/_nuxt/{CwOUYOe5.js → C6qKcgOY.js} +1 -1
  48. package/.output/public/_nuxt/{DGJKfutb.js → C71_a1IX.js} +1 -1
  49. package/.output/public/_nuxt/{CrjNndEO.js → C9WIgRRL.js} +1 -1
  50. package/.output/public/_nuxt/{B5JDxHxC.js → CBTkrk2M.js} +1 -1
  51. package/.output/public/_nuxt/{UbZP7wjm.js → CEnSeCqn.js} +1 -1
  52. package/.output/public/_nuxt/{Cn83lLUb.js → CKxSHyww.js} +1 -1
  53. package/.output/public/_nuxt/{CbTu13wM.js → CLfF6dSn.js} +1 -1
  54. package/.output/public/_nuxt/{Bsdcw5gr.js → CPutXj8l.js} +1 -1
  55. package/.output/public/_nuxt/{CrW6y2-s.js → CQqCBrXj.js} +1 -1
  56. package/.output/public/_nuxt/{OrcbFmB1.js → CSKJ-Ahh.js} +1 -1
  57. package/.output/public/_nuxt/{XJYoLoTi.js → CTCcEJU3.js} +1 -1
  58. package/.output/public/_nuxt/{Bk9-HxOg.js → CVFwOzbl.js} +1 -1
  59. package/.output/public/_nuxt/{CqMgz85Z.js → CVdCqaby.js} +1 -1
  60. package/.output/public/_nuxt/{Cmj-BR0q.js → CVqlefTY.js} +1 -1
  61. package/.output/public/_nuxt/CWyMCJQH.js +1 -0
  62. package/.output/public/_nuxt/{xrh9hzzH.js → CY-QVcA5.js} +2 -2
  63. package/.output/public/_nuxt/{BQ1T6zWA.js → CY-cjAwJ.js} +1 -1
  64. package/.output/public/_nuxt/{CziltI1u.js → CYPO5o_C.js} +1 -1
  65. package/.output/public/_nuxt/{C1FhgWcI.js → CZRnNmU8.js} +1 -1
  66. package/.output/public/_nuxt/{BES6FzF5.js → CZVzFlpI.js} +1 -1
  67. package/.output/public/_nuxt/{CsbHYpNi.js → CZoEPC_Q.js} +3 -3
  68. package/.output/public/_nuxt/{DvATBMPl.js → Cc-2ziaZ.js} +1 -1
  69. package/.output/public/_nuxt/{D3RROe4s.js → ChcO9s3o.js} +1 -1
  70. package/.output/public/_nuxt/{CIUZAp6g.js → Cl-LOSDV.js} +1 -1
  71. package/.output/public/_nuxt/{BwJVN9k0.js → CobqYwkp.js} +1 -1
  72. package/.output/public/_nuxt/{Cmdr5BNz.js → CqNwHCpo.js} +1 -1
  73. package/.output/public/_nuxt/{HPOXd4gt.js → CuxrHsu-.js} +1 -1
  74. package/.output/public/_nuxt/{BYIq3eP8.js → CwPdIZ9J.js} +1 -1
  75. package/.output/public/_nuxt/{D-O8wAju.js → D0ifH682.js} +1 -1
  76. package/.output/public/_nuxt/{BwVt3BzR.js → D3AZaldL.js} +1 -1
  77. package/.output/public/_nuxt/{BE_OHTBv.js → D4UJwDQJ.js} +1 -1
  78. package/.output/public/_nuxt/{hm3ShyaF.js → D5jZq8b3.js} +1 -1
  79. package/.output/public/_nuxt/{pNqWPbXW.js → D5q8SnqE.js} +1 -1
  80. package/.output/public/_nuxt/{BgG2k-zy.js → D8M722pn.js} +1 -1
  81. package/.output/public/_nuxt/{B2MVZlI-.js → D8lwrAYS.js} +1 -1
  82. package/.output/public/_nuxt/{DYu_NYj3.js → D9nmzBAw.js} +1 -1
  83. package/.output/public/_nuxt/{DBKxzQ3U.js → DC4idAGt.js} +1 -1
  84. package/.output/public/_nuxt/{qWWnsfRV.js → DEd2xVbS.js} +1 -1
  85. package/.output/public/_nuxt/{nTCVPCKg.js → DH4YkDAi.js} +1 -1
  86. package/.output/public/_nuxt/{DmmQUhEb.js → DJTCT0bl.js} +1 -1
  87. package/.output/public/_nuxt/{rRYEvKFu.js → DNP5E1bC.js} +1 -1
  88. package/.output/public/_nuxt/{DI1FIvaM.js → DO9SFIh1.js} +1 -1
  89. package/.output/public/_nuxt/DPklr_tJ.js +2 -0
  90. package/.output/public/_nuxt/{-JdScH3W.js → DQM4eBdt.js} +1 -1
  91. package/.output/public/_nuxt/{5MZBbx-H.js → DQh6I9z9.js} +1 -1
  92. package/.output/public/_nuxt/{DLuRYg2p.js → DS2wStH1.js} +1 -1
  93. package/.output/public/_nuxt/{0EY9Msdx.js → DTAStixR.js} +1 -1
  94. package/.output/public/_nuxt/{fVkHtgGF.js → DTGenhcA.js} +1 -1
  95. package/.output/public/_nuxt/{4Qy4OdWt.js → DUAAXJ6Q.js} +1 -1
  96. package/.output/public/_nuxt/{DTrFhdRO.js → DUVzIl3o.js} +1 -1
  97. package/.output/public/_nuxt/{Dj2opPDu.js → DXdwpJ-I.js} +1 -1
  98. package/.output/public/_nuxt/{C8tXHRIo.js → DY3uK7wM.js} +1 -1
  99. package/.output/public/_nuxt/{D76Dw8rw.js → DYbZBZet.js} +1 -1
  100. package/.output/public/_nuxt/{DSgubznn.js → D_4LPm1U.js} +1 -1
  101. package/.output/public/_nuxt/{D8gh62A0.js → Db4KMnt8.js} +1 -1
  102. package/.output/public/_nuxt/{JQV21WEV.js → DcJbYLTp.js} +1 -1
  103. package/.output/public/_nuxt/{D5G5UL_g.js → DfF81NlA.js} +1 -1
  104. package/.output/public/_nuxt/{HlbU_z9a.js → DhI5cA_n.js} +1 -1
  105. package/.output/public/_nuxt/{CaLO8sre.js → DhuOKJda.js} +1 -1
  106. package/.output/public/_nuxt/{CDradKPE.js → Di-Nc75e.js} +1 -1
  107. package/.output/public/_nuxt/{C2DZeD9G.js → Djs0Tlpa.js} +1 -1
  108. package/.output/public/_nuxt/DmmdPt_5.js +1 -0
  109. package/.output/public/_nuxt/{DSynhNOO.js → Dn5a-guE.js} +1 -1
  110. package/.output/public/_nuxt/{k16puyWi.js → DtjjnHnt.js} +1 -1
  111. package/.output/public/_nuxt/{CEJh-OAl.js → DuvzM-P1.js} +1 -1
  112. package/.output/public/_nuxt/{D7WbsJsa.js → DwY7rCd_.js} +1 -1
  113. package/.output/public/_nuxt/{REP2-rzf.js → Dya5oK8u.js} +1 -1
  114. package/.output/public/_nuxt/{CIJ2MJdc.js → DzA58_Lm.js} +1 -1
  115. package/.output/public/_nuxt/{Bp9kHdw6.js → DzGy77Vr.js} +1 -1
  116. package/.output/public/_nuxt/{DfIqFkyp.js → E3rXPwU8.js} +1 -1
  117. package/.output/public/_nuxt/{NusIKwmA.js → EgKnQnf-.js} +1 -1
  118. package/.output/public/_nuxt/{Clr3MHUr.js → GtEM7xVU.js} +1 -1
  119. package/.output/public/_nuxt/{DQd-GXKJ.js → H6JbrRBU.js} +1 -1
  120. package/.output/public/_nuxt/{BzTjmQCD.js → ILEvizzp.js} +1 -1
  121. package/.output/public/_nuxt/{DUDbJONU.js → JX1oqJI9.js} +1 -1
  122. package/.output/public/_nuxt/{BsnhHCOa.js → JbHa4oXq.js} +1 -1
  123. package/.output/public/_nuxt/{BE4Ndhrq.js → Kw0zy3FG.js} +1 -1
  124. package/.output/public/_nuxt/{BOGXUgGg.js → N5XtbYVD.js} +1 -1
  125. package/.output/public/_nuxt/{Oy4_RPEZ.js → PP_4ebzl.js} +1 -1
  126. package/.output/public/_nuxt/{DkhxRAb3.js → SrncdpaW.js} +1 -1
  127. package/.output/public/_nuxt/{C8wa4Wh4.js → U1MWjQMi.js} +1 -1
  128. package/.output/public/_nuxt/{CGfVTQUF.js → Um1vPiAz.js} +1 -1
  129. package/.output/public/_nuxt/{CH8kNq6W.js → XCjS70z4.js} +1 -1
  130. package/.output/public/_nuxt/{BZqdzrSw.js → YX8avsvq.js} +2 -2
  131. package/.output/public/_nuxt/{1zIQX9mh.js → _cy8R3nk.js} +1 -1
  132. package/.output/public/_nuxt/{DJoRBCVm.js → apYB9dr5.js} +1 -1
  133. package/.output/public/_nuxt/builds/latest.json +1 -1
  134. package/.output/public/_nuxt/builds/meta/515be38f-7222-4e4b-80cb-cef7594b1834.json +1 -0
  135. package/.output/public/_nuxt/entry.NKPfH2kE.css +1 -0
  136. package/.output/public/_nuxt/{B6bnHNWY.js → fbyIeNkc.js} +1 -1
  137. package/.output/public/_nuxt/{BjI5wb_q.js → g5MjDvm5.js} +1 -1
  138. package/.output/public/_nuxt/{BfECQayu.js → gTrVszwd.js} +1 -1
  139. package/.output/public/_nuxt/{TGVM5w2K.js → ixlNW2So.js} +1 -1
  140. package/.output/public/_nuxt/{CXBOHJ2W.js → nnQqD5pb.js} +1 -1
  141. package/.output/public/_nuxt/{C4ScCUjy.js → rfGRTJJW.js} +1 -1
  142. package/.output/public/_nuxt/{DCL9gWFw.js → t8aDAkZ5.js} +1 -1
  143. package/.output/public/_nuxt/{BJ8jbKuq.js → vIOxcXKR.js} +1 -1
  144. package/.output/public/_nuxt/{DA2RowFe.js → vScW1Zgm.js} +1 -1
  145. package/.output/public/_nuxt/{B6wYZD_K.js → wO6z2ugJ.js} +1 -1
  146. package/.output/public/_nuxt/{CwKe2KkK.js → x6FRJ5ac.js} +1 -1
  147. package/.output/public/_nuxt/{D7DTZ0iS.js → zq-a1TeT.js} +1 -1
  148. package/.output/server/chunks/build/{chat-CZMiB68R.mjs → chat-CR3JIVEq.mjs} +65 -11
  149. package/.output/server/chunks/build/chat-CR3JIVEq.mjs.map +1 -0
  150. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  151. package/.output/server/chunks/build/server.mjs +2 -2
  152. package/.output/server/chunks/build/styles.mjs +2 -2
  153. package/.output/server/chunks/build/{usage-CSrBh4Or.mjs → usage-BHdQZbfI.mjs} +9 -5
  154. package/.output/server/chunks/build/{usage-CSrBh4Or.mjs.map → usage-BHdQZbfI.mjs.map} +1 -1
  155. package/.output/server/chunks/nitro/nitro.mjs +1094 -863
  156. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  157. package/.output/server/chunks/routes/_ws/chat.mjs +2 -1
  158. package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
  159. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +4 -1
  160. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs.map +1 -1
  161. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  162. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  163. package/.output/server/chunks/routes/api/usage/stats.get.mjs +2 -0
  164. package/.output/server/chunks/routes/api/usage/stats.get.mjs.map +1 -1
  165. package/.output/server/package.json +1 -1
  166. package/Claude/hooks/session-start.py +23 -0
  167. package/app/components/chat/ConversationList.vue +7 -1
  168. package/app/components/chat/MessageBubble.vue +45 -1
  169. package/app/components/usage/UsageRecordsTable.vue +4 -2
  170. package/app/components/usage/UsageSourceDonut.client.vue +4 -2
  171. package/app/components/usage/UsageTopConsumers.vue +4 -2
  172. package/app/composables/useChat.ts +3 -0
  173. package/package.json +1 -1
  174. package/server/api/conversations/[id].delete.ts +9 -0
  175. package/server/api/conversations/index.get.ts +2 -1
  176. package/server/api/usage/stats.get.ts +2 -0
  177. package/server/bridge/responder.ts +276 -0
  178. package/server/bridge/router.ts +6 -4
  179. package/server/db/schema.ts +3 -1
  180. package/server/drizzle/migrations/0015_great_mephistopheles.sql +2 -0
  181. package/server/drizzle/migrations/meta/0015_snapshot.json +1972 -0
  182. package/server/drizzle/migrations/meta/_journal.json +7 -0
  183. package/server/routes/_ws/chat.ts +2 -1
  184. package/server/utils/log-token-usage.ts +1 -1
  185. package/shared/types/index.ts +6 -0
  186. package/.output/public/_nuxt/1lOC4Si0.js +0 -1
  187. package/.output/public/_nuxt/AUdD1uDD.js +0 -1
  188. package/.output/public/_nuxt/DMy2sxuC.js +0 -1
  189. package/.output/public/_nuxt/DlSJ4TF_.js +0 -1
  190. package/.output/public/_nuxt/PzQHm02e.js +0 -1
  191. package/.output/public/_nuxt/builds/meta/613faa5d-8ace-45e0-8274-b611cc4fd1ad.json +0 -1
  192. package/.output/public/_nuxt/entry.DkvuF_CR.css +0 -1
  193. package/.output/public/_nuxt/svWfwR0T.js +0 -2
  194. package/.output/server/chunks/build/chat-CZMiB68R.mjs.map +0 -1
@@ -106,6 +106,13 @@
106
106
  "when": 1771585865493,
107
107
  "tag": "0014_worthless_cable",
108
108
  "breakpoints": true
109
+ },
110
+ {
111
+ "idx": 15,
112
+ "version": "7",
113
+ "when": 1771736174854,
114
+ "tag": "0015_great_mephistopheles",
115
+ "breakpoints": true
109
116
  }
110
117
  ]
111
118
  }
@@ -97,7 +97,8 @@ async function handleSend(peer: any, message: string, conversationId?: string) {
97
97
  await db.insert(schema.conversationMessages).values({
98
98
  conversationId: convId,
99
99
  role: 'user',
100
- content: JSON.stringify([{ type: 'text', text: message }])
100
+ content: JSON.stringify([{ type: 'text', text: message }]),
101
+ source: 'web'
101
102
  })
102
103
 
103
104
  // Start SDK streaming (fire-and-forget so WS stays responsive for interrupts)
@@ -2,7 +2,7 @@ import { getDb } from '~~/server/db'
2
2
  import * as schema from '~~/server/db/schema'
3
3
 
4
4
  interface TokenUsageEntry {
5
- source: 'chat' | 'agent' | 'memory_extraction'
5
+ source: 'chat' | 'agent' | 'memory_extraction' | 'bridge'
6
6
  sourceId?: string
7
7
  sourceName?: string
8
8
  inputTokens: number
@@ -388,6 +388,7 @@ export type TokenUsageSource
388
388
  = | 'chat'
389
389
  | 'agent'
390
390
  | 'memory_extraction'
391
+ | 'bridge'
391
392
 
392
393
  export interface TokenUsageRecord {
393
394
  id: string
@@ -407,6 +408,7 @@ export interface DailyUsageData {
407
408
  chat: number
408
409
  agent: number
409
410
  memory: number
411
+ bridge: number
410
412
  totalCost: number
411
413
  inputTokens: number
412
414
  outputTokens: number
@@ -689,12 +691,15 @@ export interface ChatToolResultBlock {
689
691
 
690
692
  export type ChatContentBlock = ChatTextBlock | ChatToolUseBlock | ChatToolResultBlock
691
693
 
694
+ export type MessageSource = 'web' | 'telegram' | 'discord' | 'imessage' | 'email' | 'google'
695
+
692
696
  // Persisted message
693
697
  export interface ChatMessage {
694
698
  id: string
695
699
  conversationId: string
696
700
  role: 'user' | 'assistant'
697
701
  content: ChatContentBlock[]
702
+ source?: MessageSource
698
703
  costUsd?: number
699
704
  durationMs?: number
700
705
  createdAt: Date
@@ -709,6 +714,7 @@ export interface ChatConversation {
709
714
  summary?: string
710
715
  status: ChatSessionStatus
711
716
  totalCostUsd: number
717
+ isMain: boolean
712
718
  messageCount: number
713
719
  startedAt: Date
714
720
  endedAt?: Date
@@ -1 +0,0 @@
1
- import{a as I,G as i,R as o,ab as n,T as a,W as q,a9 as d,aj as z,ak as M,U as W,ae as h,al as J,bg as K,an as X,e as Y,q as Z,f as w,c as ee,S as p,C as t,Q as $,_ as te,aa as se,k as S}from"./B63LIwsW.js";import{_ as oe,a as ne}from"./Cmdr5BNz.js";import{_ as ae}from"./BsnhHCOa.js";import{u as ie,_ as re,a as le,b as ce}from"./svWfwR0T.js";import"./hm3ShyaF.js";import"./HlbU_z9a.js";import"./qWWnsfRV.js";import"./BZqdzrSw.js";import"./88opOQSr.js";import"./iik6CYzq.js";import"./DCL9gWFw.js";import"./BVc_fOF1.js";import"./AUdD1uDD.js";const ue={class:"flex flex-col h-full"},de={class:"p-3 border-b border-default"},me={class:"flex-1 overflow-y-auto"},_e={key:0,class:"p-4 text-sm text-dimmed text-center"},fe=["onClick"],pe={class:"flex items-start justify-between gap-2"},ve={class:"truncate text-sm font-medium"},ge={class:"flex items-center gap-2 mt-1 text-xs text-dimmed"},he={key:0},xe={key:1},Ce=I({__name:"ConversationList",props:{conversations:{},activeId:{}},emits:["select","delete","new"],setup(v,{emit:m}){const r=m;function _(f){const l=new Date(f),e=new Date().getTime()-l.getTime();return e<6e4?"just now":e<36e5?`${Math.floor(e/6e4)}m ago`:e<864e5?`${Math.floor(e/36e5)}h ago`:l.toLocaleDateString()}return(f,l)=>{const u=q;return o(),i("div",ue,[n("div",de,[a(u,{label:"New Chat",icon:"i-lucide-plus",color:"primary",variant:"soft",block:"",onClick:l[0]||(l[0]=e=>r("new"))})]),n("div",me,[v.conversations.length===0?(o(),i("div",_e," No conversations yet ")):d("",!0),(o(!0),i(z,null,M(v.conversations,e=>(o(),i("button",{key:e.id,class:W(["w-full p-3 text-left border-b border-default hover:bg-elevated/50 transition-colors group",{"bg-elevated/50":v.activeId===e.id}]),onClick:x=>r("select",e.id)},[n("div",pe,[n("div",ve,h(e.title||"Untitled"),1),a(u,{icon:"i-lucide-trash-2",variant:"ghost",color:"error",size:"xs",class:"opacity-0 group-hover:opacity-100 shrink-0",onClick:J(x=>r("delete",e.id),["stop"])},null,8,["onClick"])]),n("div",ge,[n("span",null,h(_(e.startedAt)),1),e.messageCount?(o(),i("span",he,h(e.messageCount)+" msgs",1)):d("",!0),e.totalCostUsd>0?(o(),i("span",xe,"$"+h(e.totalCostUsd.toFixed(4)),1)):d("",!0)])],10,fe))),128))])])}}}),be=Object.assign(Ce,{__name:"ChatConversationList"}),ke={class:"flex flex-1 min-w-0"},ye={class:"flex flex-col h-full"},we={key:0,class:"flex flex-col items-center justify-center h-full text-dimmed"},Ve=I({__name:"chat",setup(v){const{connectionStatus:m,sessionStatus:r,activeConversationId:_,messages:f,conversations:l,streamingText:u,streamingToolCalls:e,connect:x,sendMessage:N,interrupt:j,startNewConversation:C,loadConversation:T,loadConversations:L,deleteConversation:V}=ie(),b=K(),U=X(),g=Y(null);Z(()=>{if(x(),L(),b.query.conversation){const c=b.query.conversation,s=w(m,y=>{y==="connected"&&(s(),T(c),U.replace({query:{}}))},{immediate:!0})}else if(b.query.onboarding){const c=w(m,s=>{s==="connected"&&(c(),C(),N("Hello!"),S(k),U.replace({query:{}}))},{immediate:!0})}});function R(c){N(c),S(k)}function k(){g.value&&(g.value.scrollTop=g.value.scrollHeight)}w(u,()=>S(k));const F=ee(()=>_.value?l.value.find(s=>s.id===_.value)?.title||"Chat":"New Chat");return(c,s)=>{const y=be,B=oe,H=ae,A=q,E=ne,G=te,O=re,P=le,Q=ce;return o(),i("div",ke,[a(B,{id:"chat-sidebar","default-size":20,"min-size":15,"max-size":30,collapsible:"",resizable:"",class:"hidden lg:flex"},{default:p(()=>[a(y,{conversations:t(l),"active-id":t(_),onSelect:t(T),onDelete:t(V),onNew:t(C)},null,8,["conversations","active-id","onSelect","onDelete","onNew"])]),_:1}),a(B,{id:"chat-main",grow:""},{header:p(()=>[a(E,{title:t(F)},{right:p(()=>[t(r)==="streaming"?(o(),$(H,{key:0,color:"warning",variant:"subtle"},{default:p(()=>[...s[0]||(s[0]=[se(" Streaming ",-1)])]),_:1})):d("",!0),a(A,{icon:"i-lucide-plus",variant:"ghost",color:"neutral",class:"lg:hidden",onClick:t(C)},null,8,["onClick"])]),_:1},8,["title"])]),default:p(()=>[n("div",ye,[n("div",{ref_key:"messagesContainer",ref:g,class:"flex-1 overflow-y-auto p-4 space-y-4"},[t(f).length===0&&t(r)!=="streaming"?(o(),i("div",we,[a(G,{name:"i-lucide-message-square",class:"size-12 mb-4"}),s[1]||(s[1]=n("p",{class:"text-lg font-medium"}," Start a conversation ",-1)),s[2]||(s[2]=n("p",{class:"text-sm mt-1"}," Send a message to start chatting with Claude ",-1))])):d("",!0),(o(!0),i(z,null,M(t(f),D=>(o(),$(O,{key:D.id,message:D},null,8,["message"]))),128)),t(r)==="streaming"?(o(),$(P,{key:1,text:t(u),"tool-calls":t(e)},null,8,["text","tool-calls"])):d("",!0)],512),a(Q,{"session-status":t(r),"connection-status":t(m),onSend:R,onInterrupt:t(j)},null,8,["session-status","connection-status","onInterrupt"])])]),_:1})])}}});export{Ve as default};
@@ -1 +0,0 @@
1
- import"./B63LIwsW.js";const s=globalThis.setInterval;export{s};
@@ -1 +0,0 @@
1
- import{c as e,b as r,a5 as t}from"./B63LIwsW.js";function a(o){return e(()=>r(o)?!!t(o)?.closest("form"):!0)}export{a as u};
@@ -1 +0,0 @@
1
- import{X as e}from"./B63LIwsW.js";function a(r,u="reka"){return r||`${u}-${e?.()}`}export{a as u};
@@ -1 +0,0 @@
1
- import{d as a,n as i}from"./B63LIwsW.js";import{u}from"./DTu0K_pX.js";const r=a(()=>{const{isAuthenticated:e,isPending:t}=u();if(!t.value&&!e.value)return i("/login")});export{r as default};
@@ -1 +0,0 @@
1
- {"id":"613faa5d-8ace-45e0-8274-b611cc4fd1ad","timestamp":1771734672692,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}