mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
feat: expose skills and $ autocomplete (#92)
This commit is contained in:
@@ -177,6 +177,18 @@ export class RpcGateway {
|
||||
}
|
||||
}
|
||||
|
||||
async listSkills(sessionId: string): Promise<{
|
||||
success: boolean
|
||||
skills?: Array<{ name: string; description?: string }>
|
||||
error?: string
|
||||
}> {
|
||||
return await this.sessionRpc(sessionId, 'listSkills', {}) as {
|
||||
success: boolean
|
||||
skills?: Array<{ name: string; description?: string }>
|
||||
error?: string
|
||||
}
|
||||
}
|
||||
|
||||
private async sessionRpc(sessionId: string, method: string, params: unknown): Promise<unknown> {
|
||||
return await this.rpcCall(`${sessionId}:${method}`, params)
|
||||
}
|
||||
|
||||
@@ -316,4 +316,12 @@ export class SyncEngine {
|
||||
}> {
|
||||
return await this.rpcGateway.listSlashCommands(sessionId, agent)
|
||||
}
|
||||
|
||||
async listSkills(sessionId: string): Promise<{
|
||||
success: boolean
|
||||
skills?: Array<{ name: string; description?: string }>
|
||||
error?: string
|
||||
}> {
|
||||
return await this.rpcGateway.listSkills(sessionId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,5 +347,28 @@ export function createSessionsRoutes(getSyncEngine: () => SyncEngine | null): Ho
|
||||
}
|
||||
})
|
||||
|
||||
app.get('/sessions/:id/skills', async (c) => {
|
||||
const engine = requireSyncEngine(c, getSyncEngine)
|
||||
if (engine instanceof Response) {
|
||||
return engine
|
||||
}
|
||||
|
||||
// Session must exist but doesn't need to be active
|
||||
const sessionResult = requireSessionFromParam(c, engine)
|
||||
if (sessionResult instanceof Response) {
|
||||
return sessionResult
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await engine.listSkills(sessionResult.sessionId)
|
||||
return c.json(result)
|
||||
} catch (error) {
|
||||
return c.json({
|
||||
success: false,
|
||||
error: error instanceof Error ? error.message : 'Failed to list skills'
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
return app
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user