@sideboard-ai/core 0.1.74 → 0.1.77

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 (29) hide show
  1. package/dist/{agents-2S2JVLZ6.js → agents-LKUHPPEQ.js} +3 -3
  2. package/dist/{agents-H7M5CQY2.js → agents-XJV6J3K2.js} +3 -3
  3. package/dist/{caffeinate-hold-KLC6SABD.js → caffeinate-hold-EAZNWJBE.js} +5 -1
  4. package/dist/caffeinate-hold-OHAUWOA6.js +20 -0
  5. package/dist/{chunk-KBKPVKYZ.js → chunk-2FJI5JXX.js} +2 -2
  6. package/dist/{chunk-GJ2LZQJI.js → chunk-2ZIPJRJE.js} +1 -1
  7. package/dist/{chunk-DG3S2UXP.js → chunk-75U65MBE.js} +1 -1
  8. package/dist/{chunk-HCWAIEBU.js → chunk-EEKSZTMU.js} +3 -2
  9. package/dist/{chunk-2NKSHIRI.js → chunk-GWTLKXXP.js} +1 -1
  10. package/dist/chunk-MFF2RE3I.js +168 -0
  11. package/dist/{chunk-5KJMNNCB.js → chunk-QD37IILI.js} +2 -2
  12. package/dist/chunk-RV6DBEDQ.js +170 -0
  13. package/dist/{chunk-77W62MTX.js → chunk-VERLUKN2.js} +1 -1
  14. package/dist/{chunk-XA2FQJTN.js → chunk-XJNCWYFR.js} +3 -2
  15. package/dist/{coordinator-prompt-3XXSG7M2.js → coordinator-prompt-LLFJUO2R.js} +1 -1
  16. package/dist/{coordinator-prompt-RTUCCPCI.js → coordinator-prompt-MRCMMRSF.js} +1 -1
  17. package/dist/{global-workspace-PJU6HISJ.js → global-workspace-TWHMYLTZ.js} +2 -2
  18. package/dist/{global-workspace-CSIS62Z4.js → global-workspace-YNMNO4CL.js} +2 -2
  19. package/dist/index.cjs +1050 -438
  20. package/dist/index.d.cts +144 -21
  21. package/dist/index.d.ts +144 -21
  22. package/dist/index.js +926 -389
  23. package/dist/mcp/run-stdio.cjs +709 -276
  24. package/dist/mcp/run-stdio.js +543 -171
  25. package/dist/{workspaces-L4TXMUNM.js → workspaces-GQ4XKBD3.js} +3 -3
  26. package/dist/{workspaces-W72KZL4B.js → workspaces-O3U5BENH.js} +3 -3
  27. package/package.json +1 -1
  28. package/dist/caffeinate-hold-BEJIYPJ7.js +0 -107
  29. package/dist/chunk-JAWEDVVA.js +0 -106
package/dist/index.d.cts CHANGED
@@ -923,14 +923,27 @@ interface CaffeinateHoldState {
923
923
  pid: number | null;
924
924
  running: boolean;
925
925
  platform: NodeJS.Platform;
926
+ /** Orchestration thread ids that requested this hold. */
927
+ threadIds: string[];
926
928
  }
927
929
  declare function caffeinateHoldPath(): string;
930
+ /** True when this orchestration chat currently holds `set_caffeinate`. */
931
+ declare function isThreadCaffeinated(threadId: string, state: CaffeinateHoldState): boolean;
928
932
  declare function getCaffeinateHold(): CaffeinateHoldState;
929
933
  /**
930
934
  * Session hold so the Mac stays awake across orchestration turns (MCP
931
935
  * processes exit). Detached `caffeinate` on macOS; no-op elsewhere.
936
+ * Pass `threadId` so closing that orchestration chat can release the hold.
932
937
  */
933
- declare function setCaffeinateHold(enabled: boolean): CaffeinateHoldState;
938
+ declare function setCaffeinateHold(enabled: boolean, opts?: {
939
+ threadId?: string | null;
940
+ }): CaffeinateHoldState;
941
+ /**
942
+ * Drop a closed orchestration chat from the hold. Kills caffeinate when no
943
+ * other chats still want it. A legacy hold with no thread ids is treated as
944
+ * belonging to this chat (the usual one-orchestrator case).
945
+ */
946
+ declare function releaseCaffeinateHoldForThread(threadId: string): CaffeinateHoldState;
934
947
 
