Kimi Code CLI — The Starting Point for Next-Gen Agents
This report summarizes scanner evidence for MoonshotAI/kimi-code, a TypeScript project with 8,078 GitHub stars. SynthScan examined 936,181 lines of code across 4259 source files, recording 1408 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 2.1 (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? 1223 finding(s).
Are imports declared and package/API names verified? 83 finding(s).
Are wrappers, guards, and repeated structures necessary? 1130 finding(s).
Which changes need focused human review? 1408 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 1408 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 | packages/oauth/test/refreshProviderModels.test.ts | 440 | async function refreshWithRegistryModels(models: Record<string, unknown>) { | CODE |
| LOW | packages/oauth/test/managed-kimi-code.test.ts | 841 | function makeReasoningModelsResponse(): Response { | CODE |
| LOW | packages/oauth/src/oauth.ts | 119 | export async function requestDeviceAuthorization( | CODE |
| LOW | packages/oauth/src/identity.ts | 154 | export function parseKimiCodeCustomHeaders( | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 363 | export function resolveKimiCodeRuntimeAuth(options: { | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 519 | export function parseSupportsThinkingType(value: unknown): SupportsThinkingType | undefined { | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 551 | export async function fetchManagedKimiCodeModels( | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 627 | export function applyManagedKimiCodeConfig( | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 723 | export function applyManagedApiKeyProviderModels( | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 756 | export function applyManagedKimiCodeLogoutConfig(config: ManagedKimiConfigShape): void { | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 846 | export function clearManagedKimiCodeConfig( | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 890 | function assertPositiveContextLength(model: ManagedKimiCodeModelInfo): void { | CODE |
| LOW | packages/oauth/src/managed-kimi-code.ts | 896 | export async function provisionManagedKimiCodeConfigAfterLogin( | CODE |
| LOW⚡ | packages/oauth/src/managed-feedback-upload.ts | 51 | export function kimiCodeFeedbackUploadUrl(baseUrl?: string): string { | CODE |
| LOW⚡ | packages/oauth/src/managed-feedback-upload.ts | 55 | export function kimiCodeFeedbackUploadCompleteUrl(baseUrl?: string): string { | CODE |
| LOW⚡ | packages/oauth/src/managed-feedback-upload.ts | 59 | export async function fetchCreateFeedbackUploadUrl( | CODE |
| LOW | packages/oauth/src/managed-feedback-upload.ts | 73 | export async function fetchCompleteFeedbackUpload( | CODE |
| LOW | packages/oauth/src/managed-userinfo.ts | 100 | export function parseManagedUserInfoPayload(payload: unknown): ManagedUserInfo | null { | CODE |
| LOW | packages/oauth/src/region.ts | 210 | export function resolveKimiRegionFromParts( | CODE |
| LOW | packages/oauth/src/region.ts | 230 | export function resolveKimiRegionDetailed( | CODE |
| LOW | packages/oauth/src/region.ts | 267 | export function resolveKimiRemoteControlAuth( | CODE |
| LOW | packages/oauth/src/toolkit.ts | 465 | export function resolveKimiTokenStorageName(input: { | CODE |
| LOW | packages/oauth/src/refreshProviderModels.ts | 168 | function customRegistrySourceCredentialKey(source: CustomRegistrySource): string { | CODE |
| LOW | packages/oauth/src/refreshProviderModels.ts | 172 | async function fetchCustomRegistryFromSources( | CODE |
| LOW | packages/oauth/src/refreshProviderModels.ts | 195 | function collectModelIdsForAliases( | CODE |
| LOW | packages/oauth/src/refreshProviderModels.ts | 217 | function generatedProviderAliasKeys( | CODE |
| LOW | packages/oauth/src/refreshProviderModels.ts | 326 | function preserveUserProviderAliases( | CODE |
| LOW | packages/oauth/src/refreshProviderModels.ts | 367 | async function rebaseSelectionAfterFetch( | CODE |
| LOW | packages/oauth/src/refreshProviderModels.ts | 405 | function clearDefaultThinkingWhenDefaultRemoved( | CODE |
| LOW⚡ | packages/oauth/src/custom-registry.ts | 130 | export function reservedProviderIdMessage(providerId: string): string { | CODE |
| LOW⚡ | packages/oauth/src/custom-registry.ts | 134 | export function oauthManagedProviderMessage(providerId: string): string { | CODE |
| LOW⚡ | packages/oauth/src/custom-registry.ts | 138 | function assertCustomRegistryProviderId(providerId: string): void { | CODE |
| LOW | packages/oauth/src/custom-registry.ts | 368 | export function capabilitiesFromCustomEntry(model: CustomRegistryModelEntry): string[] { | CODE |
| LOW | packages/oauth/src/custom-registry.ts | 460 | export function applyCustomRegistryProvider( | CODE |
| LOW | packages/oauth/src/custom-registry.ts | 552 | export function removeCustomRegistryProvider( | CODE |
| LOW | packages/oauth/src/custom-registry.ts | 632 | export function removeCustomRegistryEntries( | CODE |
| LOW | packages/oauth/src/custom-registry.ts | 661 | export function customRegistryReplacementKeys( | CODE |
| LOW | packages/oauth/src/custom-registry.ts | 712 | export function applyCustomRegistryEntries( | CODE |
| LOW | packages/oauth/src/provider-credential.ts | 28 | export function declaredProviderCredential( | CODE |
| LOW | packages/oauth/src/provider-credential.ts | 58 | export function credentialConflictMessage( | CODE |
| LOW | packages/oauth/src/provider-credential.ts | 86 | export function reconcileProviderCredentialUpdate( | CODE |
| LOW | packages/oauth/src/region-local.ts | 13 | export function collectLocalRegionSignals(): LocalRegionSignals { | CODE |
| LOW | packages/oauth/src/region-local.ts | 74 | export function detectKimiRegionFromLocalSignals( | CODE |
| LOW | packages/acp-server/src/config-options.ts | 119 | export function buildSessionConfigOptions( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 33 | export function assistantDeltaToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 61 | export function turnEndReasonToStopReason( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 196 | export function toolCallStartToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 235 | export function toolCallDeltaToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 267 | export function toolCallLazyCreateToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 297 | export function toolCallStartedUpgradeToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 334 | export function toolProgressToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 354 | export function thinkingDeltaToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 375 | export function toolResultToSessionUpdate( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 450 | export function availableCommandsUpdateNotification( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 470 | export function currentModeUpdateNotification( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 488 | export function configOptionUpdateNotification( | CODE |
| LOW | packages/acp-server/src/events-map.ts | 526 | export function sessionInfoUpdateNotification( | CODE |
| LOW | packages/acp-server/src/approval.ts | 86 | export function approvalRequestToPermissionOptions( | CODE |
| LOW | packages/acp-server/src/approval.ts | 133 | export function permissionResponseToApprovalResponse( | CODE |
| LOW | packages/acp-server/src/approval.ts | 207 | export function buildPermissionToolCallUpdate(req: ApprovalRequest): ToolCallUpdate { | CODE |
| 968 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/oauth/test/oauth-manager.test.ts | 73 | // ── ensureFresh ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth-manager.test.ts | 392 | // ── force=true propagates errors (no silent swallow) ────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth-manager.test.ts | 586 | // ── login ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth-manager.test.ts | 749 | // ── logout & hasToken ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth-manager.test.ts | 780 | // ── slow_down RFC 8628 §3.5 ──────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth-manager.test.ts | 819 | // ── FileTokenStorage integration ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth.test.ts | 116 | // ── Fixtures ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth.test.ts | 176 | // ── requestDeviceAuthorization ──────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth.test.ts | 313 | // ── pollDeviceToken ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth.test.ts | 457 | // ── refreshAccessToken ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth.test.ts | 632 | // ── network error retry / 400 fail-fast ─────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/storage.test.ts | 168 | // ── atomic save leaves no .tmp sibling ──────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth-manager-multi-process.test.ts | 37 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/test/oauth-manager-multi-process.test.ts | 39 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/src/oauth.ts | 117 | // ── requestDeviceAuthorization ──────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/src/oauth.ts | 160 | // ── pollDeviceToken ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/src/oauth.ts | 213 | // ── refreshAccessToken ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/oauth/src/managed-userinfo.ts | 150 | // ── HTTP fetch ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/contract-parity.ts | 545 | // ── session scope ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/contract-parity.ts | 606 | // ── agent scope (services.ts / schemas.ts) ────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/contract-parity.ts | 698 | // ── agent scope (events.ts) ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/legacy/session-resume.test.ts | 61 | // ── Gap 1: cold-session /messages ────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/legacy/session-resume.test.ts | 118 | // ── Gap 2: live busy field ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 182 | // ── Probes + model catalog ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 207 | // ── Sessions ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 277 | // ── Workspaces ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 299 | // ── Folder picker (fs:browse + fs:home) ───────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 307 | // ── Uploads ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 326 | // ── Messages ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 334 | // ── Prompts ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/http.ts | 366 | // ── Approvals / Questions (reverse-RPC resolves) ──────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/client.ts | 170 | // ── Probes + model catalog ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/client.ts | 187 | // ── HTTP convenience surface ──────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/client.ts | 230 | // ── Workspaces + folder picker ────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/client.ts | 305 | // ── WS lifecycle ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/client.ts | 404 | // ── WS observation ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/client.ts | 430 | // ── High-level convenience ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/test/e2e/harness/client.ts | 507 | // ── internals ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/src/contract/agent/schemas.ts | 12 | // ── prompt parts ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/src/contract/agent/schemas.ts | 36 | // ── payloads / results ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/src/contract/agent/events.ts | 28 | // ── payload schemas ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/klient/src/contract/agent/events.ts | 208 | // ── registrations ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/kimi-code/src/tui/components/messages/tool-call.ts | 815 | // ── Subagent state ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/kimi-code/src/tui/components/messages/tool-call.ts | 873 | // ── Live progress lines ────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/kimi-code/src/tui/components/messages/tool-call.ts | 1341 | // ── Subagent API (called by KimiTUI event routing) ─────────────── | COMMENT |
| MEDIUM | …/src/tui/components/messages/tool-renderers/summary.ts | 90 | // ── Exports ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …imi-code/src/tui/components/dialogs/question-dialog.ts | 139 | // ── Input ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …imi-code/src/tui/components/dialogs/question-dialog.ts | 282 | // ── State mutation ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …imi-code/src/tui/components/dialogs/question-dialog.ts | 454 | // ── Render ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …imi-code/src/tui/components/dialogs/question-dialog.ts | 698 | // ── Helpers ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …de/src/tui/components/dialogs/agent-activity-viewer.ts | 96 | // ── input ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …de/src/tui/components/dialogs/agent-activity-viewer.ts | 167 | // ── body assembly ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …de/src/tui/components/dialogs/agent-activity-viewer.ts | 280 | // ── render ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/kimi-code/src/tui/components/dialogs/tasks-browser.ts | 342 | // ── header / footer ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/kimi-code/src/tui/components/dialogs/tasks-browser.ts | 402 | // ── frame primitive ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/kimi-code/src/tui/components/dialogs/tasks-browser.ts | 447 | // ── left: task list frame ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …/kimi-code/src/tui/components/dialogs/tasks-browser.ts | 556 | // ── right: detail + preview stack ──────────────────────────────────── | COMMENT |
| MEDIUM | …/kimi-code/src/tui/components/dialogs/tasks-browser.ts | 655 | // ── too-small fallback ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …-code/src/tui/components/dialogs/task-output-viewer.ts | 111 | // ── input ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …-code/src/tui/components/dialogs/task-output-viewer.ts | 177 | // ── render ───────────────────────────────────────────────────────── | COMMENT |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/tree-sitter-bash/test/fuzz.test.ts | 1 | // test/fuzz.test.ts | COMMENT |
| LOW | packages/tree-sitter-bash/test/differential.test.ts | 1 | // test/differential.test.ts | COMMENT |
| LOW | packages/tree-sitter-bash/test/helpers/differential.ts | 1 | // test/helpers/differential.ts | COMMENT |
| LOW | …ges/tree-sitter-bash/test/helpers/known-differences.ts | 1 | // test/helpers/known-differences.ts | COMMENT |
| LOW | packages/tree-sitter-bash/src/node.ts | 1 | // src/node.ts | COMMENT |
| LOW | packages/tree-sitter-bash/src/parse.ts | 1 | // src/parse.ts | COMMENT |
| LOW | packages/tree-sitter-bash/src/lexer.ts | 1 | // src/lexer.ts | COMMENT |
| LOW | packages/tree-sitter-bash/src/lexer.ts | 21 | // eof end of the lexer's range. Also carries pending heredoc bodies. | COMMENT |
| LOW | packages/tree-sitter-bash/src/parser.ts | 1 | // src/parser.ts | COMMENT |
| LOW | packages/tree-sitter-bash/src/parser.ts | 21 | // | COMMENT |
| LOW | packages/oauth/src/oauth-manager.ts | 301 | const token = initial.token; | COMMENT |
| LOW | packages/acp-server/src/auth-methods.ts | 1 | // Advertise the `terminal-auth` method to ACP clients. Two paths coexist: | COMMENT |
| LOW | packages/agent-core-v2/docs/wire-manifest.d.ts | 1 | // Wire Protocol Manifest | COMMENT |
| LOW | packages/agent-core-v2/docs/wire-manifest.d.ts | 21 | // never enter EVENT2_REGISTRY, so there is no persisted flag. Declaration | COMMENT |
| LOW | packages/agent-core-v2/docs/wire-manifest.d.ts | 41 | // forked (none) s | COMMENT |
| LOW | packages/agent-core-v2/docs/wire-manifest.d.ts | 61 | // plan.revision plan s | COMMENT |
| LOW | packages/agent-core-v2/docs/wire-manifest.d.ts | 81 | // tool_select.initialized toolSelect s | COMMENT |
| LOW | packages/agent-core-v2/docs/state-manifest.d.ts | 1 | // App, Workspace, Session & Agent State Manifest | COMMENT |
| LOW | packages/agent-core-v2/docs/state-manifest.d.ts | 21 | // expand structurally; classes render as their public instance shape. The | COMMENT |
| LOW | packages/agent-core-v2/docs/state-manifest.d.ts | 41 | // Session | COMMENT |
| LOW | packages/agent-core-v2/docs/state-manifest.d.ts | 61 | // fileHistory src/features/fileHistory/fileHistoryOps.ts | COMMENT |
| LOW | packages/agent-core-v2/docs/state-manifest.d.ts | 81 | // media.budgetDropped src/agent/media/mediaResolverService.ts | COMMENT |
| LOW | packages/agent-core-v2/docs/state-manifest.d.ts | 101 | // task.activeTaskReminderPending src/agent/task/taskService.ts | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 1 | # Config Section Manifest | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 21 | # extraSkillDirs src/features/skill/catalog/configSection.ts | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 41 | # watch src/app/watch/configSection.ts | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 61 | # max_running_tasks: integer | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 81 | # ########################################################################## | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 101 | disabled = false | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 121 | # search_sync_session_cap: integer | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 141 | # environments | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 161 | # owner: src/workspace/workspaceAgentProfileLoader/configSection.ts | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 181 | COMMENT | |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 201 | # slug: string | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 221 | # hooks: custom toToml · stripEnv | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 241 | # scope: core | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 261 | # ########################################################################## | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 281 | COMMENT | |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 301 | # capabilities: string[] | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 321 | # support_efforts: string[] | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 341 | COMMENT | |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 361 | # type: string | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 381 | # ########################################################################## | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 401 | # moonshot_fetch.base_url <- KIMI_WEB_FETCH_BASE_URL (custom parse) | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 421 | # key: string | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 441 | # hooks: stripEnv | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 461 | # ########################################################################## | COMMENT |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 481 | COMMENT | |
| LOW | packages/agent-core-v2/docs/config-manifest.toml | 501 | # tools | COMMENT |
| LOW | packages/pi-tui/native/napi.h | 1 | #ifndef PI_NAPI_H | COMMENT |
| LOW | packages/pi-tui/src/stdin-buffer.ts | 221 | if (char === ESC && seqEnd < remaining.length && remaining[seqEnd] !== "\\") { | COMMENT |
| LOW | packages/pi-tui/src/tui-main-screen.ts | 281 | // Render all components to get new lines | COMMENT |
| LOW | packages/pi-tui/src/keys.ts | 701 | // This allows Ctrl+С (Cyrillic) to match Ctrl+c (Latin) when terminal reports | COMMENT |
| LOW | packages/pi-tui/src/components/markdown.ts | 21 | text, | COMMENT |
| LOW | packages/kosong/test/generate.test.ts | 601 | COMMENT | |
| LOW | packages/kosong/src/errors.ts | 221 | return error.finishReason !== 'filtered'; | COMMENT |
| LOW | packages/kosong/src/errors.ts | 241 | // (400/401/403/404/422) and the recovery-owned context-overflow / | COMMENT |
| LOW | packages/kosong/src/errors.ts | 261 | // limits or image-input-disabled errors also mention "image", but stripping | COMMENT |
| LOW | packages/kosong/src/errors.ts | 501 | // `tool_result`/`tool` blocks are not correctly paired and adjacent — a missing | COMMENT |
| LOW | packages/kosong/src/errors.ts | 521 | /tool_call_id[\s\S]*not found/, | COMMENT |
| 98 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | ))","name":"comment.line.number-sign.python","patterns":[{"include":"#codetags"}]},"curly-braces":{"begin":"\\\\{","begi | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | ))","name":"comment.line.number-sign.python","patterns":[{"include":"#codetags"}]},"curly-braces":{"begin":"\\\\{","begi | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | ))","name":"comment.line.number-sign.python","patterns":[{"include":"#codetags"}]},"curly-braces":{"begin":"\\\\{","begi | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | |\\"\\"\\"))|\\\\n","name":"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | |\\"\\"\\"))|\\\\n","name":"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | |\\"\\"\\"))|\\\\n","name":"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | |\\"\\"\\"))|\\\\n","name":"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line": | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | |\\"\\"\\"))|\\\\n","name":"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line": | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | |\\"\\"\\"))|\\\\n","name":"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line": | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | )","endcaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}} | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | )","endcaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}} | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | )","endcaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}} | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | ))","endcaptures":{"1":{"name":"punctuation.comment.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | ))","endcaptures":{"1":{"name":"punctuation.comment.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | ))","endcaptures":{"1":{"name":"punctuation.comment.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | ))","endcaptures":{"1":{"name":"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"n | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | ))","endcaptures":{"1":{"name":"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"n | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | ))","endcaptures":{"1":{"name":"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"n | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | ))","endcaptures":{"1":{"name":"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{ | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | ))","endcaptures":{"1":{"name":"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{ | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | ))","endcaptures":{"1":{"name":"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{ | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | ))","endcaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{"name": | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | ))","endcaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{"name": | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | ))","endcaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{"name": | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | |\\"\\"\\")","patterns":[{"include":"#string-consume-escape"},{"include":"#string-formatting"}]},"string-multi-bad-brace | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | |\\"\\"\\")","patterns":[{"include":"#string-consume-escape"},{"include":"#string-formatting"}]},"string-multi-bad-brace | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | |\\"\\"\\")","patterns":[{"include":"#string-consume-escape"},{"include":"#string-formatting"}]},"string-multi-bad-brace | STRING |
| HIGH | apps/kimi-code/dist-web/assets/python-B6aJPvgy.js | 0 | |\\"\\"\\")","begincaptures":{"1":{"name":"invalid.illegal.prefix.python"},"2":{"name":"storage.type.string.python"},"3" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/vyper-CDx5xZoG.js | 0 | |\\"\\"\\")","begincaptures":{"1":{"name":"invalid.illegal.prefix.python"},"2":{"name":"storage.type.string.python"},"3" | STRING |
| HIGH | apps/kimi-code/dist-web/assets/mojo-rZm6bMo-.js | 0 | |\\"\\"\\")","begincaptures":{"1":{"name":"invalid.illegal.prefix.python"},"2":{"name":"storage.type.string.python"},"3" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/acp-server/test/lifecycle.test.ts | 450 | async () => (await c.server.klient.global.auth.summarize()).some((s) => s.loggedIn), | CODE |
| CRITICAL | packages/acp-server/test/lifecycle.test.ts | 467 | async () => (await c.server.klient.global.auth.summarize()).some((s) => s.loggedIn), | CODE |
| CRITICAL | …i/controllers/session-event-handler-goal-queue.test.ts | 177 | const component = host.state.transcriptContainer.addChild.mock.calls.at(-1)?.[0]; | CODE |
| CRITICAL | apps/kimi-code/dist-web/assets/mermaid.core-BTdvNJFM.js | 203 | `+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):r.push(o);continue}if(t){let a="Infinite loop on byt | CODE |
| CRITICAL | …e/dist-web/assets/sequenceDiagram-DBY2YBRQ-mu76CmfO.js | 10 | }`,s=lr(u,{schema:hr})}r=s?.type??r,s?.alias&&(!a||a.text===t)&&(a={text:s.alias,wrap:a?.wrap,type:r});const o=this.stat | CODE |
| CRITICAL | …-code/dist-web/assets/mermaidParser.worker-BFSlSHEW.js | 202 | `+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):r.push(o);continue}if(t){let a="Infinite loop on byt | CODE |
| CRITICAL | …e/dist-web/assets/sequenceDiagram-DBY2YBRQ-Bi6rVWH0.js | 10 | }`,s=lr(u,{schema:hr})}r=s?.type??r,s?.alias&&(!a||a.text===t)&&(a={text:s.alias,wrap:a?.wrap,type:r});const o=this.stat | CODE |
| CRITICAL | apps/kimi-code/src/tui/controllers/btw-panel.ts | 172 | if (!this.host.state.btwPanelContainer.children.includes(panel)) return; | CODE |
| CRITICAL | apps/kimi-code/src/tui/controllers/tasks-browser.ts | 238 | const record = this.host.sessionEventHandler.subAgentEventHandler.activityStore.get( | CODE |
| CRITICAL | apps/kimi-code/src/tui/controllers/tasks-browser.ts | 352 | const record = this.host.sessionEventHandler.subAgentEventHandler.activityStore.get( | CODE |
| CRITICAL | apps/kimi-code/src/tui/controllers/tasks-browser.ts | 458 | : this.host.sessionEventHandler.subAgentEventHandler.activityStore.get(agentId); | CODE |
| CRITICAL | apps/kimi-code/src/tui/controllers/tasks-browser.ts | 479 | const record = this.host.sessionEventHandler.subAgentEventHandler.activityStore.get( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | AGENTS.md | 86 | - In public text and test data, replace real internal identifiers with neutral placeholders such as `example.com`, `exam | CODE |
| HIGH | CLAUDE.md | 86 | - In public text and test data, replace real internal identifiers with neutral placeholders such as `example.com`, `exam | CODE |
| HIGH | .agents/skills/gen-docs/SKILL.md | 78 | - **Public examples**: Never write real internal endpoints, key names, account names, or service names into docs. Use ne | CODE |
| HIGH | .agents/skills/gen-changesets/SKILL.md | 38 | - No file, class, or function names, and no PR numbers. No vague words like refactor, optimize, or improve. No real inte | CODE |
| HIGH | .agents/skills/sync-changelog/SKILL.md | 125 | Public-text rule: do not copy real internal endpoints, key names, account names, or service names into docs changelogs. | CODE |
| HIGH | .agents/skills/translate-docs/SKILL.md | 58 | - **Public examples**: Do not introduce real internal endpoints, key names, account names, or service names while transl | CODE |
| HIGH | docs/zh/configuration/env-vars.md | 111 | export KIMI_MODEL_API_KEY="YOUR_API_KEY" | CODE |
| HIGH | docs/en/configuration/env-vars.md | 111 | export KIMI_MODEL_API_KEY="YOUR_API_KEY" | CODE |
| HIGH | …ages/agent-core-v2/test/remote/providerFactory.test.ts | 409 | if (++attempt === 1) throw new HandshakeError('secret-host: /private/path YOUR_API_KEY', { kind: 'timeout' }); | CODE |
| HIGH | …ages/agent-core-v2/test/remote/providerFactory.test.ts | 432 | for (const privateValue of ['secret-host', '/private/path', 'YOUR_API_KEY', 'dev-box', 'sessionId']) expect(payload) | CODE |
| HIGH | packages/node-sdk/test/sdk-rpc-client-v2.test.ts | 2039 | apiKey: 'YOUR_API_KEY', | CODE |
| HIGH | packages/node-sdk/test/sdk-rpc-client-v2.test.ts | 2191 | apiKey: 'YOUR_API_KEY', | CODE |
| HIGH | apps/kimi-code/test/tui/kimi-tui-startup.test.ts | 791 | apiKeyDialog.handleInput('YOUR_API_KEY'); | CODE |
| HIGH | apps/kimi-code/test/tui/commands/provider.test.ts | 95 | dialog.handleInput('YOUR_API_KEY'); | CODE |
| HIGH | apps/kimi-code/test/tui/commands/provider.test.ts | 105 | await expect(prompt).resolves.toBe('YOUR_API_KEY'); | CODE |
| HIGH | apps/kimi-code/test/cli/doctor.test.ts | 60 | api_key = "YOUR_API_KEY" | CODE |
| HIGH | apps/kimi-code/test/cli/doctor.test.ts | 115 | api_key = "YOUR_API_KEY" | CODE |
| HIGH | apps/kimi-code/test/cli/doctor.test.ts | 338 | api_key = "YOUR_API_KEY" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/oauth/test/managed-userinfo.test.ts | 44 | email: 'user@example.com', | CODE |
| LOW | packages/oauth/test/managed-userinfo.test.ts | 63 | email: 'user@example.com', | CODE |
| LOW | packages/oauth/test/managed-userinfo.test.ts | 170 | parseManagedUserInfoPayload({ user_id: 'u_1', email: 'user@example.com' })?.email, | CODE |
| LOW | packages/oauth/test/managed-userinfo.test.ts | 171 | ).toBe('user@example.com'); | CODE |
| LOW | packages/oauth/test/managed-userinfo.test.ts | 343 | email: 'user@example.com', | CODE |
| LOW | packages/oauth/src/managed-userinfo.ts | 19 | * "email": "user@example.com", | COMMENT |
| LOW | packages/acp-server/test/lifecycle.test.ts | 48 | let token: string | undefined = 'fake-token'; | CODE |
| LOW | …re-v2/test/agent/fullCompaction/fullCompaction.test.ts | 4556 | `assistant ${step} ${'lorem ipsum '.repeat(15_000)}`, | CODE |
| LOW | …re-v2/test/agent/fullCompaction/fullCompaction.test.ts | 4611 | `assistant ${step} ${'lorem ipsum '.repeat(15_000)}`, | CODE |
| LOW | packages/kap-server/test/oauthUsage.test.ts | 234 | email: 'user@example.com', | CODE |
| LOW | packages/kap-server/test/oauthUsage.test.ts | 256 | email: 'user@example.com', | CODE |
| LOW | packages/pi-tui/test/markdown.test.ts | 194 | `1. Lorem ipsum dolor sit amet. | CODE |
| LOW | packages/pi-tui/test/markdown.test.ts | 194 | `1. Lorem ipsum dolor sit amet. | CODE |
| LOW | packages/pi-tui/test/markdown.test.ts | 211 | "1. Lorem ipsum dolor sit amet.", | CODE |
| LOW | packages/pi-tui/test/markdown.test.ts | 211 | "1. Lorem ipsum dolor sit amet.", | CODE |
| LOW | packages/pi-tui/test/markdown.test.ts | 1714 | assert.ok(joinedPlain.includes("user@example.com"), "Should contain email"); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1288 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1288 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1291 | assert.strictEqual(chunks[0]!.text, "Lorem ipsum dolor sit "); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1296 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1296 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1299 | assert.strictEqual(chunks[0]!.text, "Lorem ipsum dolor sit "); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1304 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1304 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1307 | assert.strictEqual(chunks[0]!.text, "Lorem ipsum dolor sit "); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1313 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1313 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1316 | assert.strictEqual(chunks[0]!.text, "Lorem ipsum dolor sit "); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1322 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1322 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1325 | assert.strictEqual(chunks[0]!.text, "Lorem ipsum dolor sit "); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1331 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1331 | const chunks = wordWrapLine("Lorem ipsum dolor sit amet, consectetur", 30); | CODE |
| LOW⚡ | packages/pi-tui/test/editor.test.ts | 1334 | assert.strictEqual(chunks[0]!.text, "Lorem ipsum dolor sit "); | CODE |
| LOW | packages/pi-tui/test/editor.test.ts | 2470 | "user@example.com", | CODE |
| LOW | packages/pi-tui/src/components/markdown.ts | 823 | // For mailto: links strip the prefix (autolinked emails use text="foo@bar.com" | COMMENT |
| LOW | …ckages/migration-legacy/test/sessions/classify.test.ts | 34 | expect(await classify('uuid1')).toBe('placeholder'); | CODE |
| LOW | packages/migration-legacy/src/sessions/classify.ts | 6 | export type SessionClass = 'placeholder' | 'empty' | 'malformed' | 'real'; | CODE |
| LOW | packages/migration-legacy/src/sessions/classify.ts | 17 | if (entries.length === 1 && entries[0] === 'test') return 'placeholder'; | CODE |
| LOW | packages/migration-legacy/src/sessions/index.ts | 99 | if (cls === 'placeholder') { | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 55 | 'lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt', | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 55 | 'lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt', | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 61 | ' init[D] lorem ipsum dolor sit amet consectetur adipiscing elit sed do', | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 61 | ' init[D] lorem ipsum dolor sit amet consectetur adipiscing elit sed do', | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 67 | const description = 'lorem ipsum dolor sit amet consectetur adipiscing elit '.repeat(4).trim(); | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 67 | const description = 'lorem ipsum dolor sit amet consectetur adipiscing elit '.repeat(4).trim(); | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 74 | expect(lines[1]).toMatch(/^ {2}init\[D\] {8}lorem ipsum/); | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 80 | const description = 'lorem ipsum dolor sit amet consectetur adipiscing elit '.repeat(4).trim(); | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 80 | const description = 'lorem ipsum dolor sit amet consectetur adipiscing elit '.repeat(4).trim(); | CODE |
| LOW⚡ | …est/tui/components/editor/wrapping-select-list.test.ts | 86 | expect(lines[0]).toMatch(/^\[S\]→ goal {8}lorem ipsum/); | CODE |
| LOW | apps/kimi-code/dist-web/assets/mermaid.core-BTdvNJFM.js | 3 | In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ey(e,t){return Ly(e)||Fy(e | CODE |
| LOW | …-code/dist-web/assets/mermaidParser.worker-BFSlSHEW.js | 2 | In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Iy(e,t){return Ey(e)||$y(e | CODE |
| LOW | apps/kimi-code/dist-web/assets/marko-DjSrsDqO.js | 1 | import e from"./css-CLj8gQPS.js";import n from"./less-B1dDrJ26.js";import t from"./scss-D5BDwBP9.js";import a from"./typ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/official/kimi-datasource/SKILL.md | 98 | ### 例 2:用户问"找几篇 retrieval augmented generation 的综述" | COMMENT |
| MEDIUM | docs/en/guides/tower.md | 1 | # Tower multi-agent collaboration | COMMENT |
| MEDIUM | packages/kosong/CHANGELOG.md | 53 | - [#1131](https://github.com/MoonshotAI/kimi-code/pull/1131) [`76c643b`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 105 | - [#4386](https://github.com/MoonshotAI/kimi-code/pull/4386) [`fd2e2c7`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 187 | - [#4074](https://github.com/MoonshotAI/kimi-code/pull/4074) [`c9f01f0`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 293 | - [#3911](https://github.com/MoonshotAI/kimi-code/pull/3911) [`88a7d93`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 573 | - [#3549](https://github.com/MoonshotAI/kimi-code/pull/3549) [`29e1875`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 777 | - [#3099](https://github.com/MoonshotAI/kimi-code/pull/3099) [`0f44537`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 777 | - [#3099](https://github.com/MoonshotAI/kimi-code/pull/3099) [`0f44537`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 1315 | - [#2563](https://github.com/MoonshotAI/kimi-code/pull/2563) [`2118544`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 2318 | - [#1131](https://github.com/MoonshotAI/kimi-code/pull/1131) [`76c643b`](https://github.com/MoonshotAI/kimi-code/commit/ | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 3048 | - [#211](https://github.com/MoonshotAI/kimi-code/pull/211) [`54590d3`](https://github.com/MoonshotAI/kimi-code/commit/54 | CODE |
| MEDIUM | apps/kimi-code/CHANGELOG.md | 3236 | - [#17](https://github.com/MoonshotAI/kimi-code/pull/17) [`bfbd522`](https://github.com/MoonshotAI/kimi-code/commit/bfbd | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/node-sdk/src/sdk-rpc-client-v2.ts | 275 | import { KimiHarness } from '#/kimi-harness'; | CODE |
| MEDIUM⚡ | packages/node-sdk/src/index.ts | 1 | import type { KimiHarnessEnvironmentOptions } from '#/kimi-harness'; | CODE |
| MEDIUM⚡ | packages/node-sdk/src/index.ts | 2 | export { KimiHarness } from '#/kimi-harness'; | CODE |
| MEDIUM⚡ | packages/node-sdk/src/index.ts | 3 | export type { KimiHarnessEnvironmentOptions, KimiHarnessRuntimeOptions } from '#/kimi-harness'; | CODE |
| MEDIUM | packages/minidb/test/e2e/crash-recovery.test.ts | 28 | // the kill clock, so the test is robust even under heavy CPU contention. | COMMENT |
| MEDIUM | packages/minidb/test/e2e/compaction-race.test.ts | 79 | // measuring absolute timing, so the assertion stays robust under CPU/IO load | COMMENT |
| MEDIUM | apps/kimi-code/dist-web/assets/bird2-BIv1doCn.js | 1 | const e=Object.freeze(JSON.parse(`{"displayName":"BIRD2 Configuration","fileTypes":["conf","bird","bird2","bird3","bird. | CODE |
| MEDIUM | apps/kimi-code/dist-web/assets/sql-CRqJ_cUM.js | 1 | const e=Object.freeze(JSON.parse('{"displayName":"SQL","name":"sql","patterns":[{"match":"((?<!@)@)\\\\b(\\\\w+)\\\\b"," | CODE |
| MEDIUM | apps/kimi-code/dist-web/assets/emacs-lisp-CXvaQtF9.js | 1 | const e=Object.freeze(JSON.parse(`{"displayName":"Emacs Lisp","fileTypes":["el","elc","eld","spacemacs","_emacs","emacs" | CODE |
| MEDIUM | apps/kimi-code/dist-web/assets/stata-DI20mbqo.js | 1 | import t from"./sql-CRqJ_cUM.js";const a=Object.freeze(JSON.parse(`{"displayName":"Stata","fileTypes":["do","ado","mata" | CODE |
| MEDIUM | apps/kimi-code/dist-web/assets/stata-DI20mbqo.js | 1 | import t from"./sql-CRqJ_cUM.js";const a=Object.freeze(JSON.parse(`{"displayName":"Stata","fileTypes":["do","ado","mata" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/en/guides/remote-control.md | 15 | ### Step 1: Start Remote Control | COMMENT |
| LOW | docs/en/guides/remote-control.md | 36 | ### Step 2: Connect from another device | COMMENT |
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 610 | // Step 1: append u1, u2 then undo(1) → removes u2, leaves [u1, <undo marker>]. | COMMENT |
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 611 | // Step 2: append u3, u4 → array is [u1, <undo marker>, u3, u4]. | COMMENT |
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 648 | // Step 1: append tool c0, user u1 then undo(1) → removes u1, leaves | COMMENT |
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 650 | // Step 2: append tool c1 → array is [c0, <undo marker>, c1]. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 610 | // Step 1: append u1, u2 then undo(1) → removes u2, leaves [u1, <undo marker>]. | COMMENT |
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 611 | // Step 2: append u3, u4 → array is [u1, <undo marker>, u3, u4]. | COMMENT |
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 648 | // Step 1: append tool c0, user u1 then undo(1) → removes u1, leaves | COMMENT |
| LOW⚡ | apps/vis/server/test/lib/context-projector.test.ts | 650 | // Step 2: append tool c1 → array is [c0, <undo marker>, c1]. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/kap-server/test/v2Sessions.test.ts | 207 | async function getData(query = ''): Promise<PageWireV2> { | CODE |
| LOW | packages/node-sdk/test/mcp-auth-status-server.ts | 56 | async function handleRequest( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/kimi-code/src/tui/utils/printable-key.ts | 18 | * The module's existence is itself the "don't forget to decode" constraint: | COMMENT |