feat(acp): replace raw config and secret methods (#9000)

Signed-off-by: Kalvin Chau <kalvin@block.xyz>
This commit is contained in:
Kalvin C
2026-05-04 18:24:28 -07:00
committed by GitHub
parent e82c4fdcb7
commit 2fe4c3d0bb
39 changed files with 1481 additions and 855 deletions
+8 -14
View File
@@ -359,9 +359,9 @@ export default function ConfigureScreen({
if (initialIntent === "model") {
try {
const cfg = await client.goose.GooseConfigRead({ key: "GOOSE_PROVIDER" });
const cfg = await client.goose.GooseDefaultsRead({});
if (cancelled) return;
const current = sorted.find((p) => p.providerId === cfg.value);
const current = sorted.find((p) => p.providerId === cfg.providerId);
if (current) {
setSelectedProvider(current);
setPendingConfigValues({});
@@ -395,19 +395,13 @@ export default function ConfigureScreen({
) => {
setPhase("saving");
try {
for (const [key, value] of Object.entries(configValues)) {
const configKey = provider.configKeys.find((k) => k.name === key);
if (configKey?.secret) {
await client.goose.GooseSecretUpsert({ key, value });
} else {
await client.goose.GooseConfigUpsert({ key, value });
}
}
await client.goose.GooseConfigUpsert({
key: "GOOSE_PROVIDER",
value: provider.providerId,
await client.goose.GooseProvidersConfigSave({
providerId: provider.providerId,
fields: Object.entries(configValues).map(([key, value]) => ({
key,
value,
})),
});
await client.goose.GooseConfigUpsert({ key: "GOOSE_MODEL", value: model });
await client.setSessionConfigOption({
sessionId,
configId: "provider",
+5 -12
View File
@@ -32,10 +32,6 @@ function deriveNameFromValue(addType: AddType, value: string): string {
try { return new URL(value.trim()).hostname; } catch { return value.trim(); }
}
function keyFromName(name: string): string {
return name.replace(/[^A-Za-z0-9_-]/g, "_").toLowerCase();
}
function buildConfig(addType: AddType, value: string, name: string, description: string): ExtEntry {
if (addType === "stdio") {
const parts = value.trim().split(/\s+/);
@@ -125,15 +121,12 @@ export default function ExtensionsManager({
const saveNewExtension = useCallback((description: string) => {
const config = buildConfig(addType, addValue, addName, description);
const key = keyFromName(config.name);
withSaving(async () => {
let extMap: Record<string, unknown> = {};
try {
const raw = await client.goose.GooseConfigRead({key: "extensions"});
if (raw.value && typeof raw.value === "object") extMap = raw.value as Record<string, unknown>;
} catch { }
extMap[key] = config;
await client.goose.GooseConfigUpsert({key: "extensions", value: extMap as any});
await client.goose.GooseConfigExtensionsAdd({
name: config.name,
extensionConfig: config as any,
enabled: true,
});
await client.goose.GooseExtensionsAdd({sessionId, config: config as any});
});
}, [addType, addValue, addName, client, sessionId, withSaving]);
+6 -15
View File
@@ -559,21 +559,12 @@ export default function Onboarding({
async (provider: ProviderInventoryEntryDto, values: Record<string, string>) => {
setPhase("saving");
try {
for (const [key, value] of Object.entries(values)) {
const configKey = provider.configKeys.find((k) => k.name === key);
if (configKey?.secret) {
await client.goose.GooseSecretUpsert({ key, value });
} else {
await client.goose.GooseConfigUpsert({ key, value });
}
}
await client.goose.GooseConfigUpsert({
key: "GOOSE_PROVIDER",
value: provider.providerId,
});
await client.goose.GooseConfigUpsert({
key: "GOOSE_MODEL",
value: provider.defaultModel,
await client.goose.GooseProvidersConfigSave({
providerId: provider.providerId,
fields: Object.entries(values).map(([key, value]) => ({
key,
value,
})),
});
setPhase("success");
setTimeout(onComplete, 1000);
+4 -4
View File
@@ -785,11 +785,11 @@ function App({
setStatus("checking provider…");
let hasProvider = false;
try {
const resp = await client.goose.GooseConfigRead({
key: "GOOSE_PROVIDER",
});
const resp = await client.goose.GooseDefaultsRead({});
hasProvider =
resp.value != null && resp.value !== "" && resp.value !== "null";
resp.providerId != null &&
resp.providerId !== "" &&
resp.providerId !== "null";
} catch {
hasProvider = false;
}