@kaged/wire
Shared wire contract — Zod schemas for every HTTP request/response body, error envelope, and WebSocket message
17
source files
5
test files
~6.6k
lines
✓ 121 pass
tests
pass
typecheck
clean
lint
Test results 121
common schemas > ApiErrorSchema parses valid error
[2.02ms]
common schemas > ApiErrorSchema rejects invalid error code
[2.21ms]
common schemas > ApiErrorSchema accepts optional details
[0.200ms]
common schemas > PaginatedResponseSchema wraps items correctly
[0.520ms]
common schemas > PaginatedResponseSchema accepts null cursor
[0.160ms]
common schemas > ErrorCodeSchema accepts all known codes
[0.100ms]
common schemas > HttpMethodSchema rejects invalid methods
[0.070ms]
common schemas > UserRoleSchema accepts valid roles
[0.040ms]
WebSocket schemas > WsFrameSchema parses valid frame
[0.270ms]
WebSocket schemas > WsFrameSchema rejects invalid channel
[0.120ms]
WebSocket schemas > WsChannelSchema accepts all channels
[0.050ms]
WebSocket schemas > WsCloseCodeSchema accepts all close codes
[0.100ms]
WebSocket schemas > WsOutputTypeSchema accepts all output types
[0.100ms]
WebSocket schemas > WsEventTypeSchema accepts all event types
[0.060ms]
session schemas > SessionSummarySchema parses valid session
[0.170ms]
session schemas > SessionSummarySchema accepts null created_by_user and each kind
[0.180ms]
session schemas > SessionSummarySchema rejects unknown kind
[0.150ms]
session schemas > SessionKindSchema enumerates the three kinds
[0.030ms]
session schemas > list-sessions contract query accepts optional kind filter
[0.170ms]
session schemas > MessagePartSchema parses text part
[0.220ms]
session schemas > MessagePartSchema parses tool_call part
[0.110ms]
session schemas > MessagePartSchema parses tool_result part
[0.090ms]
session schemas > MessageItemSchema parses valid message
[0.110ms]
session schemas > CheckpointSummarySchema parses valid checkpoint
[0.060ms]
session schemas > ContextEstimateResponseSchema parses
[0.060ms]
session schemas > PostCompactRequestSchema parses minimal request
[0.060ms]
project schemas > ProjectSummarySchema parses valid project
[0.070ms]
project schemas > ProjectDetailSchema extends ProjectSummarySchema
[0.220ms]
project schemas > MeResponseSchema parses valid response
[0.170ms]
project schemas > LaunchResponseSchema parses
[0.050ms]
project schemas > DaemonStatusResponseSchema parses
[0.110ms]
local config schemas > AliasMapSchema parses
[0.060ms]
local config schemas > SpendLimitsResponseSchema parses
[0.080ms]
local config schemas > ModelMetaResponseSchema parses
[0.160ms]
plugin schemas > PluginInfoSchema parses valid plugin
[0.140ms]
task schemas > TaskInstanceSchema parses valid task
[0.060ms]
task schemas > RunTaskRequestSchema parses minimal request
[0.040ms]
workflow schemas > WorkflowInvocationSchema parses valid invocation
[0.280ms]
issue schemas > OperatorIssueSummarySchema parses valid issue
[0.090ms]
user schemas > UserRecordSchema parses valid user
[0.060ms]
user schemas > AccountResponseSchema parses
[0.040ms]
user schemas > AuthMethodsResponseSchema parses
[0.040ms]
guest schemas > GuestMeResponseSchema parses
[0.030ms]
guest schemas > GuestLoginResponseSchema parses
[0.030ms]
system schemas > DslValidationResponseSchema parses
[0.040ms]
compaction schemas > CompactionRecordSchema parses valid record
[0.090ms]
contract map > CONTRACT has entries for all expected route groups
[0.100ms]
contract map > raw routes are in RAW_ROUTES, not CONTRACT
[0.100ms]
contract map > promoted raw routes are CONTRACT entries with raw: true
[0.050ms]
contract map > CONTRACT and RAW_ROUTES have no overlap
[0.060ms]
contract map > every CONTRACT entry has a summary string
[0.230ms]
contract map > CONTRACT entries with response have valid Zod schemas
[0.220ms]
contract map > CONTRACT entries with request have valid Zod schemas
[0.150ms]
contract map > CONTRACT entries with params have valid Zod schemas
[0.200ms]
contract map > routes with path params have a params schema
[0.630ms]
contract map > params schema keys match path param segments
[0.810ms]
param scalars > UlidSchema accepts valid ULID
[0.280ms]
param scalars > UlidSchema rejects invalid values
[0.170ms]
param scalars > SlugParamSchema accepts non-empty strings
[0.030ms]
param scalars > SlugParamSchema rejects empty string
[0.060ms]
param scalars > IntParamSchema accepts digit strings
[0.040ms]
param scalars > IntParamSchema rejects non-digit strings
[0.090ms]
provider model schemas > ProviderModelInfoSchema accepts manual flag
[0.090ms]
provider model schemas > SaveModelsRequestSchema accepts manual flag
[0.070ms]
provider model schemas > DiscoverModelsResponseSchema carries manual flag in merged
[0.080ms]
NotificationEventSchema > accepts valid attention.required event
[0.180ms]
NotificationEventSchema > rejects attention.required event without attention_kind
[0.160ms]
NotificationEventSchema > accepts valid run.completed event
[0.080ms]
NotificationEventSchema > rejects run.completed event without run_outcome
[0.090ms]
NotificationEventSchema > rejects unknown class value
[0.270ms]
NotificationEventSchema > rejects empty string fields
[0.270ms]
NotificationEventSchema > rejects invalid emitted_at values
[0.140ms]
SessionBellValueSchema > accepts enum values
[0.090ms]
SessionBellValueSchema > rejects invalid values
[0.080ms]
DeliveryOutcomeSchema > accepts delivered outcomes
[0.080ms]
DeliveryOutcomeSchema > accepts failed outcomes
[0.050ms]
DeliveryOutcomeSchema > rejects failed outcomes without reason
[0.060ms]
CreatePushSubscriptionRequestSchema > accepts a full subscription
[0.100ms]
CreatePushSubscriptionRequestSchema > rejects non-url endpoint
[0.450ms]
CreatePushSubscriptionRequestSchema > rejects empty subscription keys
[0.140ms]
VapidPublicKeyResponseSchema > requires public_key and fingerprint
[0.100ms]
contract field names > no contract entry uses 'body' as a field name (must be 'request')
[0.130ms]
ErrorCodeSchema — git domain codes > accepts every git.* code from specs/git.md §7
[0.130ms]
ErrorCodeSchema — git domain codes > still accepts the pre-existing generic codes
[0.060ms]
ErrorCodeSchema — git domain codes > rejects an unnamespaced git code
[0.070ms]
GitRepoPathSchema > accepts a root-relative path
[0.380ms]
GitRepoPathSchema > rejects an absolute path (leading slash)
[0.150ms]
GitRepoPathSchema > rejects an empty string
[0.080ms]
GitStatusEntrySchema > accepts an ordinary modified entry
[0.090ms]
GitStatusEntrySchema > accepts a rename entry with origPath
[0.080ms]
GitStatusEntrySchema > accepts a conflicted entry with ConflictKind
[0.050ms]
GitStatusEntrySchema > accepts an untracked entry
[0.050ms]
GitStatusEntrySchema > rejects an invalid XY char
[0.090ms]
GitStatusEntrySchema > rejects an unknown conflict kind
[0.080ms]
GitRootSummarySchema > accepts a valid root summary with branch info
[0.100ms]
GitRootSummarySchema > accepts an invalid root (no repo) with reason, branch omitted
[0.060ms]
GitRootSummarySchema > accepts an unborn branch (oid null, head present)
[0.080ms]
GitRootSummarySchema > accepts a detached HEAD (head null, detached true)
[0.070ms]
GitRootSummarySchema > rejects negative ahead/behind counts
[0.110ms]
GitDiffResultSchema > accepts a text diff
[0.060ms]
GitDiffResultSchema > accepts a truncated text diff
[0.040ms]
GitDiffResultSchema > accepts a binary diff with null byte counts
[0.040ms]
GitDiffResultSchema > accepts a too-large diff
[0.050ms]
GitDiffResultSchema > rejects a text diff missing the modified side
[0.080ms]
GitDiffResultSchema > rejects an unknown kind
[0.090ms]
GitPullResultSchema > accepts an ok pull
[0.070ms]
GitPullResultSchema > accepts a conflicts pull with conflicted paths
[0.080ms]
GitPullResultSchema > rejects a conflicts pull without conflicted array
[0.080ms]
GitPathsRequestSchema > accepts root with a non-empty paths array
[0.050ms]
GitPathsRequestSchema > rejects an empty paths array
[0.060ms]
GitPathsRequestSchema > rejects a missing root
[0.080ms]
GitCommitRequestSchema > accepts root with a non-empty message
[0.040ms]
GitCommitRequestSchema > rejects an empty commit message
[0.050ms]
GitStashRequestSchema > accepts a minimal stash (root only)
[0.050ms]
GitStashRequestSchema > accepts a stash with message and includeUntracked
[0.040ms]
GitStashPopResponseSchema > accepts a clean pop (empty conflicts)
[0.070ms]
GitStashPopResponseSchema > accepts a conflicting pop with paths
[0.080ms]
message regenerate schemas > MessageItemSchema parses regenerate metadata fields
[0.980ms]
message regenerate schemas > MessageItemSchema parses without regenerate metadata fields
[0.080ms]
message regenerate schemas > RegenerateReceiptSchema parses minimal receipt
[0.070ms]
message regenerate schemas > RegenerateReceiptSchema parses queued receipt details
[0.040ms]