@sideboard-ai/core 0.1.81 → 0.1.83
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.
- package/dist/agents/cursor-runner.cjs +18 -0
- package/dist/agents/cursor-runner.js +4 -0
- package/dist/{agents-UQ7D6U6L.js → agents-3YPUZME7.js} +6 -5
- package/dist/{agents-EBKJ55PN.js → agents-4KRD46KG.js} +5 -5
- package/dist/{app-settings-NILNWNNQ.js → app-settings-GVSOIJLZ.js} +1 -1
- package/dist/{app-settings-6IOQYGBK.js → app-settings-MQXL7OUF.js} +2 -1
- package/dist/{chunk-P5VDPGAN.js → chunk-DJFGX4RT.js} +3 -3
- package/dist/{chunk-CQBQWX73.js → chunk-E2MIA7DO.js} +8 -3
- package/dist/{chunk-4HJK57XU.js → chunk-ERJS3ZDP.js} +8 -3
- package/dist/{chunk-YVVXWWCC.js → chunk-GD2FM6FN.js} +81 -49
- package/dist/{chunk-FUUVPN4A.js → chunk-HBBXS2FR.js} +78 -49
- package/dist/chunk-IZ7RPF54.js +36 -0
- package/dist/{chunk-4AVU4QXO.js → chunk-JMRJ4F5B.js} +19 -8
- package/dist/{chunk-XNECBC6T.js → chunk-JW6YFPQE.js} +20 -7
- package/dist/{chunk-K553XK7M.js → chunk-LVTNWH7B.js} +2 -2
- package/dist/{chunk-6F2TQFJE.js → chunk-NXXT5SE3.js} +3 -3
- package/dist/{chunk-TDJ43HUD.js → chunk-RS54WYYH.js} +2 -2
- package/dist/{chunk-XKNBSYA7.js → chunk-UHGN4KCL.js} +35 -1
- package/dist/{chunk-IFPN6TER.js → chunk-YO3CYL6B.js} +4 -1
- package/dist/{coordinator-prompt-JQF72JKX.js → coordinator-prompt-46JE4NQR.js} +4 -3
- package/dist/{coordinator-prompt-NYNEFKIV.js → coordinator-prompt-6ICA54JR.js} +3 -3
- package/dist/{global-workspace-DZM4ZFGU.js → global-workspace-GSLCEB5E.js} +5 -4
- package/dist/{global-workspace-NUMUJRWG.js → global-workspace-OBRWUPZG.js} +4 -4
- package/dist/index.cjs +182 -77
- package/dist/index.d.cts +36 -9
- package/dist/index.d.ts +36 -9
- package/dist/index.js +67 -43
- package/dist/mcp/run-stdio.cjs +180 -77
- package/dist/mcp/run-stdio.js +59 -42
- package/dist/{workspaces-QLRCOXAY.js → workspaces-7B3PTEF4.js} +6 -5
- package/dist/{workspaces-SUU2GO3A.js → workspaces-RJIWQB6J.js} +5 -5
- package/dist/{worktree-5VLLFI5W.js → worktree-HSN5LWY6.js} +3 -2
- package/dist/{worktree-UNSOCYZU.js → worktree-U3UIID2K.js} +2 -2
- package/package.json +1 -1
package/dist/mcp/run-stdio.js
CHANGED
|
@@ -17,14 +17,14 @@ import {
|
|
|
17
17
|
resolveQuotaFallbackAgent,
|
|
18
18
|
sideboardMcpProfile,
|
|
19
19
|
summarizeTurnStderr
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-JMRJ4F5B.js";
|
|
21
21
|
import "../chunk-VROPG6QF.js";
|
|
22
22
|
import {
|
|
23
23
|
addWorkspace,
|
|
24
24
|
ensureWorkspace,
|
|
25
25
|
removeWorkspace,
|
|
26
26
|
syncWorkspacesFromThreads
|
|
27
|
-
} from "../chunk-
|
|
27
|
+
} from "../chunk-RS54WYYH.js";
|
|
28
28
|
import {
|
|
29
29
|
extractPresentedPlan,
|
|
30
30
|
readPlanFile,
|
|
@@ -42,14 +42,14 @@ import {
|
|
|
42
42
|
isGlobalThread,
|
|
43
43
|
isOrchestratorThread,
|
|
44
44
|
orchestratorSessionPoisonedByBuiltins
|
|
45
|
-
} from "../chunk-
|
|
45
|
+
} from "../chunk-DJFGX4RT.js";
|
|
46
46
|
import {
|
|
47
47
|
SLACK_REPLY_FORMATTING,
|
|
48
48
|
coordinatorSystemPrompt,
|
|
49
49
|
coordinatorTurnReminder,
|
|
50
50
|
enrichWorkspacesWithGithub,
|
|
51
51
|
ensureGlobalCoordinatorCwd
|
|
52
|
-
} from "../chunk-
|
|
52
|
+
} from "../chunk-ERJS3ZDP.js";
|
|
53
53
|
import {
|
|
54
54
|
addPrStackLayer,
|
|
55
55
|
allocateTeamName,
|
|
@@ -88,7 +88,7 @@ import {
|
|
|
88
88
|
takenSlugsFromThread,
|
|
89
89
|
threadDisplayLabel,
|
|
90
90
|
worktreeNameFromPath
|
|
91
|
-
} from "../chunk-
|
|
91
|
+
} from "../chunk-HBBXS2FR.js";
|
|
92
92
|
import {
|
|
93
93
|
ATTACHMENTS_DIR,
|
|
94
94
|
LEGACY_ATTACHMENTS_DIR,
|
|
@@ -116,6 +116,7 @@ import {
|
|
|
116
116
|
import {
|
|
117
117
|
childEnvWithAppSettings,
|
|
118
118
|
disconnectLinearConnection,
|
|
119
|
+
dropNestedElectronEnvFromProcess,
|
|
119
120
|
isLinearConnected,
|
|
120
121
|
isSecureFileEncrypted,
|
|
121
122
|
loadAppSettings,
|
|
@@ -126,9 +127,10 @@ import {
|
|
|
126
127
|
resolveNewThreadOptions,
|
|
127
128
|
resolveVaultKey,
|
|
128
129
|
saveLinearOAuth,
|
|
130
|
+
stripNestedElectronEnv,
|
|
129
131
|
updateAdvancedSettings,
|
|
130
132
|
writeSecureJson
|
|
131
|
-
} from "../chunk-
|
|
133
|
+
} from "../chunk-UHGN4KCL.js";
|
|
132
134
|
import {
|
|
133
135
|
writePrivateFile
|
|
134
136
|
} from "../chunk-NSTQ6QKD.js";
|
|
@@ -891,9 +893,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
|
|
|
891
893
|
`Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
|
|
892
894
|
);
|
|
893
895
|
}
|
|
894
|
-
const { isGlobalThread: isGlobalThread2 } = await import("../global-workspace-
|
|
896
|
+
const { isGlobalThread: isGlobalThread2 } = await import("../global-workspace-OBRWUPZG.js");
|
|
895
897
|
if (isGlobalThread2(thread)) {
|
|
896
|
-
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("../coordinator-prompt-
|
|
898
|
+
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("../coordinator-prompt-6ICA54JR.js");
|
|
897
899
|
ensureGlobalCoordinatorCwd2(
|
|
898
900
|
isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
|
|
899
901
|
);
|
|
@@ -1092,7 +1094,8 @@ function agentGitPrompt(action, opts) {
|
|
|
1092
1094
|
return "Commit, push, and open a PR in the browser.";
|
|
1093
1095
|
case "resolve-conflicts": {
|
|
1094
1096
|
const base = opts?.prBase?.trim().replace(/^refs\/heads\//, "");
|
|
1095
|
-
|
|
1097
|
+
const named = base ? ` (${base})` : "";
|
|
1098
|
+
return `Merge the remote branch${named} into your branch and resolve conflicts. Then, commit and push your changes.`;
|
|
1096
1099
|
}
|
|
1097
1100
|
case "merge":
|
|
1098
1101
|
return "Merge PR.";
|
|
@@ -1208,16 +1211,6 @@ async function captureLoginEnv() {
|
|
|
1208
1211
|
cachedLoginEnv = { ...process.env };
|
|
1209
1212
|
return { ...cachedLoginEnv };
|
|
1210
1213
|
}
|
|
1211
|
-
var NESTED_ELECTRON_ENV_PREFIXES = ["ELECTRON_", "CHROME_"];
|
|
1212
|
-
function stripNestedElectronEnv(env) {
|
|
1213
|
-
const out = { ...env };
|
|
1214
|
-
for (const key of Object.keys(out)) {
|
|
1215
|
-
if (NESTED_ELECTRON_ENV_PREFIXES.some((prefix) => key.startsWith(prefix))) {
|
|
1216
|
-
delete out[key];
|
|
1217
|
-
}
|
|
1218
|
-
}
|
|
1219
|
-
return out;
|
|
1220
|
-
}
|
|
1221
1214
|
function buildWorkspaceScriptEnv(opts, baseEnv) {
|
|
1222
1215
|
const env = stripNestedElectronEnv({
|
|
1223
1216
|
...baseEnv ?? process.env
|
|
@@ -1825,7 +1818,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
1825
1818
|
return readThread(thread.id) ?? thread;
|
|
1826
1819
|
}
|
|
1827
1820
|
async function listLinearIssues(agent, repoPath) {
|
|
1828
|
-
const { getAdapter: getAdapter2 } = await import("../agents-
|
|
1821
|
+
const { getAdapter: getAdapter2 } = await import("../agents-4KRD46KG.js");
|
|
1829
1822
|
await requireAgent(agent, { requireLinear: true });
|
|
1830
1823
|
const adapter = getAdapter2(agent);
|
|
1831
1824
|
if (!adapter.listLinearIssues) {
|
|
@@ -2339,6 +2332,10 @@ File: src/client/frontends/desktop/core/UserData.ts
|
|
|
2339
2332
|
|
|
2340
2333
|
**Approve** \u2014 Diff is scoped, behavior looks correct, and there are no blocking issues. Safe to merge.
|
|
2341
2334
|
</example>
|
|
2335
|
+
|
|
2336
|
+
## Growing the rules
|
|
2337
|
+
|
|
2338
|
+
If a blocking issue is a missing or ambiguous repo rule that will recur, say so and propose one sentence for \`.sideboard/review.md\` or a \`.claude/skills/<name>/SKILL.md\`. Do not only patch this diff when the same miss will happen again. New skills go under \`.claude/skills\` (Claude Code / attach) \u2014 not \`.sideboard/skills\`.
|
|
2342
2339
|
`;
|
|
2343
2340
|
|
|
2344
2341
|
// src/review/request-review.ts
|
|
@@ -2689,7 +2686,7 @@ async function adoptThread(input) {
|
|
|
2689
2686
|
messages: input.messages ?? []
|
|
2690
2687
|
});
|
|
2691
2688
|
writeThread(thread);
|
|
2692
|
-
const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-
|
|
2689
|
+
const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-RJIWQB6J.js");
|
|
2693
2690
|
await ensureWorkspace2(repoPath);
|
|
2694
2691
|
return thread;
|
|
2695
2692
|
}
|
|
@@ -4492,7 +4489,7 @@ function formatWorktreeDirective(thread, opts) {
|
|
|
4492
4489
|
'- "Fix CI: <name>." \u2192 investigate that failing check, fix it, commit, and push.'
|
|
4493
4490
|
);
|
|
4494
4491
|
lines.push(
|
|
4495
|
-
'- "
|
|
4492
|
+
'- "Merge the remote branch (<base>) into your branch and resolve conflicts. Then, commit and push your changes." \u2192 fetch the PR base, merge it into this branch, resolve conflicts carefully, commit, and push until the PR is mergeable.'
|
|
4496
4493
|
);
|
|
4497
4494
|
lines.push(
|
|
4498
4495
|
'- "Address review comments." \u2192 read PR review feedback, make the requested changes, commit, and push.'
|
|
@@ -4500,11 +4497,22 @@ function formatWorktreeDirective(thread, opts) {
|
|
|
4500
4497
|
lines.push(
|
|
4501
4498
|
'- "Merge PR." \u2192 merge this thread\'s open pull request on GitHub (this phrase is the explicit ask). If `gh stack view` shows a stack, use `gh stack merge`; otherwise `gh pr merge` (respect repo defaults / squash vs merge). Do not force-push main/master or merge locally into the main checkout.'
|
|
4502
4499
|
);
|
|
4500
|
+
lines.push("");
|
|
4501
|
+
lines.push(formatProcessGuideDirective());
|
|
4503
4502
|
return lines.join("\n");
|
|
4504
4503
|
}
|
|
4505
4504
|
function formatWorktreeReminder() {
|
|
4506
4505
|
return "Sideboard worktree: stay in this cwd for all file and git work. Push and open PRs against origin, never upstream. Do not edit the main repo checkout.";
|
|
4507
4506
|
}
|
|
4507
|
+
function formatProcessGuideDirective() {
|
|
4508
|
+
return [
|
|
4509
|
+
"Process guides (recurring work only):",
|
|
4510
|
+
"- If `.claude/skills/graph-engineering/SKILL.md` exists, follow it (`/graph-engineering`) for migrations, ports, batch fixes, and other fan-out. Judge first; state on disk; grow the rulebook; do not patch around it.",
|
|
4511
|
+
"- If this same shape of work will happen again, write `.claude/skills/<kebab-name>/SKILL.md` in this worktree (Claude Code project skill). Sideboard `/name`, Claude Code, and `attach` all load that path. Do not leave the method only in chat.",
|
|
4512
|
+
"- Do not write new skills under `.sideboard/skills` \u2014 native agents do not scan it. Point Codex/OpenCode at the file from `AGENTS.md`. Optional: symlink `.cursor/skills/<name>` to the Claude skill.",
|
|
4513
|
+
"- Skip a guide for a one-off. If a matching skill exists, follow it. Same miss twice \u2192 edit the skill (or `.sideboard/review.md`), do not patch around it."
|
|
4514
|
+
].join("\n");
|
|
4515
|
+
}
|
|
4508
4516
|
function formatArtifactDirective() {
|
|
4509
4517
|
return [
|
|
4510
4518
|
"Sideboard side column (desktop UI):",
|
|
@@ -4522,9 +4530,22 @@ function formatArtifactDirective() {
|
|
|
4522
4530
|
"Files / media browser (CMS file manager column):",
|
|
4523
4531
|
"4) Call Sideboard MCP `present_files` with optional title, path, and datasource (brightsy|memory).",
|
|
4524
4532
|
" Opens the Files column for browse/upload/pick. Do NOT say a file manager UI is missing.",
|
|
4525
|
-
"
|
|
4533
|
+
"Multiple-choice questions (any mode \u2014 not only Plan):",
|
|
4534
|
+
"5) Call Sideboard MCP `ask_user` when the user should pick from predefined options (approach forks, requirements, which API). First write a short chat message that explains the decision and what each option means (tradeoffs, when to pick it). Include a description on every option. After calling, stop and wait for their next message with answers. Do not ask multiple-choice questions as plain chat bullets \u2014 use ask_user so Sideboard shows the composer picker.",
|
|
4535
|
+
"Never say artifacts, CMS UI, or the Files column are unavailable. Prefer present_schema for list/edit/publish; present_files for storage UI; html fences for standalone pages; ask_user for predefined-option questions."
|
|
4526
4536
|
].join("\n");
|
|
4527
4537
|
}
|
|
4538
|
+
function formatUiReminder() {
|
|
4539
|
+
return [
|
|
4540
|
+
"Sideboard side column (important):",
|
|
4541
|
+
"There is no claude.ai Artifact tool here \u2014 that is normal.",
|
|
4542
|
+
"HTML/SVG/markdown: ```html fence or MCP present_artifact.",
|
|
4543
|
+
"CMS forms/tables: MCP present_schema (Brightsy resource_id or inline schema+schemaUi).",
|
|
4544
|
+
"Files column: MCP present_files (brightsy account storage or memory).",
|
|
4545
|
+
"Do not say artifacts/CMS UI are unavailable.",
|
|
4546
|
+
"Multiple-choice questions: MCP ask_user (composer picker, any mode). Explain options in chat first, then wait for answers."
|
|
4547
|
+
].join(" ");
|
|
4548
|
+
}
|
|
4528
4549
|
|
|
4529
4550
|
// src/threads/sync-branch.ts
|
|
4530
4551
|
async function syncThreadBranchFromGit(threadId) {
|
|
@@ -4657,7 +4678,7 @@ var Orchestrator = class {
|
|
|
4657
4678
|
orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
|
|
4658
4679
|
});
|
|
4659
4680
|
}
|
|
4660
|
-
const { autoCleanupOrphansEnabled } = await import("../app-settings-
|
|
4681
|
+
const { autoCleanupOrphansEnabled } = await import("../app-settings-GVSOIJLZ.js");
|
|
4661
4682
|
if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
|
|
4662
4683
|
await cleanupOrphanWorktrees({ repoPaths });
|
|
4663
4684
|
}
|
|
@@ -4814,7 +4835,7 @@ var Orchestrator = class {
|
|
|
4814
4835
|
}
|
|
4815
4836
|
async finishCreateThread(threadId, prompt) {
|
|
4816
4837
|
await this.runSetupAfterCreate(threadId);
|
|
4817
|
-
const { autoRunAfterSetupEnabled } = await import("../app-settings-
|
|
4838
|
+
const { autoRunAfterSetupEnabled } = await import("../app-settings-GVSOIJLZ.js");
|
|
4818
4839
|
if (autoRunAfterSetupEnabled()) {
|
|
4819
4840
|
try {
|
|
4820
4841
|
await this.startDev(threadId);
|
|
@@ -5056,14 +5077,7 @@ var Orchestrator = class {
|
|
|
5056
5077
|
SLACK_REPLY_FORMATTING
|
|
5057
5078
|
].join("\n") : null
|
|
5058
5079
|
].filter(Boolean).join("\n") : null;
|
|
5059
|
-
const artifactReminder = thread.agent !== "brightsy" ?
|
|
5060
|
-
"Sideboard side column (important):",
|
|
5061
|
-
"There is no claude.ai Artifact tool here \u2014 that is normal.",
|
|
5062
|
-
"HTML/SVG/markdown: ```html fence or MCP present_artifact.",
|
|
5063
|
-
"CMS forms/tables: MCP present_schema (Brightsy resource_id or inline schema+schemaUi).",
|
|
5064
|
-
"Files column: MCP present_files (brightsy account storage or memory).",
|
|
5065
|
-
"Do not say artifacts/CMS UI are unavailable."
|
|
5066
|
-
].join(" ") : null;
|
|
5080
|
+
const artifactReminder = thread.agent !== "brightsy" ? formatUiReminder() : null;
|
|
5067
5081
|
const worktreeReminder = thread.agent !== "brightsy" && !isOrchestratorThread(thread) ? formatWorktreeReminder() : null;
|
|
5068
5082
|
const slackReplyContext = formatSlackRepliesForTurn(
|
|
5069
5083
|
pendingSlackExternalReplies(thread.messages)
|
|
@@ -5092,7 +5106,7 @@ var Orchestrator = class {
|
|
|
5092
5106
|
}
|
|
5093
5107
|
const isBrightsy = fresh.agent === "brightsy";
|
|
5094
5108
|
const isOrchestration = isOrchestratorThread(fresh);
|
|
5095
|
-
const { autoRenameBranchEnabled, getGithubGitAuthMode } = await import("../app-settings-
|
|
5109
|
+
const { autoRenameBranchEnabled, getGithubGitAuthMode } = await import("../app-settings-GVSOIJLZ.js");
|
|
5096
5110
|
const gitAuthMode = getGithubGitAuthMode();
|
|
5097
5111
|
const worktreeDirective = isBrightsy || isOrchestration ? null : formatWorktreeDirective(fresh, {
|
|
5098
5112
|
githubSlug: await resolveGithubRepoSlug(fresh.worktreePath).catch(
|
|
@@ -5757,7 +5771,9 @@ var Orchestrator = class {
|
|
|
5757
5771
|
reviewDecision: null,
|
|
5758
5772
|
baseRefName: "",
|
|
5759
5773
|
headRefName: "",
|
|
5760
|
-
isInMergeQueue: false
|
|
5774
|
+
isInMergeQueue: false,
|
|
5775
|
+
mergeable: null,
|
|
5776
|
+
mergeStateStatus: null
|
|
5761
5777
|
};
|
|
5762
5778
|
await this.persistPrMetaAndMaybeArchive(thread, metaLike);
|
|
5763
5779
|
return { url: metaLike.url, state };
|
|
@@ -5807,7 +5823,7 @@ var Orchestrator = class {
|
|
|
5807
5823
|
updateThread(thread.id, { title: meta.title });
|
|
5808
5824
|
}
|
|
5809
5825
|
}
|
|
5810
|
-
const { autoArchiveOnMergeEnabled } = await import("../app-settings-
|
|
5826
|
+
const { autoArchiveOnMergeEnabled } = await import("../app-settings-GVSOIJLZ.js");
|
|
5811
5827
|
const latest = this.requireThread(thread.id);
|
|
5812
5828
|
if (!shouldAutoArchiveOnPrMerge({
|
|
5813
5829
|
previousPrState: prevState || null,
|
|
@@ -6095,7 +6111,7 @@ var Orchestrator = class {
|
|
|
6095
6111
|
this.emit({ type: "status_changed", threadId: archived.id, status: "archived" });
|
|
6096
6112
|
if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
|
|
6097
6113
|
try {
|
|
6098
|
-
const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-
|
|
6114
|
+
const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-RJIWQB6J.js");
|
|
6099
6115
|
await ensureWorkspace2(thread.repoPath);
|
|
6100
6116
|
} catch {
|
|
6101
6117
|
}
|
|
@@ -6117,7 +6133,7 @@ var Orchestrator = class {
|
|
|
6117
6133
|
await runArchiveScript(thread.repoPath, thread.worktreePath);
|
|
6118
6134
|
} catch {
|
|
6119
6135
|
}
|
|
6120
|
-
const { deleteBranchOnPurgeEnabled } = await import("../app-settings-
|
|
6136
|
+
const { deleteBranchOnPurgeEnabled } = await import("../app-settings-GVSOIJLZ.js");
|
|
6121
6137
|
const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
|
|
6122
6138
|
await removeWorktree(thread.repoPath, thread.worktreePath, {
|
|
6123
6139
|
deleteBranch: deleteBranch ? thread.branchName : void 0
|
|
@@ -6138,7 +6154,7 @@ var Orchestrator = class {
|
|
|
6138
6154
|
return restored2;
|
|
6139
6155
|
}
|
|
6140
6156
|
if (!existsSync15(thread.worktreePath)) {
|
|
6141
|
-
const { createThreadWorktree: createThreadWorktree2 } = await import("../worktree-
|
|
6157
|
+
const { createThreadWorktree: createThreadWorktree2 } = await import("../worktree-U3UIID2K.js");
|
|
6142
6158
|
const { execa: execa6 } = await import("execa");
|
|
6143
6159
|
const slug = thread.worktreePath.split("/").pop();
|
|
6144
6160
|
const dest = thread.worktreePath;
|
|
@@ -7309,7 +7325,7 @@ function withTimeout(promise, ms, label) {
|
|
|
7309
7325
|
async function startMcpServer() {
|
|
7310
7326
|
const orch = getOrchestrator();
|
|
7311
7327
|
try {
|
|
7312
|
-
const { maxConcurrentAgents } = await import("../app-settings-
|
|
7328
|
+
const { maxConcurrentAgents } = await import("../app-settings-GVSOIJLZ.js");
|
|
7313
7329
|
orch.setMaxConcurrent(maxConcurrentAgents());
|
|
7314
7330
|
} catch {
|
|
7315
7331
|
}
|
|
@@ -7414,7 +7430,7 @@ async function startMcpServer() {
|
|
|
7414
7430
|
);
|
|
7415
7431
|
server.tool(
|
|
7416
7432
|
"ask_user",
|
|
7417
|
-
"Ask the user clarifying multiple-choice questions in Sideboard\u2019s composer (
|
|
7433
|
+
"Ask the user clarifying multiple-choice questions in Sideboard\u2019s composer (any mode \u2014 not only Plan). Before calling, write a short chat message explaining the decision and what each option means. Include a description on every option. Use when the user should pick from predefined options (approach forks, requirements, which API) \u2014 not for \u201Cis the plan ready?\u201D. After calling, stop and wait for their next message with answers.",
|
|
7418
7434
|
{
|
|
7419
7435
|
questions: z3.array(
|
|
7420
7436
|
z3.object({
|
|
@@ -7519,7 +7535,7 @@ async function startMcpServer() {
|
|
|
7519
7535
|
registerLinearTools(server);
|
|
7520
7536
|
if (sideboardMcpProfile() !== "worktree") {
|
|
7521
7537
|
const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-OHAUWOA6.js");
|
|
7522
|
-
const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults } = await import("../app-settings-
|
|
7538
|
+
const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults } = await import("../app-settings-GVSOIJLZ.js");
|
|
7523
7539
|
const accountDefaults = resolveThreadDefaults();
|
|
7524
7540
|
const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
|
|
7525
7541
|
server.tool(
|
|
@@ -8328,6 +8344,7 @@ async function startMcpServer() {
|
|
|
8328
8344
|
}
|
|
8329
8345
|
|
|
8330
8346
|
// src/mcp/run-stdio.ts
|
|
8347
|
+
dropNestedElectronEnvFromProcess();
|
|
8331
8348
|
startMcpServer().catch((err) => {
|
|
8332
8349
|
console.error(err);
|
|
8333
8350
|
process.exitCode = 1;
|
|
@@ -4,12 +4,13 @@ import {
|
|
|
4
4
|
listWorkspaces,
|
|
5
5
|
removeWorkspace,
|
|
6
6
|
syncWorkspacesFromThreads
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-LVTNWH7B.js";
|
|
8
|
+
import "./chunk-NXXT5SE3.js";
|
|
9
|
+
import "./chunk-E2MIA7DO.js";
|
|
10
|
+
import "./chunk-GD2FM6FN.js";
|
|
11
11
|
import "./chunk-FKOIHGKV.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-YO3CYL6B.js";
|
|
13
|
+
import "./chunk-IZ7RPF54.js";
|
|
13
14
|
import "./chunk-JT7R45JB.js";
|
|
14
15
|
import "./chunk-FWJYLBO6.js";
|
|
15
16
|
import "./chunk-77WWLBCI.js";
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
listWorkspaces,
|
|
7
7
|
removeWorkspace,
|
|
8
8
|
syncWorkspacesFromThreads
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-RS54WYYH.js";
|
|
10
|
+
import "./chunk-DJFGX4RT.js";
|
|
11
|
+
import "./chunk-ERJS3ZDP.js";
|
|
12
|
+
import "./chunk-HBBXS2FR.js";
|
|
13
13
|
import "./chunk-B3SJXYIJ.js";
|
|
14
14
|
import "./chunk-7FD7COKE.js";
|
|
15
15
|
import "./chunk-AE5VBOFE.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-UHGN4KCL.js";
|
|
17
17
|
import "./chunk-NSTQ6QKD.js";
|
|
18
18
|
import "./chunk-KGZBYWZ3.js";
|
|
19
19
|
import "./chunk-7MV3RXSC.js";
|
|
@@ -44,9 +44,10 @@ import {
|
|
|
44
44
|
worktreeDisplayLabel,
|
|
45
45
|
worktreeDisplayLabelForGroup,
|
|
46
46
|
worktreeNameFromPath
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-GD2FM6FN.js";
|
|
48
48
|
import "./chunk-FKOIHGKV.js";
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-YO3CYL6B.js";
|
|
50
|
+
import "./chunk-IZ7RPF54.js";
|
|
50
51
|
import "./chunk-JT7R45JB.js";
|
|
51
52
|
import "./chunk-FWJYLBO6.js";
|
|
52
53
|
import "./chunk-77WWLBCI.js";
|
|
@@ -46,11 +46,11 @@ import {
|
|
|
46
46
|
worktreeDisplayLabel,
|
|
47
47
|
worktreeDisplayLabelForGroup,
|
|
48
48
|
worktreeNameFromPath
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-HBBXS2FR.js";
|
|
50
50
|
import "./chunk-B3SJXYIJ.js";
|
|
51
51
|
import "./chunk-7FD7COKE.js";
|
|
52
52
|
import "./chunk-AE5VBOFE.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-UHGN4KCL.js";
|
|
54
54
|
import "./chunk-NSTQ6QKD.js";
|
|
55
55
|
import "./chunk-KGZBYWZ3.js";
|
|
56
56
|
import "./chunk-7MV3RXSC.js";
|