@sideboard-ai/core 0.1.62 → 0.1.66
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-QLSFIQAO.js → agents-EWFD765A.js} +23 -7
- package/dist/{agents-KF3J3C53.js → agents-MD7SCFYX.js} +23 -7
- package/dist/{app-settings-LTSFG7QJ.js → app-settings-GJVZGU3M.js} +13 -3
- package/dist/{app-settings-HK4KAM4R.js → app-settings-ONKMFSEJ.js} +13 -3
- package/dist/{chunk-RIWUU7FO.js → chunk-5AG5BUQN.js} +61 -3
- package/dist/{chunk-27MAWNKY.js → chunk-AKPEXIKK.js} +2 -2
- package/dist/{chunk-2MCNURQV.js → chunk-BBEH2CJE.js} +264 -93
- package/dist/{chunk-DDN3UF4R.js → chunk-BPOTVI5J.js} +115 -3
- package/dist/{chunk-2FEA4LDA.js → chunk-DNPP7QMK.js} +31 -6
- package/dist/{chunk-MBAL5FE6.js → chunk-DZYMNW2A.js} +4 -4
- package/dist/{chunk-JB2H7E7V.js → chunk-EVD4KNKR.js} +1 -1
- package/dist/{chunk-A6FOKNOU.js → chunk-HTOTTJJX.js} +2 -2
- package/dist/{chunk-3KKNTHUC.js → chunk-I2KGRAXC.js} +1 -1
- package/dist/{chunk-ZF5YJCXO.js → chunk-IFAU2DEY.js} +269 -93
- package/dist/{chunk-NVU7EC2E.js → chunk-LRBRQFBU.js} +2 -2
- package/dist/{chunk-6CUJQKTJ.js → chunk-MHR4OGZ4.js} +115 -3
- package/dist/{chunk-46KMKHSD.js → chunk-PESJDZTB.js} +2 -2
- package/dist/{chunk-UGXSSBFJ.js → chunk-R7GUDEPY.js} +1 -1
- package/dist/{chunk-73AT5K4A.js → chunk-TXQ6K2GR.js} +61 -3
- package/dist/{chunk-DXTGDXO2.js → chunk-YTNLOJPK.js} +31 -6
- package/dist/{connected-teams-RSL4VB3X.js → connected-teams-CHXO5FFA.js} +2 -2
- package/dist/{connected-teams-MKIYKOYA.js → connected-teams-GJTESSTX.js} +2 -2
- package/dist/{coordinator-prompt-LKG3SHMI.js → coordinator-prompt-E5UGSJES.js} +4 -4
- package/dist/{coordinator-prompt-N2R6FGZK.js → coordinator-prompt-ILSULI7C.js} +4 -4
- package/dist/{global-workspace-LALWQWRJ.js → global-workspace-44UG64NA.js} +5 -6
- package/dist/{global-workspace-YOAUQCMA.js → global-workspace-5PM5LA6E.js} +5 -6
- package/dist/index.cjs +1308 -925
- package/dist/index.d.cts +92 -1
- package/dist/index.d.ts +92 -1
- package/dist/index.js +746 -715
- package/dist/mcp/run-stdio.cjs +1267 -976
- package/dist/mcp/run-stdio.js +691 -748
- package/dist/{run-HZTBWGQR.js → run-74S2NZWB.js} +1 -1
- package/dist/{run-GPSVV5OH.js → run-JLN5JK7Q.js} +1 -1
- package/dist/{workspaces-VCAIHVIE.js → workspaces-OVBCSS5Y.js} +6 -7
- package/dist/{workspaces-E75POJXP.js → workspaces-RXFXQRRF.js} +6 -7
- package/dist/{worktree-MV4WRW6G.js → worktree-K2JB53R5.js} +2 -2
- package/dist/{worktree-LZEGVQSN.js → worktree-S2N63FLV.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-GI7E5733.js +0 -30
- package/dist/chunk-S2LL5HA4.js +0 -33
|
@@ -48,16 +48,33 @@ var CLOUD_CONNECT_AGENTS = /* @__PURE__ */ new Set([
|
|
|
48
48
|
"opencode",
|
|
49
49
|
"cursor"
|
|
50
50
|
]);
|
|
51
|
+
function normalizeCliExecutable(raw) {
|
|
52
|
+
if (!raw || typeof raw !== "object") return {};
|
|
53
|
+
const source = raw;
|
|
54
|
+
const out = {};
|
|
55
|
+
if (typeof source.executablePath === "string") {
|
|
56
|
+
const path = source.executablePath.trim();
|
|
57
|
+
if (path) out.executablePath = path;
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
51
61
|
function normalizeBrightsy(raw) {
|
|
52
62
|
if (!raw || typeof raw !== "object") return {};
|
|
53
63
|
const source = raw;
|
|
54
64
|
const out = {};
|
|
65
|
+
if (typeof source.executablePath === "string") {
|
|
66
|
+
const path = source.executablePath.trim();
|
|
67
|
+
if (path) out.executablePath = path;
|
|
68
|
+
}
|
|
55
69
|
if (typeof source.cloudConnectEnabled === "boolean") {
|
|
56
70
|
out.cloudConnectEnabled = source.cloudConnectEnabled;
|
|
57
71
|
}
|
|
58
72
|
if (typeof source.cloudConnectAgent === "string" && CLOUD_CONNECT_AGENTS.has(source.cloudConnectAgent)) {
|
|
59
73
|
out.cloudConnectAgent = source.cloudConnectAgent;
|
|
60
74
|
}
|
|
75
|
+
if (typeof source.injectWorktreeMcp === "boolean") {
|
|
76
|
+
out.injectWorktreeMcp = source.injectWorktreeMcp;
|
|
77
|
+
}
|
|
61
78
|
return out;
|
|
62
79
|
}
|
|
63
80
|
var ISSUE_SOURCES = /* @__PURE__ */ new Set(["linear", "github"]);
|
|
@@ -144,6 +161,8 @@ function normalizeAdvanced(raw) {
|
|
|
144
161
|
function normalizeSettings(raw) {
|
|
145
162
|
const env = {};
|
|
146
163
|
let claude = {};
|
|
164
|
+
let codex = {};
|
|
165
|
+
let opencode = {};
|
|
147
166
|
let brightsy = {};
|
|
148
167
|
let integrations = {};
|
|
149
168
|
let defaults = {};
|
|
@@ -162,6 +181,12 @@ function normalizeSettings(raw) {
|
|
|
162
181
|
if ("claude" in raw) {
|
|
163
182
|
claude = normalizeClaude(raw.claude);
|
|
164
183
|
}
|
|
184
|
+
if ("codex" in raw) {
|
|
185
|
+
codex = normalizeCliExecutable(raw.codex);
|
|
186
|
+
}
|
|
187
|
+
if ("opencode" in raw) {
|
|
188
|
+
opencode = normalizeCliExecutable(raw.opencode);
|
|
189
|
+
}
|
|
165
190
|
if ("brightsy" in raw) {
|
|
166
191
|
brightsy = normalizeBrightsy(raw.brightsy);
|
|
167
192
|
}
|
|
@@ -177,11 +202,22 @@ function normalizeSettings(raw) {
|
|
|
177
202
|
advanced = normalizeAdvanced(raw.advanced);
|
|
178
203
|
}
|
|
179
204
|
}
|
|
180
|
-
return {
|
|
205
|
+
return {
|
|
206
|
+
environment: env,
|
|
207
|
+
claude,
|
|
208
|
+
codex,
|
|
209
|
+
opencode,
|
|
210
|
+
brightsy,
|
|
211
|
+
integrations,
|
|
212
|
+
defaults,
|
|
213
|
+
advanced
|
|
214
|
+
};
|
|
181
215
|
}
|
|
182
216
|
var EMPTY_SETTINGS = {
|
|
183
217
|
environment: {},
|
|
184
218
|
claude: {},
|
|
219
|
+
codex: {},
|
|
220
|
+
opencode: {},
|
|
185
221
|
brightsy: {},
|
|
186
222
|
integrations: {},
|
|
187
223
|
defaults: {},
|
|
@@ -238,6 +274,13 @@ function updateClaudeSettings(patch) {
|
|
|
238
274
|
function updateBrightsySettings(patch) {
|
|
239
275
|
const current = loadAppSettings();
|
|
240
276
|
const brightsy = { ...current.brightsy };
|
|
277
|
+
if ("executablePath" in patch) {
|
|
278
|
+
if (patch.executablePath == null || patch.executablePath.trim() === "") {
|
|
279
|
+
delete brightsy.executablePath;
|
|
280
|
+
} else {
|
|
281
|
+
brightsy.executablePath = patch.executablePath.trim();
|
|
282
|
+
}
|
|
283
|
+
}
|
|
241
284
|
if (typeof patch.cloudConnectEnabled === "boolean") {
|
|
242
285
|
brightsy.cloudConnectEnabled = patch.cloudConnectEnabled;
|
|
243
286
|
}
|
|
@@ -248,8 +291,35 @@ function updateBrightsySettings(patch) {
|
|
|
248
291
|
brightsy.cloudConnectAgent = patch.cloudConnectAgent;
|
|
249
292
|
}
|
|
250
293
|
}
|
|
294
|
+
if (typeof patch.injectWorktreeMcp === "boolean") {
|
|
295
|
+
brightsy.injectWorktreeMcp = patch.injectWorktreeMcp;
|
|
296
|
+
}
|
|
251
297
|
return saveAppSettings({ ...current, brightsy });
|
|
252
298
|
}
|
|
299
|
+
function updateCodexSettings(patch) {
|
|
300
|
+
const current = loadAppSettings();
|
|
301
|
+
const codex = { ...current.codex };
|
|
302
|
+
if ("executablePath" in patch) {
|
|
303
|
+
if (patch.executablePath == null || patch.executablePath.trim() === "") {
|
|
304
|
+
delete codex.executablePath;
|
|
305
|
+
} else {
|
|
306
|
+
codex.executablePath = patch.executablePath.trim();
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return saveAppSettings({ ...current, codex });
|
|
310
|
+
}
|
|
311
|
+
function updateOpencodeSettings(patch) {
|
|
312
|
+
const current = loadAppSettings();
|
|
313
|
+
const opencode = { ...current.opencode };
|
|
314
|
+
if ("executablePath" in patch) {
|
|
315
|
+
if (patch.executablePath == null || patch.executablePath.trim() === "") {
|
|
316
|
+
delete opencode.executablePath;
|
|
317
|
+
} else {
|
|
318
|
+
opencode.executablePath = patch.executablePath.trim();
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return saveAppSettings({ ...current, opencode });
|
|
322
|
+
}
|
|
253
323
|
function updateIntegrationsSettings(patch) {
|
|
254
324
|
const current = loadAppSettings();
|
|
255
325
|
const integrations = { ...current.integrations };
|
|
@@ -357,6 +427,9 @@ function getLinearApiKey(settings = loadAppSettings()) {
|
|
|
357
427
|
function brightsyCloudConnectEnabled(settings = loadAppSettings()) {
|
|
358
428
|
return Boolean(settings.brightsy.cloudConnectEnabled);
|
|
359
429
|
}
|
|
430
|
+
function brightsyInjectWorktreeMcpEnabled(settings = loadAppSettings()) {
|
|
431
|
+
return Boolean(settings.brightsy.injectWorktreeMcp);
|
|
432
|
+
}
|
|
360
433
|
function brightsyCloudConnectAgent(settings = loadAppSettings()) {
|
|
361
434
|
const fallback = settings.brightsy.cloudConnectAgent && CLOUD_CONNECT_AGENTS.has(settings.brightsy.cloudConnectAgent) ? settings.brightsy.cloudConnectAgent : "claude";
|
|
362
435
|
const preferred = getDefaultAgent(settings);
|
|
@@ -451,8 +524,42 @@ function maxConcurrentAgents(settings = loadAppSettings()) {
|
|
|
451
524
|
return 3;
|
|
452
525
|
}
|
|
453
526
|
function resolveClaudeExecutable(settings = loadAppSettings()) {
|
|
454
|
-
|
|
455
|
-
|
|
527
|
+
return resolveAgentExecutable("claude", settings);
|
|
528
|
+
}
|
|
529
|
+
var DEFAULT_CLI_BIN = {
|
|
530
|
+
claude: "claude",
|
|
531
|
+
codex: "codex",
|
|
532
|
+
opencode: "opencode",
|
|
533
|
+
brightsy: "brightsy"
|
|
534
|
+
};
|
|
535
|
+
function resolveAgentExecutable(agent, settings = loadAppSettings()) {
|
|
536
|
+
const fallback = DEFAULT_CLI_BIN[agent];
|
|
537
|
+
if (agent === "claude") {
|
|
538
|
+
const override2 = settings.claude.executablePath?.trim();
|
|
539
|
+
return override2 || fallback;
|
|
540
|
+
}
|
|
541
|
+
if (agent === "codex") {
|
|
542
|
+
const override2 = settings.codex.executablePath?.trim();
|
|
543
|
+
return override2 || fallback;
|
|
544
|
+
}
|
|
545
|
+
if (agent === "opencode") {
|
|
546
|
+
const override2 = settings.opencode.executablePath?.trim();
|
|
547
|
+
return override2 || fallback;
|
|
548
|
+
}
|
|
549
|
+
const override = settings.brightsy.executablePath?.trim();
|
|
550
|
+
return override || fallback;
|
|
551
|
+
}
|
|
552
|
+
function updateAgentExecutable(agent, executablePath) {
|
|
553
|
+
if (agent === "claude") {
|
|
554
|
+
return updateClaudeSettings({ executablePath });
|
|
555
|
+
}
|
|
556
|
+
if (agent === "codex") {
|
|
557
|
+
return updateCodexSettings({ executablePath });
|
|
558
|
+
}
|
|
559
|
+
if (agent === "opencode") {
|
|
560
|
+
return updateOpencodeSettings({ executablePath });
|
|
561
|
+
}
|
|
562
|
+
return updateBrightsySettings({ executablePath });
|
|
456
563
|
}
|
|
457
564
|
function claudeChromeEnabled(settings = loadAppSettings()) {
|
|
458
565
|
return Boolean(settings.claude.chromeEnabled);
|
|
@@ -490,6 +597,8 @@ export {
|
|
|
490
597
|
updateAppEnvironment,
|
|
491
598
|
updateClaudeSettings,
|
|
492
599
|
updateBrightsySettings,
|
|
600
|
+
updateCodexSettings,
|
|
601
|
+
updateOpencodeSettings,
|
|
493
602
|
updateIntegrationsSettings,
|
|
494
603
|
updateDefaultsSettings,
|
|
495
604
|
getDefaultAgent,
|
|
@@ -503,6 +612,7 @@ export {
|
|
|
503
612
|
resolveEffectiveIssueSource,
|
|
504
613
|
getLinearApiKey,
|
|
505
614
|
brightsyCloudConnectEnabled,
|
|
615
|
+
brightsyInjectWorktreeMcpEnabled,
|
|
506
616
|
brightsyCloudConnectAgent,
|
|
507
617
|
updateAdvancedSettings,
|
|
508
618
|
autoRenameBranchEnabled,
|
|
@@ -516,6 +626,8 @@ export {
|
|
|
516
626
|
orchestrationQuotaFallbackAgent,
|
|
517
627
|
maxConcurrentAgents,
|
|
518
628
|
resolveClaudeExecutable,
|
|
629
|
+
resolveAgentExecutable,
|
|
630
|
+
updateAgentExecutable,
|
|
519
631
|
claudeChromeEnabled,
|
|
520
632
|
applyAppEnvironment,
|
|
521
633
|
childEnvWithAppSettings,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isGlobalRepoPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YTNLOJPK.js";
|
|
4
4
|
import {
|
|
5
5
|
ensureGhPreferOrigin,
|
|
6
6
|
resolveRepoRoot
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-R7GUDEPY.js";
|
|
8
8
|
import {
|
|
9
9
|
appDataDir
|
|
10
10
|
} from "./chunk-M37RITA6.js";
|
|
@@ -2,29 +2,45 @@
|
|
|
2
2
|
import { execa } from "execa";
|
|
3
3
|
|
|
4
4
|
// src/agents/path.ts
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { execFileSync } from "child_process";
|
|
5
7
|
import { homedir } from "os";
|
|
6
|
-
import { delimiter } from "path";
|
|
8
|
+
import { delimiter, join } from "path";
|
|
7
9
|
var EXTRA_BIN_DIRS = [
|
|
8
10
|
".local/bin",
|
|
9
11
|
".cargo/bin",
|
|
10
12
|
".nvm/current/bin",
|
|
11
13
|
".asdf/shims",
|
|
14
|
+
".volta/bin",
|
|
15
|
+
".npm-global/bin",
|
|
16
|
+
// fnm default alias (common when shell init is skipped)
|
|
17
|
+
".local/share/fnm/aliases/default/bin",
|
|
12
18
|
// pnpm / npm global bins (where `@brightsy/cli` typically lands)
|
|
13
19
|
"Library/pnpm",
|
|
14
20
|
".pnpm"
|
|
15
21
|
];
|
|
22
|
+
function prependPathDir(env, dir) {
|
|
23
|
+
if (!dir || !existsSync(dir)) return;
|
|
24
|
+
const current = env.PATH ?? "";
|
|
25
|
+
const parts = current.split(delimiter).filter(Boolean);
|
|
26
|
+
if (parts.includes(dir)) {
|
|
27
|
+
env.PATH = current;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
env.PATH = [dir, ...parts].join(delimiter);
|
|
31
|
+
}
|
|
16
32
|
function ensureAgentPath(env = process.env) {
|
|
17
33
|
const home = env.HOME || env.USERPROFILE || homedir();
|
|
18
34
|
const current = env.PATH ?? "";
|
|
19
35
|
const parts = current.split(delimiter).filter(Boolean);
|
|
20
36
|
const seen = new Set(parts);
|
|
21
37
|
const extras = [
|
|
22
|
-
...EXTRA_BIN_DIRS.map((rel) =>
|
|
38
|
+
...EXTRA_BIN_DIRS.map((rel) => join(home, rel)),
|
|
23
39
|
"/opt/homebrew/bin",
|
|
24
40
|
"/usr/local/bin"
|
|
25
41
|
];
|
|
26
42
|
for (const dir of extras.reverse()) {
|
|
27
|
-
if (!dir || seen.has(dir)) continue;
|
|
43
|
+
if (!dir || seen.has(dir) || !existsSync(dir)) continue;
|
|
28
44
|
parts.unshift(dir);
|
|
29
45
|
seen.add(dir);
|
|
30
46
|
}
|
|
@@ -32,6 +48,44 @@ function ensureAgentPath(env = process.env) {
|
|
|
32
48
|
env.PATH = next;
|
|
33
49
|
return next;
|
|
34
50
|
}
|
|
51
|
+
function enrichPathWithNpmGlobalBin(env = process.env) {
|
|
52
|
+
ensureAgentPath(env);
|
|
53
|
+
try {
|
|
54
|
+
const prefix = execFileSync("npm", ["prefix", "-g"], {
|
|
55
|
+
encoding: "utf8",
|
|
56
|
+
env: { ...process.env, ...env },
|
|
57
|
+
timeout: 8e3,
|
|
58
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
59
|
+
}).trim().split(/\r?\n/).find(Boolean);
|
|
60
|
+
if (prefix) {
|
|
61
|
+
const binDir = process.platform === "win32" ? prefix : join(prefix, "bin");
|
|
62
|
+
prependPathDir(env, binDir);
|
|
63
|
+
}
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
return env.PATH ?? "";
|
|
67
|
+
}
|
|
68
|
+
function posixShellSingleQuote(value) {
|
|
69
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
70
|
+
}
|
|
71
|
+
function resolveCommandBinarySync(command, whichPath) {
|
|
72
|
+
const trimmed = command.trim();
|
|
73
|
+
if (!trimmed) return trimmed;
|
|
74
|
+
const match = /^(\S+)(\s[\s\S]*)?$/.exec(trimmed);
|
|
75
|
+
if (!match) return trimmed;
|
|
76
|
+
const bin = match[1];
|
|
77
|
+
const rest = match[2] ?? "";
|
|
78
|
+
if (bin.includes("/") || bin.includes("\\")) return trimmed;
|
|
79
|
+
const abs = whichPath?.trim().split(/\r?\n/).find(Boolean);
|
|
80
|
+
if (!abs) return trimmed;
|
|
81
|
+
return `${abs}${rest}`;
|
|
82
|
+
}
|
|
83
|
+
function withExportedPath(command, pathValue) {
|
|
84
|
+
const trimmed = command.trim();
|
|
85
|
+
if (!trimmed) return trimmed;
|
|
86
|
+
if (/^(export\s+PATH=|PATH=)/.test(trimmed)) return trimmed;
|
|
87
|
+
return `export PATH=${posixShellSingleQuote(pathValue)}; ${trimmed}`;
|
|
88
|
+
}
|
|
35
89
|
|
|
36
90
|
// src/git/run.ts
|
|
37
91
|
async function run(file, args, opts) {
|
|
@@ -97,6 +151,10 @@ async function resolveGhAuthToken(cwd) {
|
|
|
97
151
|
|
|
98
152
|
export {
|
|
99
153
|
ensureAgentPath,
|
|
154
|
+
enrichPathWithNpmGlobalBin,
|
|
155
|
+
posixShellSingleQuote,
|
|
156
|
+
resolveCommandBinarySync,
|
|
157
|
+
withExportedPath,
|
|
100
158
|
run,
|
|
101
159
|
git,
|
|
102
160
|
gh,
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertOrchestratorCapableAgent
|
|
3
|
-
} from "./chunk-GI7E5733.js";
|
|
4
1
|
import {
|
|
5
2
|
ensureGlobalCoordinatorCwd
|
|
6
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AKPEXIKK.js";
|
|
7
4
|
import {
|
|
8
5
|
resolveNewThreadOptions,
|
|
9
6
|
resolveThreadDefaults
|
|
10
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MHR4OGZ4.js";
|
|
11
8
|
import {
|
|
12
9
|
allocateTeamName,
|
|
13
10
|
takenSlugsFromThread,
|
|
14
11
|
teamSlugFromName
|
|
15
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-R7GUDEPY.js";
|
|
16
13
|
import {
|
|
17
14
|
createEmptyThread,
|
|
18
15
|
listThreads,
|
|
@@ -53,6 +50,30 @@ function parseForceStopMessage(message) {
|
|
|
53
50
|
return { forceStop, remainder: forceStop ? remainder : message };
|
|
54
51
|
}
|
|
55
52
|
|
|
53
|
+
// src/agents/orchestrator-capable.ts
|
|
54
|
+
var ORCHESTRATOR_AGENT_KINDS = [
|
|
55
|
+
"claude",
|
|
56
|
+
"codex",
|
|
57
|
+
"opencode",
|
|
58
|
+
"cursor"
|
|
59
|
+
];
|
|
60
|
+
function isOrchestratorCapableAgent(agent) {
|
|
61
|
+
return Boolean(
|
|
62
|
+
agent && ORCHESTRATOR_AGENT_KINDS.includes(agent)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
function assertOrchestratorCapableAgent(agent, context = "orchestration") {
|
|
66
|
+
if (!isOrchestratorCapableAgent(agent)) {
|
|
67
|
+
throw new Error(
|
|
68
|
+
`${agent} cannot run ${context} \u2014 it does not support Sideboard MCP. Use Claude, Cursor, Codex, or OpenCode.`
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
return agent;
|
|
72
|
+
}
|
|
73
|
+
function coerceOrchestratorAgent(agent, fallback = "claude") {
|
|
74
|
+
return isOrchestratorCapableAgent(agent) ? agent : fallback;
|
|
75
|
+
}
|
|
76
|
+
|
|
56
77
|
// src/store/global-workspace.ts
|
|
57
78
|
var GLOBAL_WORKSPACE_ID = "__global__";
|
|
58
79
|
function isGlobalThread(thread) {
|
|
@@ -213,6 +234,10 @@ export {
|
|
|
213
234
|
CLOUD_COORDINATOR_STOPPED_REPLY,
|
|
214
235
|
CLOUD_COORDINATOR_TIMEOUT_REPLY,
|
|
215
236
|
parseForceStopMessage,
|
|
237
|
+
ORCHESTRATOR_AGENT_KINDS,
|
|
238
|
+
isOrchestratorCapableAgent,
|
|
239
|
+
assertOrchestratorCapableAgent,
|
|
240
|
+
coerceOrchestratorAgent,
|
|
216
241
|
GLOBAL_WORKSPACE_ID,
|
|
217
242
|
isGlobalThread,
|
|
218
243
|
isGlobalRepoPath,
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
ensureConnectedBrightsyTeamTokens,
|
|
10
10
|
getConnectedBrightsyTeamsRaw,
|
|
11
11
|
listConnectedBrightsyTeams
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-EVD4KNKR.js";
|
|
13
|
+
import "./chunk-5AG5BUQN.js";
|
|
14
14
|
import "./chunk-7MV3RXSC.js";
|
|
15
15
|
export {
|
|
16
16
|
applyConnectedTeamToCli,
|
|
@@ -7,9 +7,9 @@ import {
|
|
|
7
7
|
ensureConnectedBrightsyTeamTokens,
|
|
8
8
|
getConnectedBrightsyTeamsRaw,
|
|
9
9
|
listConnectedBrightsyTeams
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DZYMNW2A.js";
|
|
11
11
|
import "./chunk-M37RITA6.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-TXQ6K2GR.js";
|
|
13
13
|
export {
|
|
14
14
|
applyConnectedTeamToCli,
|
|
15
15
|
brightsyMcpServerName,
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
enrichWorkspacesWithGithub,
|
|
9
9
|
ensureGlobalCoordinatorCwd,
|
|
10
10
|
formatWorkspaceInventory
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-LRBRQFBU.js";
|
|
12
|
+
import "./chunk-I2KGRAXC.js";
|
|
13
13
|
import "./chunk-B3SJXYIJ.js";
|
|
14
14
|
import "./chunk-7FD7COKE.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-5AG5BUQN.js";
|
|
16
|
+
import "./chunk-BPOTVI5J.js";
|
|
17
17
|
import "./chunk-KGZBYWZ3.js";
|
|
18
18
|
import "./chunk-7MV3RXSC.js";
|
|
19
19
|
export {
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
enrichWorkspacesWithGithub,
|
|
7
7
|
ensureGlobalCoordinatorCwd,
|
|
8
8
|
formatWorkspaceInventory
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-AKPEXIKK.js";
|
|
10
|
+
import "./chunk-MHR4OGZ4.js";
|
|
11
|
+
import "./chunk-R7GUDEPY.js";
|
|
12
12
|
import "./chunk-FKOIHGKV.js";
|
|
13
13
|
import "./chunk-FWJYLBO6.js";
|
|
14
14
|
import "./chunk-77WWLBCI.js";
|
|
15
15
|
import "./chunk-M37RITA6.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-TXQ6K2GR.js";
|
|
17
17
|
export {
|
|
18
18
|
COORDINATOR_TOOL_PLAYBOOK,
|
|
19
19
|
coordinatorGreenfieldPlaybook,
|
|
@@ -11,18 +11,17 @@ import {
|
|
|
11
11
|
orchestrationTitleNeedsSoccerNickname,
|
|
12
12
|
orchestratorSessionPoisonedByBuiltins,
|
|
13
13
|
takenTeamSlugsForOrchestration
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-UGXSSBFJ.js";
|
|
14
|
+
} from "./chunk-YTNLOJPK.js";
|
|
15
|
+
import "./chunk-AKPEXIKK.js";
|
|
16
|
+
import "./chunk-MHR4OGZ4.js";
|
|
17
|
+
import "./chunk-R7GUDEPY.js";
|
|
19
18
|
import "./chunk-FKOIHGKV.js";
|
|
20
19
|
import "./chunk-FWJYLBO6.js";
|
|
21
20
|
import "./chunk-77WWLBCI.js";
|
|
22
21
|
import {
|
|
23
22
|
globalAgentCwd
|
|
24
23
|
} from "./chunk-M37RITA6.js";
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-TXQ6K2GR.js";
|
|
26
25
|
export {
|
|
27
26
|
GLOBAL_WORKSPACE_ID,
|
|
28
27
|
createGlobalChat,
|
|
@@ -13,14 +13,13 @@ import {
|
|
|
13
13
|
orchestrationTitleNeedsSoccerNickname,
|
|
14
14
|
orchestratorSessionPoisonedByBuiltins,
|
|
15
15
|
takenTeamSlugsForOrchestration
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-3KKNTHUC.js";
|
|
16
|
+
} from "./chunk-DNPP7QMK.js";
|
|
17
|
+
import "./chunk-LRBRQFBU.js";
|
|
18
|
+
import "./chunk-I2KGRAXC.js";
|
|
20
19
|
import "./chunk-B3SJXYIJ.js";
|
|
21
20
|
import "./chunk-7FD7COKE.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-5AG5BUQN.js";
|
|
22
|
+
import "./chunk-BPOTVI5J.js";
|
|
24
23
|
import "./chunk-KGZBYWZ3.js";
|
|
25
24
|
import {
|
|
26
25
|
globalAgentCwd
|