agent-orcha 0.0.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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +917 -0
  3. package/bin/cli.js +2 -0
  4. package/dist/lib/agents/agent-executor.d.ts +13 -0
  5. package/dist/lib/agents/agent-executor.d.ts.map +1 -0
  6. package/dist/lib/agents/agent-executor.js +158 -0
  7. package/dist/lib/agents/agent-executor.js.map +1 -0
  8. package/dist/lib/agents/agent-loader.d.ts +13 -0
  9. package/dist/lib/agents/agent-loader.d.ts.map +1 -0
  10. package/dist/lib/agents/agent-loader.js +39 -0
  11. package/dist/lib/agents/agent-loader.js.map +1 -0
  12. package/dist/lib/agents/index.d.ts +5 -0
  13. package/dist/lib/agents/index.d.ts.map +1 -0
  14. package/dist/lib/agents/index.js +4 -0
  15. package/dist/lib/agents/index.js.map +1 -0
  16. package/dist/lib/agents/types.d.ts +140 -0
  17. package/dist/lib/agents/types.d.ts.map +1 -0
  18. package/dist/lib/agents/types.js +28 -0
  19. package/dist/lib/agents/types.js.map +1 -0
  20. package/dist/lib/functions/function-loader.d.ts +30 -0
  21. package/dist/lib/functions/function-loader.d.ts.map +1 -0
  22. package/dist/lib/functions/function-loader.js +107 -0
  23. package/dist/lib/functions/function-loader.js.map +1 -0
  24. package/dist/lib/functions/index.d.ts +3 -0
  25. package/dist/lib/functions/index.d.ts.map +1 -0
  26. package/dist/lib/functions/index.js +2 -0
  27. package/dist/lib/functions/index.js.map +1 -0
  28. package/dist/lib/functions/simple-function-wrapper.d.ts +33 -0
  29. package/dist/lib/functions/simple-function-wrapper.d.ts.map +1 -0
  30. package/dist/lib/functions/simple-function-wrapper.js +66 -0
  31. package/dist/lib/functions/simple-function-wrapper.js.map +1 -0
  32. package/dist/lib/index.d.ts +16 -0
  33. package/dist/lib/index.d.ts.map +1 -0
  34. package/dist/lib/index.js +17 -0
  35. package/dist/lib/index.js.map +1 -0
  36. package/dist/lib/llm/index.d.ts +6 -0
  37. package/dist/lib/llm/index.d.ts.map +1 -0
  38. package/dist/lib/llm/index.js +4 -0
  39. package/dist/lib/llm/index.js.map +1 -0
  40. package/dist/lib/llm/llm-config.d.ts +138 -0
  41. package/dist/lib/llm/llm-config.d.ts.map +1 -0
  42. package/dist/lib/llm/llm-config.js +75 -0
  43. package/dist/lib/llm/llm-config.js.map +1 -0
  44. package/dist/lib/llm/llm-factory.d.ts +30 -0
  45. package/dist/lib/llm/llm-factory.d.ts.map +1 -0
  46. package/dist/lib/llm/llm-factory.js +103 -0
  47. package/dist/lib/llm/llm-factory.js.map +1 -0
  48. package/dist/lib/llm/provider-detector.d.ts +12 -0
  49. package/dist/lib/llm/provider-detector.d.ts.map +1 -0
  50. package/dist/lib/llm/provider-detector.js +46 -0
  51. package/dist/lib/llm/provider-detector.js.map +1 -0
  52. package/dist/lib/llm/types.d.ts +19 -0
  53. package/dist/lib/llm/types.d.ts.map +1 -0
  54. package/dist/lib/llm/types.js +18 -0
  55. package/dist/lib/llm/types.js.map +1 -0
  56. package/dist/lib/logger.d.ts +43 -0
  57. package/dist/lib/logger.d.ts.map +1 -0
  58. package/dist/lib/logger.js +113 -0
  59. package/dist/lib/logger.js.map +1 -0
  60. package/dist/lib/mcp/index.d.ts +4 -0
  61. package/dist/lib/mcp/index.d.ts.map +1 -0
  62. package/dist/lib/mcp/index.js +3 -0
  63. package/dist/lib/mcp/index.js.map +1 -0
  64. package/dist/lib/mcp/mcp-client.d.ts +17 -0
  65. package/dist/lib/mcp/mcp-client.d.ts.map +1 -0
  66. package/dist/lib/mcp/mcp-client.js +166 -0
  67. package/dist/lib/mcp/mcp-client.js.map +1 -0
  68. package/dist/lib/mcp/types.d.ts +146 -0
  69. package/dist/lib/mcp/types.d.ts.map +1 -0
  70. package/dist/lib/mcp/types.js +24 -0
  71. package/dist/lib/mcp/types.js.map +1 -0
  72. package/dist/lib/orchestrator.d.ts +64 -0
  73. package/dist/lib/orchestrator.d.ts.map +1 -0
  74. package/dist/lib/orchestrator.js +201 -0
  75. package/dist/lib/orchestrator.js.map +1 -0
  76. package/dist/lib/tools/built-in/index.d.ts +2 -0
  77. package/dist/lib/tools/built-in/index.d.ts.map +1 -0
  78. package/dist/lib/tools/built-in/index.js +2 -0
  79. package/dist/lib/tools/built-in/index.js.map +1 -0
  80. package/dist/lib/tools/built-in/vector-search.tool.d.ts +4 -0
  81. package/dist/lib/tools/built-in/vector-search.tool.d.ts.map +1 -0
  82. package/dist/lib/tools/built-in/vector-search.tool.js +26 -0
  83. package/dist/lib/tools/built-in/vector-search.tool.js.map +1 -0
  84. package/dist/lib/tools/index.d.ts +3 -0
  85. package/dist/lib/tools/index.d.ts.map +1 -0
  86. package/dist/lib/tools/index.js +3 -0
  87. package/dist/lib/tools/index.js.map +1 -0
  88. package/dist/lib/tools/tool-registry.d.ts +20 -0
  89. package/dist/lib/tools/tool-registry.d.ts.map +1 -0
  90. package/dist/lib/tools/tool-registry.js +76 -0
  91. package/dist/lib/tools/tool-registry.js.map +1 -0
  92. package/dist/lib/vectors/index.d.ts +5 -0
  93. package/dist/lib/vectors/index.d.ts.map +1 -0
  94. package/dist/lib/vectors/index.js +4 -0
  95. package/dist/lib/vectors/index.js.map +1 -0
  96. package/dist/lib/vectors/types.d.ts +212 -0
  97. package/dist/lib/vectors/types.d.ts.map +1 -0
  98. package/dist/lib/vectors/types.js +39 -0
  99. package/dist/lib/vectors/types.js.map +1 -0
  100. package/dist/lib/vectors/vector-store-factory.d.ts +14 -0
  101. package/dist/lib/vectors/vector-store-factory.d.ts.map +1 -0
  102. package/dist/lib/vectors/vector-store-factory.js +350 -0
  103. package/dist/lib/vectors/vector-store-factory.js.map +1 -0
  104. package/dist/lib/vectors/vector-store-manager.d.ts +18 -0
  105. package/dist/lib/vectors/vector-store-manager.d.ts.map +1 -0
  106. package/dist/lib/vectors/vector-store-manager.js +79 -0
  107. package/dist/lib/vectors/vector-store-manager.js.map +1 -0
  108. package/dist/lib/workflows/index.d.ts +5 -0
  109. package/dist/lib/workflows/index.d.ts.map +1 -0
  110. package/dist/lib/workflows/index.js +4 -0
  111. package/dist/lib/workflows/index.js.map +1 -0
  112. package/dist/lib/workflows/types.d.ts +630 -0
  113. package/dist/lib/workflows/types.d.ts.map +1 -0
  114. package/dist/lib/workflows/types.js +51 -0
  115. package/dist/lib/workflows/types.js.map +1 -0
  116. package/dist/lib/workflows/workflow-executor.d.ts +22 -0
  117. package/dist/lib/workflows/workflow-executor.d.ts.map +1 -0
  118. package/dist/lib/workflows/workflow-executor.js +276 -0
  119. package/dist/lib/workflows/workflow-executor.js.map +1 -0
  120. package/dist/lib/workflows/workflow-loader.d.ts +13 -0
  121. package/dist/lib/workflows/workflow-loader.d.ts.map +1 -0
  122. package/dist/lib/workflows/workflow-loader.js +39 -0
  123. package/dist/lib/workflows/workflow-loader.js.map +1 -0
  124. package/dist/public/index.html +762 -0
  125. package/dist/src/cli/commands/init.d.ts +2 -0
  126. package/dist/src/cli/commands/init.d.ts.map +1 -0
  127. package/dist/src/cli/commands/init.js +108 -0
  128. package/dist/src/cli/commands/init.js.map +1 -0
  129. package/dist/src/cli/commands/start.d.ts +3 -0
  130. package/dist/src/cli/commands/start.d.ts.map +1 -0
  131. package/dist/src/cli/commands/start.js +114 -0
  132. package/dist/src/cli/commands/start.js.map +1 -0
  133. package/dist/src/cli/index.d.ts +3 -0
  134. package/dist/src/cli/index.d.ts.map +1 -0
  135. package/dist/src/cli/index.js +59 -0
  136. package/dist/src/cli/index.js.map +1 -0
  137. package/dist/src/index.d.ts +2 -0
  138. package/dist/src/index.d.ts.map +1 -0
  139. package/dist/src/index.js +62 -0
  140. package/dist/src/index.js.map +1 -0
  141. package/dist/src/routes/agents.route.d.ts +3 -0
  142. package/dist/src/routes/agents.route.d.ts.map +1 -0
  143. package/dist/src/routes/agents.route.js +58 -0
  144. package/dist/src/routes/agents.route.js.map +1 -0
  145. package/dist/src/routes/llm.route.d.ts +3 -0
  146. package/dist/src/routes/llm.route.d.ts.map +1 -0
  147. package/dist/src/routes/llm.route.js +97 -0
  148. package/dist/src/routes/llm.route.js.map +1 -0
  149. package/dist/src/routes/vectors.route.d.ts +3 -0
  150. package/dist/src/routes/vectors.route.d.ts.map +1 -0
  151. package/dist/src/routes/vectors.route.js +74 -0
  152. package/dist/src/routes/vectors.route.js.map +1 -0
  153. package/dist/src/routes/workflows.route.d.ts +3 -0
  154. package/dist/src/routes/workflows.route.d.ts.map +1 -0
  155. package/dist/src/routes/workflows.route.js +58 -0
  156. package/dist/src/routes/workflows.route.js.map +1 -0
  157. package/dist/src/server.d.ts +9 -0
  158. package/dist/src/server.d.ts.map +1 -0
  159. package/dist/src/server.js +34 -0
  160. package/dist/src/server.js.map +1 -0
  161. package/dist/templates/.env.example +6 -0
  162. package/dist/templates/README.md +234 -0
  163. package/dist/templates/agents/example.agent.yaml +32 -0
  164. package/dist/templates/agents/knowledge.agent.yaml +36 -0
  165. package/dist/templates/agents/math.agent.yaml +38 -0
  166. package/dist/templates/agents/time.agent.yaml +42 -0
  167. package/dist/templates/functions/README.md +195 -0
  168. package/dist/templates/functions/fibonacci.function.js +55 -0
  169. package/dist/templates/llm.json +44 -0
  170. package/dist/templates/mcp.json +18 -0
  171. package/dist/templates/vectors/example-chroma.vector.yaml +43 -0
  172. package/dist/templates/vectors/example.vector.yaml +28 -0
  173. package/dist/templates/vectors/sample-data/example-document.txt +15 -0
  174. package/dist/templates/workflows/example.workflow.yaml +79 -0
  175. package/package.json +77 -0
@@ -0,0 +1,22 @@
1
+ import type { AgentExecutor } from '../agents/agent-executor.js';
2
+ import type { AgentLoader } from '../agents/agent-loader.js';
3
+ import type { WorkflowDefinition, WorkflowResult, WorkflowStatus } from './types.js';
4
+ export declare class WorkflowExecutor {
5
+ private agentLoader;
6
+ private agentExecutor;
7
+ constructor(agentLoader: AgentLoader, agentExecutor: AgentExecutor);
8
+ execute(definition: WorkflowDefinition, input: Record<string, unknown>, onStatus?: (status: WorkflowStatus) => void): Promise<WorkflowResult>;
9
+ private isParallelSteps;
10
+ private applyDefaults;
11
+ private executeStep;
12
+ private executeParallel;
13
+ private resolveInput;
14
+ private resolveValue;
15
+ private interpolateString;
16
+ private resolveTemplatePath;
17
+ private resolvePath;
18
+ private getNestedValue;
19
+ private evaluateCondition;
20
+ private resolveOutput;
21
+ }
22
+ //# sourceMappingURL=workflow-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-executor.d.ts","sourceRoot":"","sources":["../../../lib/workflows/workflow-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EACV,kBAAkB,EAGlB,cAAc,EAGd,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa;IAK5D,OAAO,CACX,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAC1C,OAAO,CAAC,cAAc,CAAC;IAsH1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;YAeP,WAAW;YA6DX,eAAe;IAc7B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;CAYtB"}
@@ -0,0 +1,276 @@
1
+ export class WorkflowExecutor {
2
+ agentLoader;
3
+ agentExecutor;
4
+ constructor(agentLoader, agentExecutor) {
5
+ this.agentLoader = agentLoader;
6
+ this.agentExecutor = agentExecutor;
7
+ }
8
+ async execute(definition, input, onStatus) {
9
+ const startTime = Date.now();
10
+ const context = {
11
+ input: this.applyDefaults(definition, input),
12
+ steps: {},
13
+ vectors: {},
14
+ };
15
+ const totalSteps = definition.steps.length;
16
+ let stepsExecuted = 0;
17
+ let success = true;
18
+ onStatus?.({
19
+ type: 'workflow_start',
20
+ message: `Starting workflow: ${definition.name}`,
21
+ progress: { current: 0, total: totalSteps },
22
+ elapsed: 0,
23
+ });
24
+ for (const stepDef of definition.steps) {
25
+ try {
26
+ if (this.isParallelSteps(stepDef)) {
27
+ onStatus?.({
28
+ type: 'step_start',
29
+ stepId: 'parallel',
30
+ message: `Executing ${stepDef.parallel.length} steps in parallel`,
31
+ progress: { current: stepsExecuted, total: totalSteps },
32
+ elapsed: Date.now() - startTime,
33
+ });
34
+ const results = await this.executeParallel(stepDef.parallel, context);
35
+ for (const [id, result] of Object.entries(results)) {
36
+ context.steps[id] = result;
37
+ stepsExecuted++;
38
+ onStatus?.({
39
+ type: result.metadata.success ? 'step_complete' : 'step_error',
40
+ stepId: id,
41
+ agent: result.metadata.agent,
42
+ message: result.metadata.success
43
+ ? `Step "${id}" completed successfully`
44
+ : `Step "${id}" failed: ${result.metadata.error || 'Unknown error'}`,
45
+ progress: { current: stepsExecuted, total: totalSteps },
46
+ elapsed: Date.now() - startTime,
47
+ error: result.metadata.error,
48
+ });
49
+ }
50
+ }
51
+ else {
52
+ onStatus?.({
53
+ type: 'step_start',
54
+ stepId: stepDef.id,
55
+ agent: stepDef.agent,
56
+ message: `Starting step "${stepDef.id}" with agent "${stepDef.agent}"`,
57
+ progress: { current: stepsExecuted, total: totalSteps },
58
+ elapsed: Date.now() - startTime,
59
+ });
60
+ const result = await this.executeStep(stepDef, context);
61
+ context.steps[stepDef.id] = result;
62
+ stepsExecuted++;
63
+ onStatus?.({
64
+ type: result.metadata.success ? 'step_complete' : 'step_error',
65
+ stepId: stepDef.id,
66
+ agent: result.metadata.agent,
67
+ message: result.metadata.success
68
+ ? `Step "${stepDef.id}" completed in ${result.metadata.duration}ms`
69
+ : `Step "${stepDef.id}" failed: ${result.metadata.error || 'Unknown error'}`,
70
+ progress: { current: stepsExecuted, total: totalSteps },
71
+ elapsed: Date.now() - startTime,
72
+ error: result.metadata.error,
73
+ });
74
+ if (!result.metadata.success && definition.config?.onError === 'stop') {
75
+ success = false;
76
+ break;
77
+ }
78
+ }
79
+ }
80
+ catch (error) {
81
+ success = false;
82
+ const errorMessage = error instanceof Error ? error.message : String(error);
83
+ onStatus?.({
84
+ type: 'step_error',
85
+ message: `Step execution error: ${errorMessage}`,
86
+ progress: { current: stepsExecuted, total: totalSteps },
87
+ elapsed: Date.now() - startTime,
88
+ error: errorMessage,
89
+ });
90
+ if (definition.config?.onError === 'stop') {
91
+ break;
92
+ }
93
+ }
94
+ }
95
+ const output = this.resolveOutput(definition, context);
96
+ const duration = Date.now() - startTime;
97
+ onStatus?.({
98
+ type: success ? 'workflow_complete' : 'workflow_error',
99
+ message: success
100
+ ? `Workflow completed successfully in ${duration}ms`
101
+ : `Workflow completed with errors in ${duration}ms`,
102
+ progress: { current: stepsExecuted, total: totalSteps },
103
+ elapsed: duration,
104
+ });
105
+ return {
106
+ output,
107
+ metadata: {
108
+ duration,
109
+ stepsExecuted,
110
+ success,
111
+ },
112
+ stepResults: context.steps,
113
+ };
114
+ }
115
+ isParallelSteps(step) {
116
+ return 'parallel' in step;
117
+ }
118
+ applyDefaults(definition, input) {
119
+ const result = { ...input };
120
+ for (const [key, field] of Object.entries(definition.input.schema)) {
121
+ if (result[key] === undefined && field.default !== undefined) {
122
+ result[key] = field.default;
123
+ }
124
+ }
125
+ return result;
126
+ }
127
+ async executeStep(step, context) {
128
+ const startTime = Date.now();
129
+ if (step.condition) {
130
+ const conditionMet = this.evaluateCondition(step.condition, context);
131
+ if (!conditionMet) {
132
+ return {
133
+ output: null,
134
+ metadata: {
135
+ duration: 0,
136
+ agent: step.agent,
137
+ success: true,
138
+ error: 'Condition not met, step skipped',
139
+ },
140
+ };
141
+ }
142
+ }
143
+ const agentDef = this.agentLoader.get(step.agent);
144
+ if (!agentDef) {
145
+ return {
146
+ output: null,
147
+ metadata: {
148
+ duration: Date.now() - startTime,
149
+ agent: step.agent,
150
+ success: false,
151
+ error: `Agent not found: ${step.agent}`,
152
+ },
153
+ };
154
+ }
155
+ const resolvedInput = this.resolveInput(step.input, context);
156
+ try {
157
+ const agent = await this.agentExecutor.createInstance(agentDef);
158
+ const result = await agent.invoke(resolvedInput);
159
+ return {
160
+ output: result.output,
161
+ metadata: {
162
+ duration: Date.now() - startTime,
163
+ agent: step.agent,
164
+ success: true,
165
+ },
166
+ };
167
+ }
168
+ catch (error) {
169
+ return {
170
+ output: null,
171
+ metadata: {
172
+ duration: Date.now() - startTime,
173
+ agent: step.agent,
174
+ success: false,
175
+ error: error instanceof Error ? error.message : String(error),
176
+ },
177
+ };
178
+ }
179
+ }
180
+ async executeParallel(steps, context) {
181
+ const results = await Promise.all(steps.map(async (step) => {
182
+ const result = await this.executeStep(step, context);
183
+ return { id: step.id, result };
184
+ }));
185
+ return Object.fromEntries(results.map(({ id, result }) => [id, result]));
186
+ }
187
+ resolveInput(inputMapping, context) {
188
+ const resolved = {};
189
+ for (const [key, value] of Object.entries(inputMapping)) {
190
+ resolved[key] = this.resolveValue(value, context);
191
+ }
192
+ return resolved;
193
+ }
194
+ resolveValue(value, context) {
195
+ if (typeof value === 'string') {
196
+ return this.interpolateString(value, context);
197
+ }
198
+ if (typeof value === 'object' && value !== null && 'from' in value) {
199
+ const mapping = value;
200
+ return this.resolvePath(mapping.from, mapping.path, context);
201
+ }
202
+ return value;
203
+ }
204
+ interpolateString(template, context) {
205
+ return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
206
+ const trimmedPath = path.trim();
207
+ const value = this.resolveTemplatePath(trimmedPath, context);
208
+ return value !== undefined ? String(value) : '';
209
+ });
210
+ }
211
+ resolveTemplatePath(path, context) {
212
+ const parts = path.split('.');
213
+ if (parts[0] === 'input') {
214
+ return this.getNestedValue(context.input, parts.slice(1));
215
+ }
216
+ if (parts[0] === 'steps' && parts[1]) {
217
+ const stepId = parts[1];
218
+ const stepResult = context.steps[stepId];
219
+ if (!stepResult)
220
+ return undefined;
221
+ if (parts[2] === 'output') {
222
+ return this.getNestedValue(stepResult.output, parts.slice(3));
223
+ }
224
+ if (parts[2] === 'metadata') {
225
+ return this.getNestedValue(stepResult.metadata, parts.slice(3));
226
+ }
227
+ return stepResult.output;
228
+ }
229
+ return undefined;
230
+ }
231
+ resolvePath(from, path, context) {
232
+ switch (from) {
233
+ case 'context':
234
+ return this.getNestedValue(context, path.split('.'));
235
+ case 'step': {
236
+ const [stepId, ...rest] = path.split('.');
237
+ const stepResult = stepId ? context.steps[stepId] : undefined;
238
+ return stepResult ? this.getNestedValue(stepResult, rest) : undefined;
239
+ }
240
+ default:
241
+ return undefined;
242
+ }
243
+ }
244
+ getNestedValue(obj, path) {
245
+ let current = obj;
246
+ for (const key of path) {
247
+ if (current === null || current === undefined)
248
+ return undefined;
249
+ if (typeof current !== 'object')
250
+ return undefined;
251
+ current = current[key];
252
+ }
253
+ return current;
254
+ }
255
+ evaluateCondition(condition, context) {
256
+ const interpolated = this.interpolateString(condition, context);
257
+ try {
258
+ if (interpolated === 'true')
259
+ return true;
260
+ if (interpolated === 'false')
261
+ return false;
262
+ return Boolean(interpolated);
263
+ }
264
+ catch {
265
+ return false;
266
+ }
267
+ }
268
+ resolveOutput(definition, context) {
269
+ const output = {};
270
+ for (const [key, template] of Object.entries(definition.output)) {
271
+ output[key] = this.interpolateString(template, context);
272
+ }
273
+ return output;
274
+ }
275
+ }
276
+ //# sourceMappingURL=workflow-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-executor.js","sourceRoot":"","sources":["../../../lib/workflows/workflow-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type WorkflowDefinition } from './types.js';
2
+ export declare class WorkflowLoader {
3
+ private workflowsDir;
4
+ private workflows;
5
+ constructor(workflowsDir: string);
6
+ loadAll(): Promise<Map<string, WorkflowDefinition>>;
7
+ loadOne(filePath: string): Promise<WorkflowDefinition>;
8
+ get(name: string): WorkflowDefinition | undefined;
9
+ list(): WorkflowDefinition[];
10
+ has(name: string): boolean;
11
+ names(): string[];
12
+ }
13
+ //# sourceMappingURL=workflow-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-loader.d.ts","sourceRoot":"","sources":["../../../lib/workflows/workflow-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAA8C;gBAEnD,YAAY,EAAE,MAAM;IAI1B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAYnD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM5D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIjD,IAAI,IAAI,kBAAkB,EAAE;IAI5B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,KAAK,IAAI,MAAM,EAAE;CAGlB"}
@@ -0,0 +1,39 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { glob } from 'glob';
4
+ import { parse as parseYaml } from 'yaml';
5
+ import { WorkflowDefinitionSchema } from './types.js';
6
+ export class WorkflowLoader {
7
+ workflowsDir;
8
+ workflows = new Map();
9
+ constructor(workflowsDir) {
10
+ this.workflowsDir = workflowsDir;
11
+ }
12
+ async loadAll() {
13
+ const files = await glob('**/*.workflow.yaml', { cwd: this.workflowsDir });
14
+ for (const file of files) {
15
+ const filePath = path.join(this.workflowsDir, file);
16
+ const workflow = await this.loadOne(filePath);
17
+ this.workflows.set(workflow.name, workflow);
18
+ }
19
+ return this.workflows;
20
+ }
21
+ async loadOne(filePath) {
22
+ const content = await fs.readFile(filePath, 'utf-8');
23
+ const parsed = parseYaml(content);
24
+ return WorkflowDefinitionSchema.parse(parsed);
25
+ }
26
+ get(name) {
27
+ return this.workflows.get(name);
28
+ }
29
+ list() {
30
+ return Array.from(this.workflows.values());
31
+ }
32
+ has(name) {
33
+ return this.workflows.has(name);
34
+ }
35
+ names() {
36
+ return Array.from(this.workflows.keys());
37
+ }
38
+ }
39
+ //# sourceMappingURL=workflow-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-loader.js","sourceRoot":"","sources":["../../../lib/workflows/workflow-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAA2B,MAAM,YAAY,CAAC;AAE/E,MAAM,OAAO,cAAc;IACjB,YAAY,CAAS;IACrB,SAAS,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE/D,YAAY,YAAoB;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE3E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF"}