Class: ClaudeCodeSDK::Internal::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/claude_code_sdk/internal/client.rb

Instance Method Summary collapse

Constructor Details

#initializeClient

Returns a new instance of Client.



6
7
8
# File 'lib/claude_code_sdk/internal/client.rb', line 6

def initialize
  @transport = nil
end

Instance Method Details

#query(prompt:, options: nil, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/claude_code_sdk/internal/client.rb', line 10

def query(prompt:, options: nil, &block)
  # Use SubprocessCLI for streaming JSON support
  require_relative "../transport/subprocess_cli"
  @transport = Transport::SubprocessCLI.new(prompt: prompt, options: options)

  begin
    @transport.connect

    @transport.receive_messages do |raw_message|
      message = parse_message(raw_message)
      block.call(message) if message
    end
  ensure
    @transport&.disconnect
  end
end