fc-data 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fc_data-0.2.1 → fc_data-0.2.2}/.gitignore +3 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/Makefile +30 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/PKG-INFO +4 -4
- {fc_data-0.2.1 → fc_data-0.2.2}/README.md +3 -3
- fc_data-0.2.2/docs/guide/monitoring.md +90 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/index.md +4 -4
- fc_data-0.2.2/grafana/docker-compose.yml +37 -0
- fc_data-0.2.2/grafana/provisioning/dashboards/dashboard-provider.yml +13 -0
- fc_data-0.2.2/grafana/provisioning/dashboards-json/datasmith-overview.json +1445 -0
- fc_data-0.2.2/grafana/provisioning/datasources/supabase-postgres.yml +21 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/mkdocs.yml +2 -1
- {fc_data-0.2.1 → fc_data-0.2.2}/pyproject.toml +1 -1
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/sandbox.py +33 -5
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/synthesizer.py +7 -2
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/templates/AGENTS.md.j2 +22 -7
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/templates/sandbox_verify.py +52 -3
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/filters.py +30 -7
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/update/pipeline.py +178 -48
- fc_data-0.2.2/supabase/migrations/00009_grafana_readonly.sql +15 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/test_sandbox.py +370 -3
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/test_synthesizer.py +69 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/test_filters.py +9 -7
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/update/test_pipeline.py +14 -6
- {fc_data-0.2.1 → fc_data-0.2.2}/uv.lock +4049 -4043
- {fc_data-0.2.1 → fc_data-0.2.2}/.github/actions/setup-python-env/action.yml +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/.github/workflows/docs.yml +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/.github/workflows/main.yml +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/.github/workflows/publish.yml +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/.github/workflows/validate-codecov-config.yml +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/.pre-commit-config.yaml +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/CLAUDE.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/DATASET_CARD.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/LICENSE +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/codecov.yaml +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/assets/favicon.svg +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/assets/logo.svg +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/Datasmith - Overview.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/archived/ARCHIVED Datasmith - Docker Manager.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.agents.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.agents.synthesizer.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.docker.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.github.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.github.render.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.publish.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.resolution.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.runners.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/design/components/datasmith.utils.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/getting-started/installation.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/getting-started/quickstart.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/guide/configuration.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/guide/docker-images.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/guide/pipeline.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/guide/publishing.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/guide/synthesis.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/guide/verification.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/docs/stage6-failure-analysis.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/package.json +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/scripts/hydrate_from_cache.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/scripts/migrate_sqlite_to_supabase.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/scripts/recompute_symbolic_compliance.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/scripts/recover_from_cache.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/__init__.pyi +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/classifiers.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/codex.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/config.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/extractors.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/installed/README.md +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/installed/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/installed/base.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/installed/claude.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/installed/codex.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/installed/gemini.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/agents/installed/none.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/context.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/images.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/publish.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/Dockerfile.base +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/Dockerfile.pr +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/Dockerfile.repo +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/docker_build_base.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/docker_build_env.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/docker_build_final.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/docker_build_pkg.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/docker_build_run.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/entrypoint.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/parser.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/profile.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/pytest_runner.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/templates/run-tests.sh +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/docker/verifiers.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/client.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/hooks.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/links.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/models.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/render.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/search.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/templates/comment.md.j2 +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/templates/final.md.j2 +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/templates/issues.md.j2 +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/github/templates/repo.md.j2 +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/preflight.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/publish/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/publish/huggingface.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/publish/pipeline.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/publish/records.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/py.typed +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/blocklist.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/cache.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/constants.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/dependency_resolver.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/git_utils.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/import_analyzer.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/metadata_parser.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/models.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/orchestrator.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/package_filters.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/resolution/python_manager.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/base.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/classify_prs.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/render_problems.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/resolve_packages.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/scrape_commits.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/scrape_repos.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/runners/synthesize_images.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/update/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/update/cli.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/update/offline.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/utils/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/utils/core.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/utils/db.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/src/datasmith/utils/tokens.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/static/formula-code-datasmith.png +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00001_initial_schema.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00002_add_symbolic_compliance.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00003_build_attempts_add_sha.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00004_docker_contexts.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00005_packages.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00006_pr_contexts.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00007_error_logs.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/supabase/migrations/00008_resource_metrics.sql +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/installed/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/installed/test_agents.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/test_classifiers.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/test_codex.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/test_config.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/agents/test_extractors.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/conftest.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/docker/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/docker/test_context.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/docker/test_images.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/docker/test_publish.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/docker/test_verifiers.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/github/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/github/test_client.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/github/test_hooks.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/github/test_links.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/github/test_models.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/github/test_render.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/integration/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/integration/conftest.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/integration/test_concurrent.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/integration/test_e2e_pipeline.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/integration/test_e2e_scrape.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/publish/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/publish/test_huggingface.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/publish/test_pipeline.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/publish/test_records.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/runners/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/runners/test_base.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/runners/test_classify_prs.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/runners/test_render_problems.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/runners/test_scrape_commits.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/runners/test_scrape_repos.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/runners/test_synthesize_images.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/test_init.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/test_website_snippets.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/update/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/update/test_cli.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/update/test_offline.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/update/test_preflight.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/utils/__init__.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/utils/test_core.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/utils/test_db.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tests/utils/test_tokens.py +0 -0
- {fc_data-0.2.1 → fc_data-0.2.2}/tox.ini +0 -0
|
@@ -36,6 +36,36 @@ docker-clean: ## Clean up dangling Docker images and containers
|
|
|
36
36
|
@echo "Cleaning up dangling Docker images and containers"
|
|
37
37
|
@docker system prune -f
|
|
38
38
|
|
|
39
|
+
.PHONY: supabase-up
|
|
40
|
+
supabase-up: ## Start local Supabase instance
|
|
41
|
+
@npx supabase start
|
|
42
|
+
|
|
43
|
+
.PHONY: supabase-down
|
|
44
|
+
supabase-down: ## Stop local Supabase instance
|
|
45
|
+
@npx supabase stop
|
|
46
|
+
|
|
47
|
+
.PHONY: supabase-status
|
|
48
|
+
supabase-status: ## Show Supabase service status and URLs
|
|
49
|
+
@npx supabase status
|
|
50
|
+
|
|
51
|
+
.PHONY: grafana-migrate
|
|
52
|
+
grafana-migrate: ## Apply the grafana_ro read-only database role
|
|
53
|
+
@docker exec supabase_db_datasmith_new psql -U postgres -d postgres -f /dev/stdin < supabase/migrations/00009_grafana_readonly.sql
|
|
54
|
+
@echo "grafana_ro role created"
|
|
55
|
+
|
|
56
|
+
.PHONY: grafana-up
|
|
57
|
+
grafana-up: ## Start Grafana dashboard (http://localhost:3001)
|
|
58
|
+
@docker compose -f grafana/docker-compose.yml up -d
|
|
59
|
+
@echo "Grafana is running at http://localhost:3001"
|
|
60
|
+
|
|
61
|
+
.PHONY: grafana-down
|
|
62
|
+
grafana-down: ## Stop Grafana dashboard
|
|
63
|
+
@docker compose -f grafana/docker-compose.yml down
|
|
64
|
+
|
|
65
|
+
.PHONY: grafana-logs
|
|
66
|
+
grafana-logs: ## Tail Grafana container logs
|
|
67
|
+
@docker compose -f grafana/docker-compose.yml logs -f
|
|
68
|
+
|
|
39
69
|
|
|
40
70
|
.PHONY: help
|
|
41
71
|
help:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fc-data
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Python toolchain for building and maintaining FormulaCode benchmark tasks.
|
|
5
5
|
Project-URL: Homepage, https://formula-code.github.io/datasmith/
|
|
6
6
|
Project-URL: Repository, https://github.com/formula-code/datasmith
|
|
@@ -44,12 +44,12 @@ Description-Content-Type: text/markdown
|
|
|
44
44
|
<a href="https://formula-code.github.io/leaderboard/">
|
|
45
45
|
<img src="https://img.shields.io/badge/%F0%9F%93%88%20Leaderboard-EA580C?style=for-the-badge&logoColor=white" alt="FormulaCode Leaderboard">
|
|
46
46
|
</a>
|
|
47
|
-
<a href="https://formula-code.github.io/registry/">
|
|
48
|
-
<img src="https://img.shields.io/badge/%F0%9F%93%88%20Live%20Task%20Registry-7F1D1D?style=for-the-badge&logoColor=white" alt="FormulaCode Live Task Registry">
|
|
49
|
-
</a>
|
|
50
47
|
<a href="https://formula-code.github.io/datasmith/">
|
|
51
48
|
<img src="https://img.shields.io/badge/%F0%9F%93%9A%20Docs-4B0082?style=for-the-badge" alt="fc-data Documentation">
|
|
52
49
|
</a>
|
|
50
|
+
<a href="https://nonconstricting-zara-unhinderingly.ngrok-free.dev/">
|
|
51
|
+
<img src="https://img.shields.io/badge/%F0%9F%93%8A%20Live%20Dashboard-7F1D1D?style=for-the-badge" alt="Live Dashboard">
|
|
52
|
+
</a>
|
|
53
53
|
</p>
|
|
54
54
|
|
|
55
55
|
[FormulaCode](https://formula-code.github.io/) is a *continually updating* benchmark for evaluating the holistic ability of LLM agents to optimize codebases. FormulaCode consists of two parts: a [pipeline](https://github.com/formula-code/datasmith) to construct performance optimization tasks, and an [execution harness](https://github.com/formula-code/terminal-bench) that connects a language model to our terminal sandbox. _This repository contains the task generation pipeline._
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
<a href="https://formula-code.github.io/leaderboard/">
|
|
11
11
|
<img src="https://img.shields.io/badge/%F0%9F%93%88%20Leaderboard-EA580C?style=for-the-badge&logoColor=white" alt="FormulaCode Leaderboard">
|
|
12
12
|
</a>
|
|
13
|
-
<a href="https://formula-code.github.io/registry/">
|
|
14
|
-
<img src="https://img.shields.io/badge/%F0%9F%93%88%20Live%20Task%20Registry-7F1D1D?style=for-the-badge&logoColor=white" alt="FormulaCode Live Task Registry">
|
|
15
|
-
</a>
|
|
16
13
|
<a href="https://formula-code.github.io/datasmith/">
|
|
17
14
|
<img src="https://img.shields.io/badge/%F0%9F%93%9A%20Docs-4B0082?style=for-the-badge" alt="fc-data Documentation">
|
|
18
15
|
</a>
|
|
16
|
+
<a href="https://nonconstricting-zara-unhinderingly.ngrok-free.dev/">
|
|
17
|
+
<img src="https://img.shields.io/badge/%F0%9F%93%8A%20Live%20Dashboard-7F1D1D?style=for-the-badge" alt="Live Dashboard">
|
|
18
|
+
</a>
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
21
|
[FormulaCode](https://formula-code.github.io/) is a *continually updating* benchmark for evaluating the holistic ability of LLM agents to optimize codebases. FormulaCode consists of two parts: a [pipeline](https://github.com/formula-code/datasmith) to construct performance optimization tasks, and an [execution harness](https://github.com/formula-code/terminal-bench) that connects a language model to our terminal sandbox. _This repository contains the task generation pipeline._
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Monitoring with Grafana
|
|
2
|
+
|
|
3
|
+
fc-data includes a pre-configured Grafana dashboard for monitoring the pipeline, browsing data, and tracking dataset growth.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- Local Supabase instance running (`make supabase-up`)
|
|
8
|
+
- Docker available on the host
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Apply the read-only database role (first time only)
|
|
14
|
+
make grafana-migrate
|
|
15
|
+
|
|
16
|
+
# Start Grafana
|
|
17
|
+
make grafana-up
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Grafana is now available at **<http://localhost:3001>** with no login required (anonymous read-only access).
|
|
21
|
+
|
|
22
|
+
To expose it publicly via ngrok:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
ngrok http 3001
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Architecture
|
|
29
|
+
|
|
30
|
+
Grafana runs as a Docker container that joins the existing Supabase Docker network. It connects to Postgres via a **read-only** `grafana_ro` database role that can only `SELECT` — no writes are possible, even from the Explore SQL editor.
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌──────────────┐ ┌──────────────────────────┐
|
|
34
|
+
│ Browser │────▶│ Grafana (port 3001) │
|
|
35
|
+
└──────────────┘ │ Anonymous Viewer access │
|
|
36
|
+
└───────────┬──────────────┘
|
|
37
|
+
│ SELECT only
|
|
38
|
+
┌───────────▼──────────────┐
|
|
39
|
+
│ Supabase PostgreSQL │
|
|
40
|
+
│ (grafana_ro role) │
|
|
41
|
+
└──────────────────────────┘
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Dashboard Panels
|
|
45
|
+
|
|
46
|
+
The provisioned dashboard ("DataSmith Pipeline Overview") includes:
|
|
47
|
+
|
|
48
|
+
| Section | Panels |
|
|
49
|
+
|---------|--------|
|
|
50
|
+
| **Dataset Growth** | Containers built by month, stat counts (PRs, containers, packages, repos), PR-to-container rate |
|
|
51
|
+
| **Repository Overview** | All repos by stars, containers-by-repo treemap |
|
|
52
|
+
| **Pull Request Insights** | Performance commit ratio, dataset time span, difficulty distribution, PR volume over time, optimization type distribution |
|
|
53
|
+
| **Package Resolution** | Python version distribution, installability by repo, resolution strategy breakdown |
|
|
54
|
+
| **Pipeline Status** | Active runners table, completion gauge, recent failures |
|
|
55
|
+
| **Synthesis** | Success rate over time, failure stage distribution, top error messages |
|
|
56
|
+
| **Synthesis Deeper Analysis** | First-attempt vs retry success, hardest repos, agent head-to-head |
|
|
57
|
+
| **Attempt Details** | Attempts per repo, duration by agent, duration over time |
|
|
58
|
+
| **Resource Metrics** | Build metrics table, image size vs build time, avg resources over time |
|
|
59
|
+
| **Pipeline Funnel** | End-to-end conversion: Repos → PRs → Perf PRs → Resolved → Built → Published |
|
|
60
|
+
| **Data Explorer** | Filtered table of performance PRs with referenced issues |
|
|
61
|
+
|
|
62
|
+
## Ad-hoc SQL Queries
|
|
63
|
+
|
|
64
|
+
Use Grafana's **Explore** mode (compass icon in the sidebar) to run arbitrary read-only SQL against the database. The `grafana_ro` role has `SELECT` access to all tables.
|
|
65
|
+
|
|
66
|
+
## Admin Access
|
|
67
|
+
|
|
68
|
+
To edit dashboards in the Grafana UI, log in with:
|
|
69
|
+
|
|
70
|
+
- **Username:** `admin`
|
|
71
|
+
- **Password:** value of `GRAFANA_ADMIN_PASSWORD` in `tokens.env` (defaults to `admin`)
|
|
72
|
+
|
|
73
|
+
## Configuration Files
|
|
74
|
+
|
|
75
|
+
| File | Purpose |
|
|
76
|
+
|------|---------|
|
|
77
|
+
| `grafana/docker-compose.yml` | Grafana service definition |
|
|
78
|
+
| `grafana/provisioning/datasources/supabase-postgres.yml` | PostgreSQL datasource (read-only) |
|
|
79
|
+
| `grafana/provisioning/dashboards/dashboard-provider.yml` | Dashboard file provider config |
|
|
80
|
+
| `grafana/provisioning/dashboards-json/datasmith-overview.json` | Dashboard panels and queries |
|
|
81
|
+
| `supabase/migrations/00009_grafana_readonly.sql` | Read-only Postgres role |
|
|
82
|
+
|
|
83
|
+
## Makefile Targets
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
make grafana-up # Start Grafana
|
|
87
|
+
make grafana-down # Stop Grafana
|
|
88
|
+
make grafana-logs # Tail container logs
|
|
89
|
+
make grafana-migrate # Apply the grafana_ro database role
|
|
90
|
+
```
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
<a href="https://formula-code.github.io/leaderboard/">
|
|
11
11
|
<img src="https://img.shields.io/badge/%F0%9F%93%88%20Leaderboard-EA580C?style=for-the-badge&logoColor=white" alt="FormulaCode Leaderboard">
|
|
12
12
|
</a>
|
|
13
|
-
<a href="https://formula-code.github.io/
|
|
14
|
-
<img src="https://img.shields.io/badge/%F0%9F%93%
|
|
13
|
+
<a href="https://formula-code.github.io/datasmith/">
|
|
14
|
+
<img src="https://img.shields.io/badge/%F0%9F%93%9A%20Docs-4B0082?style=for-the-badge" alt="fc-data Documentation">
|
|
15
15
|
</a>
|
|
16
|
-
<a href="https://
|
|
17
|
-
<img src="https://img.shields.io/badge/%F0%9F%93%
|
|
16
|
+
<a href="https://nonconstricting-zara-unhinderingly.ngrok-free.dev/">
|
|
17
|
+
<img src="https://img.shields.io/badge/%F0%9F%93%8A%20Live%20Dashboard-7F1D1D?style=for-the-badge" alt="Live Dashboard">
|
|
18
18
|
</a>
|
|
19
19
|
</p>
|
|
20
20
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
services:
|
|
2
|
+
grafana:
|
|
3
|
+
image: grafana/grafana-oss:11.6.0
|
|
4
|
+
container_name: datasmith_grafana
|
|
5
|
+
restart: unless-stopped
|
|
6
|
+
ports:
|
|
7
|
+
- "3001:3000"
|
|
8
|
+
env_file:
|
|
9
|
+
- ../tokens.env
|
|
10
|
+
environment:
|
|
11
|
+
# Anonymous read-only access (no login required)
|
|
12
|
+
- GF_AUTH_ANONYMOUS_ENABLED=true
|
|
13
|
+
- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
|
|
14
|
+
# Admin account for dashboard editing — password from tokens.env
|
|
15
|
+
- GF_SECURITY_ADMIN_USER=admin
|
|
16
|
+
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
|
|
17
|
+
# Home dashboard
|
|
18
|
+
- GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_UID=datasmith-overview
|
|
19
|
+
# Minimum refresh interval
|
|
20
|
+
- GF_DASHBOARDS_MIN_REFRESH_INTERVAL=1m
|
|
21
|
+
# Plugins
|
|
22
|
+
- GF_INSTALL_PLUGINS=netsage-sankey-panel,marcusolsson-treemap-panel
|
|
23
|
+
volumes:
|
|
24
|
+
- grafana-data:/var/lib/grafana
|
|
25
|
+
- ./provisioning/datasources:/etc/grafana/provisioning/datasources:ro
|
|
26
|
+
- ./provisioning/dashboards:/etc/grafana/provisioning/dashboards:ro
|
|
27
|
+
- ./provisioning/dashboards-json:/var/lib/grafana/dashboards:ro
|
|
28
|
+
networks:
|
|
29
|
+
- supabase_net
|
|
30
|
+
|
|
31
|
+
volumes:
|
|
32
|
+
grafana-data:
|
|
33
|
+
|
|
34
|
+
networks:
|
|
35
|
+
supabase_net:
|
|
36
|
+
external: true
|
|
37
|
+
name: supabase_network_datasmith_new
|