summaryrefslogtreecommitdiff
path: root/docs/source-structure.md
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-07 14:29:35 +0300
committerPaul Buetow <paul@buetow.org>2025-09-07 14:29:35 +0300
commit23482b5d8da5c67da1fc501ddbafdd123be3972c (patch)
tree452dc7c418055ebb79a88a303e50d2dbc1877f09 /docs/source-structure.md
parent76f388f9759cdc15cb1eba985cd87cde1906208b (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.md79
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.