@sideboard-ai/core 0.1.136 → 0.1.142

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 (65) hide show
  1. package/dist/{abletime-VTP4JR63.js → abletime-DI55AJX3.js} +2 -2
  2. package/dist/{abletime-DDTV7WO3.js → abletime-QEVAE67D.js} +2 -2
  3. package/dist/agents/cursor-runner.cjs +0 -0
  4. package/dist/agents/cursor-runner.js +1 -1
  5. package/dist/{agents-QNTTLMG2.js → agents-E5AAMHDY.js} +12 -8
  6. package/dist/{agents-ELWR7A2T.js → agents-OEEOIKUB.js} +11 -7
  7. package/dist/{app-settings-U5RZKUXG.js → app-settings-WJDCJFSY.js} +3 -1
  8. package/dist/{app-settings-YQ7YX2CC.js → app-settings-ZCN632OJ.js} +3 -1
  9. package/dist/caffeinate-hold-NBRUWYXO.js +0 -0
  10. package/dist/{chunk-4XKUHP6G.js → chunk-4D4PEBGB.js} +2 -2
  11. package/dist/{chunk-QAV3HGVS.js → chunk-4Q45TLZ5.js} +8 -8
  12. package/dist/chunk-6GN5WPYZ.js +0 -0
  13. package/dist/chunk-B3SJXYIJ.js +0 -0
  14. package/dist/chunk-BD2ICC4D.js +0 -0
  15. package/dist/{chunk-GKKHXZCT.js → chunk-BGQBELGJ.js} +201 -2
  16. package/dist/{chunk-2XXAAIN3.js → chunk-BOD5V52W.js} +1 -1
  17. package/dist/{chunk-JPBRMUM6.js → chunk-CG25RYQQ.js} +87 -41
  18. package/dist/chunk-ED4UPEJX.js +0 -0
  19. package/dist/{chunk-J5IBSVB3.js → chunk-EUXOHTUK.js} +42 -25
  20. package/dist/{chunk-K5YT5GX2.js → chunk-FADNFPZO.js} +4 -4
  21. package/dist/{chunk-TIGKDMIA.js → chunk-FGOD5MQ4.js} +550 -69
  22. package/dist/{chunk-MDCKV2NF.js → chunk-HC5N3BDL.js} +2 -2
  23. package/dist/{chunk-GJBHOJCZ.js → chunk-I77RYPOH.js} +201 -2
  24. package/dist/{chunk-WS5LFFU3.js → chunk-JUWVAMRS.js} +333 -64
  25. package/dist/chunk-KGZBYWZ3.js +0 -0
  26. package/dist/chunk-KLBOWJ74.js +0 -0
  27. package/dist/chunk-KPIYENTF.js +0 -0
  28. package/dist/chunk-N5PM7HGQ.js +0 -0
  29. package/dist/chunk-NSTQ6QKD.js +0 -0
  30. package/dist/{chunk-HQQNLDVC.js → chunk-O3JEC2UJ.js} +8 -8
  31. package/dist/{chunk-TQ4S5AGJ.js → chunk-OHWN4JEL.js} +7 -5
  32. package/dist/{chunk-GSKRGF7B.js → chunk-R2W7A2UO.js} +4 -4
  33. package/dist/chunk-S42XV45P.js +0 -0
  34. package/dist/{chunk-PM3C2J6K.js → chunk-TUGKX5BD.js} +42 -25
  35. package/dist/{chunk-IFZ4MOTN.js → chunk-UG5N7ET3.js} +7 -5
  36. package/dist/{chunk-CYM5DCHI.js → chunk-VHTIHOHE.js} +87 -42
  37. package/dist/{chunk-AT346U23.js → chunk-VZJVKQHH.js} +1 -1
  38. package/dist/{chunk-FSCQXMGI.js → chunk-WT5HSFOU.js} +1 -0
  39. package/dist/connected-teams-IJUJQ7R6.js +0 -0
  40. package/dist/{coordinator-prompt-IPL4Z6SL.js → coordinator-prompt-2LD3C74O.js} +4 -4
  41. package/dist/{coordinator-prompt-2OWSUAUR.js → coordinator-prompt-FBX7Y4EM.js} +4 -4
  42. package/dist/cursor-recover-NOQYOFRF.js +0 -0
  43. package/dist/{global-workspace-NIKZAKOO.js → global-workspace-NG7SU3GV.js} +5 -5
  44. package/dist/{global-workspace-JDUCUL7S.js → global-workspace-OCV77UYF.js} +5 -5
  45. package/dist/index.cjs +1064 -187
  46. package/dist/index.d.cts +239 -62
  47. package/dist/index.d.ts +239 -62
  48. package/dist/index.js +144 -20
  49. package/dist/mcp/run-stdio.cjs +759 -170
  50. package/dist/mcp/run-stdio.js +46 -18
  51. package/dist/oauth-YJBAURIJ.js +0 -0
  52. package/dist/{orchestrator-KK3CUW37.js → orchestrator-4BEZJ2BU.js} +8 -8
  53. package/dist/{orchestrator-6I47JMU2.js → orchestrator-I2T44CRP.js} +9 -9
  54. package/dist/paths-QCI3MTO5.js +0 -0
  55. package/dist/plan-file-PHVKUAEE.js +0 -0
  56. package/dist/run-USF6FRKV.js +0 -0
  57. package/dist/{thread-store-FADXSMEJ.js → thread-store-57ZLHR3A.js} +1 -1
  58. package/dist/{thread-store-CRLQJ2HM.js → thread-store-WGASXXXR.js} +1 -1
  59. package/dist/title-4WAKWZRF.js +0 -0
  60. package/dist/{workspaces-5EWNNALF.js → workspaces-4FUQW5LD.js} +6 -6
  61. package/dist/{workspaces-KZA3TCEE.js → workspaces-PU5YHQ7Z.js} +6 -6
  62. package/dist/{worktree-MX7XBX6Z.js → worktree-GKLPPNWR.js} +3 -3
  63. package/dist/{worktree-BC6XDMQK.js → worktree-Z22HTSCU.js} +3 -3
  64. package/package.json +9 -8
  65. package/LICENSE +0 -190
package/dist/index.d.cts CHANGED
@@ -669,7 +669,7 @@ declare const HARNESS_ENV_KEYS: {
669
669
  };
670
670
  type HarnessId = keyof typeof HARNESS_ENV_KEYS;
671
671
  /**
672
- * Account-level defaults for Create / new chat tabs (Settings → Account).
672
+ * App-level defaults for Create / new chat tabs (Settings → Agents).
673
673
  * Omitted fields fall back to Claude + Auto + High thinking at runtime.
674
674
  */
675
675
  interface DefaultsAppSettings {
@@ -735,7 +735,7 @@ declare const GITHUB_GIT_AUTH_MODES: readonly ["auto", "gh", "ssh", "token"];
735
735
  interface IntegrationsSettings {
736
736
  /** Linear personal API key (https://linear.app/settings/api). Fallback when OAuth is unused. */
737
737
  linearApiKey?: string;
738
- /** Linear OAuth access token (Account → Linear → Connect via browser). */
738
+ /** Linear OAuth access token (SettingsIssues → Linear → Connect via browser). */
739
739
  linearAccessToken?: string;
740
740
  /** Linear OAuth refresh token (rotated on each refresh). */
741
741
  linearRefreshToken?: string;
@@ -754,7 +754,7 @@ interface IntegrationsSettings {
754
754
  * When the preferred tracker is not connected, runtime falls back to GitHub Issues.
755
755
  */
756
756
  issueSource?: IssueSource;
757
- /** Slack app Client ID for browser OAuth (Account → Slack). */
757
+ /** Slack app Client ID for browser OAuth (SettingsRemote → Slack). */
758
758
  slackClientId?: string;
759
759
  /** Slack app Client Secret for browser OAuth. */
760
760
  slackClientSecret?: string;
@@ -788,6 +788,26 @@ interface IntegrationsSettings {
788
788
  abletimeHost?: string;
789
789
  /** Display name of the connected AbleTime user (non-secret). */
790
790
  abletimeViewerName?: string;
791
+ /** Vercel personal token (vaulted). Injected as VERCEL_TOKEN. */
792
+ vercelToken?: string;
793
+ /** Display name of the connected Vercel user (non-secret). */
794
+ vercelViewerName?: string;
795
+ /** Supabase personal access token (vaulted). Injected as SUPABASE_ACCESS_TOKEN. */
796
+ supabaseAccessToken?: string;
797
+ /** Display name of the connected Supabase org (non-secret). */
798
+ supabaseViewerName?: string;
799
+ /** PostHog personal API key (vaulted). Injected as POSTHOG_PERSONAL_API_KEY. */
800
+ posthogPersonalApiKey?: string;
801
+ /** PostHog API host (default https://us.posthog.com). */
802
+ posthogHost?: string;
803
+ /** Display name of the connected PostHog user (non-secret). */
804
+ posthogViewerName?: string;
805
+ /** Sentry auth token (vaulted). Injected as SENTRY_AUTH_TOKEN. */
806
+ sentryAuthToken?: string;
807
+ /** Sentry API host (default https://sentry.io). */
808
+ sentryHost?: string;
809
+ /** Display name of the connected Sentry org (non-secret). */
810
+ sentryViewerName?: string;
791
811
  }
792
812
  /**
793
813
  * Conductor-inspired power-user preferences (Settings → Advanced).
@@ -881,13 +901,13 @@ interface AppSettings {
881
901
  brightsy: BrightsyHarnessSettings;
882
902
  /** GitHub / Linear connections and issue-source preference. */
883
903
  integrations: IntegrationsSettings;
884
- /** Default agent + model for new chats (Settings → Account). */
904
+ /** Default agent + model for new chats (Settings → Agents). */
885
905
  defaults: DefaultsAppSettings;
886
906
  /** Power-user / Conductor-style advanced preferences. */
887
907
  advanced: AdvancedAppSettings;
888
908
  }
889
909
  /** Integrations fields safe to send to the renderer (no token values). */
890
- type PublicIntegrationsSettings = Omit<IntegrationsSettings, 'linearApiKey' | 'linearAccessToken' | 'linearRefreshToken' | 'linearClientSecret' | 'slackClientSecret' | 'slackAppToken' | 'githubPat' | 'abletimeAccessToken'> & {
910
+ type PublicIntegrationsSettings = Omit<IntegrationsSettings, 'linearApiKey' | 'linearAccessToken' | 'linearRefreshToken' | 'linearClientSecret' | 'slackClientSecret' | 'slackAppToken' | 'githubPat' | 'abletimeAccessToken' | 'vercelToken' | 'supabaseAccessToken' | 'posthogPersonalApiKey' | 'sentryAuthToken'> & {
891
911
  /** True when Linear is connected (OAuth or API key). */
892
912
  hasLinearApiKey: boolean;
893
913
  hasLinearOAuth: boolean;
@@ -897,7 +917,13 @@ type PublicIntegrationsSettings = Omit<IntegrationsSettings, 'linearApiKey' | 'l
897
917
  hasGithubPat: boolean;
898
918
  /** True when an AbleTime personal access token is stored. */
899
919
  hasAbleTimeToken: boolean;
920
+ hasVercelToken: boolean;
921
+ hasSupabaseToken: boolean;
922
+ hasPosthogToken: boolean;
923
+ hasSentryToken: boolean;
900
924
  };
925
+ /** Renderer / empty-state flags (no token values). */
926
+ declare function emptyPublicIntegrations(): PublicIntegrationsSettings;
901
927
  /** Settings payload for the desktop UI. Secret values are omitted. */
902
928
  type PublicAppSettings = Omit<AppSettings, 'integrations'> & {
903
929
  integrations: PublicIntegrationsSettings;
@@ -941,6 +967,16 @@ declare function updateIntegrationsSettings(patch: {
941
967
  abletimeAccessToken?: string | null;
942
968
  abletimeHost?: string | null;
943
969
  abletimeViewerName?: string | null;
970
+ vercelToken?: string | null;
971
+ vercelViewerName?: string | null;
972
+ supabaseAccessToken?: string | null;
973
+ supabaseViewerName?: string | null;
974
+ posthogPersonalApiKey?: string | null;
975
+ posthogHost?: string | null;
976
+ posthogViewerName?: string | null;
977
+ sentryAuthToken?: string | null;
978
+ sentryHost?: string | null;
979
+ sentryViewerName?: string | null;
944
980
  }): AppSettings;
945
981
  declare function updateDefaultsSettings(patch: {
946
982
  agent?: AgentKind | null;
@@ -966,7 +1002,7 @@ declare function resolveThreadDefaults(settings?: AppSettings): {
966
1002
  };
967
1003
  /**
968
1004
  * Resolve agent/model/effort/fast for a newly created thread.
969
- * Omitted fields use Account defaults (Settings → Account).
1005
+ * Omitted fields use Agents defaults (Settings → Agents).
970
1006
  * Pass `model: null` explicitly to force Auto / agent-default.
971
1007
  */
972
1008
  declare function resolveNewThreadOptions(overrides?: {
@@ -1021,7 +1057,7 @@ declare function isIssueSourceConnected(source: IssueSource, settings?: AppSetti
1021
1057
  declare function resolveEffectiveIssueSource(settings?: AppSettings): IssueSource;
1022
1058
  declare function getLinearApiKey(settings?: AppSettings): string | null;
1023
1059
  declare function brightsyCloudConnectEnabled(settings?: AppSettings): boolean;
1024
- /** Slack Socket Mode inbound (Account → Slack). Default off. */
1060
+ /** Slack Socket Mode inbound (SettingsRemote → Slack). Default off. */
1025
1061
  declare function slackListenEnabled(settings?: AppSettings): boolean;
1026
1062
  /**
1027
1063
  * Stable per-Mac identity for the Slack relay so Personal and Work can both
@@ -1410,7 +1446,7 @@ declare function appendIndexedGitConfig(existing: EnvLike | undefined, entries:
1410
1446
  */
1411
1447
  declare function githubAgentGitEnv(existing?: EnvLike): Record<string, string>;
1412
1448
  /**
1413
- * Extra env for a worktree agent given AccountGitHub git-auth mode.
1449
+ * Extra env for a worktree agent given SettingsGit git-auth mode.
1414
1450
  * Does not set `GH_REPO` (caller adds that after resolving origin).
1415
1451
  *
1416
1452
  * Token is written to a 0600 credential store + isolated `GH_CONFIG_DIR` in
@@ -1549,7 +1585,7 @@ declare function ensureGhPreferOrigin(cwd: string): Promise<void>;
1549
1585
  /**
1550
1586
  * Env pin so bare `gh` (and agents) target this checkout's **origin**, not
1551
1587
  * Makerkit-style `upstream`. `GH_REPO` is the CLI's documented override.
1552
- * HTTPS rewrite / credential helper follow AccountGitHub git-auth mode.
1588
+ * HTTPS rewrite / credential helper follow SettingsGit git-auth mode.
1553
1589
  * Token is warmed into a store file — not `GH_TOKEN` in the child env.
1554
1590
  */
1555
1591
  declare function originGhRepoEnv(cwd: string, opts?: {
@@ -1812,7 +1848,7 @@ type LinearAssignedIssuesResult = {
1812
1848
  };
1813
1849
  /**
1814
1850
  * List open issues assigned to the authenticated Linear user via GraphQL.
1815
- * Uses Sideboard-stored OAuth token or API key (Account → Linear), not agent MCP.
1851
+ * Uses Sideboard-stored OAuth token or API key (SettingsIssues → Linear), not agent MCP.
1816
1852
  */
1817
1853
  declare function listLinearAssignedIssues(opts?: {
1818
1854
  limit?: number;
@@ -2041,6 +2077,122 @@ declare function listGitHubIssues(repoPath: string, opts?: {
2041
2077
  */
2042
2078
  declare function listIssues(repoPath: string): Promise<ListIssuesResult>;
2043
2079
 
2080
+ declare const OPTIONAL_SERVICE_IDS: readonly ["vercel", "supabase", "posthog", "sentry"];
2081
+ type OptionalServiceId = (typeof OPTIONAL_SERVICE_IDS)[number];
2082
+ interface OptionalServiceSpec {
2083
+ id: OptionalServiceId;
2084
+ label: string;
2085
+ /** One-line why / when to turn this on. */
2086
+ hint: string;
2087
+ tokenPlaceholder: string;
2088
+ tokenDocs: string;
2089
+ /** Env key injected into worktree agent runs when connected. */
2090
+ envKey: string;
2091
+ /** Official CLI to prefer (`vercel`, `supabase`, `sentry-cli`). Omit when there is none. */
2092
+ cli?: string;
2093
+ /** npm package for Settings → Connectors **Install CLI** (`npm i -g`). */
2094
+ npmPackage?: string;
2095
+ /** Optional host env key (PostHog / Sentry self-host). */
2096
+ hostEnvKey?: string;
2097
+ defaultHost?: string;
2098
+ hostPlaceholder?: string;
2099
+ }
2100
+ declare const OPTIONAL_SERVICES: readonly OptionalServiceSpec[];
2101
+ declare function optionalServiceSpec(id: OptionalServiceId): OptionalServiceSpec;
2102
+ declare function isOptionalServiceId(value: unknown): value is OptionalServiceId;
2103
+ /** Origin only (`https://host`). Falls back when empty or invalid. */
2104
+ declare function normalizeServiceOrigin(raw: string | null | undefined, fallback: string): string;
2105
+ declare function verifyOptionalService(input: {
2106
+ id: OptionalServiceId;
2107
+ token: string;
2108
+ host?: string | null;
2109
+ }): Promise<{
2110
+ viewerName: string;
2111
+ host?: string;
2112
+ }>;
2113
+ /** Verify a token and persist it (vaulted). */
2114
+ declare function connectOptionalService(input: {
2115
+ id: OptionalServiceId;
2116
+ token: string;
2117
+ host?: string | null;
2118
+ }): Promise<AppSettings>;
2119
+ /** Clear a stored optional-service token. Does not revoke remotely. */
2120
+ declare function disconnectOptionalService(id: OptionalServiceId): AppSettings;
2121
+ declare function optionalServiceConnected(id: OptionalServiceId, integrations: IntegrationsSettings): boolean;
2122
+ declare function connectedOptionalServices(integrations: IntegrationsSettings): OptionalServiceSpec[];
2123
+ /**
2124
+ * Fresh-session playbook: official CLI (or HTTP API) with injected env.
2125
+ * Do not add vendor MCPs for these optional services.
2126
+ */
2127
+ declare function formatOptionalServicesDirective(integrations: IntegrationsSettings): string | null;
2128
+ /** Short resume reminder when at least one optional service is connected. */
2129
+ declare function formatOptionalServicesReminder(integrations: IntegrationsSettings): string | null;
2130
+
2131
+ type AgentSetupKind = 'cli' | 'api-key' | 'bundled-sdk';
2132
+ interface AgentSetupInfo {
2133
+ agent: AgentKind;
2134
+ kind: AgentSetupKind;
2135
+ /** Short explanation for Settings. */
2136
+ summary: string;
2137
+ docsUrl: string;
2138
+ /** Shell one-liner to install the CLI (null when not applicable). */
2139
+ installCommand: string | null;
2140
+ /** Shell one-liner for interactive login/auth (null when API-key only). */
2141
+ loginCommand: string | null;
2142
+ /** npm package for in-app `npm i -g` when install is npm-based. */
2143
+ npmPackage?: string;
2144
+ }
2145
+ interface AgentSetupActionResult {
2146
+ ok: boolean;
2147
+ /** True when a system Terminal window was opened for an interactive command. */
2148
+ openedTerminal?: boolean;
2149
+ command?: string;
2150
+ message: string;
2151
+ stdout?: string;
2152
+ stderr?: string;
2153
+ exitCode?: number | null;
2154
+ }
2155
+ declare function getAgentSetupInfo(agent: AgentKind): AgentSetupInfo;
2156
+ declare function listAgentSetupInfo(): AgentSetupInfo[];
2157
+ /** Rewrite login command to honor a custom executable path override. */
2158
+ declare function resolveLoginCommand(agent: AgentKind): string | null;
2159
+ /**
2160
+ * Make a Terminal command resolve the same binaries Electron sees after
2161
+ * `npm i -g` (absolute path + exported PATH). Avoids "codex: command not found"
2162
+ * when Terminal’s login shell lacks the npm global bin.
2163
+ */
2164
+ declare function prepareTerminalCommand(command: string): Promise<string>;
2165
+ /**
2166
+ * Open an interactive shell command in the system terminal (macOS Terminal.app,
2167
+ * Linux gnome-terminal/x-terminal-emulator, Windows cmd).
2168
+ */
2169
+ declare function openInSystemTerminal(command: string): Promise<void>;
2170
+ declare function whichOnPath(bin: string): Promise<string | null>;
2171
+ /**
2172
+ * `npm i -g` in-process; opens Terminal if npm needs a TTY or sudo.
2173
+ * Skips install when `cliBin` already resolves on PATH.
2174
+ */
2175
+ declare function installNpmGlobalPackage(opts: {
2176
+ npmPackage: string;
2177
+ installCommand: string;
2178
+ cliBin: string | null;
2179
+ }): Promise<AgentSetupActionResult>;
2180
+ /** Install a CLI agent: npm packages run in-process; curl installers open Terminal. */
2181
+ declare function installAgent(agent: AgentKind): Promise<AgentSetupActionResult>;
2182
+ /** Open the agent’s login/auth command in the system terminal. */
2183
+ declare function loginAgent(agent: AgentKind): Promise<AgentSetupActionResult>;
2184
+
2185
+ interface OptionalServiceCliStatus {
2186
+ id: OptionalServiceId;
2187
+ /** Binary name, or null when the service has no CLI (PostHog). */
2188
+ cli: string | null;
2189
+ installed: boolean;
2190
+ path: string | null;
2191
+ }
2192
+ declare function detectOptionalServiceClis(): Promise<OptionalServiceCliStatus[]>;
2193
+ /** Install a connector CLI via the same `npm i -g` path as Settings → Agents. */
2194
+ declare function installOptionalServiceCli(id: OptionalServiceId): Promise<AgentSetupActionResult>;
2195
+
2044
2196
  /**
2045
2197
  * HTTP fetch used by Linear (and other Node-side API clients).
2046
2198
  *
@@ -2378,50 +2530,6 @@ declare function resolveCommandBinarySync(command: string, whichPath: string | n
2378
2530
  /** `export PATH='…' && <command>` so Terminal inherits Electron’s enriched PATH. */
2379
2531
  declare function withExportedPath(command: string, pathValue: string): string;
2380
2532
 
2381
- type AgentSetupKind = 'cli' | 'api-key' | 'bundled-sdk';
2382
- interface AgentSetupInfo {
2383
- agent: AgentKind;
2384
- kind: AgentSetupKind;
2385
- /** Short explanation for Settings. */
2386
- summary: string;
2387
- docsUrl: string;
2388
- /** Shell one-liner to install the CLI (null when not applicable). */
2389
- installCommand: string | null;
2390
- /** Shell one-liner for interactive login/auth (null when API-key only). */
2391
- loginCommand: string | null;
2392
- /** npm package for in-app `npm i -g` when install is npm-based. */
2393
- npmPackage?: string;
2394
- }
2395
- interface AgentSetupActionResult {
2396
- ok: boolean;
2397
- /** True when a system Terminal window was opened for an interactive command. */
2398
- openedTerminal?: boolean;
2399
- command?: string;
2400
- message: string;
2401
- stdout?: string;
2402
- stderr?: string;
2403
- exitCode?: number | null;
2404
- }
2405
- declare function getAgentSetupInfo(agent: AgentKind): AgentSetupInfo;
2406
- declare function listAgentSetupInfo(): AgentSetupInfo[];
2407
- /** Rewrite login command to honor a custom executable path override. */
2408
- declare function resolveLoginCommand(agent: AgentKind): string | null;
2409
- /**
2410
- * Make a Terminal command resolve the same binaries Electron sees after
2411
- * `npm i -g` (absolute path + exported PATH). Avoids "codex: command not found"
2412
- * when Terminal’s login shell lacks the npm global bin.
2413
- */
2414
- declare function prepareTerminalCommand(command: string): Promise<string>;
2415
- /**
2416
- * Open an interactive shell command in the system terminal (macOS Terminal.app,
2417
- * Linux gnome-terminal/x-terminal-emulator, Windows cmd).
2418
- */
2419
- declare function openInSystemTerminal(command: string): Promise<void>;
2420
- /** Install a CLI agent: npm packages run in-process; curl installers open Terminal. */
2421
- declare function installAgent(agent: AgentKind): Promise<AgentSetupActionResult>;
2422
- /** Open the agent’s login/auth command in the system terminal. */
2423
- declare function loginAgent(agent: AgentKind): Promise<AgentSetupActionResult>;
2424
-
2425
2533
  declare function getAdapter(kind: AgentKind): AgentAdapter;
2426
2534
  declare function allAdapters(): AgentAdapter[];
2427
2535
 
@@ -2593,6 +2701,18 @@ declare function formatWorktreeReminder(): string;
2593
2701
  * (`attach`, `claude` in the checkout) see them without Sideboard.
2594
2702
  */
2595
2703
  declare function formatProcessGuideDirective(): string;
2704
+ /**
2705
+ * How to keep a long shell job alive across Sideboard turn interrupts.
2706
+ * Injected on every fresh worktree session; reminder repeats the helper path
2707
+ * because CLI `--resume` drops cachedPrefix.
2708
+ */
2709
+ declare function formatLongRunningDirective(opts?: {
2710
+ scriptPath?: string | null;
2711
+ }): string;
2712
+ /** Short long-job line on every worktree turn (survives CLI resume). */
2713
+ declare function formatLongRunningReminder(opts?: {
2714
+ scriptPath?: string | null;
2715
+ }): string;
2596
2716
  /**
2597
2717
  * Tell agents how Sideboard renders Claude-style artifacts (side column)
2598
2718
  * and the composer multiple-choice picker (`ask_user`).
@@ -2906,18 +3026,34 @@ interface SkillInfo {
2906
3026
  command: string;
2907
3027
  description: string;
2908
3028
  path: string;
2909
- source: 'workspace' | 'user' | 'cli';
3029
+ source: 'workspace' | 'user' | 'cli' | 'bundled';
2910
3030
  }
3031
+ declare const BUNDLED_SKILL_PREFIX = "bundled:";
2911
3032
  /**
2912
- * Discover skills from the worktree + user/CLI skill locations.
2913
- * Workspace skills win over user/CLI when command names collide.
3033
+ * Discover skills from the worktree + user/CLI skill locations + Sideboard
3034
+ * product skills (`bundled`). Workspace skills win when command names collide.
2914
3035
  * New repo skills should be written to `.claude/skills` so Claude Code and
2915
3036
  * `attach` load them without Sideboard. `.sideboard/skills` is still scanned
2916
- * (legacy) but native agents do not see it.
3037
+ * (legacy) but native agents do not see it. `/long-running` is always present
3038
+ * (bundled) unless a workspace/user/cli skill overrides it.
2917
3039
  */
2918
3040
  declare function discoverSkills(worktreePath: string): SkillInfo[];
2919
3041
  declare function readSkillBody(skillPath: string, maxChars?: number): string;
2920
3042
 
3043
+ /** Packaged extraResources copy (`Contents/Resources/sideboard-mcp/scripts/detached-job.js`). */
3044
+ declare function packagedDetachedJobPath(): string | null;
3045
+ /**
3046
+ * Absolute path to the detach helper agents should exec.
3047
+ * Packaged app first, then walk up from this module to the repo `scripts/` copy.
3048
+ */
3049
+ declare function resolveDetachedJobScript(): string | null;
3050
+ /** Shell invocation agents can copy (`node "/abs/path/detached-job.js"`). */
3051
+ declare function formatDetachedJobInvoke(scriptPath?: string | null): string;
3052
+
3053
+ /** Sideboard product skill — available in every worktree, not only this repo. */
3054
+ declare const LONG_RUNNING_SKILL_COMMAND = "long-running";
3055
+ declare const BUNDLED_LONG_RUNNING_PATH = "bundled:long-running";
3056
+
2921
3057
  interface ExpandResult {
2922
3058
  /** Prompt sent to the agent (may include attachments / skill bodies). */
2923
3059
  agentPrompt: string;
@@ -3029,6 +3165,31 @@ declare function summarizeConversation(transcript: string, opts?: {
3029
3165
  /** Deterministic fallback when Claude isn't available. */
3030
3166
  declare function extractiveSummary(transcript: string): string;
3031
3167
 
3168
+ /** Same heuristic as `CONTEXT_COMPACT_CHARS` (≈ 100k tokens at 400k chars). */
3169
+ declare const CHARS_PER_CONTEXT_TOKEN = 4;
3170
+ declare function estimateMessageChars(message: ThreadMessage): number;
3171
+ declare function estimateThreadChars(messages: ThreadMessage[]): number;
3172
+ /** Approximate tokens still occupying the window from the stored transcript. */
3173
+ declare function estimateOccupancyTokens(messages: ThreadMessage[]): number;
3174
+ declare function threadHasCompactedContext(messages: Array<Pick<ThreadMessage, 'role'>>): boolean;
3175
+ /**
3176
+ * Tokens the next request will start from — remaining transcript, not billed
3177
+ * thread/turn sums. After compression, last-request size is the pre-summary
3178
+ * peak so the transcript estimate wins. Otherwise a last-request that still
3179
+ * fits the window is preferred (provider-accurate); billed leaks fall back
3180
+ * to the transcript.
3181
+ */
3182
+ declare function forwardOccupancyTokens(messages: ThreadMessage[], usage?: TokenUsage | null, windowTokens?: number): number;
3183
+ /**
3184
+ * Occupancy the next turn will start from.
3185
+ * After Sideboard compression the last agent `lastRequestTokens` is still the
3186
+ * pre-summary peak — cap it to the remaining transcript so the meter shows
3187
+ * context going forward, not the compressed-away total.
3188
+ */
3189
+ declare function forwardContextUsage(usage: TokenUsage | null, messages: ThreadMessage[]): TokenUsage | null;
3190
+ /** Persist going-forward occupancy on the latest agent usage (session reset). */
3191
+ declare function applyForwardOccupancy(messages: ThreadMessage[]): ThreadMessage[];
3192
+
3032
3193
  /**
3033
3194
  * Sideboard transcript budget before summarizing older turns for the board /
3034
3195
  * future seed (≈ 100k tokens at ~4 chars/token). Independent of the CLI
@@ -3053,8 +3214,6 @@ interface CompactThresholds {
3053
3214
  keepRecentMessages?: number;
3054
3215
  minMessages?: number;
3055
3216
  }
3056
- declare function estimateMessageChars(message: ThreadMessage): number;
3057
- declare function estimateThreadChars(messages: ThreadMessage[]): number;
3058
3217
  declare function shouldCompactContext(messages: ThreadMessage[], thresholds?: CompactThresholds): boolean;
3059
3218
  /** Split into older (to summarize) + recent (kept verbatim). */
3060
3219
  declare function splitForCompaction(messages: ThreadMessage[], thresholds?: CompactThresholds): {
@@ -4195,6 +4354,12 @@ interface IpcApi {
4195
4354
  githubPat?: string | null;
4196
4355
  abletimeAccessToken?: string | null;
4197
4356
  abletimeHost?: string | null;
4357
+ vercelToken?: string | null;
4358
+ supabaseAccessToken?: string | null;
4359
+ posthogPersonalApiKey?: string | null;
4360
+ posthogHost?: string | null;
4361
+ sentryAuthToken?: string | null;
4362
+ sentryHost?: string | null;
4198
4363
  }): Promise<PublicAppSettings>;
4199
4364
  updateDefaultsSettings(patch: {
4200
4365
  agent?: AgentKind | null;
@@ -4226,6 +4391,18 @@ interface IpcApi {
4226
4391
  }): Promise<PublicAppSettings>;
4227
4392
  /** Clear the stored AbleTime personal access token. */
4228
4393
  disconnectAbleTime(): Promise<PublicAppSettings>;
4394
+ /** Verify and store a Vercel / Supabase / PostHog / Sentry token. */
4395
+ connectOptionalService(input: {
4396
+ id: OptionalServiceId;
4397
+ token: string;
4398
+ host?: string | null;
4399
+ }): Promise<PublicAppSettings>;
4400
+ /** Clear a stored optional-service token. */
4401
+ disconnectOptionalService(id: OptionalServiceId): Promise<PublicAppSettings>;
4402
+ /** PATH status for connector CLIs (`vercel`, `supabase`, `sentry-cli`). */
4403
+ detectOptionalServiceClis(): Promise<OptionalServiceCliStatus[]>;
4404
+ /** `npm i -g` a missing connector CLI (same helper as Settings → Agents). */
4405
+ installOptionalServiceCli(id: OptionalServiceId): Promise<AgentSetupActionResult>;
4229
4406
  /**
4230
4407
  * Find or create an AbleTime task to track work against
4231
4408
  * (hosted MCP create_task / search_tasks).
@@ -4436,7 +4613,7 @@ interface IpcApi {
4436
4613
  command: string;
4437
4614
  description: string;
4438
4615
  path: string;
4439
- source: 'workspace' | 'user' | 'cli';
4616
+ source: 'workspace' | 'user' | 'cli' | 'bundled';
4440
4617
  }>>;
4441
4618
  openInEditor(threadRef: string, editor?: string, relativePath?: string): Promise<void>;
4442
4619
  openWorktree(threadRef: string, target: 'finder' | 'cursor' | 'code' | 'xcode' | 'terminal' | 'datagrip'): Promise<void>;
@@ -5244,4 +5421,4 @@ declare function pollSlackOutboundWatches(opts?: {
5244
5421
  now?: number;
5245
5422
  }): Promise<void>;
5246
5423
 
5247
- export { ABLETIME_MCP_PATH, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimeProject, type AbleTimeTask, type AbleTimeViewer, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SetupRunResult, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UpdateScheduledTaskPatch, type UsageScope, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, abletimeMcpRequest, abletimeMcpUrl, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectSlackToken, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLiveThreadForCreate, findOrphanWorktrees, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatMergePrError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIssueSourceConnected, isLinearConnected, isLinearOAuthCancelled, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueSourceLabel, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitDirsForLockRecovery, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toAbleTimeIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, turnCostUsdFromCursorUsage, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, verifyAbleTimeConnection, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, withAgentInstructions, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
5424
+ export { ABLETIME_MCP_PATH, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimeProject, type AbleTimeTask, type AbleTimeViewer, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SetupRunResult, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UpdateScheduledTaskPatch, type UsageScope, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, abletimeMcpRequest, abletimeMcpUrl, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLiveThreadForCreate, findOrphanWorktrees, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIssueSourceConnected, isLinearConnected, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueSourceLabel, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, packagedDetachedJobPath, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitDirsForLockRecovery, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toAbleTimeIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, turnCostUsdFromCursorUsage, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withAgentInstructions, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };