Skip to content

Commit 8dd2a47

Browse files
hallelx2claude
andcommitted
docs: correct README layout + ROADMAP after llmgate extraction
README: - Project layout now reflects the actual tree (pkg/* rather than internal/*, which only holds api/ today). - Parser link points to pkg/parser/ (was internal/parser/, which never existed). - Add a short note that LLM provider access lives in the standalone llmgate module. ROADMAP: - Phase 2 "Live LLM clients" consolidated: Anthropic / OpenAI / Gemini are all live via llmgate, not a bespoke HTTP client. Retries and cost tracking moved to llmgate middleware. CountTokens and streaming are tracked in the llmgate roadmap rather than duplicated here. - Phase 2 now reads as "shipped, minus benchmarks" — matches reality. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 9bdb4fc commit 8dd2a47

2 files changed

Lines changed: 20 additions & 12 deletions

File tree

README.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ Or via environment variables: `VLE_TLS_CERT_FILE`, `VLE_TLS_KEY_FILE`.
225225
| PDF | `ledongthuc/pdf` | Font-size heuristic recovers headings from unstructured PDFs |
226226
| Text | stdlib | Single-section fallback |
227227

228-
New parsers drop in behind a one-method `Parser` interface — see [`internal/parser/`](internal/parser/).
228+
New parsers drop in behind a one-method `Parser` interface — see [`pkg/parser/`](pkg/parser/).
229229

230230
## Features
231231

@@ -264,17 +264,24 @@ Track progress in [GitHub Issues](https://github.com/hallelx2/vectorless-engine/
264264
```
265265
cmd/engine/ # main binary entry point
266266
internal/
267-
api/ # chi HTTP router, v1 routes
267+
api/ # chi HTTP router, v1 routes (private to the binary)
268+
pkg/
268269
config/ # YAML + env config with validation
269-
llm/ # provider-agnostic LLM client (Anthropic/OpenAI/Gemini)
270-
queue/ # Queue interface + QStash/River/Asynq drivers
270+
db/ # pgx pool, embedded migrations, CRUD helpers
271+
ingest/ # parse → persist → summarize pipeline
272+
parser/ # Parser interface + MD / HTML / DOCX / PDF / TXT drivers
273+
queue/ # Queue interface + QStash / River / Asynq drivers
271274
retrieval/ # Strategy interface + single-pass / chunked-tree
272275
storage/ # Storage interface + local / S3 drivers
273276
tree/ # core tree / section data model
274-
pkg/ # (reserved for public Go types — stable surface)
275277
docs/ # API spec, architecture notes, images
276278
```
277279
280+
LLM provider access lives in a separate module, [`llmgate`](https://github.com/hallelx2/llmgate),
281+
which the engine imports as `github.com/hallelx2/llmgate`. That's
282+
where Anthropic / OpenAI / Gemini clients, retry / budget / cache
283+
middleware, and the cost table live.
284+
278285
## Contributing
279286
280287
Contributions are very welcome — especially parsers, benchmarks, and new LLM / storage drivers. Please open an issue first for anything non-trivial so we can align on the design.

ROADMAP.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,17 @@ One-line: raw bytes → queryable, persisted tree.
7979

8080
---
8181

82-
## Phase 2 — retrieval *(in progress)*
82+
## Phase 2 — retrieval *(shipped, minus benchmarks)*
8383

8484
One-line: turn `POST /v1/query` from a 501 into the feature the engine exists for.
8585

86-
- [~] **Live LLM clients** (swap out the stubs)
87-
- [x] Anthropic (messages API via direct HTTP — no SDK dep, prompt caching via `cache_control` when `EnablePromptCache` is on, exp-backoff retries on 429/5xx, `/v1/messages/count_tokens` for real counts with a `len/4` fallback)
88-
- [ ] OpenAI (responses or chat completions, structured outputs for section-ID selection)
89-
- [ ] Gemini (generateContent, long-context mode for whole-tree single-pass)
90-
- [x] Real token counting for Anthropic (count_tokens endpoint)
91-
- [x] Retry with exponential backoff + jitter on 429 / 5xx (Anthropic)
86+
- [x] **Live LLM clients** — extracted to [`llmgate`](https://github.com/hallelx2/llmgate)
87+
- [x] Anthropic, OpenAI, Gemini all live via langchaingo under a shared `llmgate.Client`
88+
- [x] Provider switching is pure config (`llm.driver: anthropic | openai | gemini`)
89+
- [x] Retry with exponential backoff + jitter on 429 / 5xx (`llmgate/middleware/retry`)
90+
- [x] Cost tracking per call (`Usage.CostUSD` populated from a static price table)
91+
- [x] Error classification shared across providers (`llmgate.Classify`)
92+
- [ ] Real `CountTokens` via provider endpoints — currently heuristic in llmgate; tracked in the llmgate roadmap, not a blocker here
9293
- [ ] Streaming responses (SSE) — deferred to Phase 4
9394

9495
- [x] **Retrieval strategies**

0 commit comments

Comments
 (0)