disable image resizing
This commit is contained in:
@@ -43,7 +43,6 @@ import { Shell } from "@/shell/shell"
|
|||||||
import { ShellID } from "@/tool/shell/id"
|
import { ShellID } from "@/tool/shell/id"
|
||||||
import { AppFileSystem } from "@opencode-ai/core/filesystem"
|
import { AppFileSystem } from "@opencode-ai/core/filesystem"
|
||||||
import { Truncate } from "@/tool/truncate"
|
import { Truncate } from "@/tool/truncate"
|
||||||
import { Image } from "@/image/image"
|
|
||||||
import { decodeDataUrl } from "@/util/data-url"
|
import { decodeDataUrl } from "@/util/data-url"
|
||||||
import { Process } from "@/util/process"
|
import { Process } from "@/util/process"
|
||||||
import { Cause, Effect, Exit, Latch, Layer, Option, Scope, Context, Schema, Types } from "effect"
|
import { Cause, Effect, Exit, Latch, Layer, Option, Scope, Context, Schema, Types } from "effect"
|
||||||
@@ -81,10 +80,10 @@ const elog = EffectLogger.create({ service: "session.prompt" })
|
|||||||
|
|
||||||
export interface Interface {
|
export interface Interface {
|
||||||
readonly cancel: (sessionID: SessionID) => Effect.Effect<void>
|
readonly cancel: (sessionID: SessionID) => Effect.Effect<void>
|
||||||
readonly prompt: (input: PromptInput) => Effect.Effect<MessageV2.WithParts, Image.Error>
|
readonly prompt: (input: PromptInput) => Effect.Effect<MessageV2.WithParts>
|
||||||
readonly loop: (input: LoopInput) => Effect.Effect<MessageV2.WithParts>
|
readonly loop: (input: LoopInput) => Effect.Effect<MessageV2.WithParts>
|
||||||
readonly shell: (input: ShellInput) => Effect.Effect<MessageV2.WithParts>
|
readonly shell: (input: ShellInput) => Effect.Effect<MessageV2.WithParts>
|
||||||
readonly command: (input: CommandInput) => Effect.Effect<MessageV2.WithParts, Image.Error>
|
readonly command: (input: CommandInput) => Effect.Effect<MessageV2.WithParts>
|
||||||
readonly resolvePromptParts: (template: string) => Effect.Effect<PromptInput["parts"]>
|
readonly resolvePromptParts: (template: string) => Effect.Effect<PromptInput["parts"]>
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +108,6 @@ export const layer = Layer.effect(
|
|||||||
const lsp = yield* LSP.Service
|
const lsp = yield* LSP.Service
|
||||||
const registry = yield* ToolRegistry.Service
|
const registry = yield* ToolRegistry.Service
|
||||||
const truncate = yield* Truncate.Service
|
const truncate = yield* Truncate.Service
|
||||||
const image = yield* Image.Service
|
|
||||||
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner
|
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner
|
||||||
const scope = yield* Scope.Scope
|
const scope = yield* Scope.Scope
|
||||||
const instruction = yield* Instruction.Service
|
const instruction = yield* Instruction.Service
|
||||||
@@ -126,7 +124,7 @@ export const layer = Layer.effect(
|
|||||||
return {
|
return {
|
||||||
cancel: (sessionID: SessionID) => cancel(sessionID),
|
cancel: (sessionID: SessionID) => cancel(sessionID),
|
||||||
resolvePromptParts: (template: string) => resolvePromptParts(template),
|
resolvePromptParts: (template: string) => resolvePromptParts(template),
|
||||||
prompt: (input: PromptInput) => prompt(input).pipe(Effect.catch(Effect.die)),
|
prompt: (input: PromptInput) => prompt(input),
|
||||||
} satisfies TaskPromptOps
|
} satisfies TaskPromptOps
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1292,9 +1290,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the
|
|||||||
{ message: info, parts: resolvedParts },
|
{ message: info, parts: resolvedParts },
|
||||||
)
|
)
|
||||||
|
|
||||||
const parts = yield* Effect.forEach(resolvedParts, (part) =>
|
const parts = resolvedParts
|
||||||
part.type === "file" && part.mime.startsWith("image/") ? image.normalize(part) : Effect.succeed(part),
|
|
||||||
)
|
|
||||||
|
|
||||||
const parsed = MessageV2.Info.zod.safeParse(info)
|
const parsed = MessageV2.Info.zod.safeParse(info)
|
||||||
if (!parsed.success) {
|
if (!parsed.success) {
|
||||||
@@ -1393,9 +1389,9 @@ NOTE: At any point in time through this workflow you should feel free to ask the
|
|||||||
return { info, parts }
|
return { info, parts }
|
||||||
}, Effect.scoped)
|
}, Effect.scoped)
|
||||||
|
|
||||||
const prompt: (input: PromptInput) => Effect.Effect<MessageV2.WithParts, Image.Error> = Effect.fn(
|
const prompt: (input: PromptInput) => Effect.Effect<MessageV2.WithParts> = Effect.fn("SessionPrompt.prompt")(function* (
|
||||||
"SessionPrompt.prompt",
|
input: PromptInput,
|
||||||
)(function* (input: PromptInput) {
|
) {
|
||||||
const session = yield* sessions.get(input.sessionID).pipe(Effect.orDie)
|
const session = yield* sessions.get(input.sessionID).pipe(Effect.orDie)
|
||||||
yield* revert.cleanup(session)
|
yield* revert.cleanup(session)
|
||||||
const message = yield* createUserMessage(input)
|
const message = yield* createUserMessage(input)
|
||||||
@@ -1813,7 +1809,6 @@ export const defaultLayer = Layer.suspend(() =>
|
|||||||
Layer.provide(Session.defaultLayer),
|
Layer.provide(Session.defaultLayer),
|
||||||
Layer.provide(SessionRevert.defaultLayer),
|
Layer.provide(SessionRevert.defaultLayer),
|
||||||
Layer.provide(SessionSummary.defaultLayer),
|
Layer.provide(SessionSummary.defaultLayer),
|
||||||
Layer.provide(Image.defaultLayer),
|
|
||||||
Layer.provide(
|
Layer.provide(
|
||||||
Layer.mergeAll(
|
Layer.mergeAll(
|
||||||
Agent.defaultLayer,
|
Agent.defaultLayer,
|
||||||
|
|||||||
Reference in New Issue
Block a user