feat(electrobun): project wizard phases 1-5 (WIP)
- sanitize.ts: input sanitization (trim, control chars, path traversal) - provider-scanner.ts: detect Claude/Codex/Ollama/Gemini availability - model-fetcher.ts: live model lists from 4 provider APIs - ModelConfigPanel.svelte: per-provider config (thinking, effort, sandbox, temperature) - WizardStep1-3.svelte: split wizard into composable steps - CustomDropdown/Checkbox/Radio: themed UI components - provider-handlers.ts: provider.scan + provider.models RPC - Wire providers into wizard step 3 (live detection + model lists) - Replace native selects in 5 settings panels with CustomDropdown
This commit is contained in:
parent
b7fc3a0f9b
commit
d4014a193d
25 changed files with 2112 additions and 759 deletions
|
|
@ -236,6 +236,11 @@ export type PtyRPCRequests = {
|
|||
params: { url: string; target: string; branch?: string };
|
||||
response: { ok: boolean; error?: string };
|
||||
};
|
||||
/** Probe a git remote URL (ls-remote). Returns branches on success. */
|
||||
"git.probe": {
|
||||
params: { url: string };
|
||||
response: { ok: boolean; branches: string[]; defaultBranch: string; error?: string };
|
||||
};
|
||||
|
||||
// ── Project templates RPC ───────────────────────────────────────────────────
|
||||
|
||||
|
|
@ -251,6 +256,39 @@ export type PtyRPCRequests = {
|
|||
}>;
|
||||
};
|
||||
};
|
||||
/** Create a project from a template with real scaffold files. */
|
||||
"project.createFromTemplate": {
|
||||
params: { templateId: string; targetDir: string; projectName: string };
|
||||
response: { ok: boolean; path: string; error?: string };
|
||||
};
|
||||
|
||||
// ── Provider RPC ──────────────────────────────────────────────────────────
|
||||
|
||||
/** Scan for available AI providers on this machine. */
|
||||
"provider.scan": {
|
||||
params: Record<string, never>;
|
||||
response: {
|
||||
providers: Array<{
|
||||
id: string;
|
||||
available: boolean;
|
||||
hasApiKey: boolean;
|
||||
hasCli: boolean;
|
||||
cliPath: string | null;
|
||||
version: string | null;
|
||||
}>;
|
||||
};
|
||||
};
|
||||
/** Fetch model list for a specific provider. */
|
||||
"provider.models": {
|
||||
params: { provider: string };
|
||||
response: {
|
||||
models: Array<{
|
||||
id: string;
|
||||
name: string;
|
||||
provider: string;
|
||||
}>;
|
||||
};
|
||||
};
|
||||
|
||||
// ── Window control RPC ─────────────────────────────────────────────────────
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue