|
|
@@ -38,7 +38,11 @@ async function fixture(hermesManaged=false,bridgeVersion=2){
|
|
|
const id=randomUUID(),stored=request.method==='session.resume'?request.params.session_id:randomUUID()
|
|
|
sessions.set(id,{stored,running:false})
|
|
|
result={session_id:id,stored_session_id:stored,running:false,info:{profile_name:request.params.profile,cwd:home}}
|
|
|
- }else if(request.method==='session.active_list')result={sessions:[...sessions].map(([id,s])=>({id,status:s.running?'working':'idle'}))}
|
|
|
+ }else if(request.method==='session.active_list'){
|
|
|
+ const unknown=Object.keys(request.params??{}).filter(key=>!['profile','current_session_id'].includes(key))
|
|
|
+ if(unknown.length){connected.send(JSON.stringify({id:request.id,error:{message:`invalid params for session.active_list: ${unknown[0]}: Extra inputs are not permitted`}}));return}
|
|
|
+ result={sessions:[...sessions].map(([id,s])=>({id,status:s.running?'working':'idle'}))}
|
|
|
+ }
|
|
|
else if(request.method==='session.usage')result={context_used:123,context_max:32000}
|
|
|
else if(request.method==='image.attach_bytes')result={ref_text:'[image](/hermes/attachments/image.png)'}
|
|
|
else if(request.method==='file.attach')result={ref_text:`[host attachment](${home}/input.txt)`}
|
|
|
@@ -157,6 +161,10 @@ it('waits for native termination and VM calls before human takeover, then resume
|
|
|
expect((await f.runtime.controls.status(f.meta)).mode).toBe('agent')
|
|
|
f.setInterruptStops(true);await g.rpc('session.interrupt',{session_id:session.session_id})
|
|
|
expect((await f.runtime.controls.status(f.meta)).mode).toBe('off')
|
|
|
+ const poll=f.calls.find(c=>c.method==='session.active_list')
|
|
|
+ expect(poll).toBeDefined()
|
|
|
+ expect(poll!.params).not.toHaveProperty('session_id')
|
|
|
+ expect(poll!.params).toMatchObject({profile:'default'})
|
|
|
await expect(f.post('/tools/list',{})).rejects.toThrow()
|
|
|
}finally{await f.close()}
|
|
|
})
|