Skip to content

English translation#44

Closed
cybersecua wants to merge 79 commits intoEd1s0nZ:mainfrom
cybersecua:main
Closed

English translation#44
cybersecua wants to merge 79 commits intoEd1s0nZ:mainfrom
cybersecua:main

Conversation

@cybersecua
Copy link

Summary
This PR translates all Chinese comments and documentation strings throughout the codebase to English, improving accessibility for international developers and maintaining consistency with the English-language codebase.

Key Changes
Code comments: Converted all Chinese inline comments to English across core packages:

internal/agent/ - Agent, memory compressor, and token counter comments
internal/handler/ - Handler classes and utility functions
internal/attackchain/ - Attack chain builder and related types
internal/database/ - Database models and operations
internal/knowledge/ - Knowledge base indexer and embedder
internal/app/ - Application initialization and configuration
cmd/ - Command-line tools and test servers
Documentation: Updated user-facing documentation:

docs/robot.md - Bot/chatbot guide translated to English with language selector
docs/robot_en.md - Updated language reference links
README.md - Updated language selector format
GitHub issue templates - Translated bug report and feature request templates
Configuration: Updated config.yaml comments to English

Type definitions: Translated struct field comments and interface documentation

Test files: Updated test helper function comments

Notable Details
All functional code logic remains unchanged; this is purely a documentation/comment update
Maintains consistency with existing English comments in the codebase
Improves code readability for non-Chinese speaking contributors
No changes to API contracts, configuration schemas, or runtime behavior

claude and others added 30 commits March 3, 2026 18:31
- Translate all Chinese comments, strings, and UI text in Go source files
  (handlers, agent engine, MCP, knowledge base, database, security executor)
- Translate all JavaScript UI files (chat, roles, settings, skills, knowledge,
  info-collect, tasks, monitor, api-docs, dashboard, terminal, vulnerability)
- Translate CSS comments in web/static/css/style.css
- Translate all 86+ YAML tool recipes in tools/
- Translate all role YAML files; rename Chinese-named role files to English
- Translate SKILL.md files in the skills/ directory
- Translate shell script comments and messages in run.sh
- Translate HTML templates (index.html, api-docs.html)
- Translate config.yaml comments and go.mod
- Update docs/robot_en.md: replace Chinese bot command aliases with English
  equivalents, update log message strings, fix navigation labels
- Update README.md and docs/robot.md: change [中文] nav link to [Chinese]
- Add ROADMAP.md with detailed near/mid/long-term development plans
- Add English-named role YAML files replacing Chinese-named originals

https://claude.ai/code/session_01FizP91UUqUukAtcgnVHTZy
- Translate internal/attackchain/builder.go including the large ~300-line
  LLM system prompt for attack chain construction
- Translate internal/handler/agent.go: knowledge base result matching
  strings updated to English equivalents, batch task cancellation
  detection strings updated to match English executor output
- Translate internal/handler/config.go: all comments, log messages,
  error strings, and JSON response messages
- Translate internal/knowledge/indexer.go and tool.go: all log messages,
  error strings, tool descriptions, and result format strings
