@genesislcap/ai-assistant 15.25.1 → 15.27.0-agent-log-submit.3
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/dist/ai-assistant.api.json +1014 -110
- package/dist/ai-assistant.d.ts +236 -99
- package/dist/chat-driver.cjs +460 -373
- package/dist/chat-driver.cjs.map +4 -4
- package/dist/chat-driver.mjs +460 -373
- package/dist/chat-driver.mjs.map +4 -4
- package/dist/custom-elements.json +1171 -248
- package/dist/dts/components/chat-driver/chat-driver.d.ts +28 -200
- package/dist/dts/components/chat-driver/chat-driver.d.ts.map +1 -1
- package/dist/dts/components/chat-driver/interaction-controller.d.ts +99 -0
- package/dist/dts/components/chat-driver/interaction-controller.d.ts.map +1 -0
- package/dist/dts/components/chat-driver/turn-recorder.d.ts +191 -0
- package/dist/dts/components/chat-driver/turn-recorder.d.ts.map +1 -0
- package/dist/dts/components/settings-modal/settings-modal.d.ts.map +1 -1
- package/dist/dts/components/settings-modal/settings-modal.styles.d.ts.map +1 -1
- package/dist/dts/components/settings-modal/settings-modal.template.d.ts +28 -0
- package/dist/dts/components/settings-modal/settings-modal.template.d.ts.map +1 -1
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/main/main.d.ts +180 -1
- package/dist/dts/main/main.d.ts.map +1 -1
- package/dist/dts/main/main.styles.d.ts.map +1 -1
- package/dist/dts/main/main.template.d.ts +19 -0
- package/dist/dts/main/main.template.d.ts.map +1 -1
- package/dist/dts/state/ai-assistant-slice.d.ts +7 -1
- package/dist/dts/state/ai-assistant-slice.d.ts.map +1 -1
- package/dist/dts/state/persistence/session-persistence-provider.d.ts +5 -0
- package/dist/dts/state/persistence/session-persistence-provider.d.ts.map +1 -1
- package/dist/dts/state/session-store.d.ts +1 -0
- package/dist/dts/state/session-store.d.ts.map +1 -1
- package/dist/dts/utils/format-message-timestamp.d.ts +77 -0
- package/dist/dts/utils/format-message-timestamp.d.ts.map +1 -0
- package/dist/dts/utils/resolve-debug-log-note.d.ts +25 -0
- package/dist/dts/utils/resolve-debug-log-note.d.ts.map +1 -0
- package/dist/dts/utils/resolve-preference-baseline.d.ts +18 -1
- package/dist/dts/utils/resolve-preference-baseline.d.ts.map +1 -1
- package/dist/esm/components/chat-driver/chat-driver.js +68 -404
- package/dist/esm/components/chat-driver/interaction-controller.js +235 -0
- package/dist/esm/components/chat-driver/turn-recorder.js +206 -0
- package/dist/esm/components/settings-modal/settings-modal.js +1 -0
- package/dist/esm/components/settings-modal/settings-modal.styles.js +85 -5
- package/dist/esm/components/settings-modal/settings-modal.template.js +220 -25
- package/dist/esm/main/main.js +510 -23
- package/dist/esm/main/main.styles.js +75 -0
- package/dist/esm/main/main.template.js +43 -2
- package/dist/esm/state/ai-assistant-slice.js +5 -0
- package/dist/esm/utils/format-message-timestamp.js +126 -0
- package/dist/esm/utils/resolve-debug-log-note.js +37 -0
- package/dist/esm/utils/resolve-preference-baseline.js +54 -2
- package/package.json +16 -16
- package/sandbox/README.md +45 -2
- package/sandbox/sandbox.ts +95 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AggregateUsage, AIProviderRegistryStatusEntry, AIProviderType, ChatInputDuringExecutionMode, ChatMessage } from '@genesislcap/foundation-ai';
|
|
1
|
+
import type { AggregateUsage, AIProviderRegistryStatusEntry, AIProviderType, ChatInputDuringExecutionMode, ChatMessage, TimestampDisplay } from '@genesislcap/foundation-ai';
|
|
2
2
|
import type { PayloadAction } from '@genesislcap/foundation-redux';
|
|
3
3
|
import type { AgentConfig } from '../config/config';
|
|
4
4
|
import type { AiAssistantAnimation, AiAssistantState, SuggestionsState } from '../main/main.types';
|
|
@@ -45,6 +45,11 @@ export interface AiAssistantSessionState {
|
|
|
45
45
|
showThinkingSteps: boolean;
|
|
46
46
|
showNarration: boolean;
|
|
47
47
|
showAgentSwitchIndicator: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* When each message shows its timestamp. Unlike the `show*` booleans beside it this
|
|
50
|
+
* defaults ON (`'hover'`), so an absent stored preference must not read as "off".
|
|
51
|
+
*/
|
|
52
|
+
timestampDisplay: TimestampDisplay;
|
|
48
53
|
enabledAnimations: AiAssistantAnimation[];
|
|
49
54
|
suggestionsState: SuggestionsState;
|
|
50
55
|
contextTokens: number | undefined;
|
|
@@ -247,6 +252,7 @@ export declare const aiAssistantSlice: import("@reduxjs/toolkit").Slice<AiAssist
|
|
|
247
252
|
setShowThinkingSteps(state: import("immer").WritableDraft<AiAssistantSessionState>, action: PayloadAction<boolean>): void;
|
|
248
253
|
setShowNarration(state: import("immer").WritableDraft<AiAssistantSessionState>, action: PayloadAction<boolean>): void;
|
|
249
254
|
setShowAgentSwitchIndicator(state: import("immer").WritableDraft<AiAssistantSessionState>, action: PayloadAction<boolean>): void;
|
|
255
|
+
setTimestampDisplay(state: import("immer").WritableDraft<AiAssistantSessionState>, action: PayloadAction<TimestampDisplay>): void;
|
|
250
256
|
setEnabledAnimations(state: import("immer").WritableDraft<AiAssistantSessionState>, action: PayloadAction<AiAssistantAnimation[]>): void;
|
|
251
257
|
setSuggestionsState(state: import("immer").WritableDraft<AiAssistantSessionState>, action: PayloadAction<SuggestionsState>): void;
|
|
252
258
|
setContextTokens(state: import("immer").WritableDraft<AiAssistantSessionState>, action: PayloadAction<number | undefined>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-assistant-slice.d.ts","sourceRoot":"","sources":["../../../src/state/ai-assistant-slice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,WAAW,
|
|
1
|
+
{"version":3,"file":"ai-assistant-slice.d.ts","sourceRoot":"","sources":["../../../src/state/ai-assistant-slice.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,6 +102,11 @@ export interface SessionPreferences {
|
|
|
102
102
|
showThinkingSteps?: boolean;
|
|
103
103
|
showNarration?: boolean;
|
|
104
104
|
showAgentSwitchIndicator?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* When message timestamps are shown (`TimestampDisplay` values, as plain strings).
|
|
107
|
+
* Absent keeps the `chatConfig.ui.showTimestamps` default, which is `'hover'`.
|
|
108
|
+
*/
|
|
109
|
+
timestampDisplay?: string;
|
|
105
110
|
/** Enabled loading-animation ids (`AiAssistantAnimation` values, as plain strings). */
|
|
106
111
|
animations?: string[];
|
|
107
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-persistence-provider.d.ts","sourceRoot":"","sources":["../../../../src/state/persistence/session-persistence-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-persistence-provider.d.ts","sourceRoot":"","sources":["../../../../src/state/persistence/session-persistence-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ declare function makeStore(devTools: boolean | undefined): import("@genesislcap/
|
|
|
7
7
|
setShowThinkingSteps(state: import("immer").WritableDraft<AiAssistantSessionState>, action: import("@reduxjs/toolkit").PayloadAction<boolean>): void;
|
|
8
8
|
setShowNarration(state: import("immer").WritableDraft<AiAssistantSessionState>, action: import("@reduxjs/toolkit").PayloadAction<boolean>): void;
|
|
9
9
|
setShowAgentSwitchIndicator(state: import("immer").WritableDraft<AiAssistantSessionState>, action: import("@reduxjs/toolkit").PayloadAction<boolean>): void;
|
|
10
|
+
setTimestampDisplay(state: import("immer").WritableDraft<AiAssistantSessionState>, action: import("@reduxjs/toolkit").PayloadAction<import("@genesislcap/foundation-ai").TimestampDisplay>): void;
|
|
10
11
|
setEnabledAnimations(state: import("immer").WritableDraft<AiAssistantSessionState>, action: import("@reduxjs/toolkit").PayloadAction<import("..").AiAssistantAnimation[]>): void;
|
|
11
12
|
setSuggestionsState(state: import("immer").WritableDraft<AiAssistantSessionState>, action: import("@reduxjs/toolkit").PayloadAction<import("..").SuggestionsState>): void;
|
|
12
13
|
setContextTokens(state: import("immer").WritableDraft<AiAssistantSessionState>, action: import("@reduxjs/toolkit").PayloadAction<number | undefined>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../src/state/session-store.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAIvD,iBAAS,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../src/state/session-store.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAIvD,iBAAS,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;cA6C0le,CAAC;;;;;;cAAggD,CAAC;aAAob,CAAC;;;;;;;;;;;;;;;wCAvChkiB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAMnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE place this package turns a message's `timestamp` into display text
|
|
3
|
+
* (GENC-1257).
|
|
4
|
+
*
|
|
5
|
+
* Three tiers, deliberately coarse — the transcript shows this beside the sender
|
|
6
|
+
* name, where a long string competes with the name itself:
|
|
7
|
+
*
|
|
8
|
+
* | Age | Reads |
|
|
9
|
+
* | -------------- | ------------------------------------------------------------------- |
|
|
10
|
+
* | under a minute | `Now` |
|
|
11
|
+
* | under an hour | `12 minutes ago` |
|
|
12
|
+
* | anything older | an absolute date+time in the user's locale, e.g. `Sep 10, 2026, 14:18` |
|
|
13
|
+
*
|
|
14
|
+
* The absolute tier is deliberately locale-driven, so its exact rendering is the
|
|
15
|
+
* runtime's to choose — `en-US` gives `Sep 10, 2026, 14:18` and `en-GB` gives
|
|
16
|
+
* `10 Sept 2026, 14:18`. Only the FIELDS are ours; see {@link ABSOLUTE_FORMAT_OPTIONS}.
|
|
17
|
+
*
|
|
18
|
+
* Split out as a pure function (as `format-usd.ts` was) so the tier boundaries are
|
|
19
|
+
* testable without a clock, an element or a render: every entry point takes `now`
|
|
20
|
+
* rather than reading `Date.now()` itself.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Field selection for the absolute tier.
|
|
26
|
+
*
|
|
27
|
+
* Exported so tests can build their expectation from the same options rather than from a
|
|
28
|
+
* literal: every field below renders differently per locale and time zone, so asserting
|
|
29
|
+
* `"Sep"` or `"10"` only asserts the machine the test happened to run on.
|
|
30
|
+
*
|
|
31
|
+
* Locale is left undefined so it follows the user's, and `hourCycle: 'h23'` pins the clock
|
|
32
|
+
* to 24-hour regardless — a locale-chosen 12-hour clock would add "am"/"pm" and widen the
|
|
33
|
+
* string next to the sender name.
|
|
34
|
+
*/
|
|
35
|
+
export declare const ABSOLUTE_FORMAT_OPTIONS: Intl.DateTimeFormatOptions;
|
|
36
|
+
/**
|
|
37
|
+
* Display text for a message timestamp, per the tiers above.
|
|
38
|
+
*
|
|
39
|
+
* A timestamp slightly in the future (clock skew between a server-stamped message and the
|
|
40
|
+
* browser) reads `Now` rather than a negative count — "-3 minutes ago" looks broken and
|
|
41
|
+
* tells the user nothing. That indulgence is bounded at an hour: beyond it the stamp is
|
|
42
|
+
* not skew but bad data (a machine with a badly wrong clock, a hand-edited session), and
|
|
43
|
+
* showing `Now` forever on every message would hide that. Past the bound it falls through
|
|
44
|
+
* to the absolute tier, which shows the user what the data actually says.
|
|
45
|
+
*
|
|
46
|
+
* @param iso - ISO-8601 timestamp, as stamped by the driver on append.
|
|
47
|
+
* @param now - Current epoch ms. Passed in rather than read, so tests pin the clock.
|
|
48
|
+
* @returns Display text, or `''` when there is nothing sensible to show.
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatMessageTimestamp(iso: string | undefined, now: number): string;
|
|
51
|
+
/**
|
|
52
|
+
* The absolute rendering of a stamp, whatever its age — the accessible text behind a
|
|
53
|
+
* message timestamp.
|
|
54
|
+
*
|
|
55
|
+
* Exists because the visible text is relative and a screen reader announces the element's
|
|
56
|
+
* TEXT, not its `datetime` attribute: `<time>` carries no implicit ARIA role, so the
|
|
57
|
+
* machine-readable value reaches tooling and nobody else. The template pairs this with
|
|
58
|
+
* `aria-hidden` on the relative string so assistive tech hears one unambiguous time
|
|
59
|
+
* instead of "5 minutes ago" with no anchor.
|
|
60
|
+
*
|
|
61
|
+
* @param iso - ISO-8601 timestamp, as stamped by the driver on append.
|
|
62
|
+
* @returns The absolute string, or `''` when there is nothing sensible to show.
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatAbsoluteTimestamp(iso: string | undefined): string;
|
|
65
|
+
/**
|
|
66
|
+
* The `datetime` attribute value for the rendered `<time>` element — the raw ISO string,
|
|
67
|
+
* which is what the HTML spec wants and what date-aware tooling reads. It is NOT an
|
|
68
|
+
* accessibility affordance: screen readers announce the element's text content instead.
|
|
69
|
+
*
|
|
70
|
+
* Returns `null`, not `''`, for a missing or unparseable stamp: FAST removes an attribute
|
|
71
|
+
* only for `null`/`undefined` (see `DOM.setAttribute`), so an empty string would emit
|
|
72
|
+
* `datetime=""`, which is invalid per spec and flagged by HTML validators.
|
|
73
|
+
*
|
|
74
|
+
* @param iso - ISO-8601 timestamp, as stamped by the driver on append.
|
|
75
|
+
*/
|
|
76
|
+
export declare function messageTimestampDateTime(iso: string | undefined): string | null;
|
|
77
|
+
//# sourceMappingURL=format-message-timestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-message-timestamp.d.ts","sourceRoot":"","sources":["../../../src/utils/format-message-timestamp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,EAAE,IAAI,CAAC,qBAO1C,CAAC;AASF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAanF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAE/E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ChatDebugLogSubmitConfig } from '@genesislcap/foundation-ai';
|
|
2
|
+
/** Default cap on the user's note. Short by design — it is a caption for the log, not a report. */
|
|
3
|
+
export declare const DEBUG_LOG_NOTE_DEFAULT_MAX_LENGTH = 500;
|
|
4
|
+
/** Default prompt in the empty note. */
|
|
5
|
+
export declare const DEBUG_LOG_NOTE_DEFAULT_PLACEHOLDER = "What were you doing, or what went wrong? (optional)";
|
|
6
|
+
/** The same prompt for a `required` note — "(optional)" would contradict the disabled Send. */
|
|
7
|
+
export declare const DEBUG_LOG_NOTE_REQUIRED_PLACEHOLDER = "What were you doing, or what went wrong?";
|
|
8
|
+
/** `ChatDebugLogNoteConfig` with every option resolved. */
|
|
9
|
+
export interface ResolvedDebugLogNoteConfig {
|
|
10
|
+
placeholder: string;
|
|
11
|
+
required: boolean;
|
|
12
|
+
maxLength: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve `debugLogSubmit.note` — `undefined`/`true` mean "compose box with defaults",
|
|
16
|
+
* `false` means "no compose box, send on first click" (→ `null`), and an object customises
|
|
17
|
+
* the box. Keeps the template free of the boolean-or-object dance.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveDebugLogNoteConfig(config: ChatDebugLogSubmitConfig | undefined): ResolvedDebugLogNoteConfig | null;
|
|
20
|
+
/**
|
|
21
|
+
* Normalise the typed note for the submission: trimmed, and `undefined` when empty so a
|
|
22
|
+
* host can `message ?? fallback` without checking for whitespace.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeDebugLogNote(note: string): string | undefined;
|
|
25
|
+
//# sourceMappingURL=resolve-debug-log-note.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-debug-log-note.d.ts","sourceRoot":"","sources":["../../../src/utils/resolve-debug-log-note.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEnG,mGAAmG;AACnG,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,wCAAwC;AACxC,eAAO,MAAM,kCAAkC,wDACQ,CAAC;AAExD,+FAA+F;AAC/F,eAAO,MAAM,mCAAmC,6CAA6C,CAAC;AAE9F,2DAA2D;AAC3D,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAC3C,0BAA0B,GAAG,IAAI,CAmBnC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGtE"}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
|
-
import type { ChatConfig } from '@genesislcap/foundation-ai';
|
|
1
|
+
import type { ChatConfig, TimestampDisplay } from '@genesislcap/foundation-ai';
|
|
2
2
|
import { type AiAssistantAnimation } from '../main/main.types';
|
|
3
3
|
import type { SessionPreferences } from '../state/persistence/session-persistence-provider';
|
|
4
|
+
/**
|
|
5
|
+
* Whether a preference write is a no-op, so a setter can bail before touching the store.
|
|
6
|
+
*
|
|
7
|
+
* Load-bearing rather than an optimisation. The design-system `switch` fires `@change` when its
|
|
8
|
+
* `:checked` binding is applied on render, not only on user interaction — so an unguarded setter
|
|
9
|
+
* marks preferences "user-changed" on every render and saves config defaults, which freezes the
|
|
10
|
+
* reconciler so real stored prefs never apply on reload (GENC-1351 #1).
|
|
11
|
+
*
|
|
12
|
+
* List preferences compare order-insensitively: the per-animation switches fire the same spurious
|
|
13
|
+
* render-time `@change`, and `enabledAnimations` is a set rather than a sequence.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function preferenceUnchanged(current: unknown, value: unknown): boolean;
|
|
4
18
|
/**
|
|
5
19
|
* The effective user-facing preference state for a freshly created session store
|
|
6
20
|
* (GENC-1351 #2), resolved from the two inputs that feed it.
|
|
@@ -12,6 +26,7 @@ export interface ResolvedPreferenceBaseline {
|
|
|
12
26
|
showThinkingSteps: boolean;
|
|
13
27
|
showNarration: boolean;
|
|
14
28
|
showAgentSwitchIndicator: boolean;
|
|
29
|
+
timestampDisplay: TimestampDisplay;
|
|
15
30
|
enabledAnimations: AiAssistantAnimation[];
|
|
16
31
|
/**
|
|
17
32
|
* The remembered "remember chat" toggle — present only when stored prefs carried
|
|
@@ -20,6 +35,8 @@ export interface ResolvedPreferenceBaseline {
|
|
|
20
35
|
*/
|
|
21
36
|
enabled?: boolean;
|
|
22
37
|
}
|
|
38
|
+
/** The mode used when neither the host config nor stored prefs name a valid one. */
|
|
39
|
+
export declare const DEFAULT_TIMESTAMP_DISPLAY: TimestampDisplay;
|
|
23
40
|
/**
|
|
24
41
|
* Resolve the effective preference baseline for a fresh store, applying the
|
|
25
42
|
* precedence (lowest → highest):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-preference-baseline.d.ts","sourceRoot":"","sources":["../../../src/utils/resolve-preference-baseline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-preference-baseline.d.ts","sourceRoot":"","sources":["../../../src/utils/resolve-preference-baseline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAG5F;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAK7E;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,wBAAwB,EAAE,OAAO,CAAC;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,EAAE,gBAA0B,CAAC;AA2BnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,EACpB,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,GAC5C,0BAA0B,CAwC5B"}
|