@mono-agent/cron-adapter 0.2.2 → 0.4.0

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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { CronAdapterError, startCronAdapter, } from "./scheduler.js";
2
- export type { CronAdapterErrorCode, CronAdapterErrorDetails, CronAdapterLogger, CronAdapterOptions, CronAdapterStartResult, CronJob, CronJobResult, CronRequestMetadata, } from "./scheduler.js";
2
+ export type { CronAdapterErrorCode, CronAdapterErrorDetails, CronAdapterLogger, CronAdapterOptions, CronAdapterStartResult, CronJob, CronJobResult, CronOverflowPolicy, CronOverlapMode, CronRequestMetadata, } from "./scheduler.js";
3
3
  export { cronFieldGroup, loadCronAdapterConfig, redactCronAdapterConfig, toCronJobs, } from "./config.js";
4
4
  export type { CronAdapterConfig, CronJobConfig, LoadCronAdapterConfigInput, RedactedCronAdapterConfig, } from "./config.js";
5
5
  export { loadCronJobsFromDirectory, parseCronJobMarkdown, } from "./jobs-dir.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,aAAa,EACb,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAYxB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,GACX,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAcxB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,GACX,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
@@ -13,6 +13,15 @@ export interface CronJob {
13
13
  readonly prompt: string;
14
14
  readonly conversationId?: string;
15
15
  }
