feat: claude one-shot port from nanobot python codebase (v0.1.4.post4)
This commit is contained in:
49
memory-bank/progress.md
Normal file
49
memory-bank/progress.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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`
|
||||
|
||||
### 🔄 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`.
|
||||
Reference in New Issue
Block a user