Metadata-Version: 2.4
Name: airas
Version: 0.3.0
Summary: Add your description here
Project-URL: Homepage, https://www.autores.one/english
Project-URL: Issues, https://github.com/auto-res/airas/issues
Author-email: Toma Tanaka <ulti4929@gmail.com>
License-Expression: MIT
Keywords: AI,Automation,Research
Requires-Python: <3.13,>=3.10
Requires-Dist: anthropic>=0.66.0
Requires-Dist: bibtexparser>=1.4.3
Requires-Dist: boto3>=1.35.0
Requires-Dist: dependency-injector>=4.48.2
Requires-Dist: fastapi>=0.120.4
Requires-Dist: feedparser>=6.0.11
Requires-Dist: google-genai>=1.37.0
Requires-Dist: hishel[async]>=1.1.5
Requires-Dist: jinja2>=3.1.4
Requires-Dist: langchain-anthropic>=1.2.0
Requires-Dist: langchain-aws>=1.1.0
Requires-Dist: langchain-community==0.4.1
Requires-Dist: langchain-google-genai>=3.2.0
Requires-Dist: langchain-openai>=1.1.0
Requires-Dist: langchain==1.0.8
Requires-Dist: langfuse>=3.11.1
Requires-Dist: langgraph==1.0.3
Requires-Dist: litellm>=1.80.16
Requires-Dist: mcp[cli]>=1.6.0
Requires-Dist: nltk>=3.9.2
Requires-Dist: openai>=1.35.13
Requires-Dist: pandas>=2.3.0
Requires-Dist: pymupdf>=1.25.5
Requires-Dist: pynacl>=1.6.0
Requires-Dist: pypdf>=4.3.1
Requires-Dist: pytest-asyncio>=1.2.0
Requires-Dist: pytz>=2025.2
Requires-Dist: rank-bm25>=0.2.2
Requires-Dist: semanticscholar>=0.8.4
Requires-Dist: tenacity>=9.0.0
Requires-Dist: tiktoken>=0.9.0
Requires-Dist: toml>=0.10.2
Requires-Dist: tomli-w>=1.0.0
Requires-Dist: tomli>=2.0.1
Requires-Dist: typing-extensions>=4.12.2
Requires-Dist: uvicorn>=0.34.2
Requires-Dist: wandb>=0.22.2
Provides-Extra: mcp
Description-Content-Type: text/markdown

# Backend

<!-- mcp-name: io.github.airas-org/airas -->
<!-- ^ MCP Registry ownership marker: must match server.json's name and stay
     in the README published on PyPI (pyproject.toml's readme). -->

## Build API server

```bash
uv run uvicorn airas.dashboard.api.main:app --host 0.0.0.0 --port 8000 --log-level debug --reload
```

## Dashboard (installed package)

Wheels published to PyPI bundle the built frontend, so the full dashboard
can be launched without this repository:

```bash
uvx airas dashboard
```

This serves the API and the web UI on http://localhost:24727 and opens a
browser (use `--no-browser` / `--port` to override). In development
checkouts the bundled assets are absent; use `docker compose up --build`
or the Vite dev server instead.

## E2E workflow


```mermaid
---
config:
  flowchart:
    curve: linear
---
graph TD;
        __start__([<p>__start__</p>]):::first
        prepare_repository(prepare_repository)
        generate_queries(generate_queries)
        search_paper_titles(search_paper_titles)
        retrieve_papers(retrieve_papers)
        generate_hypothesis(generate_hypothesis)
        generate_experimental_design(generate_experimental_design)
        generate_code(generate_code)
        push_code(push_code)
        execute_trial_experiment(execute_trial_experiment)
        poll_trial_workflow(poll_trial_workflow)
        execute_full_experiment(execute_full_experiment)
        poll_full_workflow(poll_full_workflow)
        execute_evaluation_workflow(execute_evaluation_workflow)
        poll_evaluation(poll_evaluation)
        fetch_experiment_results(fetch_experiment_results)
        analyze_experiment(analyze_experiment)
        generate_bibfile(generate_bibfile)
        generate_paper(generate_paper)
        generate_latex(generate_latex)
        push_latex(push_latex)
        compile_latex(compile_latex)
        poll_compile_latex_workflow(poll_compile_latex_workflow)
        finalize(finalize)
        upload_after_generate_code(upload_after_generate_code)
        upload_after_generate_paper(upload_after_generate_paper)
        upload_after_generate_queries(upload_after_generate_queries)
        upload_after_search_paper_titles(upload_after_search_paper_titles)
        upload_after_retrieve_papers(upload_after_retrieve_papers)
        upload_after_generate_bibfile(upload_after_generate_bibfile)
        upload_after_generate_hypothesis(upload_after_generate_hypothesis)
        upload_after_generate_experimental_design(upload_after_generate_experimental_design)
        upload_after_generate_latex(upload_after_generate_latex)
        upload_after_analyze_experiment(upload_after_analyze_experiment)
        upload_after_fetch_experiment_results(upload_after_fetch_experiment_results)
        __end__([<p>__end__</p>]):::last
        __start__ --> prepare_repository;
        analyze_experiment --> upload_after_analyze_experiment;
        compile_latex --> poll_compile_latex_workflow;
        execute_evaluation_workflow --> poll_evaluation;
        execute_full_experiment --> poll_full_workflow;
        execute_trial_experiment --> poll_trial_workflow;
        fetch_experiment_results --> upload_after_fetch_experiment_results;
        generate_bibfile --> upload_after_generate_bibfile;
        generate_code --> upload_after_generate_code;
        generate_experimental_design --> upload_after_generate_experimental_design;
        generate_hypothesis --> upload_after_generate_hypothesis;
        generate_latex --> upload_after_generate_latex;
        generate_paper --> upload_after_generate_paper;
        generate_queries --> upload_after_generate_queries;
        poll_compile_latex_workflow --> finalize;
        poll_evaluation --> fetch_experiment_results;
        poll_full_workflow --> execute_evaluation_workflow;
        poll_trial_workflow --> execute_full_experiment;
        prepare_repository --> generate_queries;
        push_code --> execute_trial_experiment;
        push_latex --> compile_latex;
        retrieve_papers --> upload_after_retrieve_papers;
        search_paper_titles --> upload_after_search_paper_titles;
        upload_after_analyze_experiment --> generate_bibfile;
        upload_after_fetch_experiment_results --> analyze_experiment;
        upload_after_generate_bibfile --> generate_paper;
        upload_after_generate_code --> push_code;
        upload_after_generate_experimental_design --> generate_code;
        upload_after_generate_hypothesis --> generate_experimental_design;
        upload_after_generate_latex --> push_latex;
        upload_after_generate_paper --> generate_latex;
        upload_after_generate_queries --> search_paper_titles;
        upload_after_retrieve_papers --> generate_hypothesis;
        upload_after_search_paper_titles --> retrieve_papers;
        finalize --> __end__;
        classDef default fill:#f2f0ff,line-height:1.2
        classDef first fill-opacity:0
        classDef last fill:#bfb6fc
```
