diff options
| author | Frank <[email protected]> | 2025-11-23 15:21:47 -0500 |
|---|---|---|
| committer | Frank <[email protected]> | 2025-11-23 15:21:47 -0500 |
| commit | bbc9142fc54fef532039f2a91c63ac2f2873af41 (patch) | |
| tree | 67b6d266cdab71cc094c92a6474fc4f44dd4ad7e /packages/console/app/src/routes/zen/util/dataDumper.ts | |
| parent | 7413c2715c208a92d1ca3c4f31988a4449b877a0 (diff) | |
| download | opencode-bbc9142fc54fef532039f2a91c63ac2f2873af41.tar.gz opencode-bbc9142fc54fef532039f2a91c63ac2f2873af41.zip | |
wip: zen
Diffstat (limited to 'packages/console/app/src/routes/zen/util/dataDumper.ts')
| -rw-r--r-- | packages/console/app/src/routes/zen/util/dataDumper.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/console/app/src/routes/zen/util/dataDumper.ts b/packages/console/app/src/routes/zen/util/dataDumper.ts new file mode 100644 index 000000000..6a064138a --- /dev/null +++ b/packages/console/app/src/routes/zen/util/dataDumper.ts @@ -0,0 +1,26 @@ +import { Resource, waitUntil } from "@opencode-ai/console-resource" + +export function createDataDumper(sessionId: string, requestId: string) { + if (Resource.App.stage !== "production") return + + let data: Record<string, any> = {} + let modelName: string | undefined + + return { + provideModel: (model?: string) => (modelName = model), + provideRequest: (request: string) => (data.request = request), + provideResponse: (response: string) => (data.response = response), + provideStream: (chunk: string) => (data.response = (data.response ?? "") + chunk), + flush: () => { + if (!modelName) return + + const str = new Date().toISOString().replace(/[^0-9]/g, "") + const yyyymmdd = str.substring(0, 8) + const hh = str.substring(8, 10) + + waitUntil( + Resource.ConsoleData.put(`${yyyymmdd}/${hh}/${modelName}/${sessionId}/${requestId}.json`, JSON.stringify(data)), + ) + }, + } +} |
