clawdoctor 0.4.4 → 0.4.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.
- package/dist/alerters/telegram.d.ts +8 -1
- package/dist/alerters/telegram.d.ts.map +1 -1
- package/dist/alerters/telegram.js +54 -6
- package/dist/alerters/telegram.js.map +1 -1
- package/dist/audit.d.ts +1 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +3 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +51 -2
- package/dist/daemon.js.map +1 -1
- package/dist/healers/budget.d.ts +10 -0
- package/dist/healers/budget.d.ts.map +1 -0
- package/dist/healers/budget.js +92 -0
- package/dist/healers/budget.js.map +1 -0
- package/dist/healers/cron.js +2 -2
- package/dist/healers/cron.js.map +1 -1
- package/dist/healers/session.js +1 -1
- package/dist/healers/session.js.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +9 -7
- package/dist/utils.js.map +1 -1
- package/dist/watchers/auth.d.ts +3 -0
- package/dist/watchers/auth.d.ts.map +1 -1
- package/dist/watchers/auth.js +99 -3
- package/dist/watchers/auth.js.map +1 -1
- package/dist/watchers/budget.d.ts +11 -0
- package/dist/watchers/budget.d.ts.map +1 -0
- package/dist/watchers/budget.js +122 -0
- package/dist/watchers/budget.js.map +1 -0
- package/dist/watchers/session.d.ts.map +1 -1
- package/dist/watchers/session.js +28 -8
- package/dist/watchers/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -24,7 +24,13 @@ export declare class TelegramAlerter {
|
|
|
24
24
|
private isDuplicate;
|
|
25
25
|
private markDedup;
|
|
26
26
|
sendAlert(payload: AlertPayload): Promise<boolean>;
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Returns true if inline button mode is available (callbackBotToken is configured).
|
|
29
|
+
* When false, sendWithButtons falls back to a plain text message with CLI suggestions.
|
|
30
|
+
*/
|
|
31
|
+
hasCallbackSupport(): boolean;
|
|
32
|
+
sendWithButtons(text: string, buttons: InlineButton[][], handlers: Record<string, () => Promise<void>>, suggestions?: string[]): Promise<boolean>;
|
|
33
|
+
private sendPlainMessage;
|
|
28
34
|
pollCallbacks(): Promise<void>;
|
|
29
35
|
formatMessage(payload: AlertPayload): string;
|
|
30
36
|
formatApprovalMessage(watcher: string, message: string, options: Array<{
|
|
@@ -33,6 +39,7 @@ export declare class TelegramAlerter {
|
|
|
33
39
|
}>): {
|
|
34
40
|
text: string;
|
|
35
41
|
buttons: InlineButton[][];
|
|
42
|
+
suggestions: string[];
|
|
36
43
|
};
|
|
37
44
|
sendRecovery(watcherName: string, message: string): Promise<boolean>;
|
|
38
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/alerters/telegram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAOD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,YAAY,CAAK;gBAEb,MAAM,EAAE,gBAAgB;IAIpC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAInB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAOzC,OAAO,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/alerters/telegram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAOD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,YAAY,CAAK;gBAEb,MAAM,EAAE,gBAAgB;IAIpC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAInB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAOzC,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAKX,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IA4CxD;;;OAGG;IACH,kBAAkB,IAAI,OAAO;IAIvB,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EAAE,EAAE,EACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,OAAO,CAAC;YAmDL,gBAAgB;IAyBxB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAoEpC,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAsB5C,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,GACrD;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE;IAoB/D,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAS3E"}
|
|
@@ -28,7 +28,10 @@ class TelegramAlerter {
|
|
|
28
28
|
return true;
|
|
29
29
|
}
|
|
30
30
|
dedupKey(watcher, result) {
|
|
31
|
-
|
|
31
|
+
// Exclude message from key — messages often include incrementing counts
|
|
32
|
+
// ("failed 7 times", "failed 8 times") which would defeat dedup entirely.
|
|
33
|
+
// Watcher + event_type is enough to identify a unique problem.
|
|
34
|
+
return `${watcher}:${result.event_type}`;
|
|
32
35
|
}
|
|
33
36
|
isDuplicate(watcher, result) {
|
|
34
37
|
const key = this.dedupKey(watcher, result);
|
|
@@ -78,11 +81,28 @@ class TelegramAlerter {
|
|
|
78
81
|
return false;
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Returns true if inline button mode is available (callbackBotToken is configured).
|
|
86
|
+
* When false, sendWithButtons falls back to a plain text message with CLI suggestions.
|
|
87
|
+
*/
|
|
88
|
+
hasCallbackSupport() {
|
|
89
|
+
return !!this.config.alerts.telegram.callbackBotToken;
|
|
90
|
+
}
|
|
91
|
+
async sendWithButtons(text, buttons, handlers, suggestions) {
|
|
82
92
|
const { telegram } = this.config.alerts;
|
|
83
93
|
if (!telegram.enabled || !telegram.botToken || !telegram.chatId) {
|
|
84
94
|
return false;
|
|
85
95
|
}
|
|
96
|
+
// If no callbackBotToken, fall back to plain text with CLI suggestions.
|
|
97
|
+
// This avoids polling conflicts when the same bot token is shared with another
|
|
98
|
+
// process (e.g. OpenClaw), which would silently swallow callback_query updates.
|
|
99
|
+
if (!telegram.callbackBotToken) {
|
|
100
|
+
const suggestionLines = suggestions?.length
|
|
101
|
+
? suggestions
|
|
102
|
+
: buttons.flat().map(b => `→ ${b.text}: <code>clawdoctor ${b.callback_data.replace(/:/g, ' ')}</code>`);
|
|
103
|
+
const fallbackText = `${text}\n\n${suggestionLines.join('\n')}`;
|
|
104
|
+
return this.sendPlainMessage(fallbackText);
|
|
105
|
+
}
|
|
86
106
|
try {
|
|
87
107
|
const url = `${TELEGRAM_API}/bot${telegram.botToken}/sendMessage`;
|
|
88
108
|
const response = await fetch(url, {
|
|
@@ -116,9 +136,35 @@ class TelegramAlerter {
|
|
|
116
136
|
return false;
|
|
117
137
|
}
|
|
118
138
|
}
|
|
139
|
+
async sendPlainMessage(text) {
|
|
140
|
+
const { telegram } = this.config.alerts;
|
|
141
|
+
try {
|
|
142
|
+
const url = `${TELEGRAM_API}/bot${telegram.botToken}/sendMessage`;
|
|
143
|
+
const response = await fetch(url, {
|
|
144
|
+
method: 'POST',
|
|
145
|
+
headers: { 'Content-Type': 'application/json' },
|
|
146
|
+
body: JSON.stringify({
|
|
147
|
+
chat_id: telegram.chatId,
|
|
148
|
+
text,
|
|
149
|
+
parse_mode: 'HTML',
|
|
150
|
+
}),
|
|
151
|
+
});
|
|
152
|
+
if (!response.ok) {
|
|
153
|
+
const body = await response.text();
|
|
154
|
+
console.error(`[TelegramAlerter] Failed to send plain message: ${response.status} ${body}`);
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
console.error(`[TelegramAlerter] Error sending plain message:`, err);
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
119
164
|
async pollCallbacks() {
|
|
120
165
|
const { telegram } = this.config.alerts;
|
|
121
|
-
if
|
|
166
|
+
// Only poll if a dedicated callback bot token is configured
|
|
167
|
+
if (!telegram.enabled || !telegram.callbackBotToken || !telegram.chatId) {
|
|
122
168
|
return;
|
|
123
169
|
}
|
|
124
170
|
// Evict expired callbacks
|
|
@@ -132,7 +178,7 @@ class TelegramAlerter {
|
|
|
132
178
|
return;
|
|
133
179
|
}
|
|
134
180
|
try {
|
|
135
|
-
const url = `${TELEGRAM_API}/bot${telegram.
|
|
181
|
+
const url = `${TELEGRAM_API}/bot${telegram.callbackBotToken}/getUpdates?offset=${this.lastUpdateId + 1}&timeout=1&allowed_updates=["callback_query"]`;
|
|
136
182
|
const response = await fetch(url);
|
|
137
183
|
if (!response.ok)
|
|
138
184
|
return;
|
|
@@ -149,7 +195,7 @@ class TelegramAlerter {
|
|
|
149
195
|
continue;
|
|
150
196
|
// Answer the callback query to remove loading state
|
|
151
197
|
try {
|
|
152
|
-
await fetch(`${TELEGRAM_API}/bot${telegram.
|
|
198
|
+
await fetch(`${TELEGRAM_API}/bot${telegram.callbackBotToken}/answerCallbackQuery`, {
|
|
153
199
|
method: 'POST',
|
|
154
200
|
headers: { 'Content-Type': 'application/json' },
|
|
155
201
|
body: JSON.stringify({ callback_query_id: cbq.id, text: 'Processing...' }),
|
|
@@ -198,7 +244,9 @@ class TelegramAlerter {
|
|
|
198
244
|
const buttons = [
|
|
199
245
|
options.map(o => ({ text: o.text, callback_data: o.callbackData })),
|
|
200
246
|
];
|
|
201
|
-
|
|
247
|
+
// Plain text fallback suggestions shown when callbackBotToken is not configured
|
|
248
|
+
const suggestions = options.map(o => `→ ${o.text}: <code>clawdoctor ${o.callbackData.replace(/:/g, ' ')}</code>`);
|
|
249
|
+
return { text: lines.join('\n'), buttons, suggestions };
|
|
202
250
|
}
|
|
203
251
|
async sendRecovery(watcherName, message) {
|
|
204
252
|
const fakeResult = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/alerters/telegram.ts"],"names":[],"mappings":";;;AAGA,0CAA8D;AAE9D,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,wBAAwB;AAC7D,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,0EAA0E;AAE3G,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAkBhD,MAAa,eAAe;IAClB,MAAM,CAAmB;IACzB,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC/C,UAAU,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,mDAAmD;IAChG,gBAAgB,GAAiC,IAAI,GAAG,EAAE,CAAC;IAC3D,YAAY,GAAG,CAAC,CAAC;IAEzB,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,aAAa,CAAC,WAAmB;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,aAAa,CAAC;IAChD,CAAC;IAEO,WAAW,CAAC,WAAmB;QACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,MAAmB;QAC7B,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,QAAQ,CAAC,OAAe,EAAE,MAAmB;QACnD,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/alerters/telegram.ts"],"names":[],"mappings":"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"}
|
package/dist/audit.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const AUDIT_PATH: string;
|
|
2
2
|
export type AuditTier = 'green' | 'yellow';
|
|
3
|
-
export type AuditResult = 'success' | 'failed' | 'dry-run' | 'pending'
|
|
3
|
+
export type AuditResult = 'success' | 'failed' | 'dry-run' | 'pending';
|
|
4
4
|
export interface AuditEntry {
|
|
5
5
|
timestamp: string;
|
|
6
6
|
healer: string;
|
package/dist/audit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,QAA2C,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,QAA2C,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAGnD;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAK,GAAG,UAAU,EAAE,CAavD"}
|
package/dist/config.d.ts
CHANGED
|
@@ -10,10 +10,22 @@ export interface TelegramConfig {
|
|
|
10
10
|
enabled: boolean;
|
|
11
11
|
botToken: string;
|
|
12
12
|
chatId: string;
|
|
13
|
+
/**
|
|
14
|
+
* Optional: a separate bot token dedicated to receiving callback_query updates
|
|
15
|
+
* (inline button presses). If set, ClawDoctor will poll this bot for callbacks
|
|
16
|
+
* and show inline buttons in alerts. If omitted, alerts fall back to plain text
|
|
17
|
+
* suggestions (e.g. "Run: clawdoctor retry metrics-collector") to avoid
|
|
18
|
+
* conflicts with other processes polling the same bot token (e.g. OpenClaw).
|
|
19
|
+
*/
|
|
20
|
+
callbackBotToken?: string;
|
|
13
21
|
}
|
|
14
22
|
export interface AlertsConfig {
|
|
15
23
|
telegram: TelegramConfig;
|
|
16
24
|
}
|
|
25
|
+
export interface BudgetConfig {
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
dailyLimitUsd: number;
|
|
28
|
+
}
|
|
17
29
|
export interface ClawDoctorConfig {
|
|
18
30
|
openclawPath: string;
|
|
19
31
|
watchers: {
|
|
@@ -30,6 +42,7 @@ export interface ClawDoctorConfig {
|
|
|
30
42
|
session: HealerConfig;
|
|
31
43
|
};
|
|
32
44
|
alerts: AlertsConfig;
|
|
45
|
+
budget: BudgetConfig;
|
|
33
46
|
dryRun: boolean;
|
|
34
47
|
retentionDays: number;
|
|
35
48
|
}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -158,6 +158,10 @@ exports.DEFAULT_CONFIG = {
|
|
|
158
158
|
chatId: '',
|
|
159
159
|
},
|
|
160
160
|
},
|
|
161
|
+
budget: {
|
|
162
|
+
enabled: true,
|
|
163
|
+
dailyLimitUsd: 50,
|
|
164
|
+
},
|
|
161
165
|
dryRun: false,
|
|
162
166
|
retentionDays: 7,
|
|
163
167
|
};
|
|
@@ -189,6 +193,7 @@ function mergeConfig(defaults, overrides) {
|
|
|
189
193
|
...(overrides.alerts?.telegram ?? {}),
|
|
190
194
|
},
|
|
191
195
|
},
|
|
196
|
+
budget: { ...defaults.budget, ...(overrides.budget ?? {}) },
|
|
192
197
|
};
|
|
193
198
|
}
|
|
194
199
|
function saveConfig(config) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare class Daemon {
|
|
|
8
8
|
private cronHealer;
|
|
9
9
|
private authHealer;
|
|
10
10
|
private sessionHealer;
|
|
11
|
+
private budgetHealer;
|
|
11
12
|
private running;
|
|
12
13
|
private tickInterval;
|
|
13
14
|
private plan;
|
|
@@ -22,6 +23,8 @@ export declare class Daemon {
|
|
|
22
23
|
private tick;
|
|
23
24
|
private runWatcher;
|
|
24
25
|
private handleResult;
|
|
26
|
+
private approvalDedup;
|
|
27
|
+
private readonly APPROVAL_DEDUP_MS;
|
|
25
28
|
private sendApprovalRequest;
|
|
26
29
|
private handleCallbackAction;
|
|
27
30
|
private attemptHeal;
|
package/dist/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAyC,MAAM,aAAa,CAAC;AACtF,OAAO,EAAe,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAyC,MAAM,aAAa,CAAC;AACtF,OAAO,EAAe,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAwC9D,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,oBAAoB,CAA+B;IAC3D,OAAO,CAAC,oBAAoB,CAA+B;IAC3D,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAU;gBAEnC,MAAM,EAAE,gBAAgB;IAmBpC,OAAO,CAAC,aAAa;IA0DrB,KAAK,IAAI,IAAI;IA+Db,IAAI,IAAI,IAAI;IAkBZ,OAAO,CAAC,IAAI;YAYE,UAAU;YAWV,YAAY;IAuB1B,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;YAEtC,mBAAmB;YA4BnB,oBAAoB;YA6DpB,WAAW;IA4DnB,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;CAiBrD"}
|
package/dist/daemon.js
CHANGED
|
@@ -8,10 +8,12 @@ const cron_js_1 = require("./watchers/cron.js");
|
|
|
8
8
|
const session_js_1 = require("./watchers/session.js");
|
|
9
9
|
const auth_js_1 = require("./watchers/auth.js");
|
|
10
10
|
const cost_js_1 = require("./watchers/cost.js");
|
|
11
|
+
const budget_js_1 = require("./watchers/budget.js");
|
|
11
12
|
const process_js_1 = require("./healers/process.js");
|
|
12
13
|
const cron_js_2 = require("./healers/cron.js");
|
|
13
14
|
const auth_js_2 = require("./healers/auth.js");
|
|
14
15
|
const session_js_2 = require("./healers/session.js");
|
|
16
|
+
const budget_js_2 = require("./healers/budget.js");
|
|
15
17
|
const telegram_js_1 = require("./alerters/telegram.js");
|
|
16
18
|
const store_js_1 = require("./store.js");
|
|
17
19
|
const utils_js_1 = require("./utils.js");
|
|
@@ -37,6 +39,7 @@ class Daemon {
|
|
|
37
39
|
cronHealer;
|
|
38
40
|
authHealer;
|
|
39
41
|
sessionHealer;
|
|
42
|
+
budgetHealer;
|
|
40
43
|
running = false;
|
|
41
44
|
tickInterval = null;
|
|
42
45
|
plan = 'free';
|
|
@@ -51,9 +54,15 @@ class Daemon {
|
|
|
51
54
|
this.cronHealer = new cron_js_2.CronHealer(config);
|
|
52
55
|
this.authHealer = new auth_js_2.AuthHealer(config);
|
|
53
56
|
this.sessionHealer = new session_js_2.SessionHealer(config);
|
|
57
|
+
this.budgetHealer = new budget_js_2.BudgetHealer(config);
|
|
54
58
|
this.plan = (0, config_js_1.loadLicense)()?.plan ?? 'free';
|
|
55
59
|
// Enforce tier-appropriate retention; override any manual config
|
|
56
60
|
this.config.retentionDays = PLAN_RETENTION_DAYS[this.plan];
|
|
61
|
+
// Heal plan: ensure healers are active (dryRun=false); non-heal: force dryRun=true
|
|
62
|
+
const healPlanActive = this.plan === 'heal';
|
|
63
|
+
for (const key of Object.keys(this.config.healers)) {
|
|
64
|
+
this.config.healers[key].dryRun = !healPlanActive;
|
|
65
|
+
}
|
|
57
66
|
this.setupWatchers();
|
|
58
67
|
}
|
|
59
68
|
setupWatchers() {
|
|
@@ -96,6 +105,13 @@ class Daemon {
|
|
|
96
105
|
lastRun: 0,
|
|
97
106
|
});
|
|
98
107
|
}
|
|
108
|
+
if (this.config.budget?.enabled) {
|
|
109
|
+
candidates.push({
|
|
110
|
+
watcher: new budget_js_1.BudgetWatcher(this.config),
|
|
111
|
+
intervalMs: 300 * 1000,
|
|
112
|
+
lastRun: 0,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
99
115
|
// Apply monitor limit
|
|
100
116
|
this.watchers = candidates.slice(0, maxMonitors);
|
|
101
117
|
if (candidates.length > this.watchers.length) {
|
|
@@ -219,9 +235,18 @@ class Daemon {
|
|
|
219
235
|
}
|
|
220
236
|
}
|
|
221
237
|
}
|
|
238
|
+
approvalDedup = new Map();
|
|
239
|
+
APPROVAL_DEDUP_MS = 60 * 60 * 1000; // 1 hour
|
|
222
240
|
async sendApprovalRequest(watcherName, healResult) {
|
|
241
|
+
// Deduplicate: only send one approval request per watcher per hour
|
|
242
|
+
const dedupKey = `approval:${watcherName}:${healResult.action}`;
|
|
243
|
+
const lastSent = this.approvalDedup.get(dedupKey) ?? 0;
|
|
244
|
+
if (Date.now() - lastSent < this.APPROVAL_DEDUP_MS) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
this.approvalDedup.set(dedupKey, Date.now());
|
|
223
248
|
const options = healResult.approvalOptions ?? [];
|
|
224
|
-
const { text, buttons } = this.alerter.formatApprovalMessage(watcherName, healResult.message, options);
|
|
249
|
+
const { text, buttons, suggestions } = this.alerter.formatApprovalMessage(watcherName, healResult.message, options);
|
|
225
250
|
const handlers = {};
|
|
226
251
|
for (const option of options) {
|
|
227
252
|
const cbData = option.callbackData;
|
|
@@ -229,7 +254,7 @@ class Daemon {
|
|
|
229
254
|
await this.handleCallbackAction(cbData);
|
|
230
255
|
};
|
|
231
256
|
}
|
|
232
|
-
await this.alerter.sendWithButtons(text, buttons, handlers);
|
|
257
|
+
await this.alerter.sendWithButtons(text, buttons, handlers, suggestions);
|
|
233
258
|
}
|
|
234
259
|
async handleCallbackAction(callbackData) {
|
|
235
260
|
const now = Date.now();
|
|
@@ -266,6 +291,22 @@ class Daemon {
|
|
|
266
291
|
console.log(`[${(0, utils_js_1.nowIso)()}] [CronHealer] Ignored alert for ${cronName}`);
|
|
267
292
|
}
|
|
268
293
|
}
|
|
294
|
+
else if (resource === 'budget') {
|
|
295
|
+
if (action === 'kill_all') {
|
|
296
|
+
const { killed, failed } = await this.budgetHealer.killAllSessions();
|
|
297
|
+
console.log(`[${(0, utils_js_1.nowIso)()}] [BudgetHealer] Emergency stop: ${killed} killed, ${failed} failed`);
|
|
298
|
+
}
|
|
299
|
+
else if (action === 'increase') {
|
|
300
|
+
const newLimit = parseFloat(args[0] ?? '0');
|
|
301
|
+
if (newLimit > 0) {
|
|
302
|
+
this.config.budget.dailyLimitUsd = newLimit;
|
|
303
|
+
console.log(`[${(0, utils_js_1.nowIso)()}] [BudgetHealer] Daily limit increased to $${newLimit}`);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else if (action === 'ignore') {
|
|
307
|
+
console.log(`[${(0, utils_js_1.nowIso)()}] [BudgetHealer] Budget alert ignored`);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
269
310
|
else if (resource === 'session') {
|
|
270
311
|
const agent = args[0] ?? 'unknown';
|
|
271
312
|
const session = args[1] ?? 'unknown';
|
|
@@ -325,6 +366,14 @@ class Daemon {
|
|
|
325
366
|
return healResult;
|
|
326
367
|
}
|
|
327
368
|
}
|
|
369
|
+
if (watcher.name === 'BudgetWatcher' && result.event_type === 'budget_exceeded') {
|
|
370
|
+
if (autoFixAllowed) {
|
|
371
|
+
const context = result.details ?? {};
|
|
372
|
+
const healResult = await this.budgetHealer.heal(context);
|
|
373
|
+
console.log(`[${(0, utils_js_1.nowIso)()}] [BudgetHealer] ${healResult.success ? 'SUCCESS' : 'FAILED'}: ${healResult.message}`);
|
|
374
|
+
return healResult;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
328
377
|
return null;
|
|
329
378
|
}
|
|
330
379
|
async runOnce() {
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseHealer, HealResult } from './base.js';
|
|
2
|
+
export declare class BudgetHealer extends BaseHealer {
|
|
3
|
+
readonly name = "BudgetHealer";
|
|
4
|
+
heal(context: Record<string, unknown>): Promise<HealResult>;
|
|
5
|
+
killAllSessions(): Promise<{
|
|
6
|
+
killed: number;
|
|
7
|
+
failed: number;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/healers/budget.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGnD,qBAAa,YAAa,SAAQ,UAAU;IAC1C,QAAQ,CAAC,IAAI,kBAAkB;IAEzB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAkC3D,eAAe,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAuCrE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
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.BudgetHealer = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const base_js_1 = require("./base.js");
|
|
10
|
+
const utils_js_1 = require("../utils.js");
|
|
11
|
+
class BudgetHealer extends base_js_1.BaseHealer {
|
|
12
|
+
name = 'BudgetHealer';
|
|
13
|
+
async heal(context) {
|
|
14
|
+
const dailySpend = context.dailySpend ?? 0;
|
|
15
|
+
const limit = context.limit ?? 50;
|
|
16
|
+
const dryRun = this.isEffectiveDryRun(false);
|
|
17
|
+
if (dryRun) {
|
|
18
|
+
this.writeAudit('budget-emergency-stop', 'all-sessions', 'yellow', 'dry-run');
|
|
19
|
+
return {
|
|
20
|
+
success: true,
|
|
21
|
+
action: 'dry-run: would kill all non-essential sessions',
|
|
22
|
+
message: `[DRY RUN] Would kill all sessions (budget $${dailySpend.toFixed(2)} exceeded $${limit.toFixed(2)} limit)`,
|
|
23
|
+
tier: 'yellow',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const increaseAmount = Math.ceil(limit * 1.5 / 10) * 10;
|
|
27
|
+
const result = {
|
|
28
|
+
success: true,
|
|
29
|
+
action: 'requested budget approval',
|
|
30
|
+
message: `Daily budget exceeded: $${dailySpend.toFixed(2)} of $${limit.toFixed(2)}. Emergency action required.`,
|
|
31
|
+
details: { dailySpend, limit },
|
|
32
|
+
tier: 'yellow',
|
|
33
|
+
requiresApproval: true,
|
|
34
|
+
approvalOptions: [
|
|
35
|
+
{ text: `Kill All Sessions ($${dailySpend.toFixed(2)} spent)`, callbackData: 'budget:kill_all' },
|
|
36
|
+
{ text: `Increase to $${increaseAmount}`, callbackData: `budget:increase:${increaseAmount}` },
|
|
37
|
+
{ text: 'Ignore', callbackData: 'budget:ignore' },
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
await this.recordHeal('BudgetWatcher', result, 'budget_approval_requested');
|
|
41
|
+
this.writeAudit('budget-emergency-stop', 'all-sessions', 'yellow', 'pending');
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
async killAllSessions() {
|
|
45
|
+
const agentsDir = path_1.default.join(this.config.openclawPath, 'agents');
|
|
46
|
+
let killed = 0;
|
|
47
|
+
let failed = 0;
|
|
48
|
+
if (!fs_1.default.existsSync(agentsDir))
|
|
49
|
+
return { killed, failed };
|
|
50
|
+
let agentDirs;
|
|
51
|
+
try {
|
|
52
|
+
agentDirs = fs_1.default.readdirSync(agentsDir).filter(d => {
|
|
53
|
+
try {
|
|
54
|
+
return fs_1.default.statSync(path_1.default.join(agentsDir, d)).isDirectory();
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return { killed, failed };
|
|
63
|
+
}
|
|
64
|
+
for (const agentDir of agentDirs) {
|
|
65
|
+
const sessionsDir = path_1.default.join(agentsDir, agentDir, 'sessions');
|
|
66
|
+
if (!fs_1.default.existsSync(sessionsDir))
|
|
67
|
+
continue;
|
|
68
|
+
let sessionFiles;
|
|
69
|
+
try {
|
|
70
|
+
sessionFiles = fs_1.default.readdirSync(sessionsDir)
|
|
71
|
+
.filter(f => f.endsWith('.jsonl'))
|
|
72
|
+
.map(f => f.replace('.jsonl', ''));
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
for (const session of sessionFiles) {
|
|
78
|
+
const killResult = (0, utils_js_1.runCommand)('openclaw', ['session', 'kill', agentDir, session]);
|
|
79
|
+
if (killResult.ok) {
|
|
80
|
+
killed++;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
failed++;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
this.writeAudit('budget-kill-all', `${killed} sessions killed`, 'yellow', killed > 0 ? 'success' : 'failed');
|
|
88
|
+
return { killed, failed };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.BudgetHealer = BudgetHealer;
|
|
92
|
+
//# sourceMappingURL=budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/healers/budget.ts"],"names":[],"mappings":"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"}
|