@sideboard-ai/core 0.1.135 → 0.1.139
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-RTQFF7PY.js → agents-665S7Z3R.js} +5 -5
- package/dist/{agents-O3AJMI2Y.js → agents-OC3XM7UE.js} +5 -5
- package/dist/{chunk-KBBXNS2V.js → chunk-23KCPND2.js} +49 -6
- package/dist/{chunk-2ESCEK2Q.js → chunk-5XH5M6RA.js} +244 -5
- package/dist/{chunk-57GIFU3X.js → chunk-7SYFWPOZ.js} +5 -5
- package/dist/{chunk-N62K3KXX.js → chunk-CDJISVKN.js} +79 -6
- package/dist/{chunk-QAV3HGVS.js → chunk-DJJ3DTT4.js} +1 -1
- package/dist/{chunk-HQQNLDVC.js → chunk-DKXZCIB2.js} +1 -1
- package/dist/{chunk-XUEI4GCF.js → chunk-E2RE7P2S.js} +286 -5
- package/dist/{chunk-J5IBSVB3.js → chunk-EUXOHTUK.js} +42 -25
- package/dist/{chunk-RDULVW3E.js → chunk-HLIHBGVO.js} +2 -2
- package/dist/{chunk-K7EX47QG.js → chunk-RTX3AY42.js} +5 -5
- package/dist/{chunk-LOKXPQ4U.js → chunk-SSBM4GZX.js} +2 -2
- package/dist/{chunk-PM3C2J6K.js → chunk-TUGKX5BD.js} +42 -25
- package/dist/{chunk-Z5LYMW7M.js → chunk-YZQEJOAU.js} +189 -248
- package/dist/{chunk-XIKEUCNC.js → chunk-ZCLHAOFR.js} +211 -299
- package/dist/{coordinator-prompt-FYMWE33S.js → coordinator-prompt-43O6EPA2.js} +3 -3
- package/dist/{coordinator-prompt-Y737IIFR.js → coordinator-prompt-4TXU6Q3R.js} +3 -3
- package/dist/{global-workspace-6KH6BSKL.js → global-workspace-VIU57E3Y.js} +4 -4
- package/dist/{global-workspace-ZFKNLBZA.js → global-workspace-ZDYKHQ4O.js} +4 -4
- package/dist/index.cjs +1019 -670
- package/dist/index.d.cts +41 -3
- package/dist/index.d.ts +41 -3
- package/dist/index.js +83 -24
- package/dist/mcp/run-stdio.cjs +831 -544
- package/dist/mcp/run-stdio.js +55 -16
- package/dist/{orchestrator-3YDPPZHZ.js → orchestrator-WEFXUHFX.js} +7 -7
- package/dist/{orchestrator-2BRAPJ47.js → orchestrator-ZCMYSDTC.js} +7 -7
- package/dist/{thread-store-FADXSMEJ.js → thread-store-57ZLHR3A.js} +1 -1
- package/dist/{thread-store-CRLQJ2HM.js → thread-store-WGASXXXR.js} +1 -1
- package/dist/{workspaces-3RRF3LVF.js → workspaces-4HYGNH4B.js} +5 -5
- package/dist/{workspaces-AYI5DHK4.js → workspaces-ALCTB65T.js} +5 -5
- package/dist/{worktree-MX7XBX6Z.js → worktree-GXD2NGOZ.js} +2 -2
- package/dist/{worktree-BC6XDMQK.js → worktree-NSNZODAM.js} +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENT_GIT_ACTIONS,
|
|
3
3
|
BOARD_COLUMN_DEFS,
|
|
4
|
+
CHARS_PER_CONTEXT_TOKEN,
|
|
4
5
|
CONTEXT_COMPACT_CHARS,
|
|
5
6
|
CONTEXT_KEEP_RECENT_CHARS,
|
|
6
7
|
CONTEXT_KEEP_RECENT_MESSAGES,
|
|
@@ -26,13 +27,11 @@ import {
|
|
|
26
27
|
allocatePort,
|
|
27
28
|
allocatePortRange,
|
|
28
29
|
applyCompaction,
|
|
30
|
+
applyForwardOccupancy,
|
|
29
31
|
applyPromptCacheTtlEnv,
|
|
30
32
|
applyThreadIntoMain,
|
|
31
33
|
armSchedules,
|
|
32
34
|
assembleHomeBoard,
|
|
33
|
-
attachmentFromAbsolutePath,
|
|
34
|
-
attachmentsFromBuffers,
|
|
35
|
-
attachmentsFromWorktreePaths,
|
|
36
35
|
boardPinIdentity,
|
|
37
36
|
buildForkTranscriptAttachment,
|
|
38
37
|
buildReviewRequestAttachment,
|
|
@@ -64,6 +63,7 @@ import {
|
|
|
64
63
|
ensureReviewRequestFile,
|
|
65
64
|
ensureReviewSkillFile,
|
|
66
65
|
estimateMessageChars,
|
|
66
|
+
estimateOccupancyTokens,
|
|
67
67
|
estimateThreadChars,
|
|
68
68
|
expandComposerPrompt,
|
|
69
69
|
extractiveSummary,
|
|
@@ -91,6 +91,7 @@ import {
|
|
|
91
91
|
formatUiReminder,
|
|
92
92
|
formatWorktreeDirective,
|
|
93
93
|
formatWorktreeReminder,
|
|
94
|
+
forwardContextUsage,
|
|
94
95
|
getDefaultRunScript,
|
|
95
96
|
getDiff,
|
|
96
97
|
getDiffSummary,
|
|
@@ -111,7 +112,6 @@ import {
|
|
|
111
112
|
isCowboyThread,
|
|
112
113
|
isDesktopHostAlive,
|
|
113
114
|
isHomeBoardThread,
|
|
114
|
-
isImageFilePath,
|
|
115
115
|
isPidAlive,
|
|
116
116
|
isPrimaryCheckoutThread,
|
|
117
117
|
isSlackExternalReplyPrompt,
|
|
@@ -170,14 +170,13 @@ import {
|
|
|
170
170
|
splitForCompaction,
|
|
171
171
|
stackAgentDefaultsFrom,
|
|
172
172
|
stackIdFrom,
|
|
173
|
-
stageAbsolutePathsAsAttachments,
|
|
174
|
-
stageBuffersAsAttachments,
|
|
175
173
|
startDevServer,
|
|
176
174
|
startOrchestration,
|
|
177
175
|
summarizeConversation,
|
|
178
176
|
syncBoardPins,
|
|
179
177
|
takenTeamSlugsForChatTab,
|
|
180
178
|
thisProcessShouldDrainAgentQueues,
|
|
179
|
+
threadHasCompactedContext,
|
|
181
180
|
threadsSharingWorktree,
|
|
182
181
|
updateSchedule,
|
|
183
182
|
upsertSlackWorkspace,
|
|
@@ -187,7 +186,7 @@ import {
|
|
|
187
186
|
worktreeCleanupSettings,
|
|
188
187
|
wrapReviewSkillMarkdown,
|
|
189
188
|
writeWorktreeFile
|
|
190
|
-
} from "./chunk-
|
|
189
|
+
} from "./chunk-ZCLHAOFR.js";
|
|
191
190
|
import {
|
|
192
191
|
BRIGHTSY_MCP_ALLOWED_TOOLS,
|
|
193
192
|
CLAUDE_MODEL_CATALOG,
|
|
@@ -263,10 +262,11 @@ import {
|
|
|
263
262
|
toolDetail,
|
|
264
263
|
toolFilePath,
|
|
265
264
|
totalTokens,
|
|
265
|
+
visibleToolRowDetail,
|
|
266
266
|
withEventParentId,
|
|
267
267
|
withEventsParentId,
|
|
268
268
|
writeInjectedMcpConfig
|
|
269
|
-
} from "./chunk-
|
|
269
|
+
} from "./chunk-CDJISVKN.js";
|
|
270
270
|
import {
|
|
271
271
|
brightsyMcpServerName,
|
|
272
272
|
connectBrightsyTeam,
|
|
@@ -291,7 +291,7 @@ import {
|
|
|
291
291
|
listWorkspaces,
|
|
292
292
|
removeWorkspace,
|
|
293
293
|
syncWorkspacesFromThreads
|
|
294
|
-
} from "./chunk-
|
|
294
|
+
} from "./chunk-SSBM4GZX.js";
|
|
295
295
|
import {
|
|
296
296
|
CLOUD_COORDINATOR_BUSY_REPLY,
|
|
297
297
|
CLOUD_COORDINATOR_STOPPED_REPLY,
|
|
@@ -301,6 +301,9 @@ import {
|
|
|
301
301
|
ORCHESTRATOR_AGENT_KINDS,
|
|
302
302
|
SIDEBOARD_FORCE_STOP,
|
|
303
303
|
assertOrchestratorCapableAgent,
|
|
304
|
+
attachmentFromAbsolutePath,
|
|
305
|
+
attachmentsFromBuffers,
|
|
306
|
+
attachmentsFromWorktreePaths,
|
|
304
307
|
coerceOrchestratorAgent,
|
|
305
308
|
createGlobalChat,
|
|
306
309
|
ensureCloudCoordinator,
|
|
@@ -310,6 +313,7 @@ import {
|
|
|
310
313
|
isCloudCoordinatorThread,
|
|
311
314
|
isGlobalRepoPath,
|
|
312
315
|
isGlobalThread,
|
|
316
|
+
isImageFilePath,
|
|
313
317
|
isOrchestratorCapableAgent,
|
|
314
318
|
isOrchestratorThread,
|
|
315
319
|
isSlackCoordinatorThread,
|
|
@@ -317,9 +321,12 @@ import {
|
|
|
317
321
|
orchestrationTitleNeedsSoccerNickname,
|
|
318
322
|
orchestratorSessionPoisonedByBuiltins,
|
|
319
323
|
parseForceStopMessage,
|
|
324
|
+
persistPendingFileAttachments,
|
|
320
325
|
slackCoordinatorSourceRef,
|
|
326
|
+
stageAbsolutePathsAsAttachments,
|
|
327
|
+
stageBuffersAsAttachments,
|
|
321
328
|
takenTeamSlugsForOrchestration
|
|
322
|
-
} from "./chunk-
|
|
329
|
+
} from "./chunk-E2RE7P2S.js";
|
|
323
330
|
import {
|
|
324
331
|
COORDINATOR_TOOL_PLAYBOOK,
|
|
325
332
|
SLACK_REPLY_FORMATTING,
|
|
@@ -328,7 +335,7 @@ import {
|
|
|
328
335
|
enrichWorkspacesWithGithub,
|
|
329
336
|
ensureGlobalCoordinatorCwd,
|
|
330
337
|
formatWorkspaceInventory
|
|
331
|
-
} from "./chunk-
|
|
338
|
+
} from "./chunk-7SYFWPOZ.js";
|
|
332
339
|
import {
|
|
333
340
|
ABLETIME_MCP_PATH,
|
|
334
341
|
DEFAULT_ABLETIME_HOST,
|
|
@@ -465,7 +472,7 @@ import {
|
|
|
465
472
|
worktreeDisplayLabel,
|
|
466
473
|
worktreeDisplayLabelForGroup,
|
|
467
474
|
worktreeNameFromPath
|
|
468
|
-
} from "./chunk-
|
|
475
|
+
} from "./chunk-DKXZCIB2.js";
|
|
469
476
|
import {
|
|
470
477
|
ATTACHMENTS_DIR,
|
|
471
478
|
LEGACY_ATTACHMENTS_DIR,
|
|
@@ -562,7 +569,7 @@ import {
|
|
|
562
569
|
updateThread,
|
|
563
570
|
withThreadLock,
|
|
564
571
|
writeThread
|
|
565
|
-
} from "./chunk-
|
|
572
|
+
} from "./chunk-TUGKX5BD.js";
|
|
566
573
|
import {
|
|
567
574
|
THINKING_EFFORTS,
|
|
568
575
|
isThinkingEffort,
|
|
@@ -1550,8 +1557,12 @@ function latestPendingPlanQuestions(input) {
|
|
|
1550
1557
|
if (last?.role === "agent") return extractPendingPlanQuestions(last.parts);
|
|
1551
1558
|
return null;
|
|
1552
1559
|
}
|
|
1560
|
+
var PLAN_QUESTION_ANSWERS_PREFIX = "Answers to your questions:";
|
|
1561
|
+
function isPlanQuestionAnswersMessage(text5) {
|
|
1562
|
+
return text5.startsWith(PLAN_QUESTION_ANSWERS_PREFIX);
|
|
1563
|
+
}
|
|
1553
1564
|
function formatPlanQuestionAnswers(questions, answers) {
|
|
1554
|
-
const lines = [
|
|
1565
|
+
const lines = [PLAN_QUESTION_ANSWERS_PREFIX, ""];
|
|
1555
1566
|
for (let i = 0; i < questions.length; i++) {
|
|
1556
1567
|
const q = questions[i];
|
|
1557
1568
|
const a = answers.find((x) => x.questionIndex === i);
|
|
@@ -1560,7 +1571,7 @@ function formatPlanQuestionAnswers(questions, answers) {
|
|
|
1560
1571
|
if (a?.selected.length) parts.push(a.selected.join(", "));
|
|
1561
1572
|
if (a?.other?.trim()) parts.push(a.other.trim());
|
|
1562
1573
|
const body = parts.length ? parts.join(" \xB7 ") : "(no answer)";
|
|
1563
|
-
lines.push(`${i + 1}. ${header}${q.question}`);
|
|
1574
|
+
lines.push(`${i + 1}. ${header}${q.question} `);
|
|
1564
1575
|
lines.push(` \u2192 ${body}`);
|
|
1565
1576
|
}
|
|
1566
1577
|
return lines.join("\n");
|
|
@@ -1611,6 +1622,36 @@ var MCP_WAIT_QUEUED_HINT = "Child is queued waiting for a concurrency slot \u201
|
|
|
1611
1622
|
function mcpWaitStillRunningHint(status) {
|
|
1612
1623
|
return status === "queued" ? MCP_WAIT_QUEUED_HINT : MCP_WAIT_STILL_RUNNING_HINT;
|
|
1613
1624
|
}
|
|
1625
|
+
var MCP_WAIT_STOPPED_HINT = "Child was stopped before the turn finished. Do not treat this as success. send_to_thread to resume, or tell the user.";
|
|
1626
|
+
var MCP_WAIT_BROKEN_HINT = "Child worktree is broken (missing on disk). Tell the user \u2014 do not treat this as success.";
|
|
1627
|
+
var MCP_WAIT_ERROR_HINT = "Child turn failed. lastError/text is the failure \u2014 switch agent, tell the user, or retry. Do not treat empty text as success.";
|
|
1628
|
+
function mcpWaitFinishedHint(status) {
|
|
1629
|
+
if (status === "stopped") return MCP_WAIT_STOPPED_HINT;
|
|
1630
|
+
if (status === "broken") return MCP_WAIT_BROKEN_HINT;
|
|
1631
|
+
if (status === "error") return MCP_WAIT_ERROR_HINT;
|
|
1632
|
+
return void 0;
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
// src/mcp/thread-visibility.ts
|
|
1636
|
+
function lastMessagePreview(messages, max = 160) {
|
|
1637
|
+
if (!messages?.length) return null;
|
|
1638
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
1639
|
+
const text5 = messages[i]?.text?.trim();
|
|
1640
|
+
if (!text5) continue;
|
|
1641
|
+
const flat = text5.replace(/\s+/g, " ");
|
|
1642
|
+
return flat.length > max ? `${flat.slice(0, max)}\u2026` : flat;
|
|
1643
|
+
}
|
|
1644
|
+
return null;
|
|
1645
|
+
}
|
|
1646
|
+
function childThreadRefs(parentId, threads) {
|
|
1647
|
+
return threads.filter((t) => t.parentThreadId === parentId).map((t) => ({
|
|
1648
|
+
id: t.id,
|
|
1649
|
+
title: t.title,
|
|
1650
|
+
status: t.status,
|
|
1651
|
+
agent: t.agent,
|
|
1652
|
+
lastText: lastMessagePreview(t.messages, 120)
|
|
1653
|
+
}));
|
|
1654
|
+
}
|
|
1614
1655
|
|
|
1615
1656
|
// src/mcp/slack-tools.ts
|
|
1616
1657
|
import { z } from "zod";
|
|
@@ -2925,15 +2966,19 @@ async function startMcpServer() {
|
|
|
2925
2966
|
);
|
|
2926
2967
|
server.tool(
|
|
2927
2968
|
"list_threads",
|
|
2928
|
-
"List Sideboard threads across all workspaces (one summary line each \u2014 token-frugal). Each line ends with sideboard://thread/<id> \u2014 use that URL in markdown links so the UI can open the chat.",
|
|
2969
|
+
"List Sideboard threads across all workspaces (one summary line each \u2014 token-frugal). Includes parent id, last message preview, and live progress so you can see worktree children. Each line ends with sideboard://thread/<id> \u2014 use that URL in markdown links so the UI can open the chat.",
|
|
2929
2970
|
{},
|
|
2930
2971
|
async () => {
|
|
2931
2972
|
const threads = orch.getThreads(true);
|
|
2932
2973
|
const lines = threads.map((t) => {
|
|
2933
2974
|
const repo = t.repoPath === GLOBAL_WORKSPACE_ID ? "Orchestration" : basename(t.repoPath) || t.repoPath;
|
|
2934
2975
|
const live = t.status === "running" || t.status === "queued" ? readTurnLive(t.id) : null;
|
|
2976
|
+
const parent = t.parentThreadId ? ` parent:${t.parentThreadId.slice(0, 8)}` : "";
|
|
2977
|
+
const preview = lastMessagePreview(t.messages, 80);
|
|
2978
|
+
const previewBit = preview ? ` ${preview}` : "";
|
|
2979
|
+
const err = t.lastError ? ` error:${t.lastError.replace(/\s+/g, " ").slice(0, 60)}` : "";
|
|
2935
2980
|
const progress = live?.summary ? ` ${live.summary}` : "";
|
|
2936
|
-
return `${t.id.slice(0, 8)} ${t.status.padEnd(9)} ${t.agent.padEnd(8)} ${repo} ${t.sourceType}:${t.sourceRef} ${t.title} sideboard://thread/${t.id}${t.devPort ? ` http://localhost:${t.devPort}` : ""}${progress}`;
|
|
2981
|
+
return `${t.id.slice(0, 8)} ${t.status.padEnd(9)} ${t.agent.padEnd(8)} ${repo} ${t.sourceType}:${t.sourceRef} ${t.title}${parent}${previewBit}${err} sideboard://thread/${t.id}${t.devPort ? ` http://localhost:${t.devPort}` : ""}${progress}`;
|
|
2937
2982
|
});
|
|
2938
2983
|
return {
|
|
2939
2984
|
content: [{ type: "text", text: lines.join("\n") || "(no threads)" }]
|
|
@@ -2987,7 +3032,7 @@ async function startMcpServer() {
|
|
|
2987
3032
|
);
|
|
2988
3033
|
server.tool(
|
|
2989
3034
|
"get_thread",
|
|
2990
|
-
"Get a compact thread summary by id/ref. While running, includes progress (last tool/thinking) and lastActivityAt. Includes usage (thread billed token + costUsd totals when providers reported cost) and lastTurnUsage.",
|
|
3035
|
+
"Get a compact thread summary by id/ref. Includes last message preview, parentThreadId, and child worktree threads (status + lastText). While running, includes progress (last tool/thinking) and lastActivityAt. Includes usage (thread billed token + costUsd totals when providers reported cost) and lastTurnUsage.",
|
|
2991
3036
|
{ ref: z5.string() },
|
|
2992
3037
|
async ({ ref }) => {
|
|
2993
3038
|
const t = orch.getThread(ref);
|
|
@@ -3006,8 +3051,11 @@ async function startMcpServer() {
|
|
|
3006
3051
|
branchName: t.branchName,
|
|
3007
3052
|
worktreePath: t.worktreePath,
|
|
3008
3053
|
sessionId: t.sessionId,
|
|
3054
|
+
parentThreadId: t.parentThreadId,
|
|
3055
|
+
children: childThreadRefs(t.id, orch.getThreads(false)),
|
|
3009
3056
|
queueLength: t.queue.length,
|
|
3010
3057
|
messageCount: t.messages.length,
|
|
3058
|
+
lastText: lastMessagePreview(t.messages, 240),
|
|
3011
3059
|
devPort: t.devPort,
|
|
3012
3060
|
prUrl: t.prUrl,
|
|
3013
3061
|
lastError: t.lastError ?? null,
|
|
@@ -3338,7 +3386,7 @@ async function startMcpServer() {
|
|
|
3338
3386
|
);
|
|
3339
3387
|
server.tool(
|
|
3340
3388
|
"send_to_thread",
|
|
3341
|
-
'Queue a prompt on a worktree thread chat (runs under concurrency cap). Use after create_thread to start or continue a conversation. For commit/push/PR, prefer ask_git (canonical desktop-button phrases). Send "Merge PR." / ask_git merge only when the user explicitly asked to merge.
|
|
3389
|
+
'Queue a prompt on a worktree thread chat (runs under concurrency cap). Use after create_thread to start or continue a conversation. For commit/push/PR, prefer ask_git (canonical desktop-button phrases). Send "Merge PR." / ask_git merge only when the user explicitly asked to merge. force_stop=true kills the in-flight turn and clears the queue before this prompt \u2014 only when the current request is wrong and must be replaced. Do not force_stop to check in, resume after a halt notice, or because wait_for_turn returned stillRunning; that stops the child mid-thought. Call wait_for_turn again instead.',
|
|
3342
3390
|
{
|
|
3343
3391
|
ref: z5.string(),
|
|
3344
3392
|
prompt: z5.string(),
|
|
@@ -3348,7 +3396,7 @@ async function startMcpServer() {
|
|
|
3348
3396
|
if (force_stop) {
|
|
3349
3397
|
const existing = orch.getThread(ref);
|
|
3350
3398
|
if (existing) {
|
|
3351
|
-
orch.stop(ref, { clearQueue: true });
|
|
3399
|
+
orch.stop(ref, { clearQueue: true, notifyParent: false });
|
|
3352
3400
|
}
|
|
3353
3401
|
}
|
|
3354
3402
|
const thread = await orch.send(ref, prompt);
|
|
@@ -3369,7 +3417,7 @@ async function startMcpServer() {
|
|
|
3369
3417
|
);
|
|
3370
3418
|
server.tool(
|
|
3371
3419
|
"wait_for_turn",
|
|
3372
|
-
"Wait until the thread finishes its current/queued turn, or return early with a live progress snapshot. MCP clients often kill tools around 60s, so this returns within 45s even while the child is still working. If stillRunning is true, progress is tools/thinking (or \u201Cqueued, waiting for a concurrency slot\u201D if it has not started). Call wait_for_turn again. Do not send a check-in prompt, force_stop, or assume a hang. On status error, lastError/text is the failure. When finished, usage is the last agent turn\u2019s tokens + costUsd (when the provider reported cost).",
|
|
3420
|
+
"Wait until the thread finishes its current/queued turn, or return early with a live progress snapshot. MCP clients often kill tools around 60s, so this returns within 45s even while the child is still working. If stillRunning is true, progress is tools/thinking (or \u201Cqueued, waiting for a concurrency slot\u201D if it has not started). Call wait_for_turn again. Do not send a check-in prompt, force_stop, or assume a hang. On status error, lastError/text is the failure. On status stopped or broken, the child did not finish \u2014 resume with send_to_thread or tell the user; do not treat that as success. When finished, usage is the last agent turn\u2019s tokens + costUsd (when the provider reported cost).",
|
|
3373
3421
|
{
|
|
3374
3422
|
ref: z5.string(),
|
|
3375
3423
|
timeoutMs: z5.number().optional()
|
|
@@ -3391,7 +3439,8 @@ async function startMcpServer() {
|
|
|
3391
3439
|
stillRunning: result.stillRunning,
|
|
3392
3440
|
progress: result.progress,
|
|
3393
3441
|
lastActivityAt: result.lastActivityAt,
|
|
3394
|
-
hint: result.stillRunning ? mcpWaitStillRunningHint(result.status) :
|
|
3442
|
+
hint: result.stillRunning ? mcpWaitStillRunningHint(result.status) : mcpWaitFinishedHint(result.status),
|
|
3443
|
+
incomplete: !result.stillRunning && Boolean(mcpWaitFinishedHint(result.status))
|
|
3395
3444
|
})
|
|
3396
3445
|
}
|
|
3397
3446
|
]
|
|
@@ -3410,7 +3459,8 @@ async function startMcpServer() {
|
|
|
3410
3459
|
type: "text",
|
|
3411
3460
|
text: JSON.stringify({
|
|
3412
3461
|
...result,
|
|
3413
|
-
hint: result.stillRunning ? mcpWaitStillRunningHint(result.status) :
|
|
3462
|
+
hint: result.stillRunning ? mcpWaitStillRunningHint(result.status) : mcpWaitFinishedHint(result.status),
|
|
3463
|
+
incomplete: !result.stillRunning && Boolean(mcpWaitFinishedHint(result.status))
|
|
3414
3464
|
})
|
|
3415
3465
|
}
|
|
3416
3466
|
]
|
|
@@ -3434,7 +3484,7 @@ async function startMcpServer() {
|
|
|
3434
3484
|
}
|
|
3435
3485
|
const clearQueue = force !== false;
|
|
3436
3486
|
const hadQueued = t.queue.length > 0;
|
|
3437
|
-
const stopped = orch.stop(ref, { clearQueue });
|
|
3487
|
+
const stopped = orch.stop(ref, { clearQueue, notifyParent: false });
|
|
3438
3488
|
return {
|
|
3439
3489
|
content: [
|
|
3440
3490
|
{
|
|
@@ -6286,6 +6336,7 @@ export {
|
|
|
6286
6336
|
BAKED_SLACK_RELAY_URL,
|
|
6287
6337
|
BRIGHTSY_MCP_ALLOWED_TOOLS,
|
|
6288
6338
|
BrightsySideboardApi,
|
|
6339
|
+
CHARS_PER_CONTEXT_TOKEN,
|
|
6289
6340
|
CLAUDE_MODEL_CATALOG,
|
|
6290
6341
|
CLOUD_COORDINATOR_BUSY_REPLY,
|
|
6291
6342
|
CLOUD_COORDINATOR_STOPPED_REPLY,
|
|
@@ -6321,6 +6372,7 @@ export {
|
|
|
6321
6372
|
PLAN_FILE_NAME,
|
|
6322
6373
|
PLAN_FILE_REL,
|
|
6323
6374
|
PLAN_MODE_INSTRUCTION,
|
|
6375
|
+
PLAN_QUESTION_ANSWERS_PREFIX,
|
|
6324
6376
|
REPO_REVIEW_NAME,
|
|
6325
6377
|
REPO_REVIEW_PATH,
|
|
6326
6378
|
REVIEW_REQUEST_NAME,
|
|
@@ -6367,6 +6419,7 @@ export {
|
|
|
6367
6419
|
applyAgentRunnerHeapEnv,
|
|
6368
6420
|
applyAppEnvironment,
|
|
6369
6421
|
applyCompaction,
|
|
6422
|
+
applyForwardOccupancy,
|
|
6370
6423
|
applyGithubGitAuthEnv,
|
|
6371
6424
|
applyPromptCacheTtlEnv,
|
|
6372
6425
|
applyThreadIntoMain,
|
|
@@ -6484,6 +6537,7 @@ export {
|
|
|
6484
6537
|
ensureSlackDeviceIdentity,
|
|
6485
6538
|
ensureWorkspace,
|
|
6486
6539
|
estimateMessageChars,
|
|
6540
|
+
estimateOccupancyTokens,
|
|
6487
6541
|
estimateThreadChars,
|
|
6488
6542
|
expandComposerPrompt,
|
|
6489
6543
|
extractGhErrorDetail,
|
|
@@ -6531,6 +6585,7 @@ export {
|
|
|
6531
6585
|
formatWorkspaceInventory,
|
|
6532
6586
|
formatWorktreeDirective,
|
|
6533
6587
|
formatWorktreeReminder,
|
|
6588
|
+
forwardContextUsage,
|
|
6534
6589
|
fromInclusiveInputUsage,
|
|
6535
6590
|
getAbleTimeAccessToken,
|
|
6536
6591
|
getAbleTimeHost,
|
|
@@ -6620,6 +6675,7 @@ export {
|
|
|
6620
6675
|
isOrchestratorThread,
|
|
6621
6676
|
isPidAlive,
|
|
6622
6677
|
isPlaceholderBranch,
|
|
6678
|
+
isPlanQuestionAnswersMessage,
|
|
6623
6679
|
isPollWrapperToolName,
|
|
6624
6680
|
isPrNotMergeableError,
|
|
6625
6681
|
isPresentPlanToolName,
|
|
@@ -6730,6 +6786,7 @@ export {
|
|
|
6730
6786
|
pastedTextStats,
|
|
6731
6787
|
pendingSlackExternalReplies,
|
|
6732
6788
|
permissionMode,
|
|
6789
|
+
persistPendingFileAttachments,
|
|
6733
6790
|
persistVaultKeyInKeychain,
|
|
6734
6791
|
planFileAbs,
|
|
6735
6792
|
planQuestionsSignature,
|
|
@@ -6870,6 +6927,7 @@ export {
|
|
|
6870
6927
|
thisProcessShouldDrainAgentQueues,
|
|
6871
6928
|
threadDisplayLabel,
|
|
6872
6929
|
threadFilePath,
|
|
6930
|
+
threadHasCompactedContext,
|
|
6873
6931
|
threadLivePath,
|
|
6874
6932
|
threadLockPath,
|
|
6875
6933
|
threadRequestsBrightsyMcp,
|
|
@@ -6899,6 +6957,7 @@ export {
|
|
|
6899
6957
|
userCursorMcpConfigPath,
|
|
6900
6958
|
validateLinearApiKey,
|
|
6901
6959
|
verifyAbleTimeConnection,
|
|
6960
|
+
visibleToolRowDetail,
|
|
6902
6961
|
waitForPidExit,
|
|
6903
6962
|
warmGithubAgentAuth,
|
|
6904
6963
|
withAgentInstructions,
|