Merge origin/main into dev (second round)

Resolve 21 conflicts from latest main (provider profiles, Windows fixes, 0.1.55-rc.1).
Fix all type errors and syntax issues from merge artifacts.
This commit is contained in:
Mohamed Boudra
2026-04-14 04:07:36 +07:00
249 changed files with 9118 additions and 4973 deletions
+41 -7
View File
@@ -1,10 +1,12 @@
import type { Command } from "commander";
import type { CommandOptions, ListResult, OutputSchema } from "../../output/index.js";
import { AGENT_PROVIDER_DEFINITIONS } from "@getpaseo/server";
import { tryConnectToDaemon } from "../../utils/client.js";
/** Provider list item for display */
export interface ProviderListItem {
provider: string;
label: string;
status: string;
defaultMode: string;
modes: string;
@@ -13,16 +15,22 @@ export interface ProviderListItem {
/** Derive provider list from the manifest — single source of truth */
const PROVIDERS: ProviderListItem[] = AGENT_PROVIDER_DEFINITIONS.map((def) => ({
provider: def.id,
label: def.label,
status: "available",
defaultMode: def.defaultModeId ?? "-",
modes: def.modes.length > 0 ? def.modes.map((m) => m.label).join(", ") : "-",
}));
function getStaticProviders(): ProviderListItem[] {
return PROVIDERS;
}
/** Schema for provider ls output */
export const providerLsSchema: OutputSchema<ProviderListItem> = {
idField: "provider",
columns: [
{ header: "PROVIDER", field: "provider", width: 12 },
{ header: "LABEL", field: "label", width: 16 },
{
header: "STATUS",
field: "status",
@@ -45,13 +53,39 @@ export interface ProviderLsOptions extends CommandOptions {
}
export async function runLsCommand(
_options: ProviderLsOptions,
options: ProviderLsOptions,
_command: Command,
): Promise<ProviderLsResult> {
// Provider data is static - no daemon connection needed
return {
type: "list",
data: PROVIDERS,
schema: providerLsSchema,
};
const client = await tryConnectToDaemon({ host: options.host });
if (!client) {
return {
type: "list",
data: getStaticProviders(),
schema: providerLsSchema,
};
}
try {
const snapshot = await client.getProvidersSnapshot();
return {
type: "list",
data: snapshot.entries.map((entry) => ({
provider: entry.provider,
label: entry.label ?? entry.provider,
status: entry.status === "ready" ? "available" : entry.status,
defaultMode: entry.defaultModeId ?? "default",
modes: (entry.modes ?? []).map((mode) => mode.label).join(", "),
})),
schema: providerLsSchema,
};
} catch {
return {
type: "list",
data: getStaticProviders(),
schema: providerLsSchema,
};
} finally {
await client.close().catch(() => {});
}
}