@sudocode-ai/local-server 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/execution/executors/agent-executor-wrapper.d.ts.map +1 -1
  2. package/dist/execution/executors/agent-executor-wrapper.js +57 -2
  3. package/dist/execution/executors/agent-executor-wrapper.js.map +1 -1
  4. package/dist/execution/process/builders/claude.d.ts.map +1 -1
  5. package/dist/execution/process/builders/claude.js +32 -1
  6. package/dist/execution/process/builders/claude.js.map +1 -1
  7. package/dist/execution/worktree/git-cli.d.ts +48 -0
  8. package/dist/execution/worktree/git-cli.d.ts.map +1 -1
  9. package/dist/execution/worktree/git-cli.js +81 -0
  10. package/dist/execution/worktree/git-cli.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +17 -4
  13. package/dist/index.js.map +1 -1
  14. package/dist/public/assets/index-Nz4IjDwB.css +1 -0
  15. package/dist/public/assets/index-Z8yftXvD.js +824 -0
  16. package/dist/public/assets/index-Z8yftXvD.js.map +1 -0
  17. package/dist/public/assets/{react-vendor-DiL5hC7l.js → react-vendor-5f1Wq1qs.js} +5 -5
  18. package/dist/public/assets/{react-vendor-DiL5hC7l.js.map → react-vendor-5f1Wq1qs.js.map} +1 -1
  19. package/dist/public/assets/{ui-vendor-B4WMPEfa.js → ui-vendor-BDDPoYki.js} +2 -2
  20. package/dist/public/assets/{ui-vendor-B4WMPEfa.js.map → ui-vendor-BDDPoYki.js.map} +1 -1
  21. package/dist/public/index.html +4 -4
  22. package/dist/routes/workflows.d.ts +8 -0
  23. package/dist/routes/workflows.d.ts.map +1 -0
  24. package/dist/routes/workflows.js +1729 -0
  25. package/dist/routes/workflows.js.map +1 -0
  26. package/dist/services/execution-event-callbacks.d.ts +73 -0
  27. package/dist/services/execution-event-callbacks.d.ts.map +1 -0
  28. package/dist/services/execution-event-callbacks.js +82 -0
  29. package/dist/services/execution-event-callbacks.js.map +1 -0
  30. package/dist/services/execution-lifecycle.d.ts +36 -0
  31. package/dist/services/execution-lifecycle.d.ts.map +1 -1
  32. package/dist/services/execution-lifecycle.js +87 -0
  33. package/dist/services/execution-lifecycle.js.map +1 -1
  34. package/dist/services/execution-service.d.ts +31 -3
  35. package/dist/services/execution-service.d.ts.map +1 -1
  36. package/dist/services/execution-service.js +161 -34
  37. package/dist/services/execution-service.js.map +1 -1
  38. package/dist/services/executions.d.ts +1 -0
  39. package/dist/services/executions.d.ts.map +1 -1
  40. package/dist/services/executions.js +4 -0
  41. package/dist/services/executions.js.map +1 -1
  42. package/dist/services/project-context.d.ts +25 -0
  43. package/dist/services/project-context.d.ts.map +1 -1
  44. package/dist/services/project-context.js +53 -3
  45. package/dist/services/project-context.js.map +1 -1
  46. package/dist/services/project-manager.d.ts +7 -0
  47. package/dist/services/project-manager.d.ts.map +1 -1
  48. package/dist/services/project-manager.js +90 -1
  49. package/dist/services/project-manager.js.map +1 -1
  50. package/dist/services/websocket.d.ts +10 -2
  51. package/dist/services/websocket.d.ts.map +1 -1
  52. package/dist/services/websocket.js +18 -0
  53. package/dist/services/websocket.js.map +1 -1
  54. package/dist/services/workflow-broadcast-service.d.ts +43 -0
  55. package/dist/services/workflow-broadcast-service.d.ts.map +1 -0
  56. package/dist/services/workflow-broadcast-service.js +145 -0
  57. package/dist/services/workflow-broadcast-service.js.map +1 -0
  58. package/dist/workflow/base-workflow-engine.d.ts +186 -0
  59. package/dist/workflow/base-workflow-engine.d.ts.map +1 -0
  60. package/dist/workflow/base-workflow-engine.js +549 -0
  61. package/dist/workflow/base-workflow-engine.js.map +1 -0
  62. package/dist/workflow/dependency-analyzer.d.ts +78 -0
  63. package/dist/workflow/dependency-analyzer.d.ts.map +1 -0
  64. package/dist/workflow/dependency-analyzer.js +264 -0
  65. package/dist/workflow/dependency-analyzer.js.map +1 -0
  66. package/dist/workflow/engines/orchestrator-engine.d.ts +237 -0
  67. package/dist/workflow/engines/orchestrator-engine.d.ts.map +1 -0
  68. package/dist/workflow/engines/orchestrator-engine.js +749 -0
  69. package/dist/workflow/engines/orchestrator-engine.js.map +1 -0
  70. package/dist/workflow/engines/sequential-engine.d.ts +276 -0
  71. package/dist/workflow/engines/sequential-engine.d.ts.map +1 -0
  72. package/dist/workflow/engines/sequential-engine.js +1110 -0
  73. package/dist/workflow/engines/sequential-engine.js.map +1 -0
  74. package/dist/workflow/index.d.ts +15 -0
  75. package/dist/workflow/index.d.ts.map +1 -0
  76. package/dist/workflow/index.js +22 -0
  77. package/dist/workflow/index.js.map +1 -0
  78. package/dist/workflow/mcp/api-client.d.ts +103 -0
  79. package/dist/workflow/mcp/api-client.d.ts.map +1 -0
  80. package/dist/workflow/mcp/api-client.js +193 -0
  81. package/dist/workflow/mcp/api-client.js.map +1 -0
  82. package/dist/workflow/mcp/index.d.ts +16 -0
  83. package/dist/workflow/mcp/index.d.ts.map +1 -0
  84. package/dist/workflow/mcp/index.js +114 -0
  85. package/dist/workflow/mcp/index.js.map +1 -0
  86. package/dist/workflow/mcp/server.d.ts +85 -0
  87. package/dist/workflow/mcp/server.d.ts.map +1 -0
  88. package/dist/workflow/mcp/server.js +520 -0
  89. package/dist/workflow/mcp/server.js.map +1 -0
  90. package/dist/workflow/mcp/tools/escalation.d.ts +36 -0
  91. package/dist/workflow/mcp/tools/escalation.d.ts.map +1 -0
  92. package/dist/workflow/mcp/tools/escalation.js +47 -0
  93. package/dist/workflow/mcp/tools/escalation.js.map +1 -0
  94. package/dist/workflow/mcp/tools/execution.d.ts +59 -0
  95. package/dist/workflow/mcp/tools/execution.d.ts.map +1 -0
  96. package/dist/workflow/mcp/tools/execution.js +67 -0
  97. package/dist/workflow/mcp/tools/execution.js.map +1 -0
  98. package/dist/workflow/mcp/tools/inspection.d.ts +82 -0
  99. package/dist/workflow/mcp/tools/inspection.d.ts.map +1 -0
  100. package/dist/workflow/mcp/tools/inspection.js +57 -0
  101. package/dist/workflow/mcp/tools/inspection.js.map +1 -0
  102. package/dist/workflow/mcp/tools/workflow.d.ts +59 -0
  103. package/dist/workflow/mcp/tools/workflow.d.ts.map +1 -0
  104. package/dist/workflow/mcp/tools/workflow.js +40 -0
  105. package/dist/workflow/mcp/tools/workflow.js.map +1 -0
  106. package/dist/workflow/mcp/types.d.ts +345 -0
  107. package/dist/workflow/mcp/types.d.ts.map +1 -0
  108. package/dist/workflow/mcp/types.js +7 -0
  109. package/dist/workflow/mcp/types.js.map +1 -0
  110. package/dist/workflow/services/prompt-builder.d.ts +36 -0
  111. package/dist/workflow/services/prompt-builder.d.ts.map +1 -0
  112. package/dist/workflow/services/prompt-builder.js +329 -0
  113. package/dist/workflow/services/prompt-builder.js.map +1 -0
  114. package/dist/workflow/services/wakeup-service.d.ts +262 -0
  115. package/dist/workflow/services/wakeup-service.d.ts.map +1 -0
  116. package/dist/workflow/services/wakeup-service.js +809 -0
  117. package/dist/workflow/services/wakeup-service.js.map +1 -0
  118. package/dist/workflow/workflow-engine.d.ts +221 -0
  119. package/dist/workflow/workflow-engine.d.ts.map +1 -0
  120. package/dist/workflow/workflow-engine.js +94 -0
  121. package/dist/workflow/workflow-engine.js.map +1 -0
  122. package/dist/workflow/workflow-event-emitter.d.ts +278 -0
  123. package/dist/workflow/workflow-event-emitter.d.ts.map +1 -0
  124. package/dist/workflow/workflow-event-emitter.js +259 -0
  125. package/dist/workflow/workflow-event-emitter.js.map +1 -0
  126. package/package.json +8 -6
  127. package/dist/public/assets/index-CQoCSnhl.css +0 -1
  128. package/dist/public/assets/index-iWE3gSYw.js +0 -758
  129. package/dist/public/assets/index-iWE3gSYw.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wakeup-service.js","sourceRoot":"","sources":["../../../src/workflow/services/wakeup-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Workflow Engine Interface
3
+ *
4
+ * Defines the contract for workflow implementations (Sequential and Orchestrator).
5
+ * Also includes error classes and default configuration.
6
+ */
7
+ import type { Workflow, WorkflowSource, WorkflowConfig, WorkflowStep } from "@sudocode-ai/types";
8
+ import type { WorkflowEventListener } from "./workflow-event-emitter.js";
9
+ /**
10
+ * Error thrown when a dependency cycle is detected in the workflow.
11
+ */
12
+ export declare class WorkflowCycleError extends Error {
13
+ /** The detected cycles as arrays of issue IDs */
14
+ readonly cycles: string[][];
15
+ constructor(cycles: string[][]);
16
+ }
17
+ /**
18
+ * Error thrown when a workflow is not found.
19
+ */
20
+ export declare class WorkflowNotFoundError extends Error {
21
+ /** The workflow ID that was not found */
22
+ readonly workflowId: string;
23
+ constructor(workflowId: string);
24
+ }
25
+ /**
26
+ * Error thrown when a workflow step is not found.
27
+ */
28
+ export declare class WorkflowStepNotFoundError extends Error {
29
+ /** The workflow ID */
30
+ readonly workflowId: string;
31
+ /** The step ID that was not found */
32
+ readonly stepId: string;
33
+ constructor(workflowId: string, stepId: string);
34
+ }
35
+ /**
36
+ * Error thrown when a workflow operation is invalid for the current state.
37
+ */
38
+ export declare class WorkflowStateError extends Error {
39
+ /** The workflow ID */
40
+ readonly workflowId: string;
41
+ /** The current workflow status */
42
+ readonly currentStatus: string;
43
+ /** The operation that was attempted */
44
+ readonly operation: string;
45
+ constructor(workflowId: string, currentStatus: string, operation: string);
46
+ }
47
+ /**
48
+ * Default workflow configuration values.
49
+ */
50
+ export declare const DEFAULT_WORKFLOW_CONFIG: Readonly<WorkflowConfig>;
51
+ /**
52
+ * Interface for workflow engine implementations.
53
+ *
54
+ * Both SequentialWorkflowEngine and OrchestratorWorkflowEngine
55
+ * implement this interface.
56
+ */
57
+ export interface IWorkflowEngine {
58
+ /**
59
+ * Create a new workflow from a source definition.
60
+ *
61
+ * @param source - How to determine workflow scope (spec, issues, root_issue, or goal)
62
+ * @param config - Optional configuration overrides
63
+ * @returns The created workflow
64
+ * @throws WorkflowCycleError if dependency cycles are detected
65
+ */
66
+ createWorkflow(source: WorkflowSource, config?: Partial<WorkflowConfig>): Promise<Workflow>;
67
+ /**
68
+ * Start executing a pending workflow.
69
+ *
70
+ * @param workflowId - The workflow to start
71
+ * @throws WorkflowNotFoundError if workflow doesn't exist
72
+ * @throws WorkflowStateError if workflow is not in pending state
73
+ */
74
+ startWorkflow(workflowId: string): Promise<void>;
75
+ /**
76
+ * Pause a running workflow after the current step completes.
77
+ *
78
+ * @param workflowId - The workflow to pause
79
+ * @throws WorkflowNotFoundError if workflow doesn't exist
80
+ * @throws WorkflowStateError if workflow is not running
81
+ */
82
+ pauseWorkflow(workflowId: string): Promise<void>;
83
+ /**
84
+ * Resume a paused workflow.
85
+ *
86
+ * @param workflowId - The workflow to resume
87
+ * @param message - Optional message to send to the orchestrator on resume
88
+ * @throws WorkflowNotFoundError if workflow doesn't exist
89
+ * @throws WorkflowStateError if workflow is not paused
90
+ */
91
+ resumeWorkflow(workflowId: string, message?: string): Promise<void>;
92
+ /**
93
+ * Cancel a workflow, stopping any running executions.
94
+ *
95
+ * @param workflowId - The workflow to cancel
96
+ * @throws WorkflowNotFoundError if workflow doesn't exist
97
+ * @throws WorkflowStateError if workflow is already completed/failed/cancelled
98
+ */
99
+ cancelWorkflow(workflowId: string): Promise<void>;
100
+ /**
101
+ * Retry a failed step.
102
+ *
103
+ * @param workflowId - The workflow containing the step
104
+ * @param stepId - The step to retry
105
+ * @throws WorkflowNotFoundError if workflow doesn't exist
106
+ * @throws WorkflowStepNotFoundError if step doesn't exist
107
+ * @throws WorkflowStateError if step is not in failed state
108
+ */
109
+ retryStep(workflowId: string, stepId: string): Promise<void>;
110
+ /**
111
+ * Skip a step and mark its dependents as blocked or ready.
112
+ *
113
+ * @param workflowId - The workflow containing the step
114
+ * @param stepId - The step to skip
115
+ * @param reason - Optional reason for skipping
116
+ * @throws WorkflowNotFoundError if workflow doesn't exist
117
+ * @throws WorkflowStepNotFoundError if step doesn't exist
118
+ */
119
+ skipStep(workflowId: string, stepId: string, reason?: string): Promise<void>;
120
+ /**
121
+ * Get a workflow by ID.
122
+ *
123
+ * @param workflowId - The workflow ID
124
+ * @returns The workflow or null if not found
125
+ */
126
+ getWorkflow(workflowId: string): Promise<Workflow | null>;
127
+ /**
128
+ * Get steps that are ready to execute (all dependencies completed).
129
+ *
130
+ * @param workflowId - The workflow ID
131
+ * @returns Array of ready steps
132
+ * @throws WorkflowNotFoundError if workflow doesn't exist
133
+ */
134
+ getReadySteps(workflowId: string): Promise<WorkflowStep[]>;
135
+ /**
136
+ * Subscribe to workflow events.
137
+ *
138
+ * @param listener - Event listener function
139
+ * @returns Unsubscribe function
140
+ */
141
+ onWorkflowEvent(listener: WorkflowEventListener): () => void;
142
+ /**
143
+ * Emit an escalation requested event.
144
+ *
145
+ * @param workflowId - The workflow ID
146
+ * @param escalationId - Unique escalation ID
147
+ * @param message - Escalation message
148
+ * @param options - Optional predefined response options
149
+ * @param context - Optional additional context
150
+ */
151
+ emitEscalationRequested(workflowId: string, escalationId: string, message: string, options?: string[], context?: Record<string, unknown>): void;
152
+ /**
153
+ * Emit an escalation resolved event.
154
+ *
155
+ * @param workflowId - The workflow ID
156
+ * @param escalationId - The escalation ID that was resolved
157
+ * @param action - User's response action
158
+ * @param message - Optional user message
159
+ */
160
+ emitEscalationResolved(workflowId: string, escalationId: string, action: "approve" | "reject" | "custom", message?: string): void;
161
+ /**
162
+ * Emit a step started event.
163
+ *
164
+ * @param workflowId - The workflow ID
165
+ * @param step - The step that started
166
+ */
167
+ emitStepStarted(workflowId: string, step: WorkflowStep): void;
168
+ /**
169
+ * Emit a step completed event.
170
+ *
171
+ * @param workflowId - The workflow ID
172
+ * @param step - The step that completed
173
+ * @param executionId - The execution ID
174
+ */
175
+ emitStepCompleted(workflowId: string, step: WorkflowStep, executionId: string): void;
176
+ /**
177
+ * Emit a step failed event.
178
+ *
179
+ * @param workflowId - The workflow ID
180
+ * @param step - The step that failed
181
+ * @param error - The error message
182
+ */
183
+ emitStepFailed(workflowId: string, step: WorkflowStep, error: string): void;
184
+ /**
185
+ * Emit a workflow completed event.
186
+ *
187
+ * @param workflowId - The workflow ID
188
+ * @param workflow - The completed workflow
189
+ */
190
+ emitWorkflowCompleted(workflowId: string, workflow: Workflow): void;
191
+ /**
192
+ * Emit a workflow failed event.
193
+ *
194
+ * @param workflowId - The workflow ID
195
+ * @param error - The error message
196
+ */
197
+ emitWorkflowFailed(workflowId: string, error: string): void;
198
+ /**
199
+ * Recover orphaned workflows on server restart.
200
+ *
201
+ * Finds workflows in 'running' status whose orchestrator execution
202
+ * is no longer running, and triggers a wakeup to resume them.
203
+ *
204
+ * Only implemented by OrchestratorWorkflowEngine.
205
+ */
206
+ recoverOrphanedWorkflows?(): Promise<void>;
207
+ /**
208
+ * Mark stale running executions as failed.
209
+ *
210
+ * Called during recovery to clean up executions that were running
211
+ * when the server crashed.
212
+ *
213
+ * Only implemented by OrchestratorWorkflowEngine.
214
+ */
215
+ markStaleExecutionsAsFailed?(): Promise<void>;
216
+ /**
217
+ * Clean up resources when the engine is disposed.
218
+ */
219
+ dispose?(): void;
220
+ }
221
+ //# sourceMappingURL=workflow-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-engine.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Workflow Engine Interface
3
+ *
4
+ * Defines the contract for workflow implementations (Sequential and Orchestrator).
5
+ * Also includes error classes and default configuration.
6
+ */
7
+ // =============================================================================
8
+ // Error Classes
9
+ // =============================================================================
10
+ /**
11
+ * Error thrown when a dependency cycle is detected in the workflow.
12
+ */
13
+ export class WorkflowCycleError extends Error {
14
+ /** The detected cycles as arrays of issue IDs */
15
+ cycles;
16
+ constructor(cycles) {
17
+ const cycleDescriptions = cycles
18
+ .map((cycle) => cycle.join(" → "))
19
+ .join("; ");
20
+ super(`Dependency cycle detected: ${cycleDescriptions}`);
21
+ this.name = "WorkflowCycleError";
22
+ this.cycles = cycles;
23
+ }
24
+ }
25
+ /**
26
+ * Error thrown when a workflow is not found.
27
+ */
28
+ export class WorkflowNotFoundError extends Error {
29
+ /** The workflow ID that was not found */
30
+ workflowId;
31
+ constructor(workflowId) {
32
+ super(`Workflow not found: ${workflowId}`);
33
+ this.name = "WorkflowNotFoundError";
34
+ this.workflowId = workflowId;
35
+ }
36
+ }
37
+ /**
38
+ * Error thrown when a workflow step is not found.
39
+ */
40
+ export class WorkflowStepNotFoundError extends Error {
41
+ /** The workflow ID */
42
+ workflowId;
43
+ /** The step ID that was not found */
44
+ stepId;
45
+ constructor(workflowId, stepId) {
46
+ super(`Step ${stepId} not found in workflow ${workflowId}`);
47
+ this.name = "WorkflowStepNotFoundError";
48
+ this.workflowId = workflowId;
49
+ this.stepId = stepId;
50
+ }
51
+ }
52
+ /**
53
+ * Error thrown when a workflow operation is invalid for the current state.
54
+ */
55
+ export class WorkflowStateError extends Error {
56
+ /** The workflow ID */
57
+ workflowId;
58
+ /** The current workflow status */
59
+ currentStatus;
60
+ /** The operation that was attempted */
61
+ operation;
62
+ constructor(workflowId, currentStatus, operation) {
63
+ super(`Cannot ${operation} workflow ${workflowId}: current status is ${currentStatus}`);
64
+ this.name = "WorkflowStateError";
65
+ this.workflowId = workflowId;
66
+ this.currentStatus = currentStatus;
67
+ this.operation = operation;
68
+ }
69
+ }
70
+ // =============================================================================
71
+ // Default Configuration
72
+ // =============================================================================
73
+ /**
74
+ * Default workflow configuration values.
75
+ */
76
+ export const DEFAULT_WORKFLOW_CONFIG = {
77
+ // Engine selection
78
+ engineType: "sequential",
79
+ // Sequential engine options
80
+ parallelism: "sequential",
81
+ maxConcurrency: 1,
82
+ onFailure: "pause",
83
+ autoCommitAfterStep: true,
84
+ defaultAgentType: "claude-code",
85
+ // Orchestrator engine options
86
+ orchestratorAgentType: undefined,
87
+ orchestratorModel: undefined,
88
+ autonomyLevel: "human_in_the_loop",
89
+ // Timeout options
90
+ executionTimeoutMs: undefined,
91
+ idleTimeoutMs: undefined,
92
+ wakeupBatchWindowMs: undefined,
93
+ };
94
+ //# sourceMappingURL=workflow-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-engine.js","sourceRoot":"","sources":["../../src/workflow/workflow-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,iDAAiD;IACxC,MAAM,CAAa;IAE5B,YAAY,MAAkB;QAC5B,MAAM,iBAAiB,GAAG,MAAM;aAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,8BAA8B,iBAAiB,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,yCAAyC;IAChC,UAAU,CAAS;IAE5B,YAAY,UAAkB;QAC5B,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,sBAAsB;IACb,UAAU,CAAS;IAC5B,qCAAqC;IAC5B,MAAM,CAAS;IAExB,YAAY,UAAkB,EAAE,MAAc;QAC5C,KAAK,CAAC,QAAQ,MAAM,0BAA0B,UAAU,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,sBAAsB;IACb,UAAU,CAAS;IAC5B,kCAAkC;IACzB,aAAa,CAAS;IAC/B,uCAAuC;IAC9B,SAAS,CAAS;IAE3B,YAAY,UAAkB,EAAE,aAAqB,EAAE,SAAiB;QACtE,KAAK,CACH,UAAU,SAAS,aAAa,UAAU,uBAAuB,aAAa,EAAE,CACjF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC/D,mBAAmB;IACnB,UAAU,EAAE,YAAY;IAExB,4BAA4B;IAC5B,WAAW,EAAE,YAAY;IACzB,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO;IAClB,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,aAAa;IAE/B,8BAA8B;IAC9B,qBAAqB,EAAE,SAAS;IAChC,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,mBAAmB;IAElC,kBAAkB;IAClB,kBAAkB,EAAE,SAAS;IAC7B,aAAa,EAAE,SAAS;IACxB,mBAAmB,EAAE,SAAS;CAC/B,CAAC"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Workflow Event Emitter
3
+ *
4
+ * Provides a typed event system for workflow lifecycle events.
5
+ * Uses the typed listener set pattern (like AG-UI adapter), NOT Node.js EventEmitter.
6
+ */
7
+ import type { Workflow, WorkflowStep } from "@sudocode-ai/types";
8
+ /**
9
+ * Discriminated union of all workflow event types.
10
+ * Each event has a `type` field for type-safe handling.
11
+ */
12
+ export type WorkflowEventPayload = StepStartedEvent | StepCompletedEvent | StepFailedEvent | StepSkippedEvent | WorkflowStartedEvent | WorkflowPausedEvent | WorkflowResumedEvent | WorkflowCompletedEvent | WorkflowFailedEvent | WorkflowCancelledEvent | OrchestratorWakeupEvent | EscalationRequestedEvent | EscalationResolvedEvent;
13
+ /**
14
+ * Event type constants for use in switch statements.
15
+ */
16
+ export declare const WorkflowEventType: {
17
+ readonly STEP_STARTED: "step_started";
18
+ readonly STEP_COMPLETED: "step_completed";
19
+ readonly STEP_FAILED: "step_failed";
20
+ readonly STEP_SKIPPED: "step_skipped";
21
+ readonly WORKFLOW_STARTED: "workflow_started";
22
+ readonly WORKFLOW_PAUSED: "workflow_paused";
23
+ readonly WORKFLOW_RESUMED: "workflow_resumed";
24
+ readonly WORKFLOW_COMPLETED: "workflow_completed";
25
+ readonly WORKFLOW_FAILED: "workflow_failed";
26
+ readonly WORKFLOW_CANCELLED: "workflow_cancelled";
27
+ readonly ORCHESTRATOR_WAKEUP: "orchestrator_wakeup";
28
+ readonly ESCALATION_REQUESTED: "escalation_requested";
29
+ readonly ESCALATION_RESOLVED: "escalation_resolved";
30
+ };
31
+ /**
32
+ * Emitted when a step starts executing.
33
+ */
34
+ export interface StepStartedEvent {
35
+ type: "step_started";
36
+ workflowId: string;
37
+ step: WorkflowStep;
38
+ timestamp: number;
39
+ }
40
+ /**
41
+ * Emitted when a step completes successfully.
42
+ */
43
+ export interface StepCompletedEvent {
44
+ type: "step_completed";
45
+ workflowId: string;
46
+ step: WorkflowStep;
47
+ executionId: string;
48
+ timestamp: number;
49
+ }
50
+ /**
51
+ * Emitted when a step fails.
52
+ */
53
+ export interface StepFailedEvent {
54
+ type: "step_failed";
55
+ workflowId: string;
56
+ step: WorkflowStep;
57
+ error: string;
58
+ timestamp: number;
59
+ }
60
+ /**
61
+ * Emitted when a step is skipped.
62
+ */
63
+ export interface StepSkippedEvent {
64
+ type: "step_skipped";
65
+ workflowId: string;
66
+ step: WorkflowStep;
67
+ reason: string;
68
+ timestamp: number;
69
+ }
70
+ /**
71
+ * Emitted when a workflow starts executing.
72
+ */
73
+ export interface WorkflowStartedEvent {
74
+ type: "workflow_started";
75
+ workflowId: string;
76
+ workflow: Workflow;
77
+ timestamp: number;
78
+ }
79
+ /**
80
+ * Emitted when a workflow is paused.
81
+ */
82
+ export interface WorkflowPausedEvent {
83
+ type: "workflow_paused";
84
+ workflowId: string;
85
+ timestamp: number;
86
+ }
87
+ /**
88
+ * Emitted when a workflow is resumed.
89
+ */
90
+ export interface WorkflowResumedEvent {
91
+ type: "workflow_resumed";
92
+ workflowId: string;
93
+ timestamp: number;
94
+ }
95
+ /**
96
+ * Emitted when a workflow completes successfully.
97
+ */
98
+ export interface WorkflowCompletedEvent {
99
+ type: "workflow_completed";
100
+ workflowId: string;
101
+ workflow: Workflow;
102
+ timestamp: number;
103
+ }
104
+ /**
105
+ * Emitted when a workflow fails.
106
+ */
107
+ export interface WorkflowFailedEvent {
108
+ type: "workflow_failed";
109
+ workflowId: string;
110
+ error: string;
111
+ timestamp: number;
112
+ }
113
+ /**
114
+ * Emitted when a workflow is cancelled.
115
+ */
116
+ export interface WorkflowCancelledEvent {
117
+ type: "workflow_cancelled";
118
+ workflowId: string;
119
+ timestamp: number;
120
+ }
121
+ /**
122
+ * Emitted when the orchestrator is woken up to process events.
123
+ */
124
+ export interface OrchestratorWakeupEvent {
125
+ type: "orchestrator_wakeup";
126
+ workflowId: string;
127
+ payload: {
128
+ eventCount: number;
129
+ executionId: string;
130
+ };
131
+ timestamp: number;
132
+ }
133
+ /**
134
+ * Emitted when the orchestrator requests user input (escalation).
135
+ */
136
+ export interface EscalationRequestedEvent {
137
+ type: "escalation_requested";
138
+ workflowId: string;
139
+ escalationId: string;
140
+ message: string;
141
+ options?: string[];
142
+ context?: Record<string, unknown>;
143
+ timestamp: number;
144
+ }
145
+ /**
146
+ * Emitted when an escalation is resolved by user response.
147
+ */
148
+ export interface EscalationResolvedEvent {
149
+ type: "escalation_resolved";
150
+ workflowId: string;
151
+ escalationId: string;
152
+ action: "approve" | "reject" | "custom";
153
+ message?: string;
154
+ timestamp: number;
155
+ }
156
+ /**
157
+ * Event listener function type.
158
+ * Receives a WorkflowEventPayload and returns void.
159
+ */
160
+ export type WorkflowEventListener = (event: WorkflowEventPayload) => void;
161
+ /**
162
+ * Typed event emitter for workflow events.
163
+ *
164
+ * Uses a Set of listeners (like AG-UI adapter pattern) for:
165
+ * - O(1) add/remove operations
166
+ * - Safe iteration during emit (Set creates snapshot)
167
+ * - No duplicate listeners
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * const emitter = new WorkflowEventEmitter();
172
+ *
173
+ * // Subscribe to events
174
+ * const unsubscribe = emitter.on((event) => {
175
+ * switch (event.type) {
176
+ * case "step_completed":
177
+ * console.log(`Step ${event.step.id} completed`);
178
+ * break;
179
+ * case "workflow_failed":
180
+ * console.error(`Workflow failed: ${event.error}`);
181
+ * break;
182
+ * }
183
+ * });
184
+ *
185
+ * // Emit an event
186
+ * emitter.emit({
187
+ * type: "step_completed",
188
+ * workflowId: "wf-123",
189
+ * step: { ... },
190
+ * executionId: "exec-456",
191
+ * timestamp: Date.now(),
192
+ * });
193
+ *
194
+ * // Unsubscribe when done
195
+ * unsubscribe();
196
+ * ```
197
+ */
198
+ export declare class WorkflowEventEmitter {
199
+ private listeners;
200
+ /**
201
+ * Subscribe to workflow events.
202
+ *
203
+ * @param listener - Function to call when events are emitted
204
+ * @returns Unsubscribe function - call to remove the listener
205
+ */
206
+ on(listener: WorkflowEventListener): () => void;
207
+ /**
208
+ * Unsubscribe a listener.
209
+ *
210
+ * @param listener - The listener to remove
211
+ */
212
+ off(listener: WorkflowEventListener): void;
213
+ /**
214
+ * Emit an event to all listeners.
215
+ *
216
+ * @param event - The event to emit
217
+ */
218
+ emit(event: WorkflowEventPayload): void;
219
+ /**
220
+ * Get the current number of listeners.
221
+ * Useful for testing and debugging.
222
+ */
223
+ get listenerCount(): number;
224
+ /**
225
+ * Remove all listeners.
226
+ * Useful for cleanup.
227
+ */
228
+ removeAllListeners(): void;
229
+ }
230
+ /**
231
+ * Create a step started event.
232
+ */
233
+ export declare function createStepStartedEvent(workflowId: string, step: WorkflowStep): StepStartedEvent;
234
+ /**
235
+ * Create a step completed event.
236
+ */
237
+ export declare function createStepCompletedEvent(workflowId: string, step: WorkflowStep, executionId: string): StepCompletedEvent;
238
+ /**
239
+ * Create a step failed event.
240
+ */
241
+ export declare function createStepFailedEvent(workflowId: string, step: WorkflowStep, error: string): StepFailedEvent;
242
+ /**
243
+ * Create a step skipped event.
244
+ */
245
+ export declare function createStepSkippedEvent(workflowId: string, step: WorkflowStep, reason: string): StepSkippedEvent;
246
+ /**
247
+ * Create a workflow started event.
248
+ */
249
+ export declare function createWorkflowStartedEvent(workflowId: string, workflow: Workflow): WorkflowStartedEvent;
250
+ /**
251
+ * Create a workflow paused event.
252
+ */
253
+ export declare function createWorkflowPausedEvent(workflowId: string): WorkflowPausedEvent;
254
+ /**
255
+ * Create a workflow resumed event.
256
+ */
257
+ export declare function createWorkflowResumedEvent(workflowId: string): WorkflowResumedEvent;
258
+ /**
259
+ * Create a workflow completed event.
260
+ */
261
+ export declare function createWorkflowCompletedEvent(workflowId: string, workflow: Workflow): WorkflowCompletedEvent;
262
+ /**
263
+ * Create a workflow failed event.
264
+ */
265
+ export declare function createWorkflowFailedEvent(workflowId: string, error: string): WorkflowFailedEvent;
266
+ /**
267
+ * Create a workflow cancelled event.
268
+ */
269
+ export declare function createWorkflowCancelledEvent(workflowId: string): WorkflowCancelledEvent;
270
+ /**
271
+ * Create an escalation requested event.
272
+ */
273
+ export declare function createEscalationRequestedEvent(workflowId: string, escalationId: string, message: string, options?: string[], context?: Record<string, unknown>): EscalationRequestedEvent;
274
+ /**
275
+ * Create an escalation resolved event.
276
+ */
277
+ export declare function createEscalationResolvedEvent(workflowId: string, escalationId: string, action: "approve" | "reject" | "custom", message?: string): EscalationResolvedEvent;
278
+ //# sourceMappingURL=workflow-event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-event-emitter.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-event-emitter.ts"],"names":[],"mappings":"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"}