Skip to content

Commit edeecd7

Browse files
authored
Merge pull request #2 from Future-House/add-oss
Adding robin repo + tooling
2 parents 5889ccf + 54ef196 commit edeecd7

File tree

885 files changed

+87765
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

885 files changed

+87765
-1
lines changed

.github/renovate.json5

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
$schema: "https://docs.renovatebot.com/renovate-schema.json",
3+
extends: [
4+
"config:recommended",
5+
"group:allNonMajor", // Rely on config:recommended for major version updates
6+
":automergeMinor",
7+
],
8+
schedule: ["* 2 1-7 * 1"],
9+
prHourlyLimit: 4,
10+
timezone: "America/Los_Angeles",
11+
rangeStrategy: "widen",
12+
lockFileMaintenance: {
13+
enabled: true,
14+
schedule: ["* 2 1-7 * 1"], // Work around https://github.com/renovatebot/renovate/discussions/33152
15+
},
16+
minimumReleaseAge: "2 weeks",
17+
"pre-commit": { enabled: true },
18+
}

.github/workflows/build.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Publish
2+
3+
on:
4+
release:
5+
types: [created]
6+
workflow_dispatch:
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- id: build
14+
uses: hynek/build-and-inspect-python-package@v2
15+
- name: Download built artifact to dist/
16+
uses: actions/download-artifact@v4
17+
with:
18+
name: ${{ steps.build.outputs.artifact-name }}
19+
path: dist

