diff options
| author | Adam Malczewski <[email protected]> | 2026-05-19 19:40:21 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-05-19 19:40:21 +0900 |
| commit | f78a91c20f658dd404277919a0b872b352c99bb6 (patch) | |
| tree | 58cfffb655da4443f4b7a39543b86f988f15239f /packages/frontend/src/lib/types.ts | |
| download | dispatch-main.tar.gz dispatch-main.zip | |
- Bun monorepo with @dispatch/core, @dispatch/api, @dispatch/frontend
- Agent runtime with Vercel AI SDK, streaming via WebSocket
- Tools: read_file, write_file, list_files (scoped to working directory)
- Hono API server with POST /chat, GET /status, GET /health, WS /ws
- Svelte 5 + DaisyUI frontend with chat UI, theme switcher, copy button
- OpenCode Go (Zen) as LLM provider, deepseek-v4-flash-free model
- Docker setup (dev + prod) with bin/ scripts and gopass secrets
- Biome v2 linting/formatting, Vitest tests (44 passing)
- Debug info attached to error messages for diagnostics
Diffstat (limited to 'packages/frontend/src/lib/types.ts')
| -rw-r--r-- | packages/frontend/src/lib/types.ts | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/packages/frontend/src/lib/types.ts b/packages/frontend/src/lib/types.ts new file mode 100644 index 0000000..6edb550 --- /dev/null +++ b/packages/frontend/src/lib/types.ts @@ -0,0 +1,57 @@ +export interface ToolCallDisplay { + id: string; + name: string; + arguments: Record<string, unknown>; + result?: string; + isError?: boolean; + isExpanded: boolean; +} + +export interface DebugInfo { + timestamp: string; + error?: string; + model?: string; + apiBase?: string; + connectionStatus?: string; + agentStatus?: string; + rawEvent?: unknown; + httpStatus?: number; + httpBody?: string; +} + +export interface ChatMessage { + id: string; + role: "user" | "assistant"; + content: string; + toolCalls?: ToolCallDisplay[]; + isStreaming?: boolean; + debugInfo?: DebugInfo; +} + +export type ConnectionStatus = "connecting" | "connected" | "disconnected"; + +export type AgentEvent = + | { type: "status"; status: "idle" | "running" | "error" } + | { type: "text-delta"; delta: string } + | { + type: "tool-call"; + toolCall: { + id: string; + name: string; + arguments: Record<string, unknown>; + }; + } + | { + type: "tool-result"; + toolResult: { toolCallId: string; result: string; isError: boolean }; + } + | { type: "error"; error: string } + | { + type: "done"; + message: { + role: string; + content: string; + toolCalls?: unknown[]; + toolResults?: unknown[]; + }; + }; |
