@sideboard-ai/core 0.1.210 → 0.1.211

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 (31) hide show
  1. package/dist/{agents-G3TFVFBQ.js → agents-A2U3K7VK.js} +4 -4
  2. package/dist/{agents-IQZUN47D.js → agents-GQANI7M5.js} +4 -4
  3. package/dist/{chunk-3S2LDD2F.js → chunk-2PE6SZCM.js} +2 -2
  4. package/dist/{chunk-2R6BZRRB.js → chunk-ERNK7AWM.js} +99 -53
  5. package/dist/{chunk-X5PUFYDJ.js → chunk-GHKFSBES.js} +2 -0
  6. package/dist/{chunk-NDE5RKZP.js → chunk-IA5IPGZI.js} +3 -3
  7. package/dist/{chunk-YYELAUKP.js → chunk-IRCAWYTN.js} +3 -3
  8. package/dist/{chunk-FGTPRMPS.js → chunk-JJ3ONQ4Q.js} +2 -0
  9. package/dist/{chunk-AOQZZA3M.js → chunk-KZUA4QG2.js} +106 -54
  10. package/dist/{chunk-ZZNZX2QW.js → chunk-NRKDRQM3.js} +1 -1
  11. package/dist/{chunk-WX4S775K.js → chunk-VPQXJYIW.js} +1 -1
  12. package/dist/{chunk-ZC664YBJ.js → chunk-WNVQJZ7P.js} +2 -2
  13. package/dist/{coordinator-prompt-PONGPWIP.js → coordinator-prompt-EHRDZ2ZU.js} +3 -3
  14. package/dist/{coordinator-prompt-GCITY3Q5.js → coordinator-prompt-LMTMWCPN.js} +3 -3
  15. package/dist/{global-workspace-LQZLTGFL.js → global-workspace-NG2TBUI5.js} +3 -3
  16. package/dist/{global-workspace-LIZHU4GM.js → global-workspace-RHABXQWB.js} +3 -3
  17. package/dist/index.cjs +101 -40
  18. package/dist/index.d.cts +41 -9
  19. package/dist/index.d.ts +41 -9
  20. package/dist/index.js +18 -5
  21. package/dist/mcp/run-stdio.cjs +88 -40
  22. package/dist/mcp/run-stdio.js +5 -5
  23. package/dist/{orchestrator-G5HELCVT.js → orchestrator-NZO4PVFH.js} +5 -5
  24. package/dist/{orchestrator-ZBUXJCII.js → orchestrator-QMGH4V4K.js} +5 -5
  25. package/dist/{thread-store-KMZRQEPY.js → thread-store-4M6WETL6.js} +1 -1
  26. package/dist/{thread-store-FCWU7Y3X.js → thread-store-MSMBQ3V4.js} +1 -1
  27. package/dist/{workspaces-2XW2DMRG.js → workspaces-FRR6Y4BY.js} +3 -3
  28. package/dist/{workspaces-T6PMQZYQ.js → workspaces-VIUUE4RT.js} +3 -3
  29. package/dist/{worktree-2OEMMFRT.js → worktree-3MEG62KB.js} +2 -2
  30. package/dist/{worktree-5ZGWKKZ6.js → worktree-GKUOHXXB.js} +2 -2
  31. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -202,6 +202,12 @@ interface Thread {
202
202
  * Keeps the chip tray empty after submit while `runTurn` still has the files.
203
203
  */
204
204
  pendingTurnAttachments?: ThreadAttachment[];
205
+ /**
206
+ * Files parked with each queued prompt (same length as `queue`).
207
+ * Remove / reorder / Send now must move these with the text so a later
208
+ * turn does not inherit images from a discarded follow-up.
209
+ */
210
+ queueAttachments?: ThreadAttachment[][];
205
211
  lastError?: string | null;
206
212
  /**
207
213
  * OS pid of the in-flight agent child while status is `running`.
@@ -1469,7 +1475,7 @@ declare function resolveThreadEffort(raw: {
1469
1475
  fast?: unknown;
1470
1476
  }): ThinkingEffort;
1471
1477
  declare function normalizeThread(raw: Thread): Thread;
1472
- declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'prState' | 'prIsDraft' | 'prAuthorLogin' | 'prReviewerLogins' | 'skipAutoArchiveOnMerge' | 'stackId' | 'stackLayer' | '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' | 'prState' | 'prIsDraft' | 'prAuthorLogin' | 'prReviewerLogins' | 'skipAutoArchiveOnMerge' | 'cowboy' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'attachments' | 'pendingTurnAttachments' | 'archivedAt'>>): Thread;
1478
+ declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'prState' | 'prIsDraft' | 'prAuthorLogin' | 'prReviewerLogins' | 'skipAutoArchiveOnMerge' | 'stackId' | 'stackLayer' | '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' | 'prState' | 'prIsDraft' | 'prAuthorLogin' | 'prReviewerLogins' | 'skipAutoArchiveOnMerge' | 'cowboy' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'attachments' | 'pendingTurnAttachments' | 'queueAttachments' | 'archivedAt'>>): Thread;
1473
1479
  declare function withThreadLock<T>(id: string, fn: () => Promise<T>): Promise<T>;
1474
1480
  /** Drop the in-memory thread list (other-process writes, tests, store watcher). */
1475
1481
  declare function invalidateThreadListCache(): void;
@@ -4176,23 +4182,49 @@ declare function persistPendingFileAttachments(worktreePath: string, attachments
4176
4182
  declare function attachmentsFromWorktreePaths(worktreePath: string, relativePaths: string[]): ThreadAttachment[];
4177
4183
 
4178
4184
  /**
4179
- * Move composer staging onto the next user turn and empty the composer.
4180
- * Send must do this immediately — waiting until `runTurn` leaves the image
4181
- * chip in the box (and a refresh between appendMessage and the old clear
4182
- * can put it back).
4185
+ * Move composer staging off the chip tray. Send must do this immediately —
4186
+ * waiting until `runTurn` leaves the image chip in the box (and a refresh
4187
+ * between appendMessage and the old clear can put it back).
4183
4188
  */
4184
4189
  declare function consumeComposerAttachments(thread: {
4185
4190
  attachments: ThreadAttachment[];
4186
- pendingTurnAttachments?: ThreadAttachment[];
4187
4191
  }): {
4188
4192
  attachments: ThreadAttachment[];
4189
- pendingTurnAttachments: ThreadAttachment[];
4193
+ consumed: ThreadAttachment[];
4190
4194
  };
4191
- /** Attachments the next non-continue turn should send, then drop. */
4195
+ /**
4196
+ * Attachments the next non-continue turn should send, then drop.
4197
+ * A parked send snapshot wins. Leftover composer files arrived after send
4198
+ * and belong to the next message — do not steal them.
4199
+ */
4192
4200
  declare function takePendingTurnAttachments(thread: {
4193
4201
  attachments: ThreadAttachment[];
4194
4202
  pendingTurnAttachments?: ThreadAttachment[];
4195
4203
  }): ThreadAttachment[];
4204
+ /** Keep `queueAttachments` the same length as `queue`. Missing slots are empty. */
4205
+ declare function alignQueueAttachments(queueLength: number, existing?: ThreadAttachment[][]): ThreadAttachment[][];
4206
+ declare function appendQueuedItem(queue: string[], queueAttachments: ThreadAttachment[][] | undefined, prompt: string, attachments?: ThreadAttachment[]): {
4207
+ queue: string[];
4208
+ queueAttachments: ThreadAttachment[][];
4209
+ };
4210
+ declare function prependQueuedItem(queue: string[], queueAttachments: ThreadAttachment[][] | undefined, prompt: string, attachments?: ThreadAttachment[]): {
4211
+ queue: string[];
4212
+ queueAttachments: ThreadAttachment[][];
4213
+ };
4214
+ declare function removeQueuedItem(queue: string[], queueAttachments: ThreadAttachment[][] | undefined, index: number): {
4215
+ queue: string[];
4216
+ queueAttachments: ThreadAttachment[][];
4217
+ };
4218
+ declare function moveQueuedItemToFront(queue: string[], queueAttachments: ThreadAttachment[][] | undefined, index: number): {
4219
+ queue: string[];
4220
+ queueAttachments: ThreadAttachment[][];
4221
+ };
4222
+ declare function shiftQueuedItem(queue: string[], queueAttachments: ThreadAttachment[][] | undefined): {
4223
+ prompt: string;
4224
+ attachments: ThreadAttachment[];
4225
+ queue: string[];
4226
+ queueAttachments: ThreadAttachment[][];
4227
+ } | null;
4196
4228
 
4197
4229
  /** Paste this large → attach as a doc chip instead of flooding the composer. */
4198
4230
  declare const PASTE_ATTACH_MIN_CHARS = 1200;
@@ -6782,4 +6814,4 @@ declare function pollSlackOutboundWatches(opts?: {
6782
6814
  now?: number;
6783
6815
  }): Promise<void>;
6784
6816
 
6785
- export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, 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_ABLETIME_OAUTH_CLIENT_ID, 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, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, 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, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, 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, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, 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, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, 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, clampHistoryMaxCount, clampHistoryMaxDays, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, 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, ensureAbleTimeAccessToken, 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, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, 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, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, 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, resolveAbleTimeOAuthHost, 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, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takePendingTurnAttachments, 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 };
6817
+ export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, 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_ABLETIME_OAUTH_CLIENT_ID, 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, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, 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, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, 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, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, 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, clampHistoryMaxCount, clampHistoryMaxDays, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, 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, ensureAbleTimeAccessToken, 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, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, 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, moveQueuedItemToFront, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeQueuedItem, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, 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, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takePendingTurnAttachments, 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
@@ -98,8 +98,10 @@ import {
98
98
  addStackLayerFromThread,
99
99
  adoptThread,
100
100
  agentGitPrompt,
101
+ alignQueueAttachments,
101
102
  allocatePort,
102
103
  allocatePortRange,
104
+ appendQueuedItem,
103
105
  applyCompaction,
104
106
  applyForwardOccupancy,
105
107
  applyPromptCacheTtlEnv,
@@ -237,6 +239,7 @@ import {
237
239
  mentionsPrGoal,
238
240
  mergeSetupOutput,
239
241
  messagesSinceLastBrightsyContextSummary,
242
+ moveQueuedItemToFront,
240
243
  normalizeServiceOrigin,
241
244
  openPrStackLayers,
242
245
  openStackLayer,
@@ -246,6 +249,7 @@ import {
246
249
  parseDurationMs,
247
250
  pendingSlackExternalReplies,
248
251
  pollSlackOutboundWatches,
252
+ prependQueuedItem,
249
253
  previewLand,
250
254
  readExistingReviewRequestFile,
251
255
  readSetupLog,
@@ -257,6 +261,7 @@ import {
257
261
  recordScheduleRun,
258
262
  recordSlackOutboundWatch,
259
263
  releaseDesktopHost,
264
+ removeQueuedItem,
260
265
  requestReview,
261
266
  requireAgent,
262
267
  requireSlackWorkspace,
@@ -276,6 +281,7 @@ import {
276
281
  sameWorktreePath,
277
282
  schedulesPath,
278
283
  setSlackReplyTarget,
284
+ shiftQueuedItem,
279
285
  shouldCompactContext,
280
286
  shouldRefreshReviewRequestTemplate,
281
287
  shouldRemoveWorktreeOnTeardown,
@@ -309,7 +315,7 @@ import {
309
315
  worktreeCleanupSettings,
310
316
  wrapReviewSkillMarkdown,
311
317
  writeWorktreeFile
312
- } from "./chunk-AOQZZA3M.js";
318
+ } from "./chunk-KZUA4QG2.js";
313
319
  import {
314
320
  LEGACY_PLAN_FILE_REL,
315
321
  PLAN_FILE_NAME,
@@ -425,7 +431,7 @@ import {
425
431
  withEventParentId,
426
432
  withEventsParentId,
427
433
  writeInjectedMcpConfig
428
- } from "./chunk-YYELAUKP.js";
434
+ } from "./chunk-IRCAWYTN.js";
429
435
  import {
430
436
  CLOUD_COORDINATOR_BUSY_REPLY,
431
437
  CLOUD_COORDINATOR_STOPPED_REPLY,
@@ -468,7 +474,7 @@ import {
468
474
  stageBuffersAsAttachments,
469
475
  syncWorkspacesFromThreads,
470
476
  takenTeamSlugsForOrchestration
471
- } from "./chunk-3S2LDD2F.js";
477
+ } from "./chunk-2PE6SZCM.js";
472
478
  import {
473
479
  FAMOUS_SOCCER_TEAMS,
474
480
  GITHUB_PR_BODY_MAX_CHARS,
@@ -566,7 +572,7 @@ import {
566
572
  worktreeDisplayLabelForGroup,
567
573
  worktreeNameFromPath,
568
574
  worktreeSlugForTicket
569
- } from "./chunk-ZZNZX2QW.js";
575
+ } from "./chunk-NRKDRQM3.js";
570
576
  import {
571
577
  ATTACHMENTS_DIR,
572
578
  CLI_DIR,
@@ -767,7 +773,7 @@ import {
767
773
  updateThread,
768
774
  withThreadLock,
769
775
  writeThread
770
- } from "./chunk-FGTPRMPS.js";
776
+ } from "./chunk-JJ3ONQ4Q.js";
771
777
  import "./chunk-7J72QJOM.js";
772
778
  import {
773
779
  THINKING_EFFORTS,
@@ -828,6 +834,7 @@ function slimThreadForUiList(thread) {
828
834
  ...thread,
829
835
  attachments: [],
830
836
  pendingTurnAttachments: [],
837
+ queueAttachments: [],
831
838
  messages: slimMessagesForUiList(messages, thread.updatedAt)
832
839
  };
833
840
  }
@@ -8675,6 +8682,7 @@ export {
8675
8682
  addWorkspace,
8676
8683
  adoptThread,
8677
8684
  agentGitPrompt,
8685
+ alignQueueAttachments,
8678
8686
  allAdapters,
8679
8687
  allocatePort,
8680
8688
  allocatePortRange,
@@ -8684,6 +8692,7 @@ export {
8684
8692
  appSettingsPath,
8685
8693
  appendIndexedGitConfig,
8686
8694
  appendMessage,
8695
+ appendQueuedItem,
8687
8696
  applyAgentEvent,
8688
8697
  applyAgentRunnerHeapEnv,
8689
8698
  applyAppEnvironment,
@@ -9126,6 +9135,7 @@ export {
9126
9135
  mergeUsage,
9127
9136
  messagePartParentId,
9128
9137
  messagesSinceLastBrightsyContextSummary,
9138
+ moveQueuedItemToFront,
9129
9139
  nextPastedTextName,
9130
9140
  nextThinkingEffort,
9131
9141
  nonInteractiveGitProcessEnv,
@@ -9180,6 +9190,7 @@ export {
9180
9190
  posixShellSingleQuote,
9181
9191
  preferredCursorCostCents,
9182
9192
  prepareTerminalCommand,
9193
+ prependQueuedItem,
9183
9194
  previewLand,
9184
9195
  promptMentionsBrightsy,
9185
9196
  pushBranch,
@@ -9201,6 +9212,7 @@ export {
9201
9212
  releaseCaffeinateHoldForThread,
9202
9213
  releaseDesktopHost,
9203
9214
  removeBoardPin,
9215
+ removeQueuedItem,
9204
9216
  removeWorkspace,
9205
9217
  removeWorktree,
9206
9218
  repoSlug,
@@ -9284,6 +9296,7 @@ export {
9284
9296
  setStatus,
9285
9297
  setVaultMasterKey,
9286
9298
  settingsSourceLabel,
9299
+ shiftQueuedItem,
9287
9300
  shouldAttachPastedText,
9288
9301
  shouldCompactContext,
9289
9302
  shouldInjectBrightsyMcp,
@@ -873,6 +873,7 @@ function normalizeThread(raw) {
873
873
  agentPid: raw.agentPid ?? null,
874
874
  attachments: Array.isArray(raw.attachments) ? raw.attachments : [],
875
875
  pendingTurnAttachments: Array.isArray(raw.pendingTurnAttachments) ? raw.pendingTurnAttachments : [],
876
+ queueAttachments: Array.isArray(raw.queueAttachments) ? raw.queueAttachments : [],
876
877
  prTitle: raw.prTitle ?? null,
877
878
  prState: raw.prState ?? null,
878
879
  prIsDraft: Boolean(raw.prIsDraft),
@@ -917,6 +918,7 @@ function createEmptyThread(partial) {
917
918
  messages: partial.messages ?? [],
918
919
  attachments: partial.attachments ?? [],
919
920
  pendingTurnAttachments: partial.pendingTurnAttachments ?? [],
921
+ queueAttachments: partial.queueAttachments ?? [],
920
922
  createdAt: ts,
921
923
  updatedAt: ts,
922
924
  archivedAt: typeof partial.archivedAt === "string" && partial.archivedAt.trim() ? partial.archivedAt.trim() : void 0,
@@ -14612,6 +14614,7 @@ function stripArchivedTranscript(thread) {
14612
14614
  ...thread,
14613
14615
  attachments: [],
14614
14616
  pendingTurnAttachments: [],
14617
+ queueAttachments: [],
14615
14618
  messages: [historyRetentionStubMessage(thread)]
14616
14619
  },
14617
14620
  { touch: false }
@@ -19772,24 +19775,56 @@ var init_expand = __esm({
19772
19775
 
19773
19776
  // src/composer/consume-attachments.ts
19774
19777
  function consumeComposerAttachments(thread) {
19775
- if (thread.attachments.length === 0) {
19776
- return {
19777
- attachments: [],
19778
- pendingTurnAttachments: thread.pendingTurnAttachments ?? []
19779
- };
19780
- }
19781
19778
  return {
19782
19779
  attachments: [],
19783
- pendingTurnAttachments: [
19784
- ...thread.pendingTurnAttachments ?? [],
19785
- ...thread.attachments
19786
- ]
19780
+ consumed: [...thread.attachments]
19787
19781
  };
19788
19782
  }
19789
19783
  function takePendingTurnAttachments(thread) {
19790
19784
  const pending = thread.pendingTurnAttachments ?? [];
19791
- if (pending.length === 0 && thread.attachments.length === 0) return [];
19792
- return [...pending, ...thread.attachments];
19785
+ if (pending.length > 0) return [...pending];
19786
+ return thread.attachments.length > 0 ? [...thread.attachments] : [];
19787
+ }
19788
+ function alignQueueAttachments(queueLength, existing) {
19789
+ const next = (existing ?? []).slice(0, queueLength).map((slot) => [...slot ?? []]);
19790
+ while (next.length < queueLength) next.push([]);
19791
+ return next;
19792
+ }
19793
+ function appendQueuedItem(queue, queueAttachments, prompt, attachments = []) {
19794
+ return {
19795
+ queue: [...queue, prompt],
19796
+ queueAttachments: [...alignQueueAttachments(queue.length, queueAttachments), [...attachments]]
19797
+ };
19798
+ }
19799
+ function prependQueuedItem(queue, queueAttachments, prompt, attachments = []) {
19800
+ return {
19801
+ queue: [prompt, ...queue],
19802
+ queueAttachments: [[...attachments], ...alignQueueAttachments(queue.length, queueAttachments)]
19803
+ };
19804
+ }
19805
+ function removeQueuedItem(queue, queueAttachments, index) {
19806
+ const aligned = alignQueueAttachments(queue.length, queueAttachments);
19807
+ return {
19808
+ queue: queue.filter((_, i) => i !== index),
19809
+ queueAttachments: aligned.filter((_, i) => i !== index)
19810
+ };
19811
+ }
19812
+ function moveQueuedItemToFront(queue, queueAttachments, index) {
19813
+ const aligned = alignQueueAttachments(queue.length, queueAttachments);
19814
+ return {
19815
+ queue: [queue[index], ...queue.filter((_, i) => i !== index)],
19816
+ queueAttachments: [aligned[index] ?? [], ...aligned.filter((_, i) => i !== index)]
19817
+ };
19818
+ }
19819
+ function shiftQueuedItem(queue, queueAttachments) {
19820
+ if (queue.length === 0) return null;
19821
+ const aligned = alignQueueAttachments(queue.length, queueAttachments);
19822
+ return {
19823
+ prompt: queue[0],
19824
+ attachments: aligned[0] ?? [],
19825
+ queue: queue.slice(1),
19826
+ queueAttachments: aligned.slice(1)
19827
+ };
19793
19828
  }
19794
19829
  var init_consume_attachments = __esm({
19795
19830
  "src/composer/consume-attachments.ts"() {
@@ -21474,9 +21509,9 @@ var init_orchestrator = __esm({
21474
21509
  if (!thread || thread.status === "archived") return;
21475
21510
  this.crashContinued.add(threadId);
21476
21511
  const prompt = formatAgentErrorContinuePrompt(opts.detail);
21477
- const queue = [prompt, ...thread.queue];
21478
- updateThread(threadId, { queue });
21479
- this.emit({ type: "queue_changed", threadId, queue });
21512
+ const next = prependQueuedItem(thread.queue, thread.queueAttachments, prompt);
21513
+ updateThread(threadId, next);
21514
+ this.emit({ type: "queue_changed", threadId, queue: next.queue });
21480
21515
  this.haltDrain.delete(threadId);
21481
21516
  }
21482
21517
  /**
@@ -21505,9 +21540,9 @@ var init_orchestrator = __esm({
21505
21540
  }
21506
21541
  if (decision.action === "nudge") this.jobContinueNudged.add(threadId);
21507
21542
  else this.jobContinueCount.set(threadId, (this.jobContinueCount.get(threadId) ?? 0) + 1);
21508
- const queue = [decision.prompt, ...thread.queue];
21509
- updateThread(threadId, { queue });
21510
- this.emit({ type: "queue_changed", threadId, queue });
21543
+ const next = prependQueuedItem(thread.queue, thread.queueAttachments, decision.prompt);
21544
+ updateThread(threadId, next);
21545
+ this.emit({ type: "queue_changed", threadId, queue: next.queue });
21511
21546
  this.haltDrain.delete(threadId);
21512
21547
  }
21513
21548
  getThreads(includeArchived = false) {
@@ -21615,18 +21650,22 @@ var init_orchestrator = __esm({
21615
21650
  throw new Error(`Thread is archived: ${thread.id}`);
21616
21651
  }
21617
21652
  const followUp = resolveSendFollowUp(current, opts?.followUp);
21618
- const queue = [...current.queue, prompt];
21653
+ const consumed = consumeComposerAttachments(current);
21654
+ const queued = appendQueuedItem(
21655
+ current.queue,
21656
+ current.queueAttachments,
21657
+ prompt,
21658
+ consumed.consumed
21659
+ );
21619
21660
  this.crashContinued.delete(thread.id);
21620
21661
  this.jobContinueCount.delete(thread.id);
21621
21662
  this.jobContinueNudged.delete(thread.id);
21622
21663
  this.haltDrain.delete(thread.id);
21623
21664
  const inFlight = this.activeTurns.has(thread.id) || this.startingTurns.has(thread.id) || current.status === "running";
21624
21665
  shouldSteer = followUp === "steer" && (inFlight || current.queue.length > 0);
21625
- const patch = { queue };
21626
- if (current.attachments.length > 0) {
21627
- const consumed = consumeComposerAttachments(current);
21666
+ const patch = queued;
21667
+ if (consumed.consumed.length > 0) {
21628
21668
  patch.attachments = consumed.attachments;
21629
- patch.pendingTurnAttachments = consumed.pendingTurnAttachments;
21630
21669
  }
21631
21670
  if (!inFlight) patch.status = "queued";
21632
21671
  const pid = current.agentPid;
@@ -21634,7 +21673,7 @@ var init_orchestrator = __esm({
21634
21673
  patch.agentPid = null;
21635
21674
  }
21636
21675
  updateThread(thread.id, patch);
21637
- this.emit({ type: "queue_changed", threadId: thread.id, queue });
21676
+ this.emit({ type: "queue_changed", threadId: thread.id, queue: queued.queue });
21638
21677
  if (!inFlight) {
21639
21678
  this.emit({ type: "status_changed", threadId: thread.id, status: "queued" });
21640
21679
  }
@@ -21676,14 +21715,17 @@ var init_orchestrator = __esm({
21676
21715
  return withThreadLock(thread.id, async () => {
21677
21716
  const current = this.requireThread(thread.id);
21678
21717
  if (index < 0 || index >= current.queue.length) return current;
21679
- const queue = current.queue.filter((_, i) => i !== index);
21680
- const stillQueued = queue.length > 0;
21718
+ const removed = removeQueuedItem(current.queue, current.queueAttachments, index);
21719
+ const stillQueued = removed.queue.length > 0;
21681
21720
  const inFlight = this.activeTurns.has(thread.id) || this.startingTurns.has(thread.id);
21682
21721
  updateThread(thread.id, {
21683
- queue,
21722
+ ...removed,
21723
+ // Old sends parked on pendingTurnAttachments; drop that bag when the
21724
+ // follow-up that owned it is gone so a later turn cannot inherit it.
21725
+ ...stillQueued ? {} : { pendingTurnAttachments: [] },
21684
21726
  status: !stillQueued && !inFlight && current.status === "queued" ? "idle" : current.status
21685
21727
  });
21686
- this.emit({ type: "queue_changed", threadId: thread.id, queue });
21728
+ this.emit({ type: "queue_changed", threadId: thread.id, queue: removed.queue });
21687
21729
  const next = this.requireThread(thread.id);
21688
21730
  this.emit({ type: "status_changed", threadId: thread.id, status: next.status });
21689
21731
  return next;
@@ -21699,12 +21741,10 @@ var init_orchestrator = __esm({
21699
21741
  const promoted = await withThreadLock(thread.id, async () => {
21700
21742
  const current2 = this.requireThread(thread.id);
21701
21743
  if (index < 0 || index >= current2.queue.length) return false;
21702
- const item = current2.queue[index];
21703
- const rest = current2.queue.filter((_, i) => i !== index);
21704
- const queue = [item, ...rest];
21744
+ const next = moveQueuedItemToFront(current2.queue, current2.queueAttachments, index);
21705
21745
  this.haltDrain.delete(thread.id);
21706
- updateThread(thread.id, { queue });
21707
- this.emit({ type: "queue_changed", threadId: thread.id, queue });
21746
+ updateThread(thread.id, next);
21747
+ this.emit({ type: "queue_changed", threadId: thread.id, queue: next.queue });
21708
21748
  return true;
21709
21749
  });
21710
21750
  if (!promoted) return this.requireThread(thread.id);
@@ -21759,11 +21799,15 @@ var init_orchestrator = __esm({
21759
21799
  }
21760
21800
  continue;
21761
21801
  }
21762
- const prompt = thread.queue[0];
21763
- const remaining = thread.queue.slice(1);
21764
- updateThread(threadId, { queue: remaining });
21765
- this.emit({ type: "queue_changed", threadId, queue: remaining });
21766
- await this.runTurn(threadId, prompt);
21802
+ const shifted = shiftQueuedItem(thread.queue, thread.queueAttachments);
21803
+ if (!shifted) break;
21804
+ updateThread(threadId, {
21805
+ queue: shifted.queue,
21806
+ queueAttachments: shifted.queueAttachments,
21807
+ ...shifted.attachments.length > 0 ? { pendingTurnAttachments: shifted.attachments } : {}
21808
+ });
21809
+ this.emit({ type: "queue_changed", threadId, queue: shifted.queue });
21810
+ await this.runTurn(threadId, shifted.prompt);
21767
21811
  }
21768
21812
  } finally {
21769
21813
  this.draining.delete(threadId);
@@ -21808,6 +21852,7 @@ var init_orchestrator = __esm({
21808
21852
  thread = this.requireThread(threadId);
21809
21853
  }
21810
21854
  const autoContinue = isJobContinuePrompt(prompt) || prompt.trim().startsWith("The previous agent process ended before it finished.");
21855
+ const parkedSnapshot = thread.pendingTurnAttachments ?? [];
21811
21856
  const parked = takePendingTurnAttachments(thread);
21812
21857
  const sentAttachments = !autoContinue && parked.length > 0 ? parked : void 0;
21813
21858
  appendMessage(threadId, {
@@ -21877,7 +21922,10 @@ var init_orchestrator = __esm({
21877
21922
  expandedPrompt
21878
21923
  ].filter(Boolean).join("\n\n");
21879
21924
  if (!autoContinue && sentAttachments) {
21880
- updateThread(threadId, { attachments: [], pendingTurnAttachments: [] });
21925
+ updateThread(
21926
+ threadId,
21927
+ parkedSnapshot.length > 0 ? { pendingTurnAttachments: [] } : { attachments: [], pendingTurnAttachments: [] }
21928
+ );
21881
21929
  }
21882
21930
  const adapter = getAdapter(thread.agent);
21883
21931
  const resolved = await adapter.resolveSessionId(thread.worktreePath, thread.sessionId);
@@ -22293,7 +22341,7 @@ var init_orchestrator = __esm({
22293
22341
  }
22294
22342
  if (clearQueue && thread.queue.length > 0) {
22295
22343
  this.haltDrain.delete(thread.id);
22296
- updateThread(thread.id, { queue: [] });
22344
+ updateThread(thread.id, { queue: [], queueAttachments: [] });
22297
22345
  this.emit({ type: "queue_changed", threadId: thread.id, queue: [] });
22298
22346
  } else if (!clearQueue && !continueQueue) {
22299
22347
  this.haltDrain.add(thread.id);
@@ -50,7 +50,7 @@ import {
50
50
  syncBoardPins,
51
51
  updateSchedule,
52
52
  waitForDetachedJob
53
- } from "../chunk-2R6BZRRB.js";
53
+ } from "../chunk-ERNK7AWM.js";
54
54
  import "../chunk-JFOPOMK7.js";
55
55
  import "../chunk-YWI3IBP2.js";
56
56
  import {
@@ -61,12 +61,12 @@ import {
61
61
  materializeSystemCaBundle,
62
62
  sideboardMcpProfile,
63
63
  trustSystemCertificates
64
- } from "../chunk-NDE5RKZP.js";
64
+ } from "../chunk-IA5IPGZI.js";
65
65
  import {
66
66
  GLOBAL_WORKSPACE_ID,
67
67
  isCloudCoordinatorThread,
68
68
  listWorkspaces
69
- } from "../chunk-ZC664YBJ.js";
69
+ } from "../chunk-WNVQJZ7P.js";
70
70
  import "../chunk-3OHR73VK.js";
71
71
  import "../chunk-Y4MIXGPA.js";
72
72
  import "../chunk-YVE4PXCJ.js";
@@ -84,9 +84,9 @@ import {
84
84
  resolveListPrsOptions,
85
85
  resolveRepoRoot,
86
86
  warmGithubAgentAuth
87
- } from "../chunk-WX4S775K.js";
87
+ } from "../chunk-VPQXJYIW.js";
88
88
  import "../chunk-D6JWYJ4P.js";
89
- import "../chunk-X5PUFYDJ.js";
89
+ import "../chunk-GHKFSBES.js";
90
90
  import "../chunk-X5B3OS5I.js";
91
91
  import "../chunk-SYFVUF2C.js";
92
92
  import {
@@ -9,17 +9,17 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-2R6BZRRB.js";
12
+ } from "./chunk-ERNK7AWM.js";
13
13
  import "./chunk-JFOPOMK7.js";
14
14
  import "./chunk-YWI3IBP2.js";
15
- import "./chunk-NDE5RKZP.js";
16
- import "./chunk-ZC664YBJ.js";
15
+ import "./chunk-IA5IPGZI.js";
16
+ import "./chunk-WNVQJZ7P.js";
17
17
  import "./chunk-3OHR73VK.js";
18
18
  import "./chunk-Y4MIXGPA.js";
19
19
  import "./chunk-VKQGAWHY.js";
20
- import "./chunk-WX4S775K.js";
20
+ import "./chunk-VPQXJYIW.js";
21
21
  import "./chunk-D6JWYJ4P.js";
22
- import "./chunk-X5PUFYDJ.js";
22
+ import "./chunk-GHKFSBES.js";
23
23
  import "./chunk-X5B3OS5I.js";
24
24
  import "./chunk-SYFVUF2C.js";
25
25
  import "./chunk-FNQNJOHY.js";