Type definitions and Zod schemas for the EnclaveJS streaming runtime protocol
npm install @enclave-vm/types


> Type definitions and Zod schemas for the EnclaveJS streaming runtime protocol
The @enclave-vm/types package provides TypeScript type definitions and runtime validation schemas for the EnclaveJS streaming protocol. It serves as the foundation for type-safe communication between EnclaveJS components.
- TypeScript-First: Full TypeScript support with strict typing
- Zod Schemas: Runtime validation for all protocol messages
- Protocol Types: Complete type definitions for streaming messages
- Session Types: Types for session management and state
- Tool Types: Type definitions for tool calls and responses
``bash`
npm install @enclave-vm/typesor
yarn add @enclave-vm/typesor
pnpm add @enclave-vm/types
`typescript
import { StreamMessage, ToolCallMessage, ToolResultMessage, SessionState } from '@enclave-vm/types';
// Type-safe message handling
function handleMessage(message: StreamMessage) {
switch (message.type) {
case 'tool_call':
const toolCall = message as ToolCallMessage;
console.log(Tool: ${toolCall.name}, Args:, toolCall.args);Result:
break;
case 'tool_result':
const result = message as ToolResultMessage;
console.log(, result.data);`
break;
}
}
`typescript
import { StreamMessageSchema, StreamMessage } from '@enclave-vm/types';
// Validate incoming messages
const message = StreamMessageSchema.parse(rawMessage);
`
`typescript
import { ToolCallMessage, ToolResultMessage } from '@enclave-vm/types';
const toolCall: ToolCallMessage = {
type: 'tool_call',
id: 'call_123',
name: 'getUser',
args: { userId: 1 },
};
const toolResult: ToolResultMessage = {
type: 'tool_result',
id: 'call_123',
data: { name: 'Alice', email: 'alice@example.com' },
};
`
`typescript
import { SessionState, SessionStatus } from '@enclave-vm/types';
const session: SessionState = {
id: 'session_abc',
status: 'running',
createdAt: new Date(),
toolCallCount: 5,
};
`
All types have corresponding Zod schemas for runtime validation:
`typescript
import { StreamMessageSchema, ToolCallMessageSchema, SessionStateSchema } from '@enclave-vm/types';
// Parse and validate
const message = StreamMessageSchema.safeParse(untrustedData);
if (message.success) {
// message.data is typed correctly
handleMessage(message.data);
} else {
console.error('Invalid message:', message.error);
}
``
| Package | Description |
| ------------------------------------------- | ---------------------------------- |
| @enclave-vm/stream | Streaming protocol implementation |
| @enclave-vm/broker | Tool broker and session management |
| @enclave-vm/client | Browser/Node.js client SDK |
| @enclave-vm/react | React hooks and components |
| @enclave-vm/runtime | Standalone runtime worker |
Apache-2.0