@open-code-review/cli 1.5.1 → 1.6.0

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 (59) hide show
  1. package/README.md +57 -127
  2. package/dist/dashboard/client/assets/{_basePickBy-BJKCdvle.js → _basePickBy-BGuMbEDR.js} +1 -1
  3. package/dist/dashboard/client/assets/{_baseUniq-L_sxIO0r.js → _baseUniq-Bx8loabg.js} +1 -1
  4. package/dist/dashboard/client/assets/{arc-tqAEcLt5.js → arc-DUgpt7nY.js} +1 -1
  5. package/dist/dashboard/client/assets/{architectureDiagram-VXUJARFQ-CrKQo6Ye.js → architectureDiagram-VXUJARFQ-D25nt6Xz.js} +1 -1
  6. package/dist/dashboard/client/assets/{blockDiagram-VD42YOAC-DXOc89nw.js → blockDiagram-VD42YOAC-D8PUF3h4.js} +1 -1
  7. package/dist/dashboard/client/assets/{c4Diagram-YG6GDRKO-Ba-jYbw0.js → c4Diagram-YG6GDRKO-lorsCz-I.js} +1 -1
  8. package/dist/dashboard/client/assets/channel-yW2sWou_.js +1 -0
  9. package/dist/dashboard/client/assets/{chunk-4BX2VUAB-D1G3HCqL.js → chunk-4BX2VUAB-8lVyfRJM.js} +1 -1
  10. package/dist/dashboard/client/assets/{chunk-55IACEB6-FI7g4AjR.js → chunk-55IACEB6-C4SjgsZO.js} +1 -1
  11. package/dist/dashboard/client/assets/{chunk-B4BG7PRW-DhEGFGWs.js → chunk-B4BG7PRW-BXzTPbH1.js} +1 -1
  12. package/dist/dashboard/client/assets/{chunk-DI55MBZ5-Da3-6ZE4.js → chunk-DI55MBZ5-Bp7QllDt.js} +1 -1
  13. package/dist/dashboard/client/assets/{chunk-FMBD7UC4-D0QLOjiy.js → chunk-FMBD7UC4-B4g9S67N.js} +1 -1
  14. package/dist/dashboard/client/assets/{chunk-QN33PNHL-WkfgpbLo.js → chunk-QN33PNHL-Dyk7Hc0J.js} +1 -1
  15. package/dist/dashboard/client/assets/{chunk-QZHKN3VN-Bqn0IO1w.js → chunk-QZHKN3VN-DTvkGdnm.js} +1 -1
  16. package/dist/dashboard/client/assets/{chunk-TZMSLE5B-CC_K_BeL.js → chunk-TZMSLE5B-BAeZLvrI.js} +1 -1
  17. package/dist/dashboard/client/assets/classDiagram-2ON5EDUG-1pMX5UXO.js +1 -0
  18. package/dist/dashboard/client/assets/classDiagram-v2-WZHVMYZB-1pMX5UXO.js +1 -0
  19. package/dist/dashboard/client/assets/clone-DQwdw3YR.js +1 -0
  20. package/dist/dashboard/client/assets/{cose-bilkent-S5V4N54A-D8urqxIF.js → cose-bilkent-S5V4N54A--6-kzrdu.js} +1 -1
  21. package/dist/dashboard/client/assets/{dagre-6UL2VRFP-w2xS0ztU.js → dagre-6UL2VRFP-D10_QE2P.js} +1 -1
  22. package/dist/dashboard/client/assets/{diagram-PSM6KHXK-DlOtv6zO.js → diagram-PSM6KHXK-kS1x75Bl.js} +1 -1
  23. package/dist/dashboard/client/assets/{diagram-QEK2KX5R-EpxsVLZY.js → diagram-QEK2KX5R-D_LLCPas.js} +1 -1
  24. package/dist/dashboard/client/assets/{diagram-S2PKOQOG-kmITzl42.js → diagram-S2PKOQOG-Duy1t5UO.js} +1 -1
  25. package/dist/dashboard/client/assets/{erDiagram-Q2GNP2WA-Bvyepu_Z.js → erDiagram-Q2GNP2WA-DyQXwzLf.js} +1 -1
  26. package/dist/dashboard/client/assets/{flowDiagram-NV44I4VS-BokLAZN0.js → flowDiagram-NV44I4VS-D9U11XVw.js} +1 -1
  27. package/dist/dashboard/client/assets/{ganttDiagram-JELNMOA3-i5ZSGuTN.js → ganttDiagram-JELNMOA3-STy-TC-3.js} +1 -1
  28. package/dist/dashboard/client/assets/{gitGraphDiagram-V2S2FVAM-CIayQ8P9.js → gitGraphDiagram-V2S2FVAM-B04PgURg.js} +1 -1
  29. package/dist/dashboard/client/assets/{graph-C3ouLF2F.js → graph-AiGwnT5H.js} +1 -1
  30. package/dist/dashboard/client/assets/{index-icxlpW-l.js → index-BzQ3i_QR.js} +109 -107
  31. package/dist/dashboard/client/assets/index-CGGYXSm-.css +1 -0
  32. package/dist/dashboard/client/assets/{infoDiagram-HS3SLOUP-wxe8NO00.js → infoDiagram-HS3SLOUP-D4arwl6T.js} +1 -1
  33. package/dist/dashboard/client/assets/{journeyDiagram-XKPGCS4Q-BeHCbOFN.js → journeyDiagram-XKPGCS4Q-CsKqlKkf.js} +1 -1
  34. package/dist/dashboard/client/assets/{kanban-definition-3W4ZIXB7-DxUlb4wo.js → kanban-definition-3W4ZIXB7-CUFnzQE3.js} +1 -1
  35. package/dist/dashboard/client/assets/{layout-CYsQ5kjv.js → layout-BvvYJVPv.js} +1 -1
  36. package/dist/dashboard/client/assets/{linear-ByuMiLUn.js → linear-BiBJkzyE.js} +1 -1
  37. package/dist/dashboard/client/assets/{mermaid-renderer-cx-n1jFM.js → mermaid-renderer-DGUmIWXY.js} +4 -4
  38. package/dist/dashboard/client/assets/{mindmap-definition-VGOIOE7T-CI5zvW3G.js → mindmap-definition-VGOIOE7T-D-Kc9Xgu.js} +1 -1
  39. package/dist/dashboard/client/assets/{pieDiagram-ADFJNKIX-lC7QV-4L.js → pieDiagram-ADFJNKIX-CooPKLnX.js} +1 -1
  40. package/dist/dashboard/client/assets/{quadrantDiagram-AYHSOK5B-DI7Bn_fF.js → quadrantDiagram-AYHSOK5B-3soPtaSQ.js} +1 -1
  41. package/dist/dashboard/client/assets/{requirementDiagram-UZGBJVZJ-BVuFGUp6.js → requirementDiagram-UZGBJVZJ-rE40t0IG.js} +1 -1
  42. package/dist/dashboard/client/assets/{sankeyDiagram-TZEHDZUN-C-3hBPRk.js → sankeyDiagram-TZEHDZUN-CrgDF_jW.js} +1 -1
  43. package/dist/dashboard/client/assets/{sequenceDiagram-WL72ISMW-CLS6xCbv.js → sequenceDiagram-WL72ISMW-B628IlDW.js} +1 -1
  44. package/dist/dashboard/client/assets/{stateDiagram-FKZM4ZOC-XOLrkoEE.js → stateDiagram-FKZM4ZOC-C4yb7S9D.js} +1 -1
  45. package/dist/dashboard/client/assets/stateDiagram-v2-4FDKWEC3-BoFeOfLI.js +1 -0
  46. package/dist/dashboard/client/assets/{timeline-definition-IT6M3QCI-N9m6IkH5.js → timeline-definition-IT6M3QCI-5uLN4f_J.js} +1 -1
  47. package/dist/dashboard/client/assets/{treemap-GDKQZRPO-ayvdfxB1.js → treemap-GDKQZRPO-BHXME3bw.js} +1 -1
  48. package/dist/dashboard/client/assets/{xychartDiagram-PRI3JC2R-CUmVEVIH.js → xychartDiagram-PRI3JC2R-BYTod6eI.js} +1 -1
  49. package/dist/dashboard/client/index.html +2 -2
  50. package/dist/dashboard/server.js +532 -58
  51. package/dist/index.js +523 -15
  52. package/dist/lib/db/index.js +522 -0
  53. package/package.json +2 -2
  54. package/dist/dashboard/client/assets/channel-OmrThJE3.js +0 -1
  55. package/dist/dashboard/client/assets/classDiagram-2ON5EDUG-Dg5ffKNR.js +0 -1
  56. package/dist/dashboard/client/assets/classDiagram-v2-WZHVMYZB-Dg5ffKNR.js +0 -1
  57. package/dist/dashboard/client/assets/clone-CKI4Qu1i.js +0 -1
  58. package/dist/dashboard/client/assets/index-CPEavIIM.css +0 -1
  59. package/dist/dashboard/client/assets/stateDiagram-v2-4FDKWEC3-Cy33HZ1p.js +0 -1
@@ -0,0 +1,522 @@
1
+ import { createRequire as _cjsReq } from "module"; const require = _cjsReq(import.meta.url);
2
+
3
+ // src/lib/db/index.ts
4
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
5
+ import { dirname, join } from "node:path";
6
+ import { createRequire } from "node:module";
7
+ import initSqlJs from "sql.js";
8
+
9
+ // src/lib/db/migrations.ts
10
+ var MIGRATIONS = [
11
+ {
12
+ version: 1,
13
+ description: "Initial schema \u2014 sessions, events, artifacts, user state",
14
+ sql: `
15
+ -- Layer 1: Workflow State
16
+
17
+ CREATE TABLE sessions (
18
+ id TEXT PRIMARY KEY,
19
+ branch TEXT NOT NULL,
20
+ status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'closed')),
21
+ workflow_type TEXT NOT NULL CHECK(workflow_type IN ('review', 'map')),
22
+ current_phase TEXT NOT NULL DEFAULT 'context',
23
+ phase_number INTEGER NOT NULL DEFAULT 1,
24
+ current_round INTEGER NOT NULL DEFAULT 1,
25
+ current_map_run INTEGER NOT NULL DEFAULT 1,
26
+ started_at TEXT NOT NULL DEFAULT (datetime('now')),
27
+ updated_at TEXT NOT NULL DEFAULT (datetime('now')),
28
+ session_dir TEXT NOT NULL
29
+ );
30
+
31
+ CREATE TABLE orchestration_events (
32
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
33
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
34
+ event_type TEXT NOT NULL,
35
+ phase TEXT,
36
+ phase_number INTEGER,
37
+ round INTEGER,
38
+ metadata TEXT,
39
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
40
+ );
41
+ CREATE INDEX idx_events_session ON orchestration_events(session_id);
42
+ CREATE INDEX idx_events_type ON orchestration_events(event_type);
43
+
44
+ -- Layer 2: Artifacts
45
+
46
+ CREATE TABLE review_rounds (
47
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
48
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
49
+ round_number INTEGER NOT NULL,
50
+ verdict TEXT,
51
+ blocker_count INTEGER DEFAULT 0,
52
+ suggestion_count INTEGER DEFAULT 0,
53
+ should_fix_count INTEGER DEFAULT 0,
54
+ final_md_path TEXT,
55
+ parsed_at TEXT,
56
+ UNIQUE(session_id, round_number)
57
+ );
58
+
59
+ CREATE TABLE reviewer_outputs (
60
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
61
+ round_id INTEGER NOT NULL REFERENCES review_rounds(id) ON DELETE CASCADE,
62
+ reviewer_type TEXT NOT NULL,
63
+ instance_number INTEGER NOT NULL DEFAULT 1,
64
+ file_path TEXT NOT NULL,
65
+ finding_count INTEGER DEFAULT 0,
66
+ parsed_at TEXT,
67
+ UNIQUE(round_id, reviewer_type, instance_number)
68
+ );
69
+
70
+ CREATE TABLE review_findings (
71
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
72
+ reviewer_output_id INTEGER NOT NULL REFERENCES reviewer_outputs(id) ON DELETE CASCADE,
73
+ title TEXT NOT NULL,
74
+ severity TEXT NOT NULL CHECK(severity IN ('critical', 'high', 'medium', 'low', 'info')),
75
+ file_path TEXT,
76
+ line_start INTEGER,
77
+ line_end INTEGER,
78
+ summary TEXT,
79
+ is_blocker INTEGER NOT NULL DEFAULT 0,
80
+ parsed_at TEXT
81
+ );
82
+ CREATE INDEX idx_findings_severity ON review_findings(severity);
83
+
84
+ CREATE TABLE markdown_artifacts (
85
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
86
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
87
+ artifact_type TEXT NOT NULL,
88
+ round_number INTEGER,
89
+ file_path TEXT NOT NULL,
90
+ content TEXT NOT NULL,
91
+ parsed_at TEXT NOT NULL DEFAULT (datetime('now')),
92
+ UNIQUE(session_id, artifact_type, round_number, file_path)
93
+ );
94
+
95
+ CREATE TABLE map_runs (
96
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
97
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
98
+ run_number INTEGER NOT NULL,
99
+ file_count INTEGER DEFAULT 0,
100
+ map_md_path TEXT,
101
+ parsed_at TEXT,
102
+ UNIQUE(session_id, run_number)
103
+ );
104
+
105
+ CREATE TABLE map_sections (
106
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
107
+ map_run_id INTEGER NOT NULL REFERENCES map_runs(id) ON DELETE CASCADE,
108
+ section_number INTEGER NOT NULL,
109
+ title TEXT NOT NULL,
110
+ description TEXT,
111
+ file_count INTEGER DEFAULT 0,
112
+ display_order INTEGER NOT NULL DEFAULT 0,
113
+ UNIQUE(map_run_id, section_number)
114
+ );
115
+
116
+ CREATE TABLE map_files (
117
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
118
+ section_id INTEGER NOT NULL REFERENCES map_sections(id) ON DELETE CASCADE,
119
+ file_path TEXT NOT NULL,
120
+ role TEXT,
121
+ lines_added INTEGER DEFAULT 0,
122
+ lines_deleted INTEGER DEFAULT 0,
123
+ display_order INTEGER NOT NULL DEFAULT 0,
124
+ UNIQUE(section_id, file_path)
125
+ );
126
+
127
+ -- Layer 3: User Interaction
128
+
129
+ CREATE TABLE user_file_progress (
130
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
131
+ map_file_id INTEGER NOT NULL REFERENCES map_files(id) ON DELETE CASCADE,
132
+ is_reviewed INTEGER NOT NULL DEFAULT 0,
133
+ reviewed_at TEXT,
134
+ UNIQUE(map_file_id)
135
+ );
136
+
137
+ CREATE TABLE user_finding_progress (
138
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
139
+ finding_id INTEGER NOT NULL REFERENCES review_findings(id) ON DELETE CASCADE,
140
+ status TEXT NOT NULL DEFAULT 'unread' CHECK(status IN ('unread', 'read', 'acknowledged', 'fixed', 'wont_fix')),
141
+ updated_at TEXT NOT NULL DEFAULT (datetime('now')),
142
+ UNIQUE(finding_id)
143
+ );
144
+
145
+ CREATE TABLE user_notes (
146
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
147
+ target_type TEXT NOT NULL CHECK(target_type IN ('session', 'round', 'finding', 'run', 'section', 'file')),
148
+ target_id TEXT NOT NULL,
149
+ content TEXT NOT NULL,
150
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
151
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
152
+ );
153
+
154
+ CREATE TABLE command_executions (
155
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
156
+ command TEXT NOT NULL,
157
+ args TEXT,
158
+ exit_code INTEGER,
159
+ started_at TEXT NOT NULL DEFAULT (datetime('now')),
160
+ finished_at TEXT,
161
+ output TEXT
162
+ );
163
+ `
164
+ },
165
+ {
166
+ version: 2,
167
+ description: "Add chat conversations, messages, and round progress tables",
168
+ sql: `
169
+ CREATE TABLE IF NOT EXISTS chat_conversations (
170
+ id TEXT PRIMARY KEY,
171
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
172
+ target_type TEXT NOT NULL CHECK(target_type IN ('map_run', 'review_round')),
173
+ target_id INTEGER NOT NULL,
174
+ claude_session_id TEXT,
175
+ status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'expired')),
176
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
177
+ last_active_at TEXT NOT NULL DEFAULT (datetime('now'))
178
+ );
179
+
180
+ CREATE TABLE IF NOT EXISTS chat_messages (
181
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
182
+ conversation_id TEXT NOT NULL REFERENCES chat_conversations(id) ON DELETE CASCADE,
183
+ role TEXT NOT NULL CHECK(role IN ('user', 'assistant')),
184
+ content TEXT NOT NULL,
185
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
186
+ );
187
+
188
+ CREATE TABLE IF NOT EXISTS user_round_progress (
189
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
190
+ round_id INTEGER NOT NULL REFERENCES review_rounds(id) ON DELETE CASCADE,
191
+ status TEXT NOT NULL DEFAULT 'needs_review'
192
+ CHECK(status IN ('needs_review', 'in_progress', 'changes_made', 'acknowledged', 'dismissed')),
193
+ updated_at TEXT NOT NULL DEFAULT (datetime('now')),
194
+ UNIQUE(round_id)
195
+ );
196
+ `
197
+ },
198
+ {
199
+ version: 3,
200
+ description: "Add PID tracking to command_executions for orphan process cleanup",
201
+ sql: `
202
+ ALTER TABLE command_executions ADD COLUMN pid INTEGER;
203
+ `
204
+ },
205
+ {
206
+ version: 4,
207
+ description: "Add is_detached flag to command_executions for process group kill strategy",
208
+ sql: `
209
+ ALTER TABLE command_executions ADD COLUMN is_detached INTEGER NOT NULL DEFAULT 0;
210
+ `
211
+ },
212
+ {
213
+ version: 5,
214
+ description: "Change orchestration_events FK to RESTRICT to protect audit trail",
215
+ sql: `
216
+ CREATE TABLE orchestration_events_new (
217
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
218
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE RESTRICT,
219
+ event_type TEXT NOT NULL,
220
+ phase TEXT,
221
+ phase_number INTEGER,
222
+ round INTEGER,
223
+ metadata TEXT,
224
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
225
+ );
226
+ INSERT INTO orchestration_events_new SELECT * FROM orchestration_events;
227
+ DROP TABLE orchestration_events;
228
+ ALTER TABLE orchestration_events_new RENAME TO orchestration_events;
229
+ CREATE INDEX idx_events_session ON orchestration_events(session_id);
230
+ CREATE INDEX idx_events_type ON orchestration_events(event_type);
231
+ `
232
+ },
233
+ {
234
+ version: 6,
235
+ description: "Add orchestrator-first columns to review_rounds for round-meta.json support",
236
+ sql: `
237
+ ALTER TABLE review_rounds ADD COLUMN source TEXT DEFAULT NULL;
238
+ ALTER TABLE review_rounds ADD COLUMN reviewer_count INTEGER DEFAULT 0;
239
+ ALTER TABLE review_rounds ADD COLUMN total_finding_count INTEGER DEFAULT 0;
240
+ `
241
+ },
242
+ {
243
+ version: 7,
244
+ description: "Add category column to review_findings for blocker/should_fix/suggestion classification",
245
+ sql: `
246
+ ALTER TABLE review_findings ADD COLUMN category TEXT DEFAULT NULL;
247
+ `
248
+ },
249
+ {
250
+ version: 8,
251
+ description: "Add orchestrator-first columns to map_runs for map-meta.json support",
252
+ sql: `
253
+ ALTER TABLE map_runs ADD COLUMN source TEXT DEFAULT NULL;
254
+ ALTER TABLE map_runs ADD COLUMN section_count INTEGER DEFAULT 0;
255
+ `
256
+ }
257
+ ];
258
+ function ensureSchemaVersionTable(db) {
259
+ db.run(`
260
+ CREATE TABLE IF NOT EXISTS schema_version (
261
+ version INTEGER PRIMARY KEY,
262
+ applied_at TEXT NOT NULL DEFAULT (datetime('now')),
263
+ description TEXT NOT NULL
264
+ );
265
+ `);
266
+ }
267
+ function getCurrentVersion(db) {
268
+ const result = db.exec(
269
+ "SELECT MAX(version) as v FROM schema_version"
270
+ );
271
+ if (result.length === 0 || result[0]?.values.length === 0) {
272
+ return 0;
273
+ }
274
+ const val = result[0]?.values[0]?.[0];
275
+ return typeof val === "number" ? val : 0;
276
+ }
277
+ function runMigrations(db) {
278
+ ensureSchemaVersionTable(db);
279
+ const currentVersion = getCurrentVersion(db);
280
+ for (const migration of MIGRATIONS) {
281
+ if (migration.version <= currentVersion) {
282
+ continue;
283
+ }
284
+ db.run("BEGIN TRANSACTION;");
285
+ try {
286
+ db.run(migration.sql);
287
+ db.run(
288
+ "INSERT INTO schema_version (version, description) VALUES (?, ?);",
289
+ [migration.version, migration.description]
290
+ );
291
+ db.run("COMMIT;");
292
+ } catch (error) {
293
+ db.run("ROLLBACK;");
294
+ throw error;
295
+ }
296
+ }
297
+ }
298
+
299
+ // src/lib/db/result-mapper.ts
300
+ function resultToRows(result) {
301
+ if (result.length === 0 || !result[0]) {
302
+ return [];
303
+ }
304
+ const { columns, values } = result[0];
305
+ return values.map((row) => {
306
+ const obj = {};
307
+ for (let i = 0; i < columns.length; i++) {
308
+ obj[columns[i]] = row[i];
309
+ }
310
+ return obj;
311
+ });
312
+ }
313
+ function resultToRow(result) {
314
+ const rows = resultToRows(result);
315
+ return rows[0];
316
+ }
317
+
318
+ // src/lib/db/queries.ts
319
+ function insertSession(db, params) {
320
+ const {
321
+ id,
322
+ branch,
323
+ workflow_type,
324
+ current_phase = "context",
325
+ phase_number = 1,
326
+ current_round = 1,
327
+ current_map_run = 1,
328
+ session_dir
329
+ } = params;
330
+ db.run(
331
+ `INSERT INTO sessions (id, branch, workflow_type, current_phase, phase_number, current_round, current_map_run, session_dir)
332
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
333
+ [id, branch, workflow_type, current_phase, phase_number, current_round, current_map_run, session_dir]
334
+ );
335
+ }
336
+ function updateSession(db, id, params) {
337
+ const setClauses = [];
338
+ const values = [];
339
+ if (params.status !== void 0) {
340
+ setClauses.push("status = ?");
341
+ values.push(params.status);
342
+ }
343
+ if (params.current_phase !== void 0) {
344
+ setClauses.push("current_phase = ?");
345
+ values.push(params.current_phase);
346
+ }
347
+ if (params.phase_number !== void 0) {
348
+ setClauses.push("phase_number = ?");
349
+ values.push(params.phase_number);
350
+ }
351
+ if (params.current_round !== void 0) {
352
+ setClauses.push("current_round = ?");
353
+ values.push(params.current_round);
354
+ }
355
+ if (params.current_map_run !== void 0) {
356
+ setClauses.push("current_map_run = ?");
357
+ values.push(params.current_map_run);
358
+ }
359
+ if (setClauses.length === 0) {
360
+ return;
361
+ }
362
+ setClauses.push("updated_at = datetime('now')");
363
+ values.push(id);
364
+ db.run(
365
+ `UPDATE sessions SET ${setClauses.join(", ")} WHERE id = ?`,
366
+ values
367
+ );
368
+ }
369
+ function getSession(db, id) {
370
+ return resultToRow(
371
+ db.exec("SELECT * FROM sessions WHERE id = ?", [id])
372
+ );
373
+ }
374
+ function getLatestActiveSession(db) {
375
+ return resultToRow(
376
+ db.exec(
377
+ "SELECT * FROM sessions WHERE status = 'active' ORDER BY started_at DESC LIMIT 1"
378
+ )
379
+ );
380
+ }
381
+ function getAllSessions(db) {
382
+ return resultToRows(
383
+ db.exec("SELECT * FROM sessions ORDER BY started_at DESC")
384
+ );
385
+ }
386
+ function insertEvent(db, params) {
387
+ const {
388
+ session_id,
389
+ event_type,
390
+ phase,
391
+ phase_number,
392
+ round,
393
+ metadata
394
+ } = params;
395
+ db.run(
396
+ `INSERT INTO orchestration_events (session_id, event_type, phase, phase_number, round, metadata)
397
+ VALUES (?, ?, ?, ?, ?, ?)`,
398
+ [
399
+ session_id,
400
+ event_type,
401
+ phase ?? null,
402
+ phase_number ?? null,
403
+ round ?? null,
404
+ metadata ?? null
405
+ ]
406
+ );
407
+ }
408
+ function getEventsForSession(db, sessionId) {
409
+ return resultToRows(
410
+ db.exec(
411
+ "SELECT * FROM orchestration_events WHERE session_id = ? ORDER BY id ASC",
412
+ [sessionId]
413
+ )
414
+ );
415
+ }
416
+ function getLatestEventId(db) {
417
+ const result = db.exec(
418
+ "SELECT MAX(id) FROM orchestration_events"
419
+ );
420
+ if (result.length === 0 || result[0]?.values.length === 0) {
421
+ return 0;
422
+ }
423
+ const val = result[0]?.values[0]?.[0];
424
+ return typeof val === "number" ? val : 0;
425
+ }
426
+
427
+ // src/lib/db/index.ts
428
+ var connections = /* @__PURE__ */ new Map();
429
+ function locateWasm() {
430
+ const require2 = createRequire(import.meta.url);
431
+ const sqlJsPath = require2.resolve("sql.js");
432
+ return join(dirname(sqlJsPath), "sql-wasm.wasm");
433
+ }
434
+ function applyPragmas(db) {
435
+ db.run("PRAGMA foreign_keys = ON;");
436
+ db.run("PRAGMA journal_mode = WAL;");
437
+ db.run("PRAGMA busy_timeout = 5000;");
438
+ }
439
+ async function openDatabase(dbPath) {
440
+ const cached = connections.get(dbPath);
441
+ if (cached) {
442
+ return cached;
443
+ }
444
+ const wasmBuffer = readFileSync(locateWasm());
445
+ const wasmBinary = wasmBuffer.buffer.slice(
446
+ wasmBuffer.byteOffset,
447
+ wasmBuffer.byteOffset + wasmBuffer.byteLength
448
+ );
449
+ const SQL = await initSqlJs({
450
+ wasmBinary
451
+ });
452
+ let db;
453
+ if (existsSync(dbPath)) {
454
+ const fileBuffer = readFileSync(dbPath);
455
+ db = new SQL.Database(fileBuffer);
456
+ } else {
457
+ db = new SQL.Database();
458
+ }
459
+ applyPragmas(db);
460
+ connections.set(dbPath, db);
461
+ return db;
462
+ }
463
+ function saveDatabase(db, dbPath) {
464
+ const data = db.export();
465
+ const dir = dirname(dbPath);
466
+ if (!existsSync(dir)) {
467
+ mkdirSync(dir, { recursive: true });
468
+ }
469
+ const tmpPath = dbPath + ".tmp";
470
+ writeFileSync(tmpPath, Buffer.from(data));
471
+ renameSync(tmpPath, dbPath);
472
+ }
473
+ async function getDb(ocrDir) {
474
+ const dbPath = join(ocrDir, "data", "ocr.db");
475
+ return openDatabase(dbPath);
476
+ }
477
+ async function ensureDatabase(ocrDir) {
478
+ const dataDir = join(ocrDir, "data");
479
+ if (!existsSync(dataDir)) {
480
+ mkdirSync(dataDir, { recursive: true });
481
+ }
482
+ const dbPath = join(dataDir, "ocr.db");
483
+ const db = await openDatabase(dbPath);
484
+ runMigrations(db);
485
+ saveDatabase(db, dbPath);
486
+ return db;
487
+ }
488
+ function closeDatabase(dbPath) {
489
+ const db = connections.get(dbPath);
490
+ if (db) {
491
+ db.close();
492
+ connections.delete(dbPath);
493
+ }
494
+ }
495
+ function closeAllDatabases() {
496
+ for (const [path, db] of connections) {
497
+ db.close();
498
+ connections.delete(path);
499
+ }
500
+ }
501
+ export {
502
+ MIGRATIONS,
503
+ applyPragmas,
504
+ closeAllDatabases,
505
+ closeDatabase,
506
+ ensureDatabase,
507
+ getAllSessions,
508
+ getDb,
509
+ getEventsForSession,
510
+ getLatestActiveSession,
511
+ getLatestEventId,
512
+ getSession,
513
+ insertEvent,
514
+ insertSession,
515
+ locateWasm,
516
+ openDatabase,
517
+ resultToRow,
518
+ resultToRows,
519
+ runMigrations,
520
+ saveDatabase,
521
+ updateSession
522
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-code-review/cli",
3
- "version": "1.5.1",
3
+ "version": "1.6.0",
4
4
  "description": "CLI for Open Code Review - Multi-environment setup and progress tracking",
5
5
  "type": "module",
6
6
  "bin": {
@@ -50,7 +50,7 @@
50
50
  "ora": "^8.1.1",
51
51
  "socket.io": "^4.8",
52
52
  "sql.js": "^1.14.1",
53
- "@open-code-review/agents": "1.5.1"
53
+ "@open-code-review/agents": "1.6.0"
54
54
  },
55
55
  "publishConfig": {
56
56
  "access": "public"
@@ -1 +0,0 @@
1
- import{ap as o,aq as n}from"./mermaid-renderer-cx-n1jFM.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-DhEGFGWs.js";import{_ as i}from"./mermaid-renderer-cx-n1jFM.js";import"./chunk-FMBD7UC4-D0QLOjiy.js";import"./chunk-55IACEB6-FI7g4AjR.js";import"./chunk-QN33PNHL-WkfgpbLo.js";import"./index-icxlpW-l.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-DhEGFGWs.js";import{_ as i}from"./mermaid-renderer-cx-n1jFM.js";import"./chunk-FMBD7UC4-D0QLOjiy.js";import"./chunk-55IACEB6-FI7g4AjR.js";import"./chunk-QN33PNHL-WkfgpbLo.js";import"./index-icxlpW-l.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./_baseUniq-L_sxIO0r.js";var e=4;function a(o){return r(o,e)}export{a as c};
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-blue-50:oklch(97% .014 254.604);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-950:oklch(25.7% .09 281.288);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--radius:.5rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{border-color:#e4e4e7}.dark *,.dark :before,.dark :after{border-color:#27272a}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}:focus-visible{outline-offset:2px;outline:2px solid oklch(62.3% .214 259.815)}.dark :focus-visible{outline-color:oklch(70.7% .165 254.624)}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.right-0{right:calc(var(--spacing) * 0)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-4{right:calc(var(--spacing) * 4)}.-left-1{left:calc(var(--spacing) * -1)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-full{left:100%}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-6{margin-inline:calc(var(--spacing) * 6)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[300px\]{max-height:300px}.max-h-\[600px\]{max-height:600px}.min-h-\[120px\]{min-height:120px}.min-h-\[200px\]{min-height:200px}.min-h-\[400px\]{min-height:400px}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-28{width:calc(var(--spacing) * 28)}.w-56{width:calc(var(--spacing) * 56)}.w-\[400px\]{width:400px}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[85\%\]{max-width:85%}.max-w-\[260px\]{max-width:260px}.max-w-\[320px\]{max-width:320px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[20px\]{min-width:20px}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.animate-bounce{animation:var(--animate-bounce)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-zinc-100>:not(:last-child)){border-color:var(--color-zinc-100)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:var(--radius)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/25{border-color:color-mix(in oklab,var(--color-amber-500) 25%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/25{border-color:#3080ff40}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/25{border-color:color-mix(in oklab,var(--color-blue-500) 25%,transparent)}}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/50{border-color:color-mix(in oklab,var(--color-blue-500) 50%,transparent)}}.border-emerald-300{border-color:var(--color-emerald-300)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/25{border-color:color-mix(in oklab,var(--color-emerald-500) 25%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-indigo-400\/40{border-color:#7d87ff66}@supports (color:color-mix(in lab,red,red)){.border-indigo-400\/40{border-color:color-mix(in oklab,var(--color-indigo-400) 40%,transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-orange-500\/25{border-color:#fe6e0040}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/25{border-color:color-mix(in oklab,var(--color-orange-500) 25%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.border-red-500\/25{border-color:color-mix(in oklab,var(--color-red-500) 25%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/25{border-color:#8d54ff40}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/25{border-color:color-mix(in oklab,var(--color-violet-500) 25%,transparent)}}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-300{border-color:var(--color-zinc-300)}.border-zinc-500\/25{border-color:#71717b40}@supports (color:color-mix(in lab,red,red)){.border-zinc-500\/25{border-color:color-mix(in oklab,var(--color-zinc-500) 25%,transparent)}}.border-zinc-700{border-color:var(--color-zinc-700)}.border-zinc-900{border-color:var(--color-zinc-900)}.border-l-amber-500{border-left-color:var(--color-amber-500)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-emerald-500{border-left-color:var(--color-emerald-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/5{background-color:color-mix(in oklab,var(--color-blue-500) 5%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/15{background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-400\/20{background-color:#00d29433}@supports (color:color-mix(in lab,red,red)){.bg-emerald-400\/20{background-color:color-mix(in oklab,var(--color-emerald-400) 20%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500) 5%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-400{background-color:var(--color-indigo-400)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\/20{background-color:#625fff33}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/20{background-color:color-mix(in oklab,var(--color-indigo-500) 20%,transparent)}}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-500\/15{background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/15{background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500) 10%,transparent)}}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/15{background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white) 95%,transparent)}}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-zinc-50\/50{background-color:#fafafa80}@supports (color:color-mix(in lab,red,red)){.bg-zinc-50\/50{background-color:color-mix(in oklab,var(--color-zinc-50) 50%,transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-300{background-color:var(--color-zinc-300)}.bg-zinc-400{background-color:var(--color-zinc-400)}.bg-zinc-500\/10{background-color:#71717b1a}@supports (color:color-mix(in lab,red,red)){.bg-zinc-500\/10{background-color:color-mix(in oklab,var(--color-zinc-500) 10%,transparent)}}.bg-zinc-500\/15{background-color:#71717b26}@supports (color:color-mix(in lab,red,red)){.bg-zinc-500\/15{background-color:color-mix(in oklab,var(--color-zinc-500) 15%,transparent)}}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-zinc-950{background-color:var(--color-zinc-950)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-11{padding-left:calc(var(--spacing) * 11)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400\/70{color:#7d87ffb3}@supports (color:color-mix(in lab,red,red)){.text-indigo-400\/70{color:color-mix(in oklab,var(--color-indigo-400) 70%,transparent)}}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-700{color:var(--color-orange-700)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-800{color:var(--color-zinc-800)}.text-zinc-900{color:var(--color-zinc-900)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-indigo-500\/10{--tw-shadow-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.shadow-indigo-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-indigo-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-indigo-200{--tw-ring-color:var(--color-indigo-200)}.ring-indigo-400\/60{--tw-ring-color:#7d87ff99}@supports (color:color-mix(in lab,red,red)){.ring-indigo-400\/60{--tw-ring-color:color-mix(in oklab, var(--color-indigo-400) 60%, transparent)}}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-300{transition-delay:.3s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.\[animation-delay\:0ms\]{animation-delay:0s}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}.ring-inset{--tw-ring-inset:inset}.group-focus-within\:block:is(:where(.group):focus-within *){display:block}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:text-blue-600:is(:where(.group):hover *){color:var(--color-blue-600)}.group-hover\:text-emerald-600:is(:where(.group):hover *){color:var(--color-emerald-600)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/brand\:opacity-100:is(:where(.group\/brand):hover *){opacity:1}}.placeholder\:text-zinc-400::placeholder{color:var(--color-zinc-400)}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:border-blue-300:hover{border-color:var(--color-blue-300)}.hover\:border-emerald-300:hover{border-color:var(--color-emerald-300)}.hover\:border-zinc-300:hover{border-color:var(--color-zinc-300)}.hover\:border-zinc-400:hover{border-color:var(--color-zinc-400)}.hover\:bg-blue-50\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-blue-50\/50:hover{background-color:color-mix(in oklab,var(--color-blue-50) 50%,transparent)}}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-50\/50:hover{background-color:#ecfdf580}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-50\/50:hover{background-color:color-mix(in oklab,var(--color-emerald-50) 50%,transparent)}}.hover\:bg-indigo-50:hover{background-color:var(--color-indigo-50)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-zinc-50:hover{background-color:var(--color-zinc-50)}.hover\:bg-zinc-100:hover{background-color:var(--color-zinc-100)}.hover\:bg-zinc-200:hover{background-color:var(--color-zinc-200)}.hover\:bg-zinc-800:hover{background-color:var(--color-zinc-800)}.hover\:text-blue-500:hover{color:var(--color-blue-500)}.hover\:text-indigo-500:hover{color:var(--color-indigo-500)}.hover\:text-indigo-600:hover{color:var(--color-indigo-600)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-zinc-600:hover{color:var(--color-zinc-600)}.hover\:text-zinc-700:hover{color:var(--color-zinc-700)}.hover\:text-zinc-800:hover{color:var(--color-zinc-800)}.hover\:text-zinc-900:hover{color:var(--color-zinc-900)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-blue-400:focus{border-color:var(--color-blue-400)}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-indigo-400:focus{border-color:var(--color-indigo-400)}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-emerald-500:focus{--tw-ring-color:var(--color-emerald-500)}.focus\:ring-indigo-400:focus{--tw-ring-color:var(--color-indigo-400)}.focus\:ring-indigo-400\/50:focus{--tw-ring-color:#7d87ff80}@supports (color:color-mix(in lab,red,red)){.focus\:ring-indigo-400\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-indigo-400) 50%, transparent)}}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}:where(.dark\:divide-zinc-800:is(.dark *)>:not(:last-child)){border-color:var(--color-zinc-800)}.dark\:border-amber-900\/50:is(.dark *){border-color:#7b330680}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-900\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-900) 50%,transparent)}}.dark\:border-emerald-700:is(.dark *){border-color:var(--color-emerald-700)}.dark\:border-red-800:is(.dark *){border-color:var(--color-red-800)}.dark\:border-red-900\/50:is(.dark *){border-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-900\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-red-900) 50%,transparent)}}.dark\:border-zinc-100:is(.dark *){border-color:var(--color-zinc-100)}.dark\:border-zinc-600:is(.dark *){border-color:var(--color-zinc-600)}.dark\:border-zinc-700:is(.dark *){border-color:var(--color-zinc-700)}.dark\:border-zinc-800:is(.dark *){border-color:var(--color-zinc-800)}.dark\:border-l-indigo-400:is(.dark *){border-left-color:var(--color-indigo-400)}.dark\:bg-amber-950\/30:is(.dark *){background-color:#4619014d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-950\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-950) 30%,transparent)}}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#004e3b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-900) 30%,transparent)}}.dark\:bg-indigo-950\/30:is(.dark *){background-color:#1e1a4d4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-950\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-indigo-950) 30%,transparent)}}.dark\:bg-red-900\/20:is(.dark *){background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900) 20%,transparent)}}.dark\:bg-red-950\/30:is(.dark *){background-color:#4608094d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-950\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-red-950) 30%,transparent)}}.dark\:bg-zinc-100:is(.dark *){background-color:var(--color-zinc-100)}.dark\:bg-zinc-500:is(.dark *){background-color:var(--color-zinc-500)}.dark\:bg-zinc-700:is(.dark *){background-color:var(--color-zinc-700)}.dark\:bg-zinc-800:is(.dark *){background-color:var(--color-zinc-800)}.dark\:bg-zinc-800\/50:is(.dark *){background-color:#27272a80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-800\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-zinc-800) 50%,transparent)}}.dark\:bg-zinc-900:is(.dark *){background-color:var(--color-zinc-900)}.dark\:bg-zinc-900\/50:is(.dark *){background-color:#18181b80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-900\/50:is(.dark *){background-color:color-mix(in oklab,var(--color-zinc-900) 50%,transparent)}}.dark\:bg-zinc-900\/95:is(.dark *){background-color:#18181bf2}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-900\/95:is(.dark *){background-color:color-mix(in oklab,var(--color-zinc-900) 95%,transparent)}}.dark\:bg-zinc-950:is(.dark *){background-color:var(--color-zinc-950)}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-indigo-400:is(.dark *){color:var(--color-indigo-400)}.dark\:text-orange-400:is(.dark *){color:var(--color-orange-400)}.dark\:text-red-300:is(.dark *){color:var(--color-red-300)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-violet-400:is(.dark *){color:var(--color-violet-400)}.dark\:text-zinc-100:is(.dark *){color:var(--color-zinc-100)}.dark\:text-zinc-200:is(.dark *){color:var(--color-zinc-200)}.dark\:text-zinc-300:is(.dark *){color:var(--color-zinc-300)}.dark\:text-zinc-400:is(.dark *){color:var(--color-zinc-400)}.dark\:text-zinc-500:is(.dark *){color:var(--color-zinc-500)}.dark\:text-zinc-600:is(.dark *){color:var(--color-zinc-600)}.dark\:text-zinc-700:is(.dark *){color:var(--color-zinc-700)}.dark\:text-zinc-900:is(.dark *){color:var(--color-zinc-900)}.dark\:ring-indigo-800:is(.dark *){--tw-ring-color:var(--color-indigo-800)}@media(hover:hover){.dark\:group-hover\:text-blue-400:is(.dark *):is(:where(.group):hover *){color:var(--color-blue-400)}.dark\:group-hover\:text-emerald-400:is(.dark *):is(:where(.group):hover *){color:var(--color-emerald-400)}}.dark\:placeholder\:text-zinc-500:is(.dark *)::placeholder{color:var(--color-zinc-500)}.dark\:placeholder\:text-zinc-600:is(.dark *)::placeholder{color:var(--color-zinc-600)}@media(hover:hover){.dark\:hover\:border-blue-700:is(.dark *):hover{border-color:var(--color-blue-700)}.dark\:hover\:border-emerald-700:is(.dark *):hover{border-color:var(--color-emerald-700)}.dark\:hover\:border-zinc-500:is(.dark *):hover{border-color:var(--color-zinc-500)}.dark\:hover\:border-zinc-600:is(.dark *):hover{border-color:var(--color-zinc-600)}.dark\:hover\:border-zinc-700:is(.dark *):hover{border-color:var(--color-zinc-700)}.dark\:hover\:bg-blue-950\/20:is(.dark *):hover{background-color:#16245633}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-blue-950\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-blue-950) 20%,transparent)}}.dark\:hover\:bg-emerald-950\/20:is(.dark *):hover{background-color:#002c2233}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-emerald-950\/20:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-emerald-950) 20%,transparent)}}.dark\:hover\:bg-indigo-500\/10:is(.dark *):hover{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-indigo-500\/10:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-indigo-500) 10%,transparent)}}.dark\:hover\:bg-red-950:is(.dark *):hover{background-color:var(--color-red-950)}.dark\:hover\:bg-zinc-200:is(.dark *):hover{background-color:var(--color-zinc-200)}.dark\:hover\:bg-zinc-700:is(.dark *):hover{background-color:var(--color-zinc-700)}.dark\:hover\:bg-zinc-800:is(.dark *):hover{background-color:var(--color-zinc-800)}.dark\:hover\:bg-zinc-800\/50:is(.dark *):hover{background-color:#27272a80}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-zinc-800\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-zinc-800) 50%,transparent)}}.dark\:hover\:bg-zinc-900:is(.dark *):hover{background-color:var(--color-zinc-900)}.dark\:hover\:text-blue-300:is(.dark *):hover{color:var(--color-blue-300)}.dark\:hover\:text-indigo-400:is(.dark *):hover{color:var(--color-indigo-400)}.dark\:hover\:text-red-400:is(.dark *):hover{color:var(--color-red-400)}.dark\:hover\:text-zinc-100:is(.dark *):hover{color:var(--color-zinc-100)}.dark\:hover\:text-zinc-200:is(.dark *):hover{color:var(--color-zinc-200)}.dark\:hover\:text-zinc-300:is(.dark *):hover{color:var(--color-zinc-300)}.dark\:hover\:text-zinc-400:is(.dark *):hover{color:var(--color-zinc-400)}}.\[\&_svg\]\:max-w-full svg{max-width:100%}}.hljs{color:#24292f}.hljs-comment,.hljs-quote{color:#6e7781;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-addition{color:#cf222e}.hljs-string,.hljs-attr,.hljs-meta .hljs-string{color:#0a3069}.hljs-number,.hljs-literal{color:#0550ae}.hljs-built_in,.hljs-type,.hljs-params{color:#953800}.hljs-title,.hljs-title.class_,.hljs-title.function_{color:#8250df}.hljs-symbol,.hljs-bullet{color:#0550ae}.hljs-variable,.hljs-template-variable{color:#953800}.hljs-section{color:#0550ae;font-weight:600}.hljs-selector-class,.hljs-selector-id{color:#6639ba}.hljs-name,.hljs-tag{color:#116329}.hljs-attr{color:#0550ae}.hljs-attribute{color:#0a3069}.hljs-regexp,.hljs-link{color:#0550ae}.hljs-deletion{color:#82071e;background-color:#ffebe9}.hljs-addition{color:#116329;background-color:#dafbe1}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}.dark .hljs{color:#e6edf3}.dark .hljs-comment,.dark .hljs-quote{color:#8b949e;font-style:italic}.dark .hljs-keyword,.dark .hljs-selector-tag{color:#ff7b72}.dark .hljs-string,.dark .hljs-attr,.dark .hljs-meta .hljs-string{color:#a5d6ff}.dark .hljs-number,.dark .hljs-literal{color:#79c0ff}.dark .hljs-built_in,.dark .hljs-type,.dark .hljs-params{color:#ffa657}.dark .hljs-title,.dark .hljs-title.class_,.dark .hljs-title.function_{color:#d2a8ff}.dark .hljs-symbol,.dark .hljs-bullet{color:#79c0ff}.dark .hljs-variable,.dark .hljs-template-variable{color:#ffa657}.dark .hljs-section{color:#79c0ff;font-weight:600}.dark .hljs-selector-class,.dark .hljs-selector-id{color:#d2a8ff}.dark .hljs-name,.dark .hljs-tag{color:#7ee787}.dark .hljs-attribute{color:#a5d6ff}.dark .hljs-regexp,.dark .hljs-link{color:#79c0ff}.dark .hljs-deletion{color:#ffdcd7;background-color:#67060c}.dark .hljs-addition{color:#aff5b4;background-color:#033a16}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}
@@ -1 +0,0 @@
1
- import{s as e,b as r,a,S as s}from"./chunk-DI55MBZ5-Da3-6ZE4.js";import{_ as i}from"./mermaid-renderer-cx-n1jFM.js";import"./chunk-55IACEB6-FI7g4AjR.js";import"./chunk-QN33PNHL-WkfgpbLo.js";import"./index-icxlpW-l.js";var p={parser:a,get db(){return new s(2)},renderer:r,styles:e,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{p as diagram};