dabke 0.82.0 → 0.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +6 -3
  3. package/dist/cpsat/rules/index.d.ts +3 -0
  4. package/dist/cpsat/rules/index.d.ts.map +1 -1
  5. package/dist/cpsat/rules/index.js +3 -0
  6. package/dist/cpsat/rules/index.js.map +1 -1
  7. package/dist/cpsat/rules/max-days-week.d.ts +44 -0
  8. package/dist/cpsat/rules/max-days-week.d.ts.map +1 -0
  9. package/dist/cpsat/rules/max-days-week.js +95 -0
  10. package/dist/cpsat/rules/max-days-week.js.map +1 -0
  11. package/dist/cpsat/rules/min-days-week.d.ts +34 -0
  12. package/dist/cpsat/rules/min-days-week.d.ts.map +1 -0
  13. package/dist/cpsat/rules/min-days-week.js +84 -0
  14. package/dist/cpsat/rules/min-days-week.js.map +1 -0
  15. package/dist/cpsat/rules/must-assign.d.ts +49 -0
  16. package/dist/cpsat/rules/must-assign.d.ts.map +1 -0
  17. package/dist/cpsat/rules/must-assign.js +86 -0
  18. package/dist/cpsat/rules/must-assign.js.map +1 -0
  19. package/dist/cpsat/rules/registry.d.ts +4 -1
  20. package/dist/cpsat/rules/registry.d.ts.map +1 -1
  21. package/dist/cpsat/rules/registry.js +4 -1
  22. package/dist/cpsat/rules/registry.js.map +1 -1
  23. package/dist/cpsat/rules/rules.types.d.ts +3 -0
  24. package/dist/cpsat/rules/rules.types.d.ts.map +1 -1
  25. package/dist/cpsat/rules/scope.types.d.ts +1 -1
  26. package/dist/index.d.ts +5 -3
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/schedule/cost.d.ts +204 -0
  31. package/dist/schedule/cost.d.ts.map +1 -0
  32. package/dist/schedule/cost.js +187 -0
  33. package/dist/schedule/cost.js.map +1 -0
  34. package/dist/schedule/coverage.d.ts +85 -0
  35. package/dist/schedule/coverage.d.ts.map +1 -0
  36. package/dist/schedule/coverage.js +33 -0
  37. package/dist/schedule/coverage.js.map +1 -0
  38. package/dist/schedule/definition.d.ts +227 -0
  39. package/dist/schedule/definition.d.ts.map +1 -0
  40. package/dist/{schedule.js → schedule/definition.js} +9 -673
  41. package/dist/schedule/definition.js.map +1 -0
  42. package/dist/schedule/index.d.ts +67 -0
  43. package/dist/schedule/index.d.ts.map +1 -0
  44. package/dist/schedule/index.js +69 -0
  45. package/dist/schedule/index.js.map +1 -0
  46. package/dist/schedule/rules.d.ts +353 -0
  47. package/dist/schedule/rules.d.ts.map +1 -0
  48. package/dist/schedule/rules.js +352 -0
  49. package/dist/schedule/rules.js.map +1 -0
  50. package/dist/schedule/shift-patterns.d.ts +34 -0
  51. package/dist/schedule/shift-patterns.d.ts.map +1 -0
  52. package/dist/schedule/shift-patterns.js +41 -0
  53. package/dist/schedule/shift-patterns.js.map +1 -0
  54. package/dist/schedule/time-periods.d.ts +69 -0
  55. package/dist/schedule/time-periods.d.ts.map +1 -0
  56. package/dist/schedule/time-periods.js +91 -0
  57. package/dist/schedule/time-periods.js.map +1 -0
  58. package/package.json +4 -9
  59. package/src/cpsat/rules/index.ts +3 -0
  60. package/src/cpsat/rules/max-days-week.ts +143 -0
  61. package/src/cpsat/rules/min-days-week.ts +120 -0
  62. package/src/cpsat/rules/must-assign.ts +108 -0
  63. package/src/cpsat/rules/registry.ts +6 -0
  64. package/src/cpsat/rules/rules.types.ts +3 -0
  65. package/src/cpsat/rules/scope.types.ts +1 -1
  66. package/src/index.ts +8 -3
  67. package/src/schedule/cost.ts +242 -0
  68. package/src/schedule/coverage.ts +135 -0
  69. package/src/schedule/definition.ts +958 -0
  70. package/src/schedule/index.ts +112 -0
  71. package/src/schedule/rules.ts +529 -0
  72. package/src/schedule/shift-patterns.ts +46 -0
  73. package/src/schedule/time-periods.ts +110 -0
  74. package/dist/llms.d.ts +0 -2
  75. package/dist/llms.d.ts.map +0 -1
  76. package/dist/llms.js +0 -3
  77. package/dist/llms.js.map +0 -1
  78. package/dist/schedule.d.ts +0 -917
  79. package/dist/schedule.d.ts.map +0 -1
  80. package/dist/schedule.js.map +0 -1
  81. package/llms.txt +0 -758
  82. package/src/llms.ts +0 -3
  83. package/src/schedule.ts +0 -1960
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/schedule/definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * High-level schedule definition API.
3
+ *
4
+ * Small, composable factory functions that produce a complete scheduling
5
+ * configuration. Designed for LLM code generation: each concept is a single
6
+ * function call with per-call type safety.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import {
11
+ * schedule, t, time, cover, shift,
12
+ * maxHoursPerDay, maxHoursPerWeek, minRestBetweenShifts,
13
+ * weekdays, weekend,
14
+ * } from "dabke";
15
+ *
16
+ * const venue = schedule({
17
+ * roleIds: ["cashier", "floor_lead", "stocker"],
18
+ * skillIds: ["keyholder"],
19
+ *
20
+ * times: {
21
+ * opening: time({ startTime: t(8), endTime: t(10) }),
22
+ * peak_hours: time(
23
+ * { startTime: t(11), endTime: t(14) },
24
+ * { startTime: t(10), endTime: t(15), dayOfWeek: weekend },
25
+ * ),
26
+ * closing: time({ startTime: t(20), endTime: t(22) }),
27
+ * },
28
+ *
29
+ * coverage: [
30
+ * cover("opening", "keyholder", 1),
31
+ * cover("peak_hours", "cashier", 3, { dayOfWeek: weekdays }),
32
+ * cover("peak_hours", "cashier", 5, { dayOfWeek: weekend }),
33
+ * cover("closing", "floor_lead", 1),
34
+ * ],
35
+ *
36
+ * shiftPatterns: [
37
+ * shift("morning", t(8), t(14)),
38
+ * shift("afternoon", t(14), t(22)),
39
+ * ],
40
+ *
41
+ * rules: [
42
+ * maxHoursPerDay(10),
43
+ * maxHoursPerWeek(48),
44
+ * minRestBetweenShifts(10),
45
+ * ],
46
+ * });
47
+ *
48
+ * const result = await venue
49
+ * .with([
50
+ * { id: "alice", roleIds: ["cashier"], skillIds: ["keyholder"] },
51
+ * ])
52
+ * .solve(client, { dateRange: { start: "2025-03-03", end: "2025-03-09" } });
53
+ * ```
54
+ *
55
+ * @module
56
+ */
57
+ export { t, weekdays, weekend, time } from "./time-periods.js";
58
+ export { cover } from "./coverage.js";
59
+ export type { CoverageOptions, CoverageEntry, CoverageVariant } from "./coverage.js";
60
+ export { shift } from "./shift-patterns.js";
61
+ export { defineRule, maxHoursPerDay, maxHoursPerWeek, minHoursPerDay, minHoursPerWeek, maxDaysPerWeek, minDaysPerWeek, maxShiftsPerDay, maxConsecutiveDays, minConsecutiveDays, minRestBetweenShifts, mustAssign, preference, preferLocation, timeOff, assignTogether, } from "./rules.js";
62
+ export type { RuleEntry, RuleResolveContext, RuleOptions, EntityOnlyRuleOptions, TimeOffOptions, AssignTogetherOptions, } from "./rules.js";
63
+ export { minimizeCost, dayMultiplier, daySurcharge, timeSurcharge, overtimeMultiplier, overtimeSurcharge, dailyOvertimeMultiplier, dailyOvertimeSurcharge, tieredOvertimeMultiplier, } from "./cost.js";
64
+ export type { CostRuleOptions } from "./cost.js";
65
+ export { schedule, partialSchedule, Schedule } from "./definition.js";
66
+ export type { ScheduleConfig, SolveResult, SolveStatus, SolveOptions } from "./definition.js";
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schedule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAGH,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG/D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrF,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * High-level schedule definition API.
3
+ *
4
+ * Small, composable factory functions that produce a complete scheduling
5
+ * configuration. Designed for LLM code generation: each concept is a single
6
+ * function call with per-call type safety.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import {
11
+ * schedule, t, time, cover, shift,
12
+ * maxHoursPerDay, maxHoursPerWeek, minRestBetweenShifts,
13
+ * weekdays, weekend,
14
+ * } from "dabke";
15
+ *
16
+ * const venue = schedule({
17
+ * roleIds: ["cashier", "floor_lead", "stocker"],
18
+ * skillIds: ["keyholder"],
19
+ *
20
+ * times: {
21
+ * opening: time({ startTime: t(8), endTime: t(10) }),
22
+ * peak_hours: time(
23
+ * { startTime: t(11), endTime: t(14) },
24
+ * { startTime: t(10), endTime: t(15), dayOfWeek: weekend },
25
+ * ),
26
+ * closing: time({ startTime: t(20), endTime: t(22) }),
27
+ * },
28
+ *
29
+ * coverage: [
30
+ * cover("opening", "keyholder", 1),
31
+ * cover("peak_hours", "cashier", 3, { dayOfWeek: weekdays }),
32
+ * cover("peak_hours", "cashier", 5, { dayOfWeek: weekend }),
33
+ * cover("closing", "floor_lead", 1),
34
+ * ],
35
+ *
36
+ * shiftPatterns: [
37
+ * shift("morning", t(8), t(14)),
38
+ * shift("afternoon", t(14), t(22)),
39
+ * ],
40
+ *
41
+ * rules: [
42
+ * maxHoursPerDay(10),
43
+ * maxHoursPerWeek(48),
44
+ * minRestBetweenShifts(10),
45
+ * ],
46
+ * });
47
+ *
48
+ * const result = await venue
49
+ * .with([
50
+ * { id: "alice", roleIds: ["cashier"], skillIds: ["keyholder"] },
51
+ * ])
52
+ * .solve(client, { dateRange: { start: "2025-03-03", end: "2025-03-09" } });
53
+ * ```
54
+ *
55
+ * @module
56
+ */
57
+ // Time Periods
58
+ export { t, weekdays, weekend, time } from "./time-periods.js";
59
+ // Coverage
60
+ export { cover } from "./coverage.js";
61
+ // Shift Patterns
62
+ export { shift } from "./shift-patterns.js";
63
+ // Rules
64
+ export { defineRule, maxHoursPerDay, maxHoursPerWeek, minHoursPerDay, minHoursPerWeek, maxDaysPerWeek, minDaysPerWeek, maxShiftsPerDay, maxConsecutiveDays, minConsecutiveDays, minRestBetweenShifts, mustAssign, preference, preferLocation, timeOff, assignTogether, } from "./rules.js";
65
+ // Cost Optimization
66
+ export { minimizeCost, dayMultiplier, daySurcharge, timeSurcharge, overtimeMultiplier, overtimeSurcharge, dailyOvertimeMultiplier, dailyOvertimeSurcharge, tieredOvertimeMultiplier, } from "./cost.js";
67
+ // Schedule Definition
68
+ export { schedule, partialSchedule, Schedule } from "./definition.js";
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schedule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,eAAe;AACf,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE/D,WAAW;AACX,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,iBAAiB;AACjB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,QAAQ;AACR,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,cAAc,GACf,MAAM,YAAY,CAAC;AAUpB,oBAAoB;AACpB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Scheduling rules: constraints, preferences, and time-off.
3
+ *
4
+ * @module
5
+ */
6
+ import type { DayOfWeek, TimeOfDay } from "../types.js";
7
+ import type { Priority } from "../cpsat/types.js";
8
+ import type { RecurringPeriod } from "../cpsat/rules/scope.types.js";
9
+ /**
10
+ * Scoping options shared by most rule functions.
11
+ *
12
+ * @remarks
13
+ * Default priority is `MANDATORY`. Use `appliesTo` to scope to a
14
+ * role, skill, or member ID. Use time scoping options (`dayOfWeek`,
15
+ * `dateRange`, `dates`) to limit when the rule applies.
16
+ * Not all rules support all scoping options. Entity-only rules
17
+ * (e.g., {@link maxConsecutiveDays}) ignore time scoping.
18
+ *
19
+ * @category Rules
20
+ */
21
+ export interface RuleOptions {
22
+ /** Who this rule applies to (role name, skill name, or member ID). */
23
+ appliesTo?: string | string[];
24
+ /** Restrict to specific days of the week. */
25
+ dayOfWeek?: readonly [DayOfWeek, ...DayOfWeek[]];
26
+ /** Restrict to a date range. */
27
+ dateRange?: {
28
+ start: string;
29
+ end: string;
30
+ };
31
+ /** Restrict to specific dates (YYYY-MM-DD). */
32
+ dates?: string[];
33
+ /** Restrict to recurring calendar periods. */
34
+ recurringPeriods?: [RecurringPeriod, ...RecurringPeriod[]];
35
+ /** Defaults to `"MANDATORY"`. */
36
+ priority?: Priority;
37
+ }
38
+ /**
39
+ * Options for rules that support entity scoping only (no time scoping).
40
+ *
41
+ * @remarks
42
+ * Used by rules whose semantics are inherently per-day or per-week
43
+ * (e.g., {@link minHoursPerDay}, {@link maxConsecutiveDays}) and cannot
44
+ * be meaningfully restricted to a date range or day of week.
45
+ *
46
+ * @category Rules
47
+ */
48
+ export interface EntityOnlyRuleOptions {
49
+ /** Who this rule applies to (role name, skill name, or member ID). */
50
+ appliesTo?: string | string[];
51
+ /** Defaults to `"MANDATORY"`. */
52
+ priority?: Priority;
53
+ }
54
+ /**
55
+ * Options for {@link timeOff}.
56
+ *
57
+ * @remarks
58
+ * At least one time scoping field is required (`dayOfWeek`, `dateRange`,
59
+ * `dates`, or `recurringPeriods`). Use `from`/`until` to block only part
60
+ * of a day.
61
+ *
62
+ * @category Rules
63
+ */
64
+ export interface TimeOffOptions {
65
+ /** Who this rule applies to (role name, skill name, or member ID). */
66
+ appliesTo?: string | string[];
67
+ /** Off from this time until end of day. */
68
+ from?: TimeOfDay;
69
+ /** Off from start of day until this time. */
70
+ until?: TimeOfDay;
71
+ /** Restrict to specific days of the week. */
72
+ dayOfWeek?: readonly [DayOfWeek, ...DayOfWeek[]];
73
+ /** Restrict to a date range. */
74
+ dateRange?: {
75
+ start: string;
76
+ end: string;
77
+ };
78
+ /** Restrict to specific dates (YYYY-MM-DD). */
79
+ dates?: string[];
80
+ /** Restrict to recurring calendar periods. */
81
+ recurringPeriods?: [RecurringPeriod, ...RecurringPeriod[]];
82
+ /** Defaults to `"MANDATORY"`. */
83
+ priority?: Priority;
84
+ }
85
+ /**
86
+ * Options for {@link assignTogether}.
87
+ *
88
+ * @category Rules
89
+ */
90
+ export interface AssignTogetherOptions {
91
+ /** Defaults to `"MANDATORY"`. */
92
+ priority?: Priority;
93
+ }
94
+ /**
95
+ * Context passed to a rule's resolve function during compilation.
96
+ *
97
+ * Contains the declared roles, skills, and member IDs so the resolver
98
+ * can translate user-facing fields (like `appliesTo`) into internal
99
+ * scoping fields.
100
+ */
101
+ export interface RuleResolveContext {
102
+ readonly roles: ReadonlySet<string>;
103
+ readonly skills: ReadonlySet<string>;
104
+ readonly memberIds: ReadonlySet<string>;
105
+ }
106
+ interface RuleEntryBase {
107
+ readonly _type: "rule";
108
+ readonly _rule: string;
109
+ /**
110
+ * Optional custom resolver. When present, `resolveRules()` calls this
111
+ * instead of the default translation path. Built-in rules that need
112
+ * special field mapping (e.g., `timeOff`, `assignTogether`) attach one;
113
+ * all other rules use the default resolver.
114
+ */
115
+ readonly _resolve?: (ctx: RuleResolveContext) => Record<string, unknown> & {
116
+ name: string;
117
+ };
118
+ }
119
+ /**
120
+ * An opaque rule entry returned by rule functions.
121
+ *
122
+ * @remarks
123
+ * Pass these directly into the `rules` array of {@link ScheduleConfig}.
124
+ * The internal fields are resolved during compilation.
125
+ */
126
+ export type RuleEntry = RuleEntryBase & Record<string, unknown>;
127
+ /**
128
+ * Creates a rule entry for use in {@link ScheduleConfig.rules}.
129
+ *
130
+ * Built-in rules use the helpers (`maxHoursPerDay`, `timeOff`, etc.).
131
+ * Custom rules can use `defineRule` to create entries that plug into the
132
+ * same resolution and compilation pipeline.
133
+ *
134
+ * @param name - Rule name. Must match a key in the rule factory registry.
135
+ * @param fields - Rule-specific configuration fields.
136
+ * @param resolve - Optional custom resolver. When omitted, the default
137
+ * resolution applies: `appliesTo` is mapped to `roleIds`/`skillIds`/`memberIds`,
138
+ * `dates` is renamed to `specificDates`, and all other fields pass through.
139
+ */
140
+ export declare function defineRule(name: string, fields: Record<string, unknown>, resolve?: (ctx: RuleResolveContext) => Record<string, unknown> & {
141
+ name: string;
142
+ }): RuleEntry;
143
+ /**
144
+ * Limits hours per day.
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * maxHoursPerDay(10)
149
+ * maxHoursPerDay(4, { appliesTo: "student", dayOfWeek: weekdays })
150
+ * ```
151
+ *
152
+ * @category Rules
153
+ */
154
+ export declare function maxHoursPerDay(hours: number, opts?: RuleOptions): RuleEntry;
155
+ /**
156
+ * Limits hours per scheduling week.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * maxHoursPerWeek(48)
161
+ * maxHoursPerWeek(20, { appliesTo: "student" })
162
+ * ```
163
+ *
164
+ * @category Rules
165
+ */
166
+ export declare function maxHoursPerWeek(hours: number, opts?: RuleOptions): RuleEntry;
167
+ /**
168
+ * Minimum hours when assigned on a day.
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * minHoursPerDay(4)
173
+ * ```
174
+ *
175
+ * @category Rules
176
+ */
177
+ export declare function minHoursPerDay(hours: number, opts?: EntityOnlyRuleOptions): RuleEntry;
178
+ /**
179
+ * Minimum hours per scheduling week.
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * minHoursPerWeek(20, { priority: "HIGH" })
184
+ * ```
185
+ *
186
+ * @category Rules
187
+ */
188
+ export declare function minHoursPerWeek(hours: number, opts?: EntityOnlyRuleOptions): RuleEntry;
189
+ /**
190
+ * Limits working days per scheduling week.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * maxDaysPerWeek(5)
195
+ * maxDaysPerWeek(3, { appliesTo: "part-time" })
196
+ * ```
197
+ *
198
+ * @category Rules
199
+ */
200
+ export declare function maxDaysPerWeek(days: number, opts?: RuleOptions): RuleEntry;
201
+ /**
202
+ * Minimum working days per scheduling week.
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * minDaysPerWeek(3, { priority: "HIGH" })
207
+ * minDaysPerWeek(5, { appliesTo: "full-time" })
208
+ * ```
209
+ *
210
+ * @category Rules
211
+ */
212
+ export declare function minDaysPerWeek(days: number, opts?: EntityOnlyRuleOptions): RuleEntry;
213
+ /**
214
+ * Maximum distinct shifts per day.
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * maxShiftsPerDay(1)
219
+ * maxShiftsPerDay(2, { appliesTo: "student", dayOfWeek: weekend })
220
+ * ```
221
+ *
222
+ * @category Rules
223
+ */
224
+ export declare function maxShiftsPerDay(shifts: number, opts?: RuleOptions): RuleEntry;
225
+ /**
226
+ * Maximum consecutive working days.
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * maxConsecutiveDays(5)
231
+ * ```
232
+ *
233
+ * @category Rules
234
+ */
235
+ export declare function maxConsecutiveDays(days: number, opts?: EntityOnlyRuleOptions): RuleEntry;
236
+ /**
237
+ * Once working, continue for at least this many consecutive days.
238
+ *
239
+ * @example
240
+ * ```typescript
241
+ * minConsecutiveDays(2, { priority: "HIGH" })
242
+ * ```
243
+ *
244
+ * @category Rules
245
+ */
246
+ export declare function minConsecutiveDays(days: number, opts?: EntityOnlyRuleOptions): RuleEntry;
247
+ /**
248
+ * Minimum rest hours between shifts.
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * minRestBetweenShifts(10)
253
+ * ```
254
+ *
255
+ * @category Rules
256
+ */
257
+ export declare function minRestBetweenShifts(hours: number, opts?: EntityOnlyRuleOptions): RuleEntry;
258
+ /**
259
+ * Prefer (`"high"`) or avoid (`"low"`) assigning. Requires `appliesTo`.
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * preference("high", { appliesTo: "waiter" })
264
+ * preference("low", { appliesTo: "student", dayOfWeek: weekdays })
265
+ * ```
266
+ *
267
+ * @category Rules
268
+ */
269
+ export declare function preference(level: "high" | "low", opts?: Omit<RuleOptions, "priority">): RuleEntry;
270
+ /**
271
+ * Prefer assigning to shifts at a specific location. Requires `appliesTo`.
272
+ *
273
+ * @example
274
+ * ```typescript
275
+ * preferLocation("terrace", { appliesTo: "alice" })
276
+ * ```
277
+ *
278
+ * @category Rules
279
+ */
280
+ export declare function preferLocation(locationId: string, opts?: EntityOnlyRuleOptions): RuleEntry;
281
+ /**
282
+ * Guarantees that targeted members appear on the schedule each week.
283
+ *
284
+ * @remarks
285
+ * Use for staffing obligations: salaried employees who are paid regardless
286
+ * of whether they work, or contracted staff who must be rostered. The solver
287
+ * ensures each targeted member has at least one assignment per scheduling week.
288
+ *
289
+ * Always a soft constraint (HIGH priority internally). The schedule still
290
+ * generates when a member genuinely cannot be placed (e.g., full week of
291
+ * absences). Violations surface as validation warnings with distinct
292
+ * messaging from {@link minDaysPerWeek}. Priority is not configurable;
293
+ * the rule name communicates the intent.
294
+ *
295
+ * @example
296
+ * ```typescript
297
+ * mustAssign({ appliesTo: "diana" })
298
+ * mustAssign({ appliesTo: ["diana", "yavuz"] })
299
+ * ```
300
+ *
301
+ * @category Rules
302
+ */
303
+ export declare function mustAssign(opts?: {
304
+ appliesTo?: string | string[];
305
+ }): RuleEntry;
306
+ /**
307
+ * Block assignments during specified periods.
308
+ * Requires at least one time scope (`dayOfWeek`, `dateRange`, `dates`, or `from`/`until`).
309
+ *
310
+ * @example
311
+ * ```typescript
312
+ * // Full days off
313
+ * timeOff({ appliesTo: "alice", dateRange: { start: "2024-02-01", end: "2024-02-05" } })
314
+ *
315
+ * // Every weekend off
316
+ * timeOff({ appliesTo: "mauro", dayOfWeek: weekend })
317
+ *
318
+ * // Wednesday afternoons off
319
+ * timeOff({ appliesTo: "student", dayOfWeek: ["wednesday"], from: t(14) })
320
+ * ```
321
+ *
322
+ * @category Rules
323
+ */
324
+ export declare function timeOff(opts: TimeOffOptions): RuleEntry;
325
+ /**
326
+ * Members work the same shifts on days they are both assigned.
327
+ *
328
+ * @example
329
+ * ```typescript
330
+ * assignTogether(["alice", "bob"])
331
+ * assignTogether(["alice", "bob", "charlie"], { priority: "HIGH" })
332
+ * ```
333
+ *
334
+ * @category Rules
335
+ */
336
+ export declare function assignTogether(memberIds: [string, string, ...string[]], opts?: AssignTogetherOptions): RuleEntry;
337
+ /**
338
+ * Resolves an `appliesTo` value into entity scope fields.
339
+ *
340
+ * Each target string is checked against roles, skills, then member IDs.
341
+ * If all targets resolve to the same namespace, they are combined into one
342
+ * scope field. If they span namespaces, an error is thrown; the caller
343
+ * should use separate rule entries instead.
344
+ *
345
+ * @internal
346
+ */
347
+ export declare function resolveAppliesTo(appliesTo: string | string[] | undefined, roles: ReadonlySet<string>, skills: ReadonlySet<string>, memberIds: ReadonlySet<string>): {
348
+ memberIds?: [string, ...string[]];
349
+ roleIds?: [string, ...string[]];
350
+ skillIds?: [string, ...string[]];
351
+ };
352
+ export {};
353
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/schedule/rules.ts"],"names":[],"mappings":"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"}