agentrem 1.6.1 → 1.6.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/watch.d.ts +4 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +21 -2
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
package/dist/watch.d.ts
CHANGED
|
@@ -20,10 +20,14 @@ export interface WatchOptions {
|
|
|
20
20
|
onFire?: string;
|
|
21
21
|
/** Timeout for on-fire command in milliseconds (default 5000) */
|
|
22
22
|
onFireTimeout?: number;
|
|
23
|
+
/** How often to run garbage collection in ms (default 24h) */
|
|
24
|
+
gcIntervalMs?: number;
|
|
23
25
|
}
|
|
24
26
|
export interface WatchState {
|
|
25
27
|
/** Map of reminder ID → timestamp of last notification */
|
|
26
28
|
lastNotified: Map<string, number>;
|
|
29
|
+
/** Timestamp of last garbage collection run (0 = never, triggers on first tick) */
|
|
30
|
+
lastGc?: number;
|
|
27
31
|
}
|
|
28
32
|
/** Returns true if the reminder should be notified (not in cooldown). */
|
|
29
33
|
export declare function shouldNotify(state: WatchState, reminderId: string, now?: number): boolean;
|
package/dist/watch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAIrG;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAElG;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAGpD;AAKD,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,GAAE,MAAa,GAAG,OAAO,CA8B/F;AAID,qFAAqF;AACrF,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,YAAY,EAClB,GAAG,GAAE,MAAmB,GACvB,QAAQ,EAAE,CA8DZ;AAED,6FAA6F;AAC7F,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCxF"}
|
package/dist/watch.js
CHANGED
|
@@ -6,7 +6,7 @@ import { mkdirSync, appendFileSync } from 'node:fs';
|
|
|
6
6
|
import { join } from 'node:path';
|
|
7
7
|
import { homedir } from 'node:os';
|
|
8
8
|
import { getDb } from './db.js';
|
|
9
|
-
import { coreCheck } from './core.js';
|
|
9
|
+
import { coreCheck, coreGc } from './core.js';
|
|
10
10
|
import { truncate } from './date-parser.js';
|
|
11
11
|
import { buildNotifyOpts, sendNotification } from './notifier.js';
|
|
12
12
|
export const DEDUP_COOLDOWN_MS = 5 * 60 * 1000; // 5 minutes
|
|
@@ -61,11 +61,30 @@ export function executeOnFire(command, rem, timeoutMs = 5000) {
|
|
|
61
61
|
return false;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
+
const DEFAULT_GC_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
64
65
|
/** Run a single check cycle: poll DB, notify due reminders, return notified list. */
|
|
65
66
|
export function runCheckCycle(state, opts, now = Date.now()) {
|
|
66
67
|
const db = getDb(opts.dbPath);
|
|
67
68
|
let notified = [];
|
|
68
69
|
try {
|
|
70
|
+
// ── Periodic GC ────────────────────────────────────────────────────────
|
|
71
|
+
const gcIntervalMs = opts.gcIntervalMs ?? DEFAULT_GC_INTERVAL_MS;
|
|
72
|
+
const lastGc = state.lastGc ?? 0;
|
|
73
|
+
if (now - lastGc >= gcIntervalMs) {
|
|
74
|
+
try {
|
|
75
|
+
const gcResult = coreGc(db, 30);
|
|
76
|
+
state.lastGc = now;
|
|
77
|
+
if (opts.verbose) {
|
|
78
|
+
console.log(`[agentrem watch] 🗑️ gc ran — ${gcResult.count} reminder(s) cleaned`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (gcErr) {
|
|
82
|
+
if (opts.verbose) {
|
|
83
|
+
const msg = gcErr instanceof Error ? gcErr.message : String(gcErr);
|
|
84
|
+
console.log(`[agentrem watch] ⚠️ gc error (non-fatal): ${msg}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
69
88
|
const result = coreCheck(db, {
|
|
70
89
|
type: 'time,heartbeat,session,condition',
|
|
71
90
|
agent: opts.agent || 'main',
|
|
@@ -105,7 +124,7 @@ export function runCheckCycle(state, opts, now = Date.now()) {
|
|
|
105
124
|
/** Start the watch loop. Resolves when the loop stops (only if `once` or `signal` fires). */
|
|
106
125
|
export async function startWatch(opts, signal) {
|
|
107
126
|
const intervalMs = (opts.interval ?? 30) * 1000;
|
|
108
|
-
const state = { lastNotified: new Map() };
|
|
127
|
+
const state = { lastNotified: new Map(), lastGc: 0 };
|
|
109
128
|
if (opts.verbose) {
|
|
110
129
|
console.log(`[agentrem watch] started — interval=${opts.interval ?? 30}s agent=${opts.agent ?? 'main'}`);
|
|
111
130
|
}
|
package/dist/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,yEAAyE;AACzE,8DAA8D;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,yEAAyE;AACzE,8DAA8D;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGlE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAiC5D,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,UAAkB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IAC1F,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,GAAG,GAAG,IAAI,IAAI,iBAAiB,CAAC;AACzC,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,UAAkB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IAC1F,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,GAAa;IAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE9D,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,GAAa,EAAE,YAAoB,IAAI;IACpF,MAAM,GAAG,GAA2B;QAClC,GAAG,OAAO,CAAC,GAA6B;QACxC,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,gBAAgB,EAAE,GAAG,CAAC,OAAO;QAC7B,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC5C,aAAa,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;QAC7B,gBAAgB,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;QACnC,YAAY,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;QAClC,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;KACjD,CAAC;IAEF,IAAI,CAAC;QACH,QAAQ,CAAC,OAAO,EAAE;YAChB,GAAG;YACH,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAC9E,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAE/D,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAC3B,KAAiB,EACjB,IAAkB,EAClB,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,QAAQ,GAAe,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACjC,IAAI,GAAG,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;gBACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CACT,kCAAkC,QAAQ,CAAC,KAAK,sBAAsB,CACvE,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnE,OAAO,CAAC,GAAG,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;YAC3B,IAAI,EAAE,kCAAkC;YACxC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM;YAC3B,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,uDAAuD;gBACvD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;oBACvE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC7F,CAAC;gBACH,CAAC;gBACD,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,yBAAyB,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CACT,+BAA+B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK;gBAC7D,GAAG,MAAM,CAAC,cAAc,eAAe,QAAQ,CAAC,MAAM,WAAW,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAkB,EAAE,MAAoB;IACvE,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAChD,MAAM,KAAK,GAAe,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAEjE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CACT,uCAAuC,IAAI,CAAC,QAAQ,IAAI,EAAE,WAAW,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE,CAC5F,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE3B,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO;IAEtB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,KAAqC,CAAC;QAE1C,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YACvB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC,EAAE,UAAU,CAAC,CAAC;QAEf,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,+DAA+D;QAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAC7D,CAAC"}
|