- Translate all 22 skills/*/SKILL.md files covering: SQL injection, XSS,
  CSRF, SSRF, XXE, command injection, deserialization, file upload,
  XPATH injection, LDAP injection, IDOR, API security, cloud security,
  container security, mobile app security, network penetration testing,
  vulnerability assessment, incident response, secure code review,
  security automation, business logic testing, security awareness training

Translation is now complete: 0 Chinese characters remaining across all
source files, docs, UI, tools, roles, and skills (excluding README_CN.md
which is intentionally the Chinese language version).

https://claude.ai/code/session_01FizP91UUqUukAtcgnVHTZy
Update test assertion strings to match English error messages now
output by the translated executor (unknown internal tool type,
result storage not initialized, page 1/).

https://claude.ai/code/session_01FizP91UUqUukAtcgnVHTZy
- agent.go: replace ideographic comma '、' list separator with ', '
  when building skills hint string
- builder.go: translate '取消' cancellation check string to 'cancel'
  to match English executor output

https://claude.ai/code/session_01FizP91UUqUukAtcgnVHTZy
Late-completing translation agent wrote a clean version of config.go;
no functional changes, 0 Chinese characters confirmed.

https://claude.ai/code/session_01FizP91UUqUukAtcgnVHTZy
- Add `parallelToolExecution`, `maxParallelTools`, and `toolRetryCount`
  fields to `AgentConfig` (config.go) and the `Agent` struct.
- Implement `executeToolCallsInParallel`: launches a goroutine per tool
  call protected by panic recovery; an optional semaphore limits
  concurrency when `max_parallel_tools > 0`; optional retry logic retries
  on transient hard errors up to `tool_retry_count` times.
- Replace the sequential tool-call loop in the agent loop with a
  conditional: ≥2 concurrent calls with `parallel_tool_execution: true`
  use the parallel path; single calls or disabled mode fall back to the
  existing sequential path. Results are always applied to `messages` in
  original index order to keep tool-call IDs consistent.
- Emit a `parallel: true` flag in progress events so the frontend can
  distinguish parallel from sequential execution batches.
- Enable parallel execution by default in `config.yaml`; add
  `max_parallel_tools` and `tool_retry_count` knobs.

https://claude.ai/code/session_01Rd7wB3N5NRdEt5FTWPbABd
feat(agent): add parallel tool execution with error handling
… streaming

Implements a Telegram bot via long-polling (no public IP required) that follows
the same architecture as the existing DingTalk and Lark integrations.

Key changes:
- internal/robot/telegram.go: new bot implementation using Telegram Bot API
  HTTP calls (no new dependencies). Features: long-polling with exponential
  reconnect backoff, multi-user sessions (AllowedUserIDs whitelist), group
  chat @ mention filtering, live progress streaming via throttled message
  edits, typing action indicator, automatic message splitting at 4096 chars.
- internal/robot/conn.go: adds StreamingMessageHandler interface so Telegram
  can receive agent tool-call progress events.
- internal/handler/robot.go: adds HandleMessageStream() satisfying the new
  interface; command dispatch is instant, agent messages use streaming.
- internal/handler/agent.go: adds ProcessMessageForRobotStream() with a
  notifyFn callback that fires on tool_call/tool_result/progress events.
- internal/config/config.go: adds RobotTelegramConfig (BotToken,
  AllowedUserIDs) and Telegram field to RobotsConfig.
- internal/app/app.go: wires telegramCancel into startRobotConnections(),
  RestartRobotConnections(), and Shutdown().
- web/templates/index.html + web/static/js/settings.js: Telegram section in
  Bot Settings (enable toggle, bot token, allowed user IDs field).
- config.yaml: telegram block with commented defaults.
- docs/robot_en.md: full Telegram setup guide (sections 3.3, 9, 12, 13).
- ROADMAP.md: marks Telegram as shipped; adds near-term Telegram items and
  a detailed Telegram roadmap table.

https://claude.ai/code/session_01EHroFMw7DJwUuszDzcFkpk
feat(telegram): add Telegram bot with multi-user support and progress…
Implements three core intelligence features ported from the Python
adaptive_agent framework into the CyberStrikeAI Go codebase.

### Persistent Memory (internal/agent/persistent_memory.go)
- SQLite-backed key-value store that survives conversation compression
  and server restarts (table: agent_memories)
- Five categories: credential, target, vulnerability, fact, note
- Four new MCP agent tools: store_memory, retrieve_memory,
  list_memories, delete_memory
- Memory context block auto-injected into every system prompt
- Configurable via agent.memory.{enabled, max_entries}

### Corpus-Level BM25 Okapi (internal/knowledge/bm25.go)
- Full BM25 Okapi implementation with real IDF:
  IDF(t) = log((N - n(t) + 0.5) / (n(t) + 0.5) + 1)
- BM25CorpusIndexer rebuilt from all knowledge chunks on startup
- BM25CorpusIndexer.ScoreText() replaces the previous per-document
  approximation in retriever.go
- Configurable k1, b, and delta (BM25+) parameters
- Score normalised via tanh for hybrid blending compatibility

### Time Awareness (internal/agent/time_awareness.go)
- Current date/time, timezone, and session age injected into every
  system prompt via <time_context> XML block
- New get_current_time MCP tool for on-demand queries
- Configurable timezone (IANA) via agent.time_awareness.{enabled, timezone}
- Defaults to UTC; backward-compatible (enabled by default for new installs)

### Wiring & Config
- config.go: TimeAwarenessConfig and MemoryConfig structs with defaults
- app.go: initialisation + tool registration before agent variable creation
  (avoids package-name shadowing)
- builtin/constants.go: 5 new tool name constants
- config.yaml: documented new sections with inline comments
- Version bumped to v1.4.0

### Docs
- README.md: new Persistent Memory and Time Awareness sections,
  updated Highlights, Knowledge Base BM25 description, and
  Configuration Reference
- ROADMAP.md: marked shipped items, added Memory UI and BM25
  persistence as near-term items

https://claude.ai/code/session_01Uie29eQJ2a6E2M4a3rm5vj
feat: port persistent memory, BM25 Okapi, and time awareness to Go
- Replace c.HTML() with os.ReadFile + strings.Replace for the index
  route to avoid html/template parser failures on SVG/JS content
- Cache index.html bytes at startup to avoid per-request disk reads
- Escape version string with html.EscapeString to prevent XSS
- Fix unescaped HTML entities in FOFA preset button onclick attribute
- Correct button label from "China" to "US" to match the actual query

https://claude.ai/code/session_01BVpJHrJk42QVqXGkRS3Zub
fix: resolve white screen caused by html/template parsing failure
…ed BM25

## Proactive RAG context injection (RAGContextInjector)

Introduce `internal/agent/rag_context.go` — a new `RAGContextInjector`
that automatically retrieves relevant knowledge-base content at the start
of every agent loop run and embeds it directly in the system prompt.

Previously the agent could only access knowledge reactively (by calling
`search_knowledge_base`).  With proactive injection the LLM immediately
receives the top-K relevant chunks for the user's query, giving it
instant context for tool selection and exploitation strategy before
issuing a single tool call.

Key design points:
- Uses a slightly relaxed similarity threshold (0.6) for wider coverage
- Groups and sorts chunks by knowledge-base item with hybrid-score ordering
- Respects a configurable character budget (default 6 000 chars) to avoid
  bloating the context window
- Wraps the block in `<rag_knowledge_context>` tags so the LLM treats it
  as structured context rather than conversation history
- Provides a lightweight `ToolGuidanceHint` alternative for when a full
  block is unnecessary
- Safe-null: returns an empty string when no retriever is configured or
  no relevant results are found

## Agent integration

- Add `ragInjector *RAGContextInjector` field to `Agent`
- Add `SetRAGInjector` method (mirrors `SetTimeAwareness` pattern)
- Inject the RAG context block at the tail of the system prompt inside
  `AgentLoopWithProgress`, where it appears *after* the main instructions
  so the LLM sees task-specific knowledge immediately

## BM25 tokenizer improvements

Replace the naive `strings.Fields(strings.ToLower(text))` tokeniser with
a security-domain-aware implementation:
- Strips non-alphanumeric characters (keeping `-` and `_`) before splitting
- Drops single-character tokens (near-universal noise)
- Filters 60+ common English stop words while intentionally preserving all
  short security abbreviations (xss, rce, sqli, lfi, ssrf, ssti, etc.)
- Applies a `securityAliases` map to normalise common variant spellings
  (e.g. "sqli" → "sqlinj", "sql-injection" → "sqlinj", "xss" / "cross-site"
  → "xss") so queries and documents share the same token space

This significantly improves recall for security-specific queries where
attackers routinely use abbreviated or hyphenated terminology.

## Memory compressor: preserve RAG citations through compression

Update `summaryPromptTemplate` to explicitly instruct the LLM to retain:
- Knowledge-base citations (category name + item title)
- Key technique/payload referenced from each retrieved item
- Tool selection rationale derived from retrieved knowledge

This ensures that when long conversations are compressed the agent does
not lose track of which knowledge items informed earlier decisions.

## App wiring

- Create and attach a `RAGContextInjector` to the agent immediately after
  `knowledgeRetriever` is initialised (both in the static startup path and
  in the dynamic `initializeKnowledge` closure).
- Uses library defaults (MaxChunks=8, MaxCharsTotal=6000, FetchTimeout=15s)
  which can be tuned via the `RAGContextConfig` struct.

https://claude.ai/code/session_01VL48xrshNruiUVsD1w3xAX
…ncement-hZiNc

feat: RAG-enhanced agent with deeper knowledge integration and improv…
- Add `UpdateByID` method to `PersistentMemory` for editing entries by UUID
- Create `MemoryHandler` with full CRUD + bulk-delete + stats API endpoints
  (GET/POST/PUT/DELETE /api/memories, GET /api/memories/stats)
- Wire handler into App struct and register routes under `/api/memories`;
  graceful degradation when memory is disabled (returns enabled:false)
- Add Memory page to the web UI (sidebar nav, page div, create/edit modal)
- Implement `memory.js`: list, search, category filters, stats strip, add/edit/
  delete with inline notifications; wired to the new REST API
- Update `router.js` to recognise the `memory` page and call `initMemoryPage()`
- Append Memory panel CSS to style.css (stats, toolbar, filter chips, entry
  cards, category badge colours, notification variants)
- Update ROADMAP.md: mark Memory UI panel and RAG-enhanced agent as shipped
- Add docs/memory_en.md documenting the feature and API endpoints

https://claude.ai/code/session_01MYgCeM1GLyM1p9tbbNJVL6
feat: add Memory UI panel for persistent memory management
- isRetryableError: fix "EOF" case mismatch with strings.ToLower (was never matching)
- getAvailableTools: propagate caller context instead of context.Background() so task cancellation correctly stops external MCP queries
- convertToOpenAIType: map "int"/"integer" to "integer" (not "number") to conform to JSON Schema/OpenAI spec
- attachmentContentToBytes: use MimeType field to determine encoding instead of opportunistic try-and-see base64 decode that could corrupt plain-text files
- summarizeChunk: fallback on empty summary now preserves all chunk messages instead of silently discarding all but the first
- countTotalTokens: include ToolCalls JSON when counting message tokens so compression triggers at the correct threshold
- AgentLoopWithProgress: remove duplicate comment
- AgentLoopStream: consolidate two separate role-config lookups into one, ensuring roleSkills is captured alongside roleTools
- saveAttachmentsToDateAndConversationDir: enforce 50 MB per-file size limit to prevent disk/memory exhaustion

https://claude.ai/code/session_017MtB57yFAgBeBhNyo7vfkp
fix: resolve 9 bugs across agent, memory compressor, and handler
Fix: logger shows empty error msg
…s, and plan tracking

- Add new MemoryEntry fields: Status, Entity, Confidence to PersistentMemory
- Add new memory categories: tool_run, discovery, plan (in addition to existing credential/target/vulnerability/fact/note)
- Add MemoryStatus type: active, confirmed, false_positive, disproven
- Add StoreFull() for rich metadata storage; SetStatus() to mark findings
- Add ListByEntity(), FindByStatus(), RetrieveAll(), ListAll() query methods
- Improved BuildContextBlock(): groups by category, separates dismissed findings,
  shows completed tool runs to prevent duplicate scans
- New update_memory_status MCP tool: allows model to mark memories confirmed, false_positive, or disproven
- Updated store_memory/retrieve_memory/list_memories tools with entity, confidence, include_dismissed params
- Updated store_memory enum to include all 8 categories
- Agent storeToolPoolMemory uses tool_run category; added classifyToolResult() heuristic
  that auto-detects credential/target/vulnerability/tool_run from content
- Enhanced system prompt: detailed memory category guidance, entity field usage,
  plan tracking with [DONE] prefix, workflow examples to prevent repeated tool runs
- Memory handler: GetMemoryStats includes new categories and by_status breakdown
- Memory handler: UpdateMemoryStatus endpoint (PATCH /api/memories/:id/status)
- HTTP route: PATCH /api/memories/:id/status mapped to UpdateMemoryStatus handler

https://claude.ai/code/session_01SULvgHvhvio2rd8iykBr4j
Improve entity memory: classification, status tracking, new categorie…
BadB and others added 2 commits March 8, 2026 18:23
- Enhance system prompt: require detailed thinking (100-300 words) before
  and after tool calls so the model always explains what it does and why
- Add resumption instructions: model checks persistent memory on resume,
  summarizes prior progress, and continues from where it left off
- Mandate plan memory tracking with [DONE] markers for interruption recovery
- Add model name auto-discovery from vLLM /v1/models endpoint
- Fix mid-conversation system messages rejected by Qwen3.5 chat template
- Add normalizeNonStandardToolCalls fallback for XML-in-content tool calls
- Make embedding chunk size configurable (derived from max_tokens setting)
- Fix tool registration loss on config hot-reload (memory/time tools)
- Add deferred/background tool execution with configurable wait timeout
- Add parallel_tool_calls to API requests when parallel execution enabled
- Remove temporary RAW response body debug logging
- Add role configuration templates and UI model discovery support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BadB and others added 12 commits March 9, 2026 11:29
…ions

Introduces a full File Manager subsystem with SQLite-backed storage,
HTTP API, MCP agent tools (register_file, update_file, list_files,
get_file, append_file_log, append_file_findings), frontend UI page,
dashboard KPI cards, settings integration, and auto-registration of
chat attachments. Supports file types: report, api_docs, project_file,
target_file, reversing, exfiltrated, other. Also adds Bitrix24 webhook
exploitation skill and updates role prompts for file-aware operations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tion

Registers 16 Cuttlefish MCP tools directly in the internal MCP server:
cuttlefish_launch, _stop, _status, _install_apk, _hotswap, _shell,
_push, _pull, _screenshot, _logcat, _frida_setup, _proxy, _install_cert,
_snapshot, _packages, _droidrun. Device preconfigured as Russian-owned
Xiaomi Redmi Note 12 Pro (MTS 250/01, Moscow TZ, ru-RU, Yandex DNS).
Includes setup script, Russian identity config, hot-swap/snapshot/API
control scripts, and DroidRun bridge for AI-driven UI automation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Registers SSLStrip as a security tool with full parameter definitions
(listen port, logfile, favicon spoofing, session kill, POST-only/all
traffic modes). Adds two knowledge base entries:
- Tools/sslstrip.md: tool reference with attack playbooks, secret
  extraction patterns, cert swap methods, HSTS bypass, Frida pinning
  bypass scripts, Cuttlefish integration workflow
- SSL-TLS MITM/HTTPS Interception and Certificate Attacks.md: category
  covering TLS stripping, rogue CA generation, cert pinning bypass,
  protocol downgrade attacks, and complete MITM attack chains

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add CuttlefishConfig struct (cvd_home, memory_mb, cpus, disk_mb,
  gpu_mode, auto_launch, russian_identity, webrtc_port, droidrun_path,
  droidrun_config, bridge_script) and SSLStripConfig struct (listen_port,
  log_dir, auto_proxy) to config.go
- Add documented config.yaml sections for cuttlefish and sslstrip under
  agent with inline comments explaining every field
- Update app.go to read from config structs (with env var and default
  fallbacks), pass config to registerCuttlefishTools, use config defaults
  for VM memory/cpus/gpu/disk, resolve DroidRun paths from config
- Add SSLStrip attack chain guidance to agent system prompt with full
  Cuttlefish+SSLStrip+DroidRun integration workflow
- Add Settings UI panels for Android VM (Cuttlefish) and SSLStrip with
  all configurable fields, checkboxes, and selects
- Wire settings.js load/save for all cuttlefish and sslstrip config fields
- All three subsystems (Cuttlefish, SSLStrip, DroidRun) now interact:
  config-driven, UI-configurable, agent-documented, cross-referenced

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements droidrun_proxy.py HTTP service that bridges LLM ↔ DroidRun ↔
Cuttlefish VM, providing LLM-friendly device interaction:
- Indexed UI elements (click by number, not pixel coordinates)
- Formatted state text the LLM can reason about directly
- Base64 PNG screenshots for Qwen3.5 VL vision analysis
- Action results with success/failure + updated state

12 new MCP tools registered: droidrun_connect, _state, _screenshot,
_click, _type, _swipe, _scroll, _button, _open_app, _list_apps,
_install, _wait. All documented in agent system prompt with usage
examples and interaction patterns. Config-driven via proxy_port,
proxy_auto_start, screenshot_dir, vision_enabled fields. Knowledge
base entry with comparison table, examples, and architecture diagram.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The cuttlefish_launch MCP tool now automatically opens the WebRTC display
in the user's browser so they can visually observe and interact with the
Android VM. Passes configurable WebRTC port through to the launch script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ghidra Headless MCP:
- Standalone external MCP server exposing ~212 Ghidra RE tools
- Launcher script (scripts/ghidra/start-ghidra-mcp.sh) auto-installs
  all deps: Ghidra, JDK, pyghidra, ghidra-headless-mcp
- Configured as stdio external MCP in config.yaml
- Knowledge base documentation with full tool reference and workflows
- Settings UI toggle and Ghidra path configuration
- Agent system prompt with detailed usage instructions

Android Reverse Engineering skill:
- 6-phase methodology: deps, decompile, structure, call flow, API extraction, dynamic
- Bundled scripts: decompile.sh (jadx/fernflower/both), find-api-calls.sh,
  check-deps.sh, install-dep.sh (from android-reverse-engineering-skill, Apache 2.0)
- Integrated with CyberStrikeAI tools: Ghidra, Cuttlefish VM, DroidRun, Frida, SSLStrip
- Combined static+dynamic workflow documentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Agent system prompt now instructs the model to:
- Plan before acting (store plan in persistent memory)
- Register all artifacts immediately via File Manager
- Log every step, store findings incrementally
- Persist key discoveries (creds, endpoints, crypto) in memory
- Always check previous work before starting on a target
- Store methodology notes for recall on similar future tasks

Android RE skill enhanced with Phase 7 (artifact management):
- File Manager integration for APK tracking and findings
- Persistent memory storage for cross-session recall
- Artifact checklist ensuring nothing is lost

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add pre-flight health checks at agent loop start: verifies LLM
  connectivity, external MCP server status, internal tools, key binaries
- Add /api/health endpoint (no auth) with MCP stats and tool counts
- Fix json.Marshal errors in MCP server: replace all _, _ patterns with
  marshalResult helper that logs and returns proper JSON-RPC error
- Fix json.NewEncoder write errors: now logged instead of silently dropped
- Add per-tool execution timeout (default 5min, configurable via tool_timeout)
- Fix summary generation: all 3 callOpenAI summary paths now log errors
  and send warning events to UI instead of silently failing
- Fix transient tool error retry path (connection refused, timeout, EOF)
- Add compression visibility: sends compression event when context is compressed
- Enhanced health_check UI: renders per-component status with icons,
  auto-expands on warnings/errors
- Add generic progress/warning message rendering in timeline
- Tool results show duration, failed tools auto-expand in timeline
- Warning events now displayed with auto-expand in monitor UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add sanitized config.example.yaml with all sensitive values replaced
  (API keys, passwords, FOFA credentials, internal IPs)
- Update .gitignore: add CyberStrikeAI binary, .gocache/, __pycache__/,
  nmap scan output, editor lock/swap files
- Remove stale files: bitrix_paths.txt, images/404StarLinkLogo.png

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a multi-engine information gathering system replacing the FOFA-only
recon page. Each engine gets a tab in the UI, settings fields for API
keys with auto-validation on blur, and a Go backend handler proxying
searches and normalizing results.

Backend:
- Add ZoomEyeConfig, ShodanConfig, CensysConfig to config.go
- New recon.go handler: search proxy + key validation for all 4 engines
- Wire /api/recon/{engine}/search and /validate routes in app.go
- Export engine API keys as env vars for tool subprocess use
- Extend GetConfigResponse/UpdateConfigRequest for new engines

Frontend:
- Recon page: tab-based UI (FOFA, ZoomEye, Shodan, Censys)
- Each engine panel: query form, presets, results table, CSV/JSON export
- Settings: key input fields for each engine with blur-to-validate
- Tab disabled state when API key not configured
- CSS: recon tabs, key status indicators

Config:
- config.example.yaml: add zoomeye, shodan, censys sections
- Remove hardcoded API key from zoomeye_search.yaml tool

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ShunMaster1405
Copy link

Summary
This PR translates all Chinese comments and documentation strings throughout the codebase to English, improving accessibility for international developers and maintaining consistency with the English-language codebase.

Key Changes
Code comments: Converted all Chinese inline comments to English across core packages:

internal/agent/ - Agent, memory compressor, and token counter comments
internal/handler/ - Handler classes and utility functions
internal/attackchain/ - Attack chain builder and related types
internal/database/ - Database models and operations
internal/knowledge/ - Knowledge base indexer and embedder
internal/app/ - Application initialization and configuration
cmd/ - Command-line tools and test servers
Documentation: Updated user-facing documentation:

docs/robot.md - Bot/chatbot guide translated to English with language selector
docs/robot_en.md - Updated language reference links
README.md - Updated language selector format
GitHub issue templates - Translated bug report and feature request templates
Configuration: Updated config.yaml comments to English

Type definitions: Translated struct field comments and interface documentation

Test files: Updated test helper function comments

Notable Details
All functional code logic remains unchanged; this is purely a documentation/comment update
Maintains consistency with existing English comments in the codebase
Improves code readability for non-Chinese speaking contributors
No changes to API contracts, configuration schemas, or runtime behavior

@ShunMaster1405
Copy link

Screenshot_20260309-155808_GitHub.png

@Ed1s0nZ Ed1s0nZ closed this Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants