Module: PiAgent

Defined in:
lib/pi_agent.rb,
lib/pi_agent/event.rb,
lib/pi_agent/image.rb,
lib/pi_agent/client.rb,
lib/pi_agent/errors.rb,
lib/pi_agent/framer.rb,
lib/pi_agent/future.rb,
lib/pi_agent/session.rb,
lib/pi_agent/version.rb,
lib/pi_agent/transport.rb,
lib/pi_agent/extension_ui.rb,
lib/pi_agent/transport/subprocess.rb

Defined Under Namespace

Modules: Transport Classes: BinaryNotFoundError, Client, CommandError, Error, Event, ExtensionUI, Framer, Future, Image, ProtocolError, Session, SessionError, TimeoutError, VersionMismatchError

Constant Summary collapse

VERSION =
"0.1.0"
SUPPORTED_PI_VERSION =

Pinned upstream pi-coding-agent version this gem is verified against. See: www.npmjs.com/package/@earendil-works/pi-coding-agent

"0.75.3"

Class Method Summary collapse

Class Method Details

.openObject

Open a low-level RPC client (spawns ‘pi –mode rpc`).



17
18
19
20
21
22
23
24
25
26
# File 'lib/pi_agent.rb', line 17

def self.open(**)
  client = Client.new(**).start
  return client unless block_given?

  begin
    yield client
  ensure
    client.close
  end
end

.sessionObject

Open a high-level agent session. This is the common entrypoint.



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/pi_agent.rb', line 29

def self.session(**)
  client = Client.new(**).start
  session = Session.new(client)
  return session unless block_given?

  begin
    yield session
  ensure
    session.close
  end
end