@sideboard-ai/core 0.1.250 → 0.1.251

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 (27) hide show
  1. package/dist/{agents-7IIUQLCC.js → agents-FY2DFOMV.js} +3 -3
  2. package/dist/{agents-72QLUO4L.js → agents-PU2P5VWM.js} +3 -3
  3. package/dist/{chunk-EV4QJNR7.js → chunk-2LZ3CNTN.js} +11 -11
  4. package/dist/{chunk-RLJHH6T7.js → chunk-6Z66OYYO.js} +10 -10
  5. package/dist/{chunk-DMT62X6L.js → chunk-7R5I5UWW.js} +3 -3
  6. package/dist/{chunk-IJIMEK2K.js → chunk-GNO7RXNH.js} +3 -3
  7. package/dist/{chunk-WSOFNJPD.js → chunk-JLLISK4D.js} +8 -5
  8. package/dist/{chunk-W4BGLHA3.js → chunk-PL23EQ3S.js} +1 -1
  9. package/dist/{chunk-SJPK5Y5U.js → chunk-TMLS5WYR.js} +1 -1
  10. package/dist/{chunk-566W54AN.js → chunk-WI75LO3T.js} +8 -5
  11. package/dist/{coordinator-prompt-Q53MIP2G.js → coordinator-prompt-6CWVH2US.js} +2 -2
  12. package/dist/{coordinator-prompt-ON5YI463.js → coordinator-prompt-R7JNOUZ3.js} +2 -2
  13. package/dist/{global-workspace-MTBVW6GW.js → global-workspace-DWKW4CFY.js} +2 -2
  14. package/dist/{global-workspace-VWF5AOYN.js → global-workspace-GTEL4UUZ.js} +2 -2
  15. package/dist/index.cjs +8 -5
  16. package/dist/index.d.cts +2 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +5 -5
  19. package/dist/mcp/run-stdio.cjs +8 -5
  20. package/dist/mcp/run-stdio.js +5 -5
  21. package/dist/{orchestrator-HEFTR7RA.js → orchestrator-7XDC4UOC.js} +4 -4
  22. package/dist/{orchestrator-NKG4R6TX.js → orchestrator-W7A5BA5V.js} +4 -4
  23. package/dist/{workspaces-24YJWKJQ.js → workspaces-E6IL3MIH.js} +2 -2
  24. package/dist/{workspaces-QWGSPLMF.js → workspaces-PSDDVERD.js} +2 -2
  25. package/dist/{worktree-VED7K2UL.js → worktree-MWX6ZVNS.js} +1 -1
  26. package/dist/{worktree-RYZOFNY7.js → worktree-Q4T7RSSW.js} +1 -1
  27. package/package.json +1 -1
@@ -46,9 +46,9 @@ import {
46
46
  resolveLoginCommand,
47
47
  resolveQuotaFallbackAgent,
48
48
  whichOnPath
49
- } from "./chunk-DMT62X6L.js";
50
- import "./chunk-SJPK5Y5U.js";
51
- import "./chunk-566W54AN.js";
49
+ } from "./chunk-7R5I5UWW.js";
50
+ import "./chunk-TMLS5WYR.js";
51
+ import "./chunk-WI75LO3T.js";
52
52
  import "./chunk-6K64FJDD.js";
53
53
  import "./chunk-2P4XKWV2.js";
54
54
  import "./chunk-5F4YFGHL.js";
@@ -55,12 +55,12 @@ import {
55
55
  resolveQuotaFallbackAgent,
56
56
  turnCostUsdFromCursorUsage,
57
57
  whichOnPath
58
- } from "./chunk-IJIMEK2K.js";
59
- import "./chunk-W4BGLHA3.js";
58
+ } from "./chunk-GNO7RXNH.js";
59
+ import "./chunk-PL23EQ3S.js";
60
60
  import "./chunk-XAISOBBG.js";
61
61
  import "./chunk-P2BSMNHB.js";
62
62
  import "./chunk-VKQGAWHY.js";
63
- import "./chunk-WSOFNJPD.js";
63
+ import "./chunk-JLLISK4D.js";
64
64
  import "./chunk-D6JWYJ4P.js";
65
65
  import "./chunk-RJC2MKXN.js";
66
66
  import "./chunk-H547WSSZ.js";
