open-coleslaw 0.3.2 → 0.5.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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Just type your prompt. Like coleslaw — it's already prepared, just scoop and eat.**
4
4
 
5
- Open Coleslaw is a multi-agent orchestrator plugin for Claude Code. It gives you an entire AI engineering team — architects, engineers, QA leads, product managers — that organizes itself, holds meetings, writes PRD-format minutes, and executes tasks.
5
+ Open Coleslaw is a multi-agent orchestrator plugin for Claude Code. It gives you an entire AI engineering team — planner, architect, engineer, verifier, product manager, researcher — that organizes itself, runs real round-robin meetings, only ends a meeting when everyone actually agrees, and executes in MVP-sized cycles.
6
6
 
7
7
  Zero commands to memorize. Zero tools to call manually. Your AI team is already hired.
8
8
 
@@ -14,18 +14,21 @@ You type a prompt like *"Build me a balance game app"*. That's it.
14
14
  You: "Build me a balance game app"
15
15
 
16
16
  → Orchestrator dispatched (Agent tool)
17
- Convenes Architecture + Engineering + Product leaders
18
- Leaders hold a structured meeting
19
- PRD meeting minutes saved to docs/open-coleslaw/
20
- Plan Mode activated you review the implementation plan
21
- You approve
22
- Implementer agents write the code
23
- Results reported
17
+ Kickoff meeting: planner breaks it into ordered MVPs
18
+ For each MVP:
19
+ Design meeting: round-robin, consensus-based termination
20
+ PRD meeting minutes saved to docs/open-coleslaw/
21
+ Plan Mode activated — you review the implementation plan
22
+ You approve
23
+ Workers write the code in parallel
24
+ → Verifier runs tests/build
25
+ → Pass → next MVP · Fail → verify-retry meeting
26
+ → All MVPs done → final report
24
27
  ```
25
28
 
26
29
  You never call a tool. You never pick a department. You never manage an agent. The orchestrator handles everything — including entering **Plan Mode** so you can review the implementation plan in the native UI before any code is written.
27
30
 
28
- Meeting minutes are saved to `docs/open-coleslaw/` in your project, so you can always refer back to past decisions.
31
+ Meeting minutes are saved to `docs/open-coleslaw/` in your project, so they persist even if you `/compact` or `/clear` your Claude Code context between MVPs.
29
32
 
30
33
  ## Installation
31
34
 
@@ -46,105 +49,123 @@ Start a new session and type anything:
46
49
  Design a REST API for a todo app
47
50
  ```
48
51
 
49
- You should see the orchestrator agent being dispatched and a meeting starting automatically.
52
+ You should see the orchestrator agent being dispatched and a kickoff meeting starting automatically.
50
53
 
51
54
  ## The Pipeline
52
55
 
53
- Every request follows this flow. No exceptions.
56
+ Every request follows this flow.
54
57
 
55
58
  ```
56
- Prompt → Orchestrator → Meeting → Minutes → Plan Mode → Approve → Implement
59
+ Prompt
60
+ → Orchestrator
61
+ → Kickoff meeting (planner breaks request into MVPs)
62
+ → for each MVP:
63
+ Design meeting → consensus → Minutes → Plan Mode → Approve → Workers → Verify
64
+ → Final report
57
65
  ```
58
66
 
59
- 1. **Orchestrator dispatched**analyzes your request, selects departments
60
- 2. **Meeting convened** — leaders discuss via Agent tool
61
- 3. **PRD minutes saved** — to `docs/open-coleslaw/` in your project
62
- 4. **Plan Mode activated** — implementation plan presented in native Plan Mode UI
63
- 5. **You review and approve** — or request changes (chains a follow-up meeting)
64
- 6. **Implementer agents dispatched** — write code following the approved plan
65
- 7. **Results reported** — final output delivered to you
67
+ Verification failure on an MVP doesn't abort the cycle it opens a focused `verify-retry` meeting and re-plans the fix.
66
68
 
67
- ## The Agent Hierarchy
69
+ When the whole cycle ends the orchestrator touches a marker file, and the `Stop` hook checks your context usage. If you're over ~30%, it suggests running `/compact` or `/clear` before the next task. Minutes on disk mean you lose nothing.
70
+
71
+ ## The Agent Cast
68
72
 
69
73
  ```
70
- ┌─────────────────┐
71
- │ Orchestrator │ ← Your proxy (NOT a CEO)
72
- (claude-opus) Decides, but asks you
73
- └────────┬────────┘ for important calls
74
- ┌───────────┼───────────┐
75
- ▼ ▼ ▼
76
- ┌─────────┐ ┌─────────┐ ┌─────────┐
77
- │ Arch │ │ Eng │ │ QA │ ← Leaders meet & discuss
78
- │ Leader │ │ Leader │ │ Leader │ Discuss via Agent tool
79
- └────┬────┘ └────┬────┘ └────┬────┘
80
- └───────────┼───────────┘
81
-
82
- ┌──────────────┐
83
- Implementer │ ← Writes code after plan approval
84
- └──────────────┘
74
+ ┌─────────────────┐
75
+ │ Orchestrator │ ← Your proxy
76
+ (claude-opus)
77
+ └────────┬────────┘
78
+
79
+ (Kickoff → per-MVP loop)
80
+
81
+ ┌─────────────┼─────────────────────────────┐
82
+ ▼ ▼ ▼ ▼
83
+ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
84
+ │ Planner │ │ Architect│ │ Engineer │ │ Verifier │ dynamically convened +
85
+ │(chair) │ │ │ │ │ │ │ product-manager / researcher
86
+ └─────────┘ └──────────┘ └──────────┘ └──────────┘
87
+
88
+ Plan Mode → User approves
89
+
90
+ ┌─────────────┼─────────────┐
91
+ ▼ ▼ ▼
92
+ ┌────────┐ ┌────────┐ ┌────────┐
93
+ │Worker 1│ │Worker 2│ │Worker N│ ← Parallel implementation
94
+ └────────┘ └────────┘ └────────┘
95
+
96
+ Verifier runs tests
97
+ / \
98
+ Pass Fail → verify-retry meeting
99
+
100
+ Next MVP (or done)
85
101
  ```
86
102
 
87
- **5 Departments**: Architecture, Engineering, QA, Product, Research
103
+ **7 Specialists**: Planner, Architect, Engineer, Verifier, Product Manager, Researcher, plus Worker (parallelized).
104
+
105
+ The **planner always attends** — they chair the meeting, run the round-robin, and drive consensus. Other specialists are convened dynamically based on the task.
106
+
107
+ ## Meetings That Actually End on Agreement
108
+
109
+ Rounds are not fixed. After every round the planner asks each participant AGREE or DISAGREE. The meeting only proceeds to synthesis when everyone agrees. If round 10 passes without consensus, the planner escalates via `@mention` for you to decide.
88
110
 
89
- Each leader autonomously decides how many workers to hire based on task complexity.
111
+ This is deliberately slower than a fixed-round meeting but each MVP ends with a real decision, not a paper one.
90
112
 
91
113
  ## What's Inside
92
114
 
93
- ### 16 MCP Tools (orchestrator calls these — you never do)
115
+ ### 15 MCP Tools (orchestrator calls these — you never do)
94
116
 
95
117
  | Tool | What It Does |
96
118
  |------|-------------|
97
- | `start-meeting` | Creates a meeting record, recommends departments |
98
- | `add-transcript` | Saves a leader's discussion input |
99
- | `generate-minutes` | Converts transcripts into PRD meeting minutes |
100
- | `get-meeting-status` | Checks meeting progress and agent states |
101
- | `get-minutes` | Retrieves PRD-format meeting minutes |
102
- | `compact-minutes` | Converts minutes into actionable tasks per department |
103
- | `execute-tasks` | Returns structured task list for implementer agents |
119
+ | `start-meeting` | Creates a meeting record (kickoff / design / verify-retry) |
120
+ | `add-transcript` | Saves a speaker's turn |
121
+ | `generate-minutes` | Writes PRD minutes from transcripts |
122
+ | `get-meeting-status` | Reads meeting progress |
123
+ | `get-minutes` | Retrieves full / summary / tasks-only minutes |
124
+ | `execute-tasks` | Returns the structured task list from minutes for worker dispatch |
104
125
  | `get-task-report` | Shows execution results per department |
105
- | `get-agent-tree` | Displays the full agent hierarchy |
106
- | `respond-to-mention` | Handles decisions the agents need from you |
107
- | `get-mentions` | Lists pending @mention decision points |
108
- | `cancel-meeting` | Stops a meeting and cascades to all workers |
126
+ | `get-agent-tree` | Displays the agent hierarchy (bookkeeping) |
127
+ | `respond-to-mention` | Resolves a pending decision escalated by an agent |
128
+ | `get-mentions` | Lists pending @mention decisions |
129
+ | `cancel-meeting` | Stops a meeting and cascades to workers |
109
130
  | `list-meetings` | Shows meeting history |
110
131
  | `create-capability` | Self-extends the plugin with new hooks/skills |
111
- | `get-cost-summary` | Tracks spending per agent, meeting, department |
112
- | `chain-meeting` | Links meetings — output of one feeds into the next |
132
+ | `get-cost-summary` | Tracks spend per agent/meeting/department |
133
+ | `chain-meeting` | Links meetings — previous minutes feed the next |
113
134
 
114
- ### 7 Agents (dispatched via Agent tool)
135
+ ### 8 Agents (dispatched via the Agent tool)
115
136
 
116
137
  | Agent | Role |
117
138
  |-------|------|
118
- | `orchestrator` | Your proxy — manages the full pipeline |
119
- | `arch-leader` | System design, API contracts, schemas |
120
- | `eng-leader` | Implementation feasibility, code quality |
121
- | `qa-leader` | Testing strategy, security, edge cases |
122
- | `pm-leader` | Requirements, user stories, prioritization |
123
- | `research-leader` | Codebase exploration, prior art |
124
- | `implementer` | Writes code after plan approval |
139
+ | `orchestrator` | Your proxy — manages the kickoff + per-MVP cycles |
140
+ | `planner` | Runs the meeting, chairs rounds, checks consensus, synthesises minutes |
141
+ | `architect` | System design, API contracts, schemas |
142
+ | `engineer` | Implementation feasibility, code quality |
143
+ | `verifier` | Testing strategy at design time; tests/build at verify time |
144
+ | `product-manager` | Requirements, user stories, prioritisation |
145
+ | `researcher` | Codebase exploration, prior art, library comparison |
146
+ | `worker` | Writes code (N workers in parallel) |
125
147
 
126
148
  ### 7 Skills
127
149
 
128
150
  | Skill | Purpose |
129
151
  |-------|---------|
130
- | `using-open-coleslaw` | Loaded at session start — ensures all requests go through the pipeline |
152
+ | `using-open-coleslaw` | Injected at session start — ensures all requests go through the pipeline |
131
153
  | `meeting` | Dispatches the orchestrator for the meeting → plan → implement flow |
132
154
  | `status` | Shows active meetings, agents, pending mentions |
133
- | `dashboard` | Opens the real-time Neon Ops Center |
155
+ | `dashboard` | Opens the real-time dashboard |
134
156
  | `mention` | Handles pending @mention decisions |
135
157
  | `agents` | Shows the agent hierarchy tree |
136
158
  | `minutes` | Browses past meeting minutes |
137
159
 
138
- ### Real-Time Dashboard
160
+ ### Real-Time Meeting Dashboard
139
161
 
140
- A cyberpunk-themed "Neon Ops Center" at `http://localhost:35143`:
162
+ A live meeting viewer at `http://localhost:35143`:
141
163
 
142
- - Live agent hierarchy with animated connections
143
- - Per-project tabs (multiple terminals multiple tabs)
144
- - Meeting progress tracking
145
- - Task delegation and completion flow
146
- - @mention alerts
147
- - Duplicate project names get auto-numbered: `project`, `project (1)`
164
+ - **Current meeting as a thread** — speakers post comments, consensus stances are shown inline
165
+ - **MVP progress panel** which MVPs are pending / in-progress / done
166
+ - **User comment box** — type a note straight into the meeting from the browser; the orchestrator picks it up at the next round boundary (file-queue routed to `docs/open-coleslaw/.pending-comments.jsonl`)
167
+ - **Terminal comments also work** — if you prompt Claude Code while a meeting is in progress, your prompt becomes a user turn in the thread
168
+ - Per-project tabs (multiple terminals → multiple tabs); duplicate names auto-number: `project`, `project (1)`
148
169
 
149
170
  ### Self-Extending
150
171
 
@@ -154,10 +175,10 @@ Ask for a workflow that doesn't exist yet, and the orchestrator creates it — n
154
175
 
155
176
  | Tier | Model | Role |
156
177
  |------|-------|------|
157
- | Orchestrator | claude-opus-4-6 (1M) | Full-picture routing, delegation, judgment |
158
- | Leader | claude-sonnet-4-6 | Meetings, technical decisions |
159
- | Worker | claude-sonnet-4-6 | Code, implementation |
160
- | Research Worker | claude-haiku-4-5 | Quick lookups, exploration |
178
+ | Orchestrator | claude-opus (1M context) | Full-picture routing, delegation, judgment |
179
+ | Leader (specialists) | claude-sonnet | Meetings, technical decisions |
180
+ | Worker | claude-sonnet | Code, implementation |
181
+ | Research Worker | claude-haiku | Quick lookups, exploration |
161
182
 
162
183
  ## Philosophy
163
184
 
@@ -168,10 +189,10 @@ Coleslaw is a side dish that's already made. You don't prepare it — you just e
168
189
  ### Key Decisions
169
190
 
170
191
  - **The Orchestrator is your proxy, not a CEO.** You are the decision-maker. The orchestrator acts on your behalf but escalates important choices via @mention.
171
- - **Meeting first, always.** Even "simple" requests go through the pipeline. If it's truly simple, the meeting will be fast.
172
- - **MVP cycles.** Work happens in loops: meeting develop verify (re-meet if needed).
173
- - **Rules survive context compaction.** The `using-open-coleslaw` skill is injected at every session start. The system never forgets how to behave.
174
- - **Agents check before they code.** Every agent analyzes the project's dependencies, existing code, and conventions before writing anything.
192
+ - **Kickoff first.** Every non-trivial request starts by breaking itself into ordered MVPs.
193
+ - **Consensus, not round count.** A meeting ends when everyone actually agrees (or you are asked to break a tie).
194
+ - **Minutes are the real artifact.** They survive `/compact` and `/clear` your Claude Code context is disposable.
195
+ - **Agents check before they code.** Every specialist reads the project's state before proposing anything.
175
196
 
176
197
  ## Development
177
198
 
@@ -184,7 +205,7 @@ npm run build
184
205
  # Run with mock agents (no Claude CLI needed)
185
206
  COLESLAW_MOCK=1 node dist/index.js
186
207
 
187
- # Run tests (218 tests)
208
+ # Run tests
188
209
  npm test
189
210
 
190
211
  # Type check
@@ -86,6 +86,17 @@ var MIGRATIONS = [
86
86
  event_type TEXT NOT NULL,
87
87
  payload TEXT NOT NULL,
88
88
  created_at INTEGER NOT NULL
89
+ )`,
90
+ `CREATE TABLE IF NOT EXISTS mvps (
91
+ id TEXT PRIMARY KEY,
92
+ kickoff_meeting_id TEXT NOT NULL,
93
+ title TEXT NOT NULL,
94
+ goal TEXT NOT NULL,
95
+ status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending', 'in-progress', 'done', 'blocked')),
96
+ order_index INTEGER NOT NULL,
97
+ design_meeting_id TEXT,
98
+ created_at INTEGER NOT NULL,
99
+ completed_at INTEGER
89
100
  )`
90
101
  ];
91
102
  function applyMigrations(database) {
@@ -132,4 +143,4 @@ export {
132
143
  getDb,
133
144
  closeDb
134
145
  };
135
- //# sourceMappingURL=chunk-GFILTXTU.js.map
146
+ //# sourceMappingURL=chunk-IQPO75GF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/storage/db.ts"],"sourcesContent":["import Database from 'better-sqlite3';\nimport type { Database as DatabaseType } from 'better-sqlite3';\nimport { mkdirSync, existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { homedir } from 'node:os';\n\nconst DB_DIR = join(homedir(), '.open-coleslaw');\nconst DB_PATH = join(DB_DIR, 'data.db');\n\nlet db: DatabaseType | null = null;\n\nconst MIGRATIONS: string[] = [\n `CREATE TABLE IF NOT EXISTS agents (\n id TEXT PRIMARY KEY,\n tier TEXT NOT NULL CHECK(tier IN ('orchestrator', 'leader', 'worker')),\n role TEXT NOT NULL,\n department TEXT NOT NULL,\n parent_id TEXT,\n meeting_id TEXT,\n status TEXT NOT NULL DEFAULT 'idle',\n current_task TEXT,\n session_id TEXT,\n spawned_at INTEGER NOT NULL,\n completed_at INTEGER,\n cost_usd REAL DEFAULT 0\n )`,\n\n `CREATE TABLE IF NOT EXISTS meetings (\n id TEXT PRIMARY KEY,\n topic TEXT NOT NULL,\n agenda TEXT NOT NULL,\n participant_ids TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n phase TEXT NOT NULL DEFAULT 'orchestrator-phase',\n started_at INTEGER,\n completed_at INTEGER,\n initiated_by TEXT NOT NULL\n )`,\n\n `CREATE TABLE IF NOT EXISTS transcript_entries (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n meeting_id TEXT NOT NULL,\n speaker_id TEXT NOT NULL,\n speaker_role TEXT NOT NULL,\n agenda_item_index INTEGER,\n round_number INTEGER,\n content TEXT NOT NULL,\n token_count INTEGER DEFAULT 0,\n created_at INTEGER NOT NULL\n )`,\n\n `CREATE TABLE IF NOT EXISTS minutes (\n id TEXT PRIMARY KEY,\n meeting_id TEXT NOT NULL UNIQUE,\n format TEXT NOT NULL DEFAULT 'prd',\n content TEXT NOT NULL,\n action_items TEXT NOT NULL DEFAULT '[]',\n created_at INTEGER NOT NULL\n )`,\n\n `CREATE TABLE IF NOT EXISTS workers (\n id TEXT PRIMARY KEY,\n leader_id TEXT NOT NULL,\n meeting_id TEXT NOT NULL,\n task_description TEXT NOT NULL,\n task_type TEXT,\n status TEXT NOT NULL DEFAULT 'pending',\n input_context TEXT,\n output_result TEXT,\n error_message TEXT,\n dependencies TEXT NOT NULL DEFAULT '[]',\n spawned_at INTEGER NOT NULL,\n completed_at INTEGER,\n cost_usd REAL DEFAULT 0\n )`,\n\n `CREATE TABLE IF NOT EXISTS mentions (\n id TEXT PRIMARY KEY,\n meeting_id TEXT NOT NULL,\n agenda_item TEXT,\n summary TEXT NOT NULL,\n options TEXT NOT NULL DEFAULT '[]',\n urgency TEXT NOT NULL DEFAULT 'advisory',\n status TEXT NOT NULL DEFAULT 'pending',\n user_decision TEXT,\n user_reasoning TEXT,\n created_at INTEGER NOT NULL,\n resolved_at INTEGER\n )`,\n\n `CREATE TABLE IF NOT EXISTS events (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n event_type TEXT NOT NULL,\n payload TEXT NOT NULL,\n created_at INTEGER NOT NULL\n )`,\n\n `CREATE TABLE IF NOT EXISTS mvps (\n id TEXT PRIMARY KEY,\n kickoff_meeting_id TEXT NOT NULL,\n title TEXT NOT NULL,\n goal TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending', 'in-progress', 'done', 'blocked')),\n order_index INTEGER NOT NULL,\n design_meeting_id TEXT,\n created_at INTEGER NOT NULL,\n completed_at INTEGER\n )`,\n];\n\nfunction applyMigrations(database: DatabaseType): void {\n database.exec(`\n CREATE TABLE IF NOT EXISTS _migrations (\n id INTEGER PRIMARY KEY,\n applied_at INTEGER NOT NULL\n )\n `);\n\n const applied = new Set(\n database\n .prepare('SELECT id FROM _migrations')\n .all()\n .map((row) => (row as { id: number }).id)\n );\n\n const applyMigration = database.transaction(() => {\n for (let i = 0; i < MIGRATIONS.length; i++) {\n if (!applied.has(i)) {\n database.exec(MIGRATIONS[i]);\n database\n .prepare('INSERT INTO _migrations (id, applied_at) VALUES (?, ?)')\n .run(i, Date.now());\n }\n }\n });\n\n applyMigration();\n}\n\nexport function getDb(): DatabaseType {\n if (db) {\n return db;\n }\n\n if (!existsSync(DB_DIR)) {\n mkdirSync(DB_DIR, { recursive: true });\n }\n\n db = new Database(DB_PATH);\n db.pragma('journal_mode = WAL');\n db.pragma('foreign_keys = ON');\n\n applyMigrations(db);\n\n return db;\n}\n\nexport function closeDb(): void {\n if (db) {\n db.close();\n db = null;\n }\n}\n"],"mappings":";;;AAAA,OAAO,cAAc;AAErB,SAAS,WAAW,kBAAkB;AACtC,SAAS,YAAY;AACrB,SAAS,eAAe;AAExB,IAAM,SAAS,KAAK,QAAQ,GAAG,gBAAgB;AAC/C,IAAM,UAAU,KAAK,QAAQ,SAAS;AAEtC,IAAI,KAA0B;AAE9B,IAAM,aAAuB;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWF;AAEA,SAAS,gBAAgB,UAA8B;AACrD,WAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,GAKb;AAED,QAAM,UAAU,IAAI;AAAA,IAClB,SACG,QAAQ,4BAA4B,EACpC,IAAI,EACJ,IAAI,CAAC,QAAS,IAAuB,EAAE;AAAA,EAC5C;AAEA,QAAM,iBAAiB,SAAS,YAAY,MAAM;AAChD,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,UAAI,CAAC,QAAQ,IAAI,CAAC,GAAG;AACnB,iBAAS,KAAK,WAAW,CAAC,CAAC;AAC3B,iBACG,QAAQ,wDAAwD,EAChE,IAAI,GAAG,KAAK,IAAI,CAAC;AAAA,MACtB;AAAA,IACF;AAAA,EACF,CAAC;AAED,iBAAe;AACjB;AAEO,SAAS,QAAsB;AACpC,MAAI,IAAI;AACN,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,WAAW,MAAM,GAAG;AACvB,cAAU,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EACvC;AAEA,OAAK,IAAI,SAAS,OAAO;AACzB,KAAG,OAAO,oBAAoB;AAC9B,KAAG,OAAO,mBAAmB;AAE7B,kBAAgB,EAAE;AAElB,SAAO;AACT;AAEO,SAAS,UAAgB;AAC9B,MAAI,IAAI;AACN,OAAG,MAAM;AACT,SAAK;AAAA,EACP;AACF;","names":[]}
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  closeDb,
4
4
  getDb
5
- } from "./chunk-GFILTXTU.js";
5
+ } from "./chunk-IQPO75GF.js";
6
6
  export {
7
7
  closeDb,
8
8
  getDb
9
9
  };
10
- //# sourceMappingURL=db-S2POLBQM.js.map
10
+ //# sourceMappingURL=db-62WVGYCE.js.map