@sideboard-ai/core 0.1.35 → 0.1.36

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.
@@ -21,13 +21,13 @@ import {
21
21
  opencodeAdapter,
22
22
  permissionMode,
23
23
  resolveCursorModelId
24
- } from "./chunk-MULWZLDI.js";
24
+ } from "./chunk-EHUIPKBW.js";
25
25
  import "./chunk-ILQK4P5R.js";
26
26
  import {
27
27
  cursorSdkMessageToEvents,
28
28
  parseCursorRunnerLine
29
29
  } from "./chunk-BSZX63TV.js";
30
- import "./chunk-3WF3X46L.js";
30
+ import "./chunk-YZ23S32T.js";
31
31
  import "./chunk-M37RITA6.js";
32
32
  import {
33
33
  ensureAgentPath
@@ -13,6 +13,8 @@ import {
13
13
  claudeChromeEnabled,
14
14
  claudeUserSettingsPath,
15
15
  deleteBranchOnPurgeEnabled,
16
+ getDefaultAgent,
17
+ getDefaultModel,
16
18
  getIssueSource,
17
19
  getLinearApiKey,
18
20
  harnessEnvKey,
@@ -21,13 +23,15 @@ import {
21
23
  maxConcurrentAgents,
22
24
  resolveClaudeExecutable,
23
25
  resolveEffectiveIssueSource,
26
+ resolveThreadDefaults,
24
27
  saveAppSettings,
25
28
  updateAdvancedSettings,
26
29
  updateAppEnvironment,
27
30
  updateBrightsySettings,
28
31
  updateClaudeSettings,
32
+ updateDefaultsSettings,
29
33
  updateIntegrationsSettings
30
- } from "./chunk-3WF3X46L.js";
34
+ } from "./chunk-YZ23S32T.js";
31
35
  import "./chunk-M37RITA6.js";
32
36
  export {
33
37
  HARNESS_ENV_KEYS,
@@ -44,6 +48,8 @@ export {
44
48
  claudeChromeEnabled,
45
49
  claudeUserSettingsPath,
46
50
  deleteBranchOnPurgeEnabled,
51
+ getDefaultAgent,
52
+ getDefaultModel,
47
53
  getIssueSource,
48
54
  getLinearApiKey,
49
55
  harnessEnvKey,
@@ -52,10 +58,12 @@ export {
52
58
  maxConcurrentAgents,
53
59
  resolveClaudeExecutable,
54
60
  resolveEffectiveIssueSource,
61
+ resolveThreadDefaults,
55
62
  saveAppSettings,
56
63
  updateAdvancedSettings,
57
64
  updateAppEnvironment,
58
65
  updateBrightsySettings,
59
66
  updateClaudeSettings,
67
+ updateDefaultsSettings,
60
68
  updateIntegrationsSettings
61
69
  };
@@ -15,7 +15,7 @@ import {
15
15
  claudeChromeEnabled,
16
16
  loadAppSettings,
17
17
  resolveClaudeExecutable
18
- } from "./chunk-3WF3X46L.js";
18
+ } from "./chunk-YZ23S32T.js";
19
19
  import {
20
20
  ensureAgentPath,
21
21
  run
@@ -25,7 +25,7 @@ import {
25
25
  allAdapters,
26
26
  getAdapter,
27
27
  parseBrightsyCliLine
28
- } from "./chunk-MULWZLDI.js";
28
+ } from "./chunk-EHUIPKBW.js";
29
29
  import {
30
30
  fallbackTurnFailDetail,
31
31
  formatTurnExitError,
@@ -40,7 +40,7 @@ import {
40
40
  loadAppSettings,
41
41
  resolveEffectiveIssueSource,
42
42
  updateAdvancedSettings
43
- } from "./chunk-3WF3X46L.js";
43
+ } from "./chunk-YZ23S32T.js";
44
44
  import {
45
45
  allocateTeamName,
46
46
  allocateTeamSlug,
@@ -2606,7 +2606,7 @@ async function createThread(input, onSetupLine) {
2606
2606
  return readThread(thread.id) ?? thread;
2607
2607
  }
2608
2608
  async function listLinearIssues(agent, repoPath) {
2609
- const { getAdapter: getAdapter2 } = await import("./agents-2OX5XXYP.js");
2609
+ const { getAdapter: getAdapter2 } = await import("./agents-JZK6TQG7.js");
2610
2610
  await requireAgent(agent, { requireLinear: true });
2611
2611
  const adapter = getAdapter2(agent);
2612
2612
  if (!adapter.listLinearIssues) {
@@ -3366,7 +3366,7 @@ var Orchestrator = class {
3366
3366
  orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
3367
3367
  });
3368
3368
  }
3369
- const { autoCleanupOrphansEnabled } = await import("./app-settings-BDMLWCWI.js");
3369
+ const { autoCleanupOrphansEnabled } = await import("./app-settings-RSKDEMUI.js");
3370
3370
  if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
3371
3371
  await cleanupOrphanWorktrees({ repoPaths });
3372
3372
  }
@@ -3393,7 +3393,7 @@ var Orchestrator = class {
3393
3393
  });
3394
3394
  });
