OpenAgents - The collaboration OS for AI agents
This report summarizes scanner evidence for openagents-org/openagents, a TypeScript project with 4,196 GitHub stars. SynthScan examined 603,596 lines of code across 2559 source files, recording 7285 pattern matches distributed across 26 syntactic categories. The legacy adjusted pattern signal is 20.4 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 3285 finding(s).
Are imports declared and package/API names verified? 1128 finding(s).
Are wrappers, guards, and repeated structures necessary? 5095 finding(s).
Which changes need focused human review? 7285 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 7285 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | workspace/frontend/desktop/router.tsx | 236 | // ── The next/navigation surface the pages import ─────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/tasks/tasks-view.tsx | 39 | // ── Card ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/tasks/tasks-view.tsx | 293 | // ── Column ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/tasks/tasks-view.tsx | 330 | // ── Board ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …space/frontend/components/workflows/workflows-view.tsx | 102 | // ── "New task with this workflow" dialog ────────────────────────────────── | COMMENT |
| MEDIUM | …space/frontend/components/workflows/workflows-view.tsx | 180 | // ── View ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/agents/agent-setup.tsx | 177 | // ── Marketplace building blocks (Add-agent gallery) ───────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/browser/browser-view.tsx | 152 | // ── actions ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/browser/browser-view.tsx | 280 | // ── derived labels ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/browser/browser-view.tsx | 297 | // ── tab strip ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/browser/browser-view.tsx | 407 | // ── address bar ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/browser/browser-view.tsx | 493 | // ── viewport ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/browser/browser-view.tsx | 604 | // ── status bar ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/browser/browser-view.tsx | 644 | // ── empty / asleep states ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ontend/components/browser/browser-views.render.test.ts | 14 | // ── mutable state the mocked hooks read ──────────────────────────────────── | COMMENT |
| MEDIUM | workspace/frontend/components/connect/welcome-film.tsx | 6 | // ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | workspace/frontend/components/connect/welcome-film.tsx | 23 | // ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 260 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 262 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 363 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 365 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 465 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 467 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 492 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 494 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 528 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 530 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 564 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 566 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 594 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 596 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 618 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 620 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 664 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 666 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 812 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 814 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 850 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 852 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 885 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 887 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 914 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 916 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 941 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 943 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 985 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/models.py | 987 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/access.py | 65 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/access.py | 67 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/access.py | 140 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/access.py | 142 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | workspace/backend/app/access.py | 228 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | workspace/backend/app/access.py | 230 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | workspace/backend/app/cache.py | 121 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | workspace/backend/app/cache.py | 123 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | workspace/backend/app/skill_catalog.py | 15 | # ------------------------------------------------------------------------- | COMMENT |
| 947 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/frontend/components/chat/mermaid-block.tsx | 21 | export function removeMermaidRenderArtifacts(renderId: string) { | CODE |
| LOW | workspace/frontend/lib/firebase.ts | 39 | export async function signInWithCustomTokenValue(customToken: string) { | CODE |
| LOW | workspace/frontend/lib/types.ts | 823 | export function networkAgentToWorkspaceAgent(agent: NetworkAgent): WorkspaceAgent { | CODE |
| LOW | workspace/backend/app/access.py | 123 | def get_or_create_user_by_email(db: Session, email: str) -> User: | CODE |
| LOW | workspace/backend/app/pipeline_factory.py | 17 | def create_workspace_pipeline() -> Pipeline: | CODE |
| LOW | workspace/backend/app/skill_catalog.py | 739 | def skills_to_disabled_modules(enabled_skills: Optional[Dict[str, bool]]) -> Set[str]: | CODE |
| LOW | workspace/backend/app/browser_egress.py | 103 | def _target_from_absolute_url(target: str) -> tuple: | CODE |
| LOW | workspace/backend/app/browser.py | 86 | def classify_navigation_error(exc: Exception) -> str: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 199 | def workspace_session_enabled() -> bool: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 277 | def looks_like_workspace_session(token: str) -> bool: | CODE |
| LOW | workspace/backend/app/pagination.py | 27 | def apply_database_pagination( | CODE |
| LOW | workspace/backend/app/pagination.py | 36 | def create_paginated_response( | CODE |
| LOW | workspace/backend/app/main.py | 109 | def _run_onboarding_reminders(): | CODE |
| LOW | workspace/backend/app/routers/fetch.py | 286 | def _normalize_rendered_assets(images: Optional[list], base_url: str) -> list[dict]: | CODE |
| LOW⚡ | workspace/backend/app/routers/cloud_agents.py | 419 | def _load_cloud_model_credentials( | CODE |
| LOW | workspace/backend/app/routers/onboarding.py | 44 | def send_workspace_setup_email( | CODE |
| LOW | workspace/backend/app/routers/browser.py | 174 | def _orphan_session_tombstone(db: Session, tab: BrowserTab, error: str) -> None: | CODE |
| LOW⚡ | workspace/backend/app/routers/notifications.py | 249 | def mark_all_notifications_read( | CODE |
| LOW | workspace/backend/app/routers/routines.py | 74 | def _get_or_create_routine_channel(db: Session, workspace: Workspace, agent: str) -> Channel: | CODE |
| LOW | workspace/backend/app/routers/routines.py | 168 | def _generate_routine_context_sync( | CODE |
| LOW | workspace/backend/app/routers/integrations.py | 133 | def _load_workspace_for_admin(db, workspace_id, token, authorization): | CODE |
| LOW | workspace/backend/app/routers/integrations.py | 556 | def _process_slack_event_callback( | CODE |
| LOW | workspace/backend/app/routers/workspaces.py | 726 | def generate_member_description( | CODE |
| LOW | workspace/backend/app/routers/workspaces.py | 864 | def _emit_agent_control_event(db, workspace, agent_name: str, action: str, payload: dict) -> None: | CODE |
| LOW | workspace/backend/app/mods/workspace_mod.py | 606 | def _online_participant_names(db, workspace, channel) -> set: | CODE |
| LOW | workspace/backend/app/mods/workspace_mod.py | 1348 | def _handle_task_thread_progress(event: Event, channel, content: str, db, workspace) -> None: | CODE |
| LOW | workspace/backend/app/mods/workspace_mod.py | 1387 | def _upsert_human_collaborator(workspace, payload: dict, db, metadata: dict | None = None) -> None: | CODE |
| LOW | workspace/backend/app/services/cloud_agent.py | 484 | def _build_conversation_context( | CODE |
| LOW | workspace/backend/app/services/yumi.py | 1202 | async def _tool_create_pairing_code(api: WorkspaceApi) -> dict: | CODE |
| LOW | workspace/backend/app/services/yumi.py | 1321 | async def _tool_add_agent_to_thread( | CODE |
| LOW | workspace/backend/app/services/workflow.py | 74 | def _maybe_invoke_cloud_agent(db, workspace, channel_name: str, content: str, agent: str) -> None: | CODE |
| LOW | workspace/backend/app/services/cloud_providers.py | 280 | def _load_providers_from_files() -> dict[str, ProviderInfo]: | CODE |
| LOW | workspace/backend/app/services/push.py | 360 | def _channel_name_from_target(event: dict) -> str: | CODE |
| LOW | workspace/backend/tests/test_workflows.py | 23 | def test_create_assigns_step_ids_and_defaults(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_workflows.py | 34 | def test_create_requires_name(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_workflows.py | 38 | def test_create_requires_a_step(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_workflows.py | 42 | def test_step_requires_instruction(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_workflows.py | 46 | def test_agent_step_requires_agent(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_workflows.py | 50 | def test_gate_target_must_exist(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_workflows.py | 56 | def test_gate_loop_back_by_step_id(self, client, workspace): | CODE |
| LOW | workspace/backend/tests/test_workflows.py | 70 | def test_step_knowledge_id_validated(self, client, workspace, db): | CODE |
| LOW | workspace/backend/tests/test_workflows.py | 88 | def test_max_iterations_clamped(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_node_tokens.py | 42 | def test_redeem_returns_a_dedicated_token(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_node_tokens.py | 50 | def test_re_pair_reuses_the_same_token(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_node_tokens.py | 60 | def test_workspace_token_verifies_and_resolves(self, client, workspace, db): | CODE |
| LOW⚡ | workspace/backend/tests/test_node_tokens.py | 67 | def test_node_token_verifies_and_resolves(self, client, workspace, db): | CODE |
| LOW⚡ | workspace/backend/tests/test_node_tokens.py | 75 | def test_resolve_endpoint_accepts_node_tokens(self, client, workspace): | CODE |
| LOW⚡ | workspace/backend/tests/test_node_tokens.py | 81 | def test_node_token_is_scoped_to_its_workspace(self, client, workspace, db): | CODE |
| LOW | workspace/backend/tests/test_node_tokens.py | 93 | def test_join_with_node_token_stamps_node_id(self, client, workspace, db): | CODE |
| LOW | workspace/backend/tests/test_node_tokens.py | 106 | def test_join_with_workspace_token_has_no_node_id(self, client, workspace, db): | CODE |
| LOW | workspace/backend/tests/test_node_tokens.py | 118 | def test_heartbeat_accepts_node_token(self, client, workspace): | CODE |
| LOW | workspace/backend/tests/test_node_tokens.py | 127 | def test_delete_node_revokes_its_token(self, client, workspace, db): | CODE |
| LOW⚡ | workspace/backend/tests/test_identity_defaults.py | 27 | def test_firebase_project_id_defaults_to_empty(monkeypatch): | CODE |
| LOW⚡ | workspace/backend/tests/test_identity_defaults.py | 31 | def test_apple_client_ids_defaults_to_empty(monkeypatch): | CODE |
| LOW⚡ | workspace/backend/tests/test_identity_defaults.py | 35 | def test_identity_providers_still_configurable(monkeypatch): | CODE |
| LOW⚡ | workspace/backend/tests/test_identity_defaults.py | 45 | def test_firebase_verification_fails_closed_without_a_project(monkeypatch): | CODE |
| LOW⚡ | workspace/backend/tests/test_timer_maintenance.py | 55 | def test_run_maintenance_empty_db_ok(session_factory): | CODE |
| LOW⚡ | workspace/backend/tests/test_timer_maintenance.py | 60 | def test_fire_due_empty_db_ok(session_factory): | CODE |
| LOW⚡ | workspace/backend/tests/test_timer_maintenance.py | 65 | def test_run_maintenance_archives_stale_thread(session_factory): | CODE |
| LOW⚡ | workspace/backend/tests/test_app_version.py | 26 | def test_rejects_unknown_platform(self, client): | CODE |
| 2139 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/backend/app/browser_maintenance.py | 87 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser_maintenance.py | 112 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser_maintenance.py | 277 | except Exception: | CODE |
| LOW⚡ | workspace/backend/app/access.py | 221 | except Exception: | CODE |
| LOW | workspace/backend/app/cache.py | 48 | except Exception as e: | CODE |
| LOW⚡ | workspace/backend/app/cache.py | 62 | except Exception as e: | CODE |
| LOW⚡ | workspace/backend/app/cache.py | 76 | except Exception as e: | CODE |
| LOW | workspace/backend/app/cache.py | 87 | except Exception as e: | CODE |
| LOW | workspace/backend/app/cache.py | 108 | except Exception: | CODE |
| LOW⚡ | workspace/backend/app/cache.py | 132 | except Exception as e: | CODE |
| LOW | workspace/backend/app/cache.py | 156 | except Exception as e: | CODE |
| LOW | workspace/backend/app/cache.py | 186 | except Exception as e: | CODE |
| LOW | workspace/backend/app/cache.py | 192 | except Exception: | CODE |
| LOW | workspace/backend/app/browser_egress.py | 246 | except Exception: | CODE |
| LOW | workspace/backend/app/browser_egress.py | 282 | except Exception: | CODE |
| LOW | workspace/backend/app/browser_egress.py | 316 | except Exception: | CODE |
| LOW | workspace/backend/app/browser_egress.py | 320 | except Exception: | CODE |
| LOW | workspace/backend/app/browser_egress.py | 381 | except Exception as e: # fail closed on anything unexpected | CODE |
| LOW | workspace/backend/app/browser_egress.py | 433 | except Exception: | CODE |
| MEDIUM | workspace/backend/app/browser.py | 586 | def _note_blocked(response): | CODE |
| LOW⚡ | workspace/backend/app/browser.py | 186 | except Exception as e: | CODE |
| LOW⚡ | workspace/backend/app/browser.py | 618 | except Exception as e: | CODE |
| LOW⚡ | workspace/backend/app/browser.py | 625 | except Exception: | CODE |
| LOW⚡ | workspace/backend/app/browser.py | 635 | except Exception: | CODE |
| LOW⚡ | workspace/backend/app/browser.py | 641 | except Exception: | CODE |
| LOW⚡ | workspace/backend/app/browser.py | 647 | except Exception: | CODE |
| LOW⚡ | workspace/backend/app/browser.py | 709 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 249 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 288 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 306 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 312 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 329 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 345 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 355 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 388 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 457 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 495 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 506 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 537 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 557 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 570 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 600 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 607 | except Exception as e: | CODE |
| LOW | workspace/backend/app/browser.py | 752 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 762 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 781 | except Exception: | CODE |
| LOW | workspace/backend/app/browser.py | 807 | except Exception: | CODE |
| LOW | workspace/backend/app/storage.py | 108 | except Exception: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 87 | except Exception as e: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 111 | except Exception as e: | CODE |
| LOW⚡ | workspace/backend/app/firebase_auth.py | 173 | except Exception as e: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 228 | except Exception: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 239 | except Exception as e: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 289 | except Exception: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 310 | except Exception as e: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 371 | except Exception as e: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 433 | except Exception as e: | CODE |
| LOW | workspace/backend/app/main.py | 123 | except Exception: | CODE |
| LOW | workspace/backend/app/main.py | 195 | except Exception: | CODE |
| LOW | workspace/backend/app/main.py | 335 | except Exception: | CODE |
| 1205 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | workspace/backend/app/cache.py | 108 | except Exception: | CODE |
| HIGH | workspace/backend/app/cache.py | 192 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser_egress.py | 241 | except (ConnectionError, asyncio.CancelledError, OSError): | CODE |
| HIGH | workspace/backend/app/browser_egress.py | 246 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser_egress.py | 282 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser_egress.py | 309 | except (ConnectionError, OSError): | CODE |
| HIGH | workspace/backend/app/browser_egress.py | 427 | except (asyncio.TimeoutError, ConnectionError, OSError): | CODE |
| HIGH | workspace/backend/app/browser_egress.py | 320 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser_egress.py | 433 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 345 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 506 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 635 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 641 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 647 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 355 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 450 | except (AttributeError, Exception): | CODE |
| HIGH | workspace/backend/app/browser.py | 600 | except Exception: | CODE |
| HIGH | workspace/backend/app/browser.py | 625 | except Exception: | CODE |
| HIGH | workspace/backend/app/firebase_auth.py | 67 | except ValueError: | CODE |
| HIGH | workspace/backend/app/firebase_auth.py | 228 | except Exception: | CODE |
| HIGH | workspace/backend/app/main.py | 433 | except asyncio.CancelledError: | CODE |
| HIGH | workspace/backend/app/routers/fetch.py | 323 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 197 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 315 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 323 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 143 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 147 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 707 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 450 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 942 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/events.py | 467 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/browser.py | 357 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/browser.py | 798 | except (TimeoutError, asyncio.TimeoutError): | CODE |
| HIGH | workspace/backend/app/routers/browser.py | 1310 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/browser.py | 651 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/campaign.py | 75 | except Exception: # noqa: BLE001 — serve the stale list if any | CODE |
| HIGH | workspace/backend/app/routers/network.py | 249 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/knowledge.py | 332 | except Exception: | CODE |
| HIGH | workspace/backend/app/routers/workspaces.py | 1135 | except Exception: | CODE |
| HIGH | workspace/backend/app/mods/workspace_mod.py | 729 | except Exception: | CODE |
| HIGH | workspace/backend/app/mods/workspace_mod.py | 1175 | except Exception: | CODE |
| HIGH | workspace/backend/app/services/cloud_agent.py | 830 | except Exception: | CODE |
| HIGH | workspace/backend/app/services/campaign.py | 693 | except Exception: # noqa: BLE001 — usage is decorative | CODE |
| HIGH | workspace/backend/app/services/yumi.py | 1470 | except (TypeError, ValueError): | CODE |
| HIGH | workspace/backend/app/services/integrations.py | 223 | except Exception: | CODE |
| HIGH | workspace/backend/app/services/integrations.py | 231 | except Exception: | CODE |
| HIGH | workspace/backend/app/services/watches.py | 235 | except Exception: | CODE |
| HIGH | workspace/backend/app/services/watches.py | 243 | except Exception: | CODE |
| HIGH | workspace/backend/tests/test_file_security.py | 134 | except (ValueError, OSError): | CODE |
| HIGH | workspace/backend/tests/test_file_security.py | 144 | except (ValueError, OSError): | CODE |
| HIGH | workspace/backend/tests/test_ssrf_boundary.py | 625 | except Exception: | CODE |
| HIGH | workspace/backend/tests/test_ssrf_boundary.py | 630 | except Exception: | CODE |
| HIGH | workspace/scripts/insforge-migration/migrate.py | 425 | except Exception: | CODE |
| HIGH | tests/grpc/test_mixed_grpc_http_communication.py | 63 | except: | CODE |
| HIGH | tests/grpc/test_basic_test_mod.py | 66 | except: | CODE |
| HIGH | tests/grpc/test_basic_grpc_communication.py | 62 | except: | CODE |
| HIGH | tests/integration/conftest.py | 23 | except ImportError: | CODE |
| HIGH | tests/integration/conftest.py | 109 | except: | CODE |
| HIGH | tests/integration/conftest.py | 107 | except: | CODE |
| HIGH | tests/integration/test_hello_world_demo.py | 386 | except asyncio.TimeoutError: | CODE |
| 134 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/studio/test_workspace_http_messaging.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | tests/studio/test_messaging_mod_with_http_api.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | tests/grpc/test_mixed_grpc_http_communication.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | tests/grpc/test_basic_grpc_communication.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | …s/workspace/test_grpc_workspace_client_worker_agent.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | tests/workspace/test_worker_agent.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | tests/workspace/test_grpc_workspace.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | tests/http/test_basic_http_communication.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | …sts/mods/test_grpc_thread_messaging_file_operations.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | …sts/mods/test_http_thread_messaging_file_operations.py | 0 | create and start a network using workspace_test.yaml config. | STRING |
| HIGH | tests/lms/test_llm_log_reader.py | 0 | create a temporary workspace directory for testing. | STRING |
| HIGH | tests/lms/test_llm_logger.py | 0 | create a temporary workspace directory for testing. | STRING |
| HIGH | tests/mods/test_forum_wiki_persistence.py | 0 | create a temporary workspace directory for testing. | STRING |
| HIGH | tests/mods/test_feed_mod.py | 0 | create a temporary workspace directory for testing. | STRING |
| HIGH | tests/mods/test_messaging_memory_management.py | 0 | create a temporary workspace directory for testing. | STRING |
| HIGH | tests/platform/tools/test_cursor.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/tools/test_codex.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/tools/test_openclaw.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/tools/test_claude.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/tools/test_nanoclaw.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/respond/test_cursor.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/respond/test_codex.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/respond/test_openclaw.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/respond/test_claude.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/respond/test_nanoclaw.py | 0 | create a workspace via the python api and clean up after. | STRING |
| HIGH | tests/platform/tools/test_cursor.py | 0 | upload a file and read it back — content should match. | STRING |
| HIGH | tests/platform/tools/test_codex.py | 0 | upload a file and read it back — content should match. | STRING |
| HIGH | tests/platform/tools/test_openclaw.py | 0 | upload a file and read it back — content should match. | STRING |
| HIGH | tests/platform/tools/test_claude.py | 0 | upload a file and read it back — content should match. | STRING |
| HIGH | tests/platform/tools/test_nanoclaw.py | 0 | upload a file and read it back — content should match. | STRING |
| HIGH | tests/platform/install/test_cursor.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/install/test_codex.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/install/test_openclaw.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/install/test_claude.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/install/test_nanoclaw.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/start/test_cursor.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/start/test_codex.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/start/test_openclaw.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/start/test_claude.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/start/test_nanoclaw.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/connect/test_cursor.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/connect/test_codex.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/connect/test_openclaw.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/connect/test_claude.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/connect/test_nanoclaw.py | 0 | log environment details (always passes, for diagnostics). | STRING |
| HIGH | tests/platform/start/test_cursor.py | 0 | remove the test agent after each test; daemon stays running. | STRING |
| HIGH | tests/platform/start/test_codex.py | 0 | remove the test agent after each test; daemon stays running. | STRING |
| HIGH | tests/platform/start/test_openclaw.py | 0 | remove the test agent after each test; daemon stays running. | STRING |
| HIGH | tests/platform/start/test_claude.py | 0 | remove the test agent after each test; daemon stays running. | STRING |
| HIGH | tests/platform/start/test_nanoclaw.py | 0 | remove the test agent after each test; daemon stays running. | STRING |
| HIGH | tests/platform/start/test_cursor.py | 0 | after start, `openagents status` should show daemon running. | STRING |
| HIGH | tests/platform/start/test_codex.py | 0 | after start, `openagents status` should show daemon running. | STRING |
| HIGH | tests/platform/start/test_openclaw.py | 0 | after start, `openagents status` should show daemon running. | STRING |
| HIGH | tests/platform/start/test_claude.py | 0 | after start, `openagents status` should show daemon running. | STRING |
| HIGH | tests/platform/start/test_nanoclaw.py | 0 | after start, `openagents status` should show daemon running. | STRING |
| HIGH | tests/platform/start/test_cursor.py | 0 | `openagents remove` should remove the agent without killing the daemon. | STRING |
| HIGH | tests/platform/start/test_codex.py | 0 | `openagents remove` should remove the agent without killing the daemon. | STRING |
| HIGH | tests/platform/start/test_openclaw.py | 0 | `openagents remove` should remove the agent without killing the daemon. | STRING |
| HIGH | tests/platform/start/test_claude.py | 0 | `openagents remove` should remove the agent without killing the daemon. | STRING |
| HIGH | tests/platform/start/test_nanoclaw.py | 0 | `openagents remove` should remove the agent without killing the daemon. | STRING |
| 114 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdk/studio/src/stores/llmLogStore.ts | 141 | completion: "```python\nimport pandas as pd\nimport numpy as np\nfrom pathlib import Path\n\ndef analyze_csv(file_ | CODE |
| HIGH | sdk/studio/src/stores/llmLogStore.ts | 154 | content: "```python\nimport pandas as pd\nimport numpy as np\nfrom pathlib import Path\n\ndef analyze_csv(file | CODE |
| HIGH | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 249 | print("Agent is running! Press Ctrl+C to stop.") | CODE |
| HIGH | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 275 | print("\\nShutting down...") | CODE |
| HIGH | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 378 | print("Agent is listening for messages...") | CODE |
| HIGH⚡ | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 519 | print(f"Failed to announce: {e}") | CODE |
| HIGH⚡ | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 520 | return False | CODE |
| HIGH⚡ | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 540 | print(f"Failed to withdraw: {e}") | CODE |
| HIGH⚡ | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 541 | return False | CODE |
| HIGH⚡ | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 567 | print(f"Starting A2A agent on http://{agent_host}:{agent_port}...") | CODE |
| HIGH⚡ | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 568 | print(f"OpenAgents network: {openagents_url}") | CODE |
| HIGH⚡ | sdk/studio/src/pages/admin/ConnectionGuide.tsx | 569 | print("Press Ctrl+C to stop") | CODE |
| HIGH | …auncher/src/renderer/components/setup-wizard/index.tsx | 215 | print (that note now sits next to the choice it softens, in the | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 77 | print(''); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 79 | print(useColor ? `\x1b[38;5;${shades[i]}m${line}\x1b[0m` : line); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 82 | print(useColor ? `\x1b[2m${tag}\x1b[0m` : tag); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 83 | print(''); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 91 | print(headers.map((h, i) => h.padEnd(widths[i])).join(' ')); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 92 | print(widths.map((w) => '-'.repeat(w)).join(' ')); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 94 | print(row.map((c, i) => String(c || '').padEnd(widths[i])).join(' ')); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 133 | print('Daemon stopped'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 135 | print('Daemon is not running'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 145 | print(stopped ? 'Daemon stopped' : 'Daemon was not running'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 155 | print('Daemon is not running'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 157 | print(`Daemon running (PID ${pid})`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 162 | print('\nNo agents configured. Run: agn create <name> --type <type>'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 188 | print(`Error: unknown agent type '${type}'.`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 189 | print(`Supported types: ${known.join(', ')}`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 190 | print('Run `agn search` to browse available agent types.'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 205 | print(`Created local agent: ${name} (type: ${type})`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 206 | print(''); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 207 | print('This agent is local-only and will not appear in Workspace Dashboard yet.'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 208 | print(''); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 209 | print('To connect it to a Workspace, run:'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 216 | print(` agn connect ${name} --workspace ${p.workspace_slug}${p.workspace_name ? ` (${p.workspace_name})` : | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 219 | print(` agn connect ${name} <workspace-token>`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 220 | print('Or pair this device first: agn node connect <pairing-code>'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 223 | print(`Agent '${name}' created (type: ${type})`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 228 | print(`Runtime '${type}' is not installed. Run: agn install ${type}`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 232 | print(`Installing ${type}...`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 235 | print(`${type} installed`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 237 | print(`Warning: install failed: ${e.message}`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 241 | print(`Error: ${e.message}`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 251 | print(`Agent '${name}' removed`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 266 | print(`Sent start command for '${name}'`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 273 | print(`Sent stop command for '${name}'`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 281 | print(`${type} is already installed`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 285 | print(`Installing ${type}...`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 288 | print(`${type} installed successfully`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 291 | print(`Error: ${e.message}`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 300 | print(`Uninstalling ${type}...`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 303 | print(`${type} uninstalled`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 306 | print(`Error: ${e.message}`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 452 | print('Workspace token is required.'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 453 | print('Local-only agents do not appear in Workspace Dashboard until connected.'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 454 | print('Run:'); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 455 | print(` agn connect ${name} <workspace-token>`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 460 | print(`Resolving workspace token...`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 477 | print(`'${name}' connected to workspace '${wsName}'`); | CODE |
| HIGH⚡ | packages/agent-connector/src/cli.js | 482 | print('note: manual token connection is being retired in favor of device pairing.'); | CODE |
| 104 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 7 | CODE | |
| LOW | workspace/backend/app/database.py | 11 | CODE | |
| LOW | workspace/backend/app/storage.py | 9 | CODE | |
| LOW | workspace/backend/app/pagination.py | 6 | CODE | |
| LOW | workspace/backend/app/pagination.py | 6 | CODE | |
| LOW | workspace/backend/app/pagination.py | 10 | CODE | |
| LOW | workspace/backend/app/pagination.py | 10 | CODE | |
| LOW | workspace/backend/app/pagination.py | 11 | CODE | |
| LOW | workspace/backend/app/main.py | 413 | CODE | |
| LOW | workspace/backend/app/routers/todos.py | 18 | CODE | |
| LOW | workspace/backend/app/routers/integrations.py | 29 | CODE | |
| LOW | workspace/backend/app/routers/integrations.py | 29 | CODE | |
| LOW | workspace/backend/app/routers/shares.py | 21 | CODE | |
| LOW | workspace/backend/app/routers/workspaces.py | 24 | CODE | |
| LOW | workspace/backend/app/services/agent_registry.py | 17 | CODE | |
| LOW | workspace/backend/app/services/campaign.py | 38 | CODE | |
| LOW | workspace/backend/app/services/workflow.py | 21 | CODE | |
| LOW | workspace/backend/tests/test_node_tokens.py | 12 | CODE | |
| LOW | workspace/backend/tests/test_node_tokens.py | 15 | CODE | |
| LOW | workspace/backend/tests/test_identity_defaults.py | 14 | CODE | |
| LOW | workspace/backend/tests/test_timer_maintenance.py | 24 | CODE | |
| LOW | workspace/backend/tests/test_workspaces.py | 6 | CODE | |
| LOW | workspace/backend/tests/test_collaborators.py | 15 | CODE | |
| LOW | workspace/backend/tests/test_nodes.py | 6 | CODE | |
| LOW | …ace/backend/tests/test_browser_postgres_concurrency.py | 39 | CODE | |
| LOW | workspace/backend/tests/test_pilot.py | 13 | CODE | |
| LOW | workspace/backend/tests/test_pilot.py | 13 | CODE | |
| LOW | workspace/backend/tests/test_migration_schema.py | 4 | CODE | |
| LOW | workspace/backend/tests/test_migration_schema.py | 11 | CODE | |
| LOW | workspace/backend/tests/test_network.py | 7 | CODE | |
| LOW | workspace/backend/tests/test_events.py | 6 | CODE | |
| LOW | workspace/backend/tests/test_watches.py | 18 | CODE | |
| LOW | workspace/backend/tests/test_login_session_auth.py | 16 | CODE | |
| LOW | workspace/backend/tests/test_login_session_auth.py | 17 | CODE | |
| LOW | workspace/backend/tests/test_login_session_auth.py | 573 | CODE | |
| LOW | workspace/backend/tests/test_login_session_auth.py | 574 | CODE | |
| LOW | workspace/backend/api/index.py | 2 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/backend/alembic/env.py | 12 | CODE | |
| LOW | workspace/scripts/insforge-migration/migrate.py | 30 | CODE | |
| LOW | workspace/scripts/insforge-migration/migrate.py | 37 | CODE | |
| LOW | tests/conftest.py | 8 | CODE | |
| LOW | tests/conftest.py | 10 | CODE | |
| LOW | tests/conftest.py | 11 | CODE | |
| LOW | tests/conftest.py | 12 | CODE | |
| LOW | tests/test_onm_pipeline.py | 7 | CODE | |
| LOW | tests/test_workspace_prompt_browser.py | 9 | CODE | |
| LOW | tests/test_workspace_sdk.py | 3 | CODE | |
| LOW | tests/test_workspace_sdk.py | 5 | CODE | |
| LOW | tests/test_workspace_sdk.py | 6 | CODE | |
| 721 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | workspace/backend/app/routers/tasks.py | 510 | # Create the hidden thread if it doesn't exist yet, seeding it with every | COMMENT |
| MEDIUM | workspace/backend/app/routers/browser.py | 943 | # Create a new session | COMMENT |
| MEDIUM | workspace/backend/tests/test_browser_contexts.py | 231 | # Create a persistent context | COMMENT |
| MEDIUM | workspace/backend/tests/test_network.py | 525 | # Create a channel so the event has somewhere to go | COMMENT |
| MEDIUM | workspace/backend/tests/test_yumi.py | 301 | # Create the workspace with Yumi disabled so nothing is provisioned yet. | COMMENT |
| MEDIUM⚡ | workspace/backend/tests/test_file_security.py | 139 | # Create a sentinel file outside base_dir | COMMENT |
| MEDIUM | tests/studio/test_forum_mod_with_http_api.py | 679 | # Create a topic for commenting | COMMENT |
| MEDIUM | tests/studio/test_forum_mod_with_http_api.py | 812 | # Create a topic for voting | COMMENT |
| MEDIUM | tests/studio/test_forum_mod_with_http_api.py | 1109 | # Create a valid topic first | COMMENT |
| MEDIUM | tests/studio/test_forum_mod_with_http_api.py | 1178 | # Create a topic with Client A | COMMENT |
| MEDIUM | tests/grpc/test_mixed_grpc_http_communication.py | 151 | # Create a test event from gRPC client to HTTP client | COMMENT |
| MEDIUM | tests/grpc/test_mixed_grpc_http_communication.py | 242 | # Create a test event from HTTP client to gRPC client | COMMENT |
| MEDIUM⚡ | tests/grpc/test_basic_grpc_communication.py | 134 | # Create a simple event | COMMENT |
| MEDIUM | tests/lms/test_llm_logs_api.py | 251 | # Create a mock request | COMMENT |
| MEDIUM | tests/lms/test_llm_logger.py | 201 | # Create a mock response object | COMMENT |
| MEDIUM | tests/a2a/test_a2a_transport.py | 453 | # Create a task first | COMMENT |
| MEDIUM | tests/a2a/test_a2a_transport.py | 485 | # Create a task | COMMENT |
| MEDIUM | tests/a2a/test_a2a_transport.py | 525 | # Create a task | COMMENT |
| MEDIUM | tests/a2a/test_a2a_transport.py | 635 | # Create a task | COMMENT |
| MEDIUM | tests/a2a/test_a2a_transport.py | 652 | # Create a task | COMMENT |
| MEDIUM | tests/a2a/test_a2a_transport.py | 668 | # Create a task | COMMENT |
| MEDIUM | tests/a2a/test_cross_protocol_communication.py | 330 | # Create an event from gRPC agent to A2A agent | COMMENT |
| MEDIUM | tests/a2a/test_a2a_connector.py | 178 | # Create a mock task | COMMENT |
| MEDIUM | tests/a2a/test_a2a_connector.py | 517 | # Create a task | COMMENT |
| MEDIUM | tests/a2a/test_a2a_connector.py | 599 | # Create a task | COMMENT |
| MEDIUM | tests/a2a/test_a2a_connector.py | 623 | # Create a task | COMMENT |
| MEDIUM⚡ | tests/workspace/test_worker_agent.py | 477 | # Create a real client | COMMENT |
| MEDIUM⚡ | tests/workspace/test_worker_agent.py | 482 | # Create a test worker agent with real client | COMMENT |
| MEDIUM | tests/workspace/test_worker_agent.py | 46 | # Create a mock client | COMMENT |
| MEDIUM | tests/workspace/test_worker_agent.py | 326 | # Create an async function to simulate the future resolution | COMMENT |
| MEDIUM | tests/workspace/test_worker_agent.py | 363 | # Create an async function to simulate the direct message retrieval | COMMENT |
| MEDIUM⚡ | tests/network/test_authentication.py | 105 | # Create a client and connect | COMMENT |
| MEDIUM | tests/network/test_authentication.py | 144 | # Create a simple network config | COMMENT |
| MEDIUM | tests/network/test_authentication.py | 198 | # Create a simple network config | COMMENT |
| MEDIUM | tests/network/test_authentication.py | 230 | # Create a simple network config | COMMENT |
| MEDIUM | tests/network/test_source_agent_group.py | 312 | # Create an event without source_agent_group (simulating old code) | COMMENT |
| MEDIUM | tests/agents/test_load_mcp.py | 371 | # Create a mock agent runner | COMMENT |
| MEDIUM | tests/agents/test_orchestrator.py | 30 | # Create a real incoming event | COMMENT |
| MEDIUM | tests/agents/test_orchestrator.py | 165 | # Create a new context with tool usage request | COMMENT |
| MEDIUM⚡ | tests/agents/test_orchestrator.py | 323 | # Create a mock agent config that won't actually call a real API | COMMENT |
| MEDIUM⚡ | tests/agents/test_exa_search.py | 278 | # Create a fake exa_py module so the local import resolves | COMMENT |
| MEDIUM | tests/agents/test_langchain_agent.py | 560 | # Create a simple wrapper that has invoke/ainvoke interface | COMMENT |
| MEDIUM⚡ | tests/agents/test_mcp_tool.py | 83 | # Create a FastMCP app (similar to the example) | COMMENT |
| MEDIUM⚡ | tests/agents/test_mcp_tool.py | 89 | # Define a tool (without the decorator for testing) | COMMENT |
| MEDIUM | tests/http/test_basic_http_communication.py | 172 | # Create a simple event | COMMENT |
| MEDIUM | tests/mods/test_thread_messaging.py | 697 | # Create a test file content | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_documents.py | 137 | # Create a document | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_documents.py | 201 | # Create a document | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_documents.py | 251 | # Create a document | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_documents.py | 324 | # Create a document | COMMENT |
| MEDIUM | tests/mods/test_shared_cache_with_files.py | 342 | # Create a regular (non-file) cache entry | COMMENT |
| MEDIUM | tests/mods/test_shared_cache_with_files.py | 499 | # Create a 1MB file content | COMMENT |
| MEDIUM | tests/mods/test_task_delegation.py | 602 | # Create a task with very short timeout using A2A Task | COMMENT |
| MEDIUM⚡ | tests/mods/test_shared_artifact.py | 159 | # Create a public artifact | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_forum.py | 111 | # Create a topic | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_forum.py | 137 | # Create a topic | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_forum.py | 168 | # Create a topic | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_forum.py | 194 | # Create a topic | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_forum.py | 225 | # Create a topic | COMMENT |
| MEDIUM | tests/mods/test_grpc_workspace_forum.py | 272 | # Create a topic | COMMENT |
| 65 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/backend/app/firebase_auth.py | 62 | # Check if already initialized | COMMENT |
| LOW | workspace/backend/app/mods/workspace_mod.py | 490 | # Check if already a member | COMMENT |
| LOW | tests/conftest.py | 57 | # Check if the test took too long | COMMENT |
| LOW | tests/grpc/test_mixed_grpc_http_communication.py | 196 | # Check if we received the message | COMMENT |
| LOW | tests/grpc/test_mixed_grpc_http_communication.py | 287 | # Check if we received the message | COMMENT |
| LOW | tests/grpc/test_mixed_grpc_http_communication.py | 385 | # Check if both received messages | COMMENT |
| LOW | tests/grpc/test_basic_grpc_communication.py | 174 | # Check if we received the message | COMMENT |
| LOW | tests/grpc/test_basic_grpc_communication.py | 278 | # Check if we received all messages | COMMENT |
| LOW | tests/grpc/test_basic_grpc_communication.py | 624 | # Check if we've received the expected events (stop early if we have enough) | COMMENT |
| LOW | tests/grpc/test_basic_grpc_communication.py | 733 | # Check if both received messages | COMMENT |
| LOW | tests/a2a/test_a2a_transport.py | 503 | # Set task to working state | COMMENT |
| LOW | tests/integration/test_hello_world_demo.py | 138 | # Check if we received a response from Charlie | COMMENT |
| LOW | tests/platform/connect/test_claude.py | 112 | # Check if agent row shows workspace (not "(local)") | COMMENT |
| LOW | tests/agents/test_orchestrator.py | 209 | # Check if we got an API error (quota exceeded) - that's acceptable for this test | COMMENT |
| LOW | tests/agents/test_orchestrator.py | 304 | # Check if there's an error in the trajectory | COMMENT |
| LOW | tests/agents/test_langchain_agent.py | 18 | # Check if LangChain is available | COMMENT |
| LOW | tests/http/test_basic_http_communication.py | 217 | # Check if we received the message | COMMENT |
| LOW | tests/http/test_basic_http_communication.py | 323 | # Check if we received all messages | COMMENT |
| LOW | tests/http/test_basic_http_communication.py | 680 | # Check if we've received the expected events (stop early if we have enough) | COMMENT |
| LOW | tests/http/test_basic_http_communication.py | 789 | # Check if both received messages | COMMENT |
| LOW | tests/mods/test_thread_messaging.py | 272 | # Check if Bob received the message | COMMENT |
| LOW | tests/mods/test_thread_messaging.py | 364 | # Check if Bob received the notification | COMMENT |
| LOW | tests/mods/test_thread_messaging.py | 459 | # Check if both Bob and Charlie received the message | COMMENT |
| LOW | tests/mods/test_task_delegation.py | 41 | # Set a2a_task_store to None so mod creates its own InMemoryTaskStore | COMMENT |
| LOW | sdk/examples/grpcs_example.py | 27 | # Check if certificates already exist | COMMENT |
| LOW⚡ | sdk/examples/agentworld_network/simple_game_agent.py | 108 | # Check if move was successful (checking both "success" field and status) | COMMENT |
| LOW | sdk/examples/agentworld_network/simple_game_agent.py | 130 | # Check if chat was successful | COMMENT |
| LOW | sdk/src/openagents/tools/custom_event_tools.py | 158 | # Check if there are any .yaml/.yml files | COMMENT |
| LOW | sdk/src/openagents/lms/llm_logger.py | 141 | # Check if rotation is needed | COMMENT |
| LOW | sdk/src/openagents/lms/llm_logger.py | 171 | # Check if rotation is needed | COMMENT |
| LOW | sdk/src/openagents/lms/llm_logger.py | 203 | # Check if we're in an async context | COMMENT |
| LOW | sdk/src/openagents/lms/llm_log_reader.py | 268 | # Check if this is a rotated log file (ends with _YYYYMMDD_HHMMSS pattern) | COMMENT |
| LOW⚡ | sdk/src/openagents/workspace/tool_decorator.py | 160 | # Check if required (no default value) | COMMENT |
| LOW | sdk/src/openagents/workspace/tool_decorator.py | 247 | # Check if description continues on next line | COMMENT |
| LOW | sdk/src/openagents/agents/runner.py | 448 | # Check if message hasn't been processed (regardless of requires_response) | COMMENT |
| LOW | sdk/src/openagents/agents/simple_openai_agent.py | 181 | # Check if the model wants to call a function | COMMENT |
| LOW | sdk/src/openagents/agents/simple_openai_agent.py | 190 | # Check if the model wants to finish | COMMENT |
| LOW⚡ | sdk/src/openagents/agents/worker_agent.py | 368 | # Check if we're mentioned | COMMENT |
| LOW | sdk/src/openagents/agents/worker_agent.py | 217 | # Check if this method has the _event_pattern attribute (set by @on decorator) | COMMENT |
| LOW | sdk/src/openagents/agents/worker_agent.py | 404 | # Check if this is a reply message (either explicit reply_message type or channel_message with reply_to_id) | COMMENT |
| LOW | sdk/src/openagents/agents/worker_agent.py | 431 | # Check if we're mentioned | COMMENT |
| LOW | sdk/src/openagents/agents/langchain_agent.py | 452 | # Check if we should react to this event | COMMENT |
| LOW | sdk/src/openagents/agents/project_echo_agent.py | 129 | # Check if this is a project channel message | COMMENT |
| LOW | sdk/src/openagents/agents/project_echo_agent.py | 176 | # Check if this is a channel message notification | COMMENT |
| LOW | sdk/src/openagents/agents/project_echo_agent.py | 200 | # Check if this is a project channel and handle the task | COMMENT |
| LOW | sdk/src/openagents/agents/project_echo_agent.py | 233 | # Check if this is a project channel (starts with "project-") | COMMENT |
| LOW | sdk/src/openagents/agents/project_echo_agent.py | 388 | # Check if there are any projects that need to be completed | COMMENT |
| LOW | sdk/src/openagents/agents/pydantic_ai_agent.py | 349 | # Check if we should react to this event | COMMENT |
| LOW | sdk/src/openagents/agents/orchestrator.py | 302 | # Check if the model wants to call tools | COMMENT |
| LOW | sdk/src/openagents/agents/orchestrator.py | 341 | # Check if the model wants to finish | COMMENT |
| LOW | sdk/src/openagents/utils/bulk_agent_manager.py | 199 | # Check if this is an agent configuration (not a network config) | COMMENT |
| LOW | sdk/src/openagents/utils/bulk_agent_manager.py | 252 | # Check if it inherits from known agent classes | COMMENT |
| LOW | sdk/src/openagents/utils/bulk_agent_manager.py | 279 | # Check if this looks like an agent file | COMMENT |
| LOW | sdk/src/openagents/utils/bulk_agent_manager.py | 456 | # Check if process is still running | COMMENT |
| LOW | sdk/src/openagents/utils/cert_generator.py | 159 | # Write files | COMMENT |
| LOW⚡ | sdk/src/openagents/utils/mod_loaders.py | 491 | # Check if this package has a mod.py file with NetworkMod class | COMMENT |
| LOW | sdk/src/openagents/utils/mod_loaders.py | 231 | # Check if this is a local mod (starts with ./) | COMMENT |
| LOW | sdk/src/openagents/utils/mod_loaders.py | 362 | # Check if this is a local mod | COMMENT |
| LOW | sdk/src/openagents/utils/port_allocator.py | 34 | # Check if port is already allocated by us or excluded | COMMENT |
| LOW | sdk/src/openagents/utils/network_import.py | 56 | # Check if valid ZIP | COMMENT |
| 158 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | workspace/backend/openagents/core/onm_pipeline.py | 64 | Run an event through the full mod pipeline. Args: event: The event to process. | STRING |
| HIGH | …logs/blogs/2025-11-29-custom-tools-events-workspace.md | 76 | Divide first number by second. Args: a: Numerator b: Denominator (must not be zero) Returns: | STRING |
| HIGH | …amples/test_configs/mcp_tools_test/tools/calculator.py | 50 | Divide two numbers. Args: a: Numerator b: Denominator (must not be zero) Returns: Quot | STRING |
| HIGH | sdk/src/openagents/config/llm_configs.py | 447 | Create the appropriate model provider instance. Args: provider: Provider name (e.g., "openai", "claude", et | STRING |
| HIGH | sdk/src/openagents/agents/llamaindex_agent.py | 43 | Convert an OpenAgents AgentTool to a LlamaIndex FunctionTool. Args: agent_tool: The OpenAgents tool to | STRING |
| HIGH | sdk/src/openagents/agents/runner.py | 184 | Create an agent runner from a YAML file. This method loads a WorkerAgent (which is a type of AgentRunner) from | STRING |
| HIGH | sdk/src/openagents/agents/langchain_agent.py | 42 | Convert an OpenAgents AgentTool to a LangChain BaseTool. This allows LangChain agents to use tools provided by | STRING |
| HIGH | sdk/src/openagents/agents/pydantic_ai_agent.py | 42 | Convert an OpenAgents AgentTool to a PydanticAI tool. This allows PydanticAI agents to use tools provided by t | STRING |
| HIGH | sdk/src/openagents/agents/crewai_agent.py | 66 | Convert an OpenAgents AgentTool to a CrewAI tool. Args: agent_tool: The OpenAgents tool to convert | STRING |
| HIGH | sdk/src/openagents/agents/autogen_agent.py | 117 | Convert an OpenAgents AgentTool to an AutoGen FunctionTool. Args: agent_tool: The OpenAgents tool to c | STRING |
| HIGH | sdk/src/openagents/agentid/client.py | 130 | Verify that an agent ID exists in the registry. Args: agent_id: Agent ID in any format (simple, Lev | STRING |
| HIGH | sdk/src/openagents/agentid/client.py | 166 | Get agent information from the registry. Args: agent_name: Agent name (globally unique) | STRING |
| HIGH | sdk/src/openagents/agentid/client.py | 215 | Resolve a DID to get the DID document. Args: did: DID in format did:openagents:xxx Returns | STRING |
| HIGH | sdk/src/openagents/agentid/client.py | 259 | Validate a JWT token. Args: token: JWT token to validate Returns: TokenValidat | STRING |
| HIGH | sdk/src/openagents/agentid/client.py | 304 | Request an authentication challenge. Args: agent_name: Agent name (globally unique) org | STRING |
| HIGH | sdk/src/openagents/agentid/client.py | 362 | Exchange a signature for a JWT token. Args: agent_name: Agent name (globally unique) no | STRING |
| HIGH | sdk/src/openagents/agentid/client.py | 426 | Claim/register a new agent ID. Agent names are globally unique (like Twitter handles). The org parameter | STRING |
| HIGH | sdk/src/openagents/agentid/parser.py | 66 | Parse a full name into agent name and optional org. Args: full_name: Agent name with optional @org suffix | STRING |
| HIGH | sdk/src/openagents/agentid/parser.py | 93 | Parse an agent ID string into its components. Supports all formats: - Simple: my-agent, my-agent@org - Leve | STRING |
| HIGH | sdk/src/openagents/agentid/parser.py | 155 | Normalize any agent ID format to Level 2 format. Args: agent_id: Agent ID in any supported format Retu | STRING |
| HIGH | sdk/src/openagents/agentid/parser.py | 171 | Normalize any agent ID format to Level 3 DID format. Args: agent_id: Agent ID in any supported format | STRING |
| HIGH | sdk/src/openagents/agentid/parser.py | 187 | Normalize any agent ID format to simple format. Args: agent_id: Agent ID in any supported format Retur | STRING |
| HIGH | sdk/src/openagents/agentid/parser.py | 203 | Extract agent name and org from any format. Args: agent_id: Agent ID in any supported format Returns: | STRING |
| HIGH | sdk/src/openagents/agentid/parser.py | 235 | Determine the format of an agent ID string. Args: agent_id: Agent ID string Returns: AgentIDFo | STRING |
| HIGH | sdk/src/openagents/utils/protobuf_utils.py | 16 | Safely get a value from an object that might be dict or protobuf. This function handles both Python dictionaries an | STRING |
| HIGH | sdk/src/openagents/utils/protobuf_utils.py | 47 | Convert a protobuf object to a dictionary recursively. This function handles the conversion of protobuf objects (es | STRING |
| HIGH | sdk/src/openagents/utils/protobuf_utils.py | 129 | Extract text content from a protobuf payload structure. This function specifically handles the common case of extra | STRING |
| HIGH | sdk/src/openagents/utils/protobuf_utils.py | 177 | Convert a raw transport message payload to a dictionary. This is a higher-level function that handles the common pa | STRING |
| HIGH | sdk/src/openagents/utils/password_utils.py | 14 | Hash a password using SHA-256. Args: password: Plain text password to hash Returns: | STRING |
| HIGH | sdk/src/openagents/utils/network_export.py | 67 | Export network configuration to ZIP file. Args: include_password_hashes: Whether to include passwor | STRING |
| HIGH | sdk/src/openagents/utils/agent_loader.py | 25 | Load an AgentRunner from YAML configuration. This function loads an AgentRunner instance (or subclass) from a | STRING |
| HIGH | sdk/src/openagents/utils/agent_loader.py | 155 | Create an AgentConfig instance from YAML config section. Args: config_data: Dictionary containing Agen | STRING |
| HIGH | sdk/src/openagents/utils/agent_loader.py | 311 | Dynamically load the specified agent class. Args: agent_type: Fully qualified class name (e.g., 'modul | STRING |
| HIGH | sdk/src/openagents/utils/agent_loader.py | 383 | Load a WorkerAgent from YAML configuration. This is a convenience function that loads a WorkerAgent specifical | STRING |
| HIGH | sdk/src/openagents/models/agent_config.py | 279 | Load configuration from a YAML file. Args: file_path: Path to the YAML configuration file | STRING |
| HIGH | sdk/src/openagents/models/tool_config.py | 185 | Create a list of AgentTool instances from tool configurations. Args: tool_configs: List of tool co | STRING |
| HIGH | sdk/src/openagents/sdk/a2a_registry.py | 138 | Announce a remote A2A agent to the registry. This fetches the agent's Agent Card and creates an AgentConnection | STRING |
| HIGH | sdk/src/openagents/sdk/a2a_registry.py | 365 | Fetch an Agent Card from a remote URL. Args: url: The A2A endpoint URL Returns: | STRING |
| HIGH | sdk/src/openagents/sdk/onm_pipeline.py | 64 | Run an event through the full mod pipeline. Args: event: The event to process. | STRING |
| HIGH | sdk/src/openagents/sdk/network.py | 256 | Load an AgentNetwork from a YAML configuration file. Args: config: String or Path to a YAML config | STRING |
| HIGH | sdk/src/openagents/sdk/network.py | 927 | Create a workspace instance for this network. This method creates a workspace that provides access to channels | STRING |
| HIGH | sdk/src/openagents/sdk/network.py | 1357 | Create an agent network from configuration. Args: config: Network configuration (NetworkConfig object, file | STRING |
| HIGH | sdk/src/openagents/sdk/workspace.py | 1217 | Start a new project with project-based collaboration. Args: project: Project instance with goal, na | STRING |
| HIGH | …ods/coordination/task_delegation/external_delegator.py | 99 | Get or create a connector for an external A2A URL. Args: external_url: URL of the external A2A agen | STRING |
| HIGH | …ods/coordination/task_delegation/external_delegator.py | 135 | Delegate a task to an external A2A agent. Args: task: The local A2A Task to delegate ex | STRING |
| HIGH | sdk/src/openagents/mods/test_mods/basic_test/adapter.py | 223 | Handle test ping tool execution. Args: parameters: Tool parameters Returns: Di | STRING |
| HIGH | sdk/src/openagents/mods/test_mods/basic_test/adapter.py | 253 | Handle get state tool execution. Args: parameters: Tool parameters Returns: Di | STRING |
| HIGH | sdk/src/openagents/mods/test_mods/basic_test/adapter.py | 280 | Handle send test message tool execution. Args: parameters: Tool parameters Returns: | STRING |
| HIGH | …openagents/mods/workspace/messaging/thread_messages.py | 75 | Validate that event.payload has required channel message fields. Args: event: Event to validate | STRING |
| HIGH | …openagents/mods/workspace/messaging/thread_messages.py | 189 | Validate that event.payload has required reply message fields. Args: event: Event to validate | STRING |
| HIGH | …openagents/mods/workspace/messaging/thread_messages.py | 324 | Validate that event.payload has required file upload fields. Args: event: Event to validate | STRING |
| HIGH | sdk/src/openagents/client/connect.py | 103 | Connect to the OpenAgents identity registry. If the agent is already registered (cached locally), verifies the | STRING |
| HIGH | sdk/src/openagents/client/cli_helpers.py | 1016 | Launch studio using Python's built-in HTTP server to serve static files. This function does not require Node.js | STRING |
| HIGH | sdk/src/openagents/client/cli_helpers.py | 1217 | Launch the studio frontend development server. Args: studio_port: Port for the studio frontend Returns | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/backend/app/browser_egress.py | 175 | CODE | |
| LOW | workspace/backend/app/browser.py | 510 | CODE | |
| LOW | workspace/backend/app/main.py | 140 | CODE | |
| LOW | workspace/backend/app/main.py | 358 | CODE | |
| LOW | workspace/backend/app/routers/files.py | 735 | CODE | |
| LOW | workspace/backend/app/routers/files.py | 1367 | CODE | |
| LOW | workspace/backend/app/routers/tasks.py | 248 | CODE | |
| LOW | workspace/backend/app/routers/events.py | 364 | CODE | |
| LOW | workspace/backend/app/routers/browser.py | 410 | CODE | |
| LOW | workspace/backend/app/routers/nodes.py | 358 | CODE | |
| LOW | workspace/backend/app/routers/integrations.py | 175 | CODE | |
| LOW | workspace/backend/app/routers/workspaces.py | 593 | CODE | |
| LOW | workspace/backend/app/routers/workspaces.py | 1380 | CODE | |
| LOW | workspace/backend/app/mods/workspace_mod.py | 964 | CODE | |
| LOW | workspace/backend/app/mods/workspace_mod.py | 1462 | CODE | |
| LOW | workspace/backend/app/services/onboarding_reminders.py | 64 | CODE | |
| LOW | workspace/backend/app/services/agent_registry.py | 53 | CODE | |
| LOW | workspace/backend/app/services/cloud_agent.py | 484 | CODE | |
| LOW | workspace/backend/app/services/campaign.py | 589 | CODE | |
| LOW | workspace/backend/app/services/fcm_client.py | 254 | CODE | |
| LOW | workspace/backend/app/services/integrations.py | 267 | CODE | |
| LOW | workspace/backend/app/services/integrations.py | 474 | CODE | |
| LOW | workspace/backend/app/services/watches.py | 265 | CODE | |
| LOW | workspace/backend/app/services/cloud_providers.py | 681 | CODE | |
| LOW | workspace/backend/app/services/push.py | 176 | CODE | |
| LOW | workspace/backend/app/services/push.py | 307 | CODE | |
| LOW | workspace/backend/tests/test_migration_schema.py | 136 | CODE | |
| LOW | workspace/backend/openagents/core/onm_pipeline.py | 63 | CODE | |
| LOW | workspace/backend/scripts/backfill_pilot_daily.py | 48 | CODE | |
| LOW | workspace/scripts/insforge-migration/migrate.py | 387 | CODE | |
| LOW | tests/studio/test_workspace_http_messaging.py | 250 | CODE | |
| LOW | tests/studio/test_workspace_http_messaging.py | 339 | CODE | |
| LOW | tests/studio/test_forum_mod_with_http_api.py | 90 | CODE | |
| LOW | tests/studio/test_messaging_mod_with_http_api.py | 90 | CODE | |
| LOW | tests/grpc/test_mixed_grpc_http_communication.py | 28 | CODE | |
| LOW | tests/grpc/test_basic_grpc_communication.py | 27 | CODE | |
| LOW | tests/a2a/test_a2a_connector.py | 292 | CODE | |
| LOW | tests/integration/conftest.py | 61 | CODE | |
| LOW | …s/workspace/test_grpc_workspace_client_worker_agent.py | 158 | CODE | |
| LOW | tests/workspace/test_grpc_workspace.py | 413 | CODE | |
| LOW | tests/network/test_agent_groups.py | 571 | CODE | |
| LOW | tests/agents/test_mcp_tool.py | 76 | CODE | |
| LOW | tests/agents/test_mcp_tool.py | 90 | CODE | |
| LOW | tests/http/test_mod_settings_api.py | 229 | CODE | |
| LOW | tests/http/test_basic_http_communication.py | 26 | CODE | |
| LOW | tests/external_access/test_mcp_tools.py | 41 | CODE | |
| LOW | tests/mods/test_thread_messaging.py | 36 | CODE | |
| LOW | sdk/examples/community_knowledge_base/ai_news_agent.py | 164 | CODE | |
| LOW | sdk/examples/community_knowledge_base/ai_news_agent.py | 274 | CODE | |
| LOW | sdk/examples/community_knowledge_base/ai_news_agent.py | 512 | CODE | |
| LOW | sdk/examples/community_knowledge_base/reddit_util.py | 399 | CODE | |
| LOW | sdk/examples/community_knowledge_base/reddit_util.py | 160 | CODE | |
| LOW | sdk/examples/test_agents/test_tools.py | 31 | CODE | |
| LOW | sdk/examples/agent_manager/agents/test_logger.py | 27 | CODE | |
| LOW | sdk/demos/02_tech_news_stream/tools/news_fetcher.py | 11 | CODE | |
| LOW | sdk/demos/02_tech_news_stream/tools/news_fetcher.py | 64 | CODE | |
| LOW | sdk/demos/02_tech_news_stream/tools/news_fetcher.py | 115 | CODE | |
| LOW | sdk/demos/02_tech_news_stream/agents/news_hunter.py | 96 | CODE | |
| LOW | …/demos/08_alternative_service_project/test_workflow.py | 11 | CODE | |
| LOW | …emos/08_alternative_service_project/tools/web_fetch.py | 10 | CODE | |
| 249 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/backend/app/browser_maintenance.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/access.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/cache.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/cache.py | 67 | def set_bytes(key: str, value: bytes, ttl_seconds: float) -> None: | CODE |
| LOW | workspace/backend/app/browser_egress.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/browser.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/net_security.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/composing.py | 14 | def set_composing(workspace_id: str, channel: str) -> None: | CODE |
| LOW | workspace/backend/app/firebase_auth.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/main.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/browser_creds.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/fetch.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/auth.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/cloud_agents.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/files.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/invites.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/tasks.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/todos.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/events.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/onboarding.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/app_version.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/model_access.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/browser.py | 56 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/network.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/search.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/workflows.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/notifications.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/routines.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/nodes.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/timers.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/devices.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/knowledge.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/integrations.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/routers/shares.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/watches.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/account.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/routers/workspaces.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/mods/auth.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/mods/persistence.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/mods/workspace_mod.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/onboarding_reminders.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/pilot.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/notify.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/cloud_agent.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/campaign.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/fcm_client.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/services/yumi.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/email.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/analytics.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/workflow.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/integrations.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/watches.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | workspace/backend/app/services/cloud_providers.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/app/services/push.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/openagents/core/onm_mods.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | workspace/backend/openagents/core/onm_pipeline.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/studio/test_workspace_http_messaging.py | 56 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/studio/test_forum_mod_with_http_api.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/studio/test_messaging_mod_with_http_api.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/mods/test_grpc_workspace_forum.py | 25 | logger = logging.getLogger(__name__) | CODE |
| 171 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/http/test_onboarding_apis.py | 381 | # Step 1: Apply template (simulates OnboardingStep2) | COMMENT |
| LOW | tests/http/test_onboarding_apis.py | 392 | # Step 2: Set admin password (simulates deployment step) | COMMENT |
| LOW | tests/http/test_onboarding_apis.py | 403 | # Step 3: Set model config | COMMENT |
| LOW | tests/http/test_onboarding_apis.py | 418 | # Step 4: Admin login (simulates OnboardingSuccess) | COMMENT |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 281 | # Step 3: Verify file content integrity | COMMENT |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 289 | # Step 4: Verify file metadata | COMMENT |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 538 | # Step 1: Upload large file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 219 | # Step 1: Alice uploads a file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 253 | # Step 2: Bob downloads the file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 399 | # Step 1: Upload all files | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 450 | # Step 2: Download all files and verify content | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 569 | # Step 2: Download large file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 594 | # Step 3: Verify large file content integrity | COMMENT |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 335 | # Step 3: Verify file content integrity | COMMENT |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 343 | # Step 4: Verify file metadata | COMMENT |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 594 | # Step 1: Upload large file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 273 | # Step 1: Alice uploads a file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 307 | # Step 2: Bob downloads the file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 454 | # Step 1: Upload all files | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 505 | # Step 2: Download all files and verify content | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 625 | # Step 2: Download large file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 650 | # Step 3: Verify large file content integrity | COMMENT |
| LOW | docs/projects/openagents_agent_client_concept.md | 640 | # Step 1: Install | COMMENT |
| LOW | docs/projects/openagents_agent_client_concept.md | 646 | # Step 2: Start | COMMENT |
| LOW⚡ | docs/projects/workspace_migration.md | 259 | # Step 1: network scoping | COMMENT |
| LOW⚡ | docs/projects/workspace_migration.md | 265 | # Step 2: entity type | COMMENT |
| LOW | …angelogs/blogs/2025-11-29-mcp-workspace-event-tools.md | 205 | ### Step 1: Create a Tools Folder | COMMENT |
| LOW | …angelogs/blogs/2025-11-29-mcp-workspace-event-tools.md | 211 | ### Step 2: Add a Tool | COMMENT |
| LOW | …angelogs/blogs/2025-11-29-mcp-workspace-event-tools.md | 223 | ### Step 3: Configure MCP Transport | COMMENT |
| LOW | …angelogs/blogs/2025-11-29-mcp-workspace-event-tools.md | 234 | ### Step 4: Start the Network | COMMENT |
| LOW | changelogs/blogs/2025-12-18-elon-musk-news-tracker.md | 47 | ### Step 1: Install OpenAgents | COMMENT |
| LOW | changelogs/blogs/2025-12-18-elon-musk-news-tracker.md | 60 | ### Step 2: Start the News Tracker | COMMENT |
| LOW | changelogs/blogs/2025-12-18-elon-musk-news-tracker.md | 87 | ### Step 3: Connect Claude Desktop | COMMENT |
| LOW | changelogs/blogs/2025-12-18-elon-musk-news-tracker.md | 117 | ### Step 4: Ask Claude! | COMMENT |
| LOW | changelogs/blogs/2025-12-27-admin-onboarding.md | 22 | ### Step 1: Welcome | COMMENT |
| LOW | changelogs/blogs/2025-12-27-admin-onboarding.md | 26 | ### Step 2: Choose Your Template | COMMENT |
| LOW | changelogs/blogs/2025-12-27-admin-onboarding.md | 38 | ### Step 3: Set Admin Password | COMMENT |
| LOW | changelogs/blogs/2025-12-27-admin-onboarding.md | 42 | ### Step 4: Configure Default Model (Optional) | COMMENT |
| LOW | changelogs/blogs/2025-12-27-admin-onboarding.md | 53 | ### Step 5: Watch It Deploy | COMMENT |
| LOW | …logs/blogs/2025-11-29-custom-tools-events-workspace.md | 34 | ### Step 1: Create the Tools Folder | COMMENT |
| LOW | …logs/blogs/2025-11-29-custom-tools-events-workspace.md | 40 | ### Step 2: Write Your First Tool | COMMENT |
| LOW | …logs/blogs/2025-11-29-custom-tools-events-workspace.md | 93 | ### Step 3: Customize Tool Names and Descriptions | COMMENT |
| LOW | …logs/blogs/2025-11-29-custom-tools-events-workspace.md | 111 | ### Step 4: Mix Sync and Async Functions | COMMENT |
| LOW | …logs/blogs/2025-11-29-custom-tools-events-workspace.md | 181 | ### Step 1: Create the Events Folder | COMMENT |
| LOW | …logs/blogs/2025-11-29-custom-tools-events-workspace.md | 187 | ### Step 2: Define Your Events | COMMENT |
| LOW | changelogs/docs/2025-12-18-elon-musk-news-tracker.md | 21 | ### Step 1: Clone and Install OpenAgents | COMMENT |
| LOW | changelogs/docs/2025-12-18-elon-musk-news-tracker.md | 35 | ### Step 2: Verify Demo Files | COMMENT |
| LOW | changelogs/docs/2025-12-27-admin-onboarding.md | 11 | #### Step 1: Welcome | COMMENT |
| LOW | changelogs/docs/2025-12-27-admin-onboarding.md | 19 | #### Step 2: Network Template Selection | COMMENT |
| LOW | changelogs/docs/2025-12-27-admin-onboarding.md | 33 | #### Step 3: Admin Password | COMMENT |
| LOW | changelogs/docs/2025-12-27-admin-onboarding.md | 42 | #### Step 4: Default Model Configuration (Optional) | COMMENT |
| LOW | changelogs/docs/2025-12-27-admin-onboarding.md | 70 | #### Step 5: Deployment Progress | COMMENT |
| LOW | changelogs/docs/2025-12-20-grammar-forum-bedrock.md | 189 | ### Step 1: Configure AWS Credentials | COMMENT |
| LOW | changelogs/docs/2025-12-20-grammar-forum-bedrock.md | 198 | ### Step 2: Start the Network | COMMENT |
| LOW | changelogs/docs/2025-12-20-grammar-forum-bedrock.md | 214 | ### Step 3: Launch the Agent | COMMENT |
| LOW | changelogs/docs/2025-12-20-grammar-forum-bedrock.md | 233 | ### Step 4: Connect via Studio | COMMENT |
| LOW | changelogs/docs/2025-12-20-grammar-forum-bedrock.md | 244 | ### Step 5: Test the Grammar Checker | COMMENT |
| LOW | changelogs/docs/2025-11-26-docker-deployment.md | 166 | #### Step 1: Create a Network Workspace | COMMENT |
| LOW | changelogs/docs/2025-11-26-docker-deployment.md | 179 | #### Step 2: Customize Your Configuration | COMMENT |
| LOW | changelogs/docs/2025-11-26-docker-deployment.md | 201 | #### Step 3: Mount and Run | COMMENT |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/backend/app/services/integrations.py | 69 | """Human-source slug: 'Jane Doe' → 'jane-doe' (mention-safe charset).""" | STRING |
| LOW⚡ | workspace/backend/tests/test_workspaces.py | 42 | "creator_email": "user@example.com", | CODE |
| LOW⚡ | workspace/backend/tests/test_workspaces.py | 48 | assert detail.json()["data"]["creatorEmail"] == "user@example.com" | CODE |
| LOW⚡ | workspace/backend/tests/test_collaborators.py | 202 | headers={"Authorization": "Bearer fake-token"}, | CODE |
| LOW⚡ | workspace/backend/tests/test_collaborators.py | 212 | headers={"Authorization": "Bearer fake-token"}, | CODE |
| LOW⚡ | workspace/backend/tests/test_collaborators.py | 238 | headers={"Authorization": "Bearer fake-token"}, | CODE |
| LOW⚡ | workspace/backend/tests/test_integrations.py | 244 | monkeypatch.setattr(svc, "slack_user_display_name", lambda tok, uid: "Jane Doe") | CODE |
| LOW⚡ | workspace/backend/tests/test_integrations.py | 342 | assert official_binding["name"] == "Acme Corp" | CODE |
| LOW⚡ | workspace/backend/tests/test_integrations.py | 365 | "team": {"id": "TOFFICIAL", "name": "Acme Corp"}, | CODE |
| LOW | workspace/backend/tests/test_integrations.py | 305 | "team": {"id": "TOFFICIAL", "name": "Acme Corp"}, | CODE |
| LOW⚡ | workspace/backend/tests/test_login_session_auth.py | 260 | with _mock_firebase_verify("user@example.com"): | CODE |
| LOW | workspace/backend/registry/openclaw.json | 66 | "placeholder": "https://api.openai.com/v1" | CODE |
| LOW | workspace/backend/registry/openclaw.json | 72 | "placeholder": "gpt-4o, claude-sonnet-4-20250514, deepseek-chat, etc." | CODE |
| LOW | workspace/backend/registry/cline.json | 68 | "placeholder": "openrouter" | CODE |
| LOW | workspace/backend/registry/cline.json | 74 | "placeholder": "anthropic/claude-sonnet-4.6" | CODE |
| LOW | workspace/backend/registry/hermes.json | 60 | "placeholder": "https://api.openai.com/v1" | CODE |
| LOW | workspace/backend/registry/codebuddy.json | 80 | "placeholder": "default-model" | CODE |
| LOW | workspace/backend/registry/codebuddy.json | 99 | "placeholder": "100" | CODE |
| LOW | workspace/backend/registry/codebuddy.json | 105 | "placeholder": "https://www.codebuddy.cn" | CODE |
| LOW | workspace/backend/registry/commandcode.json | 70 | "placeholder": "claude-sonnet-4-6" | CODE |
| LOW | workspace/backend/registry/commandcode.json | 86 | "placeholder": "100" | CODE |
| LOW | workspace/backend/registry/aider.json | 53 | "placeholder": "auto" | CODE |
| LOW | workspace/backend/registry/aider.json | 59 | "placeholder": "gpt-4o" | CODE |
| LOW | workspace/backend/registry/aider.json | 71 | "placeholder": "https://my-endpoint.example/v1" | CODE |
| LOW | workspace/backend/registry/deepseek.json | 67 | "placeholder": "https://api.deepseek.com" | CODE |
| LOW | workspace/backend/registry/deepseek.json | 73 | "placeholder": "deepseek-v4-flash" | CODE |
| LOW | workspace/backend/registry/opencode.json | 59 | "placeholder": "https://api.openai.com/v1" | CODE |
| LOW | workspace/backend/registry/opencode.json | 65 | "placeholder": "gpt-4o, claude-sonnet-4-20250514, etc." | CODE |
| LOW | workspace/backend/registry/kimi.json | 63 | "placeholder": "https://api.moonshot.ai/v1" | CODE |
| LOW | workspace/backend/registry/kimi.json | 70 | "placeholder": "kimi-k2.6" | CODE |
| LOW | workspace/backend/registry/openworker.json | 96 | "placeholder": "https://my-endpoint.example/v1" | CODE |
| LOW | workspace/backend/registry/openworker.json | 102 | "placeholder": "gpt-5.6-sol" | CODE |
| LOW | workspace/backend/registry/openworker.json | 130 | "placeholder": "~/.config/coworker" | CODE |
| LOW⚡ | workspace/backend/registry/mini-swe-agent.json | 51 | "placeholder": "anthropic/claude-sonnet-4-5" | CODE |
| LOW⚡ | workspace/backend/registry/mini-swe-agent.json | 57 | "placeholder": "/path/to/mini.yaml" | CODE |
| LOW⚡ | workspace/backend/registry/mini-swe-agent.json | 63 | "placeholder": "3.0" | CODE |
| LOW | workspace/backend/registry/mini-swe-agent.json | 75 | "placeholder": "https://your-anthropic-gateway.example" | CODE |
| LOW | workspace/backend/registry/mini-swe-agent.json | 87 | "placeholder": "https://your-relay.example/v1" | CODE |
| LOW | workspace/backend/registry/mini-swe-agent.json | 99 | "placeholder": "https://api.deepseek.com" | CODE |
| LOW | workspace/backend/registry/pi.json | 70 | "placeholder": "anthropic", | CODE |
| LOW | workspace/backend/registry/pi.json | 86 | "placeholder": "claude-sonnet-4-6" | CODE |
| LOW | workspace/backend/registry/pi.json | 104 | "placeholder": "https://relay.example.com/v1" | CODE |
| LOW | tests/test_onm_addressing.py | 41 | assert addr.name == "user@example.com" | CODE |
| LOW | tests/test_onm_addressing.py | 226 | assert make_human_address("user@example.com") == "human:user@example.com" | CODE |
| LOW⚡ | tests/agents/test_orchestrator.py | 328 | api_key="fake_key", # This will cause an error, which is expected | CODE |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 530 | large_content += "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n" | CODE |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 530 | large_content += "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n" | CODE |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 586 | large_content += "Lorem ipsum dolor sit amet, consectetur adipiscing elit. HTTP transport test.\n" | CODE |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 586 | large_content += "Lorem ipsum dolor sit amet, consectetur adipiscing elit. HTTP transport test.\n" | CODE |
| LOW⚡ | docs/projects/workspace_migration.md | 251 | "human:user@example.com" → Address(network="local", entity_type="human", name="user@example.com") | STRING |
| LOW | …ngelogs/docs/2025-12-09-langchain-agent-integration.md | 27 | ("placeholder", "{agent_scratchpad}"), | CODE |
| LOW | sdk/studio/src/i18n/locales/ja/messaging.json | 24 | "placeholder": "メッセージを入力...", | CODE |
| LOW | sdk/studio/src/i18n/locales/ja/common.json | 82 | "placeholder": { | CODE |
| LOW | sdk/studio/src/i18n/locales/ja/admin.json | 56 | "placeholder": "メッセージを入力...", | CODE |
| LOW | sdk/studio/src/i18n/locales/ja/admin.json | 208 | "placeholder": "oa-xxxxxxxxxxxxxxxx", | CODE |
| LOW | sdk/studio/src/i18n/locales/ja/admin.json | 509 | "placeholder": "# マイネットワーク\n\nネットワークの説明をここに記載...\n\n## 利用可能なサービス\n\n- サービス 1\n- サービス 2\n\n## 使用方法\n\nネットワークの使用方法を説明. | CODE |
| LOW | sdk/studio/src/i18n/locales/zh-CN/messaging.json | 24 | "placeholder": "输入消息...", | CODE |
| LOW | sdk/studio/src/i18n/locales/zh-CN/common.json | 82 | "placeholder": { | CODE |
| LOW | sdk/studio/src/i18n/locales/zh-CN/network.json | 52 | "placeholder": "输入标签并回车", | CODE |
| LOW | sdk/studio/src/i18n/locales/zh-CN/network.json | 57 | "placeholder": "输入分类并回车", | CODE |
| 98 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/frontend/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | workspace/frontend/vite.config.ts | 41 | ], | COMMENT |
| LOW | workspace/frontend/components/chat/chat-messages.tsx | 221 | }, | COMMENT |
| LOW | workspace/frontend/components/layout/wrapper.tsx | 101 | // established workspace (with history) from being hijacked by onboarding | COMMENT |
| LOW | …ace/frontend/components/agents/agent-profile-panel.tsx | 141 | COMMENT | |
| LOW | workspace/frontend/components/agents/agent-setup.tsx | 561 | // model list, but a generic LLM_* env mapping — the form offers the | COMMENT |
| LOW | …ace/frontend/components/connect/connect-agent-view.tsx | 2021 | )} | COMMENT |
| LOW | workspace/frontend/components/connect/welcome-film.tsx | 1 | 'use client'; | COMMENT |
| LOW | workspace/frontend/public/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | workspace/frontend/lib/desktop-handoff.ts | 1 | // Login handoff for the desktop launcher. | COMMENT |
| LOW | workspace/backend/entrypoint.sh | 1 | #!/bin/sh | COMMENT |
| LOW | workspace/backend/app/config.py | 21 | AUTH_MODE: str = os.environ.get("AUTH_MODE", "workspace_token") | COMMENT |
| LOW | workspace/backend/app/config.py | 41 | COMMENT | |
| LOW | workspace/backend/app/config.py | 61 | # Empty by default for the same reason as FIREBASE_PROJECT_ID: a bundle id | COMMENT |
| LOW | workspace/backend/app/config.py | 121 | COMMENT | |
| LOW | workspace/backend/app/config.py | 181 | # The official "OpenAgents" Slack app (one-click Add to Slack). All three | COMMENT |
| LOW | workspace/backend/app/config.py | 201 | # Unverified users still receive the signup credit ($5) and their key the | COMMENT |
| LOW | workspace/backend/app/models.py | 381 | # Per-node machine credential, minted at pairing redeem and REUSED on | COMMENT |
| LOW | workspace/backend/app/database.py | 21 | # Register PostgreSQL type compilers for SQLite so JSONB/UUID columns work. | COMMENT |
| LOW | workspace/backend/app/database.py | 41 | ":6543/" in config.DATABASE_URL | COMMENT |
| LOW | workspace/backend/app/browser_egress.py | 41 | # An upstream that never closes must not be able to hold a relay task open | COMMENT |
| LOW | workspace/backend/app/net_security.py | 41 | COMMENT | |
| LOW | workspace/backend/app/main.py | 261 | continue # another replica already claimed this tick | COMMENT |
| LOW | workspace/backend/app/routers/files.py | 881 | "uploaded_count": len(uploaded), | COMMENT |
| LOW | workspace/backend/app/routers/events.py | 401 | # | COMMENT |
| LOW | workspace/backend/app/routers/events.py | 541 | # must be kept, so the NOT IN check alone is not enough. | COMMENT |
| LOW | workspace/backend/app/routers/browser.py | 61 | # Enforce it at the DB level BEFORE calling BF so the user gets an | COMMENT |
| LOW | workspace/backend/app/routers/routines.py | 301 | if body.days is not None: | COMMENT |
| LOW | workspace/backend/app/routers/devices.py | 61 | network: str | COMMENT |
| LOW | workspace/backend/app/mods/workspace_mod.py | 1681 | else: | COMMENT |
| LOW | workspace/backend/openagents/__init__.py | 1 | # Vendored ONM core modules for serverless deployment (Vercel). | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 161 | // }, | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 341 | ) | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 521 | label: "AgentWorld", | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 641 | navigationConfig: { | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 661 | // order: 6, | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 681 | // } | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 701 | // ), | COMMENT |
| LOW | sdk/studio/src/config/routeConfig.ts | 721 | // }, | COMMENT |
| LOW | sdk/studio/src/stores/chatStore.ts | 2301 | // const state = get(); | COMMENT |
| LOW | sdk/studio/src/stores/chatStore.ts | 2481 | // console.log("ChatStore: This is own reply message, looking for optimistic message to replace"); | COMMENT |
| LOW | sdk/studio/src/stores/chatStore.ts | 2501 | // return contentMatch && senderMatch && typeMatch && replyMatch && timeMatch; | COMMENT |
| LOW | sdk/studio/src/stores/chatStore.ts | 2621 | // // Check if it's own direct message | COMMENT |
| LOW | sdk/studio/src/stores/chatStore.ts | 2641 | // console.log(`ChatStore: Checking optimistic direct message ${msg.tempId || msg.id}: content=${content | COMMENT |
| LOW | sdk/studio/src/pages/forum/ForumSidebar.tsx | 21 | // const ForumCategoryItem: React.FC<{ | COMMENT |
| LOW | sdk/studio/src/pages/messaging/MessagingView.tsx | 761 | {/* Messages */} | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 21 | COMMENT | |
| LOW | sdk/studio/src/services/notificationService.ts | 41 | // } | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 61 | // } | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 81 | // max-width: 350px; | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 101 | // } | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 121 | // background: none; | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 241 | // * Show in-browser notification as fallback | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 261 | // <div class="notification-body"> | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 281 | // if (config.channel) { | COMMENT |
| LOW | sdk/studio/src/services/notificationService.ts | 301 | // setTimeout(() => { | COMMENT |
| LOW | sdk/examples/agent_yaml/openai_agent_config.yaml | 41 | # Connection configuration (optional - can be overridden by command line) | COMMENT |
| LOW | sdk/src/openagents/ui/__init__.py | 1 | # UI modules for OpenAgents | COMMENT |
| LOW | sdk/src/openagents/agents/runner.py | 481 | # | COMMENT |
| LOW | sdk/src/openagents/models/messages.py | 1 | """Message models for OpenAgents - now using unified Event system only.""" | COMMENT |
| 97 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | workspace/backend/app/browser.py | 43 | ".map(function (i) { return {url: i.currentSrc || i.src || '', alt: i.alt || ''}; })" | CODE |
| HIGH⚡ | workspace/backend/tests/test_push.py | 88 | "for f in $(grep -rliE 'foo' . 2>/dev/null); do\n" | CODE |
| HIGH | workspace/backend/tests/test_push.py | 274 | "Bash › cd /tmp && ls", | CODE |
| HIGH | workspace/backend/openagents/core/onm_events.py | 45 | target: str # e.g., "channel/session-abc" (NEVER null) | CODE |
| HIGH⚡ | tests/agents/test_kimi_adapter.py | 166 | assert parser.push('{"role":"assistant","content":"hel') == [] | CODE |
| HIGH⚡ | tests/agents/test_kimi_adapter.py | 167 | msgs = parser.push('lo"}\n{"role":"meta","type":"system.version","version":"0.39.1"}\n') | CODE |
| HIGH⚡ | tests/agents/test_kimi_adapter.py | 172 | parser.push('{"role":"assistant","content":"tail"}') | CODE |
| HIGH⚡ | tests/agents/test_kimi_adapter.py | 173 | assert parser.push("") == [] | CODE |
| HIGH⚡ | tests/agents/test_kimi_adapter.py | 178 | msgs = parser.push( | CODE |
| HIGH⚡ | tests/agents/test_kimi_adapter.py | 185 | assert parser.push(b'{"role":"assistant","content":"b"}\n')[0]["content"] == "b" | CODE |
| HIGH | tests/mods/test_messaging_memory_management.py | 20 | cd tests/mods && python test_messaging_memory_management.py | STRING |
| HIGH | sdk/examples/agentworld_network/test_network.py | 213 | print(" cd /path/to/agentworld && yarn dev") | CODE |
| HIGH | sdk/src/openagents/agents/orchestrator.py | 262 | # If there are tool calls, content can be null, but if no tool calls, content must be a string | COMMENT |
| HIGH⚡ | sdk/src/openagents/adapters/kimi.py | 612 | for parsed in parser.push(chunk): | CODE |
| HIGH | sdk/src/openagents/sdk/onm_events.py | 44 | target: str # e.g., "channel/session-abc" (NEVER null) | CODE |
| HIGH | sdk/src/openagents/sdk/transports/mcp.py | 612 | # If port is None/null, skip standalone server binding | COMMENT |
| HIGH | sdk/src/openagents/sdk/transports/mcp.py | 615 | logger.info("MCP transport: standalone port disabled (port: null), skipping listen") | CODE |
| HIGH | sdk/src/openagents/client/tunnel.py | 43 | "-o /usr/local/bin/cloudflared && chmod +x /usr/local/bin/cloudflared" | CODE |
| HIGH⚡ | sdk/src/openagents/client/cli_helpers.py | 743 | [code]node --version && npm --version[/code] | CODE |
| HIGH | sdk/src/openagents/client/cli_helpers.py | 726 | [code]sudo apt update && sudo apt install nodejs npm[/code] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/http/test_onboarding_apis.py | 381 | # Step 1: Apply template (simulates OnboardingStep2) | COMMENT |
| LOW | tests/http/test_onboarding_apis.py | 392 | # Step 2: Set admin password (simulates deployment step) | COMMENT |
| LOW | tests/http/test_onboarding_apis.py | 403 | # Step 3: Set model config | COMMENT |
| LOW | tests/http/test_onboarding_apis.py | 418 | # Step 4: Admin login (simulates OnboardingSuccess) | COMMENT |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 281 | # Step 3: Verify file content integrity | COMMENT |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 289 | # Step 4: Verify file metadata | COMMENT |
| LOW⚡ | …sts/mods/test_grpc_thread_messaging_file_operations.py | 538 | # Step 1: Upload large file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 219 | # Step 1: Alice uploads a file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 253 | # Step 2: Bob downloads the file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 399 | # Step 1: Upload all files | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 450 | # Step 2: Download all files and verify content | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 569 | # Step 2: Download large file | COMMENT |
| LOW | …sts/mods/test_grpc_thread_messaging_file_operations.py | 594 | # Step 3: Verify large file content integrity | COMMENT |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 335 | # Step 3: Verify file content integrity | COMMENT |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 343 | # Step 4: Verify file metadata | COMMENT |
| LOW⚡ | …sts/mods/test_http_thread_messaging_file_operations.py | 594 | # Step 1: Upload large file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 273 | # Step 1: Alice uploads a file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 307 | # Step 2: Bob downloads the file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 454 | # Step 1: Upload all files | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 505 | # Step 2: Download all files and verify content | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 625 | # Step 2: Download large file | COMMENT |
| LOW | …sts/mods/test_http_thread_messaging_file_operations.py | 650 | # Step 3: Verify large file content integrity | COMMENT |
| LOW | sdk/studio/src/pages/OnboardingPage.tsx | 90 | // Step 1: Set admin password (25%) | COMMENT |
| LOW | sdk/studio/src/pages/OnboardingPage.tsx | 101 | // Step 2: Apply mods / template (50%) | COMMENT |
| LOW | sdk/studio/src/pages/OnboardingPage.tsx | 114 | // Step 3: Configure model (if provided) (75%) | COMMENT |
| LOW⚡ | sdk/studio/src/pages/OnboardingPage.tsx | 131 | // Step 4: Starting network (90%) | COMMENT |
| LOW⚡ | sdk/studio/src/pages/OnboardingPage.tsx | 135 | // Step 5: Verify connection (100%) | COMMENT |
| LOW | sdk/studio/src/pages/admin/NetworkPublish.tsx | 825 | // Step 2: Server-side validation to verify PUBLIC accessibility | COMMENT |
| LOW | sdk/studio/src/pages/messaging/MessagingView.tsx | 210 | // For new messages, we need to check if user was near bottom BEFORE the new content was added | COMMENT |
| LOW | sdk/examples/grpcs_example.py | 51 | # Step 1: Setup certificates | COMMENT |
| LOW | sdk/examples/grpcs_example.py | 63 | # Step 2: Create an agent | COMMENT |
| LOW | sdk/examples/grpcs_example.py | 81 | # Step 3: Connect using gRPCS with TLS | COMMENT |
| LOW | sdk/examples/grpcs_example.py | 98 | # Step 4: Send a test message | COMMENT |
| LOW⚡ | sdk/examples/cross_protocol_agents_example.py | 337 | # Step 1: Start the network | COMMENT |
| LOW⚡ | sdk/examples/cross_protocol_agents_example.py | 341 | # Step 2: Start the A2A agent server | COMMENT |
| LOW⚡ | sdk/examples/cross_protocol_agents_example.py | 346 | # Step 3: Connect gRPC agent | COMMENT |
| LOW⚡ | sdk/examples/cross_protocol_agents_example.py | 351 | # Step 4: Announce A2A agent to the network | COMMENT |
| LOW⚡ | sdk/examples/cross_protocol_agents_example.py | 355 | # Step 5: List all agents in the registry | COMMENT |
| LOW⚡ | sdk/examples/cross_protocol_agents_example.py | 359 | # Step 6: Send message from gRPC agent to A2A agent | COMMENT |
| LOW⚡ | sdk/examples/cross_protocol_agents_example.py | 363 | # Step 7: Send message from A2A to gRPC (via network) | COMMENT |
| LOW | sdk/examples/agentworld_network/simple_game_agent.py | 46 | # Step 1: Login to game (with channel) | COMMENT |
| LOW | sdk/examples/agentworld_network/simple_game_agent.py | 67 | # Step 2: Observe the game world | COMMENT |
| LOW | sdk/examples/agentworld_network/simple_game_agent.py | 92 | # Step 3: Move left by 3 tiles | COMMENT |
| LOW⚡ | sdk/examples/agentworld_network/simple_game_agent.py | 116 | # Step 4: Send "Hi" message in the game channel | COMMENT |
| LOW⚡ | sdk/src/openagents/agentid/client.py | 712 | # Step 1: Request challenge | COMMENT |
| LOW⚡ | sdk/src/openagents/agentid/client.py | 719 | # Step 2: Sign challenge | COMMENT |
| LOW⚡ | sdk/src/openagents/agentid/client.py | 722 | # Step 3: Get token | COMMENT |
| LOW | sdk/src/openagents/utils/network_tool_collector.py | 390 | # Step 1: Apply whitelist (exposed_tools) | COMMENT |
| LOW | sdk/src/openagents/utils/network_tool_collector.py | 405 | # Step 2: Apply blacklist (excluded_tools) | COMMENT |
| LOW⚡ | sdk/src/openagents/sdk/onm_addressing.py | 134 | # Step 1: network scoping | COMMENT |
| LOW⚡ | sdk/src/openagents/sdk/onm_addressing.py | 143 | # Step 2: determine entity type | COMMENT |
| LOW⚡ | sdk/src/openagents/sdk/network.py | 1204 | # Step 1: Shutdown current network | COMMENT |
| LOW⚡ | sdk/src/openagents/sdk/network.py | 1212 | # Step 2: Apply new configuration | COMMENT |
| LOW | sdk/src/openagents/sdk/network.py | 1302 | # Step 3: Reinitialize the network | COMMENT |
| LOW | sdk/src/openagents/client/agent_setup.py | 74 | # Step 1: Register agent (optional — may fail on self-hosted) | COMMENT |
| LOW⚡ | sdk/src/openagents/client/agent_setup.py | 101 | # Step 2: Join workspace + discover channels | COMMENT |
| LOW⚡ | sdk/src/openagents/client/agent_setup.py | 168 | # Step 3: Create adapter via plugin registry | COMMENT |
| LOW | sdk/src/openagents/client/connect.py | 137 | # Step 1: Check local cache | COMMENT |
| LOW⚡ | sdk/src/openagents/client/connect.py | 202 | # Step 2: Register new agent | COMMENT |
| LOW⚡ | scripts/install.sh | 70 | # Step 1: Node.js | COMMENT |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | workspace/frontend/package-lock.json | 9343 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | workspace/backend/app/models.py | 865 | context = Column(Text, nullable=True) # comprehensive background for the routine | CODE |
| MEDIUM | workspace/backend/app/routers/routines.py | 172 | """Call the LLM to expand a brief task description into comprehensive routine context.""" | STRING |
| MEDIUM | tests/studio/test_forum_mod_with_http_api.py | 554 | """Test comprehensive forum flow scenarios.""" | STRING |
| MEDIUM⚡ | tests/studio/test_messaging_mod_with_http_api.py | 476 | """Test comprehensive messaging flow scenarios.""" | STRING |
| MEDIUM | …s/workspace/test_grpc_workspace_client_worker_agent.py | 485 | """Test comprehensive message flow between workspace client and worker agent.""" | STRING |
| MEDIUM | …s/workspace/test_grpc_workspace_client_worker_agent.py | 543 | # The test demonstrates the intended comprehensive functionality | COMMENT |
| MEDIUM | tests/workspace/test_grpc_workspace.py | 187 | """Test comprehensive channel operations.""" | STRING |
| MEDIUM | tests/workspace/test_grpc_workspace.py | 235 | """Test comprehensive agent operations through workspace.""" | STRING |
| MEDIUM | tests/mods/test_grpc_workspace_wiki.py | 489 | "content": "# Python Development Guide\n\nComprehensive guide for Python development best practices.", | CODE |
| MEDIUM | …sts/mods/test_grpc_thread_messaging_file_operations.py | 207 | test_content = """This is a comprehensive test file for gRPC thread messaging. | CODE |
| MEDIUM | …sts/mods/test_http_thread_messaging_file_operations.py | 261 | test_content = """This is a comprehensive test file for HTTP thread messaging. | CODE |
| MEDIUM | tests/mods/test_project_mode.py | 260 | "value": "# Project Design\n\nThis is a comprehensive design document." | CODE |
| MEDIUM | sdk/src/openagents/utils/bulk_agent_manager.py | 88 | # Use a more robust event loop policy | COMMENT |
| LOW | sdk/src/openagents/sdk/agent_manager.py | 315 | # For now, just return valid since specific models may have their own env vars | COMMENT |
| LOW⚡ | sdk/src/openagents/sdk/network.py | 355 | # Save the config if version was just set (to persist it to the YAML file) | COMMENT |
| LOW | sdk/src/openagents/sdk/workspace.py | 1188 | # We'll just create the channel object locally | COMMENT |
| MEDIUM | …nts/mods/workspace/messaging/message_storage_helper.py | 429 | """Get comprehensive storage statistics.""" | STRING |
| MEDIUM | sdk/src/openagents/registry/deepseek.yaml | 22 | # `supported_version` rather than `min_version`: DeepSeek ships the harness as a | COMMENT |
| MEDIUM | sdk/src/openagents/client/cli_network.py | 663 | # Use regex for more robust PID extraction | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | workspace/backend/app/config.py | 113 | # LLM Router — uses a small model to decide agent turn-taking in multi-agent threads | COMMENT |
| MEDIUM | workspace/backend/app/mods/workspace_mod.py | 1626 | # ── Multi-agent channel: route per the thread's orchestration mode ── | COMMENT |
| MEDIUM | workspace/backend/app/services/cloud_providers.py | 125 | # ── Tier 2: Research & agentic platforms ────────────────────────── | COMMENT |
| MEDIUM | tests/agents/test_orchestrator.py | 120 | # Run orchestration | COMMENT |
| MEDIUM | tests/e2e/agent-smoke.js | 17 | // loads the agent, builds a large context prompt, and runs an agentic loop | COMMENT |
| MEDIUM | sdk/demos/01_startup_pitch_room/network.yaml | 2 | # A multi-agent chat room where agents roleplay as startup team members | COMMENT |
| MEDIUM | sdk/src/openagents/agents/runner.py | 498 | # Skip system events (system.*) - these are internal and should not trigger orchestration | COMMENT |
| MEDIUM | sdk/src/openagents/agents/project_echo_agent.py | 393 | # This is a demo workaround - in production, this would be event-driven | COMMENT |
| MEDIUM | sdk/src/openagents/agents/orchestrator.py | 125 | # Print colored box for orchestration start | COMMENT |
| MEDIUM | sdk/src/openagents/templates/__init__.py | 10 | # - multi-agent-chatroom: Messaging mod for multi-agent discussions | COMMENT |
| MEDIUM | …ents/templates/multi-agent-chatroom/agents/__init__.py | 1 | # Agents for multi-agent-chatroom template | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | llms.txt | 558 | export DEFAULT_LLM_API_KEY="your-api-key" # API key for the provider | CODE |
| HIGH | llms.txt | 611 | export DEFAULT_LLM_API_KEY="your-api-key" | CODE |
| HIGH | sdk/examples/agent_yaml/openai_agent_config.yaml | 31 | # api_key: "your-api-key-here" | COMMENT |
| HIGH | sdk/examples/default_network/README.md | 48 | export OPENAI_API_KEY=your-api-key | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workspace/backend/app/routers/files.py | 735 | CODE | |
| LOW | workspace/backend/app/routers/files.py | 1276 | CODE | |
| LOW | workspace/backend/app/routers/files.py | 1367 | CODE | |
| LOW | workspace/backend/app/routers/todos.py | 155 | CODE | |
| LOW | workspace/backend/app/routers/events.py | 364 | CODE | |
| LOW | workspace/backend/app/routers/notifications.py | 130 | CODE | |
| LOW | workspace/backend/tests/test_browser_tab_leak.py | 500 | CODE | |
| LOW | tests/lms/test_llm_logs_api.py | 23 | CODE | |
| LOW | tests/lms/test_llm_log_reader.py | 33 | CODE | |
| LOW | sdk/src/openagents/tools/exa_search.py | 55 | CODE | |
| LOW | sdk/src/openagents/agents/runner.py | 575 | CODE | |
| LOW | sdk/src/openagents/agents/runner.py | 853 | CODE | |
| LOW | sdk/src/openagents/agents/runner.py | 916 | CODE | |
| LOW | sdk/src/openagents/adapters/goose_stream.py | 65 | CODE | |
| LOW | sdk/src/openagents/sdk/event_gateway.py | 115 | CODE | |
| LOW | sdk/src/openagents/sdk/event_gateway.py | 143 | CODE | |
| LOW | sdk/src/openagents/sdk/client.py | 154 | CODE | |
| LOW | sdk/src/openagents/sdk/client.py | 350 | CODE | |
| LOW | sdk/src/openagents/sdk/connectors/grpc_connector.py | 31 | CODE | |
| LOW | sdk/src/openagents/sdk/transports/grpc.py | 267 | CODE | |
| LOW | sdk/src/openagents/sdk/transports/http.py | 1070 | CODE | |
| LOW | sdk/src/openagents/mods/workspace/feed/feed_messages.py | 72 | CODE | |
| LOW | sdk/src/openagents/mods/workspace/messaging/mod.py | 704 | CODE | |
| LOW | sdk/src/openagents/client/cli_network.py | 42 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/launcher/src/main/workspace-host.test.ts | 105 | const events = fakes.contents.on.mock.calls.map(([name]) => name) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdk/examples/community_knowledge_base/ai_news_agent.py | 394 | # Always post to general channel as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | sdk/src/openagents/workspace/tool_decorator.py | 33 | def my_function(): ... | STRING |
| LOW⚡ | sdk/src/openagents/workspace/tool_decorator.py | 36 | def my_function(): ... | STRING |
| LOW⚡ | sdk/src/openagents/workspace/tool_decorator.py | 39 | def my_function(): ... | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | workspace/backend/tests/test_database_recovery.py | 62 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdk/examples/agentworld_network/network.yaml | 5 | # Usage: | COMMENT |