{"version":"2.1.269","anchor":"tool-architecture-rework-many-built-in-tools-moved-to-a-cre","canonical_anchor":"tool-architecture-rework-many-built-in-tools-moved-to-a-cre","heading":"Tool architecture rework: many built-in tools moved to a create()\/runEngine factory pattern","tier":"internal","area":"Tool Architecture","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/tool-architecture-rework-many-built-in-tools-moved-to-a-cre","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### Tool architecture rework: many built-in tools moved to a create()\/runEngine factory pattern\n\nREPL, SendMessage, TaskCreate, TaskUpdate, feedback-draft, Workflow and Bash tools rebuilt on a shared factory pattern\n\n**What**\n\nSeveral built-in tools, including the REPL (interactive code execution), `SendMessage`, `TaskCreate`, `TaskUpdate`, the feedback-draft tool, `Workflow`, and `Bash`, were restructured from separately defined call\/checkPermissions\/validateInput methods into a shared `create()` factory function. This factory produces those methods using a common context object holding things like the session, storage, credentials, and permissions. For the REPL and Workflow tools specifically, execution now goes through an added indirection layer called `call.runEngine`.\n\n**Why**\n\nThis is an internal architectural change that consolidates how these tools are built and run; it is not expected to change what these tools do from a user's perspective, but it centralizes shared plumbing across them.\n\n- Area: Tool Architecture\n- Tier: Under the hood\n- Useful: 3\/5\n- Signal: 3\/5"}