vet

Mirror of Vet, an AI code review tool
git clone git://git.laack.co/vet.git
Log | Files | Refs | README | LICENSE

ModeNameSize
l---------.agents/skills1L
l---------.codex/skills1L
-rw-r--r--.github/workflows/publish-github-release.yml26L
-rw-r--r--.github/workflows/publish-pypi.yml22L
-rw-r--r--.github/workflows/test-pkgbuild.yml16L
-rw-r--r--.github/workflows/test-unit.yml29L
-rw-r--r--.github/workflows/vet-agentic.yml25L
-rw-r--r--.github/workflows/vet.yml24L
-rw-r--r--.gitignore89L
l---------.opencode/skills1L
-rw-r--r--.pre-commit-config.yaml10L
-rw-r--r--.vet/configs.toml15L
-rw-r--r--.vet/models.json102L
-rw-r--r--DEVELOPMENT.md169L
-rw-r--r--LICENSE661L
-rw-r--r--README.md279L
-rw-r--r--action.yml111L
-rw-r--r--action/run.py177L
-rw-r--r--dev/Containerfile17L
-rwxr-xr-xdev/build.sh8L
-rwxr-xr-xdev/common.sh40L
-rwxr-xr-xdev/run.sh14L
-rwxr-xr-xdev/vet.sh14L
-rw-r--r--images/Vet.svg11L
-rw-r--r--images/architecture.dot25L
-rw-r--r--images/architecture.svg104L
-rw-r--r--images/demo.gif3825296B
-rw-r--r--images/vet_example.png314627B
-rwxr-xr-xinstall-skill.sh64L
-rw-r--r--pkg/arch/PKGBUILD36L
-rwxr-xr-xpkg/arch/test.sh59L
-rw-r--r--pkg/arch/verify-everything.install3L
-rw-r--r--pyproject.toml90L
-rw-r--r--registry/CONTRIBUTING.md13L
-rw-r--r--registry/models.json36L
-rw-r--r--skills/vet/SKILL.md133L
-rw-r--r--skills/vet/scripts/export_claude_code_session.py124L
-rwxr-xr-xskills/vet/scripts/export_codex_session.py129L
-rwxr-xr-xskills/vet/scripts/export_gemini_cli_session.py103L
-rwxr-xr-xskills/vet/scripts/export_opencode_session.py104L
-rw-r--r--uv.lock1628L
-rw-r--r--vet/__init__.py0B
-rw-r--r--vet/__main__.py5L
-rw-r--r--vet/__snapshots__/formatters_test.ambr35L
-rw-r--r--vet/__snapshots__/repo_utils_test.ambr4L
-rw-r--r--vet/api.py146L
-rw-r--r--vet/cli/__init__.py0B
-rw-r--r--vet/cli/config/__init__.py0B
-rw-r--r--vet/cli/config/cli_config_consistency_test.py41L
-rw-r--r--vet/cli/config/cli_config_schema.py88L
-rw-r--r--vet/cli/config/cli_config_test.py453L
-rw-r--r--vet/cli/config/custom_guides_loader_test.py163L
-rw-r--r--vet/cli/config/loader.py247L
-rw-r--r--vet/cli/config/loader_test.py754L
-rw-r--r--vet/cli/config/schema.py32L
-rw-r--r--vet/cli/conftest.py21L
-rw-r--r--vet/cli/main.py788L
-rw-r--r--vet/cli/main_test.py147L
-rw-r--r--vet/cli/models.py181L
-rw-r--r--vet/cli/models_test.py265L
-rw-r--r--vet/cli/startup_time_test.py23L
-rw-r--r--vet/conftest.py23L
-rw-r--r--vet/errors.py101L
-rw-r--r--vet/formatters.py142L
-rw-r--r--vet/formatters_test.py43L
-rw-r--r--vet/formatting_test.py26L
-rw-r--r--vet/git.py234L
-rw-r--r--vet/imbue_core/__init__.py0B
-rw-r--r--vet/imbue_core/agents/__init__.py0B
-rw-r--r--vet/imbue_core/agents/agent_api/__init__.py0B
-rw-r--r--vet/imbue_core/agents/agent_api/api.py66L
-rw-r--r--vet/imbue_core/agents/agent_api/cache_utils.py36L
-rw-r--r--vet/imbue_core/agents/agent_api/claude/__init__.py0B
-rw-r--r--vet/imbue_core/agents/agent_api/claude/client.py174L
-rw-r--r--vet/imbue_core/agents/agent_api/claude/data_types.py79L
-rw-r--r--vet/imbue_core/agents/agent_api/claude/message_parser.py118L
-rw-r--r--vet/imbue_core/agents/agent_api/client.py89L
-rw-r--r--vet/imbue_core/agents/agent_api/codex/__init__.py0B
-rw-r--r--vet/imbue_core/agents/agent_api/codex/client.py148L
-rw-r--r--vet/imbue_core/agents/agent_api/codex/data_types.py253L
-rw-r--r--vet/imbue_core/agents/agent_api/codex/message_parser.py244L
-rw-r--r--vet/imbue_core/agents/agent_api/codex/message_parser_test.py71L
-rw-r--r--vet/imbue_core/agents/agent_api/data_types.py262L
-rw-r--r--vet/imbue_core/agents/agent_api/errors.py62L
-rw-r--r--vet/imbue_core/agents/agent_api/interaction.py96L
-rw-r--r--vet/imbue_core/agents/agent_api/opencode/__init__.py0B
-rw-r--r--vet/imbue_core/agents/agent_api/opencode/client.py103L
-rw-r--r--vet/imbue_core/agents/agent_api/opencode/client_test.py214L
-rw-r--r--vet/imbue_core/agents/agent_api/opencode/data_types.py31L
-rw-r--r--vet/imbue_core/agents/agent_api/opencode/message_parser.py126L
-rw-r--r--vet/imbue_core/agents/agent_api/opencode/message_parser_test.py324L
-rw-r--r--vet/imbue_core/agents/agent_api/transport.py184L
-rw-r--r--vet/imbue_core/agents/configs.py124L
-rw-r--r--vet/imbue_core/agents/llm_apis/__init__.py0B
-rw-r--r--vet/imbue_core/agents/llm_apis/anthropic_api.py801L
-rw-r--r--vet/imbue_core/agents/llm_apis/anthropic_data_types.py15L
-rw-r--r--vet/imbue_core/agents/llm_apis/api_utils.py110L
-rw-r--r--vet/imbue_core/agents/llm_apis/build_apis.py103L
-rw-r--r--vet/imbue_core/agents/llm_apis/common.py60L
-rw-r--r--vet/imbue_core/agents/llm_apis/constants.py16L
-rw-r--r--vet/imbue_core/agents/llm_apis/data_types.py214L
-rw-r--r--vet/imbue_core/agents/llm_apis/errors.py111L
-rw-r--r--vet/imbue_core/agents/llm_apis/gemini_api.py493L
-rw-r--r--vet/imbue_core/agents/llm_apis/language_model_api.py547L
-rw-r--r--vet/imbue_core/agents/llm_apis/mock_api.py193L
-rw-r--r--vet/imbue_core/agents/llm_apis/models.py17L
-rw-r--r--vet/imbue_core/agents/llm_apis/openai_api.py568L
-rw-r--r--vet/imbue_core/agents/llm_apis/openai_compatible_api.py288L
-rw-r--r--vet/imbue_core/agents/llm_apis/openai_data_types.py13L
-rw-r--r--vet/imbue_core/agents/llm_apis/stream.py168L
-rw-r--r--vet/imbue_core/agents/llm_apis/union_data_types.py20L
-rw-r--r--vet/imbue_core/agents/primitives/errors.py14L
-rw-r--r--vet/imbue_core/agents/primitives/resource_limits.py486L
-rw-r--r--vet/imbue_core/async_monkey_patches.py343L
-rw-r--r--vet/imbue_core/async_monkey_patches_test.py165L
-rw-r--r--vet/imbue_core/async_utils.py55L
-rw-r--r--vet/imbue_core/caching.py175L
-rw-r--r--vet/imbue_core/cattrs_serialization.py991L
-rw-r--r--vet/imbue_core/common.py5L
-rw-r--r--vet/imbue_core/conftest.py30L
-rw-r--r--vet/imbue_core/data_types.py354L
-rw-r--r--vet/imbue_core/errors.py29L
-rw-r--r--vet/imbue_core/fixed_traceback.py35L
-rw-r--r--vet/imbue_core/frozen_utils.py108L
-rw-r--r--vet/imbue_core/itertools.py52L
-rw-r--r--vet/imbue_core/language_model_mode.py8L
-rw-r--r--vet/imbue_core/nested_evolver.py198L
-rw-r--r--vet/imbue_core/py.typed0B
-rw-r--r--vet/imbue_core/pydantic_serialization.py116L
-rw-r--r--vet/imbue_core/pydantic_utils.py39L
-rw-r--r--vet/imbue_core/secrets_utils.py6L
-rw-r--r--vet/imbue_core/serialization.py376L
-rw-r--r--vet/imbue_core/serialization_types.py3L
-rw-r--r--vet/imbue_core/test_repo_utils.py36L
-rw-r--r--vet/imbue_core/time_utils.py5L
-rw-r--r--vet/imbue_tools/__init__.py0B
-rw-r--r--vet/imbue_tools/get_conversation_history/get_conversation_history.py70L
-rw-r--r--vet/imbue_tools/get_conversation_history/input_data_types.py75L
-rw-r--r--vet/imbue_tools/llm_output_parsing/parse_model_json_response.py51L
-rw-r--r--vet/imbue_tools/py.typed0B
-rw-r--r--vet/imbue_tools/repo_utils/__init__.py0B
-rw-r--r--vet/imbue_tools/repo_utils/context_prefix.py611L
-rw-r--r--vet/imbue_tools/repo_utils/context_retrieval.py121L
-rw-r--r--vet/imbue_tools/repo_utils/context_utils.py52L
-rw-r--r--vet/imbue_tools/repo_utils/data_types.py51L
-rw-r--r--vet/imbue_tools/repo_utils/diff_utils.py92L
-rw-r--r--vet/imbue_tools/repo_utils/errors.py10L
-rw-r--r--vet/imbue_tools/repo_utils/file_system.py71L
-rw-r--r--vet/imbue_tools/repo_utils/file_system_utils.py70L
-rw-r--r--vet/imbue_tools/repo_utils/project_context.py232L
-rw-r--r--vet/imbue_tools/repo_utils/python_imports.py130L
-rw-r--r--vet/imbue_tools/repo_utils/stubify_file.py95L
-rw-r--r--vet/imbue_tools/repo_utils/subrepo_formatting.py345L
-rw-r--r--vet/imbue_tools/types/vet_config.py108L
-rw-r--r--vet/imbue_tools/util_prompts/conversation_prefix.py10L
-rw-r--r--vet/imbue_tools/util_prompts/goal_from_conversation.py62L
-rw-r--r--vet/issue_identifiers/__init__.py0B
-rw-r--r--vet/issue_identifiers/agentic_issue_collation.py182L
-rw-r--r--vet/issue_identifiers/base.py90L
-rw-r--r--vet/issue_identifiers/common.py357L
-rw-r--r--vet/issue_identifiers/common_test.py363L
-rw-r--r--vet/issue_identifiers/context_providers/__init__.py0B
-rw-r--r--vet/issue_identifiers/custom_guides_merge_test.py84L
-rw-r--r--vet/issue_identifiers/harnesses/__init__.py0B
-rw-r--r--vet/issue_identifiers/harnesses/agentic.py346L
-rw-r--r--vet/issue_identifiers/harnesses/base.py15L
-rw-r--r--vet/issue_identifiers/harnesses/conversation_single_prompt.py149L
-rw-r--r--vet/issue_identifiers/harnesses/conversation_single_prompt_test.py62L
-rw-r--r--vet/issue_identifiers/harnesses/single_prompt.py195L
-rw-r--r--vet/issue_identifiers/harnesses/single_prompt_test.py168L
-rw-r--r--vet/issue_identifiers/identification_guides.py490L
-rw-r--r--vet/issue_identifiers/issue_deduplication.py186L
-rw-r--r--vet/issue_identifiers/issue_evaluation.py293L
-rw-r--r--vet/issue_identifiers/registry.py262L
-rw-r--r--vet/issue_identifiers/test_prompt_lengths.py58L
-rw-r--r--vet/issue_identifiers/utils.py129L
-rw-r--r--vet/issue_identifiers/utils_test.py92L
-rw-r--r--vet/py.typed0B
-rw-r--r--vet/repo_utils.py141L
-rw-r--r--vet/repo_utils_test.py235L
-rw-r--r--vet/vet_types/__init__.py33L
-rw-r--r--vet/vet_types/chat_state.py152L
-rw-r--r--vet/vet_types/ids.py101L
-rw-r--r--vet/vet_types/messages.py130L