Files
LexAI/docs/MEMORY.md

48 lines
1.9 KiB
Markdown

# Project memory
> Curated long-term knowledge. **Hard cap: 60 lines of entries.**
## Verified facts
- LexAI monorepo: `packages/chrome` (WXT), `packages/vscode`, `packages/cli`; shared `src/lib`.
- Portable core: `providers.ts`, `actions.ts`, `types.ts`. Chrome-only: `crypto.ts`, `messaging.ts`.
- Providers: OpenAI, Anthropic, Groq, OpenRouter — `callProvider` / `PROVIDER_SPECS`.
- VS Code: Secret Storage; Code Assist; prefs `lexai.*`.
- CLI: `lexai prompt`; `LEXAI_API_KEY`; optional `~/.lexai/config.json` (no apiKey).
- Chrome entrypoints: `packages/chrome/entrypoints/`; build → `packages/chrome/.output/chrome-mv3/`.
- Selection minimum: `MIN_SELECTION_LENGTH` (10). Chrome `onMessage` must `return true`; snapshot before `await`.
## Conventions
- Style Chrome UI with inline styles (Tailwind not wired).
- Prefer encrypted Chrome key path; keep plaintext `apiKey` fallback until migration.
- VS Code / CLI must not import `@lib/crypto` or `@lib/messaging`.
- Root scripts: `install:all`, `chrome:*`, `vscode:*`, `cli:*`.
## Environment quirks
- Node 22 pinned in CI; `npx wxt prepare` required before Chrome typecheck on fresh clone.
- PowerShell may not accept `&&` — chain with `; if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }`.
## Key paths and entry points
| What | Where |
| --- | --- |
| Chrome entrypoints | `packages/chrome/entrypoints/` |
| Shared lib | `src/lib/` |
| VS Code | `packages/vscode/` |
| CLI | `packages/cli/` |
| OSS meta | root `README.md`, `LICENSE`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md` |
| Issue/PR templates | `.gitea/ISSUE_TEMPLATE/`, `.gitea/PULL_REQUEST_TEMPLATE.md` |
| CI workflows | `.gitea/workflows/ci-{chrome,vscode,cli}.yml` (no deploy/release yet) |
## Expiring notes
- _None yet._
## Consolidation log
| Date | Action | Reason |
| --- | --- | --- |
| 2026-08-13 | Seeded after VS Code v1 | `/project-init` stubs + port |