vendor_connectors.google.jules
Google Jules Connector - HTTP client for Google Jules AI Agent API.
Jules is Google’s AI coding agent that can analyze code, create PRs, and automate development tasks.
Usage: from vendor_connectors.google.jules import JulesConnector
connector = JulesConnector(api_key="...")
# List available sources (GitHub repos)sources = connector.list_sources()
# Create a sessionsession = connector.create_session( prompt="Fix the login bug", source="sources/github/org/repo", automation_mode="AUTO_CREATE_PR")
# Poll for completionstatus = connector.get_session(session.name)Reference: https://developers.google.com/jules/api
Module Contents
Section titled “Module Contents”Classes
Section titled “Classes”SessionState | Jules session states. |
|---|---|
AutomationMode | Automation modes for Jules sessions. |
Source | A connected source (e.g., GitHub repository). |
SourceContext | Context for a session’s source. |
PullRequestOutput | Pull request created by Jules. |
Session | A Jules session. |
JulesConnector | Connector for Google Jules AI Agent API. |
class vendor_connectors.google.jules.SessionState
Section titled “class vendor_connectors.google.jules.SessionState”Jules session states.
Initialization
Section titled “Initialization”Initialize self. See help(type(self)) for accurate signature.
UNSPECIFIED
Section titled “UNSPECIFIED”‘SESSION_STATE_UNSPECIFIED’
RUNNING
Section titled “RUNNING”‘RUNNING’
PAUSED
Section titled “PAUSED”‘PAUSED’
COMPLETED
Section titled “COMPLETED”‘COMPLETED’
FAILED
Section titled “FAILED”‘FAILED’
AWAITING_PLAN_APPROVAL
Section titled “AWAITING_PLAN_APPROVAL”‘AWAITING_PLAN_APPROVAL’
AWAITING_USER_RESPONSE
Section titled “AWAITING_USER_RESPONSE”‘AWAITING_USER_RESPONSE’
CANCELLED
Section titled “CANCELLED”‘CANCELLED’
IN_PROGRESS
Section titled “IN_PROGRESS”‘IN_PROGRESS’
PENDING
Section titled “PENDING”‘PENDING’
BLOCKED
Section titled “BLOCKED”‘BLOCKED’
class vendor_connectors.google.jules.AutomationMode
Section titled “class vendor_connectors.google.jules.AutomationMode”Automation modes for Jules sessions.
Initialization
Section titled “Initialization”Initialize self. See help(type(self)) for accurate signature.
UNSPECIFIED
Section titled “UNSPECIFIED”‘AUTOMATION_MODE_UNSPECIFIED’
AUTO_CREATE_PR
Section titled “AUTO_CREATE_PR”‘AUTO_CREATE_PR’
MANUAL
Section titled “MANUAL”‘MANUAL’
class vendor_connectors.google.jules.Source
Section titled “class vendor_connectors.google.jules.Source”Bases: pydantic.BaseModel
A connected source (e.g., GitHub repository).
‘Field(…)’
‘Field(…)’
github_repo : dict | None
Section titled “github_repo : dict | None”‘Field(…)’
class vendor_connectors.google.jules.SourceContext
Section titled “class vendor_connectors.google.jules.SourceContext”Bases: pydantic.BaseModel
Context for a session’s source.
source : str
Section titled “source : str”‘Field(…)’
github_repo_context : dict | None
Section titled “github_repo_context : dict | None”‘Field(…)’
class vendor_connectors.google.jules.PullRequestOutput
Section titled “class vendor_connectors.google.jules.PullRequestOutput”Bases: pydantic.BaseModel
Pull request created by Jules.
‘Field(…)’
title : str
Section titled “title : str”‘Field(…)’
description : str
Section titled “description : str”‘Field(…)’
class vendor_connectors.google.jules.Session
Section titled “class vendor_connectors.google.jules.Session”Bases: pydantic.BaseModel
A Jules session.
model_config
Section titled “model_config”None
‘Field(…)’
‘Field(…)’
title : str
Section titled “title : str”‘Field(…)’
prompt : str
Section titled “prompt : str”‘Field(…)’
state : str | None
Section titled “state : str | None”‘Field(…)’
source_context : vendor_connectors.google.jules.SourceContext | None
Section titled “source_context : vendor_connectors.google.jules.SourceContext | None”‘Field(…)’
outputs : list[dict]
Section titled “outputs : list[dict]”‘Field(…)’
property pull_request : vendor_connectors.google.jules.PullRequestOutput | None
Section titled “property pull_request : vendor_connectors.google.jules.PullRequestOutput | None”Get the pull request output if available.
exception vendor_connectors.google.jules.JulesError(message: str, code: int = 0, details: Any = None)
Section titled “exception vendor_connectors.google.jules.JulesError(message: str, code: int = 0, details: Any = None)”Bases: Exception
Error from Jules API.
Initialization
Section titled “Initialization”Initialize self. See help(type(self)) for accurate signature.
class vendor_connectors.google.jules.JulesConnector(api_key: str | None = None, base_url: str | None = None, timeout: float = 60.0, **kwargs)
Section titled “class vendor_connectors.google.jules.JulesConnector(api_key: str | None = None, base_url: str | None = None, timeout: float = 60.0, **kwargs)”Bases: vendor_connectors.base.VendorConnectorBase
Connector for Google Jules AI Agent API.
Provides methods to interact with Jules for automated coding tasks.
Initialization
Section titled “Initialization”Initialize the Jules connector.
Args: api_key: Jules API key. Defaults to JULES_API_KEY env var. base_url: API base URL. Defaults to production. timeout: Request timeout in seconds. **kwargs: Extra arguments for base class.
BASE_URL
Section titled “BASE_URL”‘https://jules.googleapis.com/v1alpha’
API_KEY_ENV
Section titled “API_KEY_ENV”‘JULES_API_KEY’
_build_headers() → dict[str, str]
Section titled “_build_headers() → dict[str, str]”Build Jules-specific headers.
_handle_response(response) → dict
Section titled “_handle_response(response) → dict”Handle API response, raising on errors.
list_sources(page_size: int = 100, page_token: str = ”) → list[vendor_connectors.google.jules.Source]
Section titled “list_sources(page_size: int = 100, page_token: str = ”) → list[vendor_connectors.google.jules.Source]”List available sources (connected GitHub repos).
Args: page_size: Maximum number of results. page_token: Pagination token.
Returns: List of Source objects.
create_session(prompt: str, source: str, title: str = ”, starting_branch: str = ‘main’, automation_mode: str = ‘AUTO_CREATE_PR’, require_plan_approval: bool = False) → vendor_connectors.google.jules.Session
Section titled “create_session(prompt: str, source: str, title: str = ”, starting_branch: str = ‘main’, automation_mode: str = ‘AUTO_CREATE_PR’, require_plan_approval: bool = False) → vendor_connectors.google.jules.Session”Create a new Jules session.
Args: prompt: Task description for Jules. source: Source resource name (e.g., sources/github/org/repo). title: Optional session title. starting_branch: Git branch to start from. automation_mode: AUTO_CREATE_PR or MANUAL. require_plan_approval: Whether to require explicit plan approval.
Returns: Created Session object.
get_session(session_name: str) → vendor_connectors.google.jules.Session
Section titled “get_session(session_name: str) → vendor_connectors.google.jules.Session”Get a session by name.
Args: session_name: Full resource name (e.g., sessions/123).
Returns: Session object with current state.
list_sessions(page_size: int = 20, page_token: str = ”) → list[vendor_connectors.google.jules.Session]
Section titled “list_sessions(page_size: int = 20, page_token: str = ”) → list[vendor_connectors.google.jules.Session]”List sessions.
Args: page_size: Maximum number of results. page_token: Pagination token.
Returns: List of Session objects.
approve_plan(session_name: str) → vendor_connectors.google.jules.Session
Section titled “approve_plan(session_name: str) → vendor_connectors.google.jules.Session”Approve the plan for a session that requires approval.
Args: session_name: Full resource name.
Returns: Updated Session object.
add_user_response(session_name: str, message: str = ”) → vendor_connectors.google.jules.Session
Section titled “add_user_response(session_name: str, message: str = ”) → vendor_connectors.google.jules.Session”Add a follow-up message to a session or resume it.
Note: The Jules API uses :sendMessage endpoint. An empty body resumes a paused session. A message can be included in certain states.
Args: session_name: Full resource name. message: Optional user message.
Returns: Updated Session object.
resume_session(session_name: str) → vendor_connectors.google.jules.Session
Section titled “resume_session(session_name: str) → vendor_connectors.google.jules.Session”Resume a paused or awaiting session.
Args: session_name: Full resource name.
Returns: Updated Session object.