@mcp-b/react-components 0.49.0 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AgentChatQueue-C_Jaw3Ia.d.ts → AgentChatQueue-MrHhV901.d.ts} +1 -1
- package/dist/AgentMessageParts-C7L-Mv9U.d.ts +46 -0
- package/dist/AppTopBar-CVkLRdk7.d.ts +99 -0
- package/dist/{CodeBlock-g8sADidM.js → CodeBlock-BMK6CW9D.js} +1 -1
- package/dist/Dialog-88GF7_Th.d.ts +107 -0
- package/dist/{FileTree-H8mMg4rV.js → FileTree-okaLnS5j.js} +20 -9
- package/dist/Form-CM7GNTwR.d.ts +91 -0
- package/dist/ManagerOffice-5pEFpoV3.js +1146 -0
- package/dist/McpConnectorForm--HB0MEGC.d.ts +39 -0
- package/dist/{Menu-yb6QXWA3.d.ts → Menu-CgfUZhZd.d.ts} +1 -1
- package/dist/Popover-CgHG5DtS.d.ts +220 -0
- package/dist/{PromptInput-C4Mofitz.d.ts → PromptInput-DGPrCTPl.d.ts} +3 -2
- package/dist/ResponsiveSidebarShell-CAmmtQTR.d.ts +128 -0
- package/dist/SessionCompaction-CmTJFpzj.d.ts +89 -0
- package/dist/SetupChecklist-O6qmgwz4.js +77 -0
- package/dist/ThinkChatActivity-DENkintt.d.ts +77 -0
- package/dist/ThinkChatContext-COIgzkYp.d.ts +28 -0
- package/dist/ThinkRoutine-Cb1DdaHa.d.ts +30 -0
- package/dist/ThinkThreadPicker-yetGX_s5.d.ts +91 -0
- package/dist/{WorkspaceFileView-DYPtRVpM.js → WorkspaceFileView-ncZuIWhC.js} +2 -2
- package/dist/WorkspaceMessageResponse-8lOSAbw_.d.ts +48 -0
- package/dist/codex-model-catalog-BBN_gWcc.d.ts +155 -0
- package/dist/components/agents-sdk/AgentActivity.js +1 -1
- package/dist/components/agents-sdk/AgentChat.d.ts +3 -3
- package/dist/components/agents-sdk/AgentChat.js +8 -8
- package/dist/components/agents-sdk/AgentChatQueue.d.ts +1 -1
- package/dist/components/agents-sdk/AgentEvent.js +2 -2
- package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
- package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
- package/dist/components/agents-sdk/BrowserReplay.js +1 -1
- package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
- package/dist/components/agents-sdk/DiscordConnectionDialog.d.ts +20 -0
- package/dist/components/agents-sdk/DiscordConnectionDialog.js +65 -0
- package/dist/components/agents-sdk/EmployeeApp.d.ts +49 -0
- package/dist/components/agents-sdk/EmployeeApp.js +57 -0
- package/dist/components/agents-sdk/EmployeeChat.d.ts +63 -0
- package/dist/components/agents-sdk/EmployeeChat.js +84 -0
- package/dist/components/agents-sdk/EmployeeChrome.d.ts +10 -2
- package/dist/components/agents-sdk/EmployeeChrome.js +26 -16
- package/dist/components/agents-sdk/EmployeeSchedules.d.ts +24 -0
- package/dist/components/agents-sdk/EmployeeSchedules.js +105 -0
- package/dist/components/agents-sdk/EmployeeStartScreen.d.ts +43 -0
- package/dist/components/agents-sdk/EmployeeStartScreen.js +133 -0
- package/dist/components/agents-sdk/ManagerAccountActions.d.ts +29 -0
- package/dist/components/agents-sdk/ManagerAccountActions.js +62 -0
- package/dist/components/agents-sdk/ManagerOffice.d.ts +1 -1
- package/dist/components/agents-sdk/ManagerOffice.js +1 -1145
- package/dist/components/agents-sdk/ManagerOfficeScreens.d.ts +49 -0
- package/dist/components/agents-sdk/ManagerOfficeScreens.js +198 -0
- package/dist/components/agents-sdk/McpConnectionRequest.d.ts +1 -1
- package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
- package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
- package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
- package/dist/components/agents-sdk/McpPluginCatalog.d.ts +3 -3
- package/dist/components/agents-sdk/McpPluginCatalog.js +4 -4
- package/dist/components/agents-sdk/McpServerIcon.d.ts +1 -1
- package/dist/components/agents-sdk/McpServerPicker.d.ts +4 -4
- package/dist/components/agents-sdk/McpServerPicker.js +2 -2
- package/dist/components/agents-sdk/ModelEndpointDialog.d.ts +31 -0
- package/dist/components/agents-sdk/ModelEndpointDialog.js +118 -0
- package/dist/components/agents-sdk/ModelSelector.d.ts +1 -1
- package/dist/components/agents-sdk/ModelSelector.js +4 -4
- package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.d.ts +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
- package/dist/components/agents-sdk/SessionCompaction.d.ts +1 -88
- package/dist/components/agents-sdk/SlackConnectionDialog.d.ts +18 -0
- package/dist/components/agents-sdk/SlackConnectionDialog.js +48 -0
- package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
- package/dist/components/agents-sdk/SubagentRunPanel.js +1 -1
- package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
- package/dist/components/agents-sdk/ThinkChat.d.ts +6 -6
- package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -76
- package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
- package/dist/components/agents-sdk/ThinkChatContext.d.ts +1 -27
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
- package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -29
- package/dist/components/agents-sdk/ThinkRoutineActions.d.ts +2 -2
- package/dist/components/agents-sdk/ThinkRoutineActions.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineBrowser.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineBrowser.js +3 -3
- package/dist/components/agents-sdk/ThinkRoutineDetail.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineForm.js +4 -4
- package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
- package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +1 -90
- package/dist/components/agents-sdk/ThinkThreadPicker.js +3 -3
- package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
- package/dist/components/agents-sdk/WorkspaceCorrespondence.js +6 -6
- package/dist/components/agents-sdk/WorkspaceExecution.js +7 -7
- package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
- package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -47
- package/dist/components/agents-sdk/WorkspaceMountManager.js +2 -2
- package/dist/components/agents-sdk/WorkspaceProject.js +4 -4
- package/dist/components/agents-sdk/WorkspaceUserScript.js +4 -4
- package/dist/components/ai-sdk/Activity.js +1 -1
- package/dist/components/ai-sdk/AgentChatMessageEditor.js +5 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +1 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
- package/dist/components/ai-sdk/AgentMessageParts.d.ts +1 -45
- package/dist/components/ai-sdk/Approval.js +2 -2
- package/dist/components/ai-sdk/Artifact.js +1 -1
- package/dist/components/ai-sdk/ChainOfThought.js +1 -1
- package/dist/components/ai-sdk/Checkpoint.js +1 -1
- package/dist/components/ai-sdk/CodeBlock.js +1 -1
- package/dist/components/ai-sdk/ComposerLink.js +1 -1
- package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
- package/dist/components/ai-sdk/Context.d.ts +1 -1
- package/dist/components/ai-sdk/Context.js +1 -1
- package/dist/components/ai-sdk/Conversation.js +1 -1
- package/dist/components/ai-sdk/Goal.js +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
- package/dist/components/ai-sdk/Message.js +2 -2
- package/dist/components/ai-sdk/MessageScroller.js +1 -1
- package/dist/components/ai-sdk/MessageScrollerVirtual.js +2 -1
- package/dist/components/ai-sdk/Plan.d.ts +1 -1
- package/dist/components/ai-sdk/Plan.js +1 -1
- package/dist/components/ai-sdk/PromptInput.d.ts +1 -1
- package/dist/components/ai-sdk/PromptInput.js +7 -7
- package/dist/components/ai-sdk/Queue.js +1 -1
- package/dist/components/ai-sdk/Reasoning.js +1 -1
- package/dist/components/ai-sdk/Sources.js +1 -1
- package/dist/components/ai-sdk/Task.js +1 -1
- package/dist/components/extension/ChatGptSignInScreen.js +1 -1
- package/dist/components/extension/CodexModelSelector.d.ts +2 -2
- package/dist/components/extension/CodexModelSelector.js +3 -3
- package/dist/components/extension/ConversationTabPicker.js +2 -2
- package/dist/components/foundations/Checkbox.js +1 -1
- package/dist/components/foundations/Collapsible.js +1 -1
- package/dist/components/foundations/ContextMenu.d.ts +10 -23
- package/dist/components/foundations/ContextMenu.js +3 -2
- package/dist/components/foundations/Dialog.d.ts +1 -106
- package/dist/components/foundations/Form.d.ts +1 -90
- package/dist/components/foundations/Menu.d.ts +1 -1
- package/dist/components/foundations/Menubar.d.ts +1 -1
- package/dist/components/foundations/Menubar.js +1 -1
- package/dist/components/foundations/Popover.d.ts +1 -219
- package/dist/components/foundations/PreviewCard.d.ts +1 -1
- package/dist/components/foundations/SearchField.js +1 -1
- package/dist/components/foundations/Select.js +1 -1
- package/dist/components/foundations/Stepper.js +1 -1
- package/dist/components/foundations/Toast.js +1 -1
- package/dist/components/foundations/ToggleGroup.d.ts +1 -1
- package/dist/components/foundations/ToggleGroup.js +1 -1
- package/dist/components/foundations/Tooltip.d.ts +1 -1
- package/dist/components/foundations/icons.js +1 -1
- package/dist/components/general-purpose/AccountSignInDialog.d.ts +26 -0
- package/dist/components/general-purpose/AccountSignInDialog.js +25 -0
- package/dist/components/general-purpose/AppTopBar.d.ts +1 -98
- package/dist/components/general-purpose/Commit.js +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
- package/dist/components/general-purpose/FileTree.js +1 -1
- package/dist/components/general-purpose/NotificationPrompt.d.ts +13 -0
- package/dist/components/general-purpose/NotificationPrompt.js +18 -0
- package/dist/components/general-purpose/PricingPlanCard.js +2 -2
- package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
- package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -127
- package/dist/components/general-purpose/ResponsiveSidebarShell.js +124 -72
- package/dist/components/general-purpose/SettingsFormDialog.d.ts +2 -2
- package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
- package/dist/components/general-purpose/SetupChecklist.js +1 -76
- package/dist/components/general-purpose/StatusScreen.d.ts +10 -0
- package/dist/components/general-purpose/StatusScreen.js +13 -0
- package/dist/components/general-purpose/Terminal.js +2 -2
- package/dist/components/general-purpose/TestResults.js +1 -1
- package/dist/components/general-purpose/ThemeModeControl.js +2 -2
- package/dist/components/general-purpose/WebPreview.js +2 -2
- package/dist/components/nanites/AgentConnection.js +2 -2
- package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
- package/dist/components/nanites/AgentToolDetail.js +4 -4
- package/dist/{copy-button-CSDuDfdP.js → copy-button-Dk2vRe9j.js} +1 -1
- package/dist/mcp-server-catalog-D9p4gGeJ.d.ts +1112 -0
- package/dist/styles/accessibility.css +20 -0
- package/dist/styles/agent-chat.css +1 -1
- package/dist/styles/base.css +0 -8
- package/dist/styles/codex-model-selector.css +4 -0
- package/dist/styles/color-contrast.test.ts +212 -0
- package/dist/styles/employee-app.css +29 -0
- package/dist/styles/file-tree.css +5 -1
- package/dist/styles/index.css +2 -0
- package/dist/styles/manager-office.css +5 -5
- package/dist/styles/manager-work.css +93 -0
- package/dist/styles/responsive-sidebar-shell.css +1 -1
- package/dist/utils/codex-model-catalog.d.ts +1 -135
- package/dist/utils/codex-model-catalog.js +22 -5
- package/dist/utils/mcp-server-catalog.d.ts +1 -1111
- package/dist/{workspace-assets-Bg7XhPsk.js → workspace-assets-wW_lQLYK.js} +2 -2
- package/package.json +3 -3
- package/dist/{icons-cuEtsgj9.js → icons-CeGfXO21.js} +1 -1
|
@@ -11,4 +11,24 @@
|
|
|
11
11
|
border-color: GrayText;
|
|
12
12
|
color: GrayText;
|
|
13
13
|
}
|
|
14
|
+
|
|
15
|
+
:where([data-slot="meter-track"], [data-slot="progress-track"], [data-slot="slider-track"]) {
|
|
16
|
+
background-color: Canvas;
|
|
17
|
+
outline: var(--sigvelo-border-width) solid CanvasText;
|
|
18
|
+
outline-offset: calc(-1 * var(--sigvelo-border-width));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:where(
|
|
22
|
+
[data-slot="meter-indicator"],
|
|
23
|
+
[data-slot="progress-indicator"],
|
|
24
|
+
[data-slot="slider-indicator"]
|
|
25
|
+
) {
|
|
26
|
+
background-color: Highlight;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Base UI focuses the hidden range input inside the visible thumb. */
|
|
30
|
+
.slider__thumb:has(:focus-visible) {
|
|
31
|
+
outline: var(--sigvelo-focus-ring-forced);
|
|
32
|
+
outline-offset: var(--sigvelo-focus-offset);
|
|
33
|
+
}
|
|
14
34
|
}
|
|
@@ -563,7 +563,7 @@
|
|
|
563
563
|
|
|
564
564
|
.agent-chat-start-screen__composer-tray:has(> :nth-child(3):last-child) {
|
|
565
565
|
display: grid;
|
|
566
|
-
grid-template-columns: repeat(3,
|
|
566
|
+
grid-template-columns: repeat(3, var(--sigvelo-layout-track-fill));
|
|
567
567
|
}
|
|
568
568
|
|
|
569
569
|
.agent-chat-start-screen__composer-tray:has(> :nth-child(3):last-child) > .button {
|
package/dist/styles/base.css
CHANGED
|
@@ -192,11 +192,3 @@ textarea {
|
|
|
192
192
|
.tabular-nums {
|
|
193
193
|
font-variant-numeric: tabular-nums;
|
|
194
194
|
}
|
|
195
|
-
|
|
196
|
-
@media (prefers-contrast: more) {
|
|
197
|
-
:root {
|
|
198
|
-
--sigvelo-color-neutral-border-muted: var(--sigvelo-color-neutral-600);
|
|
199
|
-
--sigvelo-color-neutral-border-subtle: var(--sigvelo-color-neutral-500);
|
|
200
|
-
--sigvelo-color-neutral-bg-subtle: var(--sigvelo-color-neutral-200);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
@@ -164,6 +164,10 @@
|
|
|
164
164
|
line-height: var(--sigvelo-leading-compact);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
.codex-model-selector__option[data-highlighted] .codex-model-selector__option-description {
|
|
168
|
+
color: inherit;
|
|
169
|
+
}
|
|
170
|
+
|
|
167
171
|
.codex-model-selector__option-indicator {
|
|
168
172
|
order: 2;
|
|
169
173
|
margin-inline-start: auto;
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import { cdp, page } from "vitest/browser";
|
|
3
|
+
import { act, createElement } from "react";
|
|
4
|
+
import { createRoot } from "react-dom/client";
|
|
5
|
+
import { FileTree, FileTreeFile, FileTreeFolder } from "../components/general-purpose/FileTree.js";
|
|
6
|
+
import presetsCss from "../../../design-tokens/src/color-presets.css?raw";
|
|
7
|
+
import "./index.css";
|
|
8
|
+
|
|
9
|
+
const presets = [
|
|
10
|
+
"",
|
|
11
|
+
...new Set([...presetsCss.matchAll(/data-preset="([^"]+)"/g)].map((m) => m[1])),
|
|
12
|
+
];
|
|
13
|
+
const colorPrefix = "--sigvelo-color-";
|
|
14
|
+
|
|
15
|
+
function luminance(channels: Uint8ClampedArray) {
|
|
16
|
+
return [0.2126, 0.7152, 0.0722].reduce((sum, weight, index) => {
|
|
17
|
+
const channel = channels[index] / 255;
|
|
18
|
+
return (
|
|
19
|
+
sum + weight * (channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4)
|
|
20
|
+
);
|
|
21
|
+
}, 0);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function contrastRatio(
|
|
25
|
+
context: CanvasRenderingContext2D,
|
|
26
|
+
foreground: string,
|
|
27
|
+
background: string,
|
|
28
|
+
surface: string,
|
|
29
|
+
) {
|
|
30
|
+
context.fillStyle = surface;
|
|
31
|
+
context.fillRect(0, 0, 1, 1);
|
|
32
|
+
context.fillStyle = background;
|
|
33
|
+
context.fillRect(0, 0, 1, 1);
|
|
34
|
+
const backgroundLuminance = luminance(context.getImageData(0, 0, 1, 1).data);
|
|
35
|
+
context.fillStyle = foreground;
|
|
36
|
+
context.fillRect(0, 0, 1, 1);
|
|
37
|
+
const foregroundLuminance = luminance(context.getImageData(0, 0, 1, 1).data);
|
|
38
|
+
return (
|
|
39
|
+
(Math.max(backgroundLuminance, foregroundLuminance) + 0.05) /
|
|
40
|
+
(Math.min(backgroundLuminance, foregroundLuminance) + 0.05)
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
test.each(["light", "dark"])("semantic color pairs stay readable in %s mode", async (theme) => {
|
|
45
|
+
const root = document.documentElement;
|
|
46
|
+
const probe = document.createElement("div");
|
|
47
|
+
const canvas = document.createElement("canvas");
|
|
48
|
+
canvas.width = canvas.height = 1;
|
|
49
|
+
const context = canvas.getContext("2d");
|
|
50
|
+
if (!context) throw new Error("Contrast checks require a canvas context");
|
|
51
|
+
document.body.append(probe);
|
|
52
|
+
root.dataset.theme = theme;
|
|
53
|
+
|
|
54
|
+
try {
|
|
55
|
+
for (const preset of presets) {
|
|
56
|
+
if (preset) root.dataset.preset = preset;
|
|
57
|
+
else delete root.dataset.preset;
|
|
58
|
+
|
|
59
|
+
for (const family of ["primary", "neutral", "success", "warning", "danger"]) {
|
|
60
|
+
const pairs = [
|
|
61
|
+
[`${family}-bg`, `${family}-text-on-bg`],
|
|
62
|
+
[`${family}-bg-subtle`, `${family}-text-on-subtle`],
|
|
63
|
+
[`${family}-bg-strong`, `${family}-text-on-strong`],
|
|
64
|
+
["surface", `${family}-text`],
|
|
65
|
+
];
|
|
66
|
+
if (family === "primary" || family === "danger") {
|
|
67
|
+
pairs.push(
|
|
68
|
+
[`${family}-bg-hover`, `${family}-text-on-bg`],
|
|
69
|
+
[`${family}-bg-press`, `${family}-text-on-bg`],
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
for (const [background, foreground] of pairs) {
|
|
74
|
+
probe.style.cssText = `background: var(${colorPrefix}${background}); color: var(${colorPrefix}${foreground}); border-color: var(--sigvelo-color-surface)`;
|
|
75
|
+
const style = getComputedStyle(probe);
|
|
76
|
+
const ratio = contrastRatio(
|
|
77
|
+
context,
|
|
78
|
+
style.color,
|
|
79
|
+
style.backgroundColor,
|
|
80
|
+
style.borderColor,
|
|
81
|
+
);
|
|
82
|
+
expect(
|
|
83
|
+
ratio,
|
|
84
|
+
`${preset || "default"}: ${foreground} on ${background}`,
|
|
85
|
+
).toBeGreaterThanOrEqual(4.5);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
delete root.dataset.preset;
|
|
91
|
+
probe.style.backgroundColor = "var(--sigvelo-color-neutral-bg-subtle)";
|
|
92
|
+
await cdp().send("Emulation.setEmulatedMedia", {
|
|
93
|
+
features: [{ name: "prefers-contrast", value: "no-preference" }],
|
|
94
|
+
});
|
|
95
|
+
const background = getComputedStyle(probe).backgroundColor;
|
|
96
|
+
await cdp().send("Emulation.setEmulatedMedia", {
|
|
97
|
+
features: [{ name: "prefers-contrast", value: "more" }],
|
|
98
|
+
});
|
|
99
|
+
expect(getComputedStyle(probe).backgroundColor).toBe(background);
|
|
100
|
+
} finally {
|
|
101
|
+
probe.remove();
|
|
102
|
+
delete root.dataset.theme;
|
|
103
|
+
delete root.dataset.preset;
|
|
104
|
+
await cdp().send("Emulation.setEmulatedMedia", { features: [] });
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
test.each(["light", "dark"])("selected FileTree rows stay readable in %s mode", async (theme) => {
|
|
109
|
+
const root = document.documentElement;
|
|
110
|
+
const fixture = document.createElement("div");
|
|
111
|
+
const canvas = document.createElement("canvas");
|
|
112
|
+
canvas.width = canvas.height = 1;
|
|
113
|
+
const context = canvas.getContext("2d");
|
|
114
|
+
if (!context) throw new Error("Contrast checks require a canvas context");
|
|
115
|
+
document.body.append(fixture);
|
|
116
|
+
const reactRoot = createRoot(fixture);
|
|
117
|
+
act(() =>
|
|
118
|
+
reactRoot.render(
|
|
119
|
+
createElement(
|
|
120
|
+
"div",
|
|
121
|
+
null,
|
|
122
|
+
createElement(
|
|
123
|
+
FileTree,
|
|
124
|
+
{ selectedPath: "src" },
|
|
125
|
+
createElement(FileTreeFolder, { path: "src", name: "Source" }),
|
|
126
|
+
),
|
|
127
|
+
createElement(
|
|
128
|
+
FileTree,
|
|
129
|
+
{ selectedPath: "index.ts" },
|
|
130
|
+
createElement(FileTreeFile, { path: "index.ts", name: "index.ts" }),
|
|
131
|
+
),
|
|
132
|
+
),
|
|
133
|
+
),
|
|
134
|
+
);
|
|
135
|
+
root.dataset.theme = theme;
|
|
136
|
+
|
|
137
|
+
try {
|
|
138
|
+
const nodes = fixture.querySelectorAll<HTMLElement>(".file-tree__node[data-selected]");
|
|
139
|
+
expect(nodes).toHaveLength(2);
|
|
140
|
+
for (const node of nodes) {
|
|
141
|
+
for (const hovered of [false, true]) {
|
|
142
|
+
if (hovered) await page.elementLocator(node).hover();
|
|
143
|
+
else await page.elementLocator(node).unhover();
|
|
144
|
+
expect(node.matches(":hover")).toBe(hovered);
|
|
145
|
+
for (const preset of presets) {
|
|
146
|
+
if (preset) root.dataset.preset = preset;
|
|
147
|
+
else delete root.dataset.preset;
|
|
148
|
+
for (const animation of node.getAnimations()) animation.finish();
|
|
149
|
+
const style = getComputedStyle(node);
|
|
150
|
+
const surface = getComputedStyle(fixture.querySelector(".file-tree")!).backgroundColor;
|
|
151
|
+
expect(
|
|
152
|
+
contrastRatio(context, style.color, style.backgroundColor, surface),
|
|
153
|
+
`${preset || "default"}: ${node.textContent}, hover=${hovered}`,
|
|
154
|
+
).toBeGreaterThanOrEqual(4.5);
|
|
155
|
+
for (const icon of node.querySelectorAll(".file-tree__icon, .file-tree__chevron")) {
|
|
156
|
+
expect(
|
|
157
|
+
contrastRatio(context, getComputedStyle(icon).color, style.backgroundColor, surface),
|
|
158
|
+
`${preset || "default"}: ${node.textContent} icon, hover=${hovered}`,
|
|
159
|
+
).toBeGreaterThanOrEqual(3);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
} finally {
|
|
165
|
+
act(() => reactRoot.unmount());
|
|
166
|
+
fixture.remove();
|
|
167
|
+
delete root.dataset.theme;
|
|
168
|
+
delete root.dataset.preset;
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
test("forced colors preserve scalar indicators and slider keyboard focus", async () => {
|
|
173
|
+
const fixture = document.createElement("div");
|
|
174
|
+
fixture.className = "progress--destructive";
|
|
175
|
+
document.body.append(fixture);
|
|
176
|
+
try {
|
|
177
|
+
await cdp().send("Emulation.setEmulatedMedia", {
|
|
178
|
+
features: [{ name: "forced-colors", value: "active" }],
|
|
179
|
+
});
|
|
180
|
+
const systemColor = document.createElement("div");
|
|
181
|
+
systemColor.style.backgroundColor = "Highlight";
|
|
182
|
+
fixture.append(systemColor);
|
|
183
|
+
|
|
184
|
+
for (const name of ["meter", "progress", "slider"]) {
|
|
185
|
+
const track = document.createElement("div");
|
|
186
|
+
const indicator = document.createElement("div");
|
|
187
|
+
track.className = `${name}__track`;
|
|
188
|
+
track.dataset.slot = `${name}-track`;
|
|
189
|
+
indicator.className = `${name}__indicator`;
|
|
190
|
+
indicator.dataset.slot = `${name}-indicator`;
|
|
191
|
+
track.append(indicator);
|
|
192
|
+
fixture.append(track);
|
|
193
|
+
expect(getComputedStyle(track).outlineStyle, name).toBe("solid");
|
|
194
|
+
expect(getComputedStyle(indicator).backgroundColor, name).toBe(
|
|
195
|
+
getComputedStyle(systemColor).backgroundColor,
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const thumb = document.createElement("div");
|
|
200
|
+
thumb.className = "slider__thumb";
|
|
201
|
+
const range = document.createElement("input");
|
|
202
|
+
range.type = "range";
|
|
203
|
+
thumb.append(range);
|
|
204
|
+
fixture.append(thumb);
|
|
205
|
+
range.focus();
|
|
206
|
+
expect(range.matches(":focus-visible")).toBe(true);
|
|
207
|
+
expect(getComputedStyle(thumb).outlineStyle).toBe("solid");
|
|
208
|
+
} finally {
|
|
209
|
+
fixture.remove();
|
|
210
|
+
await cdp().send("Emulation.setEmulatedMedia", { features: [] });
|
|
211
|
+
}
|
|
212
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.employee-app {
|
|
2
|
+
block-size: 100%;
|
|
3
|
+
min-block-size: 0;
|
|
4
|
+
min-inline-size: 0;
|
|
5
|
+
display: grid;
|
|
6
|
+
grid-template-rows: var(--sigvelo-layout-track-fill);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.status-screen {
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
block-size: 100%;
|
|
12
|
+
min-block-size: 0;
|
|
13
|
+
display: grid;
|
|
14
|
+
align-content: center;
|
|
15
|
+
justify-items: center;
|
|
16
|
+
padding: var(--sigvelo-layout-gutter);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.account-sign-in-dialog__control {
|
|
20
|
+
display: grid;
|
|
21
|
+
justify-items: center;
|
|
22
|
+
gap: var(--sigvelo-spacing-2);
|
|
23
|
+
padding-block: var(--sigvelo-spacing-2);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* The shared composer owns this clearance; office-only routes use the base inset. */
|
|
27
|
+
body:has(.employee-app .agent-chat__composer) .sigvelo-floating-prompt {
|
|
28
|
+
--sigvelo-floating-prompt-inset: calc(var(--sigvelo-spacing-16) + var(--sigvelo-spacing-2));
|
|
29
|
+
}
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
|
|
111
111
|
.file-tree__node[data-selected] {
|
|
112
112
|
background-color: var(--sigvelo-color-primary-bg-subtle);
|
|
113
|
-
color: var(--sigvelo-color-primary-text);
|
|
113
|
+
color: var(--sigvelo-color-primary-text-on-subtle);
|
|
114
114
|
font-weight: var(--sigvelo-font-weight-semibold);
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -157,6 +157,10 @@
|
|
|
157
157
|
color: var(--sigvelo-color-primary-text);
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
.file-tree__node[data-selected] :is(.file-tree__icon, .file-tree__chevron) {
|
|
161
|
+
color: inherit;
|
|
162
|
+
}
|
|
163
|
+
|
|
160
164
|
.file-tree__actions {
|
|
161
165
|
display: inline-flex;
|
|
162
166
|
align-items: center;
|
package/dist/styles/index.css
CHANGED
|
@@ -38,6 +38,8 @@
|
|
|
38
38
|
@import "./context-menu.css" layer(components);
|
|
39
39
|
@import "./dialog.css" layer(components);
|
|
40
40
|
@import "./employee-chrome.css" layer(components);
|
|
41
|
+
@import "./employee-app.css" layer(components);
|
|
42
|
+
@import "./manager-work.css" layer(components);
|
|
41
43
|
@import "./empty-state.css" layer(components);
|
|
42
44
|
@import "./field.css" layer(components);
|
|
43
45
|
@import "./fieldset.css" layer(components);
|
|
@@ -116,8 +116,8 @@
|
|
|
116
116
|
--manager-office-face: 2.625rem;
|
|
117
117
|
|
|
118
118
|
display: grid;
|
|
119
|
-
grid-template-columns:
|
|
120
|
-
grid-template-rows: auto
|
|
119
|
+
grid-template-columns: var(--sigvelo-layout-track-fill) auto;
|
|
120
|
+
grid-template-rows: auto var(--sigvelo-layout-track-fill);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
.manager-office__sidebar[data-layout="chat"] .manager-office__sidebar-heading {
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
min-block-size: var(--sigvelo-density-compact-control-height);
|
|
212
212
|
padding: var(--sigvelo-spacing-1-5) var(--sigvelo-spacing-2);
|
|
213
213
|
display: grid;
|
|
214
|
-
grid-template-columns:
|
|
214
|
+
grid-template-columns: var(--sigvelo-layout-track-fill) auto;
|
|
215
215
|
align-items: center;
|
|
216
216
|
gap: var(--sigvelo-spacing-2);
|
|
217
217
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
padding-block: 0;
|
|
296
296
|
padding-inline: var(--sigvelo-spacing-2);
|
|
297
297
|
display: grid;
|
|
298
|
-
grid-template-columns: var(--manager-office-face)
|
|
298
|
+
grid-template-columns: var(--manager-office-face) var(--sigvelo-layout-track-fill);
|
|
299
299
|
align-items: center;
|
|
300
300
|
gap: var(--sigvelo-spacing-1-5);
|
|
301
301
|
border-radius: var(--sigvelo-radius-md);
|
|
@@ -549,7 +549,7 @@
|
|
|
549
549
|
.manager-office__employee-header {
|
|
550
550
|
min-inline-size: 0;
|
|
551
551
|
display: grid;
|
|
552
|
-
grid-template-columns: auto
|
|
552
|
+
grid-template-columns: auto var(--sigvelo-layout-track-fill);
|
|
553
553
|
align-items: start;
|
|
554
554
|
gap: var(--sigvelo-spacing-3);
|
|
555
555
|
padding-block: var(--sigvelo-spacing-1);
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
.responsive-sidebar-shell__sidebar-content:has(> .manager-office__sidebar) {
|
|
2
|
+
block-size: 100%;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.manager-work__employee-chats {
|
|
6
|
+
min-block-size: 0;
|
|
7
|
+
block-size: 100%;
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.manager-work__threads {
|
|
14
|
+
min-block-size: 0;
|
|
15
|
+
flex: 1;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.manager-work__threads-picker {
|
|
22
|
+
min-block-size: 0;
|
|
23
|
+
flex: 1;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.manager-work__section-label {
|
|
27
|
+
margin: 0;
|
|
28
|
+
padding: var(--sigvelo-spacing-3) var(--sigvelo-spacing-2) var(--sigvelo-spacing-2);
|
|
29
|
+
color: var(--sigvelo-color-text-muted);
|
|
30
|
+
font-size: var(--sigvelo-text-2xs);
|
|
31
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
32
|
+
line-height: var(--sigvelo-text-2xs-leading);
|
|
33
|
+
text-transform: uppercase;
|
|
34
|
+
letter-spacing: var(--sigvelo-tracking-wide);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.manager-work__section-header {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
gap: var(--sigvelo-spacing-1);
|
|
41
|
+
padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-3) var(--sigvelo-spacing-1);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.manager-work__section-header > .manager-work__section-label {
|
|
45
|
+
min-inline-size: 0;
|
|
46
|
+
flex: 1;
|
|
47
|
+
padding: 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.manager-work__section-count {
|
|
51
|
+
display: inline-flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
gap: var(--sigvelo-spacing-1);
|
|
54
|
+
color: var(--sigvelo-color-danger-text);
|
|
55
|
+
font-size: var(--sigvelo-text-2xs);
|
|
56
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
57
|
+
line-height: var(--sigvelo-text-2xs-leading);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.manager-work__section-count svg {
|
|
61
|
+
inline-size: var(--sigvelo-density-compact-control-icon-size);
|
|
62
|
+
block-size: var(--sigvelo-density-compact-control-icon-size);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.manager-work__alert-list {
|
|
66
|
+
display: grid;
|
|
67
|
+
gap: 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.manager-work__handoffs {
|
|
71
|
+
padding: 0 var(--sigvelo-spacing-3) var(--sigvelo-spacing-2);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.manager-work__handoffs > .manager-work__section-header {
|
|
75
|
+
padding: var(--sigvelo-spacing-3) 0 var(--sigvelo-spacing-2);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@container responsive-sidebar-shell (inline-size <= 56rem) {
|
|
79
|
+
.responsive-sidebar-shell__sidebar:has(.manager-office__sidebar) {
|
|
80
|
+
block-size: min(32rem, calc(100% - var(--sigvelo-spacing-3)));
|
|
81
|
+
transition: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.manager-work__employee-chats {
|
|
85
|
+
max-block-size: none;
|
|
86
|
+
overflow: visible;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.manager-work__threads-picker {
|
|
90
|
+
min-block-size: 0;
|
|
91
|
+
flex: none;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
.responsive-sidebar-shell[data-sidebar-toggle-placement="sidebar"]
|
|
50
50
|
.responsive-sidebar-shell__sidebar {
|
|
51
51
|
display: grid;
|
|
52
|
-
grid-template-rows: auto
|
|
52
|
+
grid-template-rows: auto var(--sigvelo-layout-track-fill);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
.responsive-sidebar-shell__sidebar-leading {
|
|
@@ -1,136 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Codex app-server model catalog types.
|
|
4
|
-
*
|
|
5
|
-
* Upstream generates these types with ts-rs but does not publish them from
|
|
6
|
-
* `@openai/codex-sdk`. Keep the field names and shapes aligned with:
|
|
7
|
-
* https://github.com/openai/codex/tree/main/codex-rs/app-server-protocol/schema/typescript
|
|
8
|
-
*/
|
|
9
|
-
/** Canonical user-input modality tags advertised by a Codex model. */
|
|
10
|
-
type CodexInputModality = "text" | "image";
|
|
11
|
-
/** Codex intentionally keeps this open so new effort levels do not break clients. */
|
|
12
|
-
type CodexReasoningEffort = string;
|
|
13
|
-
type CodexReasoningEffortOption = {
|
|
14
|
-
reasoningEffort: CodexReasoningEffort;
|
|
15
|
-
description: string;
|
|
16
|
-
};
|
|
17
|
-
type CodexModelServiceTier = {
|
|
18
|
-
id: string;
|
|
19
|
-
name: string;
|
|
20
|
-
description: string;
|
|
21
|
-
};
|
|
22
|
-
type CodexModelUpgradeInfo = {
|
|
23
|
-
model: string;
|
|
24
|
-
upgradeCopy: string | null;
|
|
25
|
-
modelLink: string | null;
|
|
26
|
-
migrationMarkdown: string | null;
|
|
27
|
-
};
|
|
28
|
-
type CodexModelAvailabilityNux = {
|
|
29
|
-
message: string;
|
|
30
|
-
};
|
|
31
|
-
/** Whole upstream `v2/Model` response shape from Codex app-server `model/list`. */
|
|
32
|
-
type CodexModel = {
|
|
33
|
-
id: string;
|
|
34
|
-
model: string;
|
|
35
|
-
upgrade: string | null;
|
|
36
|
-
upgradeInfo: CodexModelUpgradeInfo | null;
|
|
37
|
-
availabilityNux: CodexModelAvailabilityNux | null;
|
|
38
|
-
displayName: string;
|
|
39
|
-
description: string;
|
|
40
|
-
hidden: boolean;
|
|
41
|
-
supportedReasoningEfforts: CodexReasoningEffortOption[];
|
|
42
|
-
defaultReasoningEffort: CodexReasoningEffort;
|
|
43
|
-
inputModalities: CodexInputModality[];
|
|
44
|
-
supportsPersonality: boolean; /** @deprecated Upstream Codex uses `serviceTiers` for structured tier metadata. */
|
|
45
|
-
additionalSpeedTiers: string[];
|
|
46
|
-
serviceTiers: CodexModelServiceTier[];
|
|
47
|
-
defaultServiceTier: string | null;
|
|
48
|
-
isDefault: boolean;
|
|
49
|
-
};
|
|
50
|
-
/** Whole upstream `v2/ModelListResponse` shape. */
|
|
51
|
-
type CodexModelListResponse = {
|
|
52
|
-
data: CodexModel[]; /** Opaque cursor for the next `model/list` request. */
|
|
53
|
-
nextCursor: string | null;
|
|
54
|
-
};
|
|
55
|
-
/** Current visible model ids in upstream Codex's checked-in catalog. */
|
|
56
|
-
declare const CODEX_MODEL_IDS: readonly ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.2"];
|
|
57
|
-
type CodexModelId = (typeof CODEX_MODEL_IDS)[number];
|
|
58
|
-
/** Preserves literal ids and capability values for checked-in Codex catalogs. */
|
|
59
|
-
declare function defineCodexModels<const Models extends readonly CodexModel[]>(models: Models): Models;
|
|
60
|
-
/**
|
|
61
|
-
* Checked-in snapshot of upstream Codex's visible model catalog
|
|
62
|
-
* (`codex-rs/models-manager/models.json`). Display data for hosts without a
|
|
63
|
-
* live `model/list`; runtime account catalogs remain authoritative because
|
|
64
|
-
* availability differs by account and rollout.
|
|
65
|
-
*/
|
|
66
|
-
declare const CHECKED_IN_CODEX_MODELS: readonly [{
|
|
67
|
-
readonly id: "gpt-5.6-sol";
|
|
68
|
-
readonly model: "gpt-5.6-sol";
|
|
69
|
-
readonly displayName: "GPT-5.6-Sol";
|
|
70
|
-
readonly description: "Fast agentic coding model for responsive everyday work.";
|
|
71
|
-
readonly supportedReasoningEfforts: [...CodexReasoningEffortOption[], CodexReasoningEffortOption];
|
|
72
|
-
readonly defaultReasoningEffort: "low";
|
|
73
|
-
readonly isDefault: false;
|
|
74
|
-
readonly upgrade: null;
|
|
75
|
-
readonly upgradeInfo: null;
|
|
76
|
-
readonly availabilityNux: null;
|
|
77
|
-
readonly hidden: boolean;
|
|
78
|
-
readonly inputModalities: ("text" | "image")[];
|
|
79
|
-
readonly supportsPersonality: boolean;
|
|
80
|
-
readonly additionalSpeedTiers: never[];
|
|
81
|
-
readonly serviceTiers: never[];
|
|
82
|
-
readonly defaultServiceTier: null;
|
|
83
|
-
}, {
|
|
84
|
-
readonly id: "gpt-5.6-terra";
|
|
85
|
-
readonly model: "gpt-5.6-terra";
|
|
86
|
-
readonly displayName: "GPT-5.6-Terra";
|
|
87
|
-
readonly description: "Balanced agentic coding model for everyday work.";
|
|
88
|
-
readonly supportedReasoningEfforts: [...CodexReasoningEffortOption[], CodexReasoningEffortOption];
|
|
89
|
-
readonly defaultReasoningEffort: "medium";
|
|
90
|
-
readonly isDefault: true;
|
|
91
|
-
readonly upgrade: null;
|
|
92
|
-
readonly upgradeInfo: null;
|
|
93
|
-
readonly availabilityNux: null;
|
|
94
|
-
readonly hidden: boolean;
|
|
95
|
-
readonly inputModalities: ("text" | "image")[];
|
|
96
|
-
readonly supportsPersonality: boolean;
|
|
97
|
-
readonly additionalSpeedTiers: never[];
|
|
98
|
-
readonly serviceTiers: never[];
|
|
99
|
-
readonly defaultServiceTier: null;
|
|
100
|
-
}, {
|
|
101
|
-
readonly id: "gpt-5.6-luna";
|
|
102
|
-
readonly model: "gpt-5.6-luna";
|
|
103
|
-
readonly displayName: "GPT-5.6-Luna";
|
|
104
|
-
readonly description: "Agentic coding model tuned for deliberate work.";
|
|
105
|
-
readonly supportedReasoningEfforts: [...CodexReasoningEffortOption[], CodexReasoningEffortOption];
|
|
106
|
-
readonly defaultReasoningEffort: "medium";
|
|
107
|
-
readonly isDefault: false;
|
|
108
|
-
readonly upgrade: null;
|
|
109
|
-
readonly upgradeInfo: null;
|
|
110
|
-
readonly availabilityNux: null;
|
|
111
|
-
readonly hidden: boolean;
|
|
112
|
-
readonly inputModalities: ("text" | "image")[];
|
|
113
|
-
readonly supportsPersonality: boolean;
|
|
114
|
-
readonly additionalSpeedTiers: never[];
|
|
115
|
-
readonly serviceTiers: never[];
|
|
116
|
-
readonly defaultServiceTier: null;
|
|
117
|
-
}, {
|
|
118
|
-
readonly id: "gpt-5.5";
|
|
119
|
-
readonly model: "gpt-5.5";
|
|
120
|
-
readonly displayName: "GPT-5.5";
|
|
121
|
-
readonly description: "Previous-generation agentic coding model.";
|
|
122
|
-
readonly supportedReasoningEfforts: CodexReasoningEffortOption[];
|
|
123
|
-
readonly defaultReasoningEffort: "medium";
|
|
124
|
-
readonly isDefault: false;
|
|
125
|
-
readonly upgrade: null;
|
|
126
|
-
readonly upgradeInfo: null;
|
|
127
|
-
readonly availabilityNux: null;
|
|
128
|
-
readonly hidden: boolean;
|
|
129
|
-
readonly inputModalities: ("text" | "image")[];
|
|
130
|
-
readonly supportsPersonality: boolean;
|
|
131
|
-
readonly additionalSpeedTiers: never[];
|
|
132
|
-
readonly serviceTiers: never[];
|
|
133
|
-
readonly defaultServiceTier: null;
|
|
134
|
-
}];
|
|
135
|
-
//#endregion
|
|
1
|
+
import { a as CodexModelAvailabilityNux, c as CodexModelServiceTier, d as CodexReasoningEffortOption, f as defineCodexModels, i as CodexModel, l as CodexModelUpgradeInfo, n as CODEX_MODEL_IDS, o as CodexModelId, r as CodexInputModality, s as CodexModelListResponse, t as CHECKED_IN_CODEX_MODELS, u as CodexReasoningEffort } from "../codex-model-catalog-BBN_gWcc.js";
|
|
136
2
|
export { CHECKED_IN_CODEX_MODELS, CODEX_MODEL_IDS, CodexInputModality, CodexModel, CodexModelAvailabilityNux, CodexModelId, CodexModelListResponse, CodexModelServiceTier, CodexModelUpgradeInfo, CodexReasoningEffort, CodexReasoningEffortOption, defineCodexModels };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
//#region src/utils/codex-model-catalog.ts
|
|
2
|
-
/**
|
|
2
|
+
/** Known visible model ids from upstream Codex and its desktop catalog. */
|
|
3
3
|
const CODEX_MODEL_IDS = [
|
|
4
|
+
"gpt-6-astra",
|
|
4
5
|
"gpt-5.6-sol",
|
|
5
6
|
"gpt-5.6-terra",
|
|
6
7
|
"gpt-5.6-luna",
|
|
@@ -47,12 +48,28 @@ const checkedInModelMetadata = {
|
|
|
47
48
|
defaultServiceTier: null
|
|
48
49
|
};
|
|
49
50
|
/**
|
|
50
|
-
* Checked-in snapshot of
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* availability differs by account and rollout.
|
|
51
|
+
* Checked-in snapshot of Codex's upstream and desktop model catalogs.
|
|
52
|
+
* Display data for hosts without a live `model/list`; runtime account catalogs
|
|
53
|
+
* remain authoritative because availability differs by account and rollout.
|
|
54
54
|
*/
|
|
55
55
|
const CHECKED_IN_CODEX_MODELS = defineCodexModels([
|
|
56
|
+
{
|
|
57
|
+
...checkedInModelMetadata,
|
|
58
|
+
id: "gpt-6-astra",
|
|
59
|
+
model: "gpt-6-astra",
|
|
60
|
+
displayName: "GPT-6 Astra",
|
|
61
|
+
description: "Our most capable model for complex, demanding work.",
|
|
62
|
+
supportedReasoningEfforts: [
|
|
63
|
+
...standardReasoningEfforts,
|
|
64
|
+
maxReasoningEffort,
|
|
65
|
+
{
|
|
66
|
+
reasoningEffort: "ultra",
|
|
67
|
+
description: "Maximum reasoning with automatic task delegation"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
defaultReasoningEffort: "medium",
|
|
71
|
+
isDefault: false
|
|
72
|
+
},
|
|
56
73
|
{
|
|
57
74
|
...checkedInModelMetadata,
|
|
58
75
|
id: "gpt-5.6-sol",
|