@lamaranelson/xy-mind-shared-types
v1.0.46
Published
Shared TypeScript types for XY-Mind tRPC API
Readme
XY-Mind Shared Types
Type-safe interfaces for XY-Mind tRPC API communication
This package provides Zod-based TypeScript types for seamless communication between the XY-Mind Next.js backend and Chrome extension, ensuring runtime validation and compile-time type safety.
Features
- 🎯 Zod-Based Types: Schema-driven with runtime validation
- 🔄 Zero Drift: Types auto-sync with backend changes
- 🛡️ Type Safety: Full IDE autocomplete and error checking
- 📦 Small Footprint: Only essential types included
Installation
pnpm add @lamaranelson/xy-mind-shared-typesUsage
In Chrome Extension
import type {
HealthCheckOutput,
SyncTasksInput,
SyncTasksOutput,
GetBackendDataInput,
ReportActivityInput
} from '@lamaranelson/xy-mind-shared-types';
// Fully typed tRPC client calls
const health: HealthCheckOutput = await backendTrpc.extensionSync.healthCheck.query();
const syncResult: SyncTasksOutput = await backendTrpc.extensionSync.syncTasks.mutate({
tasks: [{ taskId: '123', domain: 'example.com', title: 'Test', createdAt: '...' }]
});Available Types
Extension Sync
HealthCheckOutput- Connection statusGetUserInfoOutput- User authentication stateSyncTasksInput/Output- Task synchronizationGetBackendDataInput/Output- Backend data retrievalReportActivityInput/Output- Activity reporting
Agent Management
AgentGetInputSchema- Agent retrieval parametersAgentStopInputSchema- Agent stop parametersAgentTestInputSchema- Agent testing parameters
Development
Update Backend tRPC Router
// In XY-Mind-Frontend/src/server/api/routers/
export const extensionSyncRouter = createTRPCRouter({
newEndpoint: publicProcedure
.input(z.object({ data: z.string() }))
.output(z.object({ result: z.string() }))
.query(async ({ input }) => ({ result: input.data }))
});Regenerate Types
cd packages/shared-types
pnpm generate # Updates types from schemas
pnpm build # Builds packageSync to Chrome Extension
# From XY-Mind-Frontend root
./scripts/sync-types-to-plugin.shScripts
pnpm generate- Generate types from Zod schemaspnpm build- Build the package for distributionpnpm dev- Generate types with watch mode
Package Structure
packages/shared-types/
├── src/
│ ├── schemas/
│ │ ├── agent.ts # Agent management schemas
│ │ └── extension-sync.ts # Extension communication schemas
│ ├── index.ts # Main exports (auto-generated)
│ └── generate-from-schemas.ts # Type generator
├── dist/ # Built package
└── README.md # This filePublishing
To publish updates to npm:
# From XY-Mind-Frontend root
./scripts/publish-shared-types.shThis script will:
- Generate types from schemas (
pnpm generate) - Build the package (
pnpm build) - Bump version and publish to npm
Type Safety Approach
This package uses Zod schemas as the single source of truth:
- Schema Definition: Define Zod schemas in
src/schemas/ - Type Generation: Generate TypeScript types from schemas
- Runtime Validation: Use schemas for input/output validation
- Compile-time Safety: Import generated types in client code
Note: This package is auto-generated from Zod schemas. Do not edit generated types manually. All changes must be made in the schema definitions.
