UnvibeCode⭐ Star UnvibeCode

Business Workflow Map

Understand end-to-end business operations reconstructed from the code.

mini-swe-agent-main · 15 workflows · 9 areas
Workflow area 1

Agent workflows

1 workflow
01
Workflow 1

agent orchestration and trajectory persistence / task execution loop and limit enforcement

What this workflow does

DefaultAgent renders prompts, queries the model, executes returned bash actions in the environment, and saves the resulting trajectory or exit state. / DefaultAgent processes model-driven shell actions, captures observations, and stops on wall-time, cost, or repeated format-error limits.

Purpose

solve a task by repeatedly querying an LLM, running the model-selected shell actions, and recording the session / carry out a task until submission or a stopping limit is reached

What it produces

agent trajectory and submission payload / agent run state, conversation history, and accumulated cost/step budgets

Who relies on it

local execution environment and downstream consumer of saved trajectory / model caller / task runner

Why this workflow matters

  • Produces a saved run record with model/environment metadata
  • Converts model actions into local command execution
  • Stops on limits, time, or task completion
  • produces a submitted final output when completion is reached
  • terminates cleanly on time, cost, or format-error budget conditions
Implementation references
  • DefaultAgent src/minisweagent/agents/default.py · lines 38–190
  • DefaultAgent.run() src/minisweagent/agents/default.py · lines 88–124
  • LocalEnvironment src/minisweagent/environments/local.py · lines 19–69
  • LocalEnvironment.execute() src/minisweagent/environments/local.py · lines 24–43
  • LocalEnvironment._check_finished() src/minisweagent/environments/local.py · lines 45–56
  • AgentConfig src/minisweagent/agents/default.py · lines 19–35
  • DefaultAgent.query() src/minisweagent/agents/default.py · lines 130–152
  • test_agent_save_includes_class_names() tests/run/test_save.py · lines 10–48
  • DefaultAgent._render_template() src/minisweagent/agents/default.py · lines 66–67
  • DefaultAgent.step() src/minisweagent/agents/default.py · lines 126–128
  • DefaultAgent.add_messages() src/minisweagent/agents/default.py · lines 69–72
  • DefaultAgent.execute_actions() src/minisweagent/agents/default.py · lines 154–157
  • DefaultAgent.save() src/minisweagent/agents/default.py · lines 182–190
  • DefaultAgent.__init__() src/minisweagent/agents/default.py · lines 39–50
  • DefaultAgent.get_template_vars() src/minisweagent/agents/default.py · lines 52–64
  • DefaultAgent.handle_uncaught_exception() src/minisweagent/agents/default.py · lines 74–86
  • DefaultAgent.serialize() src/minisweagent/agents/default.py · lines 159–180
  • OpenRouterModel src/minisweagent/models/openrouter_model.py · lines 55–169
  • format_toolcall_observation_messages() src/minisweagent/models/utils/actions_toolcall.py · lines 79–113
  • parse_toolcall_actions() src/minisweagent/models/utils/actions_toolcall.py · lines 30–76
  • InterruptAgentFlow.__init__() src/minisweagent/exceptions.py · lines 4–6
  • test_message_history_tracking() tests/agents/test_default.py · lines 334–362
  • test_wall_time_limit_enforcement() tests/agents/test_default.py · lines 410–426
  • test_format_errors_count_against_cost_limit() tests/agents/test_default.py · lines 530–544
  • test_repeated_format_errors_terminate_cleanly() tests/agents/test_default.py · lines 481–493
  • test_step_adds_messages() tests/agents/test_default.py · lines 365–385
Workflow area 2

Command workflows

2 workflows
02
Workflow 2

human-in-the-loop command execution / interactive task execution and mode switching

What this workflow does

InteractiveAgent lets a human switch modes, confirm or reject LM commands, and intercept submission or interruption before execution. / InteractiveAgent routes user confirmations and mode switches (confirm, yolo, human) while allowing continuation after completion.

Purpose

supervise or override LM-issued commands before they run / inspect, approve, reject, or directly issue commands before submission

What it produces

command list and task completion handoff / interactive agent mode, pending action, and submission continuation task

Who relies on it

interactive user and local environment / human operator using the agent

Why this workflow matters

  • Prevents undesired command execution unless confirmed
  • Allows user to switch between human, confirm, and yolo modes
  • Supports new-task handoff or clean submission when the agent finishes
  • supports safer confirmation before shell commands
  • permits yolo mode for fast execution
Implementation references
  • InteractiveAgent src/minisweagent/agents/interactive.py · lines 33–209
  • InteractiveAgent.execute_actions() src/minisweagent/agents/interactive.py · lines 124–139
  • InteractiveAgentConfig src/minisweagent/agents/interactive.py · lines 24–30
  • InteractiveAgent._prompt_and_handle_slash_commands() src/minisweagent/agents/interactive.py · lines 184–209
  • InteractiveAgent._check_for_new_task_or_submit() src/minisweagent/agents/interactive.py · lines 144–160
  • InteractiveAgent._ask_confirmation_or_interrupt() src/minisweagent/agents/interactive.py · lines 165–182
  • InteractiveAgent._stdin_is_interactive() src/minisweagent/agents/interactive.py · lines 96–107
  • InteractiveAgent._interrupt() src/minisweagent/agents/interactive.py · lines 40–41
  • InteractiveAgent._add_observation_messages() src/minisweagent/agents/interactive.py · lines 141–142
  • InteractiveAgent._should_ask_confirmation() src/minisweagent/agents/interactive.py · lines 162–163
  • InteractiveAgent.__init__() src/minisweagent/agents/interactive.py · lines 36–38
  • InteractiveAgent.add_messages() src/minisweagent/agents/interactive.py · lines 43–56
  • InteractiveAgent.step() src/minisweagent/agents/interactive.py · lines 109–122
  • InteractiveAgent.query() src/minisweagent/agents/interactive.py · lines 58–94
  • LocalEnvironment src/minisweagent/environments/local.py · lines 19–69
  • UserInterruption src/minisweagent/exceptions.py · lines 21–22
  • FormatError src/minisweagent/exceptions.py · lines 25–26
  • test_successful_completion_with_confirmation() tests/agents/test_interactive.py · lines 133–150
  • test_human_mode_basic_functionality() tests/agents/test_interactive.py · lines 391–414
  • test_yolo_mode_activation() tests/agents/test_interactive.py · lines 183–206
  • test_human_mode_switch_to_confirm() tests/agents/test_interactive.py · lines 450–480
  • test_action_rejection_and_recovery() tests/agents/test_interactive.py · lines 153–180
  • test_non_whitelisted_action_requires_confirmation() tests/agents/test_interactive.py · lines 363–385
  • test_whitelisted_actions_skip_confirmation() tests/agents/test_interactive.py · lines 238–260
  • test_confirmation_mode_switch_to_human_with_rejection() tests/agents/test_interactive.py · lines 483–513
  • test_human_mode_switch_to_yolo() tests/agents/test_interactive.py · lines 417–447
  • test_continue_after_completion_multiple_cycles() tests/agents/test_interactive.py · lines 1020–1053
  • test_continue_after_completion_with_new_task() tests/agents/test_interactive.py · lines 950–986
03
Workflow 3

containerized command execution for agent tasks

What this workflow does

Caller supplies a command to DockerEnvironment; the environment runs it in a container and returns captured output/returncode, with a special submission marker raising Submitted.

Purpose

run a command in an isolated container and receive the result back

What it produces

DockerEnvironment / DockerEnvironmentConfig

Who relies on it

agent runtime / task runner

Why this workflow matters

  • Provides the sandbox used by agent workflows
  • Converts command completion into structured observation output
  • Ends the environment cleanly after use
Implementation references
  • DockerEnvironment src/minisweagent/environments/docker.py · lines 45–161
  • DockerEnvironment.__init__() src/minisweagent/environments/docker.py · lines 46–59
  • DockerEnvironment._start_container() src/minisweagent/environments/docker.py · lines 74–99
  • DockerEnvironment.execute() src/minisweagent/environments/docker.py · lines 101–138
  • DockerEnvironment._check_finished() src/minisweagent/environments/docker.py · lines 140–151
  • DockerEnvironment.cleanup() src/minisweagent/environments/docker.py · lines 153–157
  • test_docker_environment_command_failure() tests/environments/test_docker.py · lines 195–205
  • test_docker_environment_basic_execution() tests/environments/test_docker.py · lines 56–67
  • test_docker_environment_forward_nonexistent_env_variables() tests/environments/test_docker.py · lines 115–126
  • test_docker_environment_custom_cwd() tests/environments/test_docker.py · lines 167–178
  • test_docker_environment_cwd_parameter_override() tests/environments/test_docker.py · lines 181–192
  • test_docker_environment_combined_env_and_forward() tests/environments/test_docker.py · lines 129–143
  • test_docker_environment_env_override_forward() tests/environments/test_docker.py · lines 146–164
  • test_docker_environment_set_env_variables() tests/environments/test_docker.py · lines 70–89
  • test_docker_environment_forward_env_variables() tests/environments/test_docker.py · lines 92–112
  • test_docker_environment_custom_container_timeout() tests/environments/test_docker.py · lines 208–230
  • test_docker_environment_config_defaults() tests/environments/test_docker.py · lines 43–53
Workflow area 3

Local workflows

2 workflows
04
Workflow 4

local task execution

What this workflow does

CLI user provides a task and config, then the mini CLI builds runtime components and runs the agent in a local environment.

Purpose

run a coding/problem-solving task with selected model, agent, and environment settings

What it produces

task/problem statement and saved agent trajectory

Who relies on it

CLI user

Why this workflow matters

  • starts an agent session
  • persists the resulting trajectory to the configured output path
  • shows the saved output location when available
Implementation references
  • main() src/minisweagent/run/mini.py · lines 54–105
  • recursive_merge() src/minisweagent/utils/serialize.py · lines 6–29
  • get_agent() src/minisweagent/agents/__init__.py · lines 25–28
  • get_agent_class() src/minisweagent/agents/__init__.py · lines 14–22
  • get_environment() src/minisweagent/environments/__init__.py · lines 30–33
  • get_environment_class() src/minisweagent/environments/__init__.py · lines 19–27
  • get_model() src/minisweagent/models/__init__.py · lines 45–62
05
Workflow 5

Run a local agent task from CLI

What this workflow does

CLI user supplies config/model/task; mini main constructs the agent and runs the task, optionally writing an output trajectory file.

Purpose

Launch the agent against a user-provided task with selected model/environment settings

What it produces

task and agent configuration

Who relies on it

CLI user

Why this workflow matters

  • Produces an agent submission/result
  • Can persist a trajectory/output file for later inspection
  • Supports confirm vs yolo mode and exit-immediately behavior
Implementation references
  • test_configure_if_first_time_called() tests/run/test_cli_integration.py · lines 18–52
  • test_output_file_is_created() tests/run/test_cli_integration.py · lines 563–649
  • test_exit_immediately_flag_sets_confirm_exit_false() tests/run/test_cli_integration.py · lines 452–488
  • test_no_exit_immediately_flag_sets_confirm_exit_true() tests/run/test_cli_integration.py · lines 491–526
  • test_mini_calls_prompt_when_no_task_provided() tests/run/test_cli_integration.py · lines 97–138
  • test_cost_limit_zero_is_preserved() tests/run/test_cli_integration.py · lines 271–298
  • RunBatchProgressManager._save_overview_data_yaml() src/minisweagent/run/benchmarks/utils/batch_progress.py · lines 175–178
Workflow area 4

Benchmark workflows

