diff --git a/AgentCompany-New/src/renderer/src/app/Onboarding.tsx b/AgentCompany-New/src/renderer/src/app/Onboarding.tsx
index ba1a2ffd..25b71990 100644
--- a/AgentCompany-New/src/renderer/src/app/Onboarding.tsx
+++ b/AgentCompany-New/src/renderer/src/app/Onboarding.tsx
@@ -1,4 +1,4 @@
-import { useMemo, useState, type FormEvent } from "react";
+import { Fragment, useMemo, useState, type FormEvent } from "react";
import {
PROVIDER_AUTH_TYPE,
type AppSnapshot,
@@ -249,8 +249,6 @@ function ProviderStep({
}) {
const selected = providers.find((entry) => entry.key === draft.providerKey) ?? providers[0];
if (!selected) throw new Error("No provider available for onboarding.");
- const isOAuthLike = selected.authType === "oauth_pkce" || selected.authType === "account_subscription";
- const isCustom = Boolean(selected.customEndpoint);
return (
@@ -260,25 +258,47 @@ function ProviderStep({
{providers.map((provider) => (
-
+
+
+ {provider.key === selected.key && (
+
+ )}
+
))}
+
+
+ );
+}
+
+function ProviderCredentialFields({
+ selected,
+ draft,
+ onChange,
+}: {
+ selected: ProviderCatalogEntry;
+ draft: Draft;
+ onChange: (patch: Partial) => void;
+}) {
+ const isOAuthLike = selected.authType === "oauth_pkce" || selected.authType === "account_subscription";
+ const isCustom = Boolean(selected.customEndpoint);
+ return (
+
{selected.credentialHelp && (
{selected.credentialHelp}
)}
@@ -336,7 +356,6 @@ function ProviderStep({
onChange({ providerModel: event.target.value })} />
)}
-
);
}
diff --git a/AgentCompany-New/src/renderer/src/overlays.css b/AgentCompany-New/src/renderer/src/overlays.css
index c8f7edab..24175eaf 100644
--- a/AgentCompany-New/src/renderer/src/overlays.css
+++ b/AgentCompany-New/src/renderer/src/overlays.css
@@ -89,6 +89,15 @@
.option-card.active { border-color: var(--text-1); box-shadow: inset 0 0 0 1px var(--text-1); }
.option-card .opt-title { font-size: 13.5px; font-weight: 540; }
.option-card .opt-sub { font-size: 12px; color: var(--text-3); margin-top: 4px; }
+.provider-inline-form {
+ display: grid;
+ gap: 12px;
+ padding: 14px 16px 16px;
+ margin: 2px 0 6px 12px;
+ border-left: 2px solid var(--text-1);
+ border-radius: 0 var(--r-sm) var(--r-sm) 0;
+ background: var(--panel-2);
+}
.popover-anchor { position: relative; display: inline-flex; }
.popover-panel {