diff --git a/src/Bot/Claude.hs b/src/Bot/Claude.hs index df93643..959329a 100644 --- a/src/Bot/Claude.hs +++ b/src/Bot/Claude.hs @@ -11,10 +11,7 @@ import Data.ByteString.Lazy qualified as BL import Data.Text (Text) import Data.Text qualified as T import Data.Text.Encoding qualified as TE -import Data.Text.IO qualified as TIO -import System.Directory (getTemporaryDirectory, removeFile) import System.Exit (ExitCode (..)) -import System.FilePath (()) import System.Process (readProcessWithExitCode) data ReviewOutput = ReviewOutput @@ -68,20 +65,12 @@ reviewJsonSchema = unlines invokeClaudeReview :: Text -> IO (Either String ReviewOutput) invokeClaudeReview prompt = do - tmpDir <- getTemporaryDirectory - let promptFile = tmpDir "claude-review-prompt.txt" - schemaFile = tmpDir "claude-review-schema.json" - TIO.writeFile promptFile prompt - writeFile schemaFile reviewJsonSchema (exitCode, stdout, stderr_) <- readProcessWithExitCode "claude" - [ "-p" + [ "-p", T.unpack prompt , "--output-format", "json" , "--max-turns", "1" - , "--prompt-file", promptFile - , "--json-schema", schemaFile + , "--json-schema", reviewJsonSchema ] "" - removeFile promptFile - removeFile schemaFile case exitCode of ExitSuccess -> pure $ parseClaudeJsonOutput stdout ExitFailure code -> @@ -89,16 +78,11 @@ invokeClaudeReview prompt = do invokeClaudeReply :: Text -> IO (Either String Text) invokeClaudeReply prompt = do - tmpDir <- getTemporaryDirectory - let promptFile = tmpDir "claude-reply-prompt.txt" - TIO.writeFile promptFile prompt (exitCode, stdout, stderr_) <- readProcessWithExitCode "claude" - [ "-p" + [ "-p", T.unpack prompt , "--output-format", "json" , "--max-turns", "1" - , "--prompt-file", promptFile ] "" - removeFile promptFile case exitCode of ExitSuccess -> pure $ parseClaudeTextOutput stdout ExitFailure code ->