agentfootprint 9.131.0 → 9.133.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/AGENTS.md +2 -2
- package/CAPABILITIES.md +3 -2
- package/ai-instructions/claude-code/SKILL.md +2 -2
- package/dist/core/Agent.js +5 -3
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/arguments/ask.js +249 -54
- package/dist/core/agent/arguments/ask.js.map +1 -1
- package/dist/core/agent/arguments/resolve.js +11 -1
- package/dist/core/agent/arguments/resolve.js.map +1 -1
- package/dist/core/agent/arguments/serve.js +227 -61
- package/dist/core/agent/arguments/serve.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +5 -4
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +2 -1
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/coverage/period.js +47 -2
- package/dist/core/agent/coverage/period.js.map +1 -1
- package/dist/core/agent/evidence/answerCarriers.js +91 -0
- package/dist/core/agent/evidence/answerCarriers.js.map +1 -0
- package/dist/core/agent/stages/argumentAsk.js +8 -6
- package/dist/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/core/agent/stages/route.js +7 -0
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +4 -2
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core/time/bind.js +57 -51
- package/dist/core/time/bind.js.map +1 -1
- package/dist/core/time/convert.js +111 -14
- package/dist/core/time/convert.js.map +1 -1
- package/dist/core/time/forms.js +7 -5
- package/dist/core/time/forms.js.map +1 -1
- package/dist/core/time/periodForm.js +63 -9
- package/dist/core/time/periodForm.js.map +1 -1
- package/dist/core/time/range.js +22 -1
- package/dist/core/time/range.js.map +1 -1
- package/dist/core/time/reader.js +3 -2
- package/dist/core/time/reader.js.map +1 -1
- package/dist/core/time/readers/english.js +116 -38
- package/dist/core/time/readers/english.js.map +1 -1
- package/dist/core/time/readingAsk.js +20 -5
- package/dist/core/time/readingAsk.js.map +1 -1
- package/dist/core/time/resolve.js +197 -63
- package/dist/core/time/resolve.js.map +1 -1
- package/dist/core/time/resolveRecord.js +103 -6
- package/dist/core/time/resolveRecord.js.map +1 -1
- package/dist/core/time/rows.js +7 -2
- package/dist/core/time/rows.js.map +1 -1
- package/dist/core/time/rowsBuild.js +1 -1
- package/dist/core/time/rowsBuild.js.map +1 -1
- package/dist/core/time/windows.js +131 -19
- package/dist/core/time/windows.js.map +1 -1
- package/dist/core/time/zone.js +105 -1
- package/dist/core/time/zone.js.map +1 -1
- package/dist/doors/time.js +73 -0
- package/dist/doors/time.js.map +1 -0
- package/dist/esm/core/Agent.js +5 -3
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/arguments/ask.d.ts +11 -5
- package/dist/esm/core/agent/arguments/ask.js +251 -56
- package/dist/esm/core/agent/arguments/ask.js.map +1 -1
- package/dist/esm/core/agent/arguments/resolve.js +12 -2
- package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
- package/dist/esm/core/agent/arguments/serve.d.ts +50 -21
- package/dist/esm/core/agent/arguments/serve.js +225 -60
- package/dist/esm/core/agent/arguments/serve.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.d.ts +3 -1
- package/dist/esm/core/agent/buildAgentChart.js +5 -4
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +2 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/coverage/period.d.ts +6 -1
- package/dist/esm/core/agent/coverage/period.js +47 -2
- package/dist/esm/core/agent/coverage/period.js.map +1 -1
- package/dist/esm/core/agent/evidence/answerCarriers.d.ts +62 -0
- package/dist/esm/core/agent/evidence/answerCarriers.js +87 -0
- package/dist/esm/core/agent/evidence/answerCarriers.js.map +1 -0
- package/dist/esm/core/agent/stages/argumentAsk.js +8 -6
- package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/esm/core/agent/stages/route.js +7 -0
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.d.ts +15 -11
- package/dist/esm/core/slots/buildToolsSlot.js +4 -2
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core/time/bind.d.ts +11 -7
- package/dist/esm/core/time/bind.js +55 -52
- package/dist/esm/core/time/bind.js.map +1 -1
- package/dist/esm/core/time/convert.d.ts +45 -2
- package/dist/esm/core/time/convert.js +108 -16
- package/dist/esm/core/time/convert.js.map +1 -1
- package/dist/esm/core/time/forms.js +8 -6
- package/dist/esm/core/time/forms.js.map +1 -1
- package/dist/esm/core/time/periodForm.d.ts +45 -6
- package/dist/esm/core/time/periodForm.js +59 -8
- package/dist/esm/core/time/periodForm.js.map +1 -1
- package/dist/esm/core/time/range.d.ts +18 -0
- package/dist/esm/core/time/range.js +20 -0
- package/dist/esm/core/time/range.js.map +1 -1
- package/dist/esm/core/time/reader.d.ts +7 -0
- package/dist/esm/core/time/reader.js +3 -2
- package/dist/esm/core/time/reader.js.map +1 -1
- package/dist/esm/core/time/readers/english.d.ts +16 -12
- package/dist/esm/core/time/readers/english.js +116 -38
- package/dist/esm/core/time/readers/english.js.map +1 -1
- package/dist/esm/core/time/readingAsk.d.ts +7 -3
- package/dist/esm/core/time/readingAsk.js +20 -5
- package/dist/esm/core/time/readingAsk.js.map +1 -1
- package/dist/esm/core/time/resolve.d.ts +31 -17
- package/dist/esm/core/time/resolve.js +197 -65
- package/dist/esm/core/time/resolve.js.map +1 -1
- package/dist/esm/core/time/resolveRecord.d.ts +90 -5
- package/dist/esm/core/time/resolveRecord.js +99 -5
- package/dist/esm/core/time/resolveRecord.js.map +1 -1
- package/dist/esm/core/time/rows.d.ts +9 -3
- package/dist/esm/core/time/rows.js +7 -2
- package/dist/esm/core/time/rows.js.map +1 -1
- package/dist/esm/core/time/rowsBuild.js +1 -1
- package/dist/esm/core/time/rowsBuild.js.map +1 -1
- package/dist/esm/core/time/windows.d.ts +95 -14
- package/dist/esm/core/time/windows.js +127 -18
- package/dist/esm/core/time/windows.js.map +1 -1
- package/dist/esm/core/time/zone.d.ts +32 -0
- package/dist/esm/core/time/zone.js +102 -0
- package/dist/esm/core/time/zone.js.map +1 -1
- package/dist/esm/doors/time.d.ts +60 -0
- package/dist/esm/doors/time.js +61 -0
- package/dist/esm/doors/time.js.map +1 -0
- package/dist/esm/events/payloads.d.ts +23 -0
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/ask.d.ts +11 -5
- package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/serve.d.ts +50 -21
- package/dist/types/core/agent/arguments/serve.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +3 -1
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/period.d.ts +6 -1
- package/dist/types/core/agent/coverage/period.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/answerCarriers.d.ts +63 -0
- package/dist/types/core/agent/evidence/answerCarriers.d.ts.map +1 -0
- package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts +15 -11
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/core/time/bind.d.ts +11 -7
- package/dist/types/core/time/bind.d.ts.map +1 -1
- package/dist/types/core/time/convert.d.ts +45 -2
- package/dist/types/core/time/convert.d.ts.map +1 -1
- package/dist/types/core/time/forms.d.ts.map +1 -1
- package/dist/types/core/time/periodForm.d.ts +45 -6
- package/dist/types/core/time/periodForm.d.ts.map +1 -1
- package/dist/types/core/time/range.d.ts +18 -0
- package/dist/types/core/time/range.d.ts.map +1 -1
- package/dist/types/core/time/reader.d.ts +7 -0
- package/dist/types/core/time/reader.d.ts.map +1 -1
- package/dist/types/core/time/readers/english.d.ts +16 -12
- package/dist/types/core/time/readers/english.d.ts.map +1 -1
- package/dist/types/core/time/readingAsk.d.ts +7 -3
- package/dist/types/core/time/readingAsk.d.ts.map +1 -1
- package/dist/types/core/time/resolve.d.ts +31 -17
- package/dist/types/core/time/resolve.d.ts.map +1 -1
- package/dist/types/core/time/resolveRecord.d.ts +90 -5
- package/dist/types/core/time/resolveRecord.d.ts.map +1 -1
- package/dist/types/core/time/rows.d.ts +9 -3
- package/dist/types/core/time/rows.d.ts.map +1 -1
- package/dist/types/core/time/rowsBuild.d.ts.map +1 -1
- package/dist/types/core/time/windows.d.ts +95 -14
- package/dist/types/core/time/windows.d.ts.map +1 -1
- package/dist/types/core/time/zone.d.ts +32 -0
- package/dist/types/core/time/zone.d.ts.map +1 -1
- package/dist/types/doors/time.d.ts +61 -0
- package/dist/types/doors/time.d.ts.map +1 -0
- package/dist/types/events/payloads.d.ts +23 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +14 -1
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* Pattern: Strategy behind the `TimeReader` port (`../reader.ts`). It
|
|
7
7
|
* TOKENIZES only: it returns the parts it sees and the verbatim
|
|
8
8
|
* quote. It never resolves an instant, never applies a date order,
|
|
9
|
-
* never maps a zone abbreviation
|
|
9
|
+
* never maps a zone token (an abbreviation, a place) to a zone and
|
|
10
|
+
* never refuses a future date —
|
|
10
11
|
* all of that is `resolve.ts`'s, the policy's or the ask's.
|
|
11
12
|
* Role: core/ leaf (the time layer). Imports only the port's types. Armed
|
|
12
13
|
* by the app: `.time({ reader: englishTimeReader() })` — there is no
|
|
@@ -17,25 +18,28 @@
|
|
|
17
18
|
*
|
|
18
19
|
* | Phrase | Example | Parts |
|
|
19
20
|
* |--------|---------|-------|
|
|
20
|
-
* | an ISO date or instant | `2026-10-09`, `2026-10-09T08:00-07:00` | `date: fixed`, `wall
|
|
21
|
+
* | an ISO date or instant | `2026-10-09`, `2026-10-09T08:00-07:00` | `date: fixed`, `wall` (marked `clock: '24h'` — never also pm), `zoneToken` |
|
|
21
22
|
* | a numeric date | `10/09/26`, `10/9` | `date: numeric` — the ORDER is not decided here |
|
|
22
23
|
* | a clock time | `8 AM`, `8:40`, `20:40`, `8:40 p.m.` | `wall` (a bare `8` is a time only as a range's first side: `8 to 9 AM`) |
|
|
23
|
-
* | a range between two of the above | `8 AM to 8:40 AM`, `08:00–08:40`, `between 8 and 9 AM` | `rangeOf` (a day or zone said once for both sides is the whole mention's) |
|
|
24
|
-
* | a zone after a time
|
|
24
|
+
* | a range between two of the above | `8 AM to 8:40 AM`, `08:00–08:40`, `between 8 and 9 AM`, `today between 1 pm and 2 pm` | `rangeOf` (a day or zone said once for both sides is the whole mention's) |
|
|
25
|
+
* | a zone after a time, a date or a day word | `America/Los_Angeles`, `UTC-07:00`, `London time`, `PST` | `zoneToken`, as written — `resolve.ts` maps it (a place the tz database names once; an abbreviation only through the app's map; else ASKED) |
|
|
26
|
+
* | a named-month date | `11 September`, `Sept 29`, `September 29, 2026`, `the 29th of Sep` | `date: fixed` — no `year` unless written (the policy's or the person's, as for `10/9`) |
|
|
25
27
|
* | a day word | today, yesterday, tomorrow | `relative: { unit: 'day', offset }` |
|
|
26
|
-
* | a relative span from now | last 40 minutes, past 2 hours, the last hour, the past week | `relative: { unit, count }` — a look-back in minutes, hours, days or weeks |
|
|
28
|
+
* | a relative span from now | last 40 minutes, past 2 hours, last 24h, past 6h, the last hour, the past week | `relative: { unit, count }` — a look-back in minutes, hours, days or weeks, spelled out or compact (`m`, `h`, `d`, `w`) |
|
|
27
29
|
*
|
|
28
30
|
* ## What it says "unreadable" for — never a partial reading
|
|
29
31
|
*
|
|
30
|
-
* Parts of the day (`yesterday morning`, `tonight`, `noon`
|
|
31
|
-
*
|
|
32
|
-
* `
|
|
33
|
-
*
|
|
32
|
+
* Parts of the day (`yesterday morning`, `tonight`, `noon` — a greeting, `Good morning`, is
|
|
33
|
+
* no time and reads no mention), calendar spans
|
|
34
|
+
* (`last week`, `this month`), week days and a month named alone (`Friday`,
|
|
35
|
+
* `in September`), `N hours ago`, spans in words (`last two hours`), in a unit it
|
|
36
|
+
* does not read (`last 30 seconds`, `last 30s`, `last 3 months`) or said with `previous`
|
|
34
37
|
* (`previous 7 days` — often relative to another window), a look-ahead (`next 2 hours`), an
|
|
35
38
|
* ordinal day (`the 9th`), `8 o'clock`, and any v1 phrase a modifier changes
|
|
36
39
|
* (`since 8 AM`, `before yesterday`, `around 8:40`, `earlier today`,
|
|
37
|
-
* `8 AM to now`, `past 8 PM`, `8 AM-ish`, `from 3 PM yesterday` with no `to`)
|
|
38
|
-
*
|
|
40
|
+
* `8 AM to now`, `past 8 PM`, `8 AM-ish`, `from 3 PM yesterday` with no `to`), a
|
|
41
|
+
* bare first side whose far side says no meridiem (`8 to 9:30` — `9:30` alone
|
|
42
|
+
* would drop the start) and a meridiem the number contradicts (`13:00 PM`). Such a phrase is ONE mention
|
|
39
43
|
* with `problem: 'unreadable'`, quoting the whole phrase: reading `yesterday`
|
|
40
44
|
* out of `yesterday morning` would silently widen what the person said.
|
|
41
45
|
*
|
|
@@ -75,17 +79,26 @@ import { isTimeParts, MAX_MENTIONS, } from '../reader.js';
|
|
|
75
79
|
/** The reader's recorded identity — on every `time-reading` row with its version. */
|
|
76
80
|
export const ENGLISH_TIME_READER_ID = 'agentfootprint/english';
|
|
77
81
|
/** Raised whenever what the reader returns for some text changes. */
|
|
78
|
-
export const ENGLISH_TIME_READER_VERSION = '1.
|
|
82
|
+
export const ENGLISH_TIME_READER_VERSION = '1.2.0';
|
|
79
83
|
const DAY_WORDS = { today: 0, yesterday: -1, tomorrow: 1 };
|
|
80
|
-
/** The units a look-back is read in: minutes, hours, days, weeks. */
|
|
84
|
+
/** The units a look-back is read in: minutes, hours, days, weeks — spelled out or compact (`24h`). */
|
|
81
85
|
const SPAN_UNITS = {
|
|
82
86
|
minute: 'minute',
|
|
83
87
|
min: 'minute',
|
|
88
|
+
m: 'minute',
|
|
84
89
|
hour: 'hour',
|
|
85
90
|
hr: 'hour',
|
|
91
|
+
h: 'hour',
|
|
86
92
|
day: 'day',
|
|
93
|
+
d: 'day',
|
|
87
94
|
week: 'week',
|
|
95
|
+
wk: 'week',
|
|
96
|
+
w: 'week',
|
|
88
97
|
};
|
|
98
|
+
/** A month's name as written (any case; `May` capitalised only — `may` is a verb) → its number. */
|
|
99
|
+
const MONTH_NUMBERS = {
|
|
100
|
+
jan: 1, feb: 2, mar: 3, apr: 4, may: 5, jun: 6, jul: 7, aug: 8, sep: 9, oct: 10, nov: 11, dec: 12,
|
|
101
|
+
}; // prettier-ignore
|
|
89
102
|
/** Zone abbreviations the reader TOKENIZES after a time or a date — never maps (§ 5.3). */
|
|
90
103
|
const ZONE_ABBREVIATIONS = [
|
|
91
104
|
'UTC', 'GMT', 'PST', 'PDT', 'PT', 'MST', 'MDT', 'MT', 'CST', 'CDT', 'CT', 'EST', 'EDT', 'ET',
|
|
@@ -105,19 +118,24 @@ const MONTHS = 'jan(?:uary)?|feb(?:ruary)?|mar(?:ch)?|apr(?:il)?|may|june?|july?
|
|
|
105
118
|
* phrase it touches.
|
|
106
119
|
*/
|
|
107
120
|
const NOT_READ = [
|
|
108
|
-
|
|
121
|
+
// A part of the day — never after `good` (`Good morning`, `good night`): a greeting names no
|
|
122
|
+
// time, and an unreadable mention is ASKED, so a greeting read here would ask the person which
|
|
123
|
+
// time they meant by words that meant none.
|
|
124
|
+
/\b(?<!\bgood\s+)(?:(?:this|last|early|late|mid)\s+)?(?:morning|afternoon|evening|night|tonight|overnight|noon|midday|midnight|lunchtime|dawn|dusk)s?\b/gi,
|
|
109
125
|
/\b(?:last|this|next|past|previous|coming|current)\s+(?:week|month|year|quarter|weekend|hour|minute|second|day|night|decade|fortnight|shift)\b/gi,
|
|
110
126
|
/\bweekends?\b/gi,
|
|
111
127
|
/\b(?:monday|tuesday|wednesday|thursday|friday|saturday|sunday)s?\b/gi,
|
|
112
|
-
|
|
113
|
-
new RegExp(`\\b\\d{1,2}(?:st|nd|rd|th)?\\s+(?:of\\s+)?(?:${MONTHS})\\b\\.?(?:,?\\s+\\d{4}\\b)?`, 'gi'),
|
|
128
|
+
// A month named alone (`in September`) — a calendar month, not read; with a day it is a date (`MONTH_DATE`).
|
|
114
129
|
/\b(?:january|february|july|september|october|november|december)\b/gi,
|
|
115
130
|
new RegExp(`\\b(?:\\d+|${NUMBER_WORDS})\\s+(?:${UNIT_WORDS})\\s+ago\\b`, 'gi'),
|
|
116
131
|
new RegExp(`\\b(?:last|past|previous|next|coming|upcoming|following)\\s+` +
|
|
117
132
|
`(?:(?:${NUMBER_WORDS}|\\d+)\\s+)?(?:${UNIT_WORDS})\\b`, 'gi'),
|
|
133
|
+
// A compact span the reader does not read (`next 2h`, `last 30s`, `past 3mo`) — never no mention.
|
|
134
|
+
/\b(?:last|past|previous|next|coming|upcoming|following)\s+\d+\s*(?:s|secs?|m|mins?|h|hrs?|d|w|wks?|mo|mos|y|yrs?)\b/gi,
|
|
118
135
|
/\b(?:the\s+)?day\s+(?:before\s+yesterday|after\s+tomorrow)\b/gi,
|
|
119
|
-
|
|
120
|
-
|
|
136
|
+
new RegExp(`\\bon\\s+the\\s+\\d{1,2}(?:st|nd|rd|th)\\b(?!\\s+of\\s+(?:${MONTHS})\\b)`, 'gi'),
|
|
137
|
+
// `the 9th of` — unless a month follows (`the 29th of September` is a date, `MONTH_DATE`).
|
|
138
|
+
new RegExp(`\\bthe\\s+\\d{1,2}(?:st|nd|rd|th)\\s+of\\b(?!\\s+(?:${MONTHS})\\b)`, 'gi'),
|
|
121
139
|
/\b\d{1,2}\s*o['’]?\s?clock\b/gi,
|
|
122
140
|
// A meridiem on a number that is no 12-hour time (`13:00 PM`, `0 AM`): the words contradict.
|
|
123
141
|
/(?<![\w:.+/])\d{1,2}(?::\d{2}){0,2}\s?(?:am|pm|a\.m\.|p\.m\.)(?![a-z])/gi,
|
|
@@ -138,6 +156,13 @@ const MODIFIER_BEFORE = new RegExp('(?:^|[^\\w])(since|before|after|by|around|ci
|
|
|
138
156
|
'as\\s+of|(?:starting|beginning)(?:\\s+(?:at|from|on))?|~)\\s*$', 'i');
|
|
139
157
|
/** `from` with no `to`: a time after it is where a window STARTS (`from 3 PM yesterday`), not an hour. */
|
|
140
158
|
const FROM_BEFORE = /(?:^|[^\w])(from)\s*$/i;
|
|
159
|
+
/**
|
|
160
|
+
* A bare number joined to a clock time as a range's first side the grammar
|
|
161
|
+
* does not read (`8 to 9:30`, `from 8 to 9:30`, `between 8 and 9:30` — the
|
|
162
|
+
* far side says no meridiem, so `8` is no time): the whole phrase is not
|
|
163
|
+
* read. Reading `9:30` alone would drop the start the person said.
|
|
164
|
+
*/
|
|
165
|
+
const BARE_SIDE_BEFORE = new RegExp(`(?:^|[^\\w:./-])((?:from\\s+)?\\d{1,2}\\s*${RANGE_CONNECTOR}|between\\s+\\d{1,2}\\s+and)\\s*$`, 'i');
|
|
141
166
|
/** …and right after it. */
|
|
142
167
|
const MODIFIER_AFTER = new RegExp('^(?:\\s*-?\\s*ish\\b|\\s*(?:ago\\b|onwards?\\b|or\\s+so\\b|(?:or|and)\\s+(?:later|earlier|after|before)\\b|' +
|
|
143
168
|
`at\\s+the\\s+(?:latest|earliest)\\b|${RANGE_CONNECTOR}\\s*now\\b))`, 'i');
|
|
@@ -164,16 +189,33 @@ const WALL_COLON = new RegExp(
|
|
|
164
189
|
const BARE_HOUR = new RegExp(`${NOT_AFTER}(\\d{1,2})(?=\\s*(?:${RANGE_CONNECTOR}|and)\\s*` +
|
|
165
190
|
'\\d{1,2}(?::\\d{2})?\\s?(?:am|pm|a\\.m\\.|p\\.m\\.)(?![a-z]))', 'gi');
|
|
166
191
|
const DAY_WORD = /\b(today|yesterday|tomorrow)\b/gi;
|
|
167
|
-
const SPAN = /\b(?:last|past)\s+(\d{1,6})\s*(minutes?|mins?|hours?|hrs?|days?|weeks
|
|
192
|
+
const SPAN = /\b(?:last|past)\s+(\d{1,6})\s*(minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|wks?|w)\b/gi;
|
|
193
|
+
/**
|
|
194
|
+
* A date with a NAMED month (`11 September`, `Sept 29`, `September 29, 2026`,
|
|
195
|
+
* `29th of Sep 2026`): the text fixes the order, so the parts are `date: fixed`
|
|
196
|
+
* with no year unless one is written — the year is the policy's (`year`) or the
|
|
197
|
+
* person's, as for `10/9`. The month alone (`in September`) is not read.
|
|
198
|
+
*/
|
|
199
|
+
const MONTH_DATE = new RegExp(`(?<![\\w:./-])(?:(${MONTHS})\\.?\\s+(\\d{1,2})(?:st|nd|rd|th)?` +
|
|
200
|
+
`|(\\d{1,2})(?:st|nd|rd|th)?\\s+(?:of\\s+)?(${MONTHS})\\.?)` +
|
|
201
|
+
'(?:,?\\s+(\\d{4}))?(?![\\w:/]|\\.\\d)', 'gi');
|
|
168
202
|
/** `the last hour`, `the past week` — a look-back of one unit; without `the`, `last week` is a calendar week (not read). */
|
|
169
203
|
const ONE_SPAN = /\bthe\s+(?:last|past)\s+(hour|day|week)\b/gi;
|
|
204
|
+
/**
|
|
205
|
+
* A place named with the word `time` — `London time`, `New York time` — kept
|
|
206
|
+
* as written: which zone it names is `resolve.ts`'s (the tz database's one
|
|
207
|
+
* zone for the place, else asked). Capitalised words only, so `the same
|
|
208
|
+
* time` is no zone.
|
|
209
|
+
*/
|
|
210
|
+
const PLACE_TIME = '[A-Z][a-z]+(?:[ -][A-Z][a-z]+){0,2}\\s+[Tt]ime';
|
|
170
211
|
/** A zone right after a phrase: optional `(`, or `in`, then the token (and a closing `)`). */
|
|
171
|
-
const ZONE_AFTER = new RegExp('^(
|
|
172
|
-
`(?:(
|
|
173
|
-
'|(?:UTC|GMT)\\s?([+-]\\d{1,2}(?::?\\d{2})?)' +
|
|
174
|
-
`|(
|
|
212
|
+
const ZONE_AFTER = new RegExp('^(?<lead>\\s*\\(?\\s*|\\s+in\\s+)' +
|
|
213
|
+
`(?:(?<iana>(?:${IANA_AREAS})/[A-Za-z0-9_+-]+(?:/[A-Za-z0-9_+-]+)?)` +
|
|
214
|
+
'|(?:UTC|GMT)\\s?(?<offset>[+-]\\d{1,2}(?::?\\d{2})?)' +
|
|
215
|
+
`|(?<place>${PLACE_TIME})` +
|
|
216
|
+
`|(?<abbreviation>${ZONE_ABBREVIATIONS.join('|')}))(?![A-Za-z0-9_/])(?<close>\\s*\\))?`);
|
|
175
217
|
const num = (text) => text === undefined ? undefined : Number(text);
|
|
176
|
-
function wallOf(h, m, s, meridiem) {
|
|
218
|
+
function wallOf(h, m, s, meridiem, clock) {
|
|
177
219
|
if (!Number.isInteger(h) || h > 23)
|
|
178
220
|
return undefined;
|
|
179
221
|
if (m !== undefined && m > 59)
|
|
@@ -187,6 +229,7 @@ function wallOf(h, m, s, meridiem) {
|
|
|
187
229
|
...(m !== undefined && { m }),
|
|
188
230
|
...(s !== undefined && { s }),
|
|
189
231
|
...(meridiem !== undefined && { meridiem }),
|
|
232
|
+
...(clock !== undefined && { clock }),
|
|
190
233
|
};
|
|
191
234
|
}
|
|
192
235
|
function* matches(re, text) {
|
|
@@ -202,7 +245,8 @@ function isoAtoms(text) {
|
|
|
202
245
|
for (const m of matches(ISO, text)) {
|
|
203
246
|
const [, y, mo, d, h, mi, s, zone] = m;
|
|
204
247
|
const date = { kind: 'fixed', year: Number(y), month: Number(mo), day: Number(d) };
|
|
205
|
-
|
|
248
|
+
// An ISO time is a 24-hour clock by its form: `T08:00` is 8 AM, never also 8 PM.
|
|
249
|
+
const wall = h === undefined ? undefined : wallOf(Number(h), Number(mi), num(s), undefined, '24h');
|
|
206
250
|
if (h !== undefined && wall === undefined)
|
|
207
251
|
continue;
|
|
208
252
|
out.push({
|
|
@@ -233,6 +277,27 @@ function numericAtoms(text) {
|
|
|
233
277
|
}
|
|
234
278
|
return out;
|
|
235
279
|
}
|
|
280
|
+
function monthAtoms(text) {
|
|
281
|
+
const out = [];
|
|
282
|
+
for (const m of matches(MONTH_DATE, text)) {
|
|
283
|
+
const name = (m[1] ?? m[4]);
|
|
284
|
+
// `may` in lower case is the verb (`it may 3 times`), never a month.
|
|
285
|
+
if (name.toLowerCase() === 'may' && name !== 'May')
|
|
286
|
+
continue;
|
|
287
|
+
const month = MONTH_NUMBERS[name.slice(0, 3).toLowerCase()];
|
|
288
|
+
const day = Number(m[2] ?? m[3]);
|
|
289
|
+
if (month === undefined || day < 1 || day > 31)
|
|
290
|
+
continue;
|
|
291
|
+
const year = num(m[5]);
|
|
292
|
+
out.push({
|
|
293
|
+
start: m.index,
|
|
294
|
+
end: m.index + m[0].length,
|
|
295
|
+
kind: 'date',
|
|
296
|
+
date: { kind: 'fixed', month, day, ...(year !== undefined && { year }) },
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
return out;
|
|
300
|
+
}
|
|
236
301
|
function wallAtoms(text) {
|
|
237
302
|
const out = [];
|
|
238
303
|
for (const m of matches(WALL_MERIDIEM, text)) {
|
|
@@ -292,7 +357,13 @@ function wordAtoms(text) {
|
|
|
292
357
|
}
|
|
293
358
|
/** The v1 phrases, overlaps settled: the earlier, then the longer, wins. */
|
|
294
359
|
function atomsOf(text) {
|
|
295
|
-
const all = [
|
|
360
|
+
const all = [
|
|
361
|
+
...isoAtoms(text),
|
|
362
|
+
...numericAtoms(text),
|
|
363
|
+
...monthAtoms(text),
|
|
364
|
+
...wallAtoms(text),
|
|
365
|
+
...wordAtoms(text),
|
|
366
|
+
];
|
|
296
367
|
all.sort((a, b) => a.start - b.start || b.end - b.start - (a.end - a.start));
|
|
297
368
|
const kept = [];
|
|
298
369
|
for (const atom of all) {
|
|
@@ -312,23 +383,25 @@ function atomsOf(text) {
|
|
|
312
383
|
}
|
|
313
384
|
return out;
|
|
314
385
|
}
|
|
315
|
-
/**
|
|
386
|
+
/**
|
|
387
|
+
* A zone written right after a date, a time or a day word joins that
|
|
388
|
+
* phrase, as written — `yesterday London time` is a London day, and reading
|
|
389
|
+
* `yesterday` alone would silently put it in the app's zone. A look-back
|
|
390
|
+
* (`last 2 hours`) takes none: it runs until now in every zone.
|
|
391
|
+
*/
|
|
316
392
|
function attachZone(text, atom) {
|
|
317
|
-
if (atom.kind === '
|
|
393
|
+
if (atom.kind === 'span' || atom.kind === 'bare')
|
|
318
394
|
return;
|
|
319
395
|
if (atom.zoneToken !== undefined)
|
|
320
396
|
return;
|
|
321
397
|
const m = ZONE_AFTER.exec(text.slice(atom.end));
|
|
322
|
-
if (m === null)
|
|
398
|
+
if (m === null || m.groups === undefined)
|
|
323
399
|
return;
|
|
324
|
-
const lead = m
|
|
325
|
-
|
|
326
|
-
const closed = m[5] !== undefined;
|
|
327
|
-
if (opened !== closed)
|
|
400
|
+
const { lead, iana, offset, place, abbreviation, close } = m.groups;
|
|
401
|
+
if (lead.includes('(') !== (close !== undefined))
|
|
328
402
|
return;
|
|
329
|
-
// The IANA name, else the offset after `UTC` / `GMT`, else the abbreviation — each verbatim.
|
|
330
|
-
const
|
|
331
|
-
const token = m[2] !== undefined ? whole : m[3] !== undefined ? m[3] : m[4];
|
|
403
|
+
// The IANA name, else the offset after `UTC` / `GMT`, else the place, else the abbreviation — each verbatim.
|
|
404
|
+
const token = iana ?? offset ?? place ?? abbreviation;
|
|
332
405
|
atom.zoneToken = token;
|
|
333
406
|
atom.end += m[0].length;
|
|
334
407
|
}
|
|
@@ -391,7 +464,10 @@ function groupsOf(text, atoms, notRead) {
|
|
|
391
464
|
group.unreadable = true;
|
|
392
465
|
continue;
|
|
393
466
|
}
|
|
394
|
-
|
|
467
|
+
// `between` before the group, or right before its last phrase — the range's first side:
|
|
468
|
+
// `today between 1 pm and 2 pm`, `yesterday between 8 and 9 AM` (a day said first).
|
|
469
|
+
const between = /\bbetween\s+$/i.test(text.slice(0, group.start)) ||
|
|
470
|
+
/\bbetween\s+$/i.test(text.slice(0, last.start));
|
|
395
471
|
const joined = joins(text.slice(group.end, item.start), between, last, item);
|
|
396
472
|
if (joined !== undefined) {
|
|
397
473
|
if (joined === 'range') {
|
|
@@ -436,7 +512,9 @@ function mergeOverlaps(groups) {
|
|
|
436
512
|
function widenForModifiers(text, group) {
|
|
437
513
|
const head = text.slice(0, group.start);
|
|
438
514
|
const clock = group.items.some((i) => i.atom?.wall !== undefined);
|
|
439
|
-
const
|
|
515
|
+
const startsOnWall = group.items[0]?.atom?.kind === 'wall';
|
|
516
|
+
const before = (startsOnWall ? BARE_SIDE_BEFORE.exec(head) : null) ??
|
|
517
|
+
MODIFIER_BEFORE.exec(head) ??
|
|
440
518
|
(group.rangeAt === undefined && clock ? FROM_BEFORE.exec(head) : null);
|
|
441
519
|
if (before !== null) {
|
|
442
520
|
group.start = before.index + before[0].lastIndexOf(before[1]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"english.js","sourceRoot":"","sources":["../../../../../src/core/time/readers/english.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"english.js","sourceRoot":"","sources":["../../../../../src/core/time/readers/english.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,8 +38,12 @@ export interface TimeAsk {
|
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
40
|
* The ask a `time-reading` row needs, or `undefined` when its reading is
|
|
41
|
-
* settled (`only`, `policy`) or
|
|
42
|
-
*
|
|
43
|
-
*
|
|
41
|
+
* settled (`only`, `policy`) or is no person's words (a refused mention).
|
|
42
|
+
* Words the library holds NO reading of (`none`: unreadable, no candidate)
|
|
43
|
+
* are asked too — which time the person meant, free entry, nothing
|
|
44
|
+
* pre-filled (`ask.which`, `format: 'time-range'`): the person wrote a time,
|
|
45
|
+
* and a tool's default never stands in for it. `messages` is the whole
|
|
46
|
+
* catalog (the caller composes the app's overrides over
|
|
47
|
+
* `defaultTimeAskMessages`); `id` names the field.
|
|
44
48
|
*/
|
|
45
49
|
export declare function timeAskOf(row: TimeReadingRow, messages: TimeAskMessages, id?: string): TimeAsk | undefined;
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
import { fillMessage, quoted } from './ask.js';
|
|
24
24
|
import { spellRange } from './range.js';
|
|
25
25
|
import { presentRange } from './present.js';
|
|
26
|
+
import { shownGrain } from './resolveRecord.js';
|
|
26
27
|
/** The zone token the person wrote in the mention's first parse that has one. */
|
|
27
28
|
function saidZoneToken(row) {
|
|
28
29
|
for (const parts of row.parses ?? []) {
|
|
@@ -34,13 +35,25 @@ function saidZoneToken(row) {
|
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
36
37
|
* The ask a `time-reading` row needs, or `undefined` when its reading is
|
|
37
|
-
* settled (`only`, `policy`) or
|
|
38
|
-
*
|
|
39
|
-
*
|
|
38
|
+
* settled (`only`, `policy`) or is no person's words (a refused mention).
|
|
39
|
+
* Words the library holds NO reading of (`none`: unreadable, no candidate)
|
|
40
|
+
* are asked too — which time the person meant, free entry, nothing
|
|
41
|
+
* pre-filled (`ask.which`, `format: 'time-range'`): the person wrote a time,
|
|
42
|
+
* and a tool's default never stands in for it. `messages` is the whole
|
|
43
|
+
* catalog (the caller composes the app's overrides over
|
|
44
|
+
* `defaultTimeAskMessages`); `id` names the field.
|
|
40
45
|
*/
|
|
41
46
|
export function timeAskOf(row, messages, id = 'time') {
|
|
42
47
|
const choice = row.choice;
|
|
43
|
-
if (
|
|
48
|
+
if (row.quote === undefined || row.refused !== undefined)
|
|
49
|
+
return undefined;
|
|
50
|
+
if (choice?.by === 'none') {
|
|
51
|
+
return {
|
|
52
|
+
question: fillMessage(messages['ask.which'], { quote: quoted(row.quote) }),
|
|
53
|
+
field: { id, type: 'string', required: true, format: 'time-range' },
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (choice?.by !== 'open')
|
|
44
57
|
return undefined;
|
|
45
58
|
const quote = quoted(row.quote);
|
|
46
59
|
if (choice.open.includes('zone')) {
|
|
@@ -68,7 +81,9 @@ export function timeAskOf(row, messages, id = 'time') {
|
|
|
68
81
|
// on every reading's open choice); this only reads it.
|
|
69
82
|
const confirm = choice.open.includes('confirm');
|
|
70
83
|
const labels = offered.map(({ candidate }) => {
|
|
71
|
-
|
|
84
|
+
// The end as said when it was widened, a look-back's at now: "8 AM to 9 AM" is shown
|
|
85
|
+
// 8:00 – 9:00, not 8:59; "last 40 minutes" 8:00 – 8:40, not 8:40:00.001.
|
|
86
|
+
const window = presentRange(candidate.range, { zone: candidate.zone, locale: row.reader.locale }, shownGrain(candidate));
|
|
72
87
|
if (!confirm)
|
|
73
88
|
return window;
|
|
74
89
|
// The zone is named: the reading leaned on it, and the person may have meant another.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readingAsk.js","sourceRoot":"","sources":["../../../../src/core/time/readingAsk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAyC,MAAM,UAAU,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"readingAsk.js","sourceRoot":"","sources":["../../../../src/core/time/readingAsk.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,22 +25,31 @@
|
|
|
25
25
|
* | a numeric date of two fields `10/09` | `MDY` and `DMY`, each for the clock's year and the one before |
|
|
26
26
|
* | a date with no year | the clock's year (`current`) and the one before (`previous`) |
|
|
27
27
|
* | a two-digit year `26` | the clock's century, noted `century-implied` |
|
|
28
|
-
* | a clock time with no meridiem, hour 1–12 (`8:40`) | am and pm |
|
|
28
|
+
* | a clock time with no meridiem, hour 1–12 (`8:40`) | am and pm — one when the form is a 24-hour clock (`clock: '24h'`, an ISO instant) |
|
|
29
29
|
* | a wall time the clocks go back through (`01:30`) | both instants, each noted `dst-overlap` |
|
|
30
30
|
* | a wall time the clocks skip (`02:30`) | both readings Temporal names, each noted `dst-gap` |
|
|
31
31
|
* | a day word (`{ day, offset: -1 }`) | the calendar day in the zone, anchored on the clock |
|
|
32
32
|
* | a span (`{ minute, count: 40 }`) | a look-back until the clock's `now` |
|
|
33
|
-
* | a range | one per combination of its sides that agree on date order and
|
|
33
|
+
* | a range | one per combination of its sides that agree on date order, year and abbreviation reading, `from` before `to`; a first side with no meridiem takes the second's (`8 to 9 PM` → 8 PM) unless that runs backwards (`11 to 1 PM` → 11 AM) |
|
|
34
|
+
* | a place named with `time` (`London time`) | the ONE zone the tz database has for it (`zone.ts` · `zoneOfPlace`), noted `zone-read`; none or several → the zone is asked |
|
|
35
|
+
* | an abbreviation in the app's map (`PST`) | its zone's reading AND its literal offset's, when they name different windows — tagged `abbreviation`, noted `zone-read` |
|
|
34
36
|
*
|
|
35
37
|
* The fixed laws: a time is read to the END OF ITS GRAIN ("to 8:40" is
|
|
36
|
-
* `[08:00, 08:41)`,
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
38
|
+
* `[08:00, 08:41)`, a lone "9 AM" is `[09:00, 10:00)`, a day ends at the next
|
|
39
|
+
* midnight — each noted `end-of-grain`) EXCEPT a range end said as an
|
|
40
|
+
* o'clock hour, which is a boundary on the clock face and ends AT that
|
|
41
|
+
* instant ("8 AM to 9 AM" is `[08:00, 09:00)`, no note — `endOf`); whether
|
|
42
|
+
* an end was widened is asked of `widenedGrain`, never of `grain`. A day
|
|
43
|
+
* starts at its first instant (Temporal's `startOfDay`: a midnight the
|
|
44
|
+
* clocks skip starts the day at the first wall time that exists); a zone the
|
|
45
|
+
* person did not say is the clock's; a zone they said is an IANA name, a
|
|
46
|
+
* numeric offset, a place named with `time` that the tz database names
|
|
47
|
+
* exactly once, or an abbreviation in the APP's map (`policy.abbreviations`)
|
|
48
|
+
* — any other token (`PST` with no map, `India time`, `Pacific time`)
|
|
49
|
+
* resolves nothing and is ASKED (`zoneReadsOf`, the one owner). Parts v1
|
|
50
|
+
* does not resolve — a part of the day, a calendar span other than a day, a
|
|
51
|
+
* window anchored on the previous one — are named `unsupported`, never
|
|
52
|
+
* guessed.
|
|
44
53
|
*
|
|
45
54
|
* {@link chooseReading} then applies the app's policy (`dateOrder`, `year`)
|
|
46
55
|
* and names what is left: one window (`only`, or `policy` when the policy
|
|
@@ -70,12 +79,15 @@
|
|
|
70
79
|
import { type ZoneName } from './zone.js';
|
|
71
80
|
import type { TimeParts } from './reader.js';
|
|
72
81
|
import { type MentionResolution, type ReadingChoice, type ResolveClock, type TimePolicy } from './resolveRecord.js';
|
|
73
|
-
export { candidateIsWellFormed, choiceIsWellFormed, DEFAULT_TIME_POLICY, readPolicy, } from './resolveRecord.js';
|
|
74
|
-
export type { MentionResolution, OpenQuestion, ReadingChoice, ReadingTags, ResolveClock, ResolvedWindow, TimeCandidate, TimeNote, TimePart, TimePolicy, TimeWindow, } from './resolveRecord.js';
|
|
82
|
+
export { candidateIsWellFormed, choiceIsWellFormed, DEFAULT_TIME_POLICY, readPolicy, shownGrain, widenedGrain, } from './resolveRecord.js';
|
|
83
|
+
export type { MentionResolution, OpenQuestion, ReadingChoice, ReadingTags, ResolveClock, ResolvedWindow, TimeCandidate, TimeNote, TimePart, TimePolicy, TimeWindow, ZoneAbbreviation, } from './resolveRecord.js';
|
|
84
|
+
/** The policy half the resolver reads: the app's abbreviation map. */
|
|
85
|
+
type ZonePolicy = Pick<TimePolicy, 'abbreviations'>;
|
|
75
86
|
/**
|
|
76
|
-
* The parts with every zone token this layer cannot read (an abbreviation
|
|
77
|
-
*
|
|
78
|
-
* whole mention's and each range side's. A token it
|
|
87
|
+
* The parts with every zone token this layer cannot read (an abbreviation
|
|
88
|
+
* outside the app's map, `India time`) replaced by the zone the PERSON named
|
|
89
|
+
* when asked (§ 6.3) — the whole mention's and each range side's. A token it
|
|
90
|
+
* can read is kept.
|
|
79
91
|
*
|
|
80
92
|
* @example
|
|
81
93
|
* ```ts
|
|
@@ -83,16 +95,18 @@ export type { MentionResolution, OpenQuestion, ReadingChoice, ReadingTags, Resol
|
|
|
83
95
|
* // [{ wall: { h: 8, meridiem: 'am' }, zoneToken: 'America/Los_Angeles' }]
|
|
84
96
|
* ```
|
|
85
97
|
*/
|
|
86
|
-
export declare function withZoneAnswered(parses: readonly TimeParts[], zone: ZoneName): TimeParts[];
|
|
98
|
+
export declare function withZoneAnswered(parses: readonly TimeParts[], zone: ZoneName, policy?: ZonePolicy): TimeParts[];
|
|
87
99
|
/**
|
|
88
100
|
* Every candidate window of one mention's parses, resolved against the
|
|
89
101
|
* clock. A reading the person must confirm (`confirm: true` — every reading
|
|
90
102
|
* the record files, TQ29; a `model` reader's by default) carries `said: []`.
|
|
103
|
+
* `policy` is read for its abbreviation map only (`dateOrder` and `year`
|
|
104
|
+
* are {@link chooseReading}'s): absent, no abbreviation names a zone.
|
|
91
105
|
*/
|
|
92
106
|
export declare function resolveMention(parses: readonly TimeParts[], clock: ResolveClock, reader: {
|
|
93
107
|
readonly id: string;
|
|
94
108
|
readonly kind: 'rule' | 'model';
|
|
95
|
-
}, confirm?: boolean): MentionResolution;
|
|
109
|
+
}, confirm?: boolean, policy?: ZonePolicy): MentionResolution;
|
|
96
110
|
/**
|
|
97
111
|
* How one mention settles under the app's policy (§ 5.1, § 11). The policy
|
|
98
112
|
* only removes readings; it never adds one. A DST choice, a meridiem, a
|