3 workflows
06
Workflow 6

Run benchmark evaluation batches

What this workflow does

CLI benchmark operator launches SWE-bench batch processing, which runs agent instances in sandboxed environments and persists per-instance submissions and trajectories.

Purpose

Evaluate many SWE-bench instances and collect results

What it produces

SWE-bench instance, preds.json entry, trajectory JSON

Who relies on it

benchmark runner operator

Why this workflow matters

  • Produces per-instance model patches for evaluation
  • Persists execution traces for later inspection
  • Tracks batch progress and completion status
Implementation references
  • main() src/minisweagent/run/benchmarks/swebench.py · lines 201–271
  • update_preds_file() src/minisweagent/run/benchmarks/swebench.py · lines 97–108
  • remove_from_preds_file() src/minisweagent/run/benchmarks/swebench.py · lines 111–119
  • process_instance() src/minisweagent/run/benchmarks/swebench.py · lines 122–177
  • get_sb_environment() src/minisweagent/run/benchmarks/swebench.py · lines 79–94
  • SingularityEnvironment._build_sandbox() src/minisweagent/environments/singularity.py · lines 46–65
  • SingularityEnvironmentConfig src/minisweagent/environments/singularity.py · lines 18–34
  • BubblewrapEnvironment.execute() src/minisweagent/environments/extra/bubblewrap.py · lines 81–117
  • SingularityEnvironment.execute() src/minisweagent/environments/singularity.py · lines 80–119
  • BubblewrapEnvironment src/minisweagent/environments/extra/bubblewrap.py · lines 69–151
  • SingularityEnvironment src/minisweagent/environments/singularity.py · lines 37–139
  • SwerexModalEnvironment src/minisweagent/environments/extra/swerex_modal.py · lines 37–124
07
Workflow 7

benchmark batch execution

What this workflow does

Batch benchmark runner loads SWE-bench instances, creates per-instance environments and agents, executes them in parallel, and archives submissions and trajectories.

Purpose

run many benchmark instances and collect artifacts for evaluation

What it produces

benchmark instance, submission archive, trajectory file, exit status

Who relies on it

benchmark operator / evaluation pipeline

Why this workflow matters

  • produces evaluation-ready outputs
  • records per-instance status
  • archives workspace submission artifacts
Implementation references
  • main() src/minisweagent/run/benchmarks/programbench.py · lines 121–189
  • process_instance() src/minisweagent/run/benchmarks/programbench.py · lines 63–117
  • copy_submission() src/minisweagent/run/benchmarks/programbench.py · lines 46–60
08
Workflow 8

Run benchmark instances and persist predictions

What this workflow does

Benchmark runner filters SWEBench instances, executes them in workers, records predictions and trajectories, and can skip or redo existing results.

Purpose

Process a selected SWEBench subset and write benchmark outputs for each instance

What it produces

benchmark instance, preds.json, trajectory file

Who relies on it

benchmark operator

Why this workflow matters

  • Produces deterministic benchmark predictions
  • Persists per-instance trajectory artifacts
  • Allows rerun control via redo_existing and filtering
Implementation references
  • test_swebench_end_to_end() tests/run/test_swebench.py · lines 34–77
  • test_exception_handling_in_agent_run() tests/run/test_swebench.py · lines 461–501
  • test_update_preds_file_new_file() tests/run/test_swebench.py · lines 218–232
  • test_filter_instances_no_filters() tests/run/test_swebench.py · lines 135–139
  • test_redo_existing_false_skips_existing() tests/run/test_swebench.py · lines 341–373
  • test_redo_existing_true_overwrites_existing() tests/run/test_swebench.py · lines 376–414
  • test_filter_instances_regex_filter() tests/run/test_swebench.py · lines 142–152
  • test_filter_instances_slice_only() tests/run/test_swebench.py · lines 155–160
  • test_different_exception_types() tests/run/test_swebench.py · lines 504–533
  • test_filter_instances_filter_and_slice() tests/run/test_swebench.py · lines 179–190
  • test_get_sb_environment_runs_startup_command_as_dict() tests/run/test_swebench.py · lines 107–118
