@sideboard-ai/core 0.1.146 → 0.1.148

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 (27) hide show
  1. package/dist/{agents-YVETHB2R.js → agents-DUF4Q2ZI.js} +3 -3
  2. package/dist/{agents-N3KMRQUZ.js → agents-INCTFWKA.js} +3 -3
  3. package/dist/{chunk-JHZ6HGRI.js → chunk-3QRGCKYL.js} +1 -1
  4. package/dist/{chunk-KZG47SZP.js → chunk-5MS2XTNV.js} +11 -11
  5. package/dist/{chunk-ZZBN2MR7.js → chunk-CTXQHSTY.js} +11 -11
  6. package/dist/{chunk-SXPTL222.js → chunk-EGDRPA4B.js} +1 -1
  7. package/dist/{chunk-KNE3FZ46.js → chunk-N3VNOFXQ.js} +1 -1
  8. package/dist/{chunk-JW436RTA.js → chunk-Q62SDB53.js} +1 -1
  9. package/dist/{chunk-IHSR7EVK.js → chunk-R4JP32P5.js} +1 -1
  10. package/dist/{chunk-4RYRNJPN.js → chunk-XOKHXFFX.js} +2 -2
  11. package/dist/{chunk-WWH4NNBH.js → chunk-YQRBNOIW.js} +2 -2
  12. package/dist/{chunk-67K3FRKR.js → chunk-ZVYLEF72.js} +1 -1
  13. package/dist/{coordinator-prompt-2EOR35TP.js → coordinator-prompt-5GXGBGEZ.js} +1 -1
  14. package/dist/{coordinator-prompt-6EPVHVGJ.js → coordinator-prompt-ZWBMAIWA.js} +1 -1
  15. package/dist/{global-workspace-PANZGRUS.js → global-workspace-2SIPM4PW.js} +2 -2
  16. package/dist/{global-workspace-EZVQPMWT.js → global-workspace-OJRXWXEA.js} +2 -2
  17. package/dist/index.cjs +248 -6
  18. package/dist/index.d.cts +88 -2
  19. package/dist/index.d.ts +88 -2
  20. package/dist/index.js +247 -10
  21. package/dist/mcp/run-stdio.cjs +145 -6
  22. package/dist/mcp/run-stdio.js +149 -10
  23. package/dist/{orchestrator-KWV2PPML.js → orchestrator-NWIU5TJP.js} +5 -5
  24. package/dist/{orchestrator-T35BJZWY.js → orchestrator-OVYITCO6.js} +5 -5
  25. package/dist/{workspaces-ZJATBC4A.js → workspaces-3NUUZTQK.js} +3 -3
  26. package/dist/{workspaces-DWERPUQJ.js → workspaces-UUJNOO4T.js} +3 -3
  27. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -92,7 +92,7 @@ interface ThreadMessage {
92
92
  interface ThreadAttachment {
93
93
  id: string;
94
94
  name: string;
95
- kind: 'transcript' | 'file' | 'issue' | 'workspace' | 'diff-comment';
95
+ kind: 'transcript' | 'file' | 'issue' | 'workspace' | 'diff-comment' | 'code-ref';
96
96
  content: string;
97
97
  /** Worktree-relative path when this attachment is a real file that can be opened in a tab. */
98
98
  path?: string;
@@ -1821,6 +1821,34 @@ interface LinearTeam {
1821
1821
  name: string;
1822
1822
  states: LinearWorkflowState[];
1823
1823
  }
1824
+ interface LinearIssueRef {
1825
+ id: string;
1826
+ identifier: string;
1827
+ title: string;
1828
+ url: string;
1829
+ }
1830
+ interface LinearIssueRelation {
1831
+ /** Linear relation type from this issue's perspective (blocks, blockedBy, related, duplicate, duplicateOf). */
1832
+ type: string;
1833
+ issue: LinearIssueRef;
1834
+ }
1835
+ interface LinearIssueComment {
1836
+ id: string;
1837
+ body: string;
1838
+ url?: string;
1839
+ createdAt?: string;
1840
+ updatedAt?: string;
1841
+ user?: {
1842
+ id: string;
1843
+ name: string;
1844
+ };
1845
+ }
1846
+ interface LinearIssueAttachment {
1847
+ id: string;
1848
+ title: string;
1849
+ url: string;
1850
+ subtitle?: string;
1851
+ }
1824
1852
  interface LinearIssue {
1825
1853
  id: string;
1826
1854
  identifier: string;
@@ -1828,11 +1856,21 @@ interface LinearIssue {
1828
1856
  url: string;
1829
1857
  description?: string;
1830
1858
  priority?: number;
1859
+ estimate?: number;
1860
+ dueDate?: string;
1861
+ branchName?: string;
1862
+ createdAt?: string;
1863
+ updatedAt?: string;
1864
+ completedAt?: string;
1831
1865
  state?: LinearWorkflowState;
1832
1866
  assignee?: {
1833
1867
  id: string;
1834
1868
  name: string;
1835
1869
  };
1870
+ creator?: {
1871
+ id: string;
1872
+ name: string;
1873
+ };
1836
1874
  team?: {
1837
1875
  id: string;
1838
1876
  key: string;
@@ -1845,6 +1883,15 @@ interface LinearIssue {
1845
1883
  number?: number;
1846
1884
  isActive: boolean;
1847
1885
  } | null;
1886
+ project?: {
1887
+ id: string;
1888
+ name: string;
1889
+ };
1890
+ parent?: LinearIssueRef;
1891
+ children: LinearIssueRef[];
1892
+ relations: LinearIssueRelation[];
1893
+ comments: LinearIssueComment[];
1894
+ attachments: LinearIssueAttachment[];
1848
1895
  }
1849
1896
  interface LinearComment {
1850
1897
  id: string;
@@ -1867,6 +1914,8 @@ declare function linearCycleIsActive(cycle: {
1867
1914
  endsAt?: string;
1868
1915
  completedAt?: string | null;
1869
1916
  } | null | undefined, now?: number): boolean;
1917
+ /** Incoming inverseRelations use the other issue's type — flip to this issue's view. */
1918
+ declare function flipLinearRelationType(type: string): string;
1870
1919
  declare function resolveLinearTeam(teams: LinearTeam[], team: string): LinearTeam;
1871
1920
  declare function resolveLinearState(team: Pick<LinearTeam, 'key' | 'states'>, state: string): LinearWorkflowState;
1872
1921
  type LinearAssignedIssuesResult = {
@@ -3118,6 +3167,43 @@ interface DiffCommentInput {
3118
3167
  */
3119
3168
  declare function buildDiffCommentAttachment(input: DiffCommentInput): ThreadAttachment;
3120
3169
 
3170
+ interface CodeRefInput {
3171
+ path: string;
3172
+ startLine: number;
3173
+ endLine: number;
3174
+ text: string;
3175
+ language?: string;
3176
+ id?: string;
3177
+ }
3178
+ interface CodeLineRange {
3179
+ startLine: number;
3180
+ endLine: number;
3181
+ }
3182
+ /** Inclusive 1-based line label, matching diff-comment chips (`L10` / `L10-20`). */
3183
+ declare function codeRefRangeLabel(startLine: number, endLine: number): string;
3184
+ /**
3185
+ * Normalize a Monaco-style selection to an inclusive line range.
3186
+ * Selecting down to column 1 of the next line does not include that line.
3187
+ */
3188
+ declare function normalizeCodeSelection(startLine: number, startColumn: number, endLine: number, endColumn: number): CodeLineRange | null;
3189
+ /**
3190
+ * Build a composer attachment from a code-file selection.
3191
+ * Expanded into agent context via `expandComposerPrompt` like other attachments.
3192
+ */
3193
+ declare function buildCodeRefAttachment(input: CodeRefInput): ThreadAttachment;
3194
+ interface PathRefInput {
3195
+ path: string;
3196
+ entry: 'file' | 'dir';
3197
+ /** Tracked files under a folder (shown as a short listing). */
3198
+ childPaths?: string[];
3199
+ id?: string;
3200
+ }
3201
+ /**
3202
+ * Build a composer attachment from a file-tree file or folder.
3203
+ * Folder chips use a trailing slash so they are not opened as files.
3204
+ */
3205
+ declare function buildPathRefAttachment(input: PathRefInput): ThreadAttachment;
3206
+
3121
3207
  declare function isImageFilePath(filePath: string): boolean;
3122
3208
  /**
3123
3209
  * Build a composer attachment from an absolute filesystem path (no copy).
@@ -5487,4 +5573,4 @@ declare function pollSlackOutboundWatches(opts?: {
5487
5573
  now?: number;
5488
5574
  }): Promise<void>;
5489
5575
 
5490
- export { ABLETIME_MCP_PATH, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimeProject, type AbleTimeTask, type AbleTimeViewer, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, 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, 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, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, 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, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type FastForwardMainResult, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, 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 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, 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 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 ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, 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 SetupRunResult, 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, 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, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, abletimeMcpRequest, abletimeMcpUrl, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, 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, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findOrphanWorktrees, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIssueSourceConnected, isLinearConnected, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueSourceLabel, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitDirsForLockRecovery, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, 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, toAbleTimeIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, turnCostUsdFromCursorUsage, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withAgentInstructions, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
5576
+ export { ABLETIME_MCP_PATH, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimeProject, type AbleTimeTask, type AbleTimeViewer, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, 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, 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, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, 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, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type FastForwardMainResult, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearComment, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, 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 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, 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 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 ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, 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 SetupRunResult, 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, 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, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, abletimeMcpRequest, abletimeMcpUrl, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, 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, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, 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, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findOrphanWorktrees, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIssueSourceConnected, isLinearConnected, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueSourceLabel, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeCodeSelection, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitDirsForLockRecovery, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, 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, toAbleTimeIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, turnCostUsdFromCursorUsage, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withAgentInstructions, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
package/dist/index.js CHANGED
@@ -212,7 +212,7 @@ import {
212
212
  worktreeCleanupSettings,
213
213
  wrapReviewSkillMarkdown,
214
214
  writeWorktreeFile
215
- } from "./chunk-ZZBN2MR7.js";
215
+ } from "./chunk-CTXQHSTY.js";
216
216
  import {
217
217
  BRIGHTSY_MCP_ALLOWED_TOOLS,
218
218
  CLAUDE_MODEL_CATALOG,
@@ -294,7 +294,7 @@ import {
294
294
  withEventParentId,
295
295
  withEventsParentId,
296
296
  writeInjectedMcpConfig
297
- } from "./chunk-WWH4NNBH.js";
297
+ } from "./chunk-YQRBNOIW.js";
298
298
  import {
299
299
  brightsyMcpServerName,
300
300
  connectBrightsyTeam,
@@ -319,7 +319,7 @@ import {
319
319
  listWorkspaces,
320
320
  removeWorkspace,
321
321
  syncWorkspacesFromThreads
322
- } from "./chunk-JHZ6HGRI.js";
322
+ } from "./chunk-3QRGCKYL.js";
323
323
  import {
324
324
  CLOUD_COORDINATOR_BUSY_REPLY,
325
325
  CLOUD_COORDINATOR_STOPPED_REPLY,
@@ -354,7 +354,7 @@ import {
354
354
  stageAbsolutePathsAsAttachments,
355
355
  stageBuffersAsAttachments,
356
356
  takenTeamSlugsForOrchestration
357
- } from "./chunk-IHSR7EVK.js";
357
+ } from "./chunk-R4JP32P5.js";
358
358
  import {
359
359
  COORDINATOR_TOOL_PLAYBOOK,
360
360
  SLACK_REPLY_FORMATTING,
@@ -363,7 +363,7 @@ import {
363
363
  enrichWorkspacesWithGithub,
364
364
  ensureGlobalCoordinatorCwd,
365
365
  formatWorkspaceInventory
366
- } from "./chunk-SXPTL222.js";
366
+ } from "./chunk-EGDRPA4B.js";
367
367
  import {
368
368
  ABLETIME_MCP_PATH,
369
369
  DEFAULT_ABLETIME_HOST,
@@ -984,6 +984,12 @@ var LIST_ISSUE_FIELDS = `
984
984
  labels(first: 10) { nodes { name } }
985
985
  cycle { name number startsAt endsAt completedAt }
986
986
  `;
987
+ var ISSUE_REF_FIELDS = `
988
+ id
989
+ identifier
990
+ title
991
+ url
992
+ `;
987
993
  var ISSUE_FIELDS = `
988
994
  id
989
995
  identifier
@@ -991,11 +997,46 @@ var ISSUE_FIELDS = `
991
997
  description
992
998
  url
993
999
  priority
1000
+ estimate
1001
+ dueDate
1002
+ branchName
1003
+ createdAt
1004
+ updatedAt
1005
+ completedAt
994
1006
  state { id name type }
995
1007
  assignee { id name }
1008
+ creator { id name }
996
1009
  team { id key name states(first: 50) { nodes { id name type } } }
997
1010
  labels(first: 50) { nodes { name } }
998
1011
  cycle { name number startsAt endsAt completedAt }
1012
+ project { id name }
1013
+ parent { ${ISSUE_REF_FIELDS} }
1014
+ children(first: 25) { nodes { ${ISSUE_REF_FIELDS} } }
1015
+ relations(first: 25) {
1016
+ nodes {
1017
+ type
1018
+ relatedIssue { ${ISSUE_REF_FIELDS} }
1019
+ }
1020
+ }
1021
+ inverseRelations(first: 25) {
1022
+ nodes {
1023
+ type
1024
+ issue { ${ISSUE_REF_FIELDS} }
1025
+ }
1026
+ }
1027
+ comments(first: 50) {
1028
+ nodes {
1029
+ id
1030
+ body
1031
+ url
1032
+ createdAt
1033
+ updatedAt
1034
+ user { id name }
1035
+ }
1036
+ }
1037
+ attachments(first: 20) {
1038
+ nodes { id title url subtitle }
1039
+ }
999
1040
  `;
1000
1041
  var ASSIGNED_ISSUES_QUERY = `
1001
1042
  query SideboardAssignedIssues($first: Int!) {
@@ -1123,6 +1164,82 @@ function mapCycle(node) {
1123
1164
  isActive: linearCycleIsActive(node)
1124
1165
  };
1125
1166
  }
1167
+ function mapUser(node) {
1168
+ if (!node?.id && !node?.name) return void 0;
1169
+ return {
1170
+ id: String(node.id ?? ""),
1171
+ name: String(node.name ?? "")
1172
+ };
1173
+ }
1174
+ function mapIssueRef(node) {
1175
+ if (!node?.id && !node?.identifier) return void 0;
1176
+ return {
1177
+ id: String(node.id ?? node.identifier ?? ""),
1178
+ identifier: String(node.identifier ?? node.id ?? ""),
1179
+ title: String(node.title ?? ""),
1180
+ url: String(node.url ?? "")
1181
+ };
1182
+ }
1183
+ function flipLinearRelationType(type) {
1184
+ switch (type) {
1185
+ case "blocks":
1186
+ return "blockedBy";
1187
+ case "blockedBy":
1188
+ return "blocks";
1189
+ case "duplicate":
1190
+ return "duplicateOf";
1191
+ case "duplicateOf":
1192
+ return "duplicate";
1193
+ default:
1194
+ return type;
1195
+ }
1196
+ }
1197
+ function mapRelations(node) {
1198
+ const out = [];
1199
+ for (const rel of node.relations?.nodes ?? []) {
1200
+ const issue = mapIssueRef(rel.relatedIssue);
1201
+ if (!issue) continue;
1202
+ out.push({ type: String(rel.type ?? "related"), issue });
1203
+ }
1204
+ for (const rel of node.inverseRelations?.nodes ?? []) {
1205
+ const issue = mapIssueRef(rel.issue);
1206
+ if (!issue) continue;
1207
+ out.push({ type: flipLinearRelationType(String(rel.type ?? "related")), issue });
1208
+ }
1209
+ return out;
1210
+ }
1211
+ function mapComments(node) {
1212
+ const out = [];
1213
+ for (const comment of node.comments?.nodes ?? []) {
1214
+ const id = String(comment.id ?? "");
1215
+ const body = String(comment.body ?? "");
1216
+ if (!id && !body) continue;
1217
+ out.push({
1218
+ id,
1219
+ body,
1220
+ url: comment.url?.trim() || void 0,
1221
+ createdAt: comment.createdAt?.trim() || void 0,
1222
+ updatedAt: comment.updatedAt?.trim() || void 0,
1223
+ user: mapUser(comment.user)
1224
+ });
1225
+ }
1226
+ return out;
1227
+ }
1228
+ function mapAttachments(node) {
1229
+ const out = [];
1230
+ for (const attachment of node.attachments?.nodes ?? []) {
1231
+ const id = String(attachment.id ?? "");
1232
+ const url = String(attachment.url ?? "").trim();
1233
+ if (!id && !url) continue;
1234
+ out.push({
1235
+ id,
1236
+ title: String(attachment.title ?? ""),
1237
+ url,
1238
+ subtitle: attachment.subtitle?.trim() || void 0
1239
+ });
1240
+ }
1241
+ return out;
1242
+ }
1126
1243
  function mapIssue(node) {
1127
1244
  const team = node.team;
1128
1245
  return {
@@ -1132,16 +1249,35 @@ function mapIssue(node) {
1132
1249
  url: String(node.url ?? ""),
1133
1250
  description: node.description?.trim() || void 0,
1134
1251
  priority: typeof node.priority === "number" ? node.priority : void 0,
1252
+ estimate: typeof node.estimate === "number" ? node.estimate : void 0,
1253
+ dueDate: node.dueDate?.trim() || void 0,
1254
+ branchName: node.branchName?.trim() || void 0,
1255
+ createdAt: node.createdAt?.trim() || void 0,
1256
+ updatedAt: node.updatedAt?.trim() || void 0,
1257
+ completedAt: node.completedAt?.trim() || void 0,
1135
1258
  state: mapState(node.state),
1136
- assignee: node.assignee?.id ? { id: String(node.assignee.id), name: String(node.assignee.name ?? "") } : void 0,
1259
+ assignee: mapUser(node.assignee),
1260
+ creator: mapUser(node.creator),
1137
1261
  team: team?.id ? {
1138
1262
  id: String(team.id),
1139
1263
  key: String(team.key ?? ""),
1140
1264
  name: String(team.name ?? ""),
1141
- states: (team.states?.nodes ?? []).map((s) => mapState(s)).filter((s) => Boolean(s))
1265
+ states: (team.states?.nodes ?? []).flatMap((s) => {
1266
+ const state = mapState(s);
1267
+ return state ? [state] : [];
1268
+ })
1142
1269
  } : void 0,
1143
1270
  labels: (node.labels?.nodes ?? []).map((l) => l.name).filter((n) => Boolean(n)),
1144
- cycle: mapCycle(node.cycle)
1271
+ cycle: mapCycle(node.cycle),
1272
+ project: node.project?.id ? { id: String(node.project.id), name: String(node.project.name ?? "") } : void 0,
1273
+ parent: mapIssueRef(node.parent),
1274
+ children: (node.children?.nodes ?? []).flatMap((child) => {
1275
+ const ref = mapIssueRef(child);
1276
+ return ref ? [ref] : [];
1277
+ }),
1278
+ relations: mapRelations(node),
1279
+ comments: mapComments(node),
1280
+ attachments: mapAttachments(node)
1145
1281
  };
1146
1282
  }
1147
1283
  function toIssueInfo(issue) {
@@ -1163,7 +1299,10 @@ function mapTeam(node) {
1163
1299
  id: String(node.id ?? ""),
1164
1300
  key: String(node.key ?? ""),
1165
1301
  name: String(node.name ?? ""),
1166
- states: (node.states?.nodes ?? []).map((s) => mapState(s)).filter((s) => Boolean(s))
1302
+ states: (node.states?.nodes ?? []).flatMap((s) => {
1303
+ const state = mapState(s);
1304
+ return state ? [state] : [];
1305
+ })
1167
1306
  };
1168
1307
  }
1169
1308
  function resolveLinearTeam(teams, team) {
@@ -1511,6 +1650,99 @@ function buildDiffCommentAttachment(input) {
1511
1650
  };
1512
1651
  }
1513
1652
 
1653
+ // src/composer/code-ref.ts
1654
+ function codeRefRangeLabel(startLine, endLine) {
1655
+ return startLine === endLine ? `L${startLine}` : `L${startLine}-${endLine}`;
1656
+ }
1657
+ function normalizeCodeSelection(startLine, startColumn, endLine, endColumn) {
1658
+ if (startLine < 1 || endLine < 1) return null;
1659
+ let sl = startLine;
1660
+ let sc = startColumn;
1661
+ let el = endLine;
1662
+ let ec = endColumn;
1663
+ if (el < sl || el === sl && ec < sc) {
1664
+ sl = endLine;
1665
+ sc = endColumn;
1666
+ el = startLine;
1667
+ ec = startColumn;
1668
+ }
1669
+ if (sl === el && sc === ec) return null;
1670
+ if (ec <= 1 && el > sl) el -= 1;
1671
+ return { startLine: sl, endLine: el };
1672
+ }
1673
+ function fenceLanguage(path2, language) {
1674
+ if (language && language !== "plaintext") return language;
1675
+ const base = path2.split(/[/\\]/).pop()?.toLowerCase() ?? "";
1676
+ const ext = base.includes(".") ? base.split(".").pop() ?? "" : "";
1677
+ return ext;
1678
+ }
1679
+ function buildCodeRefAttachment(input) {
1680
+ const path2 = input.path.trim();
1681
+ const text5 = input.text.replace(/\n$/, "");
1682
+ if (!path2) {
1683
+ throw new Error("code reference requires a file path");
1684
+ }
1685
+ if (!text5.trim()) {
1686
+ throw new Error("code reference requires selected text");
1687
+ }
1688
+ if (input.startLine < 1 || input.endLine < 1 || input.endLine < input.startLine) {
1689
+ throw new Error("code reference requires a valid line range");
1690
+ }
1691
+ const range = codeRefRangeLabel(input.startLine, input.endLine);
1692
+ const lang = fenceLanguage(path2, input.language);
1693
+ const fence = lang ? "```" + lang : "```";
1694
+ const content = [
1695
+ `Referenced code from \`${path2}\` (${range}).`,
1696
+ "",
1697
+ fence,
1698
+ text5,
1699
+ "```"
1700
+ ].join("\n");
1701
+ return {
1702
+ id: input.id ?? `code-ref-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
1703
+ name: `${path2}:${range}`,
1704
+ kind: "code-ref",
1705
+ path: path2,
1706
+ content
1707
+ };
1708
+ }
1709
+ var FOLDER_LISTING_CAP = 40;
1710
+ function formatFolderListing(childPaths) {
1711
+ if (childPaths.length === 0) return ["(no tracked files in this folder)"];
1712
+ const shown = childPaths.slice(0, FOLDER_LISTING_CAP);
1713
+ const lines = ["Tracked files:", ...shown.map((p) => `- \`${p}\``)];
1714
+ if (childPaths.length > FOLDER_LISTING_CAP) {
1715
+ lines.push(`(and ${childPaths.length - FOLDER_LISTING_CAP} more)`);
1716
+ }
1717
+ return lines;
1718
+ }
1719
+ function buildPathRefAttachment(input) {
1720
+ const path2 = input.path.trim().replace(/\\/g, "/").replace(/\/+$/, "");
1721
+ if (!path2) {
1722
+ throw new Error("path reference requires a file or folder path");
1723
+ }
1724
+ const isDir = input.entry === "dir";
1725
+ const name = isDir ? `${path2}/` : path2;
1726
+ const content = isDir ? [
1727
+ `Referenced folder \`${path2}/\`.`,
1728
+ "",
1729
+ "Use Glob, Grep, and Read under this directory when you need files in it.",
1730
+ "",
1731
+ ...formatFolderListing(input.childPaths ?? [])
1732
+ ].join("\n") : [
1733
+ `Referenced file \`${path2}\`.`,
1734
+ "",
1735
+ `Use the Read tool on \`${path2}\` when you need the contents.`
1736
+ ].join("\n");
1737
+ return {
1738
+ id: input.id ?? `path-ref-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
1739
+ name,
1740
+ kind: "code-ref",
1741
+ path: name,
1742
+ content
1743
+ };
1744
+ }
1745
+
1514
1746
  // src/composer/pasted-text.ts
1515
1747
  import { randomUUID } from "crypto";
1516
1748
  var PASTE_ATTACH_MIN_CHARS = 1200;
@@ -2374,7 +2606,7 @@ function registerLinearTools(server) {
2374
2606
  );
2375
2607
  server.tool(
2376
2608
  "linear_get_issue",
2377
- "Get a Linear issue by uuid or identifier (ENG-123).",
2609
+ "Get a Linear issue by uuid or identifier (ENG-123). Returns description, comments, relations (blocks/blockedBy/related/duplicate), parent/children, project, cycle, labels, and other metadata.",
2378
2610
  { id: z3.string() },
2379
2611
  async ({ id }) => {
2380
2612
  try {
@@ -6522,9 +6754,11 @@ export {
6522
6754
  buildBrightsySessionSeed,
6523
6755
  buildCachedUserContent,
6524
6756
  buildClaudeStreamJsonUserMessage,
6757
+ buildCodeRefAttachment,
6525
6758
  buildDiffCommentAttachment,
6526
6759
  buildForkTranscriptAttachment,
6527
6760
  buildPastedTextAttachment,
6761
+ buildPathRefAttachment,
6528
6762
  buildReviewRequestAttachment,
6529
6763
  buildSessionSeed,
6530
6764
  buildWorkspaceScriptEnv,
@@ -6548,6 +6782,7 @@ export {
6548
6782
  clearBoardPins,
6549
6783
  clearHomeBoardCache,
6550
6784
  cloneRepoIntoSideboard,
6785
+ codeRefRangeLabel,
6551
6786
  codexAdapter,
6552
6787
  codexSandboxWritableRootsArgs,
6553
6788
  codexUnattendedGitConfigArgs,
@@ -6642,6 +6877,7 @@ export {
6642
6877
  findThreadForStackLayer,
6643
6878
  fireSchedule,
6644
6879
  flattenTurnInput,
6880
+ flipLinearRelationType,
6645
6881
  forkChatTab,
6646
6882
  forkMessageSlice,
6647
6883
  forkThreadWorktree,
@@ -6856,6 +7092,7 @@ export {
6856
7092
  nextThinkingEffort,
6857
7093
  nonInteractiveGitProcessEnv,
6858
7094
  normalizeAbleTimeHost,
7095
+ normalizeCodeSelection,
6859
7096
  normalizeParseResult,
6860
7097
  normalizeServiceOrigin,
6861
7098
  normalizeThinkingEffort,