935
948
  /** Desktop registers a 32-byte key from Electron safeStorage. */
936
949
  declare function setVaultMasterKey(key: Buffer | null): void;
@@ -1354,6 +1367,55 @@ declare function getGitHubStatus(): Promise<GitHubStatus>;
1354
1367
  /** Open interactive `gh auth login` in a terminal-friendly way (caller may spawn UI). */
1355
1368
  declare function refreshGitHubAuth(): Promise<GitHubStatus>;
1356
1369
 
1370
+ interface LinearWorkflowState {
1371
+ id: string;
1372
+ name: string;
1373
+ type: string;
1374
+ }
1375
+ interface LinearTeam {
1376
+ id: string;
1377
+ key: string;
1378
+ name: string;
1379
+ states: LinearWorkflowState[];
1380
+ }
1381
+ interface LinearIssue {
1382
+ id: string;
1383
+ identifier: string;
1384
+ title: string;
1385
+ url: string;
1386
+ description?: string;
1387
+ priority?: number;
1388
+ state?: LinearWorkflowState;
1389
+ assignee?: {
1390
+ id: string;
1391
+ name: string;
1392
+ };
1393
+ team?: {
1394
+ id: string;
1395
+ key: string;
1396
+ name: string;
1397
+ states: LinearWorkflowState[];
1398
+ };
1399
+ labels: string[];
1400
+ }
1401
+ interface LinearComment {
1402
+ id: string;
1403
+ body: string;
1404
+ url?: string;
1405
+ }
1406
+ interface LinearTeamsResult {
1407
+ viewer: {
1408
+ id: string;
1409
+ name: string;
1410
+ };
1411
+ teams: LinearTeam[];
1412
+ }
1413
+ declare function rewriteLinearError(message: string): string;
1414
+ declare function linearGraphql<T>(query: string, variables?: Record<string, unknown>, opts?: {
1415
+ apiKey?: string | null;
1416
+ }): Promise<T>;
1417
+ declare function resolveLinearTeam(teams: LinearTeam[], team: string): LinearTeam;
1418
+ declare function resolveLinearState(team: Pick<LinearTeam, 'key' | 'states'>, state: string): LinearWorkflowState;
1357
1419
  /**
1358
1420
  * List open issues assigned to the authenticated Linear user via GraphQL.
1359
1421
  * Uses Sideboard-stored OAuth token or API key (Account → Linear), not agent MCP.
@@ -1362,6 +1424,38 @@ declare function listLinearIssuesDirect(opts?: {
1362
1424
  limit?: number;
1363
1425
  apiKey?: string | null;
1364
1426
  }): Promise<IssueInfo[]>;
1427
+ declare function listLinearTeams(opts?: {
1428
+ apiKey?: string | null;
1429
+ }): Promise<LinearTeamsResult>;
1430
+ declare function getLinearIssue(id: string, opts?: {
1431
+ apiKey?: string | null;
1432
+ }): Promise<LinearIssue>;
1433
+ declare function createLinearIssue(input: {
1434
+ team: string;
1435
+ title: string;
1436
+ description?: string;
1437
+ state?: string;
1438
+ assignee?: string | null;
1439
+ priority?: number;
1440
+ }, opts?: {
1441
+ apiKey?: string | null;
1442
+ }): Promise<LinearIssue>;
1443
+ declare function updateLinearIssue(input: {
1444
+ id: string;
1445
+ title?: string;
1446
+ description?: string;
1447
+ state?: string;
1448
+ assignee?: string | null;
1449
+ priority?: number;
1450
+ }, opts?: {
1451
+ apiKey?: string | null;
1452
+ }): Promise<LinearIssue>;
1453
+ declare function commentLinearIssue(input: {
1454
+ id: string;
1455
+ body: string;
1456
+ }, opts?: {
1457
+ apiKey?: string | null;
1458
+ }): Promise<LinearComment>;
1365
1459
  /** Probe Linear with the stored key (or provided key). */
1366
1460
  declare function validateLinearApiKey(apiKey: string): Promise<boolean>;
1367
1461
 
@@ -1370,8 +1464,12 @@ declare function hasBakedLinearOAuth(): boolean;
1370
1464
  /** Fixed port so the Linear OAuth redirect URI can be registered once. */
