@sideboard-ai/core 0.1.263 → 0.1.266

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 (69) hide show
  1. package/dist/{abletime-6AOJI2YZ.js → abletime-4ZSDI4YP.js} +9 -6
  2. package/dist/{abletime-U75ZGDIX.js → abletime-JNQAHLHH.js} +7 -4
  3. package/dist/{abletime-oauth-TA2YDCYX.js → abletime-oauth-4RXZH2KU.js} +3 -3
  4. package/dist/{abletime-oauth-LOAHGG4X.js → abletime-oauth-DCEIINYT.js} +5 -5
  5. package/dist/{abletime-rest-CTA5WV26.js → abletime-rest-KVBJFVFD.js} +3 -3
  6. package/dist/{abletime-rest-YZPFM6IY.js → abletime-rest-VN6PZ6P2.js} +5 -5
  7. package/dist/agents/cursor-runner.cjs +6 -2
  8. package/dist/agents/cursor-runner.js +13 -7
  9. package/dist/{agents-3TUMFSMH.js → agents-G3JTULM2.js} +7 -5
  10. package/dist/{agents-6FWDRVA2.js → agents-XRXJCAWJ.js} +11 -10
  11. package/dist/{app-settings-RKFFUIFQ.js → app-settings-L5HGYXWJ.js} +1 -3
  12. package/dist/{app-settings-MVZPM6WW.js → app-settings-RAC4PSSP.js} +3 -5
  13. package/dist/{caffeinate-hold-UAGLSGMM.js → caffeinate-hold-7JM5H5P3.js} +2 -2
  14. package/dist/{chunk-F5MFNUAA.js → chunk-27Z4MEQ5.js} +1 -1
  15. package/dist/{chunk-EK3KVT7I.js → chunk-2XIRV7FS.js} +53 -1254
  16. package/dist/{chunk-3H7O27X2.js → chunk-3VBS6MES.js} +39 -1017
  17. package/dist/chunk-4ECDIKAS.js +2273 -0
  18. package/dist/{chunk-H547WSSZ.js → chunk-4RZRHTSZ.js} +1 -1
  19. package/dist/{chunk-QN5DL2QO.js → chunk-5DZUWGKV.js} +1 -1
  20. package/dist/chunk-5N4Q46SG.js +392 -0
  21. package/dist/{chunk-YKYEHDMX.js → chunk-AGXZAMOF.js} +5 -5
  22. package/dist/{chunk-RKPBIB2U.js → chunk-DB7MVDYS.js} +33 -7
  23. package/dist/{chunk-BOMSJUXW.js → chunk-DBFAFI5A.js} +5 -5
  24. package/dist/chunk-FAGK33E2.js +994 -0
  25. package/dist/{chunk-A5SAYFJ4.js → chunk-FIBZEFKA.js} +4 -390
  26. package/dist/{chunk-5PK53SAP.js → chunk-GONPMH36.js} +5 -5
  27. package/dist/{chunk-L5WGAIL2.js → chunk-GZXKUUJO.js} +35 -9
  28. package/dist/{chunk-Z2LGMV6C.js → chunk-H5XL4KUS.js} +21 -0
  29. package/dist/{chunk-T3AYRQJZ.js → chunk-HSRN2CSL.js} +473 -2487
  30. package/dist/{chunk-TJ673EZT.js → chunk-JANCPF7Z.js} +2 -2
  31. package/dist/chunk-KZ2CDZBZ.js +828 -0
  32. package/dist/{chunk-6YY7XPPL.js → chunk-L6CYOON4.js} +5 -5
  33. package/dist/{chunk-6YOXQVJ7.js → chunk-LAIBYKZS.js} +3 -3
  34. package/dist/{chunk-4ALDX5IO.js → chunk-NWE3NOWQ.js} +3 -3
  35. package/dist/{chunk-36FOBJBF.js → chunk-OIENQEGG.js} +63 -38
  36. package/dist/{chunk-2QUQH2SZ.js → chunk-PAH7KDL2.js} +68 -24
  37. package/dist/{chunk-XAISOBBG.js → chunk-TQRSVE7D.js} +1 -1
  38. package/dist/chunk-UKSJO36E.js +1224 -0
  39. package/dist/{chunk-CEMNIGQH.js → chunk-UN5Q7POQ.js} +1 -1
  40. package/dist/{chunk-5ZPT5YAV.js → chunk-USBZ7PH4.js} +1 -1
  41. package/dist/chunk-UXI52MLJ.js +826 -0
  42. package/dist/chunk-X7RP3TQB.js +2385 -0
  43. package/dist/{chunk-QX6QUZVD.js → chunk-ZSGSVFWD.js} +424 -2611
  44. package/dist/conductor-MLM5NGTP.js +104 -0
  45. package/dist/conductor-NRKTEN5X.js +105 -0
  46. package/dist/{connected-teams-7CENZDWU.js → connected-teams-JIUOSZ6C.js} +2 -2
  47. package/dist/{coordinator-prompt-J7DKHOCH.js → coordinator-prompt-4GHKCVRH.js} +7 -7
  48. package/dist/{coordinator-prompt-HZCQZ6C5.js → coordinator-prompt-BKRQDZFT.js} +3 -3
  49. package/dist/{cursor-recover-FALSNEZN.js → cursor-recover-MB3T2K5T.js} +2 -2
  50. package/dist/{global-workspace-TI26K25J.js → global-workspace-EEWJOMED.js} +9 -3
  51. package/dist/{global-workspace-6LDUZ2NF.js → global-workspace-EWFL4HPW.js} +13 -7
  52. package/dist/index.cjs +3918 -2592
  53. package/dist/index.d.cts +350 -68
  54. package/dist/index.d.ts +350 -68
  55. package/dist/index.js +4181 -3462
  56. package/dist/{managed-accounts-4BLTJKAN.js → managed-accounts-46A4KRUE.js} +2 -2
  57. package/dist/mcp/run-stdio.cjs +1894 -2012
  58. package/dist/mcp/run-stdio.js +719 -1445
  59. package/dist/{orchestrator-5YU46YNS.js → orchestrator-6ZQ2CYS4.js} +9 -6
  60. package/dist/{orchestrator-4JSG7BWC.js → orchestrator-MA3MHYIM.js} +15 -13
  61. package/dist/{paths-IUR3ABNG.js → paths-HYT5WOOX.js} +1 -1
  62. package/dist/{thread-store-FJ5CDX2M.js → thread-store-B3ZM4QEZ.js} +3 -3
  63. package/dist/{workspaces-QJ3XIPUJ.js → workspaces-F33Z4CEY.js} +3 -3
  64. package/dist/{workspaces-WOQHJFRQ.js → workspaces-SLP24Z3S.js} +7 -7
  65. package/dist/{worktree-6U2FA5LO.js → worktree-ACW23KJ5.js} +6 -6
  66. package/dist/{worktree-KQA4ON2G.js → worktree-C7RPVHZ7.js} +2 -2
  67. package/package.json +1 -1
  68. package/dist/chunk-CEOTK5GZ.js +0 -479
  69. package/dist/chunk-K7B25HO4.js +0 -477
package/dist/index.d.cts CHANGED
@@ -1077,12 +1077,14 @@ interface IntegrationsSettings {
1077
1077
  /** When true, desktop/CLI listen for Slack DMs and @mentions via Socket Mode. */
1078
1078
  slackListenEnabled?: boolean;
1079
1079
  /**
1080
- * Stable per-Mac id for the Slack relay (Personal vs Work can both stay online).
1080
+ * Stable per-Mac id on the relay (Personal vs Work can both stay online).
1081
1081
  * Generated once; do not copy between machines.
1082
1082
  */
1083
1083
  slackDeviceId?: string;
1084
1084
  /** Human label for this Mac destination, e.g. Personal / Work. */
1085
1085
  slackDeviceLabel?: string;
1086
+ /** Secret that proves this Mac to the phone relay. Vaulted. */
1087
+ remoteHostSecret?: string;
1086
1088
  /**
1087
1089
  * How agents and Sideboard git helpers authenticate GitHub.
1088
1090
  * Omitted = {@link getGithubGitAuthMode} default (`auto`).
@@ -1275,6 +1277,8 @@ interface AdvancedAppSettings {
1275
1277
  * Audio bytes live under app data `sounds/agent-done.<ext>`.
1276
1278
  */
1277
1279
  agentDoneCustomSoundName?: string;
1280
+ readAloudRate?: number;
1281
+ readAloudVoiceURI?: string;
1278
1282
  }
1279
1283
  interface AppSettings {
1280
1284
  /** Environment variables injected into agent / hook processes (and process.env). */
@@ -1302,7 +1306,7 @@ interface AppSettings {
1302
1306
  accounts: ManagedAccountsState;
1303
1307
  }
1304
1308
  /** Integrations fields safe to send to the renderer (no token values). */
1305
- type PublicIntegrationsSettings = Omit<IntegrationsSettings, 'linearApiKey' | 'linearAccessToken' | 'linearRefreshToken' | 'linearClientSecret' | 'slackClientSecret' | 'slackAppToken' | 'githubPat' | 'abletimeAccessToken' | 'abletimeRefreshToken' | 'vercelToken' | 'supabaseAccessToken' | 'posthogPersonalApiKey' | 'sentryAuthToken'> & {
1309
+ type PublicIntegrationsSettings = Omit<IntegrationsSettings, 'linearApiKey' | 'linearAccessToken' | 'linearRefreshToken' | 'linearClientSecret' | 'slackClientSecret' | 'slackAppToken' | 'remoteHostSecret' | 'githubPat' | 'abletimeAccessToken' | 'abletimeRefreshToken' | 'vercelToken' | 'supabaseAccessToken' | 'posthogPersonalApiKey' | 'sentryAuthToken'> & {
1306
1310
  /** True when Linear is connected (OAuth or API key). */
1307
1311
  hasLinearApiKey: boolean;
1308
1312
  hasLinearOAuth: boolean;
@@ -1368,6 +1372,7 @@ declare function updateIntegrationsSettings(patch: {
1368
1372
  slackListenEnabled?: boolean | null;
1369
1373
  slackDeviceId?: string | null;
1370
1374
  slackDeviceLabel?: string | null;
1375
+ remoteHostSecret?: string | null;
1371
1376
  githubGitAuthMode?: GithubGitAuthMode | null;
1372
1377
  githubPat?: string | null;
1373
1378
  abletimeAccessToken?: string | null;
@@ -1523,14 +1528,6 @@ declare function getLinearApiKey(settings?: AppSettings): string | null;
1523
1528
  declare function brightsyCloudConnectEnabled(settings?: AppSettings): boolean;
1524
1529
  /** Slack Socket Mode inbound (Settings → Remote → Slack). Default off. */
1525
1530
  declare function slackListenEnabled(settings?: AppSettings): boolean;
1526
- /**
1527
- * Stable per-Mac identity for the Slack relay so Personal and Work can both
1528
- * stay online as separate destinations.
1529
- */
1530
- declare function ensureSlackDeviceIdentity(settings?: AppSettings): {
1531
- deviceId: string;
1532
- deviceLabel: string;
1533
- };
1534
1531
  /**
1535
1532
  * App-level token for Slack Socket Mode (`xapp-…`).
1536
1533
  * Env `SIDEBOARD_SLACK_APP_TOKEN` wins over settings.
@@ -1601,6 +1598,37 @@ declare function applyAppEnvironment(target?: NodeJS.ProcessEnv, settings?: AppS
1601
1598
  declare function childEnvWithAppSettings(extra?: Record<string, string | undefined>): NodeJS.ProcessEnv;
1602
1599
  declare function harnessEnvKey(harness: HarnessId): string | null;
1603
1600
 
1601
+ /** Web Speech API `utterance.rate` for chat Read Aloud. */
1602
+ declare const READ_ALOUD_RATE_MIN = 0.5;
1603
+ declare const READ_ALOUD_RATE_MAX = 3;
1604
+ declare const READ_ALOUD_RATE_DEFAULT = 1;
1605
+ declare function clampReadAloudRate(value: unknown): number;
1606
+ declare function sanitizeReadAloudVoiceURI(value: unknown): string | undefined;
1607
+ type ReadAloudSettingsFields = {
1608
+ readAloudRate?: number;
1609
+ readAloudVoiceURI?: string;
1610
+ };
1611
+ declare function copyReadAloudFromUnknown(source: Record<string, unknown>, out: ReadAloudSettingsFields): void;
1612
+ declare function patchReadAloudSettings(patch: {
1613
+ readAloudRate?: number;
1614
+ readAloudVoiceURI?: string | null;
1615
+ }, advanced: ReadAloudSettingsFields): void;
1616
+
1617
+ /**
1618
+ * Stable per-Mac identity on the relay so Personal and Work can both
1619
+ * stay online as separate destinations. Phone remote uses the same id.
1620
+ */
1621
+ declare function ensureSlackDeviceIdentity(settings?: AppSettings): {
1622
+ deviceId: string;
1623
+ deviceLabel: string;
1624
+ };
1625
+ /** Mac identity plus the secret the phone relay uses to recognize this machine. */
1626
+ declare function ensureRemoteHostCredentials(settings?: AppSettings): {
1627
+ deviceId: string;
1628
+ deviceLabel: string;
1629
+ hostSecret: string;
1630
+ };
1631
+
1604
1632
  /** Max size for an imported agent-done sound (5 MiB). */
1605
1633
  declare const AGENT_DONE_CUSTOM_SOUND_MAX_BYTES: number;
1606
1634
  declare const AGENT_DONE_CUSTOM_SOUND_EXTENSIONS: string[];
@@ -1924,6 +1952,10 @@ declare function findSlackCoordinator(teamId: string, userId: string): Thread |
1924
1952
  declare function ensureSlackCoordinator(teamId: string, userId: string, agent: AgentKind, opts?: {
1925
1953
  forceNew?: boolean;
1926
1954
  }): Thread;
1955
+ /** One Global chat for the phone paired to this Mac. */
1956
+ declare function remoteCoordinatorSourceRef(deviceId: string): string;
1957
+ declare function findRemoteCoordinator(deviceId: string): Thread | undefined;
1958
+ declare function ensureRemoteCoordinator(deviceId: string, agent: AgentKind): Thread;
1927
1959
  /** Find or create the singleton Brightsy cloud coordinator under Global. */
1928
1960
  declare function ensureCloudCoordinator(agent: AgentKind): Thread;
1929
1961
 
@@ -2491,6 +2523,42 @@ declare function getGitHubStatus(): Promise<GitHubStatus>;
2491
2523
  /** Open interactive `gh auth login` in a terminal-friendly way (caller may spawn UI). */
2492
2524
  declare function refreshGitHubAuth(): Promise<GitHubStatus>;
2493
2525
 
2526
+ /** Listed on get_issue / get_task. Download with the matching vendor tool. */
2527
+ interface IssueVendorAttachment {
2528
+ id: string;
2529
+ name: string;
2530
+ url: string;
2531
+ contentType?: string;
2532
+ sourceType?: string;
2533
+ }
2534
+ interface DownloadedIssueAttachment {
2535
+ name: string;
2536
+ /** Worktree-relative path under `.context/attachments/`. */
2537
+ path: string;
2538
+ bytes: number;
2539
+ contentType?: string;
2540
+ }
2541
+
2542
+ interface LinearIssueAttachment {
2543
+ id: string;
2544
+ title: string;
2545
+ url: string;
2546
+ subtitle?: string;
2547
+ sourceType?: string;
2548
+ }
2549
+ /**
2550
+ * Download a Linear file attachment into `.context/attachments/` using Account
2551
+ * Linear OAuth / API key. Pass the attachment uuid or upload URL from
2552
+ * `linear_get_issue`.
2553
+ */
2554
+ declare function downloadLinearAttachment(input: {
2555
+ id: string;
2556
+ name?: string;
2557
+ }, opts?: {
2558
+ apiKey?: string | null;
2559
+ destPath?: string | null;
2560
+ }): Promise<DownloadedIssueAttachment>;
2561
+
2494
2562
  interface LinearWorkflowState {
2495
2563
  id: string;
2496
2564
  name: string;
@@ -2540,12 +2608,6 @@ interface LinearIssueComment {
2540
2608
  name: string;
2541
2609
  };
2542
2610
  }
2543
- interface LinearIssueAttachment {
2544
- id: string;
2545
- title: string;
2546
- url: string;
2547
- subtitle?: string;
2548
- }
2549
2611
  interface LinearIssue {
2550
2612
  id: string;
2551
2613
  identifier: string;
@@ -2785,6 +2847,18 @@ declare function startLinearOAuth(opts?: {
2785
2847
  /** Revoke OAuth tokens (best-effort) and clear Linear credentials including API key. */
2786
2848
  declare function disconnectLinear(): Promise<AppSettings>;
2787
2849
 
2850
+ /**
2851
+ * Download a GitHub issue file (user-attachments / githubusercontent) using
2852
+ * Account `gh` into `.context/attachments/`. Pass the URL from
2853
+ * `github_get_issue` attachments.
2854
+ */
2855
+ declare function downloadGitHubIssueAttachment(input: {
2856
+ url: string;
2857
+ name?: string;
2858
+ }, opts?: {
2859
+ repoPath?: string | null;
2860
+ }): Promise<DownloadedIssueAttachment>;
2861
+
2788
2862
  interface GitHubIssueComment {
2789
2863
  id?: string;
2790
2864
  body: string;
@@ -2803,6 +2877,7 @@ interface GitHubIssue {
2803
2877
  labels: string[];
2804
2878
  assignees: string[];
2805
2879
  comments: GitHubIssueComment[];
2880
+ attachments: IssueVendorAttachment[];
2806
2881
  }
2807
2882
  declare function parseGitHubIssueNumber(id: string): number;
2808
2883
  declare function resolveGitHubIssueRepo(repoPath?: string | null): Promise<{
@@ -2868,6 +2943,19 @@ declare function createGitHubIssue(input: {
2868
2943
  repoPath?: string | null;
2869
2944
  }): Promise<GitHubIssue>;
2870
2945
 
2946
+ /**
2947
+ * Download an AbleTime task file into `.context/attachments/` using the Account
2948
+ * token. Pass the attachment id or URL from `abletime_get_task`.
2949
+ */
2950
+ declare function downloadAbleTimeAttachment(input: {
2951
+ id: string;
2952
+ name?: string;
2953
+ }, opts?: {
2954
+ token?: string | null;
2955
+ host?: string | null;
2956
+ destPath?: string | null;
2957
+ }): Promise<DownloadedIssueAttachment>;
2958
+
2871
2959
  interface AbleTimeComment {
2872
2960
  id?: string;
2873
2961
  body: string;
@@ -2890,6 +2978,7 @@ interface AbleTimeTask {
2890
2978
  };
2891
2979
  labels: string[];
2892
2980
  comments: AbleTimeComment[];
2981
+ attachments: IssueVendorAttachment[];
2893
2982
  createdAt?: string;
2894
2983
  updatedAt?: string;
2895
2984
  }
@@ -4304,6 +4393,45 @@ interface RepoSetupInfo {
4304
4393
  /** Setup panel state for a thread worktree (falls back to main repo config). */
4305
4394
  declare function getRepoSetupInfo(worktreePath: string, repoPath?: string | null): RepoSetupInfo;
4306
4395
 
4396
+ declare const PORT_RANGE_SIZE = 10;
4397
+ type PortReservation = {
4398
+ port: number;
4399
+ /** Stop holding the port so a child can bind it. Idempotent. */
4400
+ release: () => Promise<void>;
4401
+ };
4402
+ /**
4403
+ * Bind an ephemeral port and keep the socket open until `release()`.
4404
+ * Closing then rebinding races other worktrees / agents (TOCTOU) — especially
4405
+ * with Vite `strictPort: true`, which fails Start instead of falling back.
4406
+ */
4407
+ declare function reservePort(): Promise<PortReservation>;
4408
+ /** @deprecated Prefer reservePort — releasing immediately reopens the race. */
4409
+ declare function allocatePort(): Promise<number>;
4410
+ declare function tryReservePort(port: number): Promise<PortReservation | null>;
4411
+ /** Reserve every port or none. */
4412
+ declare function tryReservePorts(ports: number[]): Promise<PortReservation[] | null>;
4413
+ type ReservePortRangeOpts = {
4414
+ /** Reuse this worktree's last assignment when still free (or reclaimable). */
4415
+ preferred?: number[];
4416
+ /** When preferred ports are busy, kill leftovers whose cwd is this worktree. */
4417
+ worktreePath?: string;
4418
+ /**
4419
+ * Ports saved for other run scripts in this worktree. Never bind or kill
4420
+ * them — desktop and mobile (or any pair) stay up together.
4421
+ */
4422
+ avoid?: number[];
4423
+ };
4424
+ /**
4425
+ * Hold a block of ports (Conductor: CONDUCTOR_PORT … +9) until release.
4426
+ * Callers must `release()` immediately before spawning the child that binds them.
4427
+ * When `preferred` is set, reuse those ports — reclaim a leftover Dev instance
4428
+ * on them instead of allocating a new range. SIDEBOARD_PORT is preferred[0];
4429
+ * a sibling holding a later slot must not force a new block.
4430
+ */
4431
+ declare function reservePortRange(size?: number, opts?: ReservePortRangeOpts): Promise<PortReservation[]>;
4432
+ /** Allocate a contiguous block, releasing holds immediately (legacy / tests). */
4433
+ declare function allocatePortRange(size?: number): Promise<number[]>;
4434
+
4307
4435
  /** Per-worktree sticky Dev ports (gitignored scratch). */
4308
4436
  declare const RUN_PORTS_REL = ".context/.sideboard/run-ports.json";
4309
4437
  declare function worktreeRunPortsPath(worktreePath: string): string;
@@ -4321,7 +4449,6 @@ type SetupRunResult = {
4321
4449
 
4322
4450
  type ConductorSettings = RepoSettings;
4323
4451
 
4324
- declare const PORT_RANGE_SIZE = 10;
4325
4452
  /**
4326
4453
  * Read `.worktreeinclude` patterns (one per line; `#` comments; blank skipped).
4327
4454
  * Conductor: repo-root file listing gitignored files to copy into each worktree.
@@ -4415,38 +4542,6 @@ declare function listRunScripts(worktreePath: string, repoPath?: string | null):
4415
4542
  declare function getDefaultRunScript(worktreePath: string, repoPath?: string | null): RunScript | null;
4416
4543
  declare function getRunScript(worktreePath: string, repoPath: string | null | undefined, name?: string | null): RunScript | null;
4417
4544
  declare function getRunMode(worktreePath: string, repoPath?: string | null): 'concurrent' | 'nonconcurrent';
4418
- type PortReservation = {
4419
- port: number;
4420
- /** Stop holding the port so a child can bind it. Idempotent. */
4421
- release: () => Promise<void>;
4422
- };
4423
- /**
4424
- * Bind an ephemeral port and keep the socket open until `release()`.
4425
- * Closing then rebinding races other worktrees / agents (TOCTOU) — especially
4426
- * with Vite `strictPort: true`, which fails Start instead of falling back.
4427
- */
4428
- declare function reservePort(): Promise<PortReservation>;
4429
- /** @deprecated Prefer reservePort — releasing immediately reopens the race. */
4430
- declare function allocatePort(): Promise<number>;
4431
- declare function tryReservePort(port: number): Promise<PortReservation | null>;
4432
- /** Reserve every port or none. */
4433
- declare function tryReservePorts(ports: number[]): Promise<PortReservation[] | null>;
4434
- type ReservePortRangeOpts = {
4435
- /** Reuse this worktree's last assignment when still free (or reclaimable). */
4436
- preferred?: number[];
4437
- /** When preferred ports are busy, kill leftovers whose cwd is this worktree. */
4438
- worktreePath?: string;
4439
- };
4440
- /**
4441
- * Hold a block of ports (Conductor: CONDUCTOR_PORT … +9) until release.
4442
- * Callers must `release()` immediately before spawning the child that binds them.
4443
- * When `preferred` is set, reuse those ports — reclaim a leftover Dev instance
4444
- * on them instead of allocating a new range. SIDEBOARD_PORT is preferred[0];
4445
- * a sibling holding a later slot must not force a new block.
4446
- */
4447
- declare function reservePortRange(size?: number, opts?: ReservePortRangeOpts): Promise<PortReservation[]>;
4448
- /** Allocate a contiguous block, releasing holds immediately (legacy / tests). */
4449
- declare function allocatePortRange(size?: number): Promise<number[]>;
4450
4545
  interface DevServerHandle {
4451
4546
  pid: number | undefined;
4452
4547
  port: number;
@@ -5803,11 +5898,11 @@ declare const SIDEBOARD_MCP_PROFILE_ENV = "SIDEBOARD_MCP_PROFILE";
5803
5898
  /** Full worktree MCP catalog. `worktreeMcpToolNames` drops Agent RPC pilots when native. */
5804
5899
  declare const WORKTREE_MCP_TOOLS: readonly ["present_artifact", "ask_user", "present_plan", "present_schema", "present_files", "wait_for_job", "stop_job", "list_run_scripts", "run_dev_script", "stop_dev_script", "get_run_log", "notify_orchestrator", "get_viewer_context", "update_viewer_context", "list_schedules", "create_schedule", "update_schedule", "delete_schedule", "run_schedule"];
5805
5900
  /** GitHub Issues via Account `gh` — always registered on worktree + orchestration. */
5806
- declare const WORKTREE_GITHUB_MCP_TOOLS: readonly ["github_search_issues", "github_get_issue", "github_comment", "github_update_issue", "github_create_issue"];
5901
+ declare const WORKTREE_GITHUB_MCP_TOOLS: readonly ["github_search_issues", "github_get_issue", "github_download_attachment", "github_comment", "github_update_issue", "github_create_issue"];
5807
5902
  /** Account Linear tools registered when Linear is connected. */
5808
- declare const WORKTREE_LINEAR_MCP_TOOLS: readonly ["linear_list_teams", "linear_search_issues", "linear_get_issue", "linear_create_issue", "linear_update_issue", "linear_comment"];
5903
+ declare const WORKTREE_LINEAR_MCP_TOOLS: readonly ["linear_list_teams", "linear_search_issues", "linear_get_issue", "linear_download_attachment", "linear_create_issue", "linear_update_issue", "linear_comment"];
5809
5904
  /** Account AbleTime tools registered when AbleTime is connected. */
5810
- declare const WORKTREE_ABLETIME_MCP_TOOLS: readonly ["abletime_orientation", "abletime_list_projects", "abletime_list_tasks", "abletime_search_tasks", "abletime_get_task", "abletime_comment", "abletime_update_task", "abletime_create_task", "abletime_ensure_task"];
5905
+ declare const WORKTREE_ABLETIME_MCP_TOOLS: readonly ["abletime_orientation", "abletime_list_projects", "abletime_list_tasks", "abletime_search_tasks", "abletime_get_task", "abletime_download_attachment", "abletime_comment", "abletime_update_task", "abletime_create_task", "abletime_ensure_task"];
5811
5906
  declare function sideboardMcpProfile(env?: NodeJS.ProcessEnv): SideboardMcpProfile;
5812
5907
 
5813
5908
  type NotifyOrchestratorReason = 'input-required' | 'blocked';
@@ -6454,13 +6549,13 @@ declare function disconnectSlackWorkspace(teamId: string): SlackWorkspaceInfo[];
6454
6549
  /** Add or update a workspace from a pasted bot (`xoxb-`) or user (`xoxp-`) token. */
6455
6550
  declare function connectSlackToken(rawToken: string): Promise<SlackWorkspaceInfo>;
6456
6551
 
6457
- /** Live status of the Brightsy cloud connect daemon in the desktop app. */
6458
- interface CloudConnectStatus {
6459
- enabled: boolean;
6552
+ /** Live status of the phone remote (hosted relay). */
6553
+ interface RemoteHostStatus {
6460
6554
  running: boolean;
6461
- agent: BrightsyCloudConnectAgent;
6462
- endpoint: string | null;
6463
- workspaces: Workspace[];
6555
+ connected: boolean;
6556
+ deviceLabel: string | null;
6557
+ phoneConnected: boolean;
6558
+ pairingCode: string | null;
6464
6559
  lastError: string | null;
6465
6560
  lastLog: string | null;
6466
6561
  }
@@ -6479,6 +6574,18 @@ interface SlackListenStatus {
6479
6574
  lastError: string | null;
6480
6575
  lastLog: string | null;
6481
6576
  }
6577
+
6578
+ /** Live status of the Brightsy cloud connect daemon in the desktop app. */
6579
+ interface CloudConnectStatus {
6580
+ enabled: boolean;
6581
+ running: boolean;
6582
+ agent: BrightsyCloudConnectAgent;
6583
+ endpoint: string | null;
6584
+ workspaces: Workspace[];
6585
+ lastError: string | null;
6586
+ lastLog: string | null;
6587
+ }
6588
+
6482
6589
  /** Open-worktree cube targets (Finder, Cursor, VS Code, …). */
6483
6590
  type WorktreeOpenerId = 'finder' | 'cursor' | 'code' | 'xcode' | 'terminal' | 'datagrip';
6484
6591
  /** Installed third-party (and Finder) apps the worktree cube can open. */
@@ -6670,6 +6777,10 @@ interface IpcApi {
6670
6777
  }>;
6671
6778
  /** Sideboard Slack listen (DMs + @mentions → Global orchestrator). */
6672
6779
  getSlackListenStatus(): Promise<SlackListenStatus>;
6780
+ /** Phone remote: this Mac registered on the relay. */
6781
+ getRemoteStatus(): Promise<RemoteHostStatus>;
6782
+ /** Ask the relay for a short pairing code the phone can enter. */
6783
+ requestRemotePairingCode(): Promise<RemoteHostStatus>;
6673
6784
  setSlackListen(opts: {
6674
6785
  enabled: boolean;
6675
6786
  }): Promise<SlackListenStatus>;
@@ -7026,6 +7137,14 @@ interface IpcApi {
7026
7137
  * When `threadRef` is set, files are staged into the worktree (same as drop).
7027
7138
  */
7028
7139
  pickFiles(threadRef?: string | null): Promise<ThreadAttachment[]>;
7140
+ /** Prompt macOS for microphone access (dictation). Non-darwin is always true. */
7141
+ askMicrophoneAccess(): Promise<boolean>;
7142
+ /** Transcribe a held dictation clip (PCM WAV, base64). macOS Speech framework. */
7143
+ transcribeDictation(wavBase64: string, locale?: string): Promise<string>;
7144
+ /** Packaged Sideboard.app vs Dev Electron — Privacy lists different names. */
7145
+ getDictationPrivacyHelp(): Promise<{
7146
+ packaged: boolean;
7147
+ }>;
7029
7148
  /** Build composer attachments from absolute paths without a worktree (create modal). */
7030
7149
  attachmentsFromPaths(absolutePaths: string[]): Promise<ThreadAttachment[]>;
7031
7150
  /** Build composer attachments from in-memory file buffers (create modal drop fallback). */
@@ -7415,11 +7534,11 @@ declare function userMcpNamesToDisable(opts: {
7415
7534
  names: Iterable<string>;
7416
7535
  }): string[];
7417
7536
 
7418
- /** Public WebSocket URL for the hosted Slack inbound relay (path included). */
7537
+ /** Public WebSocket URL for Slack desktops on the hosted relay (path included). */
7419
7538
  declare const BAKED_SLACK_RELAY_URL = "wss://relay.sideboard.cloud/slack/desktop";
7420
7539
  declare function hasBakedSlackOAuth(): boolean;
7421
7540
  /**
7422
- * Relay URL for inbound Slack when this Mac has no local xapp-.
7541
+ * WebSocket URL for this Mac's Slack desktop session on the relay.
7423
7542
  * Override with SIDEBOARD_SLACK_RELAY_URL for local relay testing.
7424
7543
  */
7425
7544
  declare function slackRelayUrl(): string;
@@ -7460,6 +7579,14 @@ interface SlackWebSocket {
7460
7579
  }) => void): void;
7461
7580
  }
7462
7581
  type SlackWebSocketCtor = new (url: string) => SlackWebSocket;
7582
+ type SlackLifecycleEvent = {
7583
+ kind: 'app_home_opened';
7584
+ teamId: string;
7585
+ userId: string;
7586
+ } | {
7587
+ kind: 'app_uninstalled';
7588
+ teamId: string;
7589
+ };
7463
7590
  interface SlackInboundMessage {
7464
7591
  teamId: string;
7465
7592
  channelId: string;
@@ -7474,6 +7601,8 @@ interface SlackSocketModeOptions {
7474
7601
  signal?: AbortSignal;
7475
7602
  onLog?: (line: string) => void;
7476
7603
  onEvent: (msg: SlackInboundMessage) => void | Promise<void>;
7604
+ /** App Home / uninstall — not forwarded to a Mac as a chat turn. */
7605
+ onLifecycle?: (event: SlackLifecycleEvent) => void | Promise<void>;
7477
7606
  fetchImpl?: typeof fetch;
7478
7607
  WebSocketImpl?: SlackWebSocketCtor;
7479
7608
  }
@@ -7554,6 +7683,144 @@ declare function resolveSlackListenMode(opts?: {
7554
7683
  workspaceCount?: number;
7555
7684
  }): 'relay' | null;
7556
7685
 
7686
+ interface RemoteSocket {
7687
+ send(data: string): void;
7688
+ close(code?: number, reason?: string): void;
7689
+ }
7690
+ /**
7691
+ * In-memory phone ↔ Mac registry. One active phone socket per Mac.
7692
+ * A phone may hold session tokens for several Macs and attaches to one at a time.
7693
+ * Host secrets and session tokens survive that Mac reconnecting in this process.
7694
+ * A relay restart drops them — the phone pairs again.
7695
+ */
7696
+ declare class RemoteHub {
7697
+ private readonly hosts;
7698
+ private readonly remembered;
7699
+ private readonly bySocket;
7700
+ private readonly codes;
7701
+ private readonly phonesByToken;
7702
+ handleClientMessage(socket: RemoteSocket, raw: string): void;
7703
+ detachSocket(socket: RemoteSocket): void;
7704
+ private dispatch;
7705
+ private registerHost;
7706
+ private issueCode;
7707
+ private pairPhone;
7708
+ private resumePhone;
7709
+ private listHosts;
7710
+ private releasePhoneSocket;
7711
+ private attachPhone;
7712
+ private fromPhone;
7713
+ private fromHost;
7714
+ }
7715
+
7716
+ interface RemoteHostClientOptions {
7717
+ url: string;
7718
+ deviceId: string;
7719
+ deviceLabel: string;
7720
+ hostSecret: string;
7721
+ signal?: AbortSignal;
7722
+ onStatus?: (status: {
7723
+ connected: boolean;
7724
+ phoneConnected: boolean;
7725
+ }) => void;
7726
+ onPairingCode?: (code: string | null) => void;
7727
+ onLog?: (line: string) => void;
7728
+ /** Tests: override keepalive cadence. */
7729
+ pingIntervalMs?: number;
7730
+ pongTimeoutMs?: number;
7731
+ }
7732
+ interface RemoteHostHandle {
7733
+ requestPairingCode(): void;
7734
+ /** Re-register this Mac so phones see a renamed desktop without a new pairing. */
7735
+ updateIdentity(deviceLabel: string): void;
7736
+ }
7737
+ /**
7738
+ * Keep this Mac registered on the relay and run phone prompts on the
7739
+ * Global orchestrator. Reconnects until `signal` aborts.
7740
+ */
7741
+ declare function runRemoteHost(opts: RemoteHostClientOptions): RemoteHostHandle;
7742
+
7743
+ /** Phone ↔ relay ↔ Mac. Message text only. The Mac runs the orchestrator. */
7744
+ declare const REMOTE_RELAY_PATH = "/remote";
7745
+ declare const BAKED_REMOTE_RELAY_URL = "wss://relay.sideboard.cloud/remote";
7746
+ declare function remoteRelayUrl(): string;
7747
+ interface RemoteAskOption {
7748
+ label: string;
7749
+ description?: string;
7750
+ }
7751
+ interface RemoteAskQuestion {
7752
+ question: string;
7753
+ options: RemoteAskOption[];
7754
+ }
7755
+ interface RemoteHostSummary {
7756
+ sessionToken: string;
7757
+ deviceId: string;
7758
+ deviceLabel: string;
7759
+ online: boolean;
7760
+ }
7761
+ /** Relay → Mac or phone */
7762
+ type RemoteServerMessage = {
7763
+ type: 'registered';
7764
+ deviceId: string;
7765
+ deviceLabel: string;
7766
+ } | {
7767
+ type: 'pairing_code';
7768
+ code: string;
7769
+ expiresAt: number;
7770
+ } | {
7771
+ type: 'phone_joined';
7772
+ } | {
7773
+ type: 'phone_left';
7774
+ } | {
7775
+ type: 'inbound';
7776
+ text: string;
7777
+ } | {
7778
+ type: 'stop';
7779
+ } | {
7780
+ type: 'paired';
7781
+ deviceId: string;
7782
+ deviceLabel: string;
7783
+ sessionToken: string;
7784
+ } | {
7785
+ type: 'assistant';
7786
+ text: string;
7787
+ } | {
7788
+ type: 'ask_user';
7789
+ text: string;
7790
+ questions: RemoteAskQuestion[];
7791
+ } | {
7792
+ type: 'hosts';
7793
+ hosts: RemoteHostSummary[];
7794
+ } | {
7795
+ type: 'host_offline';
7796
+ } | {
7797
+ type: 'error';
7798
+ message: string;
7799
+ } | {
7800
+ type: 'pong';
7801
+ };
7802
+
7803
+ declare function formatRemotePrompt(text: string): string;
7804
+ declare function isRemoteStopCommand(text: string): boolean;
7805
+ type RemoteOutbound = {
7806
+ type: 'assistant';
7807
+ text: string;
7808
+ } | {
7809
+ type: 'ask_user';
7810
+ text: string;
7811
+ questions: RemoteAskQuestion[];
7812
+ };
7813
+ /**
7814
+ * Phone text → Global orchestrator on this Mac → reply or ask_user buttons.
7815
+ * Same turn loop as Slack Listen, without Slack.
7816
+ */
7817
+ declare function handleRemoteInbound(text: string, opts: {
7818
+ deviceId: string;
7819
+ agent?: AgentKind;
7820
+ onOutbound: (msg: RemoteOutbound) => void;
7821
+ onLog?: (line: string) => void;
7822
+ }): void;
7823
+
7557
7824
  interface SlackAuthTest {
7558
7825
  ok: boolean;
7559
7826
  url?: string;
@@ -7604,6 +7871,9 @@ type SlackRelayServerMessage = {
7604
7871
  message: string;
7605
7872
  } | {
7606
7873
  type: 'pong';
7874
+ } | {
7875
+ type: 'uninstalled';
7876
+ teamId: string;
7607
7877
  };
7608
7878
  declare function parseSlackRelayClientMessage(raw: string): SlackRelayClientMessage | null;
7609
7879
  declare function parseSlackRelayServerMessage(raw: string): SlackRelayServerMessage | null;
@@ -7618,6 +7888,7 @@ interface SlackRelaySession {
7618
7888
  userId: string;
7619
7889
  deviceId: string;
7620
7890
  deviceLabel: string;
7891
+ botToken: string;
7621
7892
  socket: SlackRelaySocket;
7622
7893
  connectedAt: number;
7623
7894
  }
@@ -7636,6 +7907,8 @@ declare class SlackRelayHub {
7636
7907
  private readonly sessions;
7637
7908
  private readonly bySocket;
7638
7909
  private readonly pendingClaims;
7910
+ /** Workspace bot tokens for App Home + "no Mac online" replies (in-memory). */
7911
+ private readonly botByTeam;
7639
7912
  private seq;
7640
7913
  private readonly fetchImpl?;
7641
7914
  private readonly authTest;
@@ -7654,11 +7927,17 @@ declare class SlackRelayHub {
7654
7927
  */
7655
7928
  routeEvent(message: SlackInboundMessage): boolean;
7656
7929
  private handleClaim;
7930
+ rememberBot(teamId: string, botToken: string): void;
7931
+ botTokenFor(teamId: string): string | null;
7932
+ uninstallTeam(teamId: string): void;
7933
+ handleAppHomeOpened(teamId: string, userId: string): Promise<void>;
7934
+ private replyNoMacOnline;
7657
7935
  private send;
7658
7936
  }
7659
7937
 
7660
- interface SlackRelayServerOptions {
7661
- appToken: string;
7938
+ interface RelayServerOptions {
7939
+ /** Required unless skipSocketMode. Phone remote does not use this token. */
7940
+ appToken?: string;
7662
7941
  /** OAuth client secret — from Fly `SIDEBOARD_SLACK_CLIENT_SECRET`. Never ship in the DMG. */
7663
7942
  clientSecret?: string;
7664
7943
  clientId?: string;
@@ -7681,18 +7960,19 @@ interface SlackRelayServerOptions {
7681
7960
  /** Canonical public site host (default `www.sideboard.cloud`). */
7682
7961
  canonicalSiteHost?: string;
7683
7962
  }
7684
- interface SlackRelayServerHandle {
7963
+ interface RelayServerHandle {
7685
7964
  port: number;
7686
7965
  url: string;
7687
7966
  hub: SlackRelayHub;
7688
7967
  close: () => Promise<void>;
7689
7968
  }
7690
7969
  /**
7691
- * Hosted Slack inbound relay: one Socket Mode connection (xapp- on the server)
7692
- * plus desktop WebSocket sessions that register via bot-token auth.test.
7970
+ * Hosted relay. Phone and Mac use `/remote`. The marketing site and AbleTime
7971
+ * OAuth bounce are served here too. Slack desktops use `/slack/desktop`, and
7972
+ * Socket Mode runs only when an xapp- token is set.
7693
7973
  * GET /slack/callback exchanges Slack OAuth (client secret stays here).
7694
7974
  */
7695
- declare function startSlackRelayServer(opts: SlackRelayServerOptions): Promise<SlackRelayServerHandle>;
7975
+ declare function startRelayServer(opts: RelayServerOptions): Promise<RelayServerHandle>;
7696
7976
 
7697
7977
  interface SlackRelayRegisterWorkspace {
7698
7978
  teamId: string;
@@ -7711,6 +7991,8 @@ interface SlackRelayClientOptions {
7711
7991
  deviceLabel?: string;
7712
7992
  signal?: AbortSignal;
7713
7993
  onEvent: (msg: SlackInboundMessage) => void | Promise<void>;
7994
+ /** Workspace removed the Slack app — drop local tokens for that team. */
7995
+ onUninstalled?: (teamId: string) => void;
7714
7996
  onLog?: (line: string) => void;
7715
7997
  WebSocketImpl?: SlackWebSocketCtor;
7716
7998
  /** Tests: override keepalive cadence. */
@@ -7720,7 +8002,7 @@ interface SlackRelayClientOptions {
7720
8002
  claimFallbackMs?: number;
7721
8003
  }
7722
8004
  /**
7723
- * Desktop client: connect to the hosted Slack relay, register this Mac as a
8005
+ * Slack desktop client: connect to the relay, register this Mac as a
7724
8006
  * destination for the OAuth Slack user, claim inbound events before handling.
7725
8007
  */
7726
8008
  declare function runSlackRelayClient(opts: SlackRelayClientOptions): Promise<void>;
@@ -7795,4 +8077,4 @@ declare function pollSlackOutboundWatches(opts?: {
7795
8077
  now?: number;
7796
8078
  }): Promise<void>;
7797
8079
 
7798
- export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RPC_NATIVE_ENV, AGENT_RPC_PROTOCOL_VERSION, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentRpcConnect, type AgentRuntimeMetadata, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BASE_ALLOWED_TOOLS, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, 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, CHAT_LINK_PREFIX, CHAT_TEXT_SCALES, CHAT_TEXT_SCALE_DEFAULT, CLAUDE_CHROME_ALLOWED_TOOLS, CLAUDE_MODEL_CATALOG, CLAUDE_PRINT_BG_WAIT_CEILING_MS, CLAUDE_SUMMARY_TIMEOUT_MS, CLI_DIR, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_CANCELED_REPLY, CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, CURSOR_SDK_INSTALL_HINT, type CaffeinateHoldState, type ChatTextScale, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_RUN_LOG_TAIL_CHARS, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevAccessRun, type DevPreview, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, EMPTY_MANAGED_ACCOUNTS, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LEGACY_THREAD_LINK_PREFIX, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type ManagedAccount, type ManagedAccountKind, type ManagedAccountsState, type McpServerStatus, type MessagePart, type NextManagedAccount, type NotifyOrchestratorReason, type NotifyOrchestratorResult, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, type OutboundTurnCopy, type OutboundTurnSnapshot, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_MODE_OFF_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PORT_RANGE_SIZE, PRESENT_PLAN_REQUIRES_PLAN_MODE, PRESENT_PLAN_TOOL_DESCRIPTION, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_LABEL_MAX, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, RUN_PORTS_REL, RUN_SCRIPT_DESKTOP_ADOPT_MS, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ReservePortRangeOpts, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunLogSnapshot, type RunMode, type RunScript, type RunScriptPreviewInput, type RunScriptRequest, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_INPUT_REQUIRED_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TaskState, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeListBadge, type WorktreeOpener, type WorktreeOpenerId, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, accountIdToPin, ackSlackInboundSeen, activeAccountId, activeRunPreview, addBoardPin, addManagedAccount, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, agentRpcConnectFromMetadata, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, annotateDevAccessRuns, appDataDir, appSettingsPath, appendCompactedMessages, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyManagedAccountEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canReuseIdleWorktreeAgentForReview, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, chatLinkUrl, chatTextScale, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, classifyRunScriptPreview, classifyWorktreeColumn, classifyWorktreeListBadges, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commandLooksLikeElectron, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, compactArchiveProse, compactPartsForSummaryMessage, compactSummaryPart, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, deriveTaskState, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptyRunLog, emptySetupLog, encodeBrightsyTarget, endedOnAskUser, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureManagedAccountDir, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findManagedAccount, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatAskUserNotifyMessage, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatCloudTurnReply, formatDetachedJobInvoke, formatDevAccessHint, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatInjectedNoticesForTurn, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatNotifyOrchestratorPrompt, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackTurnReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentRpcServer, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghPrCreateAssigneeArgs, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, hasWorkspaceSettingsToml, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAdoptableRunScriptRequest, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isChatTextScale, isCloudCoordinatorThread, isCompactToolName, isConductorBundledCli, isContextCompactDone, isContextCompactInProgress, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isCursorSdkInstalled, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIncompleteTaskState, isInjectedNoticeText, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isManagedAccountKind, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isOtherWorktreeListenerCwd, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSkillToolName, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isSystemStatusThinking, isTerminalTaskState, isThinkingEffort, isThisProcessDesktopHost, isThisWorktreeListenerCwd, isThreadCaffeinated, isThreadRecordFile, isUnclaimedRunScriptRequest, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killDetachedRunTree, killListenersOnPorts, killStaleWorktreeListeners, killableListenerPids, lastAgentReply, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, linkifyChatUrls, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, listenerCwd, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, loadWorktreeRunPorts, localhostPreviewUrl, locksDir, loginAgent, loginEnvPrefix, loginManagedAccount, looksLikeComposerSkillExpansion, looksLikeConversationSummary, looksLikeIncompleteSkillDump, looksLikeSkillBody, lookupSoccerTeam, managedAccountConfigDir, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesForCompactArchive, messagesSinceLastBrightsyContextSummary, mirrorHostConfig, moveQueuedItemToFront, needsCoordinatorAction, nextManagedAccount, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeManagedAccounts, normalizeParseResult, normalizeReviewLabel, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, notifyOrchestrator, npmGlobalNodeModules, npmGlobalPrefix, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, outboundReplyFromTurn, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseChatLink, parseClaudeUsagePayload, parseCursorRunnerLine, parseDevPreview, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingInjectedNotices, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planModeTurnInstruction, planQuestionsSignature, pnpmFilterPackage, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, previousCostBaseline, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readAgentRuntimeMetadata, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readRunLog, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeManagedAccount, removeQueuedItem, removeWorkspace, removeWorktree, renameManagedAccount, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountForThread, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveCursorSdkRoot, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveProjectReviewLabel, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, reviewLabelForRepo, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runScriptPreview, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, saveWorktreeRunPorts, scheduleNeedsCaffeinate, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, selectManagedAccount, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldNotifyOrchestrator, shouldRefreshReviewRequestTemplate, shouldRegisterPresentPlan, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, skillCommandFromBody, skillCommandFromInput, skillNameFromFrontmatter, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, sliceRunLogOutput, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startAgentRpcServer, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, statWorktreePath, stopAgentRpcServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, switchWorktreeBranch, syncWorkspacesFromThreads, systemConfigDir, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadMayPresentPlan, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, tryReservePort, tryReservePorts, turnCostUsdFromCursorUsage, turnCostUsdFromProviderSnapshot, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleAssistantText, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withAddedAccount, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withRemovedAccount, withSelectedAccount, withThreadLock, withTurnScopedCost, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeRunPortsPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
8080
+ export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RPC_NATIVE_ENV, AGENT_RPC_PROTOCOL_VERSION, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentRpcConnect, type AgentRuntimeMetadata, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_REMOTE_RELAY_URL, BAKED_SLACK_RELAY_URL, BASE_ALLOWED_TOOLS, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, 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, CHAT_LINK_PREFIX, CHAT_TEXT_SCALES, CHAT_TEXT_SCALE_DEFAULT, CLAUDE_CHROME_ALLOWED_TOOLS, CLAUDE_MODEL_CATALOG, CLAUDE_PRINT_BG_WAIT_CEILING_MS, CLAUDE_SUMMARY_TIMEOUT_MS, CLI_DIR, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_CANCELED_REPLY, CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, CURSOR_SDK_INSTALL_HINT, type CaffeinateHoldState, type ChatTextScale, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_RUN_LOG_TAIL_CHARS, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevAccessRun, type DevPreview, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, EMPTY_MANAGED_ACCOUNTS, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LEGACY_THREAD_LINK_PREFIX, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type ManagedAccount, type ManagedAccountKind, type ManagedAccountsState, type McpServerStatus, type MessagePart, type NextManagedAccount, type NotifyOrchestratorReason, type NotifyOrchestratorResult, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, type OutboundTurnCopy, type OutboundTurnSnapshot, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_MODE_OFF_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PORT_RANGE_SIZE, PRESENT_PLAN_REQUIRES_PLAN_MODE, PRESENT_PLAN_TOOL_DESCRIPTION, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, READ_ALOUD_RATE_DEFAULT, READ_ALOUD_RATE_MAX, READ_ALOUD_RATE_MIN, REMOTE_RELAY_PATH, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_LABEL_MAX, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, RUN_PORTS_REL, RUN_SCRIPT_DESKTOP_ADOPT_MS, type ReadAloudSettingsFields, type RelayServerHandle, type RelayServerOptions, type RemoteAskQuestion, type RemoteHostClientOptions, type RemoteHostHandle, type RemoteHostStatus, RemoteHub, type RemoteServerMessage, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ReservePortRangeOpts, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunLogSnapshot, type RunMode, type RunScript, type RunScriptPreviewInput, type RunScriptRequest, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_INPUT_REQUIRED_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerMessage, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TaskState, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeListBadge, type WorktreeOpener, type WorktreeOpenerId, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, accountIdToPin, ackSlackInboundSeen, activeAccountId, activeRunPreview, addBoardPin, addManagedAccount, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, agentRpcConnectFromMetadata, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, annotateDevAccessRuns, appDataDir, appSettingsPath, appendCompactedMessages, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyManagedAccountEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canReuseIdleWorktreeAgentForReview, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, chatLinkUrl, chatTextScale, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, clampReadAloudRate, classifyRunScriptPreview, classifyWorktreeColumn, classifyWorktreeListBadges, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commandLooksLikeElectron, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, compactArchiveProse, compactPartsForSummaryMessage, compactSummaryPart, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, copyReadAloudFromUnknown, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, deriveTaskState, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, downloadAbleTimeAttachment, downloadGitHubIssueAttachment, downloadLinearAttachment, dropCachedPrefixOnResume, emptyPublicIntegrations, emptyRunLog, emptySetupLog, encodeBrightsyTarget, endedOnAskUser, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureManagedAccountDir, ensureRemoteCoordinator, ensureRemoteHostCredentials, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findManagedAccount, findOrphanWorktrees, findProjectProfileKey, findRemoteCoordinator, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatAskUserNotifyMessage, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatCloudTurnReply, formatDetachedJobInvoke, formatDevAccessHint, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatInjectedNoticesForTurn, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatNotifyOrchestratorPrompt, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRemotePrompt, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackTurnReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentRpcServer, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghPrCreateAssigneeArgs, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleRemoteInbound, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, hasWorkspaceSettingsToml, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAdoptableRunScriptRequest, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isChatTextScale, isCloudCoordinatorThread, isCompactToolName, isConductorBundledCli, isContextCompactDone, isContextCompactInProgress, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isCursorSdkInstalled, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIncompleteTaskState, isInjectedNoticeText, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isManagedAccountKind, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isOtherWorktreeListenerCwd, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isRemoteStopCommand, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSkillToolName, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isSystemStatusThinking, isTerminalTaskState, isThinkingEffort, isThisProcessDesktopHost, isThisWorktreeListenerCwd, isThreadCaffeinated, isThreadRecordFile, isUnclaimedRunScriptRequest, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killDetachedRunTree, killListenersOnPorts, killStaleWorktreeListeners, killableListenerPids, lastAgentReply, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, linkifyChatUrls, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, listenerCwd, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, loadWorktreeRunPorts, localhostPreviewUrl, locksDir, loginAgent, loginEnvPrefix, loginManagedAccount, looksLikeComposerSkillExpansion, looksLikeConversationSummary, looksLikeIncompleteSkillDump, looksLikeSkillBody, lookupSoccerTeam, managedAccountConfigDir, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesForCompactArchive, messagesSinceLastBrightsyContextSummary, mirrorHostConfig, moveQueuedItemToFront, needsCoordinatorAction, nextManagedAccount, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeManagedAccounts, normalizeParseResult, normalizeReviewLabel, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, notifyOrchestrator, npmGlobalNodeModules, npmGlobalPrefix, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, outboundReplyFromTurn, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseChatLink, parseClaudeUsagePayload, parseCursorRunnerLine, parseDevPreview, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, patchReadAloudSettings, pendingInjectedNotices, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planModeTurnInstruction, planQuestionsSignature, pnpmFilterPackage, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, previousCostBaseline, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readAgentRuntimeMetadata, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readRunLog, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, remoteCoordinatorSourceRef, remoteRelayUrl, removeBoardPin, removeManagedAccount, removeQueuedItem, removeWorkspace, removeWorktree, renameManagedAccount, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountForThread, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveCursorSdkRoot, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveProjectReviewLabel, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, reviewLabelForRepo, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runRemoteHost, runScriptPreview, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, sanitizeReadAloudVoiceURI, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, saveWorktreeRunPorts, scheduleNeedsCaffeinate, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, selectManagedAccount, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldNotifyOrchestrator, shouldRefreshReviewRequestTemplate, shouldRegisterPresentPlan, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, skillCommandFromBody, skillCommandFromInput, skillNameFromFrontmatter, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, sliceRunLogOutput, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startAgentRpcServer, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startRelayServer, startSlackOAuth, statWorktreePath, stopAgentRpcServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, switchWorktreeBranch, syncWorkspacesFromThreads, systemConfigDir, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadMayPresentPlan, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, tryReservePort, tryReservePorts, turnCostUsdFromCursorUsage, turnCostUsdFromProviderSnapshot, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleAssistantText, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withAddedAccount, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withRemovedAccount, withSelectedAccount, withThreadLock, withTurnScopedCost, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeRunPortsPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };