Coverage report: 92%

Files Functions Classes

coverage.py v7.16.0, created at 2026-09-25 00:49 +0000

File function   statements missing excluded   coverage
core/langgraph/_builtins.py ticket_publisher   3 0 2   100%
core/langgraph/_builtins.py run_finalizer   3 0 2   100%
core/langgraph/_builtins.py _git_checkout   3 0 2   100%
core/langgraph/_builtins.py files_write   7 0 2   100%
core/langgraph/_builtins.py _git_rm   5 0 2   100%
core/langgraph/_builtins.py files_delete   7 0 2   100%
core/langgraph/_builtins.py _hard_failure   3 0 2   100%
core/langgraph/_builtins.py list_dir_entries   8 0 2   100%
core/langgraph/_builtins.py aggregate   3 0 2   100%
core/langgraph/_builtins.py register_all   7 0 0   100%
core/langgraph/_builtins.py (no function)   19 0 6   100%
core/langgraph/_builtins_functions.py question_block_form   3 0 2   100%
core/langgraph/_builtins_functions.py register_all   1 0 0   100%
core/langgraph/_builtins_functions.py (no function)   4 0 0   100%
core/langgraph/_builtins_pr.py builtin_github_pr_comment   3 0 2   100%
core/langgraph/_builtins_pr.py register_all   1 0 0   100%
core/langgraph/_builtins_pr.py (no function)   6 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_publish   3 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_dor   3 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_review   3 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_context   3 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_lane   3 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_approval   3 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_search   3 0 2   100%
core/langgraph/_builtins_ticket.py builtin_ticket_create   3 0 2   100%
core/langgraph/_builtins_ticket.py _invoker_bound   2 0 0   100%
core/langgraph/_builtins_ticket.py _invoker_bound.wrapper   1 0 0   100%
core/langgraph/_builtins_ticket.py register_all   8 0 0   100%
core/langgraph/_builtins_ticket.py (no function)   18 0 6   100%
core/langgraph/_channels.py parse_channel_specs   1 0 0   100%
core/langgraph/_channels.py select_reducer   6 0 0   100%
core/langgraph/_channels.py _select_binop_reducer   7 0 0   100%
core/langgraph/_channels.py reduce_channel   5 0 0   100%
core/langgraph/_channels.py _seed_channel   4 0 0   100%
core/langgraph/_channels.py _require_known_type   2 0 0   100%
core/langgraph/_channels.py seed_committed   7 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet.__init__   3 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet.stage   1 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet.read   4 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet.read_view   4 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet.fork   1 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet.pending_writes   1 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet.commit   6 0 0   100%
core/langgraph/_channels.py ChannelWorkingSet._fold   3 0 0   100%
core/langgraph/_channels.py wrap   1 0 0   100%
core/langgraph/_channels.py unwrap   1 0 0   100%
core/langgraph/_channels.py (no function)   31 0 2   100%
core/langgraph/_data_structure.py resolve_communication_context   4 0 0   100%
core/langgraph/_data_structure.py render_communication_block   1 0 0   100%
core/langgraph/_data_structure.py (no function)   6 0 0   100%
core/langgraph/_envelope.py _validate_status   6 0 0   100%
core/langgraph/_envelope.py _validate_error_field   10 0 0   100%
core/langgraph/_envelope.py _validate_error_object   7 0 0   100%
core/langgraph/_envelope.py _validate_iteration   5 0 0   100%
core/langgraph/_envelope.py _is_non_empty_string   1 0 0   100%
core/langgraph/_envelope.py _format_status_enum   1 0 0   100%
core/langgraph/_envelope.py _validate_field_set   4 0 0   100%
core/langgraph/_envelope.py validate_envelope   12 0 0   100%
core/langgraph/_envelope.py is_error_envelope   1 0 0   100%
core/langgraph/_envelope.py (no function)   25 0 0   100%
core/langgraph/_files_output.py resolve_workspace_root   1 0 0   100%
core/langgraph/_files_output.py validate_and_write_files   24 2 0   92%
core/langgraph/_files_output.py _validate_entry   9 1 0   89%
core/langgraph/_files_output.py _resolve_path   11 0 0   100%
core/langgraph/_files_output.py (no function)   11 0 0   100%
core/langgraph/_instructions.py (no function)   4 0 3   100%
core/langgraph/_llm.py RunBudget.try_consume   13 4 0   69%
core/langgraph/_llm.py RunBudget.as_stats   1 1 0   0%
core/langgraph/_llm.py _skill_repos_from_env   19 0 0   100%
core/langgraph/_llm.py locate_skills_root   13 2 0   85%
core/langgraph/_llm.py _normalize_skill_libs   2 0 0   100%
core/langgraph/_llm.py load_skills   8 0 0   100%
core/langgraph/_llm.py _parse_skill_entry   13 0 0   100%
core/langgraph/_llm.py _load_bare_skill   18 0 0   100%
core/langgraph/_llm.py _skill_folder_files   3 0 0   100%
core/langgraph/_llm.py _read_skill_file   7 2 0   71%
core/langgraph/_llm.py _available_skill_names   11 0 0   100%
core/langgraph/_llm.py _unresolved_skill_error   3 0 0   100%
core/langgraph/_llm.py _render   4 0 0   100%
core/langgraph/_llm.py _render._lookup   8 2 0   75%
core/langgraph/_llm.py _tokenizer   8 0 0   100%
core/langgraph/_llm.py count_context_tokens   7 0 0   100%
core/langgraph/_llm.py LangfuseTracer.__init__   7 0 0   100%
core/langgraph/_llm.py LangfuseTracer._client   18 7 0   61%
core/langgraph/_llm.py LangfuseTracer.trace_name   1 1 0   0%
core/langgraph/_llm.py LangfuseTracer.session_id   1 1 0   0%
core/langgraph/_llm.py LangfuseTracer._ctx   6 1 0   83%
core/langgraph/_llm.py LangfuseTracer._ctx_with_parent   7 1 0   86%
core/langgraph/_llm.py LangfuseTracer.open_parent_observation   12 4 0   67%
core/langgraph/_llm.py LangfuseTracer.close_parent_observation   6 1 0   83%
core/langgraph/_llm.py LangfuseTracer.init_trace   15 15 0   0%
core/langgraph/_llm.py LangfuseTracer._apply_meta   4 0 0   100%
core/langgraph/_llm.py LangfuseTracer.generation   11 4 0   64%
core/langgraph/_llm.py LangfuseTracer.flush   9 9 0   0%
core/langgraph/_llm.py _NoopObservation.update   0 0 1   100%
core/langgraph/_llm.py _NoopObservation.end   0 0 1   100%
core/langgraph/_llm.py _try_parse_json   6 0 0   100%
core/langgraph/_llm.py _invalid_tool_arguments_result   3 1 0   67%
core/langgraph/_llm.py _file_result_from_tool_result   4 0 0   100%
core/langgraph/_llm.py _list_dir_entries   7 3 0   57%
core/langgraph/_llm.py _parse_deterministic_tool_arguments   7 2 0   71%
core/langgraph/_llm.py _ToolHardFailure.__init__   3 0 0   100%
core/langgraph/_llm.py _execute_tool_or_call_failed   8 1 0   88%
core/langgraph/_llm.py _synthesize_call_step   6 0 2   100%
core/langgraph/_llm.py DispatchedToolResult.as_tool_message   3 1 0   67%
core/langgraph/_llm.py OpenAIInvoker.__init__   5 0 0   100%
core/langgraph/_llm.py OpenAIInvoker._openai_client   5 0 0   100%
core/langgraph/_llm.py OpenAIInvoker.__call__   73 6 0   92%
core/langgraph/_llm.py OpenAIInvoker._stream_completion   11 0 0   100%
core/langgraph/_llm.py OpenAIInvoker._run_file_tool   9 2 0   78%
core/langgraph/_llm.py OpenAIInvoker._execute_tool_call   7 0 0   100%
core/langgraph/_llm.py OpenAIInvoker._execute_deterministic_tool   6 0 0   100%
core/langgraph/_llm.py OpenAIInvoker._stream_completion_with_tools   48 0 0   100%
core/langgraph/_llm.py _hard_failure   3 0 2   100%
core/langgraph/_llm.py _usage_from_response   4 1 0   75%
core/langgraph/_llm.py _effective_context_budget   7 0 0   100%
core/langgraph/_llm.py _context_overflow_result   1 0 0   100%
core/langgraph/_llm.py _tool_failure_from_exception   5 2 0   60%
core/langgraph/_llm.py _tool_failure_result   6 2 0   67%
core/langgraph/_llm.py _with_failure_flags   1 0 0   100%
core/langgraph/_llm.py _with_context_metrics   8 0 0   100%
core/langgraph/_llm.py _format_user_message   24 7 0   71%
core/langgraph/_llm.py (no function)   119 0 19   100%
core/langgraph/_reducers.py _reduce_last   1 0 0   100%
core/langgraph/_reducers.py _reduce_add_or_extend   3 0 0   100%
core/langgraph/_reducers.py _dedupe_first_occurrence   9 0 0   100%
core/langgraph/_reducers.py _reduce_union_by_key   9 0 0   100%
core/langgraph/_reducers.py _reduce_dict_merge   1 0 0   100%
core/langgraph/_reducers.py accumulate_map_reduce   9 0 0   100%
core/langgraph/_reducers.py _is_collection_map   1 0 0   100%
core/langgraph/_reducers.py _require_mapping   2 0 0   100%
core/langgraph/_reducers.py _require_numeric   3 0 0   100%
core/langgraph/_reducers.py _as_list   1 0 0   100%
core/langgraph/_reducers.py _fold_union   1 0 0   100%
core/langgraph/_reducers.py _fold_concat   1 0 0   100%
core/langgraph/_reducers.py _fold_merge   4 0 0   100%
core/langgraph/_reducers.py _fold_last   1 0 0   100%
core/langgraph/_reducers.py _fold_first   3 0 0   100%
core/langgraph/_reducers.py _fold_sum   4 0 0   100%
core/langgraph/_reducers.py _fold_avg   7 0 0   100%
core/langgraph/_reducers.py _fold_min   6 0 0   100%
core/langgraph/_reducers.py _fold_max   6 0 0   100%
core/langgraph/_reducers.py _fold_count   1 0 0   100%
core/langgraph/_reducers.py _fold_group   5 0 0   100%
core/langgraph/_reducers.py _fold_any   3 0 0   100%
core/langgraph/_reducers.py _fold_all   3 0 0   100%
core/langgraph/_reducers.py apply_op   5 0 0   100%
core/langgraph/_reducers.py (no function)   28 0 0   100%
core/langgraph/_step_functions.py _hard_failure   3 0 2   100%
core/langgraph/_step_functions.py _runtime_command   2 0 0   100%
core/langgraph/_step_functions.py _in_cluster   1 0 0   100%
core/langgraph/_step_functions.py _safe_step_token   4 1 0   75%
core/langgraph/_step_functions.py _write_params_file   4 0 0   100%
core/langgraph/_step_functions.py _remove_params_file   2 0 0   100%
core/langgraph/_step_functions.py _run_in_sidecar   4 0 0   100%
core/langgraph/_step_functions.py _parse_outputs   7 0 0   100%
core/langgraph/_step_functions.py _declared_outputs   2 0 0   100%
core/langgraph/_step_functions.py _enforce_outputs   9 0 0   100%
core/langgraph/_step_functions.py StepFunctionExecutor.__init__   2 0 0   100%
core/langgraph/_step_functions.py StepFunctionExecutor.has   1 0 0   100%
core/langgraph/_step_functions.py StepFunctionExecutor.instruction_for   4 0 0   100%
core/langgraph/_step_functions.py StepFunctionExecutor.params_for   6 0 0   100%
core/langgraph/_step_functions.py StepFunctionExecutor.execute   22 0 0   100%
core/langgraph/_step_functions.py (no function)   30 0 2   100%
core/langgraph/_tool_markup.py contains_tool_call_markup   3 0 0   100%
core/langgraph/_tool_markup.py (no function)   3 0 0   100%
core/langgraph/discover.py _load_yaml_pipelines   26 26 0   0%
core/langgraph/discover.py _generate_wrapper   3 3 0   0%
core/langgraph/discover.py main   32 32 0   0%
core/langgraph/discover.py (no function)   17 17 0   0%
core/langgraph/exec_runner.py slugify   16 0 0   100%
core/langgraph/exec_runner.py run_engine_command   5 2 0   60%
core/langgraph/exec_runner.py _read_namespace_file   7 1 0   86%
core/langgraph/exec_runner.py _parse_exec_status   21 2 0   90%
core/langgraph/exec_runner.py KubernetesExec.__init__   4 0 0   100%
core/langgraph/exec_runner.py KubernetesExec.run   1 0 0   100%
core/langgraph/exec_runner.py KubernetesExec.run_step_function   1 0 0   100%
core/langgraph/exec_runner.py KubernetesExec._exec_in_container   7 0 0   100%
core/langgraph/exec_runner.py KubernetesExec._connect   7 5 0   29%
core/langgraph/exec_runner.py (no function)   25 0 0   100%
core/langgraph/runner.py RunHardFailure.__init__   8 0 0   100%
core/langgraph/runner.py SpawnBudget.__init__   2 0 0   100%
core/langgraph/runner.py SpawnBudget.consume   7 1 0   86%
core/langgraph/runner.py resolve_manifest_dirs   1 0 0   100%
core/langgraph/runner.py _split_key_indices   4 0 0   100%
core/langgraph/runner.py _apply_indices   5 1 0   80%
core/langgraph/runner.py _dot_get_segment   14 3 0   79%
core/langgraph/runner.py _dot_get   5 0 0   100%
core/langgraph/runner.py _dot_get_strict   7 0 0   100%
core/langgraph/runner.py materialize_pipeline_output   7 1 0   86%
core/langgraph/runner.py _merge_side_channel   3 0 0   100%
core/langgraph/runner.py _assemble_spawn_outcome   21 0 0   100%
core/langgraph/runner.py _tokenize_expr   58 11 0   81%
core/langgraph/runner.py _ExprParser.__init__   2 0 0   100%
core/langgraph/runner.py _ExprParser.parse   5 2 0   60%
core/langgraph/runner.py _ExprParser._peek   1 0 0   100%
core/langgraph/runner.py _ExprParser._next   3 0 0   100%
core/langgraph/runner.py _ExprParser._peek_name   2 0 0   100%
core/langgraph/runner.py _ExprParser._peek_op   2 0 0   100%
core/langgraph/runner.py _ExprParser._expect_punct   3 1 0   67%
core/langgraph/runner.py _ExprParser._or_expr   6 0 0   100%
core/langgraph/runner.py _ExprParser._and_expr   6 0 0   100%
core/langgraph/runner.py _ExprParser._not_expr   4 0 0   100%
core/langgraph/runner.py _ExprParser._cmp_expr   7 0 0   100%
core/langgraph/runner.py _ExprParser._add_expr   6 0 0   100%
core/langgraph/runner.py _ExprParser._unary_expr   7 0 0   100%
core/langgraph/runner.py _ExprParser._primary   42 4 0   90%
core/langgraph/runner.py _is_number   1 0 0   100%
core/langgraph/runner.py _add_values   7 0 0   100%
core/langgraph/runner.py _eval_comparison_rhs   3 0 0   100%
core/langgraph/runner.py _eval_cmp   18 5 0   72%
core/langgraph/runner.py _eval_ast   32 2 0   94%
core/langgraph/runner.py _eval_expr   5 1 0   80%
core/langgraph/runner.py _resolve_template   6 0 0   100%
core/langgraph/runner.py _resolve_template_inner   12 0 0   100%
core/langgraph/runner.py _resolve_template_inner._replace   2 2 0   0%
core/langgraph/runner.py _resolve_input   14 0 0   100%
core/langgraph/runner.py _eval_condition   10 1 0   90%
core/langgraph/runner.py _and_conditions   7 7 0   0%
core/langgraph/runner.py _resolve_int   5 0 0   100%
core/langgraph/runner.py _parse_manifest_file   16 6 0   62%
core/langgraph/runner.py ManifestLoader.__init__   1 0 0   100%
core/langgraph/runner.py ManifestLoader.load_all   11 0 0   100%
core/langgraph/runner.py ManifestRegistry.__init__   9 0 0   100%
core/langgraph/runner.py ManifestRegistry.get   1 0 0   100%
core/langgraph/runner.py ManifestRegistry.all_of_kind   1 0 0   100%
core/langgraph/runner.py _deep_merge   6 0 0   100%
core/langgraph/runner.py _tool_has_description   2 0 0   100%
core/langgraph/runner.py AgentResolver.__init__   2 0 0   100%
core/langgraph/runner.py AgentResolver.resolve   20 2 0   90%
core/langgraph/runner.py _iteration_discriminator   5 2 0   60%
core/langgraph/runner.py _merge_state   16 0 0   100%
core/langgraph/runner.py _build_state_schema   2 0 0   100%
core/langgraph/runner.py BuiltinExecutor.__init__   3 0 0   100%
core/langgraph/runner.py BuiltinExecutor.register   4 0 0   100%
core/langgraph/runner.py BuiltinExecutor._load_lazy_modules   10 2 0   80%
core/langgraph/runner.py BuiltinExecutor.has   2 0 0   100%
core/langgraph/runner.py BuiltinExecutor.get   8 0 0   100%
core/langgraph/runner.py BuiltinExecutor.execute   6 0 0   100%
core/langgraph/runner.py BuiltinExecutor._passthrough   1 0 0   100%
core/langgraph/runner.py BuiltinExecutor._call_bind   5 1 0   80%
core/langgraph/runner.py BuiltinExecutor._call_emit   26 4 0   85%
core/langgraph/runner.py _register_domain_builtins   12 8 0   33%
core/langgraph/runner.py _register_function_builtins   11 8 0   27%
core/langgraph/runner.py StepRunner.__init__   8 0 0   100%
core/langgraph/runner.py StepRunner.set_channel_routing   1 0 0   100%
core/langgraph/runner.py StepRunner._should_skip_llm   9 3 0   67%
core/langgraph/runner.py StepRunner._skip_llm_passthrough   8 2 0   75%
core/langgraph/runner.py StepRunner._declared_item_source   5 0 0   100%
core/langgraph/runner.py StepRunner._resolve_item_source   4 0 0   100%
core/langgraph/runner.py StepRunner._unresolvable_item_source_failure   2 0 0   100%
core/langgraph/runner.py StepRunner._empty_item_source_failure   2 0 0   100%
core/langgraph/runner.py StepRunner._parallel_fanout_items   13 0 0   100%
core/langgraph/runner.py StepRunner._parallel_fanout_item_list   7 0 0   100%
core/langgraph/runner.py StepRunner._foreach_item_list   14 0 0   100%
core/langgraph/runner.py StepRunner.ran_agent   6 1 0   83%
core/langgraph/runner.py StepRunner._make_ctx   5 0 0   100%
core/langgraph/runner.py StepRunner._read_state   7 0 0   100%
core/langgraph/runner.py StepRunner._run_body_step   5 0 0   100%
core/langgraph/runner.py StepRunner._stage_body_channel_writes   5 0 0   100%
core/langgraph/runner.py StepRunner._resolve_step_runtime   15 2 0   87%
core/langgraph/runner.py StepRunner._attach_communication_context   4 0 0   100%
core/langgraph/runner.py StepRunner._attach_resolved_tools   4 0 0   100%
core/langgraph/runner.py StepRunner._resolve_agent_tools   1 0 0   100%
core/langgraph/runner.py StepRunner._resolve_agent_tool   9 0 0   100%
core/langgraph/runner.py StepRunner._instruction_missing_failure   2 0 0   100%
core/langgraph/runner.py StepRunner._dummy_invoke   3 3 0   0%
core/langgraph/runner.py StepRunner._merge_errors   7 0 0   100%
core/langgraph/runner.py StepRunner._wrap_hard_failure_gate   2 0 0   100%
core/langgraph/runner.py StepRunner._wrap_hard_failure_gate.invoke_with_gate   4 0 0   100%
core/langgraph/runner.py StepRunner._is_hard_fail   6 1 0   83%
core/langgraph/runner.py StepRunner._raise_on_hard_error   15 1 0   93%
core/langgraph/runner.py StepRunner._raise_on_error_envelope   9 3 0   67%
core/langgraph/runner.py StepRunner._propagate_step_errors   14 0 0   100%
core/langgraph/runner.py StepRunner.resolve_agent   4 0 0   100%
core/langgraph/runner.py StepRunner.run_step   68 5 0   93%
core/langgraph/runner.py StepRunner._run_parallel_fanout   47 4 0   91%
core/langgraph/runner.py StepRunner._run_parallel_fanout.call_one   3 0 0   100%
core/langgraph/runner.py StepRunner._invoke_parallel_item   6 0 0   100%
core/langgraph/runner.py StepRunner._stage_fanout_channel_writes   6 0 0   100%
core/langgraph/runner.py StepRunner._run_foreach   16 0 0   100%
core/langgraph/runner.py StepRunner._body_item_result   3 0 0   100%
core/langgraph/runner.py StepRunner._body_item_passed   10 0 0   100%
core/langgraph/runner.py StepRunner._aggregate_body_results   2 0 0   100%
core/langgraph/runner.py StepRunner._run_foreach_sequential   50 2 0   96%
core/langgraph/runner.py StepRunner._merge_item_working_sets   7 2 0   71%
core/langgraph/runner.py StepRunner._run_foreach_concurrent   38 0 0   100%
core/langgraph/runner.py StepRunner._run_foreach_concurrent.run_item   44 0 0   100%
core/langgraph/runner.py StepRunner._run_while   62 1 0   98%
core/langgraph/runner.py StepRunner._run_spawn   25 2 0   92%
core/langgraph/runner.py StepRunner._run_native_spawn   31 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.child_gate   6 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.run_node   9 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.build_record   8 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.child_plan   4 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.director_node   8 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.worker_node   24 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.check_node   3 0 0   100%
core/langgraph/runner.py StepRunner._run_native_spawn.join_node   3 0 0   100%
core/langgraph/runner.py StepRunner._child_node_step   3 1 0   67%
core/langgraph/runner.py StepRunner._stage_spawn_channel_writes   5 0 0   100%
core/langgraph/runner.py StepRunner._spawn_children_from_result   9 2 0   78%
core/langgraph/runner.py StepRunner._spawn_has_input   10 4 0   60%
core/langgraph/runner.py StepRunner._spawn_is_soft_fail   7 0 0   100%
core/langgraph/runner.py _topological_order   7 0 0   100%
core/langgraph/runner.py _topological_order.visit   7 0 0   100%
core/langgraph/runner.py _group_dependencies   12 1 0   92%
core/langgraph/runner.py _reject_nested_routes   6 0 0   100%
core/langgraph/runner.py _build_route_plan   26 0 0   100%
core/langgraph/runner.py _make_route_router   2 0 0   100%
core/langgraph/runner.py _make_route_router.router   5 0 0   100%
core/langgraph/runner.py _wire_route_edges   5 0 0   100%
core/langgraph/runner.py _wire_dependency_edges   16 0 0   100%
core/langgraph/runner.py _scope_params_value   7 0 0   100%
core/langgraph/runner.py _scope_params   7 0 0   100%
core/langgraph/runner.py _collect_step_ids   9 0 0   100%
core/langgraph/runner.py _iter_steps   5 0 0   100%
core/langgraph/runner.py _collect_composed_step_ids   6 0 0   100%
core/langgraph/runner.py _referenced_names   14 0 0   100%
core/langgraph/runner.py _validate_function_purity   12 0 0   100%
core/langgraph/runner.py _reject_function_body_routes   3 0 0   100%
core/langgraph/runner.py _rewrite_call_deps   6 0 0   100%
core/langgraph/runner.py expand_calls   2 0 0   100%
core/langgraph/runner.py _CallComposer.__init__   7 0 0   100%
core/langgraph/runner.py _CallComposer.compose   5 0 0   100%
core/langgraph/runner.py _CallComposer._compose_step   10 0 0   100%
core/langgraph/runner.py _CallComposer._compose_subgraph_call   21 0 0   100%
core/langgraph/runner.py _CallComposer._compose_body   9 1 0   89%
core/langgraph/runner.py _CallComposer._check_call_guards   17 0 0   100%
core/langgraph/runner.py _validate_channel_entry   7 0 0   100%
core/langgraph/runner.py _validated_channels   7 0 0   100%
core/langgraph/runner.py _validate_step_channel_bindings   3 0 0   100%
core/langgraph/runner.py _validate_step_output_channel   7 0 0   100%
core/langgraph/runner.py _validate_step_input_channels   10 0 0   100%
core/langgraph/runner.py _validate_channel_names   9 0 0   100%
core/langgraph/runner.py _input_path_root   6 0 0   100%
core/langgraph/runner.py _iter_input_roots   10 0 0   100%
core/langgraph/runner.py _validate_channel_inputs   5 0 0   100%
core/langgraph/runner.py _flatten_channel_state   1 0 0   100%
core/langgraph/runner.py _strip_channel_keys   1 0 0   100%
core/langgraph/runner.py _envelope_content   3 1 0   67%
core/langgraph/runner.py _is_failure_envelope   5 0 0   100%
core/langgraph/runner.py _declared_output_channel_writes   8 1 0   88%
core/langgraph/runner.py _route_declared_channels   11 0 0   100%
core/langgraph/runner.py _make_step_node   5 0 0   100%
core/langgraph/runner.py _make_step_node.node_fn   1 0 0   100%
core/langgraph/runner.py _make_step_node.node_fn   10 0 0   100%
core/langgraph/runner.py _make_subgraph_node   7 0 0   100%
core/langgraph/runner.py _make_subgraph_node.node_fn   3 0 0   100%
core/langgraph/runner.py _make_subgraph_node.node_fn   4 0 0   100%
core/langgraph/runner.py _collect_parallel_channel_writes   10 0 0   100%
core/langgraph/runner.py _make_parallel_node   2 0 0   100%
core/langgraph/runner.py _make_parallel_node.node_fn   43 3 0   93%
core/langgraph/runner.py _make_parallel_node.node_fn.submit_branch   3 0 0   100%
core/langgraph/runner.py _map_reduce_worker_payload   1 0 0   100%
core/langgraph/runner.py _map_reduce_worker_output   2 0 0   100%
core/langgraph/runner.py _make_map_reduce_route_fn   2 0 0   100%
core/langgraph/runner.py _make_map_reduce_route_fn.route   8 1 0   88%
core/langgraph/runner.py _make_map_reduce_worker_fn   3 0 0   100%
core/langgraph/runner.py _make_map_reduce_worker_fn.worker   15 7 0   53%
core/langgraph/runner.py _fold_map_reduce_errors   6 1 0   83%
core/langgraph/runner.py _fold_map_reduce_side_channel   8 1 0   88%
core/langgraph/runner.py _fold_map_reduce_extras   10 0 0   100%
core/langgraph/runner.py _make_map_reduce_join_fn   3 0 0   100%
core/langgraph/runner.py _make_map_reduce_join_fn.join   21 0 0   100%
core/langgraph/runner.py _make_parallel_map_reduce_plan   3 0 0   100%
core/langgraph/runner.py _make_parallel_map_reduce_plan.run_item   2 0 0   100%
core/langgraph/runner.py _worker_committed_flat   3 1 0   67%
core/langgraph/runner.py _pending_channel_writes   3 0 0   100%
core/langgraph/runner.py _stage_map_reduce_item_channel_writes   5 1 0   80%
core/langgraph/runner.py _make_foreach_map_reduce_plan   7 0 0   100%
core/langgraph/runner.py _make_foreach_map_reduce_plan.result_assembler   3 0 0   100%
core/langgraph/runner.py _make_foreach_map_reduce_plan.run_item   14 0 0   100%
core/langgraph/runner.py _make_map_reduce_parts   6 0 0   100%
core/langgraph/runner.py _resolved_send_concurrency   1 0 0   100%
core/langgraph/runner.py _is_send_parallel_step   13 4 0   69%
core/langgraph/runner.py _is_send_foreach_step   17 3 0   82%
core/langgraph/runner.py _ChannelGraphShim.__init__   2 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.invoke   3 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.ainvoke   3 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.stream   1 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.astream   1 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.update_state   1 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.aupdate_state   1 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.get_state   1 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.aget_state   1 0 0   100%
core/langgraph/runner.py _ChannelGraphShim._reject_internal_shape   1 0 0   100%
core/langgraph/runner.py _ChannelGraphShim.__getattr__   1 0 0   100%
core/langgraph/runner.py GraphBuilder.__init__   10 0 0   100%
core/langgraph/runner.py GraphBuilder.build   23 2 0   91%
core/langgraph/runner.py GraphBuilder._compose_calls   3 0 0   100%
core/langgraph/runner.py GraphBuilder._compose_calls.assemble_subgraph   1 0 0   100%
core/langgraph/runner.py GraphBuilder._assemble_graph   70 0 0   100%
core/langgraph/runner.py _get_registry   5 0 0   100%
core/langgraph/runner.py build_workflow   7 0 0   100%
core/langgraph/runner.py (no function)   329 0 16   100%
core/langgraph/tools/__init__.py (no function)   4 0 0   100%
core/langgraph/tools/_paths.py is_within   1 0 0   100%
core/langgraph/tools/_paths.py (no function)   4 0 0   100%
core/langgraph/tools/_ticket_common.py _tool_content   6 0 0   100%
core/langgraph/tools/_ticket_common.py _hard_failure   3 0 2   100%
core/langgraph/tools/_ticket_common.py _require_env   4 0 0   100%
core/langgraph/tools/_ticket_common.py _repo_full_name   6 0 0   100%
core/langgraph/tools/_ticket_common.py _raise_for_http_status   2 0 0   100%
core/langgraph/tools/_ticket_common.py _response_json   4 0 0   100%
core/langgraph/tools/_ticket_common.py _json_list_response   4 1 0   75%
core/langgraph/tools/_ticket_common.py _typed_response   4 0 0   100%
core/langgraph/tools/_ticket_common.py _http_get   5 0 0   100%
core/langgraph/tools/_ticket_common.py _http_post   5 0 0   100%
core/langgraph/tools/_ticket_common.py _http_patch   5 0 0   100%
core/langgraph/tools/_ticket_common.py _require_pm_env   7 0 0   100%
core/langgraph/tools/_ticket_common.py _valid_tickets   6 0 0   100%
core/langgraph/tools/_ticket_common.py _fetch_open_pm_tickets   5 0 0   100%
core/langgraph/tools/_ticket_common.py _valid_dedupe_tickets   11 3 0   73%
core/langgraph/tools/_ticket_common.py _dedupe_skip   5 0 0   100%
core/langgraph/tools/_ticket_common.py TicketOutcome.__init__   4 0 0   100%
core/langgraph/tools/_ticket_common.py _submission_tool   3 0 2   100%
core/langgraph/tools/_ticket_common.py _decision_failure   1 0 0   100%
core/langgraph/tools/_ticket_common.py _submitted_decision   9 0 0   100%
core/langgraph/tools/_ticket_common.py _llm_json_decision   26 0 5   100%
core/langgraph/tools/_ticket_common.py _as_questions   5 0 0   100%
core/langgraph/tools/_ticket_common.py (no function)   29 0 0   100%
core/langgraph/tools/aggregate.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/aggregate.py _hard_failure   1 0 0   100%
core/langgraph/tools/aggregate.py _resolve_dot_path   8 0 2   100%
core/langgraph/tools/aggregate.py _aggregate_failure   1 0 0   100%
core/langgraph/tools/aggregate.py _results_param   7 0 0   100%
core/langgraph/tools/aggregate.py _operator   4 0 0   100%
core/langgraph/tools/aggregate.py _error_policy   4 1 0   75%
core/langgraph/tools/aggregate.py _dedupe_paths   15 1 0   93%
core/langgraph/tools/aggregate.py _resolve_item_key   12 2 0   83%
core/langgraph/tools/aggregate.py _field_key   2 0 0   100%
core/langgraph/tools/aggregate.py _field_key.key   8 0 0   100%
core/langgraph/tools/aggregate.py _pluck_items   3 0 0   100%
core/langgraph/tools/aggregate.py _collect_items   13 0 0   100%
core/langgraph/tools/aggregate.py _on_source_miss   2 0 0   100%
core/langgraph/tools/aggregate.py _drop_unresolved_keys   1 0 0   100%
core/langgraph/tools/aggregate.py _finalize_avg   3 0 0   100%
core/langgraph/tools/aggregate.py _fold_field   23 1 0   96%
core/langgraph/tools/aggregate.py aggregate   27 3 0   89%
core/langgraph/tools/aggregate.py _success_message   1 0 0   100%
core/langgraph/tools/aggregate.py _failure_message   1 0 0   100%
core/langgraph/tools/aggregate.py _AggregateTool.definition   1 0 0   100%
core/langgraph/tools/aggregate.py _AggregateTool.instruction   1 1 0   0%
core/langgraph/tools/aggregate.py _AggregateTool.params   1 1 0   0%
core/langgraph/tools/aggregate.py _AggregateTool.execute   8 0 0   100%
core/langgraph/tools/aggregate.py (no function)   43 0 4   100%
core/langgraph/tools/contract.py Tool.definition   0 0 1   100%
core/langgraph/tools/contract.py Tool.instruction   0 0 1   100%
core/langgraph/tools/contract.py Tool.params   0 0 1   100%
core/langgraph/tools/contract.py Tool.execute   0 0 1   100%
core/langgraph/tools/contract.py (no function)   26 0 5   100%
core/langgraph/tools/files_delete.py _FilesDeleteError.__init__   3 0 0   100%
core/langgraph/tools/files_delete.py FilesDeleteResult.as_tool_message   4 0 0   100%
core/langgraph/tools/files_delete.py _normalize_paths   5 0 0   100%
core/langgraph/tools/files_delete.py _resolve_delete_path   4 0 0   100%
core/langgraph/tools/files_delete.py _prepare_path   11 1 0   91%
core/langgraph/tools/files_delete.py _is_tracked   5 0 0   100%
core/langgraph/tools/files_delete.py git_rm   9 0 0   100%
core/langgraph/tools/files_delete.py _git_rm   3 1 0   67%
core/langgraph/tools/files_delete.py _unlink   4 2 0   50%
core/langgraph/tools/files_delete.py _delete_paths   10 0 0   100%
core/langgraph/tools/files_delete.py files_delete   5 0 0   100%
core/langgraph/tools/files_delete.py _FilesDeleteTool.definition   1 0 0   100%
core/langgraph/tools/files_delete.py _FilesDeleteTool.instruction   1 1 0   0%
core/langgraph/tools/files_delete.py _FilesDeleteTool.params   1 1 0   0%
core/langgraph/tools/files_delete.py _FilesDeleteTool.execute   8 0 0   100%
core/langgraph/tools/files_delete.py (no function)   40 0 2   100%
core/langgraph/tools/files_write.py FilesWriteResult.as_tool_message   4 0 0   100%
core/langgraph/tools/files_write.py _files_write_error   1 0 0   100%
core/langgraph/tools/files_write.py _normalize_entries   7 0 0   100%
core/langgraph/tools/files_write.py _write_validated_entries   5 0 0   100%
core/langgraph/tools/files_write.py files_write   8 0 0   100%
core/langgraph/tools/files_write.py _FilesWriteTool.definition   1 0 0   100%
core/langgraph/tools/files_write.py _FilesWriteTool.instruction   1 1 0   0%
core/langgraph/tools/files_write.py _FilesWriteTool.params   1 1 0   0%
core/langgraph/tools/files_write.py _FilesWriteTool.execute   8 0 0   100%
core/langgraph/tools/files_write.py (no function)   28 0 2   100%
core/langgraph/tools/git_checkout.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/git_checkout.py _hard_failure   1 0 0   100%
core/langgraph/tools/git_checkout.py _git_argv   1 0 0   100%
core/langgraph/tools/git_checkout.py _git_failure   3 0 0   100%
core/langgraph/tools/git_checkout.py _git_spawn_failure   1 0 0   100%
core/langgraph/tools/git_checkout.py _run_git   6 0 0   100%
core/langgraph/tools/git_checkout.py _capture_git   6 0 0   100%
core/langgraph/tools/git_checkout.py _reset_project_dir   10 2 0   80%
core/langgraph/tools/git_checkout.py _require_env   4 0 0   100%
core/langgraph/tools/git_checkout.py _resolve_default_branch   8 0 0   100%
core/langgraph/tools/git_checkout.py _ticket_branch   1 0 0   100%
core/langgraph/tools/git_checkout.py _remote_branch_exists   2 0 0   100%
core/langgraph/tools/git_checkout.py _join_pr_diff   4 0 0   100%
core/langgraph/tools/git_checkout.py _git_checkout   43 0 0   100%
core/langgraph/tools/git_checkout.py _state_patch   1 0 0   100%
core/langgraph/tools/git_checkout.py _success_message   1 0 0   100%
core/langgraph/tools/git_checkout.py _failure_message   1 0 0   100%
core/langgraph/tools/git_checkout.py _GitCheckoutTool.definition   1 0 0   100%
core/langgraph/tools/git_checkout.py _GitCheckoutTool.instruction   1 1 0   0%
core/langgraph/tools/git_checkout.py _GitCheckoutTool.params   1 1 0   0%
core/langgraph/tools/git_checkout.py _GitCheckoutTool.execute   6 0 0   100%
core/langgraph/tools/git_checkout.py (no function)   39 0 2   100%
core/langgraph/tools/github_pr_comment.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/github_pr_comment.py _require_env   4 0 0   100%
core/langgraph/tools/github_pr_comment.py _validate_findings   3 0 0   100%
core/langgraph/tools/github_pr_comment.py _is_success_status   1 0 0   100%
core/langgraph/tools/github_pr_comment.py _raise_for_http_status   2 0 0   100%
core/langgraph/tools/github_pr_comment.py _get_findings   6 1 0   83%
core/langgraph/tools/github_pr_comment.py _strip_wip_prefix   5 0 0   100%
core/langgraph/tools/github_pr_comment.py _wip_sync_failure_reason   9 0 0   100%
core/langgraph/tools/github_pr_comment.py github_pr_comment   47 0 0   100%
core/langgraph/tools/github_pr_comment.py _format_findings_as_markdown   13 1 0   92%
core/langgraph/tools/github_pr_comment.py _GitHubPrCommentTool.definition   1 0 0   100%
core/langgraph/tools/github_pr_comment.py _GitHubPrCommentTool.instruction   1 1 0   0%
core/langgraph/tools/github_pr_comment.py _GitHubPrCommentTool.params   1 1 0   0%
core/langgraph/tools/github_pr_comment.py _GitHubPrCommentTool.execute   10 0 0   100%
core/langgraph/tools/github_pr_comment.py (no function)   33 0 2   100%
core/langgraph/tools/list_dir.py ListDirResult.as_tool_message   4 0 0   100%
core/langgraph/tools/list_dir.py list_dir   34 8 0   76%
core/langgraph/tools/list_dir.py _ListDirTool.definition   1 0 0   100%
core/langgraph/tools/list_dir.py _ListDirTool.instruction   1 1 0   0%
core/langgraph/tools/list_dir.py _ListDirTool.params   1 1 0   0%
core/langgraph/tools/list_dir.py _ListDirTool.execute   4 1 0   75%
core/langgraph/tools/list_dir.py (no function)   31 0 0   100%
core/langgraph/tools/list_dir_entries.py _ListDirEntriesError.__init__   3 0 0   100%
core/langgraph/tools/list_dir_entries.py ListDirEntriesResult.as_tool_message   4 1 0   75%
core/langgraph/tools/list_dir_entries.py _entry_size   4 0 0   100%
core/langgraph/tools/list_dir_entries.py _resolve_root   1 0 0   100%
core/langgraph/tools/list_dir_entries.py _collect_entries   17 0 0   100%
core/langgraph/tools/list_dir_entries.py _list_dir_entries   8 1 0   88%
core/langgraph/tools/list_dir_entries.py list_dir_entries   4 0 0   100%
core/langgraph/tools/list_dir_entries.py _ListDirEntriesTool.definition   1 0 0   100%
core/langgraph/tools/list_dir_entries.py _ListDirEntriesTool.instruction   1 1 0   0%
core/langgraph/tools/list_dir_entries.py _ListDirEntriesTool.params   1 1 0   0%
core/langgraph/tools/list_dir_entries.py _ListDirEntriesTool.execute   5 1 0   80%
core/langgraph/tools/list_dir_entries.py (no function)   33 0 0   100%
core/langgraph/tools/question_block_form.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/question_block_form.py _hashable   3 1 0   67%
core/langgraph/tools/question_block_form.py _identity   6 2 0   67%
core/langgraph/tools/question_block_form.py _fmt_val   4 1 0   75%
core/langgraph/tools/question_block_form.py _collect_problems   25 0 0   100%
core/langgraph/tools/question_block_form.py question_block_form   6 0 0   100%
core/langgraph/tools/question_block_form.py _QuestionBlockFormTool.definition   1 0 0   100%
core/langgraph/tools/question_block_form.py _QuestionBlockFormTool.instruction   1 1 0   0%
core/langgraph/tools/question_block_form.py _QuestionBlockFormTool.params   1 1 0   0%
core/langgraph/tools/question_block_form.py _QuestionBlockFormTool.execute   10 0 0   100%
core/langgraph/tools/question_block_form.py (no function)   23 0 2   100%
core/langgraph/tools/read_file.py ReadFileResult.as_tool_message   4 0 0   100%
core/langgraph/tools/read_file.py read_file   39 10 0   74%
core/langgraph/tools/read_file.py _ReadFileTool.definition   1 0 0   100%
core/langgraph/tools/read_file.py _ReadFileTool.instruction   1 1 0   0%
core/langgraph/tools/read_file.py _ReadFileTool.params   1 1 0   0%
core/langgraph/tools/read_file.py _ReadFileTool.execute   4 1 0   75%
core/langgraph/tools/read_file.py (no function)   25 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.__init__   1 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.register   2 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.register_lazy   2 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.has   1 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.registered_names   1 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.resolve   1 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.definitions   1 0 0   100%
core/langgraph/tools/registry.py ToolRegistry.dispatch_map   1 0 0   100%
core/langgraph/tools/registry.py ToolRegistry._reject_duplicate   2 0 0   100%
core/langgraph/tools/registry.py ToolRegistry._resolve_one   7 0 0   100%
core/langgraph/tools/registry.py ToolRegistry._import_tool   8 0 0   100%
core/langgraph/tools/registry.py ToolRegistry._dispatcher   2 0 0   100%
core/langgraph/tools/registry.py ToolRegistry._dispatcher.dispatch   1 0 0   100%
core/langgraph/tools/registry.py (no function)   26 0 0   100%
core/langgraph/tools/resolver.py ToolCollisionError.__init__   2 0 0   100%
core/langgraph/tools/resolver.py build_platform_registry   4 0 0   100%
core/langgraph/tools/resolver.py ToolResolver.__init__   2 0 0   100%
core/langgraph/tools/resolver.py ToolResolver.resolve   1 0 0   100%
core/langgraph/tools/resolver.py ToolResolver._resolve_one   7 0 0   100%
core/langgraph/tools/resolver.py ToolResolver._is_collision   1 0 0   100%
core/langgraph/tools/resolver.py ToolResolver._has_step_function   1 0 0   100%
core/langgraph/tools/resolver.py _hard_failure   3 0 2   100%
core/langgraph/tools/resolver.py _StepFunctionTool.__init__   2 0 0   100%
core/langgraph/tools/resolver.py _StepFunctionTool.instruction   1 0 0   100%
core/langgraph/tools/resolver.py _StepFunctionTool.params   1 0 0   100%
core/langgraph/tools/resolver.py _StepFunctionTool.definition   1 0 0   100%
core/langgraph/tools/resolver.py _StepFunctionTool.execute   7 0 0   100%
core/langgraph/tools/resolver.py _params_schema   2 0 0   100%
core/langgraph/tools/resolver.py (no function)   25 0 0   100%
core/langgraph/tools/run_finalizer.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/run_finalizer.py _hard_failure   1 0 0   100%
core/langgraph/tools/run_finalizer.py run_finalizer   37 6 0   84%
core/langgraph/tools/run_finalizer.py run_finalizer._published_path   5 5 0   0%
core/langgraph/tools/run_finalizer.py _state_patch   5 0 0   100%
core/langgraph/tools/run_finalizer.py _content_envelope   6 0 0   100%
core/langgraph/tools/run_finalizer.py _failure_content   1 0 0   100%
core/langgraph/tools/run_finalizer.py _RunFinalizerTool.definition   1 0 0   100%
core/langgraph/tools/run_finalizer.py _RunFinalizerTool.instruction   1 1 0   0%
core/langgraph/tools/run_finalizer.py _RunFinalizerTool.params   1 1 0   0%
core/langgraph/tools/run_finalizer.py _RunFinalizerTool.execute   11 0 0   100%
core/langgraph/tools/run_finalizer.py (no function)   26 0 0   100%
core/langgraph/tools/submit_decision.py definition   1 0 0   100%
core/langgraph/tools/submit_decision.py submit_decision   1 0 0   100%
core/langgraph/tools/submit_decision.py _SubmitDecisionTool.definition   1 0 0   100%
core/langgraph/tools/submit_decision.py _SubmitDecisionTool.instruction   1 1 0   0%
core/langgraph/tools/submit_decision.py _SubmitDecisionTool.params   1 1 0   0%
core/langgraph/tools/submit_decision.py _SubmitDecisionTool.execute   4 0 2   100%
core/langgraph/tools/submit_decision.py (no function)   14 0 0   100%
core/langgraph/tools/ticket_approval.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/ticket_approval.py _approval_marker_text   4 0 0   100%
core/langgraph/tools/ticket_approval.py ticket_approval   21 0 0   100%
core/langgraph/tools/ticket_approval.py _TicketApprovalTool.definition   1 0 0   100%
core/langgraph/tools/ticket_approval.py _TicketApprovalTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_approval.py _TicketApprovalTool.params   1 1 0   0%
core/langgraph/tools/ticket_approval.py _TicketApprovalTool.execute   9 0 0   100%
core/langgraph/tools/ticket_approval.py (no function)   21 0 2   100%
core/langgraph/tools/ticket_context.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/ticket_context.py ticket_context   19 0 0   100%
core/langgraph/tools/ticket_context.py _TicketContextTool.definition   1 0 0   100%
core/langgraph/tools/ticket_context.py _TicketContextTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_context.py _TicketContextTool.params   1 1 0   0%
core/langgraph/tools/ticket_context.py _TicketContextTool.execute   8 0 0   100%
core/langgraph/tools/ticket_context.py (no function)   19 0 2   100%
core/langgraph/tools/ticket_create.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/ticket_create.py ticket_create   32 0 0   100%
core/langgraph/tools/ticket_create.py _TicketCreateTool.definition   1 0 0   100%
core/langgraph/tools/ticket_create.py _TicketCreateTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_create.py _TicketCreateTool.params   1 1 0   0%
core/langgraph/tools/ticket_create.py _TicketCreateTool.execute   10 0 0   100%
core/langgraph/tools/ticket_create.py (no function)   17 0 2   100%
core/langgraph/tools/ticket_dor.py _hard_failure_type   3 3 2   0%
core/langgraph/tools/ticket_dor.py ticket_dor   21 0 0   100%
core/langgraph/tools/ticket_dor.py _TicketDorTool.definition   1 0 0   100%
core/langgraph/tools/ticket_dor.py _TicketDorTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_dor.py _TicketDorTool.params   1 1 0   0%
core/langgraph/tools/ticket_dor.py _TicketDorTool.execute   8 2 0   75%
core/langgraph/tools/ticket_dor.py (no function)   20 0 2   100%
core/langgraph/tools/ticket_lane.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/ticket_lane.py ticket_lane   34 0 0   100%
core/langgraph/tools/ticket_lane.py _TicketLaneTool.definition   1 0 0   100%
core/langgraph/tools/ticket_lane.py _TicketLaneTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_lane.py _TicketLaneTool.params   1 1 0   0%
core/langgraph/tools/ticket_lane.py _TicketLaneTool.execute   9 0 0   100%
core/langgraph/tools/ticket_lane.py (no function)   18 0 2   100%
core/langgraph/tools/ticket_publish.py _git   6 0 0   100%
core/langgraph/tools/ticket_publish.py _git_commit_and_push   11 0 0   100%
core/langgraph/tools/ticket_publish.py _ensure_pr   42 3 0   93%
core/langgraph/tools/ticket_publish.py _ensure_pr._find   5 0 0   100%
core/langgraph/tools/ticket_publish.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/ticket_publish.py ticket_publish   23 0 0   100%
core/langgraph/tools/ticket_publish.py _TicketPublishTool.definition   1 0 0   100%
core/langgraph/tools/ticket_publish.py _TicketPublishTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_publish.py _TicketPublishTool.params   1 1 0   0%
core/langgraph/tools/ticket_publish.py _TicketPublishTool.execute   12 0 0   100%
core/langgraph/tools/ticket_publish.py (no function)   25 0 2   100%
core/langgraph/tools/ticket_publisher.py _ensure_ticket_date   7 2 0   71%
core/langgraph/tools/ticket_publisher.py _ensure_ticket_origin   7 2 0   71%
core/langgraph/tools/ticket_publisher.py _slug_from_text   3 0 0   100%
core/langgraph/tools/ticket_publisher.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/ticket_publisher.py _hard_failure   1 0 0   100%
core/langgraph/tools/ticket_publisher.py ticket_publisher   39 6 0   85%
core/langgraph/tools/ticket_publisher.py _content_envelope   6 0 0   100%
core/langgraph/tools/ticket_publisher.py _failure_content   1 1 0   0%
core/langgraph/tools/ticket_publisher.py _TicketPublisherTool.definition   1 0 0   100%
core/langgraph/tools/ticket_publisher.py _TicketPublisherTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_publisher.py _TicketPublisherTool.params   1 1 0   0%
core/langgraph/tools/ticket_publisher.py _TicketPublisherTool.execute   12 2 0   83%
core/langgraph/tools/ticket_publisher.py (no function)   30 0 0   100%
core/langgraph/tools/ticket_review.py _hard_failure_type   3 3 2   0%
core/langgraph/tools/ticket_review.py _pr_number_from_url   4 0 0   100%
core/langgraph/tools/ticket_review.py _pr_head_sha   5 0 0   100%
core/langgraph/tools/ticket_review.py _newest_head_review   5 0 0   100%
core/langgraph/tools/ticket_review.py _wait_for_head_review   21 0 0   100%
core/langgraph/tools/ticket_review.py ticket_review   37 3 0   92%
core/langgraph/tools/ticket_review.py _TicketReviewTool.definition   1 0 0   100%
core/langgraph/tools/ticket_review.py _TicketReviewTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_review.py _TicketReviewTool.params   1 1 0   0%
core/langgraph/tools/ticket_review.py _TicketReviewTool.execute   10 2 0   80%
core/langgraph/tools/ticket_review.py (no function)   24 0 2   100%
core/langgraph/tools/ticket_search.py _hard_failure_type   3 0 2   100%
core/langgraph/tools/ticket_search.py ticket_search   6 0 0   100%
core/langgraph/tools/ticket_search.py _TicketSearchTool.definition   1 0 0   100%
core/langgraph/tools/ticket_search.py _TicketSearchTool.instruction   1 1 0   0%
core/langgraph/tools/ticket_search.py _TicketSearchTool.params   1 1 0   0%
core/langgraph/tools/ticket_search.py _TicketSearchTool.execute   8 0 0   100%
core/langgraph/tools/ticket_search.py (no function)   17 0 2   100%
Total     5768 444 184   92%

No items found using the specified filter.