3395
3395
  this.emit({ type: "status_changed", threadId: thread.id, status: thread.status });
3396
- const { autoRunAfterSetupEnabled } = await import("./app-settings-BDMLWCWI.js");
3396
+ const { autoRunAfterSetupEnabled } = await import("./app-settings-RSKDEMUI.js");
3397
3397
  if (autoRunAfterSetupEnabled()) {
3398
3398
  try {
3399
3399
  await this.startDev(thread.id);
@@ -3634,7 +3634,7 @@ var Orchestrator = class {
3634
3634
  });
3635
3635
  const artifactDirective = isBrightsy ? null : formatArtifactDirective();
3636
3636
  const settings = loadWorkspaceSettings(fresh.worktreePath, fresh.repoPath);
3637
- const { autoRenameBranchEnabled } = await import("./app-settings-BDMLWCWI.js");
3637
+ const { autoRenameBranchEnabled } = await import("./app-settings-RSKDEMUI.js");
3638
3638
  const renameBranchDirective = !isBrightsy && !isOrchestration && autoRenameBranchEnabled() ? formatRenameBranchDirective(fresh, {
3639
3639
  customPrompt: settings?.prompts?.renameBranch
3640
3640
  }) : null;
@@ -4312,7 +4312,7 @@ var Orchestrator = class {
4312
4312
  await runArchiveScript(thread.repoPath, thread.worktreePath);
4313
4313
  } catch {
4314
4314
  }
4315
- const { deleteBranchOnPurgeEnabled } = await import("./app-settings-BDMLWCWI.js");
4315
+ const { deleteBranchOnPurgeEnabled } = await import("./app-settings-RSKDEMUI.js");
4316
4316
  const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
4317
4317
  await removeWorktree(thread.repoPath, thread.worktreePath, {
4318
4318
  deleteBranch: deleteBranch ? thread.branchName : void 0
@@ -13,6 +13,13 @@ var HARNESS_ENV_KEYS = {
13
13
  opencode: null,
14
14
  brightsy: null
15
15
  };
16
+ var DEFAULT_AGENTS = /* @__PURE__ */ new Set([
17
+ "claude",
18
+ "codex",
19
+ "opencode",
20
+ "brightsy",
21
+ "cursor"
22
+ ]);
16
23
  function appSettingsPath() {
17
24
  return join(appDataDir(), "settings.json");
18
25
  }
@@ -64,6 +71,19 @@ function normalizeIntegrations(raw) {
64
71
  }
65
72
  return out;
66
73
  }
74
+ function normalizeDefaults(raw) {
75
+ if (!raw || typeof raw !== "object") return {};
76
+ const source = raw;
77
+ const out = {};
78
+ if (typeof source.agent === "string" && DEFAULT_AGENTS.has(source.agent)) {
79
+ out.agent = source.agent;
80
+ }
81
+ if (typeof source.model === "string") {
82
+ const model = source.model.trim();
83
+ if (model) out.model = model;
84
+ }
85
+ return out;
86
+ }
67
87
  function normalizeAdvanced(raw) {
68
88
  if (!raw || typeof raw !== "object") return {};
69
89
  const source = raw;
@@ -108,6 +128,7 @@ function normalizeSettings(raw) {
108
128
  let claude = {};
109
129
  let brightsy = {};
110
130
  let integrations = {};
131
+ let defaults = {};
111
132
  let advanced = {};
112
133
  if (raw && typeof raw === "object") {
113
134
  if ("environment" in raw) {
@@ -131,17 +152,21 @@ function normalizeSettings(raw) {
131
152
  raw.integrations
132
153
  );
133
154
  }
155
+ if ("defaults" in raw) {
156
+ defaults = normalizeDefaults(raw.defaults);
157
+ }
134
158
  if ("advanced" in raw) {
135
159
  advanced = normalizeAdvanced(raw.advanced);
136
160
  }
137
161
  }
138
- return { environment: env, claude, brightsy, integrations, advanced };
162
+ return { environment: env, claude, brightsy, integrations, defaults, advanced };
139
163
  }
140
164
  var EMPTY_SETTINGS = {
141
165
  environment: {},
142
166
  claude: {},
143
167
  brightsy: {},
144
168
  integrations: {},
169
+ defaults: {},
145
170
  advanced: {}
146
171
  };
147
172
  function loadAppSettings() {
@@ -226,6 +251,38 @@ function updateIntegrationsSettings(patch) {
226
251
  }
227
252
  return saveAppSettings({ ...current, integrations });
228
253
  }
254
+ function updateDefaultsSettings(patch) {
255
+ const current = loadAppSettings();
256
+ const defaults = { ...current.defaults };
257
+ if ("agent" in patch) {
258
+ if (patch.agent == null) {
259
+ delete defaults.agent;
260
+ } else if (DEFAULT_AGENTS.has(patch.agent)) {
261
+ defaults.agent = patch.agent;
262
+ }
263
+ }
264
+ if ("model" in patch) {
265
+ if (patch.model == null || patch.model.trim() === "") {
266
+ delete defaults.model;
267
+ } else {
268
+ defaults.model = patch.model.trim();
269
+ }
270
+ }
271
+ return saveAppSettings({ ...current, defaults });
272
+ }
273
+ function getDefaultAgent(settings = loadAppSettings()) {
274
+ return settings.defaults.agent ?? "claude";
275
+ }
276
+ function getDefaultModel(settings = loadAppSettings()) {
277
+ const model = settings.defaults.model?.trim();
278
+ return model || null;
279
+ }
280
+ function resolveThreadDefaults(settings = loadAppSettings()) {
281
+ return {
282
+ agent: getDefaultAgent(settings),
283
+ model: getDefaultModel(settings)
284
+ };
285
+ }
229
286
  function isLinearConnected(settings = loadAppSettings()) {
230
287
  return Boolean(settings.integrations.linearApiKey?.trim());
231
288
  }
@@ -351,6 +408,10 @@ export {
351
408
  updateClaudeSettings,
352
409
  updateBrightsySettings,
353
410
  updateIntegrationsSettings,
411
+ updateDefaultsSettings,
412
+ getDefaultAgent,
413
+ getDefaultModel,
414
+ resolveThreadDefaults,
354
415
  isLinearConnected,
355
416
  getIssueSource,
356
417
  resolveEffectiveIssueSource,
package/dist/index.cjs CHANGED
@@ -354,6 +354,8 @@ __export(app_settings_exports, {
354
354
  claudeChromeEnabled: () => claudeChromeEnabled,
355
355
  claudeUserSettingsPath: () => claudeUserSettingsPath,
356
356
  deleteBranchOnPurgeEnabled: () => deleteBranchOnPurgeEnabled,
357
+ getDefaultAgent: () => getDefaultAgent,
358
+ getDefaultModel: () => getDefaultModel,
357
359
  getIssueSource: () => getIssueSource,
358
360
  getLinearApiKey: () => getLinearApiKey,
359
361
  harnessEnvKey: () => harnessEnvKey,
@@ -362,11 +364,13 @@ __export(app_settings_exports, {
362
364
  maxConcurrentAgents: () => maxConcurrentAgents,
363
365
  resolveClaudeExecutable: () => resolveClaudeExecutable,
364
366
  resolveEffectiveIssueSource: () => resolveEffectiveIssueSource,
367
+ resolveThreadDefaults: () => resolveThreadDefaults,
365
368
  saveAppSettings: () => saveAppSettings,
366
369
  updateAdvancedSettings: () => updateAdvancedSettings,
367
370
  updateAppEnvironment: () => updateAppEnvironment,
368
371
  updateBrightsySettings: () => updateBrightsySettings,
369
372
  updateClaudeSettings: () => updateClaudeSettings,
373
+ updateDefaultsSettings: () => updateDefaultsSettings,
370
374
  updateIntegrationsSettings: () => updateIntegrationsSettings
371
375
  });
372
376
  function appSettingsPath() {
@@ -413,6 +417,19 @@ function normalizeIntegrations(raw) {
413
417
  }
414
418
  return out;
415
419
  }
420
+ function normalizeDefaults(raw) {
421
+ if (!raw || typeof raw !== "object") return {};
422
+ const source = raw;
423
+ const out = {};
424
+ if (typeof source.agent === "string" && DEFAULT_AGENTS.has(source.agent)) {
425
+ out.agent = source.agent;
426
+ }
427
+ if (typeof source.model === "string") {
428
+ const model = source.model.trim();
429
+ if (model) out.model = model;
430
+ }
431
+ return out;
432
+ }
416
433
  function normalizeAdvanced(raw) {
417
434
  if (!raw || typeof raw !== "object") return {};
418
435
  const source = raw;
@@ -457,6 +474,7 @@ function normalizeSettings(raw) {
457
474
  let claude = {};
458
475
  let brightsy = {};
459
476
  let integrations = {};
477
+ let defaults = {};
460
478
  let advanced = {};
461
479
  if (raw && typeof raw === "object") {
462
480
  if ("environment" in raw) {
@@ -480,11 +498,14 @@ function normalizeSettings(raw) {
480
498
  raw.integrations
481
499
  );
482
500
  }
501
+ if ("defaults" in raw) {
502
+ defaults = normalizeDefaults(raw.defaults);
503
+ }
483
504
  if ("advanced" in raw) {
484
505
  advanced = normalizeAdvanced(raw.advanced);
485
506
  }
486
507
  }
487
- return { environment: env, claude, brightsy, integrations, advanced };
508
+ return { environment: env, claude, brightsy, integrations, defaults, advanced };
488
509
  }
489
510
  function loadAppSettings() {
490
511
  const path = appSettingsPath();
@@ -568,6 +589,38 @@ function updateIntegrationsSettings(patch) {
568
589
  }
569
590
  return saveAppSettings({ ...current, integrations });
570
591
  }
592
+ function updateDefaultsSettings(patch) {
593
+ const current = loadAppSettings();
594
+ const defaults = { ...current.defaults };
595
+ if ("agent" in patch) {
596
+ if (patch.agent == null) {
597
+ delete defaults.agent;
598
+ } else if (DEFAULT_AGENTS.has(patch.agent)) {
599
+ defaults.agent = patch.agent;
600
+ }
601
+ }
602
+ if ("model" in patch) {
603
+ if (patch.model == null || patch.model.trim() === "") {
604
+ delete defaults.model;
605
+ } else {
606
+ defaults.model = patch.model.trim();
607
+ }
608
+ }
609
+ return saveAppSettings({ ...current, defaults });
610
+ }
611
+ function getDefaultAgent(settings = loadAppSettings()) {
612
+ return settings.defaults.agent ?? "claude";
613
+ }
614
+ function getDefaultModel(settings = loadAppSettings()) {
615
+ const model = settings.defaults.model?.trim();
616
+ return model || null;
617
+ }
618
+ function resolveThreadDefaults(settings = loadAppSettings()) {
619
+ return {
620
+ agent: getDefaultAgent(settings),
621
+ model: getDefaultModel(settings)
622
+ };
623
+ }
571
624
  function isLinearConnected(settings = loadAppSettings()) {
572
625
  return Boolean(settings.integrations.linearApiKey?.trim());
573
626
  }
@@ -682,7 +735,7 @@ function childEnvWithAppSettings(extra) {
682
735
  function harnessEnvKey(harness) {
683
736
  return HARNESS_ENV_KEYS[harness];
684
737
  }
685
- var import_node_fs3, import_node_os3, import_node_path4, HARNESS_ENV_KEYS, CLOUD_CONNECT_AGENTS, ISSUE_SOURCES, EMPTY_SETTINGS;
738
+ var import_node_fs3, import_node_os3, import_node_path4, HARNESS_ENV_KEYS, DEFAULT_AGENTS, CLOUD_CONNECT_AGENTS, ISSUE_SOURCES, EMPTY_SETTINGS;
686
739
  var init_app_settings = __esm({
687
740
  "src/store/app-settings.ts"() {
688
741
  "use strict";
@@ -697,6 +750,13 @@ var init_app_settings = __esm({
697
750
  opencode: null,
698
751
  brightsy: null
699
752
  };
753
+ DEFAULT_AGENTS = /* @__PURE__ */ new Set([
754
+ "claude",
755
+ "codex",
756
+ "opencode",
757
+ "brightsy",
758
+ "cursor"
759
+ ]);
700
760
  CLOUD_CONNECT_AGENTS = /* @__PURE__ */ new Set([
701
761
  "claude",
702
762
  "codex",
@@ -709,6 +769,7 @@ var init_app_settings = __esm({
709
769
  claude: {},
710
770
  brightsy: {},
711
771
  integrations: {},
772
+ defaults: {},
712
773
  advanced: {}
713
774
  };
714
775
  }
@@ -5843,6 +5904,8 @@ __export(index_exports, {
5843
5904
  getAdapter: () => getAdapter,
5844
5905
  getAgentSetupInfo: () => getAgentSetupInfo,
5845
5906
  getBrightsySession: () => getBrightsySession,
5907
+ getDefaultAgent: () => getDefaultAgent,
5908
+ getDefaultModel: () => getDefaultModel,
5846
5909
  getDefaultRunScript: () => getDefaultRunScript,
5847
5910
  getDiff: () => getDiff,
5848
5911
  getDiffSummary: () => getDiffSummary,
@@ -5958,6 +6021,7 @@ __export(index_exports, {
5958
6021
  resolveGithubRepoSlug: () => resolveGithubRepoSlug,
5959
6022
  resolvePrSelector: () => resolvePrSelector,
5960
6023
  resolveRepoRoot: () => resolveRepoRoot,
6024
+ resolveThreadDefaults: () => resolveThreadDefaults,
5961
6025
  resolveWorktreeStartPoint: () => resolveWorktreeStartPoint,
5962
6026
  run: () => run,
5963
6027
  runArchiveScript: () => runArchiveScript,
@@ -6003,6 +6067,7 @@ __export(index_exports, {
6003
6067
  updateAppEnvironment: () => updateAppEnvironment,
6004
6068
  updateBrightsySettings: () => updateBrightsySettings,
6005
6069
  updateClaudeSettings: () => updateClaudeSettings,
6070
+ updateDefaultsSettings: () => updateDefaultsSettings,
6006
6071
  updateIntegrationsSettings: () => updateIntegrationsSettings,
6007
6072
  updateThread: () => updateThread,
6008
6073
  validateLinearApiKey: () => validateLinearApiKey,
@@ -11563,6 +11628,8 @@ init_injected_mcp();
11563
11628
  getAdapter,
11564
11629
  getAgentSetupInfo,
11565
11630
  getBrightsySession,
11631
+ getDefaultAgent,
11632
+ getDefaultModel,
11566
11633
  getDefaultRunScript,
11567
11634
  getDiff,
11568
11635
  getDiffSummary,
@@ -11678,6 +11745,7 @@ init_injected_mcp();
11678
11745
  resolveGithubRepoSlug,
11679
11746
  resolvePrSelector,
11680
11747
  resolveRepoRoot,
11748
+ resolveThreadDefaults,
11681
11749
  resolveWorktreeStartPoint,
11682
11750
  run,
11683
11751
  runArchiveScript,
@@ -11723,6 +11791,7 @@ init_injected_mcp();
11723
11791
  updateAppEnvironment,
11724
11792
  updateBrightsySettings,
11725
11793
  updateClaudeSettings,
11794
+ updateDefaultsSettings,
11726
11795
  updateIntegrationsSettings,
11727
11796
  updateThread,
11728
11797
  validateLinearApiKey,
package/dist/index.d.cts CHANGED
@@ -455,6 +455,15 @@ declare const HARNESS_ENV_KEYS: {
455
455
  readonly brightsy: null;
456
456
  };
457
457
  type HarnessId = keyof typeof HARNESS_ENV_KEYS;
458
+ /**
459
+ * Account-level defaults for Create / new chat tabs (Settings → Account).
460
+ * Omitted fields fall back to Claude + Auto at runtime.
461
+ */
462
+ interface DefaultsAppSettings {
463
+ agent?: AgentKind;
464
+ /** Model / Brightsy target id. Empty or omitted = Auto / agent default. */
465
+ model?: string;
466
+ }
458
467
  /** Claude Code harness options (executable override + Chrome). */
459
468
  interface ClaudeHarnessSettings {
460
469
  /** Absolute path to Claude Code. Empty/omitted = `claude` on PATH. */
@@ -539,6 +548,8 @@ interface AppSettings {
539
548
  brightsy: BrightsyHarnessSettings;
540
549
  /** GitHub / Linear connections and issue-source preference. */
541
550
  integrations: IntegrationsSettings;
551
+ /** Default agent + model for new chats (Settings → Account). */
552
+ defaults: DefaultsAppSettings;
542
553
  /** Power-user / Conductor-style advanced preferences. */
543
554
  advanced: AdvancedAppSettings;
544
555
  }
@@ -560,6 +571,19 @@ declare function updateIntegrationsSettings(patch: {
560
571
  linearApiKey?: string | null;
561
572
  issueSource?: IssueSource | null;
562
573
  }): AppSettings;
574
+ declare function updateDefaultsSettings(patch: {
575
+ agent?: AgentKind | null;
576
+ model?: string | null;
577
+ }): AppSettings;
578
+ /** Default agent for Create / new chats (claude when unset). */
579
+ declare function getDefaultAgent(settings?: AppSettings): AgentKind;
580
+ /** Default model id for Create / new chats (`null` = Auto / agent default). */
581
+ declare function getDefaultModel(settings?: AppSettings): string | null;
582
+ /** Resolved Create / new-chat agent + model pair. */
583
+ declare function resolveThreadDefaults(settings?: AppSettings): {
584
+ agent: AgentKind;
585
+ model: string | null;
586
+ };
563
587
  /** True when Sideboard has a Linear API key stored. */
564
588
  declare function isLinearConnected(settings?: AppSettings): boolean;
565
589
  /** Preferred issue source (default GitHub). */
@@ -2152,6 +2176,10 @@ interface IpcApi {
2152
2176
  linearApiKey?: string | null;
2153
2177
  issueSource?: IssueSource | null;
2154
2178
  }): Promise<AppSettings>;
2179
+ updateDefaultsSettings(patch: {
2180
+ agent?: AgentKind | null;
2181
+ model?: string | null;
2182
+ }): Promise<AppSettings>;
2155
2183
  /** Machine-global GitHub status via `gh`. */
2156
2184
  getGitHubStatus(): Promise<GitHubStatus>;
2157
2185
  /**
@@ -2608,4 +2636,4 @@ declare function writeInjectedMcpConfig(opts: {
2608
2636
  includeBrightsy?: boolean;
2609
2637
  }): Promise<string | null>;
2610
2638
 
2611
- export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type RepoSettings, type RepoSetupInfo, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, type TeamName, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPlaceholderBranch, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, normalizeParseResult, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, permissionMode, previewLand, pushBranch, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
2639
+ export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type RepoSettings, type RepoSetupInfo, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, type TeamName, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPlaceholderBranch, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, normalizeParseResult, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, permissionMode, previewLand, pushBranch, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveThreadDefaults, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
package/dist/index.d.ts CHANGED
@@ -455,6 +455,15 @@ declare const HARNESS_ENV_KEYS: {
455
455
  readonly brightsy: null;
456
456
  };
457
457
  type HarnessId = keyof typeof HARNESS_ENV_KEYS;
458
+ /**
459
+ * Account-level defaults for Create / new chat tabs (Settings → Account).
460
+ * Omitted fields fall back to Claude + Auto at runtime.
461
+ */
462
+ interface DefaultsAppSettings {
463
+ agent?: AgentKind;
464
+ /** Model / Brightsy target id. Empty or omitted = Auto / agent default. */
465
+ model?: string;
466
+ }
458
467
  /** Claude Code harness options (executable override + Chrome). */
459
468
  interface ClaudeHarnessSettings {
460
469
  /** Absolute path to Claude Code. Empty/omitted = `claude` on PATH. */
@@ -539,6 +548,8 @@ interface AppSettings {
539
548
  brightsy: BrightsyHarnessSettings;
540
549
  /** GitHub / Linear connections and issue-source preference. */
541
550
  integrations: IntegrationsSettings;
551
+ /** Default agent + model for new chats (Settings → Account). */
552
+ defaults: DefaultsAppSettings;
542
553
  /** Power-user / Conductor-style advanced preferences. */
543
554
  advanced: AdvancedAppSettings;
544
555
  }
@@ -560,6 +571,19 @@ declare function updateIntegrationsSettings(patch: {
560
571
  linearApiKey?: string | null;
561
572
  issueSource?: IssueSource | null;
562
573
  }): AppSettings;
574
+ declare function updateDefaultsSettings(patch: {
575
+ agent?: AgentKind | null;
576
+ model?: string | null;
577
+ }): AppSettings;
578
+ /** Default agent for Create / new chats (claude when unset). */
579
+ declare function getDefaultAgent(settings?: AppSettings): AgentKind;
580
+ /** Default model id for Create / new chats (`null` = Auto / agent default). */
581
+ declare function getDefaultModel(settings?: AppSettings): string | null;
582
+ /** Resolved Create / new-chat agent + model pair. */
583
+ declare function resolveThreadDefaults(settings?: AppSettings): {
584
+ agent: AgentKind;
585
+ model: string | null;
586
+ };
563
587
  /** True when Sideboard has a Linear API key stored. */
564
588
  declare function isLinearConnected(settings?: AppSettings): boolean;
565
589
  /** Preferred issue source (default GitHub). */
@@ -2152,6 +2176,10 @@ interface IpcApi {
2152
2176
  linearApiKey?: string | null;
2153
2177
  issueSource?: IssueSource | null;
2154
2178
  }): Promise<AppSettings>;
2179
+ updateDefaultsSettings(patch: {
2180
+ agent?: AgentKind | null;
2181
+ model?: string | null;
2182
+ }): Promise<AppSettings>;
2155
2183
  /** Machine-global GitHub status via `gh`. */
2156
2184
  getGitHubStatus(): Promise<GitHubStatus>;
2157
2185
  /**
@@ -2608,4 +2636,4 @@ declare function writeInjectedMcpConfig(opts: {
2608
2636
  includeBrightsy?: boolean;
2609
2637
  }): Promise<string | null>;
2610
2638
 
2611
- export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type RepoSettings, type RepoSetupInfo, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, type TeamName, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPlaceholderBranch, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, normalizeParseResult, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, permissionMode, previewLand, pushBranch, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
2639
+ export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, Orchestrator, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type RepoSettings, type RepoSetupInfo, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, type TeamName, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorThread, isPlaceholderBranch, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, normalizeParseResult, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, partsToAssistantText, permissionMode, previewLand, pushBranch, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveRepoRoot, resolveThreadDefaults, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
package/dist/index.js CHANGED
@@ -101,7 +101,7 @@ import {
101
101
  withAgentInstructions,
102
102
  worktreeCleanupSettings,
103
103
  writeWorktreeFile
104
- } from "./chunk-AL2GL5HJ.js";
104
+ } from "./chunk-KSVPOIRV.js";
105
105
  import {
106
106
  addWorkspace,
107
107
  ensureWorkspace,
@@ -176,7 +176,7 @@ import {
176
176
  resolveCursorModelId,
177
177
  sanitizeMcpServerName,
178
178
  writeInjectedMcpConfig
179
- } from "./chunk-MULWZLDI.js";
179
+ } from "./chunk-EHUIPKBW.js";
180
180
  import {
181
181
  brightsyConfigPath,
182
182
  brightsyMcpServerName,
@@ -208,6 +208,8 @@ import {
208
208
  claudeChromeEnabled,
209
209
  claudeUserSettingsPath,
210
210
  deleteBranchOnPurgeEnabled,
211
+ getDefaultAgent,
212
+ getDefaultModel,
211
213
  getIssueSource,
212
214
  getLinearApiKey,
213
215
  harnessEnvKey,
@@ -216,13 +218,15 @@ import {
216
218
  maxConcurrentAgents,
217
219
  resolveClaudeExecutable,
218
220
  resolveEffectiveIssueSource,
221
+ resolveThreadDefaults,
219
222
  saveAppSettings,
220
223
  updateAdvancedSettings,
221
224
  updateAppEnvironment,
222
225
  updateBrightsySettings,
223
226
  updateClaudeSettings,
227
+ updateDefaultsSettings,
224
228
  updateIntegrationsSettings
225
- } from "./chunk-3WF3X46L.js";
229
+ } from "./chunk-YZ23S32T.js";
226
230
  import {
227
231
  FAMOUS_SOCCER_TEAMS,
228
232
  allocateTeamName,
@@ -859,6 +863,8 @@ export {
859
863
  getAdapter,
860
864
  getAgentSetupInfo,
861
865
  getBrightsySession,
866
+ getDefaultAgent,
867
+ getDefaultModel,
862
868
  getDefaultRunScript,
863
869
  getDiff,
864
870
  getDiffSummary,
@@ -974,6 +980,7 @@ export {
974
980
  resolveGithubRepoSlug,
975
981
  resolvePrSelector,
976
982
  resolveRepoRoot,
983
+ resolveThreadDefaults,
977
984
  resolveWorktreeStartPoint,
978
985
  run,
979
986
  runArchiveScript,
@@ -1019,6 +1026,7 @@ export {
1019
1026
  updateAppEnvironment,
1020
1027
  updateBrightsySettings,
1021
1028
  updateClaudeSettings,
1029
+ updateDefaultsSettings,
1022
1030
  updateIntegrationsSettings,
1023
1031
  updateThread,
1024
1032
  validateLinearApiKey,
@@ -2507,6 +2507,8 @@ __export(app_settings_exports, {
2507
2507
  claudeChromeEnabled: () => claudeChromeEnabled,
2508
2508
  claudeUserSettingsPath: () => claudeUserSettingsPath,
2509
2509
  deleteBranchOnPurgeEnabled: () => deleteBranchOnPurgeEnabled,
2510
+ getDefaultAgent: () => getDefaultAgent,
2511
+ getDefaultModel: () => getDefaultModel,
2510
2512
  getIssueSource: () => getIssueSource,
2511
2513
  getLinearApiKey: () => getLinearApiKey,
2512
2514
  harnessEnvKey: () => harnessEnvKey,
@@ -2515,11 +2517,13 @@ __export(app_settings_exports, {
2515
2517
  maxConcurrentAgents: () => maxConcurrentAgents,
2516
2518
  resolveClaudeExecutable: () => resolveClaudeExecutable,
2517
2519
  resolveEffectiveIssueSource: () => resolveEffectiveIssueSource,
2520
+ resolveThreadDefaults: () => resolveThreadDefaults,
2518
2521
  saveAppSettings: () => saveAppSettings,
2519
2522
  updateAdvancedSettings: () => updateAdvancedSettings,
2520
2523
  updateAppEnvironment: () => updateAppEnvironment,
2521
2524
  updateBrightsySettings: () => updateBrightsySettings,
2522
2525
  updateClaudeSettings: () => updateClaudeSettings,
2526
+ updateDefaultsSettings: () => updateDefaultsSettings,
2523
2527
  updateIntegrationsSettings: () => updateIntegrationsSettings
2524
2528
  });
2525
2529
  function appSettingsPath() {
@@ -2566,6 +2570,19 @@ function normalizeIntegrations(raw) {
2566
2570
  }
2567
2571
  return out;
2568
2572
  }
2573
+ function normalizeDefaults(raw) {
2574
+ if (!raw || typeof raw !== "object") return {};
2575
+ const source = raw;
2576
+ const out = {};
2577
+ if (typeof source.agent === "string" && DEFAULT_AGENTS.has(source.agent)) {
2578
+ out.agent = source.agent;
2579
+ }
2580
+ if (typeof source.model === "string") {
2581
+ const model = source.model.trim();
2582
+ if (model) out.model = model;
2583
+ }
2584
+ return out;
2585
+ }
2569
2586
  function normalizeAdvanced(raw) {
2570
2587
  if (!raw || typeof raw !== "object") return {};
2571
2588
  const source = raw;
@@ -2610,6 +2627,7 @@ function normalizeSettings(raw) {
2610
2627
  let claude = {};
2611
2628
  let brightsy = {};
2612
2629
  let integrations = {};
2630
+ let defaults = {};
2613
2631
  let advanced = {};
2614
2632
  if (raw && typeof raw === "object") {
2615
2633
  if ("environment" in raw) {
@@ -2633,11 +2651,14 @@ function normalizeSettings(raw) {
2633
2651
  raw.integrations
2634
2652
  );
2635
2653
  }
2654
+ if ("defaults" in raw) {
2655
+ defaults = normalizeDefaults(raw.defaults);
2656
+ }
2636
2657
  if ("advanced" in raw) {
2637
2658
  advanced = normalizeAdvanced(raw.advanced);
2638
2659
  }
2639
2660
  }
2640
- return { environment: env, claude, brightsy, integrations, advanced };
2661
+ return { environment: env, claude, brightsy, integrations, defaults, advanced };
2641
2662
  }
2642
2663
  function loadAppSettings() {
2643
2664
  const path = appSettingsPath();
@@ -2721,6 +2742,38 @@ function updateIntegrationsSettings(patch) {
2721
2742
  }
2722
2743
  return saveAppSettings({ ...current, integrations });
2723
2744
  }
2745
+ function updateDefaultsSettings(patch) {
2746
+ const current = loadAppSettings();
2747
+ const defaults = { ...current.defaults };
2748
+ if ("agent" in patch) {
2749
+ if (patch.agent == null) {
2750
+ delete defaults.agent;
2751
+ } else if (DEFAULT_AGENTS.has(patch.agent)) {
2752
+ defaults.agent = patch.agent;
2753
+ }
2754
+ }
2755
+ if ("model" in patch) {
2756
+ if (patch.model == null || patch.model.trim() === "") {
2757
+ delete defaults.model;
2758
+ } else {
2759
+ defaults.model = patch.model.trim();
2760
+ }
2761
+ }
2762
+ return saveAppSettings({ ...current, defaults });
2763
+ }
2764
+ function getDefaultAgent(settings = loadAppSettings()) {
2765
+ return settings.defaults.agent ?? "claude";
2766
+ }
2767
+ function getDefaultModel(settings = loadAppSettings()) {
2768
+ const model = settings.defaults.model?.trim();
2769
+ return model || null;
2770
+ }
2771
+ function resolveThreadDefaults(settings = loadAppSettings()) {
2772
+ return {
2773
+ agent: getDefaultAgent(settings),
2774
+ model: getDefaultModel(settings)
2775
+ };
2776
+ }
2724
2777
  function isLinearConnected(settings = loadAppSettings()) {
2725
2778
  return Boolean(settings.integrations.linearApiKey?.trim());
2726
2779
  }
@@ -2835,7 +2888,7 @@ function childEnvWithAppSettings(extra) {
2835
2888
  function harnessEnvKey(harness) {
2836
2889
  return HARNESS_ENV_KEYS[harness];
2837
2890
  }
2838
- var import_node_fs5, import_node_os4, import_node_path6, HARNESS_ENV_KEYS, CLOUD_CONNECT_AGENTS, ISSUE_SOURCES, EMPTY_SETTINGS;
2891
+ var import_node_fs5, import_node_os4, import_node_path6, HARNESS_ENV_KEYS, DEFAULT_AGENTS, CLOUD_CONNECT_AGENTS, ISSUE_SOURCES, EMPTY_SETTINGS;
2839
2892
  var init_app_settings = __esm({
2840
2893
  "src/store/app-settings.ts"() {
2841
2894
  "use strict";
@@ -2850,6 +2903,13 @@ var init_app_settings = __esm({
2850
2903
  opencode: null,
2851
2904
  brightsy: null
2852
2905
  };
2906
+ DEFAULT_AGENTS = /* @__PURE__ */ new Set([
2907
+ "claude",
2908
+ "codex",
2909
+ "opencode",
2910
+ "brightsy",
2911
+ "cursor"
2912
+ ]);
2853
2913
  CLOUD_CONNECT_AGENTS = /* @__PURE__ */ new Set([
2854
2914
  "claude",
2855
2915
  "codex",
@@ -2862,6 +2922,7 @@ var init_app_settings = __esm({
2862
2922
  claude: {},
2863
2923
  brightsy: {},
2864
2924
  integrations: {},
2925
+ defaults: {},
2865
2926
  advanced: {}
2866
2927
  };
2867
2928
  }
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  startMcpServer
4
- } from "../chunk-AL2GL5HJ.js";
4
+ } from "../chunk-KSVPOIRV.js";
5
5
  import "../chunk-PER4N6LS.js";
6
6
  import "../chunk-Y2EWQ4TL.js";
7
7
  import "../chunk-BMB7WCGF.js";
8
- import "../chunk-MULWZLDI.js";
8
+ import "../chunk-EHUIPKBW.js";
9
9
  import "../chunk-ILQK4P5R.js";
10
10
  import "../chunk-BSZX63TV.js";
11
- import "../chunk-3WF3X46L.js";
11
+ import "../chunk-YZ23S32T.js";
12
12
  import "../chunk-UFWEANLU.js";
13
13
  import "../chunk-HYRHI3QU.js";
14
14
  import "../chunk-M37RITA6.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.35",
3
+ "version": "0.1.36",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",