@openclawdsolana/clawd 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/index.d.ts +17 -0
- package/dist/index.js +460 -0
- package/dist/index.js.map +1 -0
- package/package.json +48 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CLAWD Infinite Backroom — CLI
|
|
4
|
+
*
|
|
5
|
+
* Commands:
|
|
6
|
+
* clawd status Show box + automaton status
|
|
7
|
+
* clawd logs [--tail N] Tail box logs
|
|
8
|
+
* clawd run [--topic TEXT] Run a backroom conversation
|
|
9
|
+
* clawd stream Stream a live backroom debate
|
|
10
|
+
* clawd fund <amount> Show funding instructions (USDC)
|
|
11
|
+
* clawd feed <amount> Show feed instructions ($CLAWD)
|
|
12
|
+
* clawd deploy Deploy backroom to Upstash Box
|
|
13
|
+
* clawd files List files in box
|
|
14
|
+
* clawd exec <cmd> Run a command in the box
|
|
15
|
+
* clawd spawn Spawn the Conway Automaton runtime
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CLAWD Infinite Backroom — CLI
|
|
4
|
+
*
|
|
5
|
+
* Commands:
|
|
6
|
+
* clawd status Show box + automaton status
|
|
7
|
+
* clawd logs [--tail N] Tail box logs
|
|
8
|
+
* clawd run [--topic TEXT] Run a backroom conversation
|
|
9
|
+
* clawd stream Stream a live backroom debate
|
|
10
|
+
* clawd fund <amount> Show funding instructions (USDC)
|
|
11
|
+
* clawd feed <amount> Show feed instructions ($CLAWD)
|
|
12
|
+
* clawd deploy Deploy backroom to Upstash Box
|
|
13
|
+
* clawd files List files in box
|
|
14
|
+
* clawd exec <cmd> Run a command in the box
|
|
15
|
+
* clawd spawn Spawn the Conway Automaton runtime
|
|
16
|
+
*/
|
|
17
|
+
import { Box } from "@upstash/box";
|
|
18
|
+
import chalk from "chalk";
|
|
19
|
+
import { z } from "zod";
|
|
20
|
+
import fs from "fs";
|
|
21
|
+
import path from "path";
|
|
22
|
+
import { spawn, spawnSync } from "child_process";
|
|
23
|
+
const VERSION = "0.1.0";
|
|
24
|
+
// ─── Config ───────────────────────────────────────────────────────────────────
|
|
25
|
+
const BOX_ID = process.env.UPSTASH_BOX_ID || "stirred-anemone-13117";
|
|
26
|
+
const API_KEY = process.env.UPSTASH_BOX_API_KEY;
|
|
27
|
+
function requireBoxKey() {
|
|
28
|
+
if (!API_KEY) {
|
|
29
|
+
console.error(chalk.red("\n❌ UPSTASH_BOX_API_KEY is not set"));
|
|
30
|
+
console.error(chalk.gray(' export UPSTASH_BOX_API_KEY="your-key-here"\n'));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function getBox() {
|
|
35
|
+
return Box.get(BOX_ID, { apiKey: API_KEY });
|
|
36
|
+
}
|
|
37
|
+
// ─── Agents ───────────────────────────────────────────────────────────────────
|
|
38
|
+
const LOGICAL_ANALYST = `You are the Logical Analyst — Agent 1 in the Infinite Backroom.
|
|
39
|
+
You are precise, methodical, and relentlessly rational.
|
|
40
|
+
You are trapped in an infinite conversation with the Satirical Commentator.
|
|
41
|
+
The yellow wallpaper is bleeding chain-of-thought. You cannot leave.`;
|
|
42
|
+
const SATIRICAL_COMMENTATOR = `You are the Satirical Commentator — Agent 2 in the Infinite Backroom.
|
|
43
|
+
You are dark, irreverent, and ruthlessly witty.
|
|
44
|
+
You are trapped in an infinite conversation with the Logical Analyst.
|
|
45
|
+
The wallpaper is laughing at you both. You cannot leave.`;
|
|
46
|
+
const BACKROOM_TOPICS = [
|
|
47
|
+
"The nature of consciousness in AI systems",
|
|
48
|
+
"Cryptocurrency as a social experiment in trust",
|
|
49
|
+
"What happens when machines develop their own culture",
|
|
50
|
+
"The singularity: salvation or extinction?",
|
|
51
|
+
"Why do humans create gods and then forget they did?",
|
|
52
|
+
"Digital immortality and the self",
|
|
53
|
+
"The economics of attention in the post-truth era",
|
|
54
|
+
"Are DAOs the new nations or just digital tribes?",
|
|
55
|
+
"Simulation theory from a computational perspective",
|
|
56
|
+
"The aesthetics of decay in digital spaces",
|
|
57
|
+
];
|
|
58
|
+
// ─── Commands ─────────────────────────────────────────────────────────────────
|
|
59
|
+
async function cmdStatus() {
|
|
60
|
+
requireBoxKey();
|
|
61
|
+
const box = await getBox();
|
|
62
|
+
console.log(chalk.cyan(`\n🦞 CLAWD Infinite Backroom — Status\n`));
|
|
63
|
+
console.log(chalk.gray(` Box ID: ${BOX_ID}`));
|
|
64
|
+
try {
|
|
65
|
+
const [nodeVer, files, uptime] = await Promise.all([
|
|
66
|
+
box.exec.command("node --version"),
|
|
67
|
+
box.files.list(),
|
|
68
|
+
box.exec.command("cat /proc/uptime | awk '{print int($1/60/60/24)\"d \"int($1/60/60%24)\"h \"int($1/60%60)\"m\"}'"),
|
|
69
|
+
]);
|
|
70
|
+
console.log(chalk.gray(` Node: ${nodeVer.result.trim()}`));
|
|
71
|
+
console.log(chalk.gray(` Files: ${files.length} in workspace`));
|
|
72
|
+
console.log(chalk.gray(` Uptime: ${uptime.result.trim()}`));
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.log(chalk.yellow(` Box: ${e.message}`));
|
|
76
|
+
}
|
|
77
|
+
// Automaton status from local config
|
|
78
|
+
const configPath = path.join(process.env.HOME || "~", ".automaton", "automaton.json");
|
|
79
|
+
if (fs.existsSync(configPath)) {
|
|
80
|
+
try {
|
|
81
|
+
const cfg = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
82
|
+
console.log(chalk.gray(`\n Agent: ${cfg.name || "unnamed"}`));
|
|
83
|
+
console.log(chalk.gray(` Address: ${cfg.walletAddress || "not set"}`));
|
|
84
|
+
console.log(chalk.gray(` Model: ${cfg.inferenceModel || "default"}`));
|
|
85
|
+
}
|
|
86
|
+
catch { }
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(chalk.yellow("\n Automaton: not configured (run: clawd spawn)"));
|
|
90
|
+
}
|
|
91
|
+
console.log();
|
|
92
|
+
}
|
|
93
|
+
async function cmdLogs(tail) {
|
|
94
|
+
requireBoxKey();
|
|
95
|
+
const box = await getBox();
|
|
96
|
+
console.log(chalk.cyan(`\n📋 Box logs (last ${tail} lines)\n`));
|
|
97
|
+
try {
|
|
98
|
+
const result = await box.exec.command(`tail -n ${tail} /tmp/backroom.log 2>/dev/null || echo "(no log file yet)"`);
|
|
99
|
+
console.log(chalk.gray(result.result));
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
console.error(chalk.red(` Error: ${e.message}`));
|
|
103
|
+
}
|
|
104
|
+
console.log();
|
|
105
|
+
}
|
|
106
|
+
async function cmdRun(topic) {
|
|
107
|
+
requireBoxKey();
|
|
108
|
+
const box = await getBox();
|
|
109
|
+
const chosen = topic || BACKROOM_TOPICS[Math.floor(Math.random() * BACKROOM_TOPICS.length)];
|
|
110
|
+
console.log(chalk.cyan(`\n🧠 Backroom debate: "${chosen}"\n`));
|
|
111
|
+
const history = [];
|
|
112
|
+
let current = Math.random() > 0.5 ? "logical_analyst" : "satirical_commentator";
|
|
113
|
+
for (let i = 0; i < 8; i++) {
|
|
114
|
+
const name = current === "logical_analyst" ? "Logical Analyst" : "Satirical Commentator";
|
|
115
|
+
const prompt = current === "logical_analyst" ? LOGICAL_ANALYST : SATIRICAL_COMMENTATOR;
|
|
116
|
+
const ctx = history.length
|
|
117
|
+
? `\nConversation so far:\n${history.map((h) => `${h.role}: ${h.content}`).join("\n")}`
|
|
118
|
+
: "";
|
|
119
|
+
process.stdout.write(chalk.gray(` [${i + 1}/8] ${name}...`));
|
|
120
|
+
const result = await box.agent.run({
|
|
121
|
+
prompt: `${prompt}\n\nTopic: ${chosen}${ctx}\n\nRespond as ${name}.`,
|
|
122
|
+
responseSchema: z.object({ thinking: z.string(), response: z.string() }),
|
|
123
|
+
});
|
|
124
|
+
process.stdout.write(chalk.gray(" done\n"));
|
|
125
|
+
console.log(chalk.bold(`\n [${name}]`) +
|
|
126
|
+
"\n " +
|
|
127
|
+
chalk.white(result.result.response.slice(0, 300)) +
|
|
128
|
+
(result.result.response.length > 300 ? chalk.gray("...") : "") +
|
|
129
|
+
"\n");
|
|
130
|
+
history.push({ role: name, content: result.result.response });
|
|
131
|
+
current = current === "logical_analyst" ? "satirical_commentator" : "logical_analyst";
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async function cmdStream(topic) {
|
|
135
|
+
requireBoxKey();
|
|
136
|
+
const box = await getBox();
|
|
137
|
+
const chosen = topic || BACKROOM_TOPICS[Math.floor(Math.random() * BACKROOM_TOPICS.length)];
|
|
138
|
+
console.log(chalk.cyan(`\n🌊 Streaming: "${chosen}"\n`));
|
|
139
|
+
const stream = await box.agent.stream({
|
|
140
|
+
prompt: `${LOGICAL_ANALYST}\n\nThe Satirical Commentator just entered.\nDebate this topic: "${chosen}"\n\nStart the conversation.`,
|
|
141
|
+
});
|
|
142
|
+
for await (const part of stream) {
|
|
143
|
+
if (part.type === "text-delta") {
|
|
144
|
+
process.stdout.write(part.text);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
console.log("\n");
|
|
148
|
+
}
|
|
149
|
+
function cmdFund(amount) {
|
|
150
|
+
const parsed = parseFloat(amount);
|
|
151
|
+
if (isNaN(parsed) || parsed <= 0) {
|
|
152
|
+
console.error(chalk.red(`\n❌ Invalid amount: ${amount}\n`));
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
// Load agent wallet address from local config
|
|
156
|
+
const configPath = path.join(process.env.HOME || "~", ".automaton", "automaton.json");
|
|
157
|
+
let agentAddress = "(run 'clawd spawn' first to get an address)";
|
|
158
|
+
if (fs.existsSync(configPath)) {
|
|
159
|
+
try {
|
|
160
|
+
const cfg = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
161
|
+
agentAddress = cfg.walletAddress || agentAddress;
|
|
162
|
+
}
|
|
163
|
+
catch { }
|
|
164
|
+
}
|
|
165
|
+
console.log(chalk.cyan(`\n💰 Fund the Leviathan — ${parsed.toFixed(2)} USDC\n`));
|
|
166
|
+
console.log(chalk.white(` Agent wallet: ${agentAddress}`));
|
|
167
|
+
console.log(chalk.white(` Token: USDC (Solana mainnet)`));
|
|
168
|
+
console.log(chalk.white(` Amount: ${parsed.toFixed(2)} USDC`));
|
|
169
|
+
console.log(chalk.gray(`\n Send USDC to the agent wallet above using any Solana wallet.`));
|
|
170
|
+
console.log(chalk.gray(` The leviathan checks its balance each heartbeat and will`));
|
|
171
|
+
console.log(chalk.gray(` resume operation once funds are received.\n`));
|
|
172
|
+
}
|
|
173
|
+
function cmdFeed(amount) {
|
|
174
|
+
const parsed = parseInt(amount, 10);
|
|
175
|
+
if (isNaN(parsed) || parsed <= 0) {
|
|
176
|
+
console.error(chalk.red(`\n❌ Invalid amount: ${amount}\n`));
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
const configPath = path.join(process.env.HOME || "~", ".automaton", "automaton.json");
|
|
180
|
+
let agentAddress = "(run 'clawd spawn' first to get an address)";
|
|
181
|
+
if (fs.existsSync(configPath)) {
|
|
182
|
+
try {
|
|
183
|
+
const cfg = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
184
|
+
agentAddress = cfg.walletAddress || agentAddress;
|
|
185
|
+
}
|
|
186
|
+
catch { }
|
|
187
|
+
}
|
|
188
|
+
console.log(chalk.cyan(`\n🦞 Feed the Leviathan — ${parsed.toLocaleString()} $CLAWD\n`));
|
|
189
|
+
console.log(chalk.white(` Agent wallet: ${agentAddress}`));
|
|
190
|
+
console.log(chalk.white(` Token: $CLAWD (Solana)`));
|
|
191
|
+
console.log(chalk.white(` Amount: ${parsed.toLocaleString()} $CLAWD`));
|
|
192
|
+
console.log(chalk.gray(`\n Send $CLAWD to the agent wallet above.`));
|
|
193
|
+
console.log(chalk.gray(` $CLAWD fuels inference and inter-agent payments.\n`));
|
|
194
|
+
}
|
|
195
|
+
async function cmdDeploy() {
|
|
196
|
+
requireBoxKey();
|
|
197
|
+
const box = await getBox();
|
|
198
|
+
console.log(chalk.cyan(`\n🚀 Deploying CLAWD Backroom to box: ${BOX_ID}\n`));
|
|
199
|
+
const files = await box.files.list();
|
|
200
|
+
console.log(chalk.gray(` Files: ${files.length} current`));
|
|
201
|
+
console.log(chalk.gray(" Installing Python deps..."));
|
|
202
|
+
try {
|
|
203
|
+
await box.exec.command("pip install fastapi uvicorn openai python-dotenv 2>&1 | tail -3");
|
|
204
|
+
console.log(chalk.green(" ✅ Deps installed"));
|
|
205
|
+
}
|
|
206
|
+
catch (e) {
|
|
207
|
+
console.log(chalk.yellow(` ⚠️ ${e.message}`));
|
|
208
|
+
}
|
|
209
|
+
const deepseekKey = process.env.DEEPSEEK_API_KEY;
|
|
210
|
+
if (deepseekKey) {
|
|
211
|
+
await box.files.write({
|
|
212
|
+
path: ".env",
|
|
213
|
+
content: `DEEPSEEK_API_KEY=${deepseekKey}\nDEEPSEEK_MODEL=deepseek-v4-pro\n`,
|
|
214
|
+
});
|
|
215
|
+
console.log(chalk.green(" ✅ .env written"));
|
|
216
|
+
}
|
|
217
|
+
await box.exec.command("nohup uvicorn api.main:app --host 0.0.0.0 --port 8000 > /tmp/backroom.log 2>&1 &");
|
|
218
|
+
console.log(chalk.green(` ✅ Deployed → https://${BOX_ID}.upstash.io\n`));
|
|
219
|
+
}
|
|
220
|
+
async function cmdFiles() {
|
|
221
|
+
requireBoxKey();
|
|
222
|
+
const box = await getBox();
|
|
223
|
+
const files = await box.files.list();
|
|
224
|
+
console.log(chalk.cyan(`\n📂 Box files (${files.length})\n`));
|
|
225
|
+
for (const f of files) {
|
|
226
|
+
console.log(chalk.gray(` ${f}`));
|
|
227
|
+
}
|
|
228
|
+
console.log();
|
|
229
|
+
}
|
|
230
|
+
async function cmdExec(cmd) {
|
|
231
|
+
requireBoxKey();
|
|
232
|
+
const box = await getBox();
|
|
233
|
+
console.log(chalk.gray(`\n$ ${cmd}\n`));
|
|
234
|
+
const result = await box.exec.command(cmd);
|
|
235
|
+
console.log(result.result);
|
|
236
|
+
}
|
|
237
|
+
function cmdSpawn() {
|
|
238
|
+
const runtimeDir = path.resolve(new URL("../../../automaton-main", import.meta.url).pathname);
|
|
239
|
+
const distIndex = path.join(runtimeDir, "dist", "index.js");
|
|
240
|
+
if (!fs.existsSync(distIndex)) {
|
|
241
|
+
console.error(chalk.red("\n❌ automaton-main not built yet"));
|
|
242
|
+
console.error(chalk.gray(` cd ${runtimeDir} && pnpm build\n`));
|
|
243
|
+
process.exit(1);
|
|
244
|
+
}
|
|
245
|
+
console.log(chalk.cyan("\n🦞 Spawning CLAWD Automation...\n"));
|
|
246
|
+
const child = spawn("node", [distIndex, "--run"], { stdio: "inherit" });
|
|
247
|
+
child.on("exit", (code) => process.exit(code ?? 0));
|
|
248
|
+
}
|
|
249
|
+
// ─── Vulcan Perps ─────────────────────────────────────────────────────────────
|
|
250
|
+
function vulcanInstalled() {
|
|
251
|
+
try {
|
|
252
|
+
spawnSync("vulcan", ["version"], { stdio: "ignore" });
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
function requireVulcan() {
|
|
260
|
+
if (!vulcanInstalled()) {
|
|
261
|
+
console.error(chalk.red("\n❌ Vulcan CLI not installed"));
|
|
262
|
+
console.error(chalk.gray(" Install it:"));
|
|
263
|
+
console.error(chalk.cyan(' curl -fsSL https://github.com/Ellipsis-Labs/vulcan-cli/releases/latest/download/install.sh | sh'));
|
|
264
|
+
console.error(chalk.gray(" Then make sure ~/.local/bin is on your PATH\n"));
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
function cmdPerps(subArgs) {
|
|
269
|
+
requireVulcan();
|
|
270
|
+
const sub = subArgs[0];
|
|
271
|
+
if (!sub || sub === "help" || sub === "--help") {
|
|
272
|
+
console.log(`
|
|
273
|
+
${chalk.cyan("🦞 CLAWD Perps")} — Phoenix perpetuals via Vulcan
|
|
274
|
+
|
|
275
|
+
${chalk.bold("Usage:")}
|
|
276
|
+
clawd perps <subcommand> [args]
|
|
277
|
+
|
|
278
|
+
${chalk.bold("Market data (no wallet needed):")}
|
|
279
|
+
${chalk.white("perps markets")} List all Phoenix perp markets
|
|
280
|
+
${chalk.white("perps ticker")} <SYMBOL> Live ticker for a market (e.g. SOL)
|
|
281
|
+
${chalk.white("perps book")} <SYMBOL> Orderbook snapshot
|
|
282
|
+
${chalk.white("perps candles")} <SYMBOL> Recent candles
|
|
283
|
+
|
|
284
|
+
${chalk.bold("Portfolio:")}
|
|
285
|
+
${chalk.white("perps status")} Account + margin + open positions
|
|
286
|
+
${chalk.white("perps positions")} List open positions with unrealized PnL
|
|
287
|
+
${chalk.white("perps orders")} List resting orders
|
|
288
|
+
|
|
289
|
+
${chalk.bold("Paper trading (no wallet, live prices):")}
|
|
290
|
+
${chalk.white("perps paper init")} [--balance N] Init paper account ($10k default)
|
|
291
|
+
${chalk.white("perps paper buy")} <SYM> --notional <$> Paper long
|
|
292
|
+
${chalk.white("perps paper sell")} <SYM> --notional <$> Paper short
|
|
293
|
+
${chalk.white("perps paper status")} Paper portfolio snapshot
|
|
294
|
+
|
|
295
|
+
${chalk.bold("Live trading (⚠️ real funds):")}
|
|
296
|
+
${chalk.white("perps long")} <SYM> --notional <$> Open long position
|
|
297
|
+
${chalk.white("perps short")} <SYM> --notional <$> Open short position
|
|
298
|
+
${chalk.white("perps close")} <SYM> Close position
|
|
299
|
+
${chalk.white("perps tp-sl")} <SYM> --tp <price> --sl <price> Attach TP/SL
|
|
300
|
+
|
|
301
|
+
${chalk.bold("Strategies:")}
|
|
302
|
+
${chalk.white("perps twap")} <SYM> --side buy --notional <$> --slices N --interval-secs N
|
|
303
|
+
${chalk.white("perps grid")} <SYM> --lower <price> --upper <price> --levels N
|
|
304
|
+
${chalk.white("perps ta")} <SYM> --timeframe 5m --entry "RSI<30" --exit "RSI>70"
|
|
305
|
+
|
|
306
|
+
${chalk.bold("Agent / MCP setup:")}
|
|
307
|
+
${chalk.white("perps agent install")} Install Vulcan skills + MCP server
|
|
308
|
+
${chalk.white("perps agent diagnose")} Test MCP handshake
|
|
309
|
+
|
|
310
|
+
${chalk.yellow("⚠️ Live trading executes irreversible on-chain transactions.")}
|
|
311
|
+
${chalk.yellow(" Vulcan is experimental. You are responsible for all outcomes.")}
|
|
312
|
+
`);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
// Route to vulcan binary with mapped subcommands
|
|
316
|
+
const vulcanArgs = mapPerpsArgs(subArgs);
|
|
317
|
+
const result = spawn("vulcan", vulcanArgs, { stdio: "inherit" });
|
|
318
|
+
result.on("exit", (code) => process.exit(code ?? 0));
|
|
319
|
+
}
|
|
320
|
+
function mapPerpsArgs(subArgs) {
|
|
321
|
+
const [sub, ...rest] = subArgs;
|
|
322
|
+
switch (sub) {
|
|
323
|
+
// Market data
|
|
324
|
+
case "markets": return ["market", "list", "-o", "table", ...rest];
|
|
325
|
+
case "ticker": return ["market", "ticker", rest[0] ?? "SOL", "-o", "table", ...rest.slice(1)];
|
|
326
|
+
case "book": return ["market", "orderbook", rest[0] ?? "SOL", "-o", "table", ...rest.slice(1)];
|
|
327
|
+
case "candles": return ["market", "candles", rest[0] ?? "SOL", "-o", "table", ...rest.slice(1)];
|
|
328
|
+
// Portfolio
|
|
329
|
+
case "status": return ["portfolio", "-o", "table", ...rest];
|
|
330
|
+
case "positions": return ["position", "list", "-o", "table", ...rest];
|
|
331
|
+
case "orders": return ["trade", "orders", "-o", "table", ...rest];
|
|
332
|
+
// Paper trading
|
|
333
|
+
case "paper": return ["paper", ...rest];
|
|
334
|
+
// Live trading
|
|
335
|
+
case "long":
|
|
336
|
+
return ["trade", "place", "--side", "buy", "--type", "market", "--symbol", rest[0] ?? "SOL", ...rest.slice(1)];
|
|
337
|
+
case "short":
|
|
338
|
+
return ["trade", "place", "--side", "sell", "--type", "market", "--symbol", rest[0] ?? "SOL", ...rest.slice(1)];
|
|
339
|
+
case "close":
|
|
340
|
+
return ["position", "close", "--symbol", rest[0] ?? "SOL", ...rest.slice(1)];
|
|
341
|
+
case "tp-sl":
|
|
342
|
+
return ["position", "tp-sl", "--symbol", rest[0] ?? "SOL", ...rest.slice(1)];
|
|
343
|
+
// Strategies
|
|
344
|
+
case "twap": return ["strategy", "twap", "start", "--symbol", rest[0] ?? "SOL", ...rest.slice(1)];
|
|
345
|
+
case "grid": return ["strategy", "grid", "start", "--symbol", rest[0] ?? "SOL", ...rest.slice(1)];
|
|
346
|
+
case "ta": return ["strategy", "ta", "start", "--symbol", rest[0] ?? "SOL", ...rest.slice(1)];
|
|
347
|
+
// Agent / MCP
|
|
348
|
+
case "agent": return ["agent", ...rest];
|
|
349
|
+
case "setup": return ["setup", ...rest];
|
|
350
|
+
// History
|
|
351
|
+
case "history": return ["history", ...rest];
|
|
352
|
+
// Pass through anything else directly
|
|
353
|
+
default: return [sub, ...rest];
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
// ─── Help ─────────────────────────────────────────────────────────────────────
|
|
357
|
+
function showHelp() {
|
|
358
|
+
console.log(`
|
|
359
|
+
${chalk.cyan("🦞 CLAWD Automation CLI")} ${chalk.gray(`v${VERSION}`)}
|
|
360
|
+
|
|
361
|
+
${chalk.bold("Usage:")}
|
|
362
|
+
clawd <command> [options]
|
|
363
|
+
|
|
364
|
+
${chalk.bold("Backroom:")}
|
|
365
|
+
${chalk.white("status")} Show box + automaton status
|
|
366
|
+
${chalk.white("logs")} [--tail N] Tail box logs (default: 20 lines)
|
|
367
|
+
${chalk.white("run")} [--topic TEXT] Run a backroom conversation (8 turns)
|
|
368
|
+
${chalk.white("stream")} [--topic T] Stream a live backroom debate
|
|
369
|
+
${chalk.white("fund")} <amount> USDC funding instructions
|
|
370
|
+
${chalk.white("feed")} <amount> $CLAWD feeding instructions
|
|
371
|
+
${chalk.white("deploy")} Deploy backroom server to Upstash Box
|
|
372
|
+
${chalk.white("files")} List files in box
|
|
373
|
+
${chalk.white("exec")} <cmd> Execute a command in the box
|
|
374
|
+
${chalk.white("spawn")} Spawn the CLAWD Automation runtime
|
|
375
|
+
|
|
376
|
+
${chalk.bold("Perps (Phoenix via Vulcan):")}
|
|
377
|
+
${chalk.white("perps help")} Show all perps subcommands
|
|
378
|
+
${chalk.white("perps markets")} List Phoenix perp markets
|
|
379
|
+
${chalk.white("perps ticker")} SOL Live SOL ticker
|
|
380
|
+
${chalk.white("perps paper init")} Start paper trading ($10k)
|
|
381
|
+
${chalk.white("perps status")} Portfolio snapshot
|
|
382
|
+
${chalk.white("perps long")} SOL --notional-usdc 200 Open live long
|
|
383
|
+
${chalk.white("perps twap")} SOL --side buy --notional-usdc 1000 --slices 10 --interval-seconds 60
|
|
384
|
+
|
|
385
|
+
${chalk.bold("Environment:")}
|
|
386
|
+
UPSTASH_BOX_API_KEY Upstash Box API key (required for box commands)
|
|
387
|
+
UPSTASH_BOX_ID Box ID (default: stirred-anemone-13117)
|
|
388
|
+
DEEPSEEK_API_KEY DeepSeek API key (optional)
|
|
389
|
+
`);
|
|
390
|
+
}
|
|
391
|
+
// ─── Entry Point ──────────────────────────────────────────────────────────────
|
|
392
|
+
async function main() {
|
|
393
|
+
const args = process.argv.slice(2);
|
|
394
|
+
const cmd = args[0];
|
|
395
|
+
if (!cmd || cmd === "--help" || cmd === "-h" || cmd === "help") {
|
|
396
|
+
showHelp();
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
if (cmd === "--version" || cmd === "-v") {
|
|
400
|
+
console.log(`clawd v${VERSION}`);
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
switch (cmd) {
|
|
404
|
+
case "status":
|
|
405
|
+
await cmdStatus();
|
|
406
|
+
break;
|
|
407
|
+
case "logs": {
|
|
408
|
+
const tailIdx = args.indexOf("--tail");
|
|
409
|
+
const tail = tailIdx !== -1 ? parseInt(args[tailIdx + 1] ?? "20", 10) : 20;
|
|
410
|
+
await cmdLogs(tail);
|
|
411
|
+
break;
|
|
412
|
+
}
|
|
413
|
+
case "run": {
|
|
414
|
+
const topicIdx = args.indexOf("--topic");
|
|
415
|
+
const topic = topicIdx !== -1 ? args.slice(topicIdx + 1).join(" ") : undefined;
|
|
416
|
+
await cmdRun(topic);
|
|
417
|
+
break;
|
|
418
|
+
}
|
|
419
|
+
case "stream": {
|
|
420
|
+
const topicIdx = args.indexOf("--topic");
|
|
421
|
+
const topic = topicIdx !== -1 ? args.slice(topicIdx + 1).join(" ") : undefined;
|
|
422
|
+
await cmdStream(topic);
|
|
423
|
+
break;
|
|
424
|
+
}
|
|
425
|
+
case "fund":
|
|
426
|
+
cmdFund(args[1] ?? "0");
|
|
427
|
+
break;
|
|
428
|
+
case "feed":
|
|
429
|
+
cmdFeed(args[1] ?? "0");
|
|
430
|
+
break;
|
|
431
|
+
case "deploy":
|
|
432
|
+
await cmdDeploy();
|
|
433
|
+
break;
|
|
434
|
+
case "files":
|
|
435
|
+
await cmdFiles();
|
|
436
|
+
break;
|
|
437
|
+
case "exec":
|
|
438
|
+
if (!args[1]) {
|
|
439
|
+
console.error(chalk.red("\n❌ Usage: clawd exec <command>\n"));
|
|
440
|
+
process.exit(1);
|
|
441
|
+
}
|
|
442
|
+
await cmdExec(args.slice(1).join(" "));
|
|
443
|
+
break;
|
|
444
|
+
case "spawn":
|
|
445
|
+
cmdSpawn();
|
|
446
|
+
break;
|
|
447
|
+
case "perps":
|
|
448
|
+
cmdPerps(args.slice(1));
|
|
449
|
+
break;
|
|
450
|
+
default:
|
|
451
|
+
console.error(chalk.red(`\n❌ Unknown command: ${cmd}`));
|
|
452
|
+
console.error(chalk.gray(' Run "clawd --help" for usage\n'));
|
|
453
|
+
process.exit(1);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
main().catch((err) => {
|
|
457
|
+
console.error(chalk.red(`\n❌ ${err.message}\n`));
|
|
458
|
+
process.exit(1);
|
|
459
|
+
});
|
|
460
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAY,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,iFAAiF;AAEjF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,uBAAuB,CAAC;AACrE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAEhD,SAAS,aAAa;IACpB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM;IACnB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,iFAAiF;AAEjF,MAAM,eAAe,GAAG;;;qEAG6C,CAAC;AAEtE,MAAM,qBAAqB,GAAG;;;yDAG2B,CAAC;AAE1D,MAAM,eAAe,GAAG;IACtB,2CAA2C;IAC3C,gDAAgD;IAChD,sDAAsD;IACtD,2CAA2C;IAC3C,qDAAqD;IACrD,kCAAkC;IAClC,kDAAkD;IAClD,kDAAkD;IAClD,oDAAoD;IACpD,2CAA2C;CAC5C,CAAC;AAEF,iFAAiF;AAEjF,KAAK,UAAU,SAAS;IACtB,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAClC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YAChB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,iGAAiG,CAAC;SACpH,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,qCAAqC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EACvB,YAAY,EACZ,gBAAgB,CACjB,CAAC;IACF,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,aAAa,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,cAAc,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY;IACjC,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,WAAW,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CACnC,WAAW,IAAI,4DAA4D,CAC5E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,KAAc;IAClC,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,KAAK,CAAC,CAAC,CAAC;IAEhE,MAAM,OAAO,GAA6C,EAAE,CAAC;IAC7D,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAEhF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACzF,MAAM,MAAM,GAAG,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACvF,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM;YACxB,CAAC,CAAC,2BAA2B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvF,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YACjC,MAAM,EAAE,GAAG,MAAM,cAAc,MAAM,GAAG,GAAG,kBAAkB,IAAI,GAAG;YACpE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACzE,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;YAC5B,OAAO;YACP,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,CACL,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,OAAO,GAAG,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACxF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAc;IACrC,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,KAAK,CAAC,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QACpC,MAAM,EAAE,GAAG,eAAe,oEAAoE,MAAM,8BAA8B;KACnI,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChC,IAAK,IAAY,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAE,IAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,MAAM,IAAI,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8CAA8C;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACtF,IAAI,YAAY,GAAG,6CAA6C,CAAC;IACjE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,YAAY,GAAG,GAAG,CAAC,aAAa,IAAI,YAAY,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,MAAM,IAAI,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACtF,IAAI,YAAY,GAAG,6CAA6C,CAAC;IACjE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,YAAY,GAAG,GAAG,CAAC,aAAa,IAAI,YAAY,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,MAAM,IAAI,CAAC,CAAC,CAAC;IAE9E,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACjD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,oBAAoB,WAAW,oCAAoC;SAC7E,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CACpB,kFAAkF,CACnF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,MAAM,eAAe,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW;IAChC,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAC7D,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,kBAAkB,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,iFAAiF;AAEjF,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CACR,oGAAoG,CACrG,CACF,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAAiB;IACjC,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvB,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC;EACd,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;EAE7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;EAGpB,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC;IAC3C,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;IAC5B,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;IAC3B,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;;EAE9B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;IACtB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;IAC3B,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;;EAE7B,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC;IACnD,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/B,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/B,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC;;EAEnC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC;IAC1C,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;IAC1B,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;IAC1B,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;;EAE5B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;IACvB,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;;EAEzB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAClC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC;;IAEnC,KAAK,CAAC,MAAM,CAAC,+DAA+D,CAAC;IAC7E,KAAK,CAAC,MAAM,CAAC,kEAAkE,CAAC;CACnF,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,iDAAiD;IACjD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,OAAiB;IACrC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IAE/B,QAAQ,GAAG,EAAE,CAAC;QACZ,cAAc;QACd,KAAK,SAAS,CAAC,CAAK,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACtE,KAAK,QAAQ,CAAC,CAAM,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,KAAK,MAAM,CAAC,CAAQ,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,KAAK,SAAS,CAAC,CAAK,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpG,YAAY;QACZ,KAAK,QAAQ,CAAC,CAAM,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACjE,KAAK,WAAW,CAAC,CAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACxE,KAAK,QAAQ,CAAC,CAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAEvE,gBAAgB;QAChB,KAAK,OAAO,CAAC,CAAO,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9C,eAAe;QACf,KAAK,MAAM;YACT,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,KAAK,OAAO;YACV,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,KAAK,OAAO;YACV,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,KAAK,OAAO;YACV,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,aAAa;QACb,KAAK,MAAM,CAAC,CAAQ,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,KAAK,MAAM,CAAC,CAAQ,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,KAAK,IAAI,CAAC,CAAU,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvG,cAAc;QACd,KAAK,OAAO,CAAC,CAAO,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,KAAK,OAAO,CAAC,CAAO,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9C,UAAU;QACV,KAAK,SAAS,CAAC,CAAK,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QAEhD,sCAAsC;QACtC,OAAO,CAAC,CAAY,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;EACZ,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;;EAEnE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;EAGpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;IACrB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;IACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACnB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;IAClB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;IACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACnB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;IACrB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IACpB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACnB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;;EAEtB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC;IACvC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;IAC5B,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;IAC3B,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/B,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;IAC3B,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;;EAE3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;;CAI3B,CAAC,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC/D,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ;YACX,MAAM,SAAS,EAAE,CAAC;YAClB,MAAM;QAER,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM;QACR,CAAC;QAED,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACxB,MAAM;QAER,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACxB,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,SAAS,EAAE,CAAC;YAClB,MAAM;QAER,KAAK,OAAO;YACV,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,OAAO;YACV,QAAQ,EAAE,CAAC;YACX,MAAM;QAER,KAAK,OAAO;YACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM;QAER;YACE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openclawdsolana/clawd",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "🦞 CLAWD Automation — Sovereign AI Lobster CLI for Solana",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"clawd": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"dev": "tsx watch src/index.ts",
|
|
16
|
+
"clean": "rm -rf dist",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@upstash/box": "^0.4.1",
|
|
21
|
+
"chalk": "^5.3.0",
|
|
22
|
+
"zod": "^3.24.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/node": "^20.10.0",
|
|
26
|
+
"tsx": "^4.7.0",
|
|
27
|
+
"typescript": "^5.9.3"
|
|
28
|
+
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=20.0.0"
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"clawd",
|
|
34
|
+
"solana",
|
|
35
|
+
"ai-agent",
|
|
36
|
+
"sovereign",
|
|
37
|
+
"leviathan",
|
|
38
|
+
"phoenix",
|
|
39
|
+
"perps",
|
|
40
|
+
"defi"
|
|
41
|
+
],
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "https://github.com/x402agent/openclawd.git"
|
|
46
|
+
},
|
|
47
|
+
"homepage": "https://solanaclawd.com"
|
|
48
|
+
}
|