@genesislcap/ai-assistant 15.23.1-FUI-2603.9 → 15.23.1-agent-log-submit.1
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 +126 -0
- package/dist/ai-assistant.d.ts +32 -0
- package/dist/custom-elements.json +66 -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.map +1 -1
- package/dist/dts/main/main.d.ts +32 -0
- package/dist/dts/main/main.d.ts.map +1 -1
- package/dist/esm/components/settings-modal/settings-modal.styles.js +13 -5
- package/dist/esm/components/settings-modal/settings-modal.template.js +46 -16
- package/dist/esm/main/main.js +89 -0
- package/package.json +16 -16
|
@@ -9238,6 +9238,36 @@
|
|
|
9238
9238
|
"isProtected": false,
|
|
9239
9239
|
"isAbstract": false
|
|
9240
9240
|
},
|
|
9241
|
+
{
|
|
9242
|
+
"kind": "Property",
|
|
9243
|
+
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#debugLogSubmitResult:member",
|
|
9244
|
+
"docComment": "/**\n * Outcome of the last log submission, shown briefly on the button ('Sent' / 'Failed — retry') then cleared by `setDebugLogSubmitResult`'s timer. `null` when idle.\n */\n",
|
|
9245
|
+
"excerptTokens": [
|
|
9246
|
+
{
|
|
9247
|
+
"kind": "Content",
|
|
9248
|
+
"text": "debugLogSubmitResult: "
|
|
9249
|
+
},
|
|
9250
|
+
{
|
|
9251
|
+
"kind": "Content",
|
|
9252
|
+
"text": "'sent' | 'error' | null"
|
|
9253
|
+
},
|
|
9254
|
+
{
|
|
9255
|
+
"kind": "Content",
|
|
9256
|
+
"text": ";"
|
|
9257
|
+
}
|
|
9258
|
+
],
|
|
9259
|
+
"isReadonly": false,
|
|
9260
|
+
"isOptional": false,
|
|
9261
|
+
"releaseTag": "Beta",
|
|
9262
|
+
"name": "debugLogSubmitResult",
|
|
9263
|
+
"propertyTypeTokenRange": {
|
|
9264
|
+
"startIndex": 1,
|
|
9265
|
+
"endIndex": 2
|
|
9266
|
+
},
|
|
9267
|
+
"isStatic": false,
|
|
9268
|
+
"isProtected": false,
|
|
9269
|
+
"isAbstract": false
|
|
9270
|
+
},
|
|
9241
9271
|
{
|
|
9242
9272
|
"kind": "Property",
|
|
9243
9273
|
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#debugRedux:member",
|
|
@@ -12395,6 +12425,36 @@
|
|
|
12395
12425
|
"isAbstract": false,
|
|
12396
12426
|
"name": "setSettingsModalTab"
|
|
12397
12427
|
},
|
|
12428
|
+
{
|
|
12429
|
+
"kind": "Property",
|
|
12430
|
+
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#settingsAgentLogSectionVisible:member",
|
|
12431
|
+
"docComment": "/**\n * Whether the settings \"Agent log\" section renders — shown when either action is enabled: the download button (`allowDebugDownload`) or the host-transport Send button (`debugLogSubmit`). Each button is additionally gated on its own flag inside the section, so a host can enable one without the other.\n */\n",
|
|
12432
|
+
"excerptTokens": [
|
|
12433
|
+
{
|
|
12434
|
+
"kind": "Content",
|
|
12435
|
+
"text": "get settingsAgentLogSectionVisible(): "
|
|
12436
|
+
},
|
|
12437
|
+
{
|
|
12438
|
+
"kind": "Content",
|
|
12439
|
+
"text": "boolean"
|
|
12440
|
+
},
|
|
12441
|
+
{
|
|
12442
|
+
"kind": "Content",
|
|
12443
|
+
"text": ";"
|
|
12444
|
+
}
|
|
12445
|
+
],
|
|
12446
|
+
"isReadonly": true,
|
|
12447
|
+
"isOptional": false,
|
|
12448
|
+
"releaseTag": "Beta",
|
|
12449
|
+
"name": "settingsAgentLogSectionVisible",
|
|
12450
|
+
"propertyTypeTokenRange": {
|
|
12451
|
+
"startIndex": 1,
|
|
12452
|
+
"endIndex": 2
|
|
12453
|
+
},
|
|
12454
|
+
"isStatic": false,
|
|
12455
|
+
"isProtected": false,
|
|
12456
|
+
"isAbstract": false
|
|
12457
|
+
},
|
|
12398
12458
|
{
|
|
12399
12459
|
"kind": "Property",
|
|
12400
12460
|
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#settingsAppSectionVisible:member",
|
|
@@ -13668,6 +13728,42 @@
|
|
|
13668
13728
|
"isProtected": false,
|
|
13669
13729
|
"isAbstract": false
|
|
13670
13730
|
},
|
|
13731
|
+
{
|
|
13732
|
+
"kind": "Method",
|
|
13733
|
+
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#submitDebugLog:member(1)",
|
|
13734
|
+
"docComment": "/**\n * Hand the agent log to the host's `ui.debugLogSubmit.send` callback — the Send button next to Download. Reuses `buildDownloadLog`, so the submitted log is byte-identical to what Download saves (lifetime-stitched when the provider persists diagnostics). The assistant is vendor-agnostic: the callback owns the transport (Sentry feedback, a support API, an upload endpoint). Outcome lands in `debugLogSubmitResult` so the button can flash 'Sent'/'Failed'; failures also go to the logger with the cause.\n */\n",
|
|
13735
|
+
"excerptTokens": [
|
|
13736
|
+
{
|
|
13737
|
+
"kind": "Content",
|
|
13738
|
+
"text": "submitDebugLog(): "
|
|
13739
|
+
},
|
|
13740
|
+
{
|
|
13741
|
+
"kind": "Reference",
|
|
13742
|
+
"text": "Promise",
|
|
13743
|
+
"canonicalReference": "!Promise:interface"
|
|
13744
|
+
},
|
|
13745
|
+
{
|
|
13746
|
+
"kind": "Content",
|
|
13747
|
+
"text": "<void>"
|
|
13748
|
+
},
|
|
13749
|
+
{
|
|
13750
|
+
"kind": "Content",
|
|
13751
|
+
"text": ";"
|
|
13752
|
+
}
|
|
13753
|
+
],
|
|
13754
|
+
"isStatic": false,
|
|
13755
|
+
"returnTypeTokenRange": {
|
|
13756
|
+
"startIndex": 1,
|
|
13757
|
+
"endIndex": 3
|
|
13758
|
+
},
|
|
13759
|
+
"releaseTag": "Beta",
|
|
13760
|
+
"isProtected": false,
|
|
13761
|
+
"overloadIndex": 1,
|
|
13762
|
+
"parameters": [],
|
|
13763
|
+
"isOptional": false,
|
|
13764
|
+
"isAbstract": false,
|
|
13765
|
+
"name": "submitDebugLog"
|
|
13766
|
+
},
|
|
13671
13767
|
{
|
|
13672
13768
|
"kind": "Method",
|
|
13673
13769
|
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#submitMessage:member(1)",
|
|
@@ -13739,6 +13835,36 @@
|
|
|
13739
13835
|
"isAbstract": false,
|
|
13740
13836
|
"name": "submitMessage"
|
|
13741
13837
|
},
|
|
13838
|
+
{
|
|
13839
|
+
"kind": "Property",
|
|
13840
|
+
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#submittingDebugLog:member",
|
|
13841
|
+
"docComment": "/**\n * True while `submitDebugLog` is building and handing off the log. Same role as `downloadingDebugLog` for the Send button: the lifetime-stitch and the host's `send` callback are async, so the button needs a visible in-flight state.\n */\n",
|
|
13842
|
+
"excerptTokens": [
|
|
13843
|
+
{
|
|
13844
|
+
"kind": "Content",
|
|
13845
|
+
"text": "submittingDebugLog: "
|
|
13846
|
+
},
|
|
13847
|
+
{
|
|
13848
|
+
"kind": "Content",
|
|
13849
|
+
"text": "boolean"
|
|
13850
|
+
},
|
|
13851
|
+
{
|
|
13852
|
+
"kind": "Content",
|
|
13853
|
+
"text": ";"
|
|
13854
|
+
}
|
|
13855
|
+
],
|
|
13856
|
+
"isReadonly": false,
|
|
13857
|
+
"isOptional": false,
|
|
13858
|
+
"releaseTag": "Beta",
|
|
13859
|
+
"name": "submittingDebugLog",
|
|
13860
|
+
"propertyTypeTokenRange": {
|
|
13861
|
+
"startIndex": 1,
|
|
13862
|
+
"endIndex": 2
|
|
13863
|
+
},
|
|
13864
|
+
"isStatic": false,
|
|
13865
|
+
"isProtected": false,
|
|
13866
|
+
"isAbstract": false
|
|
13867
|
+
},
|
|
13742
13868
|
{
|
|
13743
13869
|
"kind": "Property",
|
|
13744
13870
|
"canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#suggestionsState:member",
|
package/dist/ai-assistant.d.ts
CHANGED
|
@@ -3715,6 +3715,19 @@ export declare class FoundationAiAssistant extends GenesisElement {
|
|
|
3715
3715
|
* element has its own settings modal.
|
|
3716
3716
|
*/
|
|
3717
3717
|
downloadingDebugLog: boolean;
|
|
3718
|
+
/**
|
|
3719
|
+
* True while `submitDebugLog` is building and handing off the log. Same role as
|
|
3720
|
+
* `downloadingDebugLog` for the Send button: the lifetime-stitch and the host's
|
|
3721
|
+
* `send` callback are async, so the button needs a visible in-flight state.
|
|
3722
|
+
*/
|
|
3723
|
+
submittingDebugLog: boolean;
|
|
3724
|
+
/**
|
|
3725
|
+
* Outcome of the last log submission, shown briefly on the button ('Sent' /
|
|
3726
|
+
* 'Failed — retry') then cleared by `setDebugLogSubmitResult`'s timer. `null` when idle.
|
|
3727
|
+
*/
|
|
3728
|
+
debugLogSubmitResult: 'sent' | 'error' | null;
|
|
3729
|
+
/** Timer that clears `debugLogSubmitResult` back to idle. */
|
|
3730
|
+
private debugLogSubmitResultTimer?;
|
|
3718
3731
|
/** Active tab inside the settings modal. */
|
|
3719
3732
|
settingsModalTab: SettingsModalTab;
|
|
3720
3733
|
/** Bound to the design-system modal via the template ref. */
|
|
@@ -4561,6 +4574,13 @@ export declare class FoundationAiAssistant extends GenesisElement {
|
|
|
4561
4574
|
get settingsCostTabVisible(): boolean;
|
|
4562
4575
|
/** Whether session token usage should render on the Usage tab. */
|
|
4563
4576
|
get settingsSessionTokensVisible(): boolean;
|
|
4577
|
+
/**
|
|
4578
|
+
* Whether the settings "Agent log" section renders — shown when either action is
|
|
4579
|
+
* enabled: the download button (`allowDebugDownload`) or the host-transport Send
|
|
4580
|
+
* button (`debugLogSubmit`). Each button is additionally gated on its own flag
|
|
4581
|
+
* inside the section, so a host can enable one without the other.
|
|
4582
|
+
*/
|
|
4583
|
+
get settingsAgentLogSectionVisible(): boolean;
|
|
4564
4584
|
/** Whether the chat header (and settings cog) should render. */
|
|
4565
4585
|
get settingsCogVisible(): boolean;
|
|
4566
4586
|
openSettingsModal(): void;
|
|
@@ -4641,6 +4661,18 @@ export declare class FoundationAiAssistant extends GenesisElement {
|
|
|
4641
4661
|
*/
|
|
4642
4662
|
private buildMetaSnapshot;
|
|
4643
4663
|
downloadDebugLog(): Promise<void>;
|
|
4664
|
+
/**
|
|
4665
|
+
* Hand the agent log to the host's `ui.debugLogSubmit.send` callback — the Send
|
|
4666
|
+
* button next to Download. Reuses `buildDownloadLog`, so the submitted log is
|
|
4667
|
+
* byte-identical to what Download saves (lifetime-stitched when the provider
|
|
4668
|
+
* persists diagnostics). The assistant is vendor-agnostic: the callback owns the
|
|
4669
|
+
* transport (Sentry feedback, a support API, an upload endpoint). Outcome lands in
|
|
4670
|
+
* `debugLogSubmitResult` so the button can flash 'Sent'/'Failed'; failures also go
|
|
4671
|
+
* to the logger with the cause.
|
|
4672
|
+
*/
|
|
4673
|
+
submitDebugLog(): Promise<void>;
|
|
4674
|
+
/** Flash the submit outcome on the Send button, then fall back to idle. */
|
|
4675
|
+
private setDebugLogSubmitResult;
|
|
4644
4676
|
/**
|
|
4645
4677
|
* The log to download (GENC-1351 §5.8). When the provider persists diagnostics,
|
|
4646
4678
|
* stitch the **whole lifetime** stream (every page load) rather than just the
|
|
@@ -2828,6 +2828,33 @@
|
|
|
2828
2828
|
"default": "false",
|
|
2829
2829
|
"description": "True while `downloadDebugLog` is building the log (GENC-1351 §5.8). Drives the\ndownload button's disabled + spinner state — the lifetime-stitch path is async\n(a provider `loadDiagnostics` round-trip), so without feedback a click looks\nlike nothing happened. Per-instance and transient (not shared/persisted): each\nelement has its own settings modal."
|
|
2830
2830
|
},
|
|
2831
|
+
{
|
|
2832
|
+
"kind": "field",
|
|
2833
|
+
"name": "submittingDebugLog",
|
|
2834
|
+
"type": {
|
|
2835
|
+
"text": "boolean"
|
|
2836
|
+
},
|
|
2837
|
+
"default": "false",
|
|
2838
|
+
"description": "True while `submitDebugLog` is building and handing off the log. Same role as\n`downloadingDebugLog` for the Send button: the lifetime-stitch and the host's\n`send` callback are async, so the button needs a visible in-flight state."
|
|
2839
|
+
},
|
|
2840
|
+
{
|
|
2841
|
+
"kind": "field",
|
|
2842
|
+
"name": "debugLogSubmitResult",
|
|
2843
|
+
"type": {
|
|
2844
|
+
"text": "'sent' | 'error' | null"
|
|
2845
|
+
},
|
|
2846
|
+
"default": "null",
|
|
2847
|
+
"description": "Outcome of the last log submission, shown briefly on the button ('Sent' /\n'Failed — retry') then cleared by `setDebugLogSubmitResult`'s timer. `null` when idle."
|
|
2848
|
+
},
|
|
2849
|
+
{
|
|
2850
|
+
"kind": "field",
|
|
2851
|
+
"name": "debugLogSubmitResultTimer",
|
|
2852
|
+
"type": {
|
|
2853
|
+
"text": "ReturnType<typeof setTimeout> | undefined"
|
|
2854
|
+
},
|
|
2855
|
+
"privacy": "private",
|
|
2856
|
+
"description": "Timer that clears `debugLogSubmitResult` back to idle."
|
|
2857
|
+
},
|
|
2831
2858
|
{
|
|
2832
2859
|
"kind": "field",
|
|
2833
2860
|
"name": "settingsModalTab",
|
|
@@ -4291,6 +4318,15 @@
|
|
|
4291
4318
|
"description": "Whether session token usage should render on the Usage tab.",
|
|
4292
4319
|
"readonly": true
|
|
4293
4320
|
},
|
|
4321
|
+
{
|
|
4322
|
+
"kind": "field",
|
|
4323
|
+
"name": "settingsAgentLogSectionVisible",
|
|
4324
|
+
"type": {
|
|
4325
|
+
"text": "boolean"
|
|
4326
|
+
},
|
|
4327
|
+
"description": "Whether the settings \"Agent log\" section renders — shown when either action is\nenabled: the download button (`allowDebugDownload`) or the host-transport Send\nbutton (`debugLogSubmit`). Each button is additionally gated on its own flag\ninside the section, so a host can enable one without the other.",
|
|
4328
|
+
"readonly": true
|
|
4329
|
+
},
|
|
4294
4330
|
{
|
|
4295
4331
|
"kind": "field",
|
|
4296
4332
|
"name": "settingsCogVisible",
|
|
@@ -4524,6 +4560,35 @@
|
|
|
4524
4560
|
}
|
|
4525
4561
|
}
|
|
4526
4562
|
},
|
|
4563
|
+
{
|
|
4564
|
+
"kind": "method",
|
|
4565
|
+
"name": "submitDebugLog",
|
|
4566
|
+
"return": {
|
|
4567
|
+
"type": {
|
|
4568
|
+
"text": "Promise<void>"
|
|
4569
|
+
}
|
|
4570
|
+
},
|
|
4571
|
+
"description": "Hand the agent log to the host's `ui.debugLogSubmit.send` callback — the Send\nbutton next to Download. Reuses `buildDownloadLog`, so the submitted log is\nbyte-identical to what Download saves (lifetime-stitched when the provider\npersists diagnostics). The assistant is vendor-agnostic: the callback owns the\ntransport (Sentry feedback, a support API, an upload endpoint). Outcome lands in\n`debugLogSubmitResult` so the button can flash 'Sent'/'Failed'; failures also go\nto the logger with the cause."
|
|
4572
|
+
},
|
|
4573
|
+
{
|
|
4574
|
+
"kind": "method",
|
|
4575
|
+
"name": "setDebugLogSubmitResult",
|
|
4576
|
+
"privacy": "private",
|
|
4577
|
+
"return": {
|
|
4578
|
+
"type": {
|
|
4579
|
+
"text": "void"
|
|
4580
|
+
}
|
|
4581
|
+
},
|
|
4582
|
+
"parameters": [
|
|
4583
|
+
{
|
|
4584
|
+
"name": "result",
|
|
4585
|
+
"type": {
|
|
4586
|
+
"text": "'sent' | 'error'"
|
|
4587
|
+
}
|
|
4588
|
+
}
|
|
4589
|
+
],
|
|
4590
|
+
"description": "Flash the submit outcome on the Send button, then fall back to idle."
|
|
4591
|
+
},
|
|
4527
4592
|
{
|
|
4528
4593
|
"kind": "method",
|
|
4529
4594
|
"name": "buildDownloadLog",
|
|
@@ -12064,7 +12129,7 @@
|
|
|
12064
12129
|
{
|
|
12065
12130
|
"kind": "variable",
|
|
12066
12131
|
"name": "settingsModalStyles",
|
|
12067
|
-
"default": "css`\n /*\n * Section headings come from the shared fragment the package also exports, so a host titling\n * its own slotted section applies the same rule rather than a copy of it.\n */\n ${assistantSettingsSectionTitleStyles}\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n .settings-modal {\n --ai-tier-badge-bg-mix: 14%;\n --ai-tier-badge-text-lighten: 18%;\n }\n\n .settings-modal::part(dialog) {\n max-width: 620px;\n width: calc(100vw - 48px);\n max-height: calc(100vh - 48px);\n padding: 0;\n }\n\n .settings-modal::part(content) {\n display: flex;\n flex-direction: column;\n min-height: 0;\n padding: 0;\n width: 100%;\n }\n\n .settings-modal::part(top) {\n padding: calc(var(--design-unit) * 4px) calc(var(--design-unit) * 5px);\n border-bottom: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-modal::part(bottom) {\n padding: calc(var(--design-unit) * 4px) calc(var(--design-unit) * 5px);\n border-top: 1px solid var(--neutral-stroke-rest);\n border-bottom-left-radius: var(--card-border-radius, calc(var(--control-corner-radius) * 1px));\n border-bottom-right-radius: var(--card-border-radius, calc(var(--control-corner-radius) * 1px));\n background-color: var(--neutral-layer-2);\n }\n\n .settings-modal-header {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n .settings-modal-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n color: var(--neutral-foreground-rest);\n }\n\n .settings-modal-content {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n }\n\n .settings-modal-tabs::part(tablist) {\n border-bottom: 0;\n padding: 0 calc(var(--design-unit) * 5px);\n column-gap: calc(var(--design-unit) * 5px);\n }\n\n .settings-modal-tabs::part(activeIndicator) {\n height: 2px;\n }\n\n .settings-modal-tab {\n padding: 0;\n font-weight: 600;\n gap: 6px;\n }\n\n .settings-modal-tab[aria-selected='true'] {\n color: var(--neutral-foreground-rest);\n }\n\n .settings-modal-tabs::part(tabpanel) {\n border-top: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-modal-tab-panel {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n padding: 0;\n border-radius: 0;\n }\n\n .settings-modal-tab-panel[hidden] {\n display: none !important;\n }\n\n .settings-modal-body {\n overflow-y: auto;\n padding: 0 calc(var(--design-unit) * 5px) calc(var(--design-unit) * 2px);\n max-height: min(60vh, 520px);\n }\n\n .settings-modal-section {\n padding: calc(var(--design-unit) * 5px) 0;\n border-bottom: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-modal-section:last-child {\n border-bottom: none;\n }\n\n /*\n * Only the spacing. Everything else about this heading comes from the exported fragment\n * above, which the assistant and its hosts share; margin is deliberately not in there,\n * since the gap below a heading depends on the layout around it.\n */\n .ai-settings-section-title {\n margin: 0 0 calc(var(--design-unit) * 3px);\n }\n\n .settings-modal-section-note {\n margin: calc(var(--design-unit) * -2px) 0 calc(var(--design-unit) * 3px);\n font-size: 12px;\n line-height: 1.5;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-modal-section-body {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 4px);\n }\n\n .settings-toggle-row {\n display: flex;\n align-items: flex-start;\n gap: calc(var(--design-unit) * 3px);\n padding: 0 0 calc(var(--design-unit) * 4px) 0;\n border-bottom: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-toggle-row:last-child {\n border-bottom: none;\n padding-bottom: calc(var(--design-unit) * 1px);\n }\n\n .settings-toggle-row.is-stacked {\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n }\n\n /*\n * For rows whose control is a button rather than a switch. The base row top-aligns, which suits\n * a switch (it lands level with the title), but a button is tall enough that top-aligning leaves\n * it above the title-plus-description block it acts on.\n */\n .settings-toggle-row.is-centered {\n align-items: center;\n }\n\n .settings-animation-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.2px);\n padding: calc(var(--design-unit) * 2px);\n gap: calc(var(--design-unit) * 2px);\n }\n\n .settings-animation-list .settings-toggle-row {\n border: 0;\n }\n\n .settings-animation-category {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 4px);\n }\n\n .settings-animation-category-label {\n font-weight: 600;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-toggle-row + .settings-animation-category-label {\n border-top: 1px solid var(--neutral-stroke-rest);\n padding-top: calc(var(--design-unit) * 2px);\n }\n\n .settings-animation-option {\n padding: 0;\n margin: 0;\n }\n\n .settings-animation-option:last-child {\n border-bottom: none;\n padding-bottom: calc(var(--design-unit) * 2px);\n }\n\n .settings-toggle-text {\n flex: 1;\n min-width: 0;\n }\n\n .settings-toggle-title {\n font-size: 14px;\n font-weight: 500;\n color: var(--neutral-foreground-rest);\n }\n\n .settings-toggle-desc {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n line-height: 1.5;\n max-width: 92%;\n }\n\n .settings-toggle-control {\n flex: 0 0 auto;\n min-width: 0;\n }\n\n .settings-toggle-control-wide {\n width: 100%;\n max-width: 280px;\n }\n\n .settings-toggle-row.is-stacked .settings-toggle-desc {\n max-width: none;\n }\n\n .settings-toggle-row.is-stacked .settings-toggle-control-wide {\n width: 100%;\n max-width: none;\n }\n\n /*\n * Sub-heading over the provider toggle group. Unlike the section headings it sits INSIDE\n * .settings-modal-section-body, so the parent's 4-unit flex gap already separates it from the\n * first toggle — and flex does not collapse margins, so the shared rule's 3-unit margin-bottom\n * would add to that gap rather than replace it, leaving the label adrift from the rows it\n * names. Zero the margin and pull back 2 of the 4 gap units, expressed in the same token so it\n * tracks if that gap changes.\n */\n .settings-app-toggles-title {\n margin: 0 0 calc(var(--design-unit) * -2px);\n }\n\n .settings-app-toggle-block {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 1px);\n }\n\n .settings-toggle-hint {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n line-height: 1.4;\n padding-left: calc(var(--design-unit) * 1px);\n font-style: italic;\n }\n\n /*\n * The budget meter (GENC-1464) is the context indicator's money sibling and\n * shares its row anatomy 1:1, so the budget classes JOIN these rules rather\n * than restating them — one place to restyle the header/label/figures shape,\n * and the two indicators cannot drift apart. Design-system tokens only, and\n * unfallbacked: every token here ships a DS default, so a var(--x, y)\n * fallback would be dead code that hides a broken token name (#2411/#2436\n * review rule, pinned by settings-modal.styles.test.ts).\n */\n .settings-context-header,\n .settings-budget-header {\n display: flex;\n justify-content: space-between;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 2px);\n font-size: 12px;\n }\n\n .settings-context-label,\n .settings-budget-label {\n color: var(--neutral-foreground-hint);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n }\n\n .settings-context-tokens,\n .settings-budget-figures {\n color: var(--neutral-foreground-rest);\n }\n\n /* Freshness footer (GENC-1464): refresh button + label under the vendor\n rows, left-aligned — a footnote to the figures above it. The button's\n inline padding is pinned and cancelled by the container margin so the\n ICON GLYPH (not the button box) sits flush with the budget labels'\n left edge, whatever the density tokens say. */\n .settings-budget-toolbar {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: 4px;\n margin-inline-start: -4px;\n }\n\n .settings-budget-refresh::part(control) {\n padding-inline: 4px;\n }\n\n .settings-budget-updated {\n color: var(--neutral-foreground-hint);\n font-size: 11px;\n }\n\n /*\n * ONE rhythm for every meter row. The outer wrapper holds the context\n * indicator and the budget meter; the inner one holds the budget meter's\n * vendor rows — and both gap by the same 2 units (half the section body's 4)\n * so that visually identical meter rows are evenly spaced whatever mix of\n * them is on screen. Without the wrapper the context row inherits the body's\n * 4-unit gap while the vendor rows keep 2, and three identical-looking rows\n * read as an uneven 4/2/2. The wrapper renders only when at least one meter\n * does — see settingsUsageMetersTemplate for why an always-on one would cost\n * a stray gap.\n */\n .settings-usage-meters,\n .settings-budget-usage {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .settings-current-build,\n .settings-lifetime-usage {\n background: var(--neutral-layer-2);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n padding: calc(var(--design-unit) * 4px);\n margin: calc(var(--design-unit) * 3px) 0;\n }\n\n /*\n * Deliberately quieter than the live block: no pulsing badge and no accent, so the eye lands\n * on what is being built now — which is why that block leads the tab and this one follows,\n * under the history heading whose rows it totals.\n */\n .settings-lifetime-usage-top {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n .settings-lifetime-label {\n font-size: 10px;\n line-height: 1;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-current-build-top {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n /*\n * Optically centring these 10px caps against the 14px project name beside them. Flex offers\n * only two alignments and neither lands it, because a box centre and a text baseline are\n * different lines:\n * - align-items: center sits the badge baseline about 1.2px high\n * - align-items: baseline matches baselines, but the caps then read as bottom-aligned\n * against the name's ascenders, so the badge looks low\n * The eye wants the midpoint, so: centre the boxes, then translate down by the ~1px of\n * overshoot. This is a nudge, but it corrects a fixed relationship between two font sizes\n * rather than some neighbouring element's layout, so unlike a margin tuned to a sibling it\n * cannot rot when that sibling changes. In em, so it tracks the badge text.\n *\n * display: block, not inline-flex: a flex container has no text baseline of its own and\n * synthesizes one from its first child, which here is the dot, an empty span. As a block box\n * the badge takes the baseline of its first line, i.e. the text.\n */\n .settings-live-badge {\n display: block;\n font-size: 10px;\n line-height: 1;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--accent-fill-rest);\n white-space: nowrap;\n transform: translateY(0.1em);\n }\n\n .settings-live-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n\n /* Replaces the flex gap the badge no longer has. */\n margin-right: calc(var(--design-unit) * 1px);\n\n /* Centres the dot on the text beside it without disturbing that text's baseline. */\n vertical-align: middle;\n border-radius: 50%;\n background: var(--accent-fill-rest);\n animation: settings-live-pulse 1.6s ease-out infinite;\n }\n\n @keyframes settings-live-pulse {\n 0% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent-fill-rest) 55%, transparent);\n }\n\n 70% {\n box-shadow: 0 0 0 7px transparent;\n }\n\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n\n .settings-current-build-name {\n font-size: 14px;\n line-height: 1;\n font-weight: 600;\n }\n\n /*\n * Cost and the token buckets side by side: one number in its own box, the four buckets\n * sharing the box next to it. Stretch, so the two are the same height however tall the 22px\n * cost value makes the left one.\n */\n .settings-usage-row {\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n gap: calc(var(--design-unit) * 3px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n .settings-usage-row-tokens {\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .settings-build-stat {\n min-width: 0;\n background: var(--neutral-layer-1);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 3px);\n }\n\n .settings-build-stat-label {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-build-stat-value {\n font-size: 22px;\n font-weight: 700;\n margin-top: calc(var(--design-unit) * 1px);\n color: var(--neutral-foreground-rest);\n }\n\n .settings-build-stat-value .prefix,\n .settings-build-stat-value .suffix {\n color: var(--accent-fill-rest);\n }\n\n /*\n * Per-bucket token split, beneath the headline cost. Small paired label/value cells\n * rather than four more stat cards: they are the detail behind the cost above, so they\n * have to read as subordinate to it rather than compete with it. The four buckets ARE\n * the token figure now — there is no merged total anywhere for them to break down.\n */\n .settings-token-breakdown {\n display: flex;\n flex-direction: column;\n\n /*\n * Tight against the buckets below. One design unit rather than two, because each bucket\n * separates its own label from its value by only 2px — at two units the title sat four\n * times further from the bucket labels than they sit from their own numbers, which read\n * as a gap between unrelated blocks instead of a heading over its content.\n */\n gap: calc(var(--design-unit) * 1px);\n margin-bottom: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 2px) calc(var(--design-unit) * 3px);\n background: var(--neutral-layer-1);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n }\n\n /*\n * Titles the box, because nothing else in it named the unit. Same styling and position as\n * the cost box's label, so two boxes sitting side by side are titled the same way; the\n * hierarchy against the bucket labels comes from position, not a second type size.\n */\n .settings-token-breakdown-label {\n font-size: 10px;\n line-height: 1;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-token-buckets {\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 4px);\n }\n\n .settings-token-bucket {\n display: flex;\n\n /*\n * min-content (not 0) so a bucket cannot be shrunk narrower than its own unbreakable label.\n * With the label set to nowrap, a zero minimum would overflow it into the next column instead\n * of wrapping — so the container's flex-wrap takes over and moves a bucket to a second row,\n * which is the degradation we want when the modal is dragged narrow.\n */\n min-width: min-content;\n flex-direction: column;\n gap: 2px;\n }\n\n .settings-token-bucket-label {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n\n /*\n * One line, always. The rate marker is a separate inline box after collapsible whitespace, so\n * a wrappable label gives it a break opportunity of its own — in a narrow column it orphaned\n * onto line 2, which also pushed that bucket's value a line below the other three and broke\n * the row of figures. nowrap removes every break opportunity in the label, the space before\n * the marker included, so no glue character is needed.\n */\n white-space: nowrap;\n }\n\n .settings-token-bucket-value {\n font-size: 13px;\n font-weight: 600;\n color: var(--neutral-foreground-rest);\n }\n\n /*\n * The price-direction marker on a cache bucket's label — down for reads (a fraction of the\n * uncached input rate), up for writes (a premium over it). Three tiers, so a bucket with no\n * marker is the reference rate rather than an unlabelled fourth case.\n *\n * Carried by the label rather than the value, which is what this used to do: cache reads are\n * usually the largest bucket by a wide margin in an agentic session, so the value was muted to\n * stop the biggest number reading as the dominant cost driver. That priced the treatment to the\n * wrong thing — a dimmed 0 (every Gemini cache write) looked disabled next to a normal 0, and a\n * rate is a property of the bucket, not of this turn's figure.\n *\n * Sized down and nudged up rather than tinted: the label is already the hint colour, so a\n * dimmer marker would vanish and a brighter one would out-shout the word it qualifies.\n */\n .settings-token-bucket-rate {\n font-size: 8px;\n line-height: 1;\n vertical-align: 0.15em;\n letter-spacing: 0;\n }\n\n /*\n * Usage-row overrides. Placed after the base rules they refine rather than up beside\n * .settings-usage-row itself, because stylelint's no-descending-specificity rejects a\n * compound selector appearing before the plain one it overrides.\n */\n\n /* Sized by its content; the buckets take the rest, since four cells need the width. */\n .settings-usage-row > .settings-build-stat {\n flex: 0 1 auto;\n }\n\n .settings-usage-row .settings-token-breakdown {\n flex: 1 1 auto;\n\n /* The row owns the spacing now; this centres the column against the taller cost box. */\n justify-content: center;\n margin-bottom: 0;\n }\n\n /*\n * Basis auto, not 0: a zero basis splits the row into four equal columns, so CACHE WRITE is\n * squeezed exactly as hard as INPUT despite being twice the label. Sizing from content gives the\n * long labels the room their text needs and lets the short ones concede it, which is what makes\n * white-space: nowrap above safe — every column starts at least as wide as its own content,\n * then shares the slack. Still grows and shrinks, so the four stay flush edge to edge.\n */\n .settings-usage-row .settings-token-bucket {\n flex: 1 1 auto;\n }\n\n .settings-model-tags {\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .settings-model-tag {\n font-size: 11px;\n font-weight: 600;\n padding: 3px 9px;\n border-radius: 20px;\n font-family: ui-monospace, monospace;\n border: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-model-tag,\n .settings-cost-history-icon {\n --model-tag-color: var(--neutral-foreground-rest);\n\n background: color-mix(\n in srgb,\n var(--model-tag-color) var(--ai-tier-badge-bg-mix),\n var(--neutral-layer-1)\n );\n border-color: color-mix(in srgb, var(--model-tag-color) 20%, var(--neutral-layer-1));\n color: color-mix(in srgb, var(--model-tag-color), white var(--ai-tier-badge-text-lighten));\n }\n\n .settings-cost-history-title {\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: var(--neutral-foreground-hint);\n font-weight: 600;\n margin: calc(var(--design-unit) * 4px) 0 calc(var(--design-unit) * 2px);\n }\n\n /*\n * The heading labels the lifetime card as well as the rows, so the card gives up its own top\n * margin and the gap becomes the heading's alone. Adjacent siblings collapse to the LARGER of\n * the two margins, so leaving both would space the caps 3 units off the block they label while\n * the rows below sit at 2 — reading as though the heading belonged to neither.\n */\n .settings-cost-history-title + .settings-lifetime-usage {\n margin-top: 0;\n }\n\n .settings-cost-history {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n padding-bottom: calc(var(--design-unit) * 2px);\n }\n\n .settings-cost-history-icon {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: 700;\n border: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-cost-history-row {\n display: flex;\n flex-direction: column;\n background: var(--neutral-layer-1);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .settings-cost-history-row-content {\n display: flex;\n align-items: flex-start;\n gap: calc(var(--design-unit) * 2px);\n }\n\n /*\n * All of these carry a ?hidden binding, and all declare display: flex — which silently beat the\n * UA [hidden] { display: none } rule, because author-origin declarations outrank user-agent\n * origin whatever the specificity. Without this, showTokens: false still rendered the full\n * breakdown in the lifetime block, the live block and every history row, and an empty row list\n * still occupied its padding under the lifetime total. Sibling elements that hide correctly do\n * so only by declaring no display at all. Same treatment as .settings-modal-tab-panel[hidden]\n * near the top of this file.\n */\n .settings-usage-row-tokens[hidden],\n .settings-cost-history[hidden],\n .settings-cost-history-row-content[hidden] {\n display: none !important;\n }\n\n /*\n * The buckets inside a history row drop the panel treatment they carry in the summary\n * blocks — the row is already a bordered card, and a second box inside it reads as a\n * nested panel. The adjacent-sibling rule above supplies the separator instead.\n */\n .settings-cost-history-row-breakdown .settings-token-breakdown {\n flex: 1 1 auto;\n margin-bottom: 0;\n padding: 0;\n background: none;\n border: none;\n }\n\n .settings-cost-history-row-content + .settings-cost-history-row-content {\n border-top: 1px solid var(--neutral-stroke-rest);\n margin-top: calc(var(--design-unit) * 2px);\n padding-top: calc(var(--design-unit) * 2px);\n }\n\n .settings-cost-history-row-body {\n flex: 1 1 auto;\n min-width: 0;\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n justify-content: space-between;\n }\n\n /*\n * Holds the cost and the delete button as one centred pair. The button used to be a sibling\n * of the whole row body, kept in place by a -2px nudge tuned for when the metrics column had\n * two lines (cost plus a merged token total). Dropping that second line left the nudge\n * compensating for nothing. Centring the two against each other needs no magic number and\n * cannot drift again if the metrics content changes.\n *\n * NB this rule previously set align-items with no display:flex, so it had no effect at all.\n */\n .settings-cost-history-row-right {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 1px);\n flex: 0 0 auto;\n }\n\n .settings-cost-history-row-cost,\n .settings-cost-history-row-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--neutral-foreground-rest);\n min-width: 0;\n }\n\n .settings-cost-history-row-metrics {\n display: flex;\n flex-direction: column;\n flex: 0 0 auto;\n font-size: 13px;\n font-family: ui-monospace, monospace;\n color: var(--neutral-foreground-rest);\n white-space: nowrap;\n }\n\n .settings-cost-history-row-date {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-cost-history-delete {\n flex: 0 0 auto;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-cost-history-delete:hover {\n color: var(--error-color);\n }\n\n .settings-cost-history ::slotted(*) {\n display: block;\n }\n\n .settings-modal-footer {\n width: 100%;\n }\n\n .settings-done-button {\n margin-left: auto;\n }\n\n .settings-modal-footer-actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--design-unit) * 2px);\n width: 100%;\n }\n\n .settings-disclaimer {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n max-width: 60%;\n line-height: 1.4;\n }\n\n /*\n * Inline spinner shown in the \"Download agent log\" button while the log builds\n * (GENC-1351 §5.8) — the lifetime-stitch path is an async provider round-trip.\n * Sized to the button label and tinted with currentColor so it tracks the\n * button's text colour in every appearance / theme.\n */\n [part='download-button'] .download-spinner {\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-right: calc(var(--design-unit) * 1px);\n vertical-align: -1px;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: download-spin 0.6s linear infinite;\n }\n\n @keyframes download-spin {\n to {\n transform: rotate(360deg);\n }\n }\n`",
|
|
12132
|
+
"default": "css`\n /*\n * Section headings come from the shared fragment the package also exports, so a host titling\n * its own slotted section applies the same rule rather than a copy of it.\n */\n ${assistantSettingsSectionTitleStyles}\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n .settings-modal {\n --ai-tier-badge-bg-mix: 14%;\n --ai-tier-badge-text-lighten: 18%;\n }\n\n .settings-modal::part(dialog) {\n max-width: 620px;\n width: calc(100vw - 48px);\n max-height: calc(100vh - 48px);\n padding: 0;\n }\n\n .settings-modal::part(content) {\n display: flex;\n flex-direction: column;\n min-height: 0;\n padding: 0;\n width: 100%;\n }\n\n .settings-modal::part(top) {\n padding: calc(var(--design-unit) * 4px) calc(var(--design-unit) * 5px);\n border-bottom: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-modal::part(bottom) {\n padding: calc(var(--design-unit) * 4px) calc(var(--design-unit) * 5px);\n border-top: 1px solid var(--neutral-stroke-rest);\n border-bottom-left-radius: var(--card-border-radius, calc(var(--control-corner-radius) * 1px));\n border-bottom-right-radius: var(--card-border-radius, calc(var(--control-corner-radius) * 1px));\n background-color: var(--neutral-layer-2);\n }\n\n .settings-modal-header {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n .settings-modal-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n color: var(--neutral-foreground-rest);\n }\n\n .settings-modal-content {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n }\n\n .settings-modal-tabs::part(tablist) {\n border-bottom: 0;\n padding: 0 calc(var(--design-unit) * 5px);\n column-gap: calc(var(--design-unit) * 5px);\n }\n\n .settings-modal-tabs::part(activeIndicator) {\n height: 2px;\n }\n\n .settings-modal-tab {\n padding: 0;\n font-weight: 600;\n gap: 6px;\n }\n\n .settings-modal-tab[aria-selected='true'] {\n color: var(--neutral-foreground-rest);\n }\n\n .settings-modal-tabs::part(tabpanel) {\n border-top: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-modal-tab-panel {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n padding: 0;\n border-radius: 0;\n }\n\n .settings-modal-tab-panel[hidden] {\n display: none !important;\n }\n\n .settings-modal-body {\n overflow-y: auto;\n padding: 0 calc(var(--design-unit) * 5px) calc(var(--design-unit) * 2px);\n max-height: min(60vh, 520px);\n }\n\n .settings-modal-section {\n padding: calc(var(--design-unit) * 5px) 0;\n border-bottom: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-modal-section:last-child {\n border-bottom: none;\n }\n\n /*\n * Only the spacing. Everything else about this heading comes from the exported fragment\n * above, which the assistant and its hosts share; margin is deliberately not in there,\n * since the gap below a heading depends on the layout around it.\n */\n .ai-settings-section-title {\n margin: 0 0 calc(var(--design-unit) * 3px);\n }\n\n .settings-modal-section-note {\n margin: calc(var(--design-unit) * -2px) 0 calc(var(--design-unit) * 3px);\n font-size: 12px;\n line-height: 1.5;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-modal-section-body {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 4px);\n }\n\n .settings-toggle-row {\n display: flex;\n align-items: flex-start;\n gap: calc(var(--design-unit) * 3px);\n padding: 0 0 calc(var(--design-unit) * 4px) 0;\n border-bottom: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-toggle-row:last-child {\n border-bottom: none;\n padding-bottom: calc(var(--design-unit) * 1px);\n }\n\n .settings-toggle-row.is-stacked {\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n }\n\n /*\n * For rows whose control is a button rather than a switch. The base row top-aligns, which suits\n * a switch (it lands level with the title), but a button is tall enough that top-aligning leaves\n * it above the title-plus-description block it acts on.\n */\n .settings-toggle-row.is-centered {\n align-items: center;\n }\n\n .settings-animation-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.2px);\n padding: calc(var(--design-unit) * 2px);\n gap: calc(var(--design-unit) * 2px);\n }\n\n .settings-animation-list .settings-toggle-row {\n border: 0;\n }\n\n .settings-animation-category {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 4px);\n }\n\n .settings-animation-category-label {\n font-weight: 600;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-toggle-row + .settings-animation-category-label {\n border-top: 1px solid var(--neutral-stroke-rest);\n padding-top: calc(var(--design-unit) * 2px);\n }\n\n .settings-animation-option {\n padding: 0;\n margin: 0;\n }\n\n .settings-animation-option:last-child {\n border-bottom: none;\n padding-bottom: calc(var(--design-unit) * 2px);\n }\n\n .settings-toggle-text {\n flex: 1;\n min-width: 0;\n }\n\n .settings-toggle-title {\n font-size: 14px;\n font-weight: 500;\n color: var(--neutral-foreground-rest);\n }\n\n .settings-toggle-desc {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n line-height: 1.5;\n max-width: 92%;\n }\n\n .settings-toggle-control {\n flex: 0 0 auto;\n min-width: 0;\n }\n\n .settings-toggle-control-wide {\n width: 100%;\n max-width: 280px;\n }\n\n .settings-toggle-row.is-stacked .settings-toggle-desc {\n max-width: none;\n }\n\n .settings-toggle-row.is-stacked .settings-toggle-control-wide {\n width: 100%;\n max-width: none;\n }\n\n /*\n * Sub-heading over the provider toggle group. Unlike the section headings it sits INSIDE\n * .settings-modal-section-body, so the parent's 4-unit flex gap already separates it from the\n * first toggle — and flex does not collapse margins, so the shared rule's 3-unit margin-bottom\n * would add to that gap rather than replace it, leaving the label adrift from the rows it\n * names. Zero the margin and pull back 2 of the 4 gap units, expressed in the same token so it\n * tracks if that gap changes.\n */\n .settings-app-toggles-title {\n margin: 0 0 calc(var(--design-unit) * -2px);\n }\n\n .settings-app-toggle-block {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 1px);\n }\n\n .settings-toggle-hint {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n line-height: 1.4;\n padding-left: calc(var(--design-unit) * 1px);\n font-style: italic;\n }\n\n /*\n * The budget meter (GENC-1464) is the context indicator's money sibling and\n * shares its row anatomy 1:1, so the budget classes JOIN these rules rather\n * than restating them — one place to restyle the header/label/figures shape,\n * and the two indicators cannot drift apart. Design-system tokens only, and\n * unfallbacked: every token here ships a DS default, so a var(--x, y)\n * fallback would be dead code that hides a broken token name (#2411/#2436\n * review rule, pinned by settings-modal.styles.test.ts).\n */\n .settings-context-header,\n .settings-budget-header {\n display: flex;\n justify-content: space-between;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 2px);\n font-size: 12px;\n }\n\n .settings-context-label,\n .settings-budget-label {\n color: var(--neutral-foreground-hint);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n }\n\n .settings-context-tokens,\n .settings-budget-figures {\n color: var(--neutral-foreground-rest);\n }\n\n /* Freshness footer (GENC-1464): refresh button + label under the vendor\n rows, left-aligned — a footnote to the figures above it. The button's\n inline padding is pinned and cancelled by the container margin so the\n ICON GLYPH (not the button box) sits flush with the budget labels'\n left edge, whatever the density tokens say. */\n .settings-budget-toolbar {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: 4px;\n margin-inline-start: -4px;\n }\n\n .settings-budget-refresh::part(control) {\n padding-inline: 4px;\n }\n\n .settings-budget-updated {\n color: var(--neutral-foreground-hint);\n font-size: 11px;\n }\n\n /*\n * ONE rhythm for every meter row. The outer wrapper holds the context\n * indicator and the budget meter; the inner one holds the budget meter's\n * vendor rows — and both gap by the same 2 units (half the section body's 4)\n * so that visually identical meter rows are evenly spaced whatever mix of\n * them is on screen. Without the wrapper the context row inherits the body's\n * 4-unit gap while the vendor rows keep 2, and three identical-looking rows\n * read as an uneven 4/2/2. The wrapper renders only when at least one meter\n * does — see settingsUsageMetersTemplate for why an always-on one would cost\n * a stray gap.\n */\n .settings-usage-meters,\n .settings-budget-usage {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .settings-current-build,\n .settings-lifetime-usage {\n background: var(--neutral-layer-2);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n padding: calc(var(--design-unit) * 4px);\n margin: calc(var(--design-unit) * 3px) 0;\n }\n\n /*\n * Deliberately quieter than the live block: no pulsing badge and no accent, so the eye lands\n * on what is being built now — which is why that block leads the tab and this one follows,\n * under the history heading whose rows it totals.\n */\n .settings-lifetime-usage-top {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n .settings-lifetime-label {\n font-size: 10px;\n line-height: 1;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-current-build-top {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n /*\n * Optically centring these 10px caps against the 14px project name beside them. Flex offers\n * only two alignments and neither lands it, because a box centre and a text baseline are\n * different lines:\n * - align-items: center sits the badge baseline about 1.2px high\n * - align-items: baseline matches baselines, but the caps then read as bottom-aligned\n * against the name's ascenders, so the badge looks low\n * The eye wants the midpoint, so: centre the boxes, then translate down by the ~1px of\n * overshoot. This is a nudge, but it corrects a fixed relationship between two font sizes\n * rather than some neighbouring element's layout, so unlike a margin tuned to a sibling it\n * cannot rot when that sibling changes. In em, so it tracks the badge text.\n *\n * display: block, not inline-flex: a flex container has no text baseline of its own and\n * synthesizes one from its first child, which here is the dot, an empty span. As a block box\n * the badge takes the baseline of its first line, i.e. the text.\n */\n .settings-live-badge {\n display: block;\n font-size: 10px;\n line-height: 1;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--accent-fill-rest);\n white-space: nowrap;\n transform: translateY(0.1em);\n }\n\n .settings-live-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n\n /* Replaces the flex gap the badge no longer has. */\n margin-right: calc(var(--design-unit) * 1px);\n\n /* Centres the dot on the text beside it without disturbing that text's baseline. */\n vertical-align: middle;\n border-radius: 50%;\n background: var(--accent-fill-rest);\n animation: settings-live-pulse 1.6s ease-out infinite;\n }\n\n @keyframes settings-live-pulse {\n 0% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent-fill-rest) 55%, transparent);\n }\n\n 70% {\n box-shadow: 0 0 0 7px transparent;\n }\n\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n\n .settings-current-build-name {\n font-size: 14px;\n line-height: 1;\n font-weight: 600;\n }\n\n /*\n * Cost and the token buckets side by side: one number in its own box, the four buckets\n * sharing the box next to it. Stretch, so the two are the same height however tall the 22px\n * cost value makes the left one.\n */\n .settings-usage-row {\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n gap: calc(var(--design-unit) * 3px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n .settings-usage-row-tokens {\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .settings-build-stat {\n min-width: 0;\n background: var(--neutral-layer-1);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 3px);\n }\n\n .settings-build-stat-label {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-build-stat-value {\n font-size: 22px;\n font-weight: 700;\n margin-top: calc(var(--design-unit) * 1px);\n color: var(--neutral-foreground-rest);\n }\n\n .settings-build-stat-value .prefix,\n .settings-build-stat-value .suffix {\n color: var(--accent-fill-rest);\n }\n\n /*\n * Per-bucket token split, beneath the headline cost. Small paired label/value cells\n * rather than four more stat cards: they are the detail behind the cost above, so they\n * have to read as subordinate to it rather than compete with it. The four buckets ARE\n * the token figure now — there is no merged total anywhere for them to break down.\n */\n .settings-token-breakdown {\n display: flex;\n flex-direction: column;\n\n /*\n * Tight against the buckets below. One design unit rather than two, because each bucket\n * separates its own label from its value by only 2px — at two units the title sat four\n * times further from the bucket labels than they sit from their own numbers, which read\n * as a gap between unrelated blocks instead of a heading over its content.\n */\n gap: calc(var(--design-unit) * 1px);\n margin-bottom: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 2px) calc(var(--design-unit) * 3px);\n background: var(--neutral-layer-1);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n }\n\n /*\n * Titles the box, because nothing else in it named the unit. Same styling and position as\n * the cost box's label, so two boxes sitting side by side are titled the same way; the\n * hierarchy against the bucket labels comes from position, not a second type size.\n */\n .settings-token-breakdown-label {\n font-size: 10px;\n line-height: 1;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-token-buckets {\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 4px);\n }\n\n .settings-token-bucket {\n display: flex;\n\n /*\n * min-content (not 0) so a bucket cannot be shrunk narrower than its own unbreakable label.\n * With the label set to nowrap, a zero minimum would overflow it into the next column instead\n * of wrapping — so the container's flex-wrap takes over and moves a bucket to a second row,\n * which is the degradation we want when the modal is dragged narrow.\n */\n min-width: min-content;\n flex-direction: column;\n gap: 2px;\n }\n\n .settings-token-bucket-label {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--neutral-foreground-hint);\n\n /*\n * One line, always. The rate marker is a separate inline box after collapsible whitespace, so\n * a wrappable label gives it a break opportunity of its own — in a narrow column it orphaned\n * onto line 2, which also pushed that bucket's value a line below the other three and broke\n * the row of figures. nowrap removes every break opportunity in the label, the space before\n * the marker included, so no glue character is needed.\n */\n white-space: nowrap;\n }\n\n .settings-token-bucket-value {\n font-size: 13px;\n font-weight: 600;\n color: var(--neutral-foreground-rest);\n }\n\n /*\n * The price-direction marker on a cache bucket's label — down for reads (a fraction of the\n * uncached input rate), up for writes (a premium over it). Three tiers, so a bucket with no\n * marker is the reference rate rather than an unlabelled fourth case.\n *\n * Carried by the label rather than the value, which is what this used to do: cache reads are\n * usually the largest bucket by a wide margin in an agentic session, so the value was muted to\n * stop the biggest number reading as the dominant cost driver. That priced the treatment to the\n * wrong thing — a dimmed 0 (every Gemini cache write) looked disabled next to a normal 0, and a\n * rate is a property of the bucket, not of this turn's figure.\n *\n * Sized down and nudged up rather than tinted: the label is already the hint colour, so a\n * dimmer marker would vanish and a brighter one would out-shout the word it qualifies.\n */\n .settings-token-bucket-rate {\n font-size: 8px;\n line-height: 1;\n vertical-align: 0.15em;\n letter-spacing: 0;\n }\n\n /*\n * Usage-row overrides. Placed after the base rules they refine rather than up beside\n * .settings-usage-row itself, because stylelint's no-descending-specificity rejects a\n * compound selector appearing before the plain one it overrides.\n */\n\n /* Sized by its content; the buckets take the rest, since four cells need the width. */\n .settings-usage-row > .settings-build-stat {\n flex: 0 1 auto;\n }\n\n .settings-usage-row .settings-token-breakdown {\n flex: 1 1 auto;\n\n /* The row owns the spacing now; this centres the column against the taller cost box. */\n justify-content: center;\n margin-bottom: 0;\n }\n\n /*\n * Basis auto, not 0: a zero basis splits the row into four equal columns, so CACHE WRITE is\n * squeezed exactly as hard as INPUT despite being twice the label. Sizing from content gives the\n * long labels the room their text needs and lets the short ones concede it, which is what makes\n * white-space: nowrap above safe — every column starts at least as wide as its own content,\n * then shares the slack. Still grows and shrinks, so the four stay flush edge to edge.\n */\n .settings-usage-row .settings-token-bucket {\n flex: 1 1 auto;\n }\n\n .settings-model-tags {\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .settings-model-tag {\n font-size: 11px;\n font-weight: 600;\n padding: 3px 9px;\n border-radius: 20px;\n font-family: ui-monospace, monospace;\n border: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-model-tag,\n .settings-cost-history-icon {\n --model-tag-color: var(--neutral-foreground-rest);\n\n background: color-mix(\n in srgb,\n var(--model-tag-color) var(--ai-tier-badge-bg-mix),\n var(--neutral-layer-1)\n );\n border-color: color-mix(in srgb, var(--model-tag-color) 20%, var(--neutral-layer-1));\n color: color-mix(in srgb, var(--model-tag-color), white var(--ai-tier-badge-text-lighten));\n }\n\n .settings-cost-history-title {\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: var(--neutral-foreground-hint);\n font-weight: 600;\n margin: calc(var(--design-unit) * 4px) 0 calc(var(--design-unit) * 2px);\n }\n\n /*\n * The heading labels the lifetime card as well as the rows, so the card gives up its own top\n * margin and the gap becomes the heading's alone. Adjacent siblings collapse to the LARGER of\n * the two margins, so leaving both would space the caps 3 units off the block they label while\n * the rows below sit at 2 — reading as though the heading belonged to neither.\n */\n .settings-cost-history-title + .settings-lifetime-usage {\n margin-top: 0;\n }\n\n .settings-cost-history {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n padding-bottom: calc(var(--design-unit) * 2px);\n }\n\n .settings-cost-history-icon {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: 700;\n border: 1px solid var(--neutral-stroke-rest);\n }\n\n .settings-cost-history-row {\n display: flex;\n flex-direction: column;\n background: var(--neutral-layer-1);\n border: 1px solid var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .settings-cost-history-row-content {\n display: flex;\n align-items: flex-start;\n gap: calc(var(--design-unit) * 2px);\n }\n\n /*\n * All of these carry a ?hidden binding, and all declare display: flex — which silently beat the\n * UA [hidden] { display: none } rule, because author-origin declarations outrank user-agent\n * origin whatever the specificity. Without this, showTokens: false still rendered the full\n * breakdown in the lifetime block, the live block and every history row, and an empty row list\n * still occupied its padding under the lifetime total. Sibling elements that hide correctly do\n * so only by declaring no display at all. Same treatment as .settings-modal-tab-panel[hidden]\n * near the top of this file.\n */\n .settings-usage-row-tokens[hidden],\n .settings-cost-history[hidden],\n .settings-cost-history-row-content[hidden] {\n display: none !important;\n }\n\n /*\n * The buckets inside a history row drop the panel treatment they carry in the summary\n * blocks — the row is already a bordered card, and a second box inside it reads as a\n * nested panel. The adjacent-sibling rule above supplies the separator instead.\n */\n .settings-cost-history-row-breakdown .settings-token-breakdown {\n flex: 1 1 auto;\n margin-bottom: 0;\n padding: 0;\n background: none;\n border: none;\n }\n\n .settings-cost-history-row-content + .settings-cost-history-row-content {\n border-top: 1px solid var(--neutral-stroke-rest);\n margin-top: calc(var(--design-unit) * 2px);\n padding-top: calc(var(--design-unit) * 2px);\n }\n\n .settings-cost-history-row-body {\n flex: 1 1 auto;\n min-width: 0;\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n justify-content: space-between;\n }\n\n /*\n * Holds the cost and the delete button as one centred pair. The button used to be a sibling\n * of the whole row body, kept in place by a -2px nudge tuned for when the metrics column had\n * two lines (cost plus a merged token total). Dropping that second line left the nudge\n * compensating for nothing. Centring the two against each other needs no magic number and\n * cannot drift again if the metrics content changes.\n *\n * NB this rule previously set align-items with no display:flex, so it had no effect at all.\n */\n .settings-cost-history-row-right {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 1px);\n flex: 0 0 auto;\n }\n\n .settings-cost-history-row-cost,\n .settings-cost-history-row-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--neutral-foreground-rest);\n min-width: 0;\n }\n\n .settings-cost-history-row-metrics {\n display: flex;\n flex-direction: column;\n flex: 0 0 auto;\n font-size: 13px;\n font-family: ui-monospace, monospace;\n color: var(--neutral-foreground-rest);\n white-space: nowrap;\n }\n\n .settings-cost-history-row-date {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-cost-history-delete {\n flex: 0 0 auto;\n color: var(--neutral-foreground-hint);\n }\n\n .settings-cost-history-delete:hover {\n color: var(--error-color);\n }\n\n .settings-cost-history ::slotted(*) {\n display: block;\n }\n\n .settings-modal-footer {\n width: 100%;\n }\n\n .settings-done-button {\n margin-left: auto;\n }\n\n .settings-modal-footer-actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--design-unit) * 2px);\n width: 100%;\n }\n\n .settings-disclaimer {\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n max-width: 60%;\n line-height: 1.4;\n }\n\n /* The agent-log row's two actions (Download / Send) side by side. */\n .agent-log-actions {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n }\n\n /*\n * Inline spinner shown in the agent-log buttons (Download / Send) while the log\n * builds (GENC-1351 §5.8) — the lifetime-stitch path is an async provider\n * round-trip. Sized to the button label and tinted with currentColor so it tracks\n * the button's text colour in every appearance / theme.\n */\n [part='download-button'] .download-spinner,\n [part='submit-log-button'] .download-spinner {\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-right: calc(var(--design-unit) * 1px);\n vertical-align: -1px;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: download-spin 0.6s linear infinite;\n }\n\n @keyframes download-spin {\n to {\n transform: rotate(360deg);\n }\n }\n`",
|
|
12068
12133
|
"description": "Styles for the assistant settings modal (tabs, sections, toggles, cost summary)."
|
|
12069
12134
|
}
|
|
12070
12135
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-modal.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/settings-modal/settings-modal.styles.ts"],"names":[],"mappings":"AAGA,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"settings-modal.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/settings-modal/settings-modal.styles.ts"],"names":[],"mappings":"AAGA,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,iDAw1B/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-modal.template.d.ts","sourceRoot":"","sources":["../../../../src/components/settings-modal/settings-modal.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAqH7D;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC;AA2InD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,2BAA2B,GACtC,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,SAAS,MAAM,KACd,YAAY,CAAC,qBAAqB,CAUpC,CAAC;AA4aF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,oBAAoB,MAAM,KACzB,YAAY,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"settings-modal.template.d.ts","sourceRoot":"","sources":["../../../../src/components/settings-modal/settings-modal.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAqH7D;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC;AA2InD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,2BAA2B,GACtC,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,SAAS,MAAM,KACd,YAAY,CAAC,qBAAqB,CAUpC,CAAC;AA4aF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,oBAAoB,MAAM,KACzB,YAAY,CAAC,qBAAqB,CAoPpC,CAAC"}
|
package/dist/dts/main/main.d.ts
CHANGED
|
@@ -1037,6 +1037,19 @@ export declare class FoundationAiAssistant extends GenesisElement {
|
|
|
1037
1037
|
* element has its own settings modal.
|
|
1038
1038
|
*/
|
|
1039
1039
|
downloadingDebugLog: boolean;
|
|
1040
|
+
/**
|
|
1041
|
+
* True while `submitDebugLog` is building and handing off the log. Same role as
|
|
1042
|
+
* `downloadingDebugLog` for the Send button: the lifetime-stitch and the host's
|
|
1043
|
+
* `send` callback are async, so the button needs a visible in-flight state.
|
|
1044
|
+
*/
|
|
1045
|
+
submittingDebugLog: boolean;
|
|
1046
|
+
/**
|
|
1047
|
+
* Outcome of the last log submission, shown briefly on the button ('Sent' /
|
|
1048
|
+
* 'Failed — retry') then cleared by `setDebugLogSubmitResult`'s timer. `null` when idle.
|
|
1049
|
+
*/
|
|
1050
|
+
debugLogSubmitResult: 'sent' | 'error' | null;
|
|
1051
|
+
/** Timer that clears `debugLogSubmitResult` back to idle. */
|
|
1052
|
+
private debugLogSubmitResultTimer?;
|
|
1040
1053
|
/** Active tab inside the settings modal. */
|
|
1041
1054
|
settingsModalTab: SettingsModalTab;
|
|
1042
1055
|
/** Bound to the design-system modal via the template ref. */
|
|
@@ -1883,6 +1896,13 @@ export declare class FoundationAiAssistant extends GenesisElement {
|
|
|
1883
1896
|
get settingsCostTabVisible(): boolean;
|
|
1884
1897
|
/** Whether session token usage should render on the Usage tab. */
|
|
1885
1898
|
get settingsSessionTokensVisible(): boolean;
|
|
1899
|
+
/**
|
|
1900
|
+
* Whether the settings "Agent log" section renders — shown when either action is
|
|
1901
|
+
* enabled: the download button (`allowDebugDownload`) or the host-transport Send
|
|
1902
|
+
* button (`debugLogSubmit`). Each button is additionally gated on its own flag
|
|
1903
|
+
* inside the section, so a host can enable one without the other.
|
|
1904
|
+
*/
|
|
1905
|
+
get settingsAgentLogSectionVisible(): boolean;
|
|
1886
1906
|
/** Whether the chat header (and settings cog) should render. */
|
|
1887
1907
|
get settingsCogVisible(): boolean;
|
|
1888
1908
|
openSettingsModal(): void;
|
|
@@ -1963,6 +1983,18 @@ export declare class FoundationAiAssistant extends GenesisElement {
|
|
|
1963
1983
|
*/
|
|
1964
1984
|
private buildMetaSnapshot;
|
|
1965
1985
|
downloadDebugLog(): Promise<void>;
|
|
1986
|
+
/**
|
|
1987
|
+
* Hand the agent log to the host's `ui.debugLogSubmit.send` callback — the Send
|
|
1988
|
+
* button next to Download. Reuses `buildDownloadLog`, so the submitted log is
|
|
1989
|
+
* byte-identical to what Download saves (lifetime-stitched when the provider
|
|
1990
|
+
* persists diagnostics). The assistant is vendor-agnostic: the callback owns the
|
|
1991
|
+
* transport (Sentry feedback, a support API, an upload endpoint). Outcome lands in
|
|
1992
|
+
* `debugLogSubmitResult` so the button can flash 'Sent'/'Failed'; failures also go
|
|
1993
|
+
* to the logger with the cause.
|
|
1994
|
+
*/
|
|
1995
|
+
submitDebugLog(): Promise<void>;
|
|
1996
|
+
/** Flash the submit outcome on the Send button, then fall back to idle. */
|
|
1997
|
+
private setDebugLogSubmitResult;
|
|
1966
1998
|
/**
|
|
1967
1999
|
* The log to download (GENC-1351 §5.8). When the provider persists diagnostics,
|
|
1968
2000
|
* stitch the **whole lifetime** stream (every page load) rather than just the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/main/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/main/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -826,13 +826,21 @@ export const settingsModalStyles = css `
|
|
|
826
826
|
line-height: 1.4;
|
|
827
827
|
}
|
|
828
828
|
|
|
829
|
+
/* The agent-log row's two actions (Download / Send) side by side. */
|
|
830
|
+
.agent-log-actions {
|
|
831
|
+
display: flex;
|
|
832
|
+
align-items: center;
|
|
833
|
+
gap: calc(var(--design-unit) * 2px);
|
|
834
|
+
}
|
|
835
|
+
|
|
829
836
|
/*
|
|
830
|
-
* Inline spinner shown in the
|
|
831
|
-
* (GENC-1351 §5.8) — the lifetime-stitch path is an async provider
|
|
832
|
-
* Sized to the button label and tinted with currentColor so it tracks
|
|
833
|
-
* button's text colour in every appearance / theme.
|
|
837
|
+
* Inline spinner shown in the agent-log buttons (Download / Send) while the log
|
|
838
|
+
* builds (GENC-1351 §5.8) — the lifetime-stitch path is an async provider
|
|
839
|
+
* round-trip. Sized to the button label and tinted with currentColor so it tracks
|
|
840
|
+
* the button's text colour in every appearance / theme.
|
|
834
841
|
*/
|
|
835
|
-
[part='download-button'] .download-spinner
|
|
842
|
+
[part='download-button'] .download-spinner,
|
|
843
|
+
[part='submit-log-button'] .download-spinner {
|
|
836
844
|
display: inline-block;
|
|
837
845
|
width: 12px;
|
|
838
846
|
height: 12px;
|
|
@@ -540,25 +540,55 @@ export const SettingsModalTemplate = (designSystemPrefix) => {
|
|
|
540
540
|
with the assistant's other sections rather than trailing the host's — where, now that the
|
|
541
541
|
host section carries no heading of its own, it read as one more of the host's settings.
|
|
542
542
|
-->
|
|
543
|
-
${when((x) =>
|
|
543
|
+
${when((x) => x.settingsAgentLogSectionVisible, html `
|
|
544
544
|
<section class="settings-modal-section" part="settings-section-agent-log">
|
|
545
545
|
<div class="settings-modal-section-body">
|
|
546
|
-
${settingsToggleRow('
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
546
|
+
${settingsToggleRow('Agent log', "Export a structured debug timeline of this session's agent activity.", 'download-agent-log', html `
|
|
547
|
+
<div class="agent-log-actions" part="agent-log-actions">
|
|
548
|
+
${when((x) => { var _a; return ((_a = x.chatConfig.ui) === null || _a === void 0 ? void 0 : _a.allowDebugDownload) === true; }, html `
|
|
549
|
+
<${buttonTag}
|
|
550
|
+
part="download-button"
|
|
551
|
+
appearance="outline"
|
|
552
|
+
?disabled=${(x) => x.downloadingDebugLog}
|
|
553
|
+
@click=${(x) => x.downloadDebugLog()}
|
|
554
|
+
>
|
|
555
|
+
${when((x) => x.downloadingDebugLog, html `
|
|
556
|
+
<span
|
|
557
|
+
class="download-spinner"
|
|
558
|
+
part="download-spinner"
|
|
559
|
+
aria-hidden="true"
|
|
560
|
+
></span>
|
|
561
|
+
`)}
|
|
562
|
+
${(x) => (x.downloadingDebugLog ? 'Downloading…' : 'Download')}
|
|
563
|
+
</${buttonTag}>
|
|
559
564
|
`)}
|
|
560
|
-
${(x) => (x.
|
|
561
|
-
|
|
565
|
+
${when((x) => { var _a; return ((_a = x.chatConfig.ui) === null || _a === void 0 ? void 0 : _a.debugLogSubmit) != null; }, html `
|
|
566
|
+
<${buttonTag}
|
|
567
|
+
part="submit-log-button"
|
|
568
|
+
appearance="outline"
|
|
569
|
+
?disabled=${(x) => x.submittingDebugLog}
|
|
570
|
+
@click=${(x) => x.submitDebugLog()}
|
|
571
|
+
>
|
|
572
|
+
${when((x) => x.submittingDebugLog, html `
|
|
573
|
+
<span
|
|
574
|
+
class="download-spinner"
|
|
575
|
+
part="download-spinner"
|
|
576
|
+
aria-hidden="true"
|
|
577
|
+
></span>
|
|
578
|
+
`)}
|
|
579
|
+
${(x) => {
|
|
580
|
+
var _a, _b, _c;
|
|
581
|
+
return x.submittingDebugLog
|
|
582
|
+
? 'Sending…'
|
|
583
|
+
: x.debugLogSubmitResult === 'sent'
|
|
584
|
+
? 'Sent'
|
|
585
|
+
: x.debugLogSubmitResult === 'error'
|
|
586
|
+
? 'Failed — retry'
|
|
587
|
+
: ((_c = (_b = (_a = x.chatConfig.ui) === null || _a === void 0 ? void 0 : _a.debugLogSubmit) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : 'Send');
|
|
588
|
+
}}
|
|
589
|
+
</${buttonTag}>
|
|
590
|
+
`)}
|
|
591
|
+
</div>
|
|
562
592
|
`, 'row-centered')}
|
|
563
593
|
</div>
|
|
564
594
|
</section>
|
package/dist/esm/main/main.js
CHANGED
|
@@ -112,6 +112,11 @@ const COMPOSER_MENU_MIN_HEIGHT = 140;
|
|
|
112
112
|
* assistant is running — the Usage tab renders the in-memory list — so the delay is invisible.
|
|
113
113
|
*/
|
|
114
114
|
const LEDGER_FLUSH_DEBOUNCE_MS = 2000;
|
|
115
|
+
/**
|
|
116
|
+
* How long the agent-log Send button shows its 'Sent'/'Failed' outcome before
|
|
117
|
+
* returning to idle — long enough to read, short enough that a retry is never blocked.
|
|
118
|
+
*/
|
|
119
|
+
const DEBUG_LOG_SUBMIT_RESULT_FLASH_MS = 4000;
|
|
115
120
|
/**
|
|
116
121
|
* The image types BOTH vendors accept, and therefore the only ones sent as image blocks.
|
|
117
122
|
*
|
|
@@ -384,6 +389,17 @@ let FoundationAiAssistant = FoundationAiAssistant_1 = class FoundationAiAssistan
|
|
|
384
389
|
* element has its own settings modal.
|
|
385
390
|
*/
|
|
386
391
|
this.downloadingDebugLog = false;
|
|
392
|
+
/**
|
|
393
|
+
* True while `submitDebugLog` is building and handing off the log. Same role as
|
|
394
|
+
* `downloadingDebugLog` for the Send button: the lifetime-stitch and the host's
|
|
395
|
+
* `send` callback are async, so the button needs a visible in-flight state.
|
|
396
|
+
*/
|
|
397
|
+
this.submittingDebugLog = false;
|
|
398
|
+
/**
|
|
399
|
+
* Outcome of the last log submission, shown briefly on the button ('Sent' /
|
|
400
|
+
* 'Failed — retry') then cleared by `setDebugLogSubmitResult`'s timer. `null` when idle.
|
|
401
|
+
*/
|
|
402
|
+
this.debugLogSubmitResult = null;
|
|
387
403
|
/** Active tab inside the settings modal. */
|
|
388
404
|
this.settingsModalTab = 'settings';
|
|
389
405
|
/**
|
|
@@ -2986,6 +3002,9 @@ let FoundationAiAssistant = FoundationAiAssistant_1 = class FoundationAiAssistan
|
|
|
2986
3002
|
super.disconnectedCallback();
|
|
2987
3003
|
this._sessionActive = false;
|
|
2988
3004
|
this.stopLoadingTimer();
|
|
3005
|
+
// The 'Sent'/'Failed' flash timer would otherwise fire against a torn-down element.
|
|
3006
|
+
clearTimeout(this.debugLogSubmitResultTimer);
|
|
3007
|
+
this.debugLogSubmitResultTimer = undefined;
|
|
2989
3008
|
this.state = 'idle';
|
|
2990
3009
|
// Note: `compacting`/`restoring` are NOT cleared here. They're written through the
|
|
2991
3010
|
// in-flight op's captured session store (see `initPersistenceForNewStore` /
|
|
@@ -4348,6 +4367,17 @@ let FoundationAiAssistant = FoundationAiAssistant_1 = class FoundationAiAssistan
|
|
|
4348
4367
|
void this.chatConfig;
|
|
4349
4368
|
return this.resolvedCostHistory.showTokens;
|
|
4350
4369
|
}
|
|
4370
|
+
/**
|
|
4371
|
+
* Whether the settings "Agent log" section renders — shown when either action is
|
|
4372
|
+
* enabled: the download button (`allowDebugDownload`) or the host-transport Send
|
|
4373
|
+
* button (`debugLogSubmit`). Each button is additionally gated on its own flag
|
|
4374
|
+
* inside the section, so a host can enable one without the other.
|
|
4375
|
+
*/
|
|
4376
|
+
get settingsAgentLogSectionVisible() {
|
|
4377
|
+
void this.chatConfig;
|
|
4378
|
+
const ui = this.chatConfig.ui;
|
|
4379
|
+
return (ui === null || ui === void 0 ? void 0 : ui.allowDebugDownload) === true || (ui === null || ui === void 0 ? void 0 : ui.debugLogSubmit) != null;
|
|
4380
|
+
}
|
|
4351
4381
|
/** Whether the chat header (and settings cog) should render. */
|
|
4352
4382
|
get settingsCogVisible() {
|
|
4353
4383
|
void this.chatConfig;
|
|
@@ -4360,6 +4390,7 @@ let FoundationAiAssistant = FoundationAiAssistant_1 = class FoundationAiAssistan
|
|
|
4360
4390
|
(ui === null || ui === void 0 ? void 0 : ui.showNarration) != null ||
|
|
4361
4391
|
(ui === null || ui === void 0 ? void 0 : ui.showAgentSwitchIndicator) != null ||
|
|
4362
4392
|
(ui === null || ui === void 0 ? void 0 : ui.allowDebugDownload) === true ||
|
|
4393
|
+
(ui === null || ui === void 0 ? void 0 : ui.debugLogSubmit) != null ||
|
|
4363
4394
|
(ui === null || ui === void 0 ? void 0 : ui.animations) != null ||
|
|
4364
4395
|
cost.showCost ||
|
|
4365
4396
|
cost.showTokens ||
|
|
@@ -4742,6 +4773,55 @@ let FoundationAiAssistant = FoundationAiAssistant_1 = class FoundationAiAssistan
|
|
|
4742
4773
|
}
|
|
4743
4774
|
});
|
|
4744
4775
|
}
|
|
4776
|
+
/**
|
|
4777
|
+
* Hand the agent log to the host's `ui.debugLogSubmit.send` callback — the Send
|
|
4778
|
+
* button next to Download. Reuses `buildDownloadLog`, so the submitted log is
|
|
4779
|
+
* byte-identical to what Download saves (lifetime-stitched when the provider
|
|
4780
|
+
* persists diagnostics). The assistant is vendor-agnostic: the callback owns the
|
|
4781
|
+
* transport (Sentry feedback, a support API, an upload endpoint). Outcome lands in
|
|
4782
|
+
* `debugLogSubmitResult` so the button can flash 'Sent'/'Failed'; failures also go
|
|
4783
|
+
* to the logger with the cause.
|
|
4784
|
+
*/
|
|
4785
|
+
submitDebugLog() {
|
|
4786
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4787
|
+
var _a, _b, _c, _d;
|
|
4788
|
+
if (this.submittingDebugLog)
|
|
4789
|
+
return;
|
|
4790
|
+
const config = (_a = this.chatConfig.ui) === null || _a === void 0 ? void 0 : _a.debugLogSubmit;
|
|
4791
|
+
if (!config)
|
|
4792
|
+
return;
|
|
4793
|
+
const agentName = (_d = (_c = (_b = this.activeAgent) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : this.headerTitle) !== null && _d !== void 0 ? _d : 'chat';
|
|
4794
|
+
const timestamp = new Date().toISOString().replace(/:/g, '-');
|
|
4795
|
+
const fileStem = agentName.toLowerCase().replace(/\s+/g, '-');
|
|
4796
|
+
this.submittingDebugLog = true;
|
|
4797
|
+
try {
|
|
4798
|
+
const payload = yield this.buildDownloadLog();
|
|
4799
|
+
yield config.send({
|
|
4800
|
+
logJson: JSON.stringify(payload, null, 2),
|
|
4801
|
+
filename: `${fileStem}-${timestamp}.json`,
|
|
4802
|
+
agentName,
|
|
4803
|
+
host: window.location.host,
|
|
4804
|
+
});
|
|
4805
|
+
this.setDebugLogSubmitResult('sent');
|
|
4806
|
+
}
|
|
4807
|
+
catch (e) {
|
|
4808
|
+
logger.error('Submitting agent log failed:', e);
|
|
4809
|
+
this.setDebugLogSubmitResult('error');
|
|
4810
|
+
}
|
|
4811
|
+
finally {
|
|
4812
|
+
this.submittingDebugLog = false;
|
|
4813
|
+
}
|
|
4814
|
+
});
|
|
4815
|
+
}
|
|
4816
|
+
/** Flash the submit outcome on the Send button, then fall back to idle. */
|
|
4817
|
+
setDebugLogSubmitResult(result) {
|
|
4818
|
+
clearTimeout(this.debugLogSubmitResultTimer);
|
|
4819
|
+
this.debugLogSubmitResult = result;
|
|
4820
|
+
this.debugLogSubmitResultTimer = setTimeout(() => {
|
|
4821
|
+
this.debugLogSubmitResult = null;
|
|
4822
|
+
this.debugLogSubmitResultTimer = undefined;
|
|
4823
|
+
}, DEBUG_LOG_SUBMIT_RESULT_FLASH_MS);
|
|
4824
|
+
}
|
|
4745
4825
|
/**
|
|
4746
4826
|
* The log to download (GENC-1351 §5.8). When the provider persists diagnostics,
|
|
4747
4827
|
* stitch the **whole lifetime** stream (every page load) rather than just the
|
|
@@ -5597,6 +5677,12 @@ __decorate([
|
|
|
5597
5677
|
__decorate([
|
|
5598
5678
|
observable
|
|
5599
5679
|
], FoundationAiAssistant.prototype, "downloadingDebugLog", void 0);
|
|
5680
|
+
__decorate([
|
|
5681
|
+
observable
|
|
5682
|
+
], FoundationAiAssistant.prototype, "submittingDebugLog", void 0);
|
|
5683
|
+
__decorate([
|
|
5684
|
+
observable
|
|
5685
|
+
], FoundationAiAssistant.prototype, "debugLogSubmitResult", void 0);
|
|
5600
5686
|
__decorate([
|
|
5601
5687
|
observable
|
|
5602
5688
|
], FoundationAiAssistant.prototype, "settingsModalTab", void 0);
|
|
@@ -5744,6 +5830,9 @@ __decorate([
|
|
|
5744
5830
|
__decorate([
|
|
5745
5831
|
volatile
|
|
5746
5832
|
], FoundationAiAssistant.prototype, "settingsSessionTokensVisible", null);
|
|
5833
|
+
__decorate([
|
|
5834
|
+
volatile
|
|
5835
|
+
], FoundationAiAssistant.prototype, "settingsAgentLogSectionVisible", null);
|
|
5747
5836
|
__decorate([
|
|
5748
5837
|
volatile
|
|
5749
5838
|
], FoundationAiAssistant.prototype, "settingsCogVisible", null);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesislcap/ai-assistant",
|
|
3
3
|
"description": "Genesis AI Assistant micro-frontend",
|
|
4
|
-
"version": "15.23.1-
|
|
4
|
+
"version": "15.23.1-agent-log-submit.1",
|
|
5
5
|
"license": "SEE LICENSE IN license.txt",
|
|
6
6
|
"main": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/ai-assistant.d.ts",
|
|
@@ -74,26 +74,26 @@
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@genesislcap/foundation-testing": "15.23.1-
|
|
78
|
-
"@genesislcap/genx": "15.23.1-
|
|
79
|
-
"@genesislcap/rollup-builder": "15.23.1-
|
|
80
|
-
"@genesislcap/ts-builder": "15.23.1-
|
|
81
|
-
"@genesislcap/uvu-playwright-builder": "15.23.1-
|
|
82
|
-
"@genesislcap/vite-builder": "15.23.1-
|
|
83
|
-
"@genesislcap/webpack-builder": "15.23.1-
|
|
77
|
+
"@genesislcap/foundation-testing": "15.23.1-agent-log-submit.1",
|
|
78
|
+
"@genesislcap/genx": "15.23.1-agent-log-submit.1",
|
|
79
|
+
"@genesislcap/rollup-builder": "15.23.1-agent-log-submit.1",
|
|
80
|
+
"@genesislcap/ts-builder": "15.23.1-agent-log-submit.1",
|
|
81
|
+
"@genesislcap/uvu-playwright-builder": "15.23.1-agent-log-submit.1",
|
|
82
|
+
"@genesislcap/vite-builder": "15.23.1-agent-log-submit.1",
|
|
83
|
+
"@genesislcap/webpack-builder": "15.23.1-agent-log-submit.1",
|
|
84
84
|
"@types/dompurify": "^3.0.5",
|
|
85
85
|
"@types/marked": "^5.0.2",
|
|
86
86
|
"esbuild": "0.25.12"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@genesislcap/foundation-ai": "15.23.1-
|
|
90
|
-
"@genesislcap/foundation-logger": "15.23.1-
|
|
91
|
-
"@genesislcap/foundation-notifications": "15.23.1-
|
|
92
|
-
"@genesislcap/foundation-redux": "15.23.1-
|
|
93
|
-
"@genesislcap/foundation-ui": "15.23.1-
|
|
94
|
-
"@genesislcap/foundation-utils": "15.23.1-
|
|
95
|
-
"@genesislcap/rapid-design-system": "15.23.1-
|
|
96
|
-
"@genesislcap/web-core": "15.23.1-
|
|
89
|
+
"@genesislcap/foundation-ai": "15.23.1-agent-log-submit.1",
|
|
90
|
+
"@genesislcap/foundation-logger": "15.23.1-agent-log-submit.1",
|
|
91
|
+
"@genesislcap/foundation-notifications": "15.23.1-agent-log-submit.1",
|
|
92
|
+
"@genesislcap/foundation-redux": "15.23.1-agent-log-submit.1",
|
|
93
|
+
"@genesislcap/foundation-ui": "15.23.1-agent-log-submit.1",
|
|
94
|
+
"@genesislcap/foundation-utils": "15.23.1-agent-log-submit.1",
|
|
95
|
+
"@genesislcap/rapid-design-system": "15.23.1-agent-log-submit.1",
|
|
96
|
+
"@genesislcap/web-core": "15.23.1-agent-log-submit.1",
|
|
97
97
|
"dompurify": "^3.3.1",
|
|
98
98
|
"marked": "^17.0.3"
|
|
99
99
|
},
|