@plurnk/plurnk-schedule 2.0.0 → 3.0.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/.env.defaults +4 -2
- package/README.md +1 -2
- package/SPEC.md +23 -19
- package/dist/Functionality.d.ts +3 -4
- package/dist/Functionality.d.ts.map +1 -1
- package/dist/Functionality.js +19 -21
- package/dist/Functionality.js.map +1 -1
- package/dist/Scheduler.d.ts +9 -7
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +8 -29
- package/dist/Scheduler.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/definition.d.ts +0 -6
- package/dist/definition.d.ts.map +1 -1
- package/dist/definition.js +1 -6
- package/dist/definition.js.map +1 -1
- package/docs/schedule.md +1 -3
- package/package.json +7 -7
package/.env.defaults
CHANGED
|
@@ -9,8 +9,10 @@ PLURNK_SCHEDULE_ENABLED=1
|
|
|
9
9
|
# Upcoming occurrences shown when rule text is read before it is added, positive integer.
|
|
10
10
|
PLURNK_SCHEDULE_PREVIEW_OCCURRENCES=3
|
|
11
11
|
# A service-origin rule: the operator's crontab. JSON with the RFC 5545 rule text (without a
|
|
12
|
-
# DTSTART it starts when the daemon starts), the target worker, the message
|
|
13
|
-
#
|
|
12
|
+
# DTSTART it starts when the daemon starts), the target worker, and the message.
|
|
13
|
+
# Disable-only for a worker; may be unbounded.
|
|
14
14
|
# Lowercase aliases use _ for -. Empty definitions are invalid.
|
|
15
15
|
# PLURNK_SCHEDULE_heartbeat={"rule":"FREQ=HOURLY","target":"worker://plurnkbot","prompt":"Check for new messages and report."}
|
|
16
16
|
# PLURNK_SCHEDULE_heartbeat_ENABLED=0
|
|
17
|
+
# Any alias: its rule, and its own _ENABLED control.
|
|
18
|
+
# PLURNK_SCHEDULE_<alias>=<rule>
|
package/README.md
CHANGED
|
@@ -20,8 +20,7 @@ PLURNK_SCHEDULE_heartbeat={"rule":"FREQ=HOURLY","target":"worker://plurnkbot","p
|
|
|
20
20
|
defaults it to UTC; the shell overrides; a workspace overrides through the
|
|
21
21
|
`env` family.
|
|
22
22
|
- `PLURNK_SCHEDULE_<alias>` is one definition as JSON: `rule`, `target`
|
|
23
|
-
(`worker://<name>`)
|
|
24
|
-
(`{"proposals":"accept"}` for a loop nobody watches). A service rule may be
|
|
23
|
+
(`worker://<name>`) and `prompt`. A service rule may be
|
|
25
24
|
unbounded; a rule a worker adds carries `COUNT` or `UNTIL`. Without a
|
|
26
25
|
`DTSTART` a service rule starts when the daemon starts: `FREQ=HOURLY` is a
|
|
27
26
|
check-in at start and every hour after; `BYHOUR`, `BYMINUTE` and `BYSECOND`
|
package/SPEC.md
CHANGED
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
Scheduled messages are one workspace Functionality family named `schedule`,
|
|
6
6
|
owned by `@plurnk/plurnk-schedule` ({§functionality-adapter}). A definition is
|
|
7
|
-
`{ rule, target, prompt
|
|
7
|
+
`{ rule, target, prompt }`: RFC 5545 rule text ({§schedule-rule}), a
|
|
8
8
|
`worker://<name>` target in the workspace ({§worker-name}, preserved exactly), the message delivered at each
|
|
9
|
-
occurrence
|
|
10
|
-
({§schedule-
|
|
11
|
-
coordinator's: `list`, `discover` ({§schedule-clock}), `add`, `enable`,
|
|
9
|
+
occurrence ({§schedule-delivery}). Aliases take the shared grammar. The verbs are the
|
|
10
|
+
coordinator's: `list`, `discover` ({§schedule-clock}), `add`, `replace`, `enable`,
|
|
12
11
|
`disable`, `remove`. The adapter publishes no documents of its own; the
|
|
13
12
|
runtime document's authored body is `docs/schedule.md`
|
|
14
13
|
({§functionality-model-projection}).
|
|
@@ -34,12 +33,14 @@ defect, not a refusal.
|
|
|
34
33
|
|
|
35
34
|
## §schedule-bound Bound
|
|
36
35
|
|
|
37
|
-
A workspace rule ends: its RRULE carries `COUNT` or `UNTIL`, else
|
|
36
|
+
A workspace rule ends: its RRULE carries `COUNT` or `UNTIL`, else admission
|
|
38
37
|
refuses with `rule-unbounded`. A service rule ({§schedule-environment}) may be
|
|
39
38
|
unbounded; the operator owns it. An exhausted rule stays listed `active` with
|
|
40
39
|
`exhausted: true` and `next: null`; it arms nothing. Exhaustion states that no
|
|
41
40
|
future occurrence exists, not that a message was delivered: a rule may already
|
|
42
|
-
be exhausted when added.
|
|
41
|
+
be exhausted when added. Its existing `text` description ends with
|
|
42
|
+
`; no future occurrences`, in add results and later inspection alike. This is
|
|
43
|
+
status, not a failure or a claim of delivery; no dates or wake conditions change.
|
|
43
44
|
|
|
44
45
|
## §schedule-zone Zone
|
|
45
46
|
|
|
@@ -63,8 +64,8 @@ text in `source` returns one inert candidate whose summary opens with the
|
|
|
63
64
|
current time in the effective zone (RFC 9557, to the second), states the rule
|
|
64
65
|
in words, and previews its next `PLURNK_SCHEDULE_PREVIEW_OCCURRENCES`
|
|
65
66
|
occurrences ({§schedule-discovery-preview}); the candidate's definition
|
|
66
|
-
carries the canonical rule text. Discovery persists nothing;
|
|
67
|
-
`
|
|
67
|
+
carries the canonical rule text. Discovery persists nothing; rule text in
|
|
68
|
+
`source` is its one input ({§functionality-discover-advertisement}).
|
|
68
69
|
|
|
69
70
|
§schedule-discovery-preview `PLURNK_SCHEDULE_PREVIEW_OCCURRENCES` is a family control
|
|
70
71
|
like `PLURNK_SCHEDULE_ENABLED`: a positive integer, never read as a rule alias.
|
|
@@ -75,22 +76,26 @@ The module holds one armed occurrence per enabled (workspace, alias). At the
|
|
|
75
76
|
occurrence it resolves the target worker by name and delivers the prompt
|
|
76
77
|
through the application port's `runLoop` with the source `schedule://<alias>`.
|
|
77
78
|
The message joins the worker's live loop, waking it if parked, or starts a new
|
|
78
|
-
loop
|
|
79
|
+
loop ({§message-arrival}, {§message-causal-source}). Delivery carries no approval
|
|
80
|
+
authority; the receiving worker retains its owner ({§worker-ownership}).
|
|
79
81
|
A future occurrence is not live work for WAIT ({§wait-obligation-matrix}); it
|
|
80
82
|
neither holds a loop open nor concludes it. The next occurrence
|
|
81
83
|
then arms from the present: a late fire delivers once and skips what it
|
|
82
84
|
missed, never a backlog. A missing worker or a refused delivery disarms the
|
|
83
|
-
rule and lists it `unavailable` with the Problem; `enable` retries.
|
|
85
|
+
rule and lists it `unavailable` with the Problem; `enable` retries. A failure
|
|
86
|
+
belongs to the complete definition, including its target and prompt, not just
|
|
87
|
+
the recurrence. Retry or replacement clears it only on successful publication. After
|
|
84
88
|
every delivery attempt the family's outcomes are refreshed where the workspace
|
|
85
89
|
is resident.
|
|
86
90
|
|
|
87
|
-
§schedule-first-arming **A rule's first arming is judged from
|
|
88
|
-
rule at the instant it admits it; preparation and arming come later, and a single
|
|
91
|
+
§schedule-first-arming **A new or changed rule's first arming is judged from admission.**
|
|
92
|
+
`add`/`replace` reads the rule at the instant it admits it; preparation and arming come later, and a single
|
|
89
93
|
occurrence can fall between. The first arming of an admitted rule takes the admission
|
|
90
94
|
instant as its cursor, so that occurrence still arms, fires at once, and delivers once, and
|
|
91
|
-
the
|
|
92
|
-
|
|
93
|
-
the present
|
|
95
|
+
the receipt names it as `next`. Admission travels only with that candidate
|
|
96
|
+
({§functionality-admission-preparation}); a rejected or identical replacement cannot
|
|
97
|
+
reset the live timer or replay a delivered occurrence. The present is the cursor
|
|
98
|
+
after first arming and when a daemon starts with stored rules, never a backlog.
|
|
94
99
|
|
|
95
100
|
## §schedule-residency Residency
|
|
96
101
|
|
|
@@ -117,12 +122,11 @@ or persisting a rule ({§operator-config-offline-validation}).
|
|
|
117
122
|
|
|
118
123
|
| code | status | contract |
|
|
119
124
|
|---|---:|---|
|
|
120
|
-
| `
|
|
121
|
-
| `query-unsupported` | 400 | schedule discovery reads rule text from `source`; there is no catalog to search. |
|
|
122
|
-
| `source-required` | 400 | schedule discovery needs rule text in `source`; `FREQ=DAILY` is enough to read the time. |
|
|
123
|
-
| `alias-required` | 400 | schedule add needs an alias. |
|
|
125
|
+
| `alias-required` | 400 | schedule definition needs an alias. |
|
|
124
126
|
| `definition-invalid` | 400 | The schedule definition is invalid. |
|
|
125
127
|
| `rule-invalid` | 400 | The rule of '*alias*' is unreadable: *cause*. |
|
|
126
128
|
| `delivery-failed` | 502 | Delivering the scheduled message '*alias*' failed. |
|
|
127
129
|
| `target-missing` | 404 | No worker named '*name*' exists in this workspace. |
|
|
128
130
|
| `rule-unbounded` | 400 | A workspace rule ends: give the RRULE a COUNT or an UNTIL. |
|
|
131
|
+
| `authority-invalid` | 400 | Schedule resources use an empty authority. |
|
|
132
|
+
| `not-found` | 404 | The schedule resource does not exist. |
|
package/dist/Functionality.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type FunctionalityCandidate, type FunctionalityDiscoverQuery, type FunctionalityFamilyHandle, type FunctionalityIdentity, type FunctionalityOptions, type FunctionalityPreparation, type FunctionalityPrepared, type FunctionalityServiceDefinition, type JsonSchema, type ProblemDetails, type WorkspaceCapabilityIdentity } from "@plurnk/plurnk-contracts";
|
|
2
2
|
import Scheduler, { type SchedulerOptions } from "./Scheduler.ts";
|
|
3
3
|
import ScheduleResources from "./ScheduleResources.ts";
|
|
4
|
-
import type { ModuleSetupSeam } from "@plurnk/plurnk-modules";
|
|
4
|
+
import type { FunctionalityDiscovery, ModuleSetupSeam } from "@plurnk/plurnk-modules";
|
|
5
5
|
export declare const SCHEDULE_FAMILY = "schedule";
|
|
6
6
|
export declare const SCHEDULE_OWNER = "@plurnk/plurnk-schedule";
|
|
7
7
|
export type EnvironmentSeam = Pick<ModuleSetupSeam, "readWorkspaceEnvironment" | "readWorkerEnvironment">;
|
|
@@ -27,9 +27,7 @@ export default class ScheduleFunctionality {
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
readonly docsDir: string;
|
|
30
|
-
readonly discovery:
|
|
31
|
-
details: string;
|
|
32
|
-
};
|
|
30
|
+
readonly discovery: FunctionalityDiscovery;
|
|
33
31
|
constructor(env?: NodeJS.ProcessEnv, options?: ScheduleFunctionalityOptions);
|
|
34
32
|
attach(handle: FunctionalityFamilyHandle, environment: EnvironmentSeam): void;
|
|
35
33
|
get scheduler(): Scheduler;
|
|
@@ -38,6 +36,7 @@ export default class ScheduleFunctionality {
|
|
|
38
36
|
admit(input: unknown, identity: FunctionalityIdentity, _caller?: unknown, options?: FunctionalityOptions): Promise<{
|
|
39
37
|
alias: string;
|
|
40
38
|
definition: object;
|
|
39
|
+
preparation: number;
|
|
41
40
|
}>;
|
|
42
41
|
prepare(preparation: FunctionalityPreparation): Promise<FunctionalityPrepared>;
|
|
43
42
|
teardown(_snapshot: unknown, _identity: WorkspaceCapabilityIdentity): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Functionality.d.ts","sourceRoot":"","sources":["../src/Functionality.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Functionality.d.ts","sourceRoot":"","sources":["../src/Functionality.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAEzB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,8BAA8B,EACnC,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,2BAA2B,EACnC,MAAM,0BAA0B,CAAC;AAIlC,OAAO,SAAS,EAAE,EAAsB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEtF,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,cAAc,4BAA4B,CAAC;AAGxD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,0BAA0B,GAAG,uBAAuB,CAAC,CAAC;AAQ1G,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC;CAAG;AAE1F,qBAAa,0BAA2B,SAAQ,KAAK;IACjD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,YAAY,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAInD;CACJ;AAyBD,MAAM,CAAC,OAAO,OAAO,qBAAqB;;IACtC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,cAAmB;IAClC,QAAQ,CAAC,cAAc,6BAAkB;IACzC,QAAQ,CAAC,OAAO,+BAA+B;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAqB;IAC1D,QAAQ,CAAC,OAAO;QACZ,KAAK;QACL,UAAU;YACN,IAAI;YACJ,MAAM;YACN,MAAM;;MAEZ;IACF,QAAQ,CAAC,OAAO,SAAiD;IACjE,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAGxC;IAWF,YAAY,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,OAAO,GAAE,4BAAiC,EAU3F;IAED,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,CAG5E;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAEK,SAAS,IAAI,OAAO,CAAC,SAAS,8BAA8B,EAAE,CAAC,CAGpE;IAGK,QAAQ,CAAC,KAAK,EAAE,0BAA0B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAiB7J;IAEK,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAgBnL;IAEK,OAAO,CAAC,WAAW,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0DnF;IAIK,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;CAoC/F"}
|
package/dist/Functionality.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// and tells the time ({§schedule-clock}), admission that canonicalizes and bounds a rule, and the
|
|
4
4
|
// outcomes the timers stand behind ({§schedule-delivery}, {§schedule-residency}).
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { isDeepStrictEqual } from "node:util";
|
|
6
7
|
import { Problems, } from "@plurnk/plurnk-contracts";
|
|
7
8
|
import { previewOccurrences, validateConfiguration } from "./config.js";
|
|
8
9
|
import { DEFINITION_SCHEMA, DefinitionError, readDefinition } from "./definition.js";
|
|
@@ -43,6 +44,7 @@ export default class ScheduleFunctionality {
|
|
|
43
44
|
};
|
|
44
45
|
docsDir = fileURLToPath(new URL("..", import.meta.url));
|
|
45
46
|
discovery = {
|
|
47
|
+
inputs: ["source"],
|
|
46
48
|
details: "`source` is rule text: RFC 5545, an optional DTSTART line and one RRULE line, or bare `FREQ=…` parts. One inert candidate comes back. Its summary opens with the current time in the effective zone and previews the first occurrences; its definition carries the rule as it would be stored, to `add` with a `target` and a `prompt`. Nothing is persisted.",
|
|
47
49
|
};
|
|
48
50
|
#env;
|
|
@@ -78,18 +80,10 @@ export default class ScheduleFunctionality {
|
|
|
78
80
|
}
|
|
79
81
|
// {§schedule-clock} — the one place the time is told: on demand, beside the rule it reads.
|
|
80
82
|
async discover(query, identity, options) {
|
|
81
|
-
|
|
82
|
-
throw failure("configuration-unsupported", 400, "schedule discovery reads rule text from `source`; it takes no configuration.", { retryable: false });
|
|
83
|
-
}
|
|
84
|
-
if (query.query !== undefined) {
|
|
85
|
-
throw failure("query-unsupported", 400, "schedule discovery reads rule text from `source`; there is no catalog to search.", { retryable: false });
|
|
86
|
-
}
|
|
87
|
-
if (query.source === undefined) {
|
|
88
|
-
throw failure("source-required", 400, "schedule discovery needs rule text in `source`; `FREQ=DAILY` is enough to read the time.", { retryable: false });
|
|
89
|
-
}
|
|
83
|
+
const source = query.source;
|
|
90
84
|
const zone = await this.#zone(identity, options);
|
|
91
85
|
const now = this.#scheduler.now();
|
|
92
|
-
const parsed = this.#read(
|
|
86
|
+
const parsed = this.#read(source, zone, now);
|
|
93
87
|
const preview = upcoming(parsed, now, previewOccurrences(this.#env)).map(isoString);
|
|
94
88
|
return [{
|
|
95
89
|
alias: parsed.rule.options().freq.toLowerCase(),
|
|
@@ -100,13 +94,13 @@ export default class ScheduleFunctionality {
|
|
|
100
94
|
...(parsed.bounded ? [] : ["unbounded: add needs COUNT or UNTIL"]),
|
|
101
95
|
].join("; "),
|
|
102
96
|
definition: { rule: parsed.text },
|
|
103
|
-
provenance: { kind: "rule", source
|
|
97
|
+
provenance: { kind: "rule", source },
|
|
104
98
|
}];
|
|
105
99
|
}
|
|
106
100
|
async admit(input, identity, _caller, options) {
|
|
107
101
|
const params = isRecord(input) ? input : {};
|
|
108
102
|
if (typeof params.alias !== "string")
|
|
109
|
-
throw failure("alias-required", 400, "schedule
|
|
103
|
+
throw failure("alias-required", 400, "schedule definition needs an alias.", { retryable: false });
|
|
110
104
|
let definition;
|
|
111
105
|
try {
|
|
112
106
|
definition = readDefinition(params.definition);
|
|
@@ -122,19 +116,24 @@ export default class ScheduleFunctionality {
|
|
|
122
116
|
if (!parsed.bounded)
|
|
123
117
|
throw failure("rule-unbounded", 400, "A workspace rule ends: give the RRULE a COUNT or an UNTIL.", { retryable: false });
|
|
124
118
|
// {§schedule-first-arming} — the rule was read now; its first arming is judged from now.
|
|
125
|
-
|
|
126
|
-
return { alias: params.alias, definition: { ...definition, rule: parsed.text } };
|
|
119
|
+
return { alias: params.alias, definition: { ...definition, rule: parsed.text }, preparation: now };
|
|
127
120
|
}
|
|
128
121
|
async prepare(preparation) {
|
|
129
122
|
const { workspaceId } = preparation;
|
|
130
123
|
const previous = preparation.previous;
|
|
124
|
+
let admission;
|
|
125
|
+
if (preparation.admission !== undefined) {
|
|
126
|
+
const { alias, definition, preparation: at } = preparation.admission;
|
|
127
|
+
if (typeof at !== "number" || !Number.isFinite(at))
|
|
128
|
+
throw new Error("Schedule admission has no valid preparation timestamp.");
|
|
129
|
+
if (!isDeepStrictEqual(previous?.rules.get(alias)?.definition, definition))
|
|
130
|
+
admission = { alias, at };
|
|
131
|
+
}
|
|
131
132
|
const rules = new Map();
|
|
132
133
|
const unavailable = new Map();
|
|
133
134
|
const outcomes = new Map();
|
|
134
135
|
const now = this.#scheduler.now();
|
|
135
136
|
for (const [alias, { definition: raw }] of preparation.enabled) {
|
|
136
|
-
if (preparation.force === alias)
|
|
137
|
-
this.#scheduler.forgive(workspaceId, alias);
|
|
138
137
|
let definition;
|
|
139
138
|
let parsed;
|
|
140
139
|
try {
|
|
@@ -155,23 +154,22 @@ export default class ScheduleFunctionality {
|
|
|
155
154
|
}
|
|
156
155
|
rules.set(alias, { alias, definition, parsed });
|
|
157
156
|
const failed = this.#scheduler.failure(workspaceId, alias);
|
|
158
|
-
if (failed !== undefined && failed.
|
|
157
|
+
if (preparation.force !== alias && failed !== undefined && isDeepStrictEqual(failed.definition, definition)) {
|
|
159
158
|
unavailable.set(alias, parsed.text);
|
|
160
159
|
outcomes.set(alias, { state: "unavailable", problem: structuredClone(failed.problem) });
|
|
161
160
|
continue;
|
|
162
161
|
}
|
|
163
|
-
const next = nextOccurrence(parsed,
|
|
162
|
+
const next = nextOccurrence(parsed, admission?.alias === alias ? admission.at : now);
|
|
164
163
|
outcomes.set(alias, {
|
|
165
164
|
state: "active",
|
|
166
165
|
detail: {
|
|
167
166
|
path: `schedule:///rules/${encodeURIComponent(alias)}`,
|
|
168
167
|
rule: parsed.text,
|
|
169
168
|
zone: parsed.zone,
|
|
170
|
-
text: describeRule(parsed)
|
|
169
|
+
text: `${describeRule(parsed)}${next === null ? "; no future occurrences" : ""}`,
|
|
171
170
|
next: next === null ? null : isoString(next),
|
|
172
171
|
exhausted: next === null,
|
|
173
172
|
target: definition.target,
|
|
174
|
-
...(definition.policy === undefined ? {} : { policy: definition.policy }),
|
|
175
173
|
},
|
|
176
174
|
});
|
|
177
175
|
}
|
|
@@ -180,7 +178,7 @@ export default class ScheduleFunctionality {
|
|
|
180
178
|
documents: [],
|
|
181
179
|
outcomes,
|
|
182
180
|
snapshot,
|
|
183
|
-
commit: async () => { await this.#scheduler.sync(workspaceId, rules); },
|
|
181
|
+
commit: async () => { await this.#scheduler.sync(workspaceId, rules, { admission, force: preparation.force }); },
|
|
184
182
|
abort: async () => { },
|
|
185
183
|
};
|
|
186
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Functionality.js","sourceRoot":"","sources":["../src/Functionality.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Functionality.js","sourceRoot":"","sources":["../src/Functionality.ts"],"names":[],"mappings":"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"}
|
package/dist/Scheduler.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ProblemDetails } from "@plurnk/plurnk-contracts";
|
|
2
2
|
import { type ScheduleDefinition } from "./definition.ts";
|
|
3
3
|
import { type ParsedRule } from "./rules.ts";
|
|
4
4
|
export interface ScheduledRule {
|
|
@@ -16,7 +16,6 @@ export interface DeliveryPort {
|
|
|
16
16
|
readonly workerId: number;
|
|
17
17
|
readonly prompt: string;
|
|
18
18
|
readonly source: string;
|
|
19
|
-
readonly policy?: LoopPolicyRequest;
|
|
20
19
|
}): Promise<unknown>;
|
|
21
20
|
}
|
|
22
21
|
export interface SchedulerTimers {
|
|
@@ -30,7 +29,7 @@ export interface SchedulerOptions {
|
|
|
30
29
|
readonly settled?: (workspaceId: number, alias: string) => void;
|
|
31
30
|
}
|
|
32
31
|
export interface ScheduleFailure {
|
|
33
|
-
readonly
|
|
32
|
+
readonly definition: ScheduleDefinition;
|
|
34
33
|
readonly problem: ProblemDetails;
|
|
35
34
|
}
|
|
36
35
|
export declare class ScheduleDeliveryError extends Error {
|
|
@@ -43,11 +42,14 @@ export default class Scheduler {
|
|
|
43
42
|
now(): number;
|
|
44
43
|
start(port: DeliveryPort): void;
|
|
45
44
|
close(): Promise<void>;
|
|
46
|
-
sync(workspaceId: number, rules: ReadonlyMap<string, ScheduledRule
|
|
45
|
+
sync(workspaceId: number, rules: ReadonlyMap<string, ScheduledRule>, options?: {
|
|
46
|
+
readonly admission?: {
|
|
47
|
+
readonly alias: string;
|
|
48
|
+
readonly at: number;
|
|
49
|
+
};
|
|
50
|
+
readonly force?: string;
|
|
51
|
+
}): Promise<void>;
|
|
47
52
|
failure(workspaceId: number, alias: string): ScheduleFailure | undefined;
|
|
48
|
-
admitted(workspaceId: number, alias: string, atMs: number): void;
|
|
49
|
-
cursor(workspaceId: number, alias: string, nowMs: number): number;
|
|
50
|
-
forgive(workspaceId: number, alias: string): void;
|
|
51
53
|
armed(workspaceId: number): readonly string[];
|
|
52
54
|
}
|
|
53
55
|
//# 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":"AAKA,OAAO,EAA0B,KAAK,
|
|
1
|
+
{"version":3,"file":"Scheduler.d.ts","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAIvF,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACrG,OAAO,CAAC,IAAI,EAAE;QACV,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CACpC;AAWD,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,YAAY,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAInD;CACJ;AAmBD,MAAM,CAAC,OAAO,OAAO,SAAS;;IAa1B,YAAY,OAAO,GAAE,gBAAqB,EAKzC;IAED,GAAG,IAAI,MAAM,CAEZ;IAED,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAI9B;IAQK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3B;IAID,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAE;QAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrB;IAED,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEvE;IAED,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAE5C;CAmFJ"}
|
package/dist/Scheduler.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// A delivery failure disarms the rule and holds its Problem for the outcome; `enable` retries.
|
|
6
6
|
import { MAX_TIMER_MS, Problems } from "@plurnk/plurnk-contracts";
|
|
7
7
|
import { createHash } from "node:crypto";
|
|
8
|
+
import { isDeepStrictEqual } from "node:util";
|
|
8
9
|
import { targetWorkerName } from "./definition.js";
|
|
9
10
|
import { nextOccurrence } from "./rules.js";
|
|
10
11
|
export class ScheduleDeliveryError extends Error {
|
|
@@ -31,9 +32,6 @@ export default class Scheduler {
|
|
|
31
32
|
#settled;
|
|
32
33
|
#armed = new Map();
|
|
33
34
|
#failures = new Map();
|
|
34
|
-
// {§schedule-first-arming} — the instant each admitted rule was read at its `add`, until its
|
|
35
|
-
// first arming consumes it. Memory of the running daemon only.
|
|
36
|
-
#admissions = new Map();
|
|
37
35
|
#pending = new Set();
|
|
38
36
|
#port = null;
|
|
39
37
|
#serial = Promise.resolve();
|
|
@@ -73,13 +71,13 @@ export default class Scheduler {
|
|
|
73
71
|
}
|
|
74
72
|
// {§schedule-residency} — a workspace's rule set as published: aliases absent from it disarm,
|
|
75
73
|
// unchanged occurrences retain identity. A held failure clears when its rule leaves the set or changes.
|
|
76
|
-
sync(workspaceId, rules) {
|
|
74
|
+
sync(workspaceId, rules, options = {}) {
|
|
77
75
|
return this.#exclusive(async () => {
|
|
78
76
|
for (const [entryKey, armed] of this.#armed) {
|
|
79
77
|
if (armed.workspaceId !== workspaceId)
|
|
80
78
|
continue;
|
|
81
79
|
const replacement = rules.get(armed.rule.alias);
|
|
82
|
-
if (replacement !== undefined &&
|
|
80
|
+
if (replacement !== undefined && isDeepStrictEqual(replacement.definition, armed.rule.definition))
|
|
83
81
|
continue;
|
|
84
82
|
if (armed.handle !== null)
|
|
85
83
|
this.#timers.clear(armed.handle);
|
|
@@ -89,41 +87,25 @@ export default class Scheduler {
|
|
|
89
87
|
if (!entryKey.startsWith(`${workspaceId}:`))
|
|
90
88
|
continue;
|
|
91
89
|
const rule = rules.get(entryKey.slice(entryKey.indexOf(":") + 1));
|
|
92
|
-
if (rule === undefined || rule.
|
|
90
|
+
if (rule === undefined || rule.alias === options.force || !isDeepStrictEqual(rule.definition, failed.definition))
|
|
93
91
|
this.#failures.delete(entryKey);
|
|
94
92
|
}
|
|
95
|
-
for (const entryKey of this.#admissions.keys()) {
|
|
96
|
-
if (entryKey.startsWith(`${workspaceId}:`) && !rules.has(entryKey.slice(entryKey.indexOf(":") + 1)))
|
|
97
|
-
this.#admissions.delete(entryKey);
|
|
98
|
-
}
|
|
99
93
|
for (const rule of rules.values()) {
|
|
100
94
|
if (this.#failures.has(key(workspaceId, rule.alias)))
|
|
101
95
|
continue;
|
|
102
96
|
if (this.#armed.has(key(workspaceId, rule.alias)))
|
|
103
97
|
continue;
|
|
104
|
-
this.#arm(workspaceId, rule);
|
|
98
|
+
this.#arm(workspaceId, rule, options.admission?.alias === rule.alias ? options.admission.at : undefined);
|
|
105
99
|
}
|
|
106
100
|
});
|
|
107
101
|
}
|
|
108
102
|
failure(workspaceId, alias) {
|
|
109
103
|
return this.#failures.get(key(workspaceId, alias));
|
|
110
104
|
}
|
|
111
|
-
// {§schedule-first-arming} — `add` read the rule at this instant; preparation and arming come later.
|
|
112
|
-
admitted(workspaceId, alias, atMs) {
|
|
113
|
-
this.#admissions.set(key(workspaceId, alias), atMs);
|
|
114
|
-
}
|
|
115
|
-
// The instant a rule's next occurrence is judged from: its admission until the first arming
|
|
116
|
-
// consumes it, the present afterwards.
|
|
117
|
-
cursor(workspaceId, alias, nowMs) {
|
|
118
|
-
return this.#admissions.get(key(workspaceId, alias)) ?? nowMs;
|
|
119
|
-
}
|
|
120
|
-
forgive(workspaceId, alias) {
|
|
121
|
-
this.#failures.delete(key(workspaceId, alias));
|
|
122
|
-
}
|
|
123
105
|
armed(workspaceId) {
|
|
124
106
|
return [...this.#armed.values()].filter((armed) => armed.workspaceId === workspaceId).map((armed) => armed.rule.alias).toSorted();
|
|
125
107
|
}
|
|
126
|
-
#arm(workspaceId, rule) {
|
|
108
|
+
#arm(workspaceId, rule, after = this.#clock()) {
|
|
127
109
|
if (this.#closing)
|
|
128
110
|
return;
|
|
129
111
|
const entryKey = key(workspaceId, rule.alias);
|
|
@@ -133,9 +115,7 @@ export default class Scheduler {
|
|
|
133
115
|
this.#timers.clear(existing.handle);
|
|
134
116
|
this.#armed.delete(entryKey);
|
|
135
117
|
}
|
|
136
|
-
const
|
|
137
|
-
const due = nextOccurrence(rule.parsed, this.cursor(workspaceId, rule.alias, now));
|
|
138
|
-
this.#admissions.delete(entryKey);
|
|
118
|
+
const due = nextOccurrence(rule.parsed, after);
|
|
139
119
|
if (due === null)
|
|
140
120
|
return;
|
|
141
121
|
const dueMs = due.epochMilliseconds;
|
|
@@ -181,7 +161,7 @@ export default class Scheduler {
|
|
|
181
161
|
return;
|
|
182
162
|
this.#armed.delete(entryKey);
|
|
183
163
|
if (result.status >= 400)
|
|
184
|
-
this.#failures.set(entryKey, {
|
|
164
|
+
this.#failures.set(entryKey, { definition: rule.definition, problem: result.problem });
|
|
185
165
|
else
|
|
186
166
|
this.#arm(workspaceId, rule);
|
|
187
167
|
});
|
|
@@ -214,7 +194,6 @@ export default class Scheduler {
|
|
|
214
194
|
workerId: worker.id,
|
|
215
195
|
prompt: rule.definition.prompt,
|
|
216
196
|
source: `schedule://${encodeURIComponent(rule.alias)}`,
|
|
217
|
-
...(rule.definition.policy === undefined ? {} : { policy: rule.definition.policy }),
|
|
218
197
|
});
|
|
219
198
|
}
|
|
220
199
|
}
|
package/dist/Scheduler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,iGAAiG;AACjG,+FAA+F;AAC/F,OAAO,EAAE,YAAY,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -25,7 +25,7 @@ export const serviceDefinitions = (env) => {
|
|
|
25
25
|
catch (cause) {
|
|
26
26
|
if (!(cause instanceof DefinitionError))
|
|
27
27
|
throw cause;
|
|
28
|
-
throw new ConfigurationError(key, `${key} must be a schedule definition: {"rule", "target", "prompt"
|
|
28
|
+
throw new ConfigurationError(key, `${key} must be a schedule definition: {"rule", "target", "prompt"}.`, { cause });
|
|
29
29
|
}
|
|
30
30
|
definitions.set(alias, { definition, enabled: environment.enabled(alias), provenance: { kind: "environment", source: key } });
|
|
31
31
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,eAAe,EAA2B,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,MAAM,mBAAmB,GAAG,GAAG,MAAM,qBAAqB,CAAC;AAE3D,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,KAAa,EAAW,EAAE;IACtD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;AACL,CAAC,CAAC;AAEF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAsB,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAEhH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAsB,EAA6I,EAAE;IACpM,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9G,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqG,CAAC;IACjI,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACD,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,eAAe,CAAC;gBAAE,MAAM,KAAK,CAAC;YACrD,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,eAAe,EAA2B,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,MAAM,mBAAmB,GAAG,GAAG,MAAM,qBAAqB,CAAC;AAE3D,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,KAAa,EAAW,EAAE;IACtD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;AACL,CAAC,CAAC;AAEF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAsB,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAEhH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAsB,EAA6I,EAAE;IACpM,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9G,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqG,CAAC;IACjI,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACD,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,eAAe,CAAC;gBAAE,MAAM,KAAK,CAAC;YACrD,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,+DAA+D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxH,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAClI,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,EAAyC,EAAE;IACrI,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;IACpB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IAC5I,IAAI,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;QAC7F,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,mBAAmB,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACtH,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC"}
|
package/dist/definition.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { type LoopPolicyRequest } from "@plurnk/plurnk-contracts";
|
|
2
1
|
export interface ScheduleDefinition {
|
|
3
2
|
readonly rule: string;
|
|
4
3
|
readonly target: string;
|
|
5
4
|
readonly prompt: string;
|
|
6
|
-
readonly policy?: LoopPolicyRequest;
|
|
7
5
|
}
|
|
8
6
|
export declare const DEFINITION_SCHEMA: Readonly<{
|
|
9
7
|
type: "object";
|
|
@@ -25,10 +23,6 @@ export declare const DEFINITION_SCHEMA: Readonly<{
|
|
|
25
23
|
minLength: number;
|
|
26
24
|
description: string;
|
|
27
25
|
};
|
|
28
|
-
policy: {
|
|
29
|
-
$ref: string;
|
|
30
|
-
description: string;
|
|
31
|
-
};
|
|
32
26
|
};
|
|
33
27
|
}>;
|
|
34
28
|
export declare class DefinitionError extends TypeError {
|
package/dist/definition.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAID,eAAO,MAAM,iBAAiB;;;;;QAKtB,IAAI;YACA,IAAI;YACJ,SAAS;YACT,WAAW;;QAEf,MAAM;YACF,IAAI;YACJ,OAAO;YACP,WAAW;;QAEf,MAAM;YACF,IAAI;YACJ,SAAS;YACT,WAAW;;;EAGA,CAAC;AAExB,qBAAa,eAAgB,SAAQ,SAAS;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAEpC,YAAY,MAAM,EAAE,SAAS,OAAO,EAAE,EAIrC;CACJ;AAED,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,kBAI/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,MAIjD,CAAC"}
|
package/dist/definition.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// {§schedule-family} — the one definition `add` accepts and the coordinator persists: the rule
|
|
2
|
-
// text ({§schedule-rule}), the worker the message is delivered to, the message
|
|
3
|
-
// what the delivery states about the policy of a loop it starts ({§schedule-delivery}).
|
|
2
|
+
// text ({§schedule-rule}), the worker the message is delivered to, and the message.
|
|
4
3
|
import { Validator, WORKER_NAME } from "@plurnk/plurnk-contracts";
|
|
5
4
|
const TARGET = new RegExp(`^worker://(${WORKER_NAME.source.slice(1, -1)})$`, "u");
|
|
6
5
|
export const DEFINITION_SCHEMA = Object.freeze({
|
|
@@ -23,10 +22,6 @@ export const DEFINITION_SCHEMA = Object.freeze({
|
|
|
23
22
|
minLength: 1,
|
|
24
23
|
description: "The message delivered at each occurrence.",
|
|
25
24
|
},
|
|
26
|
-
policy: {
|
|
27
|
-
$ref: "https://schemas.plurnk.xyz/v0/LoopPolicyRequest.json",
|
|
28
|
-
description: "What the delivery states about the policy of a loop it starts; every field left out is the daemon's to supply.",
|
|
29
|
-
},
|
|
30
25
|
},
|
|
31
26
|
});
|
|
32
27
|
export class DefinitionError extends TypeError {
|
package/dist/definition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,oFAAoF;AACpF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,0BAA0B,CAAC;AAQnF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACtC,UAAU,EAAE;QACR,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,0HAA0H;SAC1I;QACD,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,WAAW,EAAE,yCAAyC;SACzD;QACD,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,2CAA2C;SAC3D;KACJ;CACJ,CAAsB,CAAC;AAExB,MAAM,OAAO,eAAgB,SAAQ,SAAS;IACjC,MAAM,CAAqB;IAEpC,YAAY,MAA0B;QAClC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAsB,EAAE;IACjE,MAAM,UAAU,GAAG,SAAS,CAAC,0BAA0B,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAClF,IAAI,CAAC,UAAU,CAAC,KAAK;QAAE,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACpE,OAAO,eAAe,CAAC,KAA2B,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,IAAI,MAAM,8BAA8B,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;AACrB,CAAC,CAAC"}
|
package/docs/schedule.md
CHANGED
|
@@ -21,7 +21,7 @@ Nothing is persisted.
|
|
|
21
21
|
## add
|
|
22
22
|
|
|
23
23
|
`add` persists the rule for this workspace and arms its next occurrence, if any.
|
|
24
|
-
It is a host effect
|
|
24
|
+
It is a host effect and requires approval.
|
|
25
25
|
|
|
26
26
|
```schedule (add)
|
|
27
27
|
{"alias": "daily", "definition": {"rule": "FREQ=DAILY;BYHOUR=9;BYMINUTE=0;BYSECOND=0;COUNT=20", "target": "worker://exampleWorkerName", "prompt": "Text delivered at each occurrence."}}
|
|
@@ -34,8 +34,6 @@ It is a host effect, admitted under the loop's policy.
|
|
|
34
34
|
- `target`: the worker that receives the message, `worker://<name>`; any
|
|
35
35
|
worker in this workspace, the sender included.
|
|
36
36
|
- `prompt`: the message delivered at each occurrence.
|
|
37
|
-
- `policy`: `{"proposals": "accept"}` sets the proposal policy of a loop the
|
|
38
|
-
delivery starts; absent, the worker's default holds.
|
|
39
37
|
|
|
40
38
|
Times are read in `TZ`: the workspace's `env` family sets it for every rule
|
|
41
39
|
and every command; UTC otherwise.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-schedule",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Scheduled messages for Plurnk workers, on RFC 5545 recurrence rules",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"test": "npm run test:lint && npm run test:unit && npm run test:intg",
|
|
39
39
|
"test:lint": "tsc --noEmit",
|
|
40
40
|
"test:unit": "node --conditions=plurnk-dev --env-file=.env.defaults --test src/*.test.ts",
|
|
41
|
-
"test:intg": "export PLURNK_TEST_RUN=$(date -u +%Y%m%dT%H%M%SZ); node --conditions=plurnk-dev --env-file=.env.defaults --test test/intg/*.test.ts && node ../scripts/reclaim-green-run.mjs schedule",
|
|
41
|
+
"test:intg": "export PLURNK_TEST_RUN=$(date -u +%Y%m%dT%H%M%SZ) PLURNK_TEST_LANE=schedule; node --conditions=plurnk-dev --env-file=.env.defaults --test test/intg/*.test.ts && node ../scripts/reclaim-green-run.mjs schedule",
|
|
42
42
|
"build:clean": "rm -rf dist",
|
|
43
43
|
"build:dist": "tsc -p tsconfig.build.json",
|
|
44
44
|
"build": "npm run build:clean && npm run build:dist",
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
"rrule-temporal": "2.2.8"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@plurnk/plurnk-providers": "^
|
|
53
|
+
"@plurnk/plurnk-providers": "^3.0.0"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"@plurnk/plurnk-contracts": "^
|
|
57
|
-
"@plurnk/plurnk-modules": "^
|
|
58
|
-
"@plurnk/plurnk-schemes": "^
|
|
56
|
+
"@plurnk/plurnk-contracts": "^3.0.1",
|
|
57
|
+
"@plurnk/plurnk-modules": "^3.0.0",
|
|
58
|
+
"@plurnk/plurnk-schemes": "^3.0.0"
|
|
59
59
|
},
|
|
60
60
|
"keywords": [
|
|
61
61
|
"plurnk",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "f96502a26d62a6f87b22950a9e2006348ac8a6bc"
|
|
75
75
|
}
|