@t4dhg/mcp-factorial 10.2.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -43
- package/dist/api/attendance.d.ts +17 -1
- package/dist/api/attendance.d.ts.map +1 -1
- package/dist/api/attendance.js +38 -1
- package/dist/api/attendance.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/attendance/backfill.d.ts +18 -3
- package/dist/attendance/backfill.d.ts.map +1 -1
- package/dist/attendance/backfill.js +51 -9
- package/dist/attendance/backfill.js.map +1 -1
- package/dist/attendance/planner.d.ts +64 -4
- package/dist/attendance/planner.d.ts.map +1 -1
- package/dist/attendance/planner.js +145 -16
- package/dist/attendance/planner.js.map +1 -1
- package/dist/attendance/report.d.ts +3 -0
- package/dist/attendance/report.d.ts.map +1 -1
- package/dist/attendance/report.js +92 -12
- package/dist/attendance/report.js.map +1 -1
- package/dist/endpoints.d.ts +2 -0
- package/dist/endpoints.d.ts.map +1 -1
- package/dist/endpoints.js +2 -0
- package/dist/endpoints.js.map +1 -1
- package/dist/errors.d.ts +6 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +10 -5
- package/dist/errors.js.map +1 -1
- package/dist/http-client.d.ts +6 -0
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +28 -4
- package/dist/http-client.js.map +1 -1
- package/dist/prompts/attendance.d.ts +19 -2
- package/dist/prompts/attendance.d.ts.map +1 -1
- package/dist/prompts/attendance.js +297 -40
- package/dist/prompts/attendance.js.map +1 -1
- package/dist/schemas/attendance.d.ts +123 -0
- package/dist/schemas/attendance.d.ts.map +1 -1
- package/dist/schemas/attendance.js +58 -0
- package/dist/schemas/attendance.js.map +1 -1
- package/dist/schemas/documents.d.ts +2 -2
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/projects.d.ts +2 -2
- package/dist/tools/attendance.d.ts.map +1 -1
- package/dist/tools/attendance.js +325 -50
- package/dist/tools/attendance.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -7
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared.d.ts +10 -1
- package/dist/tools/shared.d.ts.map +1 -1
- package/dist/tools/shared.js +33 -0
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/time-off.d.ts.map +1 -1
- package/dist/tools/time-off.js +9 -1
- package/dist/tools/time-off.js.map +1 -1
- package/dist/write-safety.d.ts +6 -0
- package/dist/write-safety.d.ts.map +1 -1
- package/dist/write-safety.js +7 -0
- package/dist/write-safety.js.map +1 -1
- package/llms.txt +11 -6
- package/package.json +1 -1
|
@@ -7,6 +7,16 @@
|
|
|
7
7
|
* requested segments into an explicit list of writes and skips. Every rule is
|
|
8
8
|
* a unit test in src/__tests__/unit/attendance/planner.test.ts.
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Printed once on every attendance write result and preview.
|
|
12
|
+
*
|
|
13
|
+
* A backfilled record shows the real working day and hours on the attendance
|
|
14
|
+
* sheet, while Factorial's own activity log shows it was entered later through
|
|
15
|
+
* the API. Both are true at once, and neither can be altered through the API.
|
|
16
|
+
* Saying so plainly stops a user believing either that the entry is hidden or
|
|
17
|
+
* that the working time is wrong.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ENTRY_TIME_NOTE: string;
|
|
10
20
|
/** A working segment on one day, in company local wall-clock time */
|
|
11
21
|
export interface Segment {
|
|
12
22
|
clock_in: string;
|
|
@@ -54,6 +64,15 @@ export interface FactsCoverage {
|
|
|
54
64
|
last_uncovered: string | null;
|
|
55
65
|
leave_records: number;
|
|
56
66
|
shift_records: number;
|
|
67
|
+
review_records: number;
|
|
68
|
+
/**
|
|
69
|
+
* Set when the signed-off-dates read (listReviews) failed; review_records
|
|
70
|
+
* is then 0 and facts.reviews is empty, not because nothing is signed off
|
|
71
|
+
* but because it could not be read. Printed prominently: a plan built on
|
|
72
|
+
* this may queue writes to dates that are actually signed off and will be
|
|
73
|
+
* refused by Factorial.
|
|
74
|
+
*/
|
|
75
|
+
reviews_error: string | null;
|
|
57
76
|
}
|
|
58
77
|
export interface PlanFacts {
|
|
59
78
|
/** Today's date, YYYY-MM-DD, in the zone the caller considers local */
|
|
@@ -64,11 +83,13 @@ export interface PlanFacts {
|
|
|
64
83
|
shifts: ExistingShift[];
|
|
65
84
|
/** Approved leave cover per date, see expandLeaves */
|
|
66
85
|
leaves: Map<string, LeaveCover>;
|
|
86
|
+
/** Dates whose timesheet has been signed off; closed for writing */
|
|
87
|
+
reviews: Set<string>;
|
|
67
88
|
/** What the reads covered; absent when the facts were not read from the API */
|
|
68
89
|
coverage?: FactsCoverage;
|
|
69
90
|
}
|
|
70
91
|
/** Measure how much of a date window the per-day facts cover */
|
|
71
|
-
export declare function measureCoverage(dates: string[], days: Map<string, DayFacts>, leaveRecords: number, shiftRecords: number): FactsCoverage;
|
|
92
|
+
export declare function measureCoverage(dates: string[], days: Map<string, DayFacts>, leaveRecords: number, shiftRecords: number, reviewRecords: number, reviewsError?: string | null): FactsCoverage;
|
|
72
93
|
/** One line for the header of an audit, gaps or preview */
|
|
73
94
|
export declare function formatCoverage(coverage: FactsCoverage): string;
|
|
74
95
|
export interface RangeRequest {
|
|
@@ -79,6 +100,10 @@ export interface RangeRequest {
|
|
|
79
100
|
skip_leave: boolean;
|
|
80
101
|
/** Vary each written time by up to this many minutes, deterministically per record */
|
|
81
102
|
jitter_minutes?: number;
|
|
103
|
+
/** Shift each whole day by up to this many minutes, deterministically per day */
|
|
104
|
+
variation_minutes?: number;
|
|
105
|
+
/** Dates inside the range to leave alone, for days not worked */
|
|
106
|
+
exclude_dates?: string[];
|
|
82
107
|
}
|
|
83
108
|
export interface DaysRequest {
|
|
84
109
|
mode: 'days';
|
|
@@ -90,9 +115,11 @@ export interface DaysRequest {
|
|
|
90
115
|
skip_leave: boolean;
|
|
91
116
|
/** Vary each written time by up to this many minutes, deterministically per record */
|
|
92
117
|
jitter_minutes?: number;
|
|
118
|
+
/** Shift each whole day by up to this many minutes, deterministically per day */
|
|
119
|
+
variation_minutes?: number;
|
|
93
120
|
}
|
|
94
121
|
export type PlanRequest = RangeRequest | DaysRequest;
|
|
95
|
-
export type SkipReason = 'future_date' | 'weekend' | 'bank_holiday' | 'not_workable' | 'no_contract_data' | 'on_leave' | 'half_day_leave';
|
|
122
|
+
export type SkipReason = 'future_date' | 'weekend' | 'bank_holiday' | 'not_workable' | 'no_contract_data' | 'on_leave' | 'half_day_leave' | 'signed_off' | 'excluded';
|
|
96
123
|
export interface SkippedDay {
|
|
97
124
|
date: string;
|
|
98
125
|
reason: SkipReason;
|
|
@@ -119,6 +146,14 @@ export interface Gap {
|
|
|
119
146
|
tracked_minutes: number;
|
|
120
147
|
missing_minutes: number;
|
|
121
148
|
half_day_leave: 'beggining_of_day' | 'end_of_day' | null;
|
|
149
|
+
/**
|
|
150
|
+
* The timesheet for this date has been signed off and is closed for
|
|
151
|
+
* writing. log_range and log_days both skip it (daySkipReason's signed_off
|
|
152
|
+
* rule); only create_edit_request can reach it. Still reported as a gap,
|
|
153
|
+
* since the hours are genuinely missing, but the caller must not be told
|
|
154
|
+
* to fill it the same way as an open date.
|
|
155
|
+
*/
|
|
156
|
+
signed_off: boolean;
|
|
122
157
|
}
|
|
123
158
|
/**
|
|
124
159
|
* A day whose tracked minutes are within this distance of the expected minutes
|
|
@@ -132,6 +167,16 @@ export declare const PREVIEW_FULL_LIST_MAX = 62;
|
|
|
132
167
|
export declare function parseHHMM(value: string): number;
|
|
133
168
|
/** True when two [start, end) intervals share any time; touching does not count */
|
|
134
169
|
export declare function intervalsOverlap(a: [number, number], b: [number, number]): boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Turn a company-local day and wall-clock time into a Date in the zone the
|
|
172
|
+
* server runs in, which is the zone `formatLocalIso` stamps an offset from.
|
|
173
|
+
*
|
|
174
|
+
* This exists so a person who forgot to clock can say when they actually
|
|
175
|
+
* started or stopped. The declared moment is what Factorial records as the
|
|
176
|
+
* working time; the moment of the API call is recorded separately by Factorial
|
|
177
|
+
* as created_at and cannot be set through the API.
|
|
178
|
+
*/
|
|
179
|
+
export declare function declaredMoment(date: string, time: string): Date;
|
|
135
180
|
/** Every date from start to end inclusive */
|
|
136
181
|
export declare function enumerateDates(start: string, end: string): string[];
|
|
137
182
|
/**
|
|
@@ -161,6 +206,19 @@ export declare function expandLeaves(leaves: LeaveLike[]): Map<string, LeaveCove
|
|
|
161
206
|
* the magnitude.
|
|
162
207
|
*/
|
|
163
208
|
export declare function jitterSegments(employeeId: number, date: string, segments: Segment[], magnitude: number): Segment[];
|
|
209
|
+
/**
|
|
210
|
+
* Shift a whole day by one offset, so the start time drifts from day to day.
|
|
211
|
+
*
|
|
212
|
+
* This is the variation `jitter_minutes` cannot produce. Jitter moves each
|
|
213
|
+
* segment of a day independently around the pattern, which varies the shape of
|
|
214
|
+
* a day but leaves every day starting near the same time. Reconstructed
|
|
215
|
+
* records that all begin at 09:00 give themselves away; this moves the whole
|
|
216
|
+
* day together, so the pattern within it survives intact.
|
|
217
|
+
*
|
|
218
|
+
* Deterministic from the employee and the date, so the preview, the token and
|
|
219
|
+
* any retry all agree. Compose it before jitter, never after.
|
|
220
|
+
*/
|
|
221
|
+
export declare function varySegments(employeeId: number, date: string, segments: Segment[], magnitude: number): Segment[];
|
|
164
222
|
/**
|
|
165
223
|
* Build the plan. Skip reasons are evaluated in the documented order and the
|
|
166
224
|
* first match wins. Explicit days skip the weekday, holiday and workability
|
|
@@ -178,7 +236,7 @@ export declare function planFingerprint(employeeId: number, writes: PlannedWrite
|
|
|
178
236
|
* refuse them anyway.
|
|
179
237
|
*/
|
|
180
238
|
export declare function computeGaps(facts: PlanFacts, toleranceMinutes?: number): Gap[];
|
|
181
|
-
export type LedgerStatus = 'future' | 'weekend' | 'bank_holiday' | 'not_workable' | 'no_contract_data' | 'on_leave' | 'half_day_leave' | 'complete' | 'missing' | 'over';
|
|
239
|
+
export type LedgerStatus = 'future' | 'weekend' | 'bank_holiday' | 'not_workable' | 'no_contract_data' | 'on_leave' | 'half_day_leave' | 'complete' | 'missing' | 'short' | 'over';
|
|
182
240
|
export interface LedgerDay {
|
|
183
241
|
date: string;
|
|
184
242
|
day_type: string | null;
|
|
@@ -191,6 +249,8 @@ export interface LedgerDay {
|
|
|
191
249
|
minutes: number | null;
|
|
192
250
|
}>;
|
|
193
251
|
status: LedgerStatus;
|
|
252
|
+
/** The timesheet for this date has been signed off; it is closed for writing */
|
|
253
|
+
signed_off: boolean;
|
|
194
254
|
/** tracked minus expected; negative means hours are missing */
|
|
195
255
|
delta_minutes: number;
|
|
196
256
|
}
|
|
@@ -213,5 +273,5 @@ export declare function formatPlanPreview(plan: BackfillPlan, employee: {
|
|
|
213
273
|
}, range: {
|
|
214
274
|
start: string;
|
|
215
275
|
end: string;
|
|
216
|
-
}, request: PlanRequest, observations?: string): string;
|
|
276
|
+
}, request: PlanRequest, observations?: string, coverage?: FactsCoverage): string;
|
|
217
277
|
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/attendance/planner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,qEAAqE;AACrE,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,kBAAkB,GAAG,YAAY,CAAC;AAEpE,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,sEAAsE;IACtE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/attendance/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,21 @@
|
|
|
8
8
|
* a unit test in src/__tests__/unit/attendance/planner.test.ts.
|
|
9
9
|
*/
|
|
10
10
|
import { createHash } from 'node:crypto';
|
|
11
|
+
/**
|
|
12
|
+
* Printed once on every attendance write result and preview.
|
|
13
|
+
*
|
|
14
|
+
* A backfilled record shows the real working day and hours on the attendance
|
|
15
|
+
* sheet, while Factorial's own activity log shows it was entered later through
|
|
16
|
+
* the API. Both are true at once, and neither can be altered through the API.
|
|
17
|
+
* Saying so plainly stops a user believing either that the entry is hidden or
|
|
18
|
+
* that the working time is wrong.
|
|
19
|
+
*/
|
|
20
|
+
export const ENTRY_TIME_NOTE = 'Declared working time is the date, clock in and clock out above, and that is what the ' +
|
|
21
|
+
'attendance sheet and the hour totals show. Separately, Factorial stamps created_at, ' +
|
|
22
|
+
'updated_at and in_source/out_source with the moment and channel of entry; those are set by ' +
|
|
23
|
+
'Factorial, are visible in its activity log, and cannot be set or changed through the API.';
|
|
11
24
|
/** Measure how much of a date window the per-day facts cover */
|
|
12
|
-
export function measureCoverage(dates, days, leaveRecords, shiftRecords) {
|
|
25
|
+
export function measureCoverage(dates, days, leaveRecords, shiftRecords, reviewRecords, reviewsError = null) {
|
|
13
26
|
const uncovered = dates.filter(date => !days.has(date));
|
|
14
27
|
return {
|
|
15
28
|
days_in_window: dates.length,
|
|
@@ -18,17 +31,29 @@ export function measureCoverage(dates, days, leaveRecords, shiftRecords) {
|
|
|
18
31
|
last_uncovered: uncovered.length > 0 ? uncovered[uncovered.length - 1] : null,
|
|
19
32
|
leave_records: leaveRecords,
|
|
20
33
|
shift_records: shiftRecords,
|
|
34
|
+
review_records: reviewRecords,
|
|
35
|
+
reviews_error: reviewsError,
|
|
21
36
|
};
|
|
22
37
|
}
|
|
23
38
|
/** One line for the header of an audit, gaps or preview */
|
|
24
39
|
export function formatCoverage(coverage) {
|
|
25
|
-
const
|
|
26
|
-
|
|
40
|
+
const day = coverage.days_in_window === 1 ? 'day' : 'days';
|
|
41
|
+
const leaveRecord = coverage.leave_records === 1 ? 'leave record' : 'leave records';
|
|
42
|
+
const shiftRecord = coverage.shift_records === 1 ? 'shift record' : 'shift records';
|
|
43
|
+
const signedOffDay = coverage.review_records === 1 ? 'signed-off day' : 'signed-off days';
|
|
44
|
+
const base = `Data read: contract data for ${coverage.days_with_contract_data} of ${coverage.days_in_window} ${day}, ` +
|
|
45
|
+
`${coverage.leave_records} ${leaveRecord}, ${coverage.shift_records} ${shiftRecord}, ` +
|
|
46
|
+
`${coverage.review_records} ${signedOffDay}.`;
|
|
47
|
+
const reviewsWarning = coverage.reviews_error
|
|
48
|
+
? ` Signed-off dates could not be read (${coverage.reviews_error}); none are known here, so a ` +
|
|
49
|
+
'plan below may queue writes to dates that are actually signed off and will be refused by ' +
|
|
50
|
+
'Factorial.'
|
|
51
|
+
: '';
|
|
27
52
|
if (coverage.days_with_contract_data === coverage.days_in_window)
|
|
28
|
-
return base
|
|
53
|
+
return `${base}${reviewsWarning}`;
|
|
29
54
|
return (`${base} Days without contract data (${coverage.first_uncovered} to ${coverage.last_uncovered}) ` +
|
|
30
55
|
'are reported as no_contract_data and are never written; they usually precede the start of ' +
|
|
31
|
-
|
|
56
|
+
`employment. If that is not the case here, the read is incomplete and the result must not be trusted.${reviewsWarning}`);
|
|
32
57
|
}
|
|
33
58
|
const HHMM = /^([01]\d|2[0-3]):([0-5]\d)$/;
|
|
34
59
|
const DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
@@ -43,6 +68,8 @@ export const DEFAULT_TOLERANCE_MINUTES = 15;
|
|
|
43
68
|
export const PREVIEW_FULL_LIST_MAX = 62;
|
|
44
69
|
const PREVIEW_HEAD = 20;
|
|
45
70
|
const PREVIEW_TAIL = 10;
|
|
71
|
+
/** Days named individually in the overlap-skip summary before it gives a count */
|
|
72
|
+
const PREVIEW_SKIP_DAYS_MAX = 10;
|
|
46
73
|
/** Parse "HH:MM" into minutes since midnight; anything else is rejected */
|
|
47
74
|
export function parseHHMM(value) {
|
|
48
75
|
const match = HHMM.exec(value);
|
|
@@ -56,9 +83,37 @@ export function intervalsOverlap(a, b) {
|
|
|
56
83
|
return a[0] < b[1] && b[0] < a[1];
|
|
57
84
|
}
|
|
58
85
|
function assertDate(value) {
|
|
59
|
-
|
|
86
|
+
const match = DATE.exec(value);
|
|
87
|
+
const parsed = match ? Date.parse(`${value}T00:00:00Z`) : NaN;
|
|
88
|
+
if (!match || Number.isNaN(parsed)) {
|
|
60
89
|
throw new Error(`Date "${value}" must be YYYY-MM-DD`);
|
|
61
90
|
}
|
|
91
|
+
// Date.parse silently rolls an impossible date (2026-02-30) over into the
|
|
92
|
+
// next valid one (2026-03-02). A rolled-over date must be rejected, not
|
|
93
|
+
// written to a different day than the caller typed: reparse the accepted
|
|
94
|
+
// instant and compare it against the three numbers actually given.
|
|
95
|
+
const rolled = new Date(parsed);
|
|
96
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
97
|
+
if (rolled.getUTCFullYear() !== year ||
|
|
98
|
+
rolled.getUTCMonth() !== month - 1 ||
|
|
99
|
+
rolled.getUTCDate() !== day) {
|
|
100
|
+
throw new Error(`Date "${value}" does not exist`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Turn a company-local day and wall-clock time into a Date in the zone the
|
|
105
|
+
* server runs in, which is the zone `formatLocalIso` stamps an offset from.
|
|
106
|
+
*
|
|
107
|
+
* This exists so a person who forgot to clock can say when they actually
|
|
108
|
+
* started or stopped. The declared moment is what Factorial records as the
|
|
109
|
+
* working time; the moment of the API call is recorded separately by Factorial
|
|
110
|
+
* as created_at and cannot be set through the API.
|
|
111
|
+
*/
|
|
112
|
+
export function declaredMoment(date, time) {
|
|
113
|
+
assertDate(date);
|
|
114
|
+
const minutes = parseHHMM(time);
|
|
115
|
+
const [year, month, day] = date.split('-').map(Number);
|
|
116
|
+
return new Date(year, month - 1, day, Math.floor(minutes / 60), minutes % 60, 0, 0);
|
|
62
117
|
}
|
|
63
118
|
/** Every date from start to end inclusive */
|
|
64
119
|
export function enumerateDates(start, end) {
|
|
@@ -135,6 +190,19 @@ function daySkipReason(date, request, facts) {
|
|
|
135
190
|
detail: `today is ${facts.today} in the zone of the machine running the server`,
|
|
136
191
|
};
|
|
137
192
|
}
|
|
193
|
+
if (request.mode === 'range' && request.exclude_dates?.includes(date)) {
|
|
194
|
+
return { date, reason: 'excluded', detail: 'listed in exclude_dates' };
|
|
195
|
+
}
|
|
196
|
+
// Applies in both modes. A signed-off date refuses a write whatever the
|
|
197
|
+
// calendar says about it, so log_days must not bypass this the way it
|
|
198
|
+
// deliberately bypasses the weekend and holiday rules.
|
|
199
|
+
if (facts.reviews.has(date)) {
|
|
200
|
+
return {
|
|
201
|
+
date,
|
|
202
|
+
reason: 'signed_off',
|
|
203
|
+
detail: 'the timesheet for this date has been signed off and is closed for writing',
|
|
204
|
+
};
|
|
205
|
+
}
|
|
138
206
|
const day = facts.days.get(date);
|
|
139
207
|
if (request.mode === 'range') {
|
|
140
208
|
if (day?.day_type === 'saturday' || day?.day_type === 'sunday') {
|
|
@@ -245,6 +313,33 @@ export function jitterSegments(employeeId, date, segments, magnitude) {
|
|
|
245
313
|
});
|
|
246
314
|
return result;
|
|
247
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Shift a whole day by one offset, so the start time drifts from day to day.
|
|
318
|
+
*
|
|
319
|
+
* This is the variation `jitter_minutes` cannot produce. Jitter moves each
|
|
320
|
+
* segment of a day independently around the pattern, which varies the shape of
|
|
321
|
+
* a day but leaves every day starting near the same time. Reconstructed
|
|
322
|
+
* records that all begin at 09:00 give themselves away; this moves the whole
|
|
323
|
+
* day together, so the pattern within it survives intact.
|
|
324
|
+
*
|
|
325
|
+
* Deterministic from the employee and the date, so the preview, the token and
|
|
326
|
+
* any retry all agree. Compose it before jitter, never after.
|
|
327
|
+
*/
|
|
328
|
+
export function varySegments(employeeId, date, segments, magnitude) {
|
|
329
|
+
if (magnitude <= 0)
|
|
330
|
+
return segments;
|
|
331
|
+
const ordered = [...segments].sort((a, b) => parseHHMM(a.clock_in) - parseHHMM(b.clock_in));
|
|
332
|
+
const offset = deterministicOffset(`variation|${employeeId}|${date}`, magnitude);
|
|
333
|
+
const earliest = parseHHMM(ordered[0].clock_in);
|
|
334
|
+
const latest = parseHHMM(ordered[ordered.length - 1].clock_out);
|
|
335
|
+
// Clamp the whole day rather than any single segment, so the offset stays
|
|
336
|
+
// uniform and no segment changes length.
|
|
337
|
+
const applied = Math.max(-earliest, Math.min(offset, END_OF_DAY - 1 - latest));
|
|
338
|
+
return ordered.map(segment => ({
|
|
339
|
+
clock_in: formatHHMM(parseHHMM(segment.clock_in) + applied),
|
|
340
|
+
clock_out: formatHHMM(parseHHMM(segment.clock_out) + applied),
|
|
341
|
+
}));
|
|
342
|
+
}
|
|
248
343
|
/**
|
|
249
344
|
* Build the plan. Skip reasons are evaluated in the documented order and the
|
|
250
345
|
* first match wins. Explicit days skip the weekday, holiday and workability
|
|
@@ -280,7 +375,9 @@ export function buildBackfillPlan(request, facts) {
|
|
|
280
375
|
continue;
|
|
281
376
|
}
|
|
282
377
|
const existing = existingIntervals(facts.shifts, date);
|
|
283
|
-
|
|
378
|
+
// Variation moves the whole day; jitter then varies segments inside it.
|
|
379
|
+
const varied = varySegments(request.employee_id, date, segments, request.variation_minutes ?? 0);
|
|
380
|
+
const planned = jitterSegments(request.employee_id, date, varied, request.jitter_minutes ?? 0);
|
|
284
381
|
for (const segment of planned) {
|
|
285
382
|
const interval = [
|
|
286
383
|
parseHHMM(segment.clock_in),
|
|
@@ -344,6 +441,7 @@ export function computeGaps(facts, toleranceMinutes = DEFAULT_TOLERANCE_MINUTES)
|
|
|
344
441
|
tracked_minutes: day.tracked_minutes,
|
|
345
442
|
missing_minutes: day.expected_minutes - day.tracked_minutes,
|
|
346
443
|
half_day_leave: cover ?? null,
|
|
444
|
+
signed_off: facts.reviews.has(date),
|
|
347
445
|
});
|
|
348
446
|
}
|
|
349
447
|
return gaps;
|
|
@@ -383,7 +481,7 @@ export function computeLedger(dates, facts, toleranceMinutes = DEFAULT_TOLERANCE
|
|
|
383
481
|
else if (expected <= 0)
|
|
384
482
|
status = 'not_workable';
|
|
385
483
|
else if (expected - tracked > toleranceMinutes)
|
|
386
|
-
status = 'missing';
|
|
484
|
+
status = tracked === 0 ? 'missing' : 'short';
|
|
387
485
|
else if (tracked - expected > toleranceMinutes)
|
|
388
486
|
status = 'over';
|
|
389
487
|
else
|
|
@@ -396,6 +494,7 @@ export function computeLedger(dates, facts, toleranceMinutes = DEFAULT_TOLERANCE
|
|
|
396
494
|
leave,
|
|
397
495
|
shifts,
|
|
398
496
|
status,
|
|
497
|
+
signed_off: facts.reviews.has(date),
|
|
399
498
|
delta_minutes: tracked - expected,
|
|
400
499
|
};
|
|
401
500
|
});
|
|
@@ -417,20 +516,33 @@ function countBy(items) {
|
|
|
417
516
|
* person, because the company-wide key makes writing someone else's hours the
|
|
418
517
|
* mistake worth catching.
|
|
419
518
|
*/
|
|
420
|
-
export function formatPlanPreview(plan, employee, range, request, observations) {
|
|
519
|
+
export function formatPlanPreview(plan, employee, range, request, observations, coverage) {
|
|
421
520
|
const lines = [];
|
|
521
|
+
// The coverage line goes first, as it does in an audit. A result that is
|
|
522
|
+
// truncated or spilled to a file still shows what the plan was based on.
|
|
523
|
+
if (coverage) {
|
|
524
|
+
lines.push(formatCoverage(coverage));
|
|
525
|
+
lines.push('');
|
|
526
|
+
}
|
|
422
527
|
lines.push(`Plan for ${employee.name} (${employee.id})`);
|
|
423
528
|
lines.push(`${range.start} .. ${range.end}`);
|
|
424
529
|
lines.push('');
|
|
425
|
-
|
|
530
|
+
const totalsDay = plan.totals.days === 1 ? 'day' : 'days';
|
|
531
|
+
const totalsRecord = plan.totals.records === 1 ? 'shift record' : 'shift records';
|
|
532
|
+
lines.push(` ${plan.totals.days} ${totalsDay} to write, ${plan.totals.records} ${totalsRecord}, ${hours(plan.totals.minutes)}`);
|
|
426
533
|
if (request.mode === 'range') {
|
|
427
534
|
lines.push(` ${request.segments.map(s => `${s.clock_in}-${s.clock_out}`).join(' and ')}`);
|
|
428
535
|
}
|
|
429
536
|
if (observations) {
|
|
430
537
|
lines.push(` Note on every record: "${observations}"`);
|
|
431
538
|
}
|
|
539
|
+
if (request.variation_minutes && request.variation_minutes > 0) {
|
|
540
|
+
const variationMinute = request.variation_minutes === 1 ? 'minute' : 'minutes';
|
|
541
|
+
lines.push(` Each day starts up to ${request.variation_minutes} ${variationMinute} earlier or later than the pattern, the whole day moving together (fixed per day, listed below).`);
|
|
542
|
+
}
|
|
432
543
|
if (request.jitter_minutes && request.jitter_minutes > 0) {
|
|
433
|
-
|
|
544
|
+
const jitterMinute = request.jitter_minutes === 1 ? 'minute' : 'minutes';
|
|
545
|
+
lines.push(` Each time varies by up to ${request.jitter_minutes} ${jitterMinute} from the pattern (fixed per record, listed below).`);
|
|
434
546
|
}
|
|
435
547
|
if (plan.writes.length > 0) {
|
|
436
548
|
lines.push('');
|
|
@@ -448,14 +560,14 @@ export function formatPlanPreview(plan, employee, range, request, observations)
|
|
|
448
560
|
const hidden = plan.writes.length - head.length - tail.length;
|
|
449
561
|
for (const w of head)
|
|
450
562
|
lines.push(record(w));
|
|
451
|
-
lines.push(` ... ${hidden} more
|
|
563
|
+
lines.push(` ... ${hidden} more record${hidden === 1 ? '' : 's'} not listed; the confirmation token binds to all of them ...`);
|
|
452
564
|
for (const w of tail)
|
|
453
565
|
lines.push(record(w));
|
|
454
566
|
}
|
|
455
567
|
}
|
|
456
568
|
if (plan.skippedDays.length > 0) {
|
|
457
569
|
lines.push('');
|
|
458
|
-
lines.push(` Skipping ${plan.skippedDays.length}
|
|
570
|
+
lines.push(` Skipping ${plan.skippedDays.length} day${plan.skippedDays.length === 1 ? '' : 's'}:`);
|
|
459
571
|
const byReason = countBy(plan.skippedDays);
|
|
460
572
|
const labels = {
|
|
461
573
|
future_date: 'in the future',
|
|
@@ -465,6 +577,8 @@ export function formatPlanPreview(plan, employee, range, request, observations)
|
|
|
465
577
|
no_contract_data: 'without contract data in Factorial for the date (not written; usually before the start of employment)',
|
|
466
578
|
on_leave: 'approved leave',
|
|
467
579
|
half_day_leave: 'half-day leave, write it with log_days if the other half was worked',
|
|
580
|
+
signed_off: 'signed off in Factorial and closed for writing (ask the approver to reopen, or file an edit request)',
|
|
581
|
+
excluded: 'excluded by the caller',
|
|
468
582
|
};
|
|
469
583
|
for (const [reason, count] of byReason) {
|
|
470
584
|
const dates = plan.skippedDays.filter(d => d.reason === reason).map(d => d.date);
|
|
@@ -473,12 +587,27 @@ export function formatPlanPreview(plan, employee, range, request, observations)
|
|
|
473
587
|
}
|
|
474
588
|
}
|
|
475
589
|
if (plan.skippedSegments.length > 0) {
|
|
476
|
-
|
|
477
|
-
lines.push(` Skipping ${plan.skippedSegments.length} segments that overlap existing shifts:`);
|
|
590
|
+
const byDate = new Map();
|
|
478
591
|
for (const segment of plan.skippedSegments) {
|
|
479
|
-
|
|
592
|
+
byDate.set(segment.date, (byDate.get(segment.date) ?? 0) + 1);
|
|
593
|
+
}
|
|
594
|
+
lines.push('');
|
|
595
|
+
const segmentCount = plan.skippedSegments.length;
|
|
596
|
+
const dayCount = byDate.size;
|
|
597
|
+
lines.push(` ${segmentCount} segment${segmentCount === 1 ? '' : 's'} on ${dayCount} day${dayCount === 1 ? '' : 's'} overlap existing shifts and are skipped:`);
|
|
598
|
+
const dates = [...byDate.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
599
|
+
for (const [date, count] of dates.slice(0, PREVIEW_SKIP_DAYS_MAX)) {
|
|
600
|
+
lines.push(` ${date} ${count} segment${count === 1 ? '' : 's'} already covered`);
|
|
601
|
+
}
|
|
602
|
+
if (dates.length > PREVIEW_SKIP_DAYS_MAX) {
|
|
603
|
+
const further = dates.length - PREVIEW_SKIP_DAYS_MAX;
|
|
604
|
+
lines.push(` ... ${further} further day${further === 1 ? '' : 's'} not listed; run audit with format: "table" to see them all ...`);
|
|
480
605
|
}
|
|
481
606
|
}
|
|
607
|
+
if (plan.writes.length > 0) {
|
|
608
|
+
lines.push('');
|
|
609
|
+
lines.push(ENTRY_TIME_NOTE);
|
|
610
|
+
}
|
|
482
611
|
return lines.join('\n');
|
|
483
612
|
}
|
|
484
613
|
//# sourceMappingURL=planner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/attendance/planner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/attendance/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { type FactsCoverage, type Gap, type LedgerDay } from './planner.js';
|
|
7
7
|
export type AuditFormat = 'summary' | 'table' | 'json';
|
|
8
|
+
export { ENTRY_TIME_NOTE } from './planner.js';
|
|
8
9
|
export interface AuditReportInput {
|
|
9
10
|
employee: {
|
|
10
11
|
id: number;
|
|
@@ -16,6 +17,8 @@ export interface AuditReportInput {
|
|
|
16
17
|
coverage: FactsCoverage;
|
|
17
18
|
toleranceMinutes: number;
|
|
18
19
|
format: AuditFormat;
|
|
20
|
+
/** Restrict the summary to these statuses; absent means the default quiet set applies */
|
|
21
|
+
statuses?: LedgerDay['status'][];
|
|
19
22
|
}
|
|
20
23
|
export declare function ledgerRow(d: LedgerDay): string;
|
|
21
24
|
/** Count ledger days per status, in first-seen order */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/attendance/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,KAAK,aAAa,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnG,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/attendance/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,KAAK,aAAa,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnG,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAKvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;CAClC;AAqCD,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAO9C;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAInF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CA4C3D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA0CzD"}
|