@nodetool-ai/agents 0.7.0-rc.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dist/agent-executor.d.ts +62 -0
  2. package/dist/agent-executor.d.ts.map +1 -0
  3. package/dist/agent-executor.js +324 -0
  4. package/dist/agent-executor.js.map +1 -0
  5. package/dist/agent-step-executor.d.ts +28 -0
  6. package/dist/agent-step-executor.d.ts.map +1 -0
  7. package/dist/agent-step-executor.js +99 -0
  8. package/dist/agent-step-executor.js.map +1 -0
  9. package/dist/agent-workflow-runner.d.ts +31 -0
  10. package/dist/agent-workflow-runner.d.ts.map +1 -0
  11. package/dist/agent-workflow-runner.js +124 -0
  12. package/dist/agent-workflow-runner.js.map +1 -0
  13. package/dist/agent.d.ts +115 -0
  14. package/dist/agent.d.ts.map +1 -0
  15. package/dist/agent.js +587 -0
  16. package/dist/agent.js.map +1 -0
  17. package/dist/base-agent.d.ts +42 -0
  18. package/dist/base-agent.d.ts.map +1 -0
  19. package/dist/base-agent.js +29 -0
  20. package/dist/base-agent.js.map +1 -0
  21. package/dist/constants.d.ts +8 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js +8 -0
  24. package/dist/constants.js.map +1 -0
  25. package/dist/graph-builder.d.ts +49 -0
  26. package/dist/graph-builder.d.ts.map +1 -0
  27. package/dist/graph-builder.js +206 -0
  28. package/dist/graph-builder.js.map +1 -0
  29. package/dist/graph-planner.d.ts +56 -0
  30. package/dist/graph-planner.d.ts.map +1 -0
  31. package/dist/graph-planner.js +311 -0
  32. package/dist/graph-planner.js.map +1 -0
  33. package/dist/index.d.ts +79 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +81 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/js-sandbox.d.ts +84 -0
  38. package/dist/js-sandbox.d.ts.map +1 -0
  39. package/dist/js-sandbox.js +654 -0
  40. package/dist/js-sandbox.js.map +1 -0
  41. package/dist/multi-mode-agent.d.ts +86 -0
  42. package/dist/multi-mode-agent.d.ts.map +1 -0
  43. package/dist/multi-mode-agent.js +476 -0
  44. package/dist/multi-mode-agent.js.map +1 -0
  45. package/dist/output-format.d.ts +10 -0
  46. package/dist/output-format.d.ts.map +1 -0
  47. package/dist/output-format.js +17 -0
  48. package/dist/output-format.js.map +1 -0
  49. package/dist/parallel-task-executor.d.ts +87 -0
  50. package/dist/parallel-task-executor.d.ts.map +1 -0
  51. package/dist/parallel-task-executor.js +332 -0
  52. package/dist/parallel-task-executor.js.map +1 -0
  53. package/dist/prompts/graph-planner-prompt.d.ts +48 -0
  54. package/dist/prompts/graph-planner-prompt.d.ts.map +1 -0
  55. package/dist/prompts/graph-planner-prompt.js +180 -0
  56. package/dist/prompts/graph-planner-prompt.js.map +1 -0
  57. package/dist/reject-agentic-provider.d.ts +21 -0
  58. package/dist/reject-agentic-provider.d.ts.map +1 -0
  59. package/dist/reject-agentic-provider.js +32 -0
  60. package/dist/reject-agentic-provider.js.map +1 -0
  61. package/dist/simple-agent.d.ts +29 -0
  62. package/dist/simple-agent.d.ts.map +1 -0
  63. package/dist/simple-agent.js +54 -0
  64. package/dist/simple-agent.js.map +1 -0
  65. package/dist/step-executor.d.ts +162 -0
  66. package/dist/step-executor.d.ts.map +1 -0
  67. package/dist/step-executor.js +1114 -0
  68. package/dist/step-executor.js.map +1 -0
  69. package/dist/sub-agent-planner.d.ts +33 -0
  70. package/dist/sub-agent-planner.d.ts.map +1 -0
  71. package/dist/sub-agent-planner.js +203 -0
  72. package/dist/sub-agent-planner.js.map +1 -0
  73. package/dist/task-executor.d.ts +89 -0
  74. package/dist/task-executor.d.ts.map +1 -0
  75. package/dist/task-executor.js +359 -0
  76. package/dist/task-executor.js.map +1 -0
  77. package/dist/task-planner.d.ts +44 -0
  78. package/dist/task-planner.d.ts.map +1 -0
  79. package/dist/task-planner.js +532 -0
  80. package/dist/task-planner.js.map +1 -0
  81. package/dist/team/db-task-board.d.ts +54 -0
  82. package/dist/team/db-task-board.d.ts.map +1 -0
  83. package/dist/team/db-task-board.js +361 -0
  84. package/dist/team/db-task-board.js.map +1 -0
  85. package/dist/team/edge-message-bus.d.ts +51 -0
  86. package/dist/team/edge-message-bus.d.ts.map +1 -0
  87. package/dist/team/edge-message-bus.js +169 -0
  88. package/dist/team/edge-message-bus.js.map +1 -0
  89. package/dist/team/edge-task-board.d.ts +77 -0
  90. package/dist/team/edge-task-board.d.ts.map +1 -0
  91. package/dist/team/edge-task-board.js +140 -0
  92. package/dist/team/edge-task-board.js.map +1 -0
  93. package/dist/team/index.d.ts +16 -0
  94. package/dist/team/index.d.ts.map +1 -0
  95. package/dist/team/index.js +17 -0
  96. package/dist/team/index.js.map +1 -0
  97. package/dist/team/message-bus.d.ts +58 -0
  98. package/dist/team/message-bus.d.ts.map +1 -0
  99. package/dist/team/message-bus.js +151 -0
  100. package/dist/team/message-bus.js.map +1 -0
  101. package/dist/team/task-board.d.ts +106 -0
  102. package/dist/team/task-board.d.ts.map +1 -0
  103. package/dist/team/task-board.js +370 -0
  104. package/dist/team/task-board.js.map +1 -0
  105. package/dist/team/team-executor.d.ts +72 -0
  106. package/dist/team/team-executor.d.ts.map +1 -0
  107. package/dist/team/team-executor.js +466 -0
  108. package/dist/team/team-executor.js.map +1 -0
  109. package/dist/team/team-tools.d.ts +252 -0
  110. package/dist/team/team-tools.d.ts.map +1 -0
  111. package/dist/team/team-tools.js +412 -0
  112. package/dist/team/team-tools.js.map +1 -0
  113. package/dist/team/types.d.ts +198 -0
  114. package/dist/team/types.d.ts.map +1 -0
  115. package/dist/team/types.js +8 -0
  116. package/dist/team/types.js.map +1 -0
  117. package/dist/tools/add-edge-tool.d.ts +18 -0
  118. package/dist/tools/add-edge-tool.d.ts.map +1 -0
  119. package/dist/tools/add-edge-tool.js +92 -0
  120. package/dist/tools/add-edge-tool.js.map +1 -0
  121. package/dist/tools/add-node-tool.d.ts +22 -0
  122. package/dist/tools/add-node-tool.d.ts.map +1 -0
  123. package/dist/tools/add-node-tool.js +128 -0
  124. package/dist/tools/add-node-tool.js.map +1 -0
  125. package/dist/tools/asset-tools.d.ts +58 -0
  126. package/dist/tools/asset-tools.d.ts.map +1 -0
  127. package/dist/tools/asset-tools.js +191 -0
  128. package/dist/tools/asset-tools.js.map +1 -0
  129. package/dist/tools/base-tool.d.ts +25 -0
  130. package/dist/tools/base-tool.d.ts.map +1 -0
  131. package/dist/tools/base-tool.js +24 -0
  132. package/dist/tools/base-tool.js.map +1 -0
  133. package/dist/tools/browser-tools.d.ts +32 -0
  134. package/dist/tools/browser-tools.d.ts.map +1 -0
  135. package/dist/tools/browser-tools.js +208 -0
  136. package/dist/tools/browser-tools.js.map +1 -0
  137. package/dist/tools/calculator-tool.d.ts +24 -0
  138. package/dist/tools/calculator-tool.d.ts.map +1 -0
  139. package/dist/tools/calculator-tool.js +64 -0
  140. package/dist/tools/calculator-tool.js.map +1 -0
  141. package/dist/tools/claude-code-tools.d.ts +96 -0
  142. package/dist/tools/claude-code-tools.d.ts.map +1 -0
  143. package/dist/tools/claude-code-tools.js +463 -0
  144. package/dist/tools/claude-code-tools.js.map +1 -0
  145. package/dist/tools/code-tools.d.ts +26 -0
  146. package/dist/tools/code-tools.d.ts.map +1 -0
  147. package/dist/tools/code-tools.js +82 -0
  148. package/dist/tools/code-tools.js.map +1 -0
  149. package/dist/tools/control-tool.d.ts +47 -0
  150. package/dist/tools/control-tool.d.ts.map +1 -0
  151. package/dist/tools/control-tool.js +101 -0
  152. package/dist/tools/control-tool.js.map +1 -0
  153. package/dist/tools/create-plan-tool.d.ts +29 -0
  154. package/dist/tools/create-plan-tool.d.ts.map +1 -0
  155. package/dist/tools/create-plan-tool.js +355 -0
  156. package/dist/tools/create-plan-tool.js.map +1 -0
  157. package/dist/tools/create-task-tool.d.ts +28 -0
  158. package/dist/tools/create-task-tool.d.ts.map +1 -0
  159. package/dist/tools/create-task-tool.js +254 -0
  160. package/dist/tools/create-task-tool.js.map +1 -0
  161. package/dist/tools/dataseo-tools.d.ts +38 -0
  162. package/dist/tools/dataseo-tools.d.ts.map +1 -0
  163. package/dist/tools/dataseo-tools.js +329 -0
  164. package/dist/tools/dataseo-tools.js.map +1 -0
  165. package/dist/tools/email-tools.d.ts +76 -0
  166. package/dist/tools/email-tools.d.ts.map +1 -0
  167. package/dist/tools/email-tools.js +259 -0
  168. package/dist/tools/email-tools.js.map +1 -0
  169. package/dist/tools/filesystem-tools.d.ts +77 -0
  170. package/dist/tools/filesystem-tools.d.ts.map +1 -0
  171. package/dist/tools/filesystem-tools.js +334 -0
  172. package/dist/tools/filesystem-tools.js.map +1 -0
  173. package/dist/tools/find-model-tool.d.ts +25 -0
  174. package/dist/tools/find-model-tool.d.ts.map +1 -0
  175. package/dist/tools/find-model-tool.js +236 -0
  176. package/dist/tools/find-model-tool.js.map +1 -0
  177. package/dist/tools/finish-graph-tool.d.ts +23 -0
  178. package/dist/tools/finish-graph-tool.d.ts.map +1 -0
  179. package/dist/tools/finish-graph-tool.js +46 -0
  180. package/dist/tools/finish-graph-tool.js.map +1 -0
  181. package/dist/tools/finish-step-tool.d.ts +16 -0
  182. package/dist/tools/finish-step-tool.d.ts.map +1 -0
  183. package/dist/tools/finish-step-tool.js +68 -0
  184. package/dist/tools/finish-step-tool.js.map +1 -0
  185. package/dist/tools/google-tools.d.ts +44 -0
  186. package/dist/tools/google-tools.d.ts.map +1 -0
  187. package/dist/tools/google-tools.js +176 -0
  188. package/dist/tools/google-tools.js.map +1 -0
  189. package/dist/tools/http-tools.d.ts +56 -0
  190. package/dist/tools/http-tools.d.ts.map +1 -0
  191. package/dist/tools/http-tools.js +180 -0
  192. package/dist/tools/http-tools.js.map +1 -0
  193. package/dist/tools/js-code-tool.d.ts +30 -0
  194. package/dist/tools/js-code-tool.d.ts.map +1 -0
  195. package/dist/tools/js-code-tool.js +98 -0
  196. package/dist/tools/js-code-tool.js.map +1 -0
  197. package/dist/tools/local-get-node-info-tool.d.ts +19 -0
  198. package/dist/tools/local-get-node-info-tool.d.ts.map +1 -0
  199. package/dist/tools/local-get-node-info-tool.js +75 -0
  200. package/dist/tools/local-get-node-info-tool.js.map +1 -0
  201. package/dist/tools/local-list-nodes-tool.d.ts +19 -0
  202. package/dist/tools/local-list-nodes-tool.d.ts.map +1 -0
  203. package/dist/tools/local-list-nodes-tool.js +69 -0
  204. package/dist/tools/local-list-nodes-tool.js.map +1 -0
  205. package/dist/tools/local-search-nodes-tool.d.ts +21 -0
  206. package/dist/tools/local-search-nodes-tool.d.ts.map +1 -0
  207. package/dist/tools/local-search-nodes-tool.js +111 -0
  208. package/dist/tools/local-search-nodes-tool.js.map +1 -0
  209. package/dist/tools/math-tools.d.ts +156 -0
  210. package/dist/tools/math-tools.d.ts.map +1 -0
  211. package/dist/tools/math-tools.js +422 -0
  212. package/dist/tools/math-tools.js.map +1 -0
  213. package/dist/tools/mcp-tools.d.ts +413 -0
  214. package/dist/tools/mcp-tools.d.ts.map +1 -0
  215. package/dist/tools/mcp-tools.js +618 -0
  216. package/dist/tools/mcp-tools.js.map +1 -0
  217. package/dist/tools/media-tools.d.ts +277 -0
  218. package/dist/tools/media-tools.d.ts.map +1 -0
  219. package/dist/tools/media-tools.js +682 -0
  220. package/dist/tools/media-tools.js.map +1 -0
  221. package/dist/tools/model-tools.d.ts +25 -0
  222. package/dist/tools/model-tools.d.ts.map +1 -0
  223. package/dist/tools/model-tools.js +48 -0
  224. package/dist/tools/model-tools.js.map +1 -0
  225. package/dist/tools/openai-tools.d.ts +73 -0
  226. package/dist/tools/openai-tools.d.ts.map +1 -0
  227. package/dist/tools/openai-tools.js +193 -0
  228. package/dist/tools/openai-tools.js.map +1 -0
  229. package/dist/tools/pdf-tools.d.ts +152 -0
  230. package/dist/tools/pdf-tools.d.ts.map +1 -0
  231. package/dist/tools/pdf-tools.js +339 -0
  232. package/dist/tools/pdf-tools.js.map +1 -0
  233. package/dist/tools/plan-builder-tools.d.ts +72 -0
  234. package/dist/tools/plan-builder-tools.d.ts.map +1 -0
  235. package/dist/tools/plan-builder-tools.js +438 -0
  236. package/dist/tools/plan-builder-tools.js.map +1 -0
  237. package/dist/tools/search-tools.d.ts +39 -0
  238. package/dist/tools/search-tools.d.ts.map +1 -0
  239. package/dist/tools/search-tools.js +218 -0
  240. package/dist/tools/search-tools.js.map +1 -0
  241. package/dist/tools/serp-providers/dataforseo-provider.d.ts +14 -0
  242. package/dist/tools/serp-providers/dataforseo-provider.d.ts.map +1 -0
  243. package/dist/tools/serp-providers/dataforseo-provider.js +114 -0
  244. package/dist/tools/serp-providers/dataforseo-provider.js.map +1 -0
  245. package/dist/tools/serp-providers/index.d.ts +35 -0
  246. package/dist/tools/serp-providers/index.d.ts.map +1 -0
  247. package/dist/tools/serp-providers/index.js +14 -0
  248. package/dist/tools/serp-providers/index.js.map +1 -0
  249. package/dist/tools/serp-providers/serpapi-provider.d.ts +18 -0
  250. package/dist/tools/serp-providers/serpapi-provider.d.ts.map +1 -0
  251. package/dist/tools/serp-providers/serpapi-provider.js +66 -0
  252. package/dist/tools/serp-providers/serpapi-provider.js.map +1 -0
  253. package/dist/tools/tool-registry.d.ts +9 -0
  254. package/dist/tools/tool-registry.d.ts.map +1 -0
  255. package/dist/tools/tool-registry.js +17 -0
  256. package/dist/tools/tool-registry.js.map +1 -0
  257. package/dist/tools/vector-tools.d.ts +224 -0
  258. package/dist/tools/vector-tools.d.ts.map +1 -0
  259. package/dist/tools/vector-tools.js +582 -0
  260. package/dist/tools/vector-tools.js.map +1 -0
  261. package/dist/tools/workspace-tools.d.ts +58 -0
  262. package/dist/tools/workspace-tools.d.ts.map +1 -0
  263. package/dist/tools/workspace-tools.js +152 -0
  264. package/dist/tools/workspace-tools.js.map +1 -0
  265. package/dist/types.d.ts +65 -0
  266. package/dist/types.d.ts.map +1 -0
  267. package/dist/types.js +5 -0
  268. package/dist/types.js.map +1 -0
  269. package/dist/utils/json-parser.d.ts +15 -0
  270. package/dist/utils/json-parser.d.ts.map +1 -0
  271. package/dist/utils/json-parser.js +78 -0
  272. package/dist/utils/json-parser.js.map +1 -0
  273. package/dist/utils/remove-base64-images.d.ts +12 -0
  274. package/dist/utils/remove-base64-images.d.ts.map +1 -0
  275. package/dist/utils/remove-base64-images.js +20 -0
  276. package/dist/utils/remove-base64-images.js.map +1 -0
  277. package/dist/utils/wrap-generators-parallel.d.ts +11 -0
  278. package/dist/utils/wrap-generators-parallel.d.ts.map +1 -0
  279. package/dist/utils/wrap-generators-parallel.js +38 -0
  280. package/dist/utils/wrap-generators-parallel.js.map +1 -0
  281. package/package.json +65 -0