Workflow area 5

Llm workflows

3 workflows
09
Workflow 9

LLM provider response handling

What this workflow does

Model wrapper calls a Responses API, extracts bash tool calls, and preserves the raw response payload when parsing fails.

Purpose

Send a conversation to a model provider, recover tool-call actions, and keep the raw response for later inspection if parsing fails

What it produces

model response / tool-call output

Who relies on it

agent runtime / trajectory logger

Why this workflow matters

  • Returns a structured message enriched with actions, cost, and timestamp
  • Preserves the raw provider response in FormatError extra data for debugging and replay
  • Supports stateless Responses-API conversation handling
Implementation references
  • LitellmResponseModel src/minisweagent/models/litellm_response_model.py · lines 25–98
  • OpenRouterResponseModel src/minisweagent/models/openrouter_response_model.py · lines 31–133
  • LitellmResponseModel._prepare_messages_for_api() src/minisweagent/models/litellm_response_model.py · lines 29–38
  • OpenRouterResponseModel._prepare_messages_for_api() src/minisweagent/models/openrouter_response_model.py · lines 70–83
  • LitellmResponseModel.query() src/minisweagent/models/litellm_response_model.py · lines 52–78
  • OpenRouterResponseModel.query() src/minisweagent/models/openrouter_response_model.py · lines 85–103
  • parse_toolcall_actions_response() src/minisweagent/models/utils/actions_toolcall_response.py · lines 58–104
  • finish_reason_from_responses_api() src/minisweagent/models/utils/actions_toolcall_response.py · lines 45–55
  • LitellmResponseModel._query() src/minisweagent/models/litellm_response_model.py · lines 40–50
  • OpenRouterResponseModel._query() src/minisweagent/models/openrouter_response_model.py · lines 44–68
  • _format_error_message() src/minisweagent/models/utils/actions_toolcall_response.py · lines 28–35
  • test_litellm_model_format_error_persists_response() tests/models/test_format_error_response_persistence.py · lines 82–106
  • test_persisted_response_round_trips_through_json() tests/models/test_format_error_response_persistence.py · lines 303–328
  • TestHasToolCallsDistinction.test_response_parser_passes_has_tool_calls() tests/models/test_truncation_finish_reason.py · lines 112–120
  • format_toolcall_observation_messages() src/minisweagent/models/utils/actions_toolcall_response.py · lines 107–141
10
Workflow 10

LLM provider orchestration through Portkey

What this workflow does

Portkey-backed chat/completions and Responses-API wrappers send stateless requests, parse bash actions, and serialize response metadata with cost tracking.

Purpose

Call a model provider via Portkey, recover tool-call actions, and keep structured response metadata for later use

What it produces

Portkey request/response payload

Who relies on it

agent runtime and trajectory logger

Why this workflow matters

  • Returns structured assistant message output with parsed actions
  • Persists serialized response metadata in message.extra
  • Tracks cost and adds it to GLOBAL_MODEL_STATS
  • Supports both chat-completions and Responses-API provider modes
