feat: add conversation management, persistence, and mobile app spec
Major enhancements to voice assistant with conversation persistence and mobile app planning: - Add conversation management with multiple active conversations - Implement conversation persistence (save/load from disk) - Add conversation selector UI for switching between conversations - Enhance agent prompt with per-conversation tmux sessions - Add mobile app technical specification (React Native + Expo) - Improve UI with active processes view and agent stream - Add ACP (Agent Control Protocol) server implementation Mobile spec details: - React Native with Expo SDK 54+ - NativeWind v5 for styling - Share Zod schemas/types from server - Android in-call experience (InCallManager) - Direct WebSocket connection via Tailscale - Same audio quality as web prototype 🤖 Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
co-authored by
Claude
Happy
parent
37a363da6d
commit
4f2c2fc14a
@@ -153,10 +153,14 @@ const manualTools = {
|
||||
/**
|
||||
* Get all tools (MCP + manual) for LLM
|
||||
* @param terminalTools - Optional custom terminal tools (per-session). If not provided, uses global singleton.
|
||||
* @param agentTools - Optional agent tools (per-session).
|
||||
*/
|
||||
export async function getAllTools(terminalTools?: Record<string, any>): Promise<Record<string, any>> {
|
||||
export async function getAllTools(
|
||||
terminalTools?: Record<string, any>,
|
||||
agentTools?: Record<string, any>
|
||||
): Promise<Record<string, any>> {
|
||||
if (terminalTools) {
|
||||
// Use provided terminal tools (per-session) and merge with Playwright
|
||||
// Use provided terminal tools (per-session) and merge with Playwright and agent tools
|
||||
const playwrightClient = await getPlaywrightMcpClient().catch((error) => {
|
||||
console.error("Failed to initialize Playwright MCP:", error);
|
||||
return null;
|
||||
@@ -169,6 +173,7 @@ export async function getAllTools(terminalTools?: Record<string, any>): Promise<
|
||||
return {
|
||||
...terminalTools,
|
||||
...playwrightTools,
|
||||
...(agentTools || {}),
|
||||
...manualTools,
|
||||
};
|
||||
}
|
||||
@@ -177,6 +182,7 @@ export async function getAllTools(terminalTools?: Record<string, any>): Promise<
|
||||
const mcpTools = await getMcpTools();
|
||||
return {
|
||||
...mcpTools,
|
||||
...(agentTools || {}),
|
||||
...manualTools,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user