51 lines
2.0 KiB
Markdown
51 lines
2.0 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
|
|
|
|
### ⏳ Pending
|
|
- Runtime smoke test: `bun run start --help`
|
|
- Integration test with a real Mattermost server
|
|
- Sample `~/.nanobot/config.json` documentation
|
|
|
|
## 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`.
|