core.ai package
Subpackages
- core.ai.providers package
- Submodules
- core.ai.providers.base module
- core.ai.providers.deepseek_provider module
- core.ai.providers.local_provider module
- core.ai.providers.openai_provider module
- core.ai.providers.openrouter_provider module
OpenRouterProviderOpenRouterProvider.DEFAULT_BASE_URLOpenRouterProvider.MAX_RETRIESOpenRouterProvider.RETRY_BASE_DELAYOpenRouterProvider.chat()OpenRouterProvider.chat_stream()OpenRouterProvider.chat_with_tools()OpenRouterProvider.fetch_free_models()OpenRouterProvider.fetch_models()OpenRouterProvider.is_available()OpenRouterProvider.model_name()
- Module contents
Submodules
core.ai.action_tracker module
Tracks AI assistant file actions for revert support.
- class core.ai.action_tracker.AIActionTracker[source]
Bases:
objectRecords file snapshots before AI tool executions for revert support.
- Usage:
tracker.begin_prompt(index) # Before tool loop starts tracker.snapshot_file(path) # Before each file write tracker.end_prompt() # After tool loop completes tracker.revert(index) # Restore files from prompt snapshot
- class core.ai.action_tracker.FileSnapshot(path: str, content: str | None, existed: bool)[source]
Bases:
objectSnapshot of a file before AI modification.
- content: str | None
- existed: bool
- path: str
- class core.ai.action_tracker.PromptActionGroup(prompt_index: int, snapshots: Dict[str, ~core.ai.action_tracker.FileSnapshot]=<factory>, reverted: bool = False)[source]
Bases:
objectAll file actions from a single AI prompt.
- property has_actions: bool
- prompt_index: int
- reverted: bool = False
- snapshots: Dict[str, FileSnapshot]
core.ai.api_index module
Complete API reference for the AxisPy Engine, used as context for AI chat.
core.ai.chat_manager module
Chat manager that orchestrates AI conversations with engine context.
- class core.ai.chat_manager.ChatManager[source]
Bases:
objectManages AI chat conversations with engine and project context.
Supports an agentic tool-calling loop: when the AI returns tool calls, the manager executes them and feeds results back, up to max_steps.
- MAX_TOOL_STEPS = 5
- property current_prompt_index: int
The prompt index of the most recent (or in-progress) prompt.
- revert_prompt(prompt_index: int) Dict[str, str][source]
Revert all file changes from a specific prompt.
- send_message_stream(user_message: str)[source]
Send a message and stream the response via callbacks. Returns the full response when complete.
- set_callbacks(on_chunk: Callable[[str], None] = None, on_complete: Callable[[str], None] = None, on_error: Callable[[str], None] = None, on_tool_call: Callable[[str, dict], None] = None, on_tool_result: Callable[[str, str], None] = None, on_session_changed: Callable[[], None] = None)[source]
Set streaming callbacks.
- set_provider(provider: AIProvider)[source]
core.ai.context_builder module
Builds context about the user’s project and current editor state for AI chat.
core.ai.session_manager module
Session manager for AI chat conversations — save/load to .axispy/project.ai
- class core.ai.session_manager.ChatSession(id: str, name: str, created_at: float, updated_at: float, messages: Dict[str, ~typing.Any]]=<factory>)[source]
Bases:
objectA single conversation session.
- classmethod create(name: str = 'New Session') ChatSession[source]
- created_at: float
- classmethod from_dict(data: dict) ChatSession[source]
- id: str
- messages: List[Dict[str, Any]]
- name: str
- updated_at: float
- class core.ai.session_manager.SessionManager(project_path: str = '')[source]
Bases:
objectManages chat sessions persistence to .axispy/project.ai
- active_session_id: str | None
- add_message_to_active(role: str, content: str, **kwargs)[source]
Add a message to the active session.
- create_session(name: str = '') ChatSession[source]
Create a new session and make it active.
- get_active_session() ChatSession | None[source]
Get the currently active session.
- get_session_list() List[ChatSession][source]
Get all sessions sorted by updated_at (newest first).
- sessions: Dict[str, ChatSession]
core.ai.tools module
Engine-specific tools that the AI agent can call to inspect the project.
- class core.ai.tools.ToolExecutor[source]
Bases:
objectExecutes engine tools using callbacks wired to the editor state.
- execute(tool_name: str, arguments: Dict[str, Any]) str[source]
Execute a tool by name and return the result as a string.