diff --git a/packages/dashboard/app/components/NewTaskModal.tsx b/packages/dashboard/app/components/NewTaskModal.tsx
index 7734233c15..0c8793e746 100644
--- a/packages/dashboard/app/components/NewTaskModal.tsx
+++ b/packages/dashboard/app/components/NewTaskModal.tsx
@@ -249,7 +249,7 @@ export function NewTaskModal({ isOpen, onClose, projectId, tasks, onCreateTask,
validatorModelId: validatorModel && validatorSlashIdx !== -1 ? validatorModel.slice(validatorSlashIdx + 1) : undefined,
planningModelProvider: planningModel && planningSlashIdx !== -1 ? planningModel.slice(0, planningSlashIdx) : undefined,
planningModelId: planningModel && planningSlashIdx !== -1 ? planningModel.slice(planningSlashIdx + 1) : undefined,
- thinkingLevel: thinkingLevel !== "" ? thinkingLevel as "minimal" | "low" | "medium" | "high" : undefined,
+ thinkingLevel: thinkingLevel !== "" ? thinkingLevel as "minimal" | "low" | "medium" | "high" | "xhigh" : undefined,
reviewLevel,
...(autoMerge !== undefined ? { autoMerge } : {}),
priority,
diff --git a/packages/dashboard/app/components/TaskDetailModal.tsx b/packages/dashboard/app/components/TaskDetailModal.tsx
index 489cc3b2d5..9c98d6bc5b 100644
--- a/packages/dashboard/app/components/TaskDetailModal.tsx
+++ b/packages/dashboard/app/components/TaskDetailModal.tsx
@@ -1527,7 +1527,7 @@ export function TaskDetailContent({
}
const currentThinkingLevel = task.thinkingLevel ?? "";
- if (editThinkingLevel !== currentThinkingLevel) updates.thinkingLevel = editThinkingLevel !== "" ? (editThinkingLevel as "minimal" | "low" | "medium" | "high") : null;
+ if (editThinkingLevel !== currentThinkingLevel) updates.thinkingLevel = editThinkingLevel !== "" ? (editThinkingLevel as "minimal" | "low" | "medium" | "high" | "xhigh") : null;
if ((task.nodeId ?? undefined) !== editNodeId) updates.nodeId = editNodeId ?? null;
if (editReviewLevel !== task.reviewLevel) updates.reviewLevel = editReviewLevel;
if (editPriority !== normalizeTaskPriorityValue(task.priority)) updates.priority = editPriority;
diff --git a/packages/dashboard/app/components/TaskForm.tsx b/packages/dashboard/app/components/TaskForm.tsx
index dad5a6395f..973c88ce5f 100644
--- a/packages/dashboard/app/components/TaskForm.tsx
+++ b/packages/dashboard/app/components/TaskForm.tsx
@@ -1221,6 +1221,7 @@ export function TaskForm({
)}
{onThinkingLevelChange && (
+ {/* FNXC:Settings-ThinkingLevel 2026-06-19-14:55: The shared task thinking selector must expose `xhigh` so new-task and task-detail edits can request maximum reasoning effort instead of being capped at `high`. */}
{t("taskForm.thinkingLabel", "Thinking")}
{t("taskForm.thinkingLow", "Low")}
{t("taskForm.thinkingMedium", "Medium")}
{t("taskForm.thinkingHigh", "High")}
+ {t("taskForm.thinkingXhigh", "Very High")}
)}
diff --git a/packages/dashboard/app/components/__tests__/TaskForm.test.tsx b/packages/dashboard/app/components/__tests__/TaskForm.test.tsx
index 22bc7553cd..ecf3eba463 100644
--- a/packages/dashboard/app/components/__tests__/TaskForm.test.tsx
+++ b/packages/dashboard/app/components/__tests__/TaskForm.test.tsx
@@ -133,6 +133,20 @@ describe("TaskForm", () => {
vi.mocked(fetchGitBranches).mockResolvedValue([]);
});
+ it("renders xhigh in the shared thinking-level selector", async () => {
+ renderTaskForm({
+ thinkingLevel: "",
+ onThinkingLevelChange: vi.fn(),
+ });
+
+ fireEvent.click(screen.getByRole("button", { name: /More options/i }));
+
+ await waitFor(() => {
+ expect(screen.getByRole("combobox", { name: /Thinking/i })).toBeTruthy();
+ });
+ expect(screen.getByRole("option", { name: /Very High/i })).toHaveAttribute("value", "xhigh");
+ });
+
it("renders description field with AI refine button when text is present", () => {
renderTaskForm({ description: "Some text" });
diff --git a/packages/dashboard/app/components/settings/sections/GlobalModelsSection.tsx b/packages/dashboard/app/components/settings/sections/GlobalModelsSection.tsx
index 3693c1a23a..05e682eec8 100644
--- a/packages/dashboard/app/components/settings/sections/GlobalModelsSection.tsx
+++ b/packages/dashboard/app/components/settings/sections/GlobalModelsSection.tsx
@@ -132,6 +132,7 @@ export function GlobalModelsSection({
if (selectedModel && !selectedModel.reasoning) return null;
return (
+ {/* FNXC:Settings-ThinkingLevel 2026-06-19-14:55: This global selector renders the canonical THINKING_LEVELS list so newly added `xhigh` stays available anywhere the default reasoning effort is configured. */}
Thinking Effort
{
expect(res.body.error).toContain("enabledWorkflowSteps must be an array of strings");
});
- it("forwards thinkingLevel to store.updateTask", async () => {
+ it("forwards xhigh thinkingLevel to store.updateTask", async () => {
(store.updateTask as ReturnType).mockResolvedValue({
...FAKE_TASK_DETAIL,
- thinkingLevel: "high",
+ thinkingLevel: "xhigh",
});
const res = await REQUEST(buildApp(), "PATCH", "/api/tasks/KB-001", JSON.stringify({
- thinkingLevel: "high",
+ thinkingLevel: "xhigh",
}), {
"Content-Type": "application/json",
});
expect(res.status).toBe(200);
expect(store.updateTask).toHaveBeenCalledWith("KB-001", {
- thinkingLevel: "high",
+ thinkingLevel: "xhigh",
});
});
diff --git a/packages/dashboard/src/__tests__/routes-tasks.test.ts b/packages/dashboard/src/__tests__/routes-tasks.test.ts
index 589769e427..f7fa15e059 100644
--- a/packages/dashboard/src/__tests__/routes-tasks.test.ts
+++ b/packages/dashboard/src/__tests__/routes-tasks.test.ts
@@ -1220,11 +1220,11 @@ describe("POST /tasks", () => {
expect(store.createTask).not.toHaveBeenCalled();
});
- it("forwards thinkingLevel when provided", async () => {
+ it("forwards xhigh thinkingLevel when provided", async () => {
const createdTask = {
...FAKE_TASK_DETAIL,
column: "triage",
- thinkingLevel: "high",
+ thinkingLevel: "xhigh",
};
(store.createTask as ReturnType).mockResolvedValue(createdTask);
@@ -1234,7 +1234,7 @@ describe("POST /tasks", () => {
"/api/tasks",
JSON.stringify({
description: "Deep reasoning task",
- thinkingLevel: "high",
+ thinkingLevel: "xhigh",
}),
{ "Content-Type": "application/json" },
);
@@ -1243,7 +1243,7 @@ describe("POST /tasks", () => {
expect(store.createTask).toHaveBeenCalledWith(
expect.objectContaining({
description: "Deep reasoning task",
- thinkingLevel: "high",
+ thinkingLevel: "xhigh",
}),
expect.objectContaining({
settings: { autoSummarizeTitles: undefined },
diff --git a/packages/dashboard/src/agent-generation.ts b/packages/dashboard/src/agent-generation.ts
index 408b70a9ec..514a2b5ac0 100644
--- a/packages/dashboard/src/agent-generation.ts
+++ b/packages/dashboard/src/agent-generation.ts
@@ -132,7 +132,7 @@ export interface AgentGenerationSpec {
/** Detailed system prompt in markdown */
systemPrompt: string;
/** Suggested thinking level */
- thinkingLevel: "off" | "minimal" | "low" | "medium" | "high";
+ thinkingLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
/** Suggested max turns (1-500) */
maxTurns: number;
}
@@ -400,7 +400,7 @@ export function parseGenerationResponse(text: string): AgentGenerationSpec {
role: typeof obj.role === "string" ? obj.role : "custom",
description: typeof obj.description === "string" ? obj.description : "",
systemPrompt: typeof obj.systemPrompt === "string" ? obj.systemPrompt : "",
- thinkingLevel: ["off", "minimal", "low", "medium", "high"].includes(obj.thinkingLevel as string)
+ thinkingLevel: ["off", "minimal", "low", "medium", "high", "xhigh"].includes(obj.thinkingLevel as string)
? (obj.thinkingLevel as AgentGenerationSpec["thinkingLevel"])
: "off",
maxTurns: typeof obj.maxTurns === "number"
diff --git a/packages/dashboard/src/agent-onboarding.ts b/packages/dashboard/src/agent-onboarding.ts
index e347f2ae9e..c110b9364c 100644
--- a/packages/dashboard/src/agent-onboarding.ts
+++ b/packages/dashboard/src/agent-onboarding.ts
@@ -9,7 +9,7 @@ export interface AgentOnboardingSummary {
name: string;
role: AgentCapability | "custom";
instructionsText: string;
- thinkingLevel: "off" | "minimal" | "low" | "medium" | "high";
+ thinkingLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
maxTurns: number;
title?: string;
icon?: string;
@@ -42,7 +42,7 @@ export interface ExistingAgentOnboardingConfig {
reportsTo?: string;
skills?: string[];
model?: string;
- thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high";
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
maxTurns?: number;
runtimeHint?: string;
heartbeatIntervalMs?: number;
diff --git a/packages/dashboard/src/routes/register-task-workflow-routes.ts b/packages/dashboard/src/routes/register-task-workflow-routes.ts
index 6977e9dc13..6a7cd855a5 100644
--- a/packages/dashboard/src/routes/register-task-workflow-routes.ts
+++ b/packages/dashboard/src/routes/register-task-workflow-routes.ts
@@ -15,6 +15,7 @@ import type {
} from "@fusion/core";
import {
COLUMNS,
+ THINKING_LEVELS,
TASK_PRIORITIES,
VALID_TRANSITIONS,
computeContentFingerprint,
@@ -922,7 +923,7 @@ export function registerTaskWorkflowRoutes(ctx: ApiRoutesContext, deps: TaskWork
const validatedPlanningModelId = validateOptionalModelField(planningModelId, "planningModelId");
// Validate thinkingLevel if provided
- const validThinkingLevels = ["off", "minimal", "low", "medium", "high"];
+ const validThinkingLevels = [...THINKING_LEVELS];
if (thinkingLevel !== undefined && thinkingLevel !== null && !validThinkingLevels.includes(thinkingLevel)) {
throw badRequest(`thinkingLevel must be one of: ${validThinkingLevels.join(", ")}`);
}
@@ -2922,7 +2923,7 @@ export function registerTaskWorkflowRoutes(ctx: ApiRoutesContext, deps: TaskWork
const validatedAssigneeUserId = validateModelField(assigneeUserId, "assigneeUserId");
// Validate thinkingLevel if provided
- const validThinkingLevels = ["off", "minimal", "low", "medium", "high"];
+ const validThinkingLevels = [...THINKING_LEVELS];
if (thinkingLevel !== undefined && thinkingLevel !== null && !validThinkingLevels.includes(thinkingLevel)) {
throw new Error(`thinkingLevel must be one of: ${validThinkingLevels.join(", ")}`);
}
diff --git a/packages/engine/src/__tests__/pi.test.ts b/packages/engine/src/__tests__/pi.test.ts
index c638a83b2c..48c211f721 100644
--- a/packages/engine/src/__tests__/pi.test.ts
+++ b/packages/engine/src/__tests__/pi.test.ts
@@ -689,6 +689,31 @@ describe("session failure diagnostics", () => {
warnSpy.mockRestore();
});
+ it("passes xhigh through to sessions without engine-side narrowing", async () => {
+ const createAgentSessionMock = vi.mocked(createAgentSession);
+ const sessionWithThinking = {
+ model: { provider: "test", id: "primary-model" },
+ prompt: vi.fn(),
+ subscribe: vi.fn(),
+ dispose: vi.fn(),
+ setThinkingLevel: vi.fn(),
+ sessionFile: undefined,
+ } as unknown as AgentSession;
+
+ createAgentSessionMock.mockReset();
+ createAgentSessionMock.mockResolvedValueOnce({ session: sessionWithThinking } as any);
+
+ await createFnAgent({
+ cwd: "/test/project",
+ systemPrompt: "Test xhigh thinking pass-through",
+ defaultProvider: "test",
+ defaultModelId: "primary-model",
+ defaultThinkingLevel: "xhigh",
+ });
+
+ expect(sessionWithThinking.setThinkingLevel).toHaveBeenCalledWith("xhigh");
+ });
+
it("retries prompt on thinking/reasoning conflict without switching fallback models", async () => {
const createAgentSessionMock = vi.mocked(createAgentSession);
diff --git a/packages/i18n/locales/en/app.json b/packages/i18n/locales/en/app.json
index b81c6c301a..ce3a2331c4 100644
--- a/packages/i18n/locales/en/app.json
+++ b/packages/i18n/locales/en/app.json
@@ -1034,6 +1034,7 @@
"templateCompact": "Compact",
"templateDefault": "Default",
"thinkingHigh": "High",
+ "thinkingXhigh": "Very High",
"thinkingLevel": "Thinking level",
"thinkingLow": "Low",
"thinkingMedium": "Medium",
@@ -3415,6 +3416,7 @@
"options": {
"default": "Default",
"high": "High",
+ "xhigh": "Very High",
"low": "Low",
"medium": "Medium",
"minimal": "Minimal",
@@ -6310,6 +6312,7 @@
"subtaskButton": "Subtask",
"thinkingDefault": "Default ({{level}})",
"thinkingHigh": "High",
+ "thinkingXhigh": "Very High",
"thinkingLabel": "Thinking",
"thinkingLow": "Low",
"thinkingMedium": "Medium",
diff --git a/packages/i18n/locales/es/app.json b/packages/i18n/locales/es/app.json
index 94bc9f1348..c60fd0b99b 100644
--- a/packages/i18n/locales/es/app.json
+++ b/packages/i18n/locales/es/app.json
@@ -1034,6 +1034,7 @@
"templateCompact": "Compacto",
"templateDefault": "Predeterminado",
"thinkingHigh": "Alto",
+ "thinkingXhigh": "Muy alto",
"thinkingLevel": "Nivel de pensamiento",
"thinkingLow": "Bajo",
"thinkingMedium": "Medio",
@@ -3389,6 +3390,7 @@
"options": {
"default": "Predeterminado",
"high": "Alto",
+ "xhigh": "Muy alto",
"low": "Bajo",
"medium": "Medio",
"minimal": "Mínimo",
@@ -6211,6 +6213,7 @@
"subtaskButton": "Subtarea",
"thinkingDefault": "Predeterminado ({{level}})",
"thinkingHigh": "Alto",
+ "thinkingXhigh": "Muy alto",
"thinkingLabel": "Pensamiento",
"thinkingLow": "Bajo",
"thinkingMedium": "Medio",
diff --git a/packages/i18n/locales/fr/app.json b/packages/i18n/locales/fr/app.json
index 7df37dc150..83f6d51740 100644
--- a/packages/i18n/locales/fr/app.json
+++ b/packages/i18n/locales/fr/app.json
@@ -1034,6 +1034,7 @@
"templateCompact": "Compact",
"templateDefault": "Défaut",
"thinkingHigh": "Élevé",
+ "thinkingXhigh": "Très élevé",
"thinkingLevel": "Niveau de réflexion",
"thinkingLow": "Faible",
"thinkingMedium": "Moyen",
@@ -3389,6 +3390,7 @@
"options": {
"default": "Défaut",
"high": "Élevé",
+ "xhigh": "Très élevé",
"low": "Faible",
"medium": "Moyen",
"minimal": "Minimal",
@@ -6211,6 +6213,7 @@
"subtaskButton": "Sous-tâche",
"thinkingDefault": "Défaut ({{level}})",
"thinkingHigh": "Élevé",
+ "thinkingXhigh": "Très élevé",
"thinkingLabel": "Réflexion",
"thinkingLow": "Faible",
"thinkingMedium": "Moyen",
diff --git a/packages/i18n/locales/ko/app.json b/packages/i18n/locales/ko/app.json
index 9c8b8be5ea..cbf6d3e061 100644
--- a/packages/i18n/locales/ko/app.json
+++ b/packages/i18n/locales/ko/app.json
@@ -1007,6 +1007,7 @@
"templateCompact": "간결",
"templateDefault": "기본",
"thinkingHigh": "높음",
+ "thinkingXhigh": "매우 높음",
"thinkingLevel": "사고 수준",
"thinkingLow": "낮음",
"thinkingMedium": "보통",
@@ -3388,6 +3389,7 @@
"options": {
"default": "기본값",
"high": "높음",
+ "xhigh": "매우 높음",
"low": "낮음",
"medium": "중간",
"minimal": "최소",
@@ -6210,6 +6212,7 @@
"subtaskButton": "하위 작업",
"thinkingDefault": "기본값 ({{level}})",
"thinkingHigh": "높음",
+ "thinkingXhigh": "매우 높음",
"thinkingLabel": "사고",
"thinkingLow": "낮음",
"thinkingMedium": "중간",
diff --git a/packages/i18n/locales/zh-CN/app.json b/packages/i18n/locales/zh-CN/app.json
index 4c9435e4d3..6de6db57f0 100644
--- a/packages/i18n/locales/zh-CN/app.json
+++ b/packages/i18n/locales/zh-CN/app.json
@@ -1007,6 +1007,7 @@
"templateCompact": "紧凑",
"templateDefault": "默认",
"thinkingHigh": "高",
+ "thinkingXhigh": "极高",
"thinkingLevel": "思考级别",
"thinkingLow": "低",
"thinkingMedium": "中",
@@ -3388,6 +3389,7 @@
"options": {
"default": "默认值",
"high": "高",
+ "xhigh": "极高",
"low": "低",
"medium": "中等",
"minimal": "最小",
@@ -6210,6 +6212,7 @@
"subtaskButton": "子任务",
"thinkingDefault": "默认({{level}})",
"thinkingHigh": "高",
+ "thinkingXhigh": "极高",
"thinkingLabel": "思考",
"thinkingLow": "低",
"thinkingMedium": "中",
diff --git a/packages/i18n/locales/zh-TW/app.json b/packages/i18n/locales/zh-TW/app.json
index 8bdaaa6971..5f56dbb9ed 100644
--- a/packages/i18n/locales/zh-TW/app.json
+++ b/packages/i18n/locales/zh-TW/app.json
@@ -1007,6 +1007,7 @@
"templateCompact": "緊湊",
"templateDefault": "預設",
"thinkingHigh": "高",
+ "thinkingXhigh": "極高",
"thinkingLevel": "思考級別",
"thinkingLow": "低",
"thinkingMedium": "中",
@@ -3388,6 +3389,7 @@
"options": {
"default": "預設值",
"high": "高",
+ "xhigh": "極高",
"low": "低",
"medium": "中等",
"minimal": "最小",
@@ -6210,6 +6212,7 @@
"subtaskButton": "子任務",
"thinkingDefault": "預設({{level}})",
"thinkingHigh": "高",
+ "thinkingXhigh": "極高",
"thinkingLabel": "思考",
"thinkingLow": "低",
"thinkingMedium": "中",
diff --git a/packages/i18n/src/resources.d.ts b/packages/i18n/src/resources.d.ts
index 2b8d1d41ae..d6886dca60 100644
--- a/packages/i18n/src/resources.d.ts
+++ b/packages/i18n/src/resources.d.ts
@@ -1041,6 +1041,7 @@ export default interface Resources {
"thinkingMedium": "Medium",
"thinkingMinimal": "Minimal",
"thinkingOff": "Off",
+ "thinkingXhigh": "Very High",
"throughput": "Throughput",
"title": "Agents",
"titleLabel": "Title",
@@ -1197,7 +1198,6 @@ export default interface Resources {
"cancelButton": "Cancel",
"clearConversationFailed": "Failed to clear conversation",
"closeQuickChat": "Close quick chat",
- "workingStatus": "Working…",
"conversationArchived": "Conversation archived",
"conversationDeleted": "Conversation deleted",
"copyFailed": "Copy failed",
@@ -1252,6 +1252,16 @@ export default interface Resources {
"noSkillsAvailable": "No skills available",
"noSkillsFound": "No skills found",
"openQuickChat": "Open quick chat",
+ "questionAnsweredLabel": "Answered",
+ "questionAnsweredWithoutContent": "A later user reply answered this question.",
+ "questionConfirmNo": "No",
+ "questionConfirmYes": "Yes",
+ "questionResponseEyebrow": "Assistant question",
+ "questionResponseLabel": "Question from assistant",
+ "questionSelectHint": "Answer all questions to continue the chat.",
+ "questionSubmit": "Send answer",
+ "questionSubmittedAnswerLabel": "Submitted answer",
+ "questionTextPlaceholder": "Type your answer here…",
"queuedMessage": "Queued: {{preview}}",
"quickChatTitle": "Quick Chat",
"relativeTimeDays_one": "{{count}}d ago",
@@ -1307,6 +1317,7 @@ export default interface Resources {
"typeMessage": "Type a message...",
"unreadMessages": "Unread messages",
"untitledSession": "Untitled",
+ "workingStatus": "Working…",
"you": "You"
},
"chatRooms": {
@@ -1434,6 +1445,91 @@ export default interface Resources {
"stoppedTasks_one": "Stopped {{count}} task{{plural}}",
"stoppedTasks_other": "Stopped {{count}} task{{plural}}"
},
+ "commandCenter": {
+ "areaPending": "This area renders once metrics data is available.",
+ "controls": {
+ "concurrency": {
+ "description": "Tune live scheduler capacity.",
+ "error": "Unable to load concurrency settings",
+ "maxConcurrent": "Max concurrent tasks",
+ "maxTriageConcurrent": "Max triage concurrent",
+ "maxWorktrees": "Max worktrees",
+ "title": "Concurrency"
+ },
+ "engine": {
+ "description": "Stopping the engine halts all AI work.",
+ "title": "AI engine"
+ },
+ "heartbeat": {
+ "description": "Pause or resume the scheduling heartbeat.",
+ "disabledByStop": "Start the AI engine before resuming the heartbeat.",
+ "pause": "Pause heartbeat",
+ "resume": "Resume heartbeat",
+ "title": "Heartbeat control"
+ },
+ "orgChart": {
+ "description": "Read-only view of the running agent hierarchy.",
+ "empty": "No agents are reporting in yet.",
+ "error": "Unable to load org chart",
+ "loading": "Loading org chart…",
+ "title": "Agent org chart"
+ },
+ "status": {
+ "error": "Unable to load live scheduler status",
+ "lastActivity": "Last activity",
+ "loading": "Loading…",
+ "maxConcurrent": "Max concurrent",
+ "noActivity": "No recent activity",
+ "paused": "Paused",
+ "ready": "Ready",
+ "running": "Running",
+ "saveError": "Save failed",
+ "saved": "Saved",
+ "saving": "Saving…",
+ "stopped": "Stopped"
+ },
+ "theme": {
+ "description": "Switch the dashboard theme with live color previews.",
+ "title": "Theme"
+ },
+ "title": "Operator controls"
+ },
+ "empty": "No usage data yet. Run some agents to populate the Command Center.",
+ "heading": "Command Center",
+ "loading": "Loading command center...",
+ "overview": {
+ "activeNodes": "Active nodes",
+ "autonomy": "Autonomy ratio",
+ "liveStrip": "Live activity",
+ "liveStripPending": "Live Mission Control loads with active sessions.",
+ "openSignals": "Open signals",
+ "tasksDone": "Tasks done",
+ "tokensCost": "Tokens & cost",
+ "uniqueModels": "Unique models"
+ },
+ "range": {
+ "allTime": "All time",
+ "custom": "Custom range",
+ "dialogLabel": "Select date range",
+ "from": "From",
+ "invalidRange": "Start date must be on or before end date",
+ "last24h": "Last 24h",
+ "last30d": "Last 30 days",
+ "last7d": "Last 7 days",
+ "to": "To"
+ },
+ "tablistLabel": "Command Center sections",
+ "tabs": {
+ "activity": "Activity",
+ "ecosystem": "Ecosystem",
+ "missionControl": "Mission Control",
+ "overview": "Overview",
+ "productivity": "Productivity",
+ "reliability": "Reliability",
+ "tokens": "Tokens",
+ "tools": "Tools"
+ }
+ },
"comments": {
"addButton": "Add Comment",
"addedSuccess": "Comment added",
@@ -2412,6 +2508,7 @@ export default interface Resources {
"browseFiles": "Browse Files",
"chatView": "Chat view",
"closeSearch": "Close search",
+ "commandCenterView": "Command Center",
"createTaskWithPlanning": "Create a task with AI planning",
"devServerView": "Dev Server",
"documentsView": "Documents view",
@@ -3433,7 +3530,8 @@ export default interface Resources {
"low": "Low",
"medium": "Medium",
"minimal": "Minimal",
- "off": "Off"
+ "off": "Off",
+ "xhigh": "Very High"
},
"placeholders": {
"selectExecutor": "Select executor model…",
@@ -3458,6 +3556,7 @@ export default interface Resources {
"automation": "Automation",
"chat": "Chat",
"chatUnreadAriaLabel": "Unread chat response",
+ "commandCenter": "Command Center",
"devServer": "Dev Server",
"documents": "Documents",
"evals": "Evals",
@@ -4910,6 +5009,17 @@ export default interface Resources {
"title": "Secrets",
"valueLabel": "Value"
},
+ "selectionComment": {
+ "addComment": "Add comment",
+ "addCommentAria": "Add a comment to the selected text and send it to a new task",
+ "cancel": "Cancel",
+ "commentAria": "Comment for the new task",
+ "commentPlaceholder": "Describe the task this snippet should become…",
+ "dialogAria": "Comment on selected text",
+ "selectedSnippet": "Selected snippet",
+ "sendToNewTask": "Send to new task",
+ "title": "Comment on selection"
+ },
"sessionBanner": {
"cli": {
"advance": "Advance",
@@ -5632,8 +5742,8 @@ export default interface Resources {
"takeControl": "Take Control",
"takingControl": "Taking control...",
"titleLabel": "Title",
- "waitingForThinking": "Waiting for AI progress updates...",
- "untitled": "Untitled"
+ "untitled": "Untitled",
+ "waitingForThinking": "Waiting for AI progress updates..."
},
"syncLog": {
"entryCount_one": "{{count}} entry",
@@ -6315,6 +6425,7 @@ export default interface Resources {
"thinkingMedium": "Medium",
"thinkingMinimal": "Minimal",
"thinkingOff": "Off",
+ "thinkingXhigh": "Very High",
"titleLabel": "Title",
"titlePlaceholder": "Task title",
"useDropdown": "Use dropdown",
@@ -6916,6 +7027,7 @@ export default interface Resources {
"cycleBlocked": "That connection would create a cycle — only rework edges inside a for-each template may loop back",
"deleteEdge": "Delete edge",
"deleteNode": "Delete node",
+ "duplicateBlocked": "That connection already exists",
"edgeCondition": "Condition",
"edgeConditionLabel": "Condition: {{condition}}",
"edgeInspector": "Edge",
@@ -6945,6 +7057,9 @@ export default interface Resources {
"joinMode": "Join mode",
"joinQuorum": "Quorum (n)",
"mergeBoundaryNote": "Steps before this marker run pre-merge; steps after run post-merge.",
+ "mobileConnect": "Connect",
+ "mobileConnectChooseTarget": "Choose a target…",
+ "mobileConnectTarget": "Target node",
"parseArtifact": "Artifact",
"parseParser": "Parser",
"quorumN": "Quorum count (n)",
@@ -6960,6 +7075,9 @@ export default interface Resources {
"reviewPlan": "Plan review",
"reviewType": "Review type",
"splitNote": "Branches run concurrently from this node. Execute and merge seams are not allowed inside a branch.",
+ "startEntryColumn": "Entry column",
+ "startEntryColumnAuto": "— Auto (first column)",
+ "startNote": "The start node marks where a task enters the workflow.",
"stepExecuteLabel": "Step execute",
"summaryAwaitInput": "Waits for user input",
"summaryCodeDefault": "TypeScript",