@sideboard-ai/core 0.1.41 → 0.1.43

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.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;
@@ -2001,7 +2060,12 @@ declare class Orchestrator {
2001
2060
  createChatTab(input: {
2002
2061
  fromThreadId: string;
2003
2062
  agent?: Thread['agent'];
2063
+ model?: string | null;
2064
+ autonomy?: Thread['autonomy'];
2065
+ effort?: Thread['effort'];
2066
+ fast?: boolean;
2004
2067
  title?: string;
2068
+ attachments?: Thread['attachments'];
2005
2069
  }): Thread;
2006
2070
  forkChatTab(input: {
2007
2071
  threadId: string;
@@ -2045,6 +2109,7 @@ declare function startOrchestration(opts: {
2045
2109
  repoPath?: string;
2046
2110
  autonomy?: Thread['autonomy'];
2047
2111
  model?: string | null;
2112
+ effort?: Thread['effort'];
2048
2113
  fast?: boolean;
2049
2114
  planMode?: boolean;
2050
2115
  attachments?: Thread['attachments'];
@@ -2220,6 +2285,8 @@ interface IpcApi {
2220
2285
  updateDefaultsSettings(patch: {
2221
2286
  agent?: AgentKind | null;
2222
2287
  model?: string | null;
2288
+ effort?: ThinkingEffort | 'normal' | null;
2289
+ fast?: boolean | null;
2223
2290
  }): Promise<AppSettings>;
2224
2291
  /** Machine-global GitHub status via `gh`. */
2225
2292
  getGitHubStatus(): Promise<GitHubStatus>;
@@ -2287,6 +2354,7 @@ interface IpcApi {
2287
2354
  repoPath?: string;
2288
2355
  autonomy?: Autonomy;
2289
2356
  model?: string | null;
2357
+ effort?: ThinkingEffort;
2290
2358
  fast?: boolean;
2291
2359
  planMode?: boolean;
2292
2360
  attachments?: ThreadAttachment[];
@@ -2296,6 +2364,7 @@ interface IpcApi {
2296
2364
  agent: AgentKind;
2297
2365
  autonomy?: Autonomy;
2298
2366
  model?: string | null;
2367
+ effort?: ThinkingEffort;
2299
2368
  fast?: boolean;
2300
2369
  planMode?: boolean;
2301
2370
  attachments?: ThreadAttachment[];
@@ -2677,4 +2746,4 @@ declare function writeInjectedMcpConfig(opts: {
2677
2746
  includeBrightsy?: boolean;
2678
2747
  }): Promise<string | null>;
2679
2748
 
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 };
2749
+ 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, 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, 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, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, 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.js CHANGED
@@ -102,14 +102,14 @@ import {
102
102
  withAgentInstructions,
103
103
  worktreeCleanupSettings,
104
104
  writeWorktreeFile
105
- } from "./chunk-WD35X6U5.js";
105
+ } from "./chunk-AGU52GTV.js";
106
106
  import {
107
107
  addWorkspace,
108
108
  ensureWorkspace,
109
109
  listWorkspaces,
110
110
  removeWorkspace,
111
111
  syncWorkspacesFromThreads
112
- } from "./chunk-44LYDJFB.js";
112
+ } from "./chunk-FUCEOJFO.js";
113
113
  import {
114
114
  CLOUD_COORDINATOR_BUSY_REPLY,
115
115
  CLOUD_COORDINATOR_STOPPED_REPLY,
@@ -129,7 +129,7 @@ import {
129
129
  orchestratorSessionPoisonedByBuiltins,
130
130
  parseForceStopMessage,
131
131
  takenTeamSlugsForOrchestration
132
- } from "./chunk-6TZSJMXF.js";
132
+ } from "./chunk-X6P2QVRJ.js";
133
133
  import {
134
134
  COORDINATOR_TOOL_PLAYBOOK,
135
135
  coordinatorSystemPrompt,
@@ -137,7 +137,7 @@ import {
137
137
  enrichWorkspacesWithGithub,
138
138
  ensureGlobalCoordinatorCwd,
139
139
  formatWorkspaceInventory
140
- } from "./chunk-UPMGXM4X.js";
140
+ } from "./chunk-Z2BQMXVM.js";
141
141
  import {
142
142
  BRIGHTSY_MCP_ALLOWED_TOOLS,
143
143
  MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS,
@@ -177,7 +177,7 @@ import {
177
177
  resolveCursorModelId,
178
178
  sanitizeMcpServerName,
179
179
  writeInjectedMcpConfig
180
- } from "./chunk-SX2R2PCE.js";
180
+ } from "./chunk-VC7NORFX.js";
181
181
  import {
182
182
  brightsyConfigPath,
183
183
  brightsyMcpServerName,
@@ -210,6 +210,8 @@ import {
210
210
  claudeUserSettingsPath,
211
211
  deleteBranchOnPurgeEnabled,
212
212
  getDefaultAgent,
213
+ getDefaultEffort,
214
+ getDefaultFast,
213
215
  getDefaultModel,
214
216
  getIssueSource,
215
217
  getLinearApiKey,
@@ -227,7 +229,7 @@ import {
227
229
  updateClaudeSettings,
228
230
  updateDefaultsSettings,
229
231
  updateIntegrationsSettings
230
- } from "./chunk-YZ23S32T.js";
232
+ } from "./chunk-FSIK442J.js";
231
233
  import {
232
234
  FAMOUS_SOCCER_TEAMS,
233
235
  allocateTeamName,
@@ -276,7 +278,7 @@ import {
276
278
  worktreeDisplayLabel,
277
279
  worktreeDisplayLabelForGroup,
278
280
  worktreeNameFromPath
279
- } from "./chunk-VA2U5EQH.js";
281
+ } from "./chunk-7PCTK4WO.js";
280
282
  import {
281
283
  appendMessage,
282
284
  createEmptyThread,
@@ -285,11 +287,20 @@ import {
285
287
  listThreads,
286
288
  normalizeThread,
287
289
  readThread,
290
+ resolveThreadEffort,
288
291
  setStatus,
289
292
  updateThread,
290
293
  withThreadLock,
291
294
  writeThread
292
- } from "./chunk-5UIKSPDD.js";
295
+ } from "./chunk-ENSD62HW.js";
296
+ import {
297
+ THINKING_EFFORTS,
298
+ isThinkingEffort,
299
+ nextThinkingEffort,
300
+ normalizeThinkingEffort,
301
+ thinkingEffortBars,
302
+ thinkingEffortLabel
303
+ } from "./chunk-77WWLBCI.js";
293
304
  import {
294
305
  appDataDir,
295
306
  getRepoSetupInfo,
@@ -798,6 +809,7 @@ export {
798
809
  PLAN_MODE_INSTRUCTION,
799
810
  SIDEBOARD_FORCE_STOP,
800
811
  SIDEBOARD_MCP_ALLOWED_TOOLS,
812
+ THINKING_EFFORTS,
801
813
  addWorkspace,
802
814
  adoptThread,
803
815
  allAdapters,
@@ -904,6 +916,8 @@ export {
904
916
  getAgentSetupInfo,
905
917
  getBrightsySession,
906
918
  getDefaultAgent,
919
+ getDefaultEffort,
920
+ getDefaultFast,
907
921
  getDefaultModel,
908
922
  getDefaultRunScript,
909
923
  getDiff,
@@ -948,6 +962,7 @@ export {
948
962
  isOrchestratorThread,
949
963
  isPidAlive,
950
964
  isPlaceholderBranch,
965
+ isThinkingEffort,
951
966
  listAgentSetupInfo,
952
967
  listBranchCommits,
953
968
  listBranches,
@@ -985,7 +1000,9 @@ export {
985
1000
  mergePr,
986
1001
  mergeUsage,
987
1002
  nextPastedTextName,
1003
+ nextThinkingEffort,
988
1004
  normalizeParseResult,
1005
+ normalizeThinkingEffort,
989
1006
  normalizeThread,
990
1007
  normalizeTurnInput,
991
1008
  normalizeWorktreePath,
@@ -1024,6 +1041,7 @@ export {
1024
1041
  resolvePrSelector,
1025
1042
  resolveRepoRoot,
1026
1043
  resolveThreadDefaults,
1044
+ resolveThreadEffort,
1027
1045
  resolveWorktreeStartPoint,
1028
1046
  run,
1029
1047
  runArchiveScript,
@@ -1057,6 +1075,8 @@ export {
1057
1075
  takenTeamSlugsForChatTab,
1058
1076
  takenTeamSlugsForOrchestration,
1059
1077
  taskMessageText,
1078
+ thinkingEffortBars,
1079
+ thinkingEffortLabel,
1060
1080
  threadDisplayLabel,
1061
1081
  threadFilePath,
1062
1082
  threadLockPath,
@@ -431,14 +431,44 @@ var init_paths = __esm({
431
431
  }
432
432
  });
433
433
 
434
+ // src/types/thinking-effort.ts
435
+ function normalizeThinkingEffort(value) {
436
+ if (typeof value !== "string") return null;
437
+ const v = value.trim().toLowerCase();
438
+ if (v === "normal") return "medium";
439
+ if (EFFORT_SET.has(v)) return v;
440
+ return null;
441
+ }
442
+ var THINKING_EFFORTS, EFFORT_SET;
443
+ var init_thinking_effort = __esm({
444
+ "src/types/thinking-effort.ts"() {
445
+ "use strict";
446
+ THINKING_EFFORTS = [
447
+ "low",
448
+ "medium",
449
+ "high",
450
+ "xhigh",
451
+ "max"
452
+ ];
453
+ EFFORT_SET = new Set(THINKING_EFFORTS);
454
+ }
455
+ });
456
+
434
457
  // src/store/thread-store.ts
435
458
  function nowIso() {
436
459
  return (/* @__PURE__ */ new Date()).toISOString();
437
460
  }
461
+ function resolveThreadEffort(raw) {
462
+ const fromField = normalizeThinkingEffort(raw.effort);
463
+ if (fromField) return fromField;
464
+ if (raw.fast) return "low";
465
+ return "high";
466
+ }
438
467
  function normalizeThread(raw) {
439
468
  return {
440
469
  ...raw,
441
470
  model: raw.model ?? null,
471
+ effort: resolveThreadEffort(raw),
442
472
  fast: Boolean(raw.fast),
443
473
  planMode: Boolean(raw.planMode),
444
474
  autonomy: raw.autonomy ?? "default",
@@ -457,6 +487,7 @@ function createEmptyThread(partial) {
457
487
  sessionId: partial.sessionId ?? null,
458
488
  autonomy: partial.autonomy ?? "default",
459
489
  model: partial.model ?? null,
490
+ effort: partial.effort ?? "high",
460
491
  fast: partial.fast ?? false,
461
492
  planMode: partial.planMode ?? false,
462
493
  sourceIsFork: partial.sourceIsFork ?? false,
@@ -564,6 +595,7 @@ var init_thread_store = __esm({
564
595
  import_node_crypto = require("crypto");
565
596
  import_node_fs3 = require("fs");
566
597
  import_proper_lockfile = __toESM(require("proper-lockfile"), 1);
598
+ init_thinking_effort();
567
599
  init_paths();
568
600
  }
569
601
  });
@@ -2590,6 +2622,8 @@ __export(app_settings_exports, {
2590
2622
  claudeUserSettingsPath: () => claudeUserSettingsPath,
2591
2623
  deleteBranchOnPurgeEnabled: () => deleteBranchOnPurgeEnabled,
2592
2624
  getDefaultAgent: () => getDefaultAgent,
2625
+ getDefaultEffort: () => getDefaultEffort,
2626
+ getDefaultFast: () => getDefaultFast,
2593
2627
  getDefaultModel: () => getDefaultModel,
2594
2628
  getIssueSource: () => getIssueSource,
2595
2629
  getLinearApiKey: () => getLinearApiKey,
@@ -2663,6 +2697,12 @@ function normalizeDefaults(raw) {
2663
2697
  const model = source.model.trim();
2664
2698
  if (model) out.model = model;
2665
2699
  }
2700
+ if (normalizeThinkingEffort(source.effort)) {
2701
+ out.effort = normalizeThinkingEffort(source.effort);
2702
+ }
2703
+ if (typeof source.fast === "boolean") {
2704
+ out.fast = source.fast;
2705
+ }
2666
2706
  return out;
2667
2707
  }
2668
2708
  function normalizeAdvanced(raw) {
@@ -2841,6 +2881,21 @@ function updateDefaultsSettings(patch) {
2841
2881
  defaults.model = patch.model.trim();
2842
2882
  }
2843
2883
  }
2884
+ if ("effort" in patch) {
2885
+ if (patch.effort == null) {
2886
+ delete defaults.effort;
2887
+ } else {
2888
+ const effort = normalizeThinkingEffort(patch.effort);
2889
+ if (effort) defaults.effort = effort;
2890
+ }
2891
+ }
2892
+ if ("fast" in patch) {
2893
+ if (patch.fast == null) {
2894
+ delete defaults.fast;
2895
+ } else {
2896
+ defaults.fast = Boolean(patch.fast);
2897
+ }
2898
+ }
2844
2899
  return saveAppSettings({ ...current, defaults });
2845
2900
  }
2846
2901
  function getDefaultAgent(settings = loadAppSettings()) {
@@ -2850,10 +2905,18 @@ function getDefaultModel(settings = loadAppSettings()) {
2850
2905
  const model = settings.defaults.model?.trim();
2851
2906
  return model || null;
2852
2907
  }
2908
+ function getDefaultEffort(settings = loadAppSettings()) {
2909
+ return normalizeThinkingEffort(settings.defaults.effort) ?? "high";
2910
+ }
2911
+ function getDefaultFast(settings = loadAppSettings()) {
2912
+ return settings.defaults.fast === true;
2913
+ }
2853
2914
  function resolveThreadDefaults(settings = loadAppSettings()) {
2854
2915
  return {
2855
2916
  agent: getDefaultAgent(settings),
2856
- model: getDefaultModel(settings)
2917
+ model: getDefaultModel(settings),
2918
+ effort: getDefaultEffort(settings),
2919
+ fast: getDefaultFast(settings)
2857
2920
  };
2858
2921
  }
2859
2922
  function isLinearConnected(settings = loadAppSettings()) {
@@ -2977,6 +3040,7 @@ var init_app_settings = __esm({
2977
3040
  import_node_fs5 = require("fs");
2978
3041
  import_node_os4 = require("os");
2979
3042
  import_node_path6 = require("path");
3043
+ init_thinking_effort();
2980
3044
  init_paths();
2981
3045
  HARNESS_ENV_KEYS = {
2982
3046
  claude: "ANTHROPIC_API_KEY",
@@ -3272,6 +3336,7 @@ function createGlobalChat(opts) {
3272
3336
  agent: opts.agent,
3273
3337
  autonomy: opts.autonomy ?? "default",
3274
3338
  model: opts.model ?? null,
3339
+ effort: opts.effort ?? "high",
3275
3340
  fast: Boolean(opts.fast),
3276
3341
  planMode: Boolean(opts.planMode),
3277
3342
  attachments: opts.attachments ?? [],
@@ -4382,9 +4447,8 @@ var init_claude = __esm({
4382
4447
  if (thread.model) {
4383
4448
  args.push("--model", thread.model);
4384
4449
  }
4385
- if (thread.fast) {
4386
- args.push("--effort", "low");
4387
- }
4450
+ const effort = thread.effort ?? (thread.fast ? "low" : "high");
4451
+ args.push("--effort", effort);
4388
4452
  if (sessionId) {
4389
4453
  args.push("--resume", sessionId);
4390
4454
  }
@@ -4972,6 +5036,7 @@ var init_cursor = __esm({
4972
5036
  cwd: thread.worktreePath,
4973
5037
  agentId,
4974
5038
  model: thread.model,
5039
+ effort: thread.effort,
4975
5040
  fast: thread.fast,
4976
5041
  planMode: thread.planMode,
4977
5042
  apiKey
@@ -6703,6 +6768,7 @@ async function createThread(input, onSetupLine) {
6703
6768
  agent: input.agent,
6704
6769
  autonomy: input.autonomy ?? "default",
6705
6770
  model: input.model ?? null,
6771
+ effort: input.effort ?? "high",
6706
6772
  fast: Boolean(input.fast),
6707
6773
  planMode: Boolean(input.planMode),
6708
6774
  attachments: input.attachments ?? [],
@@ -7094,7 +7160,8 @@ function createChatTab(input) {
7094
7160
  ...binding,
7095
7161
  agent: input.agent ?? from.agent,
7096
7162
  model: input.model !== void 0 ? input.model : input.agent && input.agent !== from.agent ? null : from.model,
7097
- fast: from.fast,
7163
+ effort: input.effort !== void 0 ? input.effort : from.effort,
7164
+ fast: input.fast !== void 0 ? Boolean(input.fast) : from.fast,
7098
7165
  planMode: from.planMode,
7099
7166
  autonomy: input.autonomy ?? from.autonomy,
7100
7167
  attachments: input.attachments ?? [],
@@ -7134,6 +7201,7 @@ async function forkThreadWorktree(input, onSetupLine) {
7134
7201
  agent: input.agent ?? from.agent,
7135
7202
  autonomy: from.autonomy,
7136
7203
  model: from.model,
7204
+ effort: from.effort,
7137
7205
  fast: from.fast,
7138
7206
  planMode: from.planMode,
7139
7207
  title: input.title?.trim() || void 0,
@@ -8608,6 +8676,31 @@ function formatWorktreeDirective(thread, opts) {
8608
8676
  "- Prefer a draft PR first: `gh pr create --draft -R <origin-owner/name>` (or update via `gh pr edit -R \u2026`) once the change set is coherent. Resolve `<origin-owner/name>` with `git remote get-url origin` in this worktree \u2014 never from `upstream`. Mark ready for review only when asked. Title/body must reflect the change purpose, not the worktree name."
8609
8677
  );
8610
8678
  }
8679
+ lines.push("");
8680
+ lines.push(
8681
+ "Short git requests from the Sideboard UI are complete instructions \u2014 expand them using the rules above without asking for clarification:"
8682
+ );
8683
+ lines.push(
8684
+ '- "Commit and push." \u2192 commit any uncommitted work with a purpose-stating message, then push to origin (updates an existing PR if one is linked).'
8685
+ );
8686
+ lines.push(
8687
+ '- "Commit, push, and open a draft PR." \u2192 commit, push, then create a draft PR with `gh pr create --draft -R \u2026` (title/body from the change purpose).'
8688
+ );
8689
+ lines.push(
8690
+ '- "Commit, push, and open a PR in the browser." \u2192 commit, push, then `gh pr create --web -R \u2026`.'
8691
+ );
8692
+ lines.push(
8693
+ '- "Fix CI: <name>." \u2192 investigate that failing check, fix it, commit, and push.'
8694
+ );
8695
+ lines.push(
8696
+ '- "Update the branch." / "Fix merge conflicts." \u2192 sync with the PR base (merge or rebase), resolve conflicts carefully, commit, and push until the PR is mergeable.'
8697
+ );
8698
+ lines.push(
8699
+ '- "Address review comments." \u2192 read PR review feedback, make the requested changes, commit, and push.'
8700
+ );
8701
+ lines.push(
8702
+ '- "Merge PR." \u2192 merge this thread\'s open pull request with `gh pr merge` (respect repo defaults / squash vs merge); do not force-push main/master.'
8703
+ );
8611
8704
  return lines.join("\n");
8612
8705
  }
8613
8706
  function formatArtifactDirective() {
@@ -9706,6 +9799,7 @@ var Orchestrator = class {
9706
9799
  const thread = this.requireThread(threadRef);
9707
9800
  const next = {};
9708
9801
  if (patch.autonomy !== void 0) next.autonomy = patch.autonomy;
9802
+ if (patch.effort !== void 0) next.effort = patch.effort;
9709
9803
  if (patch.fast !== void 0) next.fast = patch.fast;
9710
9804
  if (patch.planMode !== void 0) next.planMode = patch.planMode;
9711
9805
  if (patch.model !== void 0) next.model = patch.model;
@@ -1,16 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  startMcpServer
4
- } from "../chunk-WD35X6U5.js";
5
- import "../chunk-44LYDJFB.js";
6
- import "../chunk-6TZSJMXF.js";
7
- import "../chunk-UPMGXM4X.js";
8
- import "../chunk-SX2R2PCE.js";
4
+ } from "../chunk-AGU52GTV.js";
5
+ import "../chunk-FUCEOJFO.js";
6
+ import "../chunk-X6P2QVRJ.js";
7
+ import "../chunk-Z2BQMXVM.js";
8
+ import "../chunk-VC7NORFX.js";
9
9
  import "../chunk-ILQK4P5R.js";
10
10
  import "../chunk-PU27NUO4.js";
11
- import "../chunk-YZ23S32T.js";
12
- import "../chunk-VA2U5EQH.js";
13
- import "../chunk-5UIKSPDD.js";
11
+ import "../chunk-FSIK442J.js";
12
+ import "../chunk-7PCTK4WO.js";
13
+ import "../chunk-ENSD62HW.js";
14
+ import "../chunk-77WWLBCI.js";
14
15
  import "../chunk-M37RITA6.js";
15
16
  import "../chunk-AJ6ROGD7.js";
16
17
 
@@ -6,11 +6,13 @@ import {
6
6
  listThreads,
7
7
  normalizeThread,
8
8
  readThread,
9
+ resolveThreadEffort,
9
10
  setStatus,
10
11
  updateThread,
11
12
  withThreadLock,
12
13
  writeThread
13
- } from "./chunk-5UIKSPDD.js";
14
+ } from "./chunk-ENSD62HW.js";
15
+ import "./chunk-77WWLBCI.js";
14
16
  import "./chunk-M37RITA6.js";
15
17
  export {
16
18
  appendMessage,
@@ -20,6 +22,7 @@ export {
20
22
  listThreads,
21
23
  normalizeThread,
22
24
  readThread,
25
+ resolveThreadEffort,
23
26
  setStatus,
24
27
  updateThread,
25
28
  withThreadLock,
@@ -4,11 +4,12 @@ import {
4
4
  listWorkspaces,
5
5
  removeWorkspace,
6
6
  syncWorkspacesFromThreads
7
- } from "./chunk-44LYDJFB.js";
8
- import "./chunk-6TZSJMXF.js";
9
- import "./chunk-UPMGXM4X.js";
10
- import "./chunk-VA2U5EQH.js";
11
- import "./chunk-5UIKSPDD.js";
7
+ } from "./chunk-FUCEOJFO.js";
8
+ import "./chunk-X6P2QVRJ.js";
9
+ import "./chunk-Z2BQMXVM.js";
10
+ import "./chunk-7PCTK4WO.js";
11
+ import "./chunk-ENSD62HW.js";
12
+ import "./chunk-77WWLBCI.js";
12
13
  import "./chunk-M37RITA6.js";
13
14
  import "./chunk-AJ6ROGD7.js";
14
15
  export {
@@ -41,8 +41,9 @@ import {
41
41
  worktreeDisplayLabel,
42
42
  worktreeDisplayLabelForGroup,
43
43
  worktreeNameFromPath
44
- } from "./chunk-VA2U5EQH.js";
45
- import "./chunk-5UIKSPDD.js";
44
+ } from "./chunk-7PCTK4WO.js";
45
+ import "./chunk-ENSD62HW.js";
46
+ import "./chunk-77WWLBCI.js";
46
47
  import "./chunk-M37RITA6.js";
47
48
  import "./chunk-AJ6ROGD7.js";
48
49
  export {