beecork 0.3.0 → 0.3.2
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.d.ts.map +1 -1
- package/dist/cli/commands.js +30 -10
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/helpers.d.ts +1 -2
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +1 -25
- package/dist/cli/helpers.js.map +1 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -6
- package/dist/config.js.map +1 -1
- package/dist/cron/scheduler.d.ts +3 -4
- package/dist/cron/scheduler.d.ts.map +1 -1
- package/dist/cron/scheduler.js +20 -14
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/daemon.js +63 -21
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/html.d.ts +2 -0
- package/dist/dashboard/html.d.ts.map +1 -0
- package/dist/dashboard/html.js +357 -0
- package/dist/dashboard/html.js.map +1 -0
- package/dist/dashboard/server.d.ts +2 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +129 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -0
- package/dist/db/index.js.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +81 -80
- package/dist/mcp/server.js.map +1 -1
- package/dist/memory/extractor.d.ts.map +1 -1
- package/dist/memory/extractor.js +28 -8
- package/dist/memory/extractor.js.map +1 -1
- package/dist/pipe/anthropic-client.d.ts +3 -1
- package/dist/pipe/anthropic-client.d.ts.map +1 -1
- package/dist/pipe/anthropic-client.js +7 -5
- package/dist/pipe/anthropic-client.js.map +1 -1
- package/dist/pipe/brain.d.ts.map +1 -1
- package/dist/pipe/brain.js +7 -8
- package/dist/pipe/brain.js.map +1 -1
- package/dist/pipe/memory-store.d.ts.map +1 -1
- package/dist/pipe/types.d.ts +0 -9
- package/dist/pipe/types.d.ts.map +1 -1
- package/dist/session/manager.d.ts +1 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +21 -8
- package/dist/session/manager.js.map +1 -1
- package/dist/session/subprocess.d.ts +0 -2
- package/dist/session/subprocess.d.ts.map +1 -1
- package/dist/session/subprocess.js +0 -10
- package/dist/session/subprocess.js.map +1 -1
- package/dist/telegram/bot.d.ts.map +1 -1
- package/dist/telegram/bot.js +15 -17
- package/dist/telegram/bot.js.map +1 -1
- package/dist/telegram/formatter.d.ts +2 -4
- package/dist/telegram/formatter.d.ts.map +1 -1
- package/dist/telegram/formatter.js +3 -44
- package/dist/telegram/formatter.js.map +1 -1
- package/dist/types.d.ts +0 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/util/text.d.ts +10 -0
- package/dist/util/text.d.ts.map +1 -0
- package/dist/util/text.js +53 -0
- package/dist/util/text.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/dist/whatsapp/client.d.ts +3 -0
- package/dist/whatsapp/client.d.ts.map +1 -1
- package/dist/whatsapp/client.js +32 -12
- package/dist/whatsapp/client.js.map +1 -1
- package/dist/whatsapp/formatter.d.ts +2 -2
- package/dist/whatsapp/formatter.d.ts.map +1 -1
- package/dist/whatsapp/formatter.js +5 -23
- package/dist/whatsapp/formatter.js.map +1 -1
- package/package.json +2 -5
- package/templates/CLAUDE.md +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AA4BA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAqBjD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBhD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAqChD;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB9C;AAED,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9D;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB/C;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBlD;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC/E;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhE"}
|
package/dist/cli/commands.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
2
3
|
import { spawn, execSync } from 'node:child_process';
|
|
3
4
|
import { getDb, closeDb } from '../db/index.js';
|
|
4
5
|
import { getConfig } from '../config.js';
|
|
@@ -6,6 +7,16 @@ import { CronStore } from '../cron/store.js';
|
|
|
6
7
|
import { getDaemonPid, timeAgo } from './helpers.js';
|
|
7
8
|
import { startService, stopService } from '../service/install.js';
|
|
8
9
|
import { getPidPath, getLogsDir } from '../util/paths.js';
|
|
10
|
+
import { VERSION } from '../version.js';
|
|
11
|
+
function requireDb() {
|
|
12
|
+
try {
|
|
13
|
+
return getDb();
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
console.error('Database not initialized — run "beecork setup" first.');
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
9
20
|
export async function startDaemon() {
|
|
10
21
|
const existingPid = getDaemonPid();
|
|
11
22
|
if (existingPid) {
|
|
@@ -39,17 +50,24 @@ export async function stopDaemon() {
|
|
|
39
50
|
}
|
|
40
51
|
catch {
|
|
41
52
|
// Fallback: kill by PID
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
fs.
|
|
53
|
+
try {
|
|
54
|
+
process.kill(pid, 'SIGTERM');
|
|
55
|
+
const pidPath = getPidPath();
|
|
56
|
+
if (fs.existsSync(pidPath))
|
|
57
|
+
fs.unlinkSync(pidPath);
|
|
58
|
+
}
|
|
59
|
+
catch (killErr) {
|
|
60
|
+
const msg = killErr instanceof Error ? killErr.message : String(killErr);
|
|
61
|
+
console.error(`Failed to stop daemon (PID ${pid}): ${msg}`);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
46
64
|
}
|
|
47
65
|
console.log('Beecork daemon stopped.');
|
|
48
66
|
}
|
|
49
67
|
export async function showStatus() {
|
|
50
68
|
const pid = getDaemonPid();
|
|
51
69
|
const config = getConfig();
|
|
52
|
-
console.log(`\nBeecork
|
|
70
|
+
console.log(`\nBeecork v${VERSION}`);
|
|
53
71
|
console.log(`Daemon: ${pid ? `running (PID ${pid})` : 'stopped'}`);
|
|
54
72
|
console.log(`Deployment: ${config.deployment}`);
|
|
55
73
|
try {
|
|
@@ -79,7 +97,7 @@ export async function showStatus() {
|
|
|
79
97
|
console.log('');
|
|
80
98
|
}
|
|
81
99
|
export async function listTabs() {
|
|
82
|
-
const db =
|
|
100
|
+
const db = requireDb();
|
|
83
101
|
const tabs = db.prepare('SELECT * FROM tabs ORDER BY last_activity_at DESC').all();
|
|
84
102
|
closeDb();
|
|
85
103
|
if (tabs.length === 0) {
|
|
@@ -95,7 +113,7 @@ export async function listTabs() {
|
|
|
95
113
|
}
|
|
96
114
|
export async function tailLogs(tabName) {
|
|
97
115
|
const logFile = tabName
|
|
98
|
-
? `${getLogsDir()}/${tabName}.log`
|
|
116
|
+
? `${getLogsDir()}/${path.basename(tabName)}.log`
|
|
99
117
|
: `${getLogsDir()}/daemon.stdout.log`;
|
|
100
118
|
if (!fs.existsSync(logFile)) {
|
|
101
119
|
console.log(`No log file found: ${logFile}`);
|
|
@@ -105,6 +123,7 @@ export async function tailLogs(tabName) {
|
|
|
105
123
|
process.on('SIGINT', () => child.kill());
|
|
106
124
|
}
|
|
107
125
|
export async function listCrons() {
|
|
126
|
+
requireDb(); // Ensure DB exists before CronStore tries to access it
|
|
108
127
|
const store = new CronStore();
|
|
109
128
|
const jobs = store.list();
|
|
110
129
|
if (jobs.length === 0) {
|
|
@@ -121,6 +140,7 @@ export async function listCrons() {
|
|
|
121
140
|
console.log('');
|
|
122
141
|
}
|
|
123
142
|
export async function deleteCron(id) {
|
|
143
|
+
requireDb(); // Ensure DB exists before CronStore tries to access it
|
|
124
144
|
const store = new CronStore();
|
|
125
145
|
if (store.delete(id)) {
|
|
126
146
|
console.log(`Deleted cron job: ${id}`);
|
|
@@ -130,7 +150,7 @@ export async function deleteCron(id) {
|
|
|
130
150
|
}
|
|
131
151
|
}
|
|
132
152
|
export async function listMemories() {
|
|
133
|
-
const db =
|
|
153
|
+
const db = requireDb();
|
|
134
154
|
const memories = db.prepare('SELECT * FROM memories ORDER BY created_at DESC LIMIT 50').all();
|
|
135
155
|
closeDb();
|
|
136
156
|
if (memories.length === 0) {
|
|
@@ -146,7 +166,7 @@ export async function listMemories() {
|
|
|
146
166
|
console.log('');
|
|
147
167
|
}
|
|
148
168
|
export async function deleteMemory(id) {
|
|
149
|
-
const db =
|
|
169
|
+
const db = requireDb();
|
|
150
170
|
const result = db.prepare('DELETE FROM memories WHERE id = ?').run(parseInt(id, 10));
|
|
151
171
|
closeDb();
|
|
152
172
|
if (result.changes > 0) {
|
|
@@ -160,7 +180,7 @@ export async function updateBeecork(options) {
|
|
|
160
180
|
if (options.check) {
|
|
161
181
|
try {
|
|
162
182
|
const latest = execSync('npm view beecork version', { encoding: 'utf-8' }).trim();
|
|
163
|
-
const current =
|
|
183
|
+
const current = VERSION;
|
|
164
184
|
if (latest === current) {
|
|
165
185
|
console.log(`Already up to date (v${current})`);
|
|
166
186
|
}
|
package/dist/cli/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/helpers.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAe5C"}
|
package/dist/cli/helpers.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import { getPidPath } from '../util/paths.js';
|
|
3
|
+
export { timeAgo } from '../util/text.js';
|
|
3
4
|
export function getDaemonPid() {
|
|
4
5
|
const pidPath = getPidPath();
|
|
5
6
|
if (!fs.existsSync(pidPath))
|
|
@@ -18,29 +19,4 @@ export function getDaemonPid() {
|
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
|
-
export function formatDuration(ms) {
|
|
22
|
-
if (ms < 1000)
|
|
23
|
-
return `${ms}ms`;
|
|
24
|
-
const secs = Math.floor(ms / 1000);
|
|
25
|
-
if (secs < 60)
|
|
26
|
-
return `${secs}s`;
|
|
27
|
-
const mins = Math.floor(secs / 60);
|
|
28
|
-
if (mins < 60)
|
|
29
|
-
return `${mins}m ${secs % 60}s`;
|
|
30
|
-
const hours = Math.floor(mins / 60);
|
|
31
|
-
return `${hours}h ${mins % 60}m`;
|
|
32
|
-
}
|
|
33
|
-
export function timeAgo(isoDate) {
|
|
34
|
-
const diff = Date.now() - new Date(isoDate).getTime();
|
|
35
|
-
const mins = Math.floor(diff / 60000);
|
|
36
|
-
if (mins < 1)
|
|
37
|
-
return 'just now';
|
|
38
|
-
if (mins < 60)
|
|
39
|
-
return `${mins}m ago`;
|
|
40
|
-
const hours = Math.floor(mins / 60);
|
|
41
|
-
if (hours < 24)
|
|
42
|
-
return `${hours}h ago`;
|
|
43
|
-
const days = Math.floor(hours / 24);
|
|
44
|
-
return `${days}d ago`;
|
|
45
|
-
}
|
|
46
22
|
//# sourceMappingURL=helpers.js.map
|
package/dist/cli/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,uCAAuC;IACvC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;QACjB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,uCAAuC;IACvC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;QACjB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { BeecorkConfig, TabConfig } from './types.js';
|
|
2
2
|
export declare function getConfig(): BeecorkConfig;
|
|
3
3
|
export declare function saveConfig(config: BeecorkConfig): void;
|
|
4
|
-
export declare function clearConfigCache(): void;
|
|
5
4
|
export declare function getTabConfig(tabName: string): TabConfig;
|
|
6
5
|
export declare function resolveWorkingDir(tabName: string): string;
|
|
7
6
|
export declare function getAdminUserId(): number;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA0C3D,wBAAgB,SAAS,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA0C3D,wBAAgB,SAAS,IAAI,aAAa,CAkBzC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAMtD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAGvD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK3D"}
|
package/dist/config.js
CHANGED
|
@@ -45,19 +45,25 @@ export function getConfig() {
|
|
|
45
45
|
if (!fs.existsSync(configPath)) {
|
|
46
46
|
return { ...DEFAULT_CONFIG };
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
try {
|
|
49
|
+
const raw = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
50
|
+
cachedConfig = mergeWithDefaults(raw);
|
|
51
|
+
return cachedConfig;
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
55
|
+
// Log to stderr since logger may not be initialized yet
|
|
56
|
+
console.error(`Warning: Failed to parse config file ${configPath}: ${msg} — using defaults`);
|
|
57
|
+
return { ...DEFAULT_CONFIG };
|
|
58
|
+
}
|
|
51
59
|
}
|
|
52
60
|
export function saveConfig(config) {
|
|
53
61
|
const configPath = getConfigPath();
|
|
54
62
|
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
55
63
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
64
|
+
fs.chmodSync(configPath, 0o600); // Owner-only read/write — contains API keys
|
|
56
65
|
cachedConfig = config;
|
|
57
66
|
}
|
|
58
|
-
export function clearConfigCache() {
|
|
59
|
-
cachedConfig = null;
|
|
60
|
-
}
|
|
61
67
|
export function getTabConfig(tabName) {
|
|
62
68
|
const config = getConfig();
|
|
63
69
|
return config.tabs[tabName] ?? { ...DEFAULT_TAB_CONFIG };
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,kBAAkB,GAAc;IACpC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE;IACxB,YAAY,EAAE,MAAM;IACpB,sBAAsB,EAAE,EAAE;IAC1B,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,mBAAmB,GAA0B;IACjD,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,4BAA4B;IAC1C,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC/D,YAAY,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,cAAc,GAAkB;IACpC,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,EAAE;KACnB;IACD,UAAU,EAAE;QACV,GAAG,EAAE,QAAQ;QACb,YAAY,EAAE,CAAC,gCAAgC,CAAC;KACjD;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,EAAE,GAAG,kBAAkB,EAAE;KACnC;IACD,MAAM,EAAE;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,sBAAsB;QAC9B,kBAAkB,EAAE,IAAI;KACzB;IACD,IAAI,EAAE,EAAE,GAAG,mBAAmB,EAAE;IAChC,UAAU,EAAE,OAAO;CACpB,CAAC;AAEF,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,MAAM,UAAU,SAAS;IACvB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cron/scheduler.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { TabManager } from '../session/manager.js';
|
|
2
|
-
import type { BeecorkTelegramBot } from '../telegram/bot.js';
|
|
1
|
+
import type { TabManager, NotifyCallback } from '../session/manager.js';
|
|
3
2
|
export declare class CronScheduler {
|
|
4
3
|
private tabManager;
|
|
5
|
-
private
|
|
4
|
+
private onNotify;
|
|
6
5
|
private scheduledJobs;
|
|
7
6
|
private store;
|
|
8
|
-
constructor(tabManager: TabManager,
|
|
7
|
+
constructor(tabManager: TabManager, onNotify: NotifyCallback | null);
|
|
9
8
|
/** Load all cron jobs from store and schedule them */
|
|
10
9
|
loadAndSchedule(): void;
|
|
11
10
|
/** Check for the reload signal file and reload if present */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/cron/scheduler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/cron/scheduler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOxE,qBAAa,aAAa;IAKtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IALlB,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,KAAK,CAAmB;gBAGtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,cAAc,GAAG,IAAI;IAGzC,sDAAsD;IACtD,eAAe,IAAI,IAAI;IAiCvB,6DAA6D;IAC7D,cAAc,IAAI,IAAI;IAStB,8BAA8B;IAC9B,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,WAAW;YAwCL,OAAO;YAoDP,iBAAiB;CAehC;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4B9D"}
|
package/dist/cron/scheduler.js
CHANGED
|
@@ -6,12 +6,12 @@ import { getCronReloadSignalPath, getLogsDir } from '../util/paths.js';
|
|
|
6
6
|
import { logger } from '../util/logger.js';
|
|
7
7
|
export class CronScheduler {
|
|
8
8
|
tabManager;
|
|
9
|
-
|
|
9
|
+
onNotify;
|
|
10
10
|
scheduledJobs = new Map();
|
|
11
11
|
store = new CronStore();
|
|
12
|
-
constructor(tabManager,
|
|
12
|
+
constructor(tabManager, onNotify) {
|
|
13
13
|
this.tabManager = tabManager;
|
|
14
|
-
this.
|
|
14
|
+
this.onNotify = onNotify;
|
|
15
15
|
}
|
|
16
16
|
/** Load all cron jobs from store and schedule them */
|
|
17
17
|
loadAndSchedule() {
|
|
@@ -122,31 +122,37 @@ export class CronScheduler {
|
|
|
122
122
|
const firstLine = result.text.split('\n')[0]?.slice(0, 200) || '(no output)';
|
|
123
123
|
// Log result
|
|
124
124
|
fs.appendFileSync(logFile, `[${new Date().toISOString()}] SUCCESS: ${firstLine}\n`);
|
|
125
|
-
// Notify
|
|
126
|
-
|
|
127
|
-
if (
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
125
|
+
// Notify (separate try/catch — notification failure shouldn't be reported as job failure)
|
|
126
|
+
try {
|
|
127
|
+
if (this.onNotify) {
|
|
128
|
+
if (result.error) {
|
|
129
|
+
await this.onNotify(`❌ [${job.name}] Failed — ${firstLine}`);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
await this.onNotify(`✅ [${job.name}] Done — ${firstLine}`);
|
|
133
|
+
}
|
|
132
134
|
}
|
|
133
135
|
}
|
|
136
|
+
catch (notifyErr) {
|
|
137
|
+
logger.warn(`Cron job "${job.name}" notification failed:`, notifyErr);
|
|
138
|
+
}
|
|
134
139
|
}
|
|
135
140
|
catch (err) {
|
|
136
141
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
137
142
|
logger.error(`Cron job "${job.name}" failed:`, err);
|
|
138
143
|
fs.appendFileSync(logFile, `[${new Date().toISOString()}] ERROR: ${errMsg}\n`);
|
|
139
|
-
|
|
140
|
-
await this.
|
|
144
|
+
try {
|
|
145
|
+
await this.onNotify?.(`❌ [${job.name}] Failed — ${errMsg}`);
|
|
141
146
|
}
|
|
147
|
+
catch { /* notification best-effort */ }
|
|
142
148
|
}
|
|
143
149
|
}
|
|
144
150
|
async handleSystemEvent(job) {
|
|
145
151
|
switch (job.message) {
|
|
146
152
|
case 'health_check':
|
|
147
153
|
logger.info('System event: health check — daemon alive');
|
|
148
|
-
if (this.
|
|
149
|
-
await this.
|
|
154
|
+
if (this.onNotify) {
|
|
155
|
+
await this.onNotify('🟢 Beecork health check: all systems operational');
|
|
150
156
|
}
|
|
151
157
|
break;
|
|
152
158
|
case 'memory_compaction':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/cron/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/cron/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.js
CHANGED
|
@@ -6,12 +6,23 @@ import { BeecorkTelegramBot } from './telegram/bot.js';
|
|
|
6
6
|
import { CronScheduler } from './cron/scheduler.js';
|
|
7
7
|
import { PipeBrain } from './pipe/brain.js';
|
|
8
8
|
import { ensureBeecorkDirs, getPidPath, getBeecorkHome } from './util/paths.js';
|
|
9
|
+
import { execSync } from 'node:child_process';
|
|
9
10
|
import { logger } from './util/logger.js';
|
|
11
|
+
import { VERSION } from './version.js';
|
|
10
12
|
let tabManager;
|
|
11
13
|
let telegramBot = null;
|
|
14
|
+
let whatsappClient = null;
|
|
12
15
|
let cronScheduler;
|
|
13
16
|
let pipeBrain = null;
|
|
14
17
|
let pollInterval;
|
|
18
|
+
let shutdownFn = null;
|
|
19
|
+
/** Broadcast notifications to all active channels */
|
|
20
|
+
async function broadcastNotify(text) {
|
|
21
|
+
await Promise.all([
|
|
22
|
+
telegramBot?.sendNotification(text).catch(err => logger.warn('Telegram notify failed:', err)),
|
|
23
|
+
whatsappClient?.sendNotification(text).catch(err => logger.warn('WhatsApp notify failed:', err)),
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
15
26
|
async function main() {
|
|
16
27
|
ensureBeecorkDirs();
|
|
17
28
|
logger.setLogFile('daemon.log');
|
|
@@ -35,8 +46,17 @@ async function main() {
|
|
|
35
46
|
const config = getConfig();
|
|
36
47
|
// 2. Initialize database
|
|
37
48
|
getDb();
|
|
38
|
-
// 3. Write PID file
|
|
39
|
-
|
|
49
|
+
// 3. Write PID file with exclusive lock to prevent race condition
|
|
50
|
+
try {
|
|
51
|
+
const fd = fs.openSync(pidPath, 'wx'); // Fails if file already exists (atomic create)
|
|
52
|
+
fs.writeSync(fd, String(process.pid));
|
|
53
|
+
fs.closeSync(fd);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// File was just created by another instance between our check and write — fallback to overwrite
|
|
57
|
+
// (the PID check above should have caught live processes)
|
|
58
|
+
fs.writeFileSync(pidPath, String(process.pid));
|
|
59
|
+
}
|
|
40
60
|
logger.info(`PID file written: ${process.pid}`);
|
|
41
61
|
// 4. Create TabManager
|
|
42
62
|
tabManager = new TabManager(config);
|
|
@@ -54,11 +74,6 @@ async function main() {
|
|
|
54
74
|
if (config.telegram?.token) {
|
|
55
75
|
try {
|
|
56
76
|
telegramBot = new BeecorkTelegramBot(config, tabManager, pipeBrain);
|
|
57
|
-
// Wire up notifications
|
|
58
|
-
tabManager.setNotifyCallback((text) => telegramBot.sendNotification(text));
|
|
59
|
-
if (pipeBrain) {
|
|
60
|
-
pipeBrain.setNotifyCallback((text) => telegramBot.sendNotification(text));
|
|
61
|
-
}
|
|
62
77
|
}
|
|
63
78
|
catch (err) {
|
|
64
79
|
logger.error('Failed to start Telegram bot:', err);
|
|
@@ -71,7 +86,7 @@ async function main() {
|
|
|
71
86
|
if (config.whatsapp?.enabled) {
|
|
72
87
|
try {
|
|
73
88
|
const { BeecorkWhatsAppClient } = await import('./whatsapp/client.js');
|
|
74
|
-
|
|
89
|
+
whatsappClient = new BeecorkWhatsAppClient(config, tabManager);
|
|
75
90
|
await whatsappClient.start();
|
|
76
91
|
logger.info('WhatsApp client started');
|
|
77
92
|
}
|
|
@@ -79,8 +94,13 @@ async function main() {
|
|
|
79
94
|
logger.error('Failed to start WhatsApp client:', err);
|
|
80
95
|
}
|
|
81
96
|
}
|
|
97
|
+
// Wire up broadcast notifications to all active channels
|
|
98
|
+
tabManager.setNotifyCallback(broadcastNotify);
|
|
99
|
+
if (pipeBrain) {
|
|
100
|
+
pipeBrain.setNotifyCallback(broadcastNotify);
|
|
101
|
+
}
|
|
82
102
|
// 9. Start cron scheduler
|
|
83
|
-
cronScheduler = new CronScheduler(tabManager,
|
|
103
|
+
cronScheduler = new CronScheduler(tabManager, broadcastNotify);
|
|
84
104
|
cronScheduler.loadAndSchedule();
|
|
85
105
|
// 9. Start IPC polling
|
|
86
106
|
pollInterval = setInterval(() => {
|
|
@@ -96,16 +116,16 @@ async function main() {
|
|
|
96
116
|
const shutdown = async () => {
|
|
97
117
|
logger.info('Beecork daemon shutting down...');
|
|
98
118
|
// Send shutdown notification before stopping
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
await telegramBot.sendNotification('🔴 Beecork stopping');
|
|
102
|
-
}
|
|
103
|
-
catch { /* ok */ }
|
|
119
|
+
try {
|
|
120
|
+
await broadcastNotify('🔴 Beecork stopping');
|
|
104
121
|
}
|
|
122
|
+
catch { /* ok */ }
|
|
105
123
|
clearInterval(pollInterval);
|
|
106
124
|
tabManager.stopAll();
|
|
107
125
|
if (telegramBot)
|
|
108
126
|
telegramBot.stop();
|
|
127
|
+
if (whatsappClient)
|
|
128
|
+
whatsappClient.stop();
|
|
109
129
|
cronScheduler.stopAll();
|
|
110
130
|
closeDb();
|
|
111
131
|
const pidPath = getPidPath();
|
|
@@ -115,15 +135,39 @@ async function main() {
|
|
|
115
135
|
logger.close();
|
|
116
136
|
process.exit(0);
|
|
117
137
|
};
|
|
138
|
+
shutdownFn = shutdown;
|
|
118
139
|
process.on('SIGTERM', shutdown);
|
|
119
140
|
process.on('SIGINT', shutdown);
|
|
141
|
+
// Resilience: catch unhandled errors to prevent silent daemon death
|
|
142
|
+
process.on('unhandledRejection', (reason) => {
|
|
143
|
+
logger.error('Unhandled rejection:', reason);
|
|
144
|
+
// Log and continue — don't crash the daemon for a stray promise
|
|
145
|
+
});
|
|
146
|
+
process.on('uncaughtException', async (err) => {
|
|
147
|
+
logger.error('Uncaught exception — shutting down gracefully:', err);
|
|
148
|
+
if (shutdownFn)
|
|
149
|
+
await shutdownFn();
|
|
150
|
+
process.exit(1);
|
|
151
|
+
});
|
|
120
152
|
logger.info(`Beecork daemon ready (home: ${getBeecorkHome()})`);
|
|
121
|
-
// Send detailed startup notification
|
|
122
|
-
|
|
153
|
+
// Send detailed startup notification (non-critical — don't crash if it fails)
|
|
154
|
+
try {
|
|
123
155
|
const tabs = tabManager.listTabs();
|
|
124
156
|
const cronJobs = new (await import('./cron/store.js')).CronStore().list().filter(j => j.enabled);
|
|
125
|
-
await
|
|
157
|
+
await broadcastNotify(`🟢 Beecork started — ${cronJobs.length} cron job${cronJobs.length !== 1 ? 's' : ''}, ${tabs.length} tab${tabs.length !== 1 ? 's' : ''}`);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
logger.warn('Failed to send startup notification:', err);
|
|
126
161
|
}
|
|
162
|
+
// Check for updates (fire and forget — non-critical)
|
|
163
|
+
try {
|
|
164
|
+
const latest = execSync('npm view beecork version', { encoding: 'utf-8' }).trim();
|
|
165
|
+
if (latest && latest !== VERSION) {
|
|
166
|
+
await broadcastNotify(`📦 Update available: v${VERSION} → v${latest}\nRun: beecork update`);
|
|
167
|
+
logger.info(`Update available: v${VERSION} → v${latest}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch { /* offline or npm registry unreachable — skip silently */ }
|
|
127
171
|
}
|
|
128
172
|
async function recoverCrashedTabs() {
|
|
129
173
|
const db = getDb();
|
|
@@ -152,10 +196,8 @@ async function recoverCrashedTabs() {
|
|
|
152
196
|
tabManager.sendMessage(row.name, recoveryPrompt, { resume: true }).catch(err => {
|
|
153
197
|
logger.error(`Failed to recover tab ${row.name}:`, err);
|
|
154
198
|
});
|
|
155
|
-
// Notify via
|
|
156
|
-
|
|
157
|
-
await telegramBot.sendNotification(`Beecork restarted. Recovered tab "${row.name}" — session resumed.`);
|
|
158
|
-
}
|
|
199
|
+
// Notify via all channels
|
|
200
|
+
await broadcastNotify(`Beecork restarted. Recovered tab "${row.name}" — session resumed.`).catch(() => { });
|
|
159
201
|
}
|
|
160
202
|
}
|
|
161
203
|
main().catch(err => {
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/dashboard/html.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,IAAI,MAAM,CAmWzC"}
|