History

Clarify provider and integration copy (#1267)

Rhys Sullivan committed 4 months ago

Commit 251130e1 parent 2e9d7467 files · +27 −17Browse files

Unified · Split

7 files
  1. packages/plugins/google/src/react/AddGoogleSource.tsx +1 −1
  2. packages/plugins/graphql/src/react/AddGraphqlSource.tsx +4 −4
  3. packages/plugins/mcp/src/react/AddMcpSource.tsx +3 −3
  4. packages/plugins/microsoft/src/react/AddMicrosoftSource.tsx +1 −1
  5. packages/react/src/pages/api-keys.tsx +1 −1
  6. packages/react/src/pages/policies.tsx +1 −1
  7. packages/react/src/pages/secrets.tsx +16 −6
packages/plugins/google/src/react/AddGoogleSource.tsx+1−1
@@ -132,7 +132,7 @@ export default function AddGoogleSource(props: { · 131 unmodified lines
132132 return (
133133 <div className="flex flex-1 flex-col gap-6">
134134 <div>
135− <h1 className="text-xl font-semibold text-foreground">Add Google</h1>
135+ <h1 className="text-xl font-semibold text-foreground">Add Google integration</h1>
136136 <p className="mt-1 text-[13px] text-muted-foreground">
137137 Bundle Google APIs into one integration with a shared OAuth consent.
138138 </p>
packages/plugins/graphql/src/react/AddGraphqlSource.tsx+4−4
@@ -130,7 +130,7 @@ export default function AddGraphqlSource(props: { · 129 unmodified lines
130130
131131 return (
132132 <div className="flex flex-1 flex-col gap-6">
133− <h1 className="text-xl font-semibold text-foreground">Add GraphQL Source</h1>
133+ <h1 className="text-xl font-semibold text-foreground">Add GraphQL integration</h1>
134134
135135 <GraphqlSourceFields
136136 endpoint={endpoint}
@@ -143,8 +143,8 @@ export default function AddGraphqlSource(props: { · 6 unmodified lines
143143 <AuthMethodListEditor
144144 list={authMethodList}
145145 allowedKinds={["none", "apikey"]}
146− emptyHint="No authentication declared. Add a method, or add the source without auth and connect an account from the integration page later."
147− footerHint="Every method here is registered with the source. Connect an account from the integration page after adding."
146+ emptyHint="No authentication declared. Add a method, or add the integration without auth and connect an account from the integration page later."
147+ footerHint="Every method here is registered with the integration. Connect an account from the integration page after adding."
148148 />
149149
150150 {slugAlreadyExists && !adding && <SlugCollisionAlert slug={resolvedSlug} />}
@@ -156,7 +156,7 @@ export default function AddGraphqlSource(props: { · 5 unmodified lines
156156 Cancel
157157 </Button>
158158 <Button onClick={() => void handleAdd()} disabled={!canAdd} loading={adding}>
159− Add source
159+ Add integration
160160 </Button>
161161 </FloatActions>
162162 </div>
packages/plugins/mcp/src/react/AddMcpSource.tsx+3−3
@@ -380,7 +380,7 @@ export default function AddMcpSource(props: { · 379 unmodified lines
380380 return (
381381 <div className="flex flex-1 flex-col gap-6">
382382 <div>
383− <h1 className="text-xl font-semibold text-foreground">Add MCP Source</h1>
383+ <h1 className="text-xl font-semibold text-foreground">Add MCP integration</h1>
384384 <p className="mt-1 text-[13px] text-muted-foreground">
385385 Connect to an MCP server to discover and use its tools.
386386 </p>
@@ -473,7 +473,7 @@ export default function AddMcpSource(props: { · 86 unmodified lines
473473 </Button>
474474 {(probe || isProbing) && (
475475 <Button type="button" onClick={handleAddRemote} disabled={!canAdd} loading={isAdding}>
476− Add source
476+ Add integration
477477 </Button>
478478 )}
479479 </FloatActions>
@@ -542,7 +542,7 @@ export default function AddMcpSource(props: { · 62 unmodified lines
542542 disabled={!stdioCommand.trim() || stdioSlugExists}
543543 loading={stdioAdding}
544544 >
545− Add source
545+ Add integration
546546 </Button>
547547 </FloatActions>
548548 </>
packages/plugins/microsoft/src/react/AddMicrosoftSource.tsx+1−1
@@ -108,7 +108,7 @@ export default function AddMicrosoftSource(props: { · 107 unmodified lines
108108 return (
109109 <div className="flex flex-1 flex-col gap-6">
110110 <div>
111− <h1 className="text-xl font-semibold text-foreground">Add Microsoft Graph</h1>
111+ <h1 className="text-xl font-semibold text-foreground">Add Microsoft integration</h1>
112112 <p className="mt-1 text-[13px] text-muted-foreground">
113113 Pick Microsoft 365 workloads and connect them through one delegated OAuth consent.
114114 </p>
packages/react/src/pages/api-keys.tsx+1−1
@@ -133,7 +133,7 @@ export function ApiKeysPage() { · 132 unmodified lines
133133 <CopyButton value="Authorization: Bearer <api-key>" />
134134 </div>
135135 <p className="mt-2 max-w-2xl text-xs leading-5 text-muted-foreground">
136− API keys work as PATs and have full access to your account.
136+ API keys work like personal access tokens and have full access to your account.
137137 </p>
138138 </PageHeader>
139139
packages/react/src/pages/policies.tsx+1−1
@@ -365,7 +365,7 @@ export function PoliciesPage() { · 364 unmodified lines
365365 <PageContainer>
366366 <PageHeader
367367 title="Policies"
368− description="Override default approval behavior for tools. The most restrictive matched action wins. Blocked tools are hidden from agent search and fail at invoke."
368+ description="Decide which tools run automatically, which ask for approval, and which are blocked. The most restrictive matching rule wins; blocked tools are hidden from agents."
369369 />
370370
371371 <div className="mb-8">
packages/react/src/pages/secrets.tsx+16−6
@@ -33,7 +33,7 @@ import { isAsyncResultLoading } from "../lib/async-result"; · 32 unmodified lines
3333 // ---------------------------------------------------------------------------
3434
3535 const PROVIDER_LABELS: Record<string, string> = {
36− default: "Default store",
36+ encrypted: "Encrypted store",
3737 keychain: "Keychain",
3838 file: "Local file",
3939 memory: "Memory",
@@ -41,7 +41,13 @@ const PROVIDER_LABELS: Record<string, string> = { · 1 unmodified line
4141 "workos-vault": "WorkOS Vault",
4242 };
4343
44−const providerLabel = (key: string): string => PROVIDER_LABELS[key] ?? key;
44+const providerLabel = (key: string): string =>
45+ PROVIDER_LABELS[key] ??
46+ key
47+ .split(/[-_]/g)
48+ .filter(Boolean)
49+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
50+ .join(" ");
4551
4652 export function SecretsPage(props: { showProviderInfo?: boolean }) {
4753 useExecutorDocumentTitle("Providers");
@@ -117,13 +123,17 @@ export function SecretsPage(props: { showProviderInfo?: boolean }) { · 69 unmodified lines
117123 <span className="min-w-0 shrink truncate">
118124 {providerLabel(String(key))}
119125 </span>
120− <span className="max-w-40 shrink truncate font-mono text-xs text-muted-foreground">
121− {String(key)}
122− </span>
123126 </CardStackEntryTitle>
127+ <CardStackEntryDescription>
128+ {String(key) === "encrypted"
129+ ? "Values you paste are encrypted and stored in this instance's database."
130+ : `${providerLabel(String(key))} credential provider.`}
131+ </CardStackEntryDescription>
124132 </CardStackEntryContent>
125133 <CardStackEntryActions>
126− <Badge variant="secondary">provider</Badge>
134+ <Badge variant="secondary">
135+ {String(key) === "encrypted" ? "default" : "provider"}
136+ </Badge>
127137 </CardStackEntryActions>
128138 </CardStackEntry>
129139 ))