@stigmer/react 0.0.92 → 0.0.93
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/README.md +57 -12
- package/agent/AgentDetailView.js +7 -7
- package/agent/AgentDetailView.js.map +1 -1
- package/agent/AgentPicker.js +3 -3
- package/agent/AgentPicker.js.map +1 -1
- package/api-key/ApiKeyCreatedAlert.js +1 -1
- package/api-key/ApiKeyCreatedAlert.js.map +1 -1
- package/api-key/ApiKeyListPanel.js +4 -4
- package/api-key/ApiKeyListPanel.js.map +1 -1
- package/api-key/CreateApiKeyForm.js +1 -1
- package/api-key/CreateApiKeyForm.js.map +1 -1
- package/attachment/AttachmentChipList.js +2 -2
- package/attachment/AttachmentChipList.js.map +1 -1
- package/color-mode.d.ts +48 -0
- package/color-mode.d.ts.map +1 -0
- package/color-mode.js +53 -0
- package/color-mode.js.map +1 -0
- package/composer/ComposerToolbar.d.ts +6 -2
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +5 -3
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/ConfigureMenu.js +3 -3
- package/composer/ConfigureMenu.js.map +1 -1
- package/composer/ContextChip.js +1 -1
- package/composer/ContextChip.js.map +1 -1
- package/composer/ContextPopover.js +1 -1
- package/composer/ContextPopover.js.map +1 -1
- package/composer/SessionComposer.d.ts +24 -3
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +5 -4
- package/composer/SessionComposer.js.map +1 -1
- package/environment/CreateEnvironmentForm.js +1 -1
- package/environment/CreateEnvironmentForm.js.map +1 -1
- package/environment/EnvVarForm.js +2 -2
- package/environment/EnvVarForm.js.map +1 -1
- package/environment/EnvironmentListPanel.js +2 -2
- package/environment/EnvironmentListPanel.js.map +1 -1
- package/environment/EnvironmentVariableEditor.js +6 -6
- package/environment/EnvironmentVariableEditor.js.map +1 -1
- package/error/ErrorMessage.js +1 -1
- package/error/ErrorMessage.js.map +1 -1
- package/execution/ApprovalCard.js +4 -4
- package/execution/ApprovalCard.js.map +1 -1
- package/execution/ArtifactCard.js +1 -1
- package/execution/ArtifactCard.js.map +1 -1
- package/execution/ArtifactPreviewModal.js +4 -4
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/FollowUpInput.js +1 -1
- package/execution/FollowUpInput.js.map +1 -1
- package/execution/McpToolDetail.js +4 -4
- package/execution/McpToolDetail.js.map +1 -1
- package/execution/MessageEntry.js +1 -1
- package/execution/MessageEntry.js.map +1 -1
- package/execution/MessageThread.js +1 -1
- package/execution/MessageThread.js.map +1 -1
- package/execution/SessionVariablesInput.js +4 -4
- package/execution/SessionVariablesInput.js.map +1 -1
- package/execution/SubAgentSection.js +2 -2
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/ToolCallDetail.js +2 -2
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallGroup.js +1 -1
- package/execution/ToolCallGroup.js.map +1 -1
- package/execution/ToolCallItem.js +2 -2
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/WriteBackCard.js +3 -3
- package/execution/WriteBackCard.js.map +1 -1
- package/execution/tool-rendering-primitives.js +3 -3
- package/execution/tool-rendering-primitives.js.map +1 -1
- package/github/GitHubRepoPicker.js +5 -5
- package/github/GitHubRepoPicker.js.map +1 -1
- package/iam-policy/GrantAccessForm.js +1 -1
- package/iam-policy/GrantAccessForm.js.map +1 -1
- package/iam-policy/OrgMembersPanel.js +5 -5
- package/iam-policy/OrgMembersPanel.js.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.js +3 -3
- package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +5 -5
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/identity-provider/IdentityProviderListPanel.js +3 -3
- package/identity-provider/IdentityProviderListPanel.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +7 -7
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/identity-provider/ProviderPicker.js +2 -2
- package/identity-provider/ProviderPicker.js.map +1 -1
- package/index.d.ts +8 -4
- package/index.d.ts.map +1 -1
- package/index.js +7 -3
- package/index.js.map +1 -1
- package/internal/CloudFeatureNotice.js +1 -1
- package/internal/CloudFeatureNotice.js.map +1 -1
- package/internal/Tabs.js +1 -1
- package/internal/Tabs.js.map +1 -1
- package/internal/markdown-components.js +2 -2
- package/internal/markdown-components.js.map +1 -1
- package/invitation/InvitationCreatedAlert.js +1 -1
- package/invitation/InvitationCreatedAlert.js.map +1 -1
- package/invitation/InvitationManager.js +5 -5
- package/invitation/InvitationManager.js.map +1 -1
- package/invitation/InvitationRedemption.js +4 -4
- package/invitation/InvitationRedemption.js.map +1 -1
- package/library/ResourceCountCard.js +1 -1
- package/library/ResourceCountCard.js.map +1 -1
- package/library/ResourceListView.js +5 -5
- package/library/ResourceListView.js.map +1 -1
- package/mcp-server/McpServerConfigPanel.js +5 -5
- package/mcp-server/McpServerConfigPanel.js.map +1 -1
- package/mcp-server/McpServerConnectDialog.js +4 -4
- package/mcp-server/McpServerConnectDialog.js.map +1 -1
- package/mcp-server/McpServerDetailView.js +14 -14
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.js +4 -4
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/mcp-server/McpToolSelector.js +3 -3
- package/mcp-server/McpToolSelector.js.map +1 -1
- package/mcp-server/OAuthAppForm.js +1 -1
- package/mcp-server/OAuthAppForm.js.map +1 -1
- package/models/ModelSelector.js +1 -1
- package/models/ModelSelector.js.map +1 -1
- package/oauth-app/CreateOAuthAppForm.js +1 -1
- package/oauth-app/CreateOAuthAppForm.js.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.js +3 -3
- package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
- package/oauth-app/OAuthAppListPanel.js +2 -2
- package/oauth-app/OAuthAppListPanel.js.map +1 -1
- package/organization/CreateOrganizationForm.js +1 -1
- package/organization/CreateOrganizationForm.js.map +1 -1
- package/organization/OrgProfilePanel.js +3 -3
- package/organization/OrgProfilePanel.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/CreatePlatformClientForm.js +2 -2
- package/platform-client/CreatePlatformClientForm.js.map +1 -1
- package/platform-client/PlatformClientDetailPanel.js +4 -4
- package/platform-client/PlatformClientDetailPanel.js.map +1 -1
- package/platform-client/PlatformClientListPanel.js +3 -3
- package/platform-client/PlatformClientListPanel.js.map +1 -1
- package/platform-client/PlatformClientSecretAlert.js +2 -2
- package/platform-client/PlatformClientSecretAlert.js.map +1 -1
- package/provider.d.ts +39 -2
- package/provider.d.ts.map +1 -1
- package/provider.js +11 -3
- package/provider.js.map +1 -1
- package/runner/RunnerListPanel.d.ts +65 -0
- package/runner/RunnerListPanel.d.ts.map +1 -0
- package/runner/RunnerListPanel.js +237 -0
- package/runner/RunnerListPanel.js.map +1 -0
- package/runner/RunnerPicker.d.ts +54 -0
- package/runner/RunnerPicker.d.ts.map +1 -0
- package/runner/RunnerPicker.js +133 -0
- package/runner/RunnerPicker.js.map +1 -0
- package/runner/__tests__/useDeleteRunner.test.d.ts +2 -0
- package/runner/__tests__/useDeleteRunner.test.d.ts.map +1 -0
- package/runner/__tests__/useDeleteRunner.test.js +108 -0
- package/runner/__tests__/useDeleteRunner.test.js.map +1 -0
- package/runner/__tests__/useLaunchLocalRunner.test.d.ts +2 -0
- package/runner/__tests__/useLaunchLocalRunner.test.d.ts.map +1 -0
- package/runner/__tests__/useLaunchLocalRunner.test.js +143 -0
- package/runner/__tests__/useLaunchLocalRunner.test.js.map +1 -0
- package/runner/__tests__/useStopRunner.test.d.ts +2 -0
- package/runner/__tests__/useStopRunner.test.d.ts.map +1 -0
- package/runner/__tests__/useStopRunner.test.js +114 -0
- package/runner/__tests__/useStopRunner.test.js.map +1 -0
- package/runner/index.d.ts +14 -0
- package/runner/index.d.ts.map +1 -0
- package/runner/index.js +8 -0
- package/runner/index.js.map +1 -0
- package/runner/phase.d.ts +30 -0
- package/runner/phase.d.ts.map +1 -0
- package/runner/phase.js +58 -0
- package/runner/phase.js.map +1 -0
- package/runner/useDeleteRunner.d.ts +36 -0
- package/runner/useDeleteRunner.d.ts.map +1 -0
- package/runner/useDeleteRunner.js +42 -0
- package/runner/useDeleteRunner.js.map +1 -0
- package/runner/useLaunchLocalRunner.d.ts +84 -0
- package/runner/useLaunchLocalRunner.d.ts.map +1 -0
- package/runner/useLaunchLocalRunner.js +75 -0
- package/runner/useLaunchLocalRunner.js.map +1 -0
- package/runner/useRunnerList.d.ts +49 -0
- package/runner/useRunnerList.d.ts.map +1 -0
- package/runner/useRunnerList.js +70 -0
- package/runner/useRunnerList.js.map +1 -0
- package/runner/useStopRunner.d.ts +53 -0
- package/runner/useStopRunner.d.ts.map +1 -0
- package/runner/useStopRunner.js +50 -0
- package/runner/useStopRunner.js.map +1 -0
- package/session/draft.d.ts +53 -0
- package/session/draft.d.ts.map +1 -0
- package/session/draft.js +45 -0
- package/session/draft.js.map +1 -0
- package/session/index.d.ts +10 -0
- package/session/index.d.ts.map +1 -1
- package/session/index.js +5 -0
- package/session/index.js.map +1 -1
- package/session/useCreateSession.d.ts +8 -0
- package/session/useCreateSession.d.ts.map +1 -1
- package/session/useCreateSession.js +1 -0
- package/session/useCreateSession.js.map +1 -1
- package/session/useEditSessionPrep.d.ts +26 -0
- package/session/useEditSessionPrep.d.ts.map +1 -0
- package/session/useEditSessionPrep.js +83 -0
- package/session/useEditSessionPrep.js.map +1 -0
- package/session/useNewSessionFlow.d.ts +110 -0
- package/session/useNewSessionFlow.d.ts.map +1 -0
- package/session/useNewSessionFlow.js +184 -0
- package/session/useNewSessionFlow.js.map +1 -0
- package/session/usePersistedModel.d.ts +18 -0
- package/session/usePersistedModel.d.ts.map +1 -0
- package/session/usePersistedModel.js +31 -0
- package/session/usePersistedModel.js.map +1 -0
- package/session/useSessionPageFlow.d.ts +104 -0
- package/session/useSessionPageFlow.d.ts.map +1 -0
- package/session/useSessionPageFlow.js +172 -0
- package/session/useSessionPageFlow.js.map +1 -0
- package/skill/SkillDetailView.js +3 -3
- package/skill/SkillDetailView.js.map +1 -1
- package/skill/SkillPicker.js +3 -3
- package/skill/SkillPicker.js.map +1 -1
- package/src/agent/AgentDetailView.tsx +8 -8
- package/src/agent/AgentPicker.tsx +3 -3
- package/src/api-key/ApiKeyCreatedAlert.tsx +2 -2
- package/src/api-key/ApiKeyListPanel.tsx +6 -6
- package/src/api-key/CreateApiKeyForm.tsx +2 -2
- package/src/attachment/AttachmentChipList.tsx +3 -3
- package/src/color-mode.ts +75 -0
- package/src/composer/ComposerToolbar.tsx +29 -7
- package/src/composer/ConfigureMenu.tsx +6 -6
- package/src/composer/ContextChip.tsx +1 -1
- package/src/composer/ContextPopover.tsx +2 -2
- package/src/composer/SessionComposer.tsx +34 -5
- package/src/environment/CreateEnvironmentForm.tsx +3 -3
- package/src/environment/EnvVarForm.tsx +6 -6
- package/src/environment/EnvironmentListPanel.tsx +3 -3
- package/src/environment/EnvironmentVariableEditor.tsx +7 -7
- package/src/error/ErrorMessage.tsx +5 -5
- package/src/execution/ApprovalCard.tsx +5 -5
- package/src/execution/ArtifactCard.tsx +2 -2
- package/src/execution/ArtifactPreviewModal.tsx +4 -4
- package/src/execution/FollowUpInput.tsx +2 -2
- package/src/execution/McpToolDetail.tsx +4 -4
- package/src/execution/MessageEntry.tsx +1 -1
- package/src/execution/MessageThread.tsx +1 -1
- package/src/execution/SessionVariablesInput.tsx +7 -7
- package/src/execution/SubAgentSection.tsx +5 -5
- package/src/execution/ToolCallDetail.tsx +2 -2
- package/src/execution/ToolCallGroup.tsx +3 -3
- package/src/execution/ToolCallItem.tsx +4 -4
- package/src/execution/WriteBackCard.tsx +5 -5
- package/src/execution/tool-rendering-primitives.tsx +5 -5
- package/src/github/GitHubRepoPicker.tsx +5 -5
- package/src/iam-policy/GrantAccessForm.tsx +2 -2
- package/src/iam-policy/OrgMembersPanel.tsx +11 -11
- package/src/identity-provider/CreateIdentityProviderForm.tsx +4 -4
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +7 -7
- package/src/identity-provider/IdentityProviderListPanel.tsx +7 -7
- package/src/identity-provider/IdentityProviderWizard.tsx +8 -8
- package/src/identity-provider/ProviderPicker.tsx +2 -2
- package/src/index.ts +46 -7
- package/src/internal/CloudFeatureNotice.tsx +1 -1
- package/src/internal/Tabs.tsx +1 -1
- package/src/internal/markdown-components.tsx +2 -2
- package/src/invitation/InvitationCreatedAlert.tsx +2 -2
- package/src/invitation/InvitationManager.tsx +9 -9
- package/src/invitation/InvitationRedemption.tsx +11 -11
- package/src/library/ResourceCountCard.tsx +1 -1
- package/src/library/ResourceListView.tsx +7 -7
- package/src/mcp-server/McpServerConfigPanel.tsx +7 -7
- package/src/mcp-server/McpServerConnectDialog.tsx +5 -5
- package/src/mcp-server/McpServerDetailView.tsx +19 -19
- package/src/mcp-server/McpServerPicker.tsx +6 -6
- package/src/mcp-server/McpToolSelector.tsx +4 -4
- package/src/mcp-server/OAuthAppForm.tsx +3 -3
- package/src/models/ModelSelector.tsx +1 -1
- package/src/oauth-app/CreateOAuthAppForm.tsx +3 -3
- package/src/oauth-app/OAuthAppDetailPanel.tsx +7 -7
- package/src/oauth-app/OAuthAppListPanel.tsx +3 -3
- package/src/organization/CreateOrganizationForm.tsx +3 -3
- package/src/organization/OrgProfilePanel.tsx +4 -5
- package/src/platform-client/CreatePlatformClientForm.tsx +6 -6
- package/src/platform-client/PlatformClientDetailPanel.tsx +19 -19
- package/src/platform-client/PlatformClientListPanel.tsx +7 -7
- package/src/platform-client/PlatformClientSecretAlert.tsx +2 -2
- package/src/provider.tsx +52 -2
- package/src/runner/RunnerListPanel.tsx +725 -0
- package/src/runner/RunnerPicker.tsx +319 -0
- package/src/runner/__tests__/useDeleteRunner.test.tsx +150 -0
- package/src/runner/__tests__/useLaunchLocalRunner.test.tsx +223 -0
- package/src/runner/__tests__/useStopRunner.test.tsx +154 -0
- package/src/runner/index.ts +34 -0
- package/src/runner/phase.ts +62 -0
- package/src/runner/useDeleteRunner.ts +67 -0
- package/src/runner/useLaunchLocalRunner.ts +139 -0
- package/src/runner/useRunnerList.ts +114 -0
- package/src/runner/useStopRunner.ts +92 -0
- package/src/session/draft.ts +82 -0
- package/src/session/index.ts +28 -0
- package/src/session/useCreateSession.ts +9 -0
- package/src/session/useEditSessionPrep.ts +111 -0
- package/src/session/useNewSessionFlow.ts +283 -0
- package/src/session/usePersistedModel.ts +41 -0
- package/src/session/useSessionPageFlow.ts +280 -0
- package/src/skill/SkillDetailView.tsx +5 -5
- package/src/skill/SkillPicker.tsx +3 -3
- package/src/styles.css +25 -1
- package/src/usage/OrgUsagePanel.tsx +4 -4
- package/src/workspace/WorkspaceEditor.tsx +78 -66
- package/src/workspace/index.ts +0 -8
- package/styles.css +1 -1
- package/usage/OrgUsagePanel.js +2 -2
- package/usage/OrgUsagePanel.js.map +1 -1
- package/workspace/WorkspaceEditor.d.ts +28 -3
- package/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/workspace/WorkspaceEditor.js +24 -25
- package/workspace/WorkspaceEditor.js.map +1 -1
- package/workspace/index.d.ts +0 -4
- package/workspace/index.d.ts.map +1 -1
- package/workspace/index.js +0 -2
- package/workspace/index.js.map +1 -1
- package/src/workspace/FolderBrowser.tsx +0 -579
- package/src/workspace/useFolderListing.ts +0 -164
- package/workspace/FolderBrowser.d.ts +0 -37
- package/workspace/FolderBrowser.d.ts.map +0 -1
- package/workspace/FolderBrowser.js +0 -188
- package/workspace/FolderBrowser.js.map +0 -1
- package/workspace/useFolderListing.d.ts +0 -73
- package/workspace/useFolderListing.d.ts.map +0 -1
- package/workspace/useFolderListing.js +0 -110
- package/workspace/useFolderListing.js.map +0 -1
|
@@ -110,8 +110,12 @@ export interface SessionComposerProps {
|
|
|
110
110
|
readonly enableGitHub?: boolean;
|
|
111
111
|
/** Show the Local Folder source button. @default false */
|
|
112
112
|
readonly enableLocal?: boolean;
|
|
113
|
-
/**
|
|
114
|
-
|
|
113
|
+
/**
|
|
114
|
+
* Native folder picker callback passed through to {@link WorkspaceEditor}.
|
|
115
|
+
* When provided, clicking "Local Folder" opens a native dialog instead
|
|
116
|
+
* of the inline text input. See {@link WorkspaceEditorProps.onBrowseLocalFolder}.
|
|
117
|
+
*/
|
|
118
|
+
readonly onBrowseLocalFolder?: () => Promise<string | null>;
|
|
115
119
|
|
|
116
120
|
/**
|
|
117
121
|
* Organization slug for agent, MCP server, and skill searches.
|
|
@@ -188,6 +192,24 @@ export interface SessionComposerProps {
|
|
|
188
192
|
/** Called when the skill selection changes. Providing this enables the skill trigger. */
|
|
189
193
|
readonly onSkillRefsChange?: (refs: ResourceRef[]) => void;
|
|
190
194
|
|
|
195
|
+
/**
|
|
196
|
+
* Currently selected runner ID, or `null` for "Auto" (backend decides).
|
|
197
|
+
*
|
|
198
|
+
* When `onRunnerIdChange` is provided and `org` is set, renders a
|
|
199
|
+
* runner picker in the toolbar's Tier 1 (alongside Model Selector).
|
|
200
|
+
*
|
|
201
|
+
* The selected runner ID flows through to `session.create({ runnerId })`
|
|
202
|
+
* so the session is bound to that runner's task queue.
|
|
203
|
+
*/
|
|
204
|
+
readonly runnerId?: string | null;
|
|
205
|
+
/**
|
|
206
|
+
* Called when the user selects a different runner. `null` = "Auto".
|
|
207
|
+
*
|
|
208
|
+
* Providing this callback enables the runner picker in the toolbar.
|
|
209
|
+
* Requires `org` to be set (same prerequisite as agent/MCP pickers).
|
|
210
|
+
*/
|
|
211
|
+
readonly onRunnerIdChange?: (runnerId: string | null) => void;
|
|
212
|
+
|
|
191
213
|
/**
|
|
192
214
|
* Session variables state managed by {@link useSessionVariables}.
|
|
193
215
|
* When provided, renders a "Session Variables" trigger in the toolbar
|
|
@@ -332,7 +354,7 @@ export function SessionComposer({
|
|
|
332
354
|
gitHubConnection,
|
|
333
355
|
enableGitHub = true,
|
|
334
356
|
enableLocal = false,
|
|
335
|
-
|
|
357
|
+
onBrowseLocalFolder,
|
|
336
358
|
org,
|
|
337
359
|
agentRef,
|
|
338
360
|
onAgentRefChange,
|
|
@@ -342,6 +364,8 @@ export function SessionComposer({
|
|
|
342
364
|
onMcpServerUsagesChange,
|
|
343
365
|
skillRefs,
|
|
344
366
|
onSkillRefsChange,
|
|
367
|
+
runnerId,
|
|
368
|
+
onRunnerIdChange,
|
|
345
369
|
sessionVariables,
|
|
346
370
|
enableAttachments = true,
|
|
347
371
|
onAttachmentValidationError,
|
|
@@ -364,6 +388,7 @@ export function SessionComposer({
|
|
|
364
388
|
const showMcp = onMcpServerUsagesChange != null && org != null;
|
|
365
389
|
const showWorkspace = workspace != null;
|
|
366
390
|
const showSkills = onSkillRefsChange != null && org != null;
|
|
391
|
+
const showRunner = onRunnerIdChange != null && org != null;
|
|
367
392
|
const showSessionVars = sessionVariables != null;
|
|
368
393
|
const showAttach = enableAttachments;
|
|
369
394
|
|
|
@@ -1143,7 +1168,7 @@ export function SessionComposer({
|
|
|
1143
1168
|
className="block w-full resize-none bg-transparent px-4 pt-3 pb-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none disabled:cursor-not-allowed"
|
|
1144
1169
|
/>
|
|
1145
1170
|
{isDragOver && (
|
|
1146
|
-
<div className="pointer-events-none absolute inset-0 flex items-center justify-center rounded-t-xl bg-primary
|
|
1171
|
+
<div className="pointer-events-none absolute inset-0 flex items-center justify-center rounded-t-xl bg-primary-subtle">
|
|
1147
1172
|
<span className="text-xs font-medium text-primary">
|
|
1148
1173
|
Drop files to attach
|
|
1149
1174
|
</span>
|
|
@@ -1270,7 +1295,7 @@ export function SessionComposer({
|
|
|
1270
1295
|
gitHubConnection={gitHubConnection}
|
|
1271
1296
|
enableGitHub={enableGitHub}
|
|
1272
1297
|
enableLocal={enableLocal}
|
|
1273
|
-
|
|
1298
|
+
onBrowseLocalFolder={onBrowseLocalFolder}
|
|
1274
1299
|
/>
|
|
1275
1300
|
: null
|
|
1276
1301
|
}
|
|
@@ -1280,6 +1305,10 @@ export function SessionComposer({
|
|
|
1280
1305
|
configActivePanel={configActivePanel}
|
|
1281
1306
|
onConfigActivePanelChange={handleConfigActivePanelChange}
|
|
1282
1307
|
renderConfigPanel={renderConfigPanel}
|
|
1308
|
+
showRunner={showRunner}
|
|
1309
|
+
runnerOrg={org ?? ""}
|
|
1310
|
+
runnerId={runnerId ?? null}
|
|
1311
|
+
onRunnerIdChange={onRunnerIdChange ?? (() => {})}
|
|
1283
1312
|
showModelSelector={showModelSelector}
|
|
1284
1313
|
modelId={modelId}
|
|
1285
1314
|
onModelChange={handleModelChange}
|
|
@@ -109,7 +109,7 @@ export function CreateEnvironmentForm({
|
|
|
109
109
|
className="text-xs font-medium text-muted-foreground"
|
|
110
110
|
>
|
|
111
111
|
Description{" "}
|
|
112
|
-
<span className="text-muted-foreground
|
|
112
|
+
<span className="text-muted-foreground-subtle">(optional)</span>
|
|
113
113
|
</label>
|
|
114
114
|
<input
|
|
115
115
|
id="stgm-new-env-desc"
|
|
@@ -140,7 +140,7 @@ export function CreateEnvironmentForm({
|
|
|
140
140
|
disabled={!canSubmit}
|
|
141
141
|
className={cn(
|
|
142
142
|
"inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium",
|
|
143
|
-
"bg-primary text-primary-foreground hover:bg-primary
|
|
143
|
+
"bg-primary text-primary-foreground hover:bg-primary-hover",
|
|
144
144
|
"disabled:pointer-events-none disabled:opacity-40",
|
|
145
145
|
)}
|
|
146
146
|
>
|
|
@@ -155,7 +155,7 @@ export function CreateEnvironmentForm({
|
|
|
155
155
|
disabled={isCreating}
|
|
156
156
|
className={cn(
|
|
157
157
|
"rounded-md px-3 py-1.5 text-xs",
|
|
158
|
-
"text-muted-foreground hover:text-foreground hover:bg-accent
|
|
158
|
+
"text-muted-foreground hover:text-foreground hover:bg-accent-hover",
|
|
159
159
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
160
160
|
)}
|
|
161
161
|
>
|
|
@@ -275,7 +275,7 @@ export function EnvVarForm({
|
|
|
275
275
|
>
|
|
276
276
|
<span className="font-mono">{variable.key}</span>
|
|
277
277
|
{variable.isSecret && (
|
|
278
|
-
<span className="text-[0.55rem] uppercase tracking-wider text-muted-foreground
|
|
278
|
+
<span className="text-[0.55rem] uppercase tracking-wider text-muted-foreground-subtle">
|
|
279
279
|
secret
|
|
280
280
|
</span>
|
|
281
281
|
)}
|
|
@@ -328,13 +328,13 @@ export function EnvVarForm({
|
|
|
328
328
|
{variable.description && (
|
|
329
329
|
<p
|
|
330
330
|
id={descId}
|
|
331
|
-
className="text-[0.6rem] leading-relaxed text-muted-foreground
|
|
331
|
+
className="text-[0.6rem] leading-relaxed text-muted-foreground-subtle"
|
|
332
332
|
>
|
|
333
333
|
{variable.description}
|
|
334
334
|
</p>
|
|
335
335
|
)}
|
|
336
336
|
{prefilledKeys.has(variable.key) && (
|
|
337
|
-
<p className="text-[0.55rem] text-primary
|
|
337
|
+
<p className="text-[0.55rem] text-primary-muted">
|
|
338
338
|
Pre-filled from session variables
|
|
339
339
|
</p>
|
|
340
340
|
)}
|
|
@@ -378,7 +378,7 @@ export function EnvVarForm({
|
|
|
378
378
|
Save for future runs
|
|
379
379
|
</span>
|
|
380
380
|
{!saveForFuture && (
|
|
381
|
-
<span className="block text-[0.6rem] leading-relaxed text-muted-foreground
|
|
381
|
+
<span className="block text-[0.6rem] leading-relaxed text-muted-foreground-subtle">
|
|
382
382
|
These values will only be used for this run.
|
|
383
383
|
</span>
|
|
384
384
|
)}
|
|
@@ -395,7 +395,7 @@ export function EnvVarForm({
|
|
|
395
395
|
disabled={isDisabled}
|
|
396
396
|
className={cn(
|
|
397
397
|
"rounded-md px-3 py-1.5 text-xs",
|
|
398
|
-
"text-muted-foreground hover:text-foreground hover:bg-accent
|
|
398
|
+
"text-muted-foreground hover:text-foreground hover:bg-accent-hover",
|
|
399
399
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
400
400
|
)}
|
|
401
401
|
>
|
|
@@ -410,7 +410,7 @@ export function EnvVarForm({
|
|
|
410
410
|
className={cn(
|
|
411
411
|
"inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium",
|
|
412
412
|
"bg-primary text-primary-foreground",
|
|
413
|
-
"hover:bg-primary
|
|
413
|
+
"hover:bg-primary-hover",
|
|
414
414
|
"disabled:pointer-events-none disabled:opacity-40",
|
|
415
415
|
)}
|
|
416
416
|
>
|
|
@@ -135,7 +135,7 @@ export function EnvironmentListPanel({
|
|
|
135
135
|
{Array.from({ length: 2 }, (_, i) => (
|
|
136
136
|
<div
|
|
137
137
|
key={i}
|
|
138
|
-
className="bg-muted
|
|
138
|
+
className="bg-muted-subtle h-14 animate-pulse rounded-lg"
|
|
139
139
|
/>
|
|
140
140
|
))}
|
|
141
141
|
</div>
|
|
@@ -210,7 +210,7 @@ function EnvironmentCard({
|
|
|
210
210
|
"rounded-lg border transition-colors",
|
|
211
211
|
isExpanded
|
|
212
212
|
? "border-border bg-card"
|
|
213
|
-
: "border-border
|
|
213
|
+
: "border-border-muted hover:border-border",
|
|
214
214
|
)}
|
|
215
215
|
>
|
|
216
216
|
{/* Header — always visible */}
|
|
@@ -240,7 +240,7 @@ function EnvironmentCard({
|
|
|
240
240
|
|
|
241
241
|
{/* Expanded content — variable editor */}
|
|
242
242
|
{isExpanded && environmentId && (
|
|
243
|
-
<div className="border-border
|
|
243
|
+
<div className="border-border-muted border-t px-3 pb-3 pt-2">
|
|
244
244
|
<EnvironmentVariableEditor
|
|
245
245
|
environmentId={environmentId}
|
|
246
246
|
readOnly={readOnly}
|
|
@@ -157,7 +157,7 @@ export function EnvironmentVariableEditor({
|
|
|
157
157
|
{Array.from({ length: 3 }, (_, i) => (
|
|
158
158
|
<div
|
|
159
159
|
key={i}
|
|
160
|
-
className="bg-muted
|
|
160
|
+
className="bg-muted-subtle h-8 animate-pulse rounded"
|
|
161
161
|
style={{ width: `${85 - i * 10}%` }}
|
|
162
162
|
/>
|
|
163
163
|
))}
|
|
@@ -211,7 +211,7 @@ export function EnvironmentVariableEditor({
|
|
|
211
211
|
onClick={() => setShowAddForm(true)}
|
|
212
212
|
className={cn(
|
|
213
213
|
"mt-1 flex items-center gap-1.5 rounded-md px-2 py-1.5 text-xs",
|
|
214
|
-
"text-muted-foreground hover:text-foreground hover:bg-accent
|
|
214
|
+
"text-muted-foreground hover:text-foreground hover:bg-accent-hover",
|
|
215
215
|
"transition-colors",
|
|
216
216
|
)}
|
|
217
217
|
>
|
|
@@ -396,7 +396,7 @@ function VariableRow({
|
|
|
396
396
|
{variable.key}
|
|
397
397
|
</span>
|
|
398
398
|
{variable.isSecret && (
|
|
399
|
-
<span className="text-[0.55rem] uppercase tracking-wider text-muted-foreground
|
|
399
|
+
<span className="text-[0.55rem] uppercase tracking-wider text-muted-foreground-subtle">
|
|
400
400
|
secret
|
|
401
401
|
</span>
|
|
402
402
|
)}
|
|
@@ -584,7 +584,7 @@ function AddVariableForm({
|
|
|
584
584
|
disabled={!canSubmit}
|
|
585
585
|
className={cn(
|
|
586
586
|
"inline-flex items-center gap-1.5 rounded-md px-3 py-1 text-xs font-medium",
|
|
587
|
-
"bg-primary text-primary-foreground hover:bg-primary
|
|
587
|
+
"bg-primary text-primary-foreground hover:bg-primary-hover",
|
|
588
588
|
"disabled:pointer-events-none disabled:opacity-40",
|
|
589
589
|
)}
|
|
590
590
|
>
|
|
@@ -597,7 +597,7 @@ function AddVariableForm({
|
|
|
597
597
|
disabled={isAdding}
|
|
598
598
|
className={cn(
|
|
599
599
|
"rounded-md px-3 py-1 text-xs",
|
|
600
|
-
"text-muted-foreground hover:text-foreground hover:bg-accent
|
|
600
|
+
"text-muted-foreground hover:text-foreground hover:bg-accent-hover",
|
|
601
601
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
602
602
|
)}
|
|
603
603
|
>
|
|
@@ -626,10 +626,10 @@ function ActionButton({
|
|
|
626
626
|
children: React.ReactNode;
|
|
627
627
|
}) {
|
|
628
628
|
const colorClass = {
|
|
629
|
-
primary: "text-primary hover:text-primary
|
|
629
|
+
primary: "text-primary hover:text-primary-muted",
|
|
630
630
|
muted: "text-muted-foreground hover:text-foreground",
|
|
631
631
|
"muted-danger": "text-muted-foreground hover:text-destructive",
|
|
632
|
-
danger: "text-destructive hover:text-destructive
|
|
632
|
+
danger: "text-destructive hover:text-destructive-muted",
|
|
633
633
|
}[variant];
|
|
634
634
|
|
|
635
635
|
return (
|
|
@@ -75,7 +75,7 @@ export function ErrorMessage({
|
|
|
75
75
|
<div
|
|
76
76
|
role="alert"
|
|
77
77
|
className={cn(
|
|
78
|
-
"bg-destructive
|
|
78
|
+
"bg-destructive-subtle border-destructive/20 text-destructive rounded-lg border p-4",
|
|
79
79
|
className,
|
|
80
80
|
)}
|
|
81
81
|
>
|
|
@@ -90,14 +90,14 @@ export function ErrorMessage({
|
|
|
90
90
|
<p className="text-sm font-medium">
|
|
91
91
|
{title ?? CATEGORY_TITLES[category]}
|
|
92
92
|
</p>
|
|
93
|
-
<p className="text-destructive
|
|
93
|
+
<p className="text-destructive-muted text-sm">{message}</p>
|
|
94
94
|
|
|
95
95
|
{metadata && (
|
|
96
96
|
<div className="pt-1">
|
|
97
97
|
<button
|
|
98
98
|
type="button"
|
|
99
99
|
onClick={() => setDetailsOpen((prev) => !prev)}
|
|
100
|
-
className="text-destructive
|
|
100
|
+
className="text-destructive-muted hover:text-destructive-muted inline-flex items-center gap-1 text-xs transition-colors"
|
|
101
101
|
>
|
|
102
102
|
<ChevronDownIcon
|
|
103
103
|
className={cn(
|
|
@@ -108,7 +108,7 @@ export function ErrorMessage({
|
|
|
108
108
|
Technical details
|
|
109
109
|
</button>
|
|
110
110
|
{detailsOpen && (
|
|
111
|
-
<dl className="text-destructive
|
|
111
|
+
<dl className="text-destructive-muted mt-1.5 space-y-0.5 font-mono text-xs">
|
|
112
112
|
<div className="flex gap-2">
|
|
113
113
|
<dt className="shrink-0">Method:</dt>
|
|
114
114
|
<dd className="truncate">{metadata.method}</dd>
|
|
@@ -129,7 +129,7 @@ export function ErrorMessage({
|
|
|
129
129
|
onClick={retry}
|
|
130
130
|
className={cn(
|
|
131
131
|
"inline-flex shrink-0 items-center gap-1.5 rounded-md border px-2.5 py-1.5 text-xs font-medium",
|
|
132
|
-
"border-destructive/20 text-destructive hover:bg-destructive
|
|
132
|
+
"border-destructive/20 text-destructive hover:bg-destructive-subtle",
|
|
133
133
|
"transition-colors",
|
|
134
134
|
)}
|
|
135
135
|
>
|
|
@@ -106,7 +106,7 @@ export function ApprovalCard({
|
|
|
106
106
|
|
|
107
107
|
const borderClass =
|
|
108
108
|
categoryInfo.category === "delete"
|
|
109
|
-
? "border-destructive/30 bg-destructive
|
|
109
|
+
? "border-destructive/30 bg-destructive-subtle"
|
|
110
110
|
: "border-warning/30 bg-warning/5";
|
|
111
111
|
|
|
112
112
|
return (
|
|
@@ -119,7 +119,7 @@ export function ApprovalCard({
|
|
|
119
119
|
<div
|
|
120
120
|
className={cn(
|
|
121
121
|
"flex items-center gap-2 px-2.5 py-1.5 text-xs",
|
|
122
|
-
"border-b border-border
|
|
122
|
+
"border-b border-border-muted",
|
|
123
123
|
)}
|
|
124
124
|
>
|
|
125
125
|
<span className="shrink-0 text-warning" aria-hidden="true">
|
|
@@ -231,11 +231,11 @@ function ActionButton({
|
|
|
231
231
|
),
|
|
232
232
|
skip: cn(
|
|
233
233
|
"border border-border bg-background text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
234
|
-
"disabled:bg-muted
|
|
234
|
+
"disabled:bg-muted-faint disabled:text-muted-foreground-faint",
|
|
235
235
|
),
|
|
236
236
|
reject: cn(
|
|
237
|
-
"bg-destructive text-destructive-foreground hover:bg-destructive
|
|
238
|
-
"disabled:bg-destructive
|
|
237
|
+
"bg-destructive text-destructive-foreground hover:bg-destructive-hover",
|
|
238
|
+
"disabled:bg-destructive-subtle0 disabled:text-destructive-foreground/70",
|
|
239
239
|
),
|
|
240
240
|
};
|
|
241
241
|
|
|
@@ -192,7 +192,7 @@ export function ArtifactCard({
|
|
|
192
192
|
/>
|
|
193
193
|
)}
|
|
194
194
|
{detectionLabel && (
|
|
195
|
-
<span className="mt-1.5 inline-flex items-center rounded-full bg-primary
|
|
195
|
+
<span className="mt-1.5 inline-flex items-center rounded-full bg-primary-subtle px-2 py-0.5 text-xs font-medium text-primary">
|
|
196
196
|
{detectionLabel}
|
|
197
197
|
</span>
|
|
198
198
|
)}
|
|
@@ -204,7 +204,7 @@ export function ArtifactCard({
|
|
|
204
204
|
type="button"
|
|
205
205
|
onClick={() => onPreview!(artifact)}
|
|
206
206
|
className={cn(
|
|
207
|
-
"text-xs font-medium text-primary transition-colors hover:text-primary
|
|
207
|
+
"text-xs font-medium text-primary transition-colors hover:text-primary-muted",
|
|
208
208
|
FOCUS_RING_CLASSES,
|
|
209
209
|
)}
|
|
210
210
|
>
|
|
@@ -447,7 +447,7 @@ function ContentHeader({
|
|
|
447
447
|
/>
|
|
448
448
|
)}
|
|
449
449
|
{detectionLabel && (
|
|
450
|
-
<span className="inline-flex items-center rounded-full bg-primary
|
|
450
|
+
<span className="inline-flex items-center rounded-full bg-primary-subtle px-2 py-0.5 text-xs font-medium text-primary">
|
|
451
451
|
{detectionLabel}
|
|
452
452
|
</span>
|
|
453
453
|
)}
|
|
@@ -548,7 +548,7 @@ function DirectoryContentView({
|
|
|
548
548
|
return (
|
|
549
549
|
<div className="p-4">
|
|
550
550
|
{skillDetection.detected && (
|
|
551
|
-
<div className="mb-4 rounded-md bg-primary
|
|
551
|
+
<div className="mb-4 rounded-md bg-primary-subtle p-3">
|
|
552
552
|
<p className="text-sm font-medium text-foreground">
|
|
553
553
|
{skillDetection.skillName}
|
|
554
554
|
</p>
|
|
@@ -671,7 +671,7 @@ function ActionBar({
|
|
|
671
671
|
type="button"
|
|
672
672
|
onClick={onApply}
|
|
673
673
|
className={cn(
|
|
674
|
-
"text-xs font-medium text-destructive underline transition-colors hover:text-destructive
|
|
674
|
+
"text-xs font-medium text-destructive underline transition-colors hover:text-destructive-muted",
|
|
675
675
|
FOCUS_RING_CLASSES,
|
|
676
676
|
)}
|
|
677
677
|
>
|
|
@@ -717,7 +717,7 @@ function ApplyButton({
|
|
|
717
717
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
718
718
|
"disabled:cursor-not-allowed",
|
|
719
719
|
canApply
|
|
720
|
-
? "bg-primary text-primary-foreground hover:bg-primary
|
|
720
|
+
? "bg-primary text-primary-foreground hover:bg-primary-hover"
|
|
721
721
|
: "bg-muted text-muted-foreground",
|
|
722
722
|
)}
|
|
723
723
|
>
|
|
@@ -161,7 +161,7 @@ export function FollowUpInput({
|
|
|
161
161
|
className="block w-full resize-none bg-transparent px-4 pt-3 pb-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none disabled:cursor-not-allowed"
|
|
162
162
|
/>
|
|
163
163
|
|
|
164
|
-
<div className="flex items-center justify-between gap-2 border-t border-border
|
|
164
|
+
<div className="flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2">
|
|
165
165
|
<div className="flex items-center gap-2">
|
|
166
166
|
{showModelSelector && (
|
|
167
167
|
<ModelSelector
|
|
@@ -176,7 +176,7 @@ export function FollowUpInput({
|
|
|
176
176
|
type="button"
|
|
177
177
|
disabled={!canSubmit}
|
|
178
178
|
onClick={handleSubmit}
|
|
179
|
-
className="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground transition-colors hover:bg-primary
|
|
179
|
+
className="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground transition-colors hover:bg-primary-hover disabled:pointer-events-none disabled:opacity-40"
|
|
180
180
|
aria-label="Send message"
|
|
181
181
|
>
|
|
182
182
|
{isSubmitting ? <SpinnerIcon /> : <ArrowUpIcon />}
|
|
@@ -94,7 +94,7 @@ export function McpMetadataRow({
|
|
|
94
94
|
<span className="inline-flex items-center gap-1.5 rounded bg-muted px-1.5 py-0.5 font-mono">
|
|
95
95
|
<McpServerIcon />
|
|
96
96
|
{mcpServerSlug}
|
|
97
|
-
<span className="text-muted-foreground
|
|
97
|
+
<span className="text-muted-foreground-subtle">/</span>
|
|
98
98
|
<span className="text-foreground">{humanizeToolName(toolName)}</span>
|
|
99
99
|
</span>
|
|
100
100
|
)}
|
|
@@ -139,7 +139,7 @@ export function McpArgsView({ args }: McpArgsViewProps) {
|
|
|
139
139
|
<span className="font-medium text-muted-foreground">Arguments</span>
|
|
140
140
|
|
|
141
141
|
{scalars.length > 0 && (
|
|
142
|
-
<dl className="grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 rounded-md border border-border bg-muted
|
|
142
|
+
<dl className="grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 rounded-md border border-border bg-muted-faint px-2.5 py-2">
|
|
143
143
|
{scalars.map(([key, value]) => (
|
|
144
144
|
<ScalarRow key={key} label={key} value={value} />
|
|
145
145
|
))}
|
|
@@ -167,7 +167,7 @@ function ScalarRow({ label, value }: { label: string; value: string }) {
|
|
|
167
167
|
</dt>
|
|
168
168
|
{isMultiline ? (
|
|
169
169
|
<dd className="min-w-0">
|
|
170
|
-
<pre className="whitespace-pre-wrap break-words rounded border border-border bg-muted
|
|
170
|
+
<pre className="whitespace-pre-wrap break-words rounded border border-border bg-muted-subtle px-2 py-1 font-mono text-foreground">
|
|
171
171
|
{value}
|
|
172
172
|
</pre>
|
|
173
173
|
</dd>
|
|
@@ -192,7 +192,7 @@ function McpResultView({ result }: { result: string }) {
|
|
|
192
192
|
<span className="font-medium text-muted-foreground">Result</span>
|
|
193
193
|
<CollapsiblePre
|
|
194
194
|
content={parsed}
|
|
195
|
-
className="max-h-80 overflow-auto rounded-md border border-border bg-muted
|
|
195
|
+
className="max-h-80 overflow-auto rounded-md border border-border bg-muted-subtle p-2 text-foreground"
|
|
196
196
|
/>
|
|
197
197
|
</div>
|
|
198
198
|
);
|
|
@@ -62,7 +62,7 @@ function HumanMessage({
|
|
|
62
62
|
<div
|
|
63
63
|
role="article"
|
|
64
64
|
aria-label="User message"
|
|
65
|
-
className={cn("ms-[20%] rounded-lg bg-muted
|
|
65
|
+
className={cn("ms-[20%] rounded-lg bg-muted-subtle px-4 py-3", className)}
|
|
66
66
|
>
|
|
67
67
|
<p className="text-sm text-foreground whitespace-pre-wrap">{content}</p>
|
|
68
68
|
</div>
|
|
@@ -406,7 +406,7 @@ export function MessageThread({
|
|
|
406
406
|
key={item.key}
|
|
407
407
|
role="article"
|
|
408
408
|
aria-label="Sending message"
|
|
409
|
-
className="ms-[20%] rounded-lg bg-muted
|
|
409
|
+
className="ms-[20%] rounded-lg bg-muted-subtle px-4 py-3 opacity-70"
|
|
410
410
|
>
|
|
411
411
|
<p className="text-sm text-foreground whitespace-pre-wrap">
|
|
412
412
|
{item.content}
|
|
@@ -123,7 +123,7 @@ export function SessionVariablesInput({
|
|
|
123
123
|
{entries.canScrollDown && <ScrollFade position="bottom" />}
|
|
124
124
|
</div>
|
|
125
125
|
) : (
|
|
126
|
-
<p className="py-2 text-center text-[0.65rem] text-muted-foreground
|
|
126
|
+
<p className="py-2 text-center text-[0.65rem] text-muted-foreground-subtle">
|
|
127
127
|
No variables added.
|
|
128
128
|
</p>
|
|
129
129
|
)}
|
|
@@ -136,7 +136,7 @@ export function SessionVariablesInput({
|
|
|
136
136
|
className={cn(
|
|
137
137
|
"inline-flex w-full items-center justify-center gap-1 rounded-md py-1.5 text-xs",
|
|
138
138
|
"border border-dashed border-border text-muted-foreground",
|
|
139
|
-
"hover:border-border hover:bg-accent
|
|
139
|
+
"hover:border-border hover:bg-accent-hover hover:text-foreground",
|
|
140
140
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
141
141
|
)}
|
|
142
142
|
>
|
|
@@ -194,7 +194,7 @@ function VariableEntryRow({
|
|
|
194
194
|
aria-label="Variable name"
|
|
195
195
|
className={cn(
|
|
196
196
|
"min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 py-1.5 font-mono text-xs text-foreground",
|
|
197
|
-
"placeholder:text-muted-foreground
|
|
197
|
+
"placeholder:text-muted-foreground-faint",
|
|
198
198
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
199
199
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
200
200
|
isDuplicate && "border-warning",
|
|
@@ -231,7 +231,7 @@ function VariableEntryRow({
|
|
|
231
231
|
aria-label={`Variable value${entryKey.trim() ? ` for ${entryKey.trim()}` : ""}`}
|
|
232
232
|
className={cn(
|
|
233
233
|
"w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground",
|
|
234
|
-
"placeholder:text-muted-foreground
|
|
234
|
+
"placeholder:text-muted-foreground-faint",
|
|
235
235
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
236
236
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
237
237
|
)}
|
|
@@ -268,7 +268,7 @@ function VariableEntryRow({
|
|
|
268
268
|
|
|
269
269
|
{/* Required-by indicator */}
|
|
270
270
|
{requiredBy && requiredBy.length > 0 && (
|
|
271
|
-
<p className="text-[0.55rem] text-primary
|
|
271
|
+
<p className="text-[0.55rem] text-primary-muted">
|
|
272
272
|
Used by: {requiredBy.join(", ")}
|
|
273
273
|
</p>
|
|
274
274
|
)}
|
|
@@ -308,8 +308,8 @@ function SecretToggle({
|
|
|
308
308
|
"inline-flex shrink-0 items-center gap-0.5 rounded-md px-1.5 py-1 text-[0.55rem] font-medium uppercase tracking-wider transition-colors",
|
|
309
309
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
310
310
|
checked
|
|
311
|
-
? "bg-primary
|
|
312
|
-
: "bg-muted
|
|
311
|
+
? "bg-primary-subtle text-primary"
|
|
312
|
+
: "bg-muted-subtle text-muted-foreground hover:bg-muted",
|
|
313
313
|
)}
|
|
314
314
|
>
|
|
315
315
|
<LockIcon />
|
|
@@ -158,7 +158,7 @@ function CollapsibleCard({
|
|
|
158
158
|
role="group"
|
|
159
159
|
aria-label={ariaLabel}
|
|
160
160
|
className={cn(
|
|
161
|
-
"rounded-md border border-border border-l-2 border-l-primary/30 bg-muted
|
|
161
|
+
"rounded-md border border-border border-l-2 border-l-primary/30 bg-muted-faint",
|
|
162
162
|
className,
|
|
163
163
|
)}
|
|
164
164
|
>
|
|
@@ -169,11 +169,11 @@ function CollapsibleCard({
|
|
|
169
169
|
onClick={handleToggle}
|
|
170
170
|
className={cn(
|
|
171
171
|
"flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs text-muted-foreground transition-colors",
|
|
172
|
-
"hover:bg-muted
|
|
172
|
+
"hover:bg-muted-subtle",
|
|
173
173
|
"cursor-pointer",
|
|
174
174
|
)}
|
|
175
175
|
>
|
|
176
|
-
<span className="shrink-0 text-primary
|
|
176
|
+
<span className="shrink-0 text-primary-muted" aria-hidden="true">
|
|
177
177
|
<BotIcon />
|
|
178
178
|
</span>
|
|
179
179
|
<span className="min-w-0 flex-1 truncate">{displayLabel}</span>
|
|
@@ -216,7 +216,7 @@ function CollapsibleCard({
|
|
|
216
216
|
>
|
|
217
217
|
<div className="overflow-hidden">
|
|
218
218
|
{expanded && (
|
|
219
|
-
<div className="border-t border-border
|
|
219
|
+
<div className="border-t border-border-muted px-2.5 pb-2 pt-1.5">
|
|
220
220
|
<SubAgentThreadContent
|
|
221
221
|
threadItems={threadItems}
|
|
222
222
|
todos={sub.todos}
|
|
@@ -350,7 +350,7 @@ function SubAgentThreadContent({
|
|
|
350
350
|
)}
|
|
351
351
|
|
|
352
352
|
{isFailed && error && (
|
|
353
|
-
<div className="rounded-md border border-destructive/20 bg-destructive
|
|
353
|
+
<div className="rounded-md border border-destructive/20 bg-destructive-subtle px-2 py-1.5 text-xs text-destructive">
|
|
354
354
|
{error}
|
|
355
355
|
</div>
|
|
356
356
|
)}
|
|
@@ -58,7 +58,7 @@ export function ToolCallDetail({ toolCall, className }: ToolCallDetailProps) {
|
|
|
58
58
|
{isFailed && toolCall.error && (
|
|
59
59
|
<div className="space-y-1">
|
|
60
60
|
<span className="font-medium text-destructive">Error</span>
|
|
61
|
-
<pre className="whitespace-pre-wrap break-words rounded-md border border-destructive/20 bg-destructive
|
|
61
|
+
<pre className="whitespace-pre-wrap break-words rounded-md border border-destructive/20 bg-destructive-subtle p-2 font-mono text-destructive">
|
|
62
62
|
{toolCall.error}
|
|
63
63
|
</pre>
|
|
64
64
|
</div>
|
|
@@ -199,7 +199,7 @@ function ThinkToolDetail({ toolCall }: { toolCall: ToolCall }) {
|
|
|
199
199
|
if (!thought) return null;
|
|
200
200
|
|
|
201
201
|
return (
|
|
202
|
-
<div className="rounded-md border border-border
|
|
202
|
+
<div className="rounded-md border border-border-muted bg-muted-faint p-3">
|
|
203
203
|
<CollapsiblePre
|
|
204
204
|
content={thought}
|
|
205
205
|
className="italic text-muted-foreground whitespace-pre-wrap"
|
|
@@ -200,7 +200,7 @@ export function ToolCallGroup({
|
|
|
200
200
|
role="group"
|
|
201
201
|
aria-label={ariaLabel}
|
|
202
202
|
className={cn(
|
|
203
|
-
"rounded-md border border-border bg-muted
|
|
203
|
+
"rounded-md border border-border bg-muted-faint",
|
|
204
204
|
className,
|
|
205
205
|
)}
|
|
206
206
|
>
|
|
@@ -211,7 +211,7 @@ export function ToolCallGroup({
|
|
|
211
211
|
onClick={handleToggle}
|
|
212
212
|
className={cn(
|
|
213
213
|
"flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs text-muted-foreground transition-colors",
|
|
214
|
-
"hover:bg-muted
|
|
214
|
+
"hover:bg-muted-subtle",
|
|
215
215
|
"cursor-pointer",
|
|
216
216
|
)}
|
|
217
217
|
>
|
|
@@ -231,7 +231,7 @@ export function ToolCallGroup({
|
|
|
231
231
|
>
|
|
232
232
|
<div className="overflow-hidden">
|
|
233
233
|
{expanded && (
|
|
234
|
-
<div className="border-t border-border
|
|
234
|
+
<div className="border-t border-border-muted">
|
|
235
235
|
{toolCalls.map((tc) => (
|
|
236
236
|
<ToolCallItem
|
|
237
237
|
key={tc.id || tc.name}
|
|
@@ -126,7 +126,7 @@ export function ToolCallItem({
|
|
|
126
126
|
|
|
127
127
|
if (isNonExpandableRead) {
|
|
128
128
|
return (
|
|
129
|
-
<div className={cn("border-b border-border
|
|
129
|
+
<div className={cn("border-b border-border-muted last:border-b-0", className)}>
|
|
130
130
|
<div
|
|
131
131
|
className="flex w-full items-center gap-2 px-2.5 py-1.5 text-xs"
|
|
132
132
|
>
|
|
@@ -156,15 +156,15 @@ export function ToolCallItem({
|
|
|
156
156
|
: primaryArg;
|
|
157
157
|
|
|
158
158
|
return (
|
|
159
|
-
<div className={cn("border-b border-border
|
|
159
|
+
<div className={cn("border-b border-border-muted last:border-b-0", className)}>
|
|
160
160
|
<button
|
|
161
161
|
type="button"
|
|
162
162
|
aria-expanded={expanded}
|
|
163
163
|
onClick={() => setExpanded((v) => !v)}
|
|
164
164
|
className={cn(
|
|
165
165
|
"flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors",
|
|
166
|
-
"hover:bg-muted
|
|
167
|
-
expanded && "bg-muted
|
|
166
|
+
"hover:bg-muted-subtle",
|
|
167
|
+
expanded && "bg-muted-faint",
|
|
168
168
|
)}
|
|
169
169
|
>
|
|
170
170
|
<span className="shrink-0 text-muted-foreground" aria-hidden="true">
|