teknium1
59f1c0f0b6
refactor(run_agent): extract tool-dispatch helpers to agent/tool_dispatch_helpers.py
Pull module-level helpers used by the tool-execution path out of
run_agent.py:
* parallelism gating — _NEVER_PARALLEL_TOOLS, _PARALLEL_SAFE_TOOLS,
_PATH_SCOPED_TOOLS, _DESTRUCTIVE_PATTERNS, _REDIRECT_OVERWRITE,
_is_destructive_command, _should_parallelize_tool_batch,
_extract_parallel_scope_path, _paths_overlap
* multimodal envelopes — _is_multimodal_tool_result,
_multimodal_text_summary, _append_subdir_hint_to_multimodal
* file-mutation verifier inputs — _extract_file_mutation_targets,
_extract_error_preview
* trajectory normalization — _trajectory_normalize_msg
All pure functions. run_agent re-exports every name so existing
'from run_agent import _is_multimodal_tool_result' callers in
tests/tools/, tests/run_agent/, and tools/file_state.py keep working.
tests/run_agent/: 1341 passed, 3 skipped.
run_agent.py: 15682 -> 15427 lines (-255).
2026-05-16 17:54:26 -07:00
..
2026-05-14 15:56:07 -07:00
2026-05-14 14:55:23 -07:00
2026-02-21 22:31:43 -08:00
2026-05-11 11:13:25 -07:00
2026-05-12 20:46:04 -07:00
2026-05-14 20:15:29 -07:00
2026-05-07 05:17:16 -07:00
2026-05-09 21:06:19 -07:00
2026-05-14 14:28:14 -07:00
2026-05-13 22:25:16 -07:00
2026-04-20 01:56:41 -07:00
2026-05-08 14:27:40 -07:00
2026-05-11 11:13:25 -07:00
2026-04-29 09:53:42 -07:00
2026-05-02 01:29:57 -07:00
2026-05-10 06:44:53 -07:00
2026-05-15 10:36:38 +05:30
2026-05-11 11:13:25 -07:00
2026-04-21 01:31:58 -07:00
2026-05-14 08:03:56 -07:00
2026-05-11 11:13:20 -07:00
2026-04-28 06:46:45 -07:00
2026-04-28 06:46:45 -07:00
2026-05-04 03:16:19 -07:00
2026-05-10 07:14:14 -07:00
2026-04-21 21:30:10 -07:00
2026-05-13 22:31:28 -07:00
2026-05-11 11:13:25 -07:00
2026-04-20 05:25:49 -07:00
2026-04-28 12:27:36 -07:00
2026-04-30 23:03:54 -07:00
2026-05-11 16:49:13 -07:00
2026-05-11 11:13:25 -07:00
2026-05-05 13:33:49 -07:00
2026-05-16 17:41:09 -07:00
2026-05-13 23:51:15 -07:00
2026-05-13 23:51:15 -07:00
2026-05-11 11:13:25 -07:00
2026-05-08 14:27:40 -07:00
2026-04-29 08:08:36 -07:00
2026-05-10 07:09:28 -07:00
2026-05-12 20:49:20 -07:00
2026-05-12 18:46:28 -07:00
2026-05-12 20:46:04 -07:00
2026-04-13 16:32:04 -07:00
2026-05-11 11:13:25 -07:00
2026-04-08 00:41:36 -07:00
2026-05-11 11:13:25 -07:00
2026-05-11 11:13:25 -07:00
2026-04-24 15:15:07 -07:00
2026-05-08 16:39:32 -07:00
2026-04-09 03:10:30 -07:00
2026-05-05 04:33:38 -07:00
2026-05-04 12:07:17 -07:00
2026-05-16 17:54:26 -07:00
2026-05-13 06:46:23 -07:00
2026-05-13 06:46:23 -07:00
2026-02-21 22:31:43 -08:00
2026-05-12 16:32:57 -07:00
2026-05-13 16:39:41 -07:00
2026-05-13 16:39:41 -07:00
2026-05-13 22:31:28 -07:00
2026-05-13 22:31:28 -07:00