@genesislcap/ai-assistant 14.488.2-GENC-1351.9 → 14.488.2
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 +2024 -5141
- package/dist/ai-assistant.d.ts +176 -798
- package/dist/custom-elements.json +303 -1342
- package/dist/dts/components/ai-driver/ai-driver.d.ts +8 -32
- package/dist/dts/components/ai-driver/ai-driver.d.ts.map +1 -1
- package/dist/dts/components/chat-driver/chat-driver.d.ts +29 -13
- package/dist/dts/components/chat-driver/chat-driver.d.ts.map +1 -1
- package/dist/dts/components/chat-interaction-wrapper/chat-interaction-wrapper.d.ts +7 -0
- package/dist/dts/components/chat-interaction-wrapper/chat-interaction-wrapper.d.ts.map +1 -1
- package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts +4 -15
- package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts.map +1 -1
- package/dist/dts/components/popout-manager/popout-manager.d.ts +9 -37
- package/dist/dts/components/popout-manager/popout-manager.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.map +1 -1
- package/dist/dts/config/config.d.ts +0 -70
- package/dist/dts/config/config.d.ts.map +1 -1
- package/dist/dts/config/define-stateful-agent.d.ts +1 -73
- package/dist/dts/config/define-stateful-agent.d.ts.map +1 -1
- package/dist/dts/index.d.ts +0 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/main/main.d.ts +87 -256
- 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.map +1 -1
- package/dist/dts/main/main.types.d.ts +0 -55
- package/dist/dts/main/main.types.d.ts.map +1 -1
- package/dist/dts/state/ai-assistant-slice.d.ts +0 -66
- package/dist/dts/state/ai-assistant-slice.d.ts.map +1 -1
- package/dist/dts/state/debug-event-log.d.ts +1 -1
- package/dist/dts/state/debug-event-log.d.ts.map +1 -1
- package/dist/dts/state/session-store.d.ts +0 -6
- package/dist/dts/state/session-store.d.ts.map +1 -1
- package/dist/dts/utils/history-transform.d.ts +0 -38
- package/dist/dts/utils/history-transform.d.ts.map +1 -1
- package/dist/dts/utils/message-partition.d.ts +0 -27
- package/dist/dts/utils/message-partition.d.ts.map +1 -1
- package/dist/esm/components/chat-driver/chat-driver.js +64 -90
- package/dist/esm/components/chat-driver/chat-driver.test.js +45 -0
- package/dist/esm/components/chat-interaction-wrapper/chat-interaction-wrapper.js +35 -5
- package/dist/esm/components/chat-interaction-wrapper/chat-interaction-wrapper.test.js +62 -0
- package/dist/esm/components/orchestrating-driver/orchestrating-driver.js +14 -32
- package/dist/esm/components/popout-manager/popout-manager.js +27 -76
- package/dist/esm/components/settings-modal/settings-modal.styles.js +0 -24
- package/dist/esm/components/settings-modal/settings-modal.template.js +1 -14
- package/dist/esm/config/define-stateful-agent.js +0 -81
- package/dist/esm/index.js +0 -1
- package/dist/esm/main/main.js +200 -763
- package/dist/esm/main/main.styles.js +0 -55
- package/dist/esm/main/main.template.js +10 -94
- package/dist/esm/main/main.types.js +0 -27
- package/dist/esm/state/ai-assistant-slice.js +25 -71
- package/dist/esm/state/debug-event-log.js +0 -9
- package/dist/esm/utils/history-transform.js +0 -101
- package/dist/esm/utils/message-partition.js +2 -30
- package/dist/esm/utils/message-partition.test.js +1 -20
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/src/components/ai-driver/ai-driver.ts +17 -36
- package/src/components/chat-driver/chat-driver.test.ts +71 -0
- package/src/components/chat-driver/chat-driver.ts +69 -92
- package/src/components/chat-interaction-wrapper/chat-interaction-wrapper.test.ts +81 -0
- package/src/components/chat-interaction-wrapper/chat-interaction-wrapper.ts +40 -5
- package/src/components/orchestrating-driver/orchestrating-driver.ts +18 -36
- package/src/components/popout-manager/popout-manager.ts +28 -82
- package/src/components/settings-modal/settings-modal.styles.ts +0 -24
- package/src/components/settings-modal/settings-modal.template.ts +1 -27
- package/src/config/config.ts +0 -71
- package/src/config/define-stateful-agent.ts +0 -134
- package/src/index.ts +0 -1
- package/src/main/main.styles.ts +0 -55
- package/src/main/main.template.ts +11 -121
- package/src/main/main.ts +179 -755
- package/src/main/main.types.ts +0 -59
- package/src/state/ai-assistant-slice.ts +25 -120
- package/src/state/debug-event-log.ts +1 -20
- package/src/utils/history-transform.ts +0 -117
- package/src/utils/message-partition.test.ts +1 -27
- package/src/utils/message-partition.ts +2 -41
- package/dist/dts/components/chat-driver/chat-driver.compact.test.d.ts +0 -2
- package/dist/dts/components/chat-driver/chat-driver.compact.test.d.ts.map +0 -1
- package/dist/dts/components/orchestrating-driver/orchestrating-driver.pin.test.d.ts +0 -2
- package/dist/dts/components/orchestrating-driver/orchestrating-driver.pin.test.d.ts.map +0 -1
- package/dist/dts/state/ai-assistant-slice.test.d.ts +0 -2
- package/dist/dts/state/ai-assistant-slice.test.d.ts.map +0 -1
- package/dist/dts/state/persistence/diagnostics-cursors.d.ts +0 -40
- package/dist/dts/state/persistence/diagnostics-cursors.d.ts.map +0 -1
- package/dist/dts/state/persistence/diagnostics.d.ts +0 -58
- package/dist/dts/state/persistence/diagnostics.d.ts.map +0 -1
- package/dist/dts/state/persistence/diagnostics.test.d.ts +0 -2
- package/dist/dts/state/persistence/diagnostics.test.d.ts.map +0 -1
- package/dist/dts/state/persistence/index.d.ts +0 -7
- package/dist/dts/state/persistence/index.d.ts.map +0 -1
- package/dist/dts/state/persistence/persister-registry.d.ts +0 -17
- package/dist/dts/state/persistence/persister-registry.d.ts.map +0 -1
- package/dist/dts/state/persistence/session-persistence-provider.d.ts +0 -132
- package/dist/dts/state/persistence/session-persistence-provider.d.ts.map +0 -1
- package/dist/dts/state/persistence/session-persistence-provider.test.d.ts +0 -2
- package/dist/dts/state/persistence/session-persistence-provider.test.d.ts.map +0 -1
- package/dist/dts/state/persistence/session-persistence.integration.test.d.ts +0 -2
- package/dist/dts/state/persistence/session-persistence.integration.test.d.ts.map +0 -1
- package/dist/dts/state/persistence/session-persister.d.ts +0 -161
- package/dist/dts/state/persistence/session-persister.d.ts.map +0 -1
- package/dist/dts/state/persistence/session-persister.test.d.ts +0 -2
- package/dist/dts/state/persistence/session-persister.test.d.ts.map +0 -1
- package/dist/dts/state/persistence/session-snapshot.d.ts +0 -209
- package/dist/dts/state/persistence/session-snapshot.d.ts.map +0 -1
- package/dist/dts/state/persistence/session-snapshot.test.d.ts +0 -2
- package/dist/dts/state/persistence/session-snapshot.test.d.ts.map +0 -1
- package/dist/dts/utils/history-transform.test.d.ts +0 -2
- package/dist/dts/utils/history-transform.test.d.ts.map +0 -1
- package/dist/dts/utils/resolve-preference-baseline.d.ts +0 -43
- package/dist/dts/utils/resolve-preference-baseline.d.ts.map +0 -1
- package/dist/dts/utils/resolve-preference-baseline.test.d.ts +0 -2
- package/dist/dts/utils/resolve-preference-baseline.test.d.ts.map +0 -1
- package/dist/dts/utils/with-timeout.d.ts +0 -12
- package/dist/dts/utils/with-timeout.d.ts.map +0 -1
- package/dist/esm/components/chat-driver/chat-driver.compact.test.js +0 -93
- package/dist/esm/components/orchestrating-driver/orchestrating-driver.pin.test.js +0 -48
- package/dist/esm/state/ai-assistant-slice.test.js +0 -65
- package/dist/esm/state/persistence/diagnostics-cursors.js +0 -34
- package/dist/esm/state/persistence/diagnostics.js +0 -81
- package/dist/esm/state/persistence/diagnostics.test.js +0 -72
- package/dist/esm/state/persistence/index.js +0 -3
- package/dist/esm/state/persistence/persister-registry.js +0 -41
- package/dist/esm/state/persistence/session-persistence-provider.js +0 -95
- package/dist/esm/state/persistence/session-persistence-provider.test.js +0 -110
- package/dist/esm/state/persistence/session-persistence.integration.test.js +0 -109
- package/dist/esm/state/persistence/session-persister.js +0 -608
- package/dist/esm/state/persistence/session-persister.test.js +0 -267
- package/dist/esm/state/persistence/session-snapshot.js +0 -231
- package/dist/esm/state/persistence/session-snapshot.test.js +0 -243
- package/dist/esm/utils/history-transform.test.js +0 -137
- package/dist/esm/utils/resolve-preference-baseline.js +0 -53
- package/dist/esm/utils/resolve-preference-baseline.test.js +0 -69
- package/dist/esm/utils/with-timeout.js +0 -28
- package/src/components/chat-driver/chat-driver.compact.test.ts +0 -131
- package/src/components/orchestrating-driver/orchestrating-driver.pin.test.ts +0 -76
- package/src/state/ai-assistant-slice.test.ts +0 -82
- package/src/state/persistence/diagnostics-cursors.ts +0 -66
- package/src/state/persistence/diagnostics.test.ts +0 -95
- package/src/state/persistence/diagnostics.ts +0 -103
- package/src/state/persistence/index.ts +0 -10
- package/src/state/persistence/persister-registry.ts +0 -49
- package/src/state/persistence/session-persistence-provider.test.ts +0 -136
- package/src/state/persistence/session-persistence-provider.ts +0 -202
- package/src/state/persistence/session-persistence.integration.test.ts +0 -134
- package/src/state/persistence/session-persister.test.ts +0 -367
- package/src/state/persistence/session-persister.ts +0 -652
- package/src/state/persistence/session-snapshot.test.ts +0 -339
- package/src/state/persistence/session-snapshot.ts +0 -332
- package/src/utils/history-transform.test.ts +0 -197
- package/src/utils/resolve-preference-baseline.test.ts +0 -84
- package/src/utils/resolve-preference-baseline.ts +0 -80
- package/src/utils/with-timeout.ts +0 -24
|
@@ -119,14 +119,6 @@
|
|
|
119
119
|
"package": "./config/fallback-agents"
|
|
120
120
|
}
|
|
121
121
|
},
|
|
122
|
-
{
|
|
123
|
-
"kind": "js",
|
|
124
|
-
"name": "*",
|
|
125
|
-
"declaration": {
|
|
126
|
-
"name": "*",
|
|
127
|
-
"package": "./state/persistence"
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
122
|
{
|
|
131
123
|
"kind": "js",
|
|
132
124
|
"name": "*",
|
|
@@ -898,37 +890,6 @@
|
|
|
898
890
|
"kind": "javascript-module",
|
|
899
891
|
"path": "src/config/define-stateful-agent.ts",
|
|
900
892
|
"declarations": [
|
|
901
|
-
{
|
|
902
|
-
"kind": "function",
|
|
903
|
-
"name": "restoreMachine",
|
|
904
|
-
"return": {
|
|
905
|
-
"type": {
|
|
906
|
-
"text": "void"
|
|
907
|
-
}
|
|
908
|
-
},
|
|
909
|
-
"parameters": [
|
|
910
|
-
{
|
|
911
|
-
"name": "machine",
|
|
912
|
-
"type": {
|
|
913
|
-
"text": "{ stop: () => void; start: (options?: { state?: unknown }) => void }"
|
|
914
|
-
},
|
|
915
|
-
"description": "the machine to restore (already constructed/started)."
|
|
916
|
-
},
|
|
917
|
-
{
|
|
918
|
-
"name": "restored",
|
|
919
|
-
"type": {
|
|
920
|
-
"text": "unknown"
|
|
921
|
-
},
|
|
922
|
-
"description": "the agent's serialized image (`ctx.restored` in `init`)."
|
|
923
|
-
},
|
|
924
|
-
{
|
|
925
|
-
"name": "key",
|
|
926
|
-
"default": "'machine'",
|
|
927
|
-
"description": "the property the machine occupies in the snapshot; defaults to\n`'machine'` to match the conventional `{ machine }` state bag."
|
|
928
|
-
}
|
|
929
|
-
],
|
|
930
|
-
"description": "Restore a foundation-state-machine instance from a snapshot produced by the\ndefault serializer (or `machine.getPersistedSnapshot()`). Call inside a\nstateful agent's `init` to resume the machine in its exact prior place:\n\n```ts\ninit: ({ restored }) => {\n const machine = new MyMachine();\n restoreMachine(machine, restored); // resume, or no-op on a fresh start\n return { machine };\n}\n```\n\nNo-ops when there is nothing to restore (a fresh session), leaving the\nfreshly-constructed machine in its initial state."
|
|
931
|
-
},
|
|
932
893
|
{
|
|
933
894
|
"kind": "function",
|
|
934
895
|
"name": "defineStatefulAgent",
|
|
@@ -949,14 +910,6 @@
|
|
|
949
910
|
}
|
|
950
911
|
],
|
|
951
912
|
"exports": [
|
|
952
|
-
{
|
|
953
|
-
"kind": "js",
|
|
954
|
-
"name": "restoreMachine",
|
|
955
|
-
"declaration": {
|
|
956
|
-
"name": "restoreMachine",
|
|
957
|
-
"module": "src/config/define-stateful-agent.ts"
|
|
958
|
-
}
|
|
959
|
-
},
|
|
960
913
|
{
|
|
961
914
|
"kind": "js",
|
|
962
915
|
"name": "defineStatefulAgent",
|
|
@@ -1153,14 +1106,6 @@
|
|
|
1153
1106
|
},
|
|
1154
1107
|
"default": "'Genesis Assistant'"
|
|
1155
1108
|
},
|
|
1156
|
-
{
|
|
1157
|
-
"kind": "field",
|
|
1158
|
-
"name": "sessionKey",
|
|
1159
|
-
"type": {
|
|
1160
|
-
"text": "string | undefined"
|
|
1161
|
-
},
|
|
1162
|
-
"description": "Explicit session/persistence key (GENC-1351 §5.12). When set, this is the\nsession identity — the key for the driver/store/persister/diagnostics\nregistries and the `sessionKey` passed to the persistence provider — taking\nprecedence over the DOM `id`. A host that scopes persistence per-entity\n(e.g. one chat session per project) binds this to a stable per-entity id;\nchanging it on a **connected** element re-keys the session in place — tears\ndown the current conversation and restores the new key's — via\n`switchSession`. Falls back to `id` when unset,\nso existing consumers are unaffected."
|
|
1163
|
-
},
|
|
1164
1109
|
{
|
|
1165
1110
|
"kind": "field",
|
|
1166
1111
|
"name": "imageSrc",
|
|
@@ -1261,15 +1206,6 @@
|
|
|
1261
1206
|
},
|
|
1262
1207
|
"default": "{}"
|
|
1263
1208
|
},
|
|
1264
|
-
{
|
|
1265
|
-
"kind": "field",
|
|
1266
|
-
"name": "persistence",
|
|
1267
|
-
"type": {
|
|
1268
|
-
"text": "SessionPersistenceConfig"
|
|
1269
|
-
},
|
|
1270
|
-
"default": "{}",
|
|
1271
|
-
"description": "Optional session persistence (GENC-1351). Off by default — set `enabled`\nand a `provider` (e.g. a `WebStorageSessionProvider`) to have the assistant\nautosave on idle and auto-restore the conversation on page reload. Exposed\nas a top-level property (like `agents`/`providerRegistry`) rather than via\n`chatConfig`, since the provider type lives in this package while\n`ChatConfig` lives in `foundation-ai`."
|
|
1272
|
-
},
|
|
1273
1209
|
{
|
|
1274
1210
|
"kind": "field",
|
|
1275
1211
|
"name": "agentPicker",
|
|
@@ -1310,8 +1246,7 @@
|
|
|
1310
1246
|
"type": {
|
|
1311
1247
|
"text": "SessionStoreReturn | undefined"
|
|
1312
1248
|
},
|
|
1313
|
-
"privacy": "private"
|
|
1314
|
-
"description": "Pointer to this session's redux store. `@observable` (GENC-1351 §5.12) so that\n**swapping** it — the in-place session switch/re-key (`switchSession`) —\nforces every store-backed getter binding to re-evaluate against the NEW store.\nWithout this, FAST's per-store slice tracking would leave the view subscribed\nto the old store after a swap and it wouldn't re-render. (A same-store reset via\nredux actions re-renders without this; a store *swap* needs it.)"
|
|
1249
|
+
"privacy": "private"
|
|
1315
1250
|
},
|
|
1316
1251
|
{
|
|
1317
1252
|
"kind": "field",
|
|
@@ -1435,30 +1370,6 @@
|
|
|
1435
1370
|
},
|
|
1436
1371
|
"description": "Whether the agent picker slide-out panel is open. Lives on the session\nstore so the bubble-dialog and popout-panel instances stay in sync."
|
|
1437
1372
|
},
|
|
1438
|
-
{
|
|
1439
|
-
"kind": "field",
|
|
1440
|
-
"name": "sessionMenuOpen",
|
|
1441
|
-
"type": {
|
|
1442
|
-
"text": "boolean"
|
|
1443
|
-
},
|
|
1444
|
-
"description": "Whether the lifecycle (session) menu slide-out panel is open. Like the\nagent picker, lives on the session store so bubble/popout stay in sync."
|
|
1445
|
-
},
|
|
1446
|
-
{
|
|
1447
|
-
"kind": "field",
|
|
1448
|
-
"name": "compacting",
|
|
1449
|
-
"type": {
|
|
1450
|
-
"text": "boolean"
|
|
1451
|
-
},
|
|
1452
|
-
"description": "Whether a manual compaction is in flight (GENC-1351 §5.7). On the session\nstore (not element-local) so the \"Compacting…\" view + input-disable stay in\nsync across pop-in/out, like the panel flags."
|
|
1453
|
-
},
|
|
1454
|
-
{
|
|
1455
|
-
"kind": "field",
|
|
1456
|
-
"name": "restoring",
|
|
1457
|
-
"type": {
|
|
1458
|
-
"text": "boolean"
|
|
1459
|
-
},
|
|
1460
|
-
"description": "Whether a page-reload restore is in flight (GENC-1351 §6). On the session\nstore (like `compacting`) so the \"Restoring…\" view + input-disable stay in\nsync across pop-in/out. Gating input while true prevents a mid-load send from\nbeing clobbered when the restored history loads."
|
|
1461
|
-
},
|
|
1462
1373
|
{
|
|
1463
1374
|
"kind": "field",
|
|
1464
1375
|
"name": "pinnedAgentName",
|
|
@@ -1760,15 +1671,6 @@
|
|
|
1760
1671
|
"default": "false",
|
|
1761
1672
|
"description": "Whether the settings modal is open."
|
|
1762
1673
|
},
|
|
1763
|
-
{
|
|
1764
|
-
"kind": "field",
|
|
1765
|
-
"name": "downloadingDebugLog",
|
|
1766
|
-
"type": {
|
|
1767
|
-
"text": "boolean"
|
|
1768
|
-
},
|
|
1769
|
-
"default": "false",
|
|
1770
|
-
"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."
|
|
1771
|
-
},
|
|
1772
1674
|
{
|
|
1773
1675
|
"kind": "field",
|
|
1774
1676
|
"name": "settingsModalTab",
|
|
@@ -2031,6 +1933,13 @@
|
|
|
2031
1933
|
"default": "true",
|
|
2032
1934
|
"description": "True when the user's last interaction (pointer or keyboard focus) was inside\nthe assistant. Defaults to true so the assistant claims focus on first mount.\nAuto-focus features (chat input on idle, widget inputs on mount) gate on this\nto avoid stealing focus from elsewhere on the page."
|
|
2033
1935
|
},
|
|
1936
|
+
{
|
|
1937
|
+
"kind": "field",
|
|
1938
|
+
"name": "hostId",
|
|
1939
|
+
"privacy": "private",
|
|
1940
|
+
"readonly": true,
|
|
1941
|
+
"description": "GENC-1410 (Error 3): stable id for this assistant view. Reported to the shared driver so it\ncan elect a single owner to render (and run) each interaction's widget when more than one view\n(e.g. a bubble and a docked panel) is wired to the same driver — so it fires once, not per view."
|
|
1942
|
+
},
|
|
2034
1943
|
{
|
|
2035
1944
|
"kind": "field",
|
|
2036
1945
|
"name": "_handleGlobalInteraction",
|
|
@@ -2112,36 +2021,6 @@
|
|
|
2112
2021
|
"privacy": "private",
|
|
2113
2022
|
"description": "Unsubscribes a one-shot state subscription created when this element connects\nmid-execution. The subscription watches for `state` becoming 'idle' so that\nthis element can stop its loading timer and sync the halo even when the\noriginating `send()` ran on a different element instance."
|
|
2114
2023
|
},
|
|
2115
|
-
{
|
|
2116
|
-
"kind": "field",
|
|
2117
|
-
"name": "_applyingPreferences",
|
|
2118
|
-
"type": {
|
|
2119
|
-
"text": "boolean"
|
|
2120
|
-
},
|
|
2121
|
-
"privacy": "private",
|
|
2122
|
-
"default": "false",
|
|
2123
|
-
"description": "True while UI preferences are being applied programmatically (config defaults\non connect, or a loaded-preferences restore) — suppresses the save hook so we\ndon't persist config defaults or re-persist what we just loaded. Cleared once\nthe apply completes; a genuine *user* toggle (menu switch) runs with it false\nand saves (GENC-1351)."
|
|
2124
|
-
},
|
|
2125
|
-
{
|
|
2126
|
-
"kind": "field",
|
|
2127
|
-
"name": "_freshStore",
|
|
2128
|
-
"type": {
|
|
2129
|
-
"text": "boolean"
|
|
2130
|
-
},
|
|
2131
|
-
"privacy": "private",
|
|
2132
|
-
"default": "false",
|
|
2133
|
-
"description": "Fresh-store flag (`= isNewStore`) captured in `connectedCallback`. Only a\nfreshly created store takes the config/stored-prefs baseline; an existing\nstore — a reload with a live in-realm store, or the popped-out second instance\n— already holds the correct state, so `applyPreferenceBaseline` no-ops for it."
|
|
2134
|
-
},
|
|
2135
|
-
{
|
|
2136
|
-
"kind": "field",
|
|
2137
|
-
"name": "_sessionActive",
|
|
2138
|
-
"type": {
|
|
2139
|
-
"text": "boolean"
|
|
2140
|
-
},
|
|
2141
|
-
"privacy": "private",
|
|
2142
|
-
"default": "false",
|
|
2143
|
-
"description": "True once `connectedCallback` has fully wired the initial session (GENC-1351\n§5.12). Guards `sessionKeyChanged` so the initial, pre-connect `session-key`\nset doesn't trigger a re-key — only a genuine change to a connected element\nswitches the session. Reset on disconnect."
|
|
2144
|
-
},
|
|
2145
2024
|
{
|
|
2146
2025
|
"kind": "field",
|
|
2147
2026
|
"name": "showHalo",
|
|
@@ -2268,82 +2147,6 @@
|
|
|
2268
2147
|
},
|
|
2269
2148
|
"description": "Removes event listeners attached by `wireDriver`. Does not destroy\nthe driver or remove it from the registry."
|
|
2270
2149
|
},
|
|
2271
|
-
{
|
|
2272
|
-
"kind": "method",
|
|
2273
|
-
"name": "activateSession",
|
|
2274
|
-
"privacy": "private",
|
|
2275
|
-
"return": {
|
|
2276
|
-
"type": {
|
|
2277
|
-
"text": "void"
|
|
2278
|
-
}
|
|
2279
|
-
},
|
|
2280
|
-
"parameters": [
|
|
2281
|
-
{
|
|
2282
|
-
"name": "key",
|
|
2283
|
-
"type": {
|
|
2284
|
-
"text": "string"
|
|
2285
|
-
}
|
|
2286
|
-
},
|
|
2287
|
-
{
|
|
2288
|
-
"name": "isNewStore",
|
|
2289
|
-
"type": {
|
|
2290
|
-
"text": "boolean"
|
|
2291
|
-
}
|
|
2292
|
-
}
|
|
2293
|
-
],
|
|
2294
|
-
"description": "Wire up the session identified by `key` on this element: preference baseline,\ndriver (build/reuse) + wiring, restore (fresh store only), and the per-session\nview state (splash, loading-resume, suggestions, context/provider status, cost\nhistory). Extracted from `connectedCallback` (GENC-1351 §5.12) so an in-place\nsession switch (`switchSession`) can re-run exactly this against a new\nkey without re-adding element-lifetime listeners. Session-scoped only — the\nelement-lifetime wiring (DOM/document/window listeners, provider-registry\nsubscription, app-settings, pagehide) stays in `connectedCallback`."
|
|
2295
|
-
},
|
|
2296
|
-
{
|
|
2297
|
-
"kind": "method",
|
|
2298
|
-
"name": "switchSession",
|
|
2299
|
-
"return": {
|
|
2300
|
-
"type": {
|
|
2301
|
-
"text": "void"
|
|
2302
|
-
}
|
|
2303
|
-
},
|
|
2304
|
-
"parameters": [
|
|
2305
|
-
{
|
|
2306
|
-
"name": "oldKey",
|
|
2307
|
-
"type": {
|
|
2308
|
-
"text": "string"
|
|
2309
|
-
},
|
|
2310
|
-
"description": "the state key being switched away from."
|
|
2311
|
-
},
|
|
2312
|
-
{
|
|
2313
|
-
"name": "newKey",
|
|
2314
|
-
"type": {
|
|
2315
|
-
"text": "string"
|
|
2316
|
-
},
|
|
2317
|
-
"description": "the state key to activate."
|
|
2318
|
-
}
|
|
2319
|
-
],
|
|
2320
|
-
"description": "Switch this element to a different session **in place**, without a page reload\n(GENC-1351 §5.12) — the load-a-different-project flow. Tears down the current\nsession's driver + per-key registries and restores the target key's session\n(its transcript and any mid-flow stateful agent). Fired automatically by\n`sessionKeyChanged` when a host rebinds\n`session-key` on a connected element; may also be called directly.\n\nClobber-safe: the outgoing session's pending autosave is cancelled BEFORE the\nstore swaps, so its transcript can never be written to the incoming session's\nfile. Idle-only — a switch while a turn is running is refused.",
|
|
2321
|
-
"privacy": "public"
|
|
2322
|
-
},
|
|
2323
|
-
{
|
|
2324
|
-
"kind": "method",
|
|
2325
|
-
"name": "sessionKeyChanged",
|
|
2326
|
-
"return": {
|
|
2327
|
-
"type": {
|
|
2328
|
-
"text": "void"
|
|
2329
|
-
}
|
|
2330
|
-
},
|
|
2331
|
-
"parameters": [
|
|
2332
|
-
{
|
|
2333
|
-
"name": "oldValue",
|
|
2334
|
-
"type": {
|
|
2335
|
-
"text": "string | undefined"
|
|
2336
|
-
}
|
|
2337
|
-
},
|
|
2338
|
-
{
|
|
2339
|
-
"name": "_newValue",
|
|
2340
|
-
"type": {
|
|
2341
|
-
"text": "string | undefined"
|
|
2342
|
-
}
|
|
2343
|
-
}
|
|
2344
|
-
],
|
|
2345
|
-
"description": "FAST reflection hook for the `session-key` attr: a change on a **connected**\nelement re-keys the session in place (GENC-1351 §5.12). Guarded by\n`_sessionActive` so the initial, pre-connect set does not switch — the first\nkey is wired by `connectedCallback`."
|
|
2346
|
-
},
|
|
2347
2150
|
{
|
|
2348
2151
|
"kind": "method",
|
|
2349
2152
|
"name": "resolveContextLimit",
|
|
@@ -2447,13 +2250,40 @@
|
|
|
2447
2250
|
},
|
|
2448
2251
|
{
|
|
2449
2252
|
"kind": "method",
|
|
2450
|
-
"name": "
|
|
2253
|
+
"name": "claimSideEffect",
|
|
2254
|
+
"return": {
|
|
2255
|
+
"type": {
|
|
2256
|
+
"text": "boolean"
|
|
2257
|
+
}
|
|
2258
|
+
},
|
|
2259
|
+
"parameters": [
|
|
2260
|
+
{
|
|
2261
|
+
"name": "interactionId",
|
|
2262
|
+
"type": {
|
|
2263
|
+
"text": "string"
|
|
2264
|
+
}
|
|
2265
|
+
}
|
|
2266
|
+
],
|
|
2267
|
+
"description": "GENC-1410 (Error 3): claim the right to run a side-effecting interaction's server work for\nTHIS view, via the shared driver's first-writer-wins latch. Returns `true` when this view may\nrun it (first/owning claimant, or a re-render of the same view), `false` when another view\nalready holds it. Fail-open when the driver has no latch. Called by `ai-chat-interaction-wrapper`."
|
|
2268
|
+
},
|
|
2269
|
+
{
|
|
2270
|
+
"kind": "method",
|
|
2271
|
+
"name": "claimInteractionOwnership",
|
|
2451
2272
|
"return": {
|
|
2452
2273
|
"type": {
|
|
2453
2274
|
"text": "void"
|
|
2454
2275
|
}
|
|
2455
2276
|
},
|
|
2456
|
-
"description": "
|
|
2277
|
+
"description": "GENC-1410 (Error 3): mark THIS view as the interaction owner on the shared driver, so it (not a\nsibling view sharing the same driver) is elected to render side-effecting widgets. The bubble\nand docked panel normally claim this automatically on the pop-in / dock lifecycle, but that\nlifecycle only runs once `popout-mode` is active. A host that establishes a view outside that\nlifecycle — e.g. a page that restores a docked assistant from a persisted layout before the\npop-out affordance is enabled — calls this to seize ownership deterministically rather than\nleaving it to the last-interaction / first-registered fallback. Idempotent; safe to call on\nevery layout (re)establish. No-op if the driver was never wired."
|
|
2278
|
+
},
|
|
2279
|
+
{
|
|
2280
|
+
"kind": "method",
|
|
2281
|
+
"name": "handlePopout",
|
|
2282
|
+
"return": {
|
|
2283
|
+
"type": {
|
|
2284
|
+
"text": "void"
|
|
2285
|
+
}
|
|
2286
|
+
}
|
|
2457
2287
|
},
|
|
2458
2288
|
{
|
|
2459
2289
|
"kind": "method",
|
|
@@ -2504,236 +2334,101 @@
|
|
|
2504
2334
|
"name": "toggleAgentPicker"
|
|
2505
2335
|
},
|
|
2506
2336
|
{
|
|
2507
|
-
"kind": "
|
|
2508
|
-
"name": "
|
|
2509
|
-
"
|
|
2510
|
-
"
|
|
2337
|
+
"kind": "method",
|
|
2338
|
+
"name": "setAgent",
|
|
2339
|
+
"return": {
|
|
2340
|
+
"type": {
|
|
2341
|
+
"text": "boolean"
|
|
2342
|
+
}
|
|
2511
2343
|
},
|
|
2512
|
-
"
|
|
2513
|
-
|
|
2344
|
+
"parameters": [
|
|
2345
|
+
{
|
|
2346
|
+
"name": "agentName",
|
|
2347
|
+
"type": {
|
|
2348
|
+
"text": "string"
|
|
2349
|
+
}
|
|
2350
|
+
},
|
|
2351
|
+
{
|
|
2352
|
+
"name": "options",
|
|
2353
|
+
"optional": true,
|
|
2354
|
+
"type": {
|
|
2355
|
+
"text": "{ force?: boolean }"
|
|
2356
|
+
}
|
|
2357
|
+
}
|
|
2358
|
+
],
|
|
2359
|
+
"description": "Programmatically pin an agent by name. Returns `true` if the pin was\napplied, `false` if the agent isn't in the configured agents array or\nthe call was suppressed by `force: false`.\n\nWith `force: false`, the call is a no-op when a `picker.defaultAgent` is\nconfigured and the user has already moved away from it (either by picking\nanother agent or by switching to Auto). This lets hosts seed an opinion\nwithout overriding an explicit user choice.",
|
|
2360
|
+
"privacy": "public"
|
|
2514
2361
|
},
|
|
2515
2362
|
{
|
|
2516
2363
|
"kind": "field",
|
|
2517
|
-
"name": "
|
|
2364
|
+
"name": "agentPickerEnabled",
|
|
2518
2365
|
"type": {
|
|
2519
2366
|
"text": "boolean"
|
|
2520
2367
|
},
|
|
2521
|
-
"
|
|
2522
|
-
|
|
2523
|
-
{
|
|
2524
|
-
"kind": "field",
|
|
2525
|
-
"name": "_sessionMenuToggle",
|
|
2526
|
-
"privacy": "private",
|
|
2527
|
-
"readonly": true,
|
|
2528
|
-
"default": "new AnimatedPanelToggle(\n this,\n '.session-menu-panel',\n SESSION_MENU_CLOSE_MS,\n () => this.sessionMenuOpen,\n (v) => {\n this.sessionMenuOpen = v;\n },\n )"
|
|
2368
|
+
"description": "Whether the picker toggle button should appear. Mirrors the picker's own visibility rule.",
|
|
2369
|
+
"readonly": true
|
|
2529
2370
|
},
|
|
2530
2371
|
{
|
|
2531
2372
|
"kind": "field",
|
|
2532
|
-
"name": "
|
|
2373
|
+
"name": "settingsModelSectionVisible",
|
|
2533
2374
|
"type": {
|
|
2534
2375
|
"text": "boolean"
|
|
2535
2376
|
},
|
|
2536
|
-
"description": "Whether the
|
|
2377
|
+
"description": "Whether the settings modal AI Model section has slotted app content or context usage.",
|
|
2537
2378
|
"readonly": true
|
|
2538
2379
|
},
|
|
2539
2380
|
{
|
|
2540
2381
|
"kind": "field",
|
|
2541
|
-
"name": "
|
|
2382
|
+
"name": "settingsContextUsageVisible",
|
|
2542
2383
|
"type": {
|
|
2543
2384
|
"text": "boolean"
|
|
2544
2385
|
},
|
|
2545
|
-
"description": "
|
|
2386
|
+
"description": "Built-in context window indicator (generic platform concern).",
|
|
2546
2387
|
"readonly": true
|
|
2547
2388
|
},
|
|
2548
2389
|
{
|
|
2549
2390
|
"kind": "field",
|
|
2550
|
-
"name": "
|
|
2391
|
+
"name": "settingsAppSectionVisible",
|
|
2551
2392
|
"type": {
|
|
2552
2393
|
"text": "boolean"
|
|
2553
2394
|
},
|
|
2554
|
-
"description": "Whether
|
|
2395
|
+
"description": "Whether the settings modal UI Builder section should render.",
|
|
2555
2396
|
"readonly": true
|
|
2556
2397
|
},
|
|
2557
2398
|
{
|
|
2558
2399
|
"kind": "field",
|
|
2559
|
-
"name": "
|
|
2400
|
+
"name": "appSettingsSectionTitle",
|
|
2560
2401
|
"type": {
|
|
2561
|
-
"text": "
|
|
2402
|
+
"text": "string"
|
|
2562
2403
|
},
|
|
2563
|
-
"description": "
|
|
2404
|
+
"description": "Section title for the app settings block.",
|
|
2564
2405
|
"readonly": true
|
|
2565
2406
|
},
|
|
2566
2407
|
{
|
|
2567
|
-
"kind": "
|
|
2568
|
-
"name": "
|
|
2408
|
+
"kind": "field",
|
|
2409
|
+
"name": "visibleAppSettingsToggles",
|
|
2410
|
+
"type": {
|
|
2411
|
+
"text": "AssistantAppSettingsToggle[]"
|
|
2412
|
+
},
|
|
2413
|
+
"description": "App toggles currently visible per each entry's `visible()` predicate.",
|
|
2414
|
+
"readonly": true
|
|
2569
2415
|
},
|
|
2570
2416
|
{
|
|
2571
2417
|
"kind": "method",
|
|
2572
|
-
"name": "
|
|
2418
|
+
"name": "getAppSettingValue",
|
|
2419
|
+
"return": {
|
|
2420
|
+
"type": {
|
|
2421
|
+
"text": "boolean"
|
|
2422
|
+
}
|
|
2423
|
+
},
|
|
2573
2424
|
"parameters": [
|
|
2574
2425
|
{
|
|
2575
|
-
"name": "
|
|
2426
|
+
"name": "id",
|
|
2576
2427
|
"type": {
|
|
2577
|
-
"text": "
|
|
2428
|
+
"text": "string"
|
|
2578
2429
|
}
|
|
2579
2430
|
}
|
|
2580
|
-
]
|
|
2581
|
-
"description": "Set persistence on/off for this session (the menu switch). Reassigns the\n`persistence` object so the `@observable` fires. Turning it **off** drops the\nstored snapshot; **on** captures the current chat immediately. Either way the\n*choice* is remembered in the preferences blob (`persistPreferences`) — stored\nindependently of the snapshot, so it survives the clear and re-applies on the\nnext load (GENC-1351)."
|
|
2582
|
-
},
|
|
2583
|
-
{
|
|
2584
|
-
"kind": "method",
|
|
2585
|
-
"name": "togglePersistence",
|
|
2586
|
-
"description": "Toggle persistence (convenience / programmatic)."
|
|
2587
|
-
},
|
|
2588
|
-
{
|
|
2589
|
-
"kind": "method",
|
|
2590
|
-
"name": "gatherPreferences",
|
|
2591
|
-
"privacy": "private",
|
|
2592
|
-
"return": {
|
|
2593
|
-
"type": {
|
|
2594
|
-
"text": "SessionPreferences"
|
|
2595
|
-
}
|
|
2596
|
-
},
|
|
2597
|
-
"description": "Snapshot the user-changeable settings into a persistable preferences blob."
|
|
2598
|
-
},
|
|
2599
|
-
{
|
|
2600
|
-
"kind": "method",
|
|
2601
|
-
"name": "persistPreferences",
|
|
2602
|
-
"privacy": "private",
|
|
2603
|
-
"return": {
|
|
2604
|
-
"type": {
|
|
2605
|
-
"text": "void"
|
|
2606
|
-
}
|
|
2607
|
-
},
|
|
2608
|
-
"description": "Persist the current UI preferences whenever the user changes a setting\n(GENC-1351). Fires **regardless of \"remember chat\"** — display choices are the\nuser's, not tied to whether the chat is remembered — needing only a provider\nthat implements `savePreferences`. No-op while preferences are being applied\nprogrammatically (`_applyingPreferences`), so config defaults and loaded prefs\naren't re-saved."
|
|
2609
|
-
},
|
|
2610
|
-
{
|
|
2611
|
-
"kind": "method",
|
|
2612
|
-
"name": "applyPreferenceBaseline",
|
|
2613
|
-
"privacy": "private",
|
|
2614
|
-
"return": {
|
|
2615
|
-
"type": {
|
|
2616
|
-
"text": "void"
|
|
2617
|
-
}
|
|
2618
|
-
},
|
|
2619
|
-
"description": "Apply the effective UI-preference baseline onto the live toggles for a fresh\nstore (GENC-1351 #2). Precedence, lowest → highest:\n\n slice defaults < `chatConfig.ui` defaults < stored user preferences\n\nRecomputed from scratch (not layered) on every call, because its two inputs\narrive at unpredictable times: `chatConfig` is a parent-supplied `@observable`\nthat may bind *after* `connectedCallback`, and stored prefs load asynchronously.\nSo it re-runs from `connectedCallback`, `chatConfigChanged`, and once\n`loadPreferences` resolves — whichever order they happen in, the final state is\nthe same. No-op once the store isn't fresh (an existing/popped-out store owns\nits state) or the user has toggled something (their choice then wins, and\n`chatConfig` doesn't change post-startup in practice). Save hook suppressed so\napplying the baseline never persists as if it were a user choice.\n\nThis is the fix for \"nuking server prefs drops to all-disabled instead of the\n`chatConfig` defaults\": stored prefs are simply absent, so the baseline falls\nthrough to the config layer — which the old apply-once-on-connect path missed\nwhenever `chatConfig` hadn't bound yet."
|
|
2620
|
-
},
|
|
2621
|
-
{
|
|
2622
|
-
"kind": "method",
|
|
2623
|
-
"name": "compactSession",
|
|
2624
|
-
"return": {
|
|
2625
|
-
"type": {
|
|
2626
|
-
"text": "Promise<void>"
|
|
2627
|
-
}
|
|
2628
|
-
},
|
|
2629
|
-
"description": "Compact the conversation (GENC-1351 §5.7) — the menu's \"Compact\" action.\nDelegates to the driver, which summarizes older turns into a single\n`compacted-summary` message (destructive, atomic). On success records a\nhigh-importance `context.compacted` meta-event capturing the summary; the\nnormal `history-updated` → autosave path then persists the smaller\ntranscript. No-op when there is nothing to compact or the provider cannot\nsummarize (the driver returns `null`)."
|
|
2630
|
-
},
|
|
2631
|
-
{
|
|
2632
|
-
"kind": "method",
|
|
2633
|
-
"name": "clearSession",
|
|
2634
|
-
"return": {
|
|
2635
|
-
"type": {
|
|
2636
|
-
"text": "Promise<void>"
|
|
2637
|
-
}
|
|
2638
|
-
},
|
|
2639
|
-
"description": "Clear the session — the \"New chat\" action (GENC-1351 §5.6). Tears down the\nactive driver (firing the stateful agent's `onDeactivate` → `machine.stop()`),\nresets the store, rebuilds a fresh driver with no history, and wipes durable\nstorage. Mirrors `agentsChanged`'s teardown, minus the history reseed."
|
|
2640
|
-
},
|
|
2641
|
-
{
|
|
2642
|
-
"kind": "method",
|
|
2643
|
-
"name": "setAgent",
|
|
2644
|
-
"return": {
|
|
2645
|
-
"type": {
|
|
2646
|
-
"text": "boolean"
|
|
2647
|
-
}
|
|
2648
|
-
},
|
|
2649
|
-
"parameters": [
|
|
2650
|
-
{
|
|
2651
|
-
"name": "agentName",
|
|
2652
|
-
"type": {
|
|
2653
|
-
"text": "string"
|
|
2654
|
-
}
|
|
2655
|
-
},
|
|
2656
|
-
{
|
|
2657
|
-
"name": "options",
|
|
2658
|
-
"optional": true,
|
|
2659
|
-
"type": {
|
|
2660
|
-
"text": "{ force?: boolean }"
|
|
2661
|
-
}
|
|
2662
|
-
}
|
|
2663
|
-
],
|
|
2664
|
-
"description": "Programmatically pin an agent by name. Returns `true` if the pin was\napplied, `false` if the agent isn't in the configured agents array or\nthe call was suppressed by `force: false`.\n\nWith `force: false`, the call is a no-op when a `picker.defaultAgent` is\nconfigured and the user has already moved away from it (either by picking\nanother agent or by switching to Auto). This lets hosts seed an opinion\nwithout overriding an explicit user choice.",
|
|
2665
|
-
"privacy": "public"
|
|
2666
|
-
},
|
|
2667
|
-
{
|
|
2668
|
-
"kind": "field",
|
|
2669
|
-
"name": "agentPickerEnabled",
|
|
2670
|
-
"type": {
|
|
2671
|
-
"text": "boolean"
|
|
2672
|
-
},
|
|
2673
|
-
"description": "Whether the picker toggle button should appear. Mirrors the picker's own visibility rule.",
|
|
2674
|
-
"readonly": true
|
|
2675
|
-
},
|
|
2676
|
-
{
|
|
2677
|
-
"kind": "field",
|
|
2678
|
-
"name": "settingsModelSectionVisible",
|
|
2679
|
-
"type": {
|
|
2680
|
-
"text": "boolean"
|
|
2681
|
-
},
|
|
2682
|
-
"description": "Whether the settings modal AI Model section has slotted app content or context usage.",
|
|
2683
|
-
"readonly": true
|
|
2684
|
-
},
|
|
2685
|
-
{
|
|
2686
|
-
"kind": "field",
|
|
2687
|
-
"name": "settingsContextUsageVisible",
|
|
2688
|
-
"type": {
|
|
2689
|
-
"text": "boolean"
|
|
2690
|
-
},
|
|
2691
|
-
"description": "Built-in context window indicator (generic platform concern).",
|
|
2692
|
-
"readonly": true
|
|
2693
|
-
},
|
|
2694
|
-
{
|
|
2695
|
-
"kind": "field",
|
|
2696
|
-
"name": "settingsAppSectionVisible",
|
|
2697
|
-
"type": {
|
|
2698
|
-
"text": "boolean"
|
|
2699
|
-
},
|
|
2700
|
-
"description": "Whether the settings modal UI Builder section should render.",
|
|
2701
|
-
"readonly": true
|
|
2702
|
-
},
|
|
2703
|
-
{
|
|
2704
|
-
"kind": "field",
|
|
2705
|
-
"name": "appSettingsSectionTitle",
|
|
2706
|
-
"type": {
|
|
2707
|
-
"text": "string"
|
|
2708
|
-
},
|
|
2709
|
-
"description": "Section title for the app settings block.",
|
|
2710
|
-
"readonly": true
|
|
2711
|
-
},
|
|
2712
|
-
{
|
|
2713
|
-
"kind": "field",
|
|
2714
|
-
"name": "visibleAppSettingsToggles",
|
|
2715
|
-
"type": {
|
|
2716
|
-
"text": "AssistantAppSettingsToggle[]"
|
|
2717
|
-
},
|
|
2718
|
-
"description": "App toggles currently visible per each entry's `visible()` predicate.",
|
|
2719
|
-
"readonly": true
|
|
2720
|
-
},
|
|
2721
|
-
{
|
|
2722
|
-
"kind": "method",
|
|
2723
|
-
"name": "getAppSettingValue",
|
|
2724
|
-
"return": {
|
|
2725
|
-
"type": {
|
|
2726
|
-
"text": "boolean"
|
|
2727
|
-
}
|
|
2728
|
-
},
|
|
2729
|
-
"parameters": [
|
|
2730
|
-
{
|
|
2731
|
-
"name": "id",
|
|
2732
|
-
"type": {
|
|
2733
|
-
"text": "string"
|
|
2734
|
-
}
|
|
2735
|
-
}
|
|
2736
|
-
]
|
|
2431
|
+
]
|
|
2737
2432
|
},
|
|
2738
2433
|
{
|
|
2739
2434
|
"kind": "method",
|
|
@@ -3006,74 +2701,11 @@
|
|
|
3006
2701
|
},
|
|
3007
2702
|
{
|
|
3008
2703
|
"kind": "method",
|
|
3009
|
-
"name": "getDebugLog"
|
|
3010
|
-
"return": {
|
|
3011
|
-
"type": {
|
|
3012
|
-
"text": "DebugLog"
|
|
3013
|
-
}
|
|
3014
|
-
},
|
|
3015
|
-
"description": "The live current-page debug log (`{ readme, timeline, meta }`). @public"
|
|
3016
|
-
},
|
|
3017
|
-
{
|
|
3018
|
-
"kind": "method",
|
|
3019
|
-
"name": "buildDiagnosticEntries",
|
|
3020
|
-
"privacy": "private",
|
|
3021
|
-
"return": {
|
|
3022
|
-
"type": {
|
|
3023
|
-
"text": "DiagnosticEntry[]"
|
|
3024
|
-
}
|
|
3025
|
-
},
|
|
3026
|
-
"description": "Build the current page's diagnostic entries (GENC-1351 §5.8) — the debug-log\ntimeline entries (`message`/`turn`/`event`) plus one `meta-snapshot` carrying\nthe export-time `meta` block. `getDebugLog()` reassembles these into the live\nlog; the persister's forward-capture path (`SessionPersister.flushDiagnostics`,\nfed these via the `getDiagnosticEntries` dep) diffs them against what's already\nbeen appended to the persisted stream."
|
|
3027
|
-
},
|
|
3028
|
-
{
|
|
3029
|
-
"kind": "method",
|
|
3030
|
-
"name": "downloadDebugLog",
|
|
3031
|
-
"return": {
|
|
3032
|
-
"type": {
|
|
3033
|
-
"text": "Promise<void>"
|
|
3034
|
-
}
|
|
3035
|
-
}
|
|
3036
|
-
},
|
|
3037
|
-
{
|
|
3038
|
-
"kind": "method",
|
|
3039
|
-
"name": "buildDownloadLog",
|
|
3040
|
-
"privacy": "private",
|
|
3041
|
-
"return": {
|
|
3042
|
-
"type": {
|
|
3043
|
-
"text": "Promise<DebugLog>"
|
|
3044
|
-
}
|
|
3045
|
-
},
|
|
3046
|
-
"description": "The log to download (GENC-1351 §5.8). When the provider persists diagnostics,\nstitch the **whole lifetime** stream (every page load) rather than just the\ncurrent page's in-memory view: flush the current delta first so it's included,\nthen reassemble everything `loadDiagnostics` returns. Independent of \"remember\nchat\" — diagnostics are a forensic stream keyed on provider capability, not on\nwhether the *chat* is remembered (like preferences). Falls back to the live\ncurrent-page log when diagnostics isn't available or the fetch fails."
|
|
3047
|
-
},
|
|
3048
|
-
{
|
|
3049
|
-
"kind": "method",
|
|
3050
|
-
"name": "persister",
|
|
3051
|
-
"privacy": "private",
|
|
3052
|
-
"return": {
|
|
3053
|
-
"type": {
|
|
3054
|
-
"text": "SessionPersister | undefined"
|
|
3055
|
-
}
|
|
3056
|
-
},
|
|
3057
|
-
"description": "The shared per-session `SessionPersister` that owns restore-core\nsave/restore/freeze (GENC-1351 §5.10). Created once per `stateKey` and shared by\nevery element view (bubble + panel) via the registry, so there is a single save\ntimer + carry-forward cache — no per-view double-writes. The deps are getters so\nthe persister always reads the current driver/store/config and never holds a\nstale reference. `undefined` before the session key is available."
|
|
2704
|
+
"name": "getDebugLog"
|
|
3058
2705
|
},
|
|
3059
2706
|
{
|
|
3060
2707
|
"kind": "method",
|
|
3061
|
-
"name": "
|
|
3062
|
-
"privacy": "private",
|
|
3063
|
-
"return": {
|
|
3064
|
-
"type": {
|
|
3065
|
-
"text": "Promise<void>"
|
|
3066
|
-
}
|
|
3067
|
-
},
|
|
3068
|
-
"parameters": [
|
|
3069
|
-
{
|
|
3070
|
-
"name": "key",
|
|
3071
|
-
"type": {
|
|
3072
|
-
"text": "string"
|
|
3073
|
-
}
|
|
3074
|
-
}
|
|
3075
|
-
],
|
|
3076
|
-
"description": "First-load persistence init for a freshly created store (GENC-1351). Restores\nthe user's remembered persistence-toggle choice — kept independently of the\nsession snapshot so it survives a clear; the host-configured `enabled` is only\nthe default for a first-ever load — then auto-restores the session when\npersistence is (now) on."
|
|
2708
|
+
"name": "downloadDebugLog"
|
|
3077
2709
|
},
|
|
3078
2710
|
{
|
|
3079
2711
|
"kind": "method",
|
|
@@ -3251,15 +2883,6 @@
|
|
|
3251
2883
|
"name": "fetchSuggestions",
|
|
3252
2884
|
"privacy": "private"
|
|
3253
2885
|
},
|
|
3254
|
-
{
|
|
3255
|
-
"kind": "field",
|
|
3256
|
-
"name": "_pendingSendPrompt",
|
|
3257
|
-
"type": {
|
|
3258
|
-
"text": "string | undefined"
|
|
3259
|
-
},
|
|
3260
|
-
"privacy": "private",
|
|
3261
|
-
"description": "User text of the message currently being sent, stashed for the lifetime of `send()`.\n`flow-owner-changed` fires while the driver routes this turn — before the message is\nappended to raw history — so the flow-activation-prompt capture reads this rather than\na stale raw-history lookup. Cleared once the send settles. (GENC-1351 §5.9)"
|
|
3262
|
-
},
|
|
3263
2886
|
{
|
|
3264
2887
|
"kind": "method",
|
|
3265
2888
|
"name": "send",
|
|
@@ -3364,13 +2987,11 @@
|
|
|
3364
2987
|
],
|
|
3365
2988
|
"events": [
|
|
3366
2989
|
{
|
|
2990
|
+
"name": "chat-header-mousedown",
|
|
3367
2991
|
"type": {
|
|
3368
2992
|
"text": "CustomEvent"
|
|
3369
|
-
}
|
|
3370
|
-
|
|
3371
|
-
{
|
|
3372
|
-
"description": "Fired when the user presses the chat header in `popout-mode=\"expand\"` (for drag-to-popout hosts). Bubbles and composed. detail: `ChatHeaderMousedownEventDetail`",
|
|
3373
|
-
"name": "chat-header-mousedown"
|
|
2993
|
+
},
|
|
2994
|
+
"description": "Fired when the user presses the chat header in `popout-mode=\"expand\"` (for drag-to-popout hosts). Bubbles and composed. detail: `ChatHeaderMousedownEventDetail`"
|
|
3374
2995
|
}
|
|
3375
2996
|
],
|
|
3376
2997
|
"attributes": [
|
|
@@ -3382,14 +3003,6 @@
|
|
|
3382
3003
|
"default": "'Genesis Assistant'",
|
|
3383
3004
|
"fieldName": "headerTitle"
|
|
3384
3005
|
},
|
|
3385
|
-
{
|
|
3386
|
-
"name": "session-key",
|
|
3387
|
-
"type": {
|
|
3388
|
-
"text": "string | undefined"
|
|
3389
|
-
},
|
|
3390
|
-
"description": "Explicit session/persistence key (GENC-1351 §5.12). When set, this is the\nsession identity — the key for the driver/store/persister/diagnostics\nregistries and the `sessionKey` passed to the persistence provider — taking\nprecedence over the DOM `id`. A host that scopes persistence per-entity\n(e.g. one chat session per project) binds this to a stable per-entity id;\nchanging it on a **connected** element re-keys the session in place — tears\ndown the current conversation and restores the new key's — via\n`switchSession`. Falls back to `id` when unset,\nso existing consumers are unaffected.",
|
|
3391
|
-
"fieldName": "sessionKey"
|
|
3392
|
-
},
|
|
3393
3006
|
{
|
|
3394
3007
|
"name": "image-src",
|
|
3395
3008
|
"type": {
|
|
@@ -3485,15 +3098,6 @@
|
|
|
3485
3098
|
"kind": "javascript-module",
|
|
3486
3099
|
"path": "src/main/main.types.ts",
|
|
3487
3100
|
"declarations": [
|
|
3488
|
-
{
|
|
3489
|
-
"kind": "variable",
|
|
3490
|
-
"name": "AiAssistantEvent",
|
|
3491
|
-
"type": {
|
|
3492
|
-
"text": "{\n /** Session wiped via the lifecycle menu's Clear. `detail`: `SessionClearedDetail`. */\n SessionCleared: 'session-cleared',\n /** Header pressed in `popout-mode=\"expand\"` (drag-to-popout hosts). `detail`: `ChatHeaderMouseDownDetail`. */\n ChatHeaderMouseDown: 'chat-header-mousedown',\n}"
|
|
3493
|
-
},
|
|
3494
|
-
"default": "{\n /** Session wiped via the lifecycle menu's Clear. `detail`: `SessionClearedDetail`. */\n SessionCleared: 'session-cleared',\n /** Header pressed in `popout-mode=\"expand\"` (drag-to-popout hosts). `detail`: `ChatHeaderMouseDownDetail`. */\n ChatHeaderMouseDown: 'chat-header-mousedown',\n}",
|
|
3495
|
-
"description": "DOM events the `<foundation-ai-assistant>` element dispatches to its host.\nAll bubble and are `composed` (they cross the shadow boundary), so a host can\nlisten on the element — or any ancestor — to react. Use these constants to\nwire listeners instead of hand-typing event-name strings.\n\nAn `as const` map (not a TS `enum` — this package ships none), so it serves as\nboth the listener-name value and, via the same-named type below, a union."
|
|
3496
|
-
},
|
|
3497
3101
|
{
|
|
3498
3102
|
"kind": "variable",
|
|
3499
3103
|
"name": "ANIMATION_DEFS",
|
|
@@ -3523,14 +3127,6 @@
|
|
|
3523
3127
|
"package": "@genesislcap/foundation-ai"
|
|
3524
3128
|
}
|
|
3525
3129
|
},
|
|
3526
|
-
{
|
|
3527
|
-
"kind": "js",
|
|
3528
|
-
"name": "AiAssistantEvent",
|
|
3529
|
-
"declaration": {
|
|
3530
|
-
"name": "AiAssistantEvent",
|
|
3531
|
-
"module": "src/main/main.types.ts"
|
|
3532
|
-
}
|
|
3533
|
-
},
|
|
3534
3130
|
{
|
|
3535
3131
|
"kind": "js",
|
|
3536
3132
|
"name": "ANIMATION_DEFS",
|
|
@@ -3603,22 +3199,13 @@
|
|
|
3603
3199
|
"kind": "javascript-module",
|
|
3604
3200
|
"path": "src/state/ai-assistant-slice.ts",
|
|
3605
3201
|
"declarations": [
|
|
3606
|
-
{
|
|
3607
|
-
"kind": "function",
|
|
3608
|
-
"name": "createDefaultSessionState",
|
|
3609
|
-
"return": {
|
|
3610
|
-
"type": {
|
|
3611
|
-
"text": "AiAssistantSessionState"
|
|
3612
|
-
}
|
|
3613
|
-
},
|
|
3614
|
-
"description": "Build a fresh default session state. A factory (not just a shared const) so\neach call returns independent collections — `resetSession` can hand back a\nclean slate without aliasing the initial state's arrays."
|
|
3615
|
-
},
|
|
3616
3202
|
{
|
|
3617
3203
|
"kind": "variable",
|
|
3618
3204
|
"name": "defaultSessionState",
|
|
3619
3205
|
"type": {
|
|
3620
3206
|
"text": "AiAssistantSessionState"
|
|
3621
|
-
}
|
|
3207
|
+
},
|
|
3208
|
+
"default": "{\n messages: [],\n state: 'idle',\n showToolCalls: false,\n showThinkingSteps: false,\n showNarration: false,\n showAgentSwitchIndicator: false,\n enabledAnimations: [],\n suggestionsState: { status: 'idle' },\n contextTokens: undefined,\n contextLimit: undefined,\n sessionCostUsd: 0,\n sessionTokensConsumed: 0,\n activeModel: undefined,\n activeProviderName: undefined,\n providerStatuses: [],\n activeAgent: undefined,\n pinnedAgentName: null,\n flowOwnerAgentName: null,\n agentPickerOpen: false,\n inputValue: '',\n liveSubAgentTrace: [],\n liveSubAgentName: null,\n inputOverrides: [],\n}"
|
|
3622
3209
|
},
|
|
3623
3210
|
{
|
|
3624
3211
|
"kind": "variable",
|
|
@@ -3626,14 +3213,6 @@
|
|
|
3626
3213
|
}
|
|
3627
3214
|
],
|
|
3628
3215
|
"exports": [
|
|
3629
|
-
{
|
|
3630
|
-
"kind": "js",
|
|
3631
|
-
"name": "createDefaultSessionState",
|
|
3632
|
-
"declaration": {
|
|
3633
|
-
"name": "createDefaultSessionState",
|
|
3634
|
-
"module": "src/state/ai-assistant-slice.ts"
|
|
3635
|
-
}
|
|
3636
|
-
},
|
|
3637
3216
|
{
|
|
3638
3217
|
"kind": "js",
|
|
3639
3218
|
"name": "defaultSessionState",
|
|
@@ -3662,7 +3241,7 @@
|
|
|
3662
3241
|
"type": {
|
|
3663
3242
|
"text": "Record<MetaEventType, MetaEventImportance>"
|
|
3664
3243
|
},
|
|
3665
|
-
"default": "{\n 'turn.error': 'high',\n 'tool.failed': 'high',\n 'subagent.failed': 'high',\n 'file.read-failed': 'high',\n 'suggestions.failed': 'high',\n 'context.threshold-crossed': 'high',\n
|
|
3244
|
+
"default": "{\n 'turn.error': 'high',\n 'tool.failed': 'high',\n 'subagent.failed': 'high',\n 'file.read-failed': 'high',\n 'suggestions.failed': 'high',\n 'context.threshold-crossed': 'high',\n\n 'assistant.connected': 'normal',\n 'assistant.disconnected': 'normal',\n 'assistant.popout': 'normal',\n 'assistant.popin': 'normal',\n 'driver.created': 'normal',\n 'state.changed': 'normal',\n 'turn.start': 'normal',\n 'turn.end': 'normal',\n 'turn.retry': 'normal',\n 'tool.unresolved': 'normal',\n 'subagent.started': 'normal',\n 'subagent.completed': 'normal',\n 'agent.handoff': 'normal',\n 'agent.pinned': 'normal',\n 'agent.unpinned': 'normal',\n 'provider.selected': 'normal',\n 'interaction.requested': 'normal',\n 'interaction.resolved': 'normal',\n\n 'driver.wired': 'low',\n 'driver.unwired': 'low',\n 'context.updated': 'low',\n 'context.condensed': 'low',\n 'panel.toggled': 'low',\n 'attachment.added': 'low',\n}",
|
|
3666
3245
|
"description": "Importance is intrinsic to the event *type*, not the instance, so it's\ndefined once here and stamped automatically by recordMetaEvent — call\nsites never pass it. The `Record` is exhaustive: adding a `MetaEventType`\nwithout a level here is a compile error.\n\n- `high` — failures and hard limits you almost always want to see.\n- `normal` — meaningful session flow you read to follow what happened.\n- `low` — frequent UI / bookkeeping noise, usually safe to skip."
|
|
3667
3246
|
},
|
|
3668
3247
|
{
|
|
@@ -4858,106 +4437,16 @@
|
|
|
4858
4437
|
}
|
|
4859
4438
|
],
|
|
4860
4439
|
"description": "Applies a history cap for sub-agent context: the last `cap` messages are passed\nverbatim; older messages have their tool payloads masked."
|
|
4861
|
-
}
|
|
4862
|
-
|
|
4863
|
-
|
|
4864
|
-
"name": "COMPACT_KEEP_RECENT_MESSAGES",
|
|
4865
|
-
"type": {
|
|
4866
|
-
"text": "number"
|
|
4867
|
-
},
|
|
4868
|
-
"default": "4",
|
|
4869
|
-
"description": "Recent messages kept verbatim when compacting; everything earlier is summarized."
|
|
4870
|
-
},
|
|
4440
|
+
}
|
|
4441
|
+
],
|
|
4442
|
+
"exports": [
|
|
4871
4443
|
{
|
|
4872
|
-
"kind": "
|
|
4873
|
-
"name": "
|
|
4874
|
-
"
|
|
4875
|
-
"
|
|
4876
|
-
|
|
4877
|
-
|
|
4878
|
-
"description": "Don't bother compacting unless at least this many messages would be summarized."
|
|
4879
|
-
},
|
|
4880
|
-
{
|
|
4881
|
-
"kind": "function",
|
|
4882
|
-
"name": "findCompactionCut",
|
|
4883
|
-
"return": {
|
|
4884
|
-
"type": {
|
|
4885
|
-
"text": "number | null"
|
|
4886
|
-
}
|
|
4887
|
-
},
|
|
4888
|
-
"parameters": [
|
|
4889
|
-
{
|
|
4890
|
-
"name": "history",
|
|
4891
|
-
"type": {
|
|
4892
|
-
"text": "readonly ChatMessage[]"
|
|
4893
|
-
}
|
|
4894
|
-
}
|
|
4895
|
-
],
|
|
4896
|
-
"description": "Index at which the verbatim tail begins — everything before it gets summarized.\nThe tail starts on a clean turn boundary (a `user` message): a user message\nnever appears between a `tool_use` and its `tool_result`, so cutting there\nguarantees the summarized region is tool-pair-balanced (compaction only runs\nwhen idle, so history is turn-complete). Returns `null` when there is nothing\nworth compacting (too short, or no earlier user boundary) — e.g. a freshly\nrestored session whose only user turn is the current one."
|
|
4897
|
-
},
|
|
4898
|
-
{
|
|
4899
|
-
"kind": "function",
|
|
4900
|
-
"name": "buildCompactionSummaryPrompt",
|
|
4901
|
-
"return": {
|
|
4902
|
-
"type": {
|
|
4903
|
-
"text": "{\n systemPrompt: string;\n userMessage: string;\n}"
|
|
4904
|
-
}
|
|
4905
|
-
},
|
|
4906
|
-
"parameters": [
|
|
4907
|
-
{
|
|
4908
|
-
"name": "toCompact",
|
|
4909
|
-
"type": {
|
|
4910
|
-
"text": "readonly ChatMessage[]"
|
|
4911
|
-
}
|
|
4912
|
-
}
|
|
4913
|
-
],
|
|
4914
|
-
"description": "Build the one-shot summarizer prompt for a run of older messages (used with\n`AIProvider.prompt`). Mirrors the `<conversation_history>` block convention\nthat suggestions use. Any existing `compacted-summary` at the head is folded\nin (rendered as prior-summary context), so rolling re-compaction produces one\ncombined summary."
|
|
4915
|
-
},
|
|
4916
|
-
{
|
|
4917
|
-
"kind": "function",
|
|
4918
|
-
"name": "normalizeForProvider",
|
|
4919
|
-
"return": {
|
|
4920
|
-
"type": {
|
|
4921
|
-
"text": "ChatMessage[]"
|
|
4922
|
-
}
|
|
4923
|
-
},
|
|
4924
|
-
"parameters": [
|
|
4925
|
-
{
|
|
4926
|
-
"name": "history",
|
|
4927
|
-
"type": {
|
|
4928
|
-
"text": "readonly ChatMessage[]"
|
|
4929
|
-
}
|
|
4930
|
-
}
|
|
4931
|
-
],
|
|
4932
|
-
"description": "Normalize history for a provider request (GENC-1351 §5.7): translate each\n`compacted-summary` message into a `user` message that wraps its summary in a\n`<conversation_summary>` block, so the raw display-only role never reaches a\ntransport. Other roles pass through untouched. Pure — returns a new array.\n\nApplied at the request-build chokepoint *before* per-agent masking, so the\nguarantee holds for every provider/transport regardless of any optional\nper-agent history transform."
|
|
4933
|
-
},
|
|
4934
|
-
{
|
|
4935
|
-
"kind": "function",
|
|
4936
|
-
"name": "compactionDividerLabel",
|
|
4937
|
-
"return": {
|
|
4938
|
-
"type": {
|
|
4939
|
-
"text": "string"
|
|
4940
|
-
}
|
|
4941
|
-
},
|
|
4942
|
-
"parameters": [
|
|
4943
|
-
{
|
|
4944
|
-
"name": "m",
|
|
4945
|
-
"type": {
|
|
4946
|
-
"text": "ChatMessage"
|
|
4947
|
-
}
|
|
4948
|
-
}
|
|
4949
|
-
],
|
|
4950
|
-
"description": "Human-facing divider label for a `compacted-summary` message."
|
|
4951
|
-
}
|
|
4952
|
-
],
|
|
4953
|
-
"exports": [
|
|
4954
|
-
{
|
|
4955
|
-
"kind": "js",
|
|
4956
|
-
"name": "transformHistoryForAgent",
|
|
4957
|
-
"declaration": {
|
|
4958
|
-
"name": "transformHistoryForAgent",
|
|
4959
|
-
"module": "src/utils/history-transform.ts"
|
|
4960
|
-
}
|
|
4444
|
+
"kind": "js",
|
|
4445
|
+
"name": "transformHistoryForAgent",
|
|
4446
|
+
"declaration": {
|
|
4447
|
+
"name": "transformHistoryForAgent",
|
|
4448
|
+
"module": "src/utils/history-transform.ts"
|
|
4449
|
+
}
|
|
4961
4450
|
},
|
|
4962
4451
|
{
|
|
4963
4452
|
"kind": "js",
|
|
@@ -4966,54 +4455,6 @@
|
|
|
4966
4455
|
"name": "applyHistoryCap",
|
|
4967
4456
|
"module": "src/utils/history-transform.ts"
|
|
4968
4457
|
}
|
|
4969
|
-
},
|
|
4970
|
-
{
|
|
4971
|
-
"kind": "js",
|
|
4972
|
-
"name": "COMPACT_KEEP_RECENT_MESSAGES",
|
|
4973
|
-
"declaration": {
|
|
4974
|
-
"name": "COMPACT_KEEP_RECENT_MESSAGES",
|
|
4975
|
-
"module": "src/utils/history-transform.ts"
|
|
4976
|
-
}
|
|
4977
|
-
},
|
|
4978
|
-
{
|
|
4979
|
-
"kind": "js",
|
|
4980
|
-
"name": "COMPACT_MIN_MESSAGES_TO_COMPACT",
|
|
4981
|
-
"declaration": {
|
|
4982
|
-
"name": "COMPACT_MIN_MESSAGES_TO_COMPACT",
|
|
4983
|
-
"module": "src/utils/history-transform.ts"
|
|
4984
|
-
}
|
|
4985
|
-
},
|
|
4986
|
-
{
|
|
4987
|
-
"kind": "js",
|
|
4988
|
-
"name": "findCompactionCut",
|
|
4989
|
-
"declaration": {
|
|
4990
|
-
"name": "findCompactionCut",
|
|
4991
|
-
"module": "src/utils/history-transform.ts"
|
|
4992
|
-
}
|
|
4993
|
-
},
|
|
4994
|
-
{
|
|
4995
|
-
"kind": "js",
|
|
4996
|
-
"name": "buildCompactionSummaryPrompt",
|
|
4997
|
-
"declaration": {
|
|
4998
|
-
"name": "buildCompactionSummaryPrompt",
|
|
4999
|
-
"module": "src/utils/history-transform.ts"
|
|
5000
|
-
}
|
|
5001
|
-
},
|
|
5002
|
-
{
|
|
5003
|
-
"kind": "js",
|
|
5004
|
-
"name": "normalizeForProvider",
|
|
5005
|
-
"declaration": {
|
|
5006
|
-
"name": "normalizeForProvider",
|
|
5007
|
-
"module": "src/utils/history-transform.ts"
|
|
5008
|
-
}
|
|
5009
|
-
},
|
|
5010
|
-
{
|
|
5011
|
-
"kind": "js",
|
|
5012
|
-
"name": "compactionDividerLabel",
|
|
5013
|
-
"declaration": {
|
|
5014
|
-
"name": "compactionDividerLabel",
|
|
5015
|
-
"module": "src/utils/history-transform.ts"
|
|
5016
|
-
}
|
|
5017
4458
|
}
|
|
5018
4459
|
]
|
|
5019
4460
|
},
|
|
@@ -5072,24 +4513,6 @@
|
|
|
5072
4513
|
"kind": "javascript-module",
|
|
5073
4514
|
"path": "src/utils/message-partition.ts",
|
|
5074
4515
|
"declarations": [
|
|
5075
|
-
{
|
|
5076
|
-
"kind": "function",
|
|
5077
|
-
"name": "isSessionNoticeMarker",
|
|
5078
|
-
"return": {
|
|
5079
|
-
"type": {
|
|
5080
|
-
"text": "boolean"
|
|
5081
|
-
}
|
|
5082
|
-
},
|
|
5083
|
-
"parameters": [
|
|
5084
|
-
{
|
|
5085
|
-
"name": "m",
|
|
5086
|
-
"type": {
|
|
5087
|
-
"text": "ChatMessage"
|
|
5088
|
-
}
|
|
5089
|
-
}
|
|
5090
|
-
],
|
|
5091
|
-
"description": "Either restore notice — both display-only, stripped before persist. @internal"
|
|
5092
|
-
},
|
|
5093
4516
|
{
|
|
5094
4517
|
"kind": "function",
|
|
5095
4518
|
"name": "trailingInteractionRow",
|
|
@@ -5134,14 +4557,6 @@
|
|
|
5134
4557
|
}
|
|
5135
4558
|
],
|
|
5136
4559
|
"exports": [
|
|
5137
|
-
{
|
|
5138
|
-
"kind": "js",
|
|
5139
|
-
"name": "isSessionNoticeMarker",
|
|
5140
|
-
"declaration": {
|
|
5141
|
-
"name": "isSessionNoticeMarker",
|
|
5142
|
-
"module": "src/utils/message-partition.ts"
|
|
5143
|
-
}
|
|
5144
|
-
},
|
|
5145
4560
|
{
|
|
5146
4561
|
"kind": "js",
|
|
5147
4562
|
"name": "trailingInteractionRow",
|
|
@@ -5194,12 +4609,6 @@
|
|
|
5194
4609
|
}
|
|
5195
4610
|
]
|
|
5196
4611
|
},
|
|
5197
|
-
{
|
|
5198
|
-
"kind": "javascript-module",
|
|
5199
|
-
"path": "src/utils/resolve-preference-baseline.ts",
|
|
5200
|
-
"declarations": [],
|
|
5201
|
-
"exports": []
|
|
5202
|
-
},
|
|
5203
4612
|
{
|
|
5204
4613
|
"kind": "javascript-module",
|
|
5205
4614
|
"path": "src/utils/strip-agent-handlers.ts",
|
|
@@ -5312,12 +4721,6 @@
|
|
|
5312
4721
|
}
|
|
5313
4722
|
]
|
|
5314
4723
|
},
|
|
5315
|
-
{
|
|
5316
|
-
"kind": "javascript-module",
|
|
5317
|
-
"path": "src/utils/with-timeout.ts",
|
|
5318
|
-
"declarations": [],
|
|
5319
|
-
"exports": []
|
|
5320
|
-
},
|
|
5321
4724
|
{
|
|
5322
4725
|
"kind": "javascript-module",
|
|
5323
4726
|
"path": "src/components/activity-halo/activity-halo.ts",
|
|
@@ -6251,6 +5654,29 @@
|
|
|
6251
5654
|
"privacy": "private",
|
|
6252
5655
|
"default": "new Map<\n string,\n {\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n /** Present when the call requested a chat-input override. */\n overrideId?: string;\n /** Present when the call set `timeoutMs`; cleared on resolution. */\n timeoutHandle?: ReturnType<typeof setTimeout>;\n }\n >()"
|
|
6253
5656
|
},
|
|
5657
|
+
{
|
|
5658
|
+
"kind": "field",
|
|
5659
|
+
"name": "hosts",
|
|
5660
|
+
"privacy": "private",
|
|
5661
|
+
"default": "new Set<string>()",
|
|
5662
|
+
"description": "Assistant host ids currently wired to this driver, in registration (insertion) order."
|
|
5663
|
+
},
|
|
5664
|
+
{
|
|
5665
|
+
"kind": "field",
|
|
5666
|
+
"name": "lastActiveHostId",
|
|
5667
|
+
"type": {
|
|
5668
|
+
"text": "string | undefined"
|
|
5669
|
+
},
|
|
5670
|
+
"privacy": "private",
|
|
5671
|
+
"description": "The host whose subtree the user most recently interacted in — the primary owner signal."
|
|
5672
|
+
},
|
|
5673
|
+
{
|
|
5674
|
+
"kind": "field",
|
|
5675
|
+
"name": "startedSideEffects",
|
|
5676
|
+
"privacy": "private",
|
|
5677
|
+
"default": "new Map<string, string>()",
|
|
5678
|
+
"description": "Interaction id → host id that claimed its side effect (first-writer-wins latch)."
|
|
5679
|
+
},
|
|
6254
5680
|
{
|
|
6255
5681
|
"kind": "field",
|
|
6256
5682
|
"name": "systemPrompt",
|
|
@@ -7110,32 +6536,101 @@
|
|
|
7110
6536
|
},
|
|
7111
6537
|
{
|
|
7112
6538
|
"kind": "method",
|
|
7113
|
-
"name": "
|
|
6539
|
+
"name": "isBusy",
|
|
7114
6540
|
"return": {
|
|
7115
6541
|
"type": {
|
|
7116
6542
|
"text": "boolean"
|
|
7117
6543
|
}
|
|
6544
|
+
}
|
|
6545
|
+
},
|
|
6546
|
+
{
|
|
6547
|
+
"kind": "method",
|
|
6548
|
+
"name": "registerHost",
|
|
6549
|
+
"return": {
|
|
6550
|
+
"type": {
|
|
6551
|
+
"text": "void"
|
|
6552
|
+
}
|
|
6553
|
+
},
|
|
6554
|
+
"parameters": [
|
|
6555
|
+
{
|
|
6556
|
+
"name": "hostId",
|
|
6557
|
+
"type": {
|
|
6558
|
+
"text": "string"
|
|
6559
|
+
}
|
|
6560
|
+
}
|
|
6561
|
+
],
|
|
6562
|
+
"description": "Register an assistant view (host) wired to this shared driver. @internal"
|
|
6563
|
+
},
|
|
6564
|
+
{
|
|
6565
|
+
"kind": "method",
|
|
6566
|
+
"name": "unregisterHost",
|
|
6567
|
+
"return": {
|
|
6568
|
+
"type": {
|
|
6569
|
+
"text": "void"
|
|
6570
|
+
}
|
|
7118
6571
|
},
|
|
7119
|
-
"
|
|
6572
|
+
"parameters": [
|
|
6573
|
+
{
|
|
6574
|
+
"name": "hostId",
|
|
6575
|
+
"type": {
|
|
6576
|
+
"text": "string"
|
|
6577
|
+
}
|
|
6578
|
+
}
|
|
6579
|
+
],
|
|
6580
|
+
"description": "Deregister a host on unwire/disconnect. @internal"
|
|
7120
6581
|
},
|
|
7121
6582
|
{
|
|
7122
6583
|
"kind": "method",
|
|
7123
|
-
"name": "
|
|
6584
|
+
"name": "setActiveHost",
|
|
7124
6585
|
"return": {
|
|
7125
6586
|
"type": {
|
|
7126
|
-
"text": "
|
|
6587
|
+
"text": "void"
|
|
7127
6588
|
}
|
|
7128
6589
|
},
|
|
7129
|
-
"
|
|
6590
|
+
"parameters": [
|
|
6591
|
+
{
|
|
6592
|
+
"name": "hostId",
|
|
6593
|
+
"type": {
|
|
6594
|
+
"text": "string"
|
|
6595
|
+
}
|
|
6596
|
+
}
|
|
6597
|
+
],
|
|
6598
|
+
"description": "Record the host whose subtree the user most recently interacted in — the primary signal for\nelecting which single view renders an interaction's widget. Sticky (unlike focus): it only\nmoves when the user actually uses a different assistant view, not when they click elsewhere\nin the layout. @internal"
|
|
7130
6599
|
},
|
|
7131
6600
|
{
|
|
7132
6601
|
"kind": "method",
|
|
7133
|
-
"name": "
|
|
6602
|
+
"name": "claimSideEffect",
|
|
7134
6603
|
"return": {
|
|
7135
6604
|
"type": {
|
|
7136
6605
|
"text": "boolean"
|
|
7137
6606
|
}
|
|
7138
|
-
}
|
|
6607
|
+
},
|
|
6608
|
+
"parameters": [
|
|
6609
|
+
{
|
|
6610
|
+
"name": "interactionId",
|
|
6611
|
+
"type": {
|
|
6612
|
+
"text": "string"
|
|
6613
|
+
}
|
|
6614
|
+
},
|
|
6615
|
+
{
|
|
6616
|
+
"name": "hostId",
|
|
6617
|
+
"type": {
|
|
6618
|
+
"text": "string"
|
|
6619
|
+
}
|
|
6620
|
+
}
|
|
6621
|
+
],
|
|
6622
|
+
"description": "First-writer-wins latch guarding a side effect. A host claims before rendering the live\nwidget: the first host to claim an interaction id gets `true` (run it); a *different* host\ngets `false` (render passive, do NOT re-fire). Re-claim by the SAME host returns `true`, so a\nbenign re-render of the owner keeps its widget. Single-threaded, so check-and-set is race-free\n— the backstop that makes duplicate execution impossible even if owner election ever slips. @internal"
|
|
6623
|
+
},
|
|
6624
|
+
{
|
|
6625
|
+
"kind": "method",
|
|
6626
|
+
"name": "electInteractionOwner",
|
|
6627
|
+
"privacy": "private",
|
|
6628
|
+
"return": {
|
|
6629
|
+
"type": {
|
|
6630
|
+
"text": "string | undefined"
|
|
6631
|
+
}
|
|
6632
|
+
},
|
|
6633
|
+
"description": "Elect the single host that owns (renders + runs) an interaction's widget: the most-recently-\nactive host if still connected, else a deterministic default (first registered host — `Set`\npreserves insertion order) so exactly one owner is always chosen. Returns `undefined` only when\nno host is registered, in which case the interaction renders everywhere (fail-open) not nowhere."
|
|
7139
6634
|
},
|
|
7140
6635
|
{
|
|
7141
6636
|
"kind": "method",
|
|
@@ -7710,6 +7205,15 @@
|
|
|
7710
7205
|
"default": "undefined",
|
|
7711
7206
|
"description": "The resolved result once the interaction has completed. Forwarded to the rendered component. @internal"
|
|
7712
7207
|
},
|
|
7208
|
+
{
|
|
7209
|
+
"kind": "field",
|
|
7210
|
+
"name": "ownerHostId",
|
|
7211
|
+
"type": {
|
|
7212
|
+
"text": "string"
|
|
7213
|
+
},
|
|
7214
|
+
"default": "''",
|
|
7215
|
+
"description": "GENC-1410 (Error 3): id of the host the driver elected to render (and thus run) this\ninteraction. When several views share one driver, only the matching host renders the live\nwidget; others show a passive placeholder so the widget fires once. Empty = no owner elected\n(single view, or none registered) → render everywhere (fail-open). @internal"
|
|
7216
|
+
},
|
|
7713
7217
|
{
|
|
7714
7218
|
"kind": "field",
|
|
7715
7219
|
"name": "_resizeObserver",
|
|
@@ -8009,16 +7513,6 @@
|
|
|
8009
7513
|
"default": "null",
|
|
8010
7514
|
"description": "Transient flow lock — set when a stateful agent's `onActivate` fires,\ncleared by `releaseActiveAgent`. While non-null, routing precedence goes\nto this agent and the picker is locked. Independent of\n`pinnedAgentName` so completing a flow doesn't wipe the user's sticky\nchoice."
|
|
8011
7515
|
},
|
|
8012
|
-
{
|
|
8013
|
-
"kind": "field",
|
|
8014
|
-
"name": "restoredAgentStates",
|
|
8015
|
-
"type": {
|
|
8016
|
-
"text": "Record<string, unknown>"
|
|
8017
|
-
},
|
|
8018
|
-
"privacy": "private",
|
|
8019
|
-
"default": "{}",
|
|
8020
|
-
"description": "Per-agent restored state for a rehydrated session, keyed by agent name.\nPrimed by the host on restore; each entry is passed to that agent's\n`onActivate` as `ctx.restored` on its next activation, then deleted so a\nlater re-activation starts fresh."
|
|
8021
|
-
},
|
|
8022
7516
|
{
|
|
8023
7517
|
"kind": "field",
|
|
8024
7518
|
"name": "activeAgent",
|
|
@@ -8060,17 +7554,7 @@
|
|
|
8060
7554
|
},
|
|
8061
7555
|
{
|
|
8062
7556
|
"kind": "method",
|
|
8063
|
-
"name": "
|
|
8064
|
-
"return": {
|
|
8065
|
-
"type": {
|
|
8066
|
-
"text": "string"
|
|
8067
|
-
}
|
|
8068
|
-
},
|
|
8069
|
-
"description": "Currently active provider name from the underlying ChatDriver."
|
|
8070
|
-
},
|
|
8071
|
-
{
|
|
8072
|
-
"kind": "method",
|
|
8073
|
-
"name": "setPinnedAgent",
|
|
7557
|
+
"name": "registerHost",
|
|
8074
7558
|
"return": {
|
|
8075
7559
|
"type": {
|
|
8076
7560
|
"text": "void"
|
|
@@ -8078,17 +7562,16 @@
|
|
|
8078
7562
|
},
|
|
8079
7563
|
"parameters": [
|
|
8080
7564
|
{
|
|
8081
|
-
"name": "
|
|
7565
|
+
"name": "hostId",
|
|
8082
7566
|
"type": {
|
|
8083
|
-
"text": "string
|
|
7567
|
+
"text": "string"
|
|
8084
7568
|
}
|
|
8085
7569
|
}
|
|
8086
|
-
]
|
|
8087
|
-
"description": "Pins routing to a specific agent by name. While pinned, the classifier is\nskipped and the continuation tool is hidden from the agent's tool list, so\nthe agent cannot quietly hand back to the orchestrator. Pass `null` to\nreturn to automatic routing."
|
|
7570
|
+
]
|
|
8088
7571
|
},
|
|
8089
7572
|
{
|
|
8090
7573
|
"kind": "method",
|
|
8091
|
-
"name": "
|
|
7574
|
+
"name": "unregisterHost",
|
|
8092
7575
|
"return": {
|
|
8093
7576
|
"type": {
|
|
8094
7577
|
"text": "void"
|
|
@@ -8096,17 +7579,16 @@
|
|
|
8096
7579
|
},
|
|
8097
7580
|
"parameters": [
|
|
8098
7581
|
{
|
|
8099
|
-
"name": "
|
|
7582
|
+
"name": "hostId",
|
|
8100
7583
|
"type": {
|
|
8101
|
-
"text": "string
|
|
7584
|
+
"text": "string"
|
|
8102
7585
|
}
|
|
8103
7586
|
}
|
|
8104
|
-
]
|
|
8105
|
-
"description": "Set the flow-owner lock — used to restore state from Redux on driver\nreconstruction (agents-array changes, pop-in/pop-out). Not intended for\nexternal callers to manipulate routing; that's what `setPinnedAgent` is\nfor."
|
|
7587
|
+
]
|
|
8106
7588
|
},
|
|
8107
7589
|
{
|
|
8108
7590
|
"kind": "method",
|
|
8109
|
-
"name": "
|
|
7591
|
+
"name": "setActiveHost",
|
|
8110
7592
|
"return": {
|
|
8111
7593
|
"type": {
|
|
8112
7594
|
"text": "void"
|
|
@@ -8114,41 +7596,107 @@
|
|
|
8114
7596
|
},
|
|
8115
7597
|
"parameters": [
|
|
8116
7598
|
{
|
|
8117
|
-
"name": "
|
|
7599
|
+
"name": "hostId",
|
|
8118
7600
|
"type": {
|
|
8119
|
-
"text": "
|
|
7601
|
+
"text": "string"
|
|
8120
7602
|
}
|
|
8121
7603
|
}
|
|
8122
7604
|
]
|
|
8123
7605
|
},
|
|
8124
7606
|
{
|
|
8125
7607
|
"kind": "method",
|
|
8126
|
-
"name": "
|
|
7608
|
+
"name": "claimSideEffect",
|
|
8127
7609
|
"return": {
|
|
8128
7610
|
"type": {
|
|
8129
|
-
"text": "
|
|
7611
|
+
"text": "boolean"
|
|
8130
7612
|
}
|
|
8131
|
-
}
|
|
7613
|
+
},
|
|
7614
|
+
"parameters": [
|
|
7615
|
+
{
|
|
7616
|
+
"name": "interactionId",
|
|
7617
|
+
"type": {
|
|
7618
|
+
"text": "string"
|
|
7619
|
+
}
|
|
7620
|
+
},
|
|
7621
|
+
{
|
|
7622
|
+
"name": "hostId",
|
|
7623
|
+
"type": {
|
|
7624
|
+
"text": "string"
|
|
7625
|
+
}
|
|
7626
|
+
}
|
|
7627
|
+
]
|
|
8132
7628
|
},
|
|
8133
7629
|
{
|
|
8134
7630
|
"kind": "method",
|
|
8135
|
-
"name": "
|
|
7631
|
+
"name": "getActiveProviderName",
|
|
8136
7632
|
"return": {
|
|
8137
7633
|
"type": {
|
|
8138
|
-
"text": "
|
|
7634
|
+
"text": "string"
|
|
8139
7635
|
}
|
|
8140
7636
|
},
|
|
8141
|
-
"description": "
|
|
7637
|
+
"description": "Currently active provider name from the underlying ChatDriver."
|
|
8142
7638
|
},
|
|
8143
7639
|
{
|
|
8144
7640
|
"kind": "method",
|
|
8145
|
-
"name": "
|
|
7641
|
+
"name": "setPinnedAgent",
|
|
8146
7642
|
"return": {
|
|
8147
7643
|
"type": {
|
|
8148
|
-
"text": "
|
|
7644
|
+
"text": "void"
|
|
7645
|
+
}
|
|
7646
|
+
},
|
|
7647
|
+
"parameters": [
|
|
7648
|
+
{
|
|
7649
|
+
"name": "name",
|
|
7650
|
+
"type": {
|
|
7651
|
+
"text": "string | null"
|
|
7652
|
+
}
|
|
7653
|
+
}
|
|
7654
|
+
],
|
|
7655
|
+
"description": "Pins routing to a specific agent by name. While pinned, the classifier is\nskipped and the continuation tool is hidden from the agent's tool list, so\nthe agent cannot quietly hand back to the orchestrator. Pass `null` to\nreturn to automatic routing."
|
|
7656
|
+
},
|
|
7657
|
+
{
|
|
7658
|
+
"kind": "method",
|
|
7659
|
+
"name": "setFlowOwner",
|
|
7660
|
+
"return": {
|
|
7661
|
+
"type": {
|
|
7662
|
+
"text": "void"
|
|
7663
|
+
}
|
|
7664
|
+
},
|
|
7665
|
+
"parameters": [
|
|
7666
|
+
{
|
|
7667
|
+
"name": "name",
|
|
7668
|
+
"type": {
|
|
7669
|
+
"text": "string | null"
|
|
7670
|
+
}
|
|
7671
|
+
}
|
|
7672
|
+
],
|
|
7673
|
+
"description": "Set the flow-owner lock — used to restore state from Redux on driver\nreconstruction (agents-array changes, pop-in/pop-out). Not intended for\nexternal callers to manipulate routing; that's what `setPinnedAgent` is\nfor."
|
|
7674
|
+
},
|
|
7675
|
+
{
|
|
7676
|
+
"kind": "method",
|
|
7677
|
+
"name": "loadHistory",
|
|
7678
|
+
"return": {
|
|
7679
|
+
"type": {
|
|
7680
|
+
"text": "void"
|
|
8149
7681
|
}
|
|
8150
7682
|
},
|
|
8151
|
-
"
|
|
7683
|
+
"parameters": [
|
|
7684
|
+
{
|
|
7685
|
+
"name": "messages",
|
|
7686
|
+
"type": {
|
|
7687
|
+
"text": "ChatMessage[]"
|
|
7688
|
+
}
|
|
7689
|
+
}
|
|
7690
|
+
]
|
|
7691
|
+
},
|
|
7692
|
+
{
|
|
7693
|
+
"kind": "method",
|
|
7694
|
+
"name": "getRawHistory",
|
|
7695
|
+
"return": {
|
|
7696
|
+
"type": {
|
|
7697
|
+
"text": "readonly ChatMessage[]"
|
|
7698
|
+
}
|
|
7699
|
+
}
|
|
8152
7700
|
},
|
|
8153
7701
|
{
|
|
8154
7702
|
"kind": "method",
|
|
@@ -8238,34 +7786,6 @@
|
|
|
8238
7786
|
}
|
|
8239
7787
|
]
|
|
8240
7788
|
},
|
|
8241
|
-
{
|
|
8242
|
-
"kind": "method",
|
|
8243
|
-
"name": "primeRestoredAgentState",
|
|
8244
|
-
"return": {
|
|
8245
|
-
"type": {
|
|
8246
|
-
"text": "void"
|
|
8247
|
-
}
|
|
8248
|
-
},
|
|
8249
|
-
"parameters": [
|
|
8250
|
-
{
|
|
8251
|
-
"name": "snapshots",
|
|
8252
|
-
"type": {
|
|
8253
|
-
"text": "Record<string, unknown>"
|
|
8254
|
-
}
|
|
8255
|
-
}
|
|
8256
|
-
],
|
|
8257
|
-
"description": "{@inheritDoc AiDriver.primeRestoredAgentState}"
|
|
8258
|
-
},
|
|
8259
|
-
{
|
|
8260
|
-
"kind": "method",
|
|
8261
|
-
"name": "getActiveAgent",
|
|
8262
|
-
"return": {
|
|
8263
|
-
"type": {
|
|
8264
|
-
"text": "AgentConfig | undefined"
|
|
8265
|
-
}
|
|
8266
|
-
},
|
|
8267
|
-
"description": "{@inheritDoc AiDriver.getActiveAgent}"
|
|
8268
|
-
},
|
|
8269
7789
|
{
|
|
8270
7790
|
"kind": "method",
|
|
8271
7791
|
"name": "applyAgent",
|
|
@@ -8466,13 +7986,12 @@
|
|
|
8466
7986
|
},
|
|
8467
7987
|
{
|
|
8468
7988
|
"kind": "field",
|
|
8469
|
-
"name": "
|
|
7989
|
+
"name": "collapseEl",
|
|
8470
7990
|
"type": {
|
|
8471
7991
|
"text": "HTMLElement | null"
|
|
8472
7992
|
},
|
|
8473
7993
|
"privacy": "private",
|
|
8474
|
-
"default": "null"
|
|
8475
|
-
"description": "The single assistant element. Captured while it's in the bubble slot and held\nacross the move (it's the same instance whether docked or in the bubble), so\npop-in can re-home it even though it's no longer a child of this manager."
|
|
7994
|
+
"default": "null"
|
|
8476
7995
|
},
|
|
8477
7996
|
{
|
|
8478
7997
|
"kind": "field",
|
|
@@ -8500,52 +8019,6 @@
|
|
|
8500
8019
|
},
|
|
8501
8020
|
"privacy": "private"
|
|
8502
8021
|
},
|
|
8503
|
-
{
|
|
8504
|
-
"kind": "method",
|
|
8505
|
-
"name": "findAssistant",
|
|
8506
|
-
"privacy": "private",
|
|
8507
|
-
"return": {
|
|
8508
|
-
"type": {
|
|
8509
|
-
"text": "HTMLElement | null"
|
|
8510
|
-
}
|
|
8511
|
-
},
|
|
8512
|
-
"description": "Locate the assistant element currently slotted into the bubble."
|
|
8513
|
-
},
|
|
8514
|
-
{
|
|
8515
|
-
"kind": "method",
|
|
8516
|
-
"name": "adoptAssistant",
|
|
8517
|
-
"return": {
|
|
8518
|
-
"type": {
|
|
8519
|
-
"text": "void"
|
|
8520
|
-
}
|
|
8521
|
-
},
|
|
8522
|
-
"parameters": [
|
|
8523
|
-
{
|
|
8524
|
-
"name": "el",
|
|
8525
|
-
"type": {
|
|
8526
|
-
"text": "HTMLElement"
|
|
8527
|
-
}
|
|
8528
|
-
},
|
|
8529
|
-
{
|
|
8530
|
-
"name": "docked",
|
|
8531
|
-
"type": {
|
|
8532
|
-
"text": "boolean"
|
|
8533
|
-
}
|
|
8534
|
-
}
|
|
8535
|
-
],
|
|
8536
|
-
"description": "Register an externally-created assistant element and its docked state. For\nsingle-element hosts that create the assistant directly in a layout pane (rather\nthan statically in the bubble), so the manager tracks the one element, whether it's\ncurrently docked (for pop-in re-homing), reflects the right `popout-mode` on it\n(drives the header button), and hides the empty bubble."
|
|
8537
|
-
},
|
|
8538
|
-
{
|
|
8539
|
-
"kind": "method",
|
|
8540
|
-
"name": "syncBubbleVisibility",
|
|
8541
|
-
"privacy": "private",
|
|
8542
|
-
"return": {
|
|
8543
|
-
"type": {
|
|
8544
|
-
"text": "void"
|
|
8545
|
-
}
|
|
8546
|
-
},
|
|
8547
|
-
"description": "Hide the floating bubble unless it currently contains the assistant."
|
|
8548
|
-
},
|
|
8549
8022
|
{
|
|
8550
8023
|
"kind": "method",
|
|
8551
8024
|
"name": "canDockChanged"
|
|
@@ -8602,7 +8075,7 @@
|
|
|
8602
8075
|
"text": "boolean"
|
|
8603
8076
|
}
|
|
8604
8077
|
},
|
|
8605
|
-
"description": "True when the assistant is active in the layout panel
|
|
8078
|
+
"description": "True when the collapse-mode assistant is active in the layout panel."
|
|
8606
8079
|
},
|
|
8607
8080
|
{
|
|
8608
8081
|
"kind": "function",
|
|
@@ -8696,7 +8169,7 @@
|
|
|
8696
8169
|
{
|
|
8697
8170
|
"kind": "variable",
|
|
8698
8171
|
"name": "settingsModalStyles",
|
|
8699
|
-
"default": "css`\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 .settings-modal-section-title {\n margin: 0 0 calc(var(--design-unit) * 3px);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--neutral-foreground-hint);\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\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 .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 .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 .settings-context-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 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 color: var(--neutral-foreground-rest);\n }\n\n .settings-current-build {\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 .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 .settings-live-badge {\n display: inline-flex;\n align-items: center;\n gap: calc(var(--design-unit) * 1px);\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--accent-fill-rest);\n }\n\n .settings-live-dot {\n width: 7px;\n height: 7px;\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 font-weight: 600;\n }\n\n .settings-current-build-stats {\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 3px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n .settings-build-stat {\n flex: 1;\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 .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 .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 .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 .settings-cost-history-row-right {\n align-items: flex-end;\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-tokens,\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 margin-top: -2px;\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`",
|
|
8172
|
+
"default": "css`\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 .settings-modal-section-title {\n margin: 0 0 calc(var(--design-unit) * 3px);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--neutral-foreground-hint);\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\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 .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 .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 .settings-context-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 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 color: var(--neutral-foreground-rest);\n }\n\n .settings-current-build {\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 .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 .settings-live-badge {\n display: inline-flex;\n align-items: center;\n gap: calc(var(--design-unit) * 1px);\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--accent-fill-rest);\n }\n\n .settings-live-dot {\n width: 7px;\n height: 7px;\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 font-weight: 600;\n }\n\n .settings-current-build-stats {\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--design-unit) * 3px);\n margin-bottom: calc(var(--design-unit) * 3px);\n }\n\n .settings-build-stat {\n flex: 1;\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 .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 .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 .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 .settings-cost-history-row-right {\n align-items: flex-end;\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-tokens,\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 margin-top: -2px;\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`",
|
|
8700
8173
|
"description": "Styles for the assistant settings modal (tabs, sections, toggles, cost summary)."
|
|
8701
8174
|
}
|
|
8702
8175
|
],
|
|
@@ -8744,518 +8217,6 @@
|
|
|
8744
8217
|
}
|
|
8745
8218
|
}
|
|
8746
8219
|
]
|
|
8747
|
-
},
|
|
8748
|
-
{
|
|
8749
|
-
"kind": "javascript-module",
|
|
8750
|
-
"path": "src/state/persistence/diagnostics-cursors.ts",
|
|
8751
|
-
"declarations": [
|
|
8752
|
-
{
|
|
8753
|
-
"kind": "function",
|
|
8754
|
-
"name": "getDiagnosticsCursors",
|
|
8755
|
-
"return": {
|
|
8756
|
-
"type": {
|
|
8757
|
-
"text": "DiagnosticsCursors"
|
|
8758
|
-
}
|
|
8759
|
-
},
|
|
8760
|
-
"parameters": [
|
|
8761
|
-
{
|
|
8762
|
-
"name": "key",
|
|
8763
|
-
"type": {
|
|
8764
|
-
"text": "string"
|
|
8765
|
-
}
|
|
8766
|
-
}
|
|
8767
|
-
],
|
|
8768
|
-
"description": "The shared cursors for `key`, created (empty) on first access. @internal"
|
|
8769
|
-
},
|
|
8770
|
-
{
|
|
8771
|
-
"kind": "function",
|
|
8772
|
-
"name": "clearDiagnosticsCursorRegistry",
|
|
8773
|
-
"return": {
|
|
8774
|
-
"type": {
|
|
8775
|
-
"text": "void"
|
|
8776
|
-
}
|
|
8777
|
-
},
|
|
8778
|
-
"description": "Drop all cursors — test isolation only. @internal"
|
|
8779
|
-
}
|
|
8780
|
-
],
|
|
8781
|
-
"exports": [
|
|
8782
|
-
{
|
|
8783
|
-
"kind": "js",
|
|
8784
|
-
"name": "getDiagnosticsCursors",
|
|
8785
|
-
"declaration": {
|
|
8786
|
-
"name": "getDiagnosticsCursors",
|
|
8787
|
-
"module": "src/state/persistence/diagnostics-cursors.ts"
|
|
8788
|
-
}
|
|
8789
|
-
},
|
|
8790
|
-
{
|
|
8791
|
-
"kind": "js",
|
|
8792
|
-
"name": "clearDiagnosticsCursorRegistry",
|
|
8793
|
-
"declaration": {
|
|
8794
|
-
"name": "clearDiagnosticsCursorRegistry",
|
|
8795
|
-
"module": "src/state/persistence/diagnostics-cursors.ts"
|
|
8796
|
-
}
|
|
8797
|
-
}
|
|
8798
|
-
]
|
|
8799
|
-
},
|
|
8800
|
-
{
|
|
8801
|
-
"kind": "javascript-module",
|
|
8802
|
-
"path": "src/state/persistence/diagnostics.ts",
|
|
8803
|
-
"declarations": [
|
|
8804
|
-
{
|
|
8805
|
-
"kind": "function",
|
|
8806
|
-
"name": "assembleDebugLog",
|
|
8807
|
-
"return": {
|
|
8808
|
-
"type": {
|
|
8809
|
-
"text": "DebugLog"
|
|
8810
|
-
}
|
|
8811
|
-
},
|
|
8812
|
-
"parameters": [
|
|
8813
|
-
{
|
|
8814
|
-
"name": "entries",
|
|
8815
|
-
"type": {
|
|
8816
|
-
"text": "DiagnosticEntry[]"
|
|
8817
|
-
}
|
|
8818
|
-
},
|
|
8819
|
-
{
|
|
8820
|
-
"name": "readme",
|
|
8821
|
-
"type": {
|
|
8822
|
-
"text": "readonly string[]"
|
|
8823
|
-
}
|
|
8824
|
-
}
|
|
8825
|
-
],
|
|
8826
|
-
"description": "Reassemble diagnostic entries into the `{ readme, timeline, meta }` debug-log\nshape (GENC-1351 §5.8). `timeline` = the `message`/`turn`/`event` entries sorted\nby ISO `timestamp` (kind-rank tie-break). `meta` = the **newest** `meta-snapshot`'s\nblock only — a \"state at export\" photo, matching the single-page log. The older\nsnapshots are intentionally dropped: the per-turn evolution they would show is\nalready in the timeline (`turn.agentSnapshot` + `context.updated` events), so\nkeeping them would just repeat the bulky, near-static `agentSummary`. `readme` =\nthe passed (current) constant. Pure — reused for both the live current-page log\nand the reassembled lifetime log stitched from the persisted stream, so both\ncome out shape-identical."
|
|
8827
|
-
}
|
|
8828
|
-
],
|
|
8829
|
-
"exports": [
|
|
8830
|
-
{
|
|
8831
|
-
"kind": "js",
|
|
8832
|
-
"name": "assembleDebugLog",
|
|
8833
|
-
"declaration": {
|
|
8834
|
-
"name": "assembleDebugLog",
|
|
8835
|
-
"module": "src/state/persistence/diagnostics.ts"
|
|
8836
|
-
}
|
|
8837
|
-
}
|
|
8838
|
-
]
|
|
8839
|
-
},
|
|
8840
|
-
{
|
|
8841
|
-
"kind": "javascript-module",
|
|
8842
|
-
"path": "src/state/persistence/index.ts",
|
|
8843
|
-
"declarations": [],
|
|
8844
|
-
"exports": [
|
|
8845
|
-
{
|
|
8846
|
-
"kind": "js",
|
|
8847
|
-
"name": "PERSISTED_SESSION_VERSION",
|
|
8848
|
-
"declaration": {
|
|
8849
|
-
"name": "PERSISTED_SESSION_VERSION",
|
|
8850
|
-
"module": "./session-snapshot"
|
|
8851
|
-
}
|
|
8852
|
-
},
|
|
8853
|
-
{
|
|
8854
|
-
"kind": "js",
|
|
8855
|
-
"name": "PersistedSession",
|
|
8856
|
-
"declaration": {
|
|
8857
|
-
"name": "PersistedSession",
|
|
8858
|
-
"module": "./session-snapshot"
|
|
8859
|
-
}
|
|
8860
|
-
},
|
|
8861
|
-
{
|
|
8862
|
-
"kind": "js",
|
|
8863
|
-
"name": "WebStorageSessionProvider",
|
|
8864
|
-
"declaration": {
|
|
8865
|
-
"name": "WebStorageSessionProvider",
|
|
8866
|
-
"module": "./session-persistence-provider"
|
|
8867
|
-
}
|
|
8868
|
-
},
|
|
8869
|
-
{
|
|
8870
|
-
"kind": "js",
|
|
8871
|
-
"name": "SessionPersistenceProvider",
|
|
8872
|
-
"declaration": {
|
|
8873
|
-
"name": "SessionPersistenceProvider",
|
|
8874
|
-
"module": "./session-persistence-provider"
|
|
8875
|
-
}
|
|
8876
|
-
},
|
|
8877
|
-
{
|
|
8878
|
-
"kind": "js",
|
|
8879
|
-
"name": "SessionPersistenceConfig",
|
|
8880
|
-
"declaration": {
|
|
8881
|
-
"name": "SessionPersistenceConfig",
|
|
8882
|
-
"module": "./session-persistence-provider"
|
|
8883
|
-
}
|
|
8884
|
-
},
|
|
8885
|
-
{
|
|
8886
|
-
"kind": "js",
|
|
8887
|
-
"name": "SessionPreferences",
|
|
8888
|
-
"declaration": {
|
|
8889
|
-
"name": "SessionPreferences",
|
|
8890
|
-
"module": "./session-persistence-provider"
|
|
8891
|
-
}
|
|
8892
|
-
},
|
|
8893
|
-
{
|
|
8894
|
-
"kind": "js",
|
|
8895
|
-
"name": "assembleDebugLog",
|
|
8896
|
-
"declaration": {
|
|
8897
|
-
"name": "assembleDebugLog",
|
|
8898
|
-
"module": "./diagnostics"
|
|
8899
|
-
}
|
|
8900
|
-
},
|
|
8901
|
-
{
|
|
8902
|
-
"kind": "js",
|
|
8903
|
-
"name": "DiagnosticEntry",
|
|
8904
|
-
"declaration": {
|
|
8905
|
-
"name": "DiagnosticEntry",
|
|
8906
|
-
"module": "./diagnostics"
|
|
8907
|
-
}
|
|
8908
|
-
},
|
|
8909
|
-
{
|
|
8910
|
-
"kind": "js",
|
|
8911
|
-
"name": "DebugLog",
|
|
8912
|
-
"declaration": {
|
|
8913
|
-
"name": "DebugLog",
|
|
8914
|
-
"module": "./diagnostics"
|
|
8915
|
-
}
|
|
8916
|
-
}
|
|
8917
|
-
]
|
|
8918
|
-
},
|
|
8919
|
-
{
|
|
8920
|
-
"kind": "javascript-module",
|
|
8921
|
-
"path": "src/state/persistence/persister-registry.ts",
|
|
8922
|
-
"declarations": [
|
|
8923
|
-
{
|
|
8924
|
-
"kind": "function",
|
|
8925
|
-
"name": "getOrCreatePersister",
|
|
8926
|
-
"return": {
|
|
8927
|
-
"type": {
|
|
8928
|
-
"text": "SessionPersister"
|
|
8929
|
-
}
|
|
8930
|
-
},
|
|
8931
|
-
"parameters": [
|
|
8932
|
-
{
|
|
8933
|
-
"name": "key",
|
|
8934
|
-
"type": {
|
|
8935
|
-
"text": "string"
|
|
8936
|
-
}
|
|
8937
|
-
},
|
|
8938
|
-
{
|
|
8939
|
-
"name": "factory",
|
|
8940
|
-
"type": {
|
|
8941
|
-
"text": "() => SessionPersister"
|
|
8942
|
-
}
|
|
8943
|
-
}
|
|
8944
|
-
],
|
|
8945
|
-
"description": "Returns the existing persister for `key`, or calls `factory` to create and\nregister a new one. First view to connect creates it; later views share it."
|
|
8946
|
-
},
|
|
8947
|
-
{
|
|
8948
|
-
"kind": "function",
|
|
8949
|
-
"name": "getPersister",
|
|
8950
|
-
"return": {
|
|
8951
|
-
"type": {
|
|
8952
|
-
"text": "SessionPersister | undefined"
|
|
8953
|
-
}
|
|
8954
|
-
},
|
|
8955
|
-
"parameters": [
|
|
8956
|
-
{
|
|
8957
|
-
"name": "key",
|
|
8958
|
-
"type": {
|
|
8959
|
-
"text": "string"
|
|
8960
|
-
}
|
|
8961
|
-
}
|
|
8962
|
-
],
|
|
8963
|
-
"description": "Returns the existing persister for `key`, or `undefined`."
|
|
8964
|
-
},
|
|
8965
|
-
{
|
|
8966
|
-
"kind": "function",
|
|
8967
|
-
"name": "deletePersister",
|
|
8968
|
-
"return": {
|
|
8969
|
-
"type": {
|
|
8970
|
-
"text": "void"
|
|
8971
|
-
}
|
|
8972
|
-
},
|
|
8973
|
-
"parameters": [
|
|
8974
|
-
{
|
|
8975
|
-
"name": "key",
|
|
8976
|
-
"type": {
|
|
8977
|
-
"text": "string"
|
|
8978
|
-
}
|
|
8979
|
-
}
|
|
8980
|
-
],
|
|
8981
|
-
"description": "Removes the persister for `key` (explicit session teardown)."
|
|
8982
|
-
}
|
|
8983
|
-
],
|
|
8984
|
-
"exports": [
|
|
8985
|
-
{
|
|
8986
|
-
"kind": "js",
|
|
8987
|
-
"name": "getOrCreatePersister",
|
|
8988
|
-
"declaration": {
|
|
8989
|
-
"name": "getOrCreatePersister",
|
|
8990
|
-
"module": "src/state/persistence/persister-registry.ts"
|
|
8991
|
-
}
|
|
8992
|
-
},
|
|
8993
|
-
{
|
|
8994
|
-
"kind": "js",
|
|
8995
|
-
"name": "getPersister",
|
|
8996
|
-
"declaration": {
|
|
8997
|
-
"name": "getPersister",
|
|
8998
|
-
"module": "src/state/persistence/persister-registry.ts"
|
|
8999
|
-
}
|
|
9000
|
-
},
|
|
9001
|
-
{
|
|
9002
|
-
"kind": "js",
|
|
9003
|
-
"name": "deletePersister",
|
|
9004
|
-
"declaration": {
|
|
9005
|
-
"name": "deletePersister",
|
|
9006
|
-
"module": "src/state/persistence/persister-registry.ts"
|
|
9007
|
-
}
|
|
9008
|
-
}
|
|
9009
|
-
]
|
|
9010
|
-
},
|
|
9011
|
-
{
|
|
9012
|
-
"kind": "javascript-module",
|
|
9013
|
-
"path": "src/state/persistence/session-persistence-provider.ts",
|
|
9014
|
-
"declarations": [
|
|
9015
|
-
{
|
|
9016
|
-
"kind": "class",
|
|
9017
|
-
"description": "A SessionPersistenceProvider backed by a Web Storage area. Both\n`window.sessionStorage` and `window.localStorage` implement the `Storage`\nAPI, so one class serves both: point it at `sessionStorage` for\nrefresh-survival that clears on tab close (the showcase default, O6), or at\n`localStorage` for durable local persistence.\n\nOpt-in: a host constructs it and passes it through `chatConfig`; the library\nnever instantiates it on its own.",
|
|
9018
|
-
"name": "WebStorageSessionProvider",
|
|
9019
|
-
"members": [
|
|
9020
|
-
{
|
|
9021
|
-
"kind": "field",
|
|
9022
|
-
"name": "storage",
|
|
9023
|
-
"type": {
|
|
9024
|
-
"text": "Storage"
|
|
9025
|
-
},
|
|
9026
|
-
"privacy": "private",
|
|
9027
|
-
"readonly": true,
|
|
9028
|
-
"default": "storage"
|
|
9029
|
-
},
|
|
9030
|
-
{
|
|
9031
|
-
"kind": "field",
|
|
9032
|
-
"name": "keyPrefix",
|
|
9033
|
-
"type": {
|
|
9034
|
-
"text": "string"
|
|
9035
|
-
},
|
|
9036
|
-
"privacy": "private",
|
|
9037
|
-
"readonly": true
|
|
9038
|
-
},
|
|
9039
|
-
{
|
|
9040
|
-
"kind": "field",
|
|
9041
|
-
"name": "saveDebounceMs",
|
|
9042
|
-
"type": {
|
|
9043
|
-
"text": "number"
|
|
9044
|
-
},
|
|
9045
|
-
"readonly": true,
|
|
9046
|
-
"description": "Web storage is synchronous and cheap, so the default is `0` — save as\nsoon as the tick settles, no throttle. Override via `options.saveDebounceMs`\n(e.g. if pointing at `localStorage` and you'd rather coalesce large writes)."
|
|
9047
|
-
},
|
|
9048
|
-
{
|
|
9049
|
-
"kind": "method",
|
|
9050
|
-
"name": "storageKey",
|
|
9051
|
-
"privacy": "private",
|
|
9052
|
-
"return": {
|
|
9053
|
-
"type": {
|
|
9054
|
-
"text": "string"
|
|
9055
|
-
}
|
|
9056
|
-
},
|
|
9057
|
-
"parameters": [
|
|
9058
|
-
{
|
|
9059
|
-
"name": "sessionKey",
|
|
9060
|
-
"type": {
|
|
9061
|
-
"text": "string"
|
|
9062
|
-
}
|
|
9063
|
-
}
|
|
9064
|
-
]
|
|
9065
|
-
},
|
|
9066
|
-
{
|
|
9067
|
-
"kind": "method",
|
|
9068
|
-
"name": "preferencesKey",
|
|
9069
|
-
"privacy": "private",
|
|
9070
|
-
"return": {
|
|
9071
|
-
"type": {
|
|
9072
|
-
"text": "string"
|
|
9073
|
-
}
|
|
9074
|
-
},
|
|
9075
|
-
"parameters": [
|
|
9076
|
-
{
|
|
9077
|
-
"name": "sessionKey",
|
|
9078
|
-
"type": {
|
|
9079
|
-
"text": "string"
|
|
9080
|
-
}
|
|
9081
|
-
}
|
|
9082
|
-
],
|
|
9083
|
-
"description": "Preferences key, namespaced apart from the session key so `clear` leaves it."
|
|
9084
|
-
},
|
|
9085
|
-
{
|
|
9086
|
-
"kind": "method",
|
|
9087
|
-
"name": "load",
|
|
9088
|
-
"return": {
|
|
9089
|
-
"type": {
|
|
9090
|
-
"text": "Promise<PersistedSession | null>"
|
|
9091
|
-
}
|
|
9092
|
-
},
|
|
9093
|
-
"parameters": [
|
|
9094
|
-
{
|
|
9095
|
-
"name": "sessionKey",
|
|
9096
|
-
"type": {
|
|
9097
|
-
"text": "string"
|
|
9098
|
-
}
|
|
9099
|
-
}
|
|
9100
|
-
]
|
|
9101
|
-
},
|
|
9102
|
-
{
|
|
9103
|
-
"kind": "method",
|
|
9104
|
-
"name": "save",
|
|
9105
|
-
"return": {
|
|
9106
|
-
"type": {
|
|
9107
|
-
"text": "Promise<void>"
|
|
9108
|
-
}
|
|
9109
|
-
},
|
|
9110
|
-
"parameters": [
|
|
9111
|
-
{
|
|
9112
|
-
"name": "sessionKey",
|
|
9113
|
-
"type": {
|
|
9114
|
-
"text": "string"
|
|
9115
|
-
}
|
|
9116
|
-
},
|
|
9117
|
-
{
|
|
9118
|
-
"name": "snapshot",
|
|
9119
|
-
"type": {
|
|
9120
|
-
"text": "PersistedSession"
|
|
9121
|
-
}
|
|
9122
|
-
}
|
|
9123
|
-
]
|
|
9124
|
-
},
|
|
9125
|
-
{
|
|
9126
|
-
"kind": "method",
|
|
9127
|
-
"name": "clear",
|
|
9128
|
-
"return": {
|
|
9129
|
-
"type": {
|
|
9130
|
-
"text": "Promise<void>"
|
|
9131
|
-
}
|
|
9132
|
-
},
|
|
9133
|
-
"parameters": [
|
|
9134
|
-
{
|
|
9135
|
-
"name": "sessionKey",
|
|
9136
|
-
"type": {
|
|
9137
|
-
"text": "string"
|
|
9138
|
-
}
|
|
9139
|
-
}
|
|
9140
|
-
]
|
|
9141
|
-
},
|
|
9142
|
-
{
|
|
9143
|
-
"kind": "method",
|
|
9144
|
-
"name": "loadPreferences",
|
|
9145
|
-
"return": {
|
|
9146
|
-
"type": {
|
|
9147
|
-
"text": "Promise<SessionPreferences | undefined>"
|
|
9148
|
-
}
|
|
9149
|
-
},
|
|
9150
|
-
"parameters": [
|
|
9151
|
-
{
|
|
9152
|
-
"name": "sessionKey",
|
|
9153
|
-
"type": {
|
|
9154
|
-
"text": "string"
|
|
9155
|
-
}
|
|
9156
|
-
}
|
|
9157
|
-
]
|
|
9158
|
-
},
|
|
9159
|
-
{
|
|
9160
|
-
"kind": "method",
|
|
9161
|
-
"name": "savePreferences",
|
|
9162
|
-
"return": {
|
|
9163
|
-
"type": {
|
|
9164
|
-
"text": "Promise<void>"
|
|
9165
|
-
}
|
|
9166
|
-
},
|
|
9167
|
-
"parameters": [
|
|
9168
|
-
{
|
|
9169
|
-
"name": "sessionKey",
|
|
9170
|
-
"type": {
|
|
9171
|
-
"text": "string"
|
|
9172
|
-
}
|
|
9173
|
-
},
|
|
9174
|
-
{
|
|
9175
|
-
"name": "preferences",
|
|
9176
|
-
"type": {
|
|
9177
|
-
"text": "SessionPreferences"
|
|
9178
|
-
}
|
|
9179
|
-
}
|
|
9180
|
-
]
|
|
9181
|
-
}
|
|
9182
|
-
]
|
|
9183
|
-
}
|
|
9184
|
-
],
|
|
9185
|
-
"exports": [
|
|
9186
|
-
{
|
|
9187
|
-
"kind": "js",
|
|
9188
|
-
"name": "WebStorageSessionProvider",
|
|
9189
|
-
"declaration": {
|
|
9190
|
-
"name": "WebStorageSessionProvider",
|
|
9191
|
-
"module": "src/state/persistence/session-persistence-provider.ts"
|
|
9192
|
-
}
|
|
9193
|
-
}
|
|
9194
|
-
]
|
|
9195
|
-
},
|
|
9196
|
-
{
|
|
9197
|
-
"kind": "javascript-module",
|
|
9198
|
-
"path": "src/state/persistence/session-persister.ts",
|
|
9199
|
-
"declarations": [],
|
|
9200
|
-
"exports": []
|
|
9201
|
-
},
|
|
9202
|
-
{
|
|
9203
|
-
"kind": "javascript-module",
|
|
9204
|
-
"path": "src/state/persistence/session-snapshot.ts",
|
|
9205
|
-
"declarations": [
|
|
9206
|
-
{
|
|
9207
|
-
"kind": "variable",
|
|
9208
|
-
"name": "PERSISTED_SESSION_VERSION",
|
|
9209
|
-
"type": {
|
|
9210
|
-
"text": "number"
|
|
9211
|
-
},
|
|
9212
|
-
"default": "1",
|
|
9213
|
-
"description": "Schema version of the persisted session shape. Bump on an incompatible\nchange; a snapshot whose `version` doesn't match is discarded on load rather\nthan risk feeding a stale shape into restore.",
|
|
9214
|
-
"privacy": "public"
|
|
9215
|
-
},
|
|
9216
|
-
{
|
|
9217
|
-
"kind": "function",
|
|
9218
|
-
"name": "unknownAgentSnapshots",
|
|
9219
|
-
"return": {
|
|
9220
|
-
"type": {
|
|
9221
|
-
"text": "string[]"
|
|
9222
|
-
}
|
|
9223
|
-
},
|
|
9224
|
-
"parameters": [
|
|
9225
|
-
{
|
|
9226
|
-
"name": "snapshot",
|
|
9227
|
-
"type": {
|
|
9228
|
-
"text": "PersistedSession"
|
|
9229
|
-
}
|
|
9230
|
-
},
|
|
9231
|
-
{
|
|
9232
|
-
"name": "knownAgentNames",
|
|
9233
|
-
"type": {
|
|
9234
|
-
"text": "Iterable<string>"
|
|
9235
|
-
}
|
|
9236
|
-
}
|
|
9237
|
-
],
|
|
9238
|
-
"description": "Names of agents the restored session holds machine/state snapshots for but\nwhich are **not** in the currently-configured agent set — their flow cannot\nresume. Common when the host's agent array is dynamic (agents gated by feature\nflags, project state, or permissions; e.g. genesis-create). Callers should\nsurface these; the restore is otherwise non-fatal (the transcript and any\nknown agents still restore). Returns `[]` when `knownAgentNames` is empty —\nthe agent set isn't known yet, so we can't classify without false positives."
|
|
9239
|
-
}
|
|
9240
|
-
],
|
|
9241
|
-
"exports": [
|
|
9242
|
-
{
|
|
9243
|
-
"kind": "js",
|
|
9244
|
-
"name": "PERSISTED_SESSION_VERSION",
|
|
9245
|
-
"declaration": {
|
|
9246
|
-
"name": "PERSISTED_SESSION_VERSION",
|
|
9247
|
-
"module": "src/state/persistence/session-snapshot.ts"
|
|
9248
|
-
}
|
|
9249
|
-
},
|
|
9250
|
-
{
|
|
9251
|
-
"kind": "js",
|
|
9252
|
-
"name": "unknownAgentSnapshots",
|
|
9253
|
-
"declaration": {
|
|
9254
|
-
"name": "unknownAgentSnapshots",
|
|
9255
|
-
"module": "src/state/persistence/session-snapshot.ts"
|
|
9256
|
-
}
|
|
9257
|
-
}
|
|
9258
|
-
]
|
|
9259
8220
|
}
|
|
9260
8221
|
]
|
|
9261
8222
|
}
|