@guyghost/swarm-dao-cli 0.1.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/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +416 -0
- package/dist/cli.js.map +1 -0
- package/package.json +45 -0
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA4XA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyDvF"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Swarm DAO — Standalone CLI
|
|
4
|
+
// ============================================================
|
|
5
|
+
import { promises as fs } from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { addVote, configureGitHub, createProposal, getAllAuditLog, getAuditLog, getDaoRoot, getOrCreateState, getProposal, getState, ghBranchNameFor, ghCreateBranch, ghCreatePullRequest, initializeAgents, initStorage, isGitHubEnabled, listProposals, loadState, PROPOSAL_TYPES, recordAudit, saveState, setState, } from "@guyghost/swarm-dao-core";
|
|
8
|
+
// ── Helpers ─────────────────────────────────────────────────
|
|
9
|
+
class CliError extends Error {
|
|
10
|
+
}
|
|
11
|
+
function err(msg) {
|
|
12
|
+
throw new CliError(msg);
|
|
13
|
+
}
|
|
14
|
+
function info(msg) {
|
|
15
|
+
process.stdout.write(`${msg}\n`);
|
|
16
|
+
}
|
|
17
|
+
function parseFlags(args) {
|
|
18
|
+
const flags = {};
|
|
19
|
+
const positional = [];
|
|
20
|
+
for (let i = 0; i < args.length; i++) {
|
|
21
|
+
const a = args[i];
|
|
22
|
+
if (a.startsWith("--")) {
|
|
23
|
+
const eq = a.indexOf("=");
|
|
24
|
+
if (eq !== -1) {
|
|
25
|
+
flags[a.slice(2, eq)] = a.slice(eq + 1);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const next = args[i + 1];
|
|
29
|
+
if (next !== undefined && !next.startsWith("--")) {
|
|
30
|
+
flags[a.slice(2)] = next;
|
|
31
|
+
i++;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
flags[a.slice(2)] = true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
positional.push(a);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { flags, positional };
|
|
43
|
+
}
|
|
44
|
+
async function ensureLoaded(cwd) {
|
|
45
|
+
const loaded = await loadState(cwd);
|
|
46
|
+
if (!loaded) {
|
|
47
|
+
setState(getOrCreateState(cwd));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// ── Commands ────────────────────────────────────────────────
|
|
51
|
+
const HELP = `swarm-dao — DAO governance CLI
|
|
52
|
+
|
|
53
|
+
Usage:
|
|
54
|
+
swarm-dao <command> [options]
|
|
55
|
+
|
|
56
|
+
Commands:
|
|
57
|
+
init Initialize .dao/ in current directory
|
|
58
|
+
setup Initialize DAO with default agents
|
|
59
|
+
propose --title <t> --type <T> --description <d> [--by <name>]
|
|
60
|
+
Create a new proposal
|
|
61
|
+
list [--status <s>] [--type <T>]
|
|
62
|
+
List proposals
|
|
63
|
+
show <id> Show full proposal details
|
|
64
|
+
vote <id> --position <for|against|abstain> --reasoning <text>
|
|
65
|
+
[--weight <n>] [--agent <name>]
|
|
66
|
+
Cast a deterministic vote
|
|
67
|
+
github-config --token <t> --owner <o> --repo <r>
|
|
68
|
+
Configure GitHub integration
|
|
69
|
+
github-branch <proposal-id> Create a branch for a proposal
|
|
70
|
+
github-pr <proposal-id> --head-branch <b>
|
|
71
|
+
Open a pull request for a proposal
|
|
72
|
+
config Print DAO configuration
|
|
73
|
+
audit [--proposal <id>] Print audit log
|
|
74
|
+
status Print DAO status summary
|
|
75
|
+
help Print this help
|
|
76
|
+
|
|
77
|
+
Proposal types: ${PROPOSAL_TYPES.join(", ")}
|
|
78
|
+
`;
|
|
79
|
+
async function cmdInit(cwd) {
|
|
80
|
+
const root = await initStorage(cwd);
|
|
81
|
+
setState(getOrCreateState(cwd));
|
|
82
|
+
await saveState();
|
|
83
|
+
info(`✓ DAO storage initialized at ${root}`);
|
|
84
|
+
}
|
|
85
|
+
async function cmdSetup(cwd) {
|
|
86
|
+
await ensureLoaded(cwd);
|
|
87
|
+
const state = getState();
|
|
88
|
+
if (state.initialized) {
|
|
89
|
+
info(`DAO already initialized with ${state.agents.length} agents.`);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const agents = initializeAgents();
|
|
93
|
+
state.agents = agents;
|
|
94
|
+
state.initialized = true;
|
|
95
|
+
await saveState();
|
|
96
|
+
info(`✓ DAO initialized with ${agents.length} agents`);
|
|
97
|
+
for (const a of agents) {
|
|
98
|
+
info(` - ${a.name} (w=${a.weight}) — ${a.role}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async function cmdPropose(cwd, flags) {
|
|
102
|
+
const title = typeof flags.title === "string" ? flags.title : "";
|
|
103
|
+
const type = typeof flags.type === "string" ? flags.type : "";
|
|
104
|
+
const description = typeof flags.description === "string" ? flags.description : "";
|
|
105
|
+
const by = typeof flags.by === "string" ? flags.by : "cli";
|
|
106
|
+
if (!title)
|
|
107
|
+
err("--title is required");
|
|
108
|
+
if (!type)
|
|
109
|
+
err("--type is required");
|
|
110
|
+
if (!description)
|
|
111
|
+
err("--description is required");
|
|
112
|
+
if (!PROPOSAL_TYPES.includes(type)) {
|
|
113
|
+
err(`invalid --type '${type}'. Allowed: ${PROPOSAL_TYPES.join(", ")}`);
|
|
114
|
+
}
|
|
115
|
+
await ensureLoaded(cwd);
|
|
116
|
+
const p = await createProposal(title, type, description, by);
|
|
117
|
+
await recordAudit(p.id, "governance", "proposal-created", by, `via cli: ${title}`);
|
|
118
|
+
await saveState();
|
|
119
|
+
info(`✓ Proposal #${p.id} created (${p.status})`);
|
|
120
|
+
info(` ${p.title} | ${p.type}`);
|
|
121
|
+
}
|
|
122
|
+
async function cmdList(cwd, flags) {
|
|
123
|
+
await ensureLoaded(cwd);
|
|
124
|
+
let items = listProposals();
|
|
125
|
+
if (typeof flags.status === "string") {
|
|
126
|
+
items = items.filter((p) => p.status === flags.status);
|
|
127
|
+
}
|
|
128
|
+
if (typeof flags.type === "string") {
|
|
129
|
+
items = items.filter((p) => p.type === flags.type);
|
|
130
|
+
}
|
|
131
|
+
if (items.length === 0) {
|
|
132
|
+
info("(no proposals)");
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
for (const p of items) {
|
|
136
|
+
const risk = p.riskZone ? ` [${p.riskZone}]` : "";
|
|
137
|
+
info(`#${String(p.id).padStart(3)} [${p.status.padEnd(12)}] ${p.type.padEnd(18)}${risk} ${p.title}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async function cmdShow(cwd, positional) {
|
|
141
|
+
const idStr = positional[0];
|
|
142
|
+
if (!idStr)
|
|
143
|
+
err("usage: swarm-dao show <id>");
|
|
144
|
+
const id = Number(idStr);
|
|
145
|
+
if (!Number.isInteger(id))
|
|
146
|
+
err(`invalid id '${idStr}'`);
|
|
147
|
+
await ensureLoaded(cwd);
|
|
148
|
+
const p = getProposal(id);
|
|
149
|
+
if (!p)
|
|
150
|
+
err(`proposal #${id} not found`);
|
|
151
|
+
info(`Proposal #${p.id}: ${p.title}`);
|
|
152
|
+
info(` type: ${p.type}`);
|
|
153
|
+
info(` status: ${p.status}`);
|
|
154
|
+
info(` proposedBy: ${p.proposedBy}`);
|
|
155
|
+
info(` riskZone: ${p.riskZone ?? "(none)"}`);
|
|
156
|
+
info(` createdAt: ${p.createdAt}`);
|
|
157
|
+
if (p.resolvedAt)
|
|
158
|
+
info(` resolvedAt: ${p.resolvedAt}`);
|
|
159
|
+
info("");
|
|
160
|
+
info("description:");
|
|
161
|
+
info(` ${p.description.replace(/\n/g, "\n ")}`);
|
|
162
|
+
if (p.problemStatement) {
|
|
163
|
+
info("");
|
|
164
|
+
info("problem statement:");
|
|
165
|
+
info(` ${p.problemStatement.replace(/\n/g, "\n ")}`);
|
|
166
|
+
}
|
|
167
|
+
if (Array.isArray(p.acceptanceCriteria) && p.acceptanceCriteria.length > 0) {
|
|
168
|
+
info("");
|
|
169
|
+
info("acceptance criteria:");
|
|
170
|
+
for (const ac of p.acceptanceCriteria) {
|
|
171
|
+
info(` - ${typeof ac === "string" ? ac : ac.id}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (p.votes.length) {
|
|
175
|
+
info("");
|
|
176
|
+
info(`votes (${p.votes.length}):`);
|
|
177
|
+
for (const v of p.votes) {
|
|
178
|
+
info(` - ${v.agentName.padEnd(20)} ${v.position.padEnd(8)} (w=${v.weight})`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async function cmdConfig(cwd) {
|
|
183
|
+
await ensureLoaded(cwd);
|
|
184
|
+
info(JSON.stringify(getState().config, null, 2));
|
|
185
|
+
}
|
|
186
|
+
async function cmdAudit(cwd, flags) {
|
|
187
|
+
await ensureLoaded(cwd);
|
|
188
|
+
const entries = typeof flags.proposal === "string" ? getAuditLog(Number(flags.proposal)) : getAllAuditLog();
|
|
189
|
+
if (entries.length === 0) {
|
|
190
|
+
info("(no audit entries)");
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
for (const e of entries) {
|
|
194
|
+
info(`[${e.timestamp}] #${e.proposalId} ${e.layer.padEnd(12)} ${e.action.padEnd(20)} by ${e.actor}`);
|
|
195
|
+
if (e.details)
|
|
196
|
+
info(` ${e.details}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async function cmdStatus(cwd) {
|
|
200
|
+
await ensureLoaded(cwd);
|
|
201
|
+
const s = getState();
|
|
202
|
+
const byStatus = {};
|
|
203
|
+
for (const p of s.proposals) {
|
|
204
|
+
byStatus[p.status] = (byStatus[p.status] ?? 0) + 1;
|
|
205
|
+
}
|
|
206
|
+
info(`DAO root: ${s.daoRoot}`);
|
|
207
|
+
info(`initialized: ${s.initialized}`);
|
|
208
|
+
info(`agents: ${s.agents.length}`);
|
|
209
|
+
info(`proposals: ${s.proposals.length}`);
|
|
210
|
+
for (const [k, v] of Object.entries(byStatus)) {
|
|
211
|
+
info(` ${k.padEnd(14)} ${v}`);
|
|
212
|
+
}
|
|
213
|
+
info(`audit entries: ${s.auditLog.length}`);
|
|
214
|
+
info(`next proposal: #${s.nextProposalId}`);
|
|
215
|
+
}
|
|
216
|
+
const POSITION_MAP = {
|
|
217
|
+
approve: "for",
|
|
218
|
+
reject: "against",
|
|
219
|
+
for: "for",
|
|
220
|
+
against: "against",
|
|
221
|
+
abstain: "abstain",
|
|
222
|
+
};
|
|
223
|
+
async function cmdVote(cwd, positional, flags) {
|
|
224
|
+
const idStr = positional[0];
|
|
225
|
+
if (!idStr)
|
|
226
|
+
err("usage: swarm-dao vote <id> --position <for|against|abstain> --reasoning <text>");
|
|
227
|
+
const id = Number(idStr);
|
|
228
|
+
if (!Number.isInteger(id))
|
|
229
|
+
err(`invalid proposal id '${idStr}'`);
|
|
230
|
+
const positionRaw = typeof flags.position === "string" ? flags.position : "";
|
|
231
|
+
if (!positionRaw)
|
|
232
|
+
err("--position is required");
|
|
233
|
+
const position = POSITION_MAP[positionRaw];
|
|
234
|
+
if (!position)
|
|
235
|
+
err(`invalid --position '${positionRaw}'`);
|
|
236
|
+
const reasoning = typeof flags.reasoning === "string" ? flags.reasoning : "";
|
|
237
|
+
if (!reasoning)
|
|
238
|
+
err("--reasoning is required");
|
|
239
|
+
const weight = typeof flags.weight === "string" ? Number(flags.weight) : 1;
|
|
240
|
+
const agent = typeof flags.agent === "string" ? flags.agent : "cli-user";
|
|
241
|
+
await ensureLoaded(cwd);
|
|
242
|
+
const p = getProposal(id);
|
|
243
|
+
if (!p)
|
|
244
|
+
err(`proposal #${id} not found`);
|
|
245
|
+
await addVote(id, { agentId: agent, agentName: agent, position, reasoning, weight });
|
|
246
|
+
await recordAudit(id, "governance", "vote-cast", agent, `${position} (w=${weight}): ${reasoning}`);
|
|
247
|
+
await saveState();
|
|
248
|
+
info(`✓ Vote recorded for #${id}: ${positionRaw} by ${agent}`);
|
|
249
|
+
}
|
|
250
|
+
async function cmdGithubConfig(cwd, flags) {
|
|
251
|
+
const token = typeof flags.token === "string" ? flags.token : "";
|
|
252
|
+
const owner = typeof flags.owner === "string" ? flags.owner : "";
|
|
253
|
+
const repo = typeof flags.repo === "string" ? flags.repo : "";
|
|
254
|
+
if (!token)
|
|
255
|
+
err("--token is required");
|
|
256
|
+
if (!owner)
|
|
257
|
+
err("--owner is required");
|
|
258
|
+
if (!repo)
|
|
259
|
+
err("--repo is required");
|
|
260
|
+
const githubConfig = { token, owner, repo, enabled: true };
|
|
261
|
+
// Persist to .dao/config.json
|
|
262
|
+
const daoRoot = getDaoRoot(cwd);
|
|
263
|
+
await fs.mkdir(daoRoot, { recursive: true });
|
|
264
|
+
const configPath = path.join(daoRoot, "config.json");
|
|
265
|
+
let configData = {};
|
|
266
|
+
try {
|
|
267
|
+
configData = JSON.parse(await fs.readFile(configPath, "utf-8"));
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
/* no existing config */
|
|
271
|
+
}
|
|
272
|
+
configData.github = githubConfig;
|
|
273
|
+
await fs.writeFile(configPath, JSON.stringify(configData, null, 2), "utf-8");
|
|
274
|
+
// Also configure in-memory for current process
|
|
275
|
+
configureGitHub(githubConfig);
|
|
276
|
+
info(`✓ GitHub config set: ${owner}/${repo}`);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Read GitHub config from .dao/config.json and configure the in-memory module.
|
|
280
|
+
* Returns true if GitHub is configured, false otherwise.
|
|
281
|
+
*/
|
|
282
|
+
async function loadGitHubConfigFromStorage(cwd) {
|
|
283
|
+
const daoRoot = getDaoRoot(cwd);
|
|
284
|
+
const configPath = path.join(daoRoot, "config.json");
|
|
285
|
+
try {
|
|
286
|
+
const configData = JSON.parse(await fs.readFile(configPath, "utf-8"));
|
|
287
|
+
const github = configData.github;
|
|
288
|
+
if (github?.token && github?.owner && github?.repo) {
|
|
289
|
+
configureGitHub({ ...github, enabled: true });
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
/* no config file */
|
|
295
|
+
}
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
async function cmdGithubBranch(cwd, positional) {
|
|
299
|
+
const idStr = positional[0];
|
|
300
|
+
if (!idStr)
|
|
301
|
+
err("usage: swarm-dao github-branch <proposal-id>");
|
|
302
|
+
const id = Number(idStr);
|
|
303
|
+
if (!Number.isInteger(id))
|
|
304
|
+
err(`invalid proposal id '${idStr}'`);
|
|
305
|
+
await ensureLoaded(cwd);
|
|
306
|
+
const p = getProposal(id);
|
|
307
|
+
if (!p)
|
|
308
|
+
err(`proposal #${id} not found`);
|
|
309
|
+
const configured = await loadGitHubConfigFromStorage(cwd);
|
|
310
|
+
if (!configured || !isGitHubEnabled()) {
|
|
311
|
+
err("GitHub not configured. Run: swarm-dao github-config --token <t> --owner <o> --repo <r>");
|
|
312
|
+
}
|
|
313
|
+
const branchName = ghBranchNameFor(p);
|
|
314
|
+
const result = await ghCreateBranch(branchName);
|
|
315
|
+
if (!result)
|
|
316
|
+
err("failed to create branch (GitHub API returned null)");
|
|
317
|
+
info(`✓ Branch created: ${branchName} (sha: ${result.sha.slice(0, 7)})`);
|
|
318
|
+
}
|
|
319
|
+
async function cmdGithubPr(cwd, positional, flags) {
|
|
320
|
+
const idStr = positional[0];
|
|
321
|
+
if (!idStr)
|
|
322
|
+
err("usage: swarm-dao github-pr <proposal-id> --head-branch <b>");
|
|
323
|
+
const id = Number(idStr);
|
|
324
|
+
if (!Number.isInteger(id))
|
|
325
|
+
err(`invalid proposal id '${idStr}'`);
|
|
326
|
+
const headBranch = typeof flags["head-branch"] === "string" ? flags["head-branch"] : "";
|
|
327
|
+
if (!headBranch)
|
|
328
|
+
err("--head-branch is required");
|
|
329
|
+
await ensureLoaded(cwd);
|
|
330
|
+
const p = getProposal(id);
|
|
331
|
+
if (!p)
|
|
332
|
+
err(`proposal #${id} not found`);
|
|
333
|
+
const configured = await loadGitHubConfigFromStorage(cwd);
|
|
334
|
+
if (!configured || !isGitHubEnabled()) {
|
|
335
|
+
err("GitHub not configured. Run: swarm-dao github-config --token <t> --owner <o> --repo <r>");
|
|
336
|
+
}
|
|
337
|
+
const result = await ghCreatePullRequest(p, { headBranch });
|
|
338
|
+
if (!result)
|
|
339
|
+
err("failed to create PR (GitHub API returned null)");
|
|
340
|
+
info(`✓ PR created: #${result.number} — ${result.url}`);
|
|
341
|
+
}
|
|
342
|
+
// ── Entry Point ─────────────────────────────────────────────
|
|
343
|
+
export async function main(argv, cwd = process.cwd()) {
|
|
344
|
+
const [cmd, ...rest] = argv;
|
|
345
|
+
const { flags, positional } = parseFlags(rest);
|
|
346
|
+
try {
|
|
347
|
+
switch (cmd) {
|
|
348
|
+
case undefined:
|
|
349
|
+
case "help":
|
|
350
|
+
case "--help":
|
|
351
|
+
case "-h":
|
|
352
|
+
process.stdout.write(HELP);
|
|
353
|
+
return 0;
|
|
354
|
+
case "init":
|
|
355
|
+
await cmdInit(cwd);
|
|
356
|
+
return 0;
|
|
357
|
+
case "setup":
|
|
358
|
+
await cmdSetup(cwd);
|
|
359
|
+
return 0;
|
|
360
|
+
case "propose":
|
|
361
|
+
await cmdPropose(cwd, flags);
|
|
362
|
+
return 0;
|
|
363
|
+
case "list":
|
|
364
|
+
await cmdList(cwd, flags);
|
|
365
|
+
return 0;
|
|
366
|
+
case "show":
|
|
367
|
+
await cmdShow(cwd, positional);
|
|
368
|
+
return 0;
|
|
369
|
+
case "config":
|
|
370
|
+
await cmdConfig(cwd);
|
|
371
|
+
return 0;
|
|
372
|
+
case "audit":
|
|
373
|
+
await cmdAudit(cwd, flags);
|
|
374
|
+
return 0;
|
|
375
|
+
case "status":
|
|
376
|
+
await cmdStatus(cwd);
|
|
377
|
+
return 0;
|
|
378
|
+
case "vote":
|
|
379
|
+
await cmdVote(cwd, positional, flags);
|
|
380
|
+
return 0;
|
|
381
|
+
case "github-config":
|
|
382
|
+
await cmdGithubConfig(cwd, flags);
|
|
383
|
+
return 0;
|
|
384
|
+
case "github-branch":
|
|
385
|
+
await cmdGithubBranch(cwd, positional);
|
|
386
|
+
return 0;
|
|
387
|
+
case "github-pr":
|
|
388
|
+
await cmdGithubPr(cwd, positional, flags);
|
|
389
|
+
return 0;
|
|
390
|
+
default:
|
|
391
|
+
process.stderr.write(`unknown command: ${cmd}\n\n${HELP}`);
|
|
392
|
+
return 1;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
catch (e) {
|
|
396
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
397
|
+
process.stderr.write(`error: ${message}\n`);
|
|
398
|
+
return 1;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
// Run when invoked directly
|
|
402
|
+
const isDirect = (() => {
|
|
403
|
+
try {
|
|
404
|
+
const entry = process.argv[1];
|
|
405
|
+
if (!entry)
|
|
406
|
+
return false;
|
|
407
|
+
return entry.endsWith("cli.ts") || entry.endsWith("cli.js") || entry.endsWith("/swarm-dao");
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
return false;
|
|
411
|
+
}
|
|
412
|
+
})();
|
|
413
|
+
if (isDirect) {
|
|
414
|
+
main(process.argv.slice(2)).then((code) => process.exit(code));
|
|
415
|
+
}
|
|
416
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,+DAA+D;AAC/D,6BAA6B;AAC7B,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,OAAO,EACP,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,SAAS,EACT,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAElC,+DAA+D;AAE/D,MAAM,QAAS,SAAQ,KAAK;CAAG;AAC/B,SAAS,GAAG,CAAC,GAAW;IACtB,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AACD,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAC5B,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACd,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBACzB,CAAC,EAAE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,+DAA+D;AAE/D,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BK,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;CAC1C,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,GAAW;IAChC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,SAAS,EAAE,CAAC;IAClB,IAAI,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW;IACjC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC,gCAAgC,KAAK,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,SAAS,EAAE,CAAC;IAClB,IAAI,CAAC,0BAA0B,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,KAAoC;IACzE,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAE3D,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI;QAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW;QAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACnD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAoB,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,mBAAmB,IAAI,eAAe,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,EAAE,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC;IACnF,MAAM,SAAS,EAAE,CAAC;IAClB,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,KAAoC;IACtE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,UAAoB;IACtD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAAE,GAAG,CAAC,eAAe,KAAK,GAAG,CAAC,CAAC;IAExD,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,UAAU;QAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,cAAc,CAAC,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,KAAoC;IACvE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IAC5G,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAC5B,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,qBAAqB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,YAAY,GAAiC;IACjD,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,UAAoB,EAAE,KAAoC;IAC5F,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAClG,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAAE,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;IAEjE,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,IAAI,CAAC,WAAW;QAAE,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,GAAG,CAAC,uBAAuB,WAAW,GAAG,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,IAAI,CAAC,SAAS;QAAE,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IAEzE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,MAAM,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,QAAQ,OAAO,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IACnG,MAAM,SAAS,EAAE,CAAC;IAClB,IAAI,CAAC,wBAAwB,EAAE,KAAK,WAAW,OAAO,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,KAAoC;IAC9E,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9D,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI;QAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAErC,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE3D,8BAA8B;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,IAAI,UAAU,GAA4B,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAE7E,+CAA+C;IAC/C,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAI,CAAC,wBAAwB,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,2BAA2B,CAAC,GAAW;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACnD,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,UAAoB;IAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAAE,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;IAEjE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACtC,GAAG,CAAC,wFAAwF,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAEvE,IAAI,CAAC,qBAAqB,UAAU,UAAU,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,UAAoB,EAAE,KAAoC;IAChG,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC9E,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAAE,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,IAAI,CAAC,UAAU;QAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAElD,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACtC,GAAG,CAAC,wFAAwF,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM;QAAE,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAEnE,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,+DAA+D;AAE/D,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACpE,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,CAAC;YACX,KAAK,OAAO;gBACV,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC;YACX,KAAK,SAAS;gBACZ,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC7B,OAAO,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC1B,OAAO,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBAC/B,OAAO,CAAC,CAAC;YACX,KAAK,QAAQ;gBACX,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,CAAC,CAAC;YACX,KAAK,OAAO;gBACV,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3B,OAAO,CAAC,CAAC;YACX,KAAK,QAAQ;gBACX,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBACtC,OAAO,CAAC,CAAC;YACX,KAAK,eAAe;gBAClB,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO,CAAC,CAAC;YACX,KAAK,eAAe;gBAClB,MAAM,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACvC,OAAO,CAAC,CAAC;YACX,KAAK,WAAW;gBACd,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC1C,OAAO,CAAC,CAAC;YACX;gBACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,IAAI,QAAQ,EAAE,CAAC;IACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@guyghost/swarm-dao-cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Swarm DAO standalone CLI",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/cli.js",
|
|
7
|
+
"types": "./dist/cli.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"bin": {
|
|
12
|
+
"swarm-dao": "./dist/cli.js"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/cli.d.ts",
|
|
17
|
+
"import": "./dist/cli.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc",
|
|
22
|
+
"test": "bun test",
|
|
23
|
+
"lint": "biome check .",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"prepublishOnly": "bun run build"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@guyghost/swarm-dao-core": "^0.1.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/bun": "latest"
|
|
32
|
+
},
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "git+https://github.com/guyghost/swarm-dao.git",
|
|
36
|
+
"directory": "packages/cli"
|
|
37
|
+
},
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/guyghost/swarm-dao/issues"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://github.com/guyghost/swarm-dao#readme",
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public"
|
|
44
|
+
}
|
|
45
|
+
}
|