clawprobe 0.5.3 → 0.6.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/dist/cli/commands/compacts.d.ts +1 -0
- package/dist/cli/commands/compacts.d.ts.map +1 -1
- package/dist/cli/commands/compacts.js +35 -3
- package/dist/cli/commands/compacts.js.map +1 -1
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +40 -153
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/cost.d.ts.map +1 -1
- package/dist/cli/commands/cost.js +5 -4
- package/dist/cli/commands/cost.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +9 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +166 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/session.d.ts.map +1 -1
- package/dist/cli/commands/session.js +5 -1
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +102 -34
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/format.d.ts +5 -0
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +9 -1
- package/dist/cli/format.js.map +1 -1
- package/dist/engines/cost.d.ts +8 -0
- package/dist/engines/cost.d.ts.map +1 -1
- package/dist/engines/cost.js +23 -2
- package/dist/engines/cost.js.map +1 -1
- package/dist/engines/rule-engine.d.ts.map +1 -1
- package/dist/engines/rule-engine.js +1 -20
- package/dist/engines/rule-engine.js.map +1 -1
- package/dist/index.js +13 -66
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compacts.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/compacts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compacts.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/compacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4G3F"}
|
|
@@ -1,8 +1,40 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { openDb, getCompactEvents, getCompactEventById } from "../../core/db.js";
|
|
3
|
+
import { saveCompactedMessages } from "../../core/memory-editor.js";
|
|
4
|
+
import { header, fmtDate, fmtTokens, roleIcon, outputJson, outputJsonError, severity, divider, printSuccess, printError } from "../format.js";
|
|
3
5
|
export async function runCompacts(cfg, opts) {
|
|
4
6
|
const agent = opts.agent ?? cfg.probe.openclaw.agent;
|
|
5
7
|
const db = openDb(cfg.probeDir);
|
|
8
|
+
// --save <id>: save a compact event's messages to memory
|
|
9
|
+
if (opts.save !== undefined) {
|
|
10
|
+
const compactId = parseInt(opts.save, 10);
|
|
11
|
+
if (isNaN(compactId)) {
|
|
12
|
+
if (opts.json)
|
|
13
|
+
outputJsonError("invalid_id", `Invalid compact ID: ${opts.save}`);
|
|
14
|
+
printError(`Invalid compact ID: ${opts.save}`);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const event = getCompactEventById(db, compactId);
|
|
18
|
+
if (!event) {
|
|
19
|
+
if (opts.json)
|
|
20
|
+
outputJsonError("not_found", `Compact event #${compactId} not found.`);
|
|
21
|
+
printError(`Compact event #${compactId} not found.`);
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const messages = event.compacted_messages
|
|
25
|
+
? JSON.parse(event.compacted_messages)
|
|
26
|
+
: [];
|
|
27
|
+
if (messages.length === 0) {
|
|
28
|
+
console.log(severity.muted(" No messages to save for this compact event."));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const memFile = path.join(cfg.workspaceDir, cfg.probe.memory.defaultFile);
|
|
32
|
+
const relFile = path.relative(cfg.workspaceDir, memFile);
|
|
33
|
+
const label = event.compacted_at ? fmtDate(event.compacted_at) : `compact-${compactId}`;
|
|
34
|
+
saveCompactedMessages(memFile, messages, label);
|
|
35
|
+
printSuccess(`Saved ${messages.length} messages from compact #${compactId} to ${relFile}`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
6
38
|
const limit = opts.last ?? 5;
|
|
7
39
|
const events = getCompactEvents(db, agent, limit, opts.session);
|
|
8
40
|
if (opts.json) {
|
|
@@ -57,7 +89,7 @@ export async function runCompacts(cfg, opts) {
|
|
|
57
89
|
console.log(` "${summaryPreview}${event.summary_text.length > 200 ? "…" : ""}"`);
|
|
58
90
|
}
|
|
59
91
|
console.log();
|
|
60
|
-
console.log(` ${severity.muted("→ Save to memory:")} clawprobe
|
|
92
|
+
console.log(` ${severity.muted("→ Save to memory:")} clawprobe compacts --save ${event.id}`);
|
|
61
93
|
if (i < events.length - 1) {
|
|
62
94
|
console.log();
|
|
63
95
|
divider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compacts.js","sourceRoot":"","sources":["../../../src/cli/commands/compacts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compacts.js","sourceRoot":"","sources":["../../../src/cli/commands/compacts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY9I,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAmB,EAAE,IAAqB;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IACrD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEhC,yDAAyD;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,IAAI;gBAAE,eAAe,CAAC,YAAY,EAAE,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACjF,UAAU,CAAC,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,IAAI;gBAAE,eAAe,CAAC,WAAW,EAAE,kBAAkB,SAAS,aAAa,CAAC,CAAC;YACtF,UAAU,CAAC,kBAAkB,SAAS,aAAa,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAmB,KAAK,CAAC,kBAAkB;YACvD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAmB;YACxD,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;QACxF,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,YAAY,CAAC,SAAS,QAAQ,CAAC,MAAM,2BAA2B,SAAS,OAAO,OAAO,EAAE,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,UAAU,CACR,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,WAAW;YACzB,iBAAiB,EAAE,CAAC,CAAC,mBAAmB;YACxC,YAAY,EAAE,CAAC,CAAC,aAAa;YAC7B,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,qBAAqB,EAAE,CAAC,CAAC,uBAAuB;YAChD,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;gBACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAClC,CAAC,CAAC,EAAE;SACP,CAAC,CAAC,CACJ,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC;IAEhD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,iBAAiB,GACrB,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,IAAI,iBAAiB,CAAC,MAAM,CAAC;QAExE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3H,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,qBAAqB,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,iBAAiB,CAAC,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,UAAU,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,8BAA8B,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFzF"}
|
|
@@ -1,196 +1,83 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
1
|
import { openDb } from "../../core/db.js";
|
|
4
2
|
import { getActiveSession, findJsonlPath } from "../../core/session-store.js";
|
|
5
3
|
import { parseSessionStats } from "../../core/jsonl-parser.js";
|
|
6
4
|
import { analyzeWorkspaceFiles } from "../../engines/file-analyzer.js";
|
|
7
|
-
import { header,
|
|
8
|
-
/** Rough token estimate: chars / 4 */
|
|
9
|
-
function estTok(chars) {
|
|
10
|
-
return Math.ceil(chars / 4);
|
|
11
|
-
}
|
|
12
|
-
function fmtTok(n) {
|
|
13
|
-
return `~${fmtTokens(n)} tok`;
|
|
14
|
-
}
|
|
15
|
-
/** Try to read a text file from the workspace dir */
|
|
16
|
-
function readWsFile(workspaceDir, name) {
|
|
17
|
-
const p = path.join(workspaceDir, name);
|
|
18
|
-
if (!fs.existsSync(p))
|
|
19
|
-
return null;
|
|
20
|
-
try {
|
|
21
|
-
return fs.readFileSync(p, "utf-8");
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function scanSkills(workspaceDir) {
|
|
28
|
-
const results = [];
|
|
29
|
-
if (!fs.existsSync(workspaceDir))
|
|
30
|
-
return results;
|
|
31
|
-
// skills/ subdirectory
|
|
32
|
-
const skillsDir = path.join(workspaceDir, "skills");
|
|
33
|
-
if (fs.existsSync(skillsDir) && fs.statSync(skillsDir).isDirectory()) {
|
|
34
|
-
for (const f of fs.readdirSync(skillsDir)) {
|
|
35
|
-
if (f.endsWith(".md") || f.endsWith(".txt")) {
|
|
36
|
-
try {
|
|
37
|
-
const content = fs.readFileSync(path.join(skillsDir, f), "utf-8");
|
|
38
|
-
results.push({ name: path.basename(f, path.extname(f)), chars: content.length });
|
|
39
|
-
}
|
|
40
|
-
catch { /* skip */ }
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return results.sort((a, b) => b.chars - a.chars);
|
|
45
|
-
}
|
|
5
|
+
import { header, fmtTokens, tokenBar, outputJson, severity, getWindowSize, } from "../format.js";
|
|
46
6
|
export async function runContext(cfg, opts) {
|
|
47
7
|
const agent = opts.agent ?? cfg.probe.openclaw.agent;
|
|
48
8
|
const db = openDb(cfg.probeDir);
|
|
49
|
-
const analysis = analyzeWorkspaceFiles(cfg.workspaceDir, cfg.bootstrapMaxChars);
|
|
50
9
|
const activeSession = getActiveSession(cfg.sessionsDir);
|
|
51
|
-
// Read jsonl transcript for accurate context token count.
|
|
52
|
-
// Transcripts are named by session UUID, not the human-readable sessionKey.
|
|
53
10
|
const transcriptPath = activeSession ? findJsonlPath(cfg.sessionsDir, activeSession) : null;
|
|
54
11
|
const jsonlStats = transcriptPath ? parseSessionStats(transcriptPath) : null;
|
|
55
|
-
// sessionTokens = actual context usage (from last assistant usage.totalTokens in jsonl)
|
|
56
12
|
const sessionTokens = jsonlStats?.lastTotalTokens ?? activeSession?.sessionTokens ?? 0;
|
|
57
13
|
const windowSize = (activeSession?.windowSize || activeSession?.contextTokens) ?? 0;
|
|
58
14
|
const model = jsonlStats?.model ?? activeSession?.modelOverride ?? null;
|
|
59
15
|
const resolvedWindowSize = getWindowSize(model, windowSize || sessionTokens);
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
const heartbeatContent = readWsFile(cfg.workspaceDir, "HEARTBEAT.md") ?? "";
|
|
66
|
-
const bootstrapContent = readWsFile(cfg.workspaceDir, "BOOTSTRAP.md") ?? "";
|
|
67
|
-
// Skills
|
|
68
|
-
const skills = scanSkills(cfg.workspaceDir);
|
|
69
|
-
const skillsChars = skills.reduce((s, sk) => s + sk.chars, 0);
|
|
70
|
-
// Workspace files total (injected)
|
|
71
|
-
const wsFiles = analysis.files;
|
|
72
|
-
const wsTotalInjectedChars = wsFiles.reduce((s, f) => s + f.injectedChars, 0);
|
|
73
|
-
const wsTotalInjectedTokens = wsFiles.reduce((s, f) => s + f.injectedEstTokens, 0);
|
|
74
|
-
// Session history = sessionTokens - all fixed overhead
|
|
75
|
-
// Fixed overhead = workspace files + system prompt estimate
|
|
76
|
-
const fixedOverheadTokens = wsTotalInjectedTokens;
|
|
77
|
-
const sessionHistoryTokens = sessionTokens > fixedOverheadTokens
|
|
78
|
-
? sessionTokens - fixedOverheadTokens
|
|
16
|
+
// Workspace analysis: just the token overhead summary, no per-file table
|
|
17
|
+
const analysis = analyzeWorkspaceFiles(cfg.workspaceDir, cfg.bootstrapMaxChars);
|
|
18
|
+
const wsTotalInjectedTokens = analysis.files.reduce((s, f) => s + f.injectedEstTokens, 0);
|
|
19
|
+
const sessionHistoryTokens = sessionTokens > wsTotalInjectedTokens
|
|
20
|
+
? sessionTokens - wsTotalInjectedTokens
|
|
79
21
|
: sessionTokens > 0 ? sessionTokens : 0;
|
|
80
22
|
if (opts.json) {
|
|
81
23
|
outputJson({
|
|
82
24
|
agent,
|
|
83
|
-
workspaceDir: cfg.workspaceDir,
|
|
84
|
-
bootstrapMaxChars: cfg.bootstrapMaxChars,
|
|
85
25
|
sessionTokens,
|
|
86
26
|
windowSize: resolvedWindowSize,
|
|
87
27
|
utilizationPct: resolvedWindowSize > 0 ? Math.round(sessionTokens / resolvedWindowSize * 100) : 0,
|
|
88
|
-
|
|
28
|
+
workspaceOverheadTokensEst: wsTotalInjectedTokens,
|
|
29
|
+
sessionHistoryTokensEst: sessionHistoryTokens,
|
|
30
|
+
truncatedFiles: analysis.truncatedFiles.map((f) => ({
|
|
89
31
|
name: f.name,
|
|
90
|
-
|
|
91
|
-
injectedChars: f.injectedChars,
|
|
92
|
-
wasTruncated: f.wasTruncated,
|
|
93
|
-
estTokens: f.injectedEstTokens,
|
|
32
|
+
lostPct: Math.round(f.lostPercent),
|
|
94
33
|
})),
|
|
95
|
-
sessionHistoryTokensEst: sessionHistoryTokens,
|
|
96
34
|
});
|
|
97
35
|
return;
|
|
98
36
|
}
|
|
99
|
-
header("🔍", "Context
|
|
37
|
+
header("🔍", "Context Window", `agent: ${agent}`);
|
|
100
38
|
// ── Overall context bar ──────────────────────────────────────────────────
|
|
101
39
|
if (sessionTokens > 0) {
|
|
102
|
-
const { tokenBar } = await import("../format.js");
|
|
103
40
|
const pct = Math.round(sessionTokens / resolvedWindowSize * 100);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
41
|
+
const ctxColor = pct > 90 ? severity.critical : pct > 70 ? severity.warning : (s) => s;
|
|
42
|
+
console.log(` Used: ${ctxColor(`${fmtTokens(sessionTokens)} / ${fmtTokens(resolvedWindowSize)} tokens`)}` +
|
|
43
|
+
` ${tokenBar(sessionTokens, resolvedWindowSize)} ${pct}%`);
|
|
107
44
|
}
|
|
108
45
|
else {
|
|
109
|
-
console.log(severity.muted(` Context window: ${fmtTokens(resolvedWindowSize)} tokens
|
|
46
|
+
console.log(severity.muted(` Context window: ${fmtTokens(resolvedWindowSize)} tokens (no session data yet)`));
|
|
110
47
|
console.log();
|
|
48
|
+
console.log(severity.muted(" Start OpenClaw and run a turn, then try again."));
|
|
49
|
+
console.log();
|
|
50
|
+
return;
|
|
111
51
|
}
|
|
112
|
-
// ──
|
|
113
|
-
console.log(severity.muted(` Workspace: ${cfg.workspaceDir}`));
|
|
114
|
-
console.log(severity.muted(` Bootstrap max: ${cfg.bootstrapMaxChars.toLocaleString()} chars / file`));
|
|
115
|
-
console.log();
|
|
116
|
-
// ── Injected workspace files ─────────────────────────────────────────────
|
|
117
|
-
console.log(severity.bold(" Injected workspace files:"));
|
|
118
|
-
console.log();
|
|
119
|
-
if (wsFiles.length === 0) {
|
|
120
|
-
console.log(severity.muted(" (none found)"));
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
const head = ["File", "Raw", "Injected", "~Tokens", "Status"];
|
|
124
|
-
const rows = wsFiles.map((f) => [
|
|
125
|
-
f.name,
|
|
126
|
-
`${f.rawChars.toLocaleString()} chars`,
|
|
127
|
-
`${f.injectedChars.toLocaleString()} chars`,
|
|
128
|
-
fmtTok(f.injectedEstTokens),
|
|
129
|
-
truncBadge(f.wasTruncated),
|
|
130
|
-
]);
|
|
131
|
-
const colWidths = computeColWidths(head, rows, [18, 14, 14, 10, 12]);
|
|
132
|
-
const table = makeTable(head, colWidths);
|
|
133
|
-
for (const row of rows)
|
|
134
|
-
table.push(row);
|
|
135
|
-
console.log(table.toString());
|
|
136
|
-
if (analysis.truncatedFiles.length > 0) {
|
|
137
|
-
for (const f of analysis.truncatedFiles) {
|
|
138
|
-
console.log(severity.warning(` ⚠ ${f.name}: ${f.lostChars.toLocaleString()} chars (${Math.round(f.lostPercent)}%) truncated — model never sees this content`));
|
|
139
|
-
}
|
|
140
|
-
console.log();
|
|
141
|
-
}
|
|
142
|
-
console.log(` Workspace subtotal: ~${fmtTokens(wsTotalInjectedTokens)} tokens ` +
|
|
143
|
-
severity.muted(`(${wsFiles.length} files, ${wsTotalInjectedChars.toLocaleString()} chars injected)`));
|
|
144
|
-
}
|
|
52
|
+
// ── Breakdown ────────────────────────────────────────────────────────────
|
|
145
53
|
console.log();
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
54
|
+
console.log(` Workspace overhead: ~${fmtTokens(wsTotalInjectedTokens)} tokens ${severity.muted(`(${analysis.files.length} injected files)`)}`);
|
|
55
|
+
console.log(` Conversation est: ~${fmtTokens(sessionHistoryTokens)} tokens ${severity.muted("(messages + system prompt + tools)")}`);
|
|
56
|
+
// ── Truncation warnings ──────────────────────────────────────────────────
|
|
57
|
+
if (analysis.truncatedFiles.length > 0) {
|
|
149
58
|
console.log();
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
sk.name,
|
|
153
|
-
sk.chars.toLocaleString(),
|
|
154
|
-
fmtTok(estTok(sk.chars)),
|
|
155
|
-
]);
|
|
156
|
-
if (skills.length > 10) {
|
|
157
|
-
skillRows.push([`… +${skills.length - 10} more`, "", ""]);
|
|
59
|
+
for (const f of analysis.truncatedFiles) {
|
|
60
|
+
console.log(severity.warning(` ⚠ ${f.name}: ${Math.round(f.lostPercent)}% truncated — model never sees this content`));
|
|
158
61
|
}
|
|
159
|
-
|
|
160
|
-
const skillTable = makeTable(skillHead, skillColWidths);
|
|
161
|
-
for (const row of skillRows)
|
|
162
|
-
skillTable.push(row);
|
|
163
|
-
console.log(skillTable.toString());
|
|
164
|
-
console.log(` Skills subtotal: ~${fmtTokens(estTok(skillsChars))} tokens`);
|
|
165
|
-
console.log();
|
|
166
|
-
}
|
|
167
|
-
// ── Session history estimate ─────────────────────────────────────────────
|
|
168
|
-
if (sessionTokens > 0) {
|
|
169
|
-
console.log(severity.bold(" Session history estimate:"));
|
|
170
|
-
console.log();
|
|
171
|
-
console.log(` Total in context: ${fmtTokens(sessionTokens)} tokens`);
|
|
172
|
-
console.log(` Fixed overhead: ~${fmtTokens(fixedOverheadTokens)} tokens ` +
|
|
173
|
-
severity.muted("(workspace files)"));
|
|
174
|
-
console.log(` Conversation est: ~${fmtTokens(sessionHistoryTokens)} tokens ` +
|
|
175
|
-
severity.muted("(messages + system prompt + tools)"));
|
|
176
|
-
console.log();
|
|
177
|
-
console.log(severity.muted(" Note: For exact breakdown, run: /context detail inside OpenClaw"));
|
|
62
|
+
console.log(severity.muted(" Run: clawprobe context --json or increase bootstrapMaxChars in openclaw.json"));
|
|
178
63
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
console.log(severity.muted(" Start a session and ensure the daemon is running: clawprobe start"));
|
|
182
|
-
}
|
|
183
|
-
console.log();
|
|
184
|
-
// ── Remaining headroom ───────────────────────────────────────────────────
|
|
185
|
-
if (sessionTokens > 0 && resolvedWindowSize > 0) {
|
|
64
|
+
// ── Remaining headroom ────────────────────────────────────────────────────
|
|
65
|
+
if (resolvedWindowSize > 0) {
|
|
186
66
|
const remaining = resolvedWindowSize - sessionTokens;
|
|
187
67
|
const remainingPct = Math.round(remaining / resolvedWindowSize * 100);
|
|
188
|
-
console.log(severity.bold(" Remaining headroom:") +
|
|
189
|
-
` ${fmtTokens(remaining)} tokens (${remainingPct}%)`);
|
|
190
|
-
if (remaining < resolvedWindowSize * 0.1) {
|
|
191
|
-
console.log(severity.warning(" ⚠ Less than 10% context remaining — compaction may be needed soon"));
|
|
192
|
-
}
|
|
193
68
|
console.log();
|
|
69
|
+
const headroomStr = ` Remaining: ${fmtTokens(remaining)} tokens (${remainingPct}%)`;
|
|
70
|
+
if (remainingPct < 10) {
|
|
71
|
+
console.log(severity.critical(headroomStr));
|
|
72
|
+
console.log(severity.warning(" ⚠ Less than 10% remaining — compaction or new session recommended"));
|
|
73
|
+
}
|
|
74
|
+
else if (remainingPct < 25) {
|
|
75
|
+
console.log(severity.warning(headroomStr));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
console.log(headroomStr);
|
|
79
|
+
}
|
|
194
80
|
}
|
|
81
|
+
console.log();
|
|
195
82
|
}
|
|
196
83
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEnF"}
|
|
@@ -35,10 +35,11 @@ export async function runCost(cfg, opts) {
|
|
|
35
35
|
console.log(` ${label} ${bar} ${usdStr}`);
|
|
36
36
|
}
|
|
37
37
|
console.log();
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
const totalCostForPct = Math.max(summary.inputUsd + summary.outputUsd, 0.000001);
|
|
39
|
+
console.log(` Input: ${fmtTokens(summary.inputTokens)} tokens ${fmtUsd(summary.inputUsd)}` +
|
|
40
|
+
` (${Math.round((summary.inputUsd / totalCostForPct) * 100)}%)`);
|
|
41
|
+
console.log(` Output: ${fmtTokens(summary.outputTokens)} tokens ${fmtUsd(summary.outputUsd)}` +
|
|
42
|
+
` (${Math.round((summary.outputUsd / totalCostForPct) * 100)}%)`);
|
|
42
43
|
if (cfg.probe.alerts.dailyBudgetUsd) {
|
|
43
44
|
const budget = cfg.probe.alerts.dailyBudgetUsd;
|
|
44
45
|
const today = summary.daily.find((d) => d.date === new Date().toISOString().slice(0, 10));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../../src/cli/commands/cost.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../../src/cli/commands/cost.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawprobe schema [command]`
|
|
3
|
+
*
|
|
4
|
+
* Outputs the JSON output schema for each command, intended for agent/tool
|
|
5
|
+
* integration. Agents can call this to understand what fields to expect from
|
|
6
|
+
* each command's --json output before parsing it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function runSchema(commandName?: string): void;
|
|
9
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6IH,wBAAgB,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAwBpD"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawprobe schema [command]`
|
|
3
|
+
*
|
|
4
|
+
* Outputs the JSON output schema for each command, intended for agent/tool
|
|
5
|
+
* integration. Agents can call this to understand what fields to expect from
|
|
6
|
+
* each command's --json output before parsing it.
|
|
7
|
+
*/
|
|
8
|
+
const SCHEMAS = {
|
|
9
|
+
status: {
|
|
10
|
+
description: "Comprehensive agent status dashboard. Always exits 0.",
|
|
11
|
+
fields: {
|
|
12
|
+
agent: "string — agent name",
|
|
13
|
+
daemonRunning: "boolean — whether the background daemon process is alive",
|
|
14
|
+
sessionKey: "string | null — active session human-readable key",
|
|
15
|
+
sessionId: "string | null — active session UUID",
|
|
16
|
+
model: "string | null — model identifier in use",
|
|
17
|
+
provider: "string | null — provider name",
|
|
18
|
+
sessionTokens: "number — current context window occupancy (tokens)",
|
|
19
|
+
windowSize: "number — model context window size (tokens)",
|
|
20
|
+
utilizationPct: "number — context utilization 0–100",
|
|
21
|
+
inputTokens: "number — cumulative input tokens this session",
|
|
22
|
+
outputTokens: "number — cumulative output tokens this session",
|
|
23
|
+
compactionCount: "number — number of compaction events this session",
|
|
24
|
+
lastActiveAt: "number — unix seconds of last activity (0 if unknown)",
|
|
25
|
+
isActive: "boolean — true when querying the active session",
|
|
26
|
+
todayUsd: "number — estimated cost today in USD",
|
|
27
|
+
suggestions: [
|
|
28
|
+
{
|
|
29
|
+
severity: "string — 'critical' | 'warning' | 'info'",
|
|
30
|
+
ruleId: "string — rule identifier, usable with suggest --dismiss",
|
|
31
|
+
title: "string — short human-readable title",
|
|
32
|
+
detail: "string — full explanation",
|
|
33
|
+
action: "string | null — recommended remediation step",
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
cost: {
|
|
39
|
+
description: "Cost summary for a time period. Always exits 0.",
|
|
40
|
+
fields: {
|
|
41
|
+
period: "string — human-readable period label",
|
|
42
|
+
startDate: "string — ISO date YYYY-MM-DD",
|
|
43
|
+
endDate: "string — ISO date YYYY-MM-DD",
|
|
44
|
+
totalUsd: "number — total estimated cost in USD",
|
|
45
|
+
inputTokens: "number — total input tokens",
|
|
46
|
+
outputTokens: "number — total output tokens",
|
|
47
|
+
cacheReadTokens: "number — total cache-read tokens",
|
|
48
|
+
cacheWriteTokens: "number — total cache-write tokens",
|
|
49
|
+
inputUsd: "number — cost from input tokens at actual model rates",
|
|
50
|
+
outputUsd: "number — cost from output tokens at actual model rates",
|
|
51
|
+
dailyAvg: "number — average daily cost over the window",
|
|
52
|
+
monthEstimate: "number — projected 30-day cost at current rate",
|
|
53
|
+
daily: [
|
|
54
|
+
{
|
|
55
|
+
date: "string — ISO date",
|
|
56
|
+
usd: "number — cost that day",
|
|
57
|
+
inputTokens: "number",
|
|
58
|
+
outputTokens: "number",
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
unpricedModels: "string[] | undefined — model IDs with no price data",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
session: {
|
|
65
|
+
description: "Single session cost and turn breakdown. Errors exit 1 with JSON {ok,error,message}.",
|
|
66
|
+
errorShape: { ok: false, error: "string error code", message: "string" },
|
|
67
|
+
fields: {
|
|
68
|
+
sessionKey: "string",
|
|
69
|
+
model: "string | null",
|
|
70
|
+
provider: "string | null",
|
|
71
|
+
inputTokens: "number — cumulative input tokens",
|
|
72
|
+
outputTokens: "number — cumulative output tokens",
|
|
73
|
+
totalTokens: "number",
|
|
74
|
+
contextTokens: "number — current context window occupancy",
|
|
75
|
+
estimatedUsd: "number — total cost estimate",
|
|
76
|
+
startedAt: "number — unix seconds",
|
|
77
|
+
lastActiveAt: "number — unix seconds",
|
|
78
|
+
durationMin: "number — session duration in minutes",
|
|
79
|
+
compactionCount: "number",
|
|
80
|
+
costAccurate: "boolean — true when computed from jsonl transcript",
|
|
81
|
+
isOrphan: "boolean — true if no sessions.json entry exists",
|
|
82
|
+
turns: [
|
|
83
|
+
{
|
|
84
|
+
turnIndex: "number — 1-based",
|
|
85
|
+
timestamp: "number — unix seconds",
|
|
86
|
+
inputTokensDelta: "number — input tokens sent this turn (full context)",
|
|
87
|
+
outputTokensDelta: "number — output tokens generated this turn",
|
|
88
|
+
estimatedUsd: "number — cost for this turn",
|
|
89
|
+
compactOccurred: "boolean",
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
"session --list": {
|
|
95
|
+
description: "List of all sessions. Always exits 0.",
|
|
96
|
+
fields: "Array of session objects (same shape as session, minus turns array)",
|
|
97
|
+
},
|
|
98
|
+
context: {
|
|
99
|
+
description: "Context window utilization analysis. Always exits 0.",
|
|
100
|
+
fields: {
|
|
101
|
+
agent: "string",
|
|
102
|
+
sessionTokens: "number — current tokens in context",
|
|
103
|
+
windowSize: "number — model window size",
|
|
104
|
+
utilizationPct: "number — 0–100",
|
|
105
|
+
workspaceOverheadTokensEst: "number — estimated tokens used by injected workspace files",
|
|
106
|
+
sessionHistoryTokensEst: "number — estimated tokens used by conversation history",
|
|
107
|
+
truncatedFiles: [
|
|
108
|
+
{ name: "string", lostPct: "number — percentage of file lost to truncation" },
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
suggest: {
|
|
113
|
+
description: "Optimization suggestions from built-in rules. Always exits 0.",
|
|
114
|
+
fields: "Array of suggestion objects",
|
|
115
|
+
itemFields: {
|
|
116
|
+
id: "number — DB row id",
|
|
117
|
+
ruleId: "string — rule identifier",
|
|
118
|
+
severity: "string — 'critical' | 'warning' | 'info'",
|
|
119
|
+
title: "string",
|
|
120
|
+
detail: "string",
|
|
121
|
+
action: "string | null",
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
compacts: {
|
|
125
|
+
description: "Recent compaction events. Always exits 0. --save errors exit 1 with JSON {ok,error,message}.",
|
|
126
|
+
errorShape: { ok: false, error: "string error code", message: "string" },
|
|
127
|
+
fields: "Array of compact event objects",
|
|
128
|
+
itemFields: {
|
|
129
|
+
id: "number — DB row id, usable with compacts --save",
|
|
130
|
+
sessionKey: "string",
|
|
131
|
+
compactionEntryId: "string",
|
|
132
|
+
tokensBefore: "number | null",
|
|
133
|
+
compactedAt: "number | null — unix seconds",
|
|
134
|
+
compactedMessageCount: "number | null",
|
|
135
|
+
summaryText: "string | null",
|
|
136
|
+
compactedMessages: "Array of {role, content, id} objects",
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
export function runSchema(commandName) {
|
|
141
|
+
if (commandName) {
|
|
142
|
+
const schema = SCHEMAS[commandName];
|
|
143
|
+
if (!schema) {
|
|
144
|
+
const available = Object.keys(SCHEMAS).join(", ");
|
|
145
|
+
console.log(JSON.stringify({
|
|
146
|
+
ok: false,
|
|
147
|
+
error: "unknown_command",
|
|
148
|
+
message: `No schema for '${commandName}'. Available: ${available}`,
|
|
149
|
+
}, null, 2));
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
console.log(JSON.stringify(schema, null, 2));
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// List all available schemas with their descriptions
|
|
156
|
+
const index = Object.entries(SCHEMAS).reduce((acc, [k, v]) => {
|
|
157
|
+
acc[k] = v.description ?? "";
|
|
158
|
+
return acc;
|
|
159
|
+
}, {});
|
|
160
|
+
console.log(JSON.stringify({
|
|
161
|
+
usage: "clawprobe schema <command>",
|
|
162
|
+
available: index,
|
|
163
|
+
}, null, 2));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/cli/commands/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAatD,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA+ED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,cAAc,EACnB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAatD,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA+ED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,cAAc,EACnB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAsKf"}
|