@stackmeter/cli 0.2.0 → 0.2.1
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/bin/stackmeter.mjs +16 -7
- package/package.json +1 -1
- package/src/gateway/log-watcher.mjs +7 -1
package/bin/stackmeter.mjs
CHANGED
|
@@ -18,6 +18,12 @@ const args = process.argv.slice(2);
|
|
|
18
18
|
const command = args[0];
|
|
19
19
|
const target = args[1];
|
|
20
20
|
|
|
21
|
+
function getFlag(name) {
|
|
22
|
+
const idx = args.indexOf(name);
|
|
23
|
+
if (idx === -1 || idx + 1 >= args.length) return null;
|
|
24
|
+
return args[idx + 1];
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
// ── Constants ────────────────────────────────────────────
|
|
22
28
|
|
|
23
29
|
const DEFAULT_BASE_URL = "https://stackmeter.app";
|
|
@@ -174,9 +180,12 @@ async function connectOpenClaw() {
|
|
|
174
180
|
console.log("");
|
|
175
181
|
|
|
176
182
|
// ── Step 1: Get StackMeter base URL ────────────────
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
183
|
+
const flagUrl = getFlag("--url");
|
|
184
|
+
let baseUrl = flagUrl
|
|
185
|
+
? flagUrl.replace(/\/api\/usage-events\/?$/, "")
|
|
186
|
+
: process.env.STACKMETER_URL
|
|
187
|
+
? process.env.STACKMETER_URL.replace(/\/api\/usage-events\/?$/, "")
|
|
188
|
+
: "";
|
|
180
189
|
|
|
181
190
|
if (!baseUrl) {
|
|
182
191
|
baseUrl = await rl.question(
|
|
@@ -184,17 +193,17 @@ async function connectOpenClaw() {
|
|
|
184
193
|
);
|
|
185
194
|
if (!baseUrl.trim()) baseUrl = DEFAULT_BASE_URL;
|
|
186
195
|
} else {
|
|
187
|
-
console.log(` Using
|
|
196
|
+
console.log(` Using URL: ${baseUrl}`);
|
|
188
197
|
}
|
|
189
198
|
baseUrl = baseUrl.replace(/\/+$/, "");
|
|
190
199
|
const apiUrl = `${baseUrl}/api/usage-events`;
|
|
191
200
|
|
|
192
201
|
// ── Step 2: Get or create tracking token ───────────
|
|
193
|
-
let token = process.env.STACKMETER_TOKEN || "";
|
|
202
|
+
let token = getFlag("--token") || process.env.STACKMETER_TOKEN || "";
|
|
194
203
|
|
|
195
204
|
if (token) {
|
|
196
205
|
console.log(
|
|
197
|
-
`
|
|
206
|
+
` Using token (sm_...${token.slice(-4)})`
|
|
198
207
|
);
|
|
199
208
|
} else {
|
|
200
209
|
console.log("");
|
|
@@ -485,7 +494,7 @@ async function selfTest() {
|
|
|
485
494
|
|
|
486
495
|
// 2/2 — Check OpenClaw session files
|
|
487
496
|
console.log(" 2/2 Checking OpenClaw sessions...");
|
|
488
|
-
const ocHome = process.env.OPENCLAW_HOME || join(homedir(), ".openclaw");
|
|
497
|
+
const ocHome = process.env.OPENCLAW_STATE_DIR || process.env.CLAWDBOT_STATE_DIR || process.env.OPENCLAW_HOME || join(homedir(), ".openclaw");
|
|
489
498
|
const agentsDir = join(ocHome, "agents");
|
|
490
499
|
|
|
491
500
|
if (existsSync(agentsDir)) {
|
package/package.json
CHANGED
|
@@ -16,7 +16,13 @@ function readStackMeterConfig() {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
function getOpenClawHome(smConfig = {}) {
|
|
19
|
-
return
|
|
19
|
+
return (
|
|
20
|
+
process.env.OPENCLAW_STATE_DIR ||
|
|
21
|
+
process.env.CLAWDBOT_STATE_DIR ||
|
|
22
|
+
process.env.OPENCLAW_HOME ||
|
|
23
|
+
smConfig.openclawHome ||
|
|
24
|
+
join(homedir(), ".openclaw")
|
|
25
|
+
);
|
|
20
26
|
}
|
|
21
27
|
|
|
22
28
|
/* ── Emit usage event to StackMeter ──────────────────────── */
|