@sideboard-ai/core 0.1.314 → 0.1.316

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 (59) hide show
  1. package/dist/{abletime-T5YSJLNZ.js → abletime-NZ2ABWAL.js} +4 -4
  2. package/dist/{abletime-SJUVZVRU.js → abletime-TKAFNXCM.js} +4 -4
  3. package/dist/{abletime-oauth-73TFJME4.js → abletime-oauth-CBFFBINA.js} +3 -3
  4. package/dist/{abletime-oauth-2TOOZ2FN.js → abletime-oauth-S4AXA4WR.js} +3 -3
  5. package/dist/{abletime-rest-PNUGH2FS.js → abletime-rest-NSOP72AI.js} +3 -3
  6. package/dist/{abletime-rest-5TDRIFEV.js → abletime-rest-ORBELZQO.js} +3 -3
  7. package/dist/{agents-KIC6CNXF.js → agents-5XJ7EHGU.js} +6 -6
  8. package/dist/{agents-S7VBS5JL.js → agents-Y3M3EKLY.js} +6 -6
  9. package/dist/{app-settings-CC65VPBL.js → app-settings-CZVFMOI5.js} +3 -1
  10. package/dist/{app-settings-DZ5AY7N5.js → app-settings-RQAFJZCD.js} +3 -1
  11. package/dist/{chunk-6EGQPMSR.js → chunk-4ISF5XUA.js} +47 -26
  12. package/dist/{chunk-EGTCXNQM.js → chunk-53OCOGND.js} +2 -2
  13. package/dist/{chunk-DLGGLV2M.js → chunk-5CTG5W7S.js} +2 -2
  14. package/dist/{chunk-YK77HB3W.js → chunk-7BLIY2DD.js} +45 -25
  15. package/dist/{chunk-CFTOKVQN.js → chunk-7SCVGGF6.js} +5 -5
  16. package/dist/{chunk-7UP4D5XI.js → chunk-ATSZXRFQ.js} +6 -5
  17. package/dist/{chunk-BIPXOHZI.js → chunk-BPBDGJ43.js} +2 -2
  18. package/dist/{chunk-CW4FIIDE.js → chunk-CCUGIVYN.js} +3 -3
  19. package/dist/{chunk-HG25AYBV.js → chunk-CHUPIJP7.js} +14 -0
  20. package/dist/{chunk-5QYCCXXQ.js → chunk-DNWO6PQJ.js} +6 -5
  21. package/dist/{chunk-JWW66PO3.js → chunk-ELBK34TY.js} +5 -5
  22. package/dist/{chunk-A45QMSVB.js → chunk-FVTR54LY.js} +5 -5
  23. package/dist/{chunk-PHMFAU35.js → chunk-GCHSJCCX.js} +96 -64
  24. package/dist/{chunk-ZSVKUOFH.js → chunk-GFM63DTU.js} +8 -5
  25. package/dist/{chunk-OLSLE3LO.js → chunk-GXSV3X3L.js} +3 -3
  26. package/dist/{chunk-JARCAPKL.js → chunk-I5CLCWUK.js} +3 -3
  27. package/dist/{chunk-TO5UL7VN.js → chunk-MBYGWNLQ.js} +1 -1
  28. package/dist/{chunk-7DBL5AF4.js → chunk-NKVNHBDB.js} +4 -4
  29. package/dist/{chunk-U4WACWBC.js → chunk-NXNNYY3Q.js} +2 -2
  30. package/dist/{chunk-NMPQ7GIS.js → chunk-OLYNM52B.js} +2 -2
  31. package/dist/{chunk-S3KYDK6W.js → chunk-PN32Z4JL.js} +8 -5
  32. package/dist/{chunk-ZQLZ2A3I.js → chunk-S3U4HR5F.js} +2 -2
  33. package/dist/{chunk-3UDRWMIM.js → chunk-U35AHE2P.js} +14 -0
  34. package/dist/{chunk-A2YXQC65.js → chunk-U7PNCYNX.js} +96 -64
  35. package/dist/{chunk-SZ3XS2WM.js → chunk-VVV7EI6T.js} +3 -2
  36. package/dist/{chunk-6424BACS.js → chunk-VZAJVX36.js} +3 -2
  37. package/dist/{conductor-IIDQ2U24.js → conductor-CFLBKVHJ.js} +5 -5
  38. package/dist/{conductor-G6TKCMIW.js → conductor-NZ4V5CJX.js} +5 -5
  39. package/dist/{coordinator-prompt-EXJSULAR.js → coordinator-prompt-HUZC4DZ2.js} +4 -4
  40. package/dist/{coordinator-prompt-5USNNCG6.js → coordinator-prompt-SPOYUZG5.js} +4 -4
  41. package/dist/{global-workspace-ZGPIGJ6J.js → global-workspace-3NNDDTFD.js} +4 -4
  42. package/dist/{global-workspace-UDRTONQE.js → global-workspace-SK4JQBPN.js} +4 -4
  43. package/dist/index.cjs +448 -71
  44. package/dist/index.d.cts +81 -55
  45. package/dist/index.d.ts +81 -55
  46. package/dist/index.js +310 -27
  47. package/dist/mcp/run-stdio.cjs +152 -63
  48. package/dist/mcp/run-stdio.js +15 -14
  49. package/dist/{optional-cli-MLZSE6KW.js → optional-cli-EMSZBYDE.js} +3 -3
  50. package/dist/{optional-cli-SI4BCPRH.js → optional-cli-LMSRZNH4.js} +4 -4
  51. package/dist/{orchestrator-AM7VT2BD.js → orchestrator-7342RGRU.js} +9 -9
  52. package/dist/{orchestrator-V6NLIPLH.js → orchestrator-KXEPWTG5.js} +9 -9
  53. package/dist/{thread-store-HY22M5A7.js → thread-store-5OF6M6VZ.js} +1 -1
  54. package/dist/{thread-store-XMUQDO5O.js → thread-store-GOVVXQV2.js} +1 -1
  55. package/dist/{workspaces-3TTODHKN.js → workspaces-52L6NZ3P.js} +4 -4
  56. package/dist/{workspaces-TATO466L.js → workspaces-EYNZDL45.js} +4 -4
  57. package/dist/{worktree-C5VI46RZ.js → worktree-BP5ICYQ2.js} +3 -3
  58. package/dist/{worktree-FMK57ULT.js → worktree-UCOSAI7J.js} +3 -3
  59. package/package.json +1 -1
@@ -3812,6 +3812,81 @@ var init_thinking_effort = __esm({
3812
3812
  }
3813
3813
  });
3814
3814
 
3815
+ // src/store/thread-option-defaults.ts
3816
+ function normalizeAutonomy(value) {
3817
+ return value === "default" || value === "full" ? value : void 0;
3818
+ }
3819
+ function getDefaultAgent(settings = loadAppSettings()) {
3820
+ return settings.defaults.agent ?? "claude";
3821
+ }
3822
+ function getDefaultModel(settings = loadAppSettings()) {
3823
+ const model = settings.defaults.model?.trim();
3824
+ return model || null;
3825
+ }
3826
+ function getDefaultEffort(settings = loadAppSettings()) {
3827
+ return normalizeThinkingEffort(settings.defaults.effort) ?? "high";
3828
+ }
3829
+ function getDefaultFast(settings = loadAppSettings()) {
3830
+ return settings.defaults.fast === true;
3831
+ }
3832
+ function getDefaultAutonomy(settings = loadAppSettings()) {
3833
+ return settings.defaults.autonomy === "default" ? "default" : "full";
3834
+ }
3835
+ function resolveThreadDefaults(settings = loadAppSettings()) {
3836
+ return {
3837
+ agent: getDefaultAgent(settings),
3838
+ model: getDefaultModel(settings),
3839
+ effort: getDefaultEffort(settings),
3840
+ fast: getDefaultFast(settings),
3841
+ autonomy: getDefaultAutonomy(settings)
3842
+ };
3843
+ }
3844
+ function resolveOrchestratorDefaults(settings = loadAppSettings()) {
3845
+ const account = resolveThreadDefaults(settings);
3846
+ const orch = settings.defaults.orchestrator;
3847
+ const agent = coerceOrchestratorAgent(orch?.agent ?? account.agent);
3848
+ let model = orch ? orch.model?.trim() || null : account.model;
3849
+ if (model && agent !== "cursor" && /^(default|auto)$/i.test(model.trim())) {
3850
+ model = null;
3851
+ }
3852
+ return {
3853
+ agent,
3854
+ model,
3855
+ effort: orch?.effort ?? account.effort,
3856
+ fast: orch?.fast ?? account.fast,
3857
+ autonomy: orch?.autonomy ?? account.autonomy
3858
+ };
3859
+ }
3860
+ function mergeThreadOptionOverrides(defaults, overrides) {
3861
+ const effort = overrides.effort === void 0 || overrides.effort === null ? defaults.effort : normalizeThinkingEffort(overrides.effort) ?? defaults.effort;
3862
+ const agent = overrides.agent ?? defaults.agent;
3863
+ let model = overrides.model === void 0 ? defaults.model : overrides.model?.trim() || null;
3864
+ if (model && agent !== "cursor" && /^(default|auto)$/i.test(model.trim())) {
3865
+ model = null;
3866
+ }
3867
+ return {
3868
+ agent,
3869
+ model,
3870
+ effort,
3871
+ fast: overrides.fast === void 0 || overrides.fast === null ? defaults.fast : Boolean(overrides.fast),
3872
+ autonomy: overrides.autonomy == null ? defaults.autonomy : normalizeAutonomy(overrides.autonomy) ?? defaults.autonomy
3873
+ };
3874
+ }
3875
+ function resolveNewThreadOptions(overrides = {}, settings = loadAppSettings()) {
3876
+ return mergeThreadOptionOverrides(resolveThreadDefaults(settings), overrides);
3877
+ }
3878
+ function resolveNewOrchestratorOptions(overrides = {}, settings = loadAppSettings()) {
3879
+ return mergeThreadOptionOverrides(resolveOrchestratorDefaults(settings), overrides);
3880
+ }
3881
+ var init_thread_option_defaults = __esm({
3882
+ "src/store/thread-option-defaults.ts"() {
3883
+ "use strict";
3884
+ init_orchestrator_capable();
3885
+ init_thinking_effort();
3886
+ init_app_settings();
3887
+ }
3888
+ });
3889
+
3815
3890
  // src/store/account-profile.ts