@@ -0,0 +1,124 @@
1
+ /**
2
+ * AgentWorkflowRunner -- executes a graph plan via the kernel's WorkflowRunner.
3
+ *
4
+ * Takes a GraphData (produced by GraphPlanner) and runs it through the kernel.
5
+ * Agent step nodes are resolved via AgentStepExecutor; deterministic nodes
6
+ * are resolved via the provided NodeRegistry.
7
+ */
8
+ import { WorkflowRunner } from "@nodetool-ai/kernel";
9
+ import { createLogger } from "@nodetool-ai/config";
10
+ import { AGENT_STEP_NODE_TYPE } from "./graph-builder.js";
11
+ import { AgentStepExecutor } from "./agent-step-executor.js";
12
+ import { randomUUID } from "node:crypto";
13
+ const log = createLogger("nodetool.agents.workflow-runner");
14
+ export class AgentWorkflowRunner {
15
+ opts;
16
+ constructor(opts) {
17
+ this.opts = opts;
18
+ }
19
+ /**
20
+ * Execute a graph plan and yield ProcessingMessages live as the kernel emits them.
21
+ */
22
+ async *execute(graphData) {
23
+ const jobId = randomUUID();
24
+ const { provider, model, registry, tools, context } = this.opts;
25
+ const runner = new WorkflowRunner(jobId, {
26
+ resolveExecutor: (node) => {
27
+ if (node.type === AGENT_STEP_NODE_TYPE) {
28
+ return new AgentStepExecutor(node, {
29
+ provider,
30
+ model,
31
+ tools,
32
+ systemPrompt: this.opts.systemPrompt,
33
+ maxTokenLimit: this.opts.maxTokenLimit,
34
+ maxIterations: this.opts.maxStepIterations
35
+ });
36
+ }
37
+ return registry.resolve(node);
38
+ },
39
+ executionContext: context
40
+ });
41
+ log.info("Executing agent graph", {
42
+ jobId,
43
+ nodes: graphData.nodes.length,
44
+ edges: graphData.edges.length
45
+ });
46
+ // Intercept context.emit to stream kernel messages live to our generator.
47
+ const queue = [];
48
+ let waiter = null;
49
+ const wake = () => {
50
+ const w = waiter;
51
+ waiter = null;
52
+ w?.();
53
+ };
54
+ const ctx = context;
55
+ const origEmit = ctx.emit.bind(context);
56
+ ctx.emit = (msg) => {
57
+ origEmit(msg);
58
+ queue.push(msg);
59
+ wake();
60
+ };
61
+ let runError = null;
62
+ let done = false;
63
+ const runPromise = runner
64
+ .run({ job_id: jobId, params: this.opts.inputs }, graphData)
65
+ .catch((err) => {
66
+ runError = err;
67
+ return undefined;
68
+ })
69
+ .finally(() => {
70
+ done = true;
71
+ wake();
72
+ });
73
+ try {
74
+ while (true) {
75
+ while (queue.length > 0) {
76
+ yield queue.shift();
77
+ }
78
+ if (done)
79
+ break;
80
+ await new Promise((resolve) => {
81
+ waiter = resolve;
82
+ });
83
+ }
84
+ }
85
+ finally {
86
+ ctx.emit = origEmit;
87
+ }
88
+ if (runError) {
89
+ throw runError instanceof Error
90
+ ? runError
91
+ : new Error(String(runError));
92
+ }
93
+ const result = await runPromise;
94
+ if (!result) {
95
+ throw new Error("Workflow execution produced no result");
96
+ }
97
+ if (result.status === "failed") {
98
+ throw new Error(result.error ?? "Workflow execution failed");
99
+ }
100
+ const nodeErrors = (result.messages ?? []).filter((m) => m.type === "node_update" && m.status === "error");
101
+ if (nodeErrors.length > 0) {
102
+ log.error("Node execution errors", {
103
+ count: nodeErrors.length,
104
+ first: nodeErrors[0].error
105
+ });
106
+ }
107
+ log.info("Agent graph execution complete", {
108
+ jobId,
109
+ status: result.status,
110
+ outputKeys: Object.keys(result.outputs)
111
+ });
112
+ // Yield a final step_result with the graph outputs so callers can
113
+ // capture the result (MultiModeAgent checks is_task_result).
114
+ if (result.status === "completed" && Object.keys(result.outputs).length > 0) {
115
+ yield {
116
+ type: "step_result",
117
+ step: { name: "graph_execution", status: "completed" },
118
+ result: result.outputs,
119
+ is_task_result: true
120
+ };
121
+ }
122
+ }
123
+ }
124
+ //# sourceMappingURL=agent-workflow-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-workflow-runner.js","sourceRoot":"","sources":["../src/agent-workflow-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Agent -- orchestrates AI-driven task execution using LLMs and Tools.
3
+ *
4
+ * Port of src/nodetool/agents/agent.py (simplified for TypeScript).
5
+ *
6
+ * The Agent class takes a complex objective, decomposes it into a step-by-step
7
+ * plan using TaskPlanner, then executes that plan via TaskExecutor.
8
+ * Supports loading skills from the filesystem.
9
+ */
10
+ import type { BaseProvider } from "@nodetool-ai/runtime";
11
+ import type { ProcessingContext } from "@nodetool-ai/runtime";
12
+ import type { ProcessingMessage } from "@nodetool-ai/protocol";
13
+ import { BaseAgent } from "./base-agent.js";
14
+ import type { Tool } from "./tools/base-tool.js";
15
+ import type { Task, TaskPlan } from "./types.js";
16
+ import { type AgentOutputFormat } from "./output-format.js";
17
+ export interface AgentSkill {
18
+ name: string;
19
+ description: string;
20
+ instructions: string;
21
+ path: string;
22
+ }
23
+ /**
24
+ * Parse minimal YAML frontmatter (key: value pairs).
25
+ */
26
+ export declare function parseFrontmatter(frontmatter: string): Record<string, string>;
27
+ /**
28
+ * Load all valid skills from a directory (recursively searches for SKILL.md files).
29
+ */
30
+ export declare function loadSkillsFromDirectory(dir: string): Promise<AgentSkill[]>;
31
+ export interface AgentOptions {
32
+ name: string;
33
+ objective: string;
34
+ provider: BaseProvider;
35
+ model: string;
36
+ /** Model used for planning phase. Defaults to `model`. */
37
+ planningModel?: string;
38
+ /** Model used for reasoning/refinement within the planner. Defaults to `model`. */
39
+ reasoningModel?: string;
40
+ description?: string;
41
+ tools?: Tool[];
42
+ inputs?: Record<string, unknown>;
43
+ systemPrompt?: string;
44
+ maxTokenLimit?: number;
45
+ workspace?: string;
46
+ maxSteps?: number;
47
+ maxStepIterations?: number;
48
+ outputSchema?: Record<string, unknown>;
49
+ /**
50
+ * Format for the agent's final result.
51
+ * - "structured" (default): honors `outputSchema`; finish_step returns JSON.
52
+ * - "markdown" / "text" / "html": final result is a string in that format.
53
+ * `outputSchema` is ignored.
54
+ */
55
+ outputFormat?: AgentOutputFormat;
56
+ /** Pre-defined task to execute, skipping the planning phase. */
57
+ task?: Task;
58
+ skills?: string[];
59
+ skillDirs?: string[];
60
+ }
61
+ export declare class Agent extends BaseAgent {
62
+ private readonly description;
63
+ private readonly planningModel;
64
+ private readonly reasoningModel;
65
+ private readonly maxSteps;
66
+ private readonly maxStepIterations;
67
+ private readonly outputSchema?;
68
+ private readonly outputFormat;
69
+ private readonly workspace?;
70
+ private readonly requestedSkills?;
71
+ private readonly skillDirs;
72
+ private readonly initialTask?;
73
+ /** The multi-task plan, set after planning. */
74
+ taskPlan: TaskPlan | null;
75
+ constructor(opts: AgentOptions);
76
+ /**
77
+ * Resolve skill directories from constructor args + environment + defaults.
78
+ */
79
+ private resolveSkillDirs;
80
+ /**
81
+ * Discover all valid skills from resolved directories.
82
+ */
83
+ private discoverSkills;
84
+ /**
85
+ * Resolve active skills: explicit names first, then auto-match by objective words.
86
+ */
87
+ private resolveActiveSkills;
88
+ /**
89
+ * Build system prompt segment from active skills.
90
+ */
91
+ private buildSkillSystemPrompt;
92
+ /**
93
+ * Build effective objective enriched with skill summaries.
94
+ */
95
+ private buildEffectiveObjective;
96
+ /**
97
+ * Merge user system prompt with skill system prompt.
98
+ */
99
+ private mergeSystemPrompt;
100
+ execute(context: ProcessingContext): AsyncGenerator<ProcessingMessage>;
101
+ private _executeImpl;
102
+ /**
103
+ * Run a final LLM call that synthesizes all task results into one coherent
104
+ * response for the user. Streams chunks as ProcessingMessage so the UI sees
105
+ * the answer being composed in real time. Sets `this.results` to the
106
+ * synthesized string (or wraps in the outputSchema shape).
107
+ */
108
+ private synthesizeFinalResponse;
109
+ /**
110
+ * Execute a single pre-defined task (legacy path for backward compatibility).
111
+ */
112
+ private executeSingleTask;
113
+ getResults(): unknown;
114
+ }
115
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}