WIP: Large refactor checkpoint

- Refactored daemon client and RPC layer
- Added new client package structure in server
- Removed legacy hooks (use-daemon-request, use-session-rpc, use-websocket)
- Added use-daemon-client hook
- Added e2e test infrastructure with Playwright
- Updated agent providers and session handling
- Removed codex-sdk patches
This commit is contained in:
Mohamed Boudra
2026-01-12 13:30:20 +07:00
parent 7c2e959c19
commit 868f9fb571
64 changed files with 5773 additions and 4741 deletions
+4 -15
View File
@@ -8,10 +8,8 @@ import type {
AgentModelDefinition,
AgentProvider,
} from "@server/server/agent/agent-sdk-types";
import type { WSInboundMessage } from "@server/server/messages";
import type { ProviderModelState } from "@/stores/session-store";
import { useSessionStore } from "@/stores/session-store";
import { generateMessageId } from "@/types/stream";
import { useFormPreferences } from "./use-form-preferences";
export type CreateAgentInitialValues = {
@@ -267,7 +265,7 @@ export function useAgentFormState(
}
const sessionState = getSessionState(serverId);
if (!sessionState?.ws?.isConnected) {
if (!sessionState?.connection?.isConnected) {
clearQueuedProviderModelRequest(serverId);
return;
}
@@ -281,18 +279,9 @@ export function useAgentFormState(
const delayMs = options?.delayMs ?? 0;
const trigger = () => {
providerModelRequestTimersRef.current.delete(serverId);
const requestId = generateMessageId();
const message: WSInboundMessage = {
type: "session",
message: {
type: "list_provider_models_request",
provider: selectedProvider,
...(options?.cwd ? { cwd: options.cwd } : {}),
requestId,
},
};
sessionState.ws?.send(message);
sessionState.methods?.requestProviderModels(selectedProvider, {
...(options?.cwd ? { cwd: options.cwd } : {}),
});
};
clearQueuedProviderModelRequest(serverId);
if (delayMs > 0) {