- Remove legacy compute-worker monolith under `src/compute/`, including PDF and Whisper inference, control-plane, and runtime orchestration - Move PDF and Whisper inference logic to new `src/inference/` module - Move control-plane, orchestrator, and state machine logic to `src/operations/` - Move NATS/JetStream adapters to `src/infrastructure/` - Move job orchestration, progress, and artifact persistence to `src/jobs/` - Update imports throughout tests and main app to reference new module structure - Update Dockerfile and scripts to use new asset paths - Add new entrypoints: `src/api/app.ts` and `src/api/contracts.ts` - Remove obsolete files and update `.gitignore` for new dev artifacts This refactor modularizes the compute-worker, improving maintainability and separation of concerns. No functional changes to inference or orchestration logic. BREAKING CHANGE: compute-worker internal APIs, directory structure, and imports have changed; downstream code must update imports and integration points.
17 lines
428 B
TypeScript
17 lines
428 B
TypeScript
export type JsonCodec<T> = {
|
|
encode(value: T): Uint8Array;
|
|
decode(data: Uint8Array): T;
|
|
};
|
|
|
|
export function createJsonCodec<T>(): JsonCodec<T> {
|
|
const encoder = new TextEncoder();
|
|
const decoder = new TextDecoder();
|
|
return {
|
|
encode(value: T): Uint8Array {
|
|
return encoder.encode(JSON.stringify(value));
|
|
},
|
|
decode(data: Uint8Array): T {
|
|
return JSON.parse(decoder.decode(data)) as T;
|
|
},
|
|
};
|
|
}
|