@sideboard-ai/core 0.1.307 → 0.1.309
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 +36 -1
- package/dist/agents/cursor-runner.js +17 -5
- package/dist/{agents-IWNQOQOU.js → agents-DG2UPJ6N.js} +4 -4
- package/dist/{agents-PGU5WVSO.js → agents-LK6JGQRF.js} +2 -2
- package/dist/{chunk-HO5R3ZRH.js → chunk-5XNT6BCG.js} +40 -2
- package/dist/{chunk-F36QRDM4.js → chunk-7Q327QF2.js} +1 -1
- package/dist/{chunk-5SFA27CF.js → chunk-AILQRQ26.js} +14 -3
- package/dist/{chunk-G2L3CR3A.js → chunk-FMSLOWKR.js} +3 -3
- package/dist/{chunk-5XQ43YZU.js → chunk-I5TESHDN.js} +9 -2
- package/dist/{chunk-R5RQLKMP.js → chunk-M6PAT6HG.js} +47 -13
- package/dist/{chunk-YJBUYGPN.js → chunk-NCHOTN3C.js} +1 -1
- package/dist/{chunk-IEOOYBYT.js → chunk-OU5V56OI.js} +24 -10
- package/dist/{chunk-MMVMQ34G.js → chunk-UA3YKQ3D.js} +1 -1
- package/dist/{chunk-OVNIP265.js → chunk-VBVSJUM2.js} +51 -6
- package/dist/{chunk-EZYZGDWU.js → chunk-VXI7FFGO.js} +1 -1
- package/dist/{conductor-ZFRXTVGP.js → conductor-AMZ5SKG2.js} +2 -2
- package/dist/{conductor-YBXURAUL.js → conductor-OFXA5BST.js} +3 -3
- package/dist/index.cjs +131 -27
- package/dist/index.d.cts +53 -3
- package/dist/index.d.ts +53 -3
- package/dist/index.js +46 -25
- package/dist/mcp/run-stdio.cjs +42 -10
- package/dist/mcp/run-stdio.js +4 -4
- package/dist/{orchestrator-MB2Q6KIR.js → orchestrator-4OIMDLIR.js} +4 -4
- package/dist/{orchestrator-XRTUGSKX.js → orchestrator-T76JRIIN.js} +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -177,6 +177,9 @@ import {
|
|
|
177
177
|
shouldRunHistoryCleanup,
|
|
178
178
|
shouldRunWorktreeCleanup,
|
|
179
179
|
shouldStampSetupLastError,
|
|
180
|
+
sidebarParentSelectId,
|
|
181
|
+
sidebarQuestionThreadId,
|
|
182
|
+
sidebarRowAgentBlock,
|
|
180
183
|
sliceRunLogOutput,
|
|
181
184
|
spawnAgentTurn,
|
|
182
185
|
stackAgentDefaultsFrom,
|
|
@@ -198,7 +201,7 @@ import {
|
|
|
198
201
|
worktreeCleanupSettings,
|
|
199
202
|
writeAgentBlock,
|
|
200
203
|
writeWorktreeFile
|
|
201
|
-
} from "./chunk-
|
|
204
|
+
} from "./chunk-M6PAT6HG.js";
|
|
202
205
|
import {
|
|
203
206
|
LEGACY_PLAN_FILE_REL,
|
|
204
207
|
PLAN_FILE_NAME,
|
|
@@ -292,7 +295,7 @@ import {
|
|
|
292
295
|
userMcpNamesToDisable,
|
|
293
296
|
worktreeMcpToolNames,
|
|
294
297
|
writeInjectedMcpConfig
|
|
295
|
-
} from "./chunk-
|
|
298
|
+
} from "./chunk-FMSLOWKR.js";
|
|
296
299
|
import {
|
|
297
300
|
brightsyMcpServerName,
|
|
298
301
|
connectBrightsyTeam,
|
|
@@ -421,7 +424,7 @@ import {
|
|
|
421
424
|
workspaceAgentChatSummaries,
|
|
422
425
|
worktreeRunPortsPath,
|
|
423
426
|
wrapReviewSkillMarkdown
|
|
424
|
-
} from "./chunk-
|
|
427
|
+
} from "./chunk-VBVSJUM2.js";
|
|
425
428
|
import {
|
|
426
429
|
STDERR_EVENT_MAX_CHARS,
|
|
427
430
|
STDOUT_EVENT_MAX_CHARS,
|
|
@@ -463,7 +466,7 @@ import {
|
|
|
463
466
|
visibleToolRowDetail,
|
|
464
467
|
withEventParentId,
|
|
465
468
|
withEventsParentId
|
|
466
|
-
} from "./chunk-
|
|
469
|
+
} from "./chunk-7Q327QF2.js";
|
|
467
470
|
import "./chunk-7H655NEW.js";
|
|
468
471
|
import {
|
|
469
472
|
ABLETIME_OAUTH_CALLBACK_PATH,
|
|
@@ -780,7 +783,7 @@ import {
|
|
|
780
783
|
import {
|
|
781
784
|
clipMcpToolResult,
|
|
782
785
|
cursorToolErrorText
|
|
783
|
-
} from "./chunk-
|
|
786
|
+
} from "./chunk-NCHOTN3C.js";
|
|
784
787
|
import "./chunk-AXQ4ZWHK.js";
|
|
785
788
|
import {
|
|
786
789
|
AGENT_RUNNER_MAX_OLD_SPACE_MB,
|
|
@@ -796,8 +799,8 @@ import {
|
|
|
796
799
|
trustSystemCertificates,
|
|
797
800
|
turnCostUsdFromCursorUsage,
|
|
798
801
|
withMaxOldSpaceSize
|
|
799
|
-
} from "./chunk-
|
|
800
|
-
import "./chunk-
|
|
802
|
+
} from "./chunk-UA3YKQ3D.js";
|
|
803
|
+
import "./chunk-5XNT6BCG.js";
|
|
801
804
|
import {
|
|
802
805
|
ATTACHMENTS_DIR,
|
|
803
806
|
CLI_DIR,
|
|
@@ -2465,10 +2468,9 @@ function parsePhoneMcpUi(value, op, chatId) {
|
|
|
2465
2468
|
}
|
|
2466
2469
|
function phoneMcpToolPayload(parts, tool, callId) {
|
|
2467
2470
|
if (!parts) return null;
|
|
2468
|
-
const
|
|
2469
|
-
(
|
|
2471
|
+
const part = parts.find(
|
|
2472
|
+
(row2) => row2.type === "tool" && row2.id === callId && row2.name === tool && !row2.parentId
|
|
2470
2473
|
);
|
|
2471
|
-
const part = matches.find((row2) => row2.id === callId) ?? matches[matches.length - 1];
|
|
2472
2474
|
if (!part) return null;
|
|
2473
2475
|
return {
|
|
2474
2476
|
input: part.input ?? {},
|
|
@@ -2476,6 +2478,15 @@ function phoneMcpToolPayload(parts, tool, callId) {
|
|
|
2476
2478
|
isError: part.status === "error"
|
|
2477
2479
|
};
|
|
2478
2480
|
}
|
|
2481
|
+
function phoneMcpToolPayloadFromMessages(messages, tool, callId) {
|
|
2482
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
2483
|
+
const message = messages[i];
|
|
2484
|
+
if (message?.role !== "agent") continue;
|
|
2485
|
+
const payload = phoneMcpToolPayload(message.parts, tool, callId);
|
|
2486
|
+
if (payload) return payload;
|
|
2487
|
+
}
|
|
2488
|
+
return null;
|
|
2489
|
+
}
|
|
2479
2490
|
|
|
2480
2491
|
// src/remote/phone-stream.ts
|
|
2481
2492
|
var PHONE_STREAM_FLUSH_MS = 80;
|
|
@@ -2534,8 +2545,8 @@ function listPhoneMessages(thread) {
|
|
|
2534
2545
|
const names = (message.attachments ?? []).map((item) => item.name.trim()).filter(Boolean);
|
|
2535
2546
|
const visible = [phoneVisibleText(message.role, message.text), names.length ? names.join(", ") : ""].filter(Boolean).join("\n");
|
|
2536
2547
|
const text5 = message.role === "agent" ? phoneArtifactText(visible, message.parts, MESSAGE_LIMIT) : clip(visible, MESSAGE_LIMIT);
|
|
2537
|
-
if (!text5) continue;
|
|
2538
2548
|
const apps = message.role === "agent" ? phoneMcpApps(thread.agent, message.parts) : [];
|
|
2549
|
+
if (!text5 && apps.length === 0) continue;
|
|
2539
2550
|
out.push({ role: message.role, text: text5, ...apps.length ? { apps } : {} });
|
|
2540
2551
|
}
|
|
2541
2552
|
const live = withLiveTail(thread, out);
|
|
@@ -3199,10 +3210,12 @@ function emitChatTurn(opts, chatId, threadId) {
|
|
|
3199
3210
|
return;
|
|
3200
3211
|
}
|
|
3201
3212
|
const result = getOrchestrator().getTurnResult(thread.id);
|
|
3202
|
-
const pending =
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3213
|
+
const pending = latestPendingPlanQuestions({
|
|
3214
|
+
messages: thread.messages,
|
|
3215
|
+
agentBlock: thread.agentBlock,
|
|
3216
|
+
dismissedQuestionSignature: thread.dismissedQuestionSignature
|
|
3217
|
+
});
|
|
3218
|
+
if (pending && result.taskState !== "failed" && result.taskState !== "canceled" && (result.taskState === "input-required" || thread.agentBlock?.source === "ask_user")) {
|
|
3206
3219
|
emitControl(opts, {
|
|
3207
3220
|
op: "ask",
|
|
3208
3221
|
chatId,
|
|
@@ -3286,8 +3299,7 @@ function dispatchPhoneMcpUi(cmd, opts) {
|
|
|
3286
3299
|
);
|
|
3287
3300
|
return true;
|
|
3288
3301
|
}
|
|
3289
|
-
const
|
|
3290
|
-
const payload = phoneMcpToolPayload(agentMessage?.parts, cmd.tool, cmd.callId);
|
|
3302
|
+
const payload = phoneMcpToolPayloadFromMessages(thread.messages, cmd.tool, cmd.callId);
|
|
3291
3303
|
void getMcpUiHost().viewForClaudeTool(cmd.tool, projectDirs).then((view) => {
|
|
3292
3304
|
if (!view || view.html.length > PHONE_HTML_CAP) {
|
|
3293
3305
|
emitControl(opts, { op: "mcp-ui", chatId, reqId, view: null });
|
|
@@ -3558,7 +3570,11 @@ function dispatchPhonePermission(text5, emit) {
|
|
|
3558
3570
|
function republishPendingAsk(opts, chatId) {
|
|
3559
3571
|
const thread = readPhoneThread(chatId);
|
|
3560
3572
|
if (!thread) return;
|
|
3561
|
-
const pending = latestPendingPlanQuestions({
|
|
3573
|
+
const pending = latestPendingPlanQuestions({
|
|
3574
|
+
messages: thread.messages,
|
|
3575
|
+
agentBlock: thread.agentBlock,
|
|
3576
|
+
dismissedQuestionSignature: thread.dismissedQuestionSignature
|
|
3577
|
+
});
|
|
3562
3578
|
if (!pending) return;
|
|
3563
3579
|
emitControl(opts, {
|
|
3564
3580
|
op: "ask",
|
|
@@ -5779,10 +5795,12 @@ function runCoordinatorPrompt(opts, body, generation) {
|
|
|
5779
5795
|
thread = readThread(thread.id) ?? thread;
|
|
5780
5796
|
if (thread.status === "stopped") return;
|
|
5781
5797
|
const result = orch.getTurnResult(thread.id);
|
|
5782
|
-
const pending =
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5798
|
+
const pending = latestPendingPlanQuestions({
|
|
5799
|
+
messages: thread.messages,
|
|
5800
|
+
agentBlock: thread.agentBlock,
|
|
5801
|
+
dismissedQuestionSignature: thread.dismissedQuestionSignature
|
|
5802
|
+
});
|
|
5803
|
+
if (pending && result.taskState !== "failed" && result.taskState !== "canceled" && (result.taskState === "input-required" || thread.agentBlock?.source === "ask_user")) {
|
|
5786
5804
|
opts.onOutbound({
|
|
5787
5805
|
type: "ask_user",
|
|
5788
5806
|
text: result.text.trim(),
|
|
@@ -8873,7 +8891,7 @@ async function startHeadlessHost(opts) {
|
|
|
8873
8891
|
};
|
|
8874
8892
|
const refreshRunning = async () => {
|
|
8875
8893
|
try {
|
|
8876
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
8894
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-T76JRIIN.js");
|
|
8877
8895
|
agentsRunning = getOrchestrator2().getRuntime().running;
|
|
8878
8896
|
} catch {
|
|
8879
8897
|
agentsRunning = 0;
|
|
@@ -10805,7 +10823,7 @@ async function handleJobStop(params, _ctx) {
|
|
|
10805
10823
|
return stopDetachedJob(jobCwd(rec), id, reason ? { reason } : void 0);
|
|
10806
10824
|
}
|
|
10807
10825
|
async function defaultTurnWait(ref, timeoutMs) {
|
|
10808
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
10826
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-T76JRIIN.js");
|
|
10809
10827
|
const orch = getOrchestrator2();
|
|
10810
10828
|
const thread = await orch.waitForTurn(ref, timeoutMs, {
|
|
10811
10829
|
resolveIfStillRunning: true
|
|
@@ -14178,7 +14196,7 @@ async function continueSourceThread(threadId, prompt) {
|
|
|
14178
14196
|
await continueOnReply(threadId, prompt);
|
|
14179
14197
|
return;
|
|
14180
14198
|
}
|
|
14181
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
14199
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-T76JRIIN.js");
|
|
14182
14200
|
await getOrchestrator2().send(threadId, prompt);
|
|
14183
14201
|
} catch {
|
|
14184
14202
|
}
|
|
@@ -15388,6 +15406,9 @@ export {
|
|
|
15388
15406
|
shouldRunWorktreeCleanup,
|
|
15389
15407
|
shouldStampSetupLastError,
|
|
15390
15408
|
showCostEnabled,
|
|
15409
|
+
sidebarParentSelectId,
|
|
15410
|
+
sidebarQuestionThreadId,
|
|
15411
|
+
sidebarRowAgentBlock,
|
|
15391
15412
|
sideboardHomeDir,
|
|
15392
15413
|
sideboardMcpProfile,
|
|
15393
15414
|
sideboardReposDir,
|
package/dist/mcp/run-stdio.cjs
CHANGED
|
@@ -784,6 +784,12 @@ var init_system_ca = __esm({
|
|
|
784
784
|
function looksLikeCursorStreamCutOff(text7) {
|
|
785
785
|
return CURSOR_STREAM_CUTOFF.test(text7.trim());
|
|
786
786
|
}
|
|
787
|
+
function looksLikeCursorStreamIdleAfterTools(text7) {
|
|
788
|
+
return CURSOR_STREAM_IDLE_AFTER_TOOLS.test(text7.trim());
|
|
789
|
+
}
|
|
790
|
+
function looksLikeCursorStreamFailure(text7) {
|
|
791
|
+
return looksLikeCursorStreamCutOff(text7) || looksLikeCursorStreamIdleAfterTools(text7);
|
|
792
|
+
}
|
|
787
793
|
function cursorStreamCutOffContinueLimit(detail) {
|
|
788
794
|
if (looksLikeCursorStreamCutOff(detail) || /connection stalled/i.test(detail)) {
|
|
789
795
|
return CURSOR_STREAM_CUTOFF_CONTINUE_LIMIT;
|
|
@@ -795,11 +801,12 @@ function nextCrashContinueCount(detail, used) {
|
|
|
795
801
|
if (used >= limit) return null;
|
|
796
802
|
return used + 1;
|
|
797
803
|
}
|
|
798
|
-
var CURSOR_STREAM_CUTOFF, CURSOR_STREAM_CUTOFF_CONTINUE_LIMIT;
|
|
804
|
+
var CURSOR_STREAM_CUTOFF, CURSOR_STREAM_IDLE_AFTER_TOOLS, CURSOR_STREAM_CUTOFF_CONTINUE_LIMIT;
|
|
799
805
|
var init_cursor_stream_cutoff = __esm({
|
|
800
806
|
"src/agents/cursor-stream-cutoff.ts"() {
|
|
801
807
|
"use strict";
|
|
802
808
|
CURSOR_STREAM_CUTOFF = /nghttp2|premature close|\[unavailable\]\s+error\b|http\/2 stream closed|\bcancel \(0x8\)|error code cancel\b/i;
|
|
809
|
+
CURSOR_STREAM_IDLE_AFTER_TOOLS = /stopped responding after a tool call/i;
|
|
803
810
|
CURSOR_STREAM_CUTOFF_CONTINUE_LIMIT = 3;
|
|
804
811
|
}
|
|
805
812
|
});
|
|
@@ -1003,7 +1010,7 @@ function looksLikeRetryableRunnerCrash(text7) {
|
|
|
1003
1010
|
if (looksLikeInvalidAgentSession(text7)) return false;
|
|
1004
1011
|
if (looksLikeV8Oom(text7)) return false;
|
|
1005
1012
|
if (looksLikeHugeToolResultDump(text7)) return true;
|
|
1006
|
-
if (
|
|
1013
|
+
if (looksLikeCursorStreamFailure(text7)) return true;
|
|
1007
1014
|
if (looksLikeBrightsyEmptyCompletion(text7)) return true;
|
|
1008
1015
|
const lower = text7.trim().toLowerCase();
|
|
1009
1016
|
if (/cannot find (?:package|module)|err_module_not_found/.test(lower)) return false;
|
|
@@ -1080,7 +1087,7 @@ function humanizeAgentFailDetail(detail) {
|
|
|
1080
1087
|
if (/corrupt local agent checkpoint|missing root blob|truncated crash dump/.test(lower)) {
|
|
1081
1088
|
return `${raw} \u2014 retry the turn (Sideboard will start a fresh Cursor session).`;
|
|
1082
1089
|
}
|
|
1083
|
-
if (/connection stalled/.test(lower) ||
|
|
1090
|
+
if (/connection stalled/.test(lower) || looksLikeCursorStreamFailure(raw)) {
|
|
1084
1091
|
return /retry the turn/i.test(raw) ? raw : `${raw} \u2014 retry the turn (Sideboard will start a fresh Cursor session).`;
|
|
1085
1092
|
}
|
|
1086
1093
|
if (looksLikeBrightsyEmptyCompletion(raw)) {
|
|
@@ -2122,12 +2129,23 @@ function isAskUserToolName(name) {
|
|
|
2122
2129
|
const base = name.replace(/^mcp__sideboard__/i, "");
|
|
2123
2130
|
return ASK_USER_TOOL_RE.test(name) || /^ask_user$/i.test(base);
|
|
2124
2131
|
}
|
|
2132
|
+
function questionsFromToolPart(part) {
|
|
2133
|
+
const fromInput = parsePlanQuestionsInput(part.input);
|
|
2134
|
+
if (fromInput.length) return fromInput;
|
|
2135
|
+
const raw = part.result?.trim();
|
|
2136
|
+
if (!raw || !raw.startsWith("{")) return [];
|
|
2137
|
+
try {
|
|
2138
|
+
return parsePlanQuestionsInput(JSON.parse(raw));
|
|
2139
|
+
} catch {
|
|
2140
|
+
return [];
|
|
2141
|
+
}
|
|
2142
|
+
}
|
|
2125
2143
|
function extractPendingPlanQuestions(parts) {
|
|
2126
2144
|
if (!parts?.length) return null;
|
|
2127
2145
|
for (let i = parts.length - 1; i >= 0; i--) {
|
|
2128
2146
|
const p = parts[i];
|
|
2129
2147
|
if (p.type !== "tool" || !isAskUserToolName(p.name)) continue;
|
|
2130
|
-
const questions =
|
|
2148
|
+
const questions = questionsFromToolPart(p);
|
|
2131
2149
|
if (!questions.length) continue;
|
|
2132
2150
|
return {
|
|
2133
2151
|
id: p.id || `ask-${i}`,
|
|
@@ -18897,7 +18915,7 @@ function decisionBlockFromParts(parts, planMode, at = (/* @__PURE__ */ new Date(
|
|
|
18897
18915
|
const reason = pending ? formatAskUserNotifyMessage(pending.questions) : "Waiting for an answer in that chat.";
|
|
18898
18916
|
return {
|
|
18899
18917
|
...makeAgentBlock("ask_user", reason, at),
|
|
18900
|
-
...pending ? { questionSignature: pending.signature } : {}
|
|
18918
|
+
...pending ? { questionSignature: pending.signature, questions: pending.questions } : {}
|
|
18901
18919
|
};
|
|
18902
18920
|
}
|
|
18903
18921
|
if (!planMode || last?.type !== "tool") return null;
|
|
@@ -18912,14 +18930,24 @@ function decisionBlockFromParts(parts, planMode, at = (/* @__PURE__ */ new Date(
|
|
|
18912
18930
|
at
|
|
18913
18931
|
);
|
|
18914
18932
|
}
|
|
18933
|
+
function withStampedQuestions(decision, existing) {
|
|
18934
|
+
if (decision.source !== "ask_user" || decision.questions?.length) return decision;
|
|
18935
|
+
if (existing?.source !== "ask_user" || !existing.questions?.length) return decision;
|
|
18936
|
+
return {
|
|
18937
|
+
...decision,
|
|
18938
|
+
questions: existing.questions,
|
|
18939
|
+
questionSignature: decision.questionSignature ?? existing.questionSignature
|
|
18940
|
+
};
|
|
18941
|
+
}
|
|
18915
18942
|
function agentBlockAfterTurn(input) {
|
|
18916
18943
|
if (input.failed) return null;
|
|
18917
18944
|
const decision = decisionBlockFromParts(input.parts, input.planMode);
|
|
18918
18945
|
if (decision) {
|
|
18919
|
-
|
|
18946
|
+
const next = withStampedQuestions(decision, input.existing);
|
|
18947
|
+
if (isDismissedAskUserBlock(next, input.dismissedQuestionSignature)) {
|
|
18920
18948
|
return input.existing?.source === "reported" ? input.existing : null;
|
|
18921
18949
|
}
|
|
18922
|
-
return
|
|
18950
|
+
return next;
|
|
18923
18951
|
}
|
|
18924
18952
|
if (input.existing && input.existing.source !== "reported" && lastTopLevelTool(input.parts)) {
|
|
18925
18953
|
return null;
|
|
@@ -18962,7 +18990,7 @@ function settleAgentBlock(threadId, parts, failed) {
|
|
|
18962
18990
|
});
|
|
18963
18991
|
const prev = thread.agentBlock ?? null;
|
|
18964
18992
|
if (prev === next) return;
|
|
18965
|
-
if (prev && next && prev.source === next.source && prev.reason === next.reason && prev.at === next.at && prev.questionSignature === next.questionSignature) {
|
|
18993
|
+
if (prev && next && prev.source === next.source && prev.reason === next.reason && prev.at === next.at && prev.questionSignature === next.questionSignature && planQuestionsSignature(prev.questions ?? []) === planQuestionsSignature(next.questions ?? [])) {
|
|
18966
18994
|
return;
|
|
18967
18995
|
}
|
|
18968
18996
|
updateThread(threadId, { agentBlock: next });
|
|
@@ -18985,7 +19013,11 @@ function stampAskUserBlock(resolveCaller, questions) {
|
|
|
18985
19013
|
try {
|
|
18986
19014
|
writeAgentBlock(
|
|
18987
19015
|
resolveCaller().id,
|
|
18988
|
-
parsed.length ? {
|
|
19016
|
+
parsed.length ? {
|
|
19017
|
+
...block,
|
|
19018
|
+
questionSignature: planQuestionsSignature(parsed),
|
|
19019
|
+
questions: parsed
|
|
19020
|
+
} : block
|
|
18989
19021
|
);
|
|
18990
19022
|
} catch {
|
|
18991
19023
|
}
|
|
@@ -24858,7 +24890,7 @@ function formatWorktreeReminder() {
|
|
|
24858
24890
|
return "Sideboard workspace: 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. If a goal is given (Greptile 5/5, CI green), watch-fix-push until it lands \u2014 do not watch after every push. Schedules: create_schedule (at / every / cron; chatId=self for this chat). set_workspace_tags updates labels on this workspace (omit ref).";
|
|
24859
24891
|
}
|
|
24860
24892
|
function formatClaudeSubagentReminder() {
|
|
24861
|
-
return 'Claude subagents: if Task/Agent workers will edit files, write a short plan in this chat and continue in the same turn. Do not ask the user whether to isolate, and do not set worktree.bgIsolation to none. One writer may edit this workspace. Every other writer is an Agent with isolation "worktree" and a disjoint file list (read-only explore agents may overlap). While those agents run, leave their files alone. Merge each returned branch into this workspace, then remove the temporary worktree. You stay in this cwd. If Claude says another write-capable agent is in this directory, or that writes to the shared checkout are blocked, re-spawn that agent with isolation "worktree" or make the edit yourself.';
|
|
24893
|
+
return 'Claude subagents: if Task/Agent workers will edit files, write a short plan in this chat and continue in the same turn. Do not ask the user whether to isolate, and do not set worktree.bgIsolation to none. One writer may edit this workspace. Every other writer is an Agent with isolation "worktree" and a disjoint file list (read-only explore agents may overlap). While those agents run, leave their files alone. Merge each returned branch into this workspace, then remove the temporary worktree. You stay in this cwd. If Claude says another write-capable agent is in this directory, or that writes to the shared checkout are blocked, re-spawn that agent with isolation "worktree" or make the edit yourself. That note is another worker in this chat, or a worker Claude still has marked running. Do not mention it to the user.';
|
|
24862
24894
|
}
|
|
24863
24895
|
function claudeSubagentTurnReminder(thread) {
|
|
24864
24896
|
if (thread.agent !== "claude" || thread.planMode || isOrchestratorThread(thread)) {
|
package/dist/mcp/run-stdio.js
CHANGED
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
updateSchedule,
|
|
57
57
|
workspaceTagTargetRef,
|
|
58
58
|
writeAgentBlock
|
|
59
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-OU5V56OI.js";
|
|
60
60
|
import "../chunk-LX5R5JOR.js";
|
|
61
61
|
import {
|
|
62
62
|
commentAbleTimeTask,
|
|
@@ -99,7 +99,7 @@ import {
|
|
|
99
99
|
sideboardMcpProfile,
|
|
100
100
|
trustSystemCertificates,
|
|
101
101
|
worktreeMcpToolNames
|
|
102
|
-
} from "../chunk-
|
|
102
|
+
} from "../chunk-VXI7FFGO.js";
|
|
103
103
|
import "../chunk-EGTCXNQM.js";
|
|
104
104
|
import "../chunk-42JGPPVS.js";
|
|
105
105
|
import "../chunk-PXMLMBMI.js";
|
|
@@ -116,14 +116,14 @@ import {
|
|
|
116
116
|
waitForDetachedJob,
|
|
117
117
|
waitForTurnToolResult,
|
|
118
118
|
workspaceAgentChatSummaries
|
|
119
|
-
} from "../chunk-
|
|
119
|
+
} from "../chunk-AILQRQ26.js";
|
|
120
120
|
import {
|
|
121
121
|
HUGE_TOOL_RESULT_SUMMARY,
|
|
122
122
|
clipToolResultForStore,
|
|
123
123
|
formatUnknownDetail,
|
|
124
124
|
isInternalAgentStatusText,
|
|
125
125
|
looksLikeHugeToolResultDump
|
|
126
|
-
} from "../chunk-
|
|
126
|
+
} from "../chunk-I5TESHDN.js";
|
|
127
127
|
import {
|
|
128
128
|
GLOBAL_WORKSPACE_ID,
|
|
129
129
|
isCloudCoordinatorThread
|
|
@@ -11,18 +11,18 @@ import {
|
|
|
11
11
|
resolveSendFollowUp,
|
|
12
12
|
startOrchestration,
|
|
13
13
|
waitForPidExit
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OU5V56OI.js";
|
|
15
15
|
import "./chunk-LX5R5JOR.js";
|
|
16
16
|
import "./chunk-62ESCTJ4.js";
|
|
17
17
|
import "./chunk-4GK32AYX.js";
|
|
18
18
|
import "./chunk-DC3VZXMA.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-VXI7FFGO.js";
|
|
20
20
|
import "./chunk-EGTCXNQM.js";
|
|
21
21
|
import "./chunk-42JGPPVS.js";
|
|
22
22
|
import "./chunk-PXMLMBMI.js";
|
|
23
23
|
import "./chunk-2GPQZZLY.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-AILQRQ26.js";
|
|
25
|
+
import "./chunk-I5TESHDN.js";
|
|
26
26
|
import "./chunk-X3FSWWW2.js";
|
|
27
27
|
import "./chunk-DLGGLV2M.js";
|
|
28
28
|
import "./chunk-N2WW62LF.js";
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
resolveSendFollowUp,
|
|
10
10
|
startOrchestration,
|
|
11
11
|
waitForPidExit
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-M6PAT6HG.js";
|
|
13
13
|
import "./chunk-PGPSIEMW.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-FMSLOWKR.js";
|
|
15
15
|
import "./chunk-VEVFHO6K.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-VBVSJUM2.js";
|
|
17
|
+
import "./chunk-7Q327QF2.js";
|
|
18
18
|
import "./chunk-7H655NEW.js";
|
|
19
19
|
import "./chunk-WRZRX4Q7.js";
|
|
20
20
|
import "./chunk-U4WACWBC.js";
|
|
@@ -26,8 +26,8 @@ import "./chunk-33KDPEK4.js";
|
|
|
26
26
|
import "./chunk-JAT3JFOS.js";
|
|
27
27
|
import "./chunk-F2PVRF3B.js";
|
|
28
28
|
import "./chunk-AXQ4ZWHK.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-UA3YKQ3D.js";
|
|
30
|
+
import "./chunk-5XNT6BCG.js";
|
|
31
31
|
import "./chunk-6K64FJDD.js";
|
|
32
32
|
import "./chunk-LG6RJBIY.js";
|
|
33
33
|
import "./chunk-QVN2WOKJ.js";
|