Files
nanobot-ts/memory-bank/progress.md
2026-03-13 17:45:21 -06:00

60 lines
2.3 KiB
Markdown

# Progress
## Milestones
### ✅ Done
- Repo created at `/home/sebby/repos/nanobot-ts`
- Tooling configured: `oxfmt` (single quotes), `oxlint`, `@types/bun`, strict tsconfig
- All dependencies installed
- `src/` directory structure scaffolded
- Memory bank initialized
- All source files written (first pass):
- `src/config/types.ts` + `src/config/loader.ts`
- `src/bus/types.ts` + `src/bus/queue.ts`
- `src/provider/types.ts` + `src/provider/index.ts`
- `src/session/types.ts` + `src/session/manager.ts`
- `src/agent/tools/base.ts` (+ `strArg` helper)
- `src/agent/tools/filesystem.ts`
- `src/agent/tools/shell.ts`
- `src/agent/tools/web.ts`
- `src/agent/tools/message.ts`
- `src/agent/tools/spawn.ts` + `src/agent/subagent.ts`
- `src/agent/tools/cron.ts`
- `src/cron/types.ts` + `src/cron/service.ts`
- `src/heartbeat/service.ts`
- `src/agent/memory.ts`
- `src/agent/skills.ts`
- `src/agent/context.ts`
- `src/agent/loop.ts`
- `src/channels/base.ts` + `src/channels/mattermost.ts`
- `src/channels/manager.ts`
- `src/cli/commands.ts`
- `index.ts`
- Templates and skills copied from Python repo
- **Full typecheck pass**: `tsc --noEmit` → 0 errors
- **Full lint pass**: `oxlint` → 0 errors, 0 warnings
- `package.json` scripts added: `start`, `dev`, `typecheck`
- **Docs created**: `/docs/PRD.md`, `Architecture.md`, `API.md`, `Discoveries.md`
### 🔄 In Progress
- Nothing
### ✅ Done
- Created src/workspace.ts with ensureWorkspace(), syncTemplates(), checkWorkspaceEmpty()
- Created src/cli/onboard.ts command with path argument
- Updated src/cli/commands.ts to use ensureWorkspace() helper
- Typecheck: 0 errors
- Lint: 0 warnings
### 🔄 In Progress
- Testing onboard command
### ⏳ Pending
- Runtime smoke test: `bun run nanobot --help`
- Integration test with a real Mattermost server
## Known Issues / Risks
- `ollama-ai-provider` v1.2.0 returns `LanguageModelV1` (not V2/V3 as expected by AI SDK v6) — cast used at call site. Works at runtime.
- Zod v4 `.default()` on nested object schemas requires providing full output type as factory function return value (not just `{}`). All instances fixed.
- AI SDK v6 changed `maxSteps``stopWhen: stepCountIs(n)` and `usage.promptTokens/completionTokens``usage.inputTokens/outputTokens`.