Frank 1 settimana fa
parent
commit
85d0ed5989

+ 10 - 2
packages/console/app/src/routes/zen/util/handler.ts

@@ -119,6 +119,9 @@ export async function handler(
           Object.entries(providerInfo.headerMappings ?? {}).forEach(([k, v]) => {
             headers.set(k, headers.get(v)!)
           })
+          Object.entries(providerInfo.headers ?? {}).forEach(([k, v]) => {
+            headers.set(k, v)
+          })
           headers.delete("host")
           headers.delete("content-length")
           headers.delete("x-opencode-request")
@@ -250,13 +253,18 @@ export async function handler(
                 part = part.trim()
                 usageParser.parse(part)
 
-                if (providerInfo.format !== opts.format) {
+                if (providerInfo.bodyModifier) {
+                  for (const [k, v] of Object.entries(providerInfo.bodyModifier)) {
+                    part = part.replace(k, v)
+                  }
+                  c.enqueue(encoder.encode(part + "\n\n"))
+                } else if (providerInfo.format !== opts.format) {
                   part = streamConverter(part)
                   c.enqueue(encoder.encode(part + "\n\n"))
                 }
               }
 
-              if (providerInfo.format === opts.format) {
+              if (!providerInfo.bodyModifier && providerInfo.format === opts.format) {
                 c.enqueue(value)
               }
 

+ 2 - 1
packages/console/core/src/model.ts

@@ -53,7 +53,8 @@ export namespace ZenData {
         weight: z.number().optional(),
         disabled: z.boolean().optional(),
         storeModel: z.string().optional(),
-        headerMappings: z.record(z.string(), z.string()).optional(),
+        headers: z.record(z.string(), z.string()).optional(),
+        bodyModifier: z.record(z.string(), z.string()).optional(),
       }),
     ),
   })