Implementation references
  • PortkeyModel.__init__() src/minisweagent/models/portkey_model.py · lines 68–89
  • PortkeyResponseAPIModel src/minisweagent/models/portkey_response_model.py · lines 45–182
  • PortkeyResponseAPIModel._prepare_messages_for_api() src/minisweagent/models/portkey_response_model.py · lines 82–94
  • PortkeyModel src/minisweagent/models/portkey_model.py · lines 65–213
  • PortkeyResponseAPIModel.__init__() src/minisweagent/models/portkey_response_model.py · lines 54–72
  • PortkeyModel.query() src/minisweagent/models/portkey_model.py · lines 104–128
  • PortkeyResponseAPIModel.query() src/minisweagent/models/portkey_response_model.py · lines 96–121
  • PortkeyModel._parse_actions() src/minisweagent/models/portkey_model.py · lines 130–137
  • parse_toolcall_actions_response() src/minisweagent/models/utils/actions_toolcall_response.py · lines 58–104
  • test_portkey_model_missing_api_key() tests/models/test_portkey_model.py · lines 12–17
  • test_portkey_model_query() tests/models/test_portkey_model.py · lines 43–89
  • test_portkey_response_model_format_error_persists_response_with_model_dump() tests/models/test_format_error_response_persistence.py · lines 245–270
  • test_response_api_model_stateless_flattens_response() tests/models/test_portkey_response_model.py · lines 43–90
  • PortkeyModel.format_message() src/minisweagent/models/portkey_model.py · lines 139–140
  • PortkeyModel.get_template_vars() src/minisweagent/models/portkey_model.py · lines 155–156
  • PortkeyModel._prepare_messages_for_api() src/minisweagent/models/portkey_model.py · lines 99–102
  • PortkeyModel._query() src/minisweagent/models/portkey_model.py · lines 91–97
  • PortkeyModel.serialize() src/minisweagent/models/portkey_model.py · lines 158–166
  • PortkeyModel.format_observation_messages() src/minisweagent/models/portkey_model.py · lines 142–153
  • PortkeyModel._calculate_cost() src/minisweagent/models/portkey_model.py · lines 168–213
  • PortkeyResponseAPIModel.get_template_vars() src/minisweagent/models/portkey_response_model.py · lines 171–172
  • PortkeyResponseAPIModel._query() src/minisweagent/models/portkey_response_model.py · lines 74–80
  • PortkeyResponseAPIModel._parse_actions() src/minisweagent/models/portkey_response_model.py · lines 123–130
  • PortkeyResponseAPIModel.format_message() src/minisweagent/models/portkey_response_model.py · lines 148–156
  • PortkeyResponseAPIModel.serialize() src/minisweagent/models/portkey_response_model.py · lines 174–182
  • PortkeyResponseAPIModel.format_observation_messages() src/minisweagent/models/portkey_response_model.py · lines 158–169
  • PortkeyResponseAPIModel._calculate_cost() src/minisweagent/models/portkey_response_model.py · lines 132–146
  • test_portkey_model_config() tests/models/test_portkey_model.py · lines 20–24
  • test_portkey_model_initialization() tests/models/test_portkey_model.py · lines 27–40
11
Workflow 11

LLM provider adapter

What this workflow does

The Litellm model adapter sends completion requests, retries on transient failures, computes cost, parses tool calls, and packages the response for the agent loop.

Purpose

obtain a structured model response for the agent loop

What it produces

model completion response and tool-call actions

Who relies on it

agent runtime

Why this workflow matters

  • returns assistant message plus metadata
  • tracks per-call cost
  • preserves response data when formatting fails
Implementation references
  • LitellmModel src/minisweagent/models/litellm_model.py · lines 49–164
  • _reorder_anthropic_thinking_blocks() src/minisweagent/models/utils/anthropic_utils.py · lines 11–28
  • GlobalModelStats.cost() src/minisweagent/models/__init__.py · lines 33–35
  • GlobalModelStats.n_calls() src/minisweagent/models/__init__.py · lines 37–39
  • GlobalModelStats.add() src/minisweagent/models/__init__.py · lines 25–31
  • GlobalModelStats.__init__() src/minisweagent/models/__init__.py · lines 16–23
  • LitellmModel.query() src/minisweagent/models/litellm_model.py · lines 81–106
  • GlobalModelStats src/minisweagent/models/__init__.py · lines 13–39
  • LitellmModel._prepare_messages_for_api() src/minisweagent/models/litellm_model.py · lines 76–79
  • LitellmModel._query() src/minisweagent/models/litellm_model.py · lines 64–74
Workflow area 6

legacy text action parsing and observation formatting

1 workflow
12
Workflow 12

