@sideboard-ai/core 0.1.42 → 0.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,6 +1,22 @@
1
1
  import { ResultPromise } from 'execa';
2
2
  import { EventEmitter } from 'node:events';
3
3
 
4
+ /**
5
+ * Agent thinking / reasoning effort.
6
+ * Matches Claude Code `--effort` and Conductor's 5-rung effort chip:
7
+ * low → medium → high → xhigh → max.
8
+ */
9
+ type ThinkingEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
10
+ declare const THINKING_EFFORTS: ThinkingEffort[];
11
+ /** Conductor settings sometimes use `normal` for the mid Claude effort band. */
12
+ declare function normalizeThinkingEffort(value: unknown): ThinkingEffort | null;
13
+ declare function isThinkingEffort(value: unknown): value is ThinkingEffort;
14
+ /** Cycle Low → … → Max → Low (Conductor ⌥T-style). */
15
+ declare function nextThinkingEffort(current: ThinkingEffort): ThinkingEffort;
16
+ /** How many of 5 Conductor-style signal bars are filled. */
17
+ declare function thinkingEffortBars(effort: ThinkingEffort): number;
18
+ declare function thinkingEffortLabel(effort: ThinkingEffort): string;
19
+
4
20
  type AgentKind = 'claude' | 'codex' | 'opencode' | 'brightsy' | 'cursor';
5
21
  type SourceType = 'branch' | 'pr' | 'ticket' | 'orchestration' | 'adopt';
6
22
  type ThreadStatus = 'idle' | 'queued' | 'running' | 'stopped' | 'error' | 'broken' | 'archived';
@@ -67,7 +83,15 @@ interface Thread {
67
83
  agent: AgentKind;
68
84
  /** Agent model alias (e.g. sonnet, opus). null = Auto / CLI default. */
69
85
  model: string | null;
70
- /** Prefer faster/cheaper turns (Claude: --effort low). */
86
+ /**
87
+ * Thinking / reasoning effort (Claude: `--effort`, Cursor: `effort` param).
88
+ * Independent of {@link Thread.fast}.
89
+ */
90
+ effort: ThinkingEffort;
91
+ /**
92
+ * Prefer a faster model variant when the agent supports it (Cursor: `fast` param).
93
+ * Independent of {@link Thread.effort}.
94
+ */
71
95
  fast: boolean;
72
96
  /** Plan-only turns — analyze and plan without editing files (Conductor-style). */
73
97
  planMode: boolean;
@@ -104,6 +128,10 @@ interface CreateChatTabInput {
104
128
  agent?: AgentKind;
105
129
  model?: string | null;
106
130
  autonomy?: Autonomy;
131
+ /** Thinking effort; omit to inherit from source thread. */
132
+ effort?: ThinkingEffort;
133
+ /** Prefer faster model variant; omit to inherit from source thread. */
134
+ fast?: boolean;
107
135
  title?: string;
108
136
  attachments?: ThreadAttachment[];
109
137
  }
@@ -125,6 +153,7 @@ interface ForkThreadWorktreeInput {
125
153
  interface ThreadOptionsPatch {
126
154
  agent?: AgentKind;
127
155
  model?: string | null;
156
+ effort?: ThinkingEffort;
128
157
  fast?: boolean;
129
158
  planMode?: boolean;
130
159
  autonomy?: Autonomy;
@@ -398,6 +427,7 @@ interface CreateThreadInput {
398
427
  autonomy?: Autonomy;
399
428
  /** Claude model id, or Brightsy `agent:` / `model:` target encoding. */
400
429
  model?: string | null;
430
+ effort?: ThinkingEffort;
401
431
  fast?: boolean;
402
432
  planMode?: boolean;
403
433
  /** Attachments available to the first prompt (and subsequent turns). */
@@ -462,12 +492,19 @@ declare const HARNESS_ENV_KEYS: {
462
492
  type HarnessId = keyof typeof HARNESS_ENV_KEYS;
463
493
  /**
464
494
  * Account-level defaults for Create / new chat tabs (Settings → Account).
465
- * Omitted fields fall back to Claude + Auto at runtime.
495
+ * Omitted fields fall back to Claude + Auto + High thinking at runtime.
466
496
  */
467
497
  interface DefaultsAppSettings {
468
498
  agent?: AgentKind;
469
499
  /** Model / Brightsy target id. Empty or omitted = Auto / agent default. */
470
500
  model?: string;
501
+ /** Thinking / reasoning effort. Omitted = High. */
502
+ effort?: ThinkingEffort;
503
+ /**
504
+ * Prefer a faster model variant when supported (Cursor `fast` param).
505
+ * Independent of {@link DefaultsAppSettings.effort}.
506
+ */
507
+ fast?: boolean;
471
508
  }
472
509
  /** Claude Code harness options (executable override + Chrome). */
473
510
  interface ClaudeHarnessSettings {
@@ -579,15 +616,24 @@ declare function updateIntegrationsSettings(patch: {
579
616
  declare function updateDefaultsSettings(patch: {
580
617
  agent?: AgentKind | null;
581
618
  model?: string | null;
619
+ /** Effort level, or Conductor's `normal` (stored as medium). */
620
+ effort?: ThinkingEffort | 'normal' | null;
621
+ fast?: boolean | null;
582
622
  }): AppSettings;
583
623
  /** Default agent for Create / new chats (claude when unset). */
584
624
  declare function getDefaultAgent(settings?: AppSettings): AgentKind;
585
625
  /** Default model id for Create / new chats (`null` = Auto / agent default). */
586
626
  declare function getDefaultModel(settings?: AppSettings): string | null;
587
- /** Resolved Create / new-chat agent + model pair. */
627
+ /** Default thinking effort for Create / new chats (`high` when unset). */
628
+ declare function getDefaultEffort(settings?: AppSettings): ThinkingEffort;
629
+ /** Default fast-mode flag for Create / new chats (`true` = Fast). */
630
+ declare function getDefaultFast(settings?: AppSettings): boolean;
631
+ /** Resolved Create / new-chat agent + model + thinking defaults. */
588
632
  declare function resolveThreadDefaults(settings?: AppSettings): {
589
633
  agent: AgentKind;
590
634
  model: string | null;
635
+ effort: ThinkingEffort;
636
+ fast: boolean;
591
637
  };
592
638
  /** True when Sideboard has a Linear API key stored. */
593
639
  declare function isLinearConnected(settings?: AppSettings): boolean;
@@ -623,8 +669,18 @@ declare function applyAppEnvironment(target?: NodeJS.ProcessEnv, settings?: AppS
623
669
  declare function childEnvWithAppSettings(extra?: Record<string, string | undefined>): NodeJS.ProcessEnv;
624
670
  declare function harnessEnvKey(harness: HarnessId): string | null;
625
671
 
672
+ /**
673
+ * Resolve thinking effort for persisted threads.
674
+ * Legacy threads only had `fast` (which also drove Claude `--effort low`);
675
+ * map that to `effort: 'low'` when `effort` was never stored.
676
+ * Accepts Conductor's `normal` as medium.
677
+ */
678
+ declare function resolveThreadEffort(raw: {
679
+ effort?: unknown;
680
+ fast?: unknown;
681
+ }): ThinkingEffort;
626
682
  declare function normalizeThread(raw: Thread): Thread;
627
- declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'attachments'>>): Thread;
683
+ declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'attachments'>>): Thread;
628
684
  declare function withThreadLock<T>(id: string, fn: () => Promise<T>): Promise<T>;
629
685
  declare function readThread(id: string): Thread | null;
630
686
  declare function writeThread(thread: Thread): void;
@@ -673,6 +729,7 @@ interface CreateGlobalChatOpts {
673
729
  sourceRef?: string;
674
730
  autonomy?: Autonomy;
675
731
  model?: string | null;
732
+ effort?: ThinkingEffort;
676
733
  fast?: boolean;
677
734
  planMode?: boolean;
678
735
  attachments?: ThreadAttachment[];
@@ -1133,6 +1190,8 @@ type CursorTurnRequest = {
1133
1190
  cwd: string;
1134
1191
  agentId?: string | null;
1135
1192
  model?: string | null;
1193
+ /** Reasoning effort (independent of {@link CursorTurnRequest.fast}). */
1194
+ effort?: string | null;
1136
1195
  fast?: boolean;
1137
1196
  planMode?: boolean;
1138
1197
  apiKey?: string;
@@ -1997,11 +2056,21 @@ declare class Orchestrator {
1997
2056
  getPrMeta(threadRef: string): Promise<PrMeta | null>;
1998
2057
  getPrDetails(threadRef: string): Promise<PrDetails | null>;
1999
2058
  setAutonomy(threadRef: string, autonomy: Autonomy): Thread;
2059
+ /**
2060
+ * Open a Review chat tab on a worktree thread (same as the desktop Review button)
2061
+ * and send the merge-readiness prefill.
2062
+ */
2063
+ requestReview(threadRef: string): Promise<Thread>;
2000
2064
  setThreadOptions(threadRef: string, patch: ThreadOptionsPatch): Thread;
2001
2065
  createChatTab(input: {
2002
2066
  fromThreadId: string;
2003
2067
  agent?: Thread['agent'];
2068
+ model?: string | null;
2069
+ autonomy?: Thread['autonomy'];
2070
+ effort?: Thread['effort'];
2071
+ fast?: boolean;
2004
2072
  title?: string;
2073
+ attachments?: Thread['attachments'];
2005
2074
  }): Thread;
2006
2075
  forkChatTab(input: {
2007
2076
  threadId: string;
@@ -2045,11 +2114,36 @@ declare function startOrchestration(opts: {
2045
2114
  repoPath?: string;
2046
2115
  autonomy?: Thread['autonomy'];
2047
2116
  model?: string | null;
2117
+ effort?: Thread['effort'];
2048
2118
  fast?: boolean;
2049
2119
  planMode?: boolean;
2050
2120
  attachments?: Thread['attachments'];
2051
2121
  }): Promise<Thread>;
2052
2122
 
2123
+ /** Worktree-relative path for the editable review prompt (Conductor-style). */
2124
+ declare const REVIEW_REQUEST_PATH = ".sideboard/attachments/Review request.md";
2125
+ declare const REVIEW_REQUEST_NAME = "Review request.md";
2126
+ declare const REVIEW_REQUEST_PREFILL = "Please review the changes in this workspace and recommend whether they are ready to merge.\n\nStart with a **Recommendation**: Approve, Approve with nits, Request changes, or Needs more information \u2014 and say why in 1\u20133 sentences. Then list blocking findings vs nits (findings may be empty).";
2127
+ declare function buildReviewRequestAttachment(content: string): ThreadAttachment;
2128
+ /**
2129
+ * Read an existing custom Review request.md from the worktree if present.
2130
+ * Does not create the file (matches desktop Review button behavior).
2131
+ */
2132
+ declare function readExistingReviewRequestFile(worktreePath: string): string | null;
2133
+ interface RequestReviewResult {
2134
+ /** New Review chat tab. */
2135
+ tab: Thread;
2136
+ /** Worktree thread that was reviewed (source of the tab). */
2137
+ from: Thread;
2138
+ }
2139
+ type SendFn = (threadRef: string, prompt: string) => Promise<Thread>;
2140
+ /**
2141
+ * Mirror the desktop sidebar Review action: open a fresh "Review" chat tab on
2142
+ * the same worktree and send the merge-readiness prefill (attach custom
2143
+ * guidelines file when present).
2144
+ */
2145
+ declare function requestReview(threadRef: string, send: SendFn): Promise<RequestReviewResult>;
2146
+
2053
2147
  type WorkspaceInventoryEntry = Workspace & {
2054
2148
  /** Best-effort GitHub `owner/repo` from remote / gh. */
2055
2149
  githubSlug?: string | null;
@@ -2220,6 +2314,8 @@ interface IpcApi {
2220
2314
  updateDefaultsSettings(patch: {
2221
2315
  agent?: AgentKind | null;
2222
2316
  model?: string | null;
2317
+ effort?: ThinkingEffort | 'normal' | null;
2318
+ fast?: boolean | null;
2223
2319
  }): Promise<AppSettings>;
2224
2320
  /** Machine-global GitHub status via `gh`. */
2225
2321
  getGitHubStatus(): Promise<GitHubStatus>;
@@ -2279,6 +2375,8 @@ interface IpcApi {
2279
2375
  sendQueuedMessageNow(threadRef: string, index: number): Promise<Thread>;
2280
2376
  setAutonomy(threadRef: string, autonomy: Autonomy): Promise<Thread>;
2281
2377
  setThreadOptions(threadRef: string, patch: ThreadOptionsPatch): Promise<Thread>;
2378
+ /** Open a Review chat tab on a worktree thread (merge-readiness). */
2379
+ requestReview(threadRef: string): Promise<Thread>;
2282
2380
  fanOut(threadRefs: string[], prompt: string): Promise<Thread[]>;
2283
2381
  startOrchestration(opts: {
2284
2382
  goal: string;
@@ -2287,6 +2385,7 @@ interface IpcApi {
2287
2385
  repoPath?: string;
2288
2386
  autonomy?: Autonomy;
2289
2387
  model?: string | null;
2388
+ effort?: ThinkingEffort;
2290
2389
  fast?: boolean;
2291
2390
  planMode?: boolean;
2292
2391
  attachments?: ThreadAttachment[];
@@ -2296,6 +2395,7 @@ interface IpcApi {
2296
2395
  agent: AgentKind;
2297
2396
  autonomy?: Autonomy;
2298
2397
  model?: string | null;
2398
+ effort?: ThinkingEffort;
2299
2399
  fast?: boolean;
2300
2400
  planMode?: boolean;
2301
2401
  attachments?: ThreadAttachment[];
@@ -2677,4 +2777,4 @@ declare function writeInjectedMcpConfig(opts: {
2677
2777
  includeBrightsy?: boolean;
2678
2778
  }): Promise<string | null>;
2679
2779
 
2680
- export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type RepoSettings, type RepoSetupInfo, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, type TeamName, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPidAlive, isPlaceholderBranch, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, nextPastedTextName, normalizeParseResult, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, pastedTextStats, permissionMode, previewLand, pushBranch, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveThreadDefaults, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
2780
+ export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isThinkingEffort, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, pastedTextStats, permissionMode, previewLand, pushBranch, readExistingReviewRequestFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,22 @@
1
1
  import { ResultPromise } from 'execa';
2
2
  import { EventEmitter } from 'node:events';
3
3
 
4
+ /**
5
+ * Agent thinking / reasoning effort.
6
+ * Matches Claude Code `--effort` and Conductor's 5-rung effort chip:
7
+ * low → medium → high → xhigh → max.
8
+ */
9
+ type ThinkingEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
10
+ declare const THINKING_EFFORTS: ThinkingEffort[];
11
+ /** Conductor settings sometimes use `normal` for the mid Claude effort band. */
12
+ declare function normalizeThinkingEffort(value: unknown): ThinkingEffort | null;
13
+ declare function isThinkingEffort(value: unknown): value is ThinkingEffort;
14
+ /** Cycle Low → … → Max → Low (Conductor ⌥T-style). */
15
+ declare function nextThinkingEffort(current: ThinkingEffort): ThinkingEffort;
16
+ /** How many of 5 Conductor-style signal bars are filled. */
17
+ declare function thinkingEffortBars(effort: ThinkingEffort): number;
18
+ declare function thinkingEffortLabel(effort: ThinkingEffort): string;
19
+
4
20
  type AgentKind = 'claude' | 'codex' | 'opencode' | 'brightsy' | 'cursor';
5
21
  type SourceType = 'branch' | 'pr' | 'ticket' | 'orchestration' | 'adopt';
6
22
  type ThreadStatus = 'idle' | 'queued' | 'running' | 'stopped' | 'error' | 'broken' | 'archived';
@@ -67,7 +83,15 @@ interface Thread {
67
83
  agent: AgentKind;
68
84
  /** Agent model alias (e.g. sonnet, opus). null = Auto / CLI default. */
69
85
  model: string | null;
70
- /** Prefer faster/cheaper turns (Claude: --effort low). */
86
+ /**
87
+ * Thinking / reasoning effort (Claude: `--effort`, Cursor: `effort` param).
88
+ * Independent of {@link Thread.fast}.
89
+ */
90
+ effort: ThinkingEffort;
91
+ /**
92
+ * Prefer a faster model variant when the agent supports it (Cursor: `fast` param).
93
+ * Independent of {@link Thread.effort}.
94
+ */
71
95
  fast: boolean;
72
96
  /** Plan-only turns — analyze and plan without editing files (Conductor-style). */
73
97
  planMode: boolean;
@@ -104,6 +128,10 @@ interface CreateChatTabInput {
104
128
  agent?: AgentKind;
105
129
  model?: string | null;
106
130
  autonomy?: Autonomy;
131
+ /** Thinking effort; omit to inherit from source thread. */
132
+ effort?: ThinkingEffort;
133
+ /** Prefer faster model variant; omit to inherit from source thread. */
134
+ fast?: boolean;
107
135
  title?: string;
108
136
  attachments?: ThreadAttachment[];
109
137
  }
@@ -125,6 +153,7 @@ interface ForkThreadWorktreeInput {
125
153
  interface ThreadOptionsPatch {
126
154
  agent?: AgentKind;
127
155
  model?: string | null;
156
+ effort?: ThinkingEffort;
128
157
  fast?: boolean;
129
158
  planMode?: boolean;
130
159
  autonomy?: Autonomy;
@@ -398,6 +427,7 @@ interface CreateThreadInput {
398
427
  autonomy?: Autonomy;
399
428
  /** Claude model id, or Brightsy `agent:` / `model:` target encoding. */
400
429
  model?: string | null;
430
+ effort?: ThinkingEffort;
401
431
  fast?: boolean;
402
432
  planMode?: boolean;
403
433
  /** Attachments available to the first prompt (and subsequent turns). */
@@ -462,12 +492,19 @@ declare const HARNESS_ENV_KEYS: {
462
492
  type HarnessId = keyof typeof HARNESS_ENV_KEYS;
463
493
  /**
464
494
  * Account-level defaults for Create / new chat tabs (Settings → Account).
465
- * Omitted fields fall back to Claude + Auto at runtime.
495
+ * Omitted fields fall back to Claude + Auto + High thinking at runtime.
466
496
  */
467
497
  interface DefaultsAppSettings {
468
498
  agent?: AgentKind;
469
499
  /** Model / Brightsy target id. Empty or omitted = Auto / agent default. */
470
500
  model?: string;
501
+ /** Thinking / reasoning effort. Omitted = High. */
502
+ effort?: ThinkingEffort;
503
+ /**
504
+ * Prefer a faster model variant when supported (Cursor `fast` param).
505
+ * Independent of {@link DefaultsAppSettings.effort}.
506
+ */
507
+ fast?: boolean;
471
508
  }
472
509
  /** Claude Code harness options (executable override + Chrome). */
473
510
  interface ClaudeHarnessSettings {
@@ -579,15 +616,24 @@ declare function updateIntegrationsSettings(patch: {
579
616
  declare function updateDefaultsSettings(patch: {
580
617
  agent?: AgentKind | null;
581
618
  model?: string | null;
619
+ /** Effort level, or Conductor's `normal` (stored as medium). */
620
+ effort?: ThinkingEffort | 'normal' | null;
621
+ fast?: boolean | null;
582
622
  }): AppSettings;
583
623
  /** Default agent for Create / new chats (claude when unset). */
584
624
  declare function getDefaultAgent(settings?: AppSettings): AgentKind;
585
625
  /** Default model id for Create / new chats (`null` = Auto / agent default). */
586
626
  declare function getDefaultModel(settings?: AppSettings): string | null;
587
- /** Resolved Create / new-chat agent + model pair. */
627
+ /** Default thinking effort for Create / new chats (`high` when unset). */
628
+ declare function getDefaultEffort(settings?: AppSettings): ThinkingEffort;
629
+ /** Default fast-mode flag for Create / new chats (`true` = Fast). */
630
+ declare function getDefaultFast(settings?: AppSettings): boolean;
631
+ /** Resolved Create / new-chat agent + model + thinking defaults. */
588
632
  declare function resolveThreadDefaults(settings?: AppSettings): {
589
633
  agent: AgentKind;
590
634
  model: string | null;
635
+ effort: ThinkingEffort;
636
+ fast: boolean;
591
637
  };
592
638
  /** True when Sideboard has a Linear API key stored. */
593
639
  declare function isLinearConnected(settings?: AppSettings): boolean;
@@ -623,8 +669,18 @@ declare function applyAppEnvironment(target?: NodeJS.ProcessEnv, settings?: AppS
623
669
  declare function childEnvWithAppSettings(extra?: Record<string, string | undefined>): NodeJS.ProcessEnv;
624
670
  declare function harnessEnvKey(harness: HarnessId): string | null;
625
671
 
672
+ /**
673
+ * Resolve thinking effort for persisted threads.
674
+ * Legacy threads only had `fast` (which also drove Claude `--effort low`);
675
+ * map that to `effort: 'low'` when `effort` was never stored.
676
+ * Accepts Conductor's `normal` as medium.
677
+ */
678
+ declare function resolveThreadEffort(raw: {
679
+ effort?: unknown;
680
+ fast?: unknown;
681
+ }): ThinkingEffort;
626
682
  declare function normalizeThread(raw: Thread): Thread;
627
- declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'attachments'>>): Thread;
683
+ declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'userSetTitle' | 'attachments'>>): Thread;
628
684
  declare function withThreadLock<T>(id: string, fn: () => Promise<T>): Promise<T>;
629
685
  declare function readThread(id: string): Thread | null;
630
686
  declare function writeThread(thread: Thread): void;
@@ -673,6 +729,7 @@ interface CreateGlobalChatOpts {
673
729
  sourceRef?: string;
674
730
  autonomy?: Autonomy;
675
731
  model?: string | null;
732
+ effort?: ThinkingEffort;
676
733
  fast?: boolean;
677
734
  planMode?: boolean;
678
735
  attachments?: ThreadAttachment[];
@@ -1133,6 +1190,8 @@ type CursorTurnRequest = {
1133
1190
  cwd: string;
1134
1191
  agentId?: string | null;
1135
1192
  model?: string | null;
1193
+ /** Reasoning effort (independent of {@link CursorTurnRequest.fast}). */
1194
+ effort?: string | null;
1136
1195
  fast?: boolean;
1137
1196
  planMode?: boolean;
1138
1197
  apiKey?: string;
@@ -1997,11 +2056,21 @@ declare class Orchestrator {
1997
2056
  getPrMeta(threadRef: string): Promise<PrMeta | null>;
1998
2057
  getPrDetails(threadRef: string): Promise<PrDetails | null>;
1999
2058
  setAutonomy(threadRef: string, autonomy: Autonomy): Thread;
2059
+ /**
2060
+ * Open a Review chat tab on a worktree thread (same as the desktop Review button)
2061
+ * and send the merge-readiness prefill.
2062
+ */
2063
+ requestReview(threadRef: string): Promise<Thread>;
2000
2064
  setThreadOptions(threadRef: string, patch: ThreadOptionsPatch): Thread;
2001
2065
  createChatTab(input: {
2002
2066
  fromThreadId: string;
2003
2067
  agent?: Thread['agent'];
2068
+ model?: string | null;
2069
+ autonomy?: Thread['autonomy'];
2070
+ effort?: Thread['effort'];
2071
+ fast?: boolean;
2004
2072
  title?: string;
2073
+ attachments?: Thread['attachments'];
2005
2074
  }): Thread;
2006
2075
  forkChatTab(input: {
2007
2076
  threadId: string;
@@ -2045,11 +2114,36 @@ declare function startOrchestration(opts: {
2045
2114
  repoPath?: string;
2046
2115
  autonomy?: Thread['autonomy'];
2047
2116
  model?: string | null;
2117
+ effort?: Thread['effort'];
2048
2118
  fast?: boolean;
2049
2119
  planMode?: boolean;
2050
2120
  attachments?: Thread['attachments'];
2051
2121
  }): Promise<Thread>;
2052
2122
 
2123
+ /** Worktree-relative path for the editable review prompt (Conductor-style). */
2124
+ declare const REVIEW_REQUEST_PATH = ".sideboard/attachments/Review request.md";
2125
+ declare const REVIEW_REQUEST_NAME = "Review request.md";
2126
+ declare const REVIEW_REQUEST_PREFILL = "Please review the changes in this workspace and recommend whether they are ready to merge.\n\nStart with a **Recommendation**: Approve, Approve with nits, Request changes, or Needs more information \u2014 and say why in 1\u20133 sentences. Then list blocking findings vs nits (findings may be empty).";
2127
+ declare function buildReviewRequestAttachment(content: string): ThreadAttachment;
2128
+ /**
2129
+ * Read an existing custom Review request.md from the worktree if present.
2130
+ * Does not create the file (matches desktop Review button behavior).
2131
+ */
2132
+ declare function readExistingReviewRequestFile(worktreePath: string): string | null;
2133
+ interface RequestReviewResult {
2134
+ /** New Review chat tab. */
2135
+ tab: Thread;
2136
+ /** Worktree thread that was reviewed (source of the tab). */
2137
+ from: Thread;
2138
+ }
2139
+ type SendFn = (threadRef: string, prompt: string) => Promise<Thread>;
2140
+ /**
2141
+ * Mirror the desktop sidebar Review action: open a fresh "Review" chat tab on
2142
+ * the same worktree and send the merge-readiness prefill (attach custom
2143
+ * guidelines file when present).
2144
+ */
2145
+ declare function requestReview(threadRef: string, send: SendFn): Promise<RequestReviewResult>;
2146
+
2053
2147
  type WorkspaceInventoryEntry = Workspace & {
2054
2148
  /** Best-effort GitHub `owner/repo` from remote / gh. */
2055
2149
  githubSlug?: string | null;
@@ -2220,6 +2314,8 @@ interface IpcApi {
2220
2314
  updateDefaultsSettings(patch: {
2221
2315
  agent?: AgentKind | null;
2222
2316
  model?: string | null;
2317
+ effort?: ThinkingEffort | 'normal' | null;
2318
+ fast?: boolean | null;
2223
2319
  }): Promise<AppSettings>;
2224
2320
  /** Machine-global GitHub status via `gh`. */
2225
2321
  getGitHubStatus(): Promise<GitHubStatus>;
@@ -2279,6 +2375,8 @@ interface IpcApi {
2279
2375
  sendQueuedMessageNow(threadRef: string, index: number): Promise<Thread>;
2280
2376
  setAutonomy(threadRef: string, autonomy: Autonomy): Promise<Thread>;
2281
2377
  setThreadOptions(threadRef: string, patch: ThreadOptionsPatch): Promise<Thread>;
2378
+ /** Open a Review chat tab on a worktree thread (merge-readiness). */
2379
+ requestReview(threadRef: string): Promise<Thread>;
2282
2380
  fanOut(threadRefs: string[], prompt: string): Promise<Thread[]>;
2283
2381
  startOrchestration(opts: {
2284
2382
  goal: string;
@@ -2287,6 +2385,7 @@ interface IpcApi {
2287
2385
  repoPath?: string;
2288
2386
  autonomy?: Autonomy;
2289
2387
  model?: string | null;
2388
+ effort?: ThinkingEffort;
2290
2389
  fast?: boolean;
2291
2390
  planMode?: boolean;
2292
2391
  attachments?: ThreadAttachment[];
@@ -2296,6 +2395,7 @@ interface IpcApi {
2296
2395
  agent: AgentKind;
2297
2396
  autonomy?: Autonomy;
2298
2397
  model?: string | null;
2398
+ effort?: ThinkingEffort;
2299
2399
  fast?: boolean;
2300
2400
  planMode?: boolean;
2301
2401
  attachments?: ThreadAttachment[];
@@ -2677,4 +2777,4 @@ declare function writeInjectedMcpConfig(opts: {
2677
2777
  includeBrightsy?: boolean;
2678
2778
  }): Promise<string | null>;
2679
2779
 
2680
- export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type RepoSettings, type RepoSetupInfo, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, type TeamName, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPidAlive, isPlaceholderBranch, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, nextPastedTextName, normalizeParseResult, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, pastedTextStats, permissionMode, previewLand, pushBranch, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveThreadDefaults, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
2780
+ export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isThinkingEffort, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, pastedTextStats, permissionMode, previewLand, pushBranch, readExistingReviewRequestFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };