mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-08-29 03:32:08 +08:00
fix(agent-manager): rename "workspace" to "worktree" across agent manager UI and code (#7224)
Replace all user-facing "workspace" references with "worktree" in the agent manager to use correct git terminology. Updates i18n strings in all 16 locales, renames internal methods (getWorkspaceRoot → getRoot, workspacePath → repoPath), and updates comments throughout.
This commit is contained in:
@@ -32,7 +32,7 @@ import { getWorkspaceRoot, hashFileDiffs, openFileInEditor, resolveLocalDiffTarg
|
||||
* Uses WorktreeStateManager for centralized state persistence. Worktrees and
|
||||
* sessions are stored in `.kilo/agent-manager.json`. The UI shows two
|
||||
* sections: WORKTREES (top) with managed worktrees + their sessions, and
|
||||
* SESSIONS (bottom) with unassociated workspace sessions.
|
||||
* SESSIONS (bottom) with unassociated local sessions.
|
||||
*/
|
||||
const LOCAL_DIFF_ID = "local" as const
|
||||
|
||||
@@ -76,7 +76,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
this.gitOps = new GitOps({ log: (...args) => this.log(...args) })
|
||||
this.statsPoller = new GitStatsPoller({
|
||||
getWorktrees: () => this.state?.getWorktrees() ?? [],
|
||||
getWorkspaceRoot: () => this.getWorkspaceRoot(),
|
||||
getWorkspaceRoot: () => this.getRoot(),
|
||||
getClient: () => this.connectionService.getClient(),
|
||||
onStats: (stats) => {
|
||||
const msg = { type: "agentManager.worktreeStats" as const, stats }
|
||||
@@ -261,7 +261,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
if (m.type === "agentManager.requestState") {
|
||||
void this.stateReady
|
||||
?.then(() => {
|
||||
// When the workspace is not a git repo (or has no folder open),
|
||||
// When the folder is not a git repo (or has no folder open),
|
||||
// this.state is never created. pushState() silently returns in that
|
||||
// case, so re-send the empty/non-git state explicitly.
|
||||
if (!this.state) {
|
||||
@@ -368,7 +368,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
|
||||
// Intercept generic "openFile" from DataBridge (markdown links, tool subtitle clicks)
|
||||
// and route through worktree-aware resolution — but only for worktree sessions.
|
||||
// Local sessions fall through to KiloProvider which resolves against workspace root.
|
||||
// Local sessions fall through to KiloProvider which resolves against the repo root.
|
||||
// Uses activeSessionId (set synchronously by loadMessages) rather than
|
||||
// KiloProvider.currentSession which can be stale during rapid tab switches.
|
||||
if (m.type === "openFile") {
|
||||
@@ -507,7 +507,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
this.postToWebview({
|
||||
type: "agentManager.worktreeSetup",
|
||||
status: "creating",
|
||||
message: "Setting up workspace...",
|
||||
message: "Setting up worktree...",
|
||||
branch: result.branch,
|
||||
worktreeId: worktree.id,
|
||||
})
|
||||
@@ -1170,7 +1170,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
this.postToWebview({
|
||||
type: "agentManager.worktreeSetup",
|
||||
status: "creating",
|
||||
message: "Setting up workspace...",
|
||||
message: "Setting up worktree...",
|
||||
branch: result.branch,
|
||||
worktreeId: worktree.id,
|
||||
})
|
||||
@@ -1339,7 +1339,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
this.postToWebview({
|
||||
type: "agentManager.importResult",
|
||||
success: true,
|
||||
message: `Imported ${imported} workspace${imported !== 1 ? "s" : ""}`,
|
||||
message: `Imported ${imported} worktree${imported !== 1 ? "s" : ""}`,
|
||||
})
|
||||
this.log(`Imported ${imported}/${externals.length} external worktrees`)
|
||||
} catch (error) {
|
||||
@@ -1385,7 +1385,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
|
||||
/** Run the worktree setup script if configured. Blocks until complete. Shows progress in overlay. */
|
||||
private async runSetupScriptForWorktree(worktreePath: string, branch?: string, worktreeId?: string): Promise<void> {
|
||||
const root = this.getWorkspaceRoot()
|
||||
const root = this.getRoot()
|
||||
if (!root) return
|
||||
try {
|
||||
const service = this.getSetupScriptService()
|
||||
@@ -1504,7 +1504,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
this.statsPoller.setEnabled(worktrees.length > 0 || this.panel !== undefined)
|
||||
}
|
||||
|
||||
/** Push empty state when the workspace is not a git repo or has no workspace folder. */
|
||||
/** Push empty state when the folder is not a git repo or has no folder open. */
|
||||
private pushEmptyState(): void {
|
||||
this.staleWorktreeIds.clear()
|
||||
this.postToWebview({
|
||||
@@ -1521,15 +1521,15 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
// Manager accessors
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
private getWorkspaceRoot(): string | undefined {
|
||||
private getRoot(): string | undefined {
|
||||
return getWorkspaceRoot()
|
||||
}
|
||||
|
||||
private getWorktreeManager(): WorktreeManager | undefined {
|
||||
if (this.worktrees) return this.worktrees
|
||||
const root = this.getWorkspaceRoot()
|
||||
const root = this.getRoot()
|
||||
if (!root) {
|
||||
this.log("getWorktreeManager: no workspace folder available")
|
||||
this.log("getWorktreeManager: no folder available")
|
||||
return undefined
|
||||
}
|
||||
this.worktrees = new WorktreeManager(
|
||||
@@ -1542,9 +1542,9 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
|
||||
private getStateManager(): WorktreeStateManager | undefined {
|
||||
if (this.state) return this.state
|
||||
const root = this.getWorkspaceRoot()
|
||||
const root = this.getRoot()
|
||||
if (!root) {
|
||||
this.log("getStateManager: no workspace folder available")
|
||||
this.log("getStateManager: no folder available")
|
||||
return undefined
|
||||
}
|
||||
this.state = new WorktreeStateManager(root, (msg) => this.outputChannel.appendLine(`[StateManager] ${msg}`))
|
||||
@@ -1553,9 +1553,9 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
|
||||
private getSetupScriptService(): SetupScriptService | undefined {
|
||||
if (this.setupScript) return this.setupScript
|
||||
const root = this.getWorkspaceRoot()
|
||||
const root = this.getRoot()
|
||||
if (!root) {
|
||||
this.log("getSetupScriptService: no workspace folder available")
|
||||
this.log("getSetupScriptService: no folder available")
|
||||
return undefined
|
||||
}
|
||||
this.setupScript = new SetupScriptService(root)
|
||||
@@ -1593,9 +1593,9 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
}
|
||||
|
||||
const state = this.getStateManager()
|
||||
const root = this.getWorkspaceRoot()
|
||||
const root = this.getRoot()
|
||||
if (!state || !root) {
|
||||
this.postApplyResult(worktreeId, "error", "Open a git workspace to apply changes")
|
||||
this.postApplyResult(worktreeId, "error", "Open a git repository to apply changes")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1664,7 +1664,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
/** Open a file from a worktree or local session in the VS Code editor.
|
||||
* Absolute paths (Unix `/…` or Windows `C:\…`) are opened directly.
|
||||
* Relative paths are resolved against the session's worktree directory
|
||||
* (or workspace root for local sessions) with symlink-traversal protection. */
|
||||
* (or repo root for local sessions) with symlink-traversal protection. */
|
||||
private openWorktreeFile(sessionId: string, filePath: string, line?: number, column?: number): void {
|
||||
if (isAbsolutePath(filePath)) {
|
||||
const uri = vscode.Uri.file(filePath)
|
||||
@@ -1674,7 +1674,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
const state = this.getStateManager()
|
||||
if (!state) return
|
||||
const session = state.getSession(sessionId)
|
||||
const base = session?.worktreeId ? state.getWorktree(session.worktreeId)?.path : this.getWorkspaceRoot()
|
||||
const base = session?.worktreeId ? state.getWorktree(session.worktreeId)?.path : this.getRoot()
|
||||
if (!base) return
|
||||
// Resolve real paths to prevent symlink traversal and normalize for
|
||||
// consistent comparison on both Unix and Windows.
|
||||
@@ -1719,7 +1719,7 @@ export class AgentManagerProvider implements vscode.Disposable {
|
||||
return { directory: worktree.path, baseBranch: remoteRef(worktree) }
|
||||
}
|
||||
|
||||
/** Resolve diff target for the local workspace — diffs against the remote tracking
|
||||
/** Resolve diff target for the local repo — diffs against the remote tracking
|
||||
* branch, falling back to the repo's default branch, and ultimately to HEAD so
|
||||
* local-only repos (no remote) still show working-tree changes in the diff panel. */
|
||||
private async resolveLocalDiffTarget(): Promise<{ directory: string; baseBranch: string } | undefined> {
|
||||
|
||||
@@ -14,7 +14,7 @@ export interface TerminalHandle {
|
||||
export interface TerminalHost {
|
||||
createTerminal(opts: { cwd: string; name: string }): TerminalHandle
|
||||
activeTerminal(): TerminalHandle | undefined
|
||||
workspacePath(): string | undefined
|
||||
repoPath(): string | undefined
|
||||
showWarning(msg: string): void
|
||||
setContext(key: string, value: boolean): void
|
||||
onTerminalClosed(cb: (handle: TerminalHandle) => void): Disposable
|
||||
@@ -30,7 +30,7 @@ export interface Disposable {
|
||||
/**
|
||||
* Manages terminals for agent manager sessions.
|
||||
* Each session can have an associated terminal that opens in the session's worktree directory,
|
||||
* or the main workspace folder for local sessions.
|
||||
* or the main repo folder for local sessions.
|
||||
*/
|
||||
export class SessionTerminalManager {
|
||||
private static readonly LOCAL_KEY = "__local__"
|
||||
@@ -82,15 +82,15 @@ export class SessionTerminalManager {
|
||||
|
||||
/**
|
||||
* Show (or create) a terminal for the given session.
|
||||
* Resolves CWD from the worktree state, falling back to workspace root.
|
||||
* Resolves CWD from the worktree state, falling back to repo root.
|
||||
*/
|
||||
showTerminal(sessionId: string, state: WorktreeStateManager | undefined): void {
|
||||
// If terminal already exists, just focus it
|
||||
if (this.showExisting(sessionId, false)) return
|
||||
|
||||
const workspacePath = this.host.workspacePath()
|
||||
const repoPath = this.host.repoPath()
|
||||
const worktreePath = state?.directoryFor(sessionId)
|
||||
const cwd = worktreePath ?? workspacePath
|
||||
const cwd = worktreePath ?? repoPath
|
||||
|
||||
if (!cwd) {
|
||||
this.log(`showTerminal: no cwd resolved for session ${sessionId}`)
|
||||
@@ -106,15 +106,15 @@ export class SessionTerminalManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Show (or create) a terminal for the local workspace (no session required).
|
||||
* Show (or create) a terminal for the local repo (no session required).
|
||||
* Used when the user triggers a terminal in local mode without an active session.
|
||||
*/
|
||||
showLocalTerminal(): void {
|
||||
if (this.showExisting(SessionTerminalManager.LOCAL_KEY, false)) return
|
||||
|
||||
const cwd = this.host.workspacePath()
|
||||
const cwd = this.host.repoPath()
|
||||
if (!cwd) {
|
||||
this.log("showLocalTerminal: no workspace folder open")
|
||||
this.log("showLocalTerminal: no repo folder open")
|
||||
this.host.showWarning("Open a folder to use the local terminal")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ export function createTerminalHost(): TerminalHost {
|
||||
const t = vscode.window.activeTerminal
|
||||
return t ? wrap(t) : undefined
|
||||
},
|
||||
workspacePath: () => vscode.workspace.workspaceFolders?.[0]?.uri.fsPath,
|
||||
repoPath: () => vscode.workspace.workspaceFolders?.[0]?.uri.fsPath,
|
||||
showWarning: (msg) => void vscode.window.showWarningMessage(msg),
|
||||
setContext: (key, value) => void vscode.commands.executeCommand("setContext", key, value),
|
||||
onTerminalClosed: (cb) => vscode.window.onDidCloseTerminal((terminal) => cb(wrap(terminal))),
|
||||
|
||||
@@ -46,11 +46,11 @@ describe("SessionTerminalManager structure", () => {
|
||||
expect(text).toContain("terminals.clear()")
|
||||
})
|
||||
|
||||
it("showTerminal resolves CWD from worktree with workspace fallback", () => {
|
||||
it("showTerminal resolves CWD from worktree with repo fallback", () => {
|
||||
const text = body("showTerminal")
|
||||
// The fallback chain must be worktreePath ?? workspacePath, not the reverse.
|
||||
// The fallback chain must be worktreePath ?? repoPath, not the reverse.
|
||||
// Getting this wrong would run agents in the wrong directory.
|
||||
expect(text).toContain("worktreePath ?? workspacePath")
|
||||
expect(text).toContain("worktreePath ?? repoPath")
|
||||
})
|
||||
|
||||
/**
|
||||
|
||||
@@ -106,7 +106,7 @@ interface ApplyState {
|
||||
conflicts: AgentManagerApplyWorktreeDiffConflict[]
|
||||
}
|
||||
|
||||
/** Sidebar selection: LOCAL for workspace, worktree ID for a worktree, or null for an unassigned session. */
|
||||
/** Sidebar selection: LOCAL for local repo, worktree ID for a worktree, or null for an unassigned session. */
|
||||
type SidebarSelection = typeof LOCAL | string | null
|
||||
|
||||
const isMac = typeof navigator !== "undefined" && /Mac|iPhone|iPad/.test(navigator.userAgent)
|
||||
@@ -343,7 +343,7 @@ const AgentManagerContent: Component = () => {
|
||||
// Per-worktree git stats (diff additions/deletions, commits missing from origin)
|
||||
const [worktreeStats, setWorktreeStats] = createSignal<Record<string, WorktreeGitStats>>({})
|
||||
|
||||
// Local workspace git stats (branch name, diff additions/deletions, commits)
|
||||
// Local repo git stats (branch name, diff additions/deletions, commits)
|
||||
const [localStats, setLocalStats] = createSignal<LocalGitStats | undefined>()
|
||||
|
||||
// Per-worktree apply-to-local status
|
||||
@@ -1920,7 +1920,7 @@ const AgentManagerContent: Component = () => {
|
||||
max={9999}
|
||||
onResize={(width) => setSidebarWidth(Math.min(width, window.innerWidth * MAX_SIDEBAR_WIDTH_RATIO))}
|
||||
/>
|
||||
{/* Local workspace item */}
|
||||
{/* Local repo item */}
|
||||
<button
|
||||
class={`am-local-item ${selection() === LOCAL ? "am-local-item-active" : ""}`}
|
||||
data-sidebar-id="local"
|
||||
|
||||
@@ -533,7 +533,7 @@ export const NewWorktreeDialog: Component<{ onClose: () => void; defaultBaseBran
|
||||
</>
|
||||
}
|
||||
>
|
||||
{t("agentManager.dialog.createWorkspace")}
|
||||
{t("agentManager.dialog.createWorktree")}
|
||||
</Show>
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
background: var(--surface-interactive-base);
|
||||
}
|
||||
|
||||
/* Fixed local workspace item */
|
||||
/* Fixed local repo item */
|
||||
|
||||
.am-local-item {
|
||||
position: relative;
|
||||
|
||||
@@ -84,7 +84,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "البحث عن النماذج...",
|
||||
"agentManager.dialog.compareModels.selectModels": "اختر النماذج...",
|
||||
"agentManager.dialog.creating": "جارٍ الإنشاء...",
|
||||
"agentManager.dialog.createWorkspace": "إنشاء شجرة العمل",
|
||||
"agentManager.dialog.createWorktree": "إنشاء شجرة العمل",
|
||||
"agentManager.dialog.removeImage": "إزالة الصورة",
|
||||
"agentManager.dialog.advanced": "متقدم...",
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ export const dict = {
|
||||
"agentManager.tab.forkSession": "Bifurcar sessão",
|
||||
"agentManager.tab.terminal": "Terminal",
|
||||
"agentManager.tab.openTerminal": "Abrir Terminal",
|
||||
"agentManager.setup.failed": "Falha na configuração do workspace",
|
||||
"agentManager.setup.settingUp": "Configurando workspace",
|
||||
"agentManager.setup.failed": "Falha na configuração do worktree",
|
||||
"agentManager.setup.settingUp": "Configurando worktree",
|
||||
"agentManager.setup.error.git_not_found":
|
||||
"O Git não está instalado ou não foi encontrado no PATH. Instale o Git e reinicie o VS Code.",
|
||||
"agentManager.setup.error.not_git_repo": "Abra uma pasta que contém um repositório git para usar worktrees.",
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Pesquisar modelos...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Selecionar modelos...",
|
||||
"agentManager.dialog.creating": "Criando...",
|
||||
"agentManager.dialog.createWorkspace": "Criar Worktree",
|
||||
"agentManager.dialog.createWorktree": "Criar Worktree",
|
||||
"agentManager.dialog.removeImage": "Remover imagem",
|
||||
"agentManager.dialog.advanced": "Avançado...",
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Pretraži modele...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Odaberi modele...",
|
||||
"agentManager.dialog.creating": "Kreiranje...",
|
||||
"agentManager.dialog.createWorkspace": "Kreiraj worktree",
|
||||
"agentManager.dialog.createWorktree": "Kreiraj worktree",
|
||||
"agentManager.dialog.removeImage": "Ukloni sliku",
|
||||
"agentManager.dialog.advanced": "Napredno...",
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ export const dict = {
|
||||
"agentManager.tab.forkSession": "Forgren session",
|
||||
"agentManager.tab.terminal": "Terminal",
|
||||
"agentManager.tab.openTerminal": "Åbn Terminal",
|
||||
"agentManager.setup.failed": "Opsætning af workspace mislykkedes",
|
||||
"agentManager.setup.settingUp": "Opsætter workspace",
|
||||
"agentManager.setup.failed": "Opsætning af worktree mislykkedes",
|
||||
"agentManager.setup.settingUp": "Opsætter worktree",
|
||||
"agentManager.setup.error.git_not_found":
|
||||
"Git er ikke installeret eller blev ikke fundet i PATH. Installer venligst Git og genstart VS Code.",
|
||||
"agentManager.setup.error.not_git_repo": "Åbn en mappe, der indeholder et git-repository for at bruge worktrees.",
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Søg modeller...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Vælg modeller...",
|
||||
"agentManager.dialog.creating": "Opretter...",
|
||||
"agentManager.dialog.createWorkspace": "Opret Worktree",
|
||||
"agentManager.dialog.createWorktree": "Opret Worktree",
|
||||
"agentManager.dialog.removeImage": "Fjern billede",
|
||||
"agentManager.dialog.advanced": "Avanceret...",
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Modelle suchen...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Modelle auswählen...",
|
||||
"agentManager.dialog.creating": "Wird erstellt...",
|
||||
"agentManager.dialog.createWorkspace": "Worktree erstellen",
|
||||
"agentManager.dialog.createWorktree": "Worktree erstellen",
|
||||
"agentManager.dialog.removeImage": "Bild entfernen",
|
||||
"agentManager.dialog.advanced": "Erweitert...",
|
||||
|
||||
|
||||
@@ -38,8 +38,8 @@ export const dict = {
|
||||
"agentManager.tab.terminal": "Terminal",
|
||||
"agentManager.tab.openTerminal": "Open Terminal",
|
||||
|
||||
"agentManager.setup.failed": "Workspace setup failed",
|
||||
"agentManager.setup.settingUp": "Setting up workspace",
|
||||
"agentManager.setup.failed": "Worktree setup failed",
|
||||
"agentManager.setup.settingUp": "Setting up worktree",
|
||||
"agentManager.setup.error.git_not_found":
|
||||
"Git is not installed or not found in PATH. Please install Git and restart VS Code.",
|
||||
"agentManager.setup.error.not_git_repo": "Open a folder that contains a git repository to use worktrees.",
|
||||
@@ -91,7 +91,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Search models...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Select models...",
|
||||
"agentManager.dialog.creating": "Creating...",
|
||||
"agentManager.dialog.createWorkspace": "Create Worktree",
|
||||
"agentManager.dialog.createWorktree": "Create Worktree",
|
||||
"agentManager.dialog.removeImage": "Remove image",
|
||||
"agentManager.dialog.advanced": "Advanced...",
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ export const dict = {
|
||||
"agentManager.tab.forkSession": "Bifurcar sesión",
|
||||
"agentManager.tab.terminal": "Terminal",
|
||||
"agentManager.tab.openTerminal": "Abrir Terminal",
|
||||
"agentManager.setup.failed": "Error en la configuración del workspace",
|
||||
"agentManager.setup.settingUp": "Configurando workspace",
|
||||
"agentManager.setup.failed": "Error en la configuración del worktree",
|
||||
"agentManager.setup.settingUp": "Configurando worktree",
|
||||
"agentManager.setup.error.git_not_found":
|
||||
"Git no está instalado o no se encuentra en el PATH. Por favor instale Git y reinicie VS Code.",
|
||||
"agentManager.setup.error.not_git_repo": "Abra una carpeta que contenga un repositorio git para usar worktrees.",
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Buscar modelos...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Seleccionar modelos...",
|
||||
"agentManager.dialog.creating": "Creando...",
|
||||
"agentManager.dialog.createWorkspace": "Crear Worktree",
|
||||
"agentManager.dialog.createWorktree": "Crear Worktree",
|
||||
"agentManager.dialog.removeImage": "Eliminar imagen",
|
||||
"agentManager.dialog.advanced": "Avanzado...",
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Rechercher des modèles...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Sélectionner des modèles...",
|
||||
"agentManager.dialog.creating": "Création...",
|
||||
"agentManager.dialog.createWorkspace": "Créer un worktree",
|
||||
"agentManager.dialog.createWorktree": "Créer un worktree",
|
||||
"agentManager.dialog.removeImage": "Supprimer l'image",
|
||||
"agentManager.dialog.advanced": "Avancé...",
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "モデルを検索...",
|
||||
"agentManager.dialog.compareModels.selectModels": "モデルを選択...",
|
||||
"agentManager.dialog.creating": "作成中...",
|
||||
"agentManager.dialog.createWorkspace": "ワークツリーを作成",
|
||||
"agentManager.dialog.createWorktree": "ワークツリーを作成",
|
||||
"agentManager.dialog.removeImage": "画像を削除",
|
||||
"agentManager.dialog.advanced": "詳細...",
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "모델 검색...",
|
||||
"agentManager.dialog.compareModels.selectModels": "모델 선택...",
|
||||
"agentManager.dialog.creating": "생성 중...",
|
||||
"agentManager.dialog.createWorkspace": "워크트리 생성",
|
||||
"agentManager.dialog.createWorktree": "워크트리 생성",
|
||||
"agentManager.dialog.removeImage": "이미지 제거",
|
||||
"agentManager.dialog.advanced": "고급...",
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Søk modeller...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Velg modeller...",
|
||||
"agentManager.dialog.creating": "Oppretter...",
|
||||
"agentManager.dialog.createWorkspace": "Opprett worktree",
|
||||
"agentManager.dialog.createWorktree": "Opprett worktree",
|
||||
"agentManager.dialog.removeImage": "Fjern bilde",
|
||||
"agentManager.dialog.advanced": "Avansert...",
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ export const dict = {
|
||||
"agentManager.tab.forkSession": "Rozgałęź sesję",
|
||||
"agentManager.tab.terminal": "Terminal",
|
||||
"agentManager.tab.openTerminal": "Otwórz Terminal",
|
||||
"agentManager.setup.failed": "Konfiguracja workspace nie powiodła się",
|
||||
"agentManager.setup.settingUp": "Konfigurowanie workspace",
|
||||
"agentManager.setup.failed": "Konfiguracja worktree nie powiodła się",
|
||||
"agentManager.setup.settingUp": "Konfigurowanie worktree",
|
||||
"agentManager.setup.error.git_not_found":
|
||||
"Git nie jest zainstalowany lub nie został znaleziony w zmiennej PATH. Zainstaluj Git i uruchom ponownie VS Code.",
|
||||
"agentManager.setup.error.not_git_repo": "Otwórz folder zawierający repozytorium git, aby używać worktrees.",
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Szukaj modeli...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Wybierz modele...",
|
||||
"agentManager.dialog.creating": "Tworzenie...",
|
||||
"agentManager.dialog.createWorkspace": "Utwórz Worktree",
|
||||
"agentManager.dialog.createWorktree": "Utwórz Worktree",
|
||||
"agentManager.dialog.removeImage": "Usuń obraz",
|
||||
"agentManager.dialog.advanced": "Zaawansowane...",
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "Поиск моделей...",
|
||||
"agentManager.dialog.compareModels.selectModels": "Выбрать модели...",
|
||||
"agentManager.dialog.creating": "Создание...",
|
||||
"agentManager.dialog.createWorkspace": "Создать worktree",
|
||||
"agentManager.dialog.createWorktree": "Создать worktree",
|
||||
"agentManager.dialog.removeImage": "Удалить изображение",
|
||||
"agentManager.dialog.advanced": "Дополнительно...",
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ export const dict = {
|
||||
"agentManager.tab.forkSession": "แยกเซสชัน",
|
||||
"agentManager.tab.terminal": "เทอร์มินัล",
|
||||
"agentManager.tab.openTerminal": "เปิดเทอร์มินัล",
|
||||
"agentManager.setup.failed": "ตั้งค่า Workspace ล้มเหลว",
|
||||
"agentManager.setup.settingUp": "กำลังตั้งค่า Workspace",
|
||||
"agentManager.setup.failed": "ตั้งค่า Worktree ล้มเหลว",
|
||||
"agentManager.setup.settingUp": "กำลังตั้งค่า Worktree",
|
||||
"agentManager.setup.error.git_not_found": "ไม่ได้ติดตั้ง Git หรือไม่พบใน PATH โปรดติดตั้ง Git และรีสตาร์ท VS Code",
|
||||
"agentManager.setup.error.not_git_repo": "เปิดโฟลเดอร์ที่มีที่เก็บ git เพื่อใช้ worktrees",
|
||||
"agentManager.setup.error.lfs_missing": "ที่เก็บนี้ใช้ Git LFS แต่ไม่พบ git-lfs โปรดติดตั้ง Git LFS",
|
||||
@@ -83,7 +83,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "ค้นหาโมเดล...",
|
||||
"agentManager.dialog.compareModels.selectModels": "เลือกโมเดล...",
|
||||
"agentManager.dialog.creating": "กำลังสร้าง...",
|
||||
"agentManager.dialog.createWorkspace": "สร้าง Worktree",
|
||||
"agentManager.dialog.createWorktree": "สร้าง Worktree",
|
||||
"agentManager.dialog.removeImage": "ลบรูปภาพ",
|
||||
"agentManager.dialog.advanced": "ขั้นสูง...",
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "搜索模型...",
|
||||
"agentManager.dialog.compareModels.selectModels": "选择模型...",
|
||||
"agentManager.dialog.creating": "创建中...",
|
||||
"agentManager.dialog.createWorkspace": "创建工作树",
|
||||
"agentManager.dialog.createWorktree": "创建工作树",
|
||||
"agentManager.dialog.removeImage": "移除图片",
|
||||
"agentManager.dialog.advanced": "高级...",
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ export const dict = {
|
||||
"agentManager.dialog.compareModels.searchModels": "搜尋模型...",
|
||||
"agentManager.dialog.compareModels.selectModels": "選擇模型...",
|
||||
"agentManager.dialog.creating": "建立中...",
|
||||
"agentManager.dialog.createWorkspace": "建立工作樹",
|
||||
"agentManager.dialog.createWorktree": "建立工作樹",
|
||||
"agentManager.dialog.removeImage": "移除圖片",
|
||||
"agentManager.dialog.advanced": "進階...",
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* Returns the action to take: select a session by ID, go to local, or do nothing.
|
||||
*/
|
||||
|
||||
/** Sentinel value for the local workspace selection. */
|
||||
/** Sentinel value for the local repo selection. */
|
||||
export const LOCAL = "local" as const
|
||||
|
||||
type NavResult = { action: "select"; id: string } | { action: typeof LOCAL } | { action: "none" }
|
||||
|
||||
Reference in New Issue
Block a user