@myhpmp/cli 1.1.5 → 1.1.6
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.
|
@@ -9,17 +9,21 @@ import path from 'node:path';
|
|
|
9
9
|
const DATA_DIR = path.join(os.homedir(), '.myhpmp');
|
|
10
10
|
const MAX_INPUT_SIZE = 1_000_000; // 1MB
|
|
11
11
|
const LAST_TOKENS_PATH = path.join(DATA_DIR, 'last-tokens.json');
|
|
12
|
-
async function
|
|
12
|
+
async function getTokenState() {
|
|
13
13
|
try {
|
|
14
14
|
const raw = await fs.readFile(LAST_TOKENS_PATH, 'utf-8');
|
|
15
|
-
|
|
15
|
+
const data = JSON.parse(raw);
|
|
16
|
+
return {
|
|
17
|
+
tokens: Number(data.tokens) || 0,
|
|
18
|
+
pendingTokens: Number(data.pendingTokens) || 0,
|
|
19
|
+
};
|
|
16
20
|
}
|
|
17
21
|
catch {
|
|
18
|
-
return 0;
|
|
22
|
+
return { tokens: 0, pendingTokens: 0 };
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
|
-
async function
|
|
22
|
-
await fs.writeFile(LAST_TOKENS_PATH, JSON.stringify(
|
|
25
|
+
async function saveTokenState(state) {
|
|
26
|
+
await fs.writeFile(LAST_TOKENS_PATH, JSON.stringify(state), 'utf-8');
|
|
23
27
|
}
|
|
24
28
|
async function main() {
|
|
25
29
|
let input = '';
|
|
@@ -57,24 +61,34 @@ async function main() {
|
|
|
57
61
|
}
|
|
58
62
|
if (currentTotal <= 0)
|
|
59
63
|
return;
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
// First call in session —
|
|
63
|
-
if (previousTotal === 0)
|
|
64
|
+
const state = await getTokenState();
|
|
65
|
+
const previousTotal = state.tokens;
|
|
66
|
+
// First call in session — set baseline only
|
|
67
|
+
if (previousTotal === 0) {
|
|
68
|
+
await saveTokenState({ tokens: currentTotal, pendingTokens: 0 });
|
|
64
69
|
return;
|
|
70
|
+
}
|
|
65
71
|
const deltaTokens = currentTotal - previousTotal;
|
|
66
|
-
if (deltaTokens <= 0)
|
|
72
|
+
if (deltaTokens <= 0) {
|
|
73
|
+
await saveTokenState({ tokens: currentTotal, pendingTokens: state.pendingTokens });
|
|
67
74
|
return;
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
}
|
|
76
|
+
// Accumulate small deltas until they reach the EXP threshold
|
|
77
|
+
const accumulated = state.pendingTokens + deltaTokens;
|
|
78
|
+
const exp = Math.min(calcTokenExp(accumulated), 1000);
|
|
79
|
+
if (exp <= 0) {
|
|
80
|
+
await saveTokenState({ tokens: currentTotal, pendingTokens: accumulated });
|
|
70
81
|
return;
|
|
82
|
+
}
|
|
83
|
+
// Flush: log EXP and reset pending
|
|
84
|
+
await saveTokenState({ tokens: currentTotal, pendingTokens: 0 });
|
|
71
85
|
const store = new LocalStore(DATA_DIR);
|
|
72
86
|
const stats = await store.load();
|
|
73
87
|
stats.totalExp += exp;
|
|
74
88
|
stats.level = getLevelInfo(stats.totalExp).level;
|
|
75
89
|
stats.updatedAt = new Date().toISOString();
|
|
76
90
|
await store.save(stats);
|
|
77
|
-
await logExp(exp, 'token_usage', { tokens:
|
|
91
|
+
await logExp(exp, 'token_usage', { tokens: accumulated, provider: 'claude' });
|
|
78
92
|
// Sync every 5 minutes
|
|
79
93
|
await autoSyncIfDue();
|
|
80
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-tool-use.js","sourceRoot":"","sources":["../../../src/hooks/claude/post-tool-use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpD,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,MAAM;AACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"post-tool-use.js","sourceRoot":"","sources":["../../../src/hooks/claude/post-tool-use.ts"],"names":[],"mappings":"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"}
|