@sideboard-ai/core 0.1.199 → 0.1.200

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.
Files changed (35) hide show
  1. package/dist/{abletime-3CSCNAXU.js → abletime-345SE3B4.js} +2 -2
  2. package/dist/{abletime-H74RNIKV.js → abletime-KGPD3UUJ.js} +2 -2
  3. package/dist/{agents-BOYOK56K.js → agents-N7WXOGN6.js} +6 -4
  4. package/dist/{agents-AVH44CBS.js → agents-ZRIFDXCB.js} +6 -4
  5. package/dist/{app-settings-MMPLJHWF.js → app-settings-AXCURTZJ.js} +9 -1
  6. package/dist/{app-settings-FMTDH5RD.js → app-settings-V6IHESEQ.js} +9 -1
  7. package/dist/{chunk-DU2ICKLA.js → chunk-5XSDGJMP.js} +23 -9
  8. package/dist/{chunk-CTABTALL.js → chunk-62IMZIIZ.js} +58 -41
  9. package/dist/{chunk-CA7PWMQ7.js → chunk-7AHAABKN.js} +1 -1
  10. package/dist/{chunk-2IQ6W47G.js → chunk-CXFW5LIH.js} +40 -3
  11. package/dist/{chunk-S4EEYOSU.js → chunk-EWDE54OI.js} +2 -2
  12. package/dist/{chunk-HQKGK4KO.js → chunk-ISV5IFH3.js} +40 -3
  13. package/dist/{chunk-QFABSE3Q.js → chunk-NXM45OS3.js} +1 -1
  14. package/dist/{chunk-PPVN3APP.js → chunk-O2DRYD2B.js} +59 -42
  15. package/dist/{chunk-DU4ID3DA.js → chunk-OSPE25A7.js} +1 -1
  16. package/dist/{chunk-BLOKJY4U.js → chunk-PDMNYCPL.js} +2 -2
  17. package/dist/{chunk-PTAMHXBT.js → chunk-PGQGP4FD.js} +1 -1
  18. package/dist/{chunk-KI4YI72Y.js → chunk-PKUPOVKP.js} +23 -9
  19. package/dist/{coordinator-prompt-LB3GA3U4.js → coordinator-prompt-2RWBH6W7.js} +3 -3
  20. package/dist/{coordinator-prompt-ROWPLVQ3.js → coordinator-prompt-AL62H73U.js} +3 -3
  21. package/dist/{global-workspace-C5XKWCRH.js → global-workspace-VAO3BQP5.js} +3 -3
  22. package/dist/{global-workspace-V2A4YKZ6.js → global-workspace-Y5KKGXN7.js} +3 -3
  23. package/dist/index.cjs +113 -29
  24. package/dist/index.d.cts +42 -14
  25. package/dist/index.d.ts +42 -14
  26. package/dist/index.js +18 -8
  27. package/dist/mcp/run-stdio.cjs +87 -24
  28. package/dist/mcp/run-stdio.js +8 -8
  29. package/dist/{orchestrator-AJGDZEAS.js → orchestrator-D2EJ4Z7Z.js} +5 -5
  30. package/dist/{orchestrator-NCGYNVYN.js → orchestrator-DPHIMK44.js} +5 -5
  31. package/dist/{workspaces-GWEKIS3B.js → workspaces-DZZQM745.js} +3 -3
  32. package/dist/{workspaces-WIRJQ6HA.js → workspaces-HEKFQP4B.js} +3 -3
  33. package/dist/{worktree-UI5WJC3A.js → worktree-ENRMJUI3.js} +2 -2
  34. package/dist/{worktree-QA4J75FI.js → worktree-IEUSQ63V.js} +2 -2
  35. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -196,13 +196,13 @@ interface Thread {
196
196
  */
197
197
  agentPid?: number | null;
198
198
  /**
199
- * When set, host auto-retries this orchestration chat after a provider
200
- * session/usage quota reset (ISO timestamp).
199
+ * When set, host auto-retries this chat after a provider session/usage
200
+ * quota reset (ISO timestamp).
201
201
  */
202
202
  quotaResumeAt?: string | null;
203
203
  /**
204
- * Orchestration chat this one was auto-continued from after a session quota
205
- * limit (prevents infinite agent-switch cascades).
204
+ * Chat this one was auto-continued from after a session quota limit
205
+ * (prevents infinite agent-switch cascades).
206
206
  */
207
207
  quotaContinuedFromId?: string | null;
208
208
  }
