@ugm/desiagent 0.1.21
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 +251 -0
- package/dist/__tests__/test-utils.d.ts +24 -0
- package/dist/__tests__/test-utils.d.ts.map +1 -0
- package/dist/__tests__/test-utils.js +32 -0
- package/dist/__tests__/test-utils.js.map +1 -0
- package/dist/core/execution/agents.d.ts +60 -0
- package/dist/core/execution/agents.d.ts.map +1 -0
- package/dist/core/execution/agents.js +249 -0
- package/dist/core/execution/agents.js.map +1 -0
- package/dist/core/execution/artifacts.d.ts +27 -0
- package/dist/core/execution/artifacts.d.ts.map +1 -0
- package/dist/core/execution/artifacts.js +93 -0
- package/dist/core/execution/artifacts.js.map +1 -0
- package/dist/core/execution/costs.d.ts +160 -0
- package/dist/core/execution/costs.d.ts.map +1 -0
- package/dist/core/execution/costs.js +196 -0
- package/dist/core/execution/costs.js.map +1 -0
- package/dist/core/execution/dagExecutor.d.ts +112 -0
- package/dist/core/execution/dagExecutor.d.ts.map +1 -0
- package/dist/core/execution/dagExecutor.js +647 -0
- package/dist/core/execution/dagExecutor.js.map +1 -0
- package/dist/core/execution/dags.d.ts +167 -0
- package/dist/core/execution/dags.d.ts.map +1 -0
- package/dist/core/execution/dags.js +713 -0
- package/dist/core/execution/dags.js.map +1 -0
- package/dist/core/execution/executions.d.ts +158 -0
- package/dist/core/execution/executions.d.ts.map +1 -0
- package/dist/core/execution/executions.js +258 -0
- package/dist/core/execution/executions.js.map +1 -0
- package/dist/core/execution/goals.d.ts +62 -0
- package/dist/core/execution/goals.d.ts.map +1 -0
- package/dist/core/execution/goals.js +245 -0
- package/dist/core/execution/goals.js.map +1 -0
- package/dist/core/execution/runs.d.ts +65 -0
- package/dist/core/execution/runs.d.ts.map +1 -0
- package/dist/core/execution/runs.js +219 -0
- package/dist/core/execution/runs.js.map +1 -0
- package/dist/core/execution/tools.d.ts +24 -0
- package/dist/core/execution/tools.d.ts.map +1 -0
- package/dist/core/execution/tools.js +33 -0
- package/dist/core/execution/tools.js.map +1 -0
- package/dist/core/orchestration/index.d.ts +7 -0
- package/dist/core/orchestration/index.d.ts.map +1 -0
- package/dist/core/orchestration/index.js +7 -0
- package/dist/core/orchestration/index.js.map +1 -0
- package/dist/core/orchestration/orchestrator.d.ts +39 -0
- package/dist/core/orchestration/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestration/orchestrator.js +141 -0
- package/dist/core/orchestration/orchestrator.js.map +1 -0
- package/dist/core/orchestration/planner.d.ts +63 -0
- package/dist/core/orchestration/planner.d.ts.map +1 -0
- package/dist/core/orchestration/planner.js +99 -0
- package/dist/core/orchestration/planner.js.map +1 -0
- package/dist/core/providers/factory.d.ts +25 -0
- package/dist/core/providers/factory.d.ts.map +1 -0
- package/dist/core/providers/factory.js +86 -0
- package/dist/core/providers/factory.js.map +1 -0
- package/dist/core/providers/index.d.ts +11 -0
- package/dist/core/providers/index.d.ts.map +1 -0
- package/dist/core/providers/index.js +10 -0
- package/dist/core/providers/index.js.map +1 -0
- package/dist/core/providers/ollama.d.ts +36 -0
- package/dist/core/providers/ollama.d.ts.map +1 -0
- package/dist/core/providers/ollama.js +123 -0
- package/dist/core/providers/ollama.js.map +1 -0
- package/dist/core/providers/openai.d.ts +33 -0
- package/dist/core/providers/openai.d.ts.map +1 -0
- package/dist/core/providers/openai.js +114 -0
- package/dist/core/providers/openai.js.map +1 -0
- package/dist/core/providers/openrouter.d.ts +38 -0
- package/dist/core/providers/openrouter.d.ts.map +1 -0
- package/dist/core/providers/openrouter.js +269 -0
- package/dist/core/providers/openrouter.js.map +1 -0
- package/dist/core/providers/types.d.ts +101 -0
- package/dist/core/providers/types.d.ts.map +1 -0
- package/dist/core/providers/types.js +7 -0
- package/dist/core/providers/types.js.map +1 -0
- package/dist/core/tools/base.d.ts +56 -0
- package/dist/core/tools/base.d.ts.map +1 -0
- package/dist/core/tools/base.js +60 -0
- package/dist/core/tools/base.js.map +1 -0
- package/dist/core/tools/bash.d.ts +50 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +179 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit.d.ts +39 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +67 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/executor.d.ts +33 -0
- package/dist/core/tools/executor.d.ts.map +1 -0
- package/dist/core/tools/executor.js +105 -0
- package/dist/core/tools/executor.js.map +1 -0
- package/dist/core/tools/fetchPage.d.ts +46 -0
- package/dist/core/tools/fetchPage.d.ts.map +1 -0
- package/dist/core/tools/fetchPage.js +87 -0
- package/dist/core/tools/fetchPage.js.map +1 -0
- package/dist/core/tools/fetchURLs.d.ts +39 -0
- package/dist/core/tools/fetchURLs.d.ts.map +1 -0
- package/dist/core/tools/fetchURLs.js +67 -0
- package/dist/core/tools/fetchURLs.js.map +1 -0
- package/dist/core/tools/glob.d.ts +36 -0
- package/dist/core/tools/glob.d.ts.map +1 -0
- package/dist/core/tools/glob.js +78 -0
- package/dist/core/tools/glob.js.map +1 -0
- package/dist/core/tools/grep.d.ts +51 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +152 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +22 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +22 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/llmExecute.d.ts +153 -0
- package/dist/core/tools/llmExecute.d.ts.map +1 -0
- package/dist/core/tools/llmExecute.js +105 -0
- package/dist/core/tools/llmExecute.js.map +1 -0
- package/dist/core/tools/readEmail.d.ts +68 -0
- package/dist/core/tools/readEmail.d.ts.map +1 -0
- package/dist/core/tools/readEmail.js +182 -0
- package/dist/core/tools/readEmail.js.map +1 -0
- package/dist/core/tools/readFile.d.ts +42 -0
- package/dist/core/tools/readFile.d.ts.map +1 -0
- package/dist/core/tools/readFile.js +79 -0
- package/dist/core/tools/readFile.js.map +1 -0
- package/dist/core/tools/registry.d.ts +53 -0
- package/dist/core/tools/registry.d.ts.map +1 -0
- package/dist/core/tools/registry.js +112 -0
- package/dist/core/tools/registry.js.map +1 -0
- package/dist/core/tools/sendEmail.d.ts +83 -0
- package/dist/core/tools/sendEmail.d.ts.map +1 -0
- package/dist/core/tools/sendEmail.js +132 -0
- package/dist/core/tools/sendEmail.js.map +1 -0
- package/dist/core/tools/sendWebhook.d.ts +48 -0
- package/dist/core/tools/sendWebhook.d.ts.map +1 -0
- package/dist/core/tools/sendWebhook.js +61 -0
- package/dist/core/tools/sendWebhook.js.map +1 -0
- package/dist/core/tools/webSearch.d.ts +34 -0
- package/dist/core/tools/webSearch.d.ts.map +1 -0
- package/dist/core/tools/webSearch.js +104 -0
- package/dist/core/tools/webSearch.js.map +1 -0
- package/dist/core/tools/writeFile.d.ts +49 -0
- package/dist/core/tools/writeFile.d.ts.map +1 -0
- package/dist/core/tools/writeFile.js +120 -0
- package/dist/core/tools/writeFile.js.map +1 -0
- package/dist/db/client.d.ts +22 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +178 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/schema.d.ts +1846 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +175 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/errors/index.d.ts +80 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +135 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +172 -0
- package/dist/index.js.map +1 -0
- package/dist/services/initDB.d.ts +17 -0
- package/dist/services/initDB.d.ts.map +1 -0
- package/dist/services/initDB.js +212 -0
- package/dist/services/initDB.js.map +1 -0
- package/dist/types/agent.d.ts +354 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +63 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/client.d.ts +309 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +2 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/config.d.ts +96 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +33 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dag.d.ts +253 -0
- package/dist/types/dag.d.ts.map +1 -0
- package/dist/types/dag.js +46 -0
- package/dist/types/dag.js.map +1 -0
- package/dist/types/execution.d.ts +171 -0
- package/dist/types/execution.d.ts.map +1 -0
- package/dist/types/execution.js +41 -0
- package/dist/types/execution.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/util/cron-validator.d.ts +16 -0
- package/dist/util/cron-validator.d.ts.map +1 -0
- package/dist/util/cron-validator.js +31 -0
- package/dist/util/cron-validator.js.map +1 -0
- package/dist/util/dag-utils.d.ts +54 -0
- package/dist/util/dag-utils.d.ts.map +1 -0
- package/dist/util/dag-utils.js +167 -0
- package/dist/util/dag-utils.js.map +1 -0
- package/dist/util/logger.d.ts +21 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +87 -0
- package/dist/util/logger.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { drizzle } from 'drizzle-orm/bun-sqlite';
|
|
2
|
+
import { Database } from 'bun:sqlite';
|
|
3
|
+
import * as schema from './schema.js';
|
|
4
|
+
import { getLogger } from '../util/logger.js';
|
|
5
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
6
|
+
import { dirname } from 'path';
|
|
7
|
+
import { DatabaseError, InitializationError } from '../errors/index.js';
|
|
8
|
+
let dbInstance = null;
|
|
9
|
+
/**
|
|
10
|
+
* SQL statements to create all tables based on the schema
|
|
11
|
+
*/
|
|
12
|
+
const CREATE_TABLES_SQL = `
|
|
13
|
+
-- Agents table
|
|
14
|
+
CREATE TABLE IF NOT EXISTS agents (
|
|
15
|
+
id TEXT PRIMARY KEY,
|
|
16
|
+
name TEXT NOT NULL,
|
|
17
|
+
version TEXT NOT NULL,
|
|
18
|
+
prompt_template TEXT NOT NULL,
|
|
19
|
+
provider TEXT,
|
|
20
|
+
model TEXT,
|
|
21
|
+
active INTEGER NOT NULL DEFAULT 0,
|
|
22
|
+
metadata TEXT,
|
|
23
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
24
|
+
updated_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- Unique index for agent name+version
|
|
28
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_name_version ON agents(name, version);
|
|
29
|
+
|
|
30
|
+
-- Partial unique index for active agent per name
|
|
31
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_active_agent ON agents(name) WHERE active = 1;
|
|
32
|
+
|
|
33
|
+
-- DAGs table
|
|
34
|
+
CREATE TABLE IF NOT EXISTS dags (
|
|
35
|
+
id TEXT PRIMARY KEY,
|
|
36
|
+
status TEXT NOT NULL,
|
|
37
|
+
result TEXT,
|
|
38
|
+
usage TEXT,
|
|
39
|
+
generation_stats TEXT,
|
|
40
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
41
|
+
params TEXT,
|
|
42
|
+
agent_name TEXT,
|
|
43
|
+
dag_title TEXT,
|
|
44
|
+
cron_schedule TEXT,
|
|
45
|
+
schedule_active INTEGER NOT NULL DEFAULT 0,
|
|
46
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
47
|
+
updated_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
-- DAG Executions table
|
|
51
|
+
CREATE TABLE IF NOT EXISTS dag_executions (
|
|
52
|
+
id TEXT PRIMARY KEY,
|
|
53
|
+
dag_id TEXT NOT NULL REFERENCES dags(id) ON DELETE CASCADE,
|
|
54
|
+
status TEXT NOT NULL,
|
|
55
|
+
execution_results TEXT,
|
|
56
|
+
failure_reason TEXT,
|
|
57
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
58
|
+
updated_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
-- DAG Sub-Steps table
|
|
62
|
+
CREATE TABLE IF NOT EXISTS dag_sub_steps (
|
|
63
|
+
id TEXT PRIMARY KEY,
|
|
64
|
+
execution_id TEXT NOT NULL REFERENCES dag_executions(id) ON DELETE CASCADE,
|
|
65
|
+
node_id TEXT NOT NULL,
|
|
66
|
+
"index" INTEGER NOT NULL,
|
|
67
|
+
type TEXT NOT NULL CHECK(type IN ('action', 'result', 'decision')),
|
|
68
|
+
content TEXT NOT NULL,
|
|
69
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
70
|
+
);
|
|
71
|
+
`;
|
|
72
|
+
/**
|
|
73
|
+
* Initialize database tables if they don't exist
|
|
74
|
+
*/
|
|
75
|
+
function initializeTables(sqlite, logger) {
|
|
76
|
+
try {
|
|
77
|
+
sqlite.exec(CREATE_TABLES_SQL);
|
|
78
|
+
logger.info('Database tables initialized');
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
throw new DatabaseError(`Failed to initialize database tables: ${error instanceof Error ? error.message : String(error)}`, 'initializeTables', error instanceof Error ? error : undefined);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create and initialize database connection
|
|
86
|
+
*/
|
|
87
|
+
function createDatabase(dbPath) {
|
|
88
|
+
const logger = getLogger();
|
|
89
|
+
try {
|
|
90
|
+
// Ensure data directory exists
|
|
91
|
+
const dbDir = dirname(dbPath);
|
|
92
|
+
if (!existsSync(dbDir)) {
|
|
93
|
+
mkdirSync(dbDir, { recursive: true });
|
|
94
|
+
logger.info(`Created database directory: ${dbDir}`);
|
|
95
|
+
}
|
|
96
|
+
// Check if database file exists (to determine if we need to create tables)
|
|
97
|
+
const isNewDatabase = !existsSync(dbPath);
|
|
98
|
+
// Open SQLite database using bun:sqlite
|
|
99
|
+
const sqlite = new Database(dbPath);
|
|
100
|
+
// Enable foreign keys and WAL mode
|
|
101
|
+
sqlite.exec('PRAGMA journal_mode = WAL;');
|
|
102
|
+
sqlite.exec('PRAGMA foreign_keys = ON;');
|
|
103
|
+
// Initialize tables if this is a new database
|
|
104
|
+
if (isNewDatabase) {
|
|
105
|
+
logger.info('New database detected, creating tables...');
|
|
106
|
+
initializeTables(sqlite, logger);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// For existing databases, ensure tables exist (handles partial initialization)
|
|
110
|
+
initializeTables(sqlite, logger);
|
|
111
|
+
}
|
|
112
|
+
const db = drizzle(sqlite, { schema });
|
|
113
|
+
logger.info(`Database initialized: ${dbPath}`);
|
|
114
|
+
return db;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
const logger = getLogger();
|
|
118
|
+
logger.error('Failed to initialize database');
|
|
119
|
+
throw new InitializationError(`Failed to initialize database: ${error instanceof Error ? error.message : String(error)}`, 'DatabaseClient', error instanceof Error ? error : undefined);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get or create the global database instance
|
|
124
|
+
*/
|
|
125
|
+
export function getDatabase(dbPath) {
|
|
126
|
+
if (!dbInstance) {
|
|
127
|
+
dbInstance = createDatabase(dbPath);
|
|
128
|
+
}
|
|
129
|
+
return dbInstance;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Close database connection
|
|
133
|
+
*/
|
|
134
|
+
export function closeDatabase() {
|
|
135
|
+
if (dbInstance) {
|
|
136
|
+
try {
|
|
137
|
+
const logger = getLogger();
|
|
138
|
+
logger.info('Closing database connection');
|
|
139
|
+
// bun:sqlite closes automatically when garbage collected
|
|
140
|
+
// but we can mark it as null
|
|
141
|
+
dbInstance = null;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
const logger = getLogger();
|
|
145
|
+
logger.error('Error closing database');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Run database migrations
|
|
151
|
+
* Note: For Phase 2, this is a placeholder.
|
|
152
|
+
* In production, migrations should be managed via drizzle-kit
|
|
153
|
+
*/
|
|
154
|
+
export async function runMigrations(db) {
|
|
155
|
+
try {
|
|
156
|
+
void db; // Suppress unused variable warning
|
|
157
|
+
const logger = getLogger();
|
|
158
|
+
logger.info('Migrations check complete (no migrations yet)');
|
|
159
|
+
// TODO: Implement migration system in Phase 4
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
throw new DatabaseError(`Migration failed: ${error instanceof Error ? error.message : String(error)}`, 'runMigrations', error instanceof Error ? error : undefined);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Execute a query with error handling
|
|
167
|
+
*/
|
|
168
|
+
export async function withDatabase(db, operation) {
|
|
169
|
+
try {
|
|
170
|
+
return await operation(db);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
const logger = getLogger();
|
|
174
|
+
logger.error('Database operation failed');
|
|
175
|
+
throw new DatabaseError(`Database operation failed: ${error instanceof Error ? error.message : String(error)}`, 'query', error instanceof Error ? error : undefined);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAIxE,IAAI,UAAU,GAAqB,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DzB,CAAC;AAEF;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAW,EAAE,MAAW;IAChD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CACrB,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACjG,kBAAkB,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,2EAA2E;QAC3E,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE1C,wCAAwC;QACxC,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpC,mCAAmC;QACnC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEzC,8CAA8C;QAC9C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACzD,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,+EAA+E;YAC/E,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvC,MAAM,CAAC,IAAI,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;QAE/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9C,MAAM,IAAI,mBAAmB,CAC3B,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC1F,gBAAgB,EAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC3C,yDAAyD;YACzD,6BAA6B;YAC7B,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAa;IAC/C,IAAI,CAAC;QACH,KAAK,EAAE,CAAC,CAAC,mCAAmC;QAC5C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7D,8CAA8C;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CACrB,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC7E,eAAe,EACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAa,EACb,SAAwC;IAExC,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,IAAI,aAAa,CACrB,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACtF,OAAO,EACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC"}
|