UNPKG

@deep-assistant/agent

Version:

A minimal, public domain AI CLI agent compatible with OpenCode's JSON interface. Bun-only runtime.

40 lines (37 loc) 1.1 kB
import z from "zod" import { Tool } from "./tool" import DESCRIPTION_WRITE from "./todowrite.txt" import { Todo } from "../session/todo" export const TodoWriteTool = Tool.define("todowrite", { description: DESCRIPTION_WRITE, parameters: z.object({ todos: z.array(z.object(Todo.Info.shape)).describe("The updated todo list"), }), async execute(params, opts) { await Todo.update({ sessionID: opts.sessionID, todos: params.todos, }) return { title: `${params.todos.filter((x) => x.status !== "completed").length} todos`, output: JSON.stringify(params.todos, null, 2), metadata: { todos: params.todos, }, } }, }) export const TodoReadTool = Tool.define("todoread", { description: "Use this tool to read your todo list", parameters: z.object({}), async execute(_params, opts) { const todos = await Todo.get(opts.sessionID) return { title: `${todos.filter((x) => x.status !== "completed").length} todos`, metadata: { todos, }, output: JSON.stringify(todos, null, 2), } }, })