@@ -762,6 +762,26 @@ declare function formatViewerContextDirective(profile: ResolvedViewerProfile): s
762
762
  /** Short resume reminder — do not dump the full notes every turn. */
763
763
  declare function formatViewerContextReminder(): string;
764
764
 
765
+ /**
766
+ * Settings → Advanced — what to do when a Claude plan window is exhausted
767
+ * or a turn hits a provider session/usage limit. Node-free so the desktop
768
+ * renderer can import it via `@sideboard/usage-on-limit`.
769
+ *
770
+ * - `keep_going` (default): do not interrupt
771
+ * - `confirm`: ask before composer send
772
+ * - `switch_agent`: continue on the configured fallback agent
773
+ * - `wait_reset`: stop sending until the window resets, then retry
774
+ */
775
+ type UsageOnLimit = 'keep_going' | 'confirm' | 'switch_agent' | 'wait_reset';
776
+ declare const USAGE_ON_LIMIT_VALUES: readonly ["keep_going", "confirm", "switch_agent", "wait_reset"];
777
+ declare function isUsageOnLimit(value: unknown): value is UsageOnLimit;
778
+ /** Resolve the unified policy, including legacy Advanced fields. */
779
+ declare function resolveUsageOnLimit(advanced?: {
780
+ usageOnLimit?: unknown;
781
+ confirmClaudeUsageOverLimit?: boolean;
782
+ orchestrationQuotaOnLimit?: string;
783
+ }): UsageOnLimit;
784
+
765
785
  /** Node-free labels for renderer + core. Do not import app-settings from here. */
