societyai 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 (114) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/LICENSE +21 -0
  3. package/README.md +879 -0
  4. package/dist/builder.d.ts +181 -0
  5. package/dist/builder.d.ts.map +1 -0
  6. package/dist/builder.js +667 -0
  7. package/dist/builder.js.map +1 -0
  8. package/dist/config.d.ts +43 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +11 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/context.d.ts +107 -0
  13. package/dist/context.d.ts.map +1 -0
  14. package/dist/context.js +319 -0
  15. package/dist/context.js.map +1 -0
  16. package/dist/errors.d.ts +31 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +85 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/events.d.ts +219 -0
  21. package/dist/events.d.ts.map +1 -0
  22. package/dist/events.js +395 -0
  23. package/dist/events.js.map +1 -0
  24. package/dist/graph.d.ts +104 -0
  25. package/dist/graph.d.ts.map +1 -0
  26. package/dist/graph.js +366 -0
  27. package/dist/graph.js.map +1 -0
  28. package/dist/index.d.ts +28 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +113 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/logger.d.ts +13 -0
  33. package/dist/logger.d.ts.map +1 -0
  34. package/dist/logger.js +78 -0
  35. package/dist/logger.js.map +1 -0
  36. package/dist/memory.d.ts +146 -0
  37. package/dist/memory.d.ts.map +1 -0
  38. package/dist/memory.js +353 -0
  39. package/dist/memory.js.map +1 -0
  40. package/dist/metrics.d.ts +143 -0
  41. package/dist/metrics.d.ts.map +1 -0
  42. package/dist/metrics.js +271 -0
  43. package/dist/metrics.js.map +1 -0
  44. package/dist/middleware.d.ts +147 -0
  45. package/dist/middleware.d.ts.map +1 -0
  46. package/dist/middleware.js +484 -0
  47. package/dist/middleware.js.map +1 -0
  48. package/dist/models.d.ts +32 -0
  49. package/dist/models.d.ts.map +1 -0
  50. package/dist/models.js +211 -0
  51. package/dist/models.js.map +1 -0
  52. package/dist/patterns.d.ts +6 -0
  53. package/dist/patterns.d.ts.map +1 -0
  54. package/dist/patterns.js +68 -0
  55. package/dist/patterns.js.map +1 -0
  56. package/dist/pipeline.d.ts +84 -0
  57. package/dist/pipeline.d.ts.map +1 -0
  58. package/dist/pipeline.js +569 -0
  59. package/dist/pipeline.js.map +1 -0
  60. package/dist/retry.d.ts +5 -0
  61. package/dist/retry.d.ts.map +1 -0
  62. package/dist/retry.js +70 -0
  63. package/dist/retry.js.map +1 -0
  64. package/dist/society.d.ts +94 -0
  65. package/dist/society.d.ts.map +1 -0
  66. package/dist/society.js +721 -0
  67. package/dist/society.js.map +1 -0
  68. package/dist/strategies.d.ts +55 -0
  69. package/dist/strategies.d.ts.map +1 -0
  70. package/dist/strategies.js +678 -0
  71. package/dist/strategies.js.map +1 -0
  72. package/dist/tools.d.ts +88 -0
  73. package/dist/tools.d.ts.map +1 -0
  74. package/dist/tools.js +366 -0
  75. package/dist/tools.js.map +1 -0
  76. package/dist/types.d.ts +213 -0
  77. package/dist/types.d.ts.map +1 -0
  78. package/dist/types.js +19 -0
  79. package/dist/types.js.map +1 -0
  80. package/dist/validation.d.ts +64 -0
  81. package/dist/validation.d.ts.map +1 -0
  82. package/dist/validation.js +334 -0
  83. package/dist/validation.js.map +1 -0
  84. package/dist/worker-pool.d.ts +17 -0
  85. package/dist/worker-pool.d.ts.map +1 -0
  86. package/dist/worker-pool.js +80 -0
  87. package/dist/worker-pool.js.map +1 -0
  88. package/docs/README.md +468 -0
  89. package/docs/advanced.md +616 -0
  90. package/docs/aggregation-strategies.md +926 -0
  91. package/docs/api-reference.md +771 -0
  92. package/docs/architecture.md +648 -0
  93. package/docs/context-system.md +642 -0
  94. package/docs/event-system.md +1047 -0
  95. package/docs/examples.md +576 -0
  96. package/docs/getting-started.md +564 -0
  97. package/docs/graph-execution.md +389 -0
  98. package/docs/memory-system.md +497 -0
  99. package/docs/metrics-observability.md +560 -0
  100. package/docs/middleware-system.md +1038 -0
  101. package/docs/migration.md +296 -0
  102. package/docs/pipeline-patterns.md +761 -0
  103. package/docs/structured-output.md +612 -0
  104. package/docs/tool-calling.md +491 -0
  105. package/docs/workflows.md +740 -0
  106. package/examples/README.md +234 -0
  107. package/examples/advanced-patterns.ts +115 -0
  108. package/examples/complete-integration.ts +327 -0
  109. package/examples/graph-workflow.ts +161 -0
  110. package/examples/memory-system.ts +155 -0
  111. package/examples/metrics-tracking.ts +243 -0
  112. package/examples/structured-output.ts +231 -0
  113. package/examples/tool-calling.ts +163 -0
  114. package/package.json +94 -0
@@ -0,0 +1,484 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepMiddlewares = exports.InMemoryMetricsCollector = exports.Middlewares = exports.MiddlewareWrappedModel = exports.ComposedMiddleware = exports.MiddlewareChain = void 0;
4
+ const logger_1 = require("./logger");
5
+ class MiddlewareChain {
6
+ constructor() {
7
+ this.middlewares = [];
8
+ }
9
+ static create() {
10
+ return new MiddlewareChain();
11
+ }
12
+ use(middleware) {
13
+ if (typeof middleware === 'function') {
14
+ this.middlewares.push({
15
+ name: `middleware-${this.middlewares.length}`,
16
+ fn: middleware,
17
+ });
18
+ }
19
+ else {
20
+ this.middlewares.push(middleware);
21
+ }
22
+ return this;
23
+ }
24
+ useAt(index, middleware) {
25
+ this.middlewares.splice(index, 0, middleware);
26
+ return this;
27
+ }
28
+ useBefore(name, middleware) {
29
+ const index = this.middlewares.findIndex((m) => m.name === name);
30
+ if (index >= 0) {
31
+ this.middlewares.splice(index, 0, middleware);
32
+ }
33
+ else {
34
+ this.middlewares.push(middleware);
35
+ }
36
+ return this;
37
+ }
38
+ useAfter(name, middleware) {
39
+ const index = this.middlewares.findIndex((m) => m.name === name);
40
+ if (index >= 0) {
41
+ this.middlewares.splice(index + 1, 0, middleware);
42
+ }
43
+ else {
44
+ this.middlewares.push(middleware);
45
+ }
46
+ return this;
47
+ }
48
+ remove(name) {
49
+ this.middlewares = this.middlewares.filter((m) => m.name !== name);
50
+ return this;
51
+ }
52
+ forModel(model) {
53
+ this.model = model;
54
+ return this;
55
+ }
56
+ getMiddlewares() {
57
+ return this.middlewares;
58
+ }
59
+ sortByPriority() {
60
+ this.middlewares.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
61
+ return this;
62
+ }
63
+ build() {
64
+ return new ComposedMiddleware(this.middlewares, this.model);
65
+ }
66
+ wrap(model) {
67
+ return new MiddlewareWrappedModel(model, this.middlewares);
68
+ }
69
+ }
70
+ exports.MiddlewareChain = MiddlewareChain;
71
+ class ComposedMiddleware {
72
+ constructor(middlewares, model) {
73
+ this.middlewares = middlewares;
74
+ this.model = model;
75
+ }
76
+ async execute(input, signal) {
77
+ const ctx = {
78
+ input,
79
+ processedInput: input,
80
+ metadata: new Map(),
81
+ startTime: Date.now(),
82
+ signal,
83
+ };
84
+ let next = async (c) => {
85
+ if (this.model) {
86
+ const output = await this.model.process(c.processedInput, c.signal);
87
+ return { output, continue: true };
88
+ }
89
+ return { output: String(c.processedInput), continue: true };
90
+ };
91
+ for (let i = this.middlewares.length - 1; i >= 0; i--) {
92
+ const middleware = this.middlewares[i];
93
+ const currentNext = next;
94
+ next = async (c) => middleware.fn(c, currentNext);
95
+ }
96
+ return next(ctx);
97
+ }
98
+ }
99
+ exports.ComposedMiddleware = ComposedMiddleware;
100
+ class MiddlewareWrappedModel {
101
+ constructor(model, middlewares) {
102
+ this.model = model;
103
+ this.chain = new ComposedMiddleware(middlewares, model);
104
+ }
105
+ name() {
106
+ return `${this.model.name()} (with middleware)`;
107
+ }
108
+ async process(prompt, signal) {
109
+ const result = await this.chain.execute(prompt, signal);
110
+ return result.output;
111
+ }
112
+ supportsPromptType(promptType) {
113
+ return this.model.supportsPromptType(promptType);
114
+ }
115
+ }
116
+ exports.MiddlewareWrappedModel = MiddlewareWrappedModel;
117
+ exports.Middlewares = {
118
+ logging: (options) => ({
119
+ name: 'logging',
120
+ description: 'Logs request/response information',
121
+ priority: 100,
122
+ fn: async (ctx, next) => {
123
+ const logger = (0, logger_1.getLogger)();
124
+ const prefix = options?.prefix ?? '';
125
+ const logInput = options?.logInput ?? true;
126
+ const logOutput = options?.logOutput ?? true;
127
+ if (logInput) {
128
+ logger.debug(`${prefix}[Input] ${JSON.stringify(ctx.input).substring(0, 200)}...`);
129
+ }
130
+ const result = await next(ctx);
131
+ if (logOutput) {
132
+ logger.debug(`${prefix}[Output] ${result.output.substring(0, 200)}...`);
133
+ }
134
+ return result;
135
+ },
136
+ }),
137
+ timing: (options) => ({
138
+ name: 'timing',
139
+ description: 'Measures execution time',
140
+ priority: 99,
141
+ fn: async (ctx, next) => {
142
+ const start = performance.now();
143
+ const result = await next(ctx);
144
+ const duration = performance.now() - start;
145
+ ctx.metadata.set('duration', duration);
146
+ options?.onComplete?.(duration);
147
+ return {
148
+ ...result,
149
+ metadata: { ...result.metadata, durationMs: duration },
150
+ };
151
+ },
152
+ }),
153
+ retry: (options) => ({
154
+ name: 'retry',
155
+ description: 'Retries failed requests',
156
+ priority: 90,
157
+ fn: async (ctx, next) => {
158
+ const maxAttempts = options?.maxAttempts ?? 3;
159
+ const delay = options?.delay ?? 1000;
160
+ const backoffFactor = options?.backoffFactor ?? 2;
161
+ const retryOn = options?.retryOn ?? (() => true);
162
+ let lastError;
163
+ let currentDelay = delay;
164
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
165
+ try {
166
+ return await next(ctx);
167
+ }
168
+ catch (error) {
169
+ lastError = error;
170
+ if (ctx.signal?.aborted) {
171
+ throw error;
172
+ }
173
+ if (!retryOn(lastError) || attempt === maxAttempts) {
174
+ throw error;
175
+ }
176
+ await new Promise((resolve) => setTimeout(resolve, currentDelay));
177
+ currentDelay *= backoffFactor;
178
+ }
179
+ }
180
+ throw lastError;
181
+ },
182
+ }),
183
+ cache: (options) => {
184
+ const storage = options?.storage ?? new Map();
185
+ const ttl = options?.ttl ?? 60000;
186
+ const keyGenerator = options?.keyGenerator ?? ((input) => JSON.stringify(input));
187
+ return {
188
+ name: 'cache',
189
+ description: 'Caches responses',
190
+ priority: 80,
191
+ fn: async (ctx, next) => {
192
+ const key = keyGenerator(ctx.input);
193
+ const cached = storage.get(key);
194
+ if (cached && cached.expires > Date.now()) {
195
+ ctx.metadata.set('cacheHit', true);
196
+ return { output: cached.value, continue: false, metadata: { cached: true } };
197
+ }
198
+ const result = await next(ctx);
199
+ storage.set(key, {
200
+ value: result.output,
201
+ expires: Date.now() + ttl,
202
+ });
203
+ ctx.metadata.set('cacheHit', false);
204
+ return result;
205
+ },
206
+ };
207
+ },
208
+ rateLimit: (options) => {
209
+ const requests = [];
210
+ return {
211
+ name: 'rateLimit',
212
+ description: 'Limits request rate',
213
+ priority: 95,
214
+ fn: async (ctx, next) => {
215
+ const now = Date.now();
216
+ const windowStart = now - options.windowMs;
217
+ while (requests.length > 0 && requests[0] < windowStart) {
218
+ requests.shift();
219
+ }
220
+ if (requests.length >= options.maxRequests) {
221
+ options.onLimitReached?.();
222
+ throw new Error(`Rate limit exceeded: ${options.maxRequests} requests per ${options.windowMs}ms`);
223
+ }
224
+ requests.push(now);
225
+ return next(ctx);
226
+ },
227
+ };
228
+ },
229
+ timeout: (ms) => ({
230
+ name: 'timeout',
231
+ description: `Enforces a ${ms}ms timeout`,
232
+ priority: 98,
233
+ fn: async (ctx, next) => {
234
+ const controller = new AbortController();
235
+ const timeoutId = setTimeout(() => controller.abort(), ms);
236
+ if (ctx.signal) {
237
+ ctx.signal.addEventListener('abort', () => controller.abort());
238
+ }
239
+ const modifiedCtx = { ...ctx, signal: controller.signal };
240
+ try {
241
+ const result = await next(modifiedCtx);
242
+ clearTimeout(timeoutId);
243
+ return result;
244
+ }
245
+ catch (error) {
246
+ clearTimeout(timeoutId);
247
+ if (error.name === 'AbortError') {
248
+ throw new Error(`Request timed out after ${ms}ms`);
249
+ }
250
+ throw error;
251
+ }
252
+ },
253
+ }),
254
+ transformInput: (transformer) => ({
255
+ name: 'transformInput',
256
+ description: 'Transforms input before processing',
257
+ priority: 70,
258
+ fn: async (ctx, next) => {
259
+ ctx.processedInput = transformer(ctx.input);
260
+ return next(ctx);
261
+ },
262
+ }),
263
+ transformOutput: (transformer) => ({
264
+ name: 'transformOutput',
265
+ description: 'Transforms output after processing',
266
+ priority: 10,
267
+ fn: async (ctx, next) => {
268
+ const result = await next(ctx);
269
+ return {
270
+ ...result,
271
+ output: transformer(result.output),
272
+ };
273
+ },
274
+ }),
275
+ validation: (options) => ({
276
+ name: 'validation',
277
+ description: 'Validates input and output',
278
+ priority: 85,
279
+ fn: async (ctx, next) => {
280
+ if (options.validateInput) {
281
+ const inputResult = options.validateInput(ctx.input);
282
+ if (inputResult !== true) {
283
+ const message = typeof inputResult === 'string' ? inputResult : 'Input validation failed';
284
+ throw new Error(message);
285
+ }
286
+ }
287
+ const result = await next(ctx);
288
+ if (options.validateOutput) {
289
+ const outputResult = options.validateOutput(result.output);
290
+ if (outputResult !== true) {
291
+ const message = typeof outputResult === 'string' ? outputResult : 'Output validation failed';
292
+ throw new Error(message);
293
+ }
294
+ }
295
+ return result;
296
+ },
297
+ }),
298
+ fallback: (fallbackValue) => ({
299
+ name: 'fallback',
300
+ description: 'Provides a fallback on error',
301
+ priority: 5,
302
+ fn: async (ctx, next) => {
303
+ try {
304
+ return await next(ctx);
305
+ }
306
+ catch (error) {
307
+ const output = typeof fallbackValue === 'function'
308
+ ? fallbackValue(error)
309
+ : fallbackValue;
310
+ return { output, continue: false, metadata: { fallback: true, error: error.message } };
311
+ }
312
+ },
313
+ }),
314
+ metrics: (collector) => ({
315
+ name: 'metrics',
316
+ description: 'Collects execution metrics',
317
+ priority: 100,
318
+ fn: async (ctx, next) => {
319
+ collector.incrementCounter('requests_total');
320
+ const start = performance.now();
321
+ try {
322
+ const result = await next(ctx);
323
+ collector.recordHistogram('request_duration_ms', performance.now() - start);
324
+ collector.incrementCounter('requests_success');
325
+ return result;
326
+ }
327
+ catch (error) {
328
+ collector.recordHistogram('request_duration_ms', performance.now() - start);
329
+ collector.incrementCounter('requests_failed');
330
+ throw error;
331
+ }
332
+ },
333
+ }),
334
+ circuitBreaker: (options) => {
335
+ let failures = 0;
336
+ let state = 'closed';
337
+ let nextAttempt = 0;
338
+ return {
339
+ name: 'circuitBreaker',
340
+ description: 'Circuit breaker pattern implementation',
341
+ priority: 92,
342
+ fn: async (ctx, next) => {
343
+ const now = Date.now();
344
+ if (state === 'open') {
345
+ if (now < nextAttempt) {
346
+ throw new Error('Circuit breaker is open');
347
+ }
348
+ state = 'half-open';
349
+ options.onHalfOpen?.();
350
+ }
351
+ try {
352
+ const result = await next(ctx);
353
+ if (state === 'half-open') {
354
+ state = 'closed';
355
+ failures = 0;
356
+ options.onClose?.();
357
+ }
358
+ return result;
359
+ }
360
+ catch (error) {
361
+ failures++;
362
+ if (failures >= options.threshold) {
363
+ state = 'open';
364
+ nextAttempt = now + options.timeout;
365
+ options.onOpen?.();
366
+ }
367
+ throw error;
368
+ }
369
+ },
370
+ };
371
+ },
372
+ dedupe: () => {
373
+ const pending = new Map();
374
+ return {
375
+ name: 'dedupe',
376
+ description: 'Deduplicates concurrent identical requests',
377
+ priority: 88,
378
+ fn: async (ctx, next) => {
379
+ const key = JSON.stringify(ctx.input);
380
+ const existing = pending.get(key);
381
+ if (existing) {
382
+ return existing;
383
+ }
384
+ const promise = next(ctx);
385
+ pending.set(key, promise);
386
+ try {
387
+ return await promise;
388
+ }
389
+ finally {
390
+ pending.delete(key);
391
+ }
392
+ },
393
+ };
394
+ },
395
+ };
396
+ class InMemoryMetricsCollector {
397
+ constructor() {
398
+ this.counters = new Map();
399
+ this.histograms = new Map();
400
+ this.gauges = new Map();
401
+ }
402
+ incrementCounter(name, value = 1) {
403
+ this.counters.set(name, (this.counters.get(name) ?? 0) + value);
404
+ }
405
+ recordHistogram(name, value) {
406
+ const values = this.histograms.get(name) ?? [];
407
+ values.push(value);
408
+ this.histograms.set(name, values);
409
+ }
410
+ recordGauge(name, value) {
411
+ this.gauges.set(name, value);
412
+ }
413
+ getCounter(name) {
414
+ return this.counters.get(name) ?? 0;
415
+ }
416
+ getHistogram(name) {
417
+ const values = this.histograms.get(name) ?? [];
418
+ if (values.length === 0) {
419
+ return { count: 0, sum: 0, avg: 0, min: 0, max: 0 };
420
+ }
421
+ const sum = values.reduce((a, b) => a + b, 0);
422
+ return {
423
+ count: values.length,
424
+ sum,
425
+ avg: sum / values.length,
426
+ min: Math.min(...values),
427
+ max: Math.max(...values),
428
+ };
429
+ }
430
+ getGauge(name) {
431
+ return this.gauges.get(name) ?? 0;
432
+ }
433
+ getAll() {
434
+ return {
435
+ counters: Object.fromEntries(this.counters),
436
+ histograms: Object.fromEntries(this.histograms),
437
+ gauges: Object.fromEntries(this.gauges),
438
+ };
439
+ }
440
+ reset() {
441
+ this.counters.clear();
442
+ this.histograms.clear();
443
+ this.gauges.clear();
444
+ }
445
+ }
446
+ exports.InMemoryMetricsCollector = InMemoryMetricsCollector;
447
+ exports.StepMiddlewares = {
448
+ logging: () => ({
449
+ name: 'stepLogging',
450
+ fn: async (ctx, next) => {
451
+ const logger = (0, logger_1.getLogger)();
452
+ logger.info(`Starting step: ${ctx.stepName} (${ctx.stepId})`);
453
+ const results = await next();
454
+ logger.info(`Completed step: ${ctx.stepName} with ${results.length} results`);
455
+ return results;
456
+ },
457
+ }),
458
+ timing: (onComplete) => ({
459
+ name: 'stepTiming',
460
+ fn: async (ctx, next) => {
461
+ const start = performance.now();
462
+ const results = await next();
463
+ const duration = performance.now() - start;
464
+ ctx.metadata.set('stepDuration', duration);
465
+ onComplete?.(ctx.stepId, duration);
466
+ return results;
467
+ },
468
+ }),
469
+ filterResults: (predicate) => ({
470
+ name: 'filterResults',
471
+ fn: async (_ctx, next) => {
472
+ const results = await next();
473
+ return results.filter(predicate);
474
+ },
475
+ }),
476
+ enrichResults: (enricher) => ({
477
+ name: 'enrichResults',
478
+ fn: async (ctx, next) => {
479
+ const results = await next();
480
+ return results.map((r) => enricher(r, ctx));
481
+ },
482
+ }),
483
+ };
484
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";;;AA2BA,qCAAqC;AAwErC,MAAa,eAAe;IAA5B;QACU,gBAAW,GAAiB,EAAE,CAAC;IAuGzC,CAAC;IAjGC,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;IAKD,GAAG,CAAC,UAAqC;QACvC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,cAAc,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;gBAC7C,EAAE,EAAE,UAAU;aACf,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK,CAAC,KAAa,EAAE,UAAsB;QACzC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,SAAS,CAAC,IAAY,EAAE,UAAsB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,QAAQ,CAAC,IAAY,EAAE,UAAsB;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAKD,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAKD,IAAI,CAAC,KAAc;QACjB,OAAO,IAAI,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;CACF;AAxGD,0CAwGC;AAKD,MAAa,kBAAkB;IAC7B,YACU,WAAyB,EACzB,KAAe;QADf,gBAAW,GAAX,WAAW,CAAc;QACzB,UAAK,GAAL,KAAK,CAAU;IACtB,CAAC;IAKJ,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,MAAoB;QAChD,MAAM,GAAG,GAAsB;YAC7B,KAAK;YACL,cAAc,EAAE,KAAK;YACrB,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM;SACP,CAAC;QAGF,IAAI,IAAI,GAAiB,KAAK,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBACpE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACpC,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9D,CAAC,CAAC;QAGF,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC;YACzB,IAAI,GAAG,KAAK,EAAE,CAAC,EAA6B,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACF;AApCD,gDAoCC;AAKD,MAAa,sBAAsB;IAGjC,YACU,KAAc,EACtB,WAAyB;QADjB,UAAK,GAAL,KAAK,CAAS;QAGtB,IAAI,CAAC,KAAK,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI;QACF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAe,EAAE,MAAoB;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;CACF;AAtBD,wDAsBC;AASY,QAAA,WAAW,GAAG;IAIzB,OAAO,EAAE,CAAC,OAAsE,EAAc,EAAE,CAAC,CAAC;QAChG,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,GAAG;QACb,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;YAC3C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;YAE7C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,YAAY,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IAKF,MAAM,EAAE,CAAC,OAAuD,EAAc,EAAE,CAAC,CAAC;QAChF,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,EAAE;QACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAE3C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;YAEhC,OAAO;gBACL,GAAG,MAAM;gBACT,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE;aACvD,CAAC;QACJ,CAAC;KACF,CAAC;IAKF,KAAK,EAAE,CAAC,OAKP,EAAc,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,EAAE;QACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;YACrC,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,GAAY,EAAE,CAAC,IAAI,CAAC,CAAC;YAE1D,IAAI,SAA4B,CAAC;YACjC,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,SAAS,GAAG,KAAc,CAAC;oBAE3B,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBACxB,MAAM,KAAK,CAAC;oBACd,CAAC;oBAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;wBACnD,MAAM,KAAK,CAAC;oBACd,CAAC;oBAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;oBAClE,YAAY,IAAI,aAAa,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,MAAM,SAAS,CAAC;QAClB,CAAC;KACF,CAAC;IAKF,KAAK,EAAE,CAAC,OAIP,EAAc,EAAE;QACf,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,GAAG,EAA8C,CAAC;QAC1F,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC;QAClC,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC,KAAK,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzF,OAAO;YACL,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,EAAE;YACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;gBACjD,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEhC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC1C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACnC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC/E,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;oBACf,KAAK,EAAE,MAAM,CAAC,MAAM;oBACpB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;iBAC1B,CAAC,CAAC;gBAEH,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACpC,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC;IACJ,CAAC;IAKD,SAAS,EAAE,CAAC,OAIX,EAAc,EAAE;QACf,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,EAAE;YACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;gBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAG3C,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC;oBACxD,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBAC3C,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,WAAW,iBAAiB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;gBACpG,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;SACF,CAAC;IACJ,CAAC;IAKD,OAAO,EAAE,CAAC,EAAU,EAAc,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,cAAc,EAAE,YAAY;QACzC,QAAQ,EAAE,EAAE;QACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAG3D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;YAE1D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IAKF,cAAc,EAAE,CAAC,WAAwC,EAAc,EAAE,CAAC,CAAC;QACzE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,EAAE;QACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC;IAKF,eAAe,EAAE,CAAC,WAAuC,EAAc,EAAE,CAAC,CAAC;QACzE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,EAAE;QACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;gBACL,GAAG,MAAM;gBACT,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;aACnC,CAAC;QACJ,CAAC;KACF,CAAC;IAKF,UAAU,EAAE,CAAC,OAGZ,EAAc,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,EAAE;QACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YAEjD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC;oBAC1F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAG/B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC1B,MAAM,OAAO,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC;oBAC7F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IAKF,QAAQ,EAAE,CAAC,aAAkD,EAAc,EAAE,CAAC,CAAC;QAC7E,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,CAAC;QACX,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,OAAO,aAAa,KAAK,UAAU;oBAChD,CAAC,CAAC,aAAa,CAAC,KAAc,CAAC;oBAC/B,CAAC,CAAC,aAAa,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACpG,CAAC;QACH,CAAC;KACF,CAAC;IAKF,OAAO,EAAE,CAAC,SAA2B,EAAc,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,GAAG;QACb,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;YACjD,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAEhC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/B,SAAS,CAAC,eAAe,CAAC,qBAAqB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;gBAC5E,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAC/C,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,CAAC,eAAe,CAAC,qBAAqB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;gBAC5E,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBAC9C,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IAKF,cAAc,EAAE,CAAC,OAMhB,EAAc,EAAE;QACf,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,KAAK,GAAoC,QAAQ,CAAC;QACtD,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,EAAE;YACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;gBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEvB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACrB,IAAI,GAAG,GAAG,WAAW,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC7C,CAAC;oBACD,KAAK,GAAG,WAAW,CAAC;oBACpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;gBACzB,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;oBAE/B,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;wBAC1B,KAAK,GAAG,QAAQ,CAAC;wBACjB,QAAQ,GAAG,CAAC,CAAC;wBACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBACtB,CAAC;oBAED,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,QAAQ,EAAE,CAAC;oBAEX,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;wBAClC,KAAK,GAAG,MAAM,CAAC;wBACf,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;wBACpC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;oBACrB,CAAC;oBAED,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAKD,MAAM,EAAE,GAAe,EAAE;QACvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqC,CAAC;QAE7D,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,EAAE;YACZ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAA6B,EAAE;gBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAE1B,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC;gBACvB,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACO,CAAC;AAkBX,MAAa,wBAAwB;IAArC;QACU,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrC,eAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QACzC,WAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAoD7C,CAAC;IAlDC,gBAAgB,CAAC,IAAY,EAAE,QAAgB,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,eAAe,CAAC,IAAY,EAAE,KAAa;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,KAAa;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACtD,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,GAAG;YACH,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC3C,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/C,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;SACxC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAvDD,4DAuDC;AAsCY,QAAA,eAAe,GAAG;IAI7B,OAAO,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAyB,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,QAAQ,SAAS,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;YAC9E,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;IAKF,MAAM,EAAE,CAAC,UAAyD,EAAkB,EAAE,CAAC,CAAC;QACtF,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAyB,EAAE;YAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAC3C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnC,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;IAKF,aAAa,EAAE,CAAC,SAA0C,EAAkB,EAAE,CAAC,CAAC;QAC9E,IAAI,EAAE,eAAe;QACrB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAyB,EAAE;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;IAKF,aAAa,EAAE,CAAC,QAAwE,EAAkB,EAAE,CAAC,CAAC;QAC5G,IAAI,EAAE,eAAe;QACrB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAyB,EAAE;YAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;CACM,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { AIModel, ModelAdapter } from './types';
2
+ import { StandardModelOptions } from './config';
3
+ export declare function defaultStandardModelOptions(): StandardModelOptions;
4
+ export declare class StandardModelBase implements AIModel {
5
+ protected processFunc?: ((prompt: unknown, signal?: AbortSignal) => Promise<unknown>) | undefined;
6
+ protected options: StandardModelOptions;
7
+ protected supportedPromptTypes: string[];
8
+ constructor(options?: Partial<StandardModelOptions>, processFunc?: ((prompt: unknown, signal?: AbortSignal) => Promise<unknown>) | undefined);
9
+ name(): string;
10
+ process(prompt: unknown, signal?: AbortSignal): Promise<string>;
11
+ supportsPromptType(promptType: string): boolean;
12
+ withSupportedPromptTypes(types: string[]): this;
13
+ withName(name: string): this;
14
+ withAdapter(adapter: ModelAdapter): this;
15
+ withTimeout(timeout: number): this;
16
+ }
17
+ export declare class TextModelAdapter implements ModelAdapter {
18
+ convertPrompt(genericPrompt: unknown): Promise<unknown>;
19
+ convertResponse(specificResponse: unknown): Promise<string>;
20
+ getSupportedPromptTypes(): string[];
21
+ }
22
+ export declare class OpenAIAdapter implements ModelAdapter {
23
+ convertPrompt(genericPrompt: unknown): Promise<unknown>;
24
+ convertResponse(specificResponse: unknown): Promise<string>;
25
+ getSupportedPromptTypes(): string[];
26
+ }
27
+ export declare class GeminiAdapter implements ModelAdapter {
28
+ convertPrompt(genericPrompt: unknown): Promise<unknown>;
29
+ convertResponse(specificResponse: unknown): Promise<string>;
30
+ getSupportedPromptTypes(): string[];
31
+ }
32
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAQhD,wBAAgB,2BAA2B,IAAI,oBAAoB,CAQlE;AAMD,qBAAa,iBAAkB,YAAW,OAAO;IAM7C,SAAS,CAAC,WAAW,CAAC,GAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC;IALrF,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACxC,SAAS,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAY;gBAGlD,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC7B,WAAW,CAAC,GAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,aAAA;IAQrF,IAAI,IAAI,MAAM;IAOR,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DrE,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAO/C,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ/C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ5B,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAQxC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAInC;AAKD,qBAAa,gBAAiB,YAAW,YAAY;IAC7C,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAYvD,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjE,uBAAuB,IAAI,MAAM,EAAE;CAGpC;AAKD,qBAAa,aAAc,YAAW,YAAY;IAC1C,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBvD,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA6BjE,uBAAuB,IAAI,MAAM,EAAE;CAGpC;AAKD,qBAAa,aAAc,YAAW,YAAY;IAC1C,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BvD,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCjE,uBAAuB,IAAI,MAAM,EAAE;CAGpC"}