3816
3891
  function legacyRoleLabel(role) {
3817
3892
  const known = LEGACY_ROLE_LABELS[role];
@@ -4736,6 +4811,7 @@ __export(app_settings_exports, {
4736
4811
  getAbleTimeAccessToken: () => getAbleTimeAccessToken,
4737
4812
  getAbleTimeHost: () => getAbleTimeHost,
4738
4813
  getDefaultAgent: () => getDefaultAgent,
4814
+ getDefaultAutonomy: () => getDefaultAutonomy,
4739
4815
  getDefaultEffort: () => getDefaultEffort,
4740
4816
  getDefaultFast: () => getDefaultFast,
4741
4817
  getDefaultModel: () => getDefaultModel,
@@ -5079,6 +5155,8 @@ function normalizeOrchestratorDefaults(raw) {
5079
5155
  if (typeof source.fast === "boolean") {
5080
5156
  out.fast = source.fast;
5081
5157
  }
5158
+ const autonomy = normalizeAutonomy(source.autonomy);
5159
+ if (autonomy) out.autonomy = autonomy;
5082
5160
  return Object.keys(out).length > 0 ? out : void 0;
5083
5161
  }
5084
5162
  function normalizeDefaults(raw) {
@@ -5098,6 +5176,8 @@ function normalizeDefaults(raw) {
5098
5176
  if (typeof source.fast === "boolean") {
5099
5177
  out.fast = source.fast;
5100
5178
  }
5179
+ const autonomy = normalizeAutonomy(source.autonomy);
5180
+ if (autonomy) out.autonomy = autonomy;
5101
5181
  const notes = foldLegacyRolesIntoNotes(source.roles, source.role, source.notes);
5102
5182
  if (notes) out.notes = notes;
5103
5183
  const orchestrator = normalizeOrchestratorDefaults(source.orchestrator);
@@ -5750,6 +5830,14 @@ function applyOrchestratorDefaultsPatch(current, patch) {
5750
5830
  next.fast = Boolean(patch.fast);
5751
5831
  }
5752
5832
  }
5833
+ if ("autonomy" in patch) {
5834
+ if (patch.autonomy == null) {
5835
+ delete next.autonomy;
5836
+ } else {
5837
+ const autonomy = normalizeAutonomy(patch.autonomy);
5838
+ if (autonomy) next.autonomy = autonomy;
5839
+ }
5840
+ }
5753
5841
  return Object.keys(next).length > 0 ? next : void 0;
5754
5842
  }
5755
5843
  function updateDefaultsSettings(patch) {
@@ -5784,6 +5872,14 @@ function updateDefaultsSettings(patch) {
5784
5872
  defaults.fast = Boolean(patch.fast);
5785
5873
  }
5786
5874
  }
5875
+ if ("autonomy" in patch) {
5876
+ if (patch.autonomy == null) {
5877
+ delete defaults.autonomy;
5878
+ } else {
5879
+ const autonomy = normalizeAutonomy(patch.autonomy);
5880
+ if (autonomy) defaults.autonomy = autonomy;
5881
+ }
5882
+ }
5787
5883
  if ("notes" in patch) {
5788
5884
  const notes = normalizeProfileNotes(patch.notes);
5789
5885
  if (!notes) delete defaults.notes;
@@ -5833,19 +5929,6 @@ function resolveProjectReviewLabel(settings, repoPath) {
5833
5929
  if (!key) return "";
5834
5930
  return settings.projects[key]?.reviewLabel?.trim() || "";
5835
5931
  }
5836
- function getDefaultAgent(settings = loadAppSettings()) {
5837
- return settings.defaults.agent ?? "claude";
5838
- }
5839
- function getDefaultModel(settings = loadAppSettings()) {
5840
- const model = settings.defaults.model?.trim();
5841
- return model || null;
5842
- }
5843
- function getDefaultEffort(settings = loadAppSettings()) {
5844
- return normalizeThinkingEffort(settings.defaults.effort) ?? "high";
5845
- }
5846
- function getDefaultFast(settings = loadAppSettings()) {
5847
- return settings.defaults.fast === true;
5848
- }
5849
5932
  function resolveAccountProfileFromSettings(settings = loadAppSettings()) {
5850
5933
  return resolveViewerProfile(settings.defaults);
5851
5934
  }
@@ -5908,49 +5991,6 @@ function writeViewerContext(input) {
5908
5991
  updateDefaultsSettings({ notes: proposed || null });
5909
5992
  return { ok: true, scope: "account", context: proposed };
5910
5993
  }
5911
- function resolveThreadDefaults(settings = loadAppSettings()) {
5912
- return {
5913
- agent: getDefaultAgent(settings),
5914
- model: getDefaultModel(settings),
5915
- effort: getDefaultEffort(settings),
5916
- fast: getDefaultFast(settings)
5917
- };
5918
- }
5919
- function resolveOrchestratorDefaults(settings = loadAppSettings()) {
5920
- const account = resolveThreadDefaults(settings);
5921
- const orch = settings.defaults.orchestrator;
5922
- const agent = coerceOrchestratorAgent(orch?.agent ?? account.agent);
5923
- let model = orch ? orch.model?.trim() || null : account.model;
5924
- if (model && agent !== "cursor" && /^(default|auto)$/i.test(model.trim())) {
5925
- model = null;
5926
- }
5927
- return {
5928
- agent,
5929
- model,
5930
- effort: orch?.effort ?? account.effort,
5931
- fast: orch?.fast ?? account.fast
5932
- };
5933
- }
5934
- function mergeThreadOptionOverrides(defaults, overrides) {
5935
- const effort = overrides.effort === void 0 || overrides.effort === null ? defaults.effort : normalizeThinkingEffort(overrides.effort) ?? defaults.effort;
5936
- const agent = overrides.agent ?? defaults.agent;
5937
- let model = overrides.model === void 0 ? defaults.model : overrides.model?.trim() || null;
5938
- if (model && agent !== "cursor" && /^(default|auto)$/i.test(model.trim())) {
5939
- model = null;
5940
- }
5941
- return {
5942
- agent,
5943
- model,
5944
- effort,
5945
- fast: overrides.fast === void 0 || overrides.fast === null ? defaults.fast : Boolean(overrides.fast)
5946
- };
5947
- }
5948
- function resolveNewThreadOptions(overrides = {}, settings = loadAppSettings()) {
5949
- return mergeThreadOptionOverrides(resolveThreadDefaults(settings), overrides);
5950
- }
5951
- function resolveNewOrchestratorOptions(overrides = {}, settings = loadAppSettings()) {
5952
- return mergeThreadOptionOverrides(resolveOrchestratorDefaults(settings), overrides);
5953
- }
5954
5994
  function isLinearConnected(settings = loadAppSettings()) {
5955
5995
  return hasLinearCredentials(settings.integrations);
5956
5996
  }
@@ -6355,6 +6395,7 @@ var init_app_settings = __esm({
6355
6395
  import_node_os6 = require("os");
6356
6396
  import_node_path16 = require("path");
6357
6397
  init_orchestrator_capable();
6398
+ init_thread_option_defaults();
6358
6399
  init_thinking_effort();
6359
6400
  init_nested_electron_env();
6360
6401
  init_account_profile();
@@ -6369,6 +6410,7 @@ var init_app_settings = __esm({
6369
6410
  init_managed_accounts();
6370
6411
  init_usage_on_limit();
6371
6412
  init_issue_source_labels();
6413
+ init_thread_option_defaults();
6372
6414
  init_account_profile();
6373
6415
  HARNESS_ENV_KEYS = {
6374
6416
  claude: "ANTHROPIC_API_KEY",
@@ -7513,6 +7555,19 @@ function normalizeRunScriptRequest(raw) {
7513
7555
  error: req.error ?? null
7514
7556
  };
7515
7557
  }
7558
+ function sanitizeIssueBlockedBy(value) {
7559
+ if (!Array.isArray(value)) return void 0;
7560
+ const out = [];
7561
+ const seen = /* @__PURE__ */ new Set();
7562
+ for (const item of value) {
7563
+ const id = String(item ?? "").trim();
7564
+ const key = id.toLowerCase();
7565
+ if (!id || seen.has(key)) continue;
7566
+ seen.add(key);
7567
+ out.push(id);
7568
+ }
7569
+ return out;
7570
+ }
7516
7571
  function normalizeThread(raw) {
7517
7572
  return {
7518
7573
  ...raw,
@@ -7537,6 +7592,7 @@ function normalizeThread(raw) {
7537
7592
  prIsInMergeQueue: Boolean(raw.prIsInMergeQueue),
7538
7593
  prLabels: Array.isArray(raw.prLabels) ? raw.prLabels : [],
7539
7594
  prChecksFailed: typeof raw.prChecksFailed === "boolean" ? raw.prChecksFailed : void 0,
7595
+ issueBlockedBy: sanitizeIssueBlockedBy(raw.issueBlockedBy),
7540
7596
  skipAutoArchiveOnMerge: Boolean(raw.skipAutoArchiveOnMerge),
7541
7597
  cowboy: Boolean(raw.cowboy),
7542
7598
  stackId: raw.stackId ?? null,
@@ -10297,7 +10353,8 @@ function createGlobalChat(opts) {
10297
10353
  agent: opts.agent,
10298
10354
  model: opts.model,
10299
10355
  effort: opts.effort,
10300
- fast: opts.fast
10356
+ fast: opts.fast,
10357
+ autonomy: opts.autonomy
10301
10358
  });
10302
10359
  const agent = assertOrchestratorCapableAgent(resolved.agent);
10303
10360
  const worktreePath = globalAgentCwd();
@@ -10311,7 +10368,7 @@ function createGlobalChat(opts) {
10311
10368
  worktreePath,
10312
10369
  repoPath: GLOBAL_WORKSPACE_ID,
10313
10370
  agent,
10314
- autonomy: opts.autonomy ?? "default",
10371
+ autonomy: resolved.autonomy,
10315
10372
  model: resolved.model,
10316
10373
  effort: resolved.effort,
10317
10374
  fast: resolved.fast,
@@ -10388,6 +10445,7 @@ function ensureSlackCoordinator(teamId, userId, agent, opts) {
10388
10445
  if (existing.model !== defaults.model) patch.model = defaults.model;
10389
10446
  if (existing.effort !== defaults.effort) patch.effort = defaults.effort;
10390
10447
  if (existing.fast !== defaults.fast) patch.fast = defaults.fast;
10448
+ if (existing.autonomy !== defaults.autonomy) patch.autonomy = defaults.autonomy;
10391
10449
  }
10392
10450
  if (Object.keys(patch).length > 0) {
10393
10451
  return updateThread(existing.id, patch);
@@ -10446,6 +10504,7 @@ function ensureCloudCoordinator(agent) {
10446
10504
  if (existing.model !== defaults.model) patch.model = defaults.model;
10447
10505
  if (existing.effort !== defaults.effort) patch.effort = defaults.effort;
10448
10506
  if (existing.fast !== defaults.fast) patch.fast = defaults.fast;
10507
+ if (existing.autonomy !== defaults.autonomy) patch.autonomy = defaults.autonomy;
10449
10508
  }
10450
10509
  if (Object.keys(patch).length > 0) {
10451
10510
  return updateThread(existing.id, patch);
@@ -17077,6 +17136,7 @@ function worktreeBindingFrom(from) {
17077
17136
  prIsInMergeQueue: from.prIsInMergeQueue,
17078
17137
  prLabels: from.prLabels,
17079
17138
  prChecksFailed: from.prChecksFailed,
17139
+ issueBlockedBy: from.issueBlockedBy,
17080
17140
  skipAutoArchiveOnMerge: from.skipAutoArchiveOnMerge,
17081
17141
  stackId: from.stackId,
17082
17142
  stackLayer: from.stackLayer,
@@ -20098,6 +20158,27 @@ var init_detect = __esm({
20098
20158
  }
20099
20159
  });
20100
20160
 
20161
+ // src/board/issue-blocked-view.ts
20162
+ function issueBlockedByIds(group) {
20163
+ const out = [];
20164
+ const seen = /* @__PURE__ */ new Set();
20165
+ for (const thread of group) {
20166
+ for (const raw of thread.issueBlockedBy ?? []) {
20167
+ const id = String(raw ?? "").trim();
20168
+ const key = id.toLowerCase();
20169
+ if (!id || seen.has(key)) continue;
20170
+ seen.add(key);
20171
+ out.push(id);
20172
+ }
20173
+ }
20174
+ return out;
20175
+ }
20176
+ var init_issue_blocked_view = __esm({
20177
+ "src/board/issue-blocked-view.ts"() {
20178
+ "use strict";
20179
+ }
20180
+ });
20181
+
20101
20182
  // src/board/pr-state.ts
20102
20183
  function isOpenPrState(prUrl, prState) {
20103
20184
  if (!prUrl?.trim()) return false;
@@ -20514,6 +20595,7 @@ function toThreadCard(group) {
20514
20595
  const thread = group[0];
20515
20596
  const withPr = group.find((t) => t.prUrl?.trim()) ?? thread;
20516
20597
  const tags = workspaceTagsFromGroup(group);
20598
+ const issueBlockedBy = issueBlockedByIds(group);
20517
20599
  return {
20518
20600
  kind: "thread",
20519
20601
  id: thread.id,
@@ -20527,6 +20609,7 @@ function toThreadCard(group) {
20527
20609
  link: `sideboard://chat/${thread.id}`,
20528
20610
  ...group.length > 1 ? { chatCount: group.length } : {},
20529
20611
  ...threadCardBlockFields(group) ?? {},
20612
+ ...issueBlockedBy.length > 0 ? { issueBlockedBy } : {},
20530
20613
  ...tags.length > 0 ? { tags } : {}
20531
20614
  };
20532
20615
  }
@@ -20610,9 +20693,11 @@ var init_home_board = __esm({
20610
20693
  init_message_parts();
20611
20694
  init_worktree_labels();
20612
20695
  init_agent_block_view();
20696
+ init_issue_blocked_view();
20613
20697
  init_pr_state();
20614
20698
  init_worktree_ownership();
20615
20699
  init_worktree_list_badges();
20700
+ init_issue_blocked_view();
20616
20701
  init_agent_block_view();
20617
20702
  GLOBAL_WORKSPACE_ID2 = "__global__";
20618
20703
  BOARD_COLUMN_DEFS = [
@@ -20626,7 +20711,7 @@ var init_home_board = __esm({
20626
20711
  DEFAULT_WORKTREE_SORT = "created";
20627
20712
  DEFAULTISH_BRANCH = /^(main|master|develop|development|trunk|default|head)$/;
20628
20713
  BOARD_PAGE_SIZE = 40;
20629
- HOME_BOARD_AGENT_HINT = "Home is a Kanban of workspaces (one card per checkout; sibling chats on a card are separate agents). Do not create a second workspace for a ticket, PR, or named branch that already has a live checkout \u2014 create_workspace / start_board_card return that checkout (alreadyStarted) and its chats. Add another agent with fork_chat. Creating from the default branch still opens a new isolated workspace. Columns are the path to merge: New (no PR) \u2192 Draft (draft PR) \u2192 Review (open PR) \u2192 Approved (approved, not merged) \u2192 Merged. ownership=mine is PRs you authored (or WIP with no PR); ownership=reviewing is someone else's PR (or a review-requested checkout). Viewer login comes from gh, not a setting. Archive removes the card to Settings \u2192 History (list_archive to browse, restore_workspace to bring it back). Queued/running are activity on the card, not columns. blockedReason means an agent on that card is waiting on a person (the question, plan approval, or a reported block) \u2014 read it and do not send_to_chat a check-in. Orchestration chats stay in the sidebar. Do not invent status.";
20714
+ HOME_BOARD_AGENT_HINT = "Home is a Kanban of workspaces (one card per checkout; sibling chats on a card are separate agents). Do not create a second workspace for a ticket, PR, or named branch that already has a live checkout \u2014 create_workspace / start_board_card return that checkout (alreadyStarted) and its chats. Add another agent with fork_chat. Creating from the default branch still opens a new isolated workspace. Columns are the path to merge: New (no PR) \u2192 Draft (draft PR) \u2192 Review (open PR) \u2192 Approved (approved, not merged) \u2192 Merged. ownership=mine is PRs you authored (or WIP with no PR); ownership=reviewing is someone else's PR (or a review-requested checkout). Viewer login comes from gh, not a setting. Archive removes the card to Settings \u2192 History (list_archive to browse, restore_workspace to bring it back). Queued/running are activity on the card, not columns. blockedReason means an agent on that card is waiting on a person (the question, plan approval, or a reported block) \u2014 read it and do not send_to_chat a check-in. issueBlockedBy, when present, lists issues blocking that workspace's source ticket (the tracker dependency, not a person). Orchestration chats stay in the sidebar. Do not invent status.";
20630
20715
  }
20631
20716
  });
20632
20717
 
@@ -21146,6 +21231,7 @@ function restTaskToRaw(raw, users) {
21146
21231
  projectId: asString(rec.projectId),
21147
21232
  categoryId: asString(rec.projectCategoryId) || asString(rec.categoryId),
21148
21233
  parentId: asString(rec.parentTaskId) || asString(rec.parentId),
21234
+ depends_on: rec.dependencyParentTimeflowTaskId ?? null,
21149
21235
  tags: rec.tags,
21150
21236
  comments,
21151
21237
  attachments: rec.attachments ?? rec.files ?? rec.media,
@@ -22589,7 +22675,8 @@ async function createThread(input, _onSetupLine) {
22589
22675
  agent: input.agent,
22590
22676
  model: input.model,
22591
22677
  effort: input.effort,
22592
- fast: input.fast
22678
+ fast: input.fast,
22679
+ autonomy: input.autonomy
22593
22680
  });
22594
22681
  await requireAgent(resolved.agent);
22595
22682
  if (input.cowboy) {
@@ -22628,7 +22715,7 @@ async function createThread(input, _onSetupLine) {
22628
22715
  worktreePath: repoPath,
22629
22716
  repoPath,
22630
22717
  agent: resolved.agent,
22631
- autonomy: input.autonomy ?? "default",
22718
+ autonomy: resolved.autonomy,
22632
22719
  model: resolved.model,
22633
22720
  effort: resolved.effort,
22634
22721
  fast: resolved.fast,
@@ -22742,7 +22829,7 @@ async function createThread(input, _onSetupLine) {
22742
22829
  worktreePath,
22743
22830
  repoPath,
22744
22831
  agent: resolved.agent,
22745
- autonomy: input.autonomy ?? "default",
22832
+ autonomy: resolved.autonomy,
22746
22833
  model: resolved.model,
22747
22834
  effort: resolved.effort,
22748
22835
  fast: resolved.fast,
@@ -23903,7 +23990,7 @@ async function openStackLayer(input, _onSetupLine) {
23903
23990
  worktreePath,
23904
23991
  repoPath,
23905
23992
  agent: input.agent,
23906
- autonomy: input.autonomy ?? "default",
23993
+ autonomy: input.autonomy ?? getDefaultAutonomy(),
23907
23994
  model: input.model ?? null,
23908
23995
  effort: input.effort ?? "high",
23909
23996
  fast: Boolean(input.fast),
@@ -24102,6 +24189,7 @@ var init_stack_layers = __esm({
24102
24189
  init_worktree();
24103
24190
  init_conductor();
24104
24191
  init_thread_store();
24192
+ init_app_settings();
24105
24193
  init_workspaces();
24106
24194
  }
24107
24195
  });
@@ -32336,6 +32424,7 @@ async function createOrchChildThread(orch, args, resolveNewThreadOptions2) {
32336
32424
  model: opts.model,
32337
32425
  effort: opts.effort,
32338
32426
  fast: opts.fast,
32427
+ autonomy: opts.autonomy,
32339
32428
  repoPath: args.repoPath,
32340
32429
  title: args.title,
32341
32430
  parentThreadId: parentId || null,
@@ -56,7 +56,7 @@ import {
56
56
  updateSchedule,
57
57
  workspaceTagTargetRef,
58
58
  writeAgentBlock
59
- } from "../chunk-YK77HB3W.js";
59
+ } from "../chunk-7BLIY2DD.js";
60
60
  import "../chunk-LX5R5JOR.js";
61
61
  import {
62
62
  commentAbleTimeTask,
@@ -76,12 +76,12 @@ import {
76
76
  searchAbleTimeTasks,
77
77
  toAbleTimeIssueInfo,
78
78
  updateAbleTimeTask
79
- } from "../chunk-JARCAPKL.js";
80
- import "../chunk-6424BACS.js";
81
- import "../chunk-CFTOKVQN.js";
79
+ } from "../chunk-I5CLCWUK.js";
80
+ import "../chunk-VZAJVX36.js";
81
+ import "../chunk-7SCVGGF6.js";
82
82
  import {
83
83
  normalizeServiceOrigin
84
- } from "../chunk-TO5UL7VN.js";
84
+ } from "../chunk-MBYGWNLQ.js";
85
85
  import {
86
86
  PRESENT_PLAN_REQUIRES_PLAN_MODE,
87
87
  PRESENT_PLAN_TOOL_DESCRIPTION,
@@ -97,8 +97,8 @@ import {
97
97
  shouldRegisterMcpWaitForTurn,
98
98
  sideboardMcpProfile,
99
99
  worktreeMcpToolNames
100
- } from "../chunk-A45QMSVB.js";
101
- import "../chunk-EGTCXNQM.js";
100
+ } from "../chunk-FVTR54LY.js";
101
+ import "../chunk-53OCOGND.js";
102
102
  import "../chunk-V5BTGQ6M.js";
103
103
  import "../chunk-E63AM3PW.js";
104
104
  import {
@@ -114,7 +114,7 @@ import {
114
114
  waitForDetachedJob,
115
115
  waitForTurnToolResult,
116
116
  workspaceAgentChatSummaries
117
- } from "../chunk-5QYCCXXQ.js";
117
+ } from "../chunk-DNWO6PQJ.js";
118
118
  import {
119
119
  HUGE_TOOL_RESULT_SUMMARY,
120
120
  clipToolResultForStore,
@@ -125,7 +125,7 @@ import {
125
125
  import {
126
126
  GLOBAL_WORKSPACE_ID,
127
127
  isCloudCoordinatorThread
128
- } from "../chunk-S3KYDK6W.js";
128
+ } from "../chunk-PN32Z4JL.js";
129
129
  import {
130
130
  canonicalizeRepoPath,
131
131
  formatGhLandError,
@@ -136,7 +136,7 @@ import {
136
136
  resolveListPrsOptions,
137
137
  resolveRepoRoot,
138
138
  warmGithubAgentAuth
139
- } from "../chunk-DLGGLV2M.js";
139
+ } from "../chunk-5CTG5W7S.js";
140
140
  import {
141
141
  CLI_DIR
142
142
  } from "../chunk-N2WW62LF.js";
@@ -158,7 +158,7 @@ import {
158
158
  resolveViewerProfile,
159
159
  resolveViewerProfileForRepo,
160
160
  saveLinearOAuth
161
- } from "../chunk-PHMFAU35.js";
161
+ } from "../chunk-GCHSJCCX.js";
162
162
  import "../chunk-NSTQ6QKD.js";
163
163
  import {
164
164
  dropNestedElectronEnvFromProcess
@@ -169,7 +169,7 @@ import {
169
169
  normalizeWorkspaceTags,
170
170
  readThread,
171
171
  updateThread
172
- } from "../chunk-3UDRWMIM.js";
172
+ } from "../chunk-U35AHE2P.js";
173
173
  import "../chunk-WMZIANPV.js";
174
174
  import "../chunk-KGZBYWZ3.js";
175
175
  import {
@@ -2286,6 +2286,7 @@ async function createOrchChildThread(orch, args, resolveNewThreadOptions) {
2286
2286
  model: opts.model,
2287
2287
  effort: opts.effort,
2288
2288
  fast: opts.fast,
2289
+ autonomy: opts.autonomy,
2289
2290
  repoPath: args.repoPath,
2290
2291
  title: args.title,
2291
2292
  parentThreadId: parentId || null,
@@ -4011,7 +4012,7 @@ async function startMcpServer() {
4011
4012
  );
4012
4013
  }
4013
4014
  try {
4014
- const { maxConcurrentAgents } = await import("../app-settings-CC65VPBL.js");
4015
+ const { maxConcurrentAgents } = await import("../app-settings-CZVFMOI5.js");
4015
4016
  orch.setMaxConcurrent(maxConcurrentAgents());
4016
4017
  } catch {
4017
4018
  }
@@ -4559,7 +4560,7 @@ async function startMcpServer() {
4559
4560
  if (!worktreeProfile) {
4560
4561
  registerConnectedIssueVendorTools(server);
4561
4562
  const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-H7TTUDGM.js");
4562
- const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-CC65VPBL.js");
4563
+ const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-CZVFMOI5.js");
4563
4564
  const accountDefaults = resolveThreadDefaults();
4564
4565
  const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
4565
4566
  server.tool(
@@ -4,16 +4,16 @@ import {
4
4
  OPTIONAL_SERVICES,
5
5
  isOptionalServiceId,
6
6
  optionalServiceSpec
7
- } from "./chunk-TO5UL7VN.js";
7
+ } from "./chunk-MBYGWNLQ.js";
8
8
  import {
9
9
  installNpmGlobalPackage,
10
10
  whichOnPath
11
- } from "./chunk-EGTCXNQM.js";
11
+ } from "./chunk-53OCOGND.js";
12
12
  import "./chunk-2GPQZZLY.js";
13
13
  import {
14
14
  enrichPathWithNpmGlobalBin
15
15
  } from "./chunk-2UG25RMK.js";
16
- import "./chunk-PHMFAU35.js";
16
+ import "./chunk-GCHSJCCX.js";
17
17
  import "./chunk-NSTQ6QKD.js";
18
18
  import "./chunk-WWUABK6B.js";
19
19
  import "./chunk-FJZWM2ON.js";
@@ -3,12 +3,12 @@ import {
3
3
  detectOptionalServiceClis,
4
4
  installOptionalServiceCli,
5
5
  optionalCliPresence
6
- } from "./chunk-ZQLZ2A3I.js";
7
- import "./chunk-NMPQ7GIS.js";
8
- import "./chunk-U4WACWBC.js";
6
+ } from "./chunk-S3U4HR5F.js";
7
+ import "./chunk-OLYNM52B.js";
8
+ import "./chunk-NXNNYY3Q.js";
9
9
  import "./chunk-JAT3JFOS.js";
10
10
  import "./chunk-QVN2WOKJ.js";
11
- import "./chunk-A2YXQC65.js";
11
+ import "./chunk-U7PNCYNX.js";
12
12
  import "./chunk-77WWLBCI.js";
13
13
  import "./chunk-4TR3HZFT.js";
14
14
  import "./chunk-WDRMZKVB.js";
@@ -11,29 +11,29 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-YK77HB3W.js";
14
+ } from "./chunk-7BLIY2DD.js";
15
15
  import "./chunk-LX5R5JOR.js";
16
- import "./chunk-TO5UL7VN.js";
16
+ import "./chunk-MBYGWNLQ.js";
17
17
  import "./chunk-4GK32AYX.js";
18
18
  import "./chunk-DC3VZXMA.js";
19
- import "./chunk-A45QMSVB.js";
20
- import "./chunk-EGTCXNQM.js";
19
+ import "./chunk-FVTR54LY.js";
20
+ import "./chunk-53OCOGND.js";
21
21
  import "./chunk-V5BTGQ6M.js";
22
22
  import "./chunk-E63AM3PW.js";
23
23
  import "./chunk-2GPQZZLY.js";
24
- import "./chunk-5QYCCXXQ.js";
24
+ import "./chunk-DNWO6PQJ.js";
25
25
  import "./chunk-I5TESHDN.js";
26
- import "./chunk-S3KYDK6W.js";
27
- import "./chunk-DLGGLV2M.js";
26
+ import "./chunk-PN32Z4JL.js";
27
+ import "./chunk-5CTG5W7S.js";
28
28
  import "./chunk-N2WW62LF.js";
29
29
  import "./chunk-DD67JWTN.js";
30
30
  import "./chunk-2UG25RMK.js";
31
- import "./chunk-PHMFAU35.js";
31
+ import "./chunk-GCHSJCCX.js";
32
32
  import "./chunk-NSTQ6QKD.js";
33
33
  import "./chunk-WWUABK6B.js";
34
34
  import "./chunk-FJZWM2ON.js";
35
35
  import "./chunk-J2LNLI4S.js";
36
- import "./chunk-3UDRWMIM.js";
36
+ import "./chunk-U35AHE2P.js";
37
37
  import "./chunk-WMZIANPV.js";
38
38
  import "./chunk-KGZBYWZ3.js";
39
39
  import "./chunk-WOU343SI.js";
@@ -9,18 +9,18 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-6EGQPMSR.js";
12
+ } from "./chunk-4ISF5XUA.js";
13
13
  import "./chunk-PGPSIEMW.js";
14
- import "./chunk-7DBL5AF4.js";
14
+ import "./chunk-NKVNHBDB.js";
15
15
  import "./chunk-HH3VVTEC.js";
16
- import "./chunk-7UP4D5XI.js";
16
+ import "./chunk-ATSZXRFQ.js";
17
17
  import "./chunk-7Q327QF2.js";
18
18
  import "./chunk-7H655NEW.js";
19
- import "./chunk-NMPQ7GIS.js";
20
- import "./chunk-U4WACWBC.js";
21
- import "./chunk-ZSVKUOFH.js";
22
- import "./chunk-BIPXOHZI.js";
23
- import "./chunk-HG25AYBV.js";
19
+ import "./chunk-OLYNM52B.js";
20
+ import "./chunk-NXNNYY3Q.js";
21
+ import "./chunk-GFM63DTU.js";
22
+ import "./chunk-BPBDGJ43.js";
23
+ import "./chunk-CHUPIJP7.js";
24
24
  import "./chunk-2P4XKWV2.js";
25
25
  import "./chunk-RSA47QYR.js";
26
26
  import "./chunk-JAT3JFOS.js";
@@ -32,7 +32,7 @@ import "./chunk-6K64FJDD.js";
32
32
  import "./chunk-LG6RJBIY.js";
33
33
  import "./chunk-QVN2WOKJ.js";
34
34
  import "./chunk-YDUHLWI5.js";
35
- import "./chunk-A2YXQC65.js";
35
+ import "./chunk-U7PNCYNX.js";
36
36
  import "./chunk-77WWLBCI.js";
37
37
  import "./chunk-4TR3HZFT.js";
38
38
  import "./chunk-WDRMZKVB.js";
@@ -15,7 +15,7 @@ import {
15
15
  updateThread,
16
16
  withThreadLock,
17
17
  writeThread
18
- } from "./chunk-HG25AYBV.js";
18
+ } from "./chunk-CHUPIJP7.js";
19
19
  import "./chunk-F2PVRF3B.js";
20
20
  import "./chunk-LG6RJBIY.js";
21
21
  import "./chunk-77WWLBCI.js";
@@ -17,7 +17,7 @@ import {
17
17
  updateThread,
18
18
  withThreadLock,
19
19
  writeThread
20
- } from "./chunk-3UDRWMIM.js";
20
+ } from "./chunk-U35AHE2P.js";
21
21
  import "./chunk-WMZIANPV.js";
22
22
  import "./chunk-KGZBYWZ3.js";
23
23
  import "./chunk-WOU343SI.js";
@@ -9,15 +9,15 @@ import {
9
9
  removeWorkspace,
10
10
  sameWorkspacePath,
11
11
  syncWorkspacesFromThreads
12
- } from "./chunk-ZSVKUOFH.js";
13
- import "./chunk-BIPXOHZI.js";
14
- import "./chunk-HG25AYBV.js";
12
+ } from "./chunk-GFM63DTU.js";
13
+ import "./chunk-BPBDGJ43.js";
14
+ import "./chunk-CHUPIJP7.js";
15
15
  import "./chunk-2P4XKWV2.js";
16
16
  import "./chunk-F2PVRF3B.js";
17
17
  import "./chunk-6K64FJDD.js";
18
18
  import "./chunk-LG6RJBIY.js";
19
19
  import "./chunk-QVN2WOKJ.js";
20
- import "./chunk-A2YXQC65.js";
20
+ import "./chunk-U7PNCYNX.js";
21
21
  import "./chunk-77WWLBCI.js";
22
22
  import "./chunk-4TR3HZFT.js";
23
23
  import "./chunk-WDRMZKVB.js";