legacy text action parsing and observation formatting

What this workflow does

Legacy text-based model utilities extract a single bash action from model text and render observation messages from tool outputs.

Purpose

Turn a text-only model reply into one executable bash action and then render execution output back into chat messages

What it produces

action text / observation message

Who relies on it

model runner and downstream prompt loop

Why this workflow matters

  • Produces a single normalized command for execution
  • Raises a structured FormatError when output does not match the required shape
  • Formats tool output into a user-visible observation message for the next turn
Implementation references
  • LitellmTextbasedModel src/minisweagent/models/litellm_textbased_model.py · lines 16–48
  • parse_regex_actions() src/minisweagent/models/utils/actions_text.py · lines 15–40
  • format_observation_messages() src/minisweagent/models/utils/actions_text.py · lines 43–70
  • TestRegexActionsTemplateKwargs tests/models/test_truncation_finish_reason.py · lines 54–69
  • TestRegexActionsTemplateKwargs.test_without_template_kwargs_still_works() tests/models/test_truncation_finish_reason.py · lines 66–69
  • TestResponseActionsTemplateKwargs.test_finish_reason_reported_on_no_tool_calls() tests/models/test_truncation_finish_reason.py · lines 73–78
  • TestHasToolCallsDistinction.test_empty_payload_with_tool_calls_reason_reports_truncation() tests/models/test_truncation_finish_reason.py · lines 95–100
  • TestHasToolCallsDistinction.test_malformed_toolcall_with_tool_calls_reason_shows_real_error() tests/models/test_truncation_finish_reason.py · lines 86–93
  • TestHasToolCallsDistinction.test_malformed_toolcall_with_length_reason_still_reports_truncation() tests/models/test_truncation_finish_reason.py · lines 102–110
  • TestHasToolCallsDistinction.test_response_parser_passes_has_tool_calls() tests/models/test_truncation_finish_reason.py · lines 112–120
  • TestRegexActionsTemplateKwargs.test_finish_reason_reported_on_zero_actions() tests/models/test_truncation_finish_reason.py · lines 55–64
Workflow area 7

global configuration file management

1 workflow
13
Workflow 13

global configuration file management

What this workflow does

CLI user sets, unsets, edits, or initializes the global config file, which updates the .env-backed model/API-key state and reloads the runtime environment.

Purpose

initialize and maintain model/API-key settings

What it produces

global_config_file and its keys

Who relies on it

local user operating mini-swe-agent

Why this workflow matters

  • Persists model selection and credential names/values
  • Allows later runs to reuse configured defaults
  • Supports editing and removal of config entries
Implementation references
  • configure_if_first_time() src/minisweagent/run/utilities/config.py · lines 62–66
  • _reload_config() src/minisweagent/run/utilities/config.py · lines 21–22
  • edit() src/minisweagent/run/utilities/config.py · lines 122–127
  • unset() src/minisweagent/run/utilities/config.py · lines 113–119
  • set() src/minisweagent/run/utilities/config.py · lines 99–110
  • setup() src/minisweagent/run/utilities/config.py · lines 69–96
  • TestConfigSet tests/run/test_extra_config.py · lines 117–246
  • TestConfigSet.test_set_overwrites_existing_key() tests/run/test_extra_config.py · lines 219–231
  • TestConfigUnset tests/run/test_extra_config.py · lines 249–372
  • TestTyperAppIntegration tests/run/test_extra_config.py · lines 436–479
  • TestConfigSetup tests/run/test_extra_config.py · lines 14–114
  • prompt() src/minisweagent/run/utilities/config.py · lines 55–59
Workflow area 8

Trajectory workflows

1 workflow
14
Workflow 14

trajectory browsing and inspection

What this workflow does

User opens a trajectory file or directory in the TrajectoryInspector UI, browses steps and trajectories, toggles reasoning, reloads files, and may open content in jless.

Purpose

review saved agent conversations and their rendered tool/assistant content

