@agntk/core 0.1.1 → 0.2.0

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 (170) hide show
  1. package/README.md +56 -90
  2. package/dist/advanced/index.d.ts +9 -2
  3. package/dist/advanced/index.d.ts.map +1 -1
  4. package/dist/advanced/index.js +13 -2
  5. package/dist/advanced/index.js.map +1 -1
  6. package/dist/agent.d.ts +27 -31
  7. package/dist/agent.d.ts.map +1 -1
  8. package/dist/agent.js +228 -275
  9. package/dist/agent.js.map +1 -1
  10. package/dist/config/schema.d.ts +38 -38
  11. package/dist/evals/runner.js +16 -9
  12. package/dist/evals/runner.js.map +1 -1
  13. package/dist/evals/types.d.ts +1 -1
  14. package/dist/evals/types.d.ts.map +1 -1
  15. package/dist/index.d.ts +4 -9
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +6 -9
  18. package/dist/index.js.map +1 -1
  19. package/dist/observability/langfuse.d.ts +2 -2
  20. package/dist/observability/langfuse.d.ts.map +1 -1
  21. package/dist/observability/langfuse.js +39 -17
  22. package/dist/observability/langfuse.js.map +1 -1
  23. package/dist/presets/sub-agent-configs.d.ts +11 -3
  24. package/dist/presets/sub-agent-configs.d.ts.map +1 -1
  25. package/dist/presets/sub-agent-configs.js +5 -10
  26. package/dist/presets/sub-agent-configs.js.map +1 -1
  27. package/dist/presets/tools.d.ts +5 -5
  28. package/dist/tools/browser/tool.d.ts +2 -2
  29. package/dist/tools/browser/types.d.ts +2 -2
  30. package/dist/tools/plan/tools.d.ts +1 -1
  31. package/dist/tools/plan/types.d.ts +2 -2
  32. package/dist/tools/progress/index.d.ts +2 -2
  33. package/dist/tools/spawn-agent/index.d.ts +7 -9
  34. package/dist/tools/spawn-agent/index.d.ts.map +1 -1
  35. package/dist/tools/spawn-agent/index.js +2 -4
  36. package/dist/tools/spawn-agent/index.js.map +1 -1
  37. package/dist/types/agent.d.ts +69 -199
  38. package/dist/types/agent.d.ts.map +1 -1
  39. package/dist/types/agent.js +4 -2
  40. package/dist/types/agent.js.map +1 -1
  41. package/dist/types/index.d.ts +1 -1
  42. package/dist/types/index.d.ts.map +1 -1
  43. package/dist/types/index.js.map +1 -1
  44. package/dist/usage-limits.d.ts +1 -1
  45. package/dist/usage-limits.js +1 -1
  46. package/dist/workflow/index.d.ts +1 -5
  47. package/dist/workflow/index.d.ts.map +1 -1
  48. package/dist/workflow/index.js +1 -9
  49. package/dist/workflow/index.js.map +1 -1
  50. package/dist/wrappers/best-of-n.d.ts +1 -1
  51. package/dist/wrappers/best-of-n.d.ts.map +1 -1
  52. package/dist/wrappers/best-of-n.js +11 -6
  53. package/dist/wrappers/best-of-n.js.map +1 -1
  54. package/package.json +4 -14
  55. package/dist/memory/engine.d.ts +0 -130
  56. package/dist/memory/engine.d.ts.map +0 -1
  57. package/dist/memory/engine.js +0 -227
  58. package/dist/memory/engine.js.map +0 -1
  59. package/dist/memory/vectra-store.d.ts +0 -31
  60. package/dist/memory/vectra-store.d.ts.map +0 -1
  61. package/dist/memory/vectra-store.js +0 -122
  62. package/dist/memory/vectra-store.js.map +0 -1
  63. package/dist/pool/index.d.ts +0 -7
  64. package/dist/pool/index.d.ts.map +0 -1
  65. package/dist/pool/index.js +0 -6
  66. package/dist/pool/index.js.map +0 -1
  67. package/dist/pool/specialist-pool.d.ts +0 -59
  68. package/dist/pool/specialist-pool.d.ts.map +0 -1
  69. package/dist/pool/specialist-pool.js +0 -224
  70. package/dist/pool/specialist-pool.js.map +0 -1
  71. package/dist/pool/tools.d.ts +0 -63
  72. package/dist/pool/tools.d.ts.map +0 -1
  73. package/dist/pool/tools.js +0 -83
  74. package/dist/pool/tools.js.map +0 -1
  75. package/dist/pool/types.d.ts +0 -79
  76. package/dist/pool/types.d.ts.map +0 -1
  77. package/dist/pool/types.js +0 -5
  78. package/dist/pool/types.js.map +0 -1
  79. package/dist/presets/index.d.ts +0 -5
  80. package/dist/presets/index.d.ts.map +0 -1
  81. package/dist/presets/index.js +0 -5
  82. package/dist/presets/index.js.map +0 -1
  83. package/dist/presets/role-registry.d.ts +0 -41
  84. package/dist/presets/role-registry.d.ts.map +0 -1
  85. package/dist/presets/role-registry.js +0 -213
  86. package/dist/presets/role-registry.js.map +0 -1
  87. package/dist/presets/roles.d.ts +0 -105
  88. package/dist/presets/roles.d.ts.map +0 -1
  89. package/dist/presets/roles.js +0 -207
  90. package/dist/presets/roles.js.map +0 -1
  91. package/dist/prompts/templates.d.ts +0 -11
  92. package/dist/prompts/templates.d.ts.map +0 -1
  93. package/dist/prompts/templates.js +0 -115
  94. package/dist/prompts/templates.js.map +0 -1
  95. package/dist/streaming/data-parts.d.ts +0 -163
  96. package/dist/streaming/data-parts.d.ts.map +0 -1
  97. package/dist/streaming/data-parts.js +0 -14
  98. package/dist/streaming/data-parts.js.map +0 -1
  99. package/dist/streaming/index.d.ts +0 -8
  100. package/dist/streaming/index.d.ts.map +0 -1
  101. package/dist/streaming/index.js +0 -10
  102. package/dist/streaming/index.js.map +0 -1
  103. package/dist/streaming/transient.d.ts +0 -136
  104. package/dist/streaming/transient.d.ts.map +0 -1
  105. package/dist/streaming/transient.js +0 -201
  106. package/dist/streaming/transient.js.map +0 -1
  107. package/dist/tools/provider.d.ts +0 -97
  108. package/dist/tools/provider.d.ts.map +0 -1
  109. package/dist/tools/provider.js +0 -178
  110. package/dist/tools/provider.js.map +0 -1
  111. package/dist/utils/logger.d.ts +0 -35
  112. package/dist/utils/logger.d.ts.map +0 -1
  113. package/dist/utils/logger.js +0 -149
  114. package/dist/utils/logger.js.map +0 -1
  115. package/dist/workflow/builders/adapt.d.ts +0 -20
  116. package/dist/workflow/builders/adapt.d.ts.map +0 -1
  117. package/dist/workflow/builders/adapt.js +0 -33
  118. package/dist/workflow/builders/adapt.js.map +0 -1
  119. package/dist/workflow/builders/index.d.ts +0 -8
  120. package/dist/workflow/builders/index.d.ts.map +0 -1
  121. package/dist/workflow/builders/index.js +0 -7
  122. package/dist/workflow/builders/index.js.map +0 -1
  123. package/dist/workflow/builders/parallel.d.ts +0 -25
  124. package/dist/workflow/builders/parallel.d.ts.map +0 -1
  125. package/dist/workflow/builders/parallel.js +0 -60
  126. package/dist/workflow/builders/parallel.js.map +0 -1
  127. package/dist/workflow/builders/pipeline.d.ts +0 -22
  128. package/dist/workflow/builders/pipeline.d.ts.map +0 -1
  129. package/dist/workflow/builders/pipeline.js +0 -48
  130. package/dist/workflow/builders/pipeline.js.map +0 -1
  131. package/dist/workflow/builders/types.d.ts +0 -54
  132. package/dist/workflow/builders/types.d.ts.map +0 -1
  133. package/dist/workflow/builders/types.js +0 -5
  134. package/dist/workflow/builders/types.js.map +0 -1
  135. package/dist/workflow/durable-agent.d.ts +0 -128
  136. package/dist/workflow/durable-agent.d.ts.map +0 -1
  137. package/dist/workflow/durable-agent.js +0 -323
  138. package/dist/workflow/durable-agent.js.map +0 -1
  139. package/dist/workflow/schedulers.d.ts +0 -231
  140. package/dist/workflow/schedulers.d.ts.map +0 -1
  141. package/dist/workflow/schedulers.js +0 -250
  142. package/dist/workflow/schedulers.js.map +0 -1
  143. package/dist/workflow/team/create-team.d.ts +0 -34
  144. package/dist/workflow/team/create-team.d.ts.map +0 -1
  145. package/dist/workflow/team/create-team.js +0 -242
  146. package/dist/workflow/team/create-team.js.map +0 -1
  147. package/dist/workflow/team/index.d.ts +0 -9
  148. package/dist/workflow/team/index.d.ts.map +0 -1
  149. package/dist/workflow/team/index.js +0 -8
  150. package/dist/workflow/team/index.js.map +0 -1
  151. package/dist/workflow/team/machines.d.ts +0 -152
  152. package/dist/workflow/team/machines.d.ts.map +0 -1
  153. package/dist/workflow/team/machines.js +0 -197
  154. package/dist/workflow/team/machines.js.map +0 -1
  155. package/dist/workflow/team/task-board.d.ts +0 -47
  156. package/dist/workflow/team/task-board.d.ts.map +0 -1
  157. package/dist/workflow/team/task-board.js +0 -111
  158. package/dist/workflow/team/task-board.js.map +0 -1
  159. package/dist/workflow/team/tools.d.ts +0 -66
  160. package/dist/workflow/team/tools.d.ts.map +0 -1
  161. package/dist/workflow/team/tools.js +0 -100
  162. package/dist/workflow/team/tools.js.map +0 -1
  163. package/dist/workflow/team/types.d.ts +0 -109
  164. package/dist/workflow/team/types.d.ts.map +0 -1
  165. package/dist/workflow/team/types.js +0 -5
  166. package/dist/workflow/team/types.js.map +0 -1
  167. package/dist/workflow/templates.d.ts +0 -71
  168. package/dist/workflow/templates.d.ts.map +0 -1
  169. package/dist/workflow/templates.js +0 -132
  170. package/dist/workflow/templates.js.map +0 -1