@@ -25,7 +25,7 @@ import {
25
25
  resolveQuotaFallbackAgent,
26
26
  stripBrightsyNdjsonNoise,
27
27
  toolDescription
28
- } from "./chunk-DMT62X6L.js";
28
+ } from "./chunk-7R5I5UWW.js";
29
29
  import {
30
30
  SLACK_REPLY_FORMATTING,
31
31
  addWorkspace,
@@ -48,7 +48,7 @@ import {
48
48
  stageAbsolutePathsAsAttachments,
49
49
  stageBuffersAsAttachments,
50
50
  syncWorkspacesFromThreads
51
- } from "./chunk-SJPK5Y5U.js";
51
+ } from "./chunk-TMLS5WYR.js";
52
52
  import {
53
53
  addPrStackLayer,
54
54
  allocateTeamName,
@@ -98,7 +98,7 @@ import {
98
98
  worktreeDisplayLabelForGroup,
99
99
  worktreeNameFromPath,
100
100
  worktreeSlugForTicket
101
- } from "./chunk-566W54AN.js";
101
+ } from "./chunk-WI75LO3T.js";
102
102
  import {
103
103
  ATTACHMENTS_DIR,
104
104
  DETACHED_JOBS_DIR,
@@ -443,9 +443,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
443
443
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
444
444
  );
445
445
  }
