diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-07 14:29:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-07 14:29:35 +0300 |
| commit | 23482b5d8da5c67da1fc501ddbafdd123be3972c (patch) | |
| tree | 452dc7c418055ebb79a88a303e50d2dbc1877f09 /docs/source-structure.md | |
| parent | 76f388f9759cdc15cb1eba985cd87cde1906208b (diff) | |
feat: rename hexai-action -> hexai-tmux-action; remove --tmux/--no-tmux; tmux-only flow; update docs and Magefile
Diffstat (limited to 'docs/source-structure.md')
| -rw-r--r-- | docs/source-structure.md | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/docs/source-structure.md b/docs/source-structure.md deleted file mode 100644 index 0c7f56f..0000000 --- a/docs/source-structure.md +++ /dev/null @@ -1,79 +0,0 @@ -# Source code structure - -This document provides a high‑level map of the Hexai source layout and how the -main packages relate to each other. - -## Diagram - -```mermaid -graph TD - %% Entrypoints - A[cmd/hexai\nCLI entrypoint] --> B[internal/hexaicli\nCLI runner] - C[cmd/hexai-lsp\nLSP entrypoint] --> D[internal/hexailsp\nLSP runner] - - %% Shared/internal packages - subgraph internal/ - I[appconfig\nLoad config from file/env] - L[llm\nClient + providers] - G[logging\nBound logger + helpers] - S[lsp\nJSON-RPC, server, handlers] - end - - %% Relationships - B --> I - B --> L - B --> G - - D --> I - D --> L - D --> G - D --> S - - S --> L - S --> G - - %% LLM providers - subgraph internal/llm - P1[openai.go] - P2[ollama.go] - P3[copilot.go] - end - L --> P1 - L --> P2 - L --> P3 - - %% Version info - V[internal/version.go\nVersion string] --> A - V --> C -``` - -## Module overview - -- cmd/hexai: CLI binary that parses flags, prints version via `internal.Version`, - and delegates to `internal/hexaicli.Run`. -- cmd/hexai-lsp: LSP server binary that parses flags, prints version, and calls - `internal/hexailsp.Run` (stdio JSON‑RPC server). -- internal/hexaicli: CLI flow — reads stdin/args, loads config, builds an LLM - client, constructs messages, and runs a single chat request (streaming when - supported). -- internal/hexailsp: LSP orchestration — binds logging, loads config, builds the - LLM client, constructs `internal/lsp.ServerOptions`, and runs the server. -- internal/lsp: Minimal LSP over stdio — document store, JSON‑RPC handlers - (initialize, completion, code action, etc.), context building, and a small - completion cache. -- internal/llm: Provider‑agnostic client interface plus concrete providers for - OpenAI, GitHub Copilot, and Ollama, including streaming support where - available. -- internal/appconfig: Loads user configuration from file and environment, shared - by both CLI and LSP paths. -- internal/logging: Central logger binding and small helpers for consistent, - readable logs and chat summaries. -- internal/version.go: Single place for the version string used by both - binaries. - -## Typical flows - -- CLI: `cmd/hexai` → `internal/hexaicli` → `internal/appconfig` → `internal/llm` - (providers) → print output and a short summary line. -- LSP: `cmd/hexai-lsp` → `internal/hexailsp` → `internal/lsp.Server` → - request handlers → `internal/llm` for completions/actions. |
