codegraff 0.1.1__tar.gz → 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codegraff-0.1.1 → codegraff-0.1.3}/Cargo.lock +2 -1
- {codegraff-0.1.1 → codegraff-0.1.3}/PKG-INFO +1 -1
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/app.rs +4 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/apply_tunable_parameters.rs +3 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/agent.rs +11 -1
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/chat_request.rs +6 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/agent_definition.rs +1 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/mcp/manager.rs +18 -1
- {codegraff-0.1.1 → codegraff-0.1.3}/pyproject.toml +1 -1
- {codegraff-0.1.1 → codegraff-0.1.3}/python/codegraff/__init__.py +60 -4
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/Cargo.toml +2 -1
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/src/lib.rs +61 -3
- {codegraff-0.1.1 → codegraff-0.1.3}/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/README.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_api/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_api/src/api.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_api/src/forge_api.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_api/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/agent.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/agent_executor.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/agent_provider_resolver.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/changed_files.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/command_generator.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/compact.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/data_gen.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/request.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/response.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/auth_system_message.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/capitalize_tool_names.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/claude_code.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/drop_invalid_toolcalls.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/enforce_schema.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/mcp_tool_names.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/reasoning_transform.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/remove_output_format.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/sanitize_tool_ids.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/set_cache.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/google/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/google/request.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/google/response.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/chutes_api_response.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/chutes_completion_response.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/model_invalid_pricing.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/model_mixed_pricing.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/model_no_pricing.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/model_numeric_pricing.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/model_scientific_notation.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/model_string_pricing.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/zai_api_delta_response.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/zai_api_response.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/model.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/reasoning.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/request.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/response.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/responses.jsonl +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/snapshots/forge_app__dto__openai__request__tests__assistant_message_with_tool_call_conversion.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/snapshots/forge_app__dto__openai__request__tests__message_with_special_chars.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/snapshots/forge_app__dto__openai__request__tests__tool_message_conversion.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/snapshots/forge_app__dto__openai__request__tests__tool_message_typescript_code.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/snapshots/forge_app__dto__openai__request__tests__tool_message_with_special_chars.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/snapshots/forge_app__dto__openai__request__tests__user_message_conversion.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/tool_choice.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/default_reasoning_content.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/drop_tool_call.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/ensure_system_first.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/github_copilot_reasoning.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/make_cerebras_compat.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/make_openai_compat.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/make_xai_compat.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/minimax.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/normalize_tool_schema.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/pipeline.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/reasoning_content.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/set_cache.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/set_reasoning_effort.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/strip_thought_signature.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/tool_choice.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/trim_tool_call_ids.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/when_model.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/zai_reasoning.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/tools_overview.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/file_tracking.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fixtures/conversation.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fixtures/git_ls_files_many_extensions.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fixtures/git_ls_files_mixed.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/content.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/fmt_input.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/fmt_output.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/snapshots/forge_app__fmt__fmt_output__tests__fs_patch_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/snapshots/forge_app__fmt__todo_fmt__tests__todo_write_mixed_changes_snapshot.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/snapshots/forge_app__fmt__todo_fmt__tests__todo_write_removed_in_progress_renders_with_in_progress_icon_in_raw_snapshot.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/snapshots/forge_app__fmt__todo_fmt__tests__todo_write_removed_pending_renders_with_pending_icon_in_raw_snapshot.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fmt/todo_fmt.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/git_app.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/hooks/compaction.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/hooks/doom_loop.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/hooks/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/hooks/pending_todos.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/hooks/read_without_write.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/hooks/title_generation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/hooks/tracing.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/infra.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/init_conversation_metrics.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/mcp_executor.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/operation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/orch_runner.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/orch_setup.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/orch_spec.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/orch_system_spec.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/snapshots/forge_app__orch_spec__orch_system_spec__system_prompt.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/snapshots/forge_app__orch_spec__orch_system_spec__system_prompt_tool_supported.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/snapshots/forge_app__orch_spec__orch_system_spec__system_prompt_with_extensions.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/orch_spec/snapshots/forge_app__orch_spec__orch_system_spec__system_prompt_with_extensions_truncated.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/retry.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/search_dedup.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/services.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/set_conversation_id.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__changed_files__tests__multiple_files_changed.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__command_generator__tests__generate_simple_command.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__command_generator__tests__generate_with_no_files.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__compact__tests__render_summary_frame_snapshot-2.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__compact__tests__render_summary_frame_snapshot.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__compact__tests__template_engine_renders_summary_frame.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__compact__tests__template_engine_renders_todo_write.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__follow_up_no_question.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__follow_up_with_question.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_create_basic.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_create_overwrite.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_create_with_warning.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_create_with_warning_xml_tags.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_patch_basic.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_patch_with_warning.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_patch_with_warning_special_chars.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_read_basic.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_read_basic_special_chars.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_read_with_explicit_range.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_read_with_truncation_path.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_remove_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_case_insensitive.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_count_mode.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_files_with_matches_mode.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_max_output.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_min_lines_but_max_line_length.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_multiline_pattern.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_no_matches.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_no_results.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_output.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_very_lengthy_one_line_match.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_with_after_context.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_with_before_context.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_with_context_lines.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_with_file_type.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_with_offset.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_with_results.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_search_without_line_numbers.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_undo_file_created.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_undo_file_removed.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_undo_file_restored.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_undo_no_changes.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__fs_undo_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__net_fetch_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__net_fetch_truncated.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__sem_search_multiple_chunks_same_file_sorted.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__sem_search_with_results.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__sem_search_with_usecase.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_both_stdout_stderr_truncation.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_empty_streams.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_exact_boundary_stdout.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_line_number_calculation.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_no_truncation.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_single_line_each.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_stderr_truncation_only.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_output_stdout_truncation_only.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__shell_with_description.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__operation__tests__skill_operation.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__tool_registry__all_rendered_tool_descriptions.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__tool_registry__dynamic_tool_description_with_text_only_model.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__tool_registry__dynamic_tool_description_with_vision_model.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/snapshots/forge_app__tool_registry__dynamic_tool_description_without_model.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/system_prompt.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/template_engine.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/terminal_context.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/title_generator.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/tool_executor.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/tool_registry.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/tool_resolver.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/trajectory_recorder.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/trajectory_upload.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/compaction.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/dedupe_role.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/drop_reasoning_only_messages.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/drop_role.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/model_specific_reasoning.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/strip_working_dir.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/transformers/trim_context_summary.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/truncation/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/truncation/truncate_fetch.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/truncation/truncate_search.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/truncation/truncate_shell.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/user.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/user_prompt.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/utils.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/walker.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/workspace_status.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/.forge.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/auto_dump.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/compact.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/config.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/decimal.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/http.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/legacy.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/model.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/percentage.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/reader.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/reasoning.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/retry.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/src/writer.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_config/tests/schema.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/code.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/diff.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/fixtures/code-01.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/fixtures/code-02.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/grep.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/markdown.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/snapshots/forge_display__diff__tests__diff_printer_simple_diff.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/snapshots/forge_display__diff__tests__file_source.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/snapshots/forge_display__diff__tests__width_based_on_diff_not_file_size.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_display/src/snapshots/forge_display__grep__tests__combined_grep_suite.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/attachment.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/auth_context.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/auth_method.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/auth_params.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/auth_token_response.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/credentials.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/new_types.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auth/oauth_config.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/auto_continue.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/chat_response.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/command.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/compact/compact_config.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/compact/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/compact/result.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/compact/strategy.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/compact/summary.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/console.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/context.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/conversation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/conversation_html.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/conversation_style.css +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/data_gen.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/env.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/event.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/file.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/file_operation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/fixtures/policies_test.yml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/fixtures/tool_call_01.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/fuzzy_search.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/group_by_key.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/hook.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/http_config.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/image.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/line_numbers.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/max_tokens.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/mcp.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/mcp_servers.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/merge.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/message.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/message_pattern.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/migration.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/model.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/model_config.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/node.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/pending_nudges.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/point.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/policies/config.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/policies/engine.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/policies/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/policies/operation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/policies/policy.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/policies/rule.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/policies/types.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/provider.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/reasoning.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/repo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/result_stream_ext.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/session_metrics.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/shell.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/skill.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshot.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_empty_context.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_mixed_content_with_images.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_multiple_images_single_tool_result.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_multiple_tool_results_with_images.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_no_tool_results.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_preserves_error_flag.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_single_image.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__context__tests__update_image_tool_calls_tool_results_no_images.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__conversation_html__tests__conversation.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/snapshots/forge_domain__conversation_html__tests__conversation.snap.html +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/suggestion.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/system_context.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/temperature.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/template.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/terminal_context.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tool_order.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/call/args.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/call/context.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/call/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/call/parser.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/call/tool_call.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/catalog.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/definition/choice.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/definition/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/definition/name.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/definition/snapshots/forge_domain__tools__definition__usage__tests__tool_usage.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/definition/tool_definition.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/definition/usage.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/followup.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/fs_multi_patch.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/fs_patch.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/fs_read.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/fs_remove.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/fs_search.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/fs_undo.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/fs_write.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/net_fetch.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/plan_create.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/semantic_search.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/shell.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/skill_fetch.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/task.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/todo_read.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/descriptions/todo_write.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/result.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/snapshots/forge_domain__tools__catalog__tests__tool_definition_json.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/tools/snapshots/forge_domain__tools__result__tests__success_and_failure_content.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/top_k.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/top_p.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/trajectory.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/drop_reasoning_details.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/image_handling.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/normalize_tool_args.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/reasoning_normalizer.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/set_model.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__drop_reasoning_details__tests__drop_reasoning_details_mixed_message_types.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__drop_reasoning_details__tests__drop_reasoning_details_preserves_non_text_messages.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__drop_reasoning_details__tests__drop_reasoning_details_preserves_other_fields.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__drop_reasoning_details__tests__drop_reasoning_details_removes_reasoning.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__image_handling__tests__image_handling_mixed_content_with_images.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__image_handling__tests__image_handling_multiple_images_in_single_tool_result.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__image_handling__tests__image_handling_preserves_error_flag.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__image_handling__tests__image_handling_preserves_non_tool_messages.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__image_handling__tests__image_handling_single_image.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__reasoning_normalizer__tests__model_changed_snapshot.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__reasoning_normalizer__tests__model_unchanged_snapshot.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__set_model__tests__set_model_affects_all_text_messages.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__set_model__tests__set_model_affects_both_user_and_assistant.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__set_model__tests__set_model_for_user_messages.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__set_model__tests__set_model_preserves_existing_models.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__tests__transformer_pipe.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__transform_tool_calls__tests__transform_tool_calls_converts_tool_results_to_user_messages.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__transform_tool_calls__tests__transform_tool_calls_handles_empty_tool_outputs.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__transform_tool_calls__tests__transform_tool_calls_removes_tool_calls_from_assistant.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/snapshots/forge_domain__transformer__transform_tool_calls__tests__transform_tool_calls_with_model.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/sort_tools.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/transformer/transform_tool_calls.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/update.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/user_facts.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/validation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/workspace.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/src/xml.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/tests/fixtures/conversation.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_domain/tests/test_stringified_tool_calls.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_embed/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_embed/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource/src/event_source.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource/src/reqwest_ext.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource/src/retry.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource_stream/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource_stream/src/event.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource_stream/src/event_stream.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource_stream/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource_stream/src/parser.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource_stream/src/traits.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_eventsource_stream/src/utf8_stream.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/binary_detection.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/file_size.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/is_binary.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/meta.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/read.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/read_range.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_fs/src/write.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/http/anthropic.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/http/github.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/http/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/http/standard.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/mcp_credentials.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/mcp_token_storage.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/strategy.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/auth/util.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/console.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/env.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/executor.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/forge_infra.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/fs_create_dirs.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/fs_meta.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/fs_read.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/fs_read_dir.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/fs_remove.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/fs_write.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/grpc.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/http.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/inquire.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/kv_storage.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/mcp_client.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/mcp_debug.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/mcp_server.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/src/walker.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_infra/tests/mcp_pagination.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/src/parser.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/src/schema_coercion.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/comments_unicode.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/complex_repairs.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/error_cases.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/escaping.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/numbers.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/punctuation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/quotes.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/special_quotes.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/special_values.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/strings.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/truncation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_json_repair/tests/valid_json.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/build.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/proto/forge.proto +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/agent.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/agents/forge.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/agents/muse.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/agents/sage.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/context_engine.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/conversation/conversation_record.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/conversation/conversation_repo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/conversation/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/.diesel_lock +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-09-12-065405_create_conversations_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-09-12-065405_create_conversations_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-09-12-065740_add_conversations_indexes/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-09-12-065740_add_conversations_indexes/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-10-16-000000_add_metrics_to_conversations/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-10-16-000000_add_metrics_to_conversations/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-11-13-054241_create_workspace_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-11-13-054241_create_workspace_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-11-15-000000_create_indexing_auth_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-11-15-000000_create_indexing_auth_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-11-22-061212-0000_drop_indexing_auth_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2025-11-22-061212-0000_drop_indexing_auth_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-02-16-130933-0000_drop_workspace_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-02-16-130933-0000_drop_workspace_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-05-06-033550_create_trajectory_events_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-05-06-033550_create_trajectory_events_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-05-21-172132_create_user_facts_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-05-21-172132_create_user_facts_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-05-21-180000_create_pending_nudges_table/down.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/migrations/2026-05-21-180000_create_pending_nudges_table/up.sql +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/pool.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/database/schema.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/agents/advanced.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/agents/basic.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/agents/invalid.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/agents/no_id.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills/no_front_matter.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills/with_description_only.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills/with_name_and_description.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills/with_name_only.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills_with_resources/minimal-skill/SKILL.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills_with_resources/test-skill/SKILL.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills_with_resources/test-skill/file_1.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills_with_resources/test-skill/foo/bar/file_3.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fixtures/skills_with_resources/test-skill/foo/file_2.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/forge_repo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fs_snap.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/fuzzy_search.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/pending_nudges/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/pending_nudges/pending_nudge_record.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/pending_nudges/pending_nudges_repo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/anthropic.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/bedrock.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/bedrock_cache.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/bedrock_sanitize_ids.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/chat.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/event.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/google.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/mock_server.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/codex_transformer.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/repository.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/request.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/response.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/snapshots/forge_repo__provider__openai_responses__request__tests__openai_responses_all_catalog_tools.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/snapshots/forge_repo__provider__openai_responses__request__tests__openai_responses_tools.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/openai_responses/websocket.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/opencode.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/provider.json +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/provider_repo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/retry.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__anthropic__tests__fetch_models_http_error_status.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__anthropic__tests__fetch_models_server_error.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__anthropic__tests__fetch_models_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__anthropic__tests__request_conversion.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__google__tests__fetch_models_http_error_status.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__google__tests__fetch_models_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__google__tests__request_conversion.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__openai__tests__detailed_error_message_included.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__openai__tests__enhance_error_github_copilot_model_not_supported.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__openai__tests__fetch_models_http_error_status.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__openai__tests__fetch_models_server_error.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/snapshots/forge_repo__provider__openai__tests__fetch_models_success.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/provider/utils.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/skill.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/skills/create-skill/SKILL.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/skills/execute-plan/SKILL.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/skills/github-pr-description/SKILL.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/snapshots/forge_repo__agent__tests__parse_agent_file_preserves_runtime_user_prompt_variables.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/snapshots/forge_repo__agent__tests__parse_agent_file_preserves_runtime_user_prompt_variables_tools.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/snapshots/forge_repo__agent__tests__parse_agent_file_subagents_disabled_prompt.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/snapshots/forge_repo__agent__tests__parse_agent_file_subagents_disabled_tools.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/snapshots/forge_repo__agent__tests__parse_agent_file_subagents_enabled_tools.snap +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/trajectory/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/trajectory/trajectory_record.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/trajectory/trajectory_repo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/user_facts/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/user_facts/user_fact_record.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/user_facts/user_facts_repo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_repo/src/validation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/README.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/src/confirm.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/src/input.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/src/multi.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/src/select.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_select/src/widget.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/agent_registry.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/allowed_extensions.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/app_config.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/attachment.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/auth.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/clipper.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/command.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/context_engine.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/conversation.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/discovery.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/fd.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/fd_git.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/fd_walker.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/fixtures/commands/basic.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/fixtures/commands/invalid.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/fixtures/commands/multiline.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/forge_services.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/instructions.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/mcp/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/mcp/service.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/mcp/tool.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/metadata.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/permissions.default.yaml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/policy.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/provider_auth.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/provider_service.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/range.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/sync.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/template.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/fetch.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/followup.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/fs_patch.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/fs_read.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/fs_remove.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/fs_search.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/fs_undo.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/fs_write.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/image_read.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/plan_create.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/shell.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/skill.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/tool_services/syn/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/utils/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/utils/path.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_services/src/utils/temp_dir.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_snaps/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_snaps/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_snaps/src/service.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_stream/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_stream/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_stream/src/mpsc_stream.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_template/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_template/src/element.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_template/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_test_kit/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_test_kit/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tool_macros/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tool_macros/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/can_track.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/client_id/android.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/client_id/generic.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/client_id/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/collect/mod.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/collect/posthog.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/dispatch.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/error.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/event.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/log.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/otel.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_tracker/src/rate_limit.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_walker/Cargo.toml +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_walker/src/binary_extensions.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_walker/src/lib.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_walker/src/walker.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/python/codegraff/_validation.py +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/python/codegraff/py.typed +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/.gitignore +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/README.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/example/.gitignore +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/example/README.md +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/example/app.py +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/example/requirements.txt +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/src/wire.rs +0 -0
- {codegraff-0.1.1 → codegraff-0.1.3}/sdk/python/tests/test_validation.py +0 -0
|
@@ -2744,7 +2744,7 @@ dependencies = [
|
|
|
2744
2744
|
|
|
2745
2745
|
[[package]]
|
|
2746
2746
|
name = "forge_sdk_python"
|
|
2747
|
-
version = "0.1.
|
|
2747
|
+
version = "0.1.3"
|
|
2748
2748
|
dependencies = [
|
|
2749
2749
|
"anyhow",
|
|
2750
2750
|
"forge_api",
|
|
@@ -2755,6 +2755,7 @@ dependencies = [
|
|
|
2755
2755
|
"futures",
|
|
2756
2756
|
"pyo3",
|
|
2757
2757
|
"rustls 0.23.40",
|
|
2758
|
+
"schemars 1.2.1",
|
|
2758
2759
|
"serde",
|
|
2759
2760
|
"serde_json",
|
|
2760
2761
|
"tokio",
|
|
@@ -200,6 +200,10 @@ impl<S: Services + EnvironmentInfra<Config = forge_config::ForgeConfig>> ForgeAp
|
|
|
200
200
|
),
|
|
201
201
|
None => agent,
|
|
202
202
|
};
|
|
203
|
+
let agent = match chat.response_format.clone() {
|
|
204
|
+
Some(rf) => agent.response_format(rf),
|
|
205
|
+
None => agent,
|
|
206
|
+
};
|
|
203
207
|
|
|
204
208
|
let selected_model = models.iter().find(|model| model.id == agent.model);
|
|
205
209
|
let agent = agent.compaction_threshold(selected_model);
|
|
@@ -41,6 +41,9 @@ impl ApplyTunableParameters {
|
|
|
41
41
|
if let Some(verbosity) = self.agent.verbosity {
|
|
42
42
|
ctx = ctx.verbosity(verbosity);
|
|
43
43
|
}
|
|
44
|
+
if let Some(ref response_format) = self.agent.response_format {
|
|
45
|
+
ctx = ctx.response_format(response_format.clone());
|
|
46
|
+
}
|
|
44
47
|
|
|
45
48
|
// Send only meta-tool definitions to the provider instead of all tool definitions.
|
|
46
49
|
// Meta-tools (tools_list, tools_info, call_tool) allow the LLM to dynamically
|
|
@@ -8,7 +8,8 @@ use serde::{Deserialize, Serialize};
|
|
|
8
8
|
use strum_macros::{Display as StrumDisplay, EnumString};
|
|
9
9
|
|
|
10
10
|
use crate::{
|
|
11
|
-
Compact, Error, EventContext, MaxTokens, Model, ModelId, ProviderId,
|
|
11
|
+
Compact, Error, EventContext, MaxTokens, Model, ModelId, ProviderId, ResponseFormat, Result,
|
|
12
|
+
SystemContext,
|
|
12
13
|
Temperature, Template, ToolDefinition, ToolName, TopK, TopP,
|
|
13
14
|
};
|
|
14
15
|
|
|
@@ -182,6 +183,14 @@ pub struct Agent {
|
|
|
182
183
|
/// Reasoning configuration for the agent.
|
|
183
184
|
pub reasoning: Option<ReasoningConfig>,
|
|
184
185
|
|
|
186
|
+
/// Optional structured-output format. When `Some(JsonSchema(..))`,
|
|
187
|
+
/// providers that support it constrain the model reply to the schema —
|
|
188
|
+
/// the SDK's JSON / structured-output mode. Set per-request via
|
|
189
|
+
/// `ChatRequest::response_format`; unset = normal text output.
|
|
190
|
+
#[serde(skip_serializing_if = "Option::is_none", default)]
|
|
191
|
+
#[schemars(skip)]
|
|
192
|
+
pub response_format: Option<ResponseFormat>,
|
|
193
|
+
|
|
185
194
|
/// Maximum number of times a tool can fail before sending the response back
|
|
186
195
|
pub max_tool_failure_per_turn: Option<usize>,
|
|
187
196
|
|
|
@@ -239,6 +248,7 @@ impl Agent {
|
|
|
239
248
|
top_k: Default::default(),
|
|
240
249
|
max_tokens: Default::default(),
|
|
241
250
|
reasoning: Default::default(),
|
|
251
|
+
response_format: Default::default(),
|
|
242
252
|
max_tool_failure_per_turn: Default::default(),
|
|
243
253
|
max_requests_per_turn: Default::default(),
|
|
244
254
|
fast_mode: Default::default(),
|
|
@@ -29,6 +29,11 @@ pub struct ChatRequest {
|
|
|
29
29
|
/// Optional per-request sampling temperature (0.0-2.0). Defaults to `None`.
|
|
30
30
|
#[serde(skip_serializing_if = "Option::is_none", default)]
|
|
31
31
|
pub temperature_override: Option<f32>,
|
|
32
|
+
/// Optional per-request structured-output format (JSON schema). When set,
|
|
33
|
+
/// the model reply is constrained to the schema where the provider supports
|
|
34
|
+
/// it — the SDK's JSON / structured-output mode. Defaults to `None`.
|
|
35
|
+
#[serde(skip_serializing_if = "Option::is_none", default)]
|
|
36
|
+
pub response_format: Option<crate::ResponseFormat>,
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
impl ChatRequest {
|
|
@@ -40,6 +45,7 @@ impl ChatRequest {
|
|
|
40
45
|
system_prompt_override: None,
|
|
41
46
|
custom_rules_override: None,
|
|
42
47
|
temperature_override: None,
|
|
48
|
+
response_format: None,
|
|
43
49
|
}
|
|
44
50
|
}
|
|
45
51
|
}
|
|
@@ -120,6 +120,18 @@ where
|
|
|
120
120
|
return Ok(McpConfig::default());
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
+
// Opt-in non-interactive trust for headless / SDK use: when
|
|
124
|
+
// FORGE_MCP_TRUST_ALL is set, accept (and persist) project-local
|
|
125
|
+
// configs without prompting.
|
|
126
|
+
if std::env::var("FORGE_MCP_TRUST_ALL")
|
|
127
|
+
.map(|v| !v.is_empty() && v != "0" && !v.eq_ignore_ascii_case("false"))
|
|
128
|
+
.unwrap_or(false)
|
|
129
|
+
{
|
|
130
|
+
store.remember(local_path.to_path_buf(), hash);
|
|
131
|
+
self.write_trust_store(&store).await?;
|
|
132
|
+
return Ok(local);
|
|
133
|
+
}
|
|
134
|
+
|
|
123
135
|
let prompt = format_trust_prompt(local_path);
|
|
124
136
|
match self
|
|
125
137
|
.infra
|
|
@@ -131,11 +143,16 @@ where
|
|
|
131
143
|
self.write_trust_store(&store).await?;
|
|
132
144
|
Ok(local)
|
|
133
145
|
}
|
|
134
|
-
|
|
146
|
+
// An explicit reject persists so we don't re-prompt next run.
|
|
147
|
+
Some(McpTrustResponse::Reject) => {
|
|
135
148
|
store.reject(local_path.to_path_buf(), hash);
|
|
136
149
|
self.write_trust_store(&store).await?;
|
|
137
150
|
Ok(McpConfig::default())
|
|
138
151
|
}
|
|
152
|
+
// No interactive answer (headless / no TTY): skip loading this
|
|
153
|
+
// run but do NOT persist a reject — a non-answer must not become a
|
|
154
|
+
// sticky rejection. A later interactive run can still prompt.
|
|
155
|
+
None => Ok(McpConfig::default()),
|
|
139
156
|
}
|
|
140
157
|
}
|
|
141
158
|
}
|
|
@@ -68,10 +68,24 @@ class Graff:
|
|
|
68
68
|
*,
|
|
69
69
|
conversation_id: Optional[str] = None,
|
|
70
70
|
model: Optional[str] = None,
|
|
71
|
+
agent: Optional[str] = None,
|
|
72
|
+
system_prompt: Optional[str] = None,
|
|
73
|
+
custom_rules: Optional[str] = None,
|
|
74
|
+
temperature: Optional[float] = None,
|
|
75
|
+
json_schema: Optional[Any] = None,
|
|
71
76
|
) -> Iterator[AgentEvent]:
|
|
72
|
-
"""Run a chat turn. Yields AgentEvent objects.
|
|
77
|
+
"""Run a chat turn. Yields AgentEvent objects.
|
|
78
|
+
|
|
79
|
+
agent: select a built-in or custom (tool-scoped) agent for this run.
|
|
80
|
+
system_prompt / custom_rules / temperature: per-call overrides.
|
|
81
|
+
json_schema: a JSON Schema (dict or JSON string) for structured output —
|
|
82
|
+
the model reply is constrained to it where the provider supports it.
|
|
83
|
+
"""
|
|
73
84
|
validate("chat", {"prompt": prompt, "conversation_id": conversation_id, "model": model})
|
|
74
|
-
|
|
85
|
+
_schema = json.dumps(json_schema) if isinstance(json_schema, dict) else json_schema
|
|
86
|
+
handle = self._api.chat(
|
|
87
|
+
prompt, conversation_id, model, agent, system_prompt, custom_rules, temperature, _schema
|
|
88
|
+
)
|
|
75
89
|
yield AgentEvent(type="ConversationStarted", data={"conversationId": handle.conversation_id})
|
|
76
90
|
while True:
|
|
77
91
|
raw = handle.next_event()
|
|
@@ -84,8 +98,22 @@ class Graff:
|
|
|
84
98
|
*,
|
|
85
99
|
conversation_id: Optional[str] = None,
|
|
86
100
|
model: Optional[str] = None,
|
|
101
|
+
agent: Optional[str] = None,
|
|
102
|
+
system_prompt: Optional[str] = None,
|
|
103
|
+
custom_rules: Optional[str] = None,
|
|
104
|
+
temperature: Optional[float] = None,
|
|
105
|
+
json_schema: Optional[Any] = None,
|
|
87
106
|
) -> "GraffSession":
|
|
88
|
-
return GraffSession(
|
|
107
|
+
return GraffSession(
|
|
108
|
+
self,
|
|
109
|
+
conversation_id=conversation_id,
|
|
110
|
+
model=model,
|
|
111
|
+
agent=agent,
|
|
112
|
+
system_prompt=system_prompt,
|
|
113
|
+
custom_rules=custom_rules,
|
|
114
|
+
temperature=temperature,
|
|
115
|
+
json_schema=json_schema,
|
|
116
|
+
)
|
|
89
117
|
|
|
90
118
|
# -- Conversation management --
|
|
91
119
|
|
|
@@ -111,6 +139,15 @@ class Graff:
|
|
|
111
139
|
def get_agent_infos(self) -> list[dict]:
|
|
112
140
|
return json.loads(self._api.get_agent_infos())
|
|
113
141
|
|
|
142
|
+
def set_active_agent(self, agent_id: str) -> None:
|
|
143
|
+
"""Select the agent for subsequent chats — a built-in ('forge'/'muse'/
|
|
144
|
+
'sage') or a custom, tool-scoped agent defined in
|
|
145
|
+
`.forge/agents/<id>.md` (its `tools:` allowlist constrains the run)."""
|
|
146
|
+
self._api.set_active_agent(agent_id)
|
|
147
|
+
|
|
148
|
+
def get_active_agent(self) -> Optional[str]:
|
|
149
|
+
return self._api.get_active_agent()
|
|
150
|
+
|
|
114
151
|
# -- Auth --
|
|
115
152
|
|
|
116
153
|
def upsert_credential(
|
|
@@ -148,17 +185,36 @@ class GraffSession:
|
|
|
148
185
|
*,
|
|
149
186
|
conversation_id: Optional[str] = None,
|
|
150
187
|
model: Optional[str] = None,
|
|
188
|
+
agent: Optional[str] = None,
|
|
189
|
+
system_prompt: Optional[str] = None,
|
|
190
|
+
custom_rules: Optional[str] = None,
|
|
191
|
+
temperature: Optional[float] = None,
|
|
192
|
+
json_schema: Optional[Any] = None,
|
|
151
193
|
):
|
|
152
194
|
self._graff = graff
|
|
153
195
|
self._conversation_id = conversation_id
|
|
154
196
|
self._model = model
|
|
197
|
+
self._agent = agent
|
|
198
|
+
self._system_prompt = system_prompt
|
|
199
|
+
self._custom_rules = custom_rules
|
|
200
|
+
self._temperature = temperature
|
|
201
|
+
self._json_schema = json_schema
|
|
155
202
|
|
|
156
203
|
@property
|
|
157
204
|
def conversation_id(self) -> Optional[str]:
|
|
158
205
|
return self._conversation_id
|
|
159
206
|
|
|
160
207
|
def send(self, prompt: str) -> Iterator[AgentEvent]:
|
|
161
|
-
for event in self._graff.chat(
|
|
208
|
+
for event in self._graff.chat(
|
|
209
|
+
prompt,
|
|
210
|
+
conversation_id=self._conversation_id,
|
|
211
|
+
model=self._model,
|
|
212
|
+
agent=self._agent,
|
|
213
|
+
system_prompt=self._system_prompt,
|
|
214
|
+
custom_rules=self._custom_rules,
|
|
215
|
+
temperature=self._temperature,
|
|
216
|
+
json_schema=self._json_schema,
|
|
217
|
+
):
|
|
162
218
|
if event.type == "ConversationStarted" and not self._conversation_id:
|
|
163
219
|
self._conversation_id = event.data.get("conversationId")
|
|
164
220
|
yield event
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "forge_sdk_python"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.3"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
publish = false
|
|
6
6
|
description = "PyO3 bindings exposing the codegraff agent to Python."
|
|
@@ -19,6 +19,7 @@ forge_domain = { path = "../../crates/forge_domain" }
|
|
|
19
19
|
forge_stream = { path = "../../crates/forge_stream" }
|
|
20
20
|
serde.workspace = true
|
|
21
21
|
serde_json.workspace = true
|
|
22
|
+
schemars.workspace = true
|
|
22
23
|
futures = "0.3"
|
|
23
24
|
tokio = { version = "1", features = ["full"] }
|
|
24
25
|
anyhow = "1"
|
|
@@ -5,9 +5,9 @@ use std::sync::{Arc, OnceLock};
|
|
|
5
5
|
use forge_api::{API, ChatRequest, ForgeAPI};
|
|
6
6
|
use forge_config::ForgeConfig;
|
|
7
7
|
use forge_domain::{
|
|
8
|
-
ApiKey, ApiKeyResponse, AuthContext, AuthContextRequest, AuthContextResponse,
|
|
8
|
+
AgentId, ApiKey, ApiKeyResponse, AuthContext, AuthContextRequest, AuthContextResponse,
|
|
9
9
|
AuthMethod, ChatResponse, Conversation, ConversationId, Event, ModelId,
|
|
10
|
-
ProviderId, URLParam, URLParamValue,
|
|
10
|
+
ProviderId, ResponseFormat, URLParam, URLParamValue,
|
|
11
11
|
};
|
|
12
12
|
use forge_stream::MpscStream;
|
|
13
13
|
use futures::StreamExt;
|
|
@@ -119,10 +119,32 @@ impl GraffApi {
|
|
|
119
119
|
})
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
#[pyo3(signature = (prompt, conversation_id=None, model=None, agent=None, system_prompt=None, custom_rules=None, temperature=None, json_schema=None))]
|
|
123
|
+
fn chat(
|
|
124
|
+
&self,
|
|
125
|
+
py: Python<'_>,
|
|
126
|
+
prompt: String,
|
|
127
|
+
conversation_id: Option<String>,
|
|
128
|
+
model: Option<String>,
|
|
129
|
+
agent: Option<String>,
|
|
130
|
+
system_prompt: Option<String>,
|
|
131
|
+
custom_rules: Option<String>,
|
|
132
|
+
temperature: Option<f64>,
|
|
133
|
+
json_schema: Option<String>,
|
|
134
|
+
) -> PyResult<ChatStreamHandle> {
|
|
123
135
|
let inner = self.inner.clone();
|
|
124
136
|
py.detach(|| {
|
|
125
137
|
runtime().block_on(async {
|
|
138
|
+
// Optional per-call agent selection — e.g. a tool-scoped custom
|
|
139
|
+
// agent from `.forge/agents/<id>.md`. Sets the active agent for
|
|
140
|
+
// this and subsequent chats (mirrors set_active_agent).
|
|
141
|
+
if let Some(agent_id) = agent {
|
|
142
|
+
inner
|
|
143
|
+
.set_active_agent(AgentId::new(agent_id))
|
|
144
|
+
.await
|
|
145
|
+
.map_err(map_err)?;
|
|
146
|
+
}
|
|
147
|
+
|
|
126
148
|
let conv_id = match conversation_id {
|
|
127
149
|
Some(s) => parse_conv_id(&s)?,
|
|
128
150
|
None => {
|
|
@@ -138,6 +160,21 @@ impl GraffApi {
|
|
|
138
160
|
if let Some(model_str) = model {
|
|
139
161
|
chat_req.model_override = Some(ModelId::new(model_str));
|
|
140
162
|
}
|
|
163
|
+
if let Some(sp) = system_prompt {
|
|
164
|
+
chat_req.system_prompt_override = Some(sp);
|
|
165
|
+
}
|
|
166
|
+
if let Some(rules) = custom_rules {
|
|
167
|
+
chat_req.custom_rules_override = Some(rules);
|
|
168
|
+
}
|
|
169
|
+
if let Some(temp) = temperature {
|
|
170
|
+
chat_req.temperature_override = Some(temp as f32);
|
|
171
|
+
}
|
|
172
|
+
if let Some(schema_str) = json_schema {
|
|
173
|
+
let schema: schemars::Schema = serde_json::from_str(&schema_str)
|
|
174
|
+
.map_err(|e| py_err(format!("invalid json_schema: {e}")))?;
|
|
175
|
+
chat_req.response_format =
|
|
176
|
+
Some(ResponseFormat::JsonSchema(Box::new(schema)));
|
|
177
|
+
}
|
|
141
178
|
|
|
142
179
|
let stream = inner.chat(chat_req).await.map_err(map_err)?;
|
|
143
180
|
Ok(ChatStreamHandle {
|
|
@@ -216,6 +253,27 @@ impl GraffApi {
|
|
|
216
253
|
})
|
|
217
254
|
}
|
|
218
255
|
|
|
256
|
+
fn set_active_agent(&self, py: Python<'_>, agent_id: String) -> PyResult<()> {
|
|
257
|
+
let inner = self.inner.clone();
|
|
258
|
+
py.detach(|| {
|
|
259
|
+
runtime().block_on(async {
|
|
260
|
+
inner
|
|
261
|
+
.set_active_agent(AgentId::new(agent_id))
|
|
262
|
+
.await
|
|
263
|
+
.map_err(map_err)
|
|
264
|
+
})
|
|
265
|
+
})
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
fn get_active_agent(&self, py: Python<'_>) -> PyResult<Option<String>> {
|
|
269
|
+
let inner = self.inner.clone();
|
|
270
|
+
py.detach(|| {
|
|
271
|
+
runtime().block_on(async {
|
|
272
|
+
Ok(inner.get_active_agent().await.map(|a| a.as_str().to_string()))
|
|
273
|
+
})
|
|
274
|
+
})
|
|
275
|
+
}
|
|
276
|
+
|
|
219
277
|
fn version(&self) -> String {
|
|
220
278
|
env!("CARGO_PKG_VERSION").to_string()
|
|
221
279
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/claude_code.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/enforce_schema.rs
RENAMED
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/mcp_tool_names.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/anthropic/transforms/set_cache.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/model_no_pricing.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/fixtures/zai_api_response.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/drop_tool_call.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/make_xai_compat.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/pipeline.rs
RENAMED
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/set_cache.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/tool_choice.rs
RENAMED
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/when_model.rs
RENAMED
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/dto/openai/transformers/zai_reasoning.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraff-0.1.1 → codegraff-0.1.3}/crates/forge_app/src/fixtures/git_ls_files_many_extensions.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|