Class: Forem::Services::AgentSessionService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/forem/services/agent_session_service.rb

Overview

Service for interacting with the Forem Agent Sessions API.

Agent sessions enable automated or AI-driven interactions with the Forem platform. The presign endpoint provides a pre-signed URL for uploading assets associated with a session. Access via Client#agent_sessions. All methods inject the client's requestor automatically so no additional configuration is required.

Examples:

client = Forem::Client.new("your-api-key")
sessions = client.agent_sessions.list
session  = client.agent_sessions.create(name: "My Agent")

See Also:

Instance Method Summary collapse

Methods inherited from BaseService

#initialize

Constructor Details

This class inherits a constructor from Forem::Services::BaseService

Instance Method Details

#create(params = {}, opts = {}) ⇒ AgentSession

Create a new agent session.

Examples:

session = client.agent_sessions.create(name: "Content Generation Bot")

Parameters:

  • params (Hash) (defaults to: {})

    session attributes

  • opts (Hash) (defaults to: {})

    per-request options

Options Hash (params):

  • :name (String)

    display name for the session

Returns:

See Also:



46
47
48
# File 'lib/forem/services/agent_session_service.rb', line 46

def create(params = {}, opts = {})
  AgentSession.create(params, opts_with_requestor(opts))
end

#list(params = {}, opts = {}) ⇒ Array<AgentSession>

List all agent sessions.

Examples:

client.agent_sessions.list

Parameters:

  • params (Hash) (defaults to: {})

    query parameters

  • opts (Hash) (defaults to: {})

    per-request options

Options Hash (params):

  • :page (Integer)

    page number (default: 1)

  • :per_page (Integer)

    number of results per page

Returns:

See Also:



31
32
33
# File 'lib/forem/services/agent_session_service.rb', line 31

def list(params = {}, opts = {})
  AgentSession.list(params, opts_with_requestor(opts))
end

#presign(params = {}, opts = {}) ⇒ AgentSession

Obtain a pre-signed URL for uploading a file associated with an agent session.

Examples:

presign_data = client.agent_sessions.presign(
  filename: "image.png",
  mime_type: "image/png"
)
puts presign_data.upload_url

Parameters:

  • params (Hash) (defaults to: {})

    presign request parameters

  • opts (Hash) (defaults to: {})

    per-request options

Options Hash (params):

  • :filename (String)

    name of the file to upload

  • :mime_type (String)

    MIME type of the file

Returns:

  • (AgentSession)

    object containing the pre-signed upload URL and related metadata

See Also:



82
83
84
# File 'lib/forem/services/agent_session_service.rb', line 82

def presign(params = {}, opts = {})
  AgentSession.presign(params, opts_with_requestor(opts))
end

#retrieve(id, opts = {}) ⇒ AgentSession

Retrieve a single agent session by its numeric ID.

Examples:

client.agent_sessions.retrieve(14)

Parameters:

  • id (Integer, String)

    the session ID

  • opts (Hash) (defaults to: {})

    per-request options

Returns:

See Also:



60
61
62
# File 'lib/forem/services/agent_session_service.rb', line 60

def retrieve(id, opts = {})
  AgentSession.retrieve(id, opts_with_requestor(opts))
end