refactor: rombak jadi full CLI/TUI only — hapus semua interface server (api/ws/grpc/web/daemon) + wire TUI ke agent beneran
- Hapus total interfaces: api (REST), ws (WebSocket), grpc, web, daemon (IPC) - Hapus infra server-only yang jadi dead code: infrastructure/ipc + seluruh stack auth (domain/auth, application/auth, persistence/iam, infrastructure/auth jwt/password/oauth_loopback) - TUI (OpenTUI) jadi interface utama: wire ke runSingleProcess() real runtime, ganti mock '(no LLM configured)' dengan turnService.runTurn asli + streaming stream_token/reasoning/tool_result/system_note/error ke transcript - Tampilkan model asli di header (mis. claude-opus-5), abort turn via Ctrl+C - CLI jadi mode headless tambahan: zesdex --headless '<prompt>' one-shot turn - Bersihkan package.json (script tui/headless), tsconfig paths, docker-compose, AGENTS.md; hapus StartOAuth/login stub - verified: tsc 0 err, 70 test pass, build dist/zesdex; headless 'pong' real; TUI interactive render + real turn 'say pong in one word' -> assistant 'pong'
This commit is contained in:
1 parent
34322e492a
commit
7e6ed34f0d
68 files changed
+250
-3661
No files matched your search
@@ -1,38 +1,55 @@
|
||||
# AGENTS.md
|
||||
|
||||
This file provides guidance to Kilo when working with code in the zesdex repository.
|
||||
This file provides guidance to AI agents (Kilo / Hermes) working in the zesdex repository.
|
||||
|
||||
## Overview
|
||||
|
||||
Zesdex is an **AI-native autonomous coding agent**, implemented in **TypeScript / Bun**.
|
||||
It was rebuilt to be a **pure CLI/TUI tool** — there are **no network server interfaces**
|
||||
(REST API / WebSocket / gRPC / web / daemon were all removed). The only two entry points:
|
||||
|
||||
- `zesdex` — interactive **OpenTUI** (primary interface, wired to the real agent).
|
||||
- `zesdex --headless "<prompt>"` — one-shot non-interactive turn (headless mode).
|
||||
|
||||
## Best Practice Conventions
|
||||
|
||||
Zesdex follows Kana Engineering Best Practices:
|
||||
1. **Clean Architecture** — strict `domain` / `application` / `infrastructure` layering
|
||||
under `src/`, with thin `interfaces/` for the TUI + CLI.
|
||||
- `domain` has zero I/O and zero framework dependencies.
|
||||
- `application` depends only on `domain` (ports + turn service).
|
||||
- `infrastructure` implements domain ports (LLM client, tool executor, file repos).
|
||||
- DTOs/value objects cross layer boundaries, not entities.
|
||||
|
||||
1. **Clean Architecture** — Strict domain/application/infrastructure/presentation layering.
|
||||
- Domain has ZERO framework dependencies.
|
||||
- Application depends only on domain.
|
||||
- Infrastructure implements domain traits.
|
||||
- DTOs cross layer boundaries, NOT entities.
|
||||
2. **Clean Code** — functions under ~40 lines, one level of abstraction per function,
|
||||
descriptive names, no flag arguments, no commented-out dead code.
|
||||
|
||||
2. **Clean Code** — Functions under ~40 lines, one level of abstraction per function, descriptive names, no flag arguments, no commented-out code.
|
||||
3. **Documentation** — every exported `function`, `class`, `interface`, and `type`
|
||||
needs a `/** */` doc comment explaining what, flow, why, and return value.
|
||||
|
||||
3. **Documentation** — Every pub fn, struct, enum, and trait needs a doc comment (///) explaining what, flow, why, and return value.
|
||||
4. **Commit Convention** — Conventional Commits in Bahasa Indonesia:
|
||||
`feat(scope):`, `fix(scope):`, `chore:`, `docs:`.
|
||||
|
||||
4. **Commit Convention** — Conventional Commits in Bahasa Indonesia: `feat(scope):`, `fix(scope):`, `chore:`, `docs:`.
|
||||
5. **Error Handling** — throw `Error` with clear messages; the turn loop wraps LLM
|
||||
errors and recovers. Log with `console.*` (redirected to `~/.local/share/zesdex/zesdex.log`).
|
||||
|
||||
5. **Error Handling** — `anyhow::Result` and `anyhow::bail!` throughout. Log with `tracing` (never stderr).
|
||||
6. **Testing** — Bun tests (`bun test`) using `describe/test/expect`. Tests are
|
||||
F.I.R.S.T. Logic-pure modules (TUI state/action/command/controller) are unit-tested.
|
||||
|
||||
6. **Testing** — `#[cfg(test)] mod tests` blocks inline in production files. Tests are F.I.R.S.T. (Fast, Independent, Repeatable, Self-validating, Timely).
|
||||
7. **No Compiler Bypasses** — no `@ts-ignore` / `any` where a real type exists.
|
||||
|
||||
7. **No Compiler Bypasses** — Never use `#[allow(...)]`, `#[expect(...)]`, or `#[allow(dead_code)]`. Fix the underlying code.
|
||||
8. **Boy Scout Rule** — leave every module cleaner than you found it.
|
||||
|
||||
8. **Boy Scout Rule** — Leave every module cleaner than you found it.
|
||||
## Stack
|
||||
|
||||
## Available Agents
|
||||
- Bun 1.3.14 (packageManager pinned in `package.json`).
|
||||
- TypeScript strict mode, `tsconfig.json` uses `paths` aliases (`@zesdex/*`) →
|
||||
`src/*`. `bun build ... --compile` bundles into a single `dist/zesdex` binary.
|
||||
|
||||
- `@rust-engineer` — Rust clean architecture specialist (subagent).
|
||||
- `@code-reviewer` — Code review specialist (subagent).
|
||||
## Commands
|
||||
|
||||
## Available Commands
|
||||
|
||||
- `/check` — Run cargo check, clippy, and tests.
|
||||
- `/audit` — Code quality audit against clean-architecture best practices.
|
||||
- `/doc` — Generate or update doc comments.
|
||||
- `bun run check` — `tsc --noEmit` typecheck.
|
||||
- `bun run test` — run all Bun tests.
|
||||
- `bun run build` — compile `dist/zesdex` binary.
|
||||
- `bun run tui` — run the interactive TUI.
|
||||
- `bun run headless "<prompt>"` — one-shot agent turn.
|
||||
- `bun run bootstrap` — seed default settings/app_config.
|
||||
Reference in new issue
Block a user