Skip to content

Commit 440f7cf

Browse files
fazxesclaude
andcommitted
feat(shared-schemas): add comprehensive SDK schemas validated against real data
- Add type-safe schemas for all Claude Agent SDK message types - SDKSystemMessageSchema: tools, agents, slash_commands, model, cwd, etc. - SDKStreamEventMessageSchema: streaming events with delta variations - SDKAssistantMessageSchema: complete response with usage stats - SDKResultMessageSchema: modelUsage breakdown, costs, durations - SDKUsageSchema: token counts, cache stats, service tier - Add getSDKMessageSchema() helper for type-based schema selection - Fix file-change-item header height consistency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 8417bbd commit 440f7cf

3 files changed

Lines changed: 345 additions & 22 deletions

File tree

‎apps/agent/src/components/git/file-change-item.tsx‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { DiffViewer } from './diff-viewer';
77
import type { FileChange } from '../../stores/file-store';
88

99
import { FileIcon } from '@/components/files/file-icon';
10+
import { HEIGHTS } from '@/lib/constants';
1011

1112
export interface FileChangeItemProps {
1213
readonly file: FileChange;
@@ -37,11 +38,14 @@ export const FileChangeItem: React.FC<FileChangeItemProps> = ({
3738
return (
3839
<div className="bg-background">
3940
{/* File Header */}
40-
<div className="w-full flex items-center gap-2 px-3 py-2">
41+
<div
42+
className="w-full flex items-center gap-2 px-3 border-b border-border"
43+
style={{ height: HEIGHTS.headerBar }}
44+
>
4145
{/* File Button - Clickable with border, takes full width */}
4246
<button
4347
onClick={handleFileClick}
44-
className="flex items-center gap-2 px-2 py-1 rounded-md border border-border bg-muted/50 hover:bg-accent hover:border-accent transition-colors flex-1 min-w-0"
48+
className="flex items-center gap-2 px-2 py-0.5 rounded-md border border-border bg-muted/50 hover:bg-accent hover:border-accent transition-colors flex-1 min-w-0"
4549
>
4650
<FileIcon fileName={fileName} className="h-4 w-4 shrink-0" />
4751
<span className="text-sm font-medium text-foreground truncate flex-1 text-left">

‎packages/shared-schemas/src/index.ts‎

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,55 @@ export {
4949
type ToolCallStatus,
5050
} from './agent';
5151

52-
// SDK boundary handling
52+
// SDK boundary handling - comprehensive schemas validated against real SDK data
5353
export {
54+
// Base schemas
55+
SDKUsageSchema,
56+
SDKModelUsageEntrySchema,
57+
SDKModelUsageSchema,
58+
// Content block schemas
59+
SDKTextBlockSchema,
60+
SDKThinkingBlockSchema,
61+
SDKToolUseBlockSchema,
62+
SDKContentBlockSchema,
63+
// Stream event schemas
64+
SDKStreamDeltaSchema,
65+
SDKStreamMessageSchema,
66+
SDKStreamContentBlockSchema,
67+
SDKStreamEventPayloadSchema,
68+
// Top-level message schemas
69+
SDKSystemMessageSchema,
70+
SDKStreamEventMessageSchema,
71+
SDKAssistantMessageSchema,
72+
SDKUserMessageSchema,
73+
SDKResultMessageSchema,
74+
// Permissive base schema
5475
SDKMessageSchema,
76+
// Tool result
5577
SDKToolResultSchema,
56-
SDKUsageSchema,
78+
// Utilities
5779
processSDKResponse,
80+
getSDKMessageSchema,
81+
// Types
5882
type SafeParseResult,
83+
type SDKUsage,
84+
type SDKModelUsageEntry,
85+
type SDKModelUsage,
86+
type SDKTextBlock,
87+
type SDKThinkingBlock,
88+
type SDKToolUseBlock,
89+
type SDKContentBlock,
90+
type SDKStreamDelta,
91+
type SDKStreamMessage,
92+
type SDKStreamContentBlock,
93+
type SDKStreamEventPayload,
94+
type SDKSystemMessage,
95+
type SDKStreamEventMessage,
96+
type SDKAssistantMessage,
97+
type SDKUserMessage,
98+
type SDKResultMessage,
5999
type SDKMessage,
60100
type SDKToolResult,
61-
type SDKUsage,
62101
} from './sdk';
63102

64103
// Settings schemas with coercion

0 commit comments

Comments
 (0)