Julep — durable, composable AI agents. Flows that crash and resume, retry safely, and explain every step.
This report presents the forensic synthetic code analysis of julep-ai/julep, a Python project with 6,598 GitHub stars. SynthScan v2.0 examined 131,922 lines of code across 502 source files, recording 2821 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 21.8 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2821 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_require_tool_call.py | 19 | def test_require_tool_call_reasks_after_text_then_accepts_tool_call() -> None: | CODE |
| LOW | tests/test_require_tool_call.py | 57 | def test_require_tool_call_halts_after_two_reasks() -> None: | CODE |
| LOW | tests/test_require_tool_call.py | 85 | def test_require_tool_call_allows_finish_after_successful_tool_call() -> None: | CODE |
| LOW | tests/test_require_tool_call.py | 113 | def test_require_tool_call_does_not_suppress_escalate() -> None: | CODE |
| LOW | tests/test_require_tool_call.py | 134 | def test_agent_facade_require_tool_call_max_rounds_with_tool_call_is_success() -> None: | CODE |
| LOW | tests/test_require_tool_call.py | 166 | def test_agent_facade_without_require_tool_call_keeps_max_rounds_failure() -> None: | CODE |
| LOW | tests/test_require_tool_call.py | 187 | def test_require_tool_call_absent_preserves_text_finish_behavior() -> None: | CODE |
| LOW | tests/test_require_tool_call.py | 208 | def test_agent_config_require_tool_call_json_round_trips() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 43 | def test_episode_summary_loads_canonical_model_and_split() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 58 | def test_episode_summary_env_overrides_model() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 72 | def test_execute_require_tool_call_and_yglu_max_rounds() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 85 | def test_cluster_label_response_format_and_bare_hash_header() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 108 | def test_anchor_choose_single_file_frontmatter_and_defaults() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 126 | def test_prompt_loading_never_executes_eval() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 137 | def test_load_ctx_evals_episode_summary_module() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 157 | def test_load_ctx_evals_execute_eval_yaml() -> None: | CODE |
| LOW | tests/test_memmcp_compat.py | 177 | def test_sibling_repo_prompts_all_load() -> None: | CODE |
| LOW | tests/test_e2e_temporal_session.py | 109 | def _make_timeout_session_flow(): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 114 | def _make_nonfatal_session_flow(): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 159 | def _expected_echo_event_contract(reason="done"): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 171 | async def _collect_two_turn_contract(handle): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 347 | async def _carrier_survives_continue_as_new(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 422 | async def _recv_timeout_keeps_session_alive(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 576 | async def _facade_ack_lags_delivery(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 631 | async def _facade_event_contract_matches_local(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 657 | async def _facade_close_flushes_in_flight_turn(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 687 | async def _facade_close_returns_after_quiescence(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 713 | async def _facade_events_single_consumer(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 732 | async def _facade_output_capacity_progresses_with_event_ack(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 777 | async def _facade_carried_event_log_is_deterministic(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 840 | async def _facade_nonfatal_turn_error_books_and_proceeds(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 882 | async def _facade_fatal_turn_error_appends_closed(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 918 | def test_session_rehydrate_restamps_pre_rehydrate_pending_items(): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 960 | async def _facade_max_calls_denies_second_turn(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 1004 | async def _facade_budget_closes_over_budget(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 1038 | async def _facade_ungranted_tool_denied_at_open(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 1117 | async def _flowworkflow_rejects_loop(env): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 1150 | async def _flowworkflow_rejects_nested_loop(env): | CODE |
| LOW | tests/test_register_pure_from_source.py | 23 | def test_register_pure_from_source_round_trip() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 34 | def test_register_pure_from_source_keeps_shipped_text_inspectable() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 48 | def test_register_pure_from_source_same_source_is_noop() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 58 | def test_equal_hash_baked_pure_is_promoted_to_wasm_not_left_native() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 93 | def test_register_pure_from_source_collision_names_both_hashes_and_keeps_original() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 110 | def test_plain_exec_register_pure_uses_wrong_qualname_fallback_but_source_api_does_not() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 132 | def test_default_registry_register_pure_from_source_shim_forwards() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 145 | def test_register_pure_from_source_decorator_name_mismatch_errors_clearly() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 155 | def test_register_pure_from_source_failure_restores_pures_in_place() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 174 | def test_register_pure_from_source_newline_less_source_errors_clearly() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 182 | def test_baked_pure_is_native_tier_and_get_pure_returns_native_fn() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 196 | def test_registry_executor_of_reports_source_tiers_and_unknowns() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 219 | def test_temporal_env_blocks_native_venv_pures_but_allows_wasm_lookup() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 265 | def test_register_pure_from_source_does_not_exec_module_level_code_on_host() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 303 | def test_from_source_pure_is_wasm_tier_and_get_pure_returns_wasm_callable() -> None: | CODE |
| LOW | tests/test_register_pure_from_source.py | 321 | def test_from_source_wasm_callable_matches_native_with_kwargs() -> None: | CODE |
| LOW | tests/test_ca_version.py | 8 | def test_version_matches_package() -> None: | CODE |
| LOW | tests/test_effects_extraction.py | 14 | def test_effects_importable_without_temporalio(): | CODE |
| LOW | tests/test_effects_extraction.py | 32 | def test_run_call_effect_routes_mcp(): | CODE |
| LOW | tests/test_effects_extraction.py | 53 | def test_toolref_json_roundtrip(): | CODE |
| LOW | tests/test_effects_extraction.py | 60 | def test_worker_context_defaults_to_default_resolve_qos(): | CODE |
| LOW | tests/test_effects_extraction.py | 89 | def test_resolve_qos_activity_clamps_non_batchable_batch_request(): | CODE |
| 1885 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tooling/eks-cad-demo/publish.py | 19 | CODE | |
| LOW | tooling/k3d-flow-demo/flow_worker.py | 10 | CODE | |
| LOW | tooling/k3d-flow-demo/drive_flow.py | 12 | CODE | |
| LOW | tooling/k3d-llm-demo/drive_llm.py | 8 | CODE | |
| LOW | tooling/k3d-llm-demo/llm_weather_agent.py | 20 | CODE | |
| LOW | tooling/k3d-llm-demo/session_demo_worker.py | 15 | CODE | |
| LOW | tooling/k3d-llm-demo/session_demo_worker.py | 23 | CODE | |
| LOW | tooling/k3d-cad-demo/drive.py | 12 | CODE | |
| LOW | tooling/k3d-cad-demo/publish.py | 14 | CODE | |
| LOW | tests/test_require_tool_call.py | 1 | CODE | |
| LOW | tests/test_memmcp_compat.py | 16 | CODE | |
| LOW | tests/test_e2e_temporal_session.py | 12 | CODE | |
| LOW | tests/test_register_pure_from_source.py | 1 | CODE | |
| LOW | tests/test_effects_extraction.py | 2 | CODE | |
| LOW | tests/test_projection.py | 3 | CODE | |
| LOW | tests/test_session_activities.py | 16 | CODE | |
| LOW | tests/test_e2e_temporal.py | 11 | CODE | |
| LOW | tests/test_coalesce.py | 1 | CODE | |
| LOW | tests/test_e2e_dbos_agent.py | 8 | CODE | |
| LOW | tests/test_phase3_acceptance.py | 16 | CODE | |
| LOW | tests/conftest.py | 7 | CODE | |
| LOW | tests/test_env_builder.py | 1 | CODE | |
| LOW | tests/test_agent_controller_provider_fields.py | 1 | CODE | |
| LOW | tests/test_dotctx_rich.py | 9 | CODE | |
| LOW | tests/test_run_principal.py | 8 | CODE | |
| LOW | tests/test_gc.py | 1 | CODE | |
| LOW | tests/test_executor_selection_policy.py | 19 | CODE | |
| LOW | tests/test_transcript_native_tools.py | 3 | CODE | |
| LOW | tests/test_batch_provider.py | 1 | CODE | |
| LOW | tests/test_trajectory_determinism.py | 7 | CODE | |
| LOW | tests/test_cma_session.py | 3 | CODE | |
| LOW | tests/test_delay.py | 2 | CODE | |
| LOW | tests/test_blobstore.py | 7 | CODE | |
| LOW | tests/test_resilient_llm.py | 7 | CODE | |
| LOW | tests/test_llm.py | 8 | CODE | |
| LOW | tests/test_dbos_api_spike.py | 22 | CODE | |
| LOW | tests/test_deploy_derive.py | 1 | CODE | |
| LOW | tests/test_trajectory_stitch.py | 22 | CODE | |
| LOW | tests/test_env_cache.py | 1 | CODE | |
| LOW | tests/test_resilience.py | 3 | CODE | |
| LOW | tests/test_each.py | 4 | CODE | |
| LOW | tests/test_worker_activity_registration.py | 13 | CODE | |
| LOW | tests/test_dotctx_evals.py | 11 | CODE | |
| LOW | tests/test_define_acceptance.py | 1 | CODE | |
| LOW | tests/test_pure_objects.py | 1 | CODE | |
| LOW | tests/test_agent_manifest_helpers.py | 5 | CODE | |
| LOW | tests/test_cma.py | 3 | CODE | |
| LOW | tests/test_bundle_worker.py | 1 | CODE | |
| LOW | tests/test_worker_store.py | 1 | CODE | |
| LOW | tests/test_bundle_dep_pure_e2e.py | 1 | CODE | |
| LOW | tests/test_dbos_pure.py | 3 | CODE | |
| LOW | tests/test_interpreter_session.py | 3 | CODE | |
| LOW | tests/test_p2_spike_cluster.py | 1 | CODE | |
| LOW | tests/test_native_venv_runtime.py | 1 | CODE | |
| LOW | tests/test_core.py | 3 | CODE | |
| LOW | tests/test_codec.py | 11 | CODE | |
| LOW | tests/test_dbos_trace_refs.py | 1 | CODE | |
| LOW | tests/test_session_sugar.py | 3 | CODE | |
| LOW | tests/test_agent_and_deploy.py | 3 | CODE | |
| LOW | tests/test_tool_error_observation.py | 1 | CODE | |
| 457 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_memmcp_compat.py | 196 | except Exception as exc: | CODE |
| MEDIUM | tests/test_e2e_temporal_session.py | 376 | def _parked_on_recv(): | CODE |
| MEDIUM | tests/test_e2e_temporal_session.py | 395 | def _all_done(): | CODE |
| LOW | tests/test_e2e_temporal_session.py | 379 | except Exception: | CODE |
| LOW | tests/test_e2e_temporal_session.py | 398 | except Exception: | CODE |
| LOW | tests/test_e2e_temporal_session.py | 507 | except Exception as exc: # pragma: no cover - update rejection class varies | CODE |
| LOW | tests/ca/test_schedule.py | 484 | except Exception as exc: # noqa: BLE001 - local Temporal binary may be unavailable | CODE |
| LOW | docs/plans/2026-06-29-ws1-ca-pure-registry-fix.md | 162 | except Exception as exc: # noqa: BLE001 - surface runtime errors in the outcome. | CODE |
| LOW | docs/plans/2026-06-29-ws1-ca-pure-registry-fix.md | 469 | except Exception as exc: # noqa: BLE001 - serialize run failure for the parent. | STRING |
| LOW | docs/plans/2026-06-07-agent-loop-as-turn.md | 423 | except Exception as exc: # noqa: BLE001 — re-raised after attempts | CODE |
| LOW | …/2026-07-01-mem-mcp-adoption-phase1-llm-prompt-core.md | 520 | except Exception as exc: | CODE |
| LOW | …/2026-07-01-mem-mcp-adoption-phase1-llm-prompt-core.md | 666 | except Exception as exc: | CODE |
| LOW | docs/plans/2026-07-04-ca-eval-memmcp-parity.md | 363 | except Exception as exc: # noqa: BLE001 - user eval.py score() code -> setup error (exit 4) | STRING |
| LOW | docs/plans/2026-07-04-ca-eval-memmcp-parity.md | 508 | except Exception as exc: # noqa: BLE001 - user eval.py sample() code -> setup error (exit 4) | STRING |
| LOW | docs/superpowers/plans/2026-06-23-ca-cli-v1.md | 615 | except Exception: # noqa: BLE001 — a bad module shouldn't kill resolution of others | STRING |
| LOW | docs/superpowers/plans/2026-06-23-ca-cli-v1.md | 1274 | except Exception as exc: # noqa: BLE001 — surface runtime errors as outcome, not crash | STRING |
| LOW | spikes/wasm_pure/src/executor_component.py | 28 | except Exception as exc: | CODE |
| LOW | spikes/langfuse_otlp/spike.py | 125 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | examples/multi_provider_agent.py | 130 | except Exception as exc: # noqa: BLE001 - a demo: one provider's failure shouldn't hide the rest | CODE |
| LOW | julep/turn.py | 264 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | julep/turn.py | 327 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | julep/turn.py | 347 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | julep/turn.py | 377 | except Exception as exc: # noqa: BLE001 — re-raised after attempts | CODE |
| LOW | julep/dsl.py | 69 | except Exception: | CODE |
| LOW | julep/session.py | 39 | except Exception: | CODE |
| LOW | julep/session.py | 1047 | except Exception as exc: | CODE |
| LOW | julep/session.py | 1067 | except Exception as exc: | CODE |
| LOW | julep/trajectory.py | 84 | except Exception: | CODE |
| LOW | julep/trajectory.py | 125 | except Exception: | CODE |
| LOW | julep/trajectory.py | 716 | except Exception as exc: | CODE |
| LOW | julep/dotctx.py | 100 | except Exception as exc: | CODE |
| LOW | julep/worker_store.py | 432 | except Exception as e: | CODE |
| LOW | julep/agent.py | 183 | except Exception: | CODE |
| LOW | julep/cas.py | 142 | except Exception as e: | CODE |
| LOW | julep/cas.py | 161 | except Exception as e: | CODE |
| LOW | julep/dotctx_evals.py | 366 | except Exception as e: | CODE |
| LOW | julep/ca/evalrun.py | 377 | except Exception as exc: # noqa: BLE001 - mirror the loop's observation wrapping | CODE |
| LOW | julep/ca/evalrun.py | 478 | except Exception as exc: # noqa: BLE001 - user eval.py sample() code -> setup error (exit 4) | CODE |
| LOW | julep/ca/evalrun.py | 523 | except Exception as exc: # noqa: BLE001 - user eval.py score() code -> setup error (exit 4) | CODE |
| LOW | julep/ca/_resolve_child.py | 77 | except Exception as exc: # noqa: BLE001 - capture so we can surface it below. | CODE |
| LOW | julep/ca/_resolve_child.py | 216 | except Exception as exc: # noqa: BLE001 - serialize child failures for the parent. | CODE |
| LOW | julep/ca/_resolve_child.py | 259 | except Exception as exc: # noqa: BLE001 - serialize run failure for the parent. | CODE |
| LOW | julep/ca/chat.py | 92 | except Exception as exc: # noqa: BLE001 - keep CLI porcelain traceback-free. | CODE |
| LOW | julep/ca/cli.py | 153 | except Exception as exc: # noqa: BLE001 - malformed project config is loud, never silent | CODE |
| LOW | julep/ca/cli.py | 492 | except Exception: # noqa: BLE001 - older Typer reuses the real click package | CODE |
| LOW | julep/ca/listen.py | 113 | except Exception as exc: # noqa: BLE001 - keep CLI porcelain traceback-free. | CODE |
| LOW | julep/ca/trigger.py | 74 | except Exception as exc: # noqa: BLE001 - keep CLI porcelain traceback-free. | CODE |
| LOW | julep/execution/cma.py | 191 | except Exception: | CODE |
| LOW | julep/execution/cma.py | 256 | except Exception as exc: | CODE |
| LOW | julep/execution/effects.py | 558 | except Exception as exc: | CODE |
| LOW | julep/execution/effects.py | 650 | except Exception as exc: | CODE |
| LOW | julep/execution/effects.py | 855 | except Exception: | CODE |
| LOW | julep/execution/effects.py | 1023 | except Exception as exc: | CODE |
| MEDIUM | julep/execution/harness.py | 280 | def _bundle_ref_child_input_enabled() -> bool: | CODE |
| MEDIUM | julep/execution/harness.py | 288 | def _bundle_aware_verify_pures_enabled() -> bool: | CODE |
| MEDIUM | julep/execution/harness.py | 295 | def _bundle_bound_verify_pures_enabled() -> bool: | CODE |
| LOW⚡ | julep/execution/harness.py | 273 | except Exception as exc: | CODE |
| LOW⚡ | julep/execution/harness.py | 283 | except Exception: | CODE |
| LOW⚡ | julep/execution/harness.py | 291 | except Exception: | CODE |
| LOW⚡ | julep/execution/harness.py | 298 | except Exception: | CODE |
| 46 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tooling/k3d-llm-demo/llm_weather_agent.py | 0 | get the current weather for a city (celsius + conditions). | STRING |
| HIGH | examples/multi_provider_agent.py | 0 | get the current weather for a city (celsius + conditions). | STRING |
| HIGH | examples/cma_managed_agent.py | 0 | get the current weather for a city (celsius + conditions). | STRING |
| HIGH | tests/test_run_principal.py | 0 | raised by the fake continue_as_new to capture the next segment's input. | STRING |
| HIGH | tests/test_trajectory_stitch.py | 0 | raised by the fake continue_as_new to capture the next segment's input. | STRING |
| HIGH | tests/test_transcripts.py | 0 | raised by the fake continue_as_new to capture the next segment's input. | STRING |
| HIGH | tests/test_llm.py | 0 | an ``acompletion`` stand-in that records kwargs and replays a script. | STRING |
| HIGH | tests/test_llm_native_tools.py | 0 | an ``acompletion`` stand-in that records kwargs and replays a script. | STRING |
| HIGH | tests/test_llm_prompt_cache.py | 0 | an ``acompletion`` stand-in that records kwargs and replays a script. | STRING |
| HIGH | tests/ca/conftest.py | 0 | from composable_agents import flow, think, tool, agent @tool(effect="read", idempotent=true) def lookup(ticket: str) -> | STRING |
| HIGH | tests/ca/test_status.py | 0 | from composable_agents import flow, think, tool, agent @tool(effect="read", idempotent=true) def lookup(ticket: str) -> | STRING |
| HIGH | tests/ca/test_deploy_cmd.py | 0 | from composable_agents import flow, think, tool, agent @tool(effect="read", idempotent=true) def lookup(ticket: str) -> | STRING |
| HIGH | docs/superpowers/plans/2026-06-23-ca-cli-v1.md | 0 | from composable_agents import flow, think, tool, agent @tool(effect="read", idempotent=true) def lookup(ticket: str) -> | STRING |
| HIGH | docs/plans/2026-06-29-ws1-ca-pure-registry-fix.md | 0 | import the user's module in a subprocess and return the agent's serialized ir. | STRING |
| HIGH | docs/superpowers/plans/2026-06-23-ca-cli-v1.md | 0 | import the user's module in a subprocess and return the agent's serialized ir. | STRING |
| HIGH | julep/ca/resolve.py | 0 | import the user's module in a subprocess and return the agent's serialized ir. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spikes/flow_spike/core.py | 158 | CODE | |
| LOW | examples/grade_scores_flow.py | 40 | CODE | |
| LOW | julep/bundle.py | 183 | CODE | |
| LOW | julep/deps.py | 42 | CODE | |
| LOW | julep/deploy.py | 469 | CODE | |
| LOW | julep/define.py | 1369 | CODE | |
| LOW | julep/define.py | 173 | CODE | |
| LOW | julep/define.py | 273 | CODE | |
| LOW | julep/gc.py | 252 | CODE | |
| LOW | julep/dotctx_rich.py | 602 | CODE | |
| LOW | julep/dotctx_rich.py | 724 | CODE | |
| LOW | julep/dotctx_rich.py | 930 | CODE | |
| LOW | julep/dag.py | 291 | CODE | |
| LOW | julep/dag.py | 528 | CODE | |
| LOW | julep/dag.py | 742 | CODE | |
| LOW | julep/dag.py | 837 | CODE | |
| LOW | julep/session.py | 688 | CODE | |
| LOW | julep/session.py | 1022 | CODE | |
| LOW | julep/std.py | 83 | CODE | |
| LOW | julep/dotctx.py | 97 | CODE | |
| LOW | julep/flow_adapters.py | 61 | CODE | |
| LOW | julep/validate.py | 160 | CODE | |
| LOW | julep/validate.py | 306 | CODE | |
| LOW | julep/validate.py | 649 | CODE | |
| LOW | julep/validate.py | 768 | CODE | |
| LOW | julep/validate.py | 816 | CODE | |
| LOW | julep/cli.py | 275 | CODE | |
| LOW | julep/capabilities.py | 431 | CODE | |
| LOW | julep/capabilities.py | 232 | CODE | |
| LOW | julep/capabilities.py | 454 | CODE | |
| LOW | julep/agent.py | 451 | CODE | |
| LOW | julep/derived.py | 251 | CODE | |
| LOW | julep/ca/discover.py | 19 | CODE | |
| LOW | julep/ca/trigger.py | 16 | CODE | |
| LOW | julep/execution/cma.py | 156 | CODE | |
| LOW | julep/execution/effects.py | 1111 | CODE | |
| LOW | julep/execution/harness.py | 1382 | CODE | |
| LOW | julep/execution/harness.py | 1765 | CODE | |
| LOW | julep/execution/harness.py | 1986 | CODE | |
| LOW | julep/execution/harness.py | 2895 | CODE | |
| LOW | julep/execution/harness.py | 2900 | CODE | |
| LOW | julep/execution/openai_responses.py | 107 | CODE | |
| LOW | julep/execution/openai_responses.py | 220 | CODE | |
| LOW | julep/execution/env_builder.py | 136 | CODE | |
| LOW | julep/execution/cma_session.py | 111 | CODE | |
| LOW | julep/execution/serve.py | 234 | CODE | |
| LOW | julep/execution/llm.py | 197 | CODE | |
| LOW | julep/execution/llm.py | 372 | CODE | |
| LOW | julep/execution/llm.py | 485 | CODE | |
| LOW | julep/execution/llm.py | 833 | CODE | |
| LOW | julep/execution/llm.py | 529 | CODE | |
| LOW | julep/execution/llm.py | 875 | CODE | |
| LOW | julep/execution/interpreter.py | 354 | CODE | |
| LOW | julep/execution/interpreter.py | 613 | CODE | |
| LOW | julep/execution/reasoner_batch.py | 306 | CODE | |
| LOW | julep/execution/cma_anthropic.py | 52 | CODE | |
| LOW | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 377 | CODE | |
| LOW | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 449 | CODE | |
| LOW | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 674 | CODE | |
| LOW | …execution/_wasm/wasi_wheels/regex/regex/_regex_core.py | 427 | CODE | |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_dbos_api_spike.py | 18 | # - Runtime harness correction: DBOS async methods set the current event loop's | COMMENT |
| MEDIUM⚡ | tests/test_dotctx_evals.py | 208 | # Recursive .output wrapper (eval harness result objects) | STRING |
| MEDIUM | tests/test_transcripts.py | 549 | # Temporal harness: plan in workflow code, summary across continue-as-new. | COMMENT |
| MEDIUM | tests/test_trajectory_capture.py | 84 | # robust to context wiring and so teardown can disable capture cleanly. | COMMENT |
| MEDIUM⚡ | tests/test_trajectory_capture.py | 370 | # An effect input carrying no run identity (the legacy/harness path that only | COMMENT |
| MEDIUM | tests/ca/test_queue_lanes.py | 22 | # execution.harness imports temporalio at module level; the CI temporal=off | COMMENT |
| MEDIUM | julep/agent_loop.py | 216 | # §6 seam: after this many rounds, the durable harness calls continue_as_new | COMMENT |
| MEDIUM | julep/agent_loop.py | 448 | # Budget + continue-as-new policy (pure predicates the harness consults). | COMMENT |
| MEDIUM⚡ | julep/ir.py | 26 | # Reserved native tool: the harness turns a call to this into a human signal-wait | COMMENT |
| MEDIUM⚡ | julep/ir.py | 30 | # Reserved native tool: the harness turns a call to this into a durable timer | COMMENT |
| MEDIUM⚡ | julep/ir.py | 35 | # Reserved native tool: the harness turns a call to this into a blocking channel receive | COMMENT |
| MEDIUM⚡ | julep/ir.py | 39 | # Reserved native tool: the harness turns a call to this into a durable, seq'd output append | COMMENT |
| MEDIUM | julep/projection.py | 257 | # Emitter: the thin API the interceptor / harness calls. | COMMENT |
| MEDIUM | julep/ca/evalrun.py | 110 | # extract_llm_content). The terminal harness dict nests the final reply | COMMENT |
| MEDIUM | julep/execution/dbos_backend.py | 561 | # (harness._TemporalEnv.run_agent): node config supplies budget/rounds | COMMENT |
| MEDIUM | julep/execution/dbos_backend.py | 932 | # §6 seam, POST-action exactly like the Temporal harness: a top-of-loop | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_define_acceptance.py | 198 | CODE | |
| LOW | tests/test_define_acceptance.py | 203 | CODE | |
| LOW | tests/test_define_acceptance.py | 273 | CODE | |
| LOW | tests/test_define_frontend.py | 247 | CODE | |
| LOW | tests/test_define_frontend.py | 297 | CODE | |
| LOW | tests/test_define_frontend.py | 349 | CODE | |
| LOW | tests/test_define_frontend.py | 826 | CODE | |
| LOW | tests/test_define_frontend.py | 971 | CODE | |
| LOW | tests/test_define_frontend.py | 976 | CODE | |
| LOW | tests/test_define_frontend.py | 981 | CODE | |
| LOW | tests/test_define_frontend.py | 996 | CODE | |
| LOW | tests/test_define_frontend.py | 1001 | CODE | |
| LOW | tests/test_define_frontend.py | 1011 | CODE | |
| LOW | tests/test_define_frontend.py | 1016 | CODE | |
| LOW | tests/test_define_frontend.py | 1139 | CODE | |
| LOW | tests/test_define_frontend.py | 1144 | CODE | |
| LOW | tests/test_define_frontend.py | 1149 | CODE | |
| LOW | tests/test_define_frontend.py | 1154 | CODE | |
| LOW | tests/test_define_frontend.py | 1176 | CODE | |
| LOW | tests/test_define_frontend.py | 1196 | CODE | |
| LOW | tests/test_define_frontend.py | 1237 | CODE | |
| LOW | tests/test_define_frontend.py | 1257 | CODE | |
| LOW | tests/test_define_frontend.py | 1318 | CODE | |
| LOW | tests/test_define_frontend.py | 1433 | CODE | |
| LOW | tests/test_define_frontend.py | 1456 | CODE | |
| LOW | tests/test_define_frontend.py | 1600 | CODE | |
| LOW | tests/test_define_frontend.py | 1622 | CODE | |
| LOW | tests/test_define_frontend.py | 1630 | CODE | |
| LOW | tests/test_define_frontend.py | 1655 | CODE | |
| LOW | tests/test_define_frontend.py | 1663 | CODE | |
| LOW | tests/test_define_frontend.py | 1687 | CODE | |
| LOW | tests/test_define_frontend.py | 1719 | CODE | |
| LOW | tests/test_define_frontend.py | 1757 | CODE | |
| LOW | tests/test_define_frontend.py | 1782 | CODE | |
| LOW | tests/test_define_frontend.py | 1806 | CODE | |
| LOW | tests/test_define_frontend.py | 1827 | CODE | |
| LOW | tests/test_define_frontend.py | 1832 | CODE | |
| LOW | tests/test_define_frontend.py | 1856 | CODE | |
| LOW | tests/test_define_frontend.py | 1881 | CODE | |
| LOW | tests/test_define_frontend.py | 1896 | CODE | |
| LOW | tests/test_define_frontend.py | 578 | CODE | |
| LOW | tests/test_define_frontend.py | 713 | CODE | |
| LOW | tests/test_define_frontend.py | 800 | CODE | |
| LOW | tests/test_define_frontend.py | 1048 | CODE | |
| LOW | tests/test_define_frontend.py | 1189 | CODE | |
| LOW | tests/test_define_frontend.py | 1209 | CODE | |
| LOW | tests/test_define_frontend.py | 1250 | CODE | |
| LOW | tests/test_define_frontend.py | 1270 | CODE | |
| LOW | tests/test_define_frontend.py | 1306 | CODE | |
| LOW | tests/test_define_frontend.py | 1331 | CODE | |
| LOW | tests/test_define_frontend.py | 1351 | CODE | |
| LOW | tests/test_define_frontend.py | 1446 | CODE | |
| LOW | tests/test_define_frontend.py | 1469 | CODE | |
| LOW | tests/test_define_frontend.py | 1799 | CODE | |
| LOW | tests/test_define_frontend.py | 1820 | CODE | |
| LOW | tests/test_define_frontend.py | 1840 | CODE | |
| LOW | tests/test_define_frontend.py | 1848 | CODE | |
| LOW | tests/test_define_frontend.py | 1868 | CODE | |
| LOW | tests/test_define_frontend.py | 1938 | CODE | |
| LOW | tests/test_define_frontend.py | 1950 | CODE | |
| 23 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_worker_store.py | 675 | def set_worker_level_failure_exception_types(self, types) -> None: | CODE |
| LOW | julep/turn.py | 383 | __all__ = [ | CODE |
| LOW | julep/dsl.py | 45 | def set_source_capture(enabled: bool) -> None: | CODE |
| LOW | julep/deploy.py | 607 | __all__ = ["Deployment", "deploy", "snapshot_from_listings"] | CODE |
| LOW | julep/define.py | 1586 | __all__ = [ | CODE |
| LOW | julep/transcript.py | 210 | __all__ = [ | CODE |
| LOW | julep/registry.py | 313 | def set_pure_env_hash(self, name: str, env_hash: str) -> None: | CODE |
| LOW | julep/agent_loop.py | 711 | __all__ = [ | CODE |
| LOW | julep/dotctx_rich.py | 1206 | __all__ = [ | CODE |
| LOW | julep/model_slugs.py | 51 | __all__ = ["EFFORT_LEVELS", "ModelSlug", "normalize_model_slug"] | CODE |
| LOW | julep/flow_adapters.py | 92 | __all__ = ["AnyEdge", "any_edges", "as_type", "expect"] | CODE |
| LOW | julep/dotctx_yglu.py | 55 | def set_default_env(env: Optional[Mapping[str, str]]) -> None: | CODE |
| LOW | julep/dotctx_yglu.py | 116 | __all__ = ["default_env", "has_yglu_tags", "load_settings", "set_default_env"] | CODE |
| LOW | julep/prompt.py | 139 | __all__ = [ | CODE |
| LOW | julep/resilience.py | 289 | __all__ = [ | CODE |
| LOW | julep/derived.py | 48 | __all__ = [ | CODE |
| LOW | julep/dotctx_evals.py | 589 | __all__ = [ | CODE |
| LOW | julep/ca/evalrun.py | 590 | __all__ = [ | CODE |
| LOW | julep/ca/ledger.py | 11 | __all__ = [ | CODE |
| LOW | julep/ca/__init__.py | 4 | __all__ = ["main"] | CODE |
| LOW | julep/ca/temporal_run.py | 17 | __all__ = [ | CODE |
| LOW | julep/execution/cma.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | julep/execution/cma.py | 426 | __all__ = [ | CODE |
| LOW | julep/execution/worker.py | 246 | __all__ = [ | CODE |
| LOW | julep/execution/anthropic_batch.py | 178 | __all__ = ["AnthropicBatchProvider"] | CODE |
| LOW | julep/execution/harness.py | 2966 | __all__ = [ | CODE |
| LOW | julep/execution/openai_responses.py | 290 | __all__ = [ | CODE |
| LOW | julep/execution/openai_batch.py | 190 | __all__ = ["OpenAIBatchProvider"] | CODE |
| LOW | julep/execution/cma_session.py | 31 | __all__ = ["CMASessionHandle"] | CODE |
| LOW | julep/execution/__init__.py | 155 | __all__ = [ | CODE |
| LOW | julep/execution/serve.py | 370 | __all__ = [ | CODE |
| LOW | julep/execution/llm.py | 74 | logger = logging.getLogger(__name__) | CODE |
| LOW | julep/execution/llm.py | 997 | __all__ = [ | CODE |
| LOW | julep/execution/bundle_worker.py | 26 | __all__ = ["make_context"] | CODE |
| LOW | julep/execution/reasoner_batch.py | 630 | __all__ = [ | CODE |
| LOW | julep/execution/cma_anthropic.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | julep/execution/cma_anthropic.py | 337 | __all__ = ["AnthropicCMAClient", "build_agent_params"] | CODE |
| LOW | julep/execution/session_store.py | 174 | __all__ = [ | CODE |
| LOW | julep/execution/debounce.py | 233 | __all__ = ["DebounceCollector", "DebounceInput", "submit_debounced"] | CODE |
| LOW | julep/execution/otel.py | 124 | __all__ = ["HAVE_OTEL", "SpanData", "spans_to_dicts", "export_spans"] | CODE |
| LOW | julep/execution/dbos_backend.py | 127 | def set_projection_sink(sink: Optional[ProjectionSink]) -> None: | CODE |
| LOW | julep/execution/batch_provider.py | 113 | __all__ = ["BatchProvider", "BatchReply", "select_batch_provider", "register_batch_provider"] | CODE |
| LOW | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 235 | __all__ = ["cache_all", "compile", "DEFAULT_VERSION", "escape", "findall", | STRING |
| LOW | …execution/_wasm/wasi_wheels/regex/regex/_regex_core.py | 23 | __all__ = ["A", "ASCII", "B", "BESTMATCH", "D", "DEBUG", "E", "ENHANCEMATCH", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 21 | # The authoring + compile path (DSL, freeze, validate, capabilities, deploy, the | COMMENT |
| LOW | pyproject.toml | 41 | dbos = ["dbos>=2.18; python_version >= '3.11'"] | COMMENT |
| LOW | tooling/eks-cad-demo/worker.yaml | 1 | # Generic code-as-data worker on EKS, zero docker in the per-flow loop. | COMMENT |
| LOW | tooling/sandbox-k8s/worker.yaml | 21 | - name: TEMPORAL_TASK_QUEUE | COMMENT |
| LOW | tooling/k3d-cad-demo/worker-keda.yaml | 1 | # Optional autoscaling layer. Apply AFTER worker.yaml to hand replica control to | COMMENT |
| LOW | infra/terraform/envs/demo/main.tf | 401 | helm_release.temporal, | COMMENT |
| LOW | infra/k8s/temporal-ui-ingress.yaml | 1 | # Internal ALB for the Temporal web UI on EKS Auto Mode. | COMMENT |
| LOW | tests/test_dbos_api_spike.py | 1 | """dbos>=2.18 API conformance: every dbos API the backend uses, exercised raw. | COMMENT |
| LOW | examples/dotctx/ticket_triage/settings.yaml | 1 | # A dotctx: a directory that describes ONE model call. `load_dotctx(<dir>)` reads | COMMENT |
| LOW | julep/ca/evalrun.py | 341 | # the normal completion path (finding: strict mode mis-scored completion). | COMMENT |
| LOW | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 1 | # | COMMENT |
| LOW | …execution/_wasm/wasi_wheels/regex/regex/_regex_core.py | 1 | # | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | infra/terraform/envs/demo/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 644 | # Create the PatternObject. | COMMENT |
| MEDIUM | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 676 | # This function is called by the _regex module. | COMMENT |
| MEDIUM | …execution/_wasm/wasi_wheels/regex/regex/_regex_core.py | 261 | # Define the opcodes in a namespace. | STRING |
| MEDIUM | …execution/_wasm/wasi_wheels/regex/regex/_regex_core.py | 4401 | # Create the PatternObject. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | infra/terraform/envs/demo/main.tf | 405 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | infra/terraform/envs/demo/main.tf | 415 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 246 | # -------------------------------------------------------------------- | STRING |
| MEDIUM | julep/execution/_wasm/wasi_wheels/regex/regex/regex.py | 414 | # -------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/test_dotctx_reply.py | 97 | '{"model":"openai:gpt-4o","name":"reply.none","replySchema":null,' | CODE |