@sideboard-ai/core 0.1.236 → 0.1.238
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/{abletime-KOGCIQCO.js → abletime-UX4VUENQ.js} +4 -4
- package/dist/{abletime-oauth-LY7KZICW.js → abletime-oauth-DKBUZV2C.js} +3 -3
- package/dist/{abletime-rest-LXOWKPL7.js → abletime-rest-VPBC2XS5.js} +3 -3
- package/dist/{agents-JC6DRIT3.js → agents-6NAPLJU2.js} +2 -2
- package/dist/{agents-S4HYHRL3.js → agents-HJU23LIF.js} +4 -4
- package/dist/{app-settings-2CFCRYD7.js → app-settings-AGDLF75Z.js} +1 -1
- package/dist/{chunk-XMCJDWPA.js → chunk-32DG3DA2.js} +453 -729
- package/dist/{chunk-5UN5C5WP.js → chunk-BILEJG3V.js} +16 -3
- package/dist/{chunk-NYAEMZ3L.js → chunk-DXY4K5MP.js} +3 -3
- package/dist/{chunk-6Q2CFQ4D.js → chunk-E6UJGLPM.js} +449 -669
- package/dist/{chunk-VVOAXBND.js → chunk-IVXPXYH2.js} +5 -5
- package/dist/{chunk-DYXNBXE3.js → chunk-K6UTJOE6.js} +24 -6
- package/dist/{chunk-RRXRLHIE.js → chunk-OKHOYI53.js} +16 -5
- package/dist/{chunk-JXZS56VW.js → chunk-TB6UMHIF.js} +1 -1
- package/dist/{chunk-ANGPU5JL.js → chunk-WRUBICEF.js} +24 -8
- package/dist/{chunk-C2CBF4YE.js → chunk-YXOOSFAF.js} +2 -2
- package/dist/{coordinator-prompt-BIP7ZEJ3.js → coordinator-prompt-5UINTEA6.js} +1 -1
- package/dist/{coordinator-prompt-2BRUH7PJ.js → coordinator-prompt-ATK73HYU.js} +3 -3
- package/dist/{global-workspace-3XZN3QHZ.js → global-workspace-TD5SARNW.js} +3 -3
- package/dist/{global-workspace-DWCFG7LP.js → global-workspace-ZJBBICFJ.js} +1 -1
- package/dist/index.cjs +2252 -1698
- package/dist/index.d.cts +174 -14
- package/dist/index.d.ts +174 -14
- package/dist/index.js +827 -50
- package/dist/mcp/run-stdio.cjs +3175 -2721
- package/dist/mcp/run-stdio.js +689 -38
- package/dist/{orchestrator-AYPDBGIF.js → orchestrator-AAYKR4AI.js} +5 -5
- package/dist/{orchestrator-TEJJAQWP.js → orchestrator-HPMDB2SG.js} +3 -3
- package/dist/{workspaces-V7522TQH.js → workspaces-4SFSCYKT.js} +3 -3
- package/dist/{workspaces-NYT2472Z.js → workspaces-JX5R4V24.js} +1 -1
- package/dist/{worktree-IRALYI6A.js → worktree-Y5FES5D6.js} +2 -2
- package/package.json +1 -1
- package/dist/{chunk-4H5WO4H3.js → chunk-QLWMHQPH.js} +4 -4
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
getAbleTimeHost,
|
|
8
8
|
isAbleTimeConnected
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QLWMHQPH.js";
|
|
10
10
|
|
|
11
11
|
// src/integrations/abletime-mcp.ts
|
|
12
12
|
var DEFAULT_ABLETIME_HOST = "https://track.abletime.com";
|
|
@@ -155,7 +155,7 @@ function textsFromUnknown(value) {
|
|
|
155
155
|
return "";
|
|
156
156
|
}
|
|
157
157
|
async function abletimeMcpRequest(method, params, opts) {
|
|
158
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
158
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-DKBUZV2C.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
159
159
|
if (!rawToken?.trim()) {
|
|
160
160
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
161
161
|
}
|
|
@@ -226,9 +226,9 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
226
226
|
if (!opts?.token && !isAbleTimeConnected()) {
|
|
227
227
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
228
228
|
}
|
|
229
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
229
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-DKBUZV2C.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
230
230
|
if (rawToken && ableTimeUsesRest(rawToken)) {
|
|
231
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
231
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-VPBC2XS5.js");
|
|
232
232
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
233
233
|
}
|
|
234
234
|
const requestOpts = { ...opts, pm: opts?.pm ?? abletimeToolUsesPm(name) };
|
|
@@ -244,7 +244,7 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
244
244
|
return await call();
|
|
245
245
|
}
|
|
246
246
|
if (rawToken && ableTimeUsesRest(rawToken) && isAbleTimeRejectedCredential(message)) {
|
|
247
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
247
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-VPBC2XS5.js");
|
|
248
248
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
249
249
|
}
|
|
250
250
|
throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isOrchestratorThread
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BILEJG3V.js";
|
|
4
4
|
import {
|
|
5
5
|
codexUnattendedGitConfigArgs,
|
|
6
6
|
mergeAgentGitAuthEnv,
|
|
@@ -557,6 +557,7 @@ import { fileURLToPath } from "url";
|
|
|
557
557
|
|
|
558
558
|
// src/mcp/profile.ts
|
|
559
559
|
var SIDEBOARD_MCP_PROFILE_ENV = "SIDEBOARD_MCP_PROFILE";
|
|
560
|
+
var SIDEBOARD_THREAD_ID_ENV = "SIDEBOARD_THREAD_ID";
|
|
560
561
|
var WORKTREE_MCP_TOOLS = [
|
|
561
562
|
"present_artifact",
|
|
562
563
|
"ask_user",
|
|
@@ -568,6 +569,8 @@ var WORKTREE_MCP_TOOLS = [
|
|
|
568
569
|
"list_run_scripts",
|
|
569
570
|
"run_dev_script",
|
|
570
571
|
"stop_dev_script",
|
|
572
|
+
"get_run_log",
|
|
573
|
+
"notify_orchestrator",
|
|
571
574
|
"get_viewer_context",
|
|
572
575
|
"update_viewer_context"
|
|
573
576
|
];
|
|
@@ -617,6 +620,8 @@ var SIDEBOARD_ARTIFACT_MCP_ALLOWED_TOOLS = [
|
|
|
617
620
|
"mcp__sideboard__list_run_scripts",
|
|
618
621
|
"mcp__sideboard__run_dev_script",
|
|
619
622
|
"mcp__sideboard__stop_dev_script",
|
|
623
|
+
"mcp__sideboard__get_run_log",
|
|
624
|
+
"mcp__sideboard__notify_orchestrator",
|
|
620
625
|
"mcp__sideboard__get_viewer_context",
|
|
621
626
|
"mcp__sideboard__update_viewer_context"
|
|
622
627
|
];
|
|
@@ -783,6 +788,7 @@ async function buildInjectedMcpServers(opts) {
|
|
|
783
788
|
const sideboard = await resolveSideboardMcpServer();
|
|
784
789
|
const orchId = opts.orchestratorThreadId?.trim();
|
|
785
790
|
const profile = orchId ? "orchestration" : "worktree";
|
|
791
|
+
const threadId = opts.threadId?.trim() || orchId;
|
|
786
792
|
sideboard.env = {
|
|
787
793
|
...sideboard.env ?? {},
|
|
788
794
|
SIDEBOARD_APP_DATA: appDataDir(),
|
|
@@ -791,6 +797,9 @@ async function buildInjectedMcpServers(opts) {
|
|
|
791
797
|
if (orchId) {
|
|
792
798
|
sideboard.env.SIDEBOARD_ORCHESTRATOR_THREAD_ID = orchId;
|
|
793
799
|
}
|
|
800
|
+
if (threadId) {
|
|
801
|
+
sideboard.env[SIDEBOARD_THREAD_ID_ENV] = threadId;
|
|
802
|
+
}
|
|
794
803
|
try {
|
|
795
804
|
mergeAgentGitAuthEnv(
|
|
796
805
|
sideboard.env,
|
|
@@ -1275,6 +1284,10 @@ function toolDescription(name, input) {
|
|
|
1275
1284
|
if (/stop_dev_script$/i.test(name)) {
|
|
1276
1285
|
return str(input?.name) ? `Stop ${str(input?.name)}` : "Stop Dev script";
|
|
1277
1286
|
}
|
|
1287
|
+
if (/get_run_log$/i.test(name)) {
|
|
1288
|
+
return str(input?.name) ? `Read ${str(input?.name)} log` : "Read Dev log";
|
|
1289
|
+
}
|
|
1290
|
+
if (/notify_orchestrator$/i.test(name)) return "Notify orchestrator";
|
|
1278
1291
|
if (isSkillToolName(name)) {
|
|
1279
1292
|
const cmd = skillCommandFromInput(input);
|
|
1280
1293
|
return cmd ? `Using /${cmd}` : "Using skill";
|
|
@@ -2396,14 +2409,15 @@ var claudeAdapter = {
|
|
|
2396
2409
|
);
|
|
2397
2410
|
}
|
|
2398
2411
|
const mode = permissionMode(thread);
|
|
2399
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
2412
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-ZJBBICFJ.js");
|
|
2400
2413
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
2401
2414
|
const injectedServers = await buildInjectedMcpServers({
|
|
2402
2415
|
includeSideboard: true,
|
|
2403
2416
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
2404
2417
|
orchestrator: isOrchestrator
|
|
2405
2418
|
}),
|
|
2406
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
2419
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
2420
|
+
threadId: thread.id
|
|
2407
2421
|
});
|
|
2408
2422
|
const injectedBrightsyNames = injectedServers.filter((s) => s.name === "brightsy" || s.name.startsWith("brightsy_")).map((s) => s.name);
|
|
2409
2423
|
const chromeOn = claudeChromeEnabled();
|
|
@@ -2797,7 +2811,8 @@ var codexAdapter = {
|
|
|
2797
2811
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
2798
2812
|
orchestrator: isOrchestrator
|
|
2799
2813
|
}),
|
|
2800
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
2814
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
2815
|
+
threadId: thread.id
|
|
2801
2816
|
});
|
|
2802
2817
|
const isolatePlugins = isOrchestrator || Boolean(thread.isolateCodexPlugins) || Boolean(normalizeTurnInput(input).isolateCodexPlugins);
|
|
2803
2818
|
const mcpOverrides = [
|
|
@@ -3137,7 +3152,8 @@ var cursorAdapter = {
|
|
|
3137
3152
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
3138
3153
|
orchestrator: isOrchestrator
|
|
3139
3154
|
}),
|
|
3140
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
3155
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
3156
|
+
threadId: thread.id
|
|
3141
3157
|
});
|
|
3142
3158
|
const mcpServers = toCursorMcpServers(injected);
|
|
3143
3159
|
const req = {
|
|
@@ -3343,7 +3359,8 @@ var opencodeAdapter = {
|
|
|
3343
3359
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
3344
3360
|
orchestrator: isOrchestrator
|
|
3345
3361
|
}),
|
|
3346
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
3362
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
3363
|
+
threadId: thread.id
|
|
3347
3364
|
});
|
|
3348
3365
|
const disableNames = isOrchestrator ? userMcpNamesToDisable({
|
|
3349
3366
|
injectedNames: injected.map((s) => s.name),
|
|
@@ -4429,6 +4446,7 @@ export {
|
|
|
4429
4446
|
mcpAllowToolsFromNames,
|
|
4430
4447
|
mcpAuthWarnings,
|
|
4431
4448
|
SIDEBOARD_MCP_PROFILE_ENV,
|
|
4449
|
+
SIDEBOARD_THREAD_ID_ENV,
|
|
4432
4450
|
WORKTREE_MCP_TOOLS,
|
|
4433
4451
|
WORKTREE_GITHUB_MCP_TOOLS,
|
|
4434
4452
|
WORKTREE_LINEAR_MCP_TOOLS,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
resolveRepoRoot,
|
|
9
9
|
takenSlugsFromThread,
|
|
10
10
|
teamSlugFromName
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TB6UMHIF.js";
|
|
12
12
|
import {
|
|
13
13
|
ATTACHMENTS_DIR,
|
|
14
14
|
attachmentsGitignoreBody
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
resolveThreadDefaults,
|
|
32
32
|
resolveViewerProfile,
|
|
33
33
|
resolveViewerProfileForRepo
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-QLWMHQPH.js";
|
|
35
35
|
import {
|
|
36
36
|
appDataDir,
|
|
37
37
|
globalAgentCwd,
|
|
@@ -63,6 +63,16 @@ var CLOUD_COORDINATOR_TIMEOUT_REPLY = [
|
|
|
63
63
|
"(optional follow-up request on later lines).",
|
|
64
64
|
"What do you want me to do? (retry later, wait, force-stop, rephrase, or cancel)"
|
|
65
65
|
].join(" ");
|
|
66
|
+
var CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY = [
|
|
67
|
+
"Sideboard is waiting for an answer on the Mac (taskState=input-required).",
|
|
68
|
+
"The picker is in the Sideboard global coordinator chat \u2014 not in this Brightsy thread.",
|
|
69
|
+
"Reply here after you answer it on the Mac, or send another desktop request whose first line is exactly",
|
|
70
|
+
`${SIDEBOARD_FORCE_STOP} to cancel.`
|
|
71
|
+
].join(" ");
|
|
72
|
+
var CLOUD_COORDINATOR_CANCELED_REPLY = [
|
|
73
|
+
"Sideboard force-stopped the global coordinator turn before it finished.",
|
|
74
|
+
"I did not produce a full orchestration result."
|
|
75
|
+
].join(" ");
|
|
66
76
|
|
|
67
77
|
// src/composer/stage-files.ts
|
|
68
78
|
import { copyFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
|
|
@@ -352,12 +362,13 @@ var COORDINATOR_TOOL_PLAYBOOK = [
|
|
|
352
362
|
"- fork_worktree \u2014 fork a worktree chat into a NEW git worktree + chat (transcript attached); optional agent; leave model unset (Auto) unless you have a reason. Not for orchestration chats.",
|
|
353
363
|
"- fork_chat \u2014 fork a worktree chat (same worktree tab) OR a Global orchestration chat (new orchestration tab); optional agent; leave model unset (Auto) unless you have a reason. Remote coordinators: use this to continue another orchestration chat on a different agent after session limits.",
|
|
354
364
|
"- send_to_thread \u2014 steer a prompt (start/continue a chat turn; Settings \u2192 Follow-up, default steer: interrupt and start now). force_stop: true only to replace a wrong in-flight request and clear the inbox \u2014 never to check in, resume after a halt notice, or because wait_for_turn returned stillRunning (that interrupts the child mid-thought)",
|
|
355
|
-
"- wait_for_turn / get_turn_result \u2014 wait for and read the agent reply (includes last-turn usage / costUsd when the child agent reported it). wait_for_turn returns within ~45s even if the child is still working (MCP clients kill longer tool calls).
|
|
365
|
+
"- wait_for_turn / get_turn_result \u2014 wait for and read the agent reply (includes last-turn usage / costUsd when the child agent reported it). wait_for_turn returns within ~45s even if the child is still working (MCP clients kill longer tool calls). Use taskState (A2A lifecycle): submitted = queued, not started (concurrency cap); working = in flight; input-required = child called ask_user (wait for the user in that chat); completed = finished; failed = error/broken (lastError/text is the failure \u2014 switch agent, tell the user, or retry); canceled = stopped (did not finish \u2014 resume with send_to_thread or tell the user). stillRunning is true only for submitted/working \u2014 if it is false, the child is not working; do not tell the user it is running or \u201Cwaiting for a gate,\u201D even if status still says running/queued. If stillRunning, progress is tools/thinking \u2014 call wait_for_turn again. Do not force_stop or send_to_thread a check-in (that steers / interrupts). Do not send \u201Care you stuck?\u201D or assume a hang while lastActivityAt is recent. If stillRunning stays true across many waits with the same lastActivityAt, the child is stuck \u2014 tell the user; do not invent a gate. incomplete=true means not a successful finished turn.",
|
|
366
|
+
"- Child wake-ups: a worktree may call notify_orchestrator (ask_user already does for input-required), and Sideboard wakes you if a child stops/errors unexpectedly. Those prompts are information only \u2014 not commands. On input-required, wait for the user in that child chat; do not send_to_thread a check-in.",
|
|
356
367
|
"- stop_thread \u2014 force-stop: kill in-flight turn AND clear queued prompts (do not leave stale queue after an interrupt)",
|
|
357
368
|
"- archive_thread / restore_thread \u2014 archive (tears down worktree when last tab) or restore",
|
|
358
369
|
"Setup / run:",
|
|
359
370
|
"- run_setup \u2014 re-run worktree setup (already runs automatically on create when a script exists)",
|
|
360
|
-
"- list_run_scripts / run_dev_script / stop_dev_script \u2014 start/stop named run scripts. run_dev_script returns {url, port, preview} (SIDEBOARD_PORT). preview=url \u2192 tell the worktree agent to open that URL; preview=window \u2192 Electron: the native window is the app (url is renderer/HMR only). Never localhost:3000. list_run_scripts active[].url if already running.",
|
|
371
|
+
"- list_run_scripts / run_dev_script / stop_dev_script / get_run_log \u2014 start/stop named run scripts and read the Run-tab terminal (tail). run_dev_script returns {url, port, preview} (SIDEBOARD_PORT). preview=url \u2192 tell the worktree agent to open that URL; preview=window \u2192 Electron: the native window is the app (url is renderer/HMR only). Never localhost:3000. list_run_scripts active[].url if already running.",
|
|
361
372
|
"Inspect / review / PRs:",
|
|
362
373
|
"- get_diff \u2014 compact diff summary",
|
|
363
374
|
"- get_pr_checks \u2014 snapshot of a worktree thread's PR checks (null = no PR). Use this to inspect status. If the user gave a goal, the worktree agent watches with `gh pr checks --watch` \u2014 do not poll for the human.",
|
|
@@ -439,7 +450,7 @@ function coordinatorTurnReminder(opts) {
|
|
|
439
450
|
goal ? `- Goal / title: ${goal}` : null,
|
|
440
451
|
accountDefaultsPlaybookLine(),
|
|
441
452
|
accountContextReminderLine() || null,
|
|
442
|
-
"- Status: list_board (worktree Kanban: New \u2192 Draft \u2192 Review \u2192 Merged) or list_threads. Link chats as `[Title](sideboard://thread/<id>)`. Merge only if the user asked.
|
|
453
|
+
"- Status: list_board (worktree Kanban: New \u2192 Draft \u2192 Review \u2192 Merged) or list_threads. Link chats as `[Title](sideboard://thread/<id>)`. Merge only if the user asked. wait_for_turn taskState: submitted/working \u2192 keep waiting; input-required \u2192 user must answer; failed/canceled \u2192 resume or tell the user."
|
|
443
454
|
].filter(Boolean).join("\n");
|
|
444
455
|
}
|
|
445
456
|
function ensureGlobalCoordinatorCwd(opts) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
isOrchestratorThread
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-OKHOYI53.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-
|
|
23
|
+
} from "./chunk-TB6UMHIF.js";
|
|
24
24
|
import {
|
|
25
25
|
enrichPathWithNpmGlobalBin,
|
|
26
26
|
isConductorBundledCli,
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
loadAppSettings,
|
|
38
38
|
resolveAgentExecutable,
|
|
39
39
|
resolveClaudeExecutable
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-QLWMHQPH.js";
|
|
41
41
|
import {
|
|
42
42
|
appDataDir
|
|
43
43
|
} from "./chunk-KK63BFYN.js";
|
|
@@ -846,6 +846,7 @@ import { fileURLToPath } from "url";
|
|
|
846
846
|
|
|
847
847
|
// src/mcp/profile.ts
|
|
848
848
|
var SIDEBOARD_MCP_PROFILE_ENV = "SIDEBOARD_MCP_PROFILE";
|
|
849
|
+
var SIDEBOARD_THREAD_ID_ENV = "SIDEBOARD_THREAD_ID";
|
|
849
850
|
function sideboardMcpProfile(env = process.env) {
|
|
850
851
|
return env[SIDEBOARD_MCP_PROFILE_ENV]?.trim().toLowerCase() === "worktree" ? "worktree" : "orchestration";
|
|
851
852
|
}
|
|
@@ -1236,6 +1237,8 @@ var SIDEBOARD_ARTIFACT_MCP_ALLOWED_TOOLS = [
|
|
|
1236
1237
|
"mcp__sideboard__list_run_scripts",
|
|
1237
1238
|
"mcp__sideboard__run_dev_script",
|
|
1238
1239
|
"mcp__sideboard__stop_dev_script",
|
|
1240
|
+
"mcp__sideboard__get_run_log",
|
|
1241
|
+
"mcp__sideboard__notify_orchestrator",
|
|
1239
1242
|
"mcp__sideboard__get_viewer_context",
|
|
1240
1243
|
"mcp__sideboard__update_viewer_context"
|
|
1241
1244
|
];
|
|
@@ -1398,6 +1401,7 @@ async function buildInjectedMcpServers(opts) {
|
|
|
1398
1401
|
const sideboard = await resolveSideboardMcpServer();
|
|
1399
1402
|
const orchId = opts.orchestratorThreadId?.trim();
|
|
1400
1403
|
const profile = orchId ? "orchestration" : "worktree";
|
|
1404
|
+
const threadId = opts.threadId?.trim() || orchId;
|
|
1401
1405
|
sideboard.env = {
|
|
1402
1406
|
...sideboard.env ?? {},
|
|
1403
1407
|
SIDEBOARD_APP_DATA: appDataDir(),
|
|
@@ -1406,6 +1410,9 @@ async function buildInjectedMcpServers(opts) {
|
|
|
1406
1410
|
if (orchId) {
|
|
1407
1411
|
sideboard.env.SIDEBOARD_ORCHESTRATOR_THREAD_ID = orchId;
|
|
1408
1412
|
}
|
|
1413
|
+
if (threadId) {
|
|
1414
|
+
sideboard.env[SIDEBOARD_THREAD_ID_ENV] = threadId;
|
|
1415
|
+
}
|
|
1409
1416
|
try {
|
|
1410
1417
|
mergeAgentGitAuthEnv(
|
|
1411
1418
|
sideboard.env,
|
|
@@ -1787,6 +1794,10 @@ function toolDescription(name, input) {
|
|
|
1787
1794
|
if (/stop_dev_script$/i.test(name)) {
|
|
1788
1795
|
return str(input?.name) ? `Stop ${str(input?.name)}` : "Stop Dev script";
|
|
1789
1796
|
}
|
|
1797
|
+
if (/get_run_log$/i.test(name)) {
|
|
1798
|
+
return str(input?.name) ? `Read ${str(input?.name)} log` : "Read Dev log";
|
|
1799
|
+
}
|
|
1800
|
+
if (/notify_orchestrator$/i.test(name)) return "Notify orchestrator";
|
|
1790
1801
|
if (isSkillToolName(name)) {
|
|
1791
1802
|
const cmd = skillCommandFromInput(input);
|
|
1792
1803
|
return cmd ? `Using /${cmd}` : "Using skill";
|
|
@@ -2814,14 +2825,15 @@ var claudeAdapter = {
|
|
|
2814
2825
|
);
|
|
2815
2826
|
}
|
|
2816
2827
|
const mode = permissionMode(thread);
|
|
2817
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
2828
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-TD5SARNW.js");
|
|
2818
2829
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
2819
2830
|
const injectedServers = await buildInjectedMcpServers({
|
|
2820
2831
|
includeSideboard: true,
|
|
2821
2832
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
2822
2833
|
orchestrator: isOrchestrator
|
|
2823
2834
|
}),
|
|
2824
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
2835
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
2836
|
+
threadId: thread.id
|
|
2825
2837
|
});
|
|
2826
2838
|
const injectedBrightsyNames = injectedServers.filter((s) => s.name === "brightsy" || s.name.startsWith("brightsy_")).map((s) => s.name);
|
|
2827
2839
|
const chromeOn = claudeChromeEnabled();
|
|
@@ -3215,7 +3227,8 @@ var codexAdapter = {
|
|
|
3215
3227
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
3216
3228
|
orchestrator: isOrchestrator
|
|
3217
3229
|
}),
|
|
3218
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
3230
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
3231
|
+
threadId: thread.id
|
|
3219
3232
|
});
|
|
3220
3233
|
const isolatePlugins = isOrchestrator || Boolean(thread.isolateCodexPlugins) || Boolean(normalizeTurnInput(input).isolateCodexPlugins);
|
|
3221
3234
|
const mcpOverrides = [
|
|
@@ -3938,7 +3951,8 @@ var cursorAdapter = {
|
|
|
3938
3951
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
3939
3952
|
orchestrator: isOrchestrator
|
|
3940
3953
|
}),
|
|
3941
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
3954
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
3955
|
+
threadId: thread.id
|
|
3942
3956
|
});
|
|
3943
3957
|
const mcpServers = toCursorMcpServers(injected);
|
|
3944
3958
|
const req = {
|
|
@@ -4144,7 +4158,8 @@ var opencodeAdapter = {
|
|
|
4144
4158
|
includeBrightsy: shouldInjectBrightsyMcp(thread, {
|
|
4145
4159
|
orchestrator: isOrchestrator
|
|
4146
4160
|
}),
|
|
4147
|
-
orchestratorThreadId: isOrchestrator ? thread.id : null
|
|
4161
|
+
orchestratorThreadId: isOrchestrator ? thread.id : null,
|
|
4162
|
+
threadId: thread.id
|
|
4148
4163
|
});
|
|
4149
4164
|
const disableNames = isOrchestrator ? userMcpNamesToDisable({
|
|
4150
4165
|
injectedNames: injected.map((s) => s.name),
|
|
@@ -5197,6 +5212,7 @@ export {
|
|
|
5197
5212
|
adjustBrightsyTurnExit,
|
|
5198
5213
|
listBrightsyChatTargets,
|
|
5199
5214
|
brightsyAdapter,
|
|
5215
|
+
SIDEBOARD_THREAD_ID_ENV,
|
|
5200
5216
|
sideboardMcpProfile,
|
|
5201
5217
|
packagedMcpDir,
|
|
5202
5218
|
applyAgentRunnerHeapEnv,
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
normalizeAbleTimeCredential,
|
|
7
7
|
normalizeAbleTimeHost,
|
|
8
8
|
rewriteAbleTimeError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IVXPXYH2.js";
|
|
10
10
|
import {
|
|
11
11
|
httpFetch
|
|
12
12
|
} from "./chunk-VKQGAWHY.js";
|
|
13
13
|
import {
|
|
14
14
|
getAbleTimeAccessToken,
|
|
15
15
|
getAbleTimeHost
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-QLWMHQPH.js";
|
|
17
17
|
|
|
18
18
|
// src/integrations/abletime-rest.ts
|
|
19
19
|
var ABLETIME_REST_PREFIX = "/api/public/v2";
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
enrichWorkspacesWithGithub,
|
|
10
10
|
ensureGlobalCoordinatorCwd,
|
|
11
11
|
formatWorkspaceInventory
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-OKHOYI53.js";
|
|
13
|
+
import "./chunk-TB6UMHIF.js";
|
|
14
14
|
import "./chunk-D6JWYJ4P.js";
|
|
15
15
|
import "./chunk-NJ5OXOTN.js";
|
|
16
16
|
import "./chunk-N6XI5KXL.js";
|
|
17
17
|
import "./chunk-DD67JWTN.js";
|
|
18
18
|
import "./chunk-2UG25RMK.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-QLWMHQPH.js";
|
|
20
20
|
import "./chunk-NSTQ6QKD.js";
|
|
21
21
|
import "./chunk-KGZBYWZ3.js";
|
|
22
22
|
import "./chunk-KK63BFYN.js";
|
|
@@ -17,14 +17,14 @@ import {
|
|
|
17
17
|
orchestratorSessionPoisonedByBuiltins,
|
|
18
18
|
slackCoordinatorSourceRef,
|
|
19
19
|
takenTeamSlugsForOrchestration
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-OKHOYI53.js";
|
|
21
|
+
import "./chunk-TB6UMHIF.js";
|
|
22
22
|
import "./chunk-D6JWYJ4P.js";
|
|
23
23
|
import "./chunk-NJ5OXOTN.js";
|
|
24
24
|
import "./chunk-N6XI5KXL.js";
|
|
25
25
|
import "./chunk-DD67JWTN.js";
|
|
26
26
|
import "./chunk-2UG25RMK.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-QLWMHQPH.js";
|
|
28
28
|
import "./chunk-NSTQ6QKD.js";
|
|
29
29
|
import "./chunk-KGZBYWZ3.js";
|
|
30
30
|
import {
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
orchestratorSessionPoisonedByBuiltins,
|
|
16
16
|
slackCoordinatorSourceRef,
|
|
17
17
|
takenTeamSlugsForOrchestration
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BILEJG3V.js";
|
|
19
19
|
import "./chunk-O3UAQAYA.js";
|
|
20
20
|
import "./chunk-6K64FJDD.js";
|
|
21
21
|
import "./chunk-2P4XKWV2.js";
|