@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 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, and an optional
13
- # loop policy. Disable-only for a worker; may be unbounded.
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>`), `prompt`, and optionally `policy`
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, policy? }`: RFC 5545 rule text ({§schedule-rule}), a
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, and optionally the proposal policy of a loop the delivery starts
10
- ({§schedule-delivery}). Aliases take the shared grammar. The verbs are the
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 `add`
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; a `query` or a
67
- `configuration` is refused.
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 with the definition's policy ({§message-arrival}, {§message-causal-source}).
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. After
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 its `add`.** `add` reads the
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 `add` receipt names it as `next`. The present is the cursor from then on. The admission
92
- is remembered by the running daemon only: a daemon that starts arms every stored rule from
93
- the present, as above.
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
- | `configuration-unsupported` | 400 | schedule discovery reads rule text from `source`; it takes no configuration. |
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. |
@@ -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":"AAKA,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,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,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;QACd,OAAO;MACT;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,CAyB7J;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,CAAA;KAAE,CAAC,CAiB9J;IAEK,OAAO,CAAC,WAAW,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAsDnF;IAIK,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;CAoC/F"}
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"}
@@ -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
- if (query.configuration !== undefined) {
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(query.source, zone, now);
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: query.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 add needs an alias.", { retryable: false });
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
- this.#scheduler.admitted(identity.workspaceId, params.alias, now);
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.text === parsed.text) {
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, this.#scheduler.cursor(workspaceId, alias, now));
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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"}
@@ -1,4 +1,4 @@
1
- import { type LoopPolicyRequest, type ProblemDetails } from "@plurnk/plurnk-contracts";
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 text: string;
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>): Promise<void>;
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
@@ -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":"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 && JSON.stringify(replacement.definition) === JSON.stringify(armed.rule.definition))
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.parsed.text !== failed.text)
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 now = this.#clock();
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, { text: rule.parsed.text, problem: result.problem });
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
  }
@@ -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/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", "policy"?}.`, { cause });
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
  }
@@ -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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"}
@@ -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 {
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2C,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3G,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;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACvC;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;;QAEf,MAAM;YACF,IAAI;YACJ,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"}
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"}
@@ -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, and optionally
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 {
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,+FAA+F;AAC/F,wFAAwF;AACxF,OAAO,EAAE,SAAS,EAAE,WAAW,EAA2C,MAAM,0BAA0B,CAAC;AAS3G,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;QACD,MAAM,EAAE;YACJ,IAAI,EAAE,sDAAsD;YAC5D,WAAW,EAAE,gHAAgH;SAChI;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"}
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, admitted under the loop's policy.
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": "2.0.0",
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": "^2.0.0"
53
+ "@plurnk/plurnk-providers": "^3.0.0"
54
54
  },
55
55
  "peerDependencies": {
56
- "@plurnk/plurnk-contracts": "^2.0.0",
57
- "@plurnk/plurnk-modules": "^2.0.0",
58
- "@plurnk/plurnk-schemes": "^2.0.0"
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": "3b2cae63115333d1b2e820abcf44b0fe4959d9ea"
74
+ "gitHead": "f96502a26d62a6f87b22950a9e2006348ac8a6bc"
75
75
  }