Fix call to Claude Code CLI
This commit is contained in:
parent
106a44571c
commit
066d38d738
@ -11,10 +11,7 @@ import Data.ByteString.Lazy qualified as BL
|
|||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Data.Text qualified as T
|
import Data.Text qualified as T
|
||||||
import Data.Text.Encoding qualified as TE
|
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.Exit (ExitCode (..))
|
||||||
import System.FilePath ((</>))
|
|
||||||
import System.Process (readProcessWithExitCode)
|
import System.Process (readProcessWithExitCode)
|
||||||
|
|
||||||
data ReviewOutput = ReviewOutput
|
data ReviewOutput = ReviewOutput
|
||||||
@ -68,20 +65,12 @@ reviewJsonSchema = unlines
|
|||||||
|
|
||||||
invokeClaudeReview :: Text -> IO (Either String ReviewOutput)
|
invokeClaudeReview :: Text -> IO (Either String ReviewOutput)
|
||||||
invokeClaudeReview prompt = do
|
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"
|
(exitCode, stdout, stderr_) <- readProcessWithExitCode "claude"
|
||||||
[ "-p"
|
[ "-p", T.unpack prompt
|
||||||
, "--output-format", "json"
|
, "--output-format", "json"
|
||||||
, "--max-turns", "1"
|
, "--max-turns", "1"
|
||||||
, "--prompt-file", promptFile
|
, "--json-schema", reviewJsonSchema
|
||||||
, "--json-schema", schemaFile
|
|
||||||
] ""
|
] ""
|
||||||
removeFile promptFile
|
|
||||||
removeFile schemaFile
|
|
||||||
case exitCode of
|
case exitCode of
|
||||||
ExitSuccess -> pure $ parseClaudeJsonOutput stdout
|
ExitSuccess -> pure $ parseClaudeJsonOutput stdout
|
||||||
ExitFailure code ->
|
ExitFailure code ->
|
||||||
@ -89,16 +78,11 @@ invokeClaudeReview prompt = do
|
|||||||
|
|
||||||
invokeClaudeReply :: Text -> IO (Either String Text)
|
invokeClaudeReply :: Text -> IO (Either String Text)
|
||||||
invokeClaudeReply prompt = do
|
invokeClaudeReply prompt = do
|
||||||
tmpDir <- getTemporaryDirectory
|
|
||||||
let promptFile = tmpDir </> "claude-reply-prompt.txt"
|
|
||||||
TIO.writeFile promptFile prompt
|
|
||||||
(exitCode, stdout, stderr_) <- readProcessWithExitCode "claude"
|
(exitCode, stdout, stderr_) <- readProcessWithExitCode "claude"
|
||||||
[ "-p"
|
[ "-p", T.unpack prompt
|
||||||
, "--output-format", "json"
|
, "--output-format", "json"
|
||||||
, "--max-turns", "1"
|
, "--max-turns", "1"
|
||||||
, "--prompt-file", promptFile
|
|
||||||
] ""
|
] ""
|
||||||
removeFile promptFile
|
|
||||||
case exitCode of
|
case exitCode of
|
||||||
ExitSuccess -> pure $ parseClaudeTextOutput stdout
|
ExitSuccess -> pure $ parseClaudeTextOutput stdout
|
||||||
ExitFailure code ->
|
ExitFailure code ->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user