Buckets:
| import type { Agent, Project, ProviderListResponse } from "@opencode-ai/sdk/v2/client" | |
| import { NormalizedProviderListResponse } from "@opencode-ai/ui/context" | |
| export { pathKey as directoryKey, type PathKey as DirectoryKey } from "@/utils/path-key" | |
| export const cmp = (a: string, b: string) => (a < b ? -1 : a > b ? 1 : 0) | |
| function isAgent(input: unknown): input is Agent { | |
| if (!input || typeof input !== "object") return false | |
| const item = input as { name?: unknown; mode?: unknown } | |
| if (typeof item.name !== "string") return false | |
| return item.mode === "subagent" || item.mode === "primary" || item.mode === "all" | |
| } | |
| export function normalizeAgentList(input: unknown): Agent[] { | |
| if (Array.isArray(input)) return input.filter(isAgent) | |
| if (isAgent(input)) return [input] | |
| if (!input || typeof input !== "object") return [] | |
| return Object.values(input).filter(isAgent) | |
| } | |
| export function normalizeProviderList(input: ProviderListResponse): NormalizedProviderListResponse { | |
| return { | |
| ...input, | |
| all: new Map( | |
| input.all.map( | |
| (provider) => | |
| [ | |
| provider.id, | |
| { | |
| ...provider, | |
| models: Object.fromEntries( | |
| Object.entries(provider.models).filter(([, info]) => info.status !== "deprecated"), | |
| ), | |
| }, | |
| ] as const, | |
| ), | |
| ), | |
| } | |
| } | |
| export function sanitizeProject(project: Project) { | |
| if (!project.icon?.url && !project.icon?.override) return project | |
| return { | |
| ...project, | |
| icon: { | |
| ...project.icon, | |
| url: undefined, | |
| override: undefined, | |
| }, | |
| } | |
| } | |
Xet Storage Details
- Size:
- 1.61 kB
- Xet hash:
- 4bae666cdecc6ce00e6f14af914e70e8afc718d22c4e53120ed7c19b1cfa094e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.