@sideboard-ai/core 0.1.73 → 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 (32) hide show
  1. package/dist/agents/cursor-runner.cjs +1 -1
  2. package/dist/agents/cursor-runner.js +1 -1
  3. package/dist/{agents-77GE7VRW.js → agents-LKUHPPEQ.js} +3 -3
  4. package/dist/{agents-GUFUYXKP.js → agents-XJV6J3K2.js} +4 -4
  5. package/dist/{caffeinate-hold-KLC6SABD.js → caffeinate-hold-EAZNWJBE.js} +5 -1
  6. package/dist/caffeinate-hold-OHAUWOA6.js +20 -0
  7. package/dist/{chunk-AFW3M6LU.js → chunk-2FJI5JXX.js} +17 -11
  8. package/dist/{chunk-CXT2PLO7.js → chunk-2ZIPJRJE.js} +1 -1
  9. package/dist/{chunk-CYKPUTXN.js → chunk-75U65MBE.js} +1 -1
  10. package/dist/{chunk-V4ACEJX2.js → chunk-EEKSZTMU.js} +14 -12
  11. package/dist/{chunk-POW7JCB5.js → chunk-GWTLKXXP.js} +1 -1
  12. package/dist/chunk-MFF2RE3I.js +168 -0
  13. package/dist/{chunk-WSFZPOPH.js → chunk-QD37IILI.js} +17 -11
  14. package/dist/chunk-RV6DBEDQ.js +170 -0
  15. package/dist/{chunk-3WJAUKIL.js → chunk-SEOICVGB.js} +1 -1
  16. package/dist/{chunk-NF6Y4GTE.js → chunk-VERLUKN2.js} +1 -1
  17. package/dist/{chunk-6RFPKZNC.js → chunk-XJNCWYFR.js} +14 -12
  18. package/dist/{coordinator-prompt-4U2QNHGT.js → coordinator-prompt-LLFJUO2R.js} +1 -1
  19. package/dist/{coordinator-prompt-ZHBDHMZB.js → coordinator-prompt-MRCMMRSF.js} +1 -1
  20. package/dist/{global-workspace-VF56FTPY.js → global-workspace-TWHMYLTZ.js} +2 -2
  21. package/dist/{global-workspace-S3B6ESZS.js → global-workspace-YNMNO4CL.js} +2 -2
  22. package/dist/index.cjs +1203 -468
  23. package/dist/index.d.cts +177 -23
  24. package/dist/index.d.ts +177 -23
  25. package/dist/index.js +1049 -401
  26. package/dist/mcp/run-stdio.cjs +848 -306
  27. package/dist/mcp/run-stdio.js +656 -182
  28. package/dist/{workspaces-ZJ45O4CD.js → workspaces-GQ4XKBD3.js} +3 -3
  29. package/dist/{workspaces-R66324S7.js → workspaces-O3U5BENH.js} +3 -3
  30. package/package.json +1 -1
  31. package/dist/caffeinate-hold-BEJIYPJ7.js +0 -107
  32. package/dist/chunk-JAWEDVVA.js +0 -106
package/dist/index.d.ts CHANGED
@@ -49,6 +49,11 @@ interface TokenUsage {
49
49
  outputTokens: number;
50
50
  cacheReadTokens?: number;
51
51
  cacheWriteTokens?: number;
52
+ /**
53
+ * Tokens occupying the context window on the last API request of this turn
54
+ * (input + cache). Distinct from billed totals, which sum every tool round.
55
+ */
56
+ lastRequestTokens?: number;
52
57
  }
53
58
  interface ThreadMessage {
54
59
  role: 'user' | 'agent' | 'summary';
@@ -411,6 +416,8 @@ type AgentEvent = {
411
416
  } | {
412
417
  type: 'usage';
413
418
  data: TokenUsage;
419
+ /** `request` = one API call; `turn` = billed total for the whole agent turn. */
420
+ scope?: 'request' | 'turn';
414
421
  } | {
415
422
  type: 'exit';
416
423
  data: number | null;
@@ -916,14 +923,27 @@ interface CaffeinateHoldState {
916
923
  pid: number | null;
917
924
  running: boolean;
918
925
  platform: NodeJS.Platform;
926
+ /** Orchestration thread ids that requested this hold. */
927
+ threadIds: string[];
919
928
  }
920
929
  declare function caffeinateHoldPath(): string;
930
+ /** True when this orchestration chat currently holds `set_caffeinate`. */
931
+ declare function isThreadCaffeinated(threadId: string, state: CaffeinateHoldState): boolean;
921
932
  declare function getCaffeinateHold(): CaffeinateHoldState;
922
933
  /**
923
934
  * Session hold so the Mac stays awake across orchestration turns (MCP
924
935
  * processes exit). Detached `caffeinate` on macOS; no-op elsewhere.
936
+ * Pass `threadId` so closing that orchestration chat can release the hold.
925
937
  */
926
- 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;
927
947
 
928
948
  /** Desktop registers a 32-byte key from Electron safeStorage. */
929
949
  declare function setVaultMasterKey(key: Buffer | null): void;
@@ -1325,6 +1345,13 @@ declare function submitPrStack(cwd: string, opts?: {
1325
1345
  /** Check out a stack layer by PR number, stack number, URL, or branch. */
1326
1346
  declare function checkoutPrStackLayer(cwd: string, target: string | number): Promise<void>;
1327
1347
 
1348
+ /** Canonical git prompts the desktop buttons and orchestration `ask_git` send. */
1349
+ declare const AGENT_GIT_ACTIONS: readonly ["commit-push", "create-draft", "create-web", "resolve-conflicts", "merge"];
1350
+ type AgentGitAction = (typeof AGENT_GIT_ACTIONS)[number];
1351
+ declare function agentGitPrompt(action: AgentGitAction, opts?: {
1352
+ prBase?: string | null;
1353
+ }): string;
1354
+
1328
1355
  interface GitHubStatus {
1329
1356
  connected: boolean;
1330
1357
  login: string | null;
@@ -1340,6 +1367,55 @@ declare function getGitHubStatus(): Promise<GitHubStatus>;
1340
1367
  /** Open interactive `gh auth login` in a terminal-friendly way (caller may spawn UI). */
1341
1368
  declare function refreshGitHubAuth(): Promise<GitHubStatus>;
1342
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;
1343
1419
  /**
1344
1420
  * List open issues assigned to the authenticated Linear user via GraphQL.
1345
1421
  * Uses Sideboard-stored OAuth token or API key (Account → Linear), not agent MCP.
@@ -1348,6 +1424,38 @@ declare function listLinearIssuesDirect(opts?: {
1348
1424
  limit?: number;
1349
1425
  apiKey?: string | null;
1350
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>;
1351
1459
  /** Probe Linear with the stored key (or provided key). */
1352
1460
  declare function validateLinearApiKey(apiKey: string): Promise<boolean>;
1353
1461
 
@@ -1356,8 +1464,12 @@ declare function hasBakedLinearOAuth(): boolean;
1356
1464
  /** Fixed port so the Linear OAuth redirect URI can be registered once. */
1357
1465
  declare const LINEAR_OAUTH_PORT = 19848;
1358
1466
  declare const LINEAR_OAUTH_REDIRECT = "http://127.0.0.1:19848/callback";
1359
- /** Read-only — Sideboard lists assigned issues; it does not create them. */
1360
- 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";
1361
1473
  declare function linearOAuthCredentials(): {
1362
1474
  clientId: string;
1363
1475
  clientSecret: string;
@@ -1411,6 +1523,18 @@ declare function listGitHubIssues(repoPath: string, opts?: {
1411
1523
  */
1412
1524
  declare function listIssues(repoPath: string): Promise<ListIssuesResult>;
1413
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
+
1414
1538
  /**
1415
1539
  * Turn payload for agent CLIs.
1416
1540
  * `cachedPrefix` is stable context (instructions, conversation seed) sent before
@@ -1793,10 +1917,21 @@ declare function isBrightsyNdjsonLine(line: string): boolean;
1793
1917
  declare function finalizeParts(parts: MessagePart[]): MessagePart[];
1794
1918
  declare function normalizeParseResult(parsed: AgentEvent | AgentEvent[] | null): AgentEvent[];
1795
1919
 
1920
+ /** Prompt tokens occupying the context window for a single API call. */
1921
+ declare function requestOccupancy(u: TokenUsage): number;
1796
1922
  /** Accumulate incremental usage (one CLI turn may report usage in several steps). */
1797
1923
  declare function mergeUsage(a: TokenUsage | null, b: TokenUsage): TokenUsage;
1924
+ type UsageScope = 'request' | 'turn';
1925
+ /**
1926
+ * Fold a usage event into the turn total.
1927
+ * Request-scoped events are one API call (sum for billing; last occupancy for the meter).
1928
+ * Turn-scoped events replace billed totals (Claude/Codex result) without wiping last-request size.
1929
+ */
1930
+ declare function applyTurnUsage(current: TokenUsage | null, incoming: TokenUsage, scope?: UsageScope): TokenUsage;
1798
1931
  /** Total tokens processed for a turn (input + output + cache reads/writes). */
1799
1932
  declare function totalTokens(u: TokenUsage): number;
1933
+ /** Context-window fill: last API request when known, else billed input + cache. */
1934
+ declare function contextTokens(u: TokenUsage): number;
1800
1935
 
1801
1936
  interface McpServerStatus {
1802
1937
  name: string;
@@ -2607,6 +2742,8 @@ declare class Orchestrator {
2607
2742
  sessionId: string | null;
2608
2743
  };
2609
2744
  private assertNotGlobal;
2745
+ /** MCP set_caffeinate is a detached hold — closing the chat must not leave the Mac awake. */
2746
+ private releaseOrchestratorCaffeinate;
2610
2747
  diff(threadRef: string, opts?: {
2611
2748
  scope?: DiffScope;
2612
2749
  commitSha?: string | null;
@@ -2711,6 +2848,11 @@ declare class Orchestrator {
2711
2848
  * and send the merge-readiness prefill.
2712
2849
  */
2713
2850
  requestReview(threadRef: string): Promise<Thread>;
2851
+ /**
2852
+ * Queue a desktop-git-button prompt on a worktree agent (commit/push/PR/merge).
2853
+ * Orchestrators use this instead of running git/gh from the synthetic home.
2854
+ */
2855
+ askGit(threadRef: string, action: AgentGitAction): Promise<Thread>;
2714
2856
  setThreadOptions(threadRef: string, patch: ThreadOptionsPatch): Thread;
2715
2857
  createChatTab(input: {
2716
2858
  fromThreadId: string;
@@ -2986,8 +3128,9 @@ declare function cloneRepoIntoSideboard(opts: {
2986
3128
 
2987
3129
  /**
2988
3130
  * Sideboard MCP server — agent-facing judgment surface.
2989
- * Deliberately excludes ready-for-review confirm_land, purge_thread, and
2990
- * host-owned draft PR creation. Orchestrators ask worktree agents to open PRs.
3131
+ * Deliberately excludes ready-for-review confirm_land and purge_thread.
3132
+ * Orchestrators commit, push, open PRs, and merge by telling worktree agents
3133
+ * (`ask_git` / `send_to_thread`) — they do not run git/gh from the synthetic home.
2991
3134
  */
2992
3135
  declare function startMcpServer(): Promise<void>;
2993
3136
 
@@ -3276,6 +3419,14 @@ interface IpcApi {
3276
3419
  setSlackListen(opts: {
3277
3420
  enabled: boolean;
3278
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;
3279
3430
  /** Unread Slack replies to messages this Mac posted (relayed as info; does not start a turn). */
3280
3431
  getSlackReplyBadges(): Promise<SlackReplyBadge[]>;
3281
3432
  /** Open the Slack thread in the browser/app and clear that user's badge. */
@@ -3681,7 +3832,7 @@ type BrightsySideboardApiOptions = {
3681
3832
  fetchImpl?: FetchLike;
3682
3833
  };
3683
3834
  /** Expand undici/Electron `TypeError: fetch failed` with the underlying cause. */
3684
- declare function formatBrightsyFetchError(err: unknown, url: string): string;
3835
+ declare const formatBrightsyFetchError: typeof formatFetchError;
3685
3836
  /**
3686
3837
  * Minimal Brightsy HTTP client using ~/.brightsy/config.json (same session as CLI).
3687
3838
  */
@@ -3802,7 +3953,7 @@ declare function writeInjectedMcpConfig(opts: {
3802
3953
  }): Promise<string | null>;
3803
3954
 
3804
3955
  /** Public WebSocket URL for the hosted Slack inbound relay (path included). */
3805
- 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";
3806
3957
  declare function hasBakedSlackOAuth(): boolean;
3807
3958
  /**
3808
3959
  * Relay URL for inbound Slack when this Mac has no local xapp-.
@@ -3810,19 +3961,14 @@ declare function hasBakedSlackOAuth(): boolean;
3810
3961
  */
3811
3962
  declare function slackRelayUrl(): string;
3812
3963
 
3813
- /** Fixed port so the desktop can listen on one localhost callback. */
3814
- declare const SLACK_OAUTH_PORT = 19847;
3815
- /** Local listener. Slack never redirects here — HTTP is not allowed for public distribution. */
3816
- declare const SLACK_OAUTH_LOCAL_CALLBACK = "http://127.0.0.1:19847/callback";
3817
- /**
3818
- * Slack-registered redirect URI (HTTPS). The hosted relay bounces to
3819
- * {@link SLACK_OAUTH_LOCAL_CALLBACK} so the desktop can finish OAuth.
3820
- */
3821
- declare const SLACK_OAUTH_REDIRECT = "https://slack-relay.sideboard.cloud/callback";
3964
+ declare const SLACK_OAUTH_REDIRECT = "https://relay.sideboard.cloud/slack/callback";
3822
3965
 
3966
+ declare function slackOAuthResultUrl(state: string, relayWsUrl?: string): string;
3967
+
3968
+ /** Public client id plus optional local secret (custom Slack app only — not baked). */
3823
3969
  declare function slackOAuthCredentials(): {
3824
3970
  clientId: string;
3825
- clientSecret: string;
3971
+ clientSecret: string | null;
3826
3972
  };
3827
3973
  declare const SLACK_OAUTH_CANCELLED = "Slack sign-in cancelled";
3828
3974
  declare class SlackOAuthCancelledError extends Error {
@@ -3830,15 +3976,16 @@ declare class SlackOAuthCancelledError extends Error {
3830
3976
  }
3831
3977
  declare function isSlackOAuthCancelled(err: unknown): boolean;
3832
3978
  /**
3833
- * Open Slack OAuth in the browser, listen on a localhost callback, store tokens.
3834
- * Slack redirects to the hosted HTTPS bounce, which forwards here.
3835
- * Pass `signal` (or abort after start) so closing the browser tab is not the
3836
- * 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`.
3837
3981
  */
3838
3982
  declare function startSlackOAuth(opts?: {
3839
3983
  openUrl?: (url: string) => void | Promise<void>;
3840
3984
  timeoutMs?: number;
3841
3985
  signal?: AbortSignal;
3986
+ fetchImpl?: typeof fetch;
3987
+ resultUrlForState?: (state: string) => string;
3988
+ pollIntervalMs?: number;
3842
3989
  }): Promise<SlackWorkspaceInfo>;
3843
3990
 
3844
3991
  /** Minimal WebSocket surface so tests can inject a fake without DOM lib types. */
@@ -4016,6 +4163,10 @@ declare class SlackRelayHub {
4016
4163
 
4017
4164
  interface SlackRelayServerOptions {
4018
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;
4019
4170
  port?: number;
4020
4171
  host?: string;
4021
4172
  signal?: AbortSignal;
@@ -4023,6 +4174,8 @@ interface SlackRelayServerOptions {
4023
4174
  fetchImpl?: typeof fetch;
4024
4175
  /** Injected hub (tests). */
4025
4176
  hub?: SlackRelayHub;
4177
+ /** Skip Slack Socket Mode (tests). */
4178
+ skipSocketMode?: boolean;
4026
4179
  }
4027
4180
  interface SlackRelayServerHandle {
4028
4181
  port: number;
@@ -4033,6 +4186,7 @@ interface SlackRelayServerHandle {
4033
4186
  /**
4034
4187
  * Hosted Slack inbound relay: one Socket Mode connection (xapp- on the server)
4035
4188
  * plus desktop WebSocket sessions that register via bot-token auth.test.
4189
+ * GET /slack/callback exchanges Slack OAuth (client secret stays here).
4036
4190
  */
4037
4191
  declare function startSlackRelayServer(opts: SlackRelayServerOptions): Promise<SlackRelayServerHandle>;
4038
4192
 
@@ -4044,7 +4198,7 @@ interface SlackRelayRegisterWorkspace {
4044
4198
  userToken: string;
4045
4199
  }
4046
4200
  interface SlackRelayClientOptions {
4047
- /** 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 */
4048
4202
  url: string;
4049
4203
  workspaces: SlackRelayRegisterWorkspace[];
4050
4204
  /** Stable per-Mac destination id. */
@@ -4062,4 +4216,4 @@ interface SlackRelayClientOptions {
4062
4216
  */
4063
4217
  declare function runSlackRelayClient(opts: SlackRelayClientOptions): Promise<void>;
4064
4218
 
4065
- export { ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, 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 Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, ackSlackInboundSeen, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, 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, 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, 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 };