mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import {
|
|
ORGANIZATION_ALLOW_ALL,
|
|
OrganizationAllowList,
|
|
OrganizationSettings,
|
|
organizationSettingsSchema,
|
|
} from "@roo-code/types"
|
|
|
|
import type { SettingsService } from "./SettingsService"
|
|
|
|
export class StaticSettingsService implements SettingsService {
|
|
private settings: OrganizationSettings
|
|
private log: (...args: unknown[]) => void
|
|
|
|
constructor(envValue: string, log?: (...args: unknown[]) => void) {
|
|
this.log = log || console.log
|
|
this.settings = this.parseEnvironmentSettings(envValue)
|
|
}
|
|
|
|
private parseEnvironmentSettings(envValue: string): OrganizationSettings {
|
|
try {
|
|
const decodedValue = Buffer.from(envValue, "base64").toString("utf-8")
|
|
const parsedJson = JSON.parse(decodedValue)
|
|
return organizationSettingsSchema.parse(parsedJson)
|
|
} catch (error) {
|
|
this.log(`[StaticSettingsService] failed to parse static settings: ${error.message}`, error)
|
|
throw new Error("Failed to parse static settings", { cause: error })
|
|
}
|
|
}
|
|
|
|
public getAllowList(): OrganizationAllowList {
|
|
return this.settings?.allowList || ORGANIZATION_ALLOW_ALL
|
|
}
|
|
|
|
public getSettings(): OrganizationSettings | undefined {
|
|
return this.settings
|
|
}
|
|
|
|
public dispose(): void {
|
|
// No resources to clean up for static settings.
|
|
}
|
|
}
|