446
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-VWF5AOYN.js");
446
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-GTEL4UUZ.js");
447
447
  if (isGlobalThread2(thread)) {
448
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-ON5YI463.js");
448
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-R7JNOUZ3.js");
449
449
  ensureGlobalCoordinatorCwd2(
450
450
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
451
451
  );
@@ -4330,7 +4330,7 @@ async function createThread(input, _onSetupLine) {
4330
4330
  return readThread(thread.id) ?? thread;
4331
4331
  }
4332
4332
  async function listLinearIssues(agent, repoPath) {
4333
- const { getAdapter: getAdapter2 } = await import("./agents-7IIUQLCC.js");
4333
+ const { getAdapter: getAdapter2 } = await import("./agents-FY2DFOMV.js");
4334
4334
  await requireAgent(agent, { requireLinear: true });
4335
4335
  const adapter = getAdapter2(agent);
4336
4336
  if (!adapter.listLinearIssues) {
@@ -4803,7 +4803,7 @@ async function adoptThread(input) {
4803
4803
  messages: input.messages ?? []
4804
4804
  });
4805
4805
  writeThread(thread);
4806
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-QWGSPLMF.js");
4806
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-PSDDVERD.js");
4807
4807
  await ensureWorkspace2(repoPath);
4808
4808
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-RXZPTCNH.js");
4809
4809
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -7515,7 +7515,7 @@ function formatScheduledPrompt(name, prompt) {
7515
7515
  ${prompt}`;
7516
7516
  }
7517
7517
  async function defaultDeps() {
7518
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-HEFTR7RA.js");
7518
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-7XDC4UOC.js");
7519
7519
  const orch = getOrchestrator2();
7520
7520
  return {
7521
7521
  findThread: (id) => findThreadByRef(id),
@@ -10140,7 +10140,7 @@ var Orchestrator = class {
10140
10140
  this.enforceHistoryRetention();
10141
10141
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
10142
10142
  try {
10143
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-QWGSPLMF.js");
10143
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-PSDDVERD.js");
10144
10144
  await ensureWorkspace2(thread.repoPath);
10145
10145
  } catch {
10146
10146
  }
@@ -10194,7 +10194,7 @@ var Orchestrator = class {
10194
10194
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
10195
10195
  );
10196
10196
  }
10197
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-RYZOFNY7.js");
10197
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-Q4T7RSSW.js");
10198
10198
  const slug = thread.worktreePath.split("/").pop();
10199
10199
  const dest = thread.worktreePath;
10200
10200
  await withRepoGitLock(thread.repoPath, async () => {
@@ -10304,7 +10304,7 @@ async function startOrchestration(opts) {
10304
10304
  sourceRef: "default",
10305
10305
  ...createOpts
10306
10306
  }).catch(async () => {
10307
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-RYZOFNY7.js");
10307
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-Q4T7RSSW.js");
10308
10308
  const repo = await resolveRepoRoot2(repoPath);
10309
10309
  const def = await resolveDefaultBranch2(repo);
10310
10310
  return orch.createThread({
@@ -44,7 +44,7 @@ import {
44
44
  summarizeTurnStderr,
45
45
  toolDescription,
46
46
  turnFailChatText
47
- } from "./chunk-IJIMEK2K.js";
47
+ } from "./chunk-GNO7RXNH.js";
48
48
  import {
49
49
  SLACK_REPLY_FORMATTING,
50
50
  addWorkspace,
@@ -67,7 +67,7 @@ import {
67
67
  stageAbsolutePathsAsAttachments,
68
68
  stageBuffersAsAttachments,
69
69
  syncWorkspacesFromThreads
70
- } from "./chunk-W4BGLHA3.js";
70
+ } from "./chunk-PL23EQ3S.js";
71
71
  import {
72
72
  addPrStackLayer,
73
73
  allocateTeamName,
@@ -117,7 +117,7 @@ import {
117
117
  worktreeDisplayLabelForGroup,
118
118
  worktreeNameFromPath,
119
119
  worktreeSlugForTicket
120
- } from "./chunk-WSOFNJPD.js";
120
+ } from "./chunk-JLLISK4D.js";
121
121
  import {
122
122
  ATTACHMENTS_DIR,
123
123
  DETACHED_JOBS_DIR,
@@ -491,9 +491,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
491
491
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
492
492
  );
493
493
  }
494
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-MTBVW6GW.js");
494
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-DWKW4CFY.js");
495
495
  if (isGlobalThread2(thread)) {
496
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-Q53MIP2G.js");
496
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-6CWVH2US.js");
497
497
  ensureGlobalCoordinatorCwd2(
498
498
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
499
499
  );
@@ -4595,7 +4595,7 @@ async function adoptThread(input) {
4595
4595
  messages: input.messages ?? []
4596
4596
  });
4597
4597
  writeThread(thread);
4598
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-24YJWKJQ.js");
4598
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-E6IL3MIH.js");
4599
4599
  await ensureWorkspace2(repoPath);
4600
4600
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-5N2KTYIT.js");
4601
4601
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -7101,7 +7101,7 @@ function formatScheduledPrompt(name, prompt) {
7101
7101
  ${prompt}`;
7102
7102
  }
7103
7103
  async function defaultDeps() {
7104
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-NKG4R6TX.js");
7104
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-W7A5BA5V.js");
7105
7105
  const orch = getOrchestrator2();
7106
7106
  return {
7107
7107
  findThread: (id) => findThreadByRef(id),
@@ -9726,7 +9726,7 @@ var Orchestrator = class {
9726
9726
  this.enforceHistoryRetention();
9727
9727
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
9728
9728
  try {
9729
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-24YJWKJQ.js");
9729
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-E6IL3MIH.js");
9730
9730
  await ensureWorkspace2(thread.repoPath);
9731
9731
  } catch {
9732
9732
  }
@@ -9780,7 +9780,7 @@ var Orchestrator = class {
9780
9780
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
9781
9781
  );
9782
9782
  }
9783
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-VED7K2UL.js");
9783
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-MWX6ZVNS.js");
9784
9784
  const slug = thread.worktreePath.split("/").pop();
9785
9785
  const dest = thread.worktreePath;
9786
9786
  await withRepoGitLock(thread.repoPath, async () => {
@@ -9890,7 +9890,7 @@ async function startOrchestration(opts) {
9890
9890
  sourceRef: "default",
9891
9891
  ...createOpts
9892
9892
  }).catch(async () => {
9893
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-VED7K2UL.js");
9893
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-MWX6ZVNS.js");
9894
9894
  const repo = await resolveRepoRoot2(repoPath);
9895
9895
  const def = await resolveDefaultBranch2(repo);
9896
9896
  return orch.createThread({
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  isOrchestratorThread
3
- } from "./chunk-SJPK5Y5U.js";
3
+ } from "./chunk-TMLS5WYR.js";
4
4
  import {
5
5
  codexUnattendedGitConfigArgs,
6
6
  mergeAgentGitAuthEnv,
7
7
  resolveAgentGitAuthEnv,
8
8
  resolveCodexGitWritableRoots
9
- } from "./chunk-566W54AN.js";
9
+ } from "./chunk-WI75LO3T.js";
10
10
  import {
11
11
  applyConnectedTeamToCli,
12
12
  brightsyMcpServerName,
@@ -2533,7 +2533,7 @@ var claudeAdapter = {
2533
2533
  );
2534
2534
  }
2535
2535
  const mode = permissionMode(thread);
2536
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-VWF5AOYN.js");
2536
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-GTEL4UUZ.js");
2537
2537
  const isOrchestrator = isOrchestratorThread2(thread);
2538
2538
  const injectedServers = await buildInjectedMcpServers({
2539
2539
  includeSideboard: true,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  isOrchestratorThread
5
- } from "./chunk-W4BGLHA3.js";
5
+ } from "./chunk-PL23EQ3S.js";
6
6
  import {
7
7
  applyConnectedTeamToCli,
8
8
  brightsyMcpServerName,
@@ -20,7 +20,7 @@ import {
20
20
  mergeAgentGitAuthEnv,
21
21
  resolveAgentGitAuthEnv,
22
22
  resolveCodexGitWritableRoots
23
- } from "./chunk-WSOFNJPD.js";
23
+ } from "./chunk-JLLISK4D.js";
24
24
  import {
25
25
  enrichPathWithNpmGlobalBin,
26
26
  isConductorBundledCli,
@@ -2947,7 +2947,7 @@ var claudeAdapter = {
2947
2947
  );
2948
2948
  }
2949
2949
  const mode = permissionMode(thread);
2950
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-MTBVW6GW.js");
2950
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-DWKW4CFY.js");
2951
2951
  const isOrchestrator = isOrchestratorThread2(thread);
2952
2952
  const injectedServers = await buildInjectedMcpServers({
2953
2953
  includeSideboard: true,
@@ -2285,9 +2285,10 @@ ${result.stderr}`;
2285
2285
  async function probeLocalMergeGate(cwd, gate) {
2286
2286
  const mergeable = (gate?.mergeable ?? "").toUpperCase();
2287
2287
  const mergeState = (gate?.mergeStateStatus ?? "").toUpperCase();
2288
- const alreadyConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
2288
+ const githubConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
2289
+ const githubUnknown = mergeable === "UNKNOWN" || mergeState === "UNKNOWN";
2289
2290
  const inQueue = gate ? prIsInMergeQueue(gate) : false;
2290
- if (alreadyConflicting || inQueue) return { gate, files: [] };
2291
+ if (inQueue) return { gate, files: [] };
2291
2292
  try {
2292
2293
  const local = await detectLocalMergeConflicts(cwd, gate?.baseRefName ?? null);
2293
2294
  if (local.conflicting) {
@@ -2303,12 +2304,12 @@ async function probeLocalMergeGate(cwd, gate) {
2303
2304
  files: local.files
2304
2305
  };
2305
2306
  }
2306
- if (gate && (mergeable === "UNKNOWN" || mergeState === "UNKNOWN")) {
2307
+ if (gate && (githubConflicting || githubUnknown)) {
2307
2308
  return {
2308
2309
  gate: {
2309
2310
  ...gate,
2310
- mergeable: gate.mergeable === "UNKNOWN" ? "MERGEABLE" : gate.mergeable,
2311
- mergeStateStatus: gate.mergeStateStatus === "UNKNOWN" ? "CLEAN" : gate.mergeStateStatus
2311
+ mergeable: "MERGEABLE",
2312
+ mergeStateStatus: mergeState === "BEHIND" ? "BEHIND" : "CLEAN"
2312
2313
  },
2313
2314
  files: []
2314
2315
  };
@@ -2440,6 +2441,7 @@ var PR_DETAILS_JSON_FIELDS = [
2440
2441
  "isDraft",
2441
2442
  "reviewDecision",
2442
2443
  "author",
2444
+ "createdAt",
2443
2445
  "baseRefName",
2444
2446
  "headRefName",
2445
2447
  "additions",
@@ -2469,6 +2471,7 @@ function parsePrDetailsView(view) {
2469
2471
  isDraft: Boolean(view.isDraft),
2470
2472
  reviewDecision: typeof view.reviewDecision === "string" && view.reviewDecision ? view.reviewDecision : null,
2471
2473
  author: { login: author.login ?? "unknown", name: author.name ?? null },
2474
+ createdAt: typeof view.createdAt === "string" && view.createdAt ? view.createdAt : null,
2472
2475
  baseRefName: String(view.baseRefName ?? ""),
2473
2476
  headRefName: String(view.headRefName ?? ""),
2474
2477
  additions: Number(view.additions ?? 0),
@@ -8,7 +8,7 @@ import {
8
8
  resolveRepoRoot,
9
9
  takenSlugsFromThread,
10
10
  teamSlugFromName
11
- } from "./chunk-WSOFNJPD.js";
11
+ } from "./chunk-JLLISK4D.js";
12
12
  import {
13
13
  ATTACHMENTS_DIR,
14
14
  attachmentsGitignoreBody
@@ -6,7 +6,7 @@ import {
6
6
  resolveRepoRoot,
7
7
  takenSlugsFromThread,
8
8
  teamSlugFromName
9
- } from "./chunk-566W54AN.js";
9
+ } from "./chunk-WI75LO3T.js";
10
10
  import {
11
11
  ATTACHMENTS_DIR,
12
12
  attachmentsGitignoreBody
@@ -2322,9 +2322,10 @@ ${result.stderr}`;
2322
2322
  async function probeLocalMergeGate(cwd, gate) {
2323
2323
  const mergeable = (gate?.mergeable ?? "").toUpperCase();
2324
2324
  const mergeState = (gate?.mergeStateStatus ?? "").toUpperCase();
2325
- const alreadyConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
2325
+ const githubConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
2326
+ const githubUnknown = mergeable === "UNKNOWN" || mergeState === "UNKNOWN";
2326
2327
  const inQueue = gate ? prIsInMergeQueue(gate) : false;
2327
- if (alreadyConflicting || inQueue) return { gate, files: [] };
2328
+ if (inQueue) return { gate, files: [] };
2328
2329
  try {
2329
2330
  const local = await detectLocalMergeConflicts(cwd, gate?.baseRefName ?? null);
2330
2331
  if (local.conflicting) {
@@ -2340,12 +2341,12 @@ async function probeLocalMergeGate(cwd, gate) {
2340
2341
  files: local.files
2341
2342
  };
2342
2343
  }
2343
- if (gate && (mergeable === "UNKNOWN" || mergeState === "UNKNOWN")) {
2344
+ if (gate && (githubConflicting || githubUnknown)) {
2344
2345
  return {
2345
2346
  gate: {
2346
2347
  ...gate,
2347
- mergeable: gate.mergeable === "UNKNOWN" ? "MERGEABLE" : gate.mergeable,
2348
- mergeStateStatus: gate.mergeStateStatus === "UNKNOWN" ? "CLEAN" : gate.mergeStateStatus
2348
+ mergeable: "MERGEABLE",
2349
+ mergeStateStatus: mergeState === "BEHIND" ? "BEHIND" : "CLEAN"
2349
2350
  },
2350
2351
  files: []
2351
2352
  };
@@ -2477,6 +2478,7 @@ var PR_DETAILS_JSON_FIELDS = [
2477
2478
  "isDraft",
2478
2479
  "reviewDecision",
2479
2480
  "author",
2481
+ "createdAt",
2480
2482
  "baseRefName",
2481
2483
  "headRefName",
2482
2484
  "additions",
@@ -2506,6 +2508,7 @@ function parsePrDetailsView(view) {
2506
2508
  isDraft: Boolean(view.isDraft),
2507
2509
  reviewDecision: typeof view.reviewDecision === "string" && view.reviewDecision ? view.reviewDecision : null,
2508
2510
  author: { login: author.login ?? "unknown", name: author.name ?? null },
2511
+ createdAt: typeof view.createdAt === "string" && view.createdAt ? view.createdAt : null,
2509
2512
  baseRefName: String(view.baseRefName ?? ""),
2510
2513
  headRefName: String(view.headRefName ?? ""),
2511
2514
  additions: Number(view.additions ?? 0),
@@ -9,8 +9,8 @@ import {
9
9
  enrichWorkspacesWithGithub,
10
10
  ensureGlobalCoordinatorCwd,
11
11
  formatWorkspaceInventory
12
- } from "./chunk-W4BGLHA3.js";
13
- import "./chunk-WSOFNJPD.js";
12
+ } from "./chunk-PL23EQ3S.js";
13
+ import "./chunk-JLLISK4D.js";
14
14
  import "./chunk-D6JWYJ4P.js";
15
15
  import "./chunk-RJC2MKXN.js";
16
16
  import "./chunk-H547WSSZ.js";
@@ -7,8 +7,8 @@ import {
7
7
  enrichWorkspacesWithGithub,
8
8
  ensureGlobalCoordinatorCwd,
9
9
  formatWorkspaceInventory
10
- } from "./chunk-SJPK5Y5U.js";
11
- import "./chunk-566W54AN.js";
10
+ } from "./chunk-TMLS5WYR.js";
11
+ import "./chunk-WI75LO3T.js";
12
12
  import "./chunk-6K64FJDD.js";
13
13
  import "./chunk-2P4XKWV2.js";
14
14
  import "./chunk-KJM3E3NF.js";
@@ -17,8 +17,8 @@ import {
17
17
  orchestratorSessionPoisonedByBuiltins,
18
18
  slackCoordinatorSourceRef,
19
19
  takenTeamSlugsForOrchestration
20
- } from "./chunk-W4BGLHA3.js";
21
- import "./chunk-WSOFNJPD.js";
20
+ } from "./chunk-PL23EQ3S.js";
21
+ import "./chunk-JLLISK4D.js";
22
22
  import "./chunk-D6JWYJ4P.js";
23
23
  import "./chunk-RJC2MKXN.js";
24
24
  import "./chunk-H547WSSZ.js";
@@ -15,8 +15,8 @@ import {
15
15
  orchestratorSessionPoisonedByBuiltins,
16
16
  slackCoordinatorSourceRef,
17
17
  takenTeamSlugsForOrchestration
18
- } from "./chunk-SJPK5Y5U.js";
19
- import "./chunk-566W54AN.js";
18
+ } from "./chunk-TMLS5WYR.js";
19
+ import "./chunk-WI75LO3T.js";
20
20
  import "./chunk-6K64FJDD.js";
21
21
  import "./chunk-2P4XKWV2.js";
22
22
  import "./chunk-KJM3E3NF.js";
package/dist/index.cjs CHANGED
@@ -9335,9 +9335,10 @@ ${result.stderr}`;
9335
9335
  async function probeLocalMergeGate(cwd, gate) {
9336
9336
  const mergeable = (gate?.mergeable ?? "").toUpperCase();
9337
9337
  const mergeState = (gate?.mergeStateStatus ?? "").toUpperCase();
9338
- const alreadyConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
9338
+ const githubConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
9339
+ const githubUnknown = mergeable === "UNKNOWN" || mergeState === "UNKNOWN";
9339
9340
  const inQueue = gate ? prIsInMergeQueue(gate) : false;
9340
- if (alreadyConflicting || inQueue) return { gate, files: [] };
9341
+ if (inQueue) return { gate, files: [] };
9341
9342
  try {
9342
9343
  const local = await detectLocalMergeConflicts(cwd, gate?.baseRefName ?? null);
9343
9344
  if (local.conflicting) {
@@ -9353,12 +9354,12 @@ async function probeLocalMergeGate(cwd, gate) {
9353
9354
  files: local.files
9354
9355
  };
9355
9356
  }
9356
- if (gate && (mergeable === "UNKNOWN" || mergeState === "UNKNOWN")) {
9357
+ if (gate && (githubConflicting || githubUnknown)) {
9357
9358
  return {
9358
9359
  gate: {
9359
9360
  ...gate,
9360
- mergeable: gate.mergeable === "UNKNOWN" ? "MERGEABLE" : gate.mergeable,
9361
- mergeStateStatus: gate.mergeStateStatus === "UNKNOWN" ? "CLEAN" : gate.mergeStateStatus
9361
+ mergeable: "MERGEABLE",
9362
+ mergeStateStatus: mergeState === "BEHIND" ? "BEHIND" : "CLEAN"
9362
9363
  },
9363
9364
  files: []
9364
9365
  };
@@ -9499,6 +9500,7 @@ function parsePrDetailsView(view) {
9499
9500
  isDraft: Boolean(view.isDraft),
9500
9501
  reviewDecision: typeof view.reviewDecision === "string" && view.reviewDecision ? view.reviewDecision : null,
9501
9502
  author: { login: author.login ?? "unknown", name: author.name ?? null },
9503
+ createdAt: typeof view.createdAt === "string" && view.createdAt ? view.createdAt : null,
9502
9504
  baseRefName: String(view.baseRefName ?? ""),
9503
9505
  headRefName: String(view.headRefName ?? ""),
9504
9506
  additions: Number(view.additions ?? 0),
@@ -10309,6 +10311,7 @@ var init_worktree = __esm({
10309
10311
  "isDraft",
10310
10312
  "reviewDecision",
10311
10313
  "author",
10314
+ "createdAt",
10312
10315
  "baseRefName",
10313
10316
  "headRefName",
10314
10317
  "additions",
package/dist/index.d.cts CHANGED
@@ -387,6 +387,8 @@ interface PrDetails {
387
387
  isDraft: boolean;
388
388
  reviewDecision: string | null;
389
389
  author: PrActor;
390
+ /** When the PR was opened (`gh pr view --json createdAt`). */
391
+ createdAt?: string | null;
390
392
  baseRefName: string;
391
393
  headRefName: string;
392
394
  additions: number;
package/dist/index.d.ts CHANGED
@@ -387,6 +387,8 @@ interface PrDetails {
387
387
  isDraft: boolean;
388
388
  reviewDecision: string | null;
389
389
  author: PrActor;
390
+ /** When the PR was opened (`gh pr view --json createdAt`). */
391
+ createdAt?: string | null;
390
392
  baseRefName: string;
391
393
  headRefName: string;
392
394
  additions: number;
package/dist/index.js CHANGED
@@ -338,7 +338,7 @@ import {
338
338
  worktreeRunPortsPath,
339
339
  wrapReviewSkillMarkdown,
340
340
  writeWorktreeFile
341
- } from "./chunk-EV4QJNR7.js";
341
+ } from "./chunk-2LZ3CNTN.js";
342
342
  import {
343
343
  LEGACY_PLAN_FILE_REL,
344
344
  PLAN_FILE_NAME,
@@ -476,7 +476,7 @@ import {
476
476
  withEventParentId,
477
477
  withEventsParentId,
478
478
  writeInjectedMcpConfig
479
- } from "./chunk-DMT62X6L.js";
479
+ } from "./chunk-7R5I5UWW.js";
480
480
  import {
481
481
  CLOUD_COORDINATOR_BUSY_REPLY,
482
482
  CLOUD_COORDINATOR_CANCELED_REPLY,
@@ -522,7 +522,7 @@ import {
522
522
  stageBuffersAsAttachments,
523
523
  syncWorkspacesFromThreads,
524
524
  takenTeamSlugsForOrchestration
525
- } from "./chunk-SJPK5Y5U.js";
525
+ } from "./chunk-TMLS5WYR.js";
526
526
  import {
527
527
  FAMOUS_SOCCER_TEAMS,
528
528
  GITHUB_PR_BODY_MAX_CHARS,
@@ -621,7 +621,7 @@ import {
621
621
  worktreeDisplayLabelForGroup,
622
622
  worktreeNameFromPath,
623
623
  worktreeSlugForTicket
624
- } from "./chunk-566W54AN.js";
624
+ } from "./chunk-WI75LO3T.js";
625
625
  import {
626
626
  ATTACHMENTS_DIR,
627
627
  CLI_DIR,
@@ -3972,7 +3972,7 @@ async function continueSourceThread(threadId, prompt) {
3972
3972
  await continueOnReply(threadId, prompt);
3973
3973
  return;
3974
3974
  }
3975
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-HEFTR7RA.js");
3975
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-7XDC4UOC.js");
3976
3976
  await getOrchestrator2().send(threadId, prompt);
3977
3977
  } catch {
3978
3978
  }
@@ -6703,9 +6703,10 @@ ${result.stderr}`;
6703
6703
  async function probeLocalMergeGate(cwd, gate) {
6704
6704
  const mergeable = (gate?.mergeable ?? "").toUpperCase();
6705
6705
  const mergeState = (gate?.mergeStateStatus ?? "").toUpperCase();
6706
- const alreadyConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
6706
+ const githubConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
6707
+ const githubUnknown = mergeable === "UNKNOWN" || mergeState === "UNKNOWN";
6707
6708
  const inQueue = gate ? prIsInMergeQueue(gate) : false;
6708
- if (alreadyConflicting || inQueue) return { gate, files: [] };
6709
+ if (inQueue) return { gate, files: [] };
6709
6710
  try {
6710
6711
  const local = await detectLocalMergeConflicts(cwd, gate?.baseRefName ?? null);
6711
6712
  if (local.conflicting) {
@@ -6721,12 +6722,12 @@ async function probeLocalMergeGate(cwd, gate) {
6721
6722
  files: local.files
6722
6723
  };
6723
6724
  }
6724
- if (gate && (mergeable === "UNKNOWN" || mergeState === "UNKNOWN")) {
6725
+ if (gate && (githubConflicting || githubUnknown)) {
6725
6726
  return {
6726
6727
  gate: {
6727
6728
  ...gate,
6728
- mergeable: gate.mergeable === "UNKNOWN" ? "MERGEABLE" : gate.mergeable,
6729
- mergeStateStatus: gate.mergeStateStatus === "UNKNOWN" ? "CLEAN" : gate.mergeStateStatus
6729
+ mergeable: "MERGEABLE",
6730
+ mergeStateStatus: mergeState === "BEHIND" ? "BEHIND" : "CLEAN"
6730
6731
  },
6731
6732
  files: []
6732
6733
  };
@@ -6867,6 +6868,7 @@ function parsePrDetailsView(view) {
6867
6868
  isDraft: Boolean(view.isDraft),
6868
6869
  reviewDecision: typeof view.reviewDecision === "string" && view.reviewDecision ? view.reviewDecision : null,
6869
6870
  author: { login: author.login ?? "unknown", name: author.name ?? null },
6871
+ createdAt: typeof view.createdAt === "string" && view.createdAt ? view.createdAt : null,
6870
6872
  baseRefName: String(view.baseRefName ?? ""),
6871
6873
  headRefName: String(view.headRefName ?? ""),
6872
6874
  additions: Number(view.additions ?? 0),
@@ -7677,6 +7679,7 @@ var init_worktree = __esm({
7677
7679
  "isDraft",
7678
7680
  "reviewDecision",
7679
7681
  "author",
7682
+ "createdAt",
7680
7683
  "baseRefName",
7681
7684
  "headRefName",
7682
7685
  "additions",
@@ -49,7 +49,7 @@ import {
49
49
  threadsSharingWorktree,
50
50
  updateSchedule,
51
51
  waitForDetachedJob
52
- } from "../chunk-RLJHH6T7.js";
52
+ } from "../chunk-6Z66OYYO.js";
53
53
  import {
54
54
  PRESENT_PLAN_REQUIRES_PLAN_MODE,
55
55
  PRESENT_PLAN_TOOL_DESCRIPTION,
@@ -66,13 +66,13 @@ import {
66
66
  materializeSystemCaBundle,
67
67
  sideboardMcpProfile,
68
68
  trustSystemCertificates
69
- } from "../chunk-IJIMEK2K.js";
69
+ } from "../chunk-GNO7RXNH.js";
70
70
  import {
71
71
  GLOBAL_WORKSPACE_ID,
72
72
  isCloudCoordinatorThread,
73
73
  isOrchestratorThread,
74
74
  listWorkspaces
75
- } from "../chunk-W4BGLHA3.js";
75
+ } from "../chunk-PL23EQ3S.js";
76
76
  import "../chunk-XAISOBBG.js";
77
77
  import "../chunk-P2BSMNHB.js";
78
78
  import "../chunk-XIEDFRBP.js";
@@ -90,7 +90,7 @@ import {
90
90
  resolveListPrsOptions,
91
91
  resolveRepoRoot,
92
92
  warmGithubAgentAuth
93
- } from "../chunk-WSOFNJPD.js";
93
+ } from "../chunk-JLLISK4D.js";
94
94
  import "../chunk-D6JWYJ4P.js";
95
95
  import {
96
96
  appendMessage,
@@ -2367,7 +2367,7 @@ async function continueSourceThread(threadId, prompt) {
2367
2367
  await continueOnReply(threadId, prompt);
2368
2368
  return;
2369
2369
  }
2370
- const { getOrchestrator: getOrchestrator2 } = await import("../orchestrator-NKG4R6TX.js");
2370
+ const { getOrchestrator: getOrchestrator2 } = await import("../orchestrator-W7A5BA5V.js");
2371
2371
  await getOrchestrator2().send(threadId, prompt);
2372
2372
  } catch {
2373
2373
  }
@@ -9,11 +9,11 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-EV4QJNR7.js";
12
+ } from "./chunk-2LZ3CNTN.js";
13
13
  import "./chunk-PGPSIEMW.js";
14
- import "./chunk-DMT62X6L.js";
15
- import "./chunk-SJPK5Y5U.js";
16
- import "./chunk-566W54AN.js";
14
+ import "./chunk-7R5I5UWW.js";
15
+ import "./chunk-TMLS5WYR.js";
16
+ import "./chunk-WI75LO3T.js";
17
17
  import "./chunk-6K64FJDD.js";
18
18
  import "./chunk-2P4XKWV2.js";
19
19
  import "./chunk-5F4YFGHL.js";
@@ -11,15 +11,15 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-RLJHH6T7.js";
14
+ } from "./chunk-6Z66OYYO.js";
15
15
  import "./chunk-WDDUIGFK.js";
16
16
  import "./chunk-QN5DL2QO.js";
17
- import "./chunk-IJIMEK2K.js";
18
- import "./chunk-W4BGLHA3.js";
17
+ import "./chunk-GNO7RXNH.js";
18
+ import "./chunk-PL23EQ3S.js";
19
19
  import "./chunk-XAISOBBG.js";
20
20
  import "./chunk-P2BSMNHB.js";
21
21
  import "./chunk-VKQGAWHY.js";
22
- import "./chunk-WSOFNJPD.js";
22
+ import "./chunk-JLLISK4D.js";
23
23
  import "./chunk-D6JWYJ4P.js";
24
24
  import "./chunk-RJC2MKXN.js";
25
25
  import "./chunk-H547WSSZ.js";
@@ -7,8 +7,8 @@ import {
7
7
  primaryCheckoutFromLinkedWorktree,
8
8
  removeWorkspace,
9
9
  syncWorkspacesFromThreads
10
- } from "./chunk-W4BGLHA3.js";
11
- import "./chunk-WSOFNJPD.js";
10
+ } from "./chunk-PL23EQ3S.js";
11
+ import "./chunk-JLLISK4D.js";
12
12
  import "./chunk-D6JWYJ4P.js";
13
13
  import "./chunk-RJC2MKXN.js";
14
14
  import "./chunk-H547WSSZ.js";
@@ -5,8 +5,8 @@ import {
5
5
  primaryCheckoutFromLinkedWorktree,
6
6
  removeWorkspace,
7
7
  syncWorkspacesFromThreads
8
- } from "./chunk-SJPK5Y5U.js";
9
- import "./chunk-566W54AN.js";
8
+ } from "./chunk-TMLS5WYR.js";
9
+ import "./chunk-WI75LO3T.js";
10
10
  import "./chunk-6K64FJDD.js";
11
11
  import "./chunk-2P4XKWV2.js";
12
12
  import "./chunk-KJM3E3NF.js";
@@ -61,7 +61,7 @@ import {
61
61
  worktreeDisplayLabelForGroup,
62
62
  worktreeNameFromPath,
63
63
  worktreeSlugForTicket
64
- } from "./chunk-WSOFNJPD.js";
64
+ } from "./chunk-JLLISK4D.js";
65
65
  import "./chunk-D6JWYJ4P.js";
66
66
  import "./chunk-RJC2MKXN.js";
67
67
  import "./chunk-H547WSSZ.js";
@@ -59,7 +59,7 @@ import {
59
59
  worktreeDisplayLabelForGroup,
60
60
  worktreeNameFromPath,
61
61
  worktreeSlugForTicket
62
- } from "./chunk-566W54AN.js";
62
+ } from "./chunk-WI75LO3T.js";
63
63
  import "./chunk-6K64FJDD.js";
64
64
  import "./chunk-2P4XKWV2.js";
65
65
  import "./chunk-KJM3E3NF.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.250",
3
+ "version": "0.1.251",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",