16
+ /**
17
+ * Overlap policy when a job fires while a prior run is still active.
18
+ * - "skip" (default): drop the new firing (legacy behavior).
19
+ * - "queue": preserve the firing and run it after the current one.
20
+ * - "replace": abort the active run and run the newest firing instead.
21
+ */
22
+ export type CronOverlapMode = "queue" | "skip" | "replace";
23
+ /** What to do when a job's queue exceeds maxQueueDepth (overlap:"queue"). */
24
+ export type CronOverflowPolicy = "preserve" | "coalesce" | "drop-oldest";
16
25
  export type CronJobResult = {
17
26
  readonly kind: "succeeded";
18
27
  readonly jobId: string;
@@ -33,6 +42,16 @@ export type CronJobResult = {
33
42
  readonly jobId: string;
34
43
  readonly scheduledAt: string;
35
44
  readonly reason: "overlap";
45
+ } | {
46
+ readonly kind: "queued";
47
+ readonly jobId: string;
48
+ readonly scheduledAt: string;
49
+ readonly queueDepth: number;
50
+ } | {
51
+ readonly kind: "dropped";
52
+ readonly jobId: string;
53
+ readonly scheduledAt: string;
54
+ readonly reason: "overflow";
36
55
  };
37
56
  export interface CronAdapterLogger {
38
57
  debug?(message: string, metadata?: Record<string, unknown>): void;
@@ -46,6 +65,12 @@ export interface CronAdapterOptions {
46
65
  readonly now?: () => Date;
47
66
  readonly onResult?: (result: CronJobResult) => void | Promise<void>;
48
67
  readonly logger?: CronAdapterLogger;
68
+ /** Overlap policy for a job that fires while still running. Default "skip". */
69
+ readonly overlap?: CronOverlapMode;
70
+ /** Soft cap on a job's pending-firing queue (overlap:"queue"). Unbounded if unset. */
71
+ readonly maxQueueDepth?: number;
72
+ /** What to do past maxQueueDepth. Default "preserve" (keep all, warn). */
73
+ readonly overflow?: CronOverflowPolicy;
49
74
  }
50
75
  export interface CronAdapterStartResult {
51
76
  readonly jobs: readonly CronJob[];
@@ -63,5 +88,20 @@ export declare class CronAdapterError extends Error {
63
88
  readonly details: CronAdapterErrorDetails;
64
89
  constructor(code: CronAdapterErrorCode, message: string, details?: CronAdapterErrorDetails);
65
90
  }
91
+ interface PendingFiring {
92
+ readonly scheduledAt: string;
93
+ }
94
+ interface JobRuntimeState {
95
+ active: AbortController | undefined;
96
+ pending: PendingFiring[];
97
+ }
66
98
  export declare function startCronAdapter(options: CronAdapterOptions): CronAdapterStartResult;
99
+ /**
100
+ * Internal: dispatch a single firing for a job, honoring the overlap policy.
101
+ * Exported (but not re-exported from the package index) so the overlap
102
+ * defense-in-depth fallback can be regression-tested directly, bypassing the
103
+ * startup `validateOptions` gate that rejects invalid overlap values.
104
+ */
105
+ export declare function handleTick(job: CronJob, scheduledAtDate: Date, options: CronAdapterOptions, jobStates: Map<string, JobRuntimeState>): void;
106
+ export {};
67
107
  //# sourceMappingURL=scheduler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
package/dist/scheduler.js CHANGED
@@ -15,15 +15,20 @@ const DEFAULT_TIMEZONE = "UTC";
15
15
  const MAX_TIMEOUT_MS = 2_147_483_647;
16
16
  export function startCronAdapter(options) {
17
17
  validateOptions(options);
18
- const activeJobs = new Map();
18
+ const jobStates = new Map();
19
19
  const scheduled = options.jobs.map((job) => ({ job, timer: undefined }));
20
20
  for (const entry of scheduled) {
21
- scheduleNext(entry, options, activeJobs);
21
+ scheduleNext(entry, options, jobStates);
22
22
  }
23
23
  return {
24
24
  jobs: options.jobs.slice(),
25
25
  get activeJobCount() {
26
- return activeJobs.size;
26
+ let count = 0;
27
+ for (const state of jobStates.values()) {
28
+ if (state.active !== undefined)
29
+ count += 1;
30
+ }
31
+ return count;
27
32
  },
28
33
  stop() {
29
34
  for (const entry of scheduled) {
@@ -32,37 +37,119 @@ export function startCronAdapter(options) {
32
37
  entry.timer = undefined;
33
38
  }
34
39
  }
35
- for (const running of activeJobs.values()) {
36
- running.controller.abort(new Error("Cron adapter stopped."));
40
+ for (const state of jobStates.values()) {
41
+ state.pending.length = 0;
42
+ state.active?.abort(new Error("Cron adapter stopped."));
37
43
  }
38
- activeJobs.clear();
44
+ jobStates.clear();
39
45
  },
40
46
  };
41
47
  }
42
- function scheduleNext(entry, options, activeJobs) {
48
+ function scheduleNext(entry, options, jobStates) {
43
49
  const now = options.now?.() ?? new Date();
44
50
  const scheduledAt = nextDateFor(entry.job, now);
45
51
  const delayMs = Math.max(0, scheduledAt.getTime() - now.getTime());
46
52
  entry.timer = setTimeout(() => {
47
53
  entry.timer = undefined;
48
54
  if (delayMs > MAX_TIMEOUT_MS) {
49
- scheduleNext(entry, options, activeJobs);
55
+ scheduleNext(entry, options, jobStates);
50
56
  return;
51
57
  }
52
- handleTick(entry.job, scheduledAt, options, activeJobs);
53
- scheduleNext(entry, options, activeJobs);
58
+ handleTick(entry.job, scheduledAt, options, jobStates);
59
+ scheduleNext(entry, options, jobStates);
54
60
  }, Math.min(delayMs, MAX_TIMEOUT_MS));
55
61
  }
56
- function handleTick(job, scheduledAtDate, options, activeJobs) {
62
+ function ensureState(jobStates, jobId) {
63
+ let state = jobStates.get(jobId);
64
+ if (state === undefined) {
65
+ state = { active: undefined, pending: [] };
66
+ jobStates.set(jobId, state);
67
+ }
68
+ return state;
69
+ }
70
+ /**
71
+ * Internal: dispatch a single firing for a job, honoring the overlap policy.
72
+ * Exported (but not re-exported from the package index) so the overlap
73
+ * defense-in-depth fallback can be regression-tested directly, bypassing the
74
+ * startup `validateOptions` gate that rejects invalid overlap values.
75
+ */
76
+ export function handleTick(job, scheduledAtDate, options, jobStates) {
57
77
  const scheduledAt = scheduledAtDate.toISOString();
58
- if (activeJobs.has(job.id)) {
59
- const result = { kind: "skipped", jobId: job.id, scheduledAt, reason: "overlap" };
78
+ const state = ensureState(jobStates, job.id);
79
+ // No run in flight for this job: start immediately. Distinct jobs always run
80
+ // in parallel because each has its own state.
81
+ if (state.active === undefined) {
82
+ startRun(job, scheduledAt, options, jobStates, state);
83
+ return;
84
+ }
85
+ // Default to "skip" (the documented/legacy behavior): an overlapping firing is
86
+ // dropped while a prior run is active. "queue"/"replace" are opt-in; "queue"
87
+ // should be paired with maxQueueDepth to bound memory.
88
+ const mode = options.overlap ?? "skip";
89
+ if (mode === "skip") {
60
90
  options.logger?.warn?.("Cron job skipped because a prior run is still active.", { jobId: job.id, scheduledAt });
61
- void emitResult(options, result);
91
+ void emitResult(options, { kind: "skipped", jobId: job.id, scheduledAt, reason: "overlap" });
92
+ return;
93
+ }
94
+ if (mode === "replace") {
95
+ // Discard pending + the in-flight run; the newest firing wins. Emit a
96
+ // terminal "dropped" for every firing we discard so a previously-reported
97
+ // kind:"queued" never becomes a dangling firing with no terminal — mirroring
98
+ // the queue branch's drop-oldest/coalesce observability below.
99
+ for (const dropped of state.pending) {
100
+ void emitResult(options, { kind: "dropped", jobId: job.id, scheduledAt: dropped.scheduledAt, reason: "overflow" });
101
+ }
102
+ state.pending = [{ scheduledAt }];
103
+ state.active.abort(new Error("Cron job replaced by a newer scheduled run."));
104
+ void emitResult(options, { kind: "queued", jobId: job.id, scheduledAt, queueDepth: state.pending.length });
105
+ return;
106
+ }
107
+ // "queue" (opt-in): preserve every firing, drained in order after the active
108
+ // run finishes. Bound it with maxQueueDepth + overflow to limit memory.
109
+ if (mode === "queue") {
110
+ state.pending.push({ scheduledAt });
111
+ const max = options.maxQueueDepth;
112
+ if (max !== undefined && max >= 0 && state.pending.length > max) {
113
+ const overflow = options.overflow ?? "preserve";
114
+ if (overflow === "drop-oldest") {
115
+ const dropped = state.pending.shift();
116
+ if (dropped !== undefined) {
117
+ options.logger?.warn?.("Cron firing dropped (queue overflow, drop-oldest).", { jobId: job.id, maxQueueDepth: max });
118
+ void emitResult(options, { kind: "dropped", jobId: job.id, scheduledAt: dropped.scheduledAt, reason: "overflow" });
119
+ }
120
+ }
121
+ else if (overflow === "coalesce") {
122
+ const newest = state.pending[state.pending.length - 1];
123
+ const droppedOnes = state.pending.slice(0, -1);
124
+ state.pending = newest === undefined ? [] : [newest];
125
+ for (const dropped of droppedOnes) {
126
+ void emitResult(options, { kind: "dropped", jobId: job.id, scheduledAt: dropped.scheduledAt, reason: "overflow" });
127
+ }
128
+ }
129
+ else {
130
+ // "preserve": keep everything, but surface backpressure (never a silent drop).
131
+ options.logger?.warn?.("Cron queue depth exceeds maxQueueDepth (preserving every firing).", {
132
+ jobId: job.id,
133
+ depth: state.pending.length,
134
+ maxQueueDepth: max,
135
+ });
136
+ }
137
+ }
138
+ void emitResult(options, { kind: "queued", jobId: job.id, scheduledAt, queueDepth: state.pending.length });
62
139
  return;
63
140
  }
141
+ // Any unrecognized mode (e.g. an invalid value passed via a cast or untyped
142
+ // JS/JSON consumer) defaults to the safe "skip" behavior rather than silently
143
+ // falling through into the unbounded-memory "queue" branch.
144
+ options.logger?.warn?.("Cron overlap mode unrecognized; defaulting to skip.", {
145
+ jobId: job.id,
146
+ overlap: options.overlap,
147
+ });
148
+ void emitResult(options, { kind: "skipped", jobId: job.id, scheduledAt, reason: "overlap" });
149
+ }
150
+ function startRun(job, scheduledAt, options, jobStates, state) {
64
151
  const controller = new AbortController();
65
- activeJobs.set(job.id, { controller });
152
+ state.active = controller;
66
153
  const startedAt = (options.now?.() ?? new Date()).toISOString();
67
154
  const stream = new BufferedMessageStream({
68
155
  onClosed: () => new CronAdapterError("stream_closed", "Cannot write to a finished cron stream."),
@@ -84,6 +171,28 @@ function handleTick(job, scheduledAtDate, options, activeJobs) {
84
171
  void options.responder.respond(request, stream)
85
172
  .then(async (response) => {
86
173
  await stream.finish(response.text);
174
+ // Guard against a responder that ignores/races the abort signal and still
175
+ // resolves with text: if THIS run's controller was aborted (overlap:"replace"
176
+ // discarding the in-flight run, or stop()), report the run as cancelled
177
+ // rather than succeeded. `controller` is captured per-run, so this keys the
178
+ // abort check to this specific firing (not a newer run's controller). This
179
+ // mirrors the .catch() classification below and LiveSessionManager.drain().
180
+ if (controller.signal.aborted) {
181
+ const result = {
182
+ kind: "cancelled",
183
+ jobId: job.id,
184
+ scheduledAt,
185
+ startedAt,
186
+ completedAt: (options.now?.() ?? new Date()).toISOString(),
187
+ error: "Cron job cancelled (responder resolved after abort).",
188
+ };
189
+ options.logger?.warn?.("Cron job responder resolved after abort; reporting cancelled.", {
190
+ jobId: job.id,
191
+ error: result.error,
192
+ });
193
+ await emitResult(options, result);
194
+ return;
195
+ }
87
196
  const result = {
88
197
  kind: "succeeded",
89
198
  jobId: job.id,
@@ -112,9 +221,20 @@ function handleTick(job, scheduledAtDate, options, activeJobs) {
112
221
  await emitResult(options, result);
113
222
  })
114
223
  .finally(() => {
115
- activeJobs.delete(job.id);
224
+ state.active = undefined;
225
+ drainNext(job, options, jobStates, state);
116
226
  });
117
227
  }
228
+ function drainNext(job, options, jobStates, state) {
229
+ const next = state.pending.shift();
230
+ if (next !== undefined) {
231
+ startRun(job, next.scheduledAt, options, jobStates, state);
232
+ return;
233
+ }
234
+ if (state.active === undefined && state.pending.length === 0) {
235
+ jobStates.delete(job.id);
236
+ }
237
+ }
118
238
  async function emitResult(options, result) {
119
239
  await options.onResult?.(result);
120
240
  }
@@ -132,10 +252,18 @@ function nextDateFor(job, currentDate) {
132
252
  });
133
253
  }
134
254
  }
255
+ const VALID_OVERLAP_MODES = new Set(["queue", "skip", "replace"]);
256
+ const VALID_OVERFLOW_POLICIES = new Set(["preserve", "coalesce", "drop-oldest"]);
135
257
  function validateOptions(options) {
136
258
  if (typeof options.responder?.respond !== "function") {
137
259
  throw new CronAdapterError("invalid_config", "Cron adapter requires a responder.");
138
260
  }
261
+ if (options.overlap !== undefined && !VALID_OVERLAP_MODES.has(options.overlap)) {
262
+ throw new CronAdapterError("invalid_config", "Cron overlap mode is invalid.", { overlap: options.overlap });
263
+ }
264
+ if (options.overflow !== undefined && !VALID_OVERFLOW_POLICIES.has(options.overflow)) {
265
+ throw new CronAdapterError("invalid_config", "Cron overflow policy is invalid.", { overflow: options.overflow });
266
+ }
139
267
  const seen = new Set();
140
268
  for (const job of options.jobs) {
141
269
  if (normalizeOptionalString(job.id) === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mono-agent/cron-adapter",
3
- "version": "0.2.2",
3
+ "version": "0.4.0",
4
4
  "description": "Cron-based scheduled invocation adapter for agent responders.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -18,8 +18,8 @@
18
18
  "README.md"
19
19
  ],
20
20
  "dependencies": {
21
- "@mono-agent/agent-contracts": "0.2.2",
22
- "@mono-agent/settings": "0.2.2",
21
+ "@mono-agent/agent-contracts": "0.4.0",
22
+ "@mono-agent/settings": "0.4.0",
23
23
  "cron-parser": "^5.5.0"
24
24
  },
25
25
  "publishConfig": {