.github/workflows/tests.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Lint and Test
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
workflow_dispatch:
8+
9+
jobs:
10+
pre-commit:
11+
runs-on: ubuntu-latest
12+
if: github.event_name == 'pull_request' # pre-commit-ci/lite-action only runs here
13+
strategy:
14+
matrix:
15+
python-version: [3.12] # Our min supported Python versions
16+
steps:
17+
- uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0 # For setuptools-scm, replace with fetch-tags after https://github.com/actions/checkout/issues/1471
20+
- uses: actions/setup-python@v5
21+
with:
22+
python-version: ${{ matrix.python-version }}
23+
- uses: pre-commit/[email protected]
24+
- uses: pre-commit-ci/[email protected]
25+
if: always()
26+
lint:
27+
runs-on: ubuntu-latest
28+
strategy:
29+
matrix:
30+
python-version: [3.12] # Our min supported Python version
31+
steps:
32+
- uses: actions/checkout@v4
33+
- uses: astral-sh/setup-uv@v5
34+
with:
35+
enable-cache: true
36+
- run: uv python pin ${{ matrix.python-version }}
37+
- uses: hynek/build-and-inspect-python-package@v2
38+
- run: uv sync --python-preference=only-managed
39+
- run: uv run pylint robin
40+
- uses: suzuki-shunsuke/[email protected]
41+
test:
42+
runs-on: ubuntu-latest
43+
strategy:
44+
matrix:
45+
python-version: [3.12] # Our min supported Python versions
46+
steps:
47+
- uses: actions/checkout@v4
48+
- uses: astral-sh/setup-uv@v5
49+
with:
50+
enable-cache: true
51+
- run: uv python pin ${{ matrix.python-version }}
52+
- run: uv sync --python-preference=only-managed
53+
env:
54+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
55+
FUTUREHOUSE_API_KEY: ${{ secrets.FUTUREHOUSE_API_KEY }}

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
hypothesis_logs/
2+
*.log
3+
logs/
4+
__pycache__/
5+
generated_hypotheses/
6+
function_calling_results/
7+
hypothesis_results/*
8+
AG4/*
9+
110
# Development Environment
211
.env
312
.env.*
@@ -125,6 +134,7 @@ infrastructure/terraform/services/crow-ui/environment.auto.tfvars
125134
.tmp/
126135
tmp/
127136
temp.ipynb
137+
output.txt
128138

129139
# Playwright output
130140
playwright-report/

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Benjamin Chang <[email protected]> changbenjamin

.pre-commit-config.yaml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
default_language_version:
2+
python: python3
3+
repos:
4+
- repo: https://github.com/pre-commit/pre-commit-hooks
5+
rev: v5.0.0
6+
hooks:
7+
- id: check-added-large-files
8+
exclude: |
9+
(?x)^(
10+
examples/.*|
11+
robin_output/.*
12+
)$
13+
- id: check-byte-order-marker
14+
- id: check-case-conflict
15+
- id: check-merge-conflict
16+
- id: check-shebang-scripts-are-executable
17+
- id: check-symlinks
18+
- id: check-toml
19+
- id: check-yaml
20+
- id: debug-statements
21+
- id: detect-private-key
22+
- id: end-of-file-fixer
23+
- id: mixed-line-ending
24+
- id: trailing-whitespace
25+
- repo: https://github.com/astral-sh/ruff-pre-commit
26+
rev: v0.11.2
27+
hooks:
28+
- id: ruff
29+
args: [--fix, --exit-non-zero-on-fix]
30+
- repo: https://github.com/psf/black-pre-commit-mirror
31+
rev: 25.1.0
32+
hooks:
33+
- id: black-jupyter
34+
- repo: https://github.com/rbubley/mirrors-prettier
35+
rev: v3.5.3
36+
hooks:
37+
- id: prettier
38+
exclude: robin_output
39+
- repo: https://github.com/pappasam/toml-sort
40+
rev: v0.24.2
41+
hooks:
42+
- id: toml-sort-fix
43+
- repo: https://github.com/crate-ci/typos
44+
rev: v1.30.3
45+
hooks:
46+
- id: typos
47+
- repo: https://github.com/jumanjihouse/pre-commit-hooks
48+
rev: 3.0.0
49+
hooks:
50+
- id: check-mailmap
51+
- repo: https://github.com/henryiii/validate-pyproject-schema-store
52+
rev: 2025.03.24
53+
hooks:
54+
- id: validate-pyproject
55+
- repo: https://github.com/astral-sh/uv-pre-commit
56+
rev: 0.6.10
57+
hooks:
58+
- id: uv-lock
59+
- repo: https://github.com/adamchainz/blacken-docs
60+
rev: 1.19.1
61+
hooks:
62+
- id: blacken-docs
63+
exclude: \.md$ # The generated markdown files are being blackened by jupytext
64+
- repo: https://github.com/srstevenson/nb-clean
65+
rev: 4.0.1
66+
hooks:
67+
- id: nb-clean
68+
args: [--preserve-cell-outputs, --remove-empty-cells]
69+
- repo: https://github.com/mwouts/jupytext
70+
rev: v1.17.0rc2
71+
hooks:
72+
- id: jupytext
73+
args: [--to, md, --pipe, black]
74+
additional_dependencies: [black]
75+
files: ^docs/.*\.ipynb$
76+
- repo: https://github.com/jsh9/markdown-toc-creator
77+
rev: 0.0.10
78+
hooks:
79+
- id: markdown-toc-creator
80+
- repo: https://github.com/pre-commit/mirrors-mypy
81+
rev: v1.15.0
82+
hooks:
83+
- id: mypy
84+
args: [--pretty, --ignore-missing-imports]
85+
additional_dependencies:
86+
- anthropic
87+
- fhaviary
88+
- fhlmi
89+
- openai>=1 # Match pyproject.toml
90+
- pandas-stubs
91+
- pydantic>=2 # Match pyproject.toml
92+
- types-aiofiles
93+
- types-PyYAML
94+
- types-setuptools
95+
- types-tqdm

CITATION.cff

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
cff-version: 1.2.0
2+
message: >-
3+
If you use this software, please cite it using the
4+
metadata from this file.
5+
title: "Robin: A multi-agent system for automating scientific discovery"
6+
authors:
7+
- given-names: Ali Essam
8+
family-names: Ghareeb
9+
- given-names: Benjamin
10+
family-names: Chang
11+
- given-names: Ludovico
12+
family-names: Mitchener
13+
- given-names: Angela
14+
family-names: Yiu
15+
- given-names: Caralyn J.
16+
family-names: Szostkiewicz
17+
- given-names: Jon M.
18+
family-names: Laurent
19+
- given-names: Muhammed T.
20+
family-names: Razzak
21+
- given-names: Andrew D.
22+
family-names: White
23+
- given-names: Michaela M.
24+
family-names: Hinks
25+
- given-names: Samuel G.
26+
family-names: Rodriques
27+
identifiers:
28+
- type: doi
29+
value: 10.48550/arXiv.2505.13400
30+
description: ArXiv DOI
31+
- type: url
32+
value: https://arxiv.org/abs/2505.13400
33+
description: ArXiv abstract
34+
repository-code: https://github.com/Future-House/robin
35+
keywords:
36+
- Artificial Intelligence
37+
- Multiagent Systems
38+
- Quantitative Methods
39+
- Scientific Discovery
40+
- Drug Discovery
41+
license: Apache-2.0
42+
date-released: 2025-05-19
43+
preferred-citation:
44+
type: article
45+
title: "Robin: A multi-agent system for automating scientific discovery"
46+
authors:
47+
- given-names: Ali Essam
48+
family-names: Ghareeb
49+
- given-names: Benjamin
50+
family-names: Chang
51+
- given-names: Ludovico
52+
family-names: Mitchener
53+
- given-names: Angela
54+
family-names: Yiu
55+
- given-names: Caralyn J.
56+
family-names: Szostkiewicz
57+
- given-names: Jon M.
58+
family-names: Laurent
59+
- given-names: Muhammed T.
60+
family-names: Razzak
61+
- given-names: Andrew D.
62+
family-names: White
63+
- given-names: Michaela M.
64+
family-names: Hinks
65+
- given-names: Samuel G.
66+
family-names: Rodriques
67+
date-published: 2025-05-19
68+
doi: 10.48550/arXiv.2505.13400
69+
journal: arXiv preprint
70+
url: https://arxiv.org/abs/2505.13400

0 commit comments

Comments
 (0)