11import { Database } from 'bun:sqlite' ;
22import { afterEach , beforeEach , describe , expect , test } from 'bun:test' ;
33import { createAgent } from '@homie/agent' ;
4- import { AbortError , type Message , type ProviderAdapter } from '@homie/core' ;
4+ import { AbortError , type ProviderAdapter } from '@homie/core' ;
55import { schema } from '@homie/persistence/src/migrations' ;
66import { createSessionStore } from '@homie/persistence/src/session-store' ;
77import { createTaskStore } from '@homie/persistence/src/task-store' ;
88import { createUsageStore } from '@homie/persistence/src/usage-store' ;
9- import { createSessionManager } from '@homie/sessions' ;
109import { type CommandContext , createCommandHandler } from './commands' ;
1110import { createTaskRunner } from './task-runner' ;
1211
@@ -43,34 +42,25 @@ describe('CommandHandler', () => {
4342
4443 /** Helper: create a message and return its ID */
4544 async function addMessage ( text : string ) : Promise < string > {
46- const msg : Message = {
47- id : crypto . randomUUID ( ) ,
48- sessionId,
49- direction : 'in' ,
50- text,
51- createdAt : new Date ( ) . toISOString ( ) ,
52- rawSourceId : null ,
53- } ;
54- await sessionStore . appendMessage ( msg ) ;
45+ const msg = await sessionStore . addMessage ( sessionId , 'in' , text ) ;
5546 return msg . id ;
5647 }
5748
5849 beforeEach ( async ( ) => {
5950 db = createTestDb ( ) ;
6051 sessionStore = createSessionStore ( db ) ;
61- const sessionManager = createSessionManager ( sessionStore ) ;
6252 const usageStore = createUsageStore ( db ) ;
6353 taskStore = createTaskStore ( db ) ;
6454
65- const session = await sessionManager . resolveSession ( 'telegram' , 'chat1' , 'user1' ) ;
55+ const session = await sessionStore . getOrCreateByChat ( 'telegram' , 'chat1' , 'user1' ) ;
6656 sessionId = session . id ;
6757
6858 const provider : ProviderAdapter = {
6959 generate : async ( ) => ( { content : 'ok' , usage : undefined } ) ,
7060 } ;
7161 const agent = createAgent ( provider , { model : 'test' } ) ;
7262 const runner = createTaskRunner ( {
73- sessionManager ,
63+ sessionStore ,
7464 agent,
7565 taskStore,
7666 usageStore,
@@ -209,10 +199,9 @@ describe('CommandHandler', () => {
209199 } ;
210200 const agent = createAgent ( blockingProvider , { model : 'test' } ) ;
211201 const abortSessionStore = createSessionStore ( db ) ;
212- const sessionManager = createSessionManager ( abortSessionStore ) ;
213202 const usageStore = createUsageStore ( db ) ;
214203 const blockingRunner = createTaskRunner ( {
215- sessionManager ,
204+ sessionStore : abortSessionStore ,
216205 agent,
217206 taskStore,
218207 usageStore,
@@ -224,7 +213,7 @@ describe('CommandHandler', () => {
224213 usageStore,
225214 } ) ;
226215
227- const session = await sessionManager . resolveSession ( 'telegram' , 'chat-abort' , 'user1' ) ;
216+ const session = await abortSessionStore . getOrCreateByChat ( 'telegram' , 'chat-abort' , 'user1' ) ;
228217 await blockingRunner . submit ( {
229218 channel : 'telegram' ,
230219 chatId : 'chat-abort' ,
0 commit comments