💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.
This report summarizes scanner evidence for moeru-ai/airi, a TypeScript project with 50,944 GitHub stars. SynthScan examined 932,837 lines of code across 5651 source files, recording 1379 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.7 (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? 1271 finding(s).
Are imports declared and package/API names verified? 58 finding(s).
Are wrappers, guards, and repeated structures necessary? 1172 finding(s).
Which changes need focused human review? 1379 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 1379 distinct pattern matches across 14 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 | uno.config.ts | 59 | export function safelistAllPrimaryBackgrounds(): string[] { | CODE |
| LOW | uno.config.ts | 69 | export function safelistSettingsEntryIcons(): string[] { | CODE |
| LOW | evals/tts-speech-formula/eval/tasks/read-aloud/index.ts | 205 | export function describeFormulaSpeechTask(language: Language, readAloud: ReadAloud) { | CODE |
| LOW | …als/tts-speech-formula/eval/tasks/read-aloud/config.ts | 166 | export function defineFormulaSpeechConfig(testObject: string, options: FormulaSpeechConfigOptions = {}) { | CODE |
| LOW | evals/tts-speech-formula/eval/shared/telemetry.ts | 27 | export async function generateTextWithTelemetry(context: TaskRunContext, role: string, options: GenerateTextOptions): Pr | CODE |
| LOW | …formula/eval/evaluators/speech/gemini-transcription.ts | 53 | export function createGeminiTranscription(): TranscriptionExecutor { | CODE |
| LOW | …speech-formula/eval/evaluators/speech/speech-models.ts | 317 | export function transcriptionModelFromRun(context: MatrixModelContext, options: SpeechModelFromMatrixOptions): ModelDefi | CODE |
| LOW | …speech-formula/eval/evaluators/speech/speech-models.ts | 322 | export function transcriptionModelFromEval(context: MatrixModelContext, options: SpeechModelFromMatrixOptions): ModelDef | CODE |
| LOW | …speech-formula/eval/evaluators/speech/speech-models.ts | 338 | function resolveProviderParameters(provider: SpeechProviderDefinition, env: NodeJS.ProcessEnv): Record<string, unknown> | CODE |
| LOW | …speech-formula/eval/evaluators/speech/speech-models.ts | 392 | export function openaiSpeechFromRunContext(model: ModelDefinition): OpenAISpeechModelRuntimeConfig { | CODE |
| LOW | …speech-formula/eval/evaluators/speech/speech-models.ts | 411 | export function openaiTranscriptionFromRunContext(model: ModelDefinition): OpenAITranscriptionModelRuntimeConfig { | CODE |
| LOW | …speech-formula/eval/evaluators/speech/speech-models.ts | 428 | export function transcriptionRequestFromRunContext(model: ModelDefinition, options: { language?: string } = {}): Transcr | CODE |
| LOW | …airi-plugin-web-extension/src/shared/eventa-runtime.ts | 65 | export function createRuntimeEventaContext() { | CODE |
| LOW | …ents/skills/vueuse-functions/references/onLongPress.md | 124 | function onLongPressCallbackComponent(e: PointerEvent) { | CODE |
| LOW | …ents/skills/vueuse-functions/references/onLongPress.md | 158 | function onLongPressCallbackDirective(e: PointerEvent) { | CODE |
| LOW | …euse-functions/references/usePreferredReducedMotion.md | 39 | export declare function usePreferredReducedMotion( | CODE |
| LOW | …unctions/references/usePreferredReducedTransparency.md | 39 | export declare function usePreferredReducedTransparency( | CODE |
| LOW | …ls/vueuse-functions/references/useElementVisibility.md | 84 | function onElementVisibilityWithControls(state) { | CODE |
| LOW | …ls/vueuse-functions/references/createInjectionState.md | 36 | export function useCounterStoreWithDefaultValue() { | CODE |
| LOW | server/packages/server-sdk-shared/src/v2.ts | 41 | export function parseAuthenticateResponse(response: unknown): AuthenticateResponse { | CODE |
| LOW⚡ | server/packages/http-error-shared/src/error.ts | 53 | export function createPayloadTooLargeError(message: string, errorCode = 'PAYLOAD_TOO_LARGE', details?: unknown) { | CODE |
| LOW⚡ | server/packages/http-error-shared/src/error.ts | 60 | export function createTooManyRequestsError(message = 'Too many requests', details?: unknown) { | CODE |
| LOW⚡ | server/packages/http-error-shared/src/error.ts | 67 | export function createPaymentRequiredError(message: string, details?: unknown) { | CODE |
| LOW | server/packages/http-error-shared/src/error.ts | 82 | export function createSubscriptionActiveError() { | CODE |
| LOW | server/packages/http-error-shared/src/error.ts | 89 | export function createServiceUnavailableError(message = 'Service Unavailable', errorCode = 'SERVICE_UNAVAILABLE', detail | CODE |
| LOW | server/packages/http-error-shared/src/error.ts | 120 | export function createGatewayTimeoutError(message = 'Gateway Timeout', details?: unknown) { | CODE |
| LOW | server/apps/auth/src/routes.ts | 82 | function forwardAuthUiProviderHint(requestUrl: string, response: Response): Response { | CODE |
| LOW | server/apps/auth/src/routes.ts | 146 | async function resolveSessionIgnoringBan( | CODE |
| LOW | server/apps/auth/src/routes.ts | 234 | function createElectronCallbackRelay(env: AuthEnv) { | CODE |
| LOW | server/apps/auth/src/origin.ts | 65 | export function resolveTrustedRequestOrigin( | CODE |
| LOW | server/apps/auth/src/oidc-access-token.ts | 25 | export function createOidcAccessTokenVerifier(publicUrl: string): VerifyOidcAccessToken { | CODE |
| LOW | server/apps/auth/src/social-authorization.ts | 132 | async function revokeGoogleAuthorization(account: SocialAccount, fetchRequest: typeof fetch): Promise<void> { | CODE |
| LOW | server/apps/auth/src/social-authorization.ts | 162 | async function revokeGitHubAuthorization( | CODE |
| LOW | server/apps/auth/src/social-authorization.ts | 223 | export function createSocialAuthorizationRevoker( | CODE |
| LOW | server/apps/auth/src/env.ts | 10 | function optionalIntegerFromString(defaultValue: number, envKey: string, minimum: number) { | CODE |
| LOW | server/apps/auth/src/rate-limit.ts | 92 | function getTrustedProxyClientAddress(c: Context<HonoEnv>, trustedProxy: RateLimitOptions['trustedProxy']): string | und | CODE |
| LOW | server/apps/auth/src/auth.ts | 118 | function createAppleProviderConfig( | CODE |
| LOW | server/apps/auth/src/auth.ts | 157 | function buildTrustedWebRedirectUri(redirectUri: string, additionalTrustedOrigins: readonly string[]): string | null { | CODE |
| LOW | server/apps/auth/src/auth.ts | 174 | function buildTrustedElectronRedirectUri(request: Request, redirectUri: string): string | null { | CODE |
| LOW | server/apps/auth/src/auth.ts | 255 | export function getTrustedClientSeedSummaries(env: AuthEnv): TrustedClientSeedSummary[] { | CODE |
| LOW | server/apps/auth/src/auth.ts | 267 | export async function ensureDynamicFirstPartyRedirectUri( | CODE |
| LOW | server/apps/auth/src/plugins/steam.ts | 96 | function logTextWithoutSteamWebApiUrl(error: unknown, webApiKey: string): string { | CODE |
| LOW | server/apps/api/src/middlewares/rate-limit.ts | 94 | function getTrustedProxyClientAddress(c: Context<HonoEnv>, trustedProxy: RateLimitOptions['trustedProxy']): string | und | CODE |
| LOW | server/apps/api/src/utils/origin.ts | 54 | export function resolveTrustedRequestOrigin( | CODE |
| LOW | server/apps/api/src/utils/origin.ts | 90 | export function resolveCheckoutRedirectBase( | CODE |
| LOW | server/apps/api/src/utils/observability.ts | 163 | export function getServerConnectionAttributes(baseUrl: string): Record<string, string | number> { | CODE |
| LOW | server/apps/api/src/utils/redis-keys.ts | 20 | export function userChatBroadcastRedisKey(userId: string): string { | CODE |
| LOW | server/apps/api/src/utils/redis-keys.ts | 31 | export function userChatBroadcastRedisPattern(): string { | CODE |
| LOW | server/apps/api/src/utils/chat-broadcast.ts | 84 | export function createChatBroadcastMessage( | CODE |
| LOW | server/apps/api/src/utils/chat-broadcast.ts | 106 | export function parseChatBroadcastMessage(raw: string): ChatBroadcastMessage { | CODE |
| LOW | server/apps/api/src/otel/gauges/ws-online-users.ts | 24 | export function registerWsOnlineUsersGauge( | CODE |
| LOW | server/apps/api/src/libs/ws-auth.ts | 56 | export function createUnauthorizedWsEvents(): WSEvents { | CODE |
| LOW | server/apps/api/src/libs/env.ts | 42 | function optionalIntegerFromString(defaultValue: number, envKey: string, minimum: number) { | CODE |
| LOW | server/apps/api/src/libs/tests/redis-stream-groups.ts | 51 | export function createStreamGroupTestRedis(): Redis { | CODE |
| LOW | server/apps/api/src/routes/chat-ws/broadcast.ts | 47 | export function createChatBroadcastCoordinator(options: ChatBroadcastCoordinatorOptions): ChatBroadcastCoordinator { | CODE |
| LOW | …ver/apps/api/src/routes/chat-ws/connection-registry.ts | 32 | export function createChatConnectionRegistry(): ChatConnectionRegistry { | CODE |
| LOW | …pps/api/src/routes/chat-ws/v2/unauthenticated-peers.ts | 15 | export function createChatWsUnauthenticatedPeerLimit(maximumConnections: number): ChatWsUnauthenticatedPeerLimit { | CODE |
| LOW | server/apps/api/src/routes/chat-ws/v2/index.ts | 69 | function releaseUnauthenticatedSlot(): void { | CODE |
| LOW | server/apps/api/src/routes/flux/route.test.ts | 19 | function createMockFluxTransactionService(): FluxTransactionService { | CODE |
| LOW | server/apps/api/src/routes/character-cards/index.ts | 10 | export function createCharacterCardRoutes(characterCardService: CharacterCardService) { | CODE |
| 1062 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …minecraft/src/cognitive/conscious/map-renderer.test.ts | 6 | // ─── Helpers ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …minecraft/src/cognitive/conscious/map-renderer.test.ts | 48 | // ─── Tests ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ions/minecraft/src/cognitive/conscious/map-renderer.ts | 5 | // ─── Types ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ions/minecraft/src/cognitive/conscious/map-renderer.ts | 35 | // ─── Block Category Classification ────────────────────────────────── | COMMENT |
| MEDIUM | …ions/minecraft/src/cognitive/conscious/map-renderer.ts | 118 | // ─── Block Name → Category Mapping ────────────────────────────────── | COMMENT |
| MEDIUM | …ions/minecraft/src/cognitive/conscious/map-renderer.ts | 195 | // ─── Entity Classification ────────────────────────────────────────── | COMMENT |
| MEDIUM | …ions/minecraft/src/cognitive/conscious/map-renderer.ts | 269 | // ─── Surface Finding ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ions/minecraft/src/cognitive/conscious/map-renderer.ts | 296 | // ─── Renderers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ions/minecraft/src/cognitive/conscious/map-renderer.ts | 522 | // ─── Public API ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | packages/stage-ui/src/composables/use-analytics.ts | 236 | // analytics module — both surfaces feed one OpenPanel series) ─────────── | COMMENT |
| MEDIUM⚡ | packages/stage-ui/src/composables/use-analytics.ts | 973 | // ─── Voice clone (custom TTS voice) ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | packages/stage-ui/src/composables/use-analytics.ts | 981 | // ─── Device pairing / channel (Electron / Tamagotchi) ───────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 426 | // ─── Conversation action events ───────────────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 536 | // ─── STT events ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 583 | // ─── Feedback and community triage events ──────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 607 | // ─── PTT events ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 621 | // ─── TTS selection events ──────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 775 | // ─── AIRI card (ccv3 character card) events ────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 807 | // ─── App lifecycle ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 815 | // ─── Feature usage / retention ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 847 | // ─── Monetization (client side) ────────────────────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 896 | // ─── Data maintenance (churn-precursor signals) ────────────────────── | COMMENT |
| MEDIUM | packages/stage-ui/src/composables/use-analytics.ts | 915 | // ─── Desktop (Electron / Tamagotchi) differentiators ───────────────── | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 12 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 17 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 80 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 82 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 136 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 138 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 160 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 162 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 270 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 272 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 326 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 328 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 374 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 376 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 412 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 417 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 474 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 476 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 514 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 516 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 566 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/i18n/glossary/terms.yaml | 568 | # --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | services/computer-use-mcp/src/support-matrix.ts | 52 | // ── Workflow lane ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | services/computer-use-mcp/src/support-matrix.ts | 117 | // ── Browser lane ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | services/computer-use-mcp/src/support-matrix.ts | 150 | // ── Desktop/native lane ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | services/computer-use-mcp/src/support-matrix.ts | 212 | // ── Terminal lane ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | services/computer-use-mcp/src/support-matrix.ts | 324 | // ── Handoff lane ─────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | uno.config.ts | 21 | // ] | COMMENT |
| LOW | evals/tts-speech-formula/eval/tasks/read-aloud/index.ts | 281 | }) | COMMENT |
| LOW | …ts/skills/vueuse-functions/references/useChangeCase.md | 21 | COMMENT | |
| LOW | server/apps/auth/src/origin.ts | 81 | } | COMMENT |
| LOW | server/apps/auth/src/auth.ts | 461 | bearer(), | COMMENT |
| LOW | server/apps/auth/src/auth.ts | 501 | COMMENT | |
| LOW | server/apps/auth/src/auth.ts | 581 | }, | COMMENT |
| LOW | server/apps/auth/src/auth.ts | 621 | }, | COMMENT |
| LOW | server/apps/auth/src/auth.ts | 641 | // | COMMENT |
| LOW | server/apps/auth/src/auth.ts | 681 | socialProviders: { | COMMENT |
| LOW | server/apps/auth/src/auth.ts | 701 | mapProfileToUser: profile => ({ | COMMENT |
| LOW | server/apps/auth/src/auth.ts | 761 | url.searchParams.set('error', 'auth_failed') | COMMENT |
| LOW | server/apps/api/instrumentation.ts | 41 | import { NodeSDK } from '@opentelemetry/sdk-node' | COMMENT |
| LOW | server/apps/api/instrumentation.ts | 81 | // Head-based sampling. Metrics are always 100% accurate regardless. | COMMENT |
| LOW | server/apps/api/src/utils/observability.ts | 101 | export const METRIC_AIRI_GEN_AI_STREAM_INTERRUPTED = 'airi.gen_ai.stream.interrupted' | COMMENT |
| LOW | server/apps/api/src/utils/observability.ts | 121 | // subscriber_state — Pub/Sub subscriber lifecycle transitions. Labels: state | COMMENT |
| LOW | server/apps/api/src/utils/tests/chat-broadcast.test.ts | 81 | }, | COMMENT |
| LOW | server/apps/api/src/libs/tests/ws-auth.test.ts | 1 | import { describe, expect, it, vi } from 'vitest' | COMMENT |
| LOW | server/apps/api/src/routes/openai/v1/route.test.ts | 1761 | it('should return 401 when unauthenticated', async () => { | COMMENT |
| LOW | …pps/api/src/services/adapters/config-kv/definitions.ts | 281 | // A fraction fails the database write, and an unsafe integer loses precision. | COMMENT |
| LOW | …pps/api/src/services/adapters/config-kv/definitions.ts | 301 | // Server-side alias resolution for `model: 'auto'` in /chat/completions and | COMMENT |
| LOW | …/services/domain/billing/tests/billing-service.test.ts | 61 | it('is idempotent across retries with the same requestId', async () => { | COMMENT |
| LOW | integrations/telegram-bot/src/bots/telegram/index.ts | 181 | // // Create a new abort controller for this loop execution | COMMENT |
| LOW | integrations/telegram-bot/src/models/chat-message.ts | 201 | return [ | COMMENT |
| LOW | integrations/telegram-bot/src/models/chat-message.ts | 221 | const repliedMessageIDsSubset = relevantMessagesContext.map(msgs => msgs.filter(m => m.is_reply).map(m => m.reply_to | COMMENT |
| LOW | …ive/perception/events/definitions/fall-tracker.test.ts | 1 | import { describe, expect, it } from 'vitest' | COMMENT |
| LOW | integrations/minecraft/src/skills/actions/inventory.ts | 241 | // const items = await mineflayer.bot.inventory.items() | COMMENT |
| LOW | …hi-godot/tests/stage-tamagotchi-godot.tests/Program.cs | 1 | using System; | COMMENT |
| LOW | engines/stage-tamagotchi-godot/scripts/StageRoot.cs | 1 | using System; | COMMENT |
| LOW | …/stage-tamagotchi-godot/scripts/vrm/VrmAvatarLoader.cs | 1 | using System; | COMMENT |
| LOW | …amagotchi-godot/scripts/transport/StageViewPayloads.cs | 121 | COMMENT | |
| LOW | …tage-tamagotchi-godot/scripts/transport/StageBridge.cs | 1 | using System; | COMMENT |
| LOW | …tage-tamagotchi-godot/scripts/transport/StageBridge.cs | 41 | /// <summary> | COMMENT |
| LOW | …tage-tamagotchi-godot/scripts/transport/StageBridge.cs | 61 | /// Use when: | COMMENT |
| LOW | …tage-tamagotchi-godot/scripts/transport/StageBridge.cs | 101 | } | COMMENT |
| LOW | …ge-tamagotchi-godot/scripts/transport/StageEnvelope.cs | 1 | using System.Text.Json; | COMMENT |
| LOW | …-tamagotchi-godot/scripts/visuals/StageVisualPreset.cs | 1 | using System; | COMMENT |
| LOW | …-tamagotchi-godot/scripts/visuals/StageVisualPreset.cs | 101 | private static readonly Color StageBackgroundColor = new(0.015f, 0.014f, 0.018f, 1.0f); | COMMENT |
| LOW | …godot/scripts/visuals/StageEnvironmentAssetResolver.cs | 1 | using System.IO; | COMMENT |
| LOW | …godot/scripts/visuals/StageEnvironmentAssetResolver.cs | 21 | "stage-ui-three", | COMMENT |
| LOW | …tamagotchi-godot/scripts/scene/StageSceneController.cs | 1 | using System; | COMMENT |
| LOW | scripts/build-airi-docs.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/src/pages/settings/account/account-settings-page.vue | 301 | if (setPasswordLoading.value || !email) | COMMENT |
| LOW | …stage-shared/src/screen-ambient-light/sampling.test.ts | 61 | // | COMMENT |
| LOW | …ges/stage-shared/src/presence-bubble/placement.test.ts | 61 | COMMENT | |
| LOW | …rc/plugin-host/runtimes/shared/services/permissions.ts | 81 | for (const requestedSpec of requested) { | COMMENT |
| LOW | …rc/plugin-host/runtimes/shared/services/permissions.ts | 101 | // - requestedSpec.key = 'plugin.api.users' | COMMENT |
| LOW | …rc/plugin-host/runtimes/shared/services/permissions.ts | 201 | for (const spec of list) { | COMMENT |
| LOW | …-tamagotchi-browser/src/vishot-mockup-desktop-vue.d.ts | 1 | import type { Component } from 'vue' | COMMENT |
| LOW | packages/stage-ui/vite.config.ts | 41 | ], | COMMENT |
| LOW | …ui/src/composables/use-linked-accounts.browser.test.ts | 61 | describe('useLinkedAccounts after a handoff the runtime blocks', () => { | COMMENT |
| LOW | …tores/providers/provider-model-catalog.browser.test.ts | 141 | expect(traffic).not.toHaveBeenCalledWith(expect.objectContaining({ | COMMENT |
| LOW | packages/stage-ui/src/stores/mods/api/context-bridge.ts | 921 | // experience, we should discover and find either a leader election or distributed lock solution to | COMMENT |
| LOW | …tores/mods/api/context-bridge.contract.browser.test.ts | 721 | // ROOT CAUSE: | COMMENT |
| LOW | …ages/stage-ui/src/stores/modules/consciousness.test.ts | 101 | expect(store.activeTemperature).toBeUndefined() | COMMENT |
| LOW | packages/stage-ui/src/stores/modules/artistry.test.ts | 21 | const artistryStore = useArtistryStore() | COMMENT |
| LOW | …bs/providers/providers/provider-settings-pages.test.ts | 21 | // NOTICE: | COMMENT |
| LOW | packages/stage-ui/src/libs/chat-sync/ws-client.test.ts | 121 | expect(mapStatus('CLOSED', false)).toBe('idle') | COMMENT |
| LOW | packages/stage-ui/src/libs/chat-sync/ws-client.test.ts | 181 | // post-connect authenticate invoke. | COMMENT |
| LOW | packages/stage-ui/src/libs/chat-sync/ws-client.ts | 341 | // | COMMENT |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | services/computer-use-mcp/src/runtime-probes.ts | 124 | print(AXIsProcessTrusted() ? "granted" : "missing") | CODE |
| HIGH | services/computer-use-mcp/src/runtime-probes.ts | 158 | print(CGPreflightScreenCaptureAccess() ? "granted" : "missing") | CODE |
| HIGH | services/computer-use-mcp/src/bin/demo-hello-world.ts | 81 | print("Hello World! 🌍") | CODE |
| HIGH | services/computer-use-mcp/src/bin/demo-hello-world.ts | 82 | print("This project was created by AIRI computer-use-mcp terminal_exec tool.") | CODE |
| HIGH | services/computer-use-mcp/src/executors/macos-local.ts | 210 | print(String(data: data, encoding: .utf8)!) | CODE |
| HIGH | services/computer-use-mcp/src/executors/macos-local.ts | 294 | print("{}") | CODE |
| HIGH | services/computer-use-mcp/src/executors/macos-local.ts | 362 | print("{}") | CODE |
| HIGH | services/computer-use-mcp/src/executors/macos-local.ts | 396 | print("{}") | CODE |
| HIGH | services/computer-use-mcp/src/executors/macos-local.ts | 438 | print("{}") | CODE |
| HIGH | services/computer-use-mcp/src/display/enumerate.ts | 103 | print(String(data: data, encoding: .utf8)!) | CODE |
| HIGH | services/computer-use-mcp/src/accessibility/ax-tree.ts | 168 | print(String(data: data, encoding: .utf8)!) | CODE |
| HIGH | services/computer-use-mcp/src/accessibility/ax-tree.ts | 182 | print(String(data: data, encoding: .utf8)!) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/vueuse-functions/references/useFuse.md | 37 | 'John Doe', | CODE |
| LOW | .agents/skills/vueuse-functions/references/useFuse.md | 38 | 'Jane Doe', | CODE |
| LOW | .agents/skills/vueuse-functions/references/useFuse.md | 50 | * { "item": "John Doe", "index": 1 } | COMMENT |
| LOW | .agents/skills/vueuse-functions/references/useFuse.md | 52 | * { "item": "Jane Doe", "index": 2 } | COMMENT |
| LOW | …-practices/references/perf-v-once-v-memo-directives.md | 62 | const companyName = 'Acme Corp' | CODE |
| LOW | …ctices/reference/testing-vitest-recommended-for-vue.md | 129 | props: { name: 'John Doe' } | CODE |
| LOW | …ctices/reference/testing-vitest-recommended-for-vue.md | 132 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | …ctices/reference/testing-e2e-playwright-recommended.md | 98 | await page.getByLabel('Email').fill('user@example.com') | CODE |
| LOW | …ctices/reference/testing-e2e-playwright-recommended.md | 197 | await loginPage.login('user@example.com', 'password123') | CODE |
| LOW | server/apps/auth/src/tests/routes-check-email.test.ts | 58 | const response = await app.request('/api/auth/check-email', { method: 'POST', body: JSON.stringify({ email: 'user@ex | CODE |
| LOW | server/apps/auth/src/tests/auth.test.ts | 352 | email: 'user@example.com', | CODE |
| LOW | server/apps/auth/src/tests/social-authorization.test.ts | 296 | email: 'user@example.com', | CODE |
| LOW | …ver/apps/auth/src/tests/routes-oidc-token-auth.test.ts | 30 | email: 'user@example.com', | CODE |
| LOW | server/apps/auth/src/tests/account-deletion.test.ts | 71 | const credentials = { email: 'user@example.com', password: 'correct-horse-battery' } | CODE |
| LOW | server/apps/auth/src/tests/oidc-jwt-bearer.test.ts | 29 | email: 'user@example.com', | CODE |
| LOW | server/apps/api/src/libs/tests/env.test.ts | 71 | TEST_AUTH_USER_EMAIL: 'admin@example.com', | CODE |
| LOW | server/apps/api/src/libs/tests/env.test.ts | 76 | expect(env.TEST_AUTH_USER_EMAIL).toBe('admin@example.com') | CODE |
| LOW | server/apps/api/src/libs/tests/request-auth.test.ts | 32 | email: 'user@example.com', | CODE |
| LOW | …tings/airi-card/components/card-detail.browser.test.ts | 44 | props: { cardId: 'placeholder', initialTab: 'history' }, | CODE |
| LOW | packages/plugin-sdk/src/plugin-host/hosted-kits.test.ts | 537 | const methods = Object.defineProperty({ read: () => 'placeholder' }, 'read', { | CODE |
| LOW | packages/stage-ui/src/stores/auth.test.ts | 57 | email: 'user@example.com', | CODE |
| LOW | packages/stage-ui/src/stores/providers/provider.test.ts | 39 | email: 'user@example.com', | CODE |
| LOW | …ge-ui/src/stores/modules/airi-card-inheritance.test.ts | 307 | email: 'user@example.com', | CODE |
| LOW | …ge-ui/src/stores/modules/airi-card-inheritance.test.ts | 354 | email: 'user@example.com', | CODE |
| LOW | …ge-ui/src/stores/modules/airi-card-inheritance.test.ts | 409 | email: 'user@example.com', | CODE |
| LOW | packages/stage-ui/src/stores/modules/speech.test.ts | 29 | email: 'user@example.com', | CODE |
| LOW | …ges/stage-ui/src/components/form/input/input.story.vue | 8 | const emailValue = ref('user@example.com') | CODE |
| LOW | …i/src/components/form/field/field-input-text.story.vue | 7 | const emailValue = ref('user@example.com') | CODE |
| LOW | …nts/scenarios/settings/settings-search-field.story.vue | 18 | <Variant id="placeholder" title="In a row of filters"> | CODE |
| LOW | …rc/components/scenarios/settings/microphone-picker.vue | 103 | :placeholder="placeholder" | CODE |
| LOW | …components/scenarios/chat/components/history.story.vue | 141 | content: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dapibus risus quis ipsum mattis tristique. In | CODE |
| LOW | …components/scenarios/chat/components/history.story.vue | 141 | content: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dapibus risus quis ipsum mattis tristique. In | CODE |
| LOW | …components/scenarios/chat/components/history.story.vue | 155 | { type: 'text', text: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dapibus risus quis ipsum matti | CODE |
| LOW | …components/scenarios/chat/components/history.story.vue | 155 | { type: 'text', text: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam dapibus risus quis ipsum matti | CODE |
| LOW | …ponents/scenarios/providers/provider-api-key-input.vue | 32 | :placeholder="placeholder" | CODE |
| LOW | …ges/official-provider-speech-streaming.browser.test.ts | 23 | email: 'user@example.com', | CODE |
| LOW | …ntrols-island/controls-island-overflow.browser.test.ts | 313 | email: 'user@example.com', | CODE |
| LOW | …ntrols-island/controls-island-overflow.browser.test.ts | 323 | email: 'user@example.com', | CODE |
| LOW | …s/computer-use-mcp/src/bin/e2e-airi-discord-agentic.ts | 356 | || normalized.includes('placeholder') | CODE |
| LOW | …s/computer-use-mcp/src/bin/e2e-airi-discord-agentic.ts | 994 | placeholder: textarea.getAttribute('placeholder'), | CODE |
| LOW | …omputer-use-mcp/src/bin/e2e-airi-discord-observable.ts | 308 | || normalized.includes('placeholder') | CODE |
| LOW | …s/computer-use-mcp/src/bin/e2e-airi-chat-observable.ts | 762 | placeholder: textarea.getAttribute('placeholder'), | CODE |
| LOW | …ces/computer-use-mcp/src/transcript/transcript.test.ts | 533 | it('projected messages never contain synthetic fake-user compaction records', () => { | CODE |
| LOW | services/computer-use-mcp/src/utils/env-file.ts | 22 | 'placeholder', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …kills/pnpm/references/features-global-virtual-store.md | 35 | ## Git worktrees for multi-agent development | COMMENT |
| MEDIUM | integrations/telegram-bot/README.md | 67 | EMBEDDING_MODEL='nomic-embed-text' # embedding model | CODE |
| MEDIUM | integrations/minecraft/README.md | 195 | │ │ ├── brain.ts # Core reasoning loop/orchestration | CODE |
| MEDIUM⚡ | .github/workflows/copilot-labels.yml | 1 | # This workflow replaces pr-triage.md (the agentic prompt and configuration) | COMMENT |
| MEDIUM⚡ | .github/workflows/copilot-labels.yml | 3 | # The agentic workflow returned model_not_supported, while direct Copilot | COMMENT |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 33 | - Configuration: https://github.com/github/gh-aw/blob/v0.66.1/.github/aw/github-agentic-workflows.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 55 | **Prompt file**: https://github.com/github/gh-aw/blob/v0.66.1/.github/aw/create-agentic-workflow.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 65 | **Prompt file**: https://github.com/github/gh-aw/blob/v0.66.1/.github/aw/update-agentic-workflow.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 75 | **Prompt file**: https://github.com/github/gh-aw/blob/v0.66.1/.github/aw/debug-agentic-workflow.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 85 | **Prompt file**: https://github.com/github/gh-aw/blob/v0.66.1/.github/aw/upgrade-agentic-workflows.md | CODE |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 105 | **Prompt file**: https://github.com/github/gh-aw/blob/v0.66.1/.github/aw/create-shared-agentic-workflow.md | CODE |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 144 | # Initialize repository for agentic workflows | COMMENT |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 172 | - Always reference the instructions file at https://github.com/github/gh-aw/blob/v0.66.1/.github/aw/github-agentic-workf | CODE |
| MEDIUM | services/computer-use-mcp/FEASIBILITY.md | 25 | ### 2. The service now exposes a tool-first desktop orchestration surface | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …omponents/scenarios/settings/model-settings/live2d.vue | 124 | || (props.live2dContext !== undefined && !props.live2dContext.expressions.definitions.value.has(expression.name)), | CODE |
| CRITICAL | …amagotchi/src/main/services/airi/plugins/index.test.ts | 2609 | const setCookie = sessionMock.defaultSession.cookies.set.mock.calls.at(0)?.[0] as { name: string, value: string } | | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/simple-english/SKILL.md | 45 | ## Step 1: Classify the Text | COMMENT |
| LOW | .agents/skills/pnpm/references/features-patches.md | 12 | ### Step 1: Initialize Patch | COMMENT |
| LOW | .agents/skills/pnpm/references/features-patches.md | 27 | ### Step 2: Edit Files | COMMENT |
| LOW | .agents/skills/pnpm/references/features-patches.md | 36 | ### Step 3: Commit Patch | COMMENT |
| LOW | integrations/minecraft/src/skills/crafting.ts | 133 | // Step 1: Try to craft without a crafting table | COMMENT |
| LOW | integrations/minecraft/src/skills/crafting.ts | 196 | // Step 2: Find and use a crafting table | COMMENT |
| LOW | …ces/computer-use-mcp/src/transcript/transcript.test.ts | 159 | // Step 1: user + assistant + tool | COMMENT |
| LOW | …ces/computer-use-mcp/src/transcript/transcript.test.ts | 170 | // Step 2: simulate delta-only append (only new messages from this step) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integrations/telegram-bot/src/llm/photo.ts | 67 | // TODO: implement this for photo searching | COMMENT |
| LOW | integrations/telegram-bot/src/llm/sticker.ts | 80 | // TODO: implement this for sticker searching | COMMENT |
| LOW | …es/plugin-sdk/src/channels/local/event-target/index.ts | 16 | // TODO: implement actual event target based host channel | COMMENT |
| LOW | …es/plugin-sdk/src/channels/local/event-target/index.ts | 49 | // TODO: implement actual event target based data channel | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integrations/minecraft/src/skills/crafting.ts | 133 | // Step 1: Try to craft without a crafting table | COMMENT |
| LOW | integrations/minecraft/src/skills/crafting.ts | 196 | // Step 2: Find and use a crafting table | COMMENT |
| LOW | …ces/computer-use-mcp/src/transcript/transcript.test.ts | 159 | // Step 1: user + assistant + tool | COMMENT |
| LOW | …ces/computer-use-mcp/src/transcript/transcript.test.ts | 170 | // Step 2: simulate delta-only append (only new messages from this step) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | .github/workflows/copilot-labels.yml | 5 | # This file contains the classification prompt, direct CLI call, label validation, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/core-agent/src/runtime/response-categoriser.ts | 228 | // Fallback for filterToSpeech - uses rehype for robust incomplete tag detection | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/stage-tamagotchi/ai.moeru.airi.flatpak.yml | 71 | # dangerously and need an immediate workaround, you can try using --no-sandbox. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | services/computer-use-mcp/src/bin/runner.ts | 22 | async function handleRequest(request: RunnerRequest) { | CODE |