@elizaos/plugin-workflow 2.0.0-beta.1

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 (294) hide show
  1. package/README.md +71 -0
  2. package/auto-enable.ts +18 -0
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.d.ts.map +1 -0
  5. package/dist/actions/index.js +2 -0
  6. package/dist/actions/index.js.map +1 -0
  7. package/dist/actions/workflow.d.ts +23 -0
  8. package/dist/actions/workflow.d.ts.map +1 -0
  9. package/dist/actions/workflow.js +425 -0
  10. package/dist/actions/workflow.js.map +1 -0
  11. package/dist/data/defaultNodes.json +9887 -0
  12. package/dist/data/schemaIndex.json +1 -0
  13. package/dist/data/triggerSchemaIndex.json +1 -0
  14. package/dist/db/index.d.ts +2 -0
  15. package/dist/db/index.d.ts.map +1 -0
  16. package/dist/db/index.js +2 -0
  17. package/dist/db/index.js.map +1 -0
  18. package/dist/db/schema.d.ts +588 -0
  19. package/dist/db/schema.d.ts.map +1 -0
  20. package/dist/db/schema.js +59 -0
  21. package/dist/db/schema.js.map +1 -0
  22. package/dist/index.d.ts +34 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +126 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/lib/automations-builder.d.ts +21 -0
  27. package/dist/lib/automations-builder.d.ts.map +1 -0
  28. package/dist/lib/automations-builder.js +557 -0
  29. package/dist/lib/automations-builder.js.map +1 -0
  30. package/dist/lib/automations-types.d.ts +153 -0
  31. package/dist/lib/automations-types.d.ts.map +1 -0
  32. package/dist/lib/automations-types.js +191 -0
  33. package/dist/lib/automations-types.js.map +1 -0
  34. package/dist/lib/index.d.ts +3 -0
  35. package/dist/lib/index.d.ts.map +1 -0
  36. package/dist/lib/index.js +3 -0
  37. package/dist/lib/index.js.map +1 -0
  38. package/dist/lib/legacy-task-migration.d.ts +20 -0
  39. package/dist/lib/legacy-task-migration.d.ts.map +1 -0
  40. package/dist/lib/legacy-task-migration.js +110 -0
  41. package/dist/lib/legacy-task-migration.js.map +1 -0
  42. package/dist/lib/legacy-text-trigger-migration.d.ts +18 -0
  43. package/dist/lib/legacy-text-trigger-migration.d.ts.map +1 -0
  44. package/dist/lib/legacy-text-trigger-migration.js +131 -0
  45. package/dist/lib/legacy-text-trigger-migration.js.map +1 -0
  46. package/dist/lib/workflow-clarification.d.ts +113 -0
  47. package/dist/lib/workflow-clarification.d.ts.map +1 -0
  48. package/dist/lib/workflow-clarification.js +425 -0
  49. package/dist/lib/workflow-clarification.js.map +1 -0
  50. package/dist/plugin-routes.d.ts +9 -0
  51. package/dist/plugin-routes.d.ts.map +1 -0
  52. package/dist/plugin-routes.js +147 -0
  53. package/dist/plugin-routes.js.map +1 -0
  54. package/dist/providers/activeWorkflows.d.ts +11 -0
  55. package/dist/providers/activeWorkflows.d.ts.map +1 -0
  56. package/dist/providers/activeWorkflows.js +72 -0
  57. package/dist/providers/activeWorkflows.js.map +1 -0
  58. package/dist/providers/index.d.ts +4 -0
  59. package/dist/providers/index.d.ts.map +1 -0
  60. package/dist/providers/index.js +4 -0
  61. package/dist/providers/index.js.map +1 -0
  62. package/dist/providers/pendingDraft.d.ts +9 -0
  63. package/dist/providers/pendingDraft.d.ts.map +1 -0
  64. package/dist/providers/pendingDraft.js +48 -0
  65. package/dist/providers/pendingDraft.js.map +1 -0
  66. package/dist/providers/workflowStatus.d.ts +3 -0
  67. package/dist/providers/workflowStatus.d.ts.map +1 -0
  68. package/dist/providers/workflowStatus.js +69 -0
  69. package/dist/providers/workflowStatus.js.map +1 -0
  70. package/dist/register-routes.d.ts +2 -0
  71. package/dist/register-routes.d.ts.map +1 -0
  72. package/dist/register-routes.js +6 -0
  73. package/dist/register-routes.js.map +1 -0
  74. package/dist/routes/_helpers.d.ts +11 -0
  75. package/dist/routes/_helpers.d.ts.map +1 -0
  76. package/dist/routes/_helpers.js +22 -0
  77. package/dist/routes/_helpers.js.map +1 -0
  78. package/dist/routes/automations.d.ts +19 -0
  79. package/dist/routes/automations.d.ts.map +1 -0
  80. package/dist/routes/automations.js +32 -0
  81. package/dist/routes/automations.js.map +1 -0
  82. package/dist/routes/embedded-webhooks.d.ts +3 -0
  83. package/dist/routes/embedded-webhooks.d.ts.map +1 -0
  84. package/dist/routes/embedded-webhooks.js +47 -0
  85. package/dist/routes/embedded-webhooks.js.map +1 -0
  86. package/dist/routes/executions.d.ts +3 -0
  87. package/dist/routes/executions.d.ts.map +1 -0
  88. package/dist/routes/executions.js +58 -0
  89. package/dist/routes/executions.js.map +1 -0
  90. package/dist/routes/index.d.ts +4 -0
  91. package/dist/routes/index.d.ts.map +1 -0
  92. package/dist/routes/index.js +14 -0
  93. package/dist/routes/index.js.map +1 -0
  94. package/dist/routes/nodes.d.ts +3 -0
  95. package/dist/routes/nodes.d.ts.map +1 -0
  96. package/dist/routes/nodes.js +168 -0
  97. package/dist/routes/nodes.js.map +1 -0
  98. package/dist/routes/validation.d.ts +3 -0
  99. package/dist/routes/validation.d.ts.map +1 -0
  100. package/dist/routes/validation.js +41 -0
  101. package/dist/routes/validation.js.map +1 -0
  102. package/dist/routes/workflow-routes.d.ts +27 -0
  103. package/dist/routes/workflow-routes.d.ts.map +1 -0
  104. package/dist/routes/workflow-routes.js +326 -0
  105. package/dist/routes/workflow-routes.js.map +1 -0
  106. package/dist/routes/workflows.d.ts +3 -0
  107. package/dist/routes/workflows.d.ts.map +1 -0
  108. package/dist/routes/workflows.js +252 -0
  109. package/dist/routes/workflows.js.map +1 -0
  110. package/dist/schemas/draftIntent.d.ts +22 -0
  111. package/dist/schemas/draftIntent.d.ts.map +1 -0
  112. package/dist/schemas/draftIntent.js +22 -0
  113. package/dist/schemas/draftIntent.js.map +1 -0
  114. package/dist/schemas/feasibility.d.ts +13 -0
  115. package/dist/schemas/feasibility.d.ts.map +1 -0
  116. package/dist/schemas/feasibility.js +9 -0
  117. package/dist/schemas/feasibility.js.map +1 -0
  118. package/dist/schemas/index.d.ts +5 -0
  119. package/dist/schemas/index.d.ts.map +1 -0
  120. package/dist/schemas/index.js +5 -0
  121. package/dist/schemas/index.js.map +1 -0
  122. package/dist/schemas/keywordExtraction.d.ts +14 -0
  123. package/dist/schemas/keywordExtraction.d.ts.map +1 -0
  124. package/dist/schemas/keywordExtraction.js +12 -0
  125. package/dist/schemas/keywordExtraction.js.map +1 -0
  126. package/dist/schemas/workflowMatching.d.ts +36 -0
  127. package/dist/schemas/workflowMatching.d.ts.map +1 -0
  128. package/dist/schemas/workflowMatching.js +30 -0
  129. package/dist/schemas/workflowMatching.js.map +1 -0
  130. package/dist/services/embedded-workflow-service.d.ts +106 -0
  131. package/dist/services/embedded-workflow-service.d.ts.map +1 -0
  132. package/dist/services/embedded-workflow-service.js +1900 -0
  133. package/dist/services/embedded-workflow-service.js.map +1 -0
  134. package/dist/services/index.d.ts +5 -0
  135. package/dist/services/index.d.ts.map +1 -0
  136. package/dist/services/index.js +5 -0
  137. package/dist/services/index.js.map +1 -0
  138. package/dist/services/workflow-credential-store.d.ts +27 -0
  139. package/dist/services/workflow-credential-store.d.ts.map +1 -0
  140. package/dist/services/workflow-credential-store.js +92 -0
  141. package/dist/services/workflow-credential-store.js.map +1 -0
  142. package/dist/services/workflow-dispatch.d.ts +41 -0
  143. package/dist/services/workflow-dispatch.d.ts.map +1 -0
  144. package/dist/services/workflow-dispatch.js +86 -0
  145. package/dist/services/workflow-dispatch.js.map +1 -0
  146. package/dist/services/workflow-service.d.ts +63 -0
  147. package/dist/services/workflow-service.d.ts.map +1 -0
  148. package/dist/services/workflow-service.js +492 -0
  149. package/dist/services/workflow-service.js.map +1 -0
  150. package/dist/trigger-routes.d.ts +153 -0
  151. package/dist/trigger-routes.d.ts.map +1 -0
  152. package/dist/trigger-routes.js +424 -0
  153. package/dist/trigger-routes.js.map +1 -0
  154. package/dist/types/index.d.ts +457 -0
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/index.js +59 -0
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/utils/catalog.d.ts +16 -0
  159. package/dist/utils/catalog.d.ts.map +1 -0
  160. package/dist/utils/catalog.js +211 -0
  161. package/dist/utils/catalog.js.map +1 -0
  162. package/dist/utils/clarification.d.ts +17 -0
  163. package/dist/utils/clarification.d.ts.map +1 -0
  164. package/dist/utils/clarification.js +46 -0
  165. package/dist/utils/clarification.js.map +1 -0
  166. package/dist/utils/context.d.ts +4 -0
  167. package/dist/utils/context.d.ts.map +1 -0
  168. package/dist/utils/context.js +18 -0
  169. package/dist/utils/context.js.map +1 -0
  170. package/dist/utils/credentialResolver.d.ts +22 -0
  171. package/dist/utils/credentialResolver.d.ts.map +1 -0
  172. package/dist/utils/credentialResolver.js +146 -0
  173. package/dist/utils/credentialResolver.js.map +1 -0
  174. package/dist/utils/generation.d.ts +36 -0
  175. package/dist/utils/generation.d.ts.map +1 -0
  176. package/dist/utils/generation.js +701 -0
  177. package/dist/utils/generation.js.map +1 -0
  178. package/dist/utils/host-capabilities.d.ts +27 -0
  179. package/dist/utils/host-capabilities.d.ts.map +1 -0
  180. package/dist/utils/host-capabilities.js +59 -0
  181. package/dist/utils/host-capabilities.js.map +1 -0
  182. package/dist/utils/inferSyntheticOutputSchema.d.ts +20 -0
  183. package/dist/utils/inferSyntheticOutputSchema.d.ts.map +1 -0
  184. package/dist/utils/inferSyntheticOutputSchema.js +151 -0
  185. package/dist/utils/inferSyntheticOutputSchema.js.map +1 -0
  186. package/dist/utils/outputSchema.d.ts +26 -0
  187. package/dist/utils/outputSchema.d.ts.map +1 -0
  188. package/dist/utils/outputSchema.js +297 -0
  189. package/dist/utils/outputSchema.js.map +1 -0
  190. package/dist/utils/validateAndRepair.d.ts +41 -0
  191. package/dist/utils/validateAndRepair.d.ts.map +1 -0
  192. package/dist/utils/validateAndRepair.js +483 -0
  193. package/dist/utils/validateAndRepair.js.map +1 -0
  194. package/dist/utils/workflow-prompts/actionResponse.d.ts +2 -0
  195. package/dist/utils/workflow-prompts/actionResponse.d.ts.map +1 -0
  196. package/dist/utils/workflow-prompts/actionResponse.js +17 -0
  197. package/dist/utils/workflow-prompts/actionResponse.js.map +1 -0
  198. package/dist/utils/workflow-prompts/draftIntent.d.ts +2 -0
  199. package/dist/utils/workflow-prompts/draftIntent.d.ts.map +1 -0
  200. package/dist/utils/workflow-prompts/draftIntent.js +23 -0
  201. package/dist/utils/workflow-prompts/draftIntent.js.map +1 -0
  202. package/dist/utils/workflow-prompts/feasibilityCheck.d.ts +2 -0
  203. package/dist/utils/workflow-prompts/feasibilityCheck.d.ts.map +1 -0
  204. package/dist/utils/workflow-prompts/feasibilityCheck.js +21 -0
  205. package/dist/utils/workflow-prompts/feasibilityCheck.js.map +1 -0
  206. package/dist/utils/workflow-prompts/fieldCorrection.d.ts +3 -0
  207. package/dist/utils/workflow-prompts/fieldCorrection.d.ts.map +1 -0
  208. package/dist/utils/workflow-prompts/fieldCorrection.js +20 -0
  209. package/dist/utils/workflow-prompts/fieldCorrection.js.map +1 -0
  210. package/dist/utils/workflow-prompts/index.d.ts +8 -0
  211. package/dist/utils/workflow-prompts/index.d.ts.map +1 -0
  212. package/dist/utils/workflow-prompts/index.js +8 -0
  213. package/dist/utils/workflow-prompts/index.js.map +1 -0
  214. package/dist/utils/workflow-prompts/keywordExtraction.d.ts +2 -0
  215. package/dist/utils/workflow-prompts/keywordExtraction.d.ts.map +1 -0
  216. package/dist/utils/workflow-prompts/keywordExtraction.js +21 -0
  217. package/dist/utils/workflow-prompts/keywordExtraction.js.map +1 -0
  218. package/dist/utils/workflow-prompts/parameterCorrection.d.ts +3 -0
  219. package/dist/utils/workflow-prompts/parameterCorrection.d.ts.map +1 -0
  220. package/dist/utils/workflow-prompts/parameterCorrection.js +29 -0
  221. package/dist/utils/workflow-prompts/parameterCorrection.js.map +1 -0
  222. package/dist/utils/workflow-prompts/workflowGeneration.d.ts +2 -0
  223. package/dist/utils/workflow-prompts/workflowGeneration.d.ts.map +1 -0
  224. package/dist/utils/workflow-prompts/workflowGeneration.js +529 -0
  225. package/dist/utils/workflow-prompts/workflowGeneration.js.map +1 -0
  226. package/dist/utils/workflow-prompts/workflowMatching.d.ts +2 -0
  227. package/dist/utils/workflow-prompts/workflowMatching.d.ts.map +1 -0
  228. package/dist/utils/workflow-prompts/workflowMatching.js +23 -0
  229. package/dist/utils/workflow-prompts/workflowMatching.js.map +1 -0
  230. package/dist/utils/workflow.d.ts +62 -0
  231. package/dist/utils/workflow.d.ts.map +1 -0
  232. package/dist/utils/workflow.js +712 -0
  233. package/dist/utils/workflow.js.map +1 -0
  234. package/package.json +87 -0
  235. package/src/actions/index.ts +1 -0
  236. package/src/actions/workflow.ts +494 -0
  237. package/src/data/defaultNodes.json +9887 -0
  238. package/src/data/schemaIndex.json +1 -0
  239. package/src/data/triggerSchemaIndex.json +1 -0
  240. package/src/db/index.ts +8 -0
  241. package/src/db/schema.ts +94 -0
  242. package/src/index.ts +179 -0
  243. package/src/lib/automations-builder.ts +679 -0
  244. package/src/lib/automations-types.ts +391 -0
  245. package/src/lib/index.ts +8 -0
  246. package/src/lib/legacy-task-migration.ts +143 -0
  247. package/src/lib/legacy-text-trigger-migration.ts +178 -0
  248. package/src/lib/workflow-clarification.ts +497 -0
  249. package/src/plugin-routes.ts +164 -0
  250. package/src/providers/activeWorkflows.ts +81 -0
  251. package/src/providers/index.ts +3 -0
  252. package/src/providers/pendingDraft.ts +55 -0
  253. package/src/providers/workflowStatus.ts +88 -0
  254. package/src/register-routes.ts +6 -0
  255. package/src/routes/_helpers.ts +27 -0
  256. package/src/routes/automations.ts +46 -0
  257. package/src/routes/embedded-webhooks.ts +64 -0
  258. package/src/routes/executions.ts +75 -0
  259. package/src/routes/index.ts +16 -0
  260. package/src/routes/nodes.ts +211 -0
  261. package/src/routes/validation.ts +51 -0
  262. package/src/routes/workflow-routes.ts +469 -0
  263. package/src/routes/workflows.ts +310 -0
  264. package/src/schemas/draftIntent.ts +21 -0
  265. package/src/schemas/feasibility.ts +8 -0
  266. package/src/schemas/index.ts +4 -0
  267. package/src/schemas/keywordExtraction.ts +11 -0
  268. package/src/schemas/workflowMatching.ts +29 -0
  269. package/src/services/embedded-workflow-service.ts +2224 -0
  270. package/src/services/index.ts +17 -0
  271. package/src/services/workflow-credential-store.ts +132 -0
  272. package/src/services/workflow-dispatch.ts +121 -0
  273. package/src/services/workflow-service.ts +839 -0
  274. package/src/trigger-routes.ts +714 -0
  275. package/src/types/index.ts +562 -0
  276. package/src/utils/catalog.ts +260 -0
  277. package/src/utils/clarification.ts +52 -0
  278. package/src/utils/context.ts +22 -0
  279. package/src/utils/credentialResolver.ts +234 -0
  280. package/src/utils/generation.ts +987 -0
  281. package/src/utils/host-capabilities.ts +81 -0
  282. package/src/utils/inferSyntheticOutputSchema.ts +163 -0
  283. package/src/utils/outputSchema.ts +372 -0
  284. package/src/utils/validateAndRepair.ts +610 -0
  285. package/src/utils/workflow-prompts/actionResponse.ts +16 -0
  286. package/src/utils/workflow-prompts/draftIntent.ts +22 -0
  287. package/src/utils/workflow-prompts/feasibilityCheck.ts +20 -0
  288. package/src/utils/workflow-prompts/fieldCorrection.ts +20 -0
  289. package/src/utils/workflow-prompts/index.ts +10 -0
  290. package/src/utils/workflow-prompts/keywordExtraction.ts +20 -0
  291. package/src/utils/workflow-prompts/parameterCorrection.ts +29 -0
  292. package/src/utils/workflow-prompts/workflowGeneration.ts +528 -0
  293. package/src/utils/workflow-prompts/workflowMatching.ts +22 -0
  294. package/src/utils/workflow.ts +895 -0
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Local types for the `/api/automations` response surface.
3
+ *
4
+ * These mirror the consumer-side shapes in @elizaos/ui's
5
+ * `client-types-config.ts`. We can't import @elizaos/ui from plugin-workflow
6
+ * (UI is a frontend package) and we can't import @elizaos/agent (would
7
+ * create a dependency cycle). The producer just needs to emit the right
8
+ * JSON; consumers retain their own view.
9
+ */
10
+ import type { Task } from '@elizaos/core';
11
+ export type ConversationScope = 'general' | 'automation-coordinator' | 'automation-workflow' | 'automation-workflow-draft' | 'automation-draft' | 'page-character' | 'page-apps' | 'page-connectors' | 'page-phone' | 'page-plugins' | 'page-lifeops' | 'page-settings' | 'page-wallet' | 'page-browser' | 'page-automations';
12
+ export type ConversationAutomationType = 'coordinator_text' | 'workflow';
13
+ export interface ConversationMetadata {
14
+ scope?: ConversationScope;
15
+ automationType?: ConversationAutomationType;
16
+ taskId?: string;
17
+ triggerId?: string;
18
+ workflowId?: string;
19
+ workflowName?: string;
20
+ draftId?: string;
21
+ pageId?: string;
22
+ sourceConversationId?: string;
23
+ terminalBridgeConversationId?: string;
24
+ }
25
+ export declare function isAutomationConversationMetadata(metadata: ConversationMetadata | null | undefined): boolean;
26
+ export type TriggerType = 'interval' | 'once' | 'cron' | 'event';
27
+ export type TriggerWakeMode = 'inject_now' | 'next_autonomy_cycle';
28
+ export type TriggerLastStatus = 'success' | 'error' | 'skipped';
29
+ export type TriggerKind = 'text' | 'workflow';
30
+ export interface TriggerSummary {
31
+ id: string;
32
+ taskId: string;
33
+ displayName: string;
34
+ instructions: string;
35
+ triggerType: TriggerType;
36
+ enabled: boolean;
37
+ wakeMode: TriggerWakeMode;
38
+ createdBy: string;
39
+ timezone?: string;
40
+ intervalMs?: number;
41
+ scheduledAtIso?: string;
42
+ cronExpression?: string;
43
+ eventKind?: string;
44
+ maxRuns?: number;
45
+ runCount: number;
46
+ nextRunAtMs?: number;
47
+ lastRunAtIso?: string;
48
+ lastStatus?: TriggerLastStatus;
49
+ lastError?: string;
50
+ updatedAt?: number;
51
+ updateInterval?: number;
52
+ kind?: TriggerKind;
53
+ workflowId?: string;
54
+ workflowName?: string;
55
+ }
56
+ interface TriggerConfigShape {
57
+ version?: number;
58
+ triggerId?: string;
59
+ displayName?: string;
60
+ instructions?: string;
61
+ triggerType?: TriggerType;
62
+ enabled?: boolean;
63
+ wakeMode?: TriggerWakeMode;
64
+ createdBy?: string;
65
+ timezone?: string;
66
+ intervalMs?: number;
67
+ scheduledAtIso?: string;
68
+ cronExpression?: string;
69
+ eventKind?: string;
70
+ maxRuns?: number;
71
+ runCount?: number;
72
+ nextRunAtMs?: number;
73
+ lastRunAtIso?: string;
74
+ lastStatus?: TriggerLastStatus;
75
+ lastError?: string;
76
+ kind?: TriggerKind;
77
+ workflowId?: string;
78
+ workflowName?: string;
79
+ }
80
+ /**
81
+ * Mirrors `readTriggerConfig` in @elizaos/agent triggers/runtime.ts.
82
+ */
83
+ export declare function readTriggerConfig(task: Task): TriggerConfigShape | null;
84
+ /**
85
+ * Mirrors `taskToTriggerSummary` in @elizaos/agent triggers/runtime.ts.
86
+ */
87
+ export declare function taskToTriggerSummary(task: Task): TriggerSummary | null;
88
+ export interface WorkbenchTaskView {
89
+ id: string;
90
+ name: string;
91
+ description: string;
92
+ tags: string[];
93
+ isCompleted: boolean;
94
+ updatedAt?: number;
95
+ }
96
+ /**
97
+ * Mirrors `toWorkbenchTask` in @elizaos/agent workbench-helpers.ts.
98
+ */
99
+ export declare function toWorkbenchTaskView(task: Task): WorkbenchTaskView | null;
100
+ export type AutomationType = 'coordinator_text' | 'workflow' | 'automation_draft';
101
+ export type AutomationSource = 'workbench_task' | 'trigger' | 'workflow' | 'workflow_draft' | 'workflow_shadow' | 'automation_draft';
102
+ export type AutomationStatus = 'active' | 'paused' | 'completed' | 'draft' | 'system';
103
+ export interface AutomationRoomBinding {
104
+ conversationId: string | null;
105
+ roomId: string;
106
+ scope: ConversationScope;
107
+ sourceConversationId?: string;
108
+ terminalBridgeConversationId?: string;
109
+ }
110
+ export interface AutomationLastExecution {
111
+ status: 'success' | 'error' | 'running' | 'waiting' | 'unknown';
112
+ startedAt: string;
113
+ stoppedAt?: string | null;
114
+ errorMessage?: string;
115
+ }
116
+ export interface AutomationItem {
117
+ id: string;
118
+ type: AutomationType;
119
+ source: AutomationSource;
120
+ title: string;
121
+ description: string;
122
+ status: AutomationStatus;
123
+ enabled: boolean;
124
+ system: boolean;
125
+ isDraft: boolean;
126
+ hasBackingWorkflow: boolean;
127
+ updatedAt: string | null;
128
+ taskId?: string;
129
+ triggerId?: string;
130
+ workflowId?: string;
131
+ draftId?: string;
132
+ task?: WorkbenchTaskView;
133
+ trigger?: TriggerSummary;
134
+ workflow?: unknown;
135
+ schedules: TriggerSummary[];
136
+ room?: AutomationRoomBinding | null;
137
+ lastExecution?: AutomationLastExecution;
138
+ }
139
+ export interface AutomationSummary {
140
+ total: number;
141
+ coordinatorCount: number;
142
+ workflowCount: number;
143
+ scheduledCount: number;
144
+ draftCount: number;
145
+ }
146
+ export interface AutomationListResponse {
147
+ automations: AutomationItem[];
148
+ summary: AutomationSummary;
149
+ workflowStatus: unknown;
150
+ workflowFetchError: string | null;
151
+ }
152
+ export {};
153
+ //# sourceMappingURL=automations-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automations-types.d.ts","sourceRoot":"","sources":["../../src/lib/automations-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Local types for the `/api/automations` response surface.
3
+ *
4
+ * These mirror the consumer-side shapes in @elizaos/ui's
5
+ * `client-types-config.ts`. We can't import @elizaos/ui from plugin-workflow
6
+ * (UI is a frontend package) and we can't import @elizaos/agent (would
7
+ * create a dependency cycle). The producer just needs to emit the right
8
+ * JSON; consumers retain their own view.
9
+ */
10
+ export function isAutomationConversationMetadata(metadata) {
11
+ return (metadata?.scope === 'automation-coordinator' ||
12
+ metadata?.scope === 'automation-workflow' ||
13
+ metadata?.scope === 'automation-workflow-draft' ||
14
+ metadata?.scope === 'automation-draft');
15
+ }
16
+ const HEARTBEAT_TASK_TAGS = ['queue', 'repeat', 'heartbeat'];
17
+ function taskMetadata(task) {
18
+ return (task.metadata ?? {});
19
+ }
20
+ /**
21
+ * Mirrors `readTriggerConfig` in @elizaos/agent triggers/runtime.ts.
22
+ */
23
+ export function readTriggerConfig(task) {
24
+ const trigger = taskMetadata(task).trigger;
25
+ if (!trigger || typeof trigger !== 'object' || Array.isArray(trigger))
26
+ return null;
27
+ return trigger.triggerId ? trigger : null;
28
+ }
29
+ function isExplicitHeartbeatTask(task) {
30
+ const tags = task.tags ?? [];
31
+ return HEARTBEAT_TASK_TAGS.every((tag) => tags.includes(tag));
32
+ }
33
+ function deriveSystemHeartbeatName(task) {
34
+ if (task.name && task.name.length > 0) {
35
+ return task.name
36
+ .replace(/_/g, ' ')
37
+ .toLowerCase()
38
+ .replace(/\b\w/g, (c) => c.toUpperCase());
39
+ }
40
+ const tag = (task.tags ?? []).find((t) => t !== 'queue' && t !== 'repeat' && t !== 'trigger');
41
+ if (tag) {
42
+ return `${tag.charAt(0).toUpperCase()}${tag.slice(1)} Heartbeat`;
43
+ }
44
+ return 'System Heartbeat';
45
+ }
46
+ function synthesizeSystemHeartbeatSummary(task) {
47
+ if (!task.id)
48
+ return null;
49
+ const metadata = taskMetadata(task);
50
+ const intervalMs = typeof metadata.updateInterval === 'number' ? metadata.updateInterval : undefined;
51
+ const tags = task.tags ?? [];
52
+ const createdBy = tags.find((t) => t !== 'queue' && t !== 'repeat' && t !== 'trigger') ?? 'system';
53
+ return {
54
+ id: task.id,
55
+ taskId: task.id,
56
+ displayName: deriveSystemHeartbeatName(task),
57
+ instructions: task.description ?? '',
58
+ triggerType: 'interval',
59
+ enabled: true,
60
+ wakeMode: 'next_autonomy_cycle',
61
+ createdBy,
62
+ intervalMs,
63
+ runCount: 0,
64
+ updatedAt: typeof metadata.updatedAt === 'number' ? metadata.updatedAt : undefined,
65
+ updateInterval: intervalMs,
66
+ };
67
+ }
68
+ /**
69
+ * Mirrors `taskToTriggerSummary` in @elizaos/agent triggers/runtime.ts.
70
+ */
71
+ export function taskToTriggerSummary(task) {
72
+ const trigger = readTriggerConfig(task);
73
+ if (trigger &&
74
+ task.id &&
75
+ trigger.triggerId &&
76
+ trigger.displayName !== undefined &&
77
+ trigger.instructions !== undefined &&
78
+ trigger.triggerType &&
79
+ trigger.enabled !== undefined &&
80
+ trigger.wakeMode &&
81
+ trigger.createdBy) {
82
+ const metadata = taskMetadata(task);
83
+ return {
84
+ id: trigger.triggerId,
85
+ taskId: task.id,
86
+ displayName: trigger.displayName,
87
+ instructions: trigger.instructions,
88
+ triggerType: trigger.triggerType,
89
+ enabled: trigger.enabled,
90
+ wakeMode: trigger.wakeMode,
91
+ createdBy: trigger.createdBy,
92
+ ...(trigger.timezone !== undefined ? { timezone: trigger.timezone } : {}),
93
+ ...(trigger.intervalMs !== undefined ? { intervalMs: trigger.intervalMs } : {}),
94
+ ...(trigger.scheduledAtIso !== undefined ? { scheduledAtIso: trigger.scheduledAtIso } : {}),
95
+ ...(trigger.cronExpression !== undefined ? { cronExpression: trigger.cronExpression } : {}),
96
+ ...(trigger.eventKind !== undefined ? { eventKind: trigger.eventKind } : {}),
97
+ ...(trigger.maxRuns !== undefined ? { maxRuns: trigger.maxRuns } : {}),
98
+ runCount: typeof trigger.runCount === 'number' ? trigger.runCount : 0,
99
+ ...(trigger.nextRunAtMs !== undefined ? { nextRunAtMs: trigger.nextRunAtMs } : {}),
100
+ ...(trigger.lastRunAtIso !== undefined ? { lastRunAtIso: trigger.lastRunAtIso } : {}),
101
+ ...(trigger.lastStatus !== undefined ? { lastStatus: trigger.lastStatus } : {}),
102
+ ...(trigger.lastError !== undefined ? { lastError: trigger.lastError } : {}),
103
+ ...(metadata.updatedAt !== undefined ? { updatedAt: metadata.updatedAt } : {}),
104
+ ...(metadata.updateInterval !== undefined ? { updateInterval: metadata.updateInterval } : {}),
105
+ ...(trigger.kind !== undefined ? { kind: trigger.kind } : {}),
106
+ ...(trigger.workflowId !== undefined ? { workflowId: trigger.workflowId } : {}),
107
+ ...(trigger.workflowName !== undefined ? { workflowName: trigger.workflowName } : {}),
108
+ };
109
+ }
110
+ if (isExplicitHeartbeatTask(task)) {
111
+ return synthesizeSystemHeartbeatSummary(task);
112
+ }
113
+ return null;
114
+ }
115
+ // ---------------------------------------------------------------------------
116
+ // Workbench task (mirrors @elizaos/agent workbench-helpers.ts)
117
+ // ---------------------------------------------------------------------------
118
+ const WORKBENCH_TASK_TAG = 'workbench-task';
119
+ const WORKBENCH_TODO_TAG = 'workbench-todo';
120
+ function isObject(value) {
121
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
122
+ }
123
+ function normalizeStringArray(value) {
124
+ if (!Array.isArray(value))
125
+ return [];
126
+ return value
127
+ .filter((item) => typeof item === 'string')
128
+ .map((item) => item.trim())
129
+ .filter((item) => item.length > 0);
130
+ }
131
+ function normalizeTimestamp(value) {
132
+ if (typeof value === 'number' && Number.isFinite(value))
133
+ return value;
134
+ if (value instanceof Date)
135
+ return value.getTime();
136
+ if (typeof value === 'string') {
137
+ const asNumber = Number(value);
138
+ if (Number.isFinite(asNumber))
139
+ return asNumber;
140
+ const parsed = Date.parse(value);
141
+ if (Number.isFinite(parsed))
142
+ return parsed;
143
+ }
144
+ return undefined;
145
+ }
146
+ function readTaskMetadata(task) {
147
+ return isObject(task.metadata) ? task.metadata : {};
148
+ }
149
+ function readTaskCompleted(task) {
150
+ const metadata = readTaskMetadata(task);
151
+ if (typeof metadata.isCompleted === 'boolean')
152
+ return metadata.isCompleted;
153
+ const todoMeta = (isObject(metadata.workbenchTodo) ? metadata.workbenchTodo : null) ??
154
+ (isObject(metadata.todo) ? metadata.todo : null);
155
+ if (todoMeta && typeof todoMeta.isCompleted === 'boolean') {
156
+ return todoMeta.isCompleted;
157
+ }
158
+ return false;
159
+ }
160
+ function isWorkbenchTodoTask(task) {
161
+ if (readTriggerConfig(task))
162
+ return false;
163
+ const tags = new Set(normalizeStringArray(task.tags));
164
+ if (tags.has(WORKBENCH_TODO_TAG) || tags.has('todo'))
165
+ return true;
166
+ const metadata = readTaskMetadata(task);
167
+ return isObject(metadata.workbenchTodo) || isObject(metadata.todo);
168
+ }
169
+ /**
170
+ * Mirrors `toWorkbenchTask` in @elizaos/agent workbench-helpers.ts.
171
+ */
172
+ export function toWorkbenchTaskView(task) {
173
+ if (!task.tags?.includes(WORKBENCH_TASK_TAG))
174
+ return null;
175
+ if (readTriggerConfig(task) || isWorkbenchTodoTask(task))
176
+ return null;
177
+ const id = typeof task.id === 'string' && task.id.trim().length > 0 ? task.id : null;
178
+ if (!id)
179
+ return null;
180
+ const metadata = readTaskMetadata(task);
181
+ const updatedAt = normalizeTimestamp(task.updatedAt) ?? normalizeTimestamp(metadata.updatedAt);
182
+ return {
183
+ id,
184
+ name: typeof task.name === 'string' && task.name.trim().length > 0 ? task.name : 'Task',
185
+ description: typeof task.description === 'string' ? task.description : '',
186
+ tags: normalizeStringArray(task.tags),
187
+ isCompleted: readTaskCompleted(task),
188
+ ...(updatedAt !== undefined ? { updatedAt } : {}),
189
+ };
190
+ }
191
+ //# sourceMappingURL=automations-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automations-types.js","sourceRoot":"","sources":["../../src/lib/automations-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwCH,MAAM,UAAU,gCAAgC,CAC9C,QAAiD;IAEjD,OAAO,CACL,QAAQ,EAAE,KAAK,KAAK,wBAAwB;QAC5C,QAAQ,EAAE,KAAK,KAAK,qBAAqB;QACzC,QAAQ,EAAE,KAAK,KAAK,2BAA2B;QAC/C,QAAQ,EAAE,KAAK,KAAK,kBAAkB,CACvC,CAAC;AACJ,CAAC;AAuED,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AAEtE,SAAS,YAAY,CAAC,IAAU;IAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAA6B,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAU;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAU;IAC3C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI;aACb,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,WAAW,EAAE;aACb,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IAC9F,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACnE,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAU;IAClD,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,UAAU,GACd,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,QAAQ,CAAC;IACnF,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,WAAW,EAAE,yBAAyB,CAAC,IAAI,CAAC;QAC5C,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACpC,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,qBAAqB;QAC/B,SAAS;QACT,UAAU;QACV,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAClF,cAAc,EAAE,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAU;IAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IACE,OAAO;QACP,IAAI,CAAC,EAAE;QACP,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,WAAW,KAAK,SAAS;QACjC,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,WAAW;QACnB,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,SAAS,EACjB,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,SAAS;YACrB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC;IACJ,CAAC;IAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,+DAA+D;AAC/D,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAW5C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;SAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IAC7C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAU;IAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAU;IACnC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC3E,MAAM,QAAQ,GACZ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAU;IACrC,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACrB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/F,OAAO;QACL,EAAE;QACF,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QACvF,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACzE,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC;QACpC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { type LegacyTaskMigrationSummary, migrateLegacyWorkbenchTasks, } from './legacy-task-migration';
2
+ export { type LegacyTextTriggerMigrationSummary, migrateLegacyTextTriggers, } from './legacy-text-trigger-migration';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAC/B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,iCAAiC,EACtC,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { migrateLegacyWorkbenchTasks, } from './legacy-task-migration';
2
+ export { migrateLegacyTextTriggers, } from './legacy-text-trigger-migration';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Idempotent migration: legacy `workbench-task` Task records → workflows
3
+ *
4
+ * Walks every Task tagged `workbench-task` for the running agent and, for
5
+ * each task that has not already been converted, deploys a one-node workflow
6
+ * built around `workflows-nodes-base.respondToEvent`. The original task is
7
+ * mutated in place to record `metadata.migratedToWorkflowId` so subsequent
8
+ * boots skip it.
9
+ *
10
+ * Designed to run on every plugin init; per-task try/catch keeps a single
11
+ * failed conversion from aborting the loop. The function never throws.
12
+ */
13
+ import { type IAgentRuntime } from '@elizaos/core';
14
+ export interface LegacyTaskMigrationSummary {
15
+ migrated: number;
16
+ skipped: number;
17
+ failed: number;
18
+ }
19
+ export declare function migrateLegacyWorkbenchTasks(runtime: IAgentRuntime): Promise<LegacyTaskMigrationSummary>;
20
+ //# sourceMappingURL=legacy-task-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-task-migration.d.ts","sourceRoot":"","sources":["../../src/lib/legacy-task-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,eAAe,CAAC;AAQtE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AA+BD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,0BAA0B,CAAC,CAoFrC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Idempotent migration: legacy `workbench-task` Task records → workflows
3
+ *
4
+ * Walks every Task tagged `workbench-task` for the running agent and, for
5
+ * each task that has not already been converted, deploys a one-node workflow
6
+ * built around `workflows-nodes-base.respondToEvent`. The original task is
7
+ * mutated in place to record `metadata.migratedToWorkflowId` so subsequent
8
+ * boots skip it.
9
+ *
10
+ * Designed to run on every plugin init; per-task try/catch keeps a single
11
+ * failed conversion from aborting the loop. The function never throws.
12
+ */
13
+ import { logger } from '@elizaos/core';
14
+ import { WORKFLOW_SERVICE_TYPE } from '../services/workflow-service';
15
+ const WORKBENCH_TASK_TAG = 'workbench-task';
16
+ const RESPOND_TO_EVENT_NODE_TYPE = 'workflows-nodes-base.respondToEvent';
17
+ function readWorkflowService(runtime) {
18
+ const svc = runtime.getService(WORKFLOW_SERVICE_TYPE);
19
+ return svc ?? null;
20
+ }
21
+ function buildRespondToEventWorkflow(task) {
22
+ const displayName = task.name?.trim().length ? task.name : 'Workbench Task';
23
+ const instructions = task.description?.trim().length ? task.description : displayName;
24
+ return {
25
+ name: displayName,
26
+ nodes: [
27
+ {
28
+ id: 'respond-to-event',
29
+ name: 'Respond To Event',
30
+ type: RESPOND_TO_EVENT_NODE_TYPE,
31
+ typeVersion: 1,
32
+ position: [0, 0],
33
+ parameters: {
34
+ instructions,
35
+ displayName,
36
+ wakeMode: 'inject_now',
37
+ },
38
+ },
39
+ ],
40
+ connections: {},
41
+ };
42
+ }
43
+ export async function migrateLegacyWorkbenchTasks(runtime) {
44
+ const summary = { migrated: 0, skipped: 0, failed: 0 };
45
+ const service = readWorkflowService(runtime);
46
+ if (!service) {
47
+ logger.debug({ src: 'plugin:workflow:migration:workbench' }, 'WorkflowService not registered; skipping workbench-task migration');
48
+ return summary;
49
+ }
50
+ let tasks;
51
+ try {
52
+ tasks = await runtime.getTasks({
53
+ agentIds: [runtime.agentId],
54
+ tags: [WORKBENCH_TASK_TAG],
55
+ });
56
+ }
57
+ catch (err) {
58
+ logger.warn({
59
+ src: 'plugin:workflow:migration:workbench',
60
+ err: err instanceof Error ? err.message : String(err),
61
+ }, 'Failed to list workbench-tagged tasks; aborting migration');
62
+ return summary;
63
+ }
64
+ for (const task of tasks) {
65
+ if (!task.id) {
66
+ summary.skipped += 1;
67
+ continue;
68
+ }
69
+ const metadata = (task.metadata ?? {});
70
+ if (typeof metadata.migratedToWorkflowId === 'string') {
71
+ summary.skipped += 1;
72
+ continue;
73
+ }
74
+ try {
75
+ const draft = buildRespondToEventWorkflow(task);
76
+ const deployed = await service.deployWorkflow(draft, runtime.agentId);
77
+ if (!deployed.id) {
78
+ // Deploy returned without a workflow id (typically: missing
79
+ // credentials). Treat as a failure rather than marking the task
80
+ // migrated — we want to retry on a future boot.
81
+ summary.failed += 1;
82
+ logger.warn({
83
+ src: 'plugin:workflow:migration:workbench',
84
+ taskId: task.id,
85
+ taskName: task.name,
86
+ }, 'deployWorkflow returned no id; will retry on next boot');
87
+ continue;
88
+ }
89
+ await runtime.updateTask(task.id, {
90
+ metadata: {
91
+ ...metadata,
92
+ migratedToWorkflowId: deployed.id,
93
+ migratedAt: Date.now(),
94
+ },
95
+ });
96
+ summary.migrated += 1;
97
+ }
98
+ catch (err) {
99
+ summary.failed += 1;
100
+ logger.warn({
101
+ src: 'plugin:workflow:migration:workbench',
102
+ taskId: task.id,
103
+ taskName: task.name,
104
+ err: err instanceof Error ? err.message : String(err),
105
+ }, 'Failed to migrate workbench task to workflow');
106
+ }
107
+ }
108
+ return summary;
109
+ }
110
+ //# sourceMappingURL=legacy-task-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-task-migration.js","sourceRoot":"","sources":["../../src/lib/legacy-task-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Idempotent migration: legacy `kind: "text"` trigger Tasks → workflow triggers
3
+ *
4
+ * Walks every TRIGGER_DISPATCH task for the running agent. For each task whose
5
+ * stored `metadata.trigger.kind` is `"text"` (or omitted, which is the legacy
6
+ * default), deploy a one-node workflow built around
7
+ * `workflows-nodes-base.respondToEvent` and rewrite the trigger metadata so
8
+ * `kind = "workflow"` plus a pointer to the new workflow. A `migratedFromText`
9
+ * marker prevents double-conversion on subsequent boots.
10
+ */
11
+ import { type IAgentRuntime } from '@elizaos/core';
12
+ export interface LegacyTextTriggerMigrationSummary {
13
+ migrated: number;
14
+ skipped: number;
15
+ failed: number;
16
+ }
17
+ export declare function migrateLegacyTextTriggers(runtime: IAgentRuntime): Promise<LegacyTextTriggerMigrationSummary>;
18
+ //# sourceMappingURL=legacy-text-trigger-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-text-trigger-migration.d.ts","sourceRoot":"","sources":["../../src/lib/legacy-text-trigger-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,eAAe,CAAC;AAQvB,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AA+CD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,iCAAiC,CAAC,CAmG5C"}