@marktoflow/core 2.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +307 -0
- package/dist/bundle.d.ts +43 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +202 -0
- package/dist/bundle.js.map +1 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +27 -0
- package/dist/config.js.map +1 -0
- package/dist/core-tools.d.ts +39 -0
- package/dist/core-tools.d.ts.map +1 -0
- package/dist/core-tools.js +58 -0
- package/dist/core-tools.js.map +1 -0
- package/dist/costs.d.ts +182 -0
- package/dist/costs.d.ts.map +1 -0
- package/dist/costs.js +464 -0
- package/dist/costs.js.map +1 -0
- package/dist/credentials.d.ts +162 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +646 -0
- package/dist/credentials.js.map +1 -0
- package/dist/engine.d.ts +243 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1453 -0
- package/dist/engine.js.map +1 -0
- package/dist/env.d.ts +59 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +256 -0
- package/dist/env.js.map +1 -0
- package/dist/failover.d.ts +43 -0
- package/dist/failover.d.ts.map +1 -0
- package/dist/failover.js +53 -0
- package/dist/failover.js.map +1 -0
- package/dist/filewatcher.d.ts +32 -0
- package/dist/filewatcher.d.ts.map +1 -0
- package/dist/filewatcher.js +92 -0
- package/dist/filewatcher.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -0
- package/dist/logging.d.ts +62 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +211 -0
- package/dist/logging.js.map +1 -0
- package/dist/mcp-loader.d.ts +29 -0
- package/dist/mcp-loader.d.ts.map +1 -0
- package/dist/mcp-loader.js +60 -0
- package/dist/mcp-loader.js.map +1 -0
- package/dist/metrics.d.ts +19 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +65 -0
- package/dist/metrics.js.map +1 -0
- package/dist/models.d.ts +1686 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +333 -0
- package/dist/models.js.map +1 -0
- package/dist/parser.d.ts +40 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +532 -0
- package/dist/parser.js.map +1 -0
- package/dist/permissions.d.ts +49 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +286 -0
- package/dist/permissions.js.map +1 -0
- package/dist/plugins.d.ts +105 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +182 -0
- package/dist/plugins.js.map +1 -0
- package/dist/prompt-loader.d.ts +47 -0
- package/dist/prompt-loader.d.ts.map +1 -0
- package/dist/prompt-loader.js +268 -0
- package/dist/prompt-loader.js.map +1 -0
- package/dist/queue.d.ts +114 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +385 -0
- package/dist/queue.js.map +1 -0
- package/dist/rollback.d.ts +117 -0
- package/dist/rollback.d.ts.map +1 -0
- package/dist/rollback.js +374 -0
- package/dist/rollback.js.map +1 -0
- package/dist/routing.d.ts +144 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/routing.js +457 -0
- package/dist/routing.js.map +1 -0
- package/dist/scheduler.d.ts +91 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +259 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/script-tool.d.ts +22 -0
- package/dist/script-tool.d.ts.map +1 -0
- package/dist/script-tool.js +90 -0
- package/dist/script-tool.js.map +1 -0
- package/dist/sdk-registry.d.ts +94 -0
- package/dist/sdk-registry.d.ts.map +1 -0
- package/dist/sdk-registry.js +328 -0
- package/dist/sdk-registry.js.map +1 -0
- package/dist/security.d.ts +155 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +362 -0
- package/dist/security.js.map +1 -0
- package/dist/state.d.ts +67 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +276 -0
- package/dist/state.js.map +1 -0
- package/dist/templates.d.ts +70 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +244 -0
- package/dist/templates.js.map +1 -0
- package/dist/tool-base.d.ts +54 -0
- package/dist/tool-base.d.ts.map +1 -0
- package/dist/tool-base.js +43 -0
- package/dist/tool-base.js.map +1 -0
- package/dist/tool-registry.d.ts +24 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +164 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/tools/custom-tool.d.ts +16 -0
- package/dist/tools/custom-tool.d.ts.map +1 -0
- package/dist/tools/custom-tool.js +85 -0
- package/dist/tools/custom-tool.js.map +1 -0
- package/dist/tools/mcp-tool.d.ts +16 -0
- package/dist/tools/mcp-tool.d.ts.map +1 -0
- package/dist/tools/mcp-tool.js +98 -0
- package/dist/tools/mcp-tool.js.map +1 -0
- package/dist/tools/openapi-tool.d.ts +17 -0
- package/dist/tools/openapi-tool.d.ts.map +1 -0
- package/dist/tools/openapi-tool.js +165 -0
- package/dist/tools/openapi-tool.js.map +1 -0
- package/dist/trigger-manager.d.ts +26 -0
- package/dist/trigger-manager.d.ts.map +1 -0
- package/dist/trigger-manager.js +107 -0
- package/dist/trigger-manager.js.map +1 -0
- package/dist/webhook.d.ts +95 -0
- package/dist/webhook.d.ts.map +1 -0
- package/dist/webhook.js +261 -0
- package/dist/webhook.js.map +1 -0
- package/dist/workflow-tools.d.ts +102 -0
- package/dist/workflow-tools.d.ts.map +1 -0
- package/dist/workflow-tools.js +130 -0
- package/dist/workflow-tools.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File watcher trigger for marktoflow v2.0
|
|
3
|
+
*
|
|
4
|
+
* Monitors the file system for changes and triggers workflows.
|
|
5
|
+
*/
|
|
6
|
+
import { watch } from 'chokidar';
|
|
7
|
+
import { EventEmitter } from 'node:events';
|
|
8
|
+
export class FileWatcher extends EventEmitter {
|
|
9
|
+
watcher = null;
|
|
10
|
+
options;
|
|
11
|
+
handlers = [];
|
|
12
|
+
debounceTimers = new Map();
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super();
|
|
15
|
+
this.options = {
|
|
16
|
+
debounceMs: 100,
|
|
17
|
+
recursive: true,
|
|
18
|
+
persistent: true,
|
|
19
|
+
...options
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
onEvent(handler) {
|
|
23
|
+
this.handlers.push(handler);
|
|
24
|
+
}
|
|
25
|
+
start() {
|
|
26
|
+
if (this.watcher)
|
|
27
|
+
return;
|
|
28
|
+
const watchOptions = {
|
|
29
|
+
ignoreInitial: true,
|
|
30
|
+
persistent: this.options.persistent,
|
|
31
|
+
};
|
|
32
|
+
if (this.options.ignored) {
|
|
33
|
+
watchOptions.ignored = this.options.ignored;
|
|
34
|
+
}
|
|
35
|
+
if (!this.options.recursive) {
|
|
36
|
+
watchOptions.depth = 0;
|
|
37
|
+
}
|
|
38
|
+
if (this.options.usePolling !== undefined) {
|
|
39
|
+
watchOptions.usePolling = this.options.usePolling;
|
|
40
|
+
}
|
|
41
|
+
if (this.options.interval !== undefined) {
|
|
42
|
+
watchOptions.interval = this.options.interval;
|
|
43
|
+
}
|
|
44
|
+
this.watcher = watch(this.options.path, watchOptions);
|
|
45
|
+
const handleEvent = (event, path) => {
|
|
46
|
+
const debounceMs = this.options.debounceMs || 0;
|
|
47
|
+
if (debounceMs > 0) {
|
|
48
|
+
if (this.debounceTimers.has(path)) {
|
|
49
|
+
clearTimeout(this.debounceTimers.get(path));
|
|
50
|
+
}
|
|
51
|
+
const timer = setTimeout(() => {
|
|
52
|
+
this.debounceTimers.delete(path);
|
|
53
|
+
this.triggerHandlers({ event, path });
|
|
54
|
+
}, debounceMs);
|
|
55
|
+
this.debounceTimers.set(path, timer);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.triggerHandlers({ event, path });
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
this.watcher
|
|
62
|
+
.on('add', path => handleEvent('add', path))
|
|
63
|
+
.on('change', path => handleEvent('change', path))
|
|
64
|
+
.on('unlink', path => handleEvent('unlink', path))
|
|
65
|
+
.on('addDir', path => handleEvent('addDir', path))
|
|
66
|
+
.on('unlinkDir', path => handleEvent('unlinkDir', path))
|
|
67
|
+
.on('ready', () => this.emit('ready'))
|
|
68
|
+
.on('error', error => this.emit('error', error));
|
|
69
|
+
}
|
|
70
|
+
async stop() {
|
|
71
|
+
if (this.watcher) {
|
|
72
|
+
await this.watcher.close();
|
|
73
|
+
this.watcher = null;
|
|
74
|
+
}
|
|
75
|
+
for (const timer of this.debounceTimers.values()) {
|
|
76
|
+
clearTimeout(timer);
|
|
77
|
+
}
|
|
78
|
+
this.debounceTimers.clear();
|
|
79
|
+
}
|
|
80
|
+
async triggerHandlers(event) {
|
|
81
|
+
this.emit('event', event);
|
|
82
|
+
for (const handler of this.handlers) {
|
|
83
|
+
try {
|
|
84
|
+
await handler(event);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
this.emit('error', error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=filewatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filewatcher.js","sourceRoot":"","sources":["../src/filewatcher.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @marktoflow/core
|
|
3
|
+
*
|
|
4
|
+
* Core engine for marktoflow v2.0 - parser, executor, state management.
|
|
5
|
+
*/
|
|
6
|
+
export { StepStatus, WorkflowStatus, TriggerType, WorkflowMetadataSchema, ToolConfigSchema, ErrorHandlingSchema, WorkflowStepSchema, TriggerSchema, WorkflowInputSchema, WorkflowSchema, PermissionsSchema, SubagentConfigSchema, type WorkflowMetadata, type ToolConfig, type ErrorHandling, type WorkflowStep, type Trigger, type WorkflowInput, type Workflow, type ExecutionContext, type StepResult, type WorkflowResult, type Permissions, type SubagentConfig, createExecutionContext, createStepResult, } from './models.js';
|
|
7
|
+
export { findEnvFiles, findProjectRoot, loadEnv, ensureEnvLoaded, getEnv, getEnvBool, getEnvInt, getEnvFloat, getEnvList, EnvConfig, config, } from './env.js';
|
|
8
|
+
export { EncryptionBackend, CredentialType, EncryptionError, KeyNotFoundError, CredentialNotFoundError, FernetEncryptor, AgeEncryptor, GPGEncryptor, InMemoryCredentialStore, SQLiteCredentialStore, CredentialManager, KeyManager, createCredentialManager, getAvailableBackends, type Credential, type Encryptor, type CredentialStore, } from './credentials.js';
|
|
9
|
+
export { parseFile, parseContent, extractVariableReferences, validateVariableReferences, ParseError, type ParseResult, type ParseOptions, } from './parser.js';
|
|
10
|
+
export { WorkflowEngine, RetryPolicy, CircuitBreaker, resolveTemplates, type EngineConfig, type EngineEvents, type StepExecutor, type StepExecutorContext, type CircuitState, } from './engine.js';
|
|
11
|
+
export { mergePermissions, checkPermission, toSecurityPolicy, createDefaultPermissions, type EffectivePermissions, type PermissionCheckResult, type SecurityPolicy, type OperationType, } from './permissions.js';
|
|
12
|
+
export { loadPromptFile, resolvePromptTemplate, validatePromptInputs, extractPromptVariables, type LoadedPrompt, type PromptVariable, type ValidationResult, type ResolvedPrompt, } from './prompt-loader.js';
|
|
13
|
+
export { ToolRegistry, } from './tool-registry.js';
|
|
14
|
+
export { ToolType, ToolCompatibility, type ToolImplementation, type ToolAuth, type ToolDefinition, type Tool, } from './tool-base.js';
|
|
15
|
+
export { OpenAPITool } from './tools/openapi-tool.js';
|
|
16
|
+
export { CustomTool, operation as customOperation } from './tools/custom-tool.js';
|
|
17
|
+
export { MCPTool } from './tools/mcp-tool.js';
|
|
18
|
+
export { WorkflowBundle, BundleToolRegistry, loadBundleConfig, type BundleConfig, } from './bundle.js';
|
|
19
|
+
export { SDKRegistry, defaultSDKLoader, defaultInitializers, packageNameMappings, createSDKStepExecutor, type SDKInstance, type SDKLoader, type SDKInitializer, } from './sdk-registry.js';
|
|
20
|
+
export { CoreToolsClient, CoreInitializer, } from './core-tools.js';
|
|
21
|
+
export { WorkflowToolsClient, WorkflowInitializer, } from './workflow-tools.js';
|
|
22
|
+
export { StateStore, type ExecutionRecord, type StepCheckpoint, type ExecutionStats, } from './state.js';
|
|
23
|
+
export { LogLevel, ExecutionLogger, createExecutionLog, addLogEntry, completeLog, logToMarkdown, type LogEntry, type ExecutionLog, } from './logging.js';
|
|
24
|
+
export { Scheduler, CronParser, createJob, type ScheduledJob, type CronFields, type JobCallback, } from './scheduler.js';
|
|
25
|
+
export { WebhookReceiver, verifyGitHubSignature, verifyHmacSignature, verifySlackSignature, generateSignature, createEndpoint, parseWebhookBody, type WebhookEndpoint, type WebhookEvent, type WebhookHandler, type WebhookResponse, type WebhookReceiverOptions, } from './webhook.js';
|
|
26
|
+
export { McpLoader, type McpModule, } from './mcp-loader.js';
|
|
27
|
+
export { ScriptTool, type ScriptOperation, type ScriptToolConfig, } from './script-tool.js';
|
|
28
|
+
export { FileWatcher, type FileWatcherOptions, type FileEvent, type FileEventHandler, } from './filewatcher.js';
|
|
29
|
+
export { MessagePriority, MessageStatus, MessageQueue, InMemoryQueue, RedisQueue, RabbitMQQueue, WorkflowQueueManager, type QueueMessage, type QueueConfig, type MessageHandler, } from './queue.js';
|
|
30
|
+
export { Permission, RBACManager, ApprovalStatus, ApprovalManager, AuditEventType, AuditLogger, SQLiteAuditStore, InMemoryAuditStore, type Role, type User, type ApprovalRequest, type ApprovalHandler, type AuditEvent, type AuditStore, } from './security.js';
|
|
31
|
+
export { DEFAULT_PRICING, CostStore, CostTracker, PersistentCostTracker, PricingRegistry, WorkflowCostEstimator, LoggingAlertHandler, CallbackAlertHandler, CostAlertLevel, CostUnit, type ModelPricing, type TokenUsage, type CostRecord, type CostSummary, type CostLimit, type CostAlert, type CostAlertHandler, } from './costs.js';
|
|
32
|
+
export { MetricsCollector, } from './metrics.js';
|
|
33
|
+
export { SelectionStrategy, RoutingDecision, AgentSelector, AgentRouter, BudgetTracker, PREDEFINED_PROFILES, createDefaultSelector, createCostOptimizedSelector, createQualityOptimizedSelector, type AgentProfile, type AgentScore, type RoutingContext, type RoutingResult, type BudgetConfig, type LoadInfo, } from './routing.js';
|
|
34
|
+
export { FailoverReason, AgentHealthTracker, DEFAULT_FAILOVER_CONFIG, type AgentHealth, type FailoverConfig, type FailoverEvent, } from './failover.js';
|
|
35
|
+
export { TriggerManager, type TriggerDefinition, type TriggerHandler, } from './trigger-manager.js';
|
|
36
|
+
export { PluginState, HookType, HookRegistry, PluginManager, LoggingPlugin, MetricsPlugin, type PluginMetadata, type HookContext, type HookResult, type HookCallback, type Plugin, type PluginInfo, } from './plugins.js';
|
|
37
|
+
export { TemplateCategory, TemplateRegistry, WorkflowTemplate, HELLO_TEMPLATE, BUILTIN_TEMPLATES, type TemplateMetadata, type TemplateVariable, } from './templates.js';
|
|
38
|
+
export { loadConfig, type MarktoflowConfig } from './config.js';
|
|
39
|
+
export { RollbackStrategy, RollbackStatus, RollbackRegistry, DefaultCompensationHandler, TransactionContext, FileCompensationHandler, GitCompensationHandler, type RollbackAction, type RollbackResult, type CompensationHandler, } from './rollback.js';
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @marktoflow/core
|
|
3
|
+
*
|
|
4
|
+
* Core engine for marktoflow v2.0 - parser, executor, state management.
|
|
5
|
+
*/
|
|
6
|
+
// Models
|
|
7
|
+
export {
|
|
8
|
+
// Enums
|
|
9
|
+
StepStatus, WorkflowStatus, TriggerType,
|
|
10
|
+
// Schemas (for validation)
|
|
11
|
+
WorkflowMetadataSchema, ToolConfigSchema, ErrorHandlingSchema, WorkflowStepSchema, TriggerSchema, WorkflowInputSchema, WorkflowSchema, PermissionsSchema, SubagentConfigSchema,
|
|
12
|
+
// Helpers
|
|
13
|
+
createExecutionContext, createStepResult, } from './models.js';
|
|
14
|
+
// Env
|
|
15
|
+
export { findEnvFiles, findProjectRoot, loadEnv, ensureEnvLoaded, getEnv, getEnvBool, getEnvInt, getEnvFloat, getEnvList, EnvConfig, config, } from './env.js';
|
|
16
|
+
// Credentials
|
|
17
|
+
export { EncryptionBackend, CredentialType, EncryptionError, KeyNotFoundError, CredentialNotFoundError, FernetEncryptor, AgeEncryptor, GPGEncryptor, InMemoryCredentialStore, SQLiteCredentialStore, CredentialManager, KeyManager, createCredentialManager, getAvailableBackends, } from './credentials.js';
|
|
18
|
+
// Parser
|
|
19
|
+
export { parseFile, parseContent, extractVariableReferences, validateVariableReferences, ParseError, } from './parser.js';
|
|
20
|
+
// Engine
|
|
21
|
+
export { WorkflowEngine, RetryPolicy, CircuitBreaker, resolveTemplates, } from './engine.js';
|
|
22
|
+
// Permissions
|
|
23
|
+
export { mergePermissions, checkPermission, toSecurityPolicy, createDefaultPermissions, } from './permissions.js';
|
|
24
|
+
// Prompt Loader
|
|
25
|
+
export { loadPromptFile, resolvePromptTemplate, validatePromptInputs, extractPromptVariables, } from './prompt-loader.js';
|
|
26
|
+
// Tool Registry
|
|
27
|
+
export { ToolRegistry, } from './tool-registry.js';
|
|
28
|
+
export { ToolType, ToolCompatibility, } from './tool-base.js';
|
|
29
|
+
// Tool Implementations
|
|
30
|
+
export { OpenAPITool } from './tools/openapi-tool.js';
|
|
31
|
+
export { CustomTool, operation as customOperation } from './tools/custom-tool.js';
|
|
32
|
+
export { MCPTool } from './tools/mcp-tool.js';
|
|
33
|
+
// Bundle support
|
|
34
|
+
export { WorkflowBundle, BundleToolRegistry, loadBundleConfig, } from './bundle.js';
|
|
35
|
+
// SDK Registry
|
|
36
|
+
export { SDKRegistry, defaultSDKLoader, defaultInitializers, packageNameMappings, createSDKStepExecutor, } from './sdk-registry.js';
|
|
37
|
+
// Core Built-in Tools
|
|
38
|
+
export { CoreToolsClient, CoreInitializer, } from './core-tools.js';
|
|
39
|
+
// Workflow Built-in Tools
|
|
40
|
+
export { WorkflowToolsClient, WorkflowInitializer, } from './workflow-tools.js';
|
|
41
|
+
// State Persistence
|
|
42
|
+
export { StateStore, } from './state.js';
|
|
43
|
+
// Execution Logging
|
|
44
|
+
export { LogLevel, ExecutionLogger, createExecutionLog, addLogEntry, completeLog, logToMarkdown, } from './logging.js';
|
|
45
|
+
// Scheduler
|
|
46
|
+
export { Scheduler, CronParser, createJob, } from './scheduler.js';
|
|
47
|
+
// Webhook Receiver
|
|
48
|
+
export { WebhookReceiver, verifyGitHubSignature, verifyHmacSignature, verifySlackSignature, generateSignature, createEndpoint, parseWebhookBody, } from './webhook.js';
|
|
49
|
+
// MCP Loader
|
|
50
|
+
export { McpLoader, } from './mcp-loader.js';
|
|
51
|
+
// Script Tool
|
|
52
|
+
export { ScriptTool, } from './script-tool.js';
|
|
53
|
+
// File Watcher Trigger
|
|
54
|
+
export { FileWatcher, } from './filewatcher.js';
|
|
55
|
+
// Queue Integration
|
|
56
|
+
export { MessagePriority, MessageStatus, MessageQueue, InMemoryQueue, RedisQueue, RabbitMQQueue, WorkflowQueueManager, } from './queue.js';
|
|
57
|
+
// Security (RBAC, Approval, Audit)
|
|
58
|
+
export { Permission, RBACManager, ApprovalStatus, ApprovalManager, AuditEventType, AuditLogger, SQLiteAuditStore, InMemoryAuditStore, } from './security.js';
|
|
59
|
+
// Cost Tracking
|
|
60
|
+
export { DEFAULT_PRICING, CostStore, CostTracker, PersistentCostTracker, PricingRegistry, WorkflowCostEstimator, LoggingAlertHandler, CallbackAlertHandler, CostAlertLevel, CostUnit, } from './costs.js';
|
|
61
|
+
// Metrics
|
|
62
|
+
export { MetricsCollector, } from './metrics.js';
|
|
63
|
+
// Routing
|
|
64
|
+
export { SelectionStrategy, RoutingDecision, AgentSelector, AgentRouter, BudgetTracker, PREDEFINED_PROFILES, createDefaultSelector, createCostOptimizedSelector, createQualityOptimizedSelector, } from './routing.js';
|
|
65
|
+
// Failover
|
|
66
|
+
export { FailoverReason, AgentHealthTracker, DEFAULT_FAILOVER_CONFIG, } from './failover.js';
|
|
67
|
+
// Trigger Manager
|
|
68
|
+
export { TriggerManager, } from './trigger-manager.js';
|
|
69
|
+
// Plugins
|
|
70
|
+
export { PluginState, HookType, HookRegistry, PluginManager, LoggingPlugin, MetricsPlugin, } from './plugins.js';
|
|
71
|
+
// Templates
|
|
72
|
+
export { TemplateCategory, TemplateRegistry, WorkflowTemplate, HELLO_TEMPLATE, BUILTIN_TEMPLATES, } from './templates.js';
|
|
73
|
+
// Config
|
|
74
|
+
export { loadConfig } from './config.js';
|
|
75
|
+
// Rollback
|
|
76
|
+
export { RollbackStrategy, RollbackStatus, RollbackRegistry, DefaultCompensationHandler, TransactionContext, FileCompensationHandler, GitCompensationHandler, } from './rollback.js';
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution logging for marktoflow v2.0
|
|
3
|
+
*
|
|
4
|
+
* Provides structured markdown logging for workflow executions.
|
|
5
|
+
*/
|
|
6
|
+
export declare const LogLevel: {
|
|
7
|
+
readonly DEBUG: "debug";
|
|
8
|
+
readonly INFO: "info";
|
|
9
|
+
readonly WARNING: "warning";
|
|
10
|
+
readonly ERROR: "error";
|
|
11
|
+
readonly CRITICAL: "critical";
|
|
12
|
+
};
|
|
13
|
+
export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
|
|
14
|
+
export interface LogEntry {
|
|
15
|
+
timestamp: Date;
|
|
16
|
+
level: LogLevel;
|
|
17
|
+
message: string;
|
|
18
|
+
stepName: string | undefined;
|
|
19
|
+
stepIndex: number | undefined;
|
|
20
|
+
details: Record<string, unknown> | undefined;
|
|
21
|
+
}
|
|
22
|
+
export interface ExecutionLog {
|
|
23
|
+
runId: string;
|
|
24
|
+
workflowId: string;
|
|
25
|
+
workflowName: string;
|
|
26
|
+
startedAt: Date;
|
|
27
|
+
completedAt: Date | null;
|
|
28
|
+
entries: LogEntry[];
|
|
29
|
+
success: boolean | null;
|
|
30
|
+
error: string | null;
|
|
31
|
+
inputs: Record<string, unknown> | null;
|
|
32
|
+
outputs: Record<string, unknown> | null;
|
|
33
|
+
}
|
|
34
|
+
export declare function createExecutionLog(runId: string, workflowId: string, workflowName: string, inputs?: Record<string, unknown>): ExecutionLog;
|
|
35
|
+
export declare function addLogEntry(log: ExecutionLog, level: LogLevel, message: string, options?: {
|
|
36
|
+
stepName?: string;
|
|
37
|
+
stepIndex?: number;
|
|
38
|
+
details?: Record<string, unknown>;
|
|
39
|
+
}): void;
|
|
40
|
+
export declare function completeLog(log: ExecutionLog, success: boolean, outputs?: Record<string, unknown>, error?: string): void;
|
|
41
|
+
export declare function logToMarkdown(log: ExecutionLog): string;
|
|
42
|
+
export declare class ExecutionLogger {
|
|
43
|
+
private logsDir;
|
|
44
|
+
private activeLogs;
|
|
45
|
+
constructor(logsDir?: string);
|
|
46
|
+
private ensureDir;
|
|
47
|
+
startLog(runId: string, workflowId: string, workflowName: string, inputs?: Record<string, unknown>): ExecutionLog;
|
|
48
|
+
getLog(runId: string): ExecutionLog | undefined;
|
|
49
|
+
log(runId: string, level: LogLevel, message: string, options?: {
|
|
50
|
+
stepName?: string;
|
|
51
|
+
stepIndex?: number;
|
|
52
|
+
details?: Record<string, unknown>;
|
|
53
|
+
}): void;
|
|
54
|
+
finishLog(runId: string, success: boolean, outputs?: Record<string, unknown>, error?: string): Promise<string | null>;
|
|
55
|
+
listLogs(options?: {
|
|
56
|
+
workflowId?: string;
|
|
57
|
+
limit?: number;
|
|
58
|
+
}): Promise<string[]>;
|
|
59
|
+
readLog(filepath: string): Promise<string>;
|
|
60
|
+
cleanupLogs(retentionDays?: number): Promise<number>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"}
|
package/dist/logging.js
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution logging for marktoflow v2.0
|
|
3
|
+
*
|
|
4
|
+
* Provides structured markdown logging for workflow executions.
|
|
5
|
+
*/
|
|
6
|
+
import { writeFile, mkdir, readdir, readFile, unlink } from 'node:fs/promises';
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Types
|
|
11
|
+
// ============================================================================
|
|
12
|
+
export const LogLevel = {
|
|
13
|
+
DEBUG: 'debug',
|
|
14
|
+
INFO: 'info',
|
|
15
|
+
WARNING: 'warning',
|
|
16
|
+
ERROR: 'error',
|
|
17
|
+
CRITICAL: 'critical',
|
|
18
|
+
};
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Log Entry Formatting
|
|
21
|
+
// ============================================================================
|
|
22
|
+
const LEVEL_ICONS = {
|
|
23
|
+
[LogLevel.DEBUG]: '🔍',
|
|
24
|
+
[LogLevel.INFO]: 'ℹ️',
|
|
25
|
+
[LogLevel.WARNING]: '⚠️',
|
|
26
|
+
[LogLevel.ERROR]: '❌',
|
|
27
|
+
[LogLevel.CRITICAL]: '🔥',
|
|
28
|
+
};
|
|
29
|
+
function formatLogEntry(entry) {
|
|
30
|
+
const timeStr = entry.timestamp.toTimeString().slice(0, 8);
|
|
31
|
+
const icon = LEVEL_ICONS[entry.level] || '•';
|
|
32
|
+
let line = `- \`${timeStr}\` ${icon} `;
|
|
33
|
+
if (entry.stepName) {
|
|
34
|
+
line += `**[${entry.stepName}]** `;
|
|
35
|
+
}
|
|
36
|
+
line += entry.message;
|
|
37
|
+
if (entry.details) {
|
|
38
|
+
line += '\n';
|
|
39
|
+
for (const [key, value] of Object.entries(entry.details)) {
|
|
40
|
+
line += ` - ${key}: \`${JSON.stringify(value)}\`\n`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return line;
|
|
44
|
+
}
|
|
45
|
+
// ============================================================================
|
|
46
|
+
// ExecutionLog Implementation
|
|
47
|
+
// ============================================================================
|
|
48
|
+
export function createExecutionLog(runId, workflowId, workflowName, inputs) {
|
|
49
|
+
return {
|
|
50
|
+
runId,
|
|
51
|
+
workflowId,
|
|
52
|
+
workflowName,
|
|
53
|
+
startedAt: new Date(),
|
|
54
|
+
completedAt: null,
|
|
55
|
+
entries: [],
|
|
56
|
+
success: null,
|
|
57
|
+
error: null,
|
|
58
|
+
inputs: inputs || null,
|
|
59
|
+
outputs: null,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function addLogEntry(log, level, message, options) {
|
|
63
|
+
log.entries.push({
|
|
64
|
+
timestamp: new Date(),
|
|
65
|
+
level,
|
|
66
|
+
message,
|
|
67
|
+
stepName: options?.stepName,
|
|
68
|
+
stepIndex: options?.stepIndex,
|
|
69
|
+
details: options?.details,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
export function completeLog(log, success, outputs, error) {
|
|
73
|
+
log.completedAt = new Date();
|
|
74
|
+
log.success = success;
|
|
75
|
+
log.outputs = outputs || null;
|
|
76
|
+
log.error = error || null;
|
|
77
|
+
}
|
|
78
|
+
export function logToMarkdown(log) {
|
|
79
|
+
const lines = [];
|
|
80
|
+
// Header
|
|
81
|
+
lines.push(`# Execution Log: ${log.workflowName}`);
|
|
82
|
+
lines.push('');
|
|
83
|
+
lines.push(`**Run ID:** \`${log.runId}\``);
|
|
84
|
+
lines.push(`**Workflow:** \`${log.workflowId}\``);
|
|
85
|
+
lines.push(`**Started:** ${log.startedAt.toISOString()}`);
|
|
86
|
+
if (log.completedAt) {
|
|
87
|
+
lines.push(`**Completed:** ${log.completedAt.toISOString()}`);
|
|
88
|
+
const duration = log.completedAt.getTime() - log.startedAt.getTime();
|
|
89
|
+
lines.push(`**Duration:** ${duration}ms`);
|
|
90
|
+
}
|
|
91
|
+
if (log.success !== null) {
|
|
92
|
+
lines.push(`**Status:** ${log.success ? '✅ Success' : '❌ Failed'}`);
|
|
93
|
+
}
|
|
94
|
+
if (log.error) {
|
|
95
|
+
lines.push(`**Error:** ${log.error}`);
|
|
96
|
+
}
|
|
97
|
+
lines.push('');
|
|
98
|
+
// Inputs
|
|
99
|
+
if (log.inputs && Object.keys(log.inputs).length > 0) {
|
|
100
|
+
lines.push('## Inputs');
|
|
101
|
+
lines.push('');
|
|
102
|
+
lines.push('```json');
|
|
103
|
+
lines.push(JSON.stringify(log.inputs, null, 2));
|
|
104
|
+
lines.push('```');
|
|
105
|
+
lines.push('');
|
|
106
|
+
}
|
|
107
|
+
// Log entries
|
|
108
|
+
lines.push('## Execution Log');
|
|
109
|
+
lines.push('');
|
|
110
|
+
for (const entry of log.entries) {
|
|
111
|
+
lines.push(formatLogEntry(entry));
|
|
112
|
+
}
|
|
113
|
+
lines.push('');
|
|
114
|
+
// Outputs
|
|
115
|
+
if (log.outputs && Object.keys(log.outputs).length > 0) {
|
|
116
|
+
lines.push('## Outputs');
|
|
117
|
+
lines.push('');
|
|
118
|
+
lines.push('```json');
|
|
119
|
+
lines.push(JSON.stringify(log.outputs, null, 2));
|
|
120
|
+
lines.push('```');
|
|
121
|
+
lines.push('');
|
|
122
|
+
}
|
|
123
|
+
return lines.join('\n');
|
|
124
|
+
}
|
|
125
|
+
// ============================================================================
|
|
126
|
+
// ExecutionLogger (File-based)
|
|
127
|
+
// ============================================================================
|
|
128
|
+
export class ExecutionLogger {
|
|
129
|
+
logsDir;
|
|
130
|
+
activeLogs = new Map();
|
|
131
|
+
constructor(logsDir = '.marktoflow/state/execution-logs') {
|
|
132
|
+
this.logsDir = logsDir;
|
|
133
|
+
}
|
|
134
|
+
async ensureDir() {
|
|
135
|
+
if (!existsSync(this.logsDir)) {
|
|
136
|
+
await mkdir(this.logsDir, { recursive: true });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
startLog(runId, workflowId, workflowName, inputs) {
|
|
140
|
+
const log = createExecutionLog(runId, workflowId, workflowName, inputs);
|
|
141
|
+
this.activeLogs.set(runId, log);
|
|
142
|
+
addLogEntry(log, LogLevel.INFO, 'Workflow execution started');
|
|
143
|
+
return log;
|
|
144
|
+
}
|
|
145
|
+
getLog(runId) {
|
|
146
|
+
return this.activeLogs.get(runId);
|
|
147
|
+
}
|
|
148
|
+
log(runId, level, message, options) {
|
|
149
|
+
const log = this.activeLogs.get(runId);
|
|
150
|
+
if (log) {
|
|
151
|
+
addLogEntry(log, level, message, options);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async finishLog(runId, success, outputs, error) {
|
|
155
|
+
const log = this.activeLogs.get(runId);
|
|
156
|
+
if (!log) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
addLogEntry(log, success ? LogLevel.INFO : LogLevel.ERROR, success ? 'Workflow execution completed successfully' : `Workflow execution failed: ${error}`);
|
|
160
|
+
completeLog(log, success, outputs, error);
|
|
161
|
+
// Save to file
|
|
162
|
+
await this.ensureDir();
|
|
163
|
+
const filename = `${log.workflowId}_${runId}_${log.startedAt.toISOString().replace(/[:.]/g, '-')}.md`;
|
|
164
|
+
const filepath = join(this.logsDir, filename);
|
|
165
|
+
const markdown = logToMarkdown(log);
|
|
166
|
+
await writeFile(filepath, markdown, 'utf-8');
|
|
167
|
+
this.activeLogs.delete(runId);
|
|
168
|
+
return filepath;
|
|
169
|
+
}
|
|
170
|
+
async listLogs(options) {
|
|
171
|
+
await this.ensureDir();
|
|
172
|
+
let files = await readdir(this.logsDir);
|
|
173
|
+
files = files.filter((f) => f.endsWith('.md'));
|
|
174
|
+
if (options?.workflowId) {
|
|
175
|
+
files = files.filter((f) => f.startsWith(options.workflowId + '_'));
|
|
176
|
+
}
|
|
177
|
+
// Sort by date (newest first)
|
|
178
|
+
files.sort().reverse();
|
|
179
|
+
if (options?.limit) {
|
|
180
|
+
files = files.slice(0, options.limit);
|
|
181
|
+
}
|
|
182
|
+
return files.map((f) => join(this.logsDir, f));
|
|
183
|
+
}
|
|
184
|
+
async readLog(filepath) {
|
|
185
|
+
return readFile(filepath, 'utf-8');
|
|
186
|
+
}
|
|
187
|
+
async cleanupLogs(retentionDays = 30) {
|
|
188
|
+
await this.ensureDir();
|
|
189
|
+
const cutoffDate = new Date();
|
|
190
|
+
cutoffDate.setDate(cutoffDate.getDate() - retentionDays);
|
|
191
|
+
const files = await readdir(this.logsDir);
|
|
192
|
+
let deleted = 0;
|
|
193
|
+
for (const file of files) {
|
|
194
|
+
if (!file.endsWith('.md'))
|
|
195
|
+
continue;
|
|
196
|
+
const filepath = join(this.logsDir, file);
|
|
197
|
+
const content = await readFile(filepath, 'utf-8');
|
|
198
|
+
// Extract started date from content
|
|
199
|
+
const match = content.match(/\*\*Started:\*\* (.+)/);
|
|
200
|
+
if (match) {
|
|
201
|
+
const startedAt = new Date(match[1]);
|
|
202
|
+
if (startedAt < cutoffDate) {
|
|
203
|
+
await unlink(filepath);
|
|
204
|
+
deleted++;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return deleted;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Loader for marktoflow v2.0
|
|
3
|
+
*
|
|
4
|
+
* Handles loading and connection to MCP servers (both native/in-memory and stdio).
|
|
5
|
+
*/
|
|
6
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
7
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
|
+
import { ToolConfig } from "./models.js";
|
|
9
|
+
export interface McpModule {
|
|
10
|
+
createMcpServer(config?: Record<string, unknown>): McpServer | Promise<McpServer>;
|
|
11
|
+
}
|
|
12
|
+
export type ModuleLoader = (name: string) => Promise<any>;
|
|
13
|
+
export declare class McpLoader {
|
|
14
|
+
private moduleLoader;
|
|
15
|
+
constructor(moduleLoader?: ModuleLoader);
|
|
16
|
+
/**
|
|
17
|
+
* Connect to a loaded MCP module.
|
|
18
|
+
*/
|
|
19
|
+
connectModule(module: any, config: ToolConfig): Promise<Client>;
|
|
20
|
+
/**
|
|
21
|
+
* Load a native MCP module and connect to it in-memory.
|
|
22
|
+
*/
|
|
23
|
+
loadNative(packageName: string, config: ToolConfig): Promise<Client>;
|
|
24
|
+
/**
|
|
25
|
+
* Connect to an external MCP server via Stdio.
|
|
26
|
+
*/
|
|
27
|
+
connectStdio(command: string, args: string[]): Promise<Client>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=mcp-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-loader.d.ts","sourceRoot":"","sources":["../src/mcp-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,WAAW,SAAS;IACxB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACnF;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE1D,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAe;gBAEvB,YAAY,CAAC,EAAE,YAAY;IAIvC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBrE;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAY1E;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAerE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Loader for marktoflow v2.0
|
|
3
|
+
*
|
|
4
|
+
* Handles loading and connection to MCP servers (both native/in-memory and stdio).
|
|
5
|
+
*/
|
|
6
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
7
|
+
import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
8
|
+
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
9
|
+
export class McpLoader {
|
|
10
|
+
moduleLoader;
|
|
11
|
+
constructor(moduleLoader) {
|
|
12
|
+
this.moduleLoader = moduleLoader || ((name) => import(name));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Connect to a loaded MCP module.
|
|
16
|
+
*/
|
|
17
|
+
async connectModule(module, config) {
|
|
18
|
+
// Check if it follows the Native MCP Module contract
|
|
19
|
+
if (typeof module.createMcpServer !== 'function') {
|
|
20
|
+
throw new Error(`Module does not export 'createMcpServer' function.`);
|
|
21
|
+
}
|
|
22
|
+
// Create the server instance
|
|
23
|
+
const server = await module.createMcpServer(config.options || {});
|
|
24
|
+
// Create linked in-memory transports
|
|
25
|
+
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
|
|
26
|
+
// Connect server to transport
|
|
27
|
+
await server.connect(serverTransport);
|
|
28
|
+
// Create and connect client
|
|
29
|
+
const client = new Client({ name: "marktoflow-core", version: "2.0.0" }, { capabilities: {} });
|
|
30
|
+
await client.connect(clientTransport);
|
|
31
|
+
return client;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Load a native MCP module and connect to it in-memory.
|
|
35
|
+
*/
|
|
36
|
+
async loadNative(packageName, config) {
|
|
37
|
+
let module;
|
|
38
|
+
try {
|
|
39
|
+
// Dynamic import of the package
|
|
40
|
+
module = await this.moduleLoader(packageName);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new Error(`Failed to import native MCP module '${packageName}': ${error}`);
|
|
44
|
+
}
|
|
45
|
+
return this.connectModule(module, config);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Connect to an external MCP server via Stdio.
|
|
49
|
+
*/
|
|
50
|
+
async connectStdio(command, args) {
|
|
51
|
+
const transport = new StdioClientTransport({
|
|
52
|
+
command,
|
|
53
|
+
args,
|
|
54
|
+
});
|
|
55
|
+
const client = new Client({ name: "marktoflow-core", version: "2.0.0" }, { capabilities: {} });
|
|
56
|
+
await client.connect(transport);
|
|
57
|
+
return client;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=mcp-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-loader.js","sourceRoot":"","sources":["../src/mcp-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAWjF,MAAM,OAAO,SAAS;IACZ,YAAY,CAAe;IAEnC,YAAY,YAA2B;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAW,EAAE,MAAkB;QACjD,qDAAqD;QACrD,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,6BAA6B;QAC7B,MAAM,MAAM,GAAc,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAE7E,qCAAqC;QACrC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAEhF,8BAA8B;QAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEtC,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C,EAAE,YAAY,EAAE,EAAE,EAAE,CACrB,CAAC;QACF,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,MAAkB;QACtD,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,MAAM,KAAK,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAAc;QAChD,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC;YACzC,OAAO;YACP,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C,EAAE,YAAY,EAAE,EAAE,EAAE,CACrB,CAAC;QAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|