1371
1465
  declare const LINEAR_OAUTH_PORT = 19848;
1372
1466
  declare const LINEAR_OAUTH_REDIRECT = "http://127.0.0.1:19848/callback";
1373
- /** Read-only — Sideboard lists assigned issues; it does not create them. */
1374
- declare const LINEAR_OAUTH_SCOPES = "read";
1467
+ /**
1468
+ * Requested at authorize time — Linear’s OAuth app settings have no scopes UI.
1469
+ * `read,write` lists assigned issues and lets MCP create/update/comment.
1470
+ * Users who connected with `read` only must Disconnect and Connect again.
1471
+ */
1472
+ declare const LINEAR_OAUTH_SCOPES = "read,write";
1375
1473
  declare function linearOAuthCredentials(): {
1376
1474
  clientId: string;
1377
1475
  clientSecret: string;
@@ -1425,6 +1523,18 @@ declare function listGitHubIssues(repoPath: string, opts?: {
1425
1523
  */
1426
1524
  declare function listIssues(repoPath: string): Promise<ListIssuesResult>;
1427
1525
 
1526
+ /**
1527
+ * HTTP fetch used by Linear (and other Node-side API clients).
1528
+ *
1529
+ * Electron main should call {@link setHttpFetchImpl} with `net.fetch` so
1530
+ * requests use Chromium's network stack. Node's undici `fetch` often fails
1531
+ * behind corporate VPN/proxy as an opaque `TypeError: fetch failed`.
1532
+ */
1533
+ declare function setHttpFetchImpl(fetchImpl: typeof fetch | null): void;
1534
+ /** Expand undici/Electron `TypeError: fetch failed` with the underlying cause. */
1535
+ declare function formatFetchError(err: unknown, url: string): string;
1536
+ declare function httpFetch(input: string | URL, init?: RequestInit): Promise<Response>;
1537
+
1428
1538
  /**
1429
1539
  * Turn payload for agent CLIs.
1430
1540
  * `cachedPrefix` is stable context (instructions, conversation seed) sent before
@@ -2632,6 +2742,8 @@ declare class Orchestrator {
2632
2742
  sessionId: string | null;
2633
2743
  };
2634
2744
  private assertNotGlobal;
2745
+ /** MCP set_caffeinate is a detached hold — closing the chat must not leave the Mac awake. */
2746
+ private releaseOrchestratorCaffeinate;
2635
2747
  diff(threadRef: string, opts?: {
2636
2748
  scope?: DiffScope;
2637
2749
  commitSha?: string | null;
@@ -3307,6 +3419,14 @@ interface IpcApi {
3307
3419
  setSlackListen(opts: {
3308
3420
  enabled: boolean;
3309
3421
  }): Promise<SlackListenStatus>;
3422
+ /** Live caffeinate: chat hold and/or Settings (agents running / Slack Listen). */
3423
+ getCaffeinateHold(): Promise<CaffeinateHoldState & {
3424
+ appCaffeinated: boolean;
3425
+ }>;
3426
+ /** Fired when any caffeinate source starts or stops. */
3427
+ onCaffeinateHoldChanged(listener: (state: CaffeinateHoldState & {
3428
+ appCaffeinated: boolean;
3429
+ }) => void): () => void;
3310
3430
  /** Unread Slack replies to messages this Mac posted (relayed as info; does not start a turn). */
3311
3431
  getSlackReplyBadges(): Promise<SlackReplyBadge[]>;
3312
3432
  /** Open the Slack thread in the browser/app and clear that user's badge. */
@@ -3712,7 +3832,7 @@ type BrightsySideboardApiOptions = {
3712
3832
  fetchImpl?: FetchLike;
3713
3833
  };
3714
3834
  /** Expand undici/Electron `TypeError: fetch failed` with the underlying cause. */
3715
- declare function formatBrightsyFetchError(err: unknown, url: string): string;
3835
+ declare const formatBrightsyFetchError: typeof formatFetchError;
3716
3836
  /**
3717
3837
  * Minimal Brightsy HTTP client using ~/.brightsy/config.json (same session as CLI).
3718
3838
  */
@@ -3833,7 +3953,7 @@ declare function writeInjectedMcpConfig(opts: {
3833
3953
  }): Promise<string | null>;
3834
3954
 
3835
3955
  /** Public WebSocket URL for the hosted Slack inbound relay (path included). */
3836
- declare const BAKED_SLACK_RELAY_URL = "wss://slack-relay.sideboard.cloud/desktop";
3956
+ declare const BAKED_SLACK_RELAY_URL = "wss://relay.sideboard.cloud/slack/desktop";
3837
3957
  declare function hasBakedSlackOAuth(): boolean;
3838
3958
  /**
3839
3959
  * Relay URL for inbound Slack when this Mac has no local xapp-.
@@ -3841,19 +3961,14 @@ declare function hasBakedSlackOAuth(): boolean;
3841
3961
  */
3842
3962
  declare function slackRelayUrl(): string;
3843
3963
 
3844
- /** Fixed port so the desktop can listen on one localhost callback. */
3845
- declare const SLACK_OAUTH_PORT = 19847;
3846
- /** Local listener. Slack never redirects here — HTTP is not allowed for public distribution. */
3847
- declare const SLACK_OAUTH_LOCAL_CALLBACK = "http://127.0.0.1:19847/callback";
3848
- /**
3849
- * Slack-registered redirect URI (HTTPS). The hosted relay bounces to
3850
- * {@link SLACK_OAUTH_LOCAL_CALLBACK} so the desktop can finish OAuth.
3851
- */
3852
- declare const SLACK_OAUTH_REDIRECT = "https://slack-relay.sideboard.cloud/callback";
3964
+ declare const SLACK_OAUTH_REDIRECT = "https://relay.sideboard.cloud/slack/callback";
3965
+
3966
+ declare function slackOAuthResultUrl(state: string, relayWsUrl?: string): string;
3853
3967
 
3968
+ /** Public client id plus optional local secret (custom Slack app only — not baked). */
3854
3969
  declare function slackOAuthCredentials(): {
3855
3970
  clientId: string;
3856
- clientSecret: string;
3971
+ clientSecret: string | null;
3857
3972
  };
3858
3973
  declare const SLACK_OAUTH_CANCELLED = "Slack sign-in cancelled";
3859
3974
  declare class SlackOAuthCancelledError extends Error {
@@ -3861,15 +3976,16 @@ declare class SlackOAuthCancelledError extends Error {
3861
3976
  }
3862
3977
  declare function isSlackOAuthCancelled(err: unknown): boolean;
3863
3978
  /**
3864
- * Open Slack OAuth in the browser, listen on a localhost callback, store tokens.
3865
- * Slack redirects to the hosted HTTPS bounce, which forwards here.
3866
- * Pass `signal` (or abort after start) so closing the browser tab is not the
3867
- * only way out — Settings Cancel and modal close abort this wait.
3979
+ * Open Slack OAuth in the browser. The hosted relay exchanges the code
3980
+ * (client secret stays on the server). This process polls `/slack/oauth/result`.
3868
3981
  */
3869
3982
  declare function startSlackOAuth(opts?: {
3870
3983
  openUrl?: (url: string) => void | Promise<void>;
3871
3984
  timeoutMs?: number;
3872
3985
  signal?: AbortSignal;
3986
+ fetchImpl?: typeof fetch;
3987
+ resultUrlForState?: (state: string) => string;
3988
+ pollIntervalMs?: number;
3873
3989
  }): Promise<SlackWorkspaceInfo>;
3874
3990
 
3875
3991
  /** Minimal WebSocket surface so tests can inject a fake without DOM lib types. */
@@ -4047,6 +4163,10 @@ declare class SlackRelayHub {
4047
4163
 
4048
4164
  interface SlackRelayServerOptions {
4049
4165
  appToken: string;
4166
+ /** OAuth client secret — from Fly `SIDEBOARD_SLACK_CLIENT_SECRET`. Never ship in the DMG. */
4167
+ clientSecret?: string;
4168
+ clientId?: string;
4169
+ oauthRedirectUri?: string;
4050
4170
  port?: number;
4051
4171
  host?: string;
4052
4172
  signal?: AbortSignal;
@@ -4054,6 +4174,8 @@ interface SlackRelayServerOptions {
4054
4174
  fetchImpl?: typeof fetch;
4055
4175
  /** Injected hub (tests). */
4056
4176
  hub?: SlackRelayHub;
4177
+ /** Skip Slack Socket Mode (tests). */
4178
+ skipSocketMode?: boolean;
4057
4179
  }
4058
4180
  interface SlackRelayServerHandle {
4059
4181
  port: number;
@@ -4064,6 +4186,7 @@ interface SlackRelayServerHandle {
4064
4186
  /**
4065
4187
  * Hosted Slack inbound relay: one Socket Mode connection (xapp- on the server)
4066
4188
  * plus desktop WebSocket sessions that register via bot-token auth.test.
4189
+ * GET /slack/callback exchanges Slack OAuth (client secret stays here).
4067
4190
  */
4068
4191
  declare function startSlackRelayServer(opts: SlackRelayServerOptions): Promise<SlackRelayServerHandle>;
4069
4192
 
@@ -4075,7 +4198,7 @@ interface SlackRelayRegisterWorkspace {
4075
4198
  userToken: string;
4076
4199
  }
4077
4200
  interface SlackRelayClientOptions {
4078
- /** Full WebSocket URL including path, e.g. wss://slack-relay.sideboard.cloud/desktop */
4201
+ /** Full WebSocket URL including path, e.g. wss://relay.sideboard.cloud/slack/desktop */
4079
4202
  url: string;
4080
4203
  workspaces: SlackRelayRegisterWorkspace[];
4081
4204
  /** Stable per-Mac destination id. */
@@ -4093,4 +4216,4 @@ interface SlackRelayClientOptions {
4093
4216
  */
4094
4217
  declare function runSlackRelayClient(opts: SlackRelayClientOptions): Promise<void>;
4095
4218
 
4096
- export { AGENT_GIT_ACTIONS, ATTACHMENTS_DIR, type ActiveRun, 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, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, 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, 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 CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, 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, type LandPreview, type LandResult, LinearOAuthCancelledError, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, 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, 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, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_BUSY_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_LOCAL_CALLBACK, SLACK_OAUTH_PORT, SLACK_OAUTH_REDIRECT, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScriptHandle, 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 SlackReplyBadge, 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 UsageScope, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, ackSlackInboundSeen, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, applyTurnUsage, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSlackListenEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commitAll, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectSlackToken, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearPkce, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectSlackWorkspace, discoverSkills, dismissSlackReplyBadge, dropCachedPrefixOnResume, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatRateLimitResetHint, formatRenameBranchDirective, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackSignedReply, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getLinearAuthToken, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isLinearConnected, isLinearOAuthCancelled, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isThinkingEffort, isWorkspaceScratchPath, linearAuthorizationHeader, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSlackOutboundWatches, listSlackReplyBadges, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergePrStack, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permalinkForSlackReplyBadge, permissionMode, persistVaultKeyInKeychain, planFileAbs, posixShellSingleQuote, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordSlackOutboundWatch, refreshGitHubAuth, refreshSlackReplyBadges, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resolveAgentExecutable, resolveClaudeExecutable, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubRepoSlug, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, saveLinearOAuth, secureFileUnlocksWith, setCaffeinateHold, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toPublicAppSettings, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateOpencodeSettings, updateThread, validateLinearApiKey, withAgentInstructions, withExportedPath, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
4219
+ export { AGENT_GIT_ACTIONS, ATTACHMENTS_DIR, type ActiveRun, 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, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, 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, 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 CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, 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, type LandPreview, type LandResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, 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, 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, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_BUSY_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScriptHandle, 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 SlackReplyBadge, 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 UsageScope, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, ackSlackInboundSeen, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, applyTurnUsage, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSlackListenEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectSlackToken, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectSlackWorkspace, discoverSkills, dismissSlackReplyBadge, dropCachedPrefixOnResume, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatRateLimitResetHint, formatRenameBranchDirective, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackSignedReply, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isLinearConnected, isLinearOAuthCancelled, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isThinkingEffort, isThreadCaffeinated, isWorkspaceScratchPath, linearAuthorizationHeader, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSlackOutboundWatches, listSlackReplyBadges, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergePrStack, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permalinkForSlackReplyBadge, permissionMode, persistVaultKeyInKeychain, planFileAbs, posixShellSingleQuote, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordSlackOutboundWatch, refreshGitHubAuth, refreshSlackReplyBadges, releaseCaffeinateHoldForThread, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resolveAgentExecutable, resolveClaudeExecutable, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteLinearError, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, saveLinearOAuth, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, 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, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toPublicAppSettings, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateThread, validateLinearApiKey, withAgentInstructions, withExportedPath, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };