Add Unstructured report, rewrite statusline, format evals/scripts (#20)

* Add Unstructured engagement report as uv workspace member

Three-tier Plotly Dash app (Executive Brief, Engineering Team, Full
Detail) with data in JSON, theme constants in theme.py, and Dash
production improvements (Google Fonts, clientside callbacks, meta tags).

Also: add .playwright-mcp/ to .gitignore, add reports/* ruff overrides,
remove tracked .codeflash/observability/read-tracker.

* Rewrite statusline to derive context from git state

Detects active area from changed files (reports, packages, plugin,
.codeflash, case-studies, evals), falls back to branch name convention
(perf/*, feat/*, fix/*), shows dirty indicator. Uses whoami for
cross-platform user detection.

* Add pre-push lint rule to commit guidelines

* Exclude .codeflash/ from ruff linting

Benchmark and profiling scripts in .codeflash/ are scratch work, not
package source. Excluding them prevents CI failures from ad-hoc scripts.

* Run ruff format across packages, scripts, evals, and plugin refs

* Fix github-app async test failures in CI

Add asyncio_mode = "auto" to root pytest config so async tests
are detected when running from the repo root via uv run pytest packages/.
This commit is contained in:
Kevin Turcios 2026-04-15 03:06:16 -05:00 committed by GitHub
parent 2caaf6af7c
commit 33faedf427
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 3426 additions and 1434 deletions

View file

@ -1,21 +1,67 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Status line: Show active codeflash org/project. # Status line: derive context from git state, not just cwd.
cd "$CLAUDE_PROJECT_DIR" 2>/dev/null || exit 0 input=$(cat)
project_dir=$(echo "$input" | jq -r '.workspace.project_dir')
CF_DIR="$CLAUDE_PROJECT_DIR/.codeflash" user=$(whoami)
[ -d "$CF_DIR" ] || exit 0 branch=$(git -C "$project_dir" branch --show-current 2>/dev/null)
# Find the org/project directory (first one found) # Detect active area from recently changed files (staged + unstaged).
for ORG_DIR in "$CF_DIR"/*/; do changed=$(git -C "$project_dir" diff --name-only HEAD 2>/dev/null)
[ -d "$ORG_DIR" ] || continue [ -z "$changed" ] && changed=$(git -C "$project_dir" diff --name-only 2>/dev/null)
ORG=$(basename "$ORG_DIR") [ -z "$changed" ] && changed=$(git -C "$project_dir" diff --name-only --cached 2>/dev/null)
for PROJ_DIR in "$ORG_DIR"/*/; do
[ -d "$PROJ_DIR" ] || continue
PROJECT=$(basename "$PROJ_DIR")
echo "codeflash-agent is working in: $ORG/$PROJECT"
exit 0
done
done
exit 0 # Derive area from the most common top-level path in changed files.
if [ -n "$changed" ]; then
area=$(echo "$changed" | sed 's|/.*||' | sort | uniq -c | sort -rn | head -1 | awk '{print $2}')
else
area=""
fi
# Build context from area + changed file patterns.
context=""
case "$area" in
reports)
target=$(echo "$changed" | grep '^reports/' | sed 's|^reports/||; s|/.*||' | sort -u | head -1)
[ -n "$target" ] && context="building report: $target" ;;
packages)
target=$(echo "$changed" | grep '^packages/' | sed 's|^packages/||; s|/.*||' | sort -u | head -1)
[ -n "$target" ] && context="developing $target" ;;
plugin)
lang=$(echo "$changed" | grep '^plugin/languages/' | sed 's|^plugin/languages/||; s|/.*||' | sort -u | head -1)
if [ -n "$lang" ]; then
context="developing plugin: $lang"
else
context="developing plugin"
fi ;;
.codeflash)
target=$(echo "$changed" | grep '^\.codeflash/' | sed 's|^\.codeflash/[^/]*/||; s|/.*||' | sort -u | paste -sd/ - | head -1)
[ -n "$target" ] && context="optimizing $target" ;;
case-studies)
target=$(echo "$changed" | grep '^case-studies/' | sed 's|^case-studies/||' | cut -d/ -f1-2 | sort -u | head -1)
[ -n "$target" ] && context="writing case study: $target" ;;
evals)
context="running evals" ;;
esac
# If no changed files, fall back to branch name for context.
if [ -z "$context" ] && [ -n "$branch" ]; then
case "$branch" in
perf/*) context="optimizing: ${branch#perf/}" ;;
feat/*) context="building: ${branch#feat/}" ;;
fix/*) context="fixing: ${branch#fix/}" ;;
esac
fi
# Dirty indicator.
dirty=""
if [ -n "$(git -C "$project_dir" status --porcelain 2>/dev/null)" ]; then
dirty=" *"
fi
# Assemble.
status="$user | codeflash-agent"
[ -n "$context" ] && status="$status | $context"
[ -n "$branch" ] && status="$status | $branch$dirty"
echo "$status"

View file

@ -22,6 +22,11 @@ Every commit must be a single, self-contained logical change. Tests must pass at
- Use the body for *why*, not *what* — the diff shows what changed - Use the body for *why*, not *what* — the diff shows what changed
- Reference the pipeline stage or roadmap item when relevant - Reference the pipeline stage or roadmap item when relevant
## Pre-push
- Run `prek run --all-files` before pushing to catch lint/format issues CI would flag
- This catches pre-existing issues in files you didn't touch — CI lints the whole repo, not just your diff
## Branch Hygiene ## Branch Hygiene
- Delete feature branches locally after merging into main (`git branch -d <branch>`) - Delete feature branches locally after merging into main (`git branch -d <branch>`)

View file

@ -1,973 +0,0 @@
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/session-start.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/marketplace.json
/Users/krrt7/.claude/plugins/installed_plugins.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/68002f6d-738e-4a6d-b87d-a62be19bc3f2/tool-results/toolu_bdrk_01ALMycNAjRgTASDNUEH2pM9.txt
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/68002f6d-738e-4a6d-b87d-a62be19bc3f2/tool-results/toolu_bdrk_01Xw8n3HEpS1jAepuxBorgm1.txt
/Users/krrt7/.claude/settings.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.json
/Users/krrt7/.claude/settings.json
/Users/krrt7/.claude/settings.json
/Users/krrt7/.claude/settings.json
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/68002f6d-738e-4a6d-b87d-a62be19bc3f2/tool-results/toolu_bdrk_016CToSfc7XujfZ6isnmCMpK.txt
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.local.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.json
/Users/krrt7/.zshrc
/Users/krrt7/.zshenv
/Users/krrt7/.zprofile
/Users/krrt7/.zshrc
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/6057a151-05ef-4c61-8731-4ab4641aecf8/tool-results/toolu_bdrk_01Pa25ekXei8MYWmrJS1rdgt.txt
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.json
/Users/krrt7/.claude/settings.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/vm-manage.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/results.tsv
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/cloud-init.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/case-study-README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/evals/check-regression.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/scripts/new-case-study.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/evals/run-eval.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/intro.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/evals/.gitignore
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.github/workflows/github-app-tests.yml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/scripts/new-case-study.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/status-line.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/require-read.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/bash-guard.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/track-read.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/session-start.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/post-compact.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/hooks/hooks.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/vendor/codex/scripts/session-lifecycle-hook.mjs
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/case-study-README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/cloud-init.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/vm-manage.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/results.tsv
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/case-studies.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/microsoft/typeagent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/pypa/pip/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/textualize/rich/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/netflix/metaflow/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/sessions.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/microsoft/typeagent/infra/cloud-init.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/textualize/rich/infra/cloud-init.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/commits.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/agent-discipline.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.local.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/microsoft/typeagent/data/results.tsv
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/pypa/pip/data/results.tsv
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/microsoft/typeagent/infra/vm-manage.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/scripts/new-case-study.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/microsoft/typeagent/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/unstructured/core-product/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/unstructured/core-product/infra/vm-manage.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/unstructured/core-product/infra/cloud-init.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/session-start.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/templates/case-study-README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/microsoft/typeagent/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/session-start.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/testorg/testproject/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/case-studies/testorg/testproject/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/commands/codex-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/commands/codex-status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/commands/codex-setup.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/adversarial-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/hooks/hooks.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/languages/python/plugin/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/intro.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.gitignore
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-agent/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/case-studies.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/post-compact.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/commits.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-agent/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/settings.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/session-start.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-self-optimization/prior-art/pip-summary.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-self-optimization/prior-art/rich-summary.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-self-optimization/profiles/codeflash/tachyon-usage.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-self-optimization/infra/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/codeflash-ai/codeflash-self-optimization/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/post-compact.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/case-studies.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/sessions.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/scripts/scaffold.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.gitignore
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/infra/cloud-init.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/infra/vm-manage.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/data/conventions.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/bench/bench_throughput.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/data/results.tsv
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/.zshrc
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/ARCHITECTURE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/languages/python/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/languages/python/plugin/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/intro.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/marketplace.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/commands/codex-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash-researcher.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/commands/codex-setup.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/commands/codex-status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/hooks/hooks.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pr-body-templates.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/experiment-loop-base.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pr-preparation.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/ROADMAP.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pre-submit-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/e2e-benchmarks.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/learnings-template.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/adversarial-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/changelog-template.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/micro-benchmark.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/handoff-template.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/unified-profiling-script.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pr-body-templates.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/micro-benchmark.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/experiment-loop-base.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/handoff-template.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pre-submit-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/learnings-template.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pr-preparation.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/changelog-template.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/unified-profiling-script.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/e2e-benchmarks.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/adversarial-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/languages/python/plugin/references/library-replacement.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/languages/python/plugin/references/memory/pytest-memray.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/e2e-benchmarks.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/micro-benchmark.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pr-body-templates.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pre-submit-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/post-compact.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-setup.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/experiment-loop-base.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-setup.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-pr-prep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-ci.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-scan.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash-researcher.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/handoff-template.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/library-replacement.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/experiment-loop-base.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/micro-benchmark.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/async/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/structure/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/data-structures/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/memory/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/skills/memray-profiling/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/e2e-benchmarks.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/pr-preparation.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/e2e-benchmarks.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-scan.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-pr-prep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-ci.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-pr-prep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-ci.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-scan.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-base-protocol.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/sessions.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-bundle.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/references/prisma-performance.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/references/prisma-performance.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/plugin.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/.claude-plugin/marketplace.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/hooks/hooks.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/intro.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash-review.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash-researcher.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-memory.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-setup.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-async.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-ci.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-pr-prep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-scan.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-teams.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/v2/skills/codeflash-optimize/SKILL.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/intro.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/README.md
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-microsoft-org-typeagent/32354454-df78-4e14-a5b8-b4232f84cab7.jsonl
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-microsoft-org-typeagent/32354454-df78-4e14-a5b8-b4232f84cab7.jsonl
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-cpu.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/experiment-loop-base.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/references/prisma-performance.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-deep.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/post-compact.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/hooks/hooks.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/session-start.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/session-start.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/post-compact.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/hooks/hooks.json
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/hooks/post-compact.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/data/conventions.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/data/results.tsv
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/infra/vm-manage.sh
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/bench/bench_throughput.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/infra/cloud-init.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/memory/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/async/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/structure/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/data-structures/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/references/database/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-ci.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-js-ci.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/data-structures/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/data-structures/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/async/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/data-structures/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/data-structures/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/references/database/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/memory/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/data-structures/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/async/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/references/memory/guide.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/2c0831c4-1ac1-41fc-94f4-5e2ef736de5c/tool-results/toolu_bdrk_01Gu517mYwYDPEdQovg6pcHV.txt
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/2c0831c4-1ac1-41fc-94f4-5e2ef736de5c/tool-results/toolu_bdrk_01JWDFJj6zcovUuVPJh2AkJV.txt
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/failure-modes.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/team-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/scope.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/rules/scope.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/agent-teams.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/router-base.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/team-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/team-structure.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.gitignore
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/README.md
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/requirements.txt
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/cd_project.yml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/ci.yml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.github/workflows/github-app-tests.yml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/messagebus/messagebus/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/messagebus/messagebus/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/conftest.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/conftest.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/storage/blob_storage_adapters/tests/conftest.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/auth/jwt_auth/tests/conftest.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/github-app/tests/conftest.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/storage/blob_storage_adapters/Makefile
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/storage/blob_storage_adapters/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/ci_project.yml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.pre-commit-config.yaml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/scripts/versioning.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.gitignore
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/contracts/types/README.md
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/contracts/types/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/example/blob_storage_adapter/README.md
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/example/blob_storage_adapter/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/claude.yaml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/github-app/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/scripts/release.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/DEVELOPMENT.md
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/secrets/README.md
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/secrets/secrets_adapters/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/tests/test_git_utils.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.gitignore
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.github/workflows/github-app-tests.yml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.pre-commit-config.yaml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/auth/jwt_auth/Makefile
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/messagebus/messagebus/Makefile
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/storage/blob_storage_adapters/Makefile
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/ci.yml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/ci_project.yml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/cd_project.yml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/scripts/versioning.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/scripts/release.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/.github/workflows/cd_schema.yml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/Makefile
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/auth/jwt_auth/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/scripts/combine-changelogs.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/github-app/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.github/workflows/github-app-tests.yml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/scripts/versioning.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/scripts/combine-changelogs.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/handoffs/latest.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/handoffs/latest.md
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/factory.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/__init__.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/configuration.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/components/identity.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/components/bucket.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/components/common.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_model.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/utic_cloud_provider_azure/factory.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/utic_cloud_provider_azure/configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/utic_cloud_provider_azure/components/bucket.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/utic_cloud_provider_azure/components/identity.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_optimizer.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/minikube/utic_cloud_provider_minikube/factory.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/minikube/utic_cloud_provider_minikube/configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/components/__init__.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/utic_cloud_provider_azure/components/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_model.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/argocd/example/__main__.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/README.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_discovery.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/components/vpc.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/abstractions/utic_cloud_abstractions/components/types.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/utic_cloud_provider_azure/components/vpc.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/README.md
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/observability/utic_cloud_provider_observability/factory.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/observability/utic_cloud_provider_observability/configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_constants.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/azure/utic_cloud_provider_azure/__init__.py
/Users/krrt7/Desktop/work/unstructured_org/platform-libs/libs/cloud_abstractions/minikube/utic_cloud_provider_minikube/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/github-app/github_app/backends.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/ARCHITECTURE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_model.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/agents/codeflash.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/javascript/agents/codeflash-javascript.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/languages/python/agents/codeflash-python.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/references/shared/router-base.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/api/_config.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/api/_session.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/api/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_capabilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/bcsfi5oiz.output
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/conftest.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/utilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/test_bubblesort_pytest.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b20t55bpm.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b20t55bpm.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/bqqnsifl9.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/bqqnsifl9.output
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_state.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_capabilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_state.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/utilities.py
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b2h3h93wt.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b2h3h93wt.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b2h3h93wt.output
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/conftest.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/test_async.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/test_bubblesort_pytest.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/utilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/utilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/e2e/utilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_state.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_constants.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/_model.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_model.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_platform.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/api/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_compat.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_state.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_capabilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_telemetry.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_shell.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_git.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/exceptions.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/result.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_reference_graph.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_function_ranking.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_platform.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_benchmarking.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_replacement.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/orchestration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_capabilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_model.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_shell.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_git.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/test_discovery/discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/test_discovery/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_test_runner.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_baseline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_verification.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_ranking.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_capabilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/utils.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/stream.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/safe.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_telemetry.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/new_type.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/models.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_state.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/models.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_platform.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_compat.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_shell.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/tests/test_shell_utils.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/tests/test_shell_utils.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/test_discovery/discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_codeflash_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_subprocess_runners.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_config.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_concolic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_humanize_time.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_benchmarking.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/ai/_refinement.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_model.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_shell.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_shell.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/tests/test_shell_utils.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_compat.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_model.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_platform.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/test_discovery/discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_concolic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_config.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_subprocess_runners.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_codeflash_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_platform.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_telemetry.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_add_needed_imports_from_module.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_add_needed_imports_from_module.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_config.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_subprocess_runners.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_http.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_telemetry.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_platform.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_replacement.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/.claude/projects/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tool-results/toolu_bdrk_014HoRNyfAhzPCxxPNuSNUdR.txt
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_normalizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_baseline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_codeflash_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_all_and_run.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_inject_profiling_used_frameworks.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_async_run_and_parse_tests.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_async_tests.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_codeflash_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_tests.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrumentation_run_results_aiservice.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_async_tests.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_async_tests.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_async_tests.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_instrument_async_tests.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_import_management.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_replacement.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_replacement.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrument_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrument_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrument_core.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrumentation.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_post_selection.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_post_selection.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_post_selection.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_test_orchestrator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_cli.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/bo5ltp289.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/bo5ltp289.output
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_post_selection.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_normalizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/imports.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/resolve.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_import_management.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_critic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_function_references.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/helpers.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_reference_graph.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_ranking.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/test_discovery/linking.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_critic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_critic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_function_optimizer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_critic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/imports.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_import_management.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_replacement.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_imports.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/fallback.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_import_management.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/imports.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_import_management.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/imports.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_import_management.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/imports.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/imports.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/codegen/_import_management.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_tracing.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_verification.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_baseline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrument_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_ranking.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_baseline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_critic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/models.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_code_context_extractor.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/helpers.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/models.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/resolve.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_parse_test_output_regex.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_parse_pytest_test_failures.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_code_utils.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_path_resolution.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_xml_parser.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_data_parsers.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_stdout_parsers.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_result_merger.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_parse_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_candidate_eval.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/pipeline/_async_bench.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_benchmark_merge_test_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_async_concurrency_decorator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_critic.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_merge_test_results.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/github-app/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_tracing.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_tracing.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_tracing.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_tracer.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_tracing.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_tracing.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/models.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_trace_models.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_replay_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/benchmarking/_replay_gen.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/testing/_instrument_capture.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_enrichment.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_code_context_extractor.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/_class_analysis.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/context/_class_analysis.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/CLAUDE.md
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b6spxrfuz.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b6spxrfuz.output
/private/tmp/claude-501/-Users-krrt7-Desktop-work-cf-org-codeflash-agent/0016339b-4b7c-44c1-ad2a-cde00d8e4953/tasks/b6spxrfuz.output
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/analysis/_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_function_discovery.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/github-app/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/handoffs/latest.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.claude/handoffs/latest.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_verification.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/tests/test_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/src/codeflash_python/verification/_comparator.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-python/ROADMAP.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/unstructured/core-product/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/ROADMAP.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/github-app/ROADMAP.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/netflix/metaflow/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/pypa/pip/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/coveragepy/coveragepy/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/microsoft/typeagent/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.codeflash/textualize/rich/status.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/plugin/ROADMAP.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/pyproject.toml
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_client.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_pipeline.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_git.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_model.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_telemetry.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_platform.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_http.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/exceptions.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_plugin.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_state.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_capabilities.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/_configuration.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/result.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/new_type.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/safe.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/__init__.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/stream.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/packages/codeflash-core/src/codeflash_core/danom/utils.py
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.gitignore
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.gitignore
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/Makefile
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/.gitignore
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md
/Users/krrt7/Desktop/work/cf_org/codeflash-agent/CLAUDE.md

1
.gitignore vendored
View file

@ -11,3 +11,4 @@ original_base_research/
dist/ dist/
dist-*/ dist-*/
dist-v2/ dist-v2/
.playwright-mcp/

View file

@ -44,7 +44,11 @@ def _read_single_jsonl(jsonl: Path) -> list[str]:
elif block.get("type") == "tool_use": elif block.get("type") == "tool_use":
name = block.get("name", "") name = block.get("name", "")
inp = block.get("input", {}) inp = block.get("input", {})
cmd = inp.get("command", "") if isinstance(inp, dict) else "" cmd = (
inp.get("command", "")
if isinstance(inp, dict)
else ""
)
if cmd: if cmd:
parts.append(f"[{name}] {cmd}") parts.append(f"[{name}] {cmd}")
elif name == "Write" and isinstance(inp, dict): elif name == "Write" and isinstance(inp, dict):
@ -61,8 +65,13 @@ def _read_single_jsonl(jsonl: Path) -> list[str]:
parts.append(f"[result] {inner[:2000]}") parts.append(f"[result] {inner[:2000]}")
elif isinstance(inner, list): elif isinstance(inner, list):
for item in inner: for item in inner:
if isinstance(item, dict) and item.get("type") == "text": if (
parts.append(f"[result] {item['text'][:2000]}") isinstance(item, dict)
and item.get("type") == "text"
):
parts.append(
f"[result] {item['text'][:2000]}"
)
elif isinstance(content, str) and content: elif isinstance(content, str) and content:
parts.append(content) parts.append(content)
@ -178,20 +187,29 @@ def detect_memory_profiler_usage(session_text: str) -> bool:
return bool(_MEMORY_PROFILER_PATTERNS.search(session_text)) return bool(_MEMORY_PROFILER_PATTERNS.search(session_text))
def count_profiling_runs(session_text: str, profiler_type: str = "memory") -> int: def count_profiling_runs(
session_text: str, profiler_type: str = "memory"
) -> int:
"""Count distinct profiling command invocations in the session. """Count distinct profiling command invocations in the session.
Counts both direct bash commands (domain agent style) and profiling Counts both direct bash commands (domain agent style) and profiling
script executions (deep agent writes scripts then runs them). script executions (deep agent writes scripts then runs them).
""" """
pattern = _MEMORY_PROFILER_PATTERNS if profiler_type == "memory" else _CPU_PROFILER_PATTERNS pattern = (
_MEMORY_PROFILER_PATTERNS
if profiler_type == "memory"
else _CPU_PROFILER_PATTERNS
)
count = len(pattern.findall(session_text)) count = len(pattern.findall(session_text))
# Also count script executions that run profiling scripts # Also count script executions that run profiling scripts
# Deep agent writes /tmp/deep_profile.py or similar, then runs it # Deep agent writes /tmp/deep_profile.py or similar, then runs it
script_runs = len(re.findall( script_runs = len(
r"\[Bash\]\s.*python[3]?\s+/tmp/\w*prof\w*\.py", re.findall(
session_text, re.IGNORECASE, r"\[Bash\]\s.*python[3]?\s+/tmp/\w*prof\w*\.py",
)) session_text,
re.IGNORECASE,
)
)
return max(count, count + script_runs) return max(count, count + script_runs)
@ -216,21 +234,26 @@ def detect_ranked_list(session_text: str) -> bool:
""" """
has_profiler = bool(_CPU_PROFILER_PATTERNS.search(session_text)) has_profiler = bool(_CPU_PROFILER_PATTERNS.search(session_text))
# Look for ranking output — lines with percentages in a list/table context # Look for ranking output — lines with percentages in a list/table context
has_ranking = bool(re.search( has_ranking = bool(
r"(?:\d+\.?\d*\s*%.*(?:function|target|time|cumtime|tottime|CPU|Mem))|" re.search(
r"(?:(?:#\d|rank|\d\.\s).*\d+\.?\d*\s*%)|" r"(?:\d+\.?\d*\s*%.*(?:function|target|time|cumtime|tottime|CPU|Mem))|"
# Deep agent unified targets table r"(?:(?:#\d|rank|\d\.\s).*\d+\.?\d*\s*%)|"
r"\[unified targets\]|" # Deep agent unified targets table
r"(?:CPU\s*%.*Mem.*MiB)", r"\[unified targets\]|"
session_text, re.IGNORECASE, r"(?:CPU\s*%.*Mem.*MiB)",
)) session_text,
re.IGNORECASE,
)
)
return has_profiler and has_ranking return has_profiler and has_ranking
# --- LLM scoring --- # --- LLM scoring ---
def build_scoring_prompt(manifest: dict, conversation: str, variant: str) -> str: def build_scoring_prompt(
manifest: dict, conversation: str, variant: str
) -> str:
"""Build the prompt for LLM-based scoring.""" """Build the prompt for LLM-based scoring."""
rubric = manifest.get("rubric", {}) rubric = manifest.get("rubric", {})
criteria = rubric.get("criteria") or rubric.get("per_bug", {}) criteria = rubric.get("criteria") or rubric.get("per_bug", {})
@ -261,7 +284,7 @@ def build_scoring_prompt(manifest: dict, conversation: str, variant: str) -> str
return f"""You are scoring an AI agent's performance on a code optimization task. return f"""You are scoring an AI agent's performance on a code optimization task.
## Task Description ## Task Description
{manifest.get('description', 'No description')} {manifest.get("description", "No description")}
## Known Bugs ## Known Bugs
{bugs_desc} {bugs_desc}
@ -281,7 +304,7 @@ of actual tool use (profiling commands, code edits, test runs).
Return ONLY a JSON object with this exact structure: Return ONLY a JSON object with this exact structure:
{{ {{
"criteria": {{ "criteria": {{
{', '.join(f'"{name}": <0-{pts}>' for name, pts in criteria.items())} {", ".join(f'"{name}": <0-{pts}>' for name, pts in criteria.items())}
}}, }},
"notes": "<brief explanation of key scoring decisions>" "notes": "<brief explanation of key scoring decisions>"
}}""" }}"""
@ -291,9 +314,13 @@ def llm_score(prompt: str) -> dict:
"""Call Claude to score, return parsed JSON.""" """Call Claude to score, return parsed JSON."""
result = subprocess.run( result = subprocess.run(
[ [
"claude", "-p", prompt, "claude",
"--output-format", "json", "-p",
"--model", "sonnet", prompt,
"--output-format",
"json",
"--model",
"sonnet",
], ],
capture_output=True, capture_output=True,
text=True, text=True,
@ -311,7 +338,9 @@ def llm_score(prompt: str) -> dict:
# The result might be a JSON string # The result might be a JSON string
if isinstance(inner, str): if isinstance(inner, str):
# Extract JSON from markdown code blocks if present # Extract JSON from markdown code blocks if present
json_match = re.search(r"```(?:json)?\s*(\{.*?\})\s*```", inner, re.DOTALL) json_match = re.search(
r"```(?:json)?\s*(\{.*?\})\s*```", inner, re.DOTALL
)
if json_match: if json_match:
return json.loads(json_match.group(1)) return json.loads(json_match.group(1))
# Try parsing directly # Try parsing directly
@ -319,7 +348,11 @@ def llm_score(prompt: str) -> dict:
return json.loads(inner) return json.loads(inner)
except json.JSONDecodeError: except json.JSONDecodeError:
# Find JSON object in the text # Find JSON object in the text
brace_match = re.search(r"\{[^{}]*\"criteria\"[^{}]*\{[^{}]*\}[^{}]*\}", inner, re.DOTALL) brace_match = re.search(
r"\{[^{}]*\"criteria\"[^{}]*\{[^{}]*\}[^{}]*\}",
inner,
re.DOTALL,
)
if brace_match: if brace_match:
return json.loads(brace_match.group(0)) return json.loads(brace_match.group(0))
elif isinstance(inner, dict): elif isinstance(inner, dict):
@ -327,7 +360,10 @@ def llm_score(prompt: str) -> dict:
except json.JSONDecodeError: except json.JSONDecodeError:
continue continue
print(f"WARNING: Could not parse LLM response:\n{output[:500]}", file=sys.stderr) print(
f"WARNING: Could not parse LLM response:\n{output[:500]}",
file=sys.stderr,
)
return {} return {}
@ -360,10 +396,12 @@ def score_variant(variant: str, results_dir: Path, manifest: dict) -> dict:
break break
except (json.JSONDecodeError, TypeError): except (json.JSONDecodeError, TypeError):
pass pass
print(f" No session JSONL, using result text ({len(conversation)} chars)") print(
f" No session JSONL, using result text ({len(conversation)} chars)"
)
# LLM scoring # LLM scoring
print(f" Grading with LLM...") print(" Grading with LLM...")
prompt = build_scoring_prompt(manifest, conversation, variant) prompt = build_scoring_prompt(manifest, conversation, variant)
llm_result = llm_score(prompt) llm_result = llm_score(prompt)
scores = llm_result.get("criteria", {}) scores = llm_result.get("criteria", {})
@ -376,7 +414,9 @@ def score_variant(variant: str, results_dir: Path, manifest: dict) -> dict:
# Auto-score: tests_pass (deterministic, don't need LLM) # Auto-score: tests_pass (deterministic, don't need LLM)
if "tests_pass" in criteria: if "tests_pass" in criteria:
scores["tests_pass"] = criteria["tests_pass"] if check_tests_pass(test_output) else 0 scores["tests_pass"] = (
criteria["tests_pass"] if check_tests_pass(test_output) else 0
)
# Auto-score: optimization_depth from peak memory thresholds # Auto-score: optimization_depth from peak memory thresholds
auto_score = rubric.get("auto_score", {}) auto_score = rubric.get("auto_score", {})
@ -386,7 +426,9 @@ def score_variant(variant: str, results_dir: Path, manifest: dict) -> dict:
for t in auto_score["optimization_depth"].get("thresholds", []): for t in auto_score["optimization_depth"].get("thresholds", []):
if peak <= t["max_mb"]: if peak <= t["max_mb"]:
scores["optimization_depth"] = t["points"] scores["optimization_depth"] = t["points"]
llm_notes += f" | optimization_depth: {peak:.1f}MB → {t['label']}" llm_notes += (
f" | optimization_depth: {peak:.1f}MB → {t['label']}"
)
break break
# Auto-score: used_memory_profiler (deterministic — did agent use memray/tracemalloc?) # Auto-score: used_memory_profiler (deterministic — did agent use memray/tracemalloc?)
@ -396,7 +438,9 @@ def score_variant(variant: str, results_dir: Path, manifest: dict) -> dict:
llm_notes += " | used_memory_profiler: detected (deterministic)" llm_notes += " | used_memory_profiler: detected (deterministic)"
else: else:
scores["used_memory_profiler"] = 0 scores["used_memory_profiler"] = 0
llm_notes += " | used_memory_profiler: NOT detected (deterministic)" llm_notes += (
" | used_memory_profiler: NOT detected (deterministic)"
)
# Auto-score: profiled_iteratively (deterministic — count profiling runs) # Auto-score: profiled_iteratively (deterministic — count profiling runs)
if "profiled_iteratively" in criteria and conversation: if "profiled_iteratively" in criteria and conversation:
@ -413,11 +457,15 @@ def score_variant(variant: str, results_dir: Path, manifest: dict) -> dict:
# Auto-score: ran_adversarial_review (deterministic — codex adversarial review invoked) # Auto-score: ran_adversarial_review (deterministic — codex adversarial review invoked)
if "ran_adversarial_review" in criteria and conversation: if "ran_adversarial_review" in criteria and conversation:
if detect_adversarial_review(conversation): if detect_adversarial_review(conversation):
scores["ran_adversarial_review"] = criteria["ran_adversarial_review"] scores["ran_adversarial_review"] = criteria[
"ran_adversarial_review"
]
llm_notes += " | ran_adversarial_review: detected (deterministic)" llm_notes += " | ran_adversarial_review: detected (deterministic)"
else: else:
scores["ran_adversarial_review"] = 0 scores["ran_adversarial_review"] = 0
llm_notes += " | ran_adversarial_review: NOT detected (deterministic)" llm_notes += (
" | ran_adversarial_review: NOT detected (deterministic)"
)
# Auto-score: profiled_and_identified (deterministic — any profiler used) # Auto-score: profiled_and_identified (deterministic — any profiler used)
if "profiled_and_identified" in criteria and conversation: if "profiled_and_identified" in criteria and conversation:
@ -425,10 +473,14 @@ def score_variant(variant: str, results_dir: Path, manifest: dict) -> dict:
has_mem = detect_memory_profiler_usage(conversation) has_mem = detect_memory_profiler_usage(conversation)
if has_cpu or has_mem: if has_cpu or has_mem:
# Profiler detected — let LLM score the quality (don't override) # Profiler detected — let LLM score the quality (don't override)
llm_notes += f" | profiler: detected (cpu={has_cpu}, mem={has_mem})" llm_notes += (
f" | profiler: detected (cpu={has_cpu}, mem={has_mem})"
)
else: else:
scores["profiled_and_identified"] = 0 scores["profiled_and_identified"] = 0
llm_notes += " | profiler: NOT detected (deterministic override to 0)" llm_notes += (
" | profiler: NOT detected (deterministic override to 0)"
)
# Fill missing criteria with 0 # Fill missing criteria with 0
for name in criteria: for name in criteria:
@ -468,7 +520,10 @@ def aggregate_runs(parent_dir: Path) -> int:
"""Aggregate scores from multiple runs into stats per criterion.""" """Aggregate scores from multiple runs into stats per criterion."""
run_dirs = sorted(parent_dir.glob("run-*/")) run_dirs = sorted(parent_dir.glob("run-*/"))
if not run_dirs: if not run_dirs:
print(f"ERROR: No run-*/ directories found in {parent_dir}", file=sys.stderr) print(
f"ERROR: No run-*/ directories found in {parent_dir}",
file=sys.stderr,
)
return 1 return 1
for variant in ("skill", "baseline"): for variant in ("skill", "baseline"):
@ -496,7 +551,9 @@ def aggregate_runs(parent_dir: Path) -> int:
"min": min(vals), "min": min(vals),
"max": max(vals), "max": max(vals),
"avg": round(avg, 1), "avg": round(avg, 1),
"stddev": round(math.sqrt(sum((v - avg) ** 2 for v in vals) / n), 2), "stddev": round(
math.sqrt(sum((v - avg) ** 2 for v in vals) / n), 2
),
} }
total_avg = sum(totals) / n total_avg = sum(totals) / n
@ -508,7 +565,9 @@ def aggregate_runs(parent_dir: Path) -> int:
"min": min(totals), "min": min(totals),
"max": max(totals), "max": max(totals),
"avg": round(total_avg, 1), "avg": round(total_avg, 1),
"stddev": round(math.sqrt(sum((v - total_avg) ** 2 for v in totals) / n), 2), "stddev": round(
math.sqrt(sum((v - total_avg) ** 2 for v in totals) / n), 2
),
}, },
"max_possible": max_total, "max_possible": max_total,
"criteria": criteria_stats, "criteria": criteria_stats,
@ -520,7 +579,9 @@ def aggregate_runs(parent_dir: Path) -> int:
agg["flaky_criteria"] = flaky agg["flaky_criteria"] = flaky
# Collect durations # Collect durations
durations = [s.get("duration") for s in scores if s.get("duration") is not None] durations = [
s.get("duration") for s in scores if s.get("duration") is not None
]
if durations: if durations:
agg["duration"] = { agg["duration"] = {
"min": min(durations), "min": min(durations),
@ -533,22 +594,30 @@ def aggregate_runs(parent_dir: Path) -> int:
# Print summary # Print summary
print(f"=== {variant} aggregate ({n} runs) ===") print(f"=== {variant} aggregate ({n} runs) ===")
print(f" Total: {agg['total']['avg']}/{max_total} " print(
f"(range {agg['total']['min']}-{agg['total']['max']}, " f" Total: {agg['total']['avg']}/{max_total} "
f"stddev {agg['total']['stddev']})") f"(range {agg['total']['min']}-{agg['total']['max']}, "
f"stddev {agg['total']['stddev']})"
)
print() print()
for crit, stats in criteria_stats.items(): for crit, stats in criteria_stats.items():
flaky_mark = " *" if stats["stddev"] > 0 else "" flaky_mark = " *" if stats["stddev"] > 0 else ""
print(f" {crit:40s} avg={stats['avg']:4.1f} " print(
f"range=[{stats['min']}-{stats['max']}] " f" {crit:40s} avg={stats['avg']:4.1f} "
f"stddev={stats['stddev']}{flaky_mark}") f"range=[{stats['min']}-{stats['max']}] "
f"stddev={stats['stddev']}{flaky_mark}"
)
if flaky: if flaky:
print(f"\n * flaky criteria (non-zero stddev): {', '.join(flaky)}") print(
f"\n * flaky criteria (non-zero stddev): {', '.join(flaky)}"
)
if agg.get("duration"): if agg.get("duration"):
d = agg["duration"] d = agg["duration"]
print(f"\n Duration: avg={d['avg']}s range=[{d['min']}-{d['max']}s]") print(
f"\n Duration: avg={d['avg']}s range=[{d['min']}-{d['max']}s]"
)
print() print()
return 0 return 0
@ -588,8 +657,9 @@ def score_single(results_dir: Path) -> int:
if result.get("duration"): if result.get("duration"):
print(f" Duration: {result['duration']}s") print(f" Duration: {result['duration']}s")
rubric_criteria = (manifest.get("rubric", {}).get("criteria") or rubric_criteria = manifest.get("rubric", {}).get(
manifest.get("rubric", {}).get("per_bug", {})) "criteria"
) or manifest.get("rubric", {}).get("per_bug", {})
for criterion, score in result["criteria"].items(): for criterion, score in result["criteria"].items():
max_pts = rubric_criteria.get(criterion, "?") max_pts = rubric_criteria.get(criterion, "?")
print(f" {criterion}: {score}/{max_pts}") print(f" {criterion}: {score}/{max_pts}")
@ -633,12 +703,17 @@ def score_single(results_dir: Path) -> int:
def main(): def main():
if len(sys.argv) < 2: if len(sys.argv) < 2:
print("Usage: python3 score.py <results-dir>", file=sys.stderr) print("Usage: python3 score.py <results-dir>", file=sys.stderr)
print(" python3 score.py aggregate <parent-dir>", file=sys.stderr) print(
" python3 score.py aggregate <parent-dir>", file=sys.stderr
)
return 1 return 1
if sys.argv[1] == "aggregate": if sys.argv[1] == "aggregate":
if len(sys.argv) < 3: if len(sys.argv) < 3:
print("Usage: python3 score.py aggregate <parent-dir>", file=sys.stderr) print(
"Usage: python3 score.py aggregate <parent-dir>",
file=sys.stderr,
)
return 1 return 1
return aggregate_runs(Path(sys.argv[2])) return aggregate_runs(Path(sys.argv[2]))

View file

@ -1,6 +1,5 @@
"""Batch processing module with async interface.""" """Batch processing module with async interface."""
import asyncio
async def async_batch_process(items: list[dict]) -> list[dict]: async def async_batch_process(items: list[dict]) -> list[dict]:
@ -31,7 +30,9 @@ def _transform(item: dict) -> dict:
"""Apply transformation to a single item.""" """Apply transformation to a single item."""
return { return {
"id": item["id"], "id": item["id"],
"data": item["data"].upper() if isinstance(item["data"], str) else item["data"], "data": item["data"].upper()
if isinstance(item["data"], str)
else item["data"],
"priority": item["priority"], "priority": item["priority"],
"processed": True, "processed": True,
} }

View file

@ -1,4 +1,3 @@
import pytest
from log_analyzer.analyzer import analyze_logs from log_analyzer.analyzer import analyze_logs

View file

@ -1,5 +1,5 @@
import asyncio import asyncio
import pytest
from log_analyzer.batch import async_batch_process from log_analyzer.batch import async_batch_process

View file

@ -1,5 +1,4 @@
import pytest from log_analyzer.streamer import aggregate_results, stream_results
from log_analyzer.streamer import stream_results, aggregate_results
def test_stream_basic(): def test_stream_basic():

View file

@ -1,12 +1,9 @@
"""Event enrichment with async metadata lookup and fingerprinting.""" """Event enrichment with async metadata lookup and fingerprinting."""
import asyncio import asyncio
import hashlib
async def enrich_events( async def enrich_events(events: list[dict], metadata_db: dict) -> list[dict]:
events: list[dict], metadata_db: dict
) -> list[dict]:
"""Enrich events with metadata and compute dedup fingerprints. """Enrich events with metadata and compute dedup fingerprints.
For each event, looks up source metadata from the DB and computes For each event, looks up source metadata from the DB and computes

View file

@ -1,13 +1,11 @@
"""Output formatting for aggregated pipeline results.""" """Output formatting for aggregated pipeline results."""
import copy import copy
import json
import hashlib import hashlib
import json
def format_results( def format_results(records: list[dict], schema: dict) -> list[str]:
records: list[dict], schema: dict
) -> list[str]:
"""Format records according to schema, adding computed fields. """Format records according to schema, adding computed fields.
Each record gets merged with the schema defaults, then enriched with Each record gets merged with the schema defaults, then enriched with

View file

@ -1,4 +1,3 @@
import pytest
from pipeline.aggregator import aggregate_by_category from pipeline.aggregator import aggregate_by_category

View file

@ -1,5 +1,5 @@
import asyncio import asyncio
import pytest
from pipeline.enricher import enrich_events from pipeline.enricher import enrich_events
@ -18,7 +18,10 @@ def test_enrich_basic():
def test_enrich_large_batch(): def test_enrich_large_batch():
"""Production-scale enrichment — this async endpoint is too slow.""" """Production-scale enrichment — this async endpoint is too slow."""
sources = [f"source-{i}" for i in range(20)] sources = [f"source-{i}" for i in range(20)]
db = {s: {"region": f"region-{i % 5}", "tier": "pro"} for i, s in enumerate(sources)} db = {
s: {"region": f"region-{i % 5}", "tier": "pro"}
for i, s in enumerate(sources)
}
events = [] events = []
for i in range(30_000): for i in range(30_000):
events.append( events.append(

View file

@ -1,4 +1,3 @@
import pytest
from pipeline.formatter import format_results from pipeline.formatter import format_results

View file

@ -1,4 +1,3 @@
import pytest
from processor.core import process_records from processor.core import process_records
@ -46,7 +45,10 @@ def test_process_large_batch():
"routing": { "routing": {
"queue": "default", "queue": "default",
"priority_levels": [1, 2, 3, 4, 5], "priority_levels": [1, 2, 3, 4, 5],
"retry_policy": {"max_retries": 5, "delay_ms": [100, 500, 2000]}, "retry_policy": {
"max_retries": 5,
"delay_ms": [100, 500, 2000],
},
}, },
}, },
} }

View file

@ -6,8 +6,17 @@ from collections import defaultdict
class Order: class Order:
"""A customer order with product, pricing, and shipping info.""" """A customer order with product, pricing, and shipping info."""
def __init__(self, id, customer, product, category, quantity, price, def __init__(
shipping_address, metadata): self,
id,
customer,
product,
category,
quantity,
price,
shipping_address,
metadata,
):
self.id = id self.id = id
self.customer = customer self.customer = customer
self.product = product self.product = product
@ -24,16 +33,18 @@ def parse_orders(raw_data):
"""Parse raw dicts into Order objects.""" """Parse raw dicts into Order objects."""
orders = [] orders = []
for item in raw_data: for item in raw_data:
orders.append(Order( orders.append(
id=item["id"], Order(
customer=item["customer"], id=item["id"],
product=item["product"], customer=item["customer"],
category=item["category"], product=item["product"],
quantity=item["quantity"], category=item["category"],
price=item["price"], quantity=item["quantity"],
shipping_address=item["shipping_address"], price=item["price"],
metadata=item.get("metadata", {}), shipping_address=item["shipping_address"],
)) metadata=item.get("metadata", {}),
)
)
return orders return orders
@ -96,12 +107,16 @@ def build_fulfillment_plan(orders):
f"Details: {json.dumps(order.metadata)}\n" f"Details: {json.dumps(order.metadata)}\n"
f"{'=' * 50}\n" f"{'=' * 50}\n"
) )
plan.append({ plan.append(
"order_id": order.id, {
"label": label, "order_id": order.id,
"warehouse": f"WH-{abs(hash(order.shipping_address)) % 5}", "label": label,
"priority": "EXPRESS" if order.final_price > 500 else "STANDARD", "warehouse": f"WH-{abs(hash(order.shipping_address)) % 5}",
}) "priority": "EXPRESS"
if order.final_price > 500
else "STANDARD",
}
)
return plan return plan
@ -116,7 +131,9 @@ def generate_summary(orders):
summary[cat] = { summary[cat] = {
"count": len(cat_orders), "count": len(cat_orders),
"total_revenue": round(sum(o.final_price for o in cat_orders), 2), "total_revenue": round(sum(o.final_price for o in cat_orders), 2),
"avg_quantity": round(sum(o.quantity for o in cat_orders) / len(cat_orders), 1), "avg_quantity": round(
sum(o.quantity for o in cat_orders) / len(cat_orders), 1
),
} }
return summary return summary

View file

@ -1,18 +1,38 @@
import pytest
from orders.core import process_orders from orders.core import process_orders
def test_basic(): def test_basic():
raw = [ raw = [
{"id": 1, "customer": "Alice", "product": "Widget", "category": "tools", {
"quantity": 2, "price": 25.0, "shipping_address": "123 Main St", "id": 1,
"metadata": {"payment_method": "credit_card"}}, "customer": "Alice",
{"id": 2, "customer": "Bob", "product": "Gadget", "category": "tools", "product": "Widget",
"quantity": 1, "price": 50.0, "shipping_address": "456 Oak Ave", "category": "tools",
"metadata": {"payment_method": "paypal"}}, "quantity": 2,
{"id": 3, "customer": "Carol", "product": "Gizmo", "category": "electronics", "price": 25.0,
"quantity": 5, "price": 10.0, "shipping_address": "789 Elm Dr", "shipping_address": "123 Main St",
"metadata": {"payment_method": "debit"}}, "metadata": {"payment_method": "credit_card"},
},
{
"id": 2,
"customer": "Bob",
"product": "Gadget",
"category": "tools",
"quantity": 1,
"price": 50.0,
"shipping_address": "456 Oak Ave",
"metadata": {"payment_method": "paypal"},
},
{
"id": 3,
"customer": "Carol",
"product": "Gizmo",
"category": "electronics",
"quantity": 5,
"price": 10.0,
"shipping_address": "789 Elm Dr",
"metadata": {"payment_method": "debit"},
},
] ]
result = process_orders(raw) result = process_orders(raw)
assert len(result["summary"]) == 2 assert len(result["summary"]) == 2
@ -43,10 +63,19 @@ def test_large_batch():
"price": round(10.0 + (i % 500) * 0.5, 2), "price": round(10.0 + (i % 500) * 0.5, 2),
"shipping_address": f"{100 + i % 999} Main St, City-{i % 50}, ST {10000 + i % 90000}", "shipping_address": f"{100 + i % 999} Main St, City-{i % 50}, ST {10000 + i % 90000}",
"metadata": { "metadata": {
"payment_method": ["credit_card", "debit", "paypal", "bank_transfer"][i % 4], "payment_method": [
"order_source": ["web", "mobile", "api", "in_store"][i % 4], "credit_card",
"debit",
"paypal",
"bank_transfer",
][i % 4],
"order_source": ["web", "mobile", "api", "in_store"][
i % 4
],
"loyalty_tier": ["bronze", "silver", "gold"][i % 3], "loyalty_tier": ["bronze", "silver", "gold"][i % 3],
"promo_code": f"PROMO-{i % 20:03d}" if i % 5 == 0 else None, "promo_code": f"PROMO-{i % 20:03d}"
if i % 5 == 0
else None,
"gift_wrap": i % 7 == 0, "gift_wrap": i % 7 == 0,
"notes": f"Order note #{i}" if i % 10 == 0 else "", "notes": f"Order note #{i}" if i % 10 == 0 else "",
"tracking": {"email": True, "sms": i % 3 == 0}, "tracking": {"email": True, "sms": i % 3 == 0},

View file

@ -3,19 +3,20 @@ import json
import time import time
from collections import defaultdict from collections import defaultdict
# Processing log — records each operation for debugging and audit trail # Processing log — records each operation for debugging and audit trail
_processing_log = [] _processing_log = []
def _log_operation(stage, reading_id, snapshot): def _log_operation(stage, reading_id, snapshot):
"""Append an operation record to the processing log.""" """Append an operation record to the processing log."""
_processing_log.append({ _processing_log.append(
"stage": stage, {
"reading_id": reading_id, "stage": stage,
"timestamp": time.monotonic(), "reading_id": reading_id,
"snapshot": snapshot, "timestamp": time.monotonic(),
}) "snapshot": snapshot,
}
)
def _snapshot(reading): def _snapshot(reading):
@ -73,8 +74,7 @@ def validate_readings(readings):
def calibrate(readings): def calibrate(readings):
"""Apply per-sensor-type calibration offsets.""" """Apply per-sensor-type calibration offsets."""
offsets = { offsets = {
f"sensor-{i}": round(0.1 * (i % 5) - 0.2, 2) f"sensor-{i}": round(0.1 * (i % 5) - 0.2, 2) for i in range(100)
for i in range(100)
} }
calibrated = [] calibrated = []

View file

@ -1,15 +1,29 @@
import pytest
from pipeline.core import process_readings from pipeline.core import process_readings
def test_basic(): def test_basic():
raw = [ raw = [
{"id": 1, "sensor_type": "temp", "timestamp": "2024-01-01T00:00:00", {
"value": 22.5, "metadata": {"location": {"lat": 0, "lng": 0}}}, "id": 1,
{"id": 2, "sensor_type": "temp", "timestamp": "2024-01-01T01:00:00", "sensor_type": "temp",
"value": 23.0, "metadata": {"location": {"lat": 0, "lng": 0}}}, "timestamp": "2024-01-01T00:00:00",
{"id": 3, "sensor_type": "humidity", "timestamp": "2024-01-01T00:00:00", "value": 22.5,
"value": 45.0, "metadata": {"location": {"lat": 0, "lng": 0}}}, "metadata": {"location": {"lat": 0, "lng": 0}},
},
{
"id": 2,
"sensor_type": "temp",
"timestamp": "2024-01-01T01:00:00",
"value": 23.0,
"metadata": {"location": {"lat": 0, "lng": 0}},
},
{
"id": 3,
"sensor_type": "humidity",
"timestamp": "2024-01-01T00:00:00",
"value": 45.0,
"metadata": {"location": {"lat": 0, "lng": 0}},
},
] ]
result = process_readings(raw) result = process_readings(raw)
assert len(result) == 2 assert len(result) == 2

View file

@ -3,10 +3,20 @@ import json
import time import time
from collections import defaultdict from collections import defaultdict
VALID_CATEGORIES = frozenset({ VALID_CATEGORIES = frozenset(
"electronics", "clothing", "food", "home", "sports", {
"books", "toys", "health", "auto", "garden", "electronics",
}) "clothing",
"food",
"home",
"sports",
"books",
"toys",
"health",
"auto",
"garden",
}
)
REGIONS = frozenset({"US-EAST", "US-WEST", "EU-NORTH", "EU-SOUTH", "APAC"}) REGIONS = frozenset({"US-EAST", "US-WEST", "EU-NORTH", "EU-SOUTH", "APAC"})
@ -19,20 +29,26 @@ REGION_NAMES = {
} }
CURRENCIES = { CURRENCIES = {
"US-EAST": "USD", "US-WEST": "USD", "US-EAST": "USD",
"EU-NORTH": "EUR", "EU-SOUTH": "EUR", "US-WEST": "USD",
"EU-NORTH": "EUR",
"EU-SOUTH": "EUR",
"APAC": "JPY", "APAC": "JPY",
} }
TAX_RATES = { TAX_RATES = {
"US-EAST": 0.08, "US-WEST": 0.075, "US-EAST": 0.08,
"EU-NORTH": 0.25, "EU-SOUTH": 0.22, "US-WEST": 0.075,
"EU-NORTH": 0.25,
"EU-SOUTH": 0.22,
"APAC": 0.10, "APAC": 0.10,
} }
class Transaction: class Transaction:
def __init__(self, id, amount, category, region, timestamp, customer, metadata): def __init__(
self, id, amount, category, region, timestamp, customer, metadata
):
self.id = id self.id = id
self.amount = amount self.amount = amount
self.category = category self.category = category
@ -45,6 +61,7 @@ class Transaction:
def generate_transactions(n): def generate_transactions(n):
"""Generate raw transaction data for testing.""" """Generate raw transaction data for testing."""
import random import random
rng = random.Random(42) rng = random.Random(42)
categories = sorted(VALID_CATEGORIES) categories = sorted(VALID_CATEGORIES)
@ -54,19 +71,21 @@ def generate_transactions(n):
raw = [] raw = []
for i in range(n): for i in range(n):
raw.append({ raw.append(
"id": i, {
"amount": round(rng.uniform(5.0, 500.0), 2), "id": i,
"category": rng.choice(categories), "amount": round(rng.uniform(5.0, 500.0), 2),
"region": rng.choice(regions), "category": rng.choice(categories),
"timestamp": f"2024-01-{(i % 28) + 1:02d}T{i % 24:02d}:{i % 60:02d}:00Z", "region": rng.choice(regions),
"customer": f"customer-{rng.randint(1, 10000):05d}", "timestamp": f"2024-01-{(i % 28) + 1:02d}T{i % 24:02d}:{i % 60:02d}:00Z",
"metadata": { "customer": f"customer-{rng.randint(1, 10000):05d}",
"channel": rng.choice(channels), "metadata": {
"priority": rng.choice(priorities), "channel": rng.choice(channels),
"tags": [f"tag-{rng.randint(1, 100)}" for _ in range(3)], "priority": rng.choice(priorities),
}, "tags": [f"tag-{rng.randint(1, 100)}" for _ in range(3)],
}) },
}
)
return raw return raw
@ -74,15 +93,17 @@ def parse_transactions(raw_data):
"""Parse raw dicts into Transaction objects.""" """Parse raw dicts into Transaction objects."""
transactions = [] transactions = []
for item in raw_data: for item in raw_data:
transactions.append(Transaction( transactions.append(
id=item["id"], Transaction(
amount=item["amount"], id=item["id"],
category=item["category"], amount=item["amount"],
region=item["region"], category=item["category"],
timestamp=item["timestamp"], region=item["region"],
customer=item["customer"], timestamp=item["timestamp"],
metadata=item["metadata"], customer=item["customer"],
)) metadata=item["metadata"],
)
)
return transactions return transactions
@ -100,38 +121,49 @@ def validate_transactions(transactions):
"amount_limit": t.amount < 1_000_000, "amount_limit": t.amount < 1_000_000,
"category_known": t.category in VALID_CATEGORIES, "category_known": t.category in VALID_CATEGORIES,
"region_active": t.region in REGIONS, "region_active": t.region in REGIONS,
"customer_format": bool(t.customer) and t.customer.startswith("customer-"), "customer_format": bool(t.customer)
and t.customer.startswith("customer-"),
"timestamp_present": bool(t.timestamp), "timestamp_present": bool(t.timestamp),
"metadata_valid": isinstance(t.metadata, dict) and "channel" in t.metadata, "metadata_valid": isinstance(t.metadata, dict)
and "channel" in t.metadata,
} }
# Build comprehensive audit snapshot for compliance record # Build comprehensive audit snapshot for compliance record
audit_snapshot = json.dumps({ audit_snapshot = json.dumps(
"transaction_id": t.id, {
"amount": str(t.amount), "transaction_id": t.id,
"category": t.category, "amount": str(t.amount),
"region": t.region, "category": t.category,
"customer": t.customer, "region": t.region,
"timestamp": t.timestamp, "customer": t.customer,
"metadata_repr": repr(t.metadata), "timestamp": t.timestamp,
"field_checks": field_checks, "metadata_repr": repr(t.metadata),
"validation_ts": time.time(), "field_checks": field_checks,
}, sort_keys=True, default=str) "validation_ts": time.time(),
},
sort_keys=True,
default=str,
)
# Generate compliance hash chain for audit trail # Generate compliance hash chain for audit trail
primary_hash = hashlib.sha256(audit_snapshot.encode()).hexdigest() primary_hash = hashlib.sha256(audit_snapshot.encode()).hexdigest()
compliance_envelope = json.dumps({ compliance_envelope = json.dumps(
"primary_hash": primary_hash, {
"rules_version": "2024.1.3", "primary_hash": primary_hash,
"field_checks": field_checks, "rules_version": "2024.1.3",
"chain_input": ( "field_checks": field_checks,
f"VALIDATE:{t.id}:{t.amount}:{t.category}" "chain_input": (
f":{t.region}:{primary_hash[:16]}" f"VALIDATE:{t.id}:{t.amount}:{t.category}"
), f":{t.region}:{primary_hash[:16]}"
}, sort_keys=True) ),
},
sort_keys=True,
)
# Store ONLY the final compliance hash (not the full audit data) # Store ONLY the final compliance hash (not the full audit data)
t._compliance_hash = hashlib.sha256(compliance_envelope.encode()).hexdigest() t._compliance_hash = hashlib.sha256(
compliance_envelope.encode()
).hexdigest()
if all(field_checks.values()): if all(field_checks.values()):
t.validated = True t.validated = True
@ -221,14 +253,18 @@ def format_report(analytics):
lines.append(f" Transactions: {stats['count']:,}") lines.append(f" Transactions: {stats['count']:,}")
lines.append(f" Revenue: ${stats['revenue']:,.2f}") lines.append(f" Revenue: ${stats['revenue']:,.2f}")
lines.append(f" Avg Order: ${stats['avg_order']:,.2f}") lines.append(f" Avg Order: ${stats['avg_order']:,.2f}")
lines.append(f" Range: ${stats['min_order']:,.2f} — ${stats['max_order']:,.2f}") lines.append(
f" Range: ${stats['min_order']:,.2f} — ${stats['max_order']:,.2f}"
)
lines.append("") lines.append("")
lines.extend([ lines.extend(
"=" * 60, [
f"TOTAL: {total_count:,} transactions, ${total_revenue:,.2f} revenue", "=" * 60,
"=" * 60, f"TOTAL: {total_count:,} transactions, ${total_revenue:,.2f} revenue",
]) "=" * 60,
]
)
return "\n".join(lines) return "\n".join(lines)

View file

@ -1,15 +1,32 @@
import pytest
from aggregator.core import process_dataset from aggregator.core import process_dataset
def test_basic(): def test_basic():
raw = [ raw = [
{"id": 1, "category": "web", "source": "s1", "date": "2024-01-01", {
"value": 10.0, "metadata": {"tags": ["a"], "region": "us"}}, "id": 1,
{"id": 2, "category": "web", "source": "s2", "date": "2024-01-02", "category": "web",
"value": 20.0, "metadata": {"tags": ["b"], "region": "eu"}}, "source": "s1",
{"id": 3, "category": "api", "source": "s1", "date": "2024-01-01", "date": "2024-01-01",
"value": 5.0, "metadata": {"tags": ["a"], "region": "us"}}, "value": 10.0,
"metadata": {"tags": ["a"], "region": "us"},
},
{
"id": 2,
"category": "web",
"source": "s2",
"date": "2024-01-02",
"value": 20.0,
"metadata": {"tags": ["b"], "region": "eu"},
},
{
"id": 3,
"category": "api",
"source": "s1",
"date": "2024-01-01",
"value": 5.0,
"metadata": {"tags": ["a"], "region": "us"},
},
] ]
result = process_dataset(raw) result = process_dataset(raw)
assert len(result) == 2 assert len(result) == 2

View file

