Repository Analysis

HKUDS/DeepTutor

DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.

30.9 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of HKUDS/DeepTutor, a Python project with 31,800 GitHub stars. SynthScan v2.0 examined 366,073 lines of code across 1734 source files, recording 8035 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 30.9 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

30.9
Adjusted Score
30.9
Raw Score
100%
Time Factor
2026-07-30
Last Push
31.8K
Stars
Python
Language
366.1K
Lines of Code
1.7K
Files
8.0K
Pattern Hits
2026-08-02
Scan Date
0.02
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 9HIGH 34MEDIUM 1265LOW 6727

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 8035 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators1122 hits · 3822 pts
SeverityFileLineSnippetContext
MEDIUMdocker-compose.ghcr.yml1# ============================================COMMENT
MEDIUMdocker-compose.ghcr.yml3# ============================================COMMENT
MEDIUMdocker-compose.ghcr.yml22# ============================================COMMENT
MEDIUMdocker-compose.ghcr.yml24# ============================================COMMENT
MEDIUMdocker-compose.ghcr.yml37# ============================================COMMENT
MEDIUMrequirements.txt1# ============================================COMMENT
MEDIUMrequirements.txt3# ============================================COMMENT
MEDIUM.pre-commit-config.yaml13 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml15 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml39 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml41 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml52 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml54 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml63 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml65 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml92 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml94 # ============================================COMMENT
MEDIUMpyproject.toml265# ============================================COMMENT
MEDIUMpyproject.toml267# ============================================COMMENT
MEDIUMpyproject.toml389# ============================================STRING
MEDIUMpyproject.toml391# ============================================STRING
MEDIUMpyproject.toml397# ============================================STRING
MEDIUMpyproject.toml399# ============================================STRING
MEDIUMpyproject.toml406# ============================================STRING
MEDIUMpyproject.toml408# ============================================STRING
MEDIUMpyproject.toml412# ============================================STRING
MEDIUMpyproject.toml414# ============================================STRING
MEDIUMpyproject.toml292# ============================================STRING
MEDIUMpyproject.toml294# ============================================STRING
MEDIUMpyproject.toml430# ============================================STRING
MEDIUMpyproject.toml432# ============================================STRING
MEDIUMpyproject.toml458# ============================================STRING
MEDIUMpyproject.toml460# ============================================STRING
MEDIUMdocker-compose.dev.yml1# ============================================COMMENT
MEDIUMdocker-compose.dev.yml3# ============================================COMMENT
MEDIUMdocker-compose.dev.yml10# ============================================COMMENT
MEDIUMcompose.yaml1# ============================================COMMENT
MEDIUMcompose.yaml3# ============================================COMMENT
MEDIUMcompose.yaml63# ============================================COMMENT
MEDIUMcompose.yaml68 # ----------------------------------------------------------COMMENT
MEDIUMcompose.yaml70 # ----------------------------------------------------------COMMENT
MEDIUMcompose.yaml112 # ----------------------------------------------------------COMMENT
MEDIUMcompose.yaml114 # ----------------------------------------------------------COMMENT
MEDIUMdocker-compose.yml1# ============================================COMMENT
MEDIUMdocker-compose.yml3# ============================================COMMENT
MEDIUMdocker-compose.yml19# ============================================COMMENT
MEDIUMdocker-compose.yml22 # ============================================COMMENT
MEDIUMdocker-compose.yml26 # ============================================COMMENT
MEDIUMdocker-compose.yml51 # ============================================COMMENT
MEDIUMdocker-compose.yml53 # ============================================COMMENT
MEDIUMdocker-compose.yml101 # ============================================COMMENT
MEDIUMdocker-compose.yml103 # ============================================COMMENT
MEDIUMdocker-compose.yml177# ============================================COMMENT
MEDIUMdocker-compose.yml179# ============================================COMMENT
MEDIUMweb/app/(workspace)/partners/new/page.tsx53 // ── form state ────────────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/partners/new/page.tsx166 // ── review summary helpers ────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/book/page.tsx107 // ── Data loaders ───────────────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/book/page.tsx135 // ── Live WS event handling ─────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/book/page.tsx162 // ── Selectors ──────────────────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/book/page.tsx175 // ── Handlers ───────────────────────────────────────────────────────COMMENT
1062 more matches not shown…
Hyper-Verbose Identifiers3461 hits · 3680 pts
SeverityFileLineSnippetContext
LOWweb/context/app-shell-storage.ts31export function readStoredChatResponseTimeout(): number {CODE
LOWweb/context/app-shell-storage.ts45export function writeStoredChatResponseTimeout(seconds: number): void {CODE
LOWweb/context/app-shell-storage.ts91export function readStoredActiveSessionId(): string | null {CODE
LOWweb/context/app-shell-storage.ts100export function writeStoredActiveSessionId(sessionId: string | null): void {CODE
LOWweb/context/app-shell-storage.ts118export function readStoredSidebarCollapsed(): boolean {CODE
LOWweb/context/app-shell-storage.ts127export function writeStoredSidebarCollapsed(collapsed: boolean): void {CODE
LOWweb/context/app-shell-storage.ts166export function writeStoredCodeBlockTheme(theme: string): void {CODE
LOWweb/context/app-shell-storage.ts183export function normalizeCodeBlockShowLineNumbers(CODE
LOWweb/context/app-shell-storage.ts191export function readStoredCodeBlockShowLineNumbers(): boolean {CODE
LOWweb/context/app-shell-storage.ts204export function writeStoredCodeBlockShowLineNumbers(show: boolean): void {CODE
LOWweb/context/app-shell-storage.ts221export function normalizeCodeBlockWrapLongLines(CODE
LOWweb/context/app-shell-storage.ts229export function readStoredCodeBlockWrapLongLines(): boolean {CODE
LOWweb/context/app-shell-storage.ts241export function writeStoredCodeBlockWrapLongLines(wrap: boolean): void {CODE
LOWweb/context/UnifiedChatContext.tsx850function hydrateMessageAttachments(CODE
LOWweb/context/UnifiedChatContext.tsx893function normalizeSelectedBranches(value: unknown): Record<string, number> {CODE
LOWweb/context/QuizFollowupContext.tsx564export function useQuizFollowupController(): QuizFollowupController {CODE
LOWweb/app/(workspace)/playground/page.tsx196function normalizeDeepQuestionConfig(CODE
LOWweb/app/(utility)/settings/network/page.tsx103function ChatResponseTimeoutSection() {CODE
LOWweb/app/(utility)/settings/agents/claude-code/page.tsx5export default function ClaudeCodeAgentSettingsPage() {CODE
LOWweb/app/(utility)/settings/agents/opencode/page.tsx5export default function OpencodeAgentSettingsPage() {CODE
LOWweb/app/(utility)/settings/document-parsing/page.tsx43export default function DocumentParsingSettingsPage() {CODE
LOWweb/tests/settings-context-ui-sync.test.ts56function readSettingsContextSource() {CODE
LOWweb/tests/settings-context-boolean-hydration.test.ts20function readSettingsContextSource() {CODE
LOWweb/components/settings/ServiceConfigEditor.tsx897function ContextWindowDetectionBanner({CODE
LOWweb/components/settings/shared.tsx51export function formatContextWindowSource(CODE
LOWweb/components/settings/shared.tsx62export function formatContextWindowUpdatedAt(CODE
LOWweb/components/settings/SettingsContext.tsx129export function syncLoadedCodeBlockSettingsToAppShell(CODE
LOWweb/components/settings/SettingsContext.tsx414function readStoredDiagnosticsResults(): Partial<CODE
LOWweb/components/chat/home/CapabilityConfigCard.tsx56function CapabilityConfigCardInner({CODE
LOWweb/components/chat/home/SessionViewerPanel.tsx205function attachmentToPreviewSource(a: MessageAttachment): FilePreviewSource {CODE
LOWweb/components/chat/home/TracePanels.tsx2157function getDeepResearchStatusLabel(CODE
LOWweb/components/chat/home/TracePanels.tsx2217function getExploreContextStatusLabel(CODE
LOWweb/components/chat/home/TracePanels.tsx2625function formatResearchStageSummary(events: StreamEvent[], fallback: string) {CODE
LOWweb/components/common/RichCodeBlock.tsx18function getCodeBlockThemeForeground(CODE
LOWweb/components/common/code-block-themes.ts196export function getCodeBlockThemeBackground(CODE
LOWweb/components/partners/PartnerChannels.tsx31function stripLegacyGlobalDelivery(channels: Record<string, unknown>) {CODE
LOWweb/components/partners/PartnerChat.tsx94function normalizeHistoryAttachments(CODE
LOWweb/components/partners/PartnerChat.tsx115function sentAttachmentsForMessage(CODE
LOWweb/hooks/useVoiceAutoplay.ts74export function useVoiceAutoplayPreference() {CODE
LOWweb/lib/research-types.ts27export function createEmptyResearchConfig(): DeepResearchFormConfig {CODE
LOWweb/lib/quiz-types.ts95export function extractStreamingQuizQuestions(CODE
LOWweb/lib/latex.ts53function normalizeEditorMdHeadings(content: string): string {CODE
LOWweb/lib/latex.ts68function normalizeEditorMdInlineMath(content: string): string {CODE
LOWweb/lib/latex.ts185function injectEditorMdTableOfContents(content: string): string {CODE
LOWweb/lib/latex.ts195export function convertFlowFenceToMermaid(source: string): string | null {CODE
LOWweb/lib/latex.ts265export function convertSequenceFenceToMermaid(source: string): string | null {CODE
LOWweb/lib/math-animator-types.ts41export function extractMathAnimatorResult(CODE
LOWweb/lib/playground-config.ts21export function loadCapabilityPlaygroundConfigs(): CapabilityPlaygroundConfigMap {CODE
LOWweb/lib/playground-config.ts25export function resolveCapabilityPlaygroundConfig(CODE
LOWweb/lib/playground-config.ts41export function saveCapabilityPlaygroundConfig(CODE
LOWweb/lib/llm-options.ts63export function invalidateLLMOptionsCache(): void {CODE
LOWweb/lib/knowledge-api.ts224export function invalidateKnowledgeCaches() {CODE
LOWweb/lib/knowledge-api.ts495export function knowledgeBaseFilePreviewTextPath(CODE
LOWweb/lib/quiz-question-type.ts45export function normalizeQuizQuestionType(CODE
LOWweb/lib/quiz-question-type.ts63export function isFillInBlankQuizQuestion(value: unknown): boolean {CODE
LOWweb/lib/tools-settings.ts9async function fetchEnabledOptionalTools(): Promise<string[]> {CODE
LOWweb/lib/tools-settings.ts33export function invalidateEnabledOptionalToolsCache(): void {CODE
LOWweb/lib/learning-api.ts170export async function generateModulesFromNotebook(CODE
LOWweb/lib/think-segments.ts79export function parseModelThinkingSegments(input: string): ContentSegment[] {CODE
LOWweb/lib/ask-user-state.ts71export function hasPendingAskUserInMessages(CODE
3401 more matches not shown…
Unused Imports1381 hits · 1321 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py5CODE
LOWtests/tools/test_web_search.py3CODE
LOWtests/tools/test_github_query.py7CODE
LOWtests/tools/test_github_query.py10CODE
LOWtests/tools/test_github_query.py14CODE
LOWtests/tools/test_ask_user.py8CODE
LOWtests/tools/test_kb_files_tool.py9CODE
LOWtests/tools/test_mineru.py1CODE
LOWtests/tools/test_rag_tool.py3CODE
LOWtests/tools/test_mineru_models.py1CODE
LOWtests/tools/test_write_note.py3CODE
LOWtests/tools/test_question_extractor.py1CODE
LOWtests/tools/test_list_notebook.py3CODE
LOWtests/tools/test_file_tools.py1CODE
LOWtests/tools/test_web_fetch.py3CODE
LOWtests/tools/test_web_fetch.py7CODE
LOWtests/tools/test_web_fetch.py7CODE
LOWtests/core/test_record_streamed_usage.py8CODE
LOWtests/core/test_labeled_step_image_fallback.py9CODE
LOWtests/core/test_prompt_parity.py1CODE
LOWtests/core/test_labeled_step_think_prelude.py19CODE
LOWtests/core/test_stream_bus.py3CODE
LOWtests/core/test_math_animator_capability.py1CODE
LOWtests/core/test_agentic_client_provider_kwargs.py1CODE
LOWtests/core/test_turn_event_store.py1CODE
LOWtests/core/test_agentic_loop_intermediate.py11CODE
LOWtests/core/test_context.py3CODE
LOWtests/core/test_agentic_messages.py1CODE
LOWtests/core/test_capabilities_runtime.py3CODE
LOWtests/core/test_capabilities_runtime.py284CODE
LOWtests/core/test_builtin_tools.py3CODE
LOWtests/core/test_labeled_step_tool_fallback.py1CODE
LOWtests/core/test_labeled_step_finish_usage.py1CODE
LOWtests/core/agentic/test_tool_dispatch_events.py17CODE
LOWtests/core/agentic/test_tool_provider_trace.py10CODE
LOWtests/capabilities/test_status_i18n_consistency.py16CODE
LOWtests/capabilities/test_obsidian_capability.py3CODE
LOWtests/capabilities/test_solve_capability.py3CODE
LOWtests/capabilities/test_subagent_capability.py10CODE
LOWtests/capabilities/test_explore_context_capability.py3CODE
LOWtests/capabilities/test_rag_consistency.py19CODE
LOWtests/capabilities/test_rag_consistency.py29CODE
LOWtests/multi_user/test_resource_isolation.py1CODE
LOWtests/multi_user/test_settings_status_redaction.py3CODE
LOWtests/multi_user/conftest.py9CODE
LOWtests/multi_user/test_login_username_contract.py10CODE
LOWtests/multi_user/test_skill_resolution_scoped.py3CODE
LOWtests/multi_user/test_rag_tool_no_kb_fallback.py9CODE
LOWtests/multi_user/test_kb_manifest_access.py9CODE
LOWtests/multi_user/test_profile_avatar.py3CODE
LOWtests/multi_user/test_registration_invite_only.py3CODE
LOWtests/multi_user/test_tool_access.py3CODE
LOWtests/multi_user/test_owner_path_service.py9CODE
LOWtests/multi_user/test_identity_and_paths.py1CODE
LOWtests/multi_user/test_partner_access.py3CODE
LOWtests/multi_user/test_ui_language_scoping.py3CODE
LOWtests/multi_user/test_profile_router.py9CODE
LOWtests/runtime/test_import_layering.py15CODE
LOWtests/runtime/test_orchestrator.py3CODE
LOWtests/runtime/test_request_contracts_subagent.py9CODE
1321 more matches not shown…
Excessive Try-Catch Wrapping954 hits · 966 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py43except Exception: # pragma: no coverCODE
LOWtests/multi_user/test_registration_invite_only.py35 except Exception:CODE
MEDIUMtests/multi_user/test_registration_invite_only.py31def _save(name):CODE
LOWtests/api/test_skills_hub_router.py18except Exception: # pragma: no cover - optional dependency in lightweight envsCODE
LOWtests/api/test_knowledge_router.py13except Exception: # pragma: no cover - optional dependency in lightweight envsCODE
LOWtests/api/test_subagents_router.py19except Exception: # pragma: no cover - optional dependency in lightweight envsCODE
LOWtests/api/test_plugins_api_partner.py15except Exception: # pragma: no coverCODE
LOWtests/api/test_partners_router.py15except Exception: # pragma: no coverCODE
LOWtests/services/llm/test_llm_live.py94 except Exception as exc:CODE
LOWtests/services/llm/test_llm_live.py129 except Exception as exc:CODE
LOWtests/services/rag/test_pipeline_integration.py137 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py190 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py223 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py252 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py286 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py296 except Exception as e:CODE
LOWscripts/docker_compose.py32 except Exception:CODE
LOWscripts/_cli_kit.py10 except Exception:CODE
MEDIUMscripts/_cli_kit.py6def _ensure_replace_errors() -> None:CODE
LOWscripts/pb_setup.py62 except Exception:CODE
LOWscripts/pb_setup.py73 except Exception as exc:CODE
MEDIUMscripts/pb_setup.py45def _get_client():CODE
LOWdeeptutor_cli/provider_cmd.py100 except Exception as exc:CODE
LOWdeeptutor_cli/config_cmd.py65 except Exception:CODE
LOWdeeptutor_cli/init_cmd.py34 except Exception:CODE
LOWdeeptutor_cli/init_cmd.py40 except Exception:CODE
LOWdeeptutor_cli/init_cmd.py46 except Exception:CODE
LOWdeeptutor_cli/skill_login.py123 except Exception:CODE
LOWdeeptutor_cli/chat.py88 except Exception:CODE
LOWdeeptutor_cli/common.py298 except Exception:CODE
MEDIUMdeeptutor_cli/common.py295def _stdin_interactive() -> bool:CODE
LOWdeeptutor_cli/init_wizard.py582 except Exception as exc:CODE
LOWdeeptutor_cli/init_wizard.py685 except Exception as exc:CODE
LOWdeeptutor_cli/init_wizard.py809 except Exception as exc:CODE
LOWdeeptutor_cli/init_wizard.py831 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py123 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py134 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py180 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py219 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py242 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py275 except Exception as exc:CODE
LOWdeeptutor/tools/paper_search_tool.py103 except Exception:CODE
LOWdeeptutor/tools/paper_search_tool.py108 except Exception:CODE
LOWdeeptutor/tools/web_fetch.py133 except Exception as exc: # pragma: no cover — defensiveCODE
LOWdeeptutor/tools/tex_chunker.py34 except Exception:CODE
LOWdeeptutor/tools/tex_chunker.py43 except Exception:CODE
LOWdeeptutor/tools/tex_chunker.py62 except Exception as e:CODE
LOWdeeptutor/tools/file_tools.py105 except Exception as exc:CODE
LOWdeeptutor/tools/file_tools.py130 except Exception as exc:CODE
LOWdeeptutor/tools/file_tools.py185 except Exception as exc:CODE
LOWdeeptutor/tools/file_tools.py261 except Exception as exc:CODE
LOWdeeptutor/tools/list_notebook.py130 except Exception as exc: # pragma: no cover — defensiveCODE
LOWdeeptutor/tools/write_note.py231 except Exception as exc:CODE
LOWdeeptutor/tools/write_note.py339 except Exception as exc:CODE
LOWdeeptutor/tools/tex_downloader.py131 except Exception as e:CODE
LOWdeeptutor/tools/tex_downloader.py146 except Exception:CODE
LOWdeeptutor/tools/tex_downloader.py154 except Exception:CODE
LOWdeeptutor/tools/tex_downloader.py209 except Exception:CODE
LOWdeeptutor/tools/tex_downloader.py221 except Exception as e:CODE
LOWdeeptutor/tools/media_gen_tool.py233 except Exception: # progress is best-effort; never fail the renderCODE
894 more matches not shown…
Modern Structural Boilerplate614 hits · 615 pts
SeverityFileLineSnippetContext
LOWtests/core/test_capabilities_runtime.py197 def set_trace_callback(self, callback) -> None:CODE
LOWtests/utils/test_document_extractor.py384 def set_limits(max_file: int, max_total: int) -> None:CODE
LOWtests/api/test_knowledge_router.py53 def update_kb_status(self, name: str, status: str, progress: dict | None = None) -> None:CODE
LOWtests/api/test_knowledge_router.py894 def set_kb_config(self, kb_name: str, config: dict) -> None:CODE
LOWtests/api/test_knowledge_router.py923 def set_kb_config(self, kb_name: str, config: dict) -> None:CODE
LOWtests/api/test_knowledge_router.py956 def set_kb_config(self, kb_name: str, config: dict) -> None:CODE
LOWscripts/_cli_kit.py31__all__ = ["banner", "log_error", "log_success"]CODE
LOWdeeptutor_cli/skill_prompts.py208__all__ = ["collect_classification", "select_domains", "select_many", "select_one"]CODE
LOWdeeptutor_cli/_tool_result.py159__all__ = [CODE
LOWdeeptutor_cli/skill_login.py134__all__ = ["LoginResult", "hub_origin_from_base", "oauth_start_url", "run_login"]CODE
LOWdeeptutor_cli/common.py608 def _settle_round(self, call_id: str, *, role: str) -> None:CODE
LOWdeeptutor_cli/init_wizard.py898__all__ = [CODE
LOWdeeptutor/tools/paper_search_tool.py15logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/partner_memory.py301__all__ = [CODE
LOWdeeptutor/tools/web_fetch.py36logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/web_fetch.py258__all__ = [CODE
LOWdeeptutor/tools/brainstorm.py13logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/ask_user.py260__all__ = [CODE
LOWdeeptutor/tools/file_tools.py290__all__ = ["EditFileTool", "ListDirTool", "ReadFileTool", "WriteFileTool"]CODE
LOWdeeptutor/tools/exec_tool.py156__all__ = ["ExecTool"]CODE
LOWdeeptutor/tools/reason.py24logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/list_notebook.py25logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/list_notebook.py206__all__ = [CODE
LOWdeeptutor/tools/solve_tool.py16__all__ = [CODE
LOWdeeptutor/tools/write_note.py30logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/write_note.py456__all__ = [CODE
LOWdeeptutor/tools/tex_downloader.py25logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/media_gen_tool.py31logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/media_gen_tool.py261__all__ = ["ImagegenTool", "VideogenTool"]CODE
LOWdeeptutor/tools/github_query.py34logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/github_query.py224__all__ = [CODE
LOWdeeptutor/tools/web_search.py47__all__ = [CODE
LOWdeeptutor/tools/cron_tool.py142__all__ = ["CronActionOutcome", "run_cron_action"]CODE
LOWdeeptutor/tools/mastery_tool.py19__all__ = [CODE
LOWdeeptutor/tools/prompting/__init__.py230__all__ = ["ToolPromptComposer", "compose_prompt_text", "load_prompt_hints"]CODE
LOWdeeptutor/tools/vision/image_utils.py9logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/vision/__init__.py43__all__ = [CODE
LOWdeeptutor/tools/question/__init__.py30__all__ = [CODE
LOWdeeptutor/tools/builtin/__init__.py26logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/builtin/__init__.py1673__all__ = [CODE
LOWdeeptutor/co_writer/storage.py31logger = logging.getLogger(__name__)CODE
LOWdeeptutor/co_writer/storage.py245__all__ = [CODE
LOWdeeptutor/core/trace.py85__all__ = [CODE
LOWdeeptutor/core/__init__.py17__all__ = [CODE
LOWdeeptutor/core/i18n.py133__all__ = ["current_language", "t"]CODE
LOWdeeptutor/core/agentic/tool_dispatch.py41logger = logging.getLogger(__name__)CODE
LOWdeeptutor/core/agentic/__init__.py45__all__ = [STRING
LOWdeeptutor/core/agentic/messages.py30__all__ = ["assistant_message_with_tool_calls"]CODE
LOWdeeptutor/core/agentic/loop.py438__all__ = [CODE
LOWdeeptutor/core/agentic/usage.py8logger = logging.getLogger(__name__)CODE
LOWdeeptutor/capabilities/registry.py47__all__ = [CODE
LOWdeeptutor/capabilities/protocol.py116__all__ = ["KnowledgeCapability", "LoopCapability", "PromptBlock"]CODE
LOWdeeptutor/capabilities/__init__.py21__all__ = [CODE
LOWdeeptutor/capabilities/solve/tools.py285__all__ = [CODE
LOWdeeptutor/capabilities/solve/session.py48 def set_plan(self, analysis: str, steps: list[tuple[str, str]]) -> None:CODE
LOWdeeptutor/capabilities/solve/session.py95__all__ = [CODE
LOWdeeptutor/capabilities/solve/__init__.py6__all__ = ["SOLVE_TOOL_NAMES", "SOLVE_TOOL_TYPES", "SolveLoopCapability"]CODE
LOWdeeptutor/capabilities/solve/capability.py33logger = logging.getLogger(__name__)CODE
LOWdeeptutor/capabilities/solve/capability.py91__all__ = ["DeepSolveCapability", "resolve_solve_session_id"]CODE
LOWdeeptutor/capabilities/solve/loop.py91__all__ = ["SolveLoopCapability"]CODE
554 more matches not shown…
Modern AI Meta-Vocabulary82 hits · 254 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml15# RAG extras (graphrag, rag-lightrag) already carry a `python_version < '3.14'`COMMENT
MEDIUMpyproject.toml86 # RAG (LlamaIndex)COMMENT
MEDIUMpyproject.toml203# RAG-Anything (HKUDS/RAG-Anything). Optional, heavy (pulls MinerU transitively —COMMENT
MEDIUMREADME.md64> **[2026.7.19]** [v1.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v1.5.2) — Configurable chat attachment limitsCODE
MEDIUMREADME.md100> **[2026.5.22]** [v1.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v1.4.0) — GA cut of v1.4: Auto Mode, three-laCODE
MEDIUMREADME.md102> **[2026.5.21]** [v1.4.0-beta](https://github.com/HKUDS/DeepTutor/releases/tag/v1.4.0-beta) — Three-layer Memory workbeCODE
MEDIUMdocker-compose.yml4# This file provides orchestration for DeepTutor servicesCOMMENT
MEDIUMtests/core/test_labeled_step_think_prelude.py403 # No reasoning trace events emitted for a clean FINISH.COMMENT
MEDIUMtests/agents/chat/test_agent_loop.py409 # The pre-pass streamed THINKING (reasoning trace), never CONTENT — theCOMMENT
MEDIUMtests/services/skill/test_skill_hub.py361# ── orchestration ────────────────────────────────────────────────────────COMMENT
MEDIUMtests/services/rag/test_pageindex_pipeline.py178 # Constructing a real LlamaIndexPipeline resolves the active embedding modelCOMMENT
MEDIUMtests/services/rag/__init__.py1# Tests for RAG pipelineCOMMENT
MEDIUMtests/services/rag/test_lightrag_pipeline.py250 self.parser = "mineru" # RAG-Anything's defaultCODE
MEDIUMrequirements/cli.txt39# --- RAG (LlamaIndex) ---COMMENT
MEDIUMassets/releases/ver1-5-5.md21### Traceable RAG citationsCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-3.md99### RAG and Knowledge Base ResilienceCOMMENT
MEDIUMassets/releases/past_releases/ver0-4-0.md49### 🧩 RAG Module DecouplingCOMMENT
MEDIUMassets/releases/past_releases/ver0-4-0.md104├── rag/ # 🆕 Decoupled RAG systemCODE
MEDIUMassets/releases/past_releases/ver0-4-0.md109│ └── components/ # Modular RAG componentsCODE
MEDIUMassets/releases/past_releases/ver0-5-1.md9### 📄 Docling Support for RAG-AnythingCOMMENT
MEDIUMassets/releases/past_releases/ver1-4-0-beta.md86### Chat Capability & LlamaIndex RAG RefactorCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-6.md38### RAG and Knowledge ReliabilityCOMMENT
MEDIUMassets/releases/past_releases/ver0-5-0.md46### RAG Pipeline SelectionCOMMENT
MEDIUMassets/releases/past_releases/ver0-5-0.md101### RAG SystemCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-2.md42### RAG Re-index and Retrieval ResilienceCOMMENT
MEDIUMassets/releases/past_releases/ver1-5-0.md116- #532 — RAG chat could not return information from the selected knowledge baseCODE
MEDIUMassets/releases/past_releases/ver1-5-0.md118- #552 — RAG chat on a 250 MB knowledge base returned nothingCODE
MEDIUMassets/releases/past_releases/ver1-3-5.md26### More Reliable RAG Tool CallsCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-1.md11### Safer RAG and Knowledge Base RoutingCOMMENT
MEDIUMassets/releases/past_releases/ver0-6-0.md21### Flexible RAG Pipeline ImportCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-4.md57### RAG, Documents, and Knowledge Base RecoveryCOMMENT
MEDIUMassets/releases/past_releases/ver1-1-2.md16### RAG Simplified to a Single PipelineCOMMENT
MEDIUMassets/releases/past_releases/ver0-5-2.md7### Docling Support for RAG-AnythingCOMMENT
MEDIUMdeeptutor_cli/README.md11# 仅 CLI(本地源码安装,含 RAG / 文档解析 / 各家 LLM provider SDK)COMMENT
MEDIUMdeeptutor/tools/web_fetch.py45# pages. For JS-heavy SPAs the tool will return the bare HTML scaffold —COMMENT
MEDIUMdeeptutor/tools/list_notebook.py29# context window. The cap is recorded in the rendered output so theCOMMENT
MEDIUMdeeptutor/core/agentic/labeled_step.py462 # Reasoning models that surface chain-of-thought via the dedicatedCOMMENT
MEDIUMdeeptutor/core/agentic/labeled_step.py468 # see only the answer with no reasoning trace. Route the reasoningCOMMENT
MEDIUMdeeptutor/core/agentic/usage.py85 # Local import keeps ``core.agentic`` import-light at module load.COMMENT
MEDIUMdeeptutor/capabilities/explore_context/explorer.py149 # ---- agentic loop ----------------------------------------------------COMMENT
MEDIUMdeeptutor/capabilities/explore_context/capability.py128 # ``core.agentic``, and this capability is constructed atCOMMENT
MEDIUMdeeptutor/learning/prompts.py54 # scaffolding. The directive — the same one book, quiz and Deep ResearchCOMMENT
MEDIUMdeeptutor/agents/research/pipeline.py135# Per-block research: the headline agentic loop. ``APPEND`` is theCOMMENT
MEDIUMdeeptutor/agents/research/pipeline.py243 knowledge: str # accumulated FINISH text from the block's agentic loopCODE
MEDIUMdeeptutor/agents/research/utils/citation_manager.py306 # Common fields in RAG responses: chunks, documents, sources, contextCOMMENT
MEDIUMdeeptutor/agents/research/utils/citation_manager.py690 # For RAG/web_search/etc: each citation gets unique ref_numberCOMMENT
MEDIUMdeeptutor/agents/research/prompts/zh/pipeline.yaml132# Phase 3 — Per-block research (agentic loop)COMMENT
MEDIUMdeeptutor/agents/research/prompts/en/pipeline.yaml85# Phase 1 — Rephrase (mini agentic loop with ask_user)COMMENT
MEDIUMdeeptutor/agents/research/prompts/en/pipeline.yaml141# Phase 3 — Per-block research (agentic loop)COMMENT
MEDIUMdeeptutor/agents/chat/chat_agent.py180 # RAG retrievalCOMMENT
MEDIUMdeeptutor/agents/visualize/capability.py115 # using its own multi-agent pipeline + Manim subprocess.COMMENT
MEDIUMdeeptutor/agents/question/prompts/zh/pipeline.yaml18# 阶段 1:探索(agentic loop —— 沿用 chat 风格工具集)COMMENT
MEDIUMdeeptutor/agents/question/prompts/zh/pipeline.yaml172# 阶段 3:出题(每道题一个 agentic loop)COMMENT
MEDIUMdeeptutor/agents/question/prompts/en/pipeline.yaml4# * explore.step — agentic loop with ``THINK`` / ``TOOL`` /COMMENT
MEDIUMdeeptutor/agents/question/prompts/en/pipeline.yaml13# * quiz_step — agentic loop with ``THINK`` / ``TOOL`` /COMMENT
MEDIUMdeeptutor/agents/question/prompts/en/pipeline.yaml35# Phase 1: Explore (agentic loop — chat-style tools)COMMENT
MEDIUMdeeptutor/agents/question/prompts/en/pipeline.yaml191# Phase 3: Quiz step (one agentic loop per question)COMMENT
MEDIUMdeeptutor/utils/json_parser.py121 # Strategy 1b: strip chain-of-thought <think> reasoning that models likeCOMMENT
MEDIUMdeeptutor/knowledge/manifest.py49# call, capped so a pathological KB cannot flood the context window.COMMENT
MEDIUMdeeptutor/knowledge/manager.py1358 # or a stale handle from a failed RAG init can block removal.COMMENT
22 more matches not shown…
Deep Nesting223 hits · 188 pts
SeverityFileLineSnippetContext
LOWtests/core/test_prompt_parity.py33CODE
LOWtests/core/test_prompt_parity.py62CODE
LOWtests/api/test_plugins_api_partner.py24CODE
LOWtests/services/memory/test_modes.py260CODE
LOWtests/services/memory/test_modes.py279CODE
LOWtests/services/rag/test_pipeline_integration.py327CODE
LOWdeeptutor_cli/provider_cmd.py36CODE
LOWdeeptutor_cli/init_cmd.py288CODE
LOWdeeptutor_cli/memory.py20CODE
LOWdeeptutor_cli/memory.py64CODE
LOWdeeptutor_cli/chat.py80CODE
LOWdeeptutor_cli/chat.py182CODE
LOWdeeptutor_cli/init_wizard.py548CODE
LOWdeeptutor_cli/init_wizard.py655CODE
LOWdeeptutor/tools/tex_chunker.py90CODE
LOWdeeptutor/tools/tex_chunker.py203CODE
LOWdeeptutor/tools/prompting/__init__.py169CODE
LOWdeeptutor/tools/vision/image_utils.py113CODE
LOWdeeptutor/tools/vision/block_parser.py121CODE
LOWdeeptutor/core/agentic/loop.py173CODE
LOWdeeptutor/core/agentic/labeled_step.py104CODE
LOWdeeptutor/core/agentic/usage.py101CODE
LOWdeeptutor/learning/service.py96CODE
LOWdeeptutor/learning/policy.py158CODE
LOWdeeptutor/runtime/launcher.py234CODE
LOWdeeptutor/runtime/launcher.py363CODE
LOWdeeptutor/runtime/launcher.py767CODE
LOWdeeptutor/agents/research/pipeline.py2034CODE
LOWdeeptutor/agents/research/pipeline.py975CODE
LOWdeeptutor/agents/research/pipeline.py1384CODE
LOWdeeptutor/agents/research/pipeline.py1795CODE
LOWdeeptutor/agents/research/mode_strategy.py76CODE
LOWdeeptutor/agents/research/data_structures.py95CODE
LOWdeeptutor/agents/research/utils/citation_manager.py113CODE
LOWdeeptutor/agents/research/utils/citation_manager.py135CODE
LOWdeeptutor/agents/research/utils/citation_manager.py234CODE
LOWdeeptutor/agents/research/utils/citation_manager.py288CODE
LOWdeeptutor/agents/research/utils/citation_manager.py344CODE
LOWdeeptutor/agents/research/utils/citation_manager.py717CODE
LOWdeeptutor/agents/chat/agentic_pipeline.py118CODE
LOWdeeptutor/agents/chat/agentic_pipeline.py916CODE
LOWdeeptutor/agents/chat/agentic_pipeline.py1300CODE
LOWdeeptutor/agents/chat/agent_loop.py234CODE
LOWdeeptutor/agents/chat/context_budget.py270CODE
LOWdeeptutor/agents/visualize/capability.py63CODE
LOW…ptutor/agents/visualize/agents/code_generator_agent.py31CODE
LOWdeeptutor/agents/question/capability.py330CODE
LOWdeeptutor/agents/question/capability.py331CODE
LOWdeeptutor/agents/question/pipeline.py1086CODE
LOWdeeptutor/agents/question/pipeline.py1313CODE
LOWdeeptutor/agents/question/pipeline.py1357CODE
LOWdeeptutor/agents/question/pipeline.py1533CODE
LOWdeeptutor/agents/math_animator/retry_manager.py43CODE
LOWdeeptutor/utils/config_manager.py69CODE
LOWdeeptutor/utils/error_utils.py10CODE
LOWdeeptutor/utils/error_utils.py46CODE
LOWdeeptutor/utils/document_extractor.py168CODE
LOWdeeptutor/utils/document_extractor.py233CODE
LOWdeeptutor/utils/document_extractor.py308CODE
LOWdeeptutor/utils/document_extractor.py401CODE
163 more matches not shown…
Hallucination Indicators9 hits · 95 pts
SeverityFileLineSnippetContext
CRITICALdeeptutor/partners/channels/feishu.py991 response = self._client.cardkit.v1.card_element.content(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py448 response = self._client.im.v1.message_reaction.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py730 response = self._client.im.v1.image.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py764 response = self._client.im.v1.file.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py792 response = self._client.im.v1.message_resource.get(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py827 response = self._client.im.v1.message_resource.get(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py906 response = self._client.im.v1.message.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py946 response = self._client.cardkit.v1.card.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1028 response = self._client.cardkit.v1.card.settings(request)CODE
Docstring Block Structure16 hits · 80 pts
SeverityFileLineSnippetContext
HIGHdeeptutor/tools/vision/image_utils.py62Download image from URL. Args: url: Image URL Returns: (image bytes, MIME type) Raises: STRING
HIGHdeeptutor/tools/vision/image_utils.py156Convert image URL to base64 data URL. Args: url: Image URL Returns: data:image/...;base64,... STRING
HIGHdeeptutor/tools/vision/image_utils.py175Resolve image input to base64 format. Prioritizes image_base64, falls back to downloading from image_url. ArgsSTRING
HIGHdeeptutor/utils/document_validator.py61 Validate file upload safety Args: filename: Name of the file file_size: Size oSTRING
HIGHdeeptutor/utils/document_validator.py143 Validate that a file exists, is readable, and has valid content. Args: path: Path to the fSTRING
HIGHdeeptutor/utils/archive_extractor.py74Extract ``zip_path`` into ``target_dir``, flattening to safe basenames. Args: zip_path: Path to the ``.zip`STRING
HIGHdeeptutor/knowledge/manager.py1450 Link a local folder to a knowledge base. Args: kb_name: Knowledge base name foSTRING
HIGHdeeptutor/book/blocks/_prompts.py30Load a YAML prompt bundle for the ``book`` module. Args: name: File stem under ``deeptutor/book/prompts/{laSTRING
HIGHdeeptutor/services/llm/local_provider.py34Extract message content from a local provider payload. Args: payload: Provider response payload. ReturnSTRING
HIGHdeeptutor/services/llm/registry.py36 Get a registered provider class by name. Args: name: Provider name Returns: Provider clasSTRING
HIGHdeeptutor/services/llm/providers/anthropic.py109 Initialize the Anthropic provider. Args: config: Provider configuration object. RSTRING
HIGHdeeptutor/services/llm/providers/anthropic.py138 Generate a completion using Anthropic. Args: prompt: User prompt content. **kwSTRING
HIGHdeeptutor/services/llm/providers/anthropic.py190 Stream a completion from Anthropic. Args: prompt: User prompt content. **kwargSTRING
HIGHdeeptutor/services/embedding/adapters/base.py161 Generate embeddings for a list of texts. Args: request: EmbeddingRequest with texts and paSTRING
HIGHdeeptutor/services/setup/init.py266 Get both backend and frontend ports from configuration. Args: project_root: Project root directory (ifSTRING
HIGHdeeptutor/services/search/providers/__init__.py43 Get a provider instance by name. Args: name: Provider name (case-insensitive). **kwargs: ArgumSTRING
Cross-Language Confusion16 hits · 79 pts
SeverityFileLineSnippetContext
HIGHtests/core/test_config_manager.py84 "embedding": {"active_profile_id": null, "active_model_id": null, "profiles": []},STRING
HIGHtests/core/test_config_manager.py85 "search": {"active_profile_id": null, "profiles": []}STRING
HIGHtests/api/test_partners_channel_schema.py108 # Pydantic's ``Optional[str]`` becomes ``anyOf: [{type: string}, {type: null}]``.COMMENT
HIGHtests/services/test_model_catalog.py74 "search": {"active_profile_id": null, "profiles": []}STRING
HIGHtests/services/embedding/test_extract_embeddings.py164 """When a provider returns {"embedding": null}, use [] instead of None.STRING
HIGHtests/services/cli_apps/test_models.py98 "cd sketch/agent-harness && npm install && npm link",CODE
HIGHtests/services/sandbox/test_argv_exec.py172 result = runner_server.execute({"command": "echo a && echo b", "limits": {"timeout_s": 10}})CODE
HIGHscripts/update.py341 hints.append("Frontend dependencies changed: consider running cd web && npm install")CODE
HIGHdeeptutor/runtime/launcher.py601 "npm not found. Source installs require Node.js/npm and `cd web && npm install`."CODE
HIGHdeeptutor/api/routers/quiz_judge.py218 ] | null,STRING
HIGHdeeptutor/api/routers/quiz_judge.py219 "user_answer_image": str | null, # legacy single-image formSTRING
HIGHdeeptutor/api/routers/quiz_judge.py220 "image_filename": str | null, # legacy filename for the aboveSTRING
HIGHdeeptutor/api/routers/quiz_judge.py207 "options": dict | null,STRING
HIGHdeeptutor/services/partners/manager.py141#: YAML null: a bare ``mcp_tools:`` key parses as null, and a hand-edit thatCOMMENT
HIGHdeeptutor/services/partners/manager.py154 ``mcp_tools`` key), a bare key (YAML null), and a malformed value all readSTRING
HIGHdeeptutor/services/session/turn_runtime.py1549 # with explicit null). Otherwise let the store auto-append.COMMENT
Over-Commented Block62 hits · 58 pts
SeverityFileLineSnippetContext
LOWdocker-compose.ghcr.yml1# ============================================COMMENT
LOWdocker-compose.ghcr.yml21#COMMENT
LOWrequirements.txt1# ============================================COMMENT
LOW.pre-commit-config.yaml1# Pre-commit hooks configuration for AI-Tutor projectCOMMENT
LOWpyproject.toml141 "zulip>=0.8.0,<1.0.0",COMMENT
LOWpyproject.toml181COMMENT
LOWpyproject.toml461[tool.bandit]COMMENT
LOWdocker-compose.dev.yml41COMMENT
LOWSKILL.md41# chat, deep_solve, deep_question, deep_research, visualize, math_animator, mastery_pathCOMMENT
LOWcompose.yaml1# ============================================COMMENT
LOWcompose.yaml21# picks this file up without -f.COMMENT
LOWcompose.yaml41# the `sandbox_allow_subprocess` setting in system.json. SeeCOMMENT
LOWcompose.yaml181 networks:COMMENT
LOWcompose.yaml201COMMENT
LOWdocker-compose.yml1# ============================================COMMENT
LOWdocker-compose.yml61 ports:COMMENT
LOWdocker-compose.yml101 # ============================================COMMENT
LOWdocker-compose.yml121 # /app/data/user/workspace (admin) or /app/data/users/<uid> (per-user)COMMENT
LOWweb/next.config.js121 // Transpile mermaid and related packages for proper ESM handlingCOMMENT
LOWweb/next-env.d.ts1/// <reference types="next" />COMMENT
LOWweb/app/(workspace)/home/[[...sessionId]]/page.tsx461 // Capability-config confirmation gate.COMMENT
LOWweb/app/(workspace)/home/[[...sessionId]]/page.tsx2001 <divCOMMENT
LOWweb/tests/rich-code-block.test.ts181 // react-syntax-highlighter's highlight.js (lines 99-103) forces eachCOMMENT
LOWweb/components/settings/search-providers.ts1// Which connection fields a web-search provider actually uses.COMMENT
LOWweb/components/settings/SettingsTourOverlay.tsx1"use client";COMMENT
LOWweb/components/settings/profile-naming.ts1// Auto-naming for connection profiles.COMMENT
LOWweb/components/memory/MemoryWorkbench.tsx41// m_xxx footnote to scroll the user back to the citing bullet. ConvertCOMMENT
LOWweb/components/chat/home/ChatMessages.tsx1201COMMENT
LOWweb/components/chat/home/ChatComposer.tsx541 // "+" menu. Knowledge is excluded: it no longer lives in this menu —COMMENT
LOWweb/components/chat/home/TracePanels.tsx2101 // the quizzing phase is active.COMMENT
LOWweb/components/chat/preview/FilePreviewDrawer.tsx61 // the slide-out transition.COMMENT
LOWweb/hooks/useChatAutoScroll.ts101 // ``next/dynamic`` chunks all change the height of the messageCOMMENT
LOWweb/hooks/useChatAutoScroll.ts221 shouldAutoScrollRef.current = distanceFromBottom < 80;COMMENT
LOWrequirements/partners.txt1# ============================================COMMENT
LOWrequirements/cli.txt1# ============================================COMMENT
LOWrequirements/dev.txt1# ============================================COMMENT
LOWrequirements/matrix.txt1# ============================================COMMENT
LOWrequirements/math-animator.txt1# ============================================COMMENT
LOWrequirements/server.txt1# ============================================COMMENT
LOWrequirements/matrix-e2e.txt1# ============================================COMMENT
LOW.github/workflows/pypi-release.yml1name: PyPI ReleaseCOMMENT
LOWdeeptutor/tools/__init__.py41# Question generation tools (lazy import to avoid circular dependencies)COMMENT
LOWdeeptutor/tools/builtin/__init__.py1581 CronTool,COMMENT
LOWdeeptutor/core/agentic/tool_dispatch.py101 stage=stage,COMMENT
LOWdeeptutor/core/agentic/tool_dispatch.py461 "terminate_turn": getattr(result, "terminate_turn", False),COMMENT
LOWdeeptutor/core/agentic/labeled_step.py61COMMENT
LOWdeeptutor/core/agentic/labeled_step.py461COMMENT
LOWdeeptutor/multi_user/grants.py21 "knowledge_bases": [],COMMENT
LOWdeeptutor/runtime/providers/scope.py21 #: it, and an administrator to the deployment id. Deliberately not "theCOMMENT
LOWdeeptutor/agents/chat/agent_loop.py481 # What this request actually carried, pinned now: the loop keepsCOMMENT
LOWdeeptutor/agents/question/prompts/en/pipeline.yaml1# QuestionPipeline prompts (English)COMMENT
LOWdeeptutor/knowledge/kb_types.py61# No path on disk — ``agent_kind`` names the backend, optional ``cwd`` is theCOMMENT
LOWdeeptutor/api/main.py241# Access logging is funneled through this one middleware. uvicorn's ownCOMMENT
LOWdeeptutor/api/routers/tools.py61class BuiltinToolPayload(BaseModel):COMMENT
LOWdeeptutor/services/config/runtime_settings.py21 "cors_origin": "",COMMENT
LOWdeeptutor/services/config/runtime_settings.py61 "version": 1,COMMENT
LOWdeeptutor/services/config/runtime_settings.py201# LlamaIndex local RAG engine. These are the retrieval + chunking knobs theCOMMENT
LOWdeeptutor/services/cli_apps/provider.py41COMMENT
LOWdeeptutor/services/partners/manager.py181 language: str = ""COMMENT
LOWdeeptutor/services/subagent/config.py41 # from the CLI (models/efforts change over time). CC: --model / --effort;COMMENT
2 more matches not shown…
AI Slop Vocabulary18 hits · 43 pts
SeverityFileLineSnippetContext
MEDIUMweb/package-lock.json9341 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
MEDIUMweb/components/common/GeogebraOpenCTA.tsx37 // robust even if the assistant doesn't bother emitting an explicitCOMMENT
MEDIUMtests/capabilities/test_explore_context_capability.py279 """A loop that errors before producing anything degrades to the robustSTRING
MEDIUMtests/utils/test_json_parser.py1"""Tests for robust JSON parsing utilities."""STRING
MEDIUMtests/services/cli_apps/test_installer.py40 target: str = "git+https://example.invalid/x.git@abc#subdirectory=demo/agent-harness",CODE
MEDIUMtests/services/cli_apps/test_models.py36 f"pip install git+{HARNESS_REPO}#subdirectory=blender/agent-harness", app_id="blender"CODE
MEDIUMtests/services/cli_apps/test_models.py41 assert plan.target == f"git+{HARNESS_REPO}@{PIN}#subdirectory=blender/agent-harness"CODE
MEDIUMtests/services/cli_apps/test_models.py47 assert plan.target.endswith("#subdirectory=zotero/agent-harness")CODE
MEDIUMdeeptutor/capabilities/explore_context/explorer.py138 # Non-native providers, or a failed/empty loop, degrade to the robustCOMMENT
MEDIUMdeeptutor/agents/research/pipeline.py1449 """Make report planning robust to partial / invalid block maps.STRING
MEDIUMdeeptutor/partners/channels/dingtalk.py54 # Parse using SDK's ChatbotMessage for robust handlingCOMMENT
LOWdeeptutor/partners/channels/weixin.py655 # If quoted message is media, just pass the textCOMMENT
MEDIUMdeeptutor/book/blocks/_llm_writer.py143 """Run a structured JSON LLM call with robust parsing and one safe retry.STRING
LOWdeeptutor/api/main.py306 # Fallback: just create the main directory if it doesn't existCOMMENT
MEDIUMdeeptutor/services/cli_apps/models.py142 #: harness, a URL for several public entries, or "" — read from theCOMMENT
MEDIUMdeeptutor/services/cli_apps/provider.py44#: Where an installed harness keeps its agent-facing guide, most specific first.COMMENT
MEDIUMdeeptutor/services/cli_apps/provider.py47#: harness publishes ``cli_anything/<package>/skills/SKILL.md``, which is sixCOMMENT
MEDIUMdeeptutor/services/cli_apps/provider.py55#: exactly one harness, so the glob resolves to one directory.COMMENT
AI Structural Patterns28 hits · 25 pts
SeverityFileLineSnippetContext
LOWdeeptutor_cli/chat.py43CODE
LOWdeeptutor_cli/main.py76CODE
LOWdeeptutor/tools/write_note.py61CODE
LOWdeeptutor/core/trace.py44CODE
LOWdeeptutor/core/agentic/tool_dispatch.py74CODE
LOWdeeptutor/agents/base_agent.py51CODE
LOWdeeptutor/agents/base_agent.py348CODE
LOWdeeptutor/agents/base_agent.py511CODE
LOWdeeptutor/agents/question/coordinator.py39CODE
LOWdeeptutor/knowledge/progress_tracker.py133CODE
LOWdeeptutor/book/engine.py200CODE
LOWdeeptutor/book/inputs.py308CODE
LOWdeeptutor/services/llm/factory.py337CODE
LOWdeeptutor/services/llm/factory.py401CODE
LOW…r/services/llm/provider_core/openai_compat_provider.py735CODE
LOW…/services/llm/provider_core/github_copilot_provider.py197CODE
LOW…or/services/llm/provider_core/azure_openai_provider.py134CODE
LOW…or/services/llm/provider_core/openai_codex_provider.py149CODE
LOW…tutor/services/llm/provider_core/anthropic_provider.py513CODE
LOWdeeptutor/services/llm/provider_core/base.py220CODE
LOWdeeptutor/services/llm/provider_core/base.py341CODE
LOWdeeptutor/services/llm/provider_core/base.py390CODE
LOWdeeptutor/services/rag/linked_kb.py68CODE
LOWdeeptutor/services/search/providers/tavily.py37CODE
LOWdeeptutor/services/search/providers/openrouter.py165CODE
LOWdeeptutor/services/search/providers/exa.py41CODE
LOWdeeptutor/services/search/providers/perplexity.py153CODE
LOWdeeptutor/services/search/providers/baidu.py33CODE
Self-Referential Comments5 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMcompose.yaml10# This file is `podman-compose` 1.5+ compatible.COMMENT
MEDIUMdocker-compose.yml4# This file provides orchestration for DeepTutor servicesCOMMENT
MEDIUMtests/services/session/test_regenerate.py255 # Create a running turn directly via the store.COMMENT
MEDIUMdeeptutor/tools/vision/block_parser.py95 # Create the block with validated contentCOMMENT
MEDIUMdeeptutor/api/routers/mastery_path.py29 # Create a fresh store + service per request to avoid object-level race conditions.COMMENT
Fake / Example Data19 hits · 19 pts
SeverityFileLineSnippetContext
LOWtests/tools/test_ask_user.py196 payload, _ = build_ask_user_payload(questions=[{"prompt": "x", "placeholder": "type here"}])CODE
LOWtests/tools/test_ask_user.py321 "placeholder": None,CODE
LOWtests/tools/test_ask_user.py330 "placeholder": None,CODE
LOWtests/knowledge/test_document_adder_provider.py25 (output_dir / "entities.parquet").write_bytes(b"placeholder")CODE
LOWtests/services/config/test_runtime_settings.py96 "pocketbase_admin_email": "admin@example.com",CODE
LOWtests/services/rag/test_index_probe.py93 (out / "entities.parquet").write_bytes(b"placeholder")CODE
LOWtests/services/partners/test_zulip_channel.py99 ch = _make_channel(allow_from=["user@example.com"])CODE
LOWtests/services/partners/test_zulip_channel.py129 assert ch._is_own_message({"sender_email": "user@example.com", "sender_id": 200}) is FalseCODE
LOWtests/services/partners/test_zulip_channel.py504 "sender_email": "user@example.com",CODE
LOWtests/services/partners/test_zulip_channel.py507 assert req["to"] == ["user@example.com"]CODE
LOWtests/services/partners/test_zulip_channel.py517 "sender_email": "user@example.com",CODE
LOWtests/services/partners/test_zulip_channel.py520 {"id": 42, "email": "user@example.com"},CODE
LOWtests/services/partners/test_zulip_channel.py951 "sender_email": "user@example.com",CODE
LOWdeeptutor_cli/common.py587 placeholder=str(question.get("placeholder") or "").strip(),CODE
LOWdeeptutor/tools/ask_user.py73 "placeholder": self.placeholder,CODE
LOWdeeptutor/tools/ask_user.py207 placeholder_raw = raw.get("placeholder")CODE
LOWdeeptutor/tools/builtin/__init__.py1271 "placeholder": {CODE
LOWdeeptutor/api/routers/space_mcp.py381 "placeholder": field.placeholder,CODE
LOWdeeptutor/services/mcp/catalog/loader.py228 placeholder=str(row.get("placeholder", "")),CODE
Redundant / Tautological Comments14 hits · 18 pts
SeverityFileLineSnippetContext
LOWdeeptutor/tools/tex_chunker.py141 # Check if can merge into current chunkSTRING
LOWdeeptutor/tools/tex_chunker.py244 # Check if can mergeSTRING
LOWdeeptutor/tools/vision/ggb_validator.py207 # Check if anything was fixedCOMMENT
LOWdeeptutor/tools/vision/block_parser.py156 # Check if we might be at the start of a block patternCOMMENT
LOWdeeptutor/tools/vision/block_parser.py159 # Check if this could be a block startCOMMENT
LOWdeeptutor/agents/base_agent.py708 # Check if this is a nested lookup (section.field pattern)COMMENT
LOWdeeptutor/knowledge/manager.py580 # Check if this is a valid KB directory (flat versions or legacy stores)COMMENT
LOWdeeptutor/knowledge/manager.py1497 # Check if already linkedCOMMENT
LOWdeeptutor/knowledge/manager.py1650 # Check if modified since last syncCOMMENT
LOWdeeptutor/partners/channels/discord.py465 # Check if bot was mentioned in the messageCOMMENT
LOWdeeptutor/services/llm/local_provider.py256 # Check if closed immediately in same chunkCOMMENT
LOWdeeptutor/services/llm/cloud_provider.py621 # Check if closed immediately in same chunkCOMMENT
LOWdeeptutor/services/llm/capabilities.py11 # Check if a provider supports response_formatSTRING
LOWdeeptutor/services/sandbox/runner/server.py143 # Open file descriptors.COMMENT
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHweb/app/(workspace)/co-writer/sampleTemplate.ts66 print("DeepTutor is ready.")CODE
HIGHweb/app/(utility)/settings/appearance/page.tsx31print(summary)CODE
Example Usage Blocks3 hits · 7 pts
SeverityFileLineSnippetContext
LOWdocker-compose.ghcr.yml7# Usage:COMMENT
LOW.pre-commit-config.yaml8# Usage:COMMENT
LOWdocker-compose.yml6# Usage:COMMENT
Verbosity Indicators3 hits · 2 pts
SeverityFileLineSnippetContext
LOWdeeptutor/partners/channels/weixin.py1349 # Step 1: Get upload URL from server (prefer upload_full_url, fallback to upload_param)COMMENT
LOWdeeptutor/partners/channels/weixin.py1373 # Step 2: AES-128-ECB encrypt and POST to CDNCOMMENT
LOWdeeptutor/partners/channels/weixin.py1401 # Step 3: Send message with the media itemCOMMENT
Structural Annotation Overuse3 hits · 2 pts
SeverityFileLineSnippetContext
LOWdeeptutor/partners/channels/weixin.py1349 # Step 1: Get upload URL from server (prefer upload_full_url, fallback to upload_param)COMMENT
LOWdeeptutor/partners/channels/weixin.py1373 # Step 2: AES-128-ECB encrypt and POST to CDNCOMMENT
LOWdeeptutor/partners/channels/weixin.py1401 # Step 3: Send message with the media itemCOMMENT