@mastra/core
Version:
1 lines • 2.74 kB
Source Map (JSON)
{"version":3,"file":"signals-DGZ0mRcR.cjs","names":["SignalProvider","#processor","TaskStateProcessor","taskWriteTool","taskUpdateTool","taskCompleteTool","taskCheckTool"],"sources":["../src/signals/task-signal-provider.ts"],"sourcesContent":["import type { InputProcessorOrWorkflow } from '../processors';\nimport { TaskStateProcessor } from '../tools/builtin/task-state-processor';\nimport { taskCheckTool, taskCompleteTool, taskUpdateTool, taskWriteTool } from '../tools/builtin/task-tools';\n\nimport { SignalProvider } from './signal-provider';\n\n/**\n * Bundles the built-in task tools and the {@link TaskStateProcessor} behind a\n * single agent registration.\n *\n * The task list is held in the thread-scoped `tasks` storage domain (the\n * TaskStore) and projected onto the agent state-signal lane by\n * `TaskStateProcessor`. Wiring task tracking by hand means registering all four\n * task tools **and** the processor, and keeping them in sync — forget the\n * processor and the tools work for a single turn but silently lose the list\n * across turns. This provider wires both together so that cannot happen.\n *\n * Task tracking requires a memory-backed thread (`threadId` + `resourceId`) and\n * a Mastra `storage` instance (the `tasks` domain is always wired in-memory by\n * default). Without memory the tools no-op and report that task tracking\n * requires agent memory.\n *\n * @example\n * ```ts\n * import { Agent } from '@mastra/core/agent';\n * import { TaskSignalProvider } from '@mastra/core/signals';\n *\n * const agent = new Agent({\n * name: 'coder',\n * instructions: '...',\n * model,\n * memory,\n * signals: [new TaskSignalProvider()],\n * });\n * ```\n *\n * The Agent automatically merges the tools into its toolset and registers the\n * processor on its input-processor chain (which propagates the Mastra instance\n * so the processor can resolve the TaskStore).\n *\n * @experimental Agent signals are experimental and may change in a future release.\n */\nexport class TaskSignalProvider extends SignalProvider<'task-signals'> {\n readonly id = 'task-signals';\n\n readonly #processor = new TaskStateProcessor();\n\n getInputProcessors(): InputProcessorOrWorkflow[] {\n return [this.#processor];\n }\n\n getTools() {\n return {\n task_write: taskWriteTool,\n task_update: taskUpdateTool,\n task_complete: taskCompleteTool,\n task_check: taskCheckTool,\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,IAAa,qBAAb,cAAwCA,wBAAAA,eAA+B;CACrE,KAAc;CAEd,aAAsB,IAAIE,6BAAAA,mBAAmB;CAE7C,qBAAiD;EAC/C,OAAO,CAAC,KAAKD,UAAU;CACzB;CAEA,WAAW;EACT,OAAO;GACL,YAAYE,6BAAAA;GACZ,aAAaC,6BAAAA;GACb,eAAeC,6BAAAA;GACf,YAAYC,6BAAAA;EACd;CACF;AACF"}