What it produces

trajectory files and message steps

Who relies on it

developer or operator inspecting agent runs

Why this workflow matters

  • Provides visual review of agent steps and reasoning
  • Supports navigation across multiple trajectories and steps
  • Allows refreshing from disk after file changes
Implementation references
  • TrajectoryInspector src/minisweagent/run/utilities/inspector.py · lines 79–292
  • main() src/minisweagent/run/utilities/inspector.py · lines 295–312
  • TrajectoryInspector._load_current_trajectory() src/minisweagent/run/utilities/inspector.py · lines 153–176
  • TrajectoryInspector.__init__() src/minisweagent/run/utilities/inspector.py · lines 97–112
  • TrajectoryInspector.action_toggle_reasoning() src/minisweagent/run/utilities/inspector.py · lines 274–276
  • TrajectoryInspector.update_content() src/minisweagent/run/utilities/inspector.py · lines 195–225
  • test_trajectory_inspector_reload_clamps_step() tests/run/test_inspector.py · lines 465–481
  • test_trajectory_inspector_ansi_content() tests/run/test_inspector.py · lines 506–521
  • test_trajectory_inspector_reasoning_display() tests/run/test_inspector.py · lines 393–414
  • TrajectoryInspector.action_open_in_jless() src/minisweagent/run/utilities/inspector.py · lines 263–272
  • test_trajectory_inspector_load_trajectory_formats() tests/run/test_inspector.py · lines 270–303
  • test_trajectory_inspector_toggle_reasoning() tests/run/test_inspector.py · lines 417–435
  • test_trajectory_inspector_reload() tests/run/test_inspector.py · lines 438–462
Workflow area 9

Batch workflows

1 workflow
15
Workflow 15

Track and summarize batch execution progress

What this workflow does

Batch progress manager tracks per-instance lifecycle, counts exit statuses, computes ETA and cost, and optionally saves a YAML overview report.

Purpose

Provide live progress feedback and a persisted summary during benchmark runs

What it produces

instance exit statuses and overview report

Who relies on it

benchmark operator

Why this workflow matters

  • Shows live progress and ETA
  • Aggregates exit statuses for review
  • Persists a YAML summary of instance outcomes
Implementation references
  • RunBatchProgressManager src/minisweagent/run/benchmarks/utils/batch_progress.py · lines 36–178
  • RunBatchProgressManager.__init__() src/minisweagent/run/benchmarks/utils/batch_progress.py · lines 37–83
  • RunBatchProgressManager._save_overview_data_yaml() src/minisweagent/run/benchmarks/utils/batch_progress.py · lines 175–178
  • test_instance_lifecycle() tests/run/test_batch_progress.py · lines 44–51
  • test_multiple_instances() tests/run/test_batch_progress.py · lines 62–71
  • RunBatchProgressManager._get_eta_text() src/minisweagent/run/benchmarks/utils/batch_progress.py · lines 89–97
  • RunBatchProgressManager.on_instance_end() src/minisweagent/run/benchmarks/utils/batch_progress.py · lines 145–156
  • RunBatchProgressManager.on_uncaught_exception() src/minisweagent/run/benchmarks/utils/batch_progress.py · lines 158–159
  • test_manager_initialization() tests/run/test_batch_progress.py · lines 34–36
  • test_manager_with_yaml_path() tests/run/test_batch_progress.py · lines 39–41
  • test_yaml_report_generation() tests/run/test_batch_progress.py · lines 87–98
  • test_uncaught_exception() tests/run/test_batch_progress.py · lines 74–79
  • test_update_instance_status() tests/run/test_batch_progress.py · lines 82–84
  • test_get_overview_data() tests/run/test_batch_progress.py · lines 101–106
  • test_concurrent_operations() tests/run/test_batch_progress.py · lines 125–136
  • test_print_report() tests/run/test_batch_progress.py · lines 109–122

Continue your review

Structured graph of your codebase linking different files and symbols.