summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app/src/routes/zen/util/dataDumper.ts
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-11-23 15:21:47 -0500
committerFrank <[email protected]>2025-11-23 15:21:47 -0500
commitbbc9142fc54fef532039f2a91c63ac2f2873af41 (patch)
tree67b6d266cdab71cc094c92a6474fc4f44dd4ad7e /packages/console/app/src/routes/zen/util/dataDumper.ts
parent7413c2715c208a92d1ca3c4f31988a4449b877a0 (diff)
downloadopencode-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.ts26
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)),
+ )
+ },
+ }
+}