Self-hosted multi-protocol AI API proxy for Antigravity, Codex, Grok, Kiro, OpenAI, Claude, and custom providers. Supports OpenAI-compatible API, Claude API, Gemini protocol conversion, GPT, Grok Build, Claude Opus, Gemini Pro, Kimi, MiniMax, provider pools, smart routing, and automatic failover.
This report summarizes scanner evidence for justlovemaki/AIClient2API, a JavaScript project with 8,868 GitHub stars. SynthScan examined 120,054 lines of code across 213 source files, recording 380 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 5.3 (Moderate 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? 329 finding(s).
Are imports declared and package/API names verified? 37 finding(s).
Are wrappers, guards, and repeated structures necessary? 299 finding(s).
Which changes need focused human review? 380 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 380 distinct pattern matches across 10 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 | static/index.html | 100 | function updateRoutingExamplesURLs() { | CODE |
| LOW | static/app/access-manager.js | 313 | function renderSnippetProviderOptions(data, configMap) { | CODE |
| LOW⚡ | static/app/provider-manager.js | 1768 | function getCodexExternalImportMeta(source) { | CODE |
| LOW | static/app/provider-manager.js | 41 | function updateProvidersHandoffSummary(providers = {}, supportedProviders = []) { | CODE |
| LOW | static/app/provider-manager.js | 90 | async function refreshProvidersHandoffSummary(providers = {}, supportedProviders = []) { | CODE |
| LOW | static/app/provider-manager.js | 591 | function renderProviderStatusOverview(providers, configMap, sortedProviderTypes) { | CODE |
| LOW | static/app/provider-manager.js | 693 | function updateProviderStatsDisplay(activeProviders, healthyProviders, totalAccounts) { | CODE |
| LOW | static/app/provider-manager.js | 813 | function showAddGitHubCopilotPatModal() { | CODE |
| LOW | static/app/provider-manager.js | 1031 | function showCodexAuthMethodSelector(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 1123 | function showCodexBatchImportModal(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 1419 | function showGrokCliAuthMethodSelector(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 1488 | function showGrokCliBatchImportModal(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 1804 | function getCodexExternalImportStats(source, data) { | CODE |
| LOW | static/app/provider-manager.js | 1837 | function showCodexExternalImportModal(providerType, source) { | CODE |
| LOW | static/app/provider-manager.js | 2092 | function showGrokAuthMethodSelector(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 2439 | function showKiroAuthMethodSelector(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 2536 | function showGeminiAuthMethodSelector(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 2610 | function showGeminiBatchImportModal(providerType) { | CODE |
| LOW | static/app/provider-manager.js | 3562 | function validateAndPreview() { | CODE |
| LOW | static/app/provider-manager.js | 3595 | function validateAndShowResult() { | CODE |
| LOW | static/app/provider-manager.js | 4775 | async function restartServiceAfterUpdate() { | CODE |
| LOW | static/app/provider-manager.js | 4823 | function showAddProviderGroupModal(defaultBaseType = null) { | CODE |
| LOW | static/app/language-switcher.js | 45 | function bindLanguageSwitcherEvents() { | CODE |
| LOW | static/app/usage-manager.js | 15 | export function updateUsageProviderConfigs(configs) { | CODE |
| LOW | static/app/usage-manager.js | 149 | export async function refreshSingleInstanceUsage(providerType, uuid, displayName) { | CODE |
| LOW | static/app/usage-manager.js | 283 | function updateSingleProviderGroup(providerType, providerData) { | CODE |
| LOW | static/app/config-manager.js | 12 | function getSelectedModelProviders() { | CODE |
| LOW | static/app/config-manager.js | 39 | function updateConfigHandoffSummary() { | CODE |
| LOW | static/app/config-manager.js | 244 | function updateConfigProviderConfigs(configs) { | CODE |
| LOW | static/app/event-handlers.js | 288 | function handleGeminiCredsTypeChange(event) { | CODE |
| LOW | static/app/event-handlers.js | 306 | function handleKiroCredsTypeChange(event) { | CODE |
| LOW | static/app/event-handlers.js | 439 | function handleProviderPoolsConfigChange(event) { | CODE |
| LOW | static/app/event-handlers.js | 459 | function handleProviderPasswordToggle(button) { | CODE |
| LOW | static/app/upload-config-manager.js | 386 | function fallbackCopyTextToClipboard(text) { | CODE |
| LOW | static/app/upload-config-manager.js | 1365 | function updateProviderFilterOptions(providerConfigs) { | CODE |
| LOW | static/app/tutorial-manager.js | 23 | function updateTutorialProviderConfigs(configs) { | CODE |
| LOW | static/app/models-manager.js | 19 | function updateModelsProviderConfigs(configs) { | CODE |
| LOW | static/app/modal.js | 52 | function renderSupportedModelsValue(models = []) { | CODE |
| LOW | static/app/modal.js | 67 | function getSupportedModelsContainer(uuid) { | CODE |
| LOW | static/app/modal.js | 71 | function setSupportedModelsSelection(uuid, models, options = {}) { | CODE |
| LOW | static/app/modal.js | 94 | function resetSupportedModelsSelection(uuid) { | CODE |
| LOW | static/app/modal.js | 100 | function renderSupportedModelsSection(provider) { | CODE |
| LOW | static/app/modal.js | 132 | function collectDraftProviderConfig(providerDetail, providerType, uuid) { | CODE |
| LOW | static/app/modal.js | 164 | function closeSupportedModelsPicker(overlay) { | CODE |
| LOW | static/app/modal.js | 174 | function showSupportedModelsPickerModal(providerType, uuid, detectedModels, currentSelectedModels = []) { | CODE |
| LOW | static/app/modal.js | 342 | async function openSupportedModelsPicker(providerType, uuid, event) { | CODE |
| LOW | static/app/modal.js | 716 | function renderProviderListPaginated(providers, page) { | CODE |
| LOW | static/app/modal.js | 743 | async function loadModelsForProviderType(providerType, providers) { | CODE |
| LOW | static/app/modal.js | 1868 | function bindAddFormPasswordToggleListeners(form) { | CODE |
| LOW | static/app/modal.js | 2257 | function renderNotSupportedModelsSelector(uuid, models, notSupportedModels = []) { | CODE |
| LOW | src/core/config-manager.js | 26 | function normalizeRequestBodyMaxBytes(config) { | CODE |
| LOW | src/core/config-manager.js | 43 | function normalizeConfiguredProviders(config) { | CODE |
| LOW | src/core/config-manager.js | 336 | export async function getSystemPromptFileContent(filePath) { | CODE |
| LOW | src/core/plugin-security.js | 60 | export function normalizePluginArchiveEntryName(entryName, pluginId) { | CODE |
| LOW | src/core/plugin-security.js | 104 | export function validatePluginTextContent(content, label = 'plugin file') { | CODE |
| LOW | src/core/security-hardening.js | 232 | function handleProcessControlAttempt(target, operationName) { | CODE |
| LOW | src/core/security-hardening.js | 240 | function handleUserPluginProcessMutationAttempt(target, operationName) { | CODE |
| LOW | src/ui-modules/event-broadcast.js | 196 | export function handleUploadOAuthCredentials(req, res, options = {}) { | CODE |
| LOW | src/ui-modules/usage-api.js | 219 | function getProviderConfigFilePath(provider, providerType) { | CODE |
| LOW | src/ui-modules/usage-api.js | 293 | async function updateSingleInstanceInCache(providerType, uuid, instanceResult) { | CODE |
| 225 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README-JA.md | 484 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | README-JA.md | 497 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | README-JA.md | 841 | - **リクエストヘッダー形式を確認**:リクエストに正しい形式のAuthorizationヘッダーが含まれていることを確認、例:`Authorization: Bearer your-api-key` | CODE |
| HIGH | README.md | 484 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | README.md | 497 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | README.md | 841 | - **Check Request Header Format**: Ensure the request contains the correct Authorization header format, such as `Authori | CODE |
| HIGH | README-ZH.md | 483 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | README-ZH.md | 496 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | README-ZH.md | 865 | - **检查请求头格式**:确保请求中包含正确格式的 Authorization 头,如 `Authorization: Bearer your-api-key` | CODE |
| HIGH | docs/OPENCLAW_CONFIG_GUIDE.md | 27 | AICLIENT2API_KEY: "your-api-key" | CODE |
| HIGH | docs/OPENCLAW_CONFIG_GUIDE.md | 68 | AICLIENT2API_KEY: "your-api-key" | CODE |
| HIGH | docs/OPENCLAW_CONFIG_GUIDE-JA.md | 27 | AICLIENT2API_KEY: "your-api-key" | CODE |
| HIGH | docs/OPENCLAW_CONFIG_GUIDE-JA.md | 68 | AICLIENT2API_KEY: "your-api-key" | CODE |
| HIGH | docs/OPENCLAW_CONFIG_GUIDE-ZH.md | 27 | AICLIENT2API_KEY: "your-api-key" | CODE |
| HIGH | docs/OPENCLAW_CONFIG_GUIDE-ZH.md | 68 | AICLIENT2API_KEY: "your-api-key" | CODE |
| HIGH | docs/skills/aiclient-cli-usage.md | 44 | - **Header**: `Authorization: Bearer <YOUR_API_KEY>` | CODE |
| HIGH | docs/skills/aiclient-cli-usage.md | 44 | - **Header**: `Authorization: Bearer <YOUR_API_KEY>` | CODE |
| HIGH | static/app/access-manager.js | 339 | const resolvedApiKey = apiKey || 'YOUR_API_KEY'; | CODE |
| HIGH | static/app/access-manager.js | 372 | const resolvedApiKey = apiKey || 'YOUR_API_KEY'; | CODE |
| HIGH | static/app/access-manager.js | 402 | const resolvedApiKey = apiKey || 'YOUR_API_KEY'; | CODE |
| HIGH | static/app/routing-examples.js | 365 | -H "Authorization: Bearer YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 377 | -H "Authorization: Bearer YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 405 | -H "Authorization: Bearer YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 414 | -H "X-API-Key: YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 449 | -H "Authorization: Bearer YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 458 | -H "X-API-Key: YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 470 | -H "Authorization: Bearer YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 479 | -H "X-API-Key: YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 491 | -H "Authorization: Bearer YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 655 | -H "Authorization: Bearer YOUR_API_KEY" \\ | CODE |
| HIGH | static/app/routing-examples.js | 671 | -H "X-API-Key: YOUR_API_KEY" \\ | CODE |
| HIGH | static/components/section-guide.html | 161 | -H "Authorization: Bearer YOUR_API_KEY" \ | CODE |
| HIGH | static/components/section-tutorial.html | 227 | "REQUIRED_API_KEY": "your-api-key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | static/app/i18n.js | 1343 | // 'sponsors.vmcardDesc': '<strong>VMCard | Enterprise Payment Cards for AI Businesses</strong> is built for AI | COMMENT |
| MEDIUM⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| MEDIUM⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| MEDIUM⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| MEDIUM⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| MEDIUM⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| MEDIUM⚡ | …/openaiResponses/originalRequestBody1762500856556.json | 1 | {"model":"gpt-5-codex","instructions":"You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI | CODE |
| MEDIUM⚡ | …/openaiResponses/originalRequestBody1762500856556.json | 1 | {"model":"gpt-5-codex","instructions":"You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI | CODE |
| MEDIUM⚡ | …c/example/claude/originalRequestBody1762501795790.json | 1 | {"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":[{"type":"text","text":"<ide_opened_file>The | CODE |
| MEDIUM⚡ | …c/example/claude/originalRequestBody1762501795790.json | 1 | {"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":[{"type":"text","text":"<ide_opened_file>The | CODE |
| MEDIUM⚡ | …c/example/claude/originalRequestBody1762501795790.json | 1 | {"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":[{"type":"text","text":"<ide_opened_file>The | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501497434.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"system","content":"You are a coding agent running in the Codex CLI, a te | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501497434.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"system","content":"You are a coding agent running in the Codex CLI, a te | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| MEDIUM | src/convert/convert-old.js | 1670 | // A more robust solution would involve tracking tool_use_ids to function names. | COMMENT |
| MEDIUM | src/convert/convert-old.js | 1832 | // A more robust solution would involve tracking the function name from the tool_use block. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tls-sidecar/main.go | 25 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tls-sidecar/main.go | 38 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tls-sidecar/main.go | 66 | // ──────────────── uTLS RoundTripper ──────────────── | COMMENT |
| MEDIUM | tls-sidecar/main.go | 174 | // ──────────────── Main ──────────────── | COMMENT |
| MEDIUM | tls-sidecar/main.go | 216 | // ──────────────── Health ──────────────── | COMMENT |
| MEDIUM | tls-sidecar/main.go | 224 | // ──────────────── Proxy Handler ──────────────── | COMMENT |
| MEDIUM | tls-sidecar/main.go | 316 | // ──────────────── uTLS Dial ──────────────── | COMMENT |
| MEDIUM | tls-sidecar/main.go | 360 | // ──────────────── Proxy Dialer ──────────────── | COMMENT |
| MEDIUM | static/app/playground-manager.js | 14 | // ── DOM helpers ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | static/app/playground-manager.js | 36 | // ── Initialisation ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | static/app/playground-manager.js | 126 | // ── Events ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | static/app/playground-manager.js | 297 | // ── Chat logic ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | static/app/playground-manager.js | 665 | // ── UI helpers ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | static/app/playground-manager.js | 880 | // ── File handling ───────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| HIGH⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| HIGH⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| HIGH⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| LOW⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| LOW⚡ | …/openaiResponses/originalRequestBody1762500856556.json | 1 | {"model":"gpt-5-codex","instructions":"You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI | CODE |
| MEDIUM⚡ | …c/example/claude/originalRequestBody1762501795790.json | 1 | {"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":[{"type":"text","text":"<ide_opened_file>The | CODE |
| LOW⚡ | …c/example/openai/originalRequestBody1762501497434.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"system","content":"You are a coding agent running in the Codex CLI, a te | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| LOW⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tls-sidecar/main.go | 21 | "golang.org/x/net/http2" | COMMENT |
| LOW | src/providers/gemini/gemini-core.js | 141 | // .map(p => p.text) | COMMENT |
| LOW | src/converters/strategies/OpenAIConverter.js | 481 | const choice = openaiChunk.choices?.[0]; | COMMENT |
| LOW | src/converters/strategies/OpenAIConverter.js | 501 | // stop_reason: null, | COMMENT |
| LOW | src/converters/strategies/OpenAIConverter.js | 521 | // const toolCalls = delta.tool_calls; | COMMENT |
| LOW | src/converters/strategies/OpenAIConverter.js | 541 | // index: toolCall.index || 0, | COMMENT |
| LOW | src/converters/strategies/ClaudeConverter.js | 661 | COMMENT | |
| LOW | src/converters/strategies/ClaudeConverter.js | 1041 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …c/example/gemini/originalRequestBody1762502075001.json | 1 | {"contents":[{"parts":[{"text":"<task>\n你好\n</task>"},{"text":"<environment_details>\n# VSCode Visible Files\nsrc\\conve | CODE |
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501665376.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"user","content":"You are Kilo Code, a highly skilled software engineer w | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …c/example/openai/originalRequestBody1762501497434.json | 1 | {"model":"ZhipuAI/GLM-4.6","messages":[{"role":"system","content":"You are a coding agent running in the Codex CLI, a te | CODE |
| MEDIUM | src/providers/claude/claude-kiro.js | 79 | // 描述里明确禁止调用它:否则模型(尤其被 agentic system prompt 引导时)会先说一句 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | static/app/provider-manager.js | 1773 | "email": "user@example.com", | CODE |
| LOW⚡ | static/app/provider-manager.js | 1783 | "name": "user@example.com", | CODE |
| LOW | static/app/provider-manager.js | 1531 | "email": "user@example.com", | CODE |
| LOW | static/app/i18n.js | 2708 | ['placeholder', 'title', 'aria-label', 'alt', 'href'].forEach(attributeName => { | CODE |