Fully autonomous AI Agents system capable of performing complex penetration testing tasks
This report summarizes scanner evidence for vxcontrol/pentagi, a Go project with 32,844 GitHub stars. SynthScan examined 531,176 lines of code across 1529 source files, recording 415 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 1.2 (Low 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.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 304 finding(s).
Are imports declared and package/API names verified? 29 finding(s).
Are wrappers, guards, and repeated structures necessary? 103 finding(s).
Which changes need focused human review? 415 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 415 distinct pattern matches across 13 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 |
|---|---|---|---|---|
| LOW | docker-compose.e2e.yml | 1 | # Tier-2 e2e stack. Runs beside a developer stack: use its own project name, | COMMENT |
| LOW | README.md | 761 | # Optional: AWS Bedrock provider (enterprise-grade models) | COMMENT |
| LOW | frontend/types/vitest.d.ts | 1 | // Augment Vitest's `expect` with @testing-library/jest-dom matchers | COMMENT |
| LOW | frontend/e2e/tools/review-sandbox.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | frontend/src/features/knowledges/knowledge-form.tsx | 221 | // Navigation is the caller's job — it reads `redirectTo` off the returned result. | COMMENT |
| LOW | …d/src/features/flows/files/use-flow-container-files.ts | 61 | const [error, setError] = useState<Error | null>(null); | COMMENT |
| LOW | frontend/src/components/ui/data-table.tsx | 441 | query: effectiveQuery, | COMMENT |
| LOW | frontend/src/components/ui/data-table.test.tsx | 661 | expect(onPageChange).toHaveBeenCalledWith(0); | COMMENT |
| LOW | …/shared/markdown-editor/markdown-editor-toolbar-url.ts | 1 | // Authoring-time protocol allowlists for the toolbar's Link and Image popovers. They keep javascript:/data:text | COMMENT |
| LOW | …s/shared/markdown-editor/markdown-editor-extensions.ts | 661 | renderMarkdown: renderTunedCodeBlock, | COMMENT |
| LOW | …/markdown-editor/markdown-editor-heading-autoformat.ts | 21 | }; | COMMENT |
| LOW | …nents/shared/markdown-editor/markdown-editor-marked.ts | 61 | tokenizer: { | COMMENT |
| LOW | …nents/shared/markdown-editor/markdown-editor-marked.ts | 81 | // tokenized inline, its target would be a link of its own. | COMMENT |
| LOW | …/shared/markdown-editor/markdown-editor-table-pipes.ts | 1 | import { Lexer } from 'marked'; | COMMENT |
| LOW | …/shared/markdown-editor/markdown-editor-table-pipes.ts | 21 | COMMENT | |
| LOW | …/shared/markdown-editor/markdown-editor-table-pipes.ts | 41 | // A pipe inside a Go action is the template's pipeline operator, never a column separator — marked's splitter | COMMENT |
| LOW | …s/shared/detail-navigation/detail-navigation-sheet.tsx | 101 | return map; | COMMENT |
| LOW | …red/detail-navigation/detail-navigation-sheet.test.tsx | 401 | expect(document.activeElement).toHaveAttribute('data-item-id', 'a'); | COMMENT |
| LOW | …rc/components/shared/file-manager/file-manager-row.tsx | 401 | // the row's focus handler and silently change `activeRowPath` / | COMMENT |
| LOW | backend/cmd/installer/checker/product_info.go | 21 | // | COMMENT |
| LOW | backend/cmd/installer/checker/product_info.go | 41 | // as it was given. | COMMENT |
| LOW | backend/cmd/installer/checker/updates.go | 21 | // current, which is offered, and what the release says about the difference. | COMMENT |
| LOW | backend/cmd/installer/checker/updates.go | 61 | COMMENT | |
| LOW | backend/cmd/installer/checker/updates.go | 81 | // the difference between "nothing to do" and "we publish nothing for what you | COMMENT |
| LOW | backend/cmd/installer/checker/updates.go | 101 | Verifiable bool `json:"verifiable" yaml:"verifiable"` | COMMENT |
| LOW | backend/cmd/installer/checker/updates.go | 441 | if offered.Reason != nil { | COMMENT |
| LOW | backend/cmd/installer/checker/updates.go | 461 | COMMENT | |
| LOW | backend/cmd/installer/checker/helpers.go | 801 | // A digest pins the reference and is not part of the name. | COMMENT |
| LOW | backend/cmd/installer/checker/components.go | 21 | // asked about. The list has to be COMPLETE: the server answers only about what it was | COMMENT |
| LOW | backend/cmd/installer/checker/components.go | 41 | // table, or an update writes a file nothing reads. | COMMENT |
| LOW | backend/cmd/installer/checker/components.go | 301 | // | COMMENT |
| LOW | backend/cmd/installer/processor/compose.go | 61 | } | COMMENT |
| LOW | backend/cmd/installer/processor/jaeger_plugin.go | 21 | const stagingSuffix = ".new" | COMMENT |
| LOW | backend/cmd/installer/processor/jaeger_plugin.go | 181 | // has returned without complaint. | COMMENT |
| LOW | backend/cmd/installer/processor/update.go | 41 | // system would not say. It exists so the screen can print the exact command that puts | COMMENT |
| LOW | backend/cmd/installer/processor/update.go | 141 | COMMENT | |
| LOW | backend/cmd/installer/processor/pull_reference.go | 21 | // EMPTY variable falls back to the reference the file shipped with, so an | COMMENT |
| LOW | backend/cmd/installer/processor/fs.go | 41 | // overwritten afterwards, even when the user forces a files update | COMMENT |
| LOW | backend/cmd/installer/processor/model.go | 221 | // Polling continues even when this message carries an error, and that is the | COMMENT |
| LOW | backend/cmd/installer/processor/state.go | 21 | COMMENT | |
| LOW | backend/cmd/installer/processor/verify.go | 1 | package processor | COMMENT |
| LOW | backend/cmd/installer/wizard/models/update_overview.go | 41 | } | COMMENT |
| LOW | backend/cmd/installer/wizard/models/installer_update.go | 21 | // | COMMENT |
| LOW | backend/cmd/installer/wizard/styles/styles.go | 81 | COMMENT | |
| LOW | backend/cmd/installer/wizard/styles/styles.go | 141 | // terminal. | COMMENT |
| LOW | backend/cmd/installer/state/example_test.go | 81 | // --- Step 2: API Configuration --- | COMMENT |
| LOW | backend/cmd/installer/state/example_test.go | 181 | fmt.Printf("Session 2 - Final Step: %s, Changes: %d\n", | COMMENT |
| LOW | backend/cmd/installer/loader/example_test.go | 61 | COMMENT | |
| LOW | backend/cmd/installer/cloud/packages.go | 41 | COMMENT | |
| LOW | backend/cmd/installer/cloud/client.go | 41 | // powTimeout is the budget for the proof-of-work challenge each call has to solve. | COMMENT |
| LOW | backend/cmd/installer/cloud/client.go | 161 | // Host reports the normalised update server this client talks to. | COMMENT |
| LOW | backend/cmd/installer/cloud/errors.go | 21 | // FailureNone is the zero value: no failure. | COMMENT |
| LOW | backend/cmd/pentagi/info.go | 41 | COMMENT | |
| LOW | backend/docs/chain_ast.md | 161 | COMMENT | |
| LOW | backend/docs/docker.md | 741 | COMMENT | |
| LOW | backend/pkg/database/summary.go | 21 | COMMENT | |
| LOW | backend/pkg/database/summary.go | 41 | // | COMMENT |
| LOW | backend/pkg/database/summary.go | 121 | // SummaryOptions carries the facts that are not in the database. | COMMENT |
| LOW | backend/pkg/database/summary.go | 141 | // | COMMENT |
| LOW | backend/pkg/database/querier.go | 261 | // Vector similarity search over all knowledge documents (admin view, no user filter). | COMMENT |
| 153 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/src/features/resources/resources-constants.ts | 9 | // ── Upload limits (mirror backend's `pkg/resources/resources.go`) ─────────── | COMMENT |
| MEDIUM | …ntend/src/features/flows/files/flow-files-constants.ts | 30 | // ── Upload limits (mirror backend's `pkg/flowfiles/files.go`) ────────────── | COMMENT |
| MEDIUM | frontend/src/lib/axios.ts | 11 | // ── shared API protocol types ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/lib/axios.ts | 165 | // ── typed wrapper ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 590 | // ── Merge + deduplicate source paths ───────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 606 | // ── Sanitize destination ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 614 | // ── Route to single-source or multi-source path ─────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 693 | // ── Batch-load all source records in one query ──────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 712 | // ── Within-batch target-basename conflict check ─────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 742 | // ── Ensure destination directory ────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 766 | // ── Move each source into destination/<basename> ────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 1272 | // ── Merge + deduplicate source paths ───────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 1288 | // ── Sanitize destination ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 1295 | // ── Route to single-source or multi-source path ─────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 1367 | // ── Batch-load all source records ───────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 1386 | // ── Within-batch target-basename conflict check ─────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 1415 | // ── Ensure destination directory ────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/resources.go | 1439 | // ── Copy each source into destination/<basename> ────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/flow_files.go | 677 | // ── Phase 1: validate every path and check for cache conflicts ──────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/flow_files.go | 761 | // ── Phase 2: pull each validated entry from the container ───────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/flow_files.go | 1788 | // ── Merge + deduplicate source paths ────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/flow_files.go | 1806 | // ── Sanitize destination ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/flow_files.go | 1816 | // ── Validate and build source entries ───────────────────────────────────── | COMMENT |
| MEDIUM | backend/pkg/server/services/flow_files.go | 2016 | // ── Phase 3: persist all rows in a single DB transaction ────────────────── | COMMENT |
| MEDIUM | examples/guides/worker_node/dind-cleanup.sh | 2 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/dind-cleanup.sh | 11 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 2 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 35 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 240 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 242 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 273 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 279 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 329 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 331 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 352 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 354 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 379 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 381 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 393 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 400 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 428 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 430 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 449 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 451 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 495 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 498 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 525 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 527 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 546 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 548 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 580 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 582 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 605 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 609 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 624 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 628 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 657 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 661 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 730 | # ============================================================================= | COMMENT |
| MEDIUM | examples/guides/worker_node/policy-tests.sh | 734 | # ============================================================================= | COMMENT |
| 22 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 2583 | PentAGI integrates with MiniMax's M-series through the OpenAI-compatible `https://api.minimax.io/v1` endpoint: large-con | STRING |
| MEDIUM | README.md | 3714 | EMBEDDING_MAX_TEXT_BYTES=8192 # Max bytes of text sent to embedding model per document (byte proxy for token limit) | STRING |
| MEDIUM | backend/docs/flow_execution.md | 325 | ### Vector Database (RAG) Integration | COMMENT |
| MEDIUM⚡ | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 60 | "source": "## https://sploitus.com/exploit?id=3D18327A-F332-51BF-9535-FE35DBD709BA\n# \u26a1 Payloader \u201 | CODE |
| MEDIUM | …tools/searchers/testdata/sploitus_result_cve_2026.json | 70 | "source": "## https://sploitus.com/exploit?id=0B1BDC40-069F-50E3-B974-77679CB4F5BA\n# CVE-2026-21962 Concurr | CODE |
| MEDIUM | backend/pkg/providers/qwen/models.yml | 102 | # Qwen3.6 Series - Native vision-language models with enhanced agentic coding (April 2026). | COMMENT |
| MEDIUM | backend/pkg/providers/qwen/models.yml | 261 | # Qwen3 Coder Series - Code-specialized models with agentic capabilities. | COMMENT |
| MEDIUM | backend/pkg/providers/qwen/models.yml | 381 | # QVQ Series - Visual reasoning models with chain-of-thought. | COMMENT |
| MEDIUM | backend/pkg/providers/deepseek/config.yml | 5 | # code generation, vulnerability analysis, orchestration). | COMMENT |
| MEDIUM | backend/pkg/providers/kimi/config.yml | 3 | # Strategy: kimi-k2.6 for utility/orchestration, kimi-k2.7-code-highspeed for the | COMMENT |
| MEDIUM | backend/pkg/providers/openai/config.yml | 3 | # Strategy: gpt-5.4-nano for utility/orchestration (simple/searcher/enricher), | COMMENT |
| MEDIUM | backend/pkg/providers/openai/models.yml | 168 | # Latest GPT-5.2 series - Enhanced agentic models with improved reasoning and tool integration | COMMENT |
| MEDIUM | backend/pkg/providers/openai/models.yml | 182 | # Latest GPT-5 series - Advanced agentic models with native function calling and reasoning | COMMENT |
| MEDIUM | backend/pkg/providers/openai/models.yml | 296 | # Reasoning models - o-series with extended chain-of-thought for complex security tasks | COMMENT |
| MEDIUM | examples/guides/vllm-qwen35-27b-fp8.md | 418 | # Reduce context window | COMMENT |
| MEDIUM | examples/configs/ollama-cloud.provider.yml | 21 | # agentic planning and knowledge work. | COMMENT |
| MEDIUM | examples/configs/vllm-mixed.provider.yml | 16 | # - Sampling: temperature=1.0, top_p=1.0 (0731 agentic: top_p=0.95 also fine) | COMMENT |
| MEDIUM | examples/configs/nvidia-glm-5.1.provider.yml | 13 | # - MoE, 754B params, agentic engineering / long-horizon tool use | COMMENT |
| MEDIUM | examples/configs/nvidia-glm-5.1.provider.yml | 20 | # - clear_thinking: false — keep the reasoning trace (pairs with | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 928 | // Step 1: single click on 'b' → anchor = 'b' | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 939 | // Step 2: shift-click on 'd' → range b..d, anchor still 'b' | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 951 | // Step 3: shift-click on 'e' → range b..e, anchor still 'b' | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 1262 | // Step 1: single-click `f1` → sel = whole f1 branch, anchor = f1. | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 1275 | // Step 2: shift-click `f2` → range f1..f2 expands BOTH folders. | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 1289 | // Step 3: shift-click `f3` → anchor still f1, range now covers all 3. | COMMENT |
| LOW⚡ | backend/cmd/installer/state/example_test.go | 28 | // Step 1: Initialize state management | COMMENT |
| LOW⚡ | backend/cmd/installer/state/example_test.go | 34 | // Step 2: Multi-step configuration process | COMMENT |
| LOW | backend/cmd/installer/state/example_test.go | 46 | // Step 3: Continue with API configuration | COMMENT |
| LOW | backend/cmd/installer/state/example_test.go | 61 | // Step 4: User can choose to commit or reset | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 24 | // Step 1: Load existing .env file | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 30 | // Step 2: Display current values and defaults (only variables from file) | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 51 | // Step 3: User modifies values | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 56 | // Step 4: Save changes (creates backup automatically) | COMMENT |
| LOW⚡ | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 50 | "source": "## https://sploitus.com/exploit?id=PACKETSTORM:215599\nphpIPAM 1.4 LFI to RCE Exploit\n \n | CODE |
| LOW | backend/pkg/providers/provider/agents.go | 131 | // Step 0: Check if template is already in cache | COMMENT |
| LOW | backend/pkg/providers/provider/agents.go | 142 | // Step 1: Collect 5 sample tool call IDs in parallel | COMMENT |
| LOW | examples/guides/installation_configuration.md | 13 | ## Step 1 - Choose an installation method | COMMENT |
| LOW | examples/guides/installation_configuration.md | 25 | ## Step 2 - Set the core server variables | COMMENT |
| LOW | examples/guides/installation_configuration.md | 36 | ## Step 3 - Configure and test an LLM provider | COMMENT |
| LOW | examples/guides/installation_configuration.md | 58 | ## Step 4 - Configure and test the embedding provider | COMMENT |
| LOW | examples/guides/installation_configuration.md | 88 | ## Step 7 - Start and verify | COMMENT |
| LOW | examples/guides/vllm-qwen35-27b-fp8.md | 281 | ### Step 1: Configure Custom Provider in PentAGI | COMMENT |
| LOW | examples/guides/vllm-qwen35-27b-fp8.md | 297 | ### Step 2: Add Provider via PentAGI UI | COMMENT |
| LOW | examples/guides/vllm-qwen35-27b-fp8.md | 310 | ### Step 3: Verify Provider Configuration | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 928 | // Step 1: single click on 'b' → anchor = 'b' | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 939 | // Step 2: shift-click on 'd' → range b..d, anchor still 'b' | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 951 | // Step 3: shift-click on 'e' → range b..e, anchor still 'b' | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 1262 | // Step 1: single-click `f1` → sel = whole f1 branch, anchor = f1. | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 1275 | // Step 2: shift-click `f2` → range f1..f2 expands BOTH folders. | COMMENT |
| LOW | …ponents/shared/file-manager/file-manager-utils.test.ts | 1289 | // Step 3: shift-click `f3` → anchor still f1, range now covers all 3. | COMMENT |
| LOW⚡ | backend/cmd/installer/state/example_test.go | 28 | // Step 1: Initialize state management | COMMENT |
| LOW⚡ | backend/cmd/installer/state/example_test.go | 34 | // Step 2: Multi-step configuration process | COMMENT |
| LOW | backend/cmd/installer/state/example_test.go | 46 | // Step 3: Continue with API configuration | COMMENT |
| LOW | backend/cmd/installer/state/example_test.go | 61 | // Step 4: User can choose to commit or reset | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 24 | // Step 1: Load existing .env file | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 30 | // Step 2: Display current values and defaults (only variables from file) | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 51 | // Step 3: User modifies values | COMMENT |
| LOW⚡ | backend/cmd/installer/loader/example_test.go | 56 | // Step 4: Save changes (creates backup automatically) | COMMENT |
| LOW⚡ | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 50 | "source": "## https://sploitus.com/exploit?id=PACKETSTORM:215599\nphpIPAM 1.4 LFI to RCE Exploit\n \n | CODE |
| LOW | backend/pkg/providers/provider/agents.go | 131 | // Step 0: Check if template is already in cache | COMMENT |
| LOW | backend/pkg/providers/provider/agents.go | 142 | // Step 1: Collect 5 sample tool call IDs in parallel | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.e2e.yml | 56 | - LLM_SERVER_KEY=e2e-dummy-key | CODE |
| LOW | docker-compose.e2e.yml | 62 | - EMBEDDING_KEY=e2e-dummy-key | CODE |
| LOW | frontend/e2e/specs/crud/knowledges.spec.ts | 109 | expect((await request).postDataJSON().variables.text).toContain('admin@example.com'); | CODE |
| LOW | …ontend/src/features/authentication/login-form.test.tsx | 32 | await user.type(screen.getByPlaceholderText('Enter your email'), 'admin@example.com'); | CODE |
| LOW | …ontend/src/features/authentication/login-form.test.tsx | 76 | await user.type(screen.getByPlaceholderText('Enter your email'), 'admin@example.com'); | CODE |
| LOW | …ontend/src/features/authentication/login-form.test.tsx | 89 | expect(userApi.login).toHaveBeenCalledWith({ mail: 'admin@example.com', password: 'secret-pass' }), | CODE |
| LOW | backend/docs/installer/charm-debugging-guide.md | 197 | "placeholder": field.Input.Placeholder, | CODE |
| LOW | backend/pkg/providers/tester/cases/json_test.go | 20 | name: "John Doe" | CODE |
| LOW | backend/pkg/providers/tester/cases/json_test.go | 40 | result := testCase.Execute(`{"name": "John Doe", "age": 30, "city": "New York"}`, time.Millisecond*100) | CODE |
| LOW | backend/pkg/providers/tester/cases/json_test.go | 45 | result = testCase.Execute(`{"name": "John Doe"}`, time.Millisecond*100) | CODE |
| LOW | backend/pkg/providers/tester/cases/tests.yml | 75 | name='John Doe', age=30, city='New York'; | CODE |
| LOW | backend/pkg/providers/tester/cases/tests.yml | 78 | name: "John Doe" | CODE |
| LOW | backend/pkg/providers/tester/cases/tests.yml | 106 | content: "Generate a JSON response for a user profile with username='user123', email='user@example.com', active=tr | CODE |
| LOW | backend/pkg/providers/tester/cases/tests.yml | 109 | email: "user@example.com" | CODE |
| LOW | backend/pkg/providers/tester/cases/tests.yml | 462 | content: "Return a JSON with a person's information: name='Jane Doe', age=25, city='Boston'" | CODE |
| LOW | backend/pkg/providers/tester/cases/tests.yml | 464 | name: "Jane Doe" | CODE |
| LOW⚡ | backend/pkg/server/auth/login_guard_test.go | 125 | takeN(t, guard, "user@example.com", 2) | CODE |
| LOW⚡ | backend/pkg/server/auth/login_guard_test.go | 126 | guard.Reset("user@example.com") | CODE |
| LOW⚡ | backend/pkg/server/auth/login_guard_test.go | 127 | takeN(t, guard, "user@example.com", 2) | CODE |
| LOW⚡ | backend/pkg/server/auth/login_guard_test.go | 129 | _, ok := guard.Take("user@example.com") | CODE |
| LOW | backend/pkg/observability/langfuse/api/types.go | 444 | ChatMessageWithPlaceholdersOneTypePlaceholder ChatMessageWithPlaceholdersOneType = "placeholder" | CODE |
| LOW | backend/pkg/observability/langfuse/api/types.go | 449 | case "placeholder": | CODE |
| LOW | examples/tests/novita-report.md | 81 | | Streaming Person Information JSON Streaming | ❌ Fail | 1.398s | got map\[string\]interface \{\}\{"age":62, "city":"Bos | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README.md | 3445 | LLM_SERVER_KEY=your_api_key | STRING |
| HIGH | backend/pkg/observability/langfuse/api/README.md | 101 | option.WithToken("<YOUR_API_KEY>"), | CODE |
| HIGH | backend/pkg/observability/langfuse/api/README.md | 101 | option.WithToken("<YOUR_API_KEY>"), | CODE |
| HIGH | backend/pkg/observability/langfuse/api/README.md | 112 | option.WithToken("<YOUR_API_KEY>"), | CODE |
| HIGH | backend/pkg/observability/langfuse/api/README.md | 112 | option.WithToken("<YOUR_API_KEY>"), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/docs/list-detail-pages.md | 214 | function useTableQueryFilterReader(options?: { | CODE |
| LOW | frontend/docs/list-detail-pages.md | 443 | function mergeHrefWithSearchParams(base: string, incoming: Iterable<[string, string]> | URLSearchParams): string; | CODE |
| LOW | frontend/docs/list-detail-pages.md | 546 | export function useEntityDetailNavigation(currentId: null | string | undefined) { | CODE |
| LOW | …features/knowledges/use-knowledge-detail-navigation.ts | 12 | export function useKnowledgeDetailNavigation(currentId: null | string | undefined) { | CODE |
| LOW | …tend/src/features/knowledges/knowledge-form-layout.tsx | 26 | export function KnowledgeFormLayoutDesktop({ | CODE |
| LOW | …tend/src/features/knowledges/knowledge-form-layout.tsx | 61 | export function KnowledgeFormLayoutMobile({ control, isNew, isSaving, knowledge, viewMode }: KnowledgeFormLayoutProps) { | CODE |
| LOW | …c/features/templates/use-template-detail-navigation.ts | 13 | export function useTemplateDetailNavigation(currentId: null | string | undefined) { | CODE |
| LOW | …/flows/vector-stores/flow-vector-store-action-icon.tsx | 22 | function FlowVectorStoreActionIcon({ action, className, tooltip = action }: FlowVectorStoreActionIconProps) { | CODE |
| LOW | …eatures/flows/files/use-flow-files-attach-resources.ts | 35 | export function useFlowFilesAttachResources({ | CODE |
| LOW | …res/flows/files/flow-files-attach-resources-dialog.tsx | 49 | export function FlowFilesAttachResourcesDialog({ | CODE |
| LOW | …res/flows/files/flow-files-attach-resources-dialog.tsx | 79 | function FlowFilesAttachResourcesDialogBody({ | CODE |
| LOW | …src/features/flows/files/flow-files-promote-dialog.tsx | 136 | function FlowFilesPromoteDialogForm({ files, flowId, onClose }: FlowFilesPromoteDialogFormProps) { | CODE |
| LOW | frontend/src/components/ui/input-group.tsx | 132 | function InputGroupTextareaAutosize({ className, ...props }: React.ComponentProps<typeof TextareaAutosize>) { | CODE |
| LOW | …/shared/file-manager/file-manager-bulk-actions-bar.tsx | 58 | export function FileManagerBulkActionsBar({ | CODE |
| LOW | …nents/shared/file-manager/use-file-manager-keyboard.ts | 39 | export function useFileManagerKeyboardNavigation({ | CODE |
| LOW | …/shared/file-manager/file-manager-highlighted-name.tsx | 11 | export function FileManagerHighlightedName({ className, name, query }: FileManagerHighlightedNameProps) { | CODE |
| LOW | frontend/src/hooks/use-table-query-filter.ts | 31 | export function useTableQueryFilterReader({ | CODE |
| LOW⚡ | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 40 | "source": "## https://sploitus.com/exploit?id=PACKETSTORM:215609\n========================================== | CODE |
| LOW⚡ | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 50 | "source": "## https://sploitus.com/exploit?id=PACKETSTORM:215599\nphpIPAM 1.4 LFI to RCE Exploit\n \n | CODE |
| LOW | …tools/searchers/testdata/sploitus_result_cve_2026.json | 30 | "source": "## https://sploitus.com/exploit?id=PACKETSTORM:215730\n========================================== | CODE |
| LOW | …tools/searchers/testdata/sploitus_result_cve_2026.json | 40 | "source": "## https://sploitus.com/exploit?id=MSF:AUXILIARY-GATHER-NI8MARE_CVE_2026_21858-\n##\n# This modul | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ponents/shared/file-manager/file-manager-utils.test.ts | 109 | // instead of arithmetic keeps the test robust against month-length | COMMENT |
| MEDIUM | backend/pkg/tools/searchers/internal.go | 26 | // "[https://…](https://…)"), so a permissive http(s) matcher is the most robust way to | COMMENT |
| MEDIUM⚡ | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 40 | "source": "## https://sploitus.com/exploit?id=PACKETSTORM:215609\n========================================== | CODE |
| MEDIUM | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 80 | "source": "## https://sploitus.com/exploit?id=8D7C8EA8-FA97-516C-805B-4D34248039FE\n\ud83d\udd25 LFI-Destroy | CODE |
| MEDIUM | …ols/searchers/testdata/ddg_result_docker_security.html | 315 | <a class="result__snippet" href="https://betterstack.com/community/guides/scaling-docker/docker- | CODE |
| MEDIUM | …ols/searchers/testdata/ddg_result_docker_security.html | 354 | <a class="result__snippet" href="https://www.geeksforgeeks.org/devops/docker-security-best-pract | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …nents/shared/markdown-editor/markdown-editor-layout.ts | 461 | const endsText = (lines: string): boolean => Lexer.rules.block.gfm.paragraph.exec(`x\n${lines}`)?.[1] === 'x'; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend/cmd/installer/main.go | 162 | # This file contains environment variables for PentAGI configuration. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/e2e/tools/review-sandbox.sh | 7 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …kg/tools/searchers/testdata/sploitus_result_nginx.json | 30 | "source": "## https://sploitus.com/exploit?id=AC4871CE-CE60-5709-98A9-551F3A9DB7A2\n# Ivanti EPMM pre-auth R | CODE |