Move src/ → apps/server/ and packages/web/ → apps/web/ to adopt standard monorepo conventions (apps/ for runnable apps, packages/ for reusable libraries). Update all config files, shared package imports, test fixtures, and documentation to reflect new paths. Key fixes: - Update workspace config to ["apps/*", "packages/*"] - Update tsconfig.json rootDir/include for apps/server/ - Add apps/web/** to vitest exclude list - Update drizzle.config.ts schema path - Fix ensure-schema.ts migration path detection (3 levels up in dev, 2 levels up in dist) - Fix tests/integration/cli-server.test.ts import paths - Update packages/shared imports to apps/server/ paths - Update all docs/ files with new paths
33 lines
838 B
TypeScript
33 lines
838 B
TypeScript
/**
|
|
* Generic Fallback Stream Parser
|
|
*
|
|
* For providers without a dedicated parser. Treats each line as text output.
|
|
* Accumulates all output and emits a final result event on stream end.
|
|
*/
|
|
|
|
import type { StreamEvent, StreamParser } from '../stream-types.js';
|
|
|
|
export class GenericStreamParser implements StreamParser {
|
|
readonly provider = 'generic';
|
|
private accumulated: string[] = [];
|
|
|
|
parseLine(line: string): StreamEvent[] {
|
|
if (!line) return [];
|
|
|
|
this.accumulated.push(line);
|
|
|
|
// Emit each line as a text delta
|
|
return [{ type: 'text_delta', text: line + '\n' }];
|
|
}
|
|
|
|
end(): StreamEvent[] {
|
|
// Emit the accumulated output as the result
|
|
const fullText = this.accumulated.join('\n');
|
|
this.accumulated = [];
|
|
|
|
if (!fullText) return [];
|
|
|
|
return [{ type: 'result', text: fullText }];
|
|
}
|
|
}
|