766
786
  declare const ISSUE_SOURCE_LABELS: {
767
787
  readonly github: "GitHub";
@@ -1020,8 +1040,13 @@ interface AdvancedAppSettings {
1020
1040
  */
1021
1041
  showCost?: boolean;
1022
1042
  /**
1023
- * When a Claude Code plan window is exhausted, ask before sending in
1024
- * Claude / orchestration chats. Default off — turn on in Settings → Advanced.
1043
+ * Unified over-limit policy. Default `keep_going`.
1044
+ * @see UsageOnLimit
1045
+ */
1046
+ usageOnLimit?: UsageOnLimit;
1047
+ /**
1048
+ * @deprecated Prefer {@link AdvancedAppSettings.usageOnLimit} `confirm`.
1049
+ * Still read on load for migration.
1025
1050
  */
1026
1051
  confirmClaudeUsageOverLimit?: boolean;
1027
1052
  /**
@@ -1043,9 +1068,8 @@ interface AdvancedAppSettings {
1043
1068
  /** When true, reconcile auto-removes excess orphan worktrees. */
1044
1069
  autoCleanupOrphans?: boolean;
1045
1070
  /**
1046
- * When an orchestration chat hits a provider session/usage limit:
1047
- * - `switch_agent` (default): continue on {@link AdvancedAppSettings.orchestrationQuotaFallbackAgent} with Auto
1048
- * - `wait_reset`: schedule auto-retry when the limit message’s reset time arrives
1071
+ * @deprecated Prefer {@link AdvancedAppSettings.usageOnLimit}.
1072
+ * Still read on load for migration.
1049
1073
  */
1050
1074
  orchestrationQuotaOnLimit?: OrchestrationQuotaOnLimit;
1051
1075
  /** Agent to continue on after a session limit (default: cursor). Ignored when equal to the limited agent. */
@@ -1325,12 +1349,14 @@ declare function deleteBranchOnPurgeEnabled(settings?: AppSettings): boolean;
1325
1349
  declare function cowboyModeEnabled(settings?: AppSettings): boolean;
1326
1350
  /** Settings → Advanced → Show cost (when available) (default off). */
1327
1351
  declare function showCostEnabled(settings?: AppSettings): boolean;
1328
- /** Settings → Advanced → Confirm send when Claude usage is over the limit (default off). */
1352
+ /** Settings → Advanced → Confirm with user when usage is over the limit. */
1329
1353
  declare function confirmClaudeUsageOverLimitEnabled(settings?: AppSettings): boolean;
1330
1354
  /** Conductor-style opt-in — default off. */
1331
1355
  declare function autoArchiveOnMergeEnabled(settings?: AppSettings): boolean;
1332
1356
  declare function autoCleanupOrphansEnabled(settings?: AppSettings): boolean;
1333
- /** Default: switch to another agent (Auto) when orchestration hits a session limit. */
1357
+ /** Unified over-limit policy (default: keep going). */
1358
+ declare function usageOnLimit(settings?: AppSettings): UsageOnLimit;
1359
+ /** @deprecated Prefer {@link usageOnLimit}. */
1334
1360
  declare function orchestrationQuotaOnLimit(settings?: AppSettings): OrchestrationQuotaOnLimit;
1335
1361
  /** Default fallback agent for orchestration session-limit continue (cursor). */
1336
1362
  declare function orchestrationQuotaFallbackAgent(settings?: AppSettings): AgentKind;
@@ -3278,6 +3304,8 @@ declare function formatClaudeUsageCompact(window: ClaudeUsageWindow): string;
3278
3304
  declare function claudeUsageOverLimitWindows(usage: ClaudePlanUsage | null | undefined): ClaudeUsageWindow[];
3279
3305
  /** Composer confirm copy when Settings → Advanced asks before sending over limit. */
3280
3306
  declare function formatClaudeUsageOverLimitConfirm(windows: ClaudeUsageWindow[], now?: Date): string;
3307
+ /** Composer copy when Settings → Advanced stops send until the window resets. */
3308
+ declare function formatClaudeUsageOverLimitWait(windows: ClaudeUsageWindow[], now?: Date): string;
3281
3309
 
3282
3310
  type FetchLike$1 = (input: string, init?: {
3283
3311
  headers?: Record<string, string>;
@@ -4505,8 +4533,8 @@ declare class Orchestrator {
4505
4533
  private schedulePendingQuotaResumes;
4506
4534
  private resumeAfterQuotaWait;
4507
4535
  /**
4508
- * Host-side continue when an orchestration chat hits a provider session/usage
4509
- * limit (not context size): switch agent (Auto) or wait until reset.
4536
+ * Host-side continue when any chat hits a provider session/usage limit
4537
+ * (not context size): switch agent (Auto) or wait until reset.
4510
4538
  */
4511
4539
  private maybeHandleOrchestrationQuotaFailover;
4512
4540
  /**
@@ -6531,4 +6559,4 @@ declare function pollSlackOutboundWatches(opts?: {
6531
6559
  now?: number;
6532
6560
  }): Promise<void>;
6533
6561
 
6534
- export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CLAUDE_MODEL_CATALOG, CLI_DIR, 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, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunMode, type RunScript, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UpdateScheduledTaskPatch, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, ableTimeDependencyTarget, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
6562
+ export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CLAUDE_MODEL_CATALOG, CLI_DIR, 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, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunMode, type RunScript, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, ableTimeDependencyTarget, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
package/dist/index.js CHANGED
@@ -25,7 +25,7 @@ import {
25
25
  toAbleTimeIssueInfo,
26
26
  updateAbleTimeTask,
27
27
  verifyAbleTimeConnection
28
- } from "./chunk-CA7PWMQ7.js";
28
+ } from "./chunk-7AHAABKN.js";
29
29
  import {
30
30
  AGENT_GIT_ACTIONS,
31
31
  BOARD_COLUMN_DEFS,
@@ -268,7 +268,7 @@ import {
268
268
  worktreeCleanupSettings,
269
269
  wrapReviewSkillMarkdown,
270
270
  writeWorktreeFile
271
- } from "./chunk-PPVN3APP.js";
271
+ } from "./chunk-O2DRYD2B.js";
272
272
  import {
273
273
  LEGACY_PLAN_FILE_REL,
274
274
  PLAN_FILE_NAME,
@@ -316,6 +316,7 @@ import {
316
316
  formatClaudeUsageCompact,
317
317
  formatClaudeUsageFetchedAt,
318
318
  formatClaudeUsageOverLimitConfirm,
319
+ formatClaudeUsageOverLimitWait,
319
320
  formatClaudeUsageReset,
320
321
  formatClaudeUsageResetClock,
321
322
  formatClaudeUsageTooltip,
@@ -387,7 +388,7 @@ import {
387
388
  withEventParentId,
388
389
  withEventsParentId,
389
390
  writeInjectedMcpConfig
390
- } from "./chunk-KI4YI72Y.js";
391
+ } from "./chunk-PKUPOVKP.js";
391
392
  import {
392
393
  CLOUD_COORDINATOR_BUSY_REPLY,
393
394
  CLOUD_COORDINATOR_STOPPED_REPLY,
@@ -430,7 +431,7 @@ import {
430
431
  stageBuffersAsAttachments,
431
432
  syncWorkspacesFromThreads,
432
433
  takenTeamSlugsForOrchestration
433
- } from "./chunk-BLOKJY4U.js";
434
+ } from "./chunk-PDMNYCPL.js";
434
435
  import {
435
436
  FAMOUS_SOCCER_TEAMS,
436
437
  GITHUB_PR_BODY_MAX_CHARS,
@@ -527,7 +528,7 @@ import {
527
528
  worktreeDisplayLabelForGroup,
528
529
  worktreeNameFromPath,
529
530
  worktreeSlugForTicket
530
- } from "./chunk-DU4ID3DA.js";
531
+ } from "./chunk-OSPE25A7.js";
531
532
  import {
532
533
  ATTACHMENTS_DIR,
533
534
  CLI_DIR,
@@ -581,6 +582,7 @@ import {
581
582
  ISSUE_SOURCE_LABELS,
582
583
  ORCHESTRATOR_AGENT_KINDS,
583
584
  PROFILE_NOTES_MAX,
585
+ USAGE_ON_LIMIT_VALUES,
584
586
  appSettingsPath,
585
587
  applyAppEnvironment,
586
588
  assertOrchestratorCapableAgent,
@@ -630,6 +632,7 @@ import {
630
632
  isIssueSourceConnected,
631
633
  isLinearConnected,
632
634
  isOrchestratorCapableAgent,
635
+ isUsageOnLimit,
633
636
  issueSourceLabel,
634
637
  loadAppSettings,
635
638
  maxConcurrentAgents,
@@ -647,6 +650,7 @@ import {
647
650
  resolveNewThreadOptions,
648
651
  resolveOrchestratorDefaults,
649
652
  resolveThreadDefaults,
653
+ resolveUsageOnLimit,
650
654
  resolveVaultKey,
651
655
  resolveViewerProfile,
652
656
  resolveViewerProfileForRepo,
@@ -669,8 +673,9 @@ import {
669
673
  updateIntegrationsSettings,
670
674
  updateOpencodeSettings,
671
675
  updateProjectProfileSettings,
676
+ usageOnLimit,
672
677
  writeViewerContext
673
- } from "./chunk-2IQ6W47G.js";
678
+ } from "./chunk-CXFW5LIH.js";
674
679
  import {
675
680
  stripNestedElectronEnv
676
681
  } from "./chunk-4TR3HZFT.js";
@@ -5119,7 +5124,7 @@ async function startMcpServer() {
5119
5124
  );
5120
5125
  }
5121
5126
  try {
5122
- const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-MMPLJHWF.js");
5127
+ const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-AXCURTZJ.js");
5123
5128
  orch.setMaxConcurrent(maxConcurrentAgents2());
5124
5129
  } catch {
5125
5130
  }
@@ -5434,7 +5439,7 @@ async function startMcpServer() {
5434
5439
  registerConnectedIssueVendorTools(server);
5435
5440
  registerScheduleTools(server);
5436
5441
  const { getCaffeinateHold: getCaffeinateHold2, setCaffeinateHold: setCaffeinateHold2 } = await import("./caffeinate-hold-22VFDPSO.js");
5437
- const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-MMPLJHWF.js");
5442
+ const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-AXCURTZJ.js");
5438
5443
  const accountDefaults = resolveThreadDefaults2();
5439
5444
  const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
5440
5445
  server.tool(
@@ -8487,6 +8492,7 @@ export {
8487
8492
  SlackRelayHub,
8488
8493
  THINKING_EFFORTS,
8489
8494
  THINKING_PART_MAX_CHARS,
8495
+ USAGE_ON_LIMIT_VALUES,
8490
8496
  WORKTREE_ABLETIME_MCP_TOOLS,
8491
8497
  WORKTREE_GITHUB_MCP_TOOLS,
8492
8498
  WORKTREE_LINEAR_MCP_TOOLS,
@@ -8692,6 +8698,7 @@ export {
8692
8698
  formatClaudeUsageCompact,
8693
8699
  formatClaudeUsageFetchedAt,
8694
8700
  formatClaudeUsageOverLimitConfirm,
8701
+ formatClaudeUsageOverLimitWait,
8695
8702
  formatClaudeUsageReset,
8696
8703
  formatClaudeUsageResetClock,
8697
8704
  formatClaudeUsageTooltip,
@@ -8856,6 +8863,7 @@ export {
8856
8863
  isThisProcessDesktopHost,
8857
8864
  isThreadCaffeinated,
8858
8865
  isThreadRecordFile,
8866
+ isUsageOnLimit,
8859
8867
  isWorkspaceScratchPath,
8860
8868
  issueAttachmentForAbleTimeTask,
8861
8869
  issueMatchesAssignee,
@@ -9055,6 +9063,7 @@ export {
9055
9063
  resolveSlackListenMode,
9056
9064
  resolveThreadDefaults,
9057
9065
  resolveThreadEffort,
9066
+ resolveUsageOnLimit,
9058
9067
  resolveVaultKey,
9059
9068
  resolveViewerProfile,
9060
9069
  resolveViewerProfileForRepo,
@@ -9169,6 +9178,7 @@ export {
9169
9178
  updateProjectProfileSettings,
9170
9179
  updateSchedule,
9171
9180
  updateThread,
9181
+ usageOnLimit,
9172
9182
  userClaudeMcpConfigPath,
9173
9183
  userCursorMcpConfigPath,
9174
9184
  userMcpNamesToDisable,
@@ -3478,6 +3478,30 @@ var init_branch_prefix = __esm({
3478
3478
  }
3479
3479
  });
3480
3480
 
3481
+ // src/store/usage-on-limit.ts
3482
+ function isUsageOnLimit(value) {
3483
+ return value === "keep_going" || value === "confirm" || value === "switch_agent" || value === "wait_reset";
3484
+ }
3485
+ function resolveUsageOnLimit(advanced = {}) {
3486
+ if (isUsageOnLimit(advanced.usageOnLimit)) return advanced.usageOnLimit;
3487
+ if (advanced.confirmClaudeUsageOverLimit) return "confirm";
3488
+ if (advanced.orchestrationQuotaOnLimit === "wait_reset") return "wait_reset";
3489
+ if (advanced.orchestrationQuotaOnLimit === "switch_agent") return "switch_agent";
3490
+ return "keep_going";
3491
+ }
3492
+ var USAGE_ON_LIMIT_VALUES;
3493
+ var init_usage_on_limit = __esm({
3494
+ "src/store/usage-on-limit.ts"() {
3495
+ "use strict";
3496
+ USAGE_ON_LIMIT_VALUES = [
3497
+ "keep_going",
3498
+ "confirm",
3499
+ "switch_agent",
3500
+ "wait_reset"
3501
+ ];
3502
+ }
3503
+ });
3504
+
3481
3505
  // src/store/issue-source-labels.ts
3482
3506
  function issueSourceLabel(source) {
3483
3507
  if (source && source in ISSUE_SOURCE_LABELS) {
@@ -3506,6 +3530,7 @@ __export(app_settings_exports, {
3506
3530
  HARNESS_ENV_KEYS: () => HARNESS_ENV_KEYS,
3507
3531
  ISSUE_SOURCE_LABELS: () => ISSUE_SOURCE_LABELS,
3508
3532
  PROFILE_NOTES_MAX: () => PROFILE_NOTES_MAX,
3533
+ USAGE_ON_LIMIT_VALUES: () => USAGE_ON_LIMIT_VALUES,
3509
3534
  appSettingsPath: () => appSettingsPath,
3510
3535
  applyAppEnvironment: () => applyAppEnvironment,
3511
3536
  autoArchiveOnMergeEnabled: () => autoArchiveOnMergeEnabled,
@@ -3552,6 +3577,7 @@ __export(app_settings_exports, {
3552
3577
  isAbleTimeConnected: () => isAbleTimeConnected,
3553
3578
  isIssueSourceConnected: () => isIssueSourceConnected,
3554
3579
  isLinearConnected: () => isLinearConnected,
3580
+ isUsageOnLimit: () => isUsageOnLimit,
3555
3581
  issueSourceLabel: () => issueSourceLabel,
3556
3582
  loadAppSettings: () => loadAppSettings,
3557
3583
  maxConcurrentAgents: () => maxConcurrentAgents,
@@ -3567,6 +3593,7 @@ __export(app_settings_exports, {
3567
3593
  resolveNewThreadOptions: () => resolveNewThreadOptions,
3568
3594
  resolveOrchestratorDefaults: () => resolveOrchestratorDefaults,
3569
3595
  resolveThreadDefaults: () => resolveThreadDefaults,
3596
+ resolveUsageOnLimit: () => resolveUsageOnLimit,
3570
3597
  resolveViewerProfile: () => resolveViewerProfile,
3571
3598
  resolveViewerProfileForRepo: () => resolveViewerProfileForRepo,
3572
3599
  saveAbleTimeConnection: () => saveAbleTimeConnection,
@@ -3586,6 +3613,7 @@ __export(app_settings_exports, {
3586
3613
  updateIntegrationsSettings: () => updateIntegrationsSettings,
3587
3614
  updateOpencodeSettings: () => updateOpencodeSettings,
3588
3615
  updateProjectProfileSettings: () => updateProjectProfileSettings,
3616
+ usageOnLimit: () => usageOnLimit,
3589
3617
  writeViewerContext: () => writeViewerContext
3590
3618
  });
3591
3619
  function emptyPublicIntegrations() {
@@ -3950,6 +3978,9 @@ function normalizeAdvanced(raw) {
3950
3978
  if (typeof source.showCost === "boolean") {
3951
3979
  out.showCost = source.showCost;
3952
3980
  }
3981
+ if (isUsageOnLimit(source.usageOnLimit)) {
3982
+ out.usageOnLimit = source.usageOnLimit;
3983
+ }
3953
3984
  if (typeof source.confirmClaudeUsageOverLimit === "boolean") {
3954
3985
  out.confirmClaudeUsageOverLimit = source.confirmClaudeUsageOverLimit;
3955
3986
  }
@@ -4815,8 +4846,16 @@ function updateAdvancedSettings(patch) {
4815
4846
  if (typeof patch.showCost === "boolean") {
4816
4847
  advanced.showCost = patch.showCost;
4817
4848
  }
4818
- if (typeof patch.confirmClaudeUsageOverLimit === "boolean") {
4849
+ if (isUsageOnLimit(patch.usageOnLimit)) {
4850
+ advanced.usageOnLimit = patch.usageOnLimit;
4851
+ advanced.confirmClaudeUsageOverLimit = patch.usageOnLimit === "confirm";
4852
+ if (patch.usageOnLimit === "switch_agent" || patch.usageOnLimit === "wait_reset") {
4853
+ advanced.orchestrationQuotaOnLimit = patch.usageOnLimit;
4854
+ }
4855
+ } else if (typeof patch.confirmClaudeUsageOverLimit === "boolean") {
4819
4856
  advanced.confirmClaudeUsageOverLimit = patch.confirmClaudeUsageOverLimit;
4857
+ if (patch.confirmClaudeUsageOverLimit) advanced.usageOnLimit = "confirm";
4858
+ else if (advanced.usageOnLimit === "confirm") advanced.usageOnLimit = "keep_going";
4820
4859
  }
4821
4860
  if (typeof patch.autoArchiveOnMerge === "boolean") {
4822
4861
  advanced.autoArchiveOnMerge = patch.autoArchiveOnMerge;
@@ -4881,7 +4920,7 @@ function showCostEnabled(settings = loadAppSettings()) {
4881
4920
  return Boolean(settings.advanced.showCost);
4882
4921
  }
4883
4922
  function confirmClaudeUsageOverLimitEnabled(settings = loadAppSettings()) {
4884
- return Boolean(settings.advanced.confirmClaudeUsageOverLimit);
4923
+ return usageOnLimit(settings) === "confirm";
4885
4924
  }
4886
4925
  function autoArchiveOnMergeEnabled(settings = loadAppSettings()) {
4887
4926
  return Boolean(settings.advanced.autoArchiveOnMerge);
@@ -4889,8 +4928,12 @@ function autoArchiveOnMergeEnabled(settings = loadAppSettings()) {
4889
4928
  function autoCleanupOrphansEnabled(settings = loadAppSettings()) {
4890
4929
  return Boolean(settings.advanced.autoCleanupOrphans);
4891
4930
  }
4931
+ function usageOnLimit(settings = loadAppSettings()) {
4932
+ return resolveUsageOnLimit(settings.advanced);
4933
+ }
4892
4934
  function orchestrationQuotaOnLimit(settings = loadAppSettings()) {
4893
- return settings.advanced.orchestrationQuotaOnLimit ?? "switch_agent";
4935
+ const action = usageOnLimit(settings);
4936
+ return action === "wait_reset" ? "wait_reset" : "switch_agent";
4894
4937
  }
4895
4938
  function orchestrationQuotaFallbackAgent(settings = loadAppSettings()) {
4896
4939
  const preferred = settings.advanced.orchestrationQuotaFallbackAgent;
@@ -5005,6 +5048,8 @@ var init_app_settings = __esm({
5005
5048
  init_private_file();
5006
5049
  init_secret_vault();
5007
5050
  init_branch_prefix();
5051
+ init_usage_on_limit();
5052
+ init_usage_on_limit();
5008
5053
  init_issue_source_labels();
5009
5054
  init_account_profile();
5010
5055
  HARNESS_ENV_KEYS = {
@@ -12215,6 +12260,7 @@ var init_claude_usage_client = __esm({
12215
12260
  import_node_os13 = require("os");
12216
12261
  import_node_path33 = require("path");
12217
12262
  init_run();
12263
+ init_fetch();
12218
12264
  init_app_settings();
12219
12265
  init_claude_usage();
12220
12266
  CLAUDE_USAGE_ERROR_TTL_MS = 5 * 6e4;
@@ -16456,12 +16502,18 @@ var init_fork_worktree = __esm({
16456
16502
 
16457
16503
  // src/orchestrator/quota-failover.ts
16458
16504
  function planOrchestrationQuotaFailover(thread, limitText, opts) {
16459
- if (!isOrchestratorThread(thread)) return null;
16460
16505
  if (!isSessionQuotaLimit(limitText)) return null;
16461
- const onLimit = opts?.onLimit ?? orchestrationQuotaOnLimit();
16506
+ const onLimit = opts?.onLimit ?? usageOnLimit();
16462
16507
  const resumeAt = parseSessionQuotaResetAt(limitText, opts?.now);
16508
+ if (onLimit === "keep_going" || onLimit === "confirm") {
16509
+ return {
16510
+ action: "none",
16511
+ reason: onLimit === "confirm" ? "Settings: confirm with user; no automatic continue." : "Settings: keep going; no automatic continue.",
16512
+ limitText
16513
+ };
16514
+ }
16463
16515
  if (thread.quotaContinuedFromId) {
16464
- if (resumeAt) {
16516
+ if (onLimit === "switch_agent" && resumeAt) {
16465
16517
  return {
16466
16518
  action: "wait_reset",
16467
16519
  reason: "Already continued once; waiting for quota reset instead.",
@@ -16471,7 +16523,7 @@ function planOrchestrationQuotaFailover(thread, limitText, opts) {
16471
16523
  }
16472
16524
  return {
16473
16525
  action: "none",
16474
- reason: "Already continued once; no parseable reset time.",
16526
+ reason: "Already continued once; no further automatic continue.",
16475
16527
  limitText
16476
16528
  };
16477
16529
  }
@@ -16508,8 +16560,19 @@ function buildQuotaHandoffAttachment(from, limitText, fallbackAgent) {
16508
16560
  const text7 = m.text.trim().replace(/\s+/g, " ").slice(0, 280);
16509
16561
  return text7 ? `- ${role}: ${text7}` : null;
16510
16562
  }).filter(Boolean);
16563
+ const orch = isOrchestratorThread(from);
16564
+ const instructions = orch ? [
16565
+ "- Continue fleet orchestration from this handoff.",
16566
+ "- Prefer Sideboard MCP (list_board, list_threads, get_thread, send_to_thread, \u2026) for live status.",
16567
+ "- Leave model Auto unless there is a specific reason to pin one.",
16568
+ `- Do not wait on the limited ${from.agent} account; keep going on ${fallbackAgent}.`
16569
+ ] : [
16570
+ "- Continue this worktree chat from the handoff.",
16571
+ "- Leave model Auto unless there is a specific reason to pin one.",
16572
+ `- Do not wait on the limited ${from.agent} account; keep going on ${fallbackAgent}.`
16573
+ ];
16511
16574
  const body = [
16512
- `# Orchestration handoff`,
16575
+ `# ${orch ? "Orchestration" : "Chat"} handoff`,
16513
16576
  "",
16514
16577
  `Previous chat: ${from.title} (\`${from.id}\`) on **${from.agent}** hit a session/usage limit.`,
16515
16578
  `Limit: ${limitText.trim()}`,
@@ -16525,14 +16588,11 @@ function buildQuotaHandoffAttachment(from, limitText, fallbackAgent) {
16525
16588
  recent.length ? recent.join("\n") : "(none)",
16526
16589
  "",
16527
16590
  `## Instructions`,
16528
- `- Continue fleet orchestration from this handoff.`,
16529
- `- Prefer Sideboard MCP (list_board, list_threads, get_thread, send_to_thread, \u2026) for live status.`,
16530
- `- Leave model Auto unless there is a specific reason to pin one.`,
16531
- `- Do not wait on the limited ${from.agent} account; keep going on ${fallbackAgent}.`
16591
+ ...instructions
16532
16592
  ].join("\n");
16533
16593
  return {
16534
16594
  id: (0, import_node_crypto9.randomUUID)(),
16535
- name: "Orchestration quota handoff.md",
16595
+ name: orch ? "Orchestration quota handoff.md" : "Quota handoff.md",
16536
16596
  kind: "transcript",
16537
16597
  content: body
16538
16598
  };
@@ -16545,12 +16605,15 @@ function createQuotaFailoverChat(from, fallbackAgent, limitText) {
16545
16605
  model: null,
16546
16606
  attachments: [handoff]
16547
16607
  });
16548
- return updateThread(tab.id, {
16549
- parentThreadId: from.id,
16608
+ const patch = {
16550
16609
  quotaContinuedFromId: from.id,
16551
- sourceRef: from.sourceRef,
16552
- sourceType: "orchestration"
16553
- });
16610
+ sourceRef: from.sourceRef
16611
+ };
16612
+ if (isOrchestratorThread(from)) {
16613
+ patch.parentThreadId = from.id;
16614
+ patch.sourceType = "orchestration";
16615
+ }
16616
+ return updateThread(tab.id, patch);
16554
16617
  }
16555
16618
  var import_node_crypto9, QUOTA_CONTINUE_PROMPT, QUOTA_RESUME_PROMPT;
16556
16619
  var init_quota_failover = __esm({
@@ -16563,10 +16626,10 @@ var init_quota_failover = __esm({
16563
16626
  init_thread_store();
16564
16627
  init_chat_tabs();
16565
16628
  QUOTA_CONTINUE_PROMPT = (fromAgent, fallback) => [
16566
- `${fromAgent} hit a session/usage limit. Continue this orchestration on ${fallback} using the attached handoff.`,
16567
- "Call list_board or list_threads for live fleet status, then proceed with the goal. Leave model Auto unless needed."
16629
+ `${fromAgent} hit a session/usage limit. Continue this chat on ${fallback} using the attached handoff.`,
16630
+ "Proceed with the goal. Leave model Auto unless needed."
16568
16631
  ].join(" ");
16569
- QUOTA_RESUME_PROMPT = "Session/usage limit window should have reset. Continue the orchestration from where you left off. Use list_board or list_threads for fleet status.";
16632
+ QUOTA_RESUME_PROMPT = "Session/usage limit window should have reset. Continue this chat from where you left off.";
16570
16633
  }
16571
16634
  });
16572
16635
 
@@ -20083,8 +20146,8 @@ var init_orchestrator = __esm({
20083
20146
  await this.send(threadId, QUOTA_RESUME_PROMPT);
20084
20147
  }
20085
20148
  /**
20086
- * Host-side continue when an orchestration chat hits a provider session/usage
20087
- * limit (not context size): switch agent (Auto) or wait until reset.
20149
+ * Host-side continue when any chat hits a provider session/usage limit
20150
+ * (not context size): switch agent (Auto) or wait until reset.
20088
20151
  */
20089
20152
  async maybeHandleOrchestrationQuotaFailover(threadId, limitText) {
20090
20153
  const thread = findThreadByRef(threadId);
@@ -20097,7 +20160,7 @@ var init_orchestrator = __esm({
20097
20160
  setStatus(threadId, "idle", null);
20098
20161
  appendMessage(threadId, {
20099
20162
  role: "agent",
20100
- text: `Sideboard will auto-retry this orchestration around ${plan.resumeAt.toLocaleString()} when the session limit resets.`,
20163
+ text: `Sideboard will auto-retry this chat around ${plan.resumeAt.toLocaleString()} when the session limit resets.`,
20101
20164
  ts: (/* @__PURE__ */ new Date()).toISOString()
20102
20165
  });
20103
20166
  this.emit({