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
|
@@ -23,9 +23,11 @@
|
|
|
23
23
|
* // { now: '2026-10-09T15:40:00Z', windows: [{ source: 'answered', quote: 'yesterday', … }] }
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
+
import type { WindowToConvert } from './convert.js';
|
|
26
27
|
import type { DurationText } from './duration.js';
|
|
27
28
|
import type { InstantText } from './instant.js';
|
|
28
29
|
import { type TimeRange } from './range.js';
|
|
30
|
+
import type { TimeRefusal } from './periodForm.js';
|
|
29
31
|
import { type ClockRow, type TimeAnswerRow, type TimeReadingRow } from './rows.js';
|
|
30
32
|
import type { ZoneName } from './zone.js';
|
|
31
33
|
/**
|
|
@@ -57,26 +59,69 @@ export interface TurnWindows {
|
|
|
57
59
|
/** Every mention with a quote, plus the `control` window — the "exactly one" count. */
|
|
58
60
|
readonly mentions: number;
|
|
59
61
|
/**
|
|
60
|
-
* Per mention still OPEN
|
|
61
|
-
* readings left — what a tool's facts can already rule out
|
|
62
|
-
* reading outside a tool's `direction` → nothing is asked, the
|
|
63
|
-
* refused).
|
|
62
|
+
* Per mention still OPEN for the person (they have not answered it), the
|
|
63
|
+
* ranges of the readings left — what a tool's facts can already rule out
|
|
64
|
+
* (§ 6.3: every reading outside a tool's `direction` → nothing is asked, the
|
|
65
|
+
* call is refused). EMPTY for a mention the library holds no reading of yet
|
|
66
|
+
* — a zone to name first (`open` on `zone`), or words it could not read
|
|
67
|
+
* (`by: 'none'`): nothing to rule out, and the person is still asked
|
|
68
|
+
* (`isOpenForPerson`). Absent when no mention is open.
|
|
64
69
|
*/
|
|
65
70
|
readonly open?: readonly (readonly TimeRange[])[];
|
|
66
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* The look-back the library OFFERED for a reading, when the person's answer is
|
|
74
|
+
* exactly it (`last 2 hours` confirmed as offered) — the window then stays a
|
|
75
|
+
* look-back from now. `undefined` for any other answer (an edit, a range).
|
|
76
|
+
*/
|
|
77
|
+
export declare function offeredLookback(row: TimeReadingRow | undefined, range: TimeRange): DurationText | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* What a turn window hands the conversion — its range and, when it was said
|
|
80
|
+
* (and answered) as a look-back, that look-back. THE one input every door
|
|
81
|
+
* that writes a window into a tool's arguments builds (the fill, the time
|
|
82
|
+
* ask's answer, the served line), so the value served to the model and the
|
|
83
|
+
* value the tool is handed are one spelling (time follow-ups, packet "gaps":
|
|
84
|
+
* the served line spelled `15:59:59Z` where the ask's fill handed `16:00:00Z`).
|
|
85
|
+
*/
|
|
86
|
+
export declare function windowToConvert(window: {
|
|
87
|
+
readonly range: TimeRange;
|
|
88
|
+
readonly lookback?: DurationText;
|
|
89
|
+
}): WindowToConvert;
|
|
90
|
+
/**
|
|
91
|
+
* Whether a mention the person has not answered still waits on THEM — the
|
|
92
|
+
* one owner of "a time the person wrote that the library holds no settled
|
|
93
|
+
* window for" (the lazy ask, the served line's pending half and the window
|
|
94
|
+
* plan all ask it): a reading still `open` (readings to confirm, a zone to
|
|
95
|
+
* name), and words the library holds NO reading of (`by: 'none'` — words the
|
|
96
|
+
* reader could not read, or no candidate). The person said a time either way,
|
|
97
|
+
* so a tool's default never stands in for it (time follow-ups, packet "gaps":
|
|
98
|
+
* an unreadable phrase to a tool whose rule assumed its period ran that
|
|
99
|
+
* default silently). A `model` reading's one window is not open: it fills as
|
|
100
|
+
* a reading. A refused mention (its quote was not in the text) is not the
|
|
101
|
+
* person's words.
|
|
102
|
+
*/
|
|
103
|
+
export declare function isOpenForPerson(row: TimeReadingRow): boolean;
|
|
67
104
|
/**
|
|
68
105
|
* This turn's windows, read from the record: per mention, the window the
|
|
69
106
|
* person settled in the time ask (`answered`, its latest `time-answer` row),
|
|
70
107
|
* else a `model` reader's one window waiting for confirmation
|
|
71
108
|
* (`derived-from-reading`); and the clock's `control` window. A `rule`
|
|
72
|
-
* reading the person has not answered
|
|
109
|
+
* reading the person has not answered, and words the library could not read,
|
|
110
|
+
* are counted and are OPEN ({@link isOpenForPerson}).
|
|
73
111
|
*/
|
|
74
112
|
export declare function turnWindowsOf(readings: readonly TimeReadingRow[], clock: ClockRow | undefined, answers?: readonly TimeAnswerRow[]): TurnWindows;
|
|
75
113
|
/** The windows of the person's words this turn, with the turn's clock — what the served sentence names. */
|
|
76
114
|
export interface ReaderWindows {
|
|
77
115
|
readonly now: InstantText;
|
|
78
|
-
/** Each settled mention's window (`answered`, or a `model`
|
|
116
|
+
/** Each settled mention's window (`answered`, or a `model` reader's), in mention order — never the `control` window. */
|
|
79
117
|
readonly windows: readonly TurnWindow[];
|
|
118
|
+
/**
|
|
119
|
+
* The window the person set in the app's time control this turn (the run's
|
|
120
|
+
* `time.window`, recorded on the `clock` row, `source: 'control'`) — served
|
|
121
|
+
* on its own sentence, so an app never writes its own prompt text for it.
|
|
122
|
+
* Absent when the run set none.
|
|
123
|
+
*/
|
|
124
|
+
readonly control?: TurnWindow;
|
|
80
125
|
/**
|
|
81
126
|
* The quote of each mention the library holds only as a PROPOSAL — a `rule`
|
|
82
127
|
* reading the person has not answered yet (its choice still `open`: a zone
|
|
@@ -86,6 +131,21 @@ export interface ReaderWindows {
|
|
|
86
131
|
* `bench/time/`). Absent when none is pending.
|
|
87
132
|
*/
|
|
88
133
|
readonly pending?: readonly string[];
|
|
134
|
+
/**
|
|
135
|
+
* The quotes in `pending` the library holds NO reading of yet: the words
|
|
136
|
+
* name a zone it cannot resolve (an abbreviation outside the app's map), so
|
|
137
|
+
* the time ask asks for the zone and pre-fills nothing (the choice `open`
|
|
138
|
+
* on `zone`, no candidates). The served line says so instead of promising a
|
|
139
|
+
* form that shows a reading (T6b paid run: `field-pst`). Absent when none.
|
|
140
|
+
*/
|
|
141
|
+
readonly pendingZones?: readonly string[];
|
|
142
|
+
/**
|
|
143
|
+
* The quotes in `pending` the library could not READ at all (`by: 'none'`:
|
|
144
|
+
* words outside the reader's set, or no candidate): the time ask asks the
|
|
145
|
+
* person which time they meant, with nothing pre-filled. The served line
|
|
146
|
+
* says so instead of promising a reading. Absent when none.
|
|
147
|
+
*/
|
|
148
|
+
readonly pendingUnread?: readonly string[];
|
|
89
149
|
/**
|
|
90
150
|
* A mention is pending AND a call of this turn already ran on a window the
|
|
91
151
|
* model wrote into it (a `call-window` row `how: 'model'` — § 7.3: it runs
|
|
@@ -94,20 +154,41 @@ export interface ReaderWindows {
|
|
|
94
154
|
* otherwise.
|
|
95
155
|
*/
|
|
96
156
|
readonly ranUnconfirmed?: true;
|
|
157
|
+
/**
|
|
158
|
+
* The person's windows a tool REFUSED this turn, before dispatch (a
|
|
159
|
+
* `call-window` row `how: 'refused'`): the quote, the tool and the reason
|
|
160
|
+
* code — a window of the person's the call carried (`person.mention`), or
|
|
161
|
+
* the turn's one open reading, refused in every reading (a row with no
|
|
162
|
+
* range). The served line turns each into the conclusion an answer states,
|
|
163
|
+
* so a refused window is never asked for again as though a call could read
|
|
164
|
+
* it. A window the model wrote is not the person's and is not named. Absent
|
|
165
|
+
* when none was refused.
|
|
166
|
+
*/
|
|
167
|
+
readonly refused?: readonly RefusedWindow[];
|
|
168
|
+
}
|
|
169
|
+
/** One window of the person's a tool refused before dispatch — what the served line concludes. */
|
|
170
|
+
export interface RefusedWindow {
|
|
171
|
+
readonly quote: string;
|
|
172
|
+
readonly toolName: string;
|
|
173
|
+
readonly refused: TimeRefusal;
|
|
174
|
+
/** On a `dst-gap`: the argument whose wall time the zone skips. */
|
|
175
|
+
readonly argument?: string;
|
|
97
176
|
}
|
|
98
177
|
/**
|
|
99
|
-
* The quotes of this turn's mentions still waiting on the person
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
178
|
+
* The quotes of this turn's mentions still waiting on the person
|
|
179
|
+
* ({@link isOpenForPerson}), not answered in the time ask: a reading to
|
|
180
|
+
* confirm, a zone to name, or words the library could not read (asked with
|
|
181
|
+
* nothing pre-filled). A `model` reading's one window is served as a reading;
|
|
182
|
+
* a refused mention is not the person's words.
|
|
103
183
|
*/
|
|
104
184
|
export declare function pendingQuotesOf(readings: readonly TimeReadingRow[], answers?: readonly TimeAnswerRow[]): readonly string[];
|
|
105
185
|
/**
|
|
106
186
|
* The latest turn's windows of the person's words, read off the ledger (its
|
|
107
187
|
* last `clock` row and that turn's `time-reading` and `time-answer` rows) —
|
|
108
|
-
* `undefined` when the turn has no clock, no settled mention
|
|
109
|
-
*
|
|
110
|
-
* answered it in the time ask; before that its quote is
|
|
111
|
-
* `control` window is
|
|
188
|
+
* `undefined` when the turn has no clock, no settled mention, none pending
|
|
189
|
+
* and no `control` window. A `rule` reading is named as a window only once
|
|
190
|
+
* the person answered it in the time ask; before that its quote is
|
|
191
|
+
* `pending`. The `control` window is no reading: it rides `control`, never
|
|
192
|
+
* `windows`.
|
|
112
193
|
*/
|
|
113
194
|
export declare function readerWindowsOf(ledger: readonly unknown[] | undefined): ReaderWindows | undefined;
|
|
@@ -40,12 +40,57 @@ function readingCandidate(row) {
|
|
|
40
40
|
return undefined;
|
|
41
41
|
return row.candidates?.[choice.remaining[0]];
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* The look-back the library OFFERED for a reading, when the person's answer is
|
|
45
|
+
* exactly it (`last 2 hours` confirmed as offered) — the window then stays a
|
|
46
|
+
* look-back from now. `undefined` for any other answer (an edit, a range).
|
|
47
|
+
*/
|
|
48
|
+
export function offeredLookback(row, range) {
|
|
49
|
+
const offered = row?.candidates?.find((c) => c.window.kind === 'lookback' && sameRange(c.range, range))?.window;
|
|
50
|
+
return offered?.kind === 'lookback' ? offered.duration : undefined;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* What a turn window hands the conversion — its range and, when it was said
|
|
54
|
+
* (and answered) as a look-back, that look-back. THE one input every door
|
|
55
|
+
* that writes a window into a tool's arguments builds (the fill, the time
|
|
56
|
+
* ask's answer, the served line), so the value served to the model and the
|
|
57
|
+
* value the tool is handed are one spelling (time follow-ups, packet "gaps":
|
|
58
|
+
* the served line spelled `15:59:59Z` where the ask's fill handed `16:00:00Z`).
|
|
59
|
+
*/
|
|
60
|
+
export function windowToConvert(window) {
|
|
61
|
+
return {
|
|
62
|
+
range: window.range,
|
|
63
|
+
...(window.lookback !== undefined && { lookback: window.lookback }),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Whether a mention the person has not answered still waits on THEM — the
|
|
68
|
+
* one owner of "a time the person wrote that the library holds no settled
|
|
69
|
+
* window for" (the lazy ask, the served line's pending half and the window
|
|
70
|
+
* plan all ask it): a reading still `open` (readings to confirm, a zone to
|
|
71
|
+
* name), and words the library holds NO reading of (`by: 'none'` — words the
|
|
72
|
+
* reader could not read, or no candidate). The person said a time either way,
|
|
73
|
+
* so a tool's default never stands in for it (time follow-ups, packet "gaps":
|
|
74
|
+
* an unreadable phrase to a tool whose rule assumed its period ran that
|
|
75
|
+
* default silently). A `model` reading's one window is not open: it fills as
|
|
76
|
+
* a reading. A refused mention (its quote was not in the text) is not the
|
|
77
|
+
* person's words.
|
|
78
|
+
*/
|
|
79
|
+
export function isOpenForPerson(row) {
|
|
80
|
+
if (row.mentions === 0 || row.refused !== undefined || row.quote === undefined)
|
|
81
|
+
return false;
|
|
82
|
+
const by = row.choice?.by;
|
|
83
|
+
if (by !== 'open' && by !== 'none')
|
|
84
|
+
return false;
|
|
85
|
+
return readingCandidate(row) === undefined;
|
|
86
|
+
}
|
|
43
87
|
/**
|
|
44
88
|
* This turn's windows, read from the record: per mention, the window the
|
|
45
89
|
* person settled in the time ask (`answered`, its latest `time-answer` row),
|
|
46
90
|
* else a `model` reader's one window waiting for confirmation
|
|
47
91
|
* (`derived-from-reading`); and the clock's `control` window. A `rule`
|
|
48
|
-
* reading the person has not answered
|
|
92
|
+
* reading the person has not answered, and words the library could not read,
|
|
93
|
+
* are counted and are OPEN ({@link isOpenForPerson}).
|
|
49
94
|
*/
|
|
50
95
|
export function turnWindowsOf(readings, clock, answers = []) {
|
|
51
96
|
const windows = [];
|
|
@@ -60,13 +105,13 @@ export function turnWindowsOf(readings, clock, answers = []) {
|
|
|
60
105
|
if (answer !== undefined) {
|
|
61
106
|
const range = { from: answer.from, to: answer.to };
|
|
62
107
|
// The person picked a look-back the library offered: it stays a look-back from now.
|
|
63
|
-
const
|
|
108
|
+
const lookback = offeredLookback(row, range);
|
|
64
109
|
windows.push({
|
|
65
110
|
source: 'answered',
|
|
66
111
|
mention: answer.mention,
|
|
67
112
|
quote: row.quote,
|
|
68
113
|
range,
|
|
69
|
-
...(
|
|
114
|
+
...(lookback !== undefined && { lookback }),
|
|
70
115
|
zone: answer.zone,
|
|
71
116
|
answer: answer.how,
|
|
72
117
|
});
|
|
@@ -81,7 +126,9 @@ export function turnWindowsOf(readings, clock, answers = []) {
|
|
|
81
126
|
return c === undefined ? [] : [c.range];
|
|
82
127
|
})
|
|
83
128
|
: [];
|
|
84
|
-
|
|
129
|
+
// Open with no reading yet (a zone to name, words not read) is still open: nothing to rule
|
|
130
|
+
// out, and the person is asked — never left to the tool's own rule.
|
|
131
|
+
if (left.length > 0 || isOpenForPerson(row))
|
|
85
132
|
open.push(left);
|
|
86
133
|
continue;
|
|
87
134
|
}
|
|
@@ -116,34 +163,82 @@ function ranOnSentWindow(ledger, turn) {
|
|
|
116
163
|
});
|
|
117
164
|
}
|
|
118
165
|
/**
|
|
119
|
-
* The
|
|
120
|
-
*
|
|
121
|
-
* `
|
|
122
|
-
*
|
|
166
|
+
* The person's windows the tools refused this turn (`ReaderWindows.refused`):
|
|
167
|
+
* each `call-window` row `how: 'refused'` whose window was the person's — its
|
|
168
|
+
* `person.mention`'s quote — or, with no range at all, the turn's one open
|
|
169
|
+
* reading (`openQuote`), refused in every reading. Once per (quote, tool).
|
|
170
|
+
*/
|
|
171
|
+
function refusedWindowsOf(ledger, turn, readings, openQuote) {
|
|
172
|
+
const quoteOf = new Map(readings.flatMap((r) => r.quote !== undefined && r.refused === undefined ? [[r.mention ?? 0, r.quote]] : []));
|
|
173
|
+
const out = [];
|
|
174
|
+
for (const row of ledger ?? []) {
|
|
175
|
+
const r = row;
|
|
176
|
+
if (r === null || typeof r !== 'object' || r.kind !== 'call-window' || r.turn !== turn)
|
|
177
|
+
continue;
|
|
178
|
+
if (r.how !== 'refused' || r.refused === undefined || typeof r.toolName !== 'string')
|
|
179
|
+
continue;
|
|
180
|
+
const quote = r.person !== undefined
|
|
181
|
+
? r.person.mention === undefined
|
|
182
|
+
? undefined
|
|
183
|
+
: quoteOf.get(r.person.mention)
|
|
184
|
+
: r.asked === undefined && r.form === undefined
|
|
185
|
+
? openQuote
|
|
186
|
+
: undefined;
|
|
187
|
+
if (quote === undefined)
|
|
188
|
+
continue;
|
|
189
|
+
if (out.some((w) => w.quote === quote && w.toolName === r.toolName))
|
|
190
|
+
continue;
|
|
191
|
+
out.push({
|
|
192
|
+
quote,
|
|
193
|
+
toolName: r.toolName,
|
|
194
|
+
refused: r.refused,
|
|
195
|
+
...(r.argument !== undefined && { argument: r.argument }),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return out;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The quotes of this turn's mentions still waiting on the person
|
|
202
|
+
* ({@link isOpenForPerson}), not answered in the time ask: a reading to
|
|
203
|
+
* confirm, a zone to name, or words the library could not read (asked with
|
|
204
|
+
* nothing pre-filled). A `model` reading's one window is served as a reading;
|
|
205
|
+
* a refused mention is not the person's words.
|
|
123
206
|
*/
|
|
124
207
|
export function pendingQuotesOf(readings, answers = []) {
|
|
125
208
|
const answered = new Set(answers.map((a) => a.mention));
|
|
126
209
|
const quotes = [];
|
|
127
210
|
for (const row of readings) {
|
|
128
|
-
if (row
|
|
129
|
-
continue;
|
|
130
|
-
if (row.choice?.by !== 'open')
|
|
211
|
+
if (!isOpenForPerson(row))
|
|
131
212
|
continue;
|
|
132
213
|
if (row.mention !== undefined && answered.has(row.mention))
|
|
133
214
|
continue;
|
|
134
|
-
if (readingCandidate(row) !== undefined)
|
|
135
|
-
continue;
|
|
136
215
|
quotes.push(row.quote);
|
|
137
216
|
}
|
|
138
217
|
return quotes;
|
|
139
218
|
}
|
|
219
|
+
/** The quotes among `pending` the library could not read at all (`ReaderWindows.pendingUnread`). */
|
|
220
|
+
function pendingUnreadOf(readings, pending) {
|
|
221
|
+
return pending.filter((quote) => readings.some((r) => r.quote === quote && r.choice?.by === 'none'));
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* The quotes among `pending` whose reading offers nothing to confirm yet —
|
|
225
|
+
* no candidate, the choice open on the zone the words name
|
|
226
|
+
* (`ReaderWindows.pendingZones`).
|
|
227
|
+
*/
|
|
228
|
+
function pendingZonesOf(readings, pending) {
|
|
229
|
+
return pending.filter((quote) => readings.some((r) => r.quote === quote &&
|
|
230
|
+
(r.candidates ?? []).length === 0 &&
|
|
231
|
+
r.choice?.by === 'open' &&
|
|
232
|
+
r.choice.open.includes('zone')));
|
|
233
|
+
}
|
|
140
234
|
/**
|
|
141
235
|
* The latest turn's windows of the person's words, read off the ledger (its
|
|
142
236
|
* last `clock` row and that turn's `time-reading` and `time-answer` rows) —
|
|
143
|
-
* `undefined` when the turn has no clock, no settled mention
|
|
144
|
-
*
|
|
145
|
-
* answered it in the time ask; before that its quote is
|
|
146
|
-
* `control` window is
|
|
237
|
+
* `undefined` when the turn has no clock, no settled mention, none pending
|
|
238
|
+
* and no `control` window. A `rule` reading is named as a window only once
|
|
239
|
+
* the person answered it in the time ask; before that its quote is
|
|
240
|
+
* `pending`. The `control` window is no reading: it rides `control`, never
|
|
241
|
+
* `windows`.
|
|
147
242
|
*/
|
|
148
243
|
export function readerWindowsOf(ledger) {
|
|
149
244
|
const clock = clockOf(ledger);
|
|
@@ -154,13 +249,27 @@ export function readerWindowsOf(ledger) {
|
|
|
154
249
|
const answers = answersOf(ledger, turn);
|
|
155
250
|
const { windows } = turnWindowsOf(readings, undefined, answers);
|
|
156
251
|
const pending = pendingQuotesOf(readings, answers);
|
|
157
|
-
|
|
252
|
+
const control = clock.window === undefined
|
|
253
|
+
? undefined
|
|
254
|
+
: {
|
|
255
|
+
source: 'control',
|
|
256
|
+
range: { from: clock.window.from, to: clock.window.to },
|
|
257
|
+
zone: clock.zone,
|
|
258
|
+
};
|
|
259
|
+
if (windows.length === 0 && pending.length === 0 && control === undefined)
|
|
158
260
|
return undefined;
|
|
261
|
+
const zones = pendingZonesOf(readings, pending);
|
|
262
|
+
const unread = pendingUnreadOf(readings, pending);
|
|
263
|
+
const refused = refusedWindowsOf(ledger, turn, readings, pending.length === 1 ? pending[0] : undefined);
|
|
159
264
|
return {
|
|
160
265
|
now: clock.now,
|
|
161
266
|
windows,
|
|
267
|
+
...(control !== undefined && { control }),
|
|
162
268
|
...(pending.length > 0 && { pending }),
|
|
269
|
+
...(zones.length > 0 && { pendingZones: zones }),
|
|
270
|
+
...(unread.length > 0 && { pendingUnread: unread }),
|
|
163
271
|
...(pending.length > 0 && ranOnSentWindow(ledger, turn) && { ranUnconfirmed: true }),
|
|
272
|
+
...(refused.length > 0 && { refused }),
|
|
164
273
|
};
|
|
165
274
|
}
|
|
166
275
|
//# sourceMappingURL=windows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../../../src/core/time/windows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../../../src/core/time/windows.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,3 +113,35 @@ export declare function wallToInstant(wall: WallTime, zone: ZoneName, disambigua
|
|
|
113
113
|
* between releases, so a reading is re-derivable only with it.
|
|
114
114
|
*/
|
|
115
115
|
export declare function tzdataVersion(): string;
|
|
116
|
+
/**
|
|
117
|
+
* The ONE zone a place name names in this runtime's tz database, or
|
|
118
|
+
* `undefined` when it names none or more than one. `London` → `Europe/London`,
|
|
119
|
+
* `New York` → `America/New_York`; `India`, `Pacific`, `Eastern` → `undefined`
|
|
120
|
+
* (no zone ends in them — a region is not a place). Looked up two ways, both
|
|
121
|
+
* the tz database's own data: the zones whose last segment is the place, and
|
|
122
|
+
* `Area/Place` under each geographic area (which admits a renamed city's link,
|
|
123
|
+
* `Kyiv`). Every hit is compared by its canonical name, so a link and its
|
|
124
|
+
* target are one zone. Memoised; the runtime's database does not change.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```ts
|
|
128
|
+
* zoneOfPlace('London'); // 'Europe/London'
|
|
129
|
+
* zoneOfPlace('New York'); // 'America/New_York'
|
|
130
|
+
* zoneOfPlace('India'); // undefined — asked, never guessed
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export declare function zoneOfPlace(place: string): ZoneName | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* The IANA zone that is a fixed offset, for a whole-hour offset the tz
|
|
136
|
+
* database names (`Etc/GMT+8` is −08:00 — POSIX signs, inverted), else
|
|
137
|
+
* `undefined`. How a window read at a literal offset, or typed with one no
|
|
138
|
+
* other zone shows, names its zone without claiming a place's.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* fixedOffsetZone(-480); // 'Etc/GMT+8'
|
|
143
|
+
* fixedOffsetZone(0); // 'UTC'
|
|
144
|
+
* fixedOffsetZone(330); // undefined — no Etc zone for +05:30
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
export declare function fixedOffsetZone(minutes: number): ZoneName | undefined;
|
|
@@ -239,4 +239,106 @@ export function tzdataVersion() {
|
|
|
239
239
|
const tz = versions?.tz;
|
|
240
240
|
return typeof tz === 'string' && tz.length > 0 && tz.length <= 32 ? tz : 'unknown';
|
|
241
241
|
}
|
|
242
|
+
// ─── Zones named in words (data from the tz database, never a word list) ─
|
|
243
|
+
/** The areas a place's zone is looked up under (`Etc` and the legacy `US/…` links are not places). */
|
|
244
|
+
const PLACE_AREAS = [
|
|
245
|
+
'Africa',
|
|
246
|
+
'America',
|
|
247
|
+
'Antarctica',
|
|
248
|
+
'Asia',
|
|
249
|
+
'Atlantic',
|
|
250
|
+
'Australia',
|
|
251
|
+
'Europe',
|
|
252
|
+
'Indian',
|
|
253
|
+
'Pacific',
|
|
254
|
+
];
|
|
255
|
+
const PLACE_KEY = /^[A-Za-z][A-Za-z'.-]*(?:_[A-Za-z][A-Za-z'.-]*){0,3}$/;
|
|
256
|
+
const placeMemo = new Map();
|
|
257
|
+
let placeIndex;
|
|
258
|
+
/** Last segment (lower case) → the runtime's zones that end in it, from `Intl.supportedValuesOf`. */
|
|
259
|
+
function placeIndexOf() {
|
|
260
|
+
if (placeIndex !== undefined)
|
|
261
|
+
return placeIndex;
|
|
262
|
+
const index = new Map();
|
|
263
|
+
const supported = Intl.supportedValuesOf;
|
|
264
|
+
let names = [];
|
|
265
|
+
try {
|
|
266
|
+
names = typeof supported === 'function' ? supported('timeZone') : [];
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
names = [];
|
|
270
|
+
}
|
|
271
|
+
for (const name of names) {
|
|
272
|
+
const area = name.slice(0, name.indexOf('/'));
|
|
273
|
+
if (!PLACE_AREAS.includes(area))
|
|
274
|
+
continue;
|
|
275
|
+
const last = name.slice(name.lastIndexOf('/') + 1).toLowerCase();
|
|
276
|
+
index.set(last, [...(index.get(last) ?? []), name]);
|
|
277
|
+
}
|
|
278
|
+
placeIndex = index;
|
|
279
|
+
return index;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* The ONE zone a place name names in this runtime's tz database, or
|
|
283
|
+
* `undefined` when it names none or more than one. `London` → `Europe/London`,
|
|
284
|
+
* `New York` → `America/New_York`; `India`, `Pacific`, `Eastern` → `undefined`
|
|
285
|
+
* (no zone ends in them — a region is not a place). Looked up two ways, both
|
|
286
|
+
* the tz database's own data: the zones whose last segment is the place, and
|
|
287
|
+
* `Area/Place` under each geographic area (which admits a renamed city's link,
|
|
288
|
+
* `Kyiv`). Every hit is compared by its canonical name, so a link and its
|
|
289
|
+
* target are one zone. Memoised; the runtime's database does not change.
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```ts
|
|
293
|
+
* zoneOfPlace('London'); // 'Europe/London'
|
|
294
|
+
* zoneOfPlace('New York'); // 'America/New_York'
|
|
295
|
+
* zoneOfPlace('India'); // undefined — asked, never guessed
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
export function zoneOfPlace(place) {
|
|
299
|
+
const key = place.trim().replace(/\s+/g, '_');
|
|
300
|
+
if (key.length > 32 || !PLACE_KEY.test(key))
|
|
301
|
+
return undefined;
|
|
302
|
+
const memo = placeMemo.get(key.toLowerCase());
|
|
303
|
+
if (memo !== undefined)
|
|
304
|
+
return memo ?? undefined;
|
|
305
|
+
const found = new Set();
|
|
306
|
+
for (const name of placeIndexOf().get(key.toLowerCase()) ?? []) {
|
|
307
|
+
found.add(canonicalZone(name) ?? name);
|
|
308
|
+
}
|
|
309
|
+
for (const area of PLACE_AREAS) {
|
|
310
|
+
const name = canonicalZone(`${area}/${key}`);
|
|
311
|
+
if (name !== undefined)
|
|
312
|
+
found.add(name);
|
|
313
|
+
}
|
|
314
|
+
const zone = found.size === 1 ? [...found][0] : undefined;
|
|
315
|
+
if (placeMemo.size >= MAX_CACHED)
|
|
316
|
+
placeMemo.clear();
|
|
317
|
+
placeMemo.set(key.toLowerCase(), zone ?? null);
|
|
318
|
+
return zone;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* The IANA zone that is a fixed offset, for a whole-hour offset the tz
|
|
322
|
+
* database names (`Etc/GMT+8` is −08:00 — POSIX signs, inverted), else
|
|
323
|
+
* `undefined`. How a window read at a literal offset, or typed with one no
|
|
324
|
+
* other zone shows, names its zone without claiming a place's.
|
|
325
|
+
*
|
|
326
|
+
* @example
|
|
327
|
+
* ```ts
|
|
328
|
+
* fixedOffsetZone(-480); // 'Etc/GMT+8'
|
|
329
|
+
* fixedOffsetZone(0); // 'UTC'
|
|
330
|
+
* fixedOffsetZone(330); // undefined — no Etc zone for +05:30
|
|
331
|
+
* ```
|
|
332
|
+
*/
|
|
333
|
+
export function fixedOffsetZone(minutes) {
|
|
334
|
+
if (minutes === 0)
|
|
335
|
+
return 'UTC';
|
|
336
|
+
if (!Number.isInteger(minutes) || minutes % 60 !== 0)
|
|
337
|
+
return undefined;
|
|
338
|
+
const hours = minutes / 60;
|
|
339
|
+
if (hours < -12 || hours > 14)
|
|
340
|
+
return undefined;
|
|
341
|
+
const name = `Etc/GMT${hours < 0 ? '+' : '-'}${Math.abs(hours)}`;
|
|
342
|
+
return isZoneName(name) ? name : undefined;
|
|
343
|
+
}
|
|
242
344
|
//# sourceMappingURL=zone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../../src/core/time/zone.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../../src/core/time/zone.ts"],"names":[],"mappings":"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"}
|