@mono-agent/cron-adapter 0.3.0 → 0.4.1
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/README.md +1 -1
- package/dist/config.d.ts +17 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +72 -61
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs-dir.d.ts.map +1 -1
- package/dist/jobs-dir.js +27 -1
- package/dist/jobs-dir.js.map +1 -1
- package/dist/scheduler.d.ts +66 -0
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +255 -45
- package/dist/scheduler.js.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -65,7 +65,7 @@ Summarize yesterday across my channels and post a short digest.
|
|
|
65
65
|
|
|
66
66
|
## Dependency Boundary
|
|
67
67
|
|
|
68
|
-
This adapter depends on `cron-parser` plus shared contracts
|
|
68
|
+
This adapter depends on `cron-parser` plus shared `@mono-agent/agent-contracts` primitives. It must not depend on the agent harness, runtime adapter, operator surfaces, memory, observability, other communication adapters, or host/demo code. Hosts compose it with a structural responder.
|
|
69
69
|
|
|
70
70
|
## What This Package Does Not Own
|
|
71
71
|
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonEnvFieldSpec, SettingsJson } from "@mono-agent/agent-contracts";
|
|
2
2
|
import { type CronJob } from "./scheduler.js";
|
|
3
3
|
export interface CronJobConfig {
|
|
4
4
|
readonly id: string;
|
|
@@ -7,6 +7,15 @@ export interface CronJobConfig {
|
|
|
7
7
|
readonly timezone: string;
|
|
8
8
|
readonly prompt: string;
|
|
9
9
|
readonly conversationId?: string;
|
|
10
|
+
readonly maxRunMs?: number;
|
|
11
|
+
readonly notify?: boolean;
|
|
12
|
+
readonly notifyConversationId?: string;
|
|
13
|
+
/** Cooldown in hours for provider-exhaustion failure notices on notify jobs. */
|
|
14
|
+
readonly notifyFailureCooldownHours?: number;
|
|
15
|
+
/** Per-job runtime model override (e.g. `claude:claude-opus-4-8`). Validated by the app. */
|
|
16
|
+
readonly model?: string;
|
|
17
|
+
/** Per-job reasoning effort override (e.g. `high`). Validated by the app. */
|
|
18
|
+
readonly effort?: string;
|
|
10
19
|
}
|
|
11
20
|
export interface CronAdapterConfig {
|
|
12
21
|
readonly jobs: readonly CronJobConfig[];
|
|
@@ -21,7 +30,6 @@ export interface LoadCronAdapterConfigInput {
|
|
|
21
30
|
/** Overrides the cron jobs folder; defaults to `cron.dir` / `MONO_AGENT_CRON_DIR` / `cron`. */
|
|
22
31
|
readonly dir?: string;
|
|
23
32
|
}
|
|
24
|
-
export declare const cronFieldGroup: FieldGroup;
|
|
25
33
|
export declare function loadCronAdapterConfig(input: LoadCronAdapterConfigInput): Promise<CronAdapterConfig>;
|
|
26
34
|
/**
|
|
27
35
|
* Project the loaded config down to the runtime {@link CronJob} shape consumed
|
|
@@ -31,4 +39,11 @@ export declare function loadCronAdapterConfig(input: LoadCronAdapterConfigInput)
|
|
|
31
39
|
*/
|
|
32
40
|
export declare function toCronJobs(config: CronAdapterConfig): CronJob[];
|
|
33
41
|
export declare function redactCronAdapterConfig(config: CronAdapterConfig): RedactedCronAdapterConfig;
|
|
42
|
+
/**
|
|
43
|
+
* The `cron` section's field registry: the single source of truth both the
|
|
44
|
+
* JSON→env layering below and the app's config provenance view derive from.
|
|
45
|
+
* Covers the single-job env form (multi-job `jobs[]` and the `cron/` directory
|
|
46
|
+
* are read straight from JSON / the filesystem).
|
|
47
|
+
*/
|
|
48
|
+
export declare const CRON_CONFIG_FIELDS: readonly JsonEnvFieldSpec[];
|
|
34
49
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,gFAAgF;IAChF,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAC7C,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAKzG;AAwGD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,EAAE,CAe/D;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,yBAAyB,CAM5F;AAuDD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAYzD,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,63 +1,11 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { fieldSpecMappings, layerJsonOntoEnv, normalizeOptionalString, readBoolean, readInteger, readJsonSection, readSettingsJson, } from "@mono-agent/agent-contracts";
|
|
3
3
|
import { loadCronJobsFromDirectory } from "./jobs-dir.js";
|
|
4
4
|
import { CronAdapterError } from "./scheduler.js";
|
|
5
5
|
const DEFAULT_JOB_ID = "default";
|
|
6
6
|
const DEFAULT_TIMEZONE = "UTC";
|
|
7
7
|
const DEFAULT_CRON_DIR = "cron";
|
|
8
8
|
const invalidConfig = (message, details) => new CronAdapterError("invalid_config", message, details);
|
|
9
|
-
export const cronFieldGroup = defineFieldGroup({
|
|
10
|
-
id: "cron",
|
|
11
|
-
label: "Cron",
|
|
12
|
-
description: "Optional single-job cron invocation configuration. Use JSON for multiple jobs, or `*.md` files in the cron folder.",
|
|
13
|
-
fields: [
|
|
14
|
-
{
|
|
15
|
-
id: "cron.dir",
|
|
16
|
-
label: "Cron folder",
|
|
17
|
-
description: "Folder of `*.md` cron jobs (frontmatter + prompt body), resolved against the app working directory.",
|
|
18
|
-
kind: "string",
|
|
19
|
-
placeholder: "cron",
|
|
20
|
-
path: ["cron", "dir"],
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: "cron.enabled",
|
|
24
|
-
label: "Enable cron",
|
|
25
|
-
description: "Enable the default scheduled agent job.",
|
|
26
|
-
kind: "switch",
|
|
27
|
-
path: ["cron", "enabled"],
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
id: "cron.expression",
|
|
31
|
-
label: "Cron expression",
|
|
32
|
-
description: "Five-field cron expression for the default job.",
|
|
33
|
-
kind: "string",
|
|
34
|
-
placeholder: "0 * * * *",
|
|
35
|
-
path: ["cron", "expression"],
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
id: "cron.timezone",
|
|
39
|
-
label: "Timezone",
|
|
40
|
-
description: "IANA timezone used to calculate scheduled runs.",
|
|
41
|
-
kind: "string",
|
|
42
|
-
placeholder: "UTC",
|
|
43
|
-
path: ["cron", "timezone"],
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
id: "cron.prompt",
|
|
47
|
-
label: "Prompt",
|
|
48
|
-
description: "Prompt sent to the agent for the default scheduled job.",
|
|
49
|
-
kind: "string",
|
|
50
|
-
path: ["cron", "prompt"],
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
id: "cron.conversationId",
|
|
54
|
-
label: "Conversation id",
|
|
55
|
-
description: "Optional conversation id for memory/history continuity.",
|
|
56
|
-
kind: "string",
|
|
57
|
-
path: ["cron", "conversationId"],
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
});
|
|
61
9
|
export async function loadCronAdapterConfig(input) {
|
|
62
10
|
const json = input.json ?? (input.jsonPath === undefined ? {} : (await readSettingsJson(input.jsonPath)).json);
|
|
63
11
|
const configJobs = loadConfigJobs(json, input.env);
|
|
@@ -95,6 +43,11 @@ function loadConfigJobs(json, env) {
|
|
|
95
43
|
throw invalidConfig("Cron prompt is required when cron is configured.");
|
|
96
44
|
}
|
|
97
45
|
const conversationId = normalizeOptionalString(layered.MONO_AGENT_CRON_CONVERSATION_ID);
|
|
46
|
+
const notify = readBoolean(layered.MONO_AGENT_CRON_NOTIFY, "MONO_AGENT_CRON_NOTIFY", false, invalidConfig);
|
|
47
|
+
const notifyConversationId = normalizeOptionalString(layered.MONO_AGENT_CRON_NOTIFY_CONVERSATION_ID);
|
|
48
|
+
const notifyFailureCooldownHours = readOptionalPositiveIntegerEnv(layered.MONO_AGENT_CRON_NOTIFY_FAILURE_COOLDOWN_HOURS, "MONO_AGENT_CRON_NOTIFY_FAILURE_COOLDOWN_HOURS");
|
|
49
|
+
const model = normalizeOptionalString(layered.MONO_AGENT_CRON_MODEL);
|
|
50
|
+
const effort = normalizeOptionalString(layered.MONO_AGENT_CRON_EFFORT);
|
|
98
51
|
return [{
|
|
99
52
|
id: DEFAULT_JOB_ID,
|
|
100
53
|
enabled,
|
|
@@ -102,6 +55,11 @@ function loadConfigJobs(json, env) {
|
|
|
102
55
|
timezone: normalizeOptionalString(layered.MONO_AGENT_CRON_TIMEZONE) ?? DEFAULT_TIMEZONE,
|
|
103
56
|
prompt,
|
|
104
57
|
...(conversationId === undefined ? {} : { conversationId }),
|
|
58
|
+
...(notify ? { notify } : {}),
|
|
59
|
+
...(notifyConversationId === undefined ? {} : { notifyConversationId }),
|
|
60
|
+
...(notifyFailureCooldownHours === undefined ? {} : { notifyFailureCooldownHours }),
|
|
61
|
+
...(model === undefined ? {} : { model }),
|
|
62
|
+
...(effort === undefined ? {} : { effort }),
|
|
105
63
|
}];
|
|
106
64
|
}
|
|
107
65
|
/**
|
|
@@ -158,6 +116,11 @@ export function toCronJobs(config) {
|
|
|
158
116
|
timezone: job.timezone,
|
|
159
117
|
prompt: job.prompt,
|
|
160
118
|
...(job.conversationId === undefined ? {} : { conversationId: job.conversationId }),
|
|
119
|
+
...(job.maxRunMs === undefined ? {} : { maxRunMs: job.maxRunMs }),
|
|
120
|
+
...(job.notify === undefined ? {} : { notify: job.notify }),
|
|
121
|
+
...(job.notifyConversationId === undefined ? {} : { notifyConversationId: job.notifyConversationId }),
|
|
122
|
+
...(job.model === undefined ? {} : { model: job.model }),
|
|
123
|
+
...(job.effort === undefined ? {} : { effort: job.effort }),
|
|
161
124
|
}));
|
|
162
125
|
}
|
|
163
126
|
export function redactCronAdapterConfig(config) {
|
|
@@ -193,6 +156,12 @@ function normalizeJobConfig(entry, index) {
|
|
|
193
156
|
throw invalidConfig("Cron jobs require id, expression, and prompt.", { index });
|
|
194
157
|
}
|
|
195
158
|
const conversationId = asOptionalString(entry.conversationId);
|
|
159
|
+
const maxRunMs = asOptionalPositiveInteger(entry.maxRunMs, "cron.jobs[].maxRunMs", { index });
|
|
160
|
+
const notify = asOptionalBoolean(entry.notify, "cron.jobs[].notify", { index });
|
|
161
|
+
const notifyConversationId = asOptionalString(entry.notifyConversationId);
|
|
162
|
+
const notifyFailureCooldownHours = asOptionalPositiveInteger(entry.notifyFailureCooldownHours, "cron.jobs[].notifyFailureCooldownHours", { index }, "hours");
|
|
163
|
+
const model = asOptionalString(entry.model);
|
|
164
|
+
const effort = asOptionalString(entry.effort);
|
|
196
165
|
return {
|
|
197
166
|
id,
|
|
198
167
|
enabled: typeof entry.enabled === "boolean" ? entry.enabled : true,
|
|
@@ -200,22 +169,64 @@ function normalizeJobConfig(entry, index) {
|
|
|
200
169
|
timezone: asOptionalString(entry.timezone) ?? DEFAULT_TIMEZONE,
|
|
201
170
|
prompt,
|
|
202
171
|
...(conversationId === undefined ? {} : { conversationId }),
|
|
172
|
+
...(maxRunMs === undefined ? {} : { maxRunMs }),
|
|
173
|
+
...(notify === undefined ? {} : { notify }),
|
|
174
|
+
...(notifyConversationId === undefined ? {} : { notifyConversationId }),
|
|
175
|
+
...(notifyFailureCooldownHours === undefined ? {} : { notifyFailureCooldownHours }),
|
|
176
|
+
...(model === undefined ? {} : { model }),
|
|
177
|
+
...(effort === undefined ? {} : { effort }),
|
|
203
178
|
};
|
|
204
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* The `cron` section's field registry: the single source of truth both the
|
|
182
|
+
* JSON→env layering below and the app's config provenance view derive from.
|
|
183
|
+
* Covers the single-job env form (multi-job `jobs[]` and the `cron/` directory
|
|
184
|
+
* are read straight from JSON / the filesystem).
|
|
185
|
+
*/
|
|
186
|
+
export const CRON_CONFIG_FIELDS = [
|
|
187
|
+
{ id: "cron.enabled", env: "MONO_AGENT_CRON_ENABLED", kind: "boolean", fromJson: (s) => s.enabled },
|
|
188
|
+
{ id: "cron.dir", env: "MONO_AGENT_CRON_DIR", fromJson: (s) => s.dir },
|
|
189
|
+
{ id: "cron.expression", env: "MONO_AGENT_CRON_EXPRESSION", fromJson: (s) => s.expression },
|
|
190
|
+
{ id: "cron.timezone", env: "MONO_AGENT_CRON_TIMEZONE", fromJson: (s) => s.timezone },
|
|
191
|
+
{ id: "cron.prompt", env: "MONO_AGENT_CRON_PROMPT", fromJson: (s) => s.prompt },
|
|
192
|
+
{ id: "cron.conversationId", env: "MONO_AGENT_CRON_CONVERSATION_ID", fromJson: (s) => s.conversationId },
|
|
193
|
+
{ id: "cron.notify", env: "MONO_AGENT_CRON_NOTIFY", kind: "boolean", fromJson: (s) => s.notify },
|
|
194
|
+
{ id: "cron.notifyConversationId", env: "MONO_AGENT_CRON_NOTIFY_CONVERSATION_ID", fromJson: (s) => s.notifyConversationId },
|
|
195
|
+
{ id: "cron.notifyFailureCooldownHours", env: "MONO_AGENT_CRON_NOTIFY_FAILURE_COOLDOWN_HOURS", kind: "integer", fromJson: (s) => s.notifyFailureCooldownHours },
|
|
196
|
+
{ id: "cron.model", env: "MONO_AGENT_CRON_MODEL", fromJson: (s) => s.model },
|
|
197
|
+
{ id: "cron.effort", env: "MONO_AGENT_CRON_EFFORT", fromJson: (s) => s.effort },
|
|
198
|
+
];
|
|
205
199
|
function layerCronJsonOntoEnv(json, env) {
|
|
206
|
-
|
|
207
|
-
return layerJsonOntoEnv(env, [
|
|
208
|
-
{ env: "MONO_AGENT_CRON_ENABLED", value: section.enabled, kind: "boolean" },
|
|
209
|
-
{ env: "MONO_AGENT_CRON_EXPRESSION", value: section.expression },
|
|
210
|
-
{ env: "MONO_AGENT_CRON_TIMEZONE", value: section.timezone },
|
|
211
|
-
{ env: "MONO_AGENT_CRON_PROMPT", value: section.prompt },
|
|
212
|
-
{ env: "MONO_AGENT_CRON_CONVERSATION_ID", value: section.conversationId },
|
|
213
|
-
]);
|
|
200
|
+
return layerJsonOntoEnv(env, fieldSpecMappings(readJsonSection(json, "cron"), CRON_CONFIG_FIELDS));
|
|
214
201
|
}
|
|
215
202
|
/** Trim a JSON value to a non-empty string, treating non-strings as absent. */
|
|
216
203
|
function asOptionalString(value) {
|
|
217
204
|
return typeof value === "string" ? normalizeOptionalString(value) : undefined;
|
|
218
205
|
}
|
|
206
|
+
function asOptionalPositiveInteger(value, field, details, unit = "milliseconds") {
|
|
207
|
+
if (value === undefined) {
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
|
|
211
|
+
throw invalidConfig(`${field} must be a positive integer number of ${unit}.`, { ...details, value });
|
|
212
|
+
}
|
|
213
|
+
return value;
|
|
214
|
+
}
|
|
215
|
+
function readOptionalPositiveIntegerEnv(value, env) {
|
|
216
|
+
if (normalizeOptionalString(value) === undefined) {
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
return readInteger(value, env, 0, invalidConfig, { min: 1, max: Number.MAX_SAFE_INTEGER });
|
|
220
|
+
}
|
|
221
|
+
function asOptionalBoolean(value, field, details) {
|
|
222
|
+
if (value === undefined) {
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
if (typeof value !== "boolean") {
|
|
226
|
+
throw invalidConfig(`${field} must be a boolean.`, { ...details, value });
|
|
227
|
+
}
|
|
228
|
+
return value;
|
|
229
|
+
}
|
|
219
230
|
function isRecord(value) {
|
|
220
231
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
221
232
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { CronAdapterError, startCronAdapter, } from "./scheduler.js";
|
|
2
|
-
export type { CronAdapterErrorCode, CronAdapterErrorDetails, CronAdapterLogger, CronAdapterOptions, CronAdapterStartResult, CronJob, CronJobResult, CronRequestMetadata, } from "./scheduler.js";
|
|
3
|
-
export {
|
|
2
|
+
export type { CronAdapterErrorCode, CronAdapterErrorDetails, CronAdapterLogger, CronAdapterOptions, CronAdapterStartResult, CronJob, CronJobResult, CronOverflowPolicy, CronOverlapMode, CronRequestMetadata, } from "./scheduler.js";
|
|
3
|
+
export { CRON_CONFIG_FIELDS, 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";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,kBAAkB,EAClB,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
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { CronAdapterError, startCronAdapter, } from "./scheduler.js";
|
|
2
|
-
export {
|
|
2
|
+
export { CRON_CONFIG_FIELDS, loadCronAdapterConfig, redactCronAdapterConfig, toCronJobs, } from "./config.js";
|
|
3
3
|
export { loadCronJobsFromDirectory, parseCronJobMarkdown, } from "./jobs-dir.js";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
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;
|
|
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,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,GACX,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
package/dist/jobs-dir.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs-dir.d.ts","sourceRoot":"","sources":["../src/jobs-dir.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAsCrF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"jobs-dir.d.ts","sourceRoot":"","sources":["../src/jobs-dir.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAsCrF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CA8CrF"}
|
package/dist/jobs-dir.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readdir, readFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { normalizeOptionalString, readBoolean } from "@mono-agent/
|
|
3
|
+
import { normalizeOptionalString, readBoolean } from "@mono-agent/agent-contracts";
|
|
4
4
|
import { CronAdapterError } from "./scheduler.js";
|
|
5
5
|
const DEFAULT_TIMEZONE = "UTC";
|
|
6
6
|
// Matches a leading YAML-style frontmatter block (`---` … `---`). Mirrors the
|
|
@@ -76,6 +76,12 @@ export function parseCronJobMarkdown(fileName, content) {
|
|
|
76
76
|
const timezone = normalizeOptionalString(meta.timezone) ?? DEFAULT_TIMEZONE;
|
|
77
77
|
const enabled = readBoolean(meta.enabled, `${fileName} frontmatter \`enabled\``, true, invalidConfig);
|
|
78
78
|
const conversationId = normalizeOptionalString(meta.conversationId);
|
|
79
|
+
const maxRunMs = readOptionalPositiveInteger(meta.maxRunMs, `${fileName} frontmatter \`maxRunMs\``, fileName);
|
|
80
|
+
const notify = readBoolean(meta.notify, `${fileName} frontmatter \`notify\``, false, invalidConfig);
|
|
81
|
+
const notifyConversationId = normalizeOptionalString(meta.notifyConversationId);
|
|
82
|
+
const notifyFailureCooldownHours = readOptionalPositiveInteger(meta.notifyFailureCooldownHours, `${fileName} frontmatter \`notifyFailureCooldownHours\``, fileName, "hours");
|
|
83
|
+
const model = normalizeOptionalString(meta.model);
|
|
84
|
+
const effort = normalizeOptionalString(meta.effort);
|
|
79
85
|
return {
|
|
80
86
|
id,
|
|
81
87
|
enabled,
|
|
@@ -83,6 +89,12 @@ export function parseCronJobMarkdown(fileName, content) {
|
|
|
83
89
|
timezone,
|
|
84
90
|
prompt,
|
|
85
91
|
...(conversationId === undefined ? {} : { conversationId }),
|
|
92
|
+
...(maxRunMs === undefined ? {} : { maxRunMs }),
|
|
93
|
+
...(notify ? { notify } : {}),
|
|
94
|
+
...(notifyConversationId === undefined ? {} : { notifyConversationId }),
|
|
95
|
+
...(notifyFailureCooldownHours === undefined ? {} : { notifyFailureCooldownHours }),
|
|
96
|
+
...(model === undefined ? {} : { model }),
|
|
97
|
+
...(effort === undefined ? {} : { effort }),
|
|
86
98
|
};
|
|
87
99
|
}
|
|
88
100
|
/**
|
|
@@ -125,6 +137,20 @@ function stripQuotes(value) {
|
|
|
125
137
|
function stripMarkdownExtension(fileName) {
|
|
126
138
|
return fileName.replace(/\.md$/iu, "");
|
|
127
139
|
}
|
|
140
|
+
function readOptionalPositiveInteger(value, field, fileName, unit = "milliseconds") {
|
|
141
|
+
const normalized = normalizeOptionalString(value);
|
|
142
|
+
if (normalized === undefined) {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
if (!/^\d+$/u.test(normalized)) {
|
|
146
|
+
throw invalidConfig(`${field} must be a positive integer number of ${unit}.`, { file: fileName, value });
|
|
147
|
+
}
|
|
148
|
+
const parsed = Number(normalized);
|
|
149
|
+
if (!Number.isSafeInteger(parsed) || parsed <= 0) {
|
|
150
|
+
throw invalidConfig(`${field} must be a positive integer number of ${unit}.`, { file: fileName, value });
|
|
151
|
+
}
|
|
152
|
+
return parsed;
|
|
153
|
+
}
|
|
128
154
|
function errorToMessage(error) {
|
|
129
155
|
return error instanceof Error ? error.message : String(error);
|
|
130
156
|
}
|
package/dist/jobs-dir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs-dir.js","sourceRoot":"","sources":["../src/jobs-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"jobs-dir.js","sourceRoot":"","sources":["../src/jobs-dir.ts"],"names":[],"mappings":"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"}
|
package/dist/scheduler.d.ts
CHANGED
|
@@ -5,6 +5,14 @@ export interface CronRequestMetadata {
|
|
|
5
5
|
readonly timezone: string;
|
|
6
6
|
readonly scheduledAt: string;
|
|
7
7
|
readonly startedAt: string;
|
|
8
|
+
readonly nativeNotify?: {
|
|
9
|
+
readonly enabled: true;
|
|
10
|
+
readonly conversationId?: string;
|
|
11
|
+
};
|
|
12
|
+
/** Per-job runtime model override (raw string; parsed/validated by the app). */
|
|
13
|
+
readonly model?: string;
|
|
14
|
+
/** Per-job reasoning effort override (raw string; validated by the app). */
|
|
15
|
+
readonly effort?: string;
|
|
8
16
|
}
|
|
9
17
|
export interface CronJob {
|
|
10
18
|
readonly id: string;
|
|
@@ -12,7 +20,26 @@ export interface CronJob {
|
|
|
12
20
|
readonly timezone?: string;
|
|
13
21
|
readonly prompt: string;
|
|
14
22
|
readonly conversationId?: string;
|
|
23
|
+
/** Per-job watchdog override in milliseconds. Falls back to CronAdapterOptions.maxRunMs. */
|
|
24
|
+
readonly maxRunMs?: number;
|
|
25
|
+
/** When true, the app host may deliver the final answer to a notify-capable conversation. */
|
|
26
|
+
readonly notify?: boolean;
|
|
27
|
+
/** Optional destination conversationId for native notification delivery. */
|
|
28
|
+
readonly notifyConversationId?: string;
|
|
29
|
+
/** Per-job runtime model override (raw string; parsed/validated by the app). */
|
|
30
|
+
readonly model?: string;
|
|
31
|
+
/** Per-job reasoning effort override (raw string; validated by the app). */
|
|
32
|
+
readonly effort?: string;
|
|
15
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Overlap policy when a job fires while a prior run is still active.
|
|
36
|
+
* - "skip" (default): drop the new firing (legacy behavior).
|
|
37
|
+
* - "queue": preserve the firing and run it after the current one.
|
|
38
|
+
* - "replace": abort the active run and run the newest firing instead.
|
|
39
|
+
*/
|
|
40
|
+
export type CronOverlapMode = "queue" | "skip" | "replace";
|
|
41
|
+
/** What to do when a job's queue exceeds maxQueueDepth (overlap:"queue"). */
|
|
42
|
+
export type CronOverflowPolicy = "preserve" | "coalesce" | "drop-oldest";
|
|
16
43
|
export type CronJobResult = {
|
|
17
44
|
readonly kind: "succeeded";
|
|
18
45
|
readonly jobId: string;
|
|
@@ -28,11 +55,22 @@ export type CronJobResult = {
|
|
|
28
55
|
readonly startedAt: string;
|
|
29
56
|
readonly completedAt: string;
|
|
30
57
|
readonly error: string;
|
|
58
|
+
readonly failureKind?: string;
|
|
31
59
|
} | {
|
|
32
60
|
readonly kind: "skipped";
|
|
33
61
|
readonly jobId: string;
|
|
34
62
|
readonly scheduledAt: string;
|
|
35
63
|
readonly reason: "overlap";
|
|
64
|
+
} | {
|
|
65
|
+
readonly kind: "queued";
|
|
66
|
+
readonly jobId: string;
|
|
67
|
+
readonly scheduledAt: string;
|
|
68
|
+
readonly queueDepth: number;
|
|
69
|
+
} | {
|
|
70
|
+
readonly kind: "dropped";
|
|
71
|
+
readonly jobId: string;
|
|
72
|
+
readonly scheduledAt: string;
|
|
73
|
+
readonly reason: "overflow";
|
|
36
74
|
};
|
|
37
75
|
export interface CronAdapterLogger {
|
|
38
76
|
debug?(message: string, metadata?: Record<string, unknown>): void;
|
|
@@ -46,6 +84,19 @@ export interface CronAdapterOptions {
|
|
|
46
84
|
readonly now?: () => Date;
|
|
47
85
|
readonly onResult?: (result: CronJobResult) => void | Promise<void>;
|
|
48
86
|
readonly logger?: CronAdapterLogger;
|
|
87
|
+
/** Overlap policy for a job that fires while still running. Default "skip". */
|
|
88
|
+
readonly overlap?: CronOverlapMode;
|
|
89
|
+
/** Soft cap on a job's pending-firing queue (overlap:"queue"). Unbounded if unset. */
|
|
90
|
+
readonly maxQueueDepth?: number;
|
|
91
|
+
/** What to do past maxQueueDepth. Default "preserve" (keep all, warn). */
|
|
92
|
+
readonly overflow?: CronOverflowPolicy;
|
|
93
|
+
/**
|
|
94
|
+
* Watchdog: if a run's responder does not settle within this many ms, abort it and reclaim the
|
|
95
|
+
* slot (`state.active`) so the job is not blocked forever. A hung responder otherwise leaves
|
|
96
|
+
* `state.active` set, and every future firing is skipped as "a prior run is still active".
|
|
97
|
+
* Unset (default) disables the watchdog, preserving prior behavior.
|
|
98
|
+
*/
|
|
99
|
+
readonly maxRunMs?: number;
|
|
49
100
|
}
|
|
50
101
|
export interface CronAdapterStartResult {
|
|
51
102
|
readonly jobs: readonly CronJob[];
|
|
@@ -63,5 +114,20 @@ export declare class CronAdapterError extends Error {
|
|
|
63
114
|
readonly details: CronAdapterErrorDetails;
|
|
64
115
|
constructor(code: CronAdapterErrorCode, message: string, details?: CronAdapterErrorDetails);
|
|
65
116
|
}
|
|
117
|
+
interface PendingFiring {
|
|
118
|
+
readonly scheduledAt: string;
|
|
119
|
+
}
|
|
120
|
+
interface JobRuntimeState {
|
|
121
|
+
active: AbortController | undefined;
|
|
122
|
+
pending: PendingFiring[];
|
|
123
|
+
}
|
|
66
124
|
export declare function startCronAdapter(options: CronAdapterOptions): CronAdapterStartResult;
|
|
125
|
+
/**
|
|
126
|
+
* Internal: dispatch a single firing for a job, honoring the overlap policy.
|
|
127
|
+
* Exported (but not re-exported from the package index) so the overlap
|
|
128
|
+
* defense-in-depth fallback can be regression-tested directly, bypassing the
|
|
129
|
+
* startup `validateOptions` gate that rejects invalid overlap values.
|
|
130
|
+
*/
|
|
131
|
+
export declare function handleTick(job: CronJob, scheduledAtDate: Date, options: CronAdapterOptions, jobStates: Map<string, JobRuntimeState>): void;
|
|
132
|
+
export {};
|
|
67
133
|
//# sourceMappingURL=scheduler.d.ts.map
|
package/dist/scheduler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/scheduler.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CronExpressionParser } from "cron-parser";
|
|
2
2
|
import { BufferedMessageStream, isAgentResponseCancelledError, } from "@mono-agent/agent-contracts";
|
|
3
|
-
import { normalizeOptionalString } from "@mono-agent/
|
|
3
|
+
import { normalizeOptionalString } from "@mono-agent/agent-contracts";
|
|
4
4
|
export class CronAdapterError extends Error {
|
|
5
5
|
code;
|
|
6
6
|
details;
|
|
@@ -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
|
|
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,
|
|
21
|
+
scheduleNext(entry, options, jobStates);
|
|
22
22
|
}
|
|
23
23
|
return {
|
|
24
24
|
jobs: options.jobs.slice(),
|
|
25
25
|
get activeJobCount() {
|
|
26
|
-
|
|
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
|
|
36
|
-
|
|
40
|
+
for (const state of jobStates.values()) {
|
|
41
|
+
state.pending.length = 0;
|
|
42
|
+
state.active?.abort(new Error("Cron adapter stopped."));
|
|
37
43
|
}
|
|
38
|
-
|
|
44
|
+
jobStates.clear();
|
|
39
45
|
},
|
|
40
46
|
};
|
|
41
47
|
}
|
|
42
|
-
function scheduleNext(entry, options,
|
|
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,
|
|
55
|
+
scheduleNext(entry, options, jobStates);
|
|
50
56
|
return;
|
|
51
57
|
}
|
|
52
|
-
handleTick(entry.job, scheduledAt, options,
|
|
53
|
-
scheduleNext(entry, options,
|
|
58
|
+
handleTick(entry.job, scheduledAt, options, jobStates);
|
|
59
|
+
scheduleNext(entry, options, jobStates);
|
|
54
60
|
}, Math.min(delayMs, MAX_TIMEOUT_MS));
|
|
55
61
|
}
|
|
56
|
-
function
|
|
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
|
-
|
|
59
|
-
|
|
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,
|
|
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
|
-
|
|
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."),
|
|
@@ -78,43 +165,132 @@ function handleTick(job, scheduledAtDate, options, activeJobs) {
|
|
|
78
165
|
timezone: job.timezone ?? DEFAULT_TIMEZONE,
|
|
79
166
|
scheduledAt,
|
|
80
167
|
startedAt,
|
|
168
|
+
...(job.notify === true
|
|
169
|
+
? {
|
|
170
|
+
nativeNotify: {
|
|
171
|
+
enabled: true,
|
|
172
|
+
...(job.notifyConversationId === undefined ? {} : { conversationId: job.notifyConversationId }),
|
|
173
|
+
},
|
|
174
|
+
}
|
|
175
|
+
: {}),
|
|
176
|
+
...(job.model === undefined ? {} : { model: job.model }),
|
|
177
|
+
...(job.effort === undefined ? {} : { effort: job.effort }),
|
|
81
178
|
},
|
|
82
179
|
},
|
|
83
180
|
};
|
|
181
|
+
// Finalize the run at most once. A hung responder (a promise that never settles AND ignores the
|
|
182
|
+
// abort signal) would otherwise leave `state.active` set forever, skipping every future firing.
|
|
183
|
+
// The watchdog below races the responder so the slot is always reclaimed; whichever path fires
|
|
184
|
+
// first wins, and the loser becomes a no-op. Clearing `state.active` + draining lives here so it
|
|
185
|
+
// happens exactly once regardless of which path completes.
|
|
186
|
+
let settled = false;
|
|
187
|
+
let watchdog;
|
|
188
|
+
const finalize = (handle) => {
|
|
189
|
+
if (settled) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
settled = true;
|
|
193
|
+
if (watchdog !== undefined) {
|
|
194
|
+
clearTimeout(watchdog);
|
|
195
|
+
}
|
|
196
|
+
void handle()
|
|
197
|
+
.catch(() => undefined)
|
|
198
|
+
.finally(() => {
|
|
199
|
+
state.active = undefined;
|
|
200
|
+
drainNext(job, options, jobStates, state);
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
const effectiveMaxRunMs = job.maxRunMs ?? options.maxRunMs;
|
|
204
|
+
if (effectiveMaxRunMs !== undefined && effectiveMaxRunMs > 0) {
|
|
205
|
+
const limitMs = effectiveMaxRunMs;
|
|
206
|
+
watchdog = setTimeout(() => {
|
|
207
|
+
// Signal the responder to stop, then reclaim the slot even if it never settles.
|
|
208
|
+
controller.abort(new Error(`Cron job exceeded maxRunMs (${limitMs}ms).`));
|
|
209
|
+
finalize(async () => {
|
|
210
|
+
const result = {
|
|
211
|
+
kind: "failed",
|
|
212
|
+
jobId: job.id,
|
|
213
|
+
scheduledAt,
|
|
214
|
+
startedAt,
|
|
215
|
+
completedAt: (options.now?.() ?? new Date()).toISOString(),
|
|
216
|
+
error: `Cron job timed out after ${limitMs}ms (responder did not settle); reclaiming the slot.`,
|
|
217
|
+
};
|
|
218
|
+
options.logger?.error?.("Cron job timed out; reclaiming the slot.", { jobId: job.id, maxRunMs: limitMs });
|
|
219
|
+
await emitResult(options, result);
|
|
220
|
+
});
|
|
221
|
+
}, limitMs);
|
|
222
|
+
// Don't let the watchdog timer keep the process alive on its own.
|
|
223
|
+
watchdog.unref?.();
|
|
224
|
+
}
|
|
84
225
|
void options.responder.respond(request, stream)
|
|
85
|
-
.then(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
226
|
+
.then((response) => {
|
|
227
|
+
finalize(async () => {
|
|
228
|
+
await stream.finish(response.text);
|
|
229
|
+
// Guard against a responder that ignores/races the abort signal and still
|
|
230
|
+
// resolves with text: if THIS run's controller was aborted (overlap:"replace"
|
|
231
|
+
// discarding the in-flight run, the watchdog, or stop()), report the run as
|
|
232
|
+
// cancelled rather than succeeded. `controller` is captured per-run, so this keys
|
|
233
|
+
// the abort check to this specific firing (not a newer run's controller). This
|
|
234
|
+
// mirrors the .catch() classification below and LiveSessionManager.drain().
|
|
235
|
+
if (controller.signal.aborted) {
|
|
236
|
+
const result = {
|
|
237
|
+
kind: "cancelled",
|
|
238
|
+
jobId: job.id,
|
|
239
|
+
scheduledAt,
|
|
240
|
+
startedAt,
|
|
241
|
+
completedAt: (options.now?.() ?? new Date()).toISOString(),
|
|
242
|
+
error: "Cron job cancelled (responder resolved after abort).",
|
|
243
|
+
};
|
|
244
|
+
options.logger?.warn?.("Cron job responder resolved after abort; reporting cancelled.", {
|
|
245
|
+
jobId: job.id,
|
|
246
|
+
error: result.error,
|
|
247
|
+
});
|
|
248
|
+
await emitResult(options, result);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const result = {
|
|
252
|
+
kind: "succeeded",
|
|
253
|
+
jobId: job.id,
|
|
254
|
+
scheduledAt,
|
|
255
|
+
startedAt,
|
|
256
|
+
completedAt: (options.now?.() ?? new Date()).toISOString(),
|
|
257
|
+
...(stream.text.length === 0 ? {} : { text: stream.text }),
|
|
258
|
+
...(response.metadata === undefined ? {} : { metadata: response.metadata }),
|
|
259
|
+
};
|
|
260
|
+
await emitResult(options, result);
|
|
111
261
|
});
|
|
112
|
-
await emitResult(options, result);
|
|
113
262
|
})
|
|
114
|
-
.
|
|
115
|
-
|
|
263
|
+
.catch((error) => {
|
|
264
|
+
finalize(async () => {
|
|
265
|
+
const cancelled = controller.signal.aborted || isAgentResponseCancelledError(error);
|
|
266
|
+
const failureKind = failureKindFromUnknown(error);
|
|
267
|
+
const result = {
|
|
268
|
+
kind: cancelled ? "cancelled" : "failed",
|
|
269
|
+
jobId: job.id,
|
|
270
|
+
scheduledAt,
|
|
271
|
+
startedAt,
|
|
272
|
+
completedAt: (options.now?.() ?? new Date()).toISOString(),
|
|
273
|
+
error: errorToMessage(error),
|
|
274
|
+
...(failureKind === undefined ? {} : { failureKind }),
|
|
275
|
+
};
|
|
276
|
+
options.logger?.[cancelled ? "warn" : "error"]?.("Cron job responder failed.", {
|
|
277
|
+
jobId: job.id,
|
|
278
|
+
error: result.error,
|
|
279
|
+
});
|
|
280
|
+
await emitResult(options, result);
|
|
281
|
+
});
|
|
116
282
|
});
|
|
117
283
|
}
|
|
284
|
+
function drainNext(job, options, jobStates, state) {
|
|
285
|
+
const next = state.pending.shift();
|
|
286
|
+
if (next !== undefined) {
|
|
287
|
+
startRun(job, next.scheduledAt, options, jobStates, state);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
if (state.active === undefined && state.pending.length === 0) {
|
|
291
|
+
jobStates.delete(job.id);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
118
294
|
async function emitResult(options, result) {
|
|
119
295
|
await options.onResult?.(result);
|
|
120
296
|
}
|
|
@@ -132,10 +308,18 @@ function nextDateFor(job, currentDate) {
|
|
|
132
308
|
});
|
|
133
309
|
}
|
|
134
310
|
}
|
|
311
|
+
const VALID_OVERLAP_MODES = new Set(["queue", "skip", "replace"]);
|
|
312
|
+
const VALID_OVERFLOW_POLICIES = new Set(["preserve", "coalesce", "drop-oldest"]);
|
|
135
313
|
function validateOptions(options) {
|
|
136
314
|
if (typeof options.responder?.respond !== "function") {
|
|
137
315
|
throw new CronAdapterError("invalid_config", "Cron adapter requires a responder.");
|
|
138
316
|
}
|
|
317
|
+
if (options.overlap !== undefined && !VALID_OVERLAP_MODES.has(options.overlap)) {
|
|
318
|
+
throw new CronAdapterError("invalid_config", "Cron overlap mode is invalid.", { overlap: options.overlap });
|
|
319
|
+
}
|
|
320
|
+
if (options.overflow !== undefined && !VALID_OVERFLOW_POLICIES.has(options.overflow)) {
|
|
321
|
+
throw new CronAdapterError("invalid_config", "Cron overflow policy is invalid.", { overflow: options.overflow });
|
|
322
|
+
}
|
|
139
323
|
const seen = new Set();
|
|
140
324
|
for (const job of options.jobs) {
|
|
141
325
|
if (normalizeOptionalString(job.id) === undefined) {
|
|
@@ -148,6 +332,12 @@ function validateOptions(options) {
|
|
|
148
332
|
if (normalizeOptionalString(job.prompt) === undefined) {
|
|
149
333
|
throw new CronAdapterError("invalid_config", "Cron job prompt is required.", { jobId: job.id });
|
|
150
334
|
}
|
|
335
|
+
if (job.maxRunMs !== undefined && (!Number.isInteger(job.maxRunMs) || job.maxRunMs <= 0)) {
|
|
336
|
+
throw new CronAdapterError("invalid_config", "Cron job maxRunMs must be a positive integer.", {
|
|
337
|
+
jobId: job.id,
|
|
338
|
+
maxRunMs: job.maxRunMs,
|
|
339
|
+
});
|
|
340
|
+
}
|
|
151
341
|
assertFiveFieldExpression(job);
|
|
152
342
|
nextDateFor(job, options.now?.() ?? new Date());
|
|
153
343
|
}
|
|
@@ -168,4 +358,24 @@ function assertFiveFieldExpression(job) {
|
|
|
168
358
|
function errorToMessage(error) {
|
|
169
359
|
return error instanceof Error ? error.message : String(error);
|
|
170
360
|
}
|
|
361
|
+
function failureKindFromUnknown(error) {
|
|
362
|
+
if (!isRecord(error)) {
|
|
363
|
+
return undefined;
|
|
364
|
+
}
|
|
365
|
+
const direct = normalizedString(error.failureKind);
|
|
366
|
+
if (direct !== undefined) {
|
|
367
|
+
return direct;
|
|
368
|
+
}
|
|
369
|
+
const failure = error.failure;
|
|
370
|
+
if (isRecord(failure)) {
|
|
371
|
+
return normalizedString(failure.kind);
|
|
372
|
+
}
|
|
373
|
+
return undefined;
|
|
374
|
+
}
|
|
375
|
+
function normalizedString(value) {
|
|
376
|
+
return typeof value === "string" ? normalizeOptionalString(value) : undefined;
|
|
377
|
+
}
|
|
378
|
+
function isRecord(value) {
|
|
379
|
+
return typeof value === "object" && value !== null;
|
|
380
|
+
}
|
|
171
381
|
//# sourceMappingURL=scheduler.js.map
|
package/dist/scheduler.js.map
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Cron-based scheduled invocation adapter for agent responders.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
"README.md"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@mono-agent/agent-contracts": "0.
|
|
22
|
-
"@mono-agent/settings": "0.3.0",
|
|
21
|
+
"@mono-agent/agent-contracts": "0.4.1",
|
|
23
22
|
"cron-parser": "^5.5.0"
|
|
24
23
|
},
|
|
25
24
|
"publishConfig": {
|