Reference
chloejs/tools
What a model can be handed. Each one is bound by an agent.
What a model can be given, to the repo that installs chloe.
Everything here is a tool: a wrapper that lets a model reach work it could not have been told the rule for. Each one is a function an agent calls with its own folder, its own mailbox, its own From line, so nothing here names an agent or a person.
import { memory, selfImprovement, runScripts, readMail } from "chloejs/tools";The work itself is in chloe/do/, published from "chloejs", and a job calls it from a step rather than coming through here. If a job imports this file, something is in the wrong place.
Same rule as chloe/index.ts: adding a name here is publishing it.
listInmemoryreadInreadMailreadWebrunScriptrunScriptssearchInselfImprovementsendEmailwriteInwriteSkill
listInfunction
export function listIn({ root, what, id = "list_notes" }: Folder)A tool that lists what is in one folder, and nothing outside it.
memoryfunction
export function memory(options: Options = {}): (agent: { name: string }) => Toolslist_notes, read_notes, search_notes and write_notes, all inside one folder.
readInfunction
export function readIn({ root, what, id = "read_notes" }: Folder)A tool that reads one file inside that folder.
readMailfunction
export function readMail({ search, what, days = 7, id = "read_mail" }: Options)A tool that reads the mail the agent is bound to. The search is the binding's, and the model chooses only how far back and how many.
readWebfunction
export function readWeb()A tool that reads one public web page as plain text.
runScriptfunction
export function runScript(agent: string)A tool that runs one file from that agent's own scripts/ folder.
runScriptsfunction
export function runScripts(): (agent: { name: string }) => Toolsrun_script: the agent runs any file in its scripts/ folder, and nothing else. Refused as the agent loads when that folder has nothing in it.
searchInfunction
export function searchIn({ root, what, id = "search_notes" }: Folder)A tool that searches the text of the files in that folder.
selfImprovementfunction
export function selfImprovement(): (agent: { name: string }) => Toolswrite_skill: the agent rewrites its own skills, and every write is a commit.
sendEmailfunction
export function sendEmail({ when, ...address }: Sender)A tool that sends mail from the address the agent was given, to the address it was given.
writeInfunction
export function writeIn({ root, what, id = "write_notes", commit = false }: Folder & { commit?: boolean })commit makes every write a git commit, for a folder that is a repo.
writeSkillfunction
export function writeSkill(agent: string)A tool that rewrites one of the agent's own skills. Every write is a commit.