@@ -1,323 +0,0 @@
1
- /**
2
- * @agntk/core - Durable Agent Factory
3
- *
4
- * Creates agents with workflow durability features.
5
- * Uses the Workflow DevKit ("use workflow" / "use step" directives)
6
- * for crash recovery, auto-retry, and step-level observability.
7
- *
8
- * When the `workflow` package is installed and the app runs under the
9
- * Workflow runtime, every LLM call and tool execution becomes a
10
- * discrete, checkpointed step. Without the runtime, the directives
11
- * are inert string literals and the agent operates normally.
12
- *
13
- * @see https://useworkflow.dev
14
- */
15
- import { createLogger } from '@agntk/logger';
16
- const log = createLogger('@agntk/core:workflow:durable');
17
- // ============================================================================
18
- // Workflow Runtime Detection
19
- // ============================================================================
20
- /** Cached availability result */
21
- let _workflowAvailable = null;
22
- let _workflowModule = null;
23
- /**
24
- * Check if the Workflow DevKit runtime is available.
25
- * Result is cached after first check.
26
- */
27
- export async function checkWorkflowAvailability() {
28
- if (_workflowAvailable !== null)
29
- return _workflowAvailable;
30
- try {
31
- _workflowModule = await import('workflow');
32
- _workflowAvailable = true;
33
- log.info('Workflow runtime detected');
34
- return true;
35
- }
36
- catch (_e) {
37
- _workflowAvailable = false;
38
- log.debug('Workflow runtime not available — durable features disabled');
39
- return false;
40
- }
41
- }
42
- /**
43
- * Get the workflow module (throws if not available).
44
- */
45
- function getWorkflowModule() {
46
- if (!_workflowModule) {
47
- throw new Error('Workflow package is not installed. Install it with: npm install workflow\n' +
48
- 'See https://useworkflow.dev for documentation.');
49
- }
50
- return _workflowModule;
51
- }
52
- /**
53
- * Reset workflow availability cache (for testing).
54
- * @internal
55
- */
56
- export function _resetWorkflowCache() {
57
- _workflowAvailable = null;
58
- _workflowModule = null;
59
- }
60
- // ============================================================================
61
- // Durable Execution Wrappers
62
- // ============================================================================
63
- /**
64
- * Wrap an agent's generate call as a workflow.
65
- * The "use workflow" directive marks the entire function as a durable workflow.
66
- * Named step functions give the workflow inspector descriptive labels.
67
- *
68
- * Inspector view: durableGenerateWorkflow → llmGenerate
69
- */
70
- async function durableGenerateWorkflow(agent, prompt) {
71
- "use workflow";
72
- log.info('durableGenerateWorkflow started', { promptLength: prompt.length });
73
- // Named step function — inspector displays "llmGenerate"
74
- async function llmGenerate() {
75
- "use step";
76
- log.debug('step:llmGenerate — executing LLM call');
77
- return agent.generate({ prompt });
78
- }
79
- const result = await llmGenerate();
80
- const text = await result.text;
81
- const totalUsage = result.totalUsage;
82
- log.info('durableGenerateWorkflow completed', { textLength: text?.length ?? 0 });
83
- return {
84
- text: text ?? '',
85
- steps: [{
86
- name: 'llm-generate',
87
- status: 'completed',
88
- }],
89
- usage: totalUsage ? {
90
- promptTokens: totalUsage.inputTokens ?? 0,
91
- completionTokens: totalUsage.outputTokens ?? 0,
92
- totalTokens: totalUsage.totalTokens ?? 0,
93
- } : undefined,
94
- };
95
- }
96
- /**
97
- * Wrap an agent's generate call with approval workflow.
98
- * The function suspends (zero compute) while waiting for webhook approval.
99
- *
100
- * Inspector view: durableWithApprovalWorkflow → llmDraft → webhookApproval → llmFinalize
101
- */
102
- async function durableWithApprovalWorkflow(agent, prompt, _webhookPath) {
103
- "use workflow";
104
- log.info('durableWithApprovalWorkflow started', { prompt: prompt.slice(0, 100) });
105
- // Step 1: Generate draft — inspector displays "llmDraft"
106
- async function llmDraft() {
107
- "use step";
108
- log.debug('step:llmDraft — generating draft');
109
- return agent.generate({ prompt });
110
- }
111
- const draftResult = await llmDraft();
112
- const draftText = await draftResult.text;
113
- // Step 2: Wait for approval — inspector displays "webhookApproval"
114
- log.info('Waiting for approval webhook');
115
- async function webhookApproval() {
116
- "use step";
117
- log.debug('step:webhookApproval — suspending for webhook');
118
- // The workflow runtime handles webhook suspension here.
119
- // This stub returns approved=true when not running under the runtime.
120
- return { approved: true };
121
- }
122
- const approval = await webhookApproval();
123
- if (!approval.approved) {
124
- log.warn('Approval rejected', { feedback: approval.feedback });
125
- throw new Error(`Approval rejected: ${approval.feedback || 'No reason provided'}`);
126
- }
127
- // Step 3: Finalize — inspector displays "llmFinalize"
128
- const finalPrompt = approval.modifiedContent
129
- ? `Finalize with modifications: ${approval.modifiedContent}. Original: ${draftText}`
130
- : prompt;
131
- async function llmFinalize() {
132
- "use step";
133
- log.debug('step:llmFinalize — finalizing after approval');
134
- return agent.generate({ prompt: finalPrompt });
135
- }
136
- const finalResult = await llmFinalize();
137
- const finalText = await finalResult.text;
138
- return {
139
- text: finalText ?? '',
140
- steps: [
141
- { name: 'llm-draft', status: 'completed' },
142
- { name: 'webhook-approval', status: 'completed' },
143
- { name: 'llm-finalize', status: 'completed' },
144
- ],
145
- };
146
- }
147
- /**
148
- * Wrap an agent's generate call with a durable delay.
149
- * Uses workflow sleep() — doesn't hold compute during the delay.
150
- *
151
- * Inspector view: durableScheduledWorkflow → durableSleep → llmGenerate
152
- */
153
- async function durableScheduledWorkflow(agent, prompt, delay) {
154
- "use workflow";
155
- log.info('durableScheduledWorkflow started', { delay });
156
- // Step 1: Sleep (zero compute) — inspector displays "durableSleep"
157
- async function durableSleep() {
158
- "use step";
159
- log.debug('step:durableSleep — sleeping', { delay });
160
- try {
161
- const wf = getWorkflowModule();
162
- await wf.sleep(delay);
163
- }
164
- catch (_e) {
165
- // If workflow not available, use regular setTimeout as fallback
166
- const ms = parseDuration(delay);
167
- log.warn('Workflow sleep unavailable, using setTimeout fallback', { ms });
168
- await new Promise(resolve => setTimeout(resolve, ms));
169
- }
170
- }
171
- await durableSleep();
172
- log.info('Sleep completed, executing prompt');
173
- // Step 2: Generate — inspector displays "llmGenerate"
174
- async function llmGenerate() {
175
- "use step";
176
- log.debug('step:llmGenerate — executing LLM call after sleep');
177
- return agent.generate({ prompt });
178
- }
179
- const result = await llmGenerate();
180
- const text = await result.text;
181
- return {
182
- text: text ?? '',
183
- steps: [
184
- { name: 'sleep', status: 'completed' },
185
- { name: 'llm-generate', status: 'completed' },
186
- ],
187
- };
188
- }
189
- // ============================================================================
190
- // Durable Agent Factory
191
- // ============================================================================
192
- /**
193
- * Create a durable agent with workflow integration.
194
- *
195
- * The durable agent wraps a standard Agent with workflow directives
196
- * that make every LLM call and tool execution a recoverable step.
197
- *
198
- * @param baseAgent - The base agent to wrap with durability
199
- * @param options - Durable agent options
200
- * @returns DurableAgent instance with both standard and durable methods
201
- *
202
- * @example
203
- * ```typescript
204
- * import { createAgent } from '@agntk/core';
205
- * import { createDurableAgent } from '@agntk/core/workflow';
206
- *
207
- * const base = createAgent({ role: 'coder', toolPreset: 'standard' });
208
- * const agent = createDurableAgent(base);
209
- *
210
- * // Standard generation (no durability)
211
- * const result = await agent.generate({ prompt: 'Hello' });
212
- *
213
- * // Durable generation (survives crashes)
214
- * const durable = await agent.durableGenerate('Create a component');
215
- *
216
- * // With approval workflow
217
- * const approved = await agent.withApproval('Draft email', '/api/approve');
218
- *
219
- * // Scheduled generation
220
- * const delayed = await agent.scheduled('Send reminder', '1h');
221
- * ```
222
- */
223
- export function createDurableAgent(baseAgent, options = {}) {
224
- log.info('Creating durable agent', {
225
- agentId: baseAgent.agentId,
226
- role: baseAgent.role,
227
- workflowOptions: options.workflowOptions,
228
- });
229
- let workflowRunId = options.workflowOptions?.workflowRunId;
230
- /**
231
- * Guard: ensure workflow is available before executing a durable method.
232
- * Throws a clear, actionable error if the workflow package isn't installed.
233
- * Standard Agent methods (generate, stream) still work without workflow.
234
- */
235
- async function ensureWorkflowAvailable() {
236
- const available = await checkWorkflowAvailability();
237
- if (!available) {
238
- throw new Error('Workflow package is not installed. Durable agent features require the workflow package.\n' +
239
- 'Install with: npm install workflow\n' +
240
- 'See https://useworkflow.dev for documentation.');
241
- }
242
- }
243
- const durableAgent = {
244
- // Delegate standard Agent interface to the base agent
245
- agentId: baseAgent.agentId,
246
- role: baseAgent.role,
247
- init: () => baseAgent.init(),
248
- getToolLoopAgent: () => baseAgent.getToolLoopAgent(),
249
- getSystemPrompt: () => baseAgent.getSystemPrompt(),
250
- // Standard methods — pass through to base agent (work without workflow)
251
- stream: (input) => baseAgent.stream(input),
252
- generate: (input) => baseAgent.generate(input),
253
- // Durable methods — require workflow package
254
- durableGenerate: async (prompt) => {
255
- await ensureWorkflowAvailable();
256
- log.info('durableGenerate() called', { promptLength: prompt.length });
257
- const result = await durableGenerateWorkflow(baseAgent, prompt);
258
- if (result.workflowRunId)
259
- workflowRunId = result.workflowRunId;
260
- return result;
261
- },
262
- withApproval: async (prompt, webhookPath) => {
263
- await ensureWorkflowAvailable();
264
- log.info('withApproval() called', { promptLength: prompt.length, webhookPath });
265
- return durableWithApprovalWorkflow(baseAgent, prompt, webhookPath);
266
- },
267
- scheduled: async (prompt, delay) => {
268
- await ensureWorkflowAvailable();
269
- log.info('scheduled() called', { promptLength: prompt.length, delay });
270
- return durableScheduledWorkflow(baseAgent, prompt, delay);
271
- },
272
- get isWorkflowActive() {
273
- return _workflowAvailable === true;
274
- },
275
- get workflowRunId() {
276
- return workflowRunId;
277
- },
278
- };
279
- log.info('Durable agent created', { agentId: baseAgent.agentId });
280
- return durableAgent;
281
- }
282
- // ============================================================================
283
- // Workflow Helpers
284
- // ============================================================================
285
- /**
286
- * Parse a duration string into milliseconds.
287
- * Supports: 30s, 5m, 1h, 1d
288
- */
289
- export function parseDuration(duration) {
290
- const match = duration.match(/^(\d+)(s|m|h|d)$/);
291
- if (!match) {
292
- throw new Error(`Invalid duration format: ${duration}. Use format like '30s', '5m', '1h', '1d'`);
293
- }
294
- const value = parseInt(match[1], 10);
295
- const unit = match[2];
296
- switch (unit) {
297
- case 's':
298
- return value * 1000;
299
- case 'm':
300
- return value * 60 * 1000;
301
- case 'h':
302
- return value * 60 * 60 * 1000;
303
- case 'd':
304
- return value * 24 * 60 * 60 * 1000;
305
- default:
306
- throw new Error(`Unknown duration unit: ${unit}`);
307
- }
308
- }
309
- /**
310
- * Format milliseconds as a human-readable duration.
311
- */
312
- export function formatDuration(ms) {
313
- if (ms < 1000)
314
- return `${ms}ms`;
315
- if (ms < 60000)
316
- return `${Math.round(ms / 1000)}s`;
317
- if (ms < 3600000)
318
- return `${Math.round(ms / 60000)}m`;
319
- if (ms < 86400000)
320
- return `${Math.round(ms / 3600000)}h`;
321
- return `${Math.round(ms / 86400000)}d`;
322
- }
323
- //# sourceMappingURL=durable-agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"durable-agent.js","sourceRoot":"","sources":["../../src/workflow/durable-agent.ts"],"names":[],"mappings":"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"}
@@ -1,231 +0,0 @@
1
- /**
2
- * @agntk/core - Scheduled Workflows
3
- *
4
- * Implements recurring task execution using Workflow DevKit's `sleep()`.
5
- * Each scheduled workflow is a durable loop: execute → sleep → repeat.
6
- * Zero compute cost during sleep — the workflow runtime suspends the process.
7
- *
8
- * @see ADV-SCHEDULER-018
9
- * @see https://useworkflow.dev
10
- */
11
- import { parseDuration, formatDuration } from './utils.js';
12
- /**
13
- * Configuration for a scheduled workflow.
14
- *
15
- * @typeParam T - The return type of the task function
16
- */
17
- export interface ScheduledWorkflowConfig<T = void> {
18
- /** Human-readable name for this schedule. */
19
- name: string;
20
- /** Description of what the scheduled task does. */
21
- description?: string;
22
- /**
23
- * Interval between executions.
24
- * Duration string (e.g., "1h", "1d", "7d").
25
- */
26
- interval: string;
27
- /**
28
- * The task to execute on each tick.
29
- * Receives the current iteration number (0-indexed) and returns a result.
30
- */
31
- task: (iteration: number) => Promise<T> | T;
32
- /**
33
- * Maximum number of iterations before the workflow stops.
34
- * Omit or set to `Infinity` for an infinite loop.
35
- * @default Infinity
36
- */
37
- maxIterations?: number;
38
- /**
39
- * Whether to run the task immediately on start, or wait for the first interval.
40
- * @default true
41
- */
42
- immediate?: boolean;
43
- /**
44
- * Called after each successful task execution.
45
- */
46
- onTick?: (result: T, iteration: number) => void | Promise<void>;
47
- /**
48
- * Called when a task execution throws an error.
49
- * Return `true` to continue the schedule despite the error (default).
50
- * Return `false` to stop the schedule.
51
- * @default continue
52
- */
53
- onError?: (error: Error, iteration: number) => boolean | Promise<boolean>;
54
- }
55
- /**
56
- * A running scheduled workflow instance.
57
- *
58
- * @typeParam T - The return type of the task function
59
- */
60
- export interface ScheduledWorkflow<T = void> {
61
- /** The schedule configuration name. */
62
- readonly name: string;
63
- /** The schedule configuration description. */
64
- readonly description?: string;
65
- /** The interval between executions. */
66
- readonly interval: string;
67
- /**
68
- * Start the schedule loop. Returns a promise that resolves
69
- * when the schedule completes (hits maxIterations or is cancelled).
70
- */
71
- start: () => Promise<ScheduleResult<T>>;
72
- /**
73
- * Cancel the schedule. The current sleep will be interrupted,
74
- * and the loop will exit after the current tick completes.
75
- */
76
- cancel: () => void;
77
- /** Whether the schedule is currently running. */
78
- readonly isRunning: boolean;
79
- /** Number of completed iterations. */
80
- readonly completedIterations: number;
81
- /** Results from completed iterations. */
82
- readonly results: ScheduleTickResult<T>[];
83
- }
84
- /**
85
- * Result from a single scheduled tick.
86
- */
87
- export interface ScheduleTickResult<T = void> {
88
- /** 0-indexed iteration number. */
89
- iteration: number;
90
- /** Whether the tick succeeded. */
91
- success: boolean;
92
- /** The result value (if success). */
93
- result?: T;
94
- /** The error message (if failed). */
95
- error?: string;
96
- /** Timestamp when the tick completed. */
97
- completedAt: Date;
98
- }
99
- /**
100
- * Final result from a completed schedule.
101
- */
102
- export interface ScheduleResult<T = void> {
103
- /** Schedule name. */
104
- name: string;
105
- /** Total completed iterations. */
106
- totalIterations: number;
107
- /** Whether the schedule was cancelled. */
108
- cancelled: boolean;
109
- /** All tick results. */
110
- ticks: ScheduleTickResult<T>[];
111
- }
112
- /**
113
- * Create a scheduled workflow that loops with durable sleep.
114
- *
115
- * The workflow executes a task, sleeps for the configured interval,
116
- * and repeats. Under the Workflow runtime, sleep is zero-compute.
117
- *
118
- * @param config - Schedule configuration
119
- * @returns A `ScheduledWorkflow` instance (call `.start()` to begin)
120
- *
121
- * @example
122
- * ```typescript
123
- * const daily = createScheduledWorkflow({
124
- * name: 'daily-briefing',
125
- * interval: '1d',
126
- * task: async (iteration) => {
127
- * const agent = createAgent({ role: 'analyst' });
128
- * const result = await agent.generate({
129
- * prompt: 'Generate a daily briefing summary.',
130
- * });
131
- * return result.text;
132
- * },
133
- * onTick: (text, i) => console.log(`Briefing #${i}:`, text),
134
- * });
135
- *
136
- * await daily.start(); // Loops forever with 1d sleep between ticks
137
- * ```
138
- */
139
- export declare function createScheduledWorkflow<T = void>(config: ScheduledWorkflowConfig<T>): ScheduledWorkflow<T>;
140
- /**
141
- * Options for the daily briefing schedule preset.
142
- */
143
- export interface DailyBriefingOptions {
144
- /**
145
- * The task that generates the briefing content.
146
- * Receives the iteration number.
147
- */
148
- generateBriefing: (iteration: number) => Promise<string>;
149
- /**
150
- * Called with each briefing (e.g., send email, post to Slack).
151
- */
152
- deliver: (briefing: string, iteration: number) => void | Promise<void>;
153
- /**
154
- * Override the default interval. Default: "1d"
155
- */
156
- interval?: string;
157
- /**
158
- * Maximum number of briefings. Default: Infinity
159
- */
160
- maxIterations?: number;
161
- }
162
- /**
163
- * Create a daily briefing scheduled workflow.
164
- *
165
- * Runs a briefing generation task once per day (configurable),
166
- * delivering the result via a callback.
167
- *
168
- * @example
169
- * ```typescript
170
- * const briefing = createDailyBriefing({
171
- * generateBriefing: async () => {
172
- * const agent = createAgent({ role: 'analyst' });
173
- * const result = await agent.generate({
174
- * prompt: 'Summarize today\'s calendar, emails, and tasks.',
175
- * });
176
- * return result.text;
177
- * },
178
- * deliver: (text) => sendSlackMessage('#daily', text),
179
- * });
180
- *
181
- * await briefing.start();
182
- * ```
183
- */
184
- export declare function createDailyBriefing(options: DailyBriefingOptions): ScheduledWorkflow<string>;
185
- /**
186
- * Options for the weekly report schedule preset.
187
- */
188
- export interface WeeklyReportOptions {
189
- /**
190
- * The task that generates the weekly report.
191
- * Receives the iteration (week) number.
192
- */
193
- generateReport: (week: number) => Promise<string>;
194
- /**
195
- * Called with each report (e.g., send email, save to file).
196
- */
197
- deliver: (report: string, week: number) => void | Promise<void>;
198
- /**
199
- * Override the default interval. Default: "7d"
200
- */
201
- interval?: string;
202
- /**
203
- * Maximum number of reports. Default: Infinity
204
- */
205
- maxIterations?: number;
206
- }
207
- /**
208
- * Create a weekly report scheduled workflow.
209
- *
210
- * Runs a report generation task once per week (configurable),
211
- * delivering the result via a callback.
212
- *
213
- * @example
214
- * ```typescript
215
- * const report = createWeeklyReport({
216
- * generateReport: async (week) => {
217
- * const agent = createAgent({ role: 'analyst' });
218
- * const result = await agent.generate({
219
- * prompt: `Generate weekly report #${week + 1}.`,
220
- * });
221
- * return result.text;
222
- * },
223
- * deliver: (text) => sendEmail('team@company.com', 'Weekly Report', text),
224
- * });
225
- *
226
- * await report.start();
227
- * ```
228
- */
229
- export declare function createWeeklyReport(options: WeeklyReportOptions): ScheduledWorkflow<string>;
230
- export { parseDuration, formatDuration };
231
- //# sourceMappingURL=schedulers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedulers.d.ts","sourceRoot":"","sources":["../../src/workflow/schedulers.ts"],"names":[],"mappings":"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"}