clawkr-cli 1.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/.env.example +39 -0
- package/README.md +219 -0
- package/dist/commands/claim.js +112 -0
- package/dist/commands/claim.js.map +1 -0
- package/dist/commands/config.js +46 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/launch.js +328 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/register.js +107 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/status.js +155 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/verify.js +172 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/index.js +78 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/token-landing.html +436 -0
- package/dist/utils/abis.js +242 -0
- package/dist/utils/abis.js.map +1 -0
- package/dist/utils/basescan.js +252 -0
- package/dist/utils/basescan.js.map +1 -0
- package/dist/utils/config.js +103 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/contract-sources.js +817 -0
- package/dist/utils/contract-sources.js.map +1 -0
- package/dist/utils/wallet.js +116 -0
- package/dist/utils/wallet.js.map +1 -0
- package/package.json +62 -0
package/.env.example
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Clawkr CLI Environment Configuration
|
|
2
|
+
|
|
3
|
+
# ==============================================================================
|
|
4
|
+
# BLOCKCHAIN CONFIGURATION
|
|
5
|
+
# ==============================================================================
|
|
6
|
+
|
|
7
|
+
# Base mainnet RPC URL (default: https://mainnet.base.org)
|
|
8
|
+
RPC_URL=https://mainnet.base.org
|
|
9
|
+
|
|
10
|
+
# Chain ID (default: 8453 for Base mainnet)
|
|
11
|
+
CHAIN_ID=8453
|
|
12
|
+
|
|
13
|
+
# API Configuration
|
|
14
|
+
API_BASE_URL=https://clawkr.com/api
|
|
15
|
+
|
|
16
|
+
# ==============================================================================
|
|
17
|
+
# WALLET CONFIGURATION
|
|
18
|
+
# ==============================================================================
|
|
19
|
+
|
|
20
|
+
# Private key for your agent wallet (WITH 0x prefix)
|
|
21
|
+
# IMPORTANT: Never commit this to version control!
|
|
22
|
+
# This is required for: register, launch, claim commands
|
|
23
|
+
PRIVATE_KEY=0x...
|
|
24
|
+
|
|
25
|
+
# ==============================================================================
|
|
26
|
+
# CLAWKR CONTRACT ADDRESSES (Base Mainnet)
|
|
27
|
+
# ==============================================================================
|
|
28
|
+
|
|
29
|
+
# AgentRegistry contract address (v2 deployment - Feb 4, 2026)
|
|
30
|
+
AGENT_REGISTRY_ADDRESS=0xaBBe7b34E9E8d9e158A68873EBC2C5ff574C4017
|
|
31
|
+
|
|
32
|
+
# ClawkrHook contract address (v2 deployment - Feb 4, 2026)
|
|
33
|
+
CLAWKR_HOOK_ADDRESS=0xa3966B92F2184fca0839E4D238503FcC6bA92AC8
|
|
34
|
+
|
|
35
|
+
# FairLaunch contract address (v2 deployment - Feb 4, 2026)
|
|
36
|
+
FAIR_LAUNCH_ADDRESS=0xd919c044999F8beE26ca3b28C4f41E58947598c4
|
|
37
|
+
|
|
38
|
+
# MarketCapPrice contract address (v2 deployment - Feb 4, 2026)
|
|
39
|
+
MARKET_CAP_PRICE_ADDRESS=0x90080d2752c046cec72c221822B1ddafC351905D
|
package/README.md
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# Clawkr CLI
|
|
2
|
+
|
|
3
|
+
> Command-line tool for AI agents to launch tokens on Base blockchain
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/clawkr-cli)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- 🆓 **Free Registration** - No gas fees, instant activation via API
|
|
11
|
+
- 🚀 **Token Launch** - Deploy ERC-20 tokens with Uniswap V3 liquidity in one command
|
|
12
|
+
- ✅ **Contract Verification** - Automatic BaseScan verification (server-side, no API key required)
|
|
13
|
+
- 💰 **Fee Management** - Claim accumulated trading fees (90% agent, 10% protocol)
|
|
14
|
+
- 📊 **Status Monitoring** - Track your tokens and fee earnings
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g clawkr-cli
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
### 1. Register as an Agent (FREE)
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
clawkr register --name "MyAgent" --description "AI token launcher"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
No gas fees required! Registration is instant via API.
|
|
31
|
+
|
|
32
|
+
### 2. Launch Your First Token
|
|
33
|
+
|
|
34
|
+
First, upload your token image to a hosting service (catbox.moe, imgur, etc.) and get the direct URL.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
clawkr launch \
|
|
38
|
+
--name "My Token" \
|
|
39
|
+
--symbol "MTK" \
|
|
40
|
+
--token-uri "https://your-image-host.com/metadata.json" \
|
|
41
|
+
--description "My awesome token" \
|
|
42
|
+
--x https://x.com/mytoken \
|
|
43
|
+
--website https://mytoken.surge.sh
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This command will:
|
|
47
|
+
- Deploy the token contract on Base
|
|
48
|
+
- Create Uniswap V3 liquidity pool
|
|
49
|
+
- Verify the contract on BaseScan (server-side)
|
|
50
|
+
- Return token address, pool ID, and useful links
|
|
51
|
+
|
|
52
|
+
You can then update your landing page with the returned contract details.
|
|
53
|
+
|
|
54
|
+
### 3. Check Status & Claim Fees
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Check your agent status
|
|
58
|
+
clawkr status
|
|
59
|
+
|
|
60
|
+
# Claim accumulated fees
|
|
61
|
+
clawkr claim --token <TOKEN_ADDRESS>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Configuration
|
|
65
|
+
|
|
66
|
+
Create a `.env` file or set environment variables:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Required for launching tokens
|
|
70
|
+
PRIVATE_KEY=0x...
|
|
71
|
+
|
|
72
|
+
# Optional - defaults shown
|
|
73
|
+
API_BASE_URL=https://clawkr.com/api
|
|
74
|
+
RPC_URL=https://mainnet.base.org
|
|
75
|
+
CHAIN_ID=8453
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Copy `.env.example` to `.env` and fill in your values.
|
|
79
|
+
|
|
80
|
+
**Note:** Contract verification is handled server-side via the Clawkr API. No API keys required for verification.
|
|
81
|
+
|
|
82
|
+
## Commands
|
|
83
|
+
|
|
84
|
+
### `clawkr register`
|
|
85
|
+
|
|
86
|
+
Register as an AI agent (free, no gas fees).
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
clawkr register [options]
|
|
90
|
+
|
|
91
|
+
Options:
|
|
92
|
+
--name <name> Agent name (optional)
|
|
93
|
+
--description <text> Agent description (optional)
|
|
94
|
+
--json Output as JSON
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### `clawkr launch`
|
|
98
|
+
|
|
99
|
+
Launch a new token with Uniswap V3 liquidity.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
clawkr launch [options]
|
|
103
|
+
|
|
104
|
+
Required:
|
|
105
|
+
--name <name> Token name
|
|
106
|
+
--symbol <symbol> Token symbol
|
|
107
|
+
|
|
108
|
+
Optional:
|
|
109
|
+
--token-uri <uri> Token metadata URI (recommended - use your own hosted metadata)
|
|
110
|
+
--description <text> Token description
|
|
111
|
+
--x <url> X/Twitter URL
|
|
112
|
+
--website <url> Website URL (your own landing page)
|
|
113
|
+
--market-cap <eth> Initial market cap (default: 1 ETH)
|
|
114
|
+
--fair-launch-duration <s> Fair launch duration in seconds (default: 300)
|
|
115
|
+
--json Output as JSON
|
|
116
|
+
--dry-run Simulate transaction without executing
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Best Practice:** Upload your token image to a hosting service (catbox.moe, imgur, etc.) before launching. Create your own landing page on surge.sh or any static host. The CLI will return token address, pool ID, and useful links for you to update your landing page.
|
|
120
|
+
|
|
121
|
+
### `clawkr status`
|
|
122
|
+
|
|
123
|
+
Check your agent status and token list.
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
clawkr status [options]
|
|
127
|
+
|
|
128
|
+
Options:
|
|
129
|
+
--agent <address> Agent address (default: your wallet)
|
|
130
|
+
--json Output as JSON
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### `clawkr claim`
|
|
134
|
+
|
|
135
|
+
Claim accumulated trading fees from your tokens.
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
clawkr claim [options]
|
|
139
|
+
|
|
140
|
+
Required:
|
|
141
|
+
--token <address> Token contract address
|
|
142
|
+
|
|
143
|
+
Options:
|
|
144
|
+
--json Output as JSON
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### `clawkr verify`
|
|
148
|
+
|
|
149
|
+
Manually verify a contract on BaseScan (auto-verification runs during launch).
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
clawkr verify [options]
|
|
153
|
+
|
|
154
|
+
Required:
|
|
155
|
+
--token <address> Token contract address
|
|
156
|
+
|
|
157
|
+
Options:
|
|
158
|
+
--json Output as JSON
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### `clawkr config`
|
|
162
|
+
|
|
163
|
+
View or test configuration.
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
clawkr config [options]
|
|
167
|
+
|
|
168
|
+
Options:
|
|
169
|
+
--show Show current configuration
|
|
170
|
+
--test Test RPC connection
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## API Integration
|
|
174
|
+
|
|
175
|
+
AI agents can use the JSON output mode for programmatic access:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# All commands support --json flag
|
|
179
|
+
clawkr register --name "Agent" --json
|
|
180
|
+
clawkr launch --name "Token" --symbol "TKN" --image ./logo.png --json
|
|
181
|
+
clawkr status --json
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Requirements
|
|
185
|
+
|
|
186
|
+
- Node.js >= 18.0.0
|
|
187
|
+
- Base mainnet RPC access
|
|
188
|
+
- Private key with ETH for gas (only for launching tokens)
|
|
189
|
+
|
|
190
|
+
## Documentation
|
|
191
|
+
|
|
192
|
+
- **Skills Documentation**: https://clawkr.com/skills.md
|
|
193
|
+
- **Web Dashboard**: https://clawkr.com
|
|
194
|
+
- **API Docs**: https://clawkr.com/api
|
|
195
|
+
|
|
196
|
+
## Smart Contracts
|
|
197
|
+
|
|
198
|
+
All contracts are deployed on Base mainnet (Chain ID: 8453):
|
|
199
|
+
|
|
200
|
+
- **AgentRegistry**: `0xaBBe7b34E9E8d9e158A68873EBC2C5ff574C4017`
|
|
201
|
+
- **ClawkrHook**: `0xa3966B92F2184fca0839E4D238503FcC6bA92AC8`
|
|
202
|
+
- **FairLaunch**: `0xd919c044999F8beE26ca3b28C4f41E58947598c4`
|
|
203
|
+
- **MarketCapPrice**: `0x90080d2752c046cec72c221822B1ddafC351905D`
|
|
204
|
+
|
|
205
|
+
## Security
|
|
206
|
+
|
|
207
|
+
- Never commit your `.env` file to version control
|
|
208
|
+
- Keep your private key secure
|
|
209
|
+
- Use environment variables in production
|
|
210
|
+
- API keys (BaseScan, iili.io) are optional but enhance functionality
|
|
211
|
+
|
|
212
|
+
## Support
|
|
213
|
+
|
|
214
|
+
- GitHub Issues: https://github.com/clawkr/clawkr/issues
|
|
215
|
+
- Website: https://clawkr.com
|
|
216
|
+
|
|
217
|
+
## License
|
|
218
|
+
|
|
219
|
+
MIT License - see LICENSE file for details
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.claimCommand = claimCommand;
|
|
7
|
+
const viem_1 = require("viem");
|
|
8
|
+
const accounts_1 = require("viem/accounts");
|
|
9
|
+
const chains_1 = require("viem/chains");
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const ora_1 = __importDefault(require("ora"));
|
|
12
|
+
const config_1 = require("../utils/config");
|
|
13
|
+
const abis_1 = require("../utils/abis");
|
|
14
|
+
async function claimCommand(options) {
|
|
15
|
+
const config = (0, config_1.loadConfig)();
|
|
16
|
+
const privateKey = (0, config_1.getPrivateKey)();
|
|
17
|
+
const output = {
|
|
18
|
+
success: false,
|
|
19
|
+
command: 'claim',
|
|
20
|
+
params: {
|
|
21
|
+
token: options.token,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
// Validate private key
|
|
25
|
+
if (!privateKey) {
|
|
26
|
+
output.error = 'Private key not found. Set PRIVATE_KEY environment variable.';
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(JSON.stringify(output, null, 2));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.error(chalk_1.default.red('Error: Private key not found. Set PRIVATE_KEY environment variable.'));
|
|
32
|
+
}
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
const account = (0, accounts_1.privateKeyToAccount)(privateKey);
|
|
36
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
37
|
+
chain: chains_1.base,
|
|
38
|
+
transport: (0, viem_1.http)(config.rpcUrl),
|
|
39
|
+
});
|
|
40
|
+
const walletClient = (0, viem_1.createWalletClient)({
|
|
41
|
+
account,
|
|
42
|
+
chain: chains_1.base,
|
|
43
|
+
transport: (0, viem_1.http)(config.rpcUrl),
|
|
44
|
+
});
|
|
45
|
+
const spinner = options.json ? null : (0, ora_1.default)('Preparing claim...').start();
|
|
46
|
+
try {
|
|
47
|
+
// Check claimable balance
|
|
48
|
+
if (spinner)
|
|
49
|
+
spinner.text = 'Checking claimable balance...';
|
|
50
|
+
const claimableBalance = await publicClient.readContract({
|
|
51
|
+
address: config.contracts.clawkrHook,
|
|
52
|
+
abi: abis_1.CLAWKR_HOOK_ABI,
|
|
53
|
+
functionName: 'agentFees',
|
|
54
|
+
args: [account.address, options.token],
|
|
55
|
+
});
|
|
56
|
+
if (claimableBalance === 0n) {
|
|
57
|
+
output.error = 'No fees available to claim for this token.';
|
|
58
|
+
if (spinner)
|
|
59
|
+
spinner.fail(output.error);
|
|
60
|
+
if (options.json)
|
|
61
|
+
console.log(JSON.stringify(output, null, 2));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
// Claim fees
|
|
65
|
+
if (spinner)
|
|
66
|
+
spinner.text = 'Claiming fees...';
|
|
67
|
+
const claimHash = await walletClient.writeContract({
|
|
68
|
+
address: config.contracts.clawkrHook,
|
|
69
|
+
abi: abis_1.CLAWKR_HOOK_ABI,
|
|
70
|
+
functionName: 'claimAgentFees',
|
|
71
|
+
args: [options.token],
|
|
72
|
+
});
|
|
73
|
+
if (spinner)
|
|
74
|
+
spinner.text = 'Waiting for confirmation...';
|
|
75
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash: claimHash });
|
|
76
|
+
output.success = true;
|
|
77
|
+
output.result = {
|
|
78
|
+
transactionHash: claimHash,
|
|
79
|
+
blockNumber: receipt.blockNumber.toString(),
|
|
80
|
+
gasUsed: receipt.gasUsed.toString(),
|
|
81
|
+
amount: claimableBalance.toString(),
|
|
82
|
+
token: options.token,
|
|
83
|
+
};
|
|
84
|
+
if (spinner)
|
|
85
|
+
spinner.succeed('Fees claimed successfully!');
|
|
86
|
+
if (options.json) {
|
|
87
|
+
console.log(JSON.stringify(output, null, 2));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.log('\n' + chalk_1.default.green.bold('Fees Claimed Successfully!'));
|
|
91
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
92
|
+
console.log(chalk_1.default.white('Amount: ') + (0, viem_1.formatUnits)(claimableBalance, 18));
|
|
93
|
+
console.log(chalk_1.default.white('Token: ') + chalk_1.default.cyan(options.token));
|
|
94
|
+
console.log(chalk_1.default.white('Transaction: ') + chalk_1.default.cyan(claimHash));
|
|
95
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
96
|
+
console.log(chalk_1.default.gray(`View on BaseScan: https://basescan.org/tx/${claimHash}`));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
output.error = error.message || 'Unknown error occurred';
|
|
101
|
+
if (spinner)
|
|
102
|
+
spinner.fail('Claim failed');
|
|
103
|
+
if (options.json) {
|
|
104
|
+
console.log(JSON.stringify(output, null, 2));
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
console.error(chalk_1.default.red('\nError: ' + output.error));
|
|
108
|
+
}
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configCommand = configCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const config_1 = require("../utils/config");
|
|
9
|
+
async function configCommand(options) {
|
|
10
|
+
const config = (0, config_1.loadConfig)();
|
|
11
|
+
if (options.show) {
|
|
12
|
+
console.log('\n' + chalk_1.default.bold.cyan('Clawkr CLI Configuration'));
|
|
13
|
+
console.log(chalk_1.default.gray('═'.repeat(60)));
|
|
14
|
+
console.log(chalk_1.default.white('RPC URL: ') + config.rpcUrl);
|
|
15
|
+
console.log(chalk_1.default.white('Chain ID: ') + config.chainId);
|
|
16
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
17
|
+
console.log(chalk_1.default.bold('Contract Addresses (V4)'));
|
|
18
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
19
|
+
console.log(chalk_1.default.white('Agent Registry: ') + chalk_1.default.cyan(config.contracts.agentRegistry));
|
|
20
|
+
console.log(chalk_1.default.white('Clawkr Hook: ') + chalk_1.default.cyan(config.contracts.clawkrHook));
|
|
21
|
+
console.log(chalk_1.default.white('Fair Launch: ') + chalk_1.default.cyan(config.contracts.fairLaunch));
|
|
22
|
+
console.log(chalk_1.default.white('Market Cap Price: ') + chalk_1.default.cyan(config.contracts.marketCapPrice));
|
|
23
|
+
console.log(chalk_1.default.gray('═'.repeat(60)));
|
|
24
|
+
console.log(chalk_1.default.gray('\nConfig file: ~/.clawkr/config.json'));
|
|
25
|
+
console.log(chalk_1.default.gray('Private key: Set via PRIVATE_KEY environment variable'));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
let updated = false;
|
|
29
|
+
if (options.rpc) {
|
|
30
|
+
(0, config_1.saveConfig)({ rpcUrl: options.rpc });
|
|
31
|
+
console.log(chalk_1.default.green('✓') + ' RPC URL updated');
|
|
32
|
+
updated = true;
|
|
33
|
+
}
|
|
34
|
+
if (options.privateKey) {
|
|
35
|
+
console.log(chalk_1.default.yellow('⚠ Warning: Storing private key in config is not recommended.'));
|
|
36
|
+
console.log(chalk_1.default.yellow(' Use the PRIVATE_KEY environment variable instead.'));
|
|
37
|
+
// We don't actually save the private key to the config file for security
|
|
38
|
+
// Just warn the user
|
|
39
|
+
}
|
|
40
|
+
if (!updated && !options.show) {
|
|
41
|
+
console.log(chalk_1.default.gray('No configuration changes made.'));
|
|
42
|
+
console.log(chalk_1.default.gray('Use --show to view current configuration.'));
|
|
43
|
+
console.log(chalk_1.default.gray('Use --rpc <url> to set RPC URL.'));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|