Retrieval Module

Retrieval module.

class atloop.retrieval.WorkspaceIndexer(tool_runtime: ToolRuntime)[source]

Bases: object

Workspace indexer for file tree and search.

__init__(tool_runtime: ToolRuntime)[source]

Initialize workspace indexer.

Parameters:

tool_runtime – Tool runtime instance

bootstrap() Dict[str, Any][source]

Bootstrap workspace (initial discovery).

Returns:

Dictionary with workspace information

extract_keywords(text: str) List[str][source]

Extract keywords from text (simple implementation).

Parameters:

text – Text to extract keywords from

Returns:

List of keywords

list_tree(max_depth: int = 4, ignore_patterns: List[str] | None = None) ToolResult[source]

List file tree.

Parameters:
  • max_depth – Maximum depth

  • ignore_patterns – Patterns to ignore

Returns:

ToolResult with file tree

read_snippets(file_paths: List[str], context_lines: int = 80, max_total_size: int = 81920, max_file_lines: int = 300) List[Dict[str, Any]][source]

Read file snippets with context.

Parameters:
  • file_paths – List of file paths to read

  • context_lines – Number of context lines around matches

  • max_total_size – Maximum total size in bytes

  • max_file_lines – Maximum lines per file

Returns:

List of file snippet dictionaries

search(query: str, glob: str | None = None, max_results: int = 50) ToolResult[source]

Search using grep (common Linux tool).

Parameters:
  • query – Search query

  • glob – Glob pattern

  • max_results – Maximum results

Returns:

ToolResult with search results

class atloop.retrieval.ProjectProfile(language: str | None = None, package_manager: str | None = None, test_commands: List[str] = None, format_commands: List[str] = None, lint_commands: List[str] = None)[source]

Bases: object

Project profile information.

__init__(language: str | None = None, package_manager: str | None = None, test_commands: List[str] = None, format_commands: List[str] = None, lint_commands: List[str] = None) None
__post_init__()[source]

Initialize default values.

format_commands: List[str] = None
language: str | None = None
lint_commands: List[str] = None
package_manager: str | None = None
test_commands: List[str] = None
to_dict() Dict[source]

Convert to dictionary.

class atloop.retrieval.ProjectProfileDetector(tool_runtime: ToolRuntime)[source]

Bases: object

Detect project profile from workspace.

__init__(tool_runtime: ToolRuntime)[source]

Initialize project profile detector.

Parameters:

tool_runtime – Tool runtime instance

detect() ProjectProfile[source]

Detect project profile.

Returns:

ProjectProfile instance

class atloop.retrieval.ContextPack(goal: str, constraints: List[str], project_profile: str, relevant_files: str, recent_error: str, current_diff: str, test_results: str | None = None, verification_success: bool | None = None, memory_summary: str | None = None)[source]

Bases: object

Context pack for LLM input.

__init__(goal: str, constraints: List[str], project_profile: str, relevant_files: str, recent_error: str, current_diff: str, test_results: str | None = None, verification_success: bool | None = None, memory_summary: str | None = None) None
memory_summary: str | None = None
test_results: str | None = None
to_string(max_size: int = 204800) str[source]

Convert to string representation.

Parameters:

max_size – Maximum size in bytes

Returns:

String representation

verification_success: bool | None = None
goal: str
constraints: List[str]
project_profile: str
relevant_files: str
recent_error: str
current_diff: str
class atloop.retrieval.ContextPackBuilder(indexer: WorkspaceIndexer, project_profile: ProjectProfile)[source]

Bases: object

Builder for context packs.

__init__(indexer: WorkspaceIndexer, project_profile: ProjectProfile)[source]

Initialize context pack builder.

Parameters:
  • indexer – Workspace indexer

  • project_profile – Project profile

build(goal: str, constraints: List[str], recent_error: str | None = None, current_diff: str | None = None, test_results: str | None = None, verification_success: bool | None = None, memory_summary: str | None = None, keywords: List[str] | None = None) ContextPack[source]

Build context pack.

Parameters:
  • goal – Task goal

  • constraints – Task constraints

  • recent_error – Recent error message

  • current_diff – Current diff (from file snapshots)

  • memory_summary – Memory summary

  • keywords – Keywords for search

Returns:

ContextPack instance

Indexer

ProjectProfile

class atloop.retrieval.project_profile.ProjectProfile(language: str | None = None, package_manager: str | None = None, test_commands: List[str] = None, format_commands: List[str] = None, lint_commands: List[str] = None)[source]

Bases: object

Project profile information.

language: str | None = None
package_manager: str | None = None
test_commands: List[str] = None
format_commands: List[str] = None
lint_commands: List[str] = None
__post_init__()[source]

Initialize default values.

to_dict() Dict[source]

Convert to dictionary.

__init__(language: str | None = None, package_manager: str | None = None, test_commands: List[str] = None, format_commands: List[str] = None, lint_commands: List[str] = None) None

ContextPack

class atloop.retrieval.context_pack.ContextPack(goal: str, constraints: List[str], project_profile: str, relevant_files: str, recent_error: str, current_diff: str, test_results: str | None = None, verification_success: bool | None = None, memory_summary: str | None = None)[source]

Bases: object

Context pack for LLM input.

goal: str
constraints: List[str]
project_profile: str
relevant_files: str
recent_error: str
current_diff: str
test_results: str | None = None
verification_success: bool | None = None
memory_summary: str | None = None
to_string(max_size: int = 204800) str[source]

Convert to string representation.

Parameters:

max_size – Maximum size in bytes

Returns:

String representation

__init__(goal: str, constraints: List[str], project_profile: str, relevant_files: str, recent_error: str, current_diff: str, test_results: str | None = None, verification_success: bool | None = None, memory_summary: str | None = None) None