@agntk/core 0.2.0 → 0.3.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 (190) hide show
  1. package/dist/agent-v2.d.ts +48 -0
  2. package/dist/agent-v2.d.ts.map +1 -0
  3. package/dist/agent-v2.js +365 -0
  4. package/dist/agent-v2.js.map +1 -0
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +61 -43
  7. package/dist/agent.js.map +1 -1
  8. package/dist/config/defaults.d.ts.map +1 -1
  9. package/dist/config/defaults.js +16 -4
  10. package/dist/config/defaults.js.map +1 -1
  11. package/dist/config/loader.d.ts +14 -6
  12. package/dist/config/loader.d.ts.map +1 -1
  13. package/dist/config/loader.js +38 -16
  14. package/dist/config/loader.js.map +1 -1
  15. package/dist/config/schema.d.ts +14 -14
  16. package/dist/config/schema.d.ts.map +1 -1
  17. package/dist/config/schema.js +1 -1
  18. package/dist/config/schema.js.map +1 -1
  19. package/dist/guardrails/runner.d.ts.map +1 -1
  20. package/dist/guardrails/runner.js +4 -0
  21. package/dist/guardrails/runner.js.map +1 -1
  22. package/dist/index.d.ts +5 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/memory/engine.d.ts +130 -0
  27. package/dist/memory/engine.d.ts.map +1 -0
  28. package/dist/memory/engine.js +227 -0
  29. package/dist/memory/engine.js.map +1 -0
  30. package/dist/memory/vectra-store.d.ts +31 -0
  31. package/dist/memory/vectra-store.d.ts.map +1 -0
  32. package/dist/memory/vectra-store.js +122 -0
  33. package/dist/memory/vectra-store.js.map +1 -0
  34. package/dist/models.d.ts +24 -1
  35. package/dist/models.d.ts.map +1 -1
  36. package/dist/models.js +50 -4
  37. package/dist/models.js.map +1 -1
  38. package/dist/pool/index.d.ts +7 -0
  39. package/dist/pool/index.d.ts.map +1 -0
  40. package/dist/pool/index.js +6 -0
  41. package/dist/pool/index.js.map +1 -0
  42. package/dist/pool/specialist-pool.d.ts +59 -0
  43. package/dist/pool/specialist-pool.d.ts.map +1 -0
  44. package/dist/pool/specialist-pool.js +224 -0
  45. package/dist/pool/specialist-pool.js.map +1 -0
  46. package/dist/pool/tools.d.ts +63 -0
  47. package/dist/pool/tools.d.ts.map +1 -0
  48. package/dist/pool/tools.js +83 -0
  49. package/dist/pool/tools.js.map +1 -0
  50. package/dist/pool/types.d.ts +79 -0
  51. package/dist/pool/types.d.ts.map +1 -0
  52. package/dist/pool/types.js +5 -0
  53. package/dist/pool/types.js.map +1 -0
  54. package/dist/presets/index.d.ts +5 -0
  55. package/dist/presets/index.d.ts.map +1 -0
  56. package/dist/presets/index.js +5 -0
  57. package/dist/presets/index.js.map +1 -0
  58. package/dist/presets/role-registry.d.ts +41 -0
  59. package/dist/presets/role-registry.d.ts.map +1 -0
  60. package/dist/presets/role-registry.js +213 -0
  61. package/dist/presets/role-registry.js.map +1 -0
  62. package/dist/presets/roles.d.ts +105 -0
  63. package/dist/presets/roles.d.ts.map +1 -0
  64. package/dist/presets/roles.js +207 -0
  65. package/dist/presets/roles.js.map +1 -0
  66. package/dist/presets/tools.d.ts +2 -2
  67. package/dist/prompts/templates.d.ts +11 -0
  68. package/dist/prompts/templates.d.ts.map +1 -0
  69. package/dist/prompts/templates.js +115 -0
  70. package/dist/prompts/templates.js.map +1 -0
  71. package/dist/provider-resolver.d.ts +38 -0
  72. package/dist/provider-resolver.d.ts.map +1 -0
  73. package/dist/provider-resolver.js +142 -0
  74. package/dist/provider-resolver.js.map +1 -0
  75. package/dist/reflection.d.ts +5 -2
  76. package/dist/reflection.d.ts.map +1 -1
  77. package/dist/reflection.js +8 -3
  78. package/dist/reflection.js.map +1 -1
  79. package/dist/skills/loader.d.ts +18 -0
  80. package/dist/skills/loader.d.ts.map +1 -1
  81. package/dist/skills/loader.js +58 -2
  82. package/dist/skills/loader.js.map +1 -1
  83. package/dist/streaming/data-parts.d.ts +163 -0
  84. package/dist/streaming/data-parts.d.ts.map +1 -0
  85. package/dist/streaming/data-parts.js +14 -0
  86. package/dist/streaming/data-parts.js.map +1 -0
  87. package/dist/streaming/index.d.ts +8 -0
  88. package/dist/streaming/index.d.ts.map +1 -0
  89. package/dist/streaming/index.js +10 -0
  90. package/dist/streaming/index.js.map +1 -0
  91. package/dist/streaming/transient.d.ts +136 -0
  92. package/dist/streaming/transient.d.ts.map +1 -0
  93. package/dist/streaming/transient.js +201 -0
  94. package/dist/streaming/transient.js.map +1 -0
  95. package/dist/system-detect.d.ts +59 -0
  96. package/dist/system-detect.d.ts.map +1 -0
  97. package/dist/system-detect.js +193 -0
  98. package/dist/system-detect.js.map +1 -0
  99. package/dist/tools/browser/tool.d.ts +2 -2
  100. package/dist/tools/browser/types.d.ts +2 -2
  101. package/dist/tools/file/tools.d.ts.map +1 -1
  102. package/dist/tools/file/tools.js +30 -1
  103. package/dist/tools/file/tools.js.map +1 -1
  104. package/dist/tools/index.d.ts +0 -1
  105. package/dist/tools/index.d.ts.map +1 -1
  106. package/dist/tools/index.js +0 -2
  107. package/dist/tools/index.js.map +1 -1
  108. package/dist/tools/progress/index.d.ts +1 -1
  109. package/dist/tools/provider.d.ts +97 -0
  110. package/dist/tools/provider.d.ts.map +1 -0
  111. package/dist/tools/provider.js +178 -0
  112. package/dist/tools/provider.js.map +1 -0
  113. package/dist/tools/shell/background.d.ts.map +1 -1
  114. package/dist/tools/shell/background.js +45 -3
  115. package/dist/tools/shell/background.js.map +1 -1
  116. package/dist/tools/shell/tools.d.ts.map +1 -1
  117. package/dist/tools/shell/tools.js +9 -2
  118. package/dist/tools/shell/tools.js.map +1 -1
  119. package/dist/tools/utils/shell.d.ts +14 -0
  120. package/dist/tools/utils/shell.d.ts.map +1 -1
  121. package/dist/tools/utils/shell.js +171 -12
  122. package/dist/tools/utils/shell.js.map +1 -1
  123. package/dist/types/agent-v2.d.ts +83 -0
  124. package/dist/types/agent-v2.d.ts.map +1 -0
  125. package/dist/types/agent-v2.js +8 -0
  126. package/dist/types/agent-v2.js.map +1 -0
  127. package/dist/types/agent.d.ts +10 -0
  128. package/dist/types/agent.d.ts.map +1 -1
  129. package/dist/utils/logger.d.ts +35 -0
  130. package/dist/utils/logger.d.ts.map +1 -0
  131. package/dist/utils/logger.js +149 -0
  132. package/dist/utils/logger.js.map +1 -0
  133. package/dist/workflow/builders/adapt.d.ts +20 -0
  134. package/dist/workflow/builders/adapt.d.ts.map +1 -0
  135. package/dist/workflow/builders/adapt.js +33 -0
  136. package/dist/workflow/builders/adapt.js.map +1 -0
  137. package/dist/workflow/builders/index.d.ts +8 -0
  138. package/dist/workflow/builders/index.d.ts.map +1 -0
  139. package/dist/workflow/builders/index.js +7 -0
  140. package/dist/workflow/builders/index.js.map +1 -0
  141. package/dist/workflow/builders/parallel.d.ts +25 -0
  142. package/dist/workflow/builders/parallel.d.ts.map +1 -0
  143. package/dist/workflow/builders/parallel.js +60 -0
  144. package/dist/workflow/builders/parallel.js.map +1 -0
  145. package/dist/workflow/builders/pipeline.d.ts +22 -0
  146. package/dist/workflow/builders/pipeline.d.ts.map +1 -0
  147. package/dist/workflow/builders/pipeline.js +48 -0
  148. package/dist/workflow/builders/pipeline.js.map +1 -0
  149. package/dist/workflow/builders/types.d.ts +54 -0
  150. package/dist/workflow/builders/types.d.ts.map +1 -0
  151. package/dist/workflow/builders/types.js +5 -0
  152. package/dist/workflow/builders/types.js.map +1 -0
  153. package/dist/workflow/durable-agent.d.ts +128 -0
  154. package/dist/workflow/durable-agent.d.ts.map +1 -0
  155. package/dist/workflow/durable-agent.js +323 -0
  156. package/dist/workflow/durable-agent.js.map +1 -0
  157. package/dist/workflow/schedulers.d.ts +231 -0
  158. package/dist/workflow/schedulers.d.ts.map +1 -0
  159. package/dist/workflow/schedulers.js +250 -0
  160. package/dist/workflow/schedulers.js.map +1 -0
  161. package/dist/workflow/team/create-team.d.ts +34 -0
  162. package/dist/workflow/team/create-team.d.ts.map +1 -0
  163. package/dist/workflow/team/create-team.js +242 -0
  164. package/dist/workflow/team/create-team.js.map +1 -0
  165. package/dist/workflow/team/index.d.ts +9 -0
  166. package/dist/workflow/team/index.d.ts.map +1 -0
  167. package/dist/workflow/team/index.js +8 -0
  168. package/dist/workflow/team/index.js.map +1 -0
  169. package/dist/workflow/team/machines.d.ts +152 -0
  170. package/dist/workflow/team/machines.d.ts.map +1 -0
  171. package/dist/workflow/team/machines.js +197 -0
  172. package/dist/workflow/team/machines.js.map +1 -0
  173. package/dist/workflow/team/task-board.d.ts +47 -0
  174. package/dist/workflow/team/task-board.d.ts.map +1 -0
  175. package/dist/workflow/team/task-board.js +111 -0
  176. package/dist/workflow/team/task-board.js.map +1 -0
  177. package/dist/workflow/team/tools.d.ts +66 -0
  178. package/dist/workflow/team/tools.d.ts.map +1 -0
  179. package/dist/workflow/team/tools.js +100 -0
  180. package/dist/workflow/team/tools.js.map +1 -0
  181. package/dist/workflow/team/types.d.ts +109 -0
  182. package/dist/workflow/team/types.d.ts.map +1 -0
  183. package/dist/workflow/team/types.js +5 -0
  184. package/dist/workflow/team/types.js.map +1 -0
  185. package/dist/workflow/templates.d.ts +71 -0
  186. package/dist/workflow/templates.d.ts.map +1 -0
  187. package/dist/workflow/templates.js +132 -0
  188. package/dist/workflow/templates.js.map +1 -0
  189. package/package.json +13 -13
  190. package/LICENSE +0 -22
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @agntk/core - Minimal Logger
3
+ * Zero-dependency logger that works in Node, Bun, and browser environments
4
+ */
5
+ const LOG_LEVELS = {
6
+ debug: 0,
7
+ info: 1,
8
+ warn: 2,
9
+ error: 3,
10
+ };
11
+ const LOG_COLORS = {
12
+ debug: '\x1b[36m',
13
+ info: '\x1b[32m',
14
+ warn: '\x1b[33m',
15
+ error: '\x1b[31m',
16
+ };
17
+ const RESET_COLOR = '\x1b[0m';
18
+ // Runtime detection for browser vs Node/Bun
19
+ const isBrowser = typeof globalThis !== 'undefined'
20
+ && typeof globalThis.document !== 'undefined';
21
+ function getEnvLogLevel() {
22
+ if (isBrowser)
23
+ return 'info';
24
+ const envLevel = (typeof process !== 'undefined' ? process.env?.['LOG_LEVEL'] : undefined)?.toLowerCase();
25
+ if (envLevel && envLevel in LOG_LEVELS) {
26
+ return envLevel;
27
+ }
28
+ return 'info';
29
+ }
30
+ export function createLogger(options = {}) {
31
+ let currentLevel = options.level ?? getEnvLogLevel();
32
+ const enableColors = options.enableColors ?? !isBrowser;
33
+ const enableTimestamps = options.enableTimestamps ?? true;
34
+ const prefix = options.prefix;
35
+ let agentContext;
36
+ const subscribers = new Set();
37
+ function shouldLog(level) {
38
+ return LOG_LEVELS[level] >= LOG_LEVELS[currentLevel];
39
+ }
40
+ function formatMessage(level, message, meta, useColors = enableColors) {
41
+ const parts = [];
42
+ if (enableTimestamps) {
43
+ const timestamp = new Date().toISOString();
44
+ parts.push(`[${timestamp}]`);
45
+ }
46
+ const levelString = level.toUpperCase().padEnd(5);
47
+ if (useColors && !isBrowser) {
48
+ parts.push(`${LOG_COLORS[level]}${levelString}${RESET_COLOR}`);
49
+ }
50
+ else {
51
+ parts.push(levelString);
52
+ }
53
+ if (prefix) {
54
+ parts.push(`[${prefix}]`);
55
+ }
56
+ if (agentContext) {
57
+ if (agentContext.type === 'main') {
58
+ const ctxLabel = useColors && !isBrowser ? '\x1b[1m[MAIN]\x1b[0m' : '[MAIN]';
59
+ parts.push(ctxLabel);
60
+ }
61
+ else if (agentContext.type === 'spawned') {
62
+ const taskLabel = agentContext.taskId ? agentContext.taskId.slice(-8) : 'sub';
63
+ const ctxLabel = useColors && !isBrowser
64
+ ? `\x1b[90m[SUB:${taskLabel}]\x1b[0m`
65
+ : `[SUB:${taskLabel}]`;
66
+ parts.push(ctxLabel);
67
+ }
68
+ }
69
+ parts.push(message);
70
+ if (meta && Object.keys(meta).length > 0) {
71
+ parts.push(JSON.stringify(meta));
72
+ }
73
+ return parts.join(' ');
74
+ }
75
+ function log(level, message, meta) {
76
+ if (!shouldLog(level)) {
77
+ return;
78
+ }
79
+ const formatted = formatMessage(level, message, meta);
80
+ if (isBrowser) {
81
+ // Browser-compatible logging with colors via console API
82
+ const style = level === 'error' ? 'color: red'
83
+ : level === 'warn' ? 'color: orange'
84
+ : level === 'debug' ? 'color: cyan'
85
+ : 'color: green';
86
+ console[level === 'debug' ? 'log' : level](`%c${formatted}`, style);
87
+ }
88
+ else {
89
+ // Node/Bun logging
90
+ switch (level) {
91
+ case 'error':
92
+ console.error(formatted);
93
+ break;
94
+ case 'warn':
95
+ console.warn(formatted);
96
+ break;
97
+ case 'info':
98
+ case 'debug':
99
+ console.log(formatted);
100
+ break;
101
+ }
102
+ }
103
+ if (subscribers.size > 0) {
104
+ const entry = {
105
+ timestamp: Date.now(),
106
+ level,
107
+ message,
108
+ meta,
109
+ formattedMessage: formatMessage(level, message, meta, false),
110
+ };
111
+ for (const callback of Array.from(subscribers)) {
112
+ try {
113
+ callback(entry);
114
+ }
115
+ catch {
116
+ // Ignore subscriber errors
117
+ }
118
+ }
119
+ }
120
+ }
121
+ return {
122
+ debug(message, meta) {
123
+ log('debug', message, meta);
124
+ },
125
+ info(message, meta) {
126
+ log('info', message, meta);
127
+ },
128
+ warn(message, meta) {
129
+ log('warn', message, meta);
130
+ },
131
+ error(message, meta) {
132
+ log('error', message, meta);
133
+ },
134
+ setLevel(level) {
135
+ currentLevel = level;
136
+ },
137
+ setAgentContext(context) {
138
+ agentContext = context;
139
+ },
140
+ subscribe(callback) {
141
+ subscribers.add(callback);
142
+ return () => {
143
+ subscribers.delete(callback);
144
+ };
145
+ },
146
+ };
147
+ }
148
+ export const logger = createLogger();
149
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @agntk/core - Agent → WorkflowStep Adapter
3
+ *
4
+ * Converts an Agent to a WorkflowStep so agents and workflows are interchangeable.
5
+ */
6
+ import type { Agent } from '../../agent.js';
7
+ import type { WorkflowStep } from './types.js';
8
+ /**
9
+ * Adapt an Agent to a WorkflowStep.
10
+ * The agent's generate() method is called with the workflow input prompt.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const pipeline = createPipeline({
15
+ * steps: [asStep(researchAgent), asStep(writerAgent)],
16
+ * });
17
+ * ```
18
+ */
19
+ export declare function asStep(agent: Agent): WorkflowStep;
20
+ //# sourceMappingURL=adapt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapt.d.ts","sourceRoot":"","sources":["../../../src/workflow/builders/adapt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAiC,MAAM,SAAS,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAejD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @agntk/core - Agent → WorkflowStep Adapter
3
+ *
4
+ * Converts an Agent to a WorkflowStep so agents and workflows are interchangeable.
5
+ */
6
+ /**
7
+ * Adapt an Agent to a WorkflowStep.
8
+ * The agent's generate() method is called with the workflow input prompt.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const pipeline = createPipeline({
13
+ * steps: [asStep(researchAgent), asStep(writerAgent)],
14
+ * });
15
+ * ```
16
+ */
17
+ export function asStep(agent) {
18
+ return {
19
+ async execute(input) {
20
+ const result = await agent.generate({ prompt: input.prompt });
21
+ return {
22
+ text: result.text ?? '',
23
+ metadata: {
24
+ agentId: agent.agentId,
25
+ role: agent.role,
26
+ steps: result.steps?.length ?? 0,
27
+ usage: result.totalUsage,
28
+ },
29
+ };
30
+ },
31
+ };
32
+ }
33
+ //# sourceMappingURL=adapt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapt.js","sourceRoot":"","sources":["../../../src/workflow/builders/adapt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,KAAY;IACjC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,KAAoB;YAChC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9D,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBACvB,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;oBAChC,KAAK,EAAE,MAAM,CAAC,UAAU;iBACzB;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Workflow builders public API.
3
+ */
4
+ export type { Workflow, WorkflowStep, WorkflowInput, WorkflowOutput, SynthesizeFn, PipelineConfig, ParallelConfig, } from './types.js';
5
+ export { createPipeline } from './pipeline.js';
6
+ export { createParallel } from './parallel.js';
7
+ export { asStep } from './adapt.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workflow/builders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Workflow builders public API.
3
+ */
4
+ export { createPipeline } from './pipeline.js';
5
+ export { createParallel } from './parallel.js';
6
+ export { asStep } from './adapt.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workflow/builders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @agntk/core - Parallel Workflow Builder
3
+ *
4
+ * Fan out to multiple agents/workflows concurrently,
5
+ * then synthesize the results.
6
+ */
7
+ import type { Workflow, ParallelConfig } from './types.js';
8
+ /**
9
+ * Create a parallel workflow that fans out to multiple steps concurrently.
10
+ * All steps receive the same input prompt. Results are merged by the synthesize function.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const parallel = createParallel({
15
+ * name: 'multi-analysis',
16
+ * steps: [securityAgent, performanceAgent, codeQualityAgent],
17
+ * synthesize: (outputs) => ({
18
+ * text: outputs.map(o => o.text).join('\n\n---\n\n'),
19
+ * }),
20
+ * });
21
+ * const result = await parallel.execute({ prompt: 'Analyze this codebase' });
22
+ * ```
23
+ */
24
+ export declare function createParallel(config: ParallelConfig): Workflow;
25
+ //# sourceMappingURL=parallel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../../src/workflow/builders/parallel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAiC,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CA2C/D"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @agntk/core - Parallel Workflow Builder
3
+ *
4
+ * Fan out to multiple agents/workflows concurrently,
5
+ * then synthesize the results.
6
+ */
7
+ import { createLogger } from '@agntk/logger';
8
+ const log = createLogger('@agntk/core:workflow:parallel');
9
+ /**
10
+ * Create a parallel workflow that fans out to multiple steps concurrently.
11
+ * All steps receive the same input prompt. Results are merged by the synthesize function.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const parallel = createParallel({
16
+ * name: 'multi-analysis',
17
+ * steps: [securityAgent, performanceAgent, codeQualityAgent],
18
+ * synthesize: (outputs) => ({
19
+ * text: outputs.map(o => o.text).join('\n\n---\n\n'),
20
+ * }),
21
+ * });
22
+ * const result = await parallel.execute({ prompt: 'Analyze this codebase' });
23
+ * ```
24
+ */
25
+ export function createParallel(config) {
26
+ const { name = 'parallel', steps, synthesize } = config;
27
+ if (steps.length === 0) {
28
+ throw new Error('Parallel workflow must have at least one step');
29
+ }
30
+ return {
31
+ name,
32
+ stepCount: steps.length,
33
+ async execute(input) {
34
+ log.info('Parallel started', { name, stepCount: steps.length, promptLength: input.prompt.length });
35
+ const results = await Promise.allSettled(steps.map((step, i) => {
36
+ log.debug('Parallel step launched', { name, step: i + 1 });
37
+ return step.execute(input);
38
+ }));
39
+ const outputs = [];
40
+ for (let i = 0; i < results.length; i++) {
41
+ const result = results[i];
42
+ if (result.status === 'fulfilled') {
43
+ outputs.push(result.value);
44
+ }
45
+ else {
46
+ log.error('Parallel step failed', { name, step: i + 1, error: String(result.reason) });
47
+ outputs.push({
48
+ text: `[Step ${i + 1} failed: ${result.reason instanceof Error ? result.reason.message : String(result.reason)}]`,
49
+ metadata: { error: true },
50
+ });
51
+ }
52
+ }
53
+ log.debug('Synthesizing parallel outputs', { name, outputCount: outputs.length });
54
+ const synthesized = await synthesize(outputs);
55
+ log.info('Parallel completed', { name, textLength: synthesized.text.length });
56
+ return synthesized;
57
+ },
58
+ };
59
+ }
60
+ //# sourceMappingURL=parallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../../src/workflow/builders/parallel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,GAAG,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,EAAE,IAAI,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,KAAK,CAAC,MAAM;QAEvB,KAAK,CAAC,OAAO,CAAC,KAAoB;YAChC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACpB,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,GAAqB,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACvF,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;wBACjH,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAE9C,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAE9E,OAAO,WAAW,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @agntk/core - Pipeline Workflow Builder
3
+ *
4
+ * Chain agents/workflows sequentially. Each step's output
5
+ * becomes the next step's input prompt.
6
+ */
7
+ import type { Workflow, PipelineConfig } from './types.js';
8
+ /**
9
+ * Create a pipeline that chains steps sequentially.
10
+ * Each step's text output becomes the next step's prompt.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const pipeline = createPipeline({
15
+ * name: 'research-then-write',
16
+ * steps: [researchAgent, writerAgent],
17
+ * });
18
+ * const result = await pipeline.execute({ prompt: 'Write about quantum computing' });
19
+ * ```
20
+ */
21
+ export declare function createPipeline(config: PipelineConfig): Workflow;
22
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/workflow/builders/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAiC,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvF;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAkC/D"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @agntk/core - Pipeline Workflow Builder
3
+ *
4
+ * Chain agents/workflows sequentially. Each step's output
5
+ * becomes the next step's input prompt.
6
+ */
7
+ import { createLogger } from '@agntk/logger';
8
+ const log = createLogger('@agntk/core:workflow:pipeline');
9
+ /**
10
+ * Create a pipeline that chains steps sequentially.
11
+ * Each step's text output becomes the next step's prompt.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const pipeline = createPipeline({
16
+ * name: 'research-then-write',
17
+ * steps: [researchAgent, writerAgent],
18
+ * });
19
+ * const result = await pipeline.execute({ prompt: 'Write about quantum computing' });
20
+ * ```
21
+ */
22
+ export function createPipeline(config) {
23
+ const { name = 'pipeline', steps, transform } = config;
24
+ if (steps.length === 0) {
25
+ throw new Error('Pipeline must have at least one step');
26
+ }
27
+ return {
28
+ name,
29
+ stepCount: steps.length,
30
+ async execute(input) {
31
+ log.info('Pipeline started', { name, stepCount: steps.length, promptLength: input.prompt.length });
32
+ let currentOutput = { text: input.prompt };
33
+ for (let i = 0; i < steps.length; i++) {
34
+ const step = steps[i];
35
+ const prompt = i === 0
36
+ ? input.prompt
37
+ : transform
38
+ ? transform(currentOutput, i)
39
+ : currentOutput.text;
40
+ log.debug('Pipeline step', { name, step: i + 1, total: steps.length, promptLength: prompt.length });
41
+ currentOutput = await step.execute({ prompt });
42
+ }
43
+ log.info('Pipeline completed', { name, textLength: currentOutput.text.length });
44
+ return currentOutput;
45
+ },
46
+ };
47
+ }
48
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/workflow/builders/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,GAAG,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,EAAE,IAAI,GAAG,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,KAAK,CAAC,MAAM;QAEvB,KAAK,CAAC,OAAO,CAAC,KAAoB;YAChC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnG,IAAI,aAAa,GAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC;oBACpB,CAAC,CAAC,KAAK,CAAC,MAAM;oBACd,CAAC,CAAC,SAAS;wBACT,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;wBAC7B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;gBAEzB,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEpG,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEhF,OAAO,aAAa,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @fileoverview Types for workflow builders (Pipeline, Parallel).
3
+ */
4
+ /**
5
+ * A Workflow step that can execute with a prompt and return text.
6
+ * Compatible with the Agent interface so agents and workflows are interchangeable.
7
+ */
8
+ export interface WorkflowStep {
9
+ /** Execute the step with a prompt. */
10
+ execute: (input: WorkflowInput) => Promise<WorkflowOutput>;
11
+ }
12
+ /** Input to a workflow step. */
13
+ export interface WorkflowInput {
14
+ prompt: string;
15
+ }
16
+ /** Output from a workflow step. */
17
+ export interface WorkflowOutput {
18
+ text: string;
19
+ metadata?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * A Workflow that composes multiple steps.
23
+ * Implements WorkflowStep so it can nest inside other workflows.
24
+ */
25
+ export interface Workflow extends WorkflowStep {
26
+ /** Name of this workflow. */
27
+ name: string;
28
+ /** Number of steps in this workflow. */
29
+ stepCount: number;
30
+ }
31
+ /**
32
+ * Synthesize function for parallel workflows.
33
+ * Receives all outputs and produces a merged result.
34
+ */
35
+ export type SynthesizeFn = (outputs: WorkflowOutput[]) => WorkflowOutput | Promise<WorkflowOutput>;
36
+ /** Configuration for createPipeline. */
37
+ export interface PipelineConfig {
38
+ /** Pipeline name. */
39
+ name?: string;
40
+ /** Steps to execute sequentially. */
41
+ steps: WorkflowStep[];
42
+ /** Optional transform between steps (receives previous output, returns next prompt). */
43
+ transform?: (output: WorkflowOutput, stepIndex: number) => string;
44
+ }
45
+ /** Configuration for createParallel. */
46
+ export interface ParallelConfig {
47
+ /** Parallel workflow name. */
48
+ name?: string;
49
+ /** Steps to execute concurrently. */
50
+ steps: WorkflowStep[];
51
+ /** Function to synthesize/merge parallel outputs. */
52
+ synthesize: SynthesizeFn;
53
+ }
54
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/workflow/builders/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5D;AAED,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEnG,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,wFAAwF;IACxF,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CACnE;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,qDAAqD;IACrD,UAAU,EAAE,YAAY,CAAC;CAC1B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @fileoverview Types for workflow builders (Pipeline, Parallel).
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/workflow/builders/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @agntk/core - Durable Agent Factory
3
+ *
4
+ * Creates agents with workflow durability features.
5
+ * Uses the Workflow DevKit ("use workflow" / "use step" directives)
6
+ * for crash recovery, auto-retry, and step-level observability.
7
+ *
8
+ * When the `workflow` package is installed and the app runs under the
9
+ * Workflow runtime, every LLM call and tool execution becomes a
10
+ * discrete, checkpointed step. Without the runtime, the directives
11
+ * are inert string literals and the agent operates normally.
12
+ *
13
+ * @see https://useworkflow.dev
14
+ */
15
+ import type { Agent } from '../agent.js';
16
+ import type { AgentOptions, WorkflowOptions } from '../types/agent.js';
17
+ /**
18
+ * Extended options for creating a durable agent.
19
+ * Includes all standard AgentOptions plus workflow-specific config.
20
+ */
21
+ export interface DurableAgentOptions extends AgentOptions {
22
+ /** Force durability even if detection is uncertain. Default: true */
23
+ durable?: boolean;
24
+ /** Workflow-specific configuration. */
25
+ workflowOptions?: WorkflowOptions;
26
+ }
27
+ /**
28
+ * Result from a durable generation.
29
+ */
30
+ export interface DurableGenerateResult {
31
+ text: string;
32
+ workflowRunId?: string;
33
+ steps?: Array<{
34
+ name: string;
35
+ status: 'completed' | 'failed' | 'skipped';
36
+ durationMs?: number;
37
+ }>;
38
+ usage?: {
39
+ promptTokens: number;
40
+ completionTokens: number;
41
+ totalTokens: number;
42
+ };
43
+ }
44
+ /**
45
+ * Webhook response for approval workflows.
46
+ */
47
+ export interface WebhookResponse {
48
+ approved: boolean;
49
+ feedback?: string;
50
+ modifiedContent?: string;
51
+ }
52
+ /**
53
+ * Extended agent interface with durable workflow capabilities.
54
+ * Extends the base Agent interface with workflow-specific methods.
55
+ */
56
+ export interface DurableAgent extends Agent {
57
+ /**
58
+ * Durable generate that wraps the LLM call as a workflow step.
59
+ * Survives crashes — the workflow runtime checkpoints progress.
60
+ */
61
+ durableGenerate: (prompt: string) => Promise<DurableGenerateResult>;
62
+ /**
63
+ * Generate with approval workflow.
64
+ * Pauses execution (zero compute) until webhook approval is received.
65
+ */
66
+ withApproval: (prompt: string, webhookPath: string) => Promise<DurableGenerateResult>;
67
+ /**
68
+ * Scheduled generation with durable delay.
69
+ * Uses workflow sleep() — doesn't hold compute during the delay.
70
+ */
71
+ scheduled: (prompt: string, delay: string) => Promise<DurableGenerateResult>;
72
+ /** Whether workflows are actually active (runtime detected). */
73
+ readonly isWorkflowActive: boolean;
74
+ /** The workflow run ID (set after first workflow execution). */
75
+ readonly workflowRunId: string | undefined;
76
+ }
77
+ /**
78
+ * Check if the Workflow DevKit runtime is available.
79
+ * Result is cached after first check.
80
+ */
81
+ export declare function checkWorkflowAvailability(): Promise<boolean>;
82
+ /**
83
+ * Reset workflow availability cache (for testing).
84
+ * @internal
85
+ */
86
+ export declare function _resetWorkflowCache(): void;
87
+ /**
88
+ * Create a durable agent with workflow integration.
89
+ *
90
+ * The durable agent wraps a standard Agent with workflow directives
91
+ * that make every LLM call and tool execution a recoverable step.
92
+ *
93
+ * @param baseAgent - The base agent to wrap with durability
94
+ * @param options - Durable agent options
95
+ * @returns DurableAgent instance with both standard and durable methods
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * import { createAgent } from '@agntk/core';
100
+ * import { createDurableAgent } from '@agntk/core/workflow';
101
+ *
102
+ * const base = createAgent({ role: 'coder', toolPreset: 'standard' });
103
+ * const agent = createDurableAgent(base);
104
+ *
105
+ * // Standard generation (no durability)
106
+ * const result = await agent.generate({ prompt: 'Hello' });
107
+ *
108
+ * // Durable generation (survives crashes)
109
+ * const durable = await agent.durableGenerate('Create a component');
110
+ *
111
+ * // With approval workflow
112
+ * const approved = await agent.withApproval('Draft email', '/api/approve');
113
+ *
114
+ * // Scheduled generation
115
+ * const delayed = await agent.scheduled('Send reminder', '1h');
116
+ * ```
117
+ */
118
+ export declare function createDurableAgent(baseAgent: Agent, options?: DurableAgentOptions): DurableAgent;
119
+ /**
120
+ * Parse a duration string into milliseconds.
121
+ * Supports: 30s, 5m, 1h, 1d
122
+ */
123
+ export declare function parseDuration(duration: string): number;
124
+ /**
125
+ * Format milliseconds as a human-readable duration.
126
+ */
127
+ export declare function formatDuration(ms: number): string;
128
+ //# sourceMappingURL=durable-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-agent.d.ts","sourceRoot":"","sources":["../../src/workflow/durable-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAQpE;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC;;;OAGG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEpE;;;OAGG;IACH,YAAY,EAAE,CACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEpC;;;OAGG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE7E,gEAAgE;IAChE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAEnC,gEAAgE;IAChE,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAgBD;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAalE;AAeD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AA4KD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,KAAK,EAChB,OAAO,GAAE,mBAAwB,GAChC,YAAY,CAsEd;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqBtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD"}