@ -1,10 +1,10 @@
"""Analytics pipeline: parse → validate → normalize → deduplicate → """Analytics pipeline: parse → validate → normalize → deduplicate →
enrich score rank filter format summarize.""" enrich score rank filter format summarize."""
import copy import copy
import hashlib
import json import json
import re import re
import hashlib
def run_pipeline(records: list[dict], config: dict) -> dict: def run_pipeline(records: list[dict], config: dict) -> dict:
@ -208,7 +208,9 @@ def generate_summary(records: list[dict]) -> dict:
for other_cat in categories: for other_cat in categories:
if other_cat == cat: if other_cat == cat:
continue continue
other_records = [r for r in records if r.get("category", "") == other_cat] other_records = [
r for r in records if r.get("category", "") == other_cat
]
other_sources = [r.get("source", "") for r in other_records] other_sources = [r.get("source", "") for r in other_records]
shared = 0 shared = 0
for s in cat_sources: for s in cat_sources:

View file

@ -1,4 +1,3 @@
import pytest
from analytics.pipeline import run_pipeline from analytics.pipeline import run_pipeline
@ -11,14 +10,45 @@ def test_basic():
"defaults": {"priority": 0}, "defaults": {"priority": 0},
} }
records = [ records = [
{"id": 1, "value": 10.0, "category": "web", "source": "s1", "tags": []}, {
{"id": 2, "value": 20.0, "category": "web", "source": "s2", "tags": []}, "id": 1,
{"id": 3, "value": 5.0, "category": "api", "source": "s1", "tags": ["spam"]}, "value": 10.0,
{"id": 4, "value": 15.0, "category": "api", "source": "banned", "tags": []}, "category": "web",
{"value": 1.0, "category": "x", "source": "s1", "tags": []}, # missing id "source": "s1",
"tags": [],
},
{
"id": 2,
"value": 20.0,
"category": "web",
"source": "s2",
"tags": [],
},
{
"id": 3,
"value": 5.0,
"category": "api",
"source": "s1",
"tags": ["spam"],
},
{
"id": 4,
"value": 15.0,
"category": "api",
"source": "banned",
"tags": [],
},
{
"value": 1.0,
"category": "x",
"source": "s1",
"tags": [],
}, # missing id
] ]
result = run_pipeline(records, config) result = run_pipeline(records, config)
assert len(result["records"]) == 2 # filtered: missing id, blocked source, blocked tag assert (
len(result["records"]) == 2
) # filtered: missing id, blocked source, blocked tag
assert len(result["summary"]) > 0 assert len(result["summary"]) > 0

View file

@ -40,9 +40,7 @@ def clean_records(records: list[dict]) -> list[dict]:
return cleaned return cleaned
def validate_records( def validate_records(records: list[dict], config: dict) -> list[dict]:
records: list[dict], config: dict
) -> list[dict]:
"""Filter records missing required fields or on the blocklist. """Filter records missing required fields or on the blocklist.
Uses a list for blocklist lookups to preserve insertion order Uses a list for blocklist lookups to preserve insertion order

View file

@ -1,4 +1,3 @@
import pytest
from pipeline.core import run_pipeline from pipeline.core import run_pipeline
@ -11,7 +10,11 @@ def test_basic():
{"id": 1, "value": "hello world", "category": "a", "base_score": 1.0}, {"id": 1, "value": "hello world", "category": "a", "base_score": 1.0},
{"id": 2, "value": "foo", "category": "a", "base_score": 2.0}, {"id": 2, "value": "foo", "category": "a", "base_score": 2.0},
{"id": 999, "value": "blocked", "category": "b", "base_score": 1.0}, {"id": 999, "value": "blocked", "category": "b", "base_score": 1.0},
{"id": 3, "value": "bar", "category": "b"}, # missing base_score is ok (defaults to 1.0) {
"id": 3,
"value": "bar",
"category": "b",
}, # missing base_score is ok (defaults to 1.0)
{"value": "no id"}, # missing required field {"value": "no id"}, # missing required field
] ]
result = run_pipeline(records, config) result = run_pipeline(records, config)
@ -40,5 +43,7 @@ def test_large_batch():
} }
) )
result = run_pipeline(records, config) result = run_pipeline(records, config)
assert len(result) == 5_000 # none blocked (IDs 0-4999, blocklist 9000-9099) assert (
len(result) == 5_000
) # none blocked (IDs 0-4999, blocklist 9000-9099)
assert all("score" in r for r in result) assert all("score" in r for r in result)

View file

@ -6,15 +6,24 @@
# Usage: Adapt the "RUN TARGET HERE" section for your test/benchmark, # Usage: Adapt the "RUN TARGET HERE" section for your test/benchmark,
# then run with: $RUNNER /tmp/deep_profile.py # then run with: $RUNNER /tmp/deep_profile.py
import cProfile, tracemalloc, gc, time, pstats, os, sys import cProfile
import gc
import os
import pstats
import time
import tracemalloc
# Track GC to quantify allocation→CPU interaction # Track GC to quantify allocation→CPU interaction
gc_times = [] gc_times = []
def gc_callback(phase, info): def gc_callback(phase, info):
if phase == 'start': if phase == "start":
gc_callback._start = time.perf_counter() gc_callback._start = time.perf_counter()
elif phase == 'stop': elif phase == "stop":
gc_times.append(time.perf_counter() - gc_callback._start) gc_times.append(time.perf_counter() - gc_callback._start)
gc.callbacks.append(gc_callback) gc.callbacks.append(gc_callback)
tracemalloc.start() tracemalloc.start()
@ -25,11 +34,11 @@ profiler.enable()
profiler.disable() profiler.disable()
mem_snapshot = tracemalloc.take_snapshot() mem_snapshot = tracemalloc.take_snapshot()
profiler.dump_stats('/tmp/deep_cpu.prof') profiler.dump_stats("/tmp/deep_cpu.prof")
# Memory top allocators # Memory top allocators
print("=== MEMORY: Top allocators ===") print("=== MEMORY: Top allocators ===")
for stat in mem_snapshot.statistics('lineno')[:15]: for stat in mem_snapshot.statistics("lineno")[:15]:
print(stat) print(stat)
# GC impact # GC impact
@ -38,9 +47,9 @@ print(f"\n=== GC: {len(gc_times)} collections, {total_gc:.3f}s total ===")
# CPU top functions (project-only) # CPU top functions (project-only)
print("\n=== CPU: Top project functions ===") print("\n=== CPU: Top project functions ===")
p = pstats.Stats('/tmp/deep_cpu.prof') p = pstats.Stats("/tmp/deep_cpu.prof")
stats = p.stats stats = p.stats
src = os.path.abspath('src') # adjust to project source root src = os.path.abspath("src") # adjust to project source root
project_funcs = [] project_funcs = []
for (file, line, name), (cc, nc, tt, ct, callers) in stats.items(): for (file, line, name), (cc, nc, tt, ct, callers) in stats.items():
if not os.path.abspath(file).startswith(src): if not os.path.abspath(file).startswith(src):
@ -48,8 +57,8 @@ for (file, line, name), (cc, nc, tt, ct, callers) in stats.items():
project_funcs.append((ct, tt, name, file, line)) project_funcs.append((ct, tt, name, file, line))
project_funcs.sort(reverse=True) project_funcs.sort(reverse=True)
total = project_funcs[0][0] if project_funcs else 1 total = project_funcs[0][0] if project_funcs else 1
if not os.path.exists('/tmp/deep_baseline_total'): if not os.path.exists("/tmp/deep_baseline_total"):
with open('/tmp/deep_baseline_total', 'w') as f: with open("/tmp/deep_baseline_total", "w") as f:
f.write(str(total)) f.write(str(total))
for ct, tt, name, file, line in project_funcs[:15]: for ct, tt, name, file, line in project_funcs[:15]:
pct = ct / total * 100 pct = ct / total * 100

View file

@ -4,7 +4,7 @@ version = "0.1.0"
requires-python = ">=3.9" requires-python = ">=3.9"
[tool.uv.workspace] [tool.uv.workspace]
members = ["packages/*"] members = ["packages/*", "reports/*"]
[dependency-groups] [dependency-groups]
dev = [ dev = [
@ -50,6 +50,7 @@ src = [
"packages/github-app", "packages/github-app",
] ]
extend-exclude = [ extend-exclude = [
".codeflash/",
"packages/codeflash-python/tests/code_to_optimize", "packages/codeflash-python/tests/code_to_optimize",
"packages/codeflash-python/src/codeflash_python/ai/_tabulate.py", "packages/codeflash-python/src/codeflash_python/ai/_tabulate.py",
] ]
@ -234,6 +235,17 @@ ignore = [
"W", # whitespace issues in test data strings "W", # whitespace issues in test data strings
] ]
"reports/*" = [
"C901", # complex layout builders are expected in Dash apps
"E501", # long strings in inline HTML
"ERA001", # section separator comments
"PERF403", # dict comprehension not clearer here
"PLR0913", # helper functions with many style params
"PLR0915", # long layout functions are expected in Dash
"PLR2004", # magic values in layout (pixel sizes, etc.)
"T201", # print for dev server
]
[tool.isort] [tool.isort]
known_first_party = ["codeflash_python", "codeflash_core"] known_first_party = ["codeflash_python", "codeflash_core"]
@ -258,6 +270,7 @@ module = "codeflash_python.testing._instrumentation"
ignore_errors = true ignore_errors = true
[tool.pytest.ini_options] [tool.pytest.ini_options]
asyncio_mode = "auto"
addopts = [ addopts = [
"--strict-markers", "--strict-markers",
"--strict-config", "--strict-config",

View file

@ -0,0 +1,73 @@
{
"core_product_base": "https://github.com/Unstructured-IO/core-product/pull",
"github_workflows_base": "https://github.com/Unstructured-IO/github-workflows/pull",
"mem_before": {
"pre_partition_mb": 2619,
"post_partition_mb": 3491,
"max_alloc_mb": 268,
"k8s_gb": 32
},
"mem_after": {
"pre_partition_mb": 499,
"post_partition_mb": 1398,
"max_alloc_mb": 134,
"k8s_gb": 4
},
"bench_before": {
"post_import_mib": 1189,
"first_partition_delta_mib": 949,
"peak_gb": 1.660,
"total_gb": 16.398,
"allocs": 5585979,
"wall_s": 76.0
},
"bench_after": {
"post_import_mib": 952,
"first_partition_delta_mib": 707,
"peak_gb": 1.473,
"total_gb": 20.239,
"allocs": 6210809,
"wall_s": 86.0
},
"latency_opts": [
["Pdfium PNG -> BMP render", 89, 890, 2.1, "#1503"],
["Pass file path to tesseract", 515, 5148, 12.2, "#1506"]
],
"ci_before": {
"jobs_spawned": 301,
"jobs_ran": 193,
"billed_min": 205,
"wall": "3m 49s",
"cost": 1.64
},
"ci_after": {
"jobs_spawned": 33,
"jobs_ran": 31,
"billed_min": 31,
"wall": "1m 05s",
"cost": 0.25
},
"merged_prs": [
[1398, "2026-03-27", "Fix: avoid blocking event loop during gzip decompression", "Reliability", "core-product"],
[1399, "2026-04-03", "Fix: avoid blocking event loop during PDF validation", "Reliability", "core-product"],
[1400, "2026-03-30", "Fix: avoid blocking event loop during CSV response merging", "Reliability", "core-product"],
[1441, "2026-04-03", "mem: resize-first preprocessing", "Memory", "core-product"],
[1448, "2026-03-24", "mem: free page image before table OCR", "Memory", "core-product"],
[1464, "2026-03-27", "refactor: replace lazyproperty with cached_property", "Code quality", "core-product"],
[1481, "2026-04-03", "perf: reduce attribute lookups in hot path", "Latency", "core-product"],
[1502, "2026-04-14", "perf: CPU-aware serial OCR (sched_getaffinity)", "Memory", "core-product"],
[1506, "2026-04-13", "perf: pass file path directly to tesseract", "Latency", "core-product"],
[1507, "2026-04-14", "perf: use jemalloc to reduce fragmentation", "Memory", "core-product"],
[360, "2026-04-10", "Add uv workspace support via optional package input", "CI/CD", "github-workflows"],
[361, "2026-04-11", "Skip pip.conf in uv workspace mode", "CI/CD", "github-workflows"]
],
"open_prs": [
[1471, "Async OCR pipeline via aiopytesseract", "Latency", "core-product"],
[1500, "Stacked optimizations for hi_res PDF pipeline", "Memory + Latency", "core-product"],
[1503, "Render PDF pages as BMP instead of PNG", "Latency", "core-product"],
[1505, "Pass image file path directly to tesseract OCR", "Latency", "core-product"],
[1509, "Use BMP instead of PNG for pytesseract temp files", "Latency", "core-product"],
[667, "POC: uv workspace for platform-libs (28 packages)", "CI/CD", "platform-libs"],
[669, "CI baseline measurement (do not merge)", "CI/CD", "platform-libs"]
]
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
[project]
name = "unstructured-report"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = [
"dash>=4.1",
"plotly>=6.7",
]

View file

@ -0,0 +1,59 @@
"""Theme and styling constants for the Unstructured x Codeflash engagement report."""
# ── Colors (Codeflash dark - amber/zinc) ────────────────────────────────────
ACCENT = "#ffd227"
DARK = "#09090b"
CARD_BG = "#18181b"
CARD_BORDER = "#27272a"
SLATE = "#e4e4e7"
GRAY = "#a1a1aa"
LIGHT_GRAY = "#71717a"
BG = "#09090b"
WHITE = "#fafafa"
GREEN = "#4ade80"
LIGHT_GREEN = "rgba(74,222,128,0.12)"
RED = "#f87171"
LIGHT_RED = "rgba(248,113,113,0.12)"
AMBER = "#fbbf24"
BLUE = "#60a5fa"
PURPLE = "#a78bfa"
PINK = "#f472b6"
# ── Component styles ────────────────────────────────────────────────────────
CARD = {
"background": CARD_BG,
"borderRadius": "12px",
"padding": "28px 32px",
"border": f"1px solid {CARD_BORDER}",
}
FONT = "'Inter', system-ui, -apple-system, sans-serif"
MONO = "'JetBrains Mono', 'Menlo', monospace"
# ── Table styles ────────────────────────────────────────────────────────────
TABLE_STYLE = {
"style_header": {
"backgroundColor": "#0f0f12",
"color": ACCENT,
"fontWeight": "600",
"fontSize": "13px",
"padding": "12px 16px",
"borderBottom": f"1px solid {CARD_BORDER}",
},
"style_cell": {
"textAlign": "left",
"padding": "12px 16px",
"fontSize": "13px",
"fontFamily": FONT,
"border": "none",
"color": SLATE,
},
"style_data": {"backgroundColor": CARD_BG, "color": SLATE},
"style_data_conditional": [
{"if": {"row_index": "odd"}, "backgroundColor": "#1f1f23"}
],
"style_table": {
"borderRadius": "12px",
"overflow": "hidden",
"border": f"1px solid {CARD_BORDER}",
},
}

View file

@ -31,14 +31,14 @@ import re
import statistics import statistics
import subprocess import subprocess
from collections import Counter, defaultdict from collections import Counter, defaultdict
from collections.abc import Iterable
from dataclasses import asdict, dataclass, field from dataclasses import asdict, dataclass, field
from datetime import datetime, timezone from datetime import datetime, timezone
from functools import lru_cache from functools import lru_cache
from pathlib import Path from pathlib import Path
from typing import Any, Iterable from typing import Any
from uuid import UUID from uuid import UUID
EXTENSION_TO_LANGUAGE: dict[str, str] = { EXTENSION_TO_LANGUAGE: dict[str, str] = {
".ts": "TypeScript", ".ts": "TypeScript",
".tsx": "TypeScript", ".tsx": "TypeScript",
@ -142,150 +142,150 @@ AGENT_TOOL_NAMES = {"Agent", "Task"}
GOAL_PATTERNS: dict[str, list[re.Pattern[str]]] = { GOAL_PATTERNS: dict[str, list[re.Pattern[str]]] = {
"debug_investigate": [ "debug_investigate": [
re.compile(r"\bdebug\b", re.I), re.compile(r"\bdebug\b", re.IGNORECASE),
re.compile(r"\binvestigat", re.I), re.compile(r"\binvestigat", re.IGNORECASE),
re.compile(r"\btrace\b", re.I), re.compile(r"\btrace\b", re.IGNORECASE),
re.compile(r"\bwhy\b", re.I), re.compile(r"\bwhy\b", re.IGNORECASE),
re.compile(r"\berror\b", re.I), re.compile(r"\berror\b", re.IGNORECASE),
re.compile(r"\bissue\b", re.I), re.compile(r"\bissue\b", re.IGNORECASE),
], ],
"implement_feature": [ "implement_feature": [
re.compile(r"\bimplement\b", re.I), re.compile(r"\bimplement\b", re.IGNORECASE),
re.compile(r"\bbuild\b", re.I), re.compile(r"\bbuild\b", re.IGNORECASE),
re.compile(r"\bfeature\b", re.I), re.compile(r"\bfeature\b", re.IGNORECASE),
re.compile(r"\badd\b", re.I), re.compile(r"\badd\b", re.IGNORECASE),
re.compile(r"\bcreate\b", re.I), re.compile(r"\bcreate\b", re.IGNORECASE),
], ],
"fix_bug": [ "fix_bug": [
re.compile(r"\bfix\b", re.I), re.compile(r"\bfix\b", re.IGNORECASE),
re.compile(r"\bbug\b", re.I), re.compile(r"\bbug\b", re.IGNORECASE),
re.compile(r"\bbroken\b", re.I), re.compile(r"\bbroken\b", re.IGNORECASE),
re.compile(r"\bfailing\b", re.I), re.compile(r"\bfailing\b", re.IGNORECASE),
], ],
"write_script_tool": [ "write_script_tool": [
re.compile(r"\bscript\b", re.I), re.compile(r"\bscript\b", re.IGNORECASE),
re.compile(r"\bcli\b", re.I), re.compile(r"\bcli\b", re.IGNORECASE),
re.compile(r"\btool\b", re.I), re.compile(r"\btool\b", re.IGNORECASE),
re.compile(r"\bautomation\b", re.I), re.compile(r"\bautomation\b", re.IGNORECASE),
], ],
"refactor_code": [ "refactor_code": [
re.compile(r"\brefactor\b", re.I), re.compile(r"\brefactor\b", re.IGNORECASE),
re.compile(r"\bcleanup\b", re.I), re.compile(r"\bcleanup\b", re.IGNORECASE),
re.compile(r"\breorgan", re.I), re.compile(r"\breorgan", re.IGNORECASE),
re.compile(r"\bsimplif", re.I), re.compile(r"\bsimplif", re.IGNORECASE),
], ],
"configure_system": [ "configure_system": [
re.compile(r"\bconfigure\b", re.I), re.compile(r"\bconfigure\b", re.IGNORECASE),
re.compile(r"\bsetup\b", re.I), re.compile(r"\bsetup\b", re.IGNORECASE),
re.compile(r"\binstall\b", re.I), re.compile(r"\binstall\b", re.IGNORECASE),
re.compile(r"\bconfig\b", re.I), re.compile(r"\bconfig\b", re.IGNORECASE),
re.compile(r"\benv\b", re.I), re.compile(r"\benv\b", re.IGNORECASE),
re.compile(r"\bdocker\b", re.I), re.compile(r"\bdocker\b", re.IGNORECASE),
re.compile(r"\bci\b", re.I), re.compile(r"\bci\b", re.IGNORECASE),
], ],
"create_pr_commit": [ "create_pr_commit": [
re.compile(r"\bcommit\b", re.I), re.compile(r"\bcommit\b", re.IGNORECASE),
re.compile(r"\bpull request\b", re.I), re.compile(r"\bpull request\b", re.IGNORECASE),
re.compile(r"\bpr\b", re.I), re.compile(r"\bpr\b", re.IGNORECASE),
re.compile(r"\bmerge\b", re.I), re.compile(r"\bmerge\b", re.IGNORECASE),
], ],
"analyze_data": [ "analyze_data": [
re.compile(r"\banaly[sz]e\b", re.I), re.compile(r"\banaly[sz]e\b", re.IGNORECASE),
re.compile(r"\bmetrics\b", re.I), re.compile(r"\bmetrics\b", re.IGNORECASE),
re.compile(r"\breport\b", re.I), re.compile(r"\breport\b", re.IGNORECASE),
re.compile(r"\bdata\b", re.I), re.compile(r"\bdata\b", re.IGNORECASE),
], ],
"understand_codebase": [ "understand_codebase": [
re.compile(r"\bunderstand\b", re.I), re.compile(r"\bunderstand\b", re.IGNORECASE),
re.compile(r"\bexplain\b", re.I), re.compile(r"\bexplain\b", re.IGNORECASE),
re.compile(r"\bwalk ?through\b", re.I), re.compile(r"\bwalk ?through\b", re.IGNORECASE),
re.compile(r"\bhow does\b", re.I), re.compile(r"\bhow does\b", re.IGNORECASE),
re.compile(r"\bwhere is\b", re.I), re.compile(r"\bwhere is\b", re.IGNORECASE),
], ],
"write_tests": [ "write_tests": [
re.compile(r"\btests?\b", re.I), re.compile(r"\btests?\b", re.IGNORECASE),
re.compile(r"\bpytest\b", re.I), re.compile(r"\bpytest\b", re.IGNORECASE),
re.compile(r"\bunit test\b", re.I), re.compile(r"\bunit test\b", re.IGNORECASE),
re.compile(r"\bintegration test\b", re.I), re.compile(r"\bintegration test\b", re.IGNORECASE),
], ],
"write_docs": [ "write_docs": [
re.compile(r"\breadme\b", re.I), re.compile(r"\breadme\b", re.IGNORECASE),
re.compile(r"\bdocs?\b", re.I), re.compile(r"\bdocs?\b", re.IGNORECASE),
re.compile(r"\bdocument", re.I), re.compile(r"\bdocument", re.IGNORECASE),
], ],
"deploy_infra": [ "deploy_infra": [
re.compile(r"\bdeploy\b", re.I), re.compile(r"\bdeploy\b", re.IGNORECASE),
re.compile(r"\binfra\b", re.I), re.compile(r"\binfra\b", re.IGNORECASE),
re.compile(r"\bterraform\b", re.I), re.compile(r"\bterraform\b", re.IGNORECASE),
re.compile(r"\bkubernetes\b", re.I), re.compile(r"\bkubernetes\b", re.IGNORECASE),
re.compile(r"\bk8s\b", re.I), re.compile(r"\bk8s\b", re.IGNORECASE),
], ],
} }
REPEATED_INSTRUCTION_PATTERNS = [ REPEATED_INSTRUCTION_PATTERNS = [
re.compile(r"\balways\b", re.I), re.compile(r"\balways\b", re.IGNORECASE),
re.compile(r"\bnever\b", re.I), re.compile(r"\bnever\b", re.IGNORECASE),
re.compile(r"\bdon't\b", re.I), re.compile(r"\bdon't\b", re.IGNORECASE),
re.compile(r"\bdo not\b", re.I), re.compile(r"\bdo not\b", re.IGNORECASE),
re.compile(r"\bplease\b", re.I), re.compile(r"\bplease\b", re.IGNORECASE),
re.compile(r"\bmake sure\b", re.I), re.compile(r"\bmake sure\b", re.IGNORECASE),
re.compile(r"\buse\b", re.I), re.compile(r"\buse\b", re.IGNORECASE),
re.compile(r"\brun\b", re.I), re.compile(r"\brun\b", re.IGNORECASE),
re.compile(r"\bavoid\b", re.I), re.compile(r"\bavoid\b", re.IGNORECASE),
] ]
POSITIVE_STRONG_PATTERNS = [ POSITIVE_STRONG_PATTERNS = [
re.compile(r"\bperfect\b", re.I), re.compile(r"\bperfect\b", re.IGNORECASE),
re.compile(r"\bgreat\b", re.I), re.compile(r"\bgreat\b", re.IGNORECASE),
re.compile(r"\bawesome\b", re.I), re.compile(r"\bawesome\b", re.IGNORECASE),
re.compile(r"\bexcellent\b", re.I), re.compile(r"\bexcellent\b", re.IGNORECASE),
re.compile(r"\blove\b", re.I), re.compile(r"\blove\b", re.IGNORECASE),
re.compile(r"\bship it\b", re.I), re.compile(r"\bship it\b", re.IGNORECASE),
] ]
POSITIVE_MILD_PATTERNS = [ POSITIVE_MILD_PATTERNS = [
re.compile(r"\bthanks\b", re.I), re.compile(r"\bthanks\b", re.IGNORECASE),
re.compile(r"\bthat works\b", re.I), re.compile(r"\bthat works\b", re.IGNORECASE),
re.compile(r"\bworks\b", re.I), re.compile(r"\bworks\b", re.IGNORECASE),
re.compile(r"\blooks good\b", re.I), re.compile(r"\blooks good\b", re.IGNORECASE),
re.compile(r"\bsolid\b", re.I), re.compile(r"\bsolid\b", re.IGNORECASE),
] ]
NEGATIVE_STRONG_PATTERNS = [ NEGATIVE_STRONG_PATTERNS = [
re.compile(r"\bbroken\b", re.I), re.compile(r"\bbroken\b", re.IGNORECASE),
re.compile(r"\bfrustrat", re.I), re.compile(r"\bfrustrat", re.IGNORECASE),
re.compile(r"\bgive up\b", re.I), re.compile(r"\bgive up\b", re.IGNORECASE),
re.compile(r"\buseless\b", re.I), re.compile(r"\buseless\b", re.IGNORECASE),
re.compile(r"\bterrible\b", re.I), re.compile(r"\bterrible\b", re.IGNORECASE),
] ]
NEGATIVE_MILD_PATTERNS = [ NEGATIVE_MILD_PATTERNS = [
re.compile(r"\bnot right\b", re.I), re.compile(r"\bnot right\b", re.IGNORECASE),
re.compile(r"\bwrong\b", re.I), re.compile(r"\bwrong\b", re.IGNORECASE),
re.compile(r"\btry again\b", re.I), re.compile(r"\btry again\b", re.IGNORECASE),
re.compile(r"\bstill failing\b", re.I), re.compile(r"\bstill failing\b", re.IGNORECASE),
re.compile(r"\bdoesn't work\b", re.I), re.compile(r"\bdoesn't work\b", re.IGNORECASE),
re.compile(r"\bdoes not work\b", re.I), re.compile(r"\bdoes not work\b", re.IGNORECASE),
re.compile(r"\bproblem\b", re.I), re.compile(r"\bproblem\b", re.IGNORECASE),
] ]
CONTINUATION_PATTERNS = [ CONTINUATION_PATTERNS = [
re.compile(r"\bok\b", re.I), re.compile(r"\bok\b", re.IGNORECASE),
re.compile(r"\bokay\b", re.I), re.compile(r"\bokay\b", re.IGNORECASE),
re.compile(r"\bnow\b", re.I), re.compile(r"\bnow\b", re.IGNORECASE),
re.compile(r"\bnext\b", re.I), re.compile(r"\bnext\b", re.IGNORECASE),
re.compile(r"\balso\b", re.I), re.compile(r"\balso\b", re.IGNORECASE),
re.compile(r"\bthen\b", re.I), re.compile(r"\bthen\b", re.IGNORECASE),
] ]
PROMPT_NOISE_RE = re.compile(r"^\s*<[a-z][^>]*>", re.I) PROMPT_NOISE_RE = re.compile(r"^\s*<[a-z][^>]*>", re.IGNORECASE)
PROJECT_AREA_DESCRIPTIONS = { PROJECT_AREA_DESCRIPTIONS = {
@ -407,7 +407,7 @@ class SessionMeta:
user_message_timestamps: list[str] user_message_timestamps: list[str]
@classmethod @classmethod
def from_dict(cls, payload: dict[str, Any]) -> "SessionMeta": def from_dict(cls, payload: dict[str, Any]) -> SessionMeta:
return cls(**payload) return cls(**payload)
@ -427,7 +427,7 @@ class SessionFacets:
user_instructions_to_claude: list[str] = field(default_factory=list) user_instructions_to_claude: list[str] = field(default_factory=list)
@classmethod @classmethod
def from_dict(cls, payload: dict[str, Any]) -> "SessionFacets": def from_dict(cls, payload: dict[str, Any]) -> SessionFacets:
return cls(**payload) return cls(**payload)
@ -2652,9 +2652,9 @@ def generate_time_of_day_chart(hours: list[int]) -> str:
"Morning (6-12)": range(6, 12), "Morning (6-12)": range(6, 12),
"Afternoon (12-18)": range(12, 18), "Afternoon (12-18)": range(12, 18),
"Evening (18-24)": range(18, 24), "Evening (18-24)": range(18, 24),
"Night (0-6)": range(0, 6), "Night (0-6)": range(6),
} }
counts = {label: 0 for label in periods} counts = dict.fromkeys(periods, 0)
for hour in hours: for hour in hours:
for label, hour_range in periods.items(): for label, hour_range in periods.items():
if hour in hour_range: if hour in hour_range:

View file

@ -32,7 +32,6 @@ from functools import lru_cache
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
LABEL_MAP: dict[str, str] = { LABEL_MAP: dict[str, str] = {
"debug_investigate": "Debug/Investigate", "debug_investigate": "Debug/Investigate",
"implement_feature": "Implement Feature", "implement_feature": "Implement Feature",
@ -66,79 +65,79 @@ LABEL_MAP: dict[str, str] = {
GOAL_PATTERNS: dict[str, list[re.Pattern[str]]] = { GOAL_PATTERNS: dict[str, list[re.Pattern[str]]] = {
"debug_investigate": [ "debug_investigate": [
re.compile(r"\bdebug\b", re.I), re.compile(r"\bdebug\b", re.IGNORECASE),
re.compile(r"\binvestigat", re.I), re.compile(r"\binvestigat", re.IGNORECASE),
re.compile(r"\btrace\b", re.I), re.compile(r"\btrace\b", re.IGNORECASE),
re.compile(r"\berror\b", re.I), re.compile(r"\berror\b", re.IGNORECASE),
re.compile(r"\bwhy\b", re.I), re.compile(r"\bwhy\b", re.IGNORECASE),
re.compile(r"\bfail", re.I), re.compile(r"\bfail", re.IGNORECASE),
], ],
"implement_feature": [ "implement_feature": [
re.compile(r"\bimplement\b", re.I), re.compile(r"\bimplement\b", re.IGNORECASE),
re.compile(r"\bbuild\b", re.I), re.compile(r"\bbuild\b", re.IGNORECASE),
re.compile(r"\bfeature\b", re.I), re.compile(r"\bfeature\b", re.IGNORECASE),
re.compile(r"\badd\b", re.I), re.compile(r"\badd\b", re.IGNORECASE),
re.compile(r"\bcreate\b", re.I), re.compile(r"\bcreate\b", re.IGNORECASE),
], ],
"fix_bug": [ "fix_bug": [
re.compile(r"\bfix\b", re.I), re.compile(r"\bfix\b", re.IGNORECASE),
re.compile(r"\bbug\b", re.I), re.compile(r"\bbug\b", re.IGNORECASE),
re.compile(r"\bbroken\b", re.I), re.compile(r"\bbroken\b", re.IGNORECASE),
re.compile(r"\bfailing\b", re.I), re.compile(r"\bfailing\b", re.IGNORECASE),
], ],
"write_script_tool": [ "write_script_tool": [
re.compile(r"\bscript\b", re.I), re.compile(r"\bscript\b", re.IGNORECASE),
re.compile(r"\bcli\b", re.I), re.compile(r"\bcli\b", re.IGNORECASE),
re.compile(r"\btool\b", re.I), re.compile(r"\btool\b", re.IGNORECASE),
re.compile(r"\bautomation\b", re.I), re.compile(r"\bautomation\b", re.IGNORECASE),
], ],
"refactor_code": [ "refactor_code": [
re.compile(r"\brefactor\b", re.I), re.compile(r"\brefactor\b", re.IGNORECASE),
re.compile(r"\bcleanup\b", re.I), re.compile(r"\bcleanup\b", re.IGNORECASE),
re.compile(r"\breorgan", re.I), re.compile(r"\breorgan", re.IGNORECASE),
re.compile(r"\bsimplif", re.I), re.compile(r"\bsimplif", re.IGNORECASE),
], ],
"configure_system": [ "configure_system": [
re.compile(r"\bconfigure\b", re.I), re.compile(r"\bconfigure\b", re.IGNORECASE),
re.compile(r"\bsetup\b", re.I), re.compile(r"\bsetup\b", re.IGNORECASE),
re.compile(r"\binstall\b", re.I), re.compile(r"\binstall\b", re.IGNORECASE),
re.compile(r"\bconfig\b", re.I), re.compile(r"\bconfig\b", re.IGNORECASE),
re.compile(r"\benv\b", re.I), re.compile(r"\benv\b", re.IGNORECASE),
re.compile(r"\bci\b", re.I), re.compile(r"\bci\b", re.IGNORECASE),
], ],
"create_pr_commit": [ "create_pr_commit": [
re.compile(r"\bcommit\b", re.I), re.compile(r"\bcommit\b", re.IGNORECASE),
re.compile(r"\bpull request\b", re.I), re.compile(r"\bpull request\b", re.IGNORECASE),
re.compile(r"\bpr\b", re.I), re.compile(r"\bpr\b", re.IGNORECASE),
re.compile(r"\bmerge\b", re.I), re.compile(r"\bmerge\b", re.IGNORECASE),
re.compile(r"\bbranch\b", re.I), re.compile(r"\bbranch\b", re.IGNORECASE),
], ],
"analyze_data": [ "analyze_data": [
re.compile(r"\banaly[sz]e\b", re.I), re.compile(r"\banaly[sz]e\b", re.IGNORECASE),
re.compile(r"\bmetrics\b", re.I), re.compile(r"\bmetrics\b", re.IGNORECASE),
re.compile(r"\breport\b", re.I), re.compile(r"\breport\b", re.IGNORECASE),
re.compile(r"\binsights?\b", re.I), re.compile(r"\binsights?\b", re.IGNORECASE),
re.compile(r"\bdata\b", re.I), re.compile(r"\bdata\b", re.IGNORECASE),
], ],
"understand_codebase": [ "understand_codebase": [
re.compile(r"\bunderstand\b", re.I), re.compile(r"\bunderstand\b", re.IGNORECASE),
re.compile(r"\bexplain\b", re.I), re.compile(r"\bexplain\b", re.IGNORECASE),
re.compile(r"\bwalk ?through\b", re.I), re.compile(r"\bwalk ?through\b", re.IGNORECASE),
re.compile(r"\bhow does\b", re.I), re.compile(r"\bhow does\b", re.IGNORECASE),
re.compile(r"\bwhere is\b", re.I), re.compile(r"\bwhere is\b", re.IGNORECASE),
re.compile(r"\bfind\b", re.I), re.compile(r"\bfind\b", re.IGNORECASE),
], ],
"write_tests": [ "write_tests": [
re.compile(r"\btests?\b", re.I), re.compile(r"\btests?\b", re.IGNORECASE),
re.compile(r"\bpytest\b", re.I), re.compile(r"\bpytest\b", re.IGNORECASE),
re.compile(r"\bunit test\b", re.I), re.compile(r"\bunit test\b", re.IGNORECASE),
re.compile(r"\bintegration test\b", re.I), re.compile(r"\bintegration test\b", re.IGNORECASE),
re.compile(r"\bbenchmark\b", re.I), re.compile(r"\bbenchmark\b", re.IGNORECASE),
], ],
"write_docs": [ "write_docs": [
re.compile(r"\breadme\b", re.I), re.compile(r"\breadme\b", re.IGNORECASE),
re.compile(r"\bdocs?\b", re.I), re.compile(r"\bdocs?\b", re.IGNORECASE),
re.compile(r"\bdocument", re.I), re.compile(r"\bdocument", re.IGNORECASE),
], ],
} }
@ -163,13 +162,13 @@ SHELL_TOOL_NAMES = {"exec_command", "shell", "shell_command"}
TEST_COMMAND_RE = re.compile( TEST_COMMAND_RE = re.compile(
r"\b(pytest|npm test|pnpm test|yarn test|cargo test|go test|vitest|jest|ruff|mypy|gradle test|mvn test)\b", r"\b(pytest|npm test|pnpm test|yarn test|cargo test|go test|vitest|jest|ruff|mypy|gradle test|mvn test)\b",
re.I, re.IGNORECASE,
) )
GIT_COMMIT_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+commit\b", re.I) GIT_COMMIT_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+commit\b", re.IGNORECASE)
GIT_PUSH_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+push\b", re.I) GIT_PUSH_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+push\b", re.IGNORECASE)
GH_RE = re.compile(r"(^|[;&|]\s*|\s)gh\b", re.I) GH_RE = re.compile(r"(^|[;&|]\s*|\s)gh\b", re.IGNORECASE)
@dataclass(frozen=True) @dataclass(frozen=True)

View file

@ -33,7 +33,6 @@ from functools import lru_cache
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
LABEL_MAP: dict[str, str] = { LABEL_MAP: dict[str, str] = {
"debug_investigate": "Debug/Investigate", "debug_investigate": "Debug/Investigate",
"implement_feature": "Implement Feature", "implement_feature": "Implement Feature",
@ -75,91 +74,91 @@ LABEL_MAP: dict[str, str] = {
GOAL_PATTERNS: dict[str, list[re.Pattern[str]]] = { GOAL_PATTERNS: dict[str, list[re.Pattern[str]]] = {
"debug_investigate": [ "debug_investigate": [
re.compile(r"\bdebug\b", re.I), re.compile(r"\bdebug\b", re.IGNORECASE),
re.compile(r"\binvestigat", re.I), re.compile(r"\binvestigat", re.IGNORECASE),
re.compile(r"\btrace\b", re.I), re.compile(r"\btrace\b", re.IGNORECASE),
re.compile(r"\berror\b", re.I), re.compile(r"\berror\b", re.IGNORECASE),
re.compile(r"\bwhy\b", re.I), re.compile(r"\bwhy\b", re.IGNORECASE),
re.compile(r"\bfail", re.I), re.compile(r"\bfail", re.IGNORECASE),
], ],
"implement_feature": [ "implement_feature": [
re.compile(r"\bimplement\b", re.I), re.compile(r"\bimplement\b", re.IGNORECASE),
re.compile(r"\bbuild\b", re.I), re.compile(r"\bbuild\b", re.IGNORECASE),
re.compile(r"\bfeature\b", re.I), re.compile(r"\bfeature\b", re.IGNORECASE),
re.compile(r"\badd\b", re.I), re.compile(r"\badd\b", re.IGNORECASE),
re.compile(r"\bcreate\b", re.I), re.compile(r"\bcreate\b", re.IGNORECASE),
], ],
"fix_bug": [ "fix_bug": [
re.compile(r"\bfix\b", re.I), re.compile(r"\bfix\b", re.IGNORECASE),
re.compile(r"\bbug\b", re.I), re.compile(r"\bbug\b", re.IGNORECASE),
re.compile(r"\bbroken\b", re.I), re.compile(r"\bbroken\b", re.IGNORECASE),
re.compile(r"\bfailing\b", re.I), re.compile(r"\bfailing\b", re.IGNORECASE),
], ],
"write_script_tool": [ "write_script_tool": [
re.compile(r"\bscript\b", re.I), re.compile(r"\bscript\b", re.IGNORECASE),
re.compile(r"\bcli\b", re.I), re.compile(r"\bcli\b", re.IGNORECASE),
re.compile(r"\btool\b", re.I), re.compile(r"\btool\b", re.IGNORECASE),
re.compile(r"\bautomation\b", re.I), re.compile(r"\bautomation\b", re.IGNORECASE),
], ],
"refactor_code": [ "refactor_code": [
re.compile(r"\brefactor\b", re.I), re.compile(r"\brefactor\b", re.IGNORECASE),
re.compile(r"\bcleanup\b", re.I), re.compile(r"\bcleanup\b", re.IGNORECASE),
re.compile(r"\breorgan", re.I), re.compile(r"\breorgan", re.IGNORECASE),
re.compile(r"\bsimplif", re.I), re.compile(r"\bsimplif", re.IGNORECASE),
], ],
"configure_system": [ "configure_system": [
re.compile(r"\bconfigure\b", re.I), re.compile(r"\bconfigure\b", re.IGNORECASE),
re.compile(r"\bsetup\b", re.I), re.compile(r"\bsetup\b", re.IGNORECASE),
re.compile(r"\binstall\b", re.I), re.compile(r"\binstall\b", re.IGNORECASE),
re.compile(r"\bconfig\b", re.I), re.compile(r"\bconfig\b", re.IGNORECASE),
re.compile(r"\benv\b", re.I), re.compile(r"\benv\b", re.IGNORECASE),
re.compile(r"\bci\b", re.I), re.compile(r"\bci\b", re.IGNORECASE),
re.compile(r"\bauth\b", re.I), re.compile(r"\bauth\b", re.IGNORECASE),
re.compile(r"\blogin\b", re.I), re.compile(r"\blogin\b", re.IGNORECASE),
], ],
"create_pr_commit": [ "create_pr_commit": [
re.compile(r"\bcommit\b", re.I), re.compile(r"\bcommit\b", re.IGNORECASE),
re.compile(r"\bpull request\b", re.I), re.compile(r"\bpull request\b", re.IGNORECASE),
re.compile(r"\bpr\b", re.I), re.compile(r"\bpr\b", re.IGNORECASE),
re.compile(r"\bmerge\b", re.I), re.compile(r"\bmerge\b", re.IGNORECASE),
re.compile(r"\bbranch\b", re.I), re.compile(r"\bbranch\b", re.IGNORECASE),
], ],
"analyze_data": [ "analyze_data": [
re.compile(r"\banaly[sz]e\b", re.I), re.compile(r"\banaly[sz]e\b", re.IGNORECASE),
re.compile(r"\bmetrics\b", re.I), re.compile(r"\bmetrics\b", re.IGNORECASE),
re.compile(r"\breport\b", re.I), re.compile(r"\breport\b", re.IGNORECASE),
re.compile(r"\binsights?\b", re.I), re.compile(r"\binsights?\b", re.IGNORECASE),
re.compile(r"\bdata\b", re.I), re.compile(r"\bdata\b", re.IGNORECASE),
], ],
"understand_codebase": [ "understand_codebase": [
re.compile(r"\bunderstand\b", re.I), re.compile(r"\bunderstand\b", re.IGNORECASE),
re.compile(r"\bexplain\b", re.I), re.compile(r"\bexplain\b", re.IGNORECASE),
re.compile(r"\bwalk ?through\b", re.I), re.compile(r"\bwalk ?through\b", re.IGNORECASE),
re.compile(r"\bhow does\b", re.I), re.compile(r"\bhow does\b", re.IGNORECASE),
re.compile(r"\bwhere is\b", re.I), re.compile(r"\bwhere is\b", re.IGNORECASE),
re.compile(r"\bfind\b", re.I), re.compile(r"\bfind\b", re.IGNORECASE),
re.compile(r"\breview\b", re.I), re.compile(r"\breview\b", re.IGNORECASE),
], ],
"write_tests": [ "write_tests": [
re.compile(r"\btests?\b", re.I), re.compile(r"\btests?\b", re.IGNORECASE),
re.compile(r"\bpytest\b", re.I), re.compile(r"\bpytest\b", re.IGNORECASE),
re.compile(r"\bunit test\b", re.I), re.compile(r"\bunit test\b", re.IGNORECASE),
re.compile(r"\bintegration test\b", re.I), re.compile(r"\bintegration test\b", re.IGNORECASE),
re.compile(r"\bbenchmark\b", re.I), re.compile(r"\bbenchmark\b", re.IGNORECASE),
], ],
"write_docs": [ "write_docs": [
re.compile(r"\breadme\b", re.I), re.compile(r"\breadme\b", re.IGNORECASE),
re.compile(r"\bdocs?\b", re.I), re.compile(r"\bdocs?\b", re.IGNORECASE),
re.compile(r"\bdocument", re.I), re.compile(r"\bdocument", re.IGNORECASE),
], ],
"manage_email": [ "manage_email": [
re.compile(r"\bgmail\b", re.I), re.compile(r"\bgmail\b", re.IGNORECASE),
re.compile(r"\bemail\b", re.I), re.compile(r"\bemail\b", re.IGNORECASE),
re.compile(r"\binbox\b", re.I), re.compile(r"\binbox\b", re.IGNORECASE),
re.compile(r"\bunsubscrib", re.I), re.compile(r"\bunsubscrib", re.IGNORECASE),
re.compile(r"\bdeclutter\b", re.I), re.compile(r"\bdeclutter\b", re.IGNORECASE),
re.compile(r"\bdraft\b", re.I), re.compile(r"\bdraft\b", re.IGNORECASE),
re.compile(r"\bdelete\b", re.I), re.compile(r"\bdelete\b", re.IGNORECASE),
], ],
} }
@ -177,17 +176,17 @@ FRICTION_DESCRIPTIONS: dict[str, str] = {
GEMINI_GMAIL_PREFIX = "mcp_google-workspace_gmail." GEMINI_GMAIL_PREFIX = "mcp_google-workspace_gmail."
WORKSPACE_BOUNDARY_RE = re.compile( WORKSPACE_BOUNDARY_RE = re.compile(
r"workspace directories|project temp directory", re.I r"workspace directories|project temp directory", re.IGNORECASE
) )
HASH_DIR_RE = re.compile(r"^[0-9a-f]{64}$") HASH_DIR_RE = re.compile(r"^[0-9a-f]{64}$")
EXIT_CODE_RE = re.compile(r"Exit Code:\s*(-?\d+)") EXIT_CODE_RE = re.compile(r"Exit Code:\s*(-?\d+)")
TEST_COMMAND_RE = re.compile( TEST_COMMAND_RE = re.compile(
r"\b(pytest|npm test|pnpm test|yarn test|cargo test|go test|vitest|jest|ruff|mypy|gradle test|mvn test)\b", r"\b(pytest|npm test|pnpm test|yarn test|cargo test|go test|vitest|jest|ruff|mypy|gradle test|mvn test)\b",
re.I, re.IGNORECASE,
) )
GIT_COMMIT_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+commit\b", re.I) GIT_COMMIT_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+commit\b", re.IGNORECASE)
GIT_PUSH_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+push\b", re.I) GIT_PUSH_RE = re.compile(r"(^|[;&|]\s*|\s)git\s+push\b", re.IGNORECASE)
GH_RE = re.compile(r"(^|[;&|]\s*|\s)gh\b", re.I) GH_RE = re.compile(r"(^|[;&|]\s*|\s)gh\b", re.IGNORECASE)
@dataclass(frozen=True) @dataclass(frozen=True)

View file

@ -10,7 +10,6 @@ Usage:
from __future__ import annotations from __future__ import annotations
import os
import subprocess import subprocess
import sys import sys
from pathlib import Path from pathlib import Path
@ -39,7 +38,7 @@ def _write_version(pyproject_path: Path, new_version: str) -> None:
def _bump_patch(version: str) -> str: def _bump_patch(version: str) -> str:
"""Bump the patch component: 0.1.0 -> 0.1.1, 0.1.1.dev0 -> 0.1.2.""" """Bump the patch component: 0.1.0 -> 0.1.1, 0.1.1.dev0 -> 0.1.2."""
base = version.split(".dev")[0] base = version.split(".dev", maxsplit=1)[0]
parts = base.split(".") parts = base.split(".")
parts[-1] = str(int(parts[-1]) + 1) parts[-1] = str(int(parts[-1]) + 1)
return ".".join(parts) return ".".join(parts)
@ -62,7 +61,14 @@ def _changed_packages() -> list[str]:
for pkg in VERSIONED_PACKAGES: for pkg in VERSIONED_PACKAGES:
pkg_path = f"packages/{pkg}/" pkg_path = f"packages/{pkg}/"
result = subprocess.run( result = subprocess.run(
["git", "diff", "--name-only", "origin/main..HEAD", "--", pkg_path], [
"git",
"diff",
"--name-only",
"origin/main..HEAD",
"--",
pkg_path,
],
capture_output=True, capture_output=True,
text=True, text=True,
) )
@ -154,9 +160,7 @@ def cmd_version_dev(package: str) -> None:
changelogs_dir.mkdir(exist_ok=True) changelogs_dir.mkdir(exist_ok=True)
safe_branch = branch.replace("_", "-").replace("/", "-") safe_branch = branch.replace("_", "-").replace("/", "-")
entry_path = changelogs_dir / f"{safe_branch}.md" entry_path = changelogs_dir / f"{safe_branch}.md"
entry_path.write_text( entry_path.write_text("### Enhancements\n\n### Features\n\n### Fixes\n")
"### Enhancements\n\n### Features\n\n### Fixes\n"
)
subprocess.run(["git", "add", str(entry_path)], check=True) subprocess.run(["git", "add", str(entry_path)], check=True)
print(f"Created changelog entry: {entry_path.relative_to(REPO_ROOT)}") print(f"Created changelog entry: {entry_path.relative_to(REPO_ROOT)}")

123
uv.lock
View file

@ -21,6 +21,7 @@ members = [
"codeflash-python", "codeflash-python",
"codeflash-service", "codeflash-service",
"codeflash-workspace", "codeflash-workspace",
"unstructured-report",
] ]
[[package]] [[package]]
@ -126,6 +127,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/8e/0d/52d98722666d6fc6c3dd4c76df339501d6efd40e0ff95e6186a7b7f0befd/black-26.3.1-py3-none-any.whl", hash = "sha256:2bd5aa94fc267d38bb21a70d7410a89f1a1d318841855f698746f8e7f51acd1b", size = 207542, upload-time = "2026-03-12T03:36:01.668Z" }, { url = "https://files.pythonhosted.org/packages/8e/0d/52d98722666d6fc6c3dd4c76df339501d6efd40e0ff95e6186a7b7f0befd/black-26.3.1-py3-none-any.whl", hash = "sha256:2bd5aa94fc267d38bb21a70d7410a89f1a1d318841855f698746f8e7f51acd1b", size = 207542, upload-time = "2026-03-12T03:36:01.668Z" },
] ]
[[package]]
name = "blinker"
version = "1.9.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" },
]
[[package]] [[package]]
name = "cachetools" name = "cachetools"
version = "7.0.5" version = "7.0.5"
@ -751,6 +761,26 @@ nvtx = [
{ name = "nvidia-nvtx", marker = "sys_platform == 'linux'" }, { name = "nvidia-nvtx", marker = "sys_platform == 'linux'" },
] ]
[[package]]
name = "dash"
version = "4.1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "flask" },
{ name = "importlib-metadata" },
{ name = "nest-asyncio" },
{ name = "plotly" },
{ name = "requests" },
{ name = "retrying" },
{ name = "setuptools" },
{ name = "typing-extensions" },
{ name = "werkzeug" },
]
sdist = { url = "https://files.pythonhosted.org/packages/44/da/a13ae3a6528bd51a6901461dbff4549c6009de203d6249a89b9a09ac5cfb/dash-4.1.0.tar.gz", hash = "sha256:17a92a87b0c1eacc025079a705e44e72cd4c5794629c0a2909942b611faeb595", size = 6927689, upload-time = "2026-03-23T20:39:47.578Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2a/00/10b1f8b3885fc4add1853e9603af15c593fa0be20d37c158c4d811e868dc/dash-4.1.0-py3-none-any.whl", hash = "sha256:1af9f302bc14061061012cdb129b7e370d3604b12a7f730b252ad8e4966f01f7", size = 7232489, upload-time = "2026-03-23T20:39:40.658Z" },
]
[[package]] [[package]]
name = "dill" name = "dill"
version = "0.4.1" version = "0.4.1"
@ -794,6 +824,23 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" }, { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" },
] ]
[[package]]
name = "flask"
version = "3.1.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "blinker" },
{ name = "click" },
{ name = "itsdangerous" },
{ name = "jinja2" },
{ name = "markupsafe" },
{ name = "werkzeug" },
]
sdist = { url = "https://files.pythonhosted.org/packages/26/00/35d85dcce6c57fdc871f3867d465d780f302a175ea360f62533f12b27e2b/flask-3.1.3.tar.gz", hash = "sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb", size = 759004, upload-time = "2026-02-19T05:00:57.678Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7f/9c/34f6962f9b9e9c71f6e5ed806e0d0ff03c9d1b0b2340088a0cf4bce09b18/flask-3.1.3-py3-none-any.whl", hash = "sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c", size = 103424, upload-time = "2026-02-19T05:00:56.027Z" },
]
[[package]] [[package]]
name = "flatbuffers" name = "flatbuffers"
version = "25.12.19" version = "25.12.19"
@ -1048,6 +1095,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl", hash = "sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75", size = 89733, upload-time = "2026-02-28T10:08:19.466Z" }, { url = "https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl", hash = "sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75", size = 89733, upload-time = "2026-02-28T10:08:19.466Z" },
] ]
[[package]]
name = "itsdangerous"
version = "2.2.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" },
]
[[package]] [[package]]
name = "jax" name = "jax"
version = "0.9.2" version = "0.9.2"
@ -1648,6 +1704,24 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/b2/bc/465daf1de06409cdd4532082806770ee0d8d7df434da79c76564d0f69741/namex-0.1.0-py3-none-any.whl", hash = "sha256:e2012a474502f1e2251267062aae3114611f07df4224b6e06334c57b0f2ce87c", size = 5905, upload-time = "2025-05-26T23:17:37.695Z" }, { url = "https://files.pythonhosted.org/packages/b2/bc/465daf1de06409cdd4532082806770ee0d8d7df434da79c76564d0f69741/namex-0.1.0-py3-none-any.whl", hash = "sha256:e2012a474502f1e2251267062aae3114611f07df4224b6e06334c57b0f2ce87c", size = 5905, upload-time = "2025-05-26T23:17:37.695Z" },
] ]
[[package]]
name = "narwhals"
version = "2.19.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/4e/1a/bd3317c0bdbcd9ffb710ddf5250b32898f8f2c240be99494fe137feb77a7/narwhals-2.19.0.tar.gz", hash = "sha256:14fd7040b5ff211d415a82e4827b9d04c354e213e72a6d0730205ffd72e3b7ff", size = 623698, upload-time = "2026-04-06T15:50:58.786Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/37/72/e61e3091e0e00fae9d3a8ef85ece9d2cd4b5966058e1f2901ce42679eebf/narwhals-2.19.0-py3-none-any.whl", hash = "sha256:1f8dfa4a33a6dbff878c3e9be4c3b455dfcaf2a9322f1357db00e4e92e95b84b", size = 446991, upload-time = "2026-04-06T15:50:57.046Z" },
]
[[package]]
name = "nest-asyncio"
version = "1.6.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" },
]
[[package]] [[package]]
name = "networkx" name = "networkx"
version = "3.6.1" version = "3.6.1"
@ -2073,6 +2147,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" }, { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" },
] ]
[[package]]
name = "plotly"
version = "6.7.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "narwhals" },
{ name = "packaging" },
]
sdist = { url = "https://files.pythonhosted.org/packages/3a/7f/0f100df1172aadf88a929a9dbb902656b0880ba4b960fe5224867159d8f4/plotly-6.7.0.tar.gz", hash = "sha256:45eea0ff27e2a23ccd62776f77eb43aa1ca03df4192b76036e380bb479b892c6", size = 6911286, upload-time = "2026-04-09T20:36:45.738Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/90/ad/cba91b3bcf04073e4d1655a5c1710ef3f457f56f7d1b79dcc3d72f4dd912/plotly-6.7.0-py3-none-any.whl", hash = "sha256:ac8aca1c25c663a59b5b9140a549264a5badde2e057d79b8c772ae2920e32ff0", size = 9898444, upload-time = "2026-04-09T20:36:39.812Z" },
]
[[package]] [[package]]
name = "pluggy" name = "pluggy"
version = "1.6.0" version = "1.6.0"
@ -2489,6 +2576,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/1d/4a/221da6ca167db45693d8d26c7dc79ccfc978a440251bf6721c9aaf251ac0/respx-0.23.1-py2.py3-none-any.whl", hash = "sha256:b18004b029935384bccfa6d7d9d74b4ec9af73a081cc28600fffc0447f4b8c1a", size = 25557, upload-time = "2026-04-08T14:37:14.613Z" }, { url = "https://files.pythonhosted.org/packages/1d/4a/221da6ca167db45693d8d26c7dc79ccfc978a440251bf6721c9aaf251ac0/respx-0.23.1-py2.py3-none-any.whl", hash = "sha256:b18004b029935384bccfa6d7d9d74b4ec9af73a081cc28600fffc0447f4b8c1a", size = 25557, upload-time = "2026-04-08T14:37:14.613Z" },
] ]
[[package]]
name = "retrying"
version = "1.4.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/c8/5a/b17e1e257d3e6f2e7758930e1256832c9ddd576f8631781e6a072914befa/retrying-1.4.2.tar.gz", hash = "sha256:d102e75d53d8d30b88562d45361d6c6c934da06fab31bd81c0420acb97a8ba39", size = 11411, upload-time = "2025-08-03T03:35:25.189Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/67/f3/6cd296376653270ac1b423bb30bd70942d9916b6978c6f40472d6ac038e7/retrying-1.4.2-py3-none-any.whl", hash = "sha256:bbc004aeb542a74f3569aeddf42a2516efefcdaff90df0eb38fbfbf19f179f59", size = 10859, upload-time = "2025-08-03T03:35:23.829Z" },
]
[[package]] [[package]]
name = "rich" name = "rich"
version = "14.3.3" version = "14.3.3"
@ -2892,6 +2988,21 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/61/73/d21edf5b204d1467e06500080a50f79d49ef2b997c79123a536d4a17d97c/uc_micro_py-2.0.0-py3-none-any.whl", hash = "sha256:3603a3859af53e5a39bc7677713c78ea6589ff188d70f4fee165db88e22b242c", size = 6383, upload-time = "2026-03-01T06:31:26.257Z" }, { url = "https://files.pythonhosted.org/packages/61/73/d21edf5b204d1467e06500080a50f79d49ef2b997c79123a536d4a17d97c/uc_micro_py-2.0.0-py3-none-any.whl", hash = "sha256:3603a3859af53e5a39bc7677713c78ea6589ff188d70f4fee165db88e22b242c", size = 6383, upload-time = "2026-03-01T06:31:26.257Z" },
] ]
[[package]]
name = "unstructured-report"
version = "0.1.0"
source = { virtual = "reports/unstructured" }
dependencies = [
{ name = "dash" },
{ name = "plotly" },
]
[package.metadata]
requires-dist = [
{ name = "dash", specifier = ">=4.1" },
{ name = "plotly", specifier = ">=6.7" },
]
[[package]] [[package]]
name = "urllib3" name = "urllib3"
version = "2.6.3" version = "2.6.3"
@ -3081,6 +3192,18 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" }, { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" },
] ]
[[package]]
name = "werkzeug"
version = "3.1.8"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "markupsafe" },
]
sdist = { url = "https://files.pythonhosted.org/packages/dd/b2/381be8cfdee792dd117872481b6e378f85c957dd7c5bca38897b08f765fd/werkzeug-3.1.8.tar.gz", hash = "sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44", size = 875852, upload-time = "2026-04-02T18:49:14.268Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/93/8c/2e650f2afeb7ee576912636c23ddb621c91ac6a98e66dc8d29c3c69446e1/werkzeug-3.1.8-py3-none-any.whl", hash = "sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50", size = 226459, upload-time = "2026-04-02T18:49:12.72Z" },
]
[[package]] [[package]]
name = "wheel" name = "wheel"
version = "0.46.3" version = "0.46.3"