@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.
- package/README.md +71 -0
- package/auto-enable.ts +18 -0
- package/dist/actions/index.d.ts +2 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +2 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/workflow.d.ts +23 -0
- package/dist/actions/workflow.d.ts.map +1 -0
- package/dist/actions/workflow.js +425 -0
- package/dist/actions/workflow.js.map +1 -0
- package/dist/data/defaultNodes.json +9887 -0
- package/dist/data/schemaIndex.json +1 -0
- package/dist/data/triggerSchemaIndex.json +1 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +2 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +588 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +59 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/automations-builder.d.ts +21 -0
- package/dist/lib/automations-builder.d.ts.map +1 -0
- package/dist/lib/automations-builder.js +557 -0
- package/dist/lib/automations-builder.js.map +1 -0
- package/dist/lib/automations-types.d.ts +153 -0
- package/dist/lib/automations-types.d.ts.map +1 -0
- package/dist/lib/automations-types.js +191 -0
- package/dist/lib/automations-types.js.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +3 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/legacy-task-migration.d.ts +20 -0
- package/dist/lib/legacy-task-migration.d.ts.map +1 -0
- package/dist/lib/legacy-task-migration.js +110 -0
- package/dist/lib/legacy-task-migration.js.map +1 -0
- package/dist/lib/legacy-text-trigger-migration.d.ts +18 -0
- package/dist/lib/legacy-text-trigger-migration.d.ts.map +1 -0
- package/dist/lib/legacy-text-trigger-migration.js +131 -0
- package/dist/lib/legacy-text-trigger-migration.js.map +1 -0
- package/dist/lib/workflow-clarification.d.ts +113 -0
- package/dist/lib/workflow-clarification.d.ts.map +1 -0
- package/dist/lib/workflow-clarification.js +425 -0
- package/dist/lib/workflow-clarification.js.map +1 -0
- package/dist/plugin-routes.d.ts +9 -0
- package/dist/plugin-routes.d.ts.map +1 -0
- package/dist/plugin-routes.js +147 -0
- package/dist/plugin-routes.js.map +1 -0
- package/dist/providers/activeWorkflows.d.ts +11 -0
- package/dist/providers/activeWorkflows.d.ts.map +1 -0
- package/dist/providers/activeWorkflows.js +72 -0
- package/dist/providers/activeWorkflows.js.map +1 -0
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +4 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/pendingDraft.d.ts +9 -0
- package/dist/providers/pendingDraft.d.ts.map +1 -0
- package/dist/providers/pendingDraft.js +48 -0
- package/dist/providers/pendingDraft.js.map +1 -0
- package/dist/providers/workflowStatus.d.ts +3 -0
- package/dist/providers/workflowStatus.d.ts.map +1 -0
- package/dist/providers/workflowStatus.js +69 -0
- package/dist/providers/workflowStatus.js.map +1 -0
- package/dist/register-routes.d.ts +2 -0
- package/dist/register-routes.d.ts.map +1 -0
- package/dist/register-routes.js +6 -0
- package/dist/register-routes.js.map +1 -0
- package/dist/routes/_helpers.d.ts +11 -0
- package/dist/routes/_helpers.d.ts.map +1 -0
- package/dist/routes/_helpers.js +22 -0
- package/dist/routes/_helpers.js.map +1 -0
- package/dist/routes/automations.d.ts +19 -0
- package/dist/routes/automations.d.ts.map +1 -0
- package/dist/routes/automations.js +32 -0
- package/dist/routes/automations.js.map +1 -0
- package/dist/routes/embedded-webhooks.d.ts +3 -0
- package/dist/routes/embedded-webhooks.d.ts.map +1 -0
- package/dist/routes/embedded-webhooks.js +47 -0
- package/dist/routes/embedded-webhooks.js.map +1 -0
- package/dist/routes/executions.d.ts +3 -0
- package/dist/routes/executions.d.ts.map +1 -0
- package/dist/routes/executions.js +58 -0
- package/dist/routes/executions.js.map +1 -0
- package/dist/routes/index.d.ts +4 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +14 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/nodes.d.ts +3 -0
- package/dist/routes/nodes.d.ts.map +1 -0
- package/dist/routes/nodes.js +168 -0
- package/dist/routes/nodes.js.map +1 -0
- package/dist/routes/validation.d.ts +3 -0
- package/dist/routes/validation.d.ts.map +1 -0
- package/dist/routes/validation.js +41 -0
- package/dist/routes/validation.js.map +1 -0
- package/dist/routes/workflow-routes.d.ts +27 -0
- package/dist/routes/workflow-routes.d.ts.map +1 -0
- package/dist/routes/workflow-routes.js +326 -0
- package/dist/routes/workflow-routes.js.map +1 -0
- package/dist/routes/workflows.d.ts +3 -0
- package/dist/routes/workflows.d.ts.map +1 -0
- package/dist/routes/workflows.js +252 -0
- package/dist/routes/workflows.js.map +1 -0
- package/dist/schemas/draftIntent.d.ts +22 -0
- package/dist/schemas/draftIntent.d.ts.map +1 -0
- package/dist/schemas/draftIntent.js +22 -0
- package/dist/schemas/draftIntent.js.map +1 -0
- package/dist/schemas/feasibility.d.ts +13 -0
- package/dist/schemas/feasibility.d.ts.map +1 -0
- package/dist/schemas/feasibility.js +9 -0
- package/dist/schemas/feasibility.js.map +1 -0
- package/dist/schemas/index.d.ts +5 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +5 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/keywordExtraction.d.ts +14 -0
- package/dist/schemas/keywordExtraction.d.ts.map +1 -0
- package/dist/schemas/keywordExtraction.js +12 -0
- package/dist/schemas/keywordExtraction.js.map +1 -0
- package/dist/schemas/workflowMatching.d.ts +36 -0
- package/dist/schemas/workflowMatching.d.ts.map +1 -0
- package/dist/schemas/workflowMatching.js +30 -0
- package/dist/schemas/workflowMatching.js.map +1 -0
- package/dist/services/embedded-workflow-service.d.ts +106 -0
- package/dist/services/embedded-workflow-service.d.ts.map +1 -0
- package/dist/services/embedded-workflow-service.js +1900 -0
- package/dist/services/embedded-workflow-service.js.map +1 -0
- package/dist/services/index.d.ts +5 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +5 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/workflow-credential-store.d.ts +27 -0
- package/dist/services/workflow-credential-store.d.ts.map +1 -0
- package/dist/services/workflow-credential-store.js +92 -0
- package/dist/services/workflow-credential-store.js.map +1 -0
- package/dist/services/workflow-dispatch.d.ts +41 -0
- package/dist/services/workflow-dispatch.d.ts.map +1 -0
- package/dist/services/workflow-dispatch.js +86 -0
- package/dist/services/workflow-dispatch.js.map +1 -0
- package/dist/services/workflow-service.d.ts +63 -0
- package/dist/services/workflow-service.d.ts.map +1 -0
- package/dist/services/workflow-service.js +492 -0
- package/dist/services/workflow-service.js.map +1 -0
- package/dist/trigger-routes.d.ts +153 -0
- package/dist/trigger-routes.d.ts.map +1 -0
- package/dist/trigger-routes.js +424 -0
- package/dist/trigger-routes.js.map +1 -0
- package/dist/types/index.d.ts +457 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +59 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/catalog.d.ts +16 -0
- package/dist/utils/catalog.d.ts.map +1 -0
- package/dist/utils/catalog.js +211 -0
- package/dist/utils/catalog.js.map +1 -0
- package/dist/utils/clarification.d.ts +17 -0
- package/dist/utils/clarification.d.ts.map +1 -0
- package/dist/utils/clarification.js +46 -0
- package/dist/utils/clarification.js.map +1 -0
- package/dist/utils/context.d.ts +4 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +18 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/credentialResolver.d.ts +22 -0
- package/dist/utils/credentialResolver.d.ts.map +1 -0
- package/dist/utils/credentialResolver.js +146 -0
- package/dist/utils/credentialResolver.js.map +1 -0
- package/dist/utils/generation.d.ts +36 -0
- package/dist/utils/generation.d.ts.map +1 -0
- package/dist/utils/generation.js +701 -0
- package/dist/utils/generation.js.map +1 -0
- package/dist/utils/host-capabilities.d.ts +27 -0
- package/dist/utils/host-capabilities.d.ts.map +1 -0
- package/dist/utils/host-capabilities.js +59 -0
- package/dist/utils/host-capabilities.js.map +1 -0
- package/dist/utils/inferSyntheticOutputSchema.d.ts +20 -0
- package/dist/utils/inferSyntheticOutputSchema.d.ts.map +1 -0
- package/dist/utils/inferSyntheticOutputSchema.js +151 -0
- package/dist/utils/inferSyntheticOutputSchema.js.map +1 -0
- package/dist/utils/outputSchema.d.ts +26 -0
- package/dist/utils/outputSchema.d.ts.map +1 -0
- package/dist/utils/outputSchema.js +297 -0
- package/dist/utils/outputSchema.js.map +1 -0
- package/dist/utils/validateAndRepair.d.ts +41 -0
- package/dist/utils/validateAndRepair.d.ts.map +1 -0
- package/dist/utils/validateAndRepair.js +483 -0
- package/dist/utils/validateAndRepair.js.map +1 -0
- package/dist/utils/workflow-prompts/actionResponse.d.ts +2 -0
- package/dist/utils/workflow-prompts/actionResponse.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/actionResponse.js +17 -0
- package/dist/utils/workflow-prompts/actionResponse.js.map +1 -0
- package/dist/utils/workflow-prompts/draftIntent.d.ts +2 -0
- package/dist/utils/workflow-prompts/draftIntent.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/draftIntent.js +23 -0
- package/dist/utils/workflow-prompts/draftIntent.js.map +1 -0
- package/dist/utils/workflow-prompts/feasibilityCheck.d.ts +2 -0
- package/dist/utils/workflow-prompts/feasibilityCheck.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/feasibilityCheck.js +21 -0
- package/dist/utils/workflow-prompts/feasibilityCheck.js.map +1 -0
- package/dist/utils/workflow-prompts/fieldCorrection.d.ts +3 -0
- package/dist/utils/workflow-prompts/fieldCorrection.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/fieldCorrection.js +20 -0
- package/dist/utils/workflow-prompts/fieldCorrection.js.map +1 -0
- package/dist/utils/workflow-prompts/index.d.ts +8 -0
- package/dist/utils/workflow-prompts/index.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/index.js +8 -0
- package/dist/utils/workflow-prompts/index.js.map +1 -0
- package/dist/utils/workflow-prompts/keywordExtraction.d.ts +2 -0
- package/dist/utils/workflow-prompts/keywordExtraction.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/keywordExtraction.js +21 -0
- package/dist/utils/workflow-prompts/keywordExtraction.js.map +1 -0
- package/dist/utils/workflow-prompts/parameterCorrection.d.ts +3 -0
- package/dist/utils/workflow-prompts/parameterCorrection.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/parameterCorrection.js +29 -0
- package/dist/utils/workflow-prompts/parameterCorrection.js.map +1 -0
- package/dist/utils/workflow-prompts/workflowGeneration.d.ts +2 -0
- package/dist/utils/workflow-prompts/workflowGeneration.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/workflowGeneration.js +529 -0
- package/dist/utils/workflow-prompts/workflowGeneration.js.map +1 -0
- package/dist/utils/workflow-prompts/workflowMatching.d.ts +2 -0
- package/dist/utils/workflow-prompts/workflowMatching.d.ts.map +1 -0
- package/dist/utils/workflow-prompts/workflowMatching.js +23 -0
- package/dist/utils/workflow-prompts/workflowMatching.js.map +1 -0
- package/dist/utils/workflow.d.ts +62 -0
- package/dist/utils/workflow.d.ts.map +1 -0
- package/dist/utils/workflow.js +712 -0
- package/dist/utils/workflow.js.map +1 -0
- package/package.json +87 -0
- package/src/actions/index.ts +1 -0
- package/src/actions/workflow.ts +494 -0
- package/src/data/defaultNodes.json +9887 -0
- package/src/data/schemaIndex.json +1 -0
- package/src/data/triggerSchemaIndex.json +1 -0
- package/src/db/index.ts +8 -0
- package/src/db/schema.ts +94 -0
- package/src/index.ts +179 -0
- package/src/lib/automations-builder.ts +679 -0
- package/src/lib/automations-types.ts +391 -0
- package/src/lib/index.ts +8 -0
- package/src/lib/legacy-task-migration.ts +143 -0
- package/src/lib/legacy-text-trigger-migration.ts +178 -0
- package/src/lib/workflow-clarification.ts +497 -0
- package/src/plugin-routes.ts +164 -0
- package/src/providers/activeWorkflows.ts +81 -0
- package/src/providers/index.ts +3 -0
- package/src/providers/pendingDraft.ts +55 -0
- package/src/providers/workflowStatus.ts +88 -0
- package/src/register-routes.ts +6 -0
- package/src/routes/_helpers.ts +27 -0
- package/src/routes/automations.ts +46 -0
- package/src/routes/embedded-webhooks.ts +64 -0
- package/src/routes/executions.ts +75 -0
- package/src/routes/index.ts +16 -0
- package/src/routes/nodes.ts +211 -0
- package/src/routes/validation.ts +51 -0
- package/src/routes/workflow-routes.ts +469 -0
- package/src/routes/workflows.ts +310 -0
- package/src/schemas/draftIntent.ts +21 -0
- package/src/schemas/feasibility.ts +8 -0
- package/src/schemas/index.ts +4 -0
- package/src/schemas/keywordExtraction.ts +11 -0
- package/src/schemas/workflowMatching.ts +29 -0
- package/src/services/embedded-workflow-service.ts +2224 -0
- package/src/services/index.ts +17 -0
- package/src/services/workflow-credential-store.ts +132 -0
- package/src/services/workflow-dispatch.ts +121 -0
- package/src/services/workflow-service.ts +839 -0
- package/src/trigger-routes.ts +714 -0
- package/src/types/index.ts +562 -0
- package/src/utils/catalog.ts +260 -0
- package/src/utils/clarification.ts +52 -0
- package/src/utils/context.ts +22 -0
- package/src/utils/credentialResolver.ts +234 -0
- package/src/utils/generation.ts +987 -0
- package/src/utils/host-capabilities.ts +81 -0
- package/src/utils/inferSyntheticOutputSchema.ts +163 -0
- package/src/utils/outputSchema.ts +372 -0
- package/src/utils/validateAndRepair.ts +610 -0
- package/src/utils/workflow-prompts/actionResponse.ts +16 -0
- package/src/utils/workflow-prompts/draftIntent.ts +22 -0
- package/src/utils/workflow-prompts/feasibilityCheck.ts +20 -0
- package/src/utils/workflow-prompts/fieldCorrection.ts +20 -0
- package/src/utils/workflow-prompts/index.ts +10 -0
- package/src/utils/workflow-prompts/keywordExtraction.ts +20 -0
- package/src/utils/workflow-prompts/parameterCorrection.ts +29 -0
- package/src/utils/workflow-prompts/workflowGeneration.ts +528 -0
- package/src/utils/workflow-prompts/workflowMatching.ts +22 -0
- 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":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|