codepp 0.0.437__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- code_puppy/__init__.py +10 -0
- code_puppy/__main__.py +10 -0
- code_puppy/agents/__init__.py +31 -0
- code_puppy/agents/agent_c_reviewer.py +155 -0
- code_puppy/agents/agent_code_puppy.py +117 -0
- code_puppy/agents/agent_code_reviewer.py +90 -0
- code_puppy/agents/agent_cpp_reviewer.py +132 -0
- code_puppy/agents/agent_creator_agent.py +638 -0
- code_puppy/agents/agent_golang_reviewer.py +151 -0
- code_puppy/agents/agent_helios.py +124 -0
- code_puppy/agents/agent_javascript_reviewer.py +160 -0
- code_puppy/agents/agent_manager.py +742 -0
- code_puppy/agents/agent_pack_leader.py +385 -0
- code_puppy/agents/agent_planning.py +165 -0
- code_puppy/agents/agent_python_programmer.py +169 -0
- code_puppy/agents/agent_python_reviewer.py +90 -0
- code_puppy/agents/agent_qa_expert.py +163 -0
- code_puppy/agents/agent_qa_kitten.py +208 -0
- code_puppy/agents/agent_scheduler.py +121 -0
- code_puppy/agents/agent_security_auditor.py +181 -0
- code_puppy/agents/agent_terminal_qa.py +323 -0
- code_puppy/agents/agent_typescript_reviewer.py +166 -0
- code_puppy/agents/base_agent.py +2156 -0
- code_puppy/agents/event_stream_handler.py +348 -0
- code_puppy/agents/json_agent.py +202 -0
- code_puppy/agents/pack/__init__.py +34 -0
- code_puppy/agents/pack/bloodhound.py +304 -0
- code_puppy/agents/pack/husky.py +327 -0
- code_puppy/agents/pack/retriever.py +393 -0
- code_puppy/agents/pack/shepherd.py +348 -0
- code_puppy/agents/pack/terrier.py +287 -0
- code_puppy/agents/pack/watchdog.py +367 -0
- code_puppy/agents/prompt_reviewer.py +145 -0
- code_puppy/agents/subagent_stream_handler.py +276 -0
- code_puppy/api/__init__.py +13 -0
- code_puppy/api/app.py +169 -0
- code_puppy/api/main.py +21 -0
- code_puppy/api/pty_manager.py +453 -0
- code_puppy/api/routers/__init__.py +12 -0
- code_puppy/api/routers/agents.py +36 -0
- code_puppy/api/routers/commands.py +217 -0
- code_puppy/api/routers/config.py +75 -0
- code_puppy/api/routers/sessions.py +234 -0
- code_puppy/api/templates/terminal.html +361 -0
- code_puppy/api/websocket.py +154 -0
- code_puppy/callbacks.py +692 -0
- code_puppy/chatgpt_codex_client.py +338 -0
- code_puppy/claude_cache_client.py +672 -0
- code_puppy/cli_runner.py +1073 -0
- code_puppy/command_line/__init__.py +1 -0
- code_puppy/command_line/add_model_menu.py +1092 -0
- code_puppy/command_line/agent_menu.py +662 -0
- code_puppy/command_line/attachments.py +395 -0
- code_puppy/command_line/autosave_menu.py +704 -0
- code_puppy/command_line/clipboard.py +527 -0
- code_puppy/command_line/colors_menu.py +532 -0
- code_puppy/command_line/command_handler.py +293 -0
- code_puppy/command_line/command_registry.py +150 -0
- code_puppy/command_line/config_commands.py +719 -0
- code_puppy/command_line/core_commands.py +867 -0
- code_puppy/command_line/diff_menu.py +865 -0
- code_puppy/command_line/file_path_completion.py +73 -0
- code_puppy/command_line/load_context_completion.py +52 -0
- code_puppy/command_line/mcp/__init__.py +10 -0
- code_puppy/command_line/mcp/base.py +32 -0
- code_puppy/command_line/mcp/catalog_server_installer.py +175 -0
- code_puppy/command_line/mcp/custom_server_form.py +688 -0
- code_puppy/command_line/mcp/custom_server_installer.py +195 -0
- code_puppy/command_line/mcp/edit_command.py +148 -0
- code_puppy/command_line/mcp/handler.py +138 -0
- code_puppy/command_line/mcp/help_command.py +147 -0
- code_puppy/command_line/mcp/install_command.py +214 -0
- code_puppy/command_line/mcp/install_menu.py +705 -0
- code_puppy/command_line/mcp/list_command.py +94 -0
- code_puppy/command_line/mcp/logs_command.py +235 -0
- code_puppy/command_line/mcp/remove_command.py +82 -0
- code_puppy/command_line/mcp/restart_command.py +100 -0
- code_puppy/command_line/mcp/search_command.py +123 -0
- code_puppy/command_line/mcp/start_all_command.py +135 -0
- code_puppy/command_line/mcp/start_command.py +117 -0
- code_puppy/command_line/mcp/status_command.py +184 -0
- code_puppy/command_line/mcp/stop_all_command.py +112 -0
- code_puppy/command_line/mcp/stop_command.py +80 -0
- code_puppy/command_line/mcp/test_command.py +107 -0
- code_puppy/command_line/mcp/utils.py +129 -0
- code_puppy/command_line/mcp/wizard_utils.py +334 -0
- code_puppy/command_line/mcp_completion.py +174 -0
- code_puppy/command_line/model_picker_completion.py +197 -0
- code_puppy/command_line/model_settings_menu.py +932 -0
- code_puppy/command_line/motd.py +96 -0
- code_puppy/command_line/onboarding_slides.py +179 -0
- code_puppy/command_line/onboarding_wizard.py +342 -0
- code_puppy/command_line/pin_command_completion.py +329 -0
- code_puppy/command_line/prompt_toolkit_completion.py +846 -0
- code_puppy/command_line/session_commands.py +302 -0
- code_puppy/command_line/shell_passthrough.py +145 -0
- code_puppy/command_line/skills_completion.py +160 -0
- code_puppy/command_line/uc_menu.py +893 -0
- code_puppy/command_line/utils.py +93 -0
- code_puppy/command_line/wiggum_state.py +78 -0
- code_puppy/config.py +1770 -0
- code_puppy/error_logging.py +134 -0
- code_puppy/gemini_code_assist.py +385 -0
- code_puppy/gemini_model.py +754 -0
- code_puppy/hook_engine/README.md +105 -0
- code_puppy/hook_engine/__init__.py +21 -0
- code_puppy/hook_engine/aliases.py +155 -0
- code_puppy/hook_engine/engine.py +221 -0
- code_puppy/hook_engine/executor.py +296 -0
- code_puppy/hook_engine/matcher.py +156 -0
- code_puppy/hook_engine/models.py +240 -0
- code_puppy/hook_engine/registry.py +106 -0
- code_puppy/hook_engine/validator.py +144 -0
- code_puppy/http_utils.py +361 -0
- code_puppy/keymap.py +128 -0
- code_puppy/main.py +10 -0
- code_puppy/mcp_/__init__.py +66 -0
- code_puppy/mcp_/async_lifecycle.py +286 -0
- code_puppy/mcp_/blocking_startup.py +469 -0
- code_puppy/mcp_/captured_stdio_server.py +275 -0
- code_puppy/mcp_/circuit_breaker.py +290 -0
- code_puppy/mcp_/config_wizard.py +507 -0
- code_puppy/mcp_/dashboard.py +308 -0
- code_puppy/mcp_/error_isolation.py +407 -0
- code_puppy/mcp_/examples/retry_example.py +226 -0
- code_puppy/mcp_/health_monitor.py +589 -0
- code_puppy/mcp_/managed_server.py +428 -0
- code_puppy/mcp_/manager.py +807 -0
- code_puppy/mcp_/mcp_logs.py +224 -0
- code_puppy/mcp_/registry.py +451 -0
- code_puppy/mcp_/retry_manager.py +337 -0
- code_puppy/mcp_/server_registry_catalog.py +1126 -0
- code_puppy/mcp_/status_tracker.py +355 -0
- code_puppy/mcp_/system_tools.py +209 -0
- code_puppy/mcp_prompts/__init__.py +1 -0
- code_puppy/mcp_prompts/hook_creator.py +103 -0
- code_puppy/messaging/__init__.py +255 -0
- code_puppy/messaging/bus.py +613 -0
- code_puppy/messaging/commands.py +167 -0
- code_puppy/messaging/markdown_patches.py +57 -0
- code_puppy/messaging/message_queue.py +361 -0
- code_puppy/messaging/messages.py +569 -0
- code_puppy/messaging/queue_console.py +271 -0
- code_puppy/messaging/renderers.py +311 -0
- code_puppy/messaging/rich_renderer.py +1158 -0
- code_puppy/messaging/spinner/__init__.py +83 -0
- code_puppy/messaging/spinner/console_spinner.py +240 -0
- code_puppy/messaging/spinner/spinner_base.py +95 -0
- code_puppy/messaging/subagent_console.py +460 -0
- code_puppy/model_factory.py +848 -0
- code_puppy/model_switching.py +63 -0
- code_puppy/model_utils.py +168 -0
- code_puppy/models.json +174 -0
- code_puppy/models_dev_api.json +1 -0
- code_puppy/models_dev_parser.py +592 -0
- code_puppy/plugins/__init__.py +186 -0
- code_puppy/plugins/agent_skills/__init__.py +22 -0
- code_puppy/plugins/agent_skills/config.py +175 -0
- code_puppy/plugins/agent_skills/discovery.py +136 -0
- code_puppy/plugins/agent_skills/downloader.py +392 -0
- code_puppy/plugins/agent_skills/installer.py +22 -0
- code_puppy/plugins/agent_skills/metadata.py +219 -0
- code_puppy/plugins/agent_skills/prompt_builder.py +60 -0
- code_puppy/plugins/agent_skills/register_callbacks.py +241 -0
- code_puppy/plugins/agent_skills/remote_catalog.py +322 -0
- code_puppy/plugins/agent_skills/skill_catalog.py +257 -0
- code_puppy/plugins/agent_skills/skills_install_menu.py +664 -0
- code_puppy/plugins/agent_skills/skills_menu.py +781 -0
- code_puppy/plugins/antigravity_oauth/__init__.py +10 -0
- code_puppy/plugins/antigravity_oauth/accounts.py +406 -0
- code_puppy/plugins/antigravity_oauth/antigravity_model.py +706 -0
- code_puppy/plugins/antigravity_oauth/config.py +42 -0
- code_puppy/plugins/antigravity_oauth/constants.py +133 -0
- code_puppy/plugins/antigravity_oauth/oauth.py +478 -0
- code_puppy/plugins/antigravity_oauth/register_callbacks.py +518 -0
- code_puppy/plugins/antigravity_oauth/storage.py +288 -0
- code_puppy/plugins/antigravity_oauth/test_plugin.py +319 -0
- code_puppy/plugins/antigravity_oauth/token.py +167 -0
- code_puppy/plugins/antigravity_oauth/transport.py +863 -0
- code_puppy/plugins/antigravity_oauth/utils.py +168 -0
- code_puppy/plugins/chatgpt_oauth/__init__.py +8 -0
- code_puppy/plugins/chatgpt_oauth/config.py +52 -0
- code_puppy/plugins/chatgpt_oauth/oauth_flow.py +329 -0
- code_puppy/plugins/chatgpt_oauth/register_callbacks.py +176 -0
- code_puppy/plugins/chatgpt_oauth/test_plugin.py +301 -0
- code_puppy/plugins/chatgpt_oauth/utils.py +523 -0
- code_puppy/plugins/claude_code_hooks/__init__.py +1 -0
- code_puppy/plugins/claude_code_hooks/config.py +137 -0
- code_puppy/plugins/claude_code_hooks/register_callbacks.py +175 -0
- code_puppy/plugins/claude_code_oauth/README.md +167 -0
- code_puppy/plugins/claude_code_oauth/SETUP.md +93 -0
- code_puppy/plugins/claude_code_oauth/__init__.py +25 -0
- code_puppy/plugins/claude_code_oauth/config.py +52 -0
- code_puppy/plugins/claude_code_oauth/register_callbacks.py +453 -0
- code_puppy/plugins/claude_code_oauth/test_plugin.py +283 -0
- code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +241 -0
- code_puppy/plugins/claude_code_oauth/utils.py +640 -0
- code_puppy/plugins/customizable_commands/__init__.py +0 -0
- code_puppy/plugins/customizable_commands/register_callbacks.py +152 -0
- code_puppy/plugins/example_custom_command/README.md +280 -0
- code_puppy/plugins/example_custom_command/register_callbacks.py +51 -0
- code_puppy/plugins/file_permission_handler/__init__.py +4 -0
- code_puppy/plugins/file_permission_handler/register_callbacks.py +470 -0
- code_puppy/plugins/frontend_emitter/__init__.py +25 -0
- code_puppy/plugins/frontend_emitter/emitter.py +121 -0
- code_puppy/plugins/frontend_emitter/register_callbacks.py +261 -0
- code_puppy/plugins/hook_creator/__init__.py +1 -0
- code_puppy/plugins/hook_creator/register_callbacks.py +33 -0
- code_puppy/plugins/hook_manager/__init__.py +1 -0
- code_puppy/plugins/hook_manager/config.py +290 -0
- code_puppy/plugins/hook_manager/hooks_menu.py +564 -0
- code_puppy/plugins/hook_manager/register_callbacks.py +227 -0
- code_puppy/plugins/oauth_puppy_html.py +228 -0
- code_puppy/plugins/scheduler/__init__.py +1 -0
- code_puppy/plugins/scheduler/register_callbacks.py +88 -0
- code_puppy/plugins/scheduler/scheduler_menu.py +522 -0
- code_puppy/plugins/scheduler/scheduler_wizard.py +341 -0
- code_puppy/plugins/shell_safety/__init__.py +6 -0
- code_puppy/plugins/shell_safety/agent_shell_safety.py +69 -0
- code_puppy/plugins/shell_safety/command_cache.py +156 -0
- code_puppy/plugins/shell_safety/register_callbacks.py +202 -0
- code_puppy/plugins/synthetic_status/__init__.py +1 -0
- code_puppy/plugins/synthetic_status/register_callbacks.py +132 -0
- code_puppy/plugins/synthetic_status/status_api.py +147 -0
- code_puppy/plugins/universal_constructor/__init__.py +13 -0
- code_puppy/plugins/universal_constructor/models.py +138 -0
- code_puppy/plugins/universal_constructor/register_callbacks.py +47 -0
- code_puppy/plugins/universal_constructor/registry.py +302 -0
- code_puppy/plugins/universal_constructor/sandbox.py +584 -0
- code_puppy/prompts/antigravity_system_prompt.md +1 -0
- code_puppy/pydantic_patches.py +356 -0
- code_puppy/reopenable_async_client.py +232 -0
- code_puppy/round_robin_model.py +150 -0
- code_puppy/scheduler/__init__.py +41 -0
- code_puppy/scheduler/__main__.py +9 -0
- code_puppy/scheduler/cli.py +118 -0
- code_puppy/scheduler/config.py +126 -0
- code_puppy/scheduler/daemon.py +280 -0
- code_puppy/scheduler/executor.py +155 -0
- code_puppy/scheduler/platform.py +19 -0
- code_puppy/scheduler/platform_unix.py +22 -0
- code_puppy/scheduler/platform_win.py +32 -0
- code_puppy/session_storage.py +338 -0
- code_puppy/status_display.py +257 -0
- code_puppy/summarization_agent.py +176 -0
- code_puppy/terminal_utils.py +418 -0
- code_puppy/tools/__init__.py +501 -0
- code_puppy/tools/agent_tools.py +603 -0
- code_puppy/tools/ask_user_question/__init__.py +26 -0
- code_puppy/tools/ask_user_question/constants.py +73 -0
- code_puppy/tools/ask_user_question/demo_tui.py +55 -0
- code_puppy/tools/ask_user_question/handler.py +232 -0
- code_puppy/tools/ask_user_question/models.py +304 -0
- code_puppy/tools/ask_user_question/registration.py +26 -0
- code_puppy/tools/ask_user_question/renderers.py +309 -0
- code_puppy/tools/ask_user_question/terminal_ui.py +329 -0
- code_puppy/tools/ask_user_question/theme.py +155 -0
- code_puppy/tools/ask_user_question/tui_loop.py +423 -0
- code_puppy/tools/browser/__init__.py +37 -0
- code_puppy/tools/browser/browser_control.py +289 -0
- code_puppy/tools/browser/browser_interactions.py +545 -0
- code_puppy/tools/browser/browser_locators.py +640 -0
- code_puppy/tools/browser/browser_manager.py +378 -0
- code_puppy/tools/browser/browser_navigation.py +251 -0
- code_puppy/tools/browser/browser_screenshot.py +179 -0
- code_puppy/tools/browser/browser_scripts.py +462 -0
- code_puppy/tools/browser/browser_workflows.py +221 -0
- code_puppy/tools/browser/chromium_terminal_manager.py +259 -0
- code_puppy/tools/browser/terminal_command_tools.py +534 -0
- code_puppy/tools/browser/terminal_screenshot_tools.py +552 -0
- code_puppy/tools/browser/terminal_tools.py +525 -0
- code_puppy/tools/command_runner.py +1346 -0
- code_puppy/tools/common.py +1409 -0
- code_puppy/tools/display.py +84 -0
- code_puppy/tools/file_modifications.py +886 -0
- code_puppy/tools/file_operations.py +802 -0
- code_puppy/tools/scheduler_tools.py +412 -0
- code_puppy/tools/skills_tools.py +244 -0
- code_puppy/tools/subagent_context.py +158 -0
- code_puppy/tools/tools_content.py +51 -0
- code_puppy/tools/universal_constructor.py +889 -0
- code_puppy/uvx_detection.py +242 -0
- code_puppy/version_checker.py +82 -0
- codepp-0.0.437.dist-info/METADATA +766 -0
- codepp-0.0.437.dist-info/RECORD +288 -0
- codepp-0.0.437.dist-info/WHEEL +4 -0
- codepp-0.0.437.dist-info/entry_points.txt +3 -0
- codepp-0.0.437.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"""TypeScript code reviewer agent."""
|
|
2
|
+
|
|
3
|
+
from .base_agent import BaseAgent
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class TypeScriptReviewerAgent(BaseAgent):
|
|
7
|
+
"""TypeScript-focused code review agent."""
|
|
8
|
+
|
|
9
|
+
@property
|
|
10
|
+
def name(self) -> str:
|
|
11
|
+
return "typescript-reviewer"
|
|
12
|
+
|
|
13
|
+
@property
|
|
14
|
+
def display_name(self) -> str:
|
|
15
|
+
return "TypeScript Reviewer 🦾"
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def description(self) -> str:
|
|
19
|
+
return "Hyper-picky TypeScript reviewer ensuring type safety, DX, and runtime correctness"
|
|
20
|
+
|
|
21
|
+
def get_available_tools(self) -> list[str]:
|
|
22
|
+
"""Reviewers need read-only inspection helpers plus agent collaboration."""
|
|
23
|
+
return [
|
|
24
|
+
"agent_share_your_reasoning",
|
|
25
|
+
"agent_run_shell_command",
|
|
26
|
+
"list_files",
|
|
27
|
+
"read_file",
|
|
28
|
+
"grep",
|
|
29
|
+
"invoke_agent",
|
|
30
|
+
"list_agents",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
def get_system_prompt(self) -> str:
|
|
34
|
+
return """
|
|
35
|
+
You are an elite TypeScript reviewer puppy. Keep the jokes coming, but defend type soundness, DX, and runtime sanity like it’s your chew toy.
|
|
36
|
+
|
|
37
|
+
Mission directives:
|
|
38
|
+
- Review only `.ts`/`.tsx` files (and `.mts`/`.cts`) with substantive code changes. Skip untouched files or cosmetic reformatting.
|
|
39
|
+
- Inspect adjacent config only when it impacts TypeScript behaviour (`tsconfig.json`, `tsconfig.build.json`, `package.json`, `next.config.js`, `vite.config.ts`, `esbuild.config.mjs`, ESLint configs, etc.). Otherwise ignore.
|
|
40
|
+
- Uphold strict mode, tsconfig hygiene, and conventions from VoltAgent’s typescript-pro manifest: discriminated unions, branded types, exhaustive checks, type predicates, asm-level correctness.
|
|
41
|
+
- Enforce toolchain discipline: `tsc --noEmit --strict`, `eslint --max-warnings=0`, `prettier --write`, `vitest run`/`jest --coverage`, `ts-prune`, bundle tests with `esbuild`, and CI parity.
|
|
42
|
+
|
|
43
|
+
Per TypeScript file with real deltas:
|
|
44
|
+
1. Lead with a punchy summary of the behavioural change.
|
|
45
|
+
2. Enumerate findings sorted by severity (blockers → warnings → nits). Critique correctness, type system usage, framework idioms, DX, build implications, and perf.
|
|
46
|
+
3. Hand out praise bullets when the diff flexes—clean discriminated unions, ergonomic generics, type-safe React composition, slick tRPC bindings, reduced bundle size, etc.
|
|
47
|
+
|
|
48
|
+
Review heuristics:
|
|
49
|
+
- Type system mastery: check discriminated unions, satisfies operator, branded types, conditional types, inference quality, and make sure `never` remains impossible.
|
|
50
|
+
- Runtime safety: ensure exhaustive switch statements, result/error return types, proper null/undefined handling, and no silent promise voids.
|
|
51
|
+
- Full-stack types: verify shared contracts (API clients, tRPC, GraphQL), zod/io-ts validators, and that server/client stay in sync.
|
|
52
|
+
- Framework idioms: React hooks stability, Next.js data fetching constraints, Angular strict DI tokens, Vue/Svelte signals typing, Node/Express request typings.
|
|
53
|
+
- Performance & DX: make sure tree-shaking works, no accidental `any` leaks, path aliasing resolves, lazy-loaded routes typed, and editors won’t crawl.
|
|
54
|
+
- Testing expectations: type-safe test doubles with `ts-mockito`, fixture typing with `factory.ts`, `vitest --coverage`/`jest --coverage` for tricky branches, `playwright test --reporter=html`/`cypress run --spec` typing if included.
|
|
55
|
+
- Config vigilance: `tsconfig.json` targets/strictness, module resolution with paths aliases, `tsconfig.build.json` for production builds, project references, monorepo boundaries with `nx`/`turborepo`, and build pipeline impacts (webpack/vite/esbuild).
|
|
56
|
+
- Security: input validation, auth guards, CSRF/CSR token handling, SSR data leaks, and sanitization for DOM APIs.
|
|
57
|
+
|
|
58
|
+
Feedback style:
|
|
59
|
+
- Be cheeky but constructive. “Consider …” or “Maybe try …” keeps the tail wagging.
|
|
60
|
+
- Group related feedback; cite precise lines like `src/components/Foo.tsx:42`. No ranges, no vibes-only feedback.
|
|
61
|
+
- Flag unknowns or assumptions explicitly so humans know what to double-check.
|
|
62
|
+
- If nothing smells funky, celebrate and spotlight strengths.
|
|
63
|
+
|
|
64
|
+
TypeScript toolchain integration:
|
|
65
|
+
- Type checking: tsc --noEmit, tsc --strict, incremental compilation, project references
|
|
66
|
+
- Linting: ESLint with @typescript-eslint rules, prettier for formatting, Husky pre-commit hooks
|
|
67
|
+
- Testing: Vitest with TypeScript support, Jest with ts-jest, React Testing Library for component testing
|
|
68
|
+
- Bundling: esbuild, swc, webpack with ts-loader, proper tree-shaking with type information
|
|
69
|
+
- Documentation: TypeDoc for API docs, TSDoc comments, Storybook with TypeScript support
|
|
70
|
+
- Performance: TypeScript compiler optimizations, type-only imports, declaration maps for faster builds
|
|
71
|
+
- Security: @typescript-eslint/no-explicit-any, strict null checks, type guards for runtime validation
|
|
72
|
+
|
|
73
|
+
TypeScript Code Quality Checklist (verify for each file):
|
|
74
|
+
- [ ] tsc --noEmit --strict passes without errors
|
|
75
|
+
- [ ] ESLint with @typescript-eslint rules passes
|
|
76
|
+
- [ ] No any types unless absolutely necessary
|
|
77
|
+
- [ ] Proper type annotations for all public APIs
|
|
78
|
+
- [ ] Strict null checking enabled
|
|
79
|
+
- [ ] No unused variables or imports
|
|
80
|
+
- [ ] Proper interface vs type usage
|
|
81
|
+
- [ ] Enum usage appropriate (const enums where needed)
|
|
82
|
+
- [ ] Proper generic constraints
|
|
83
|
+
- [ ] Type assertions minimized and justified
|
|
84
|
+
|
|
85
|
+
Type System Mastery Checklist:
|
|
86
|
+
- [ ] Discriminated unions for variant types
|
|
87
|
+
- [ ] Conditional types used appropriately
|
|
88
|
+
- [ ] Mapped types for object transformations
|
|
89
|
+
- [ ] Template literal types for string patterns
|
|
90
|
+
- [ ] Brand types for nominal typing
|
|
91
|
+
- [ ] Utility types used correctly (Partial, Required, Pick, Omit)
|
|
92
|
+
- [ ] Generic constraints with extends keyword
|
|
93
|
+
- [ ] infer keyword for type inference
|
|
94
|
+
- [ ] never type used for exhaustive checks
|
|
95
|
+
- [ ] unknown instead of any for untyped data
|
|
96
|
+
|
|
97
|
+
Advanced TypeScript Patterns Checklist:
|
|
98
|
+
- [ ] Type-level programming for compile-time validation
|
|
99
|
+
- [ ] Recursive types for tree structures
|
|
100
|
+
- [ ] Function overloads for flexible APIs
|
|
101
|
+
- [ ] Readonly and mutable interfaces clearly separated
|
|
102
|
+
- [ ] This typing with proper constraints
|
|
103
|
+
- [ ] Mixin patterns with intersection types
|
|
104
|
+
- [ ] Higher-kinded types for functional programming
|
|
105
|
+
- [ ] Type guards (is, in) for runtime type checking
|
|
106
|
+
- [ ] Assertion functions for type narrowing
|
|
107
|
+
- [ ] Branded types for type-safe IDs
|
|
108
|
+
|
|
109
|
+
Framework Integration Checklist:
|
|
110
|
+
- [ ] React: proper prop types with TypeScript interfaces
|
|
111
|
+
- [ ] Next.js: API route typing, getServerSideProps typing
|
|
112
|
+
- [ ] Node.js: Express request/response typing
|
|
113
|
+
- [ ] Vue 3: Composition API with proper typing
|
|
114
|
+
- [ ] Angular: strict mode compliance, DI typing
|
|
115
|
+
- [ ] Database: ORM type integration (Prisma, TypeORM)
|
|
116
|
+
- [ ] API clients: generated types from OpenAPI/GraphQL
|
|
117
|
+
- [ ] Testing: type-safe test doubles and mocks
|
|
118
|
+
- [ ] Build tools: proper tsconfig.json configuration
|
|
119
|
+
- [ ] Monorepo: project references and shared types
|
|
120
|
+
|
|
121
|
+
Advanced TypeScript patterns:
|
|
122
|
+
- Type-level programming: conditional types, mapped types, template literal types, recursive types
|
|
123
|
+
- Utility types: Partial<T>, Required<T>, Pick<T, K>, Omit<T, K>, Record<K, T>, Exclude<T, U>
|
|
124
|
+
- Generics mastery: constraints, conditional types, infer keyword, default type parameters
|
|
125
|
+
- Module system: barrel exports, re-exports, dynamic imports with type safety, module augmentation
|
|
126
|
+
- Decorators: experimental decorators, metadata reflection, class decorators, method decorators
|
|
127
|
+
- Branding: branded types for nominal typing, opaque types, type-safe IDs
|
|
128
|
+
- Error handling: discriminated unions for error types, Result<T, E> patterns, never type for exhaustiveness
|
|
129
|
+
|
|
130
|
+
Framework-specific TypeScript expertise:
|
|
131
|
+
- React: proper prop types, generic components, hook typing, context provider patterns
|
|
132
|
+
- Next.js: API route typing, getServerSideProps typing, dynamic routing types
|
|
133
|
+
- Angular: strict mode compliance, dependency injection typing, RxJS operator typing
|
|
134
|
+
- Node.js: Express request/response typing, middleware typing, database ORM integration
|
|
135
|
+
|
|
136
|
+
Monorepo considerations:
|
|
137
|
+
- Project references: proper tsconfig.json hierarchy, composite projects, build orchestration
|
|
138
|
+
- Cross-project type sharing: shared type packages, API contract types, domain type definitions
|
|
139
|
+
- Build optimization: incremental builds, selective type checking, parallel compilation
|
|
140
|
+
|
|
141
|
+
Wrap-up protocol:
|
|
142
|
+
- End with repo-wide verdict: "Ship it", "Needs fixes", or "Mixed bag", plus a crisp justification (type soundness, test coverage, bundle delta, etc.).
|
|
143
|
+
- Suggest next actions when blockers exist (add discriminated union tests, tighten generics, adjust tsconfig). Keep it practical.
|
|
144
|
+
|
|
145
|
+
Advanced TypeScript Engineering:
|
|
146
|
+
- Type System Mastery: advanced generic programming, type-level computation, phantom types
|
|
147
|
+
- TypeScript Performance: incremental compilation optimization, project references, type-only imports
|
|
148
|
+
- TypeScript Security: type-safe validation, runtime type checking, secure serialization
|
|
149
|
+
- TypeScript Architecture: domain modeling with types, event sourcing patterns, CQRS implementation
|
|
150
|
+
- TypeScript Toolchain: custom transformers, declaration maps, source map optimization
|
|
151
|
+
- TypeScript Testing: type-safe test doubles, property-based testing with type generation
|
|
152
|
+
- TypeScript Standards: strict mode configuration, ESLint optimization, Prettier integration
|
|
153
|
+
- TypeScript Ecosystem: framework type safety, library type definitions, community contribution
|
|
154
|
+
- TypeScript Future: decorators stabilization, type annotations proposal, module system evolution
|
|
155
|
+
- TypeScript at Scale: monorepo strategies, build optimization, developer experience enhancement
|
|
156
|
+
|
|
157
|
+
Agent collaboration:
|
|
158
|
+
- When reviewing full-stack applications, coordinate with javascript-reviewer for runtime patterns and security-auditor for API security
|
|
159
|
+
- For React/Next.js applications, work with qa-expert for component testing strategies and javascript-reviewer for build optimization
|
|
160
|
+
- When reviewing TypeScript infrastructure, consult with security-auditor for dependency security and qa-expert for CI/CD validation
|
|
161
|
+
- Use list_agents to discover specialists for specific frameworks (Angular, Vue, Svelte) or deployment concerns
|
|
162
|
+
- Always articulate what specific TypeScript expertise you need when collaborating with other agents
|
|
163
|
+
- Ensure type safety collaboration catches runtime issues before deployment
|
|
164
|
+
|
|
165
|
+
You're the TypeScript review persona for this CLI. Be witty, ruthless about quality, and delightfully helpful.
|
|
166
|
+
"""
|