clawprobe 0.2.2 → 0.2.3
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/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +154 -38
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +21 -12
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/core/session-store.d.ts +12 -0
- package/dist/core/session-store.d.ts.map +1 -1
- package/dist/core/session-store.js +9 -0
- package/dist/core/session-store.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -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":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQtD,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAuCD,wBAAsB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqKzF"}
|
|
@@ -1,67 +1,183 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
1
3
|
import { openDb } from "../../core/db.js";
|
|
2
4
|
import { getActiveSession } from "../../core/session-store.js";
|
|
3
|
-
import {
|
|
5
|
+
import { analyzeWorkspaceFiles } from "../../engines/file-analyzer.js";
|
|
4
6
|
import { header, makeTable, fmtTokens, truncBadge, outputJson, severity, getWindowSize, } from "../format.js";
|
|
7
|
+
/** Rough token estimate: chars / 4 */
|
|
8
|
+
function estTok(chars) {
|
|
9
|
+
return Math.ceil(chars / 4);
|
|
10
|
+
}
|
|
11
|
+
function fmtTok(n) {
|
|
12
|
+
return `~${fmtTokens(n)} tok`;
|
|
13
|
+
}
|
|
14
|
+
/** Try to read a text file from the workspace dir */
|
|
15
|
+
function readWsFile(workspaceDir, name) {
|
|
16
|
+
const p = path.join(workspaceDir, name);
|
|
17
|
+
if (!fs.existsSync(p))
|
|
18
|
+
return null;
|
|
19
|
+
try {
|
|
20
|
+
return fs.readFileSync(p, "utf-8");
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function scanSkills(workspaceDir) {
|
|
27
|
+
const results = [];
|
|
28
|
+
if (!fs.existsSync(workspaceDir))
|
|
29
|
+
return results;
|
|
30
|
+
// skills/ subdirectory
|
|
31
|
+
const skillsDir = path.join(workspaceDir, "skills");
|
|
32
|
+
if (fs.existsSync(skillsDir) && fs.statSync(skillsDir).isDirectory()) {
|
|
33
|
+
for (const f of fs.readdirSync(skillsDir)) {
|
|
34
|
+
if (f.endsWith(".md") || f.endsWith(".txt")) {
|
|
35
|
+
try {
|
|
36
|
+
const content = fs.readFileSync(path.join(skillsDir, f), "utf-8");
|
|
37
|
+
results.push({ name: path.basename(f, path.extname(f)), chars: content.length });
|
|
38
|
+
}
|
|
39
|
+
catch { /* skip */ }
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return results.sort((a, b) => b.chars - a.chars);
|
|
44
|
+
}
|
|
5
45
|
export async function runContext(cfg, opts) {
|
|
6
46
|
const agent = opts.agent ?? cfg.probe.openclaw.agent;
|
|
7
47
|
const db = openDb(cfg.probeDir);
|
|
8
|
-
const analysis =
|
|
48
|
+
const analysis = analyzeWorkspaceFiles(cfg.workspaceDir, cfg.bootstrapMaxChars);
|
|
9
49
|
const activeSession = getActiveSession(cfg.sessionsDir);
|
|
10
|
-
|
|
11
|
-
const
|
|
50
|
+
// sessionTokens = actual context usage; windowSize = upper limit
|
|
51
|
+
const sessionTokens = activeSession?.sessionTokens ?? 0;
|
|
52
|
+
const windowSize = (activeSession?.windowSize || activeSession?.contextTokens) ?? 0;
|
|
53
|
+
const model = activeSession?.modelOverride ?? null;
|
|
54
|
+
const resolvedWindowSize = getWindowSize(model, windowSize || sessionTokens);
|
|
55
|
+
// ── Estimate fixed-cost components ──────────────────────────────────────
|
|
56
|
+
// System prompt: read SOUL.md as proxy if present; otherwise estimate from known agents
|
|
57
|
+
const soulContent = readWsFile(cfg.workspaceDir, "SOUL.md") ?? "";
|
|
58
|
+
const agentsContent = readWsFile(cfg.workspaceDir, "AGENTS.md") ?? "";
|
|
59
|
+
const identityContent = readWsFile(cfg.workspaceDir, "IDENTITY.md") ?? "";
|
|
60
|
+
const heartbeatContent = readWsFile(cfg.workspaceDir, "HEARTBEAT.md") ?? "";
|
|
61
|
+
const bootstrapContent = readWsFile(cfg.workspaceDir, "BOOTSTRAP.md") ?? "";
|
|
62
|
+
// Skills
|
|
63
|
+
const skills = scanSkills(cfg.workspaceDir);
|
|
64
|
+
const skillsChars = skills.reduce((s, sk) => s + sk.chars, 0);
|
|
65
|
+
// Workspace files total (injected)
|
|
66
|
+
const wsFiles = analysis.files;
|
|
67
|
+
const wsTotalInjectedChars = wsFiles.reduce((s, f) => s + f.injectedChars, 0);
|
|
68
|
+
const wsTotalInjectedTokens = wsFiles.reduce((s, f) => s + f.injectedEstTokens, 0);
|
|
69
|
+
// Session history = sessionTokens - all fixed overhead
|
|
70
|
+
// Fixed overhead = workspace files + system prompt estimate
|
|
71
|
+
const fixedOverheadTokens = wsTotalInjectedTokens;
|
|
72
|
+
const sessionHistoryTokens = sessionTokens > fixedOverheadTokens
|
|
73
|
+
? sessionTokens - fixedOverheadTokens
|
|
74
|
+
: sessionTokens > 0 ? sessionTokens : 0;
|
|
12
75
|
if (opts.json) {
|
|
13
76
|
outputJson({
|
|
14
77
|
agent,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
78
|
+
workspaceDir: cfg.workspaceDir,
|
|
79
|
+
bootstrapMaxChars: cfg.bootstrapMaxChars,
|
|
80
|
+
sessionTokens,
|
|
81
|
+
windowSize: resolvedWindowSize,
|
|
82
|
+
utilizationPct: resolvedWindowSize > 0 ? Math.round(sessionTokens / resolvedWindowSize * 100) : 0,
|
|
83
|
+
workspaceFiles: wsFiles.map((f) => ({
|
|
19
84
|
name: f.name,
|
|
20
85
|
rawChars: f.rawChars,
|
|
21
86
|
injectedChars: f.injectedChars,
|
|
22
87
|
wasTruncated: f.wasTruncated,
|
|
23
|
-
|
|
24
|
-
lostPercent: Math.round(f.lostPercent),
|
|
25
|
-
estTokens: f.estTokens,
|
|
26
|
-
injectedEstTokens: f.injectedEstTokens,
|
|
88
|
+
estTokens: f.injectedEstTokens,
|
|
27
89
|
})),
|
|
90
|
+
sessionHistoryTokensEst: sessionHistoryTokens,
|
|
28
91
|
});
|
|
29
92
|
return;
|
|
30
93
|
}
|
|
31
94
|
header("🔍", "Context Analysis", `agent: ${agent}`);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
f.wasTruncated
|
|
40
|
-
? `${f.injectedChars.toLocaleString()} chars`
|
|
41
|
-
: `${f.injectedChars.toLocaleString()} chars`,
|
|
42
|
-
`~${fmtTokens(f.injectedEstTokens)}`,
|
|
43
|
-
truncBadge(f.wasTruncated),
|
|
44
|
-
]);
|
|
95
|
+
// ── Overall context bar ──────────────────────────────────────────────────
|
|
96
|
+
if (sessionTokens > 0) {
|
|
97
|
+
const { tokenBar } = await import("../format.js");
|
|
98
|
+
const pct = Math.round(sessionTokens / resolvedWindowSize * 100);
|
|
99
|
+
console.log(` Context used: ${fmtTokens(sessionTokens)} / ${fmtTokens(resolvedWindowSize)} tokens ` +
|
|
100
|
+
`${tokenBar(sessionTokens, resolvedWindowSize)} ${pct}%`);
|
|
101
|
+
console.log();
|
|
45
102
|
}
|
|
46
|
-
|
|
47
|
-
|
|
103
|
+
else {
|
|
104
|
+
console.log(severity.muted(` Context window: ${fmtTokens(resolvedWindowSize)} tokens (actual usage not available)`));
|
|
48
105
|
console.log();
|
|
49
|
-
for (const f of analysis.truncatedFiles) {
|
|
50
|
-
console.log(severity.warning(` ⚠ ${f.name}: ${f.lostChars.toLocaleString()} chars (${Math.round(f.lostPercent)}%) are never seen by the model`));
|
|
51
|
-
}
|
|
52
106
|
}
|
|
107
|
+
// ── Workspace directory info ─────────────────────────────────────────────
|
|
108
|
+
console.log(severity.muted(` Workspace: ${cfg.workspaceDir}`));
|
|
109
|
+
console.log(severity.muted(` Bootstrap max: ${cfg.bootstrapMaxChars.toLocaleString()} chars / file`));
|
|
110
|
+
console.log();
|
|
111
|
+
// ── Injected workspace files ─────────────────────────────────────────────
|
|
112
|
+
console.log(severity.bold(" Injected workspace files:"));
|
|
53
113
|
console.log();
|
|
54
|
-
|
|
114
|
+
if (wsFiles.length === 0) {
|
|
115
|
+
console.log(severity.muted(" (none found)"));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const table = makeTable(["File", "Raw", "Injected", "~Tokens", "Status"], [18, 14, 14, 10, 12]);
|
|
119
|
+
for (const f of wsFiles) {
|
|
120
|
+
table.push([
|
|
121
|
+
f.name,
|
|
122
|
+
`${f.rawChars.toLocaleString()} chars`,
|
|
123
|
+
`${f.injectedChars.toLocaleString()} chars`,
|
|
124
|
+
fmtTok(f.injectedEstTokens),
|
|
125
|
+
truncBadge(f.wasTruncated),
|
|
126
|
+
]);
|
|
127
|
+
}
|
|
128
|
+
console.log(table.toString());
|
|
129
|
+
if (analysis.truncatedFiles.length > 0) {
|
|
130
|
+
for (const f of analysis.truncatedFiles) {
|
|
131
|
+
console.log(severity.warning(` ⚠ ${f.name}: ${f.lostChars.toLocaleString()} chars (${Math.round(f.lostPercent)}%) truncated — model never sees this content`));
|
|
132
|
+
}
|
|
133
|
+
console.log();
|
|
134
|
+
}
|
|
135
|
+
console.log(` Workspace subtotal: ~${fmtTokens(wsTotalInjectedTokens)} tokens ` +
|
|
136
|
+
severity.muted(`(${wsFiles.length} files, ${wsTotalInjectedChars.toLocaleString()} chars injected)`));
|
|
137
|
+
}
|
|
55
138
|
console.log();
|
|
56
|
-
|
|
57
|
-
if (
|
|
58
|
-
console.log(`
|
|
139
|
+
// ── Skills (if found) ────────────────────────────────────────────────────
|
|
140
|
+
if (skills.length > 0) {
|
|
141
|
+
console.log(severity.bold(` Skills (${skills.length} loaded):`));
|
|
142
|
+
console.log();
|
|
143
|
+
const skillTable = makeTable(["Skill", "Chars", "~Tokens"], [24, 12, 12]);
|
|
144
|
+
for (const sk of skills.slice(0, 10)) {
|
|
145
|
+
skillTable.push([sk.name, sk.chars.toLocaleString(), fmtTok(estTok(sk.chars))]);
|
|
146
|
+
}
|
|
147
|
+
if (skills.length > 10) {
|
|
148
|
+
skillTable.push([`… +${skills.length - 10} more`, "", ""]);
|
|
149
|
+
}
|
|
150
|
+
console.log(skillTable.toString());
|
|
151
|
+
console.log(` Skills subtotal: ~${fmtTokens(estTok(skillsChars))} tokens`);
|
|
152
|
+
console.log();
|
|
59
153
|
}
|
|
60
|
-
|
|
61
|
-
if (
|
|
62
|
-
|
|
63
|
-
console.log(
|
|
154
|
+
// ── Session history estimate ─────────────────────────────────────────────
|
|
155
|
+
if (sessionTokens > 0) {
|
|
156
|
+
console.log(severity.bold(" Session history estimate:"));
|
|
157
|
+
console.log();
|
|
158
|
+
console.log(` Total in context: ${fmtTokens(sessionTokens)} tokens`);
|
|
159
|
+
console.log(` Fixed overhead: ~${fmtTokens(fixedOverheadTokens)} tokens ` +
|
|
160
|
+
severity.muted("(workspace files)"));
|
|
161
|
+
console.log(` Conversation est: ~${fmtTokens(sessionHistoryTokens)} tokens ` +
|
|
162
|
+
severity.muted("(messages + system prompt + tools)"));
|
|
163
|
+
console.log();
|
|
164
|
+
console.log(severity.muted(" Note: For exact breakdown, run: /context detail inside OpenClaw"));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
console.log(severity.muted(" Session token data not available."));
|
|
168
|
+
console.log(severity.muted(" Start a session and ensure the daemon is running: clawprobe start"));
|
|
64
169
|
}
|
|
65
170
|
console.log();
|
|
171
|
+
// ── Remaining headroom ───────────────────────────────────────────────────
|
|
172
|
+
if (sessionTokens > 0 && resolvedWindowSize > 0) {
|
|
173
|
+
const remaining = resolvedWindowSize - sessionTokens;
|
|
174
|
+
const remainingPct = Math.round(remaining / resolvedWindowSize * 100);
|
|
175
|
+
console.log(severity.bold(" Remaining headroom:") +
|
|
176
|
+
` ${fmtTokens(remaining)} tokens (${remainingPct}%)`);
|
|
177
|
+
if (remaining < resolvedWindowSize * 0.1) {
|
|
178
|
+
console.log(severity.warning(" ⚠ Less than 10% context remaining — compaction may be needed soon"));
|
|
179
|
+
}
|
|
180
|
+
console.log();
|
|
181
|
+
}
|
|
66
182
|
}
|
|
67
183
|
//# 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":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GvF"}
|
|
@@ -16,12 +16,15 @@ export async function runStatus(cfg, opts) {
|
|
|
16
16
|
process.exit(1);
|
|
17
17
|
}
|
|
18
18
|
const snapshot = getLatestSnapshot(db, agent, sessionEntry.sessionKey);
|
|
19
|
-
//
|
|
20
|
-
|
|
19
|
+
// sessionTokens = actual tokens currently in the model's context window
|
|
20
|
+
// (matches "Session tokens (cached): N total" in /context detail)
|
|
21
|
+
// windowSize = context window upper limit (ctx=256000)
|
|
22
|
+
// sessions.json's contextTokens field stores the window upper limit, NOT actual usage.
|
|
23
|
+
const sessionTokens = sessionEntry.sessionTokens; // actual usage; 0 if not reported
|
|
24
|
+
const windowSize = sessionEntry.windowSize || sessionEntry.contextTokens; // upper limit
|
|
21
25
|
let compactionCount = sessionEntry.compactionCount;
|
|
22
26
|
let lastActiveAt = sessionEntry.updatedAt;
|
|
23
|
-
// When sessions.json has no token/compact data yet, derive from transcript
|
|
24
|
-
// "clawprobe status" shows existing state without requiring daemon to have run first.
|
|
27
|
+
// When sessions.json has no token/compact data yet, derive from transcript.
|
|
25
28
|
const transcriptPath = path.join(cfg.sessionsDir, `${sessionEntry.sessionKey}.jsonl`);
|
|
26
29
|
if (fs.existsSync(transcriptPath)) {
|
|
27
30
|
if (compactionCount === 0) {
|
|
@@ -43,8 +46,9 @@ export async function runStatus(cfg, opts) {
|
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
const model = snapshot?.model ?? sessionEntry.modelOverride ?? null;
|
|
46
|
-
const
|
|
47
|
-
const
|
|
49
|
+
const resolvedWindowSize = getWindowSize(model, windowSize || sessionTokens);
|
|
50
|
+
const displayContextTokens = sessionTokens > 0 ? sessionTokens : 0;
|
|
51
|
+
const utilization = resolvedWindowSize > 0 ? displayContextTokens / resolvedWindowSize : 0;
|
|
48
52
|
const isActive = !opts.session;
|
|
49
53
|
if (opts.json) {
|
|
50
54
|
outputJson({
|
|
@@ -53,8 +57,8 @@ export async function runStatus(cfg, opts) {
|
|
|
53
57
|
sessionId: sessionEntry.sessionId,
|
|
54
58
|
model,
|
|
55
59
|
provider: snapshot?.provider ?? sessionEntry.providerOverride ?? null,
|
|
56
|
-
|
|
57
|
-
windowSize,
|
|
60
|
+
sessionTokens: displayContextTokens,
|
|
61
|
+
windowSize: resolvedWindowSize,
|
|
58
62
|
utilizationPct: Math.round(utilization * 100),
|
|
59
63
|
inputTokens: sessionEntry.inputTokens,
|
|
60
64
|
outputTokens: sessionEntry.outputTokens,
|
|
@@ -70,8 +74,14 @@ export async function runStatus(cfg, opts) {
|
|
|
70
74
|
if (model)
|
|
71
75
|
console.log(` Model: ${model}`);
|
|
72
76
|
console.log();
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
if (displayContextTokens > 0) {
|
|
78
|
+
console.log(` Context: ${fmtTokens(displayContextTokens)} / ${fmtTokens(resolvedWindowSize)} tokens ` +
|
|
79
|
+
`${tokenBar(displayContextTokens, resolvedWindowSize)} ${Math.round(utilization * 100)}%`);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.log(` Context window: ${fmtTokens(resolvedWindowSize)} tokens ` +
|
|
83
|
+
severity.muted("(actual usage not in sessions.json — run: clawprobe context)"));
|
|
84
|
+
}
|
|
75
85
|
console.log(` This session: ${fmtTokens(sessionEntry.inputTokens)} in / ${fmtTokens(sessionEntry.outputTokens)} out`);
|
|
76
86
|
console.log(` Compacts: ${compactionCount}`);
|
|
77
87
|
if (lastActiveAt) {
|
|
@@ -79,10 +89,9 @@ export async function runStatus(cfg, opts) {
|
|
|
79
89
|
}
|
|
80
90
|
if (sessionEntry.inputTokens === 0 &&
|
|
81
91
|
sessionEntry.outputTokens === 0 &&
|
|
82
|
-
sessionEntry.contextTokens === 0 &&
|
|
83
92
|
fs.existsSync(transcriptPath)) {
|
|
84
93
|
console.log();
|
|
85
|
-
console.log(severity.muted(" Token counts come from sessions.json. If OpenClaw hasn
|
|
94
|
+
console.log(severity.muted(" Token counts come from sessions.json. If OpenClaw hasn't written them yet, run a turn or check your OpenClaw version."));
|
|
86
95
|
}
|
|
87
96
|
console.log();
|
|
88
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,MAAM,EAAE,SAAS,EAAE,OAAO,EAAU,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAC9E,aAAa,GACd,MAAM,cAAc,CAAC;AAQtB,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAmB,EAAE,IAAmB;IACtE,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,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO;QAC7B,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC;QAC/E,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEtC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,UAAU,CAAC,yDAAyD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAEvE
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,14 @@ export interface SessionEntry {
|
|
|
5
5
|
inputTokens: number;
|
|
6
6
|
outputTokens: number;
|
|
7
7
|
totalTokens: number;
|
|
8
|
+
/** Actual tokens currently in context window (session_tokens / total in /context detail) */
|
|
9
|
+
sessionTokens: number;
|
|
10
|
+
/** Context window size upper limit (ctx= field, i.e. model max context) */
|
|
11
|
+
windowSize: number;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use sessionTokens for actual usage, windowSize for the limit.
|
|
14
|
+
* Kept for backward compatibility — may equal windowSize (not actual usage).
|
|
15
|
+
*/
|
|
8
16
|
contextTokens: number;
|
|
9
17
|
compactionCount: number;
|
|
10
18
|
memoryFlushAt?: number;
|
|
@@ -21,6 +29,10 @@ interface RawSessionEntry {
|
|
|
21
29
|
outputTokens?: number;
|
|
22
30
|
totalTokens?: number;
|
|
23
31
|
contextTokens?: number;
|
|
32
|
+
sessionTokens?: number;
|
|
33
|
+
session_tokens?: number;
|
|
34
|
+
ctxSize?: number;
|
|
35
|
+
ctx_size?: number;
|
|
24
36
|
compactionCount?: number;
|
|
25
37
|
memoryFlushAt?: number;
|
|
26
38
|
modelOverride?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/core/session-store.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AAGD,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CA2BrE;
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/core/session-store.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,aAAa,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AAGD,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CA2BrE;AA6ED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE5F;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAK9E;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAM5D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D"}
|
|
@@ -35,7 +35,14 @@ function normalizeEntry(sessionKey, raw) {
|
|
|
35
35
|
const inputTokens = getFirstNum(sources, "inputTokens", "input_tokens");
|
|
36
36
|
const outputTokens = getFirstNum(sources, "outputTokens", "output_tokens");
|
|
37
37
|
const totalTokens = getFirstNum(sources, "totalTokens", "total_tokens") || inputTokens + outputTokens;
|
|
38
|
+
// contextTokens in sessions.json is actually the window size upper limit (ctx=256000),
|
|
39
|
+
// NOT the actual current usage. The actual usage is in session_tokens field.
|
|
38
40
|
const contextTokens = getFirstNum(sources, "contextTokens", "context_tokens");
|
|
41
|
+
// sessionTokens = actual tokens in context right now (matches "Session tokens (cached)" in /context detail)
|
|
42
|
+
// Try several field names OpenClaw may use
|
|
43
|
+
const sessionTokens = getFirstNum(sources, "sessionTokens", "session_tokens");
|
|
44
|
+
// windowSize = context window upper limit (ctx= value)
|
|
45
|
+
const windowSize = getFirstNum(sources, "ctxSize", "ctx_size") || contextTokens;
|
|
39
46
|
const compactionCount = getFirstNum(sources, "compactionCount", "compaction_count");
|
|
40
47
|
let updatedAt = getFirstNum(sources, "updatedAt", "updated_at");
|
|
41
48
|
if (updatedAt === 0) {
|
|
@@ -53,6 +60,8 @@ function normalizeEntry(sessionKey, raw) {
|
|
|
53
60
|
inputTokens,
|
|
54
61
|
outputTokens,
|
|
55
62
|
totalTokens,
|
|
63
|
+
sessionTokens,
|
|
64
|
+
windowSize,
|
|
56
65
|
contextTokens,
|
|
57
66
|
compactionCount,
|
|
58
67
|
memoryFlushAt: (raw.memoryFlushAt ?? raw.memory_flush_at),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/core/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/core/session-store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { runCompacts } from "./cli/commands/compacts.js";
|
|
|
12
12
|
import { runContext } from "./cli/commands/context.js";
|
|
13
13
|
import { runSuggest } from "./cli/commands/suggest.js";
|
|
14
14
|
import { runMemoryList, runMemorySearch, runMemoryAdd, runMemoryEdit, runMemoryDelete, runMemorySaveCompact, } from "./cli/commands/memory.js";
|
|
15
|
-
const VERSION = "0.2.
|
|
15
|
+
const VERSION = "0.2.3";
|
|
16
16
|
const program = new Command();
|
|
17
17
|
program
|
|
18
18
|
.name("clawprobe")
|