@sideboard-ai/core 0.1.62 → 0.1.67
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-KF3J3C53.js → agents-OTBZVTZO.js} +27 -7
- package/dist/{agents-QLSFIQAO.js → agents-TS3EI2YI.js} +27 -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-UGXSSBFJ.js → chunk-4BUCGNZS.js} +1 -1
- package/dist/chunk-4UIYN56C.js +173 -0
- package/dist/{chunk-NVU7EC2E.js → chunk-57WWNMFP.js} +2 -2
- package/dist/{chunk-A6FOKNOU.js → chunk-5HTTCYWA.js} +2 -2
- package/dist/{chunk-DXTGDXO2.js → chunk-7ZOQY4A7.js} +31 -6
- package/dist/{chunk-ZF5YJCXO.js → chunk-B4PRRKMA.js} +284 -93
- package/dist/{chunk-DDN3UF4R.js → chunk-BPOTVI5J.js} +115 -3
- package/dist/{chunk-MBAL5FE6.js → chunk-DB3I75FI.js} +4 -4
- package/dist/chunk-FGDJOJ2L.js +176 -0
- package/dist/{chunk-2FEA4LDA.js → chunk-JWZNK3CQ.js} +31 -6
- package/dist/{chunk-2MCNURQV.js → chunk-K7LM4CLD.js} +279 -93
- package/dist/{chunk-3KKNTHUC.js → chunk-LW5CMQGZ.js} +1 -1
- package/dist/{chunk-JB2H7E7V.js → chunk-M5V4QIWF.js} +1 -1
- package/dist/{chunk-6CUJQKTJ.js → chunk-MHR4OGZ4.js} +115 -3
- package/dist/{chunk-46KMKHSD.js → chunk-WAFIF22N.js} +2 -2
- package/dist/{chunk-27MAWNKY.js → chunk-ZRFAZVGL.js} +2 -2
- package/dist/{connected-teams-MKIYKOYA.js → connected-teams-OMDHTL6A.js} +2 -2
- package/dist/{connected-teams-RSL4VB3X.js → connected-teams-RUNMOCG5.js} +2 -2
- package/dist/{coordinator-prompt-N2R6FGZK.js → coordinator-prompt-3BSMKZL4.js} +4 -4
- package/dist/{coordinator-prompt-LKG3SHMI.js → coordinator-prompt-6HMTOX4G.js} +4 -4
- package/dist/{global-workspace-LALWQWRJ.js → global-workspace-QS7A23CB.js} +5 -6
- package/dist/{global-workspace-YOAUQCMA.js → global-workspace-YZ2NJVLL.js} +5 -6
- package/dist/index.cjs +1345 -933
- package/dist/index.d.cts +96 -1
- package/dist/index.d.ts +96 -1
- package/dist/index.js +750 -715
- package/dist/mcp/run-stdio.cjs +1293 -977
- package/dist/mcp/run-stdio.js +691 -748
- package/dist/{run-GPSVV5OH.js → run-JLD2Y52J.js} +1 -1
- package/dist/{run-HZTBWGQR.js → run-Y2MI3EVV.js} +1 -1
- package/dist/{workspaces-E75POJXP.js → workspaces-AIUYUXB7.js} +6 -7
- package/dist/{workspaces-VCAIHVIE.js → workspaces-EBFW7I7S.js} +6 -7
- package/dist/{worktree-MV4WRW6G.js → worktree-7NBPIVFZ.js} +2 -2
- package/dist/{worktree-LZEGVQSN.js → worktree-WMDJW2BL.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-73AT5K4A.js +0 -104
- package/dist/chunk-GI7E5733.js +0 -30
- package/dist/chunk-RIWUU7FO.js +0 -107
- package/dist/chunk-S2LL5HA4.js +0 -33
|
@@ -28,20 +28,32 @@ import {
|
|
|
28
28
|
parseCursorRunnerLine,
|
|
29
29
|
parseSessionQuotaResetAt,
|
|
30
30
|
permissionMode,
|
|
31
|
+
prepareTerminalCommand,
|
|
31
32
|
resolveCursorModelId,
|
|
33
|
+
resolveLoginCommand,
|
|
32
34
|
resolveQuotaFallbackAgent
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
+
} from "./chunk-K7LM4CLD.js";
|
|
36
|
+
import "./chunk-M5V4QIWF.js";
|
|
35
37
|
import {
|
|
36
38
|
ORCHESTRATOR_AGENT_KINDS,
|
|
37
39
|
assertOrchestratorCapableAgent,
|
|
38
40
|
coerceOrchestratorAgent,
|
|
39
41
|
isOrchestratorCapableAgent
|
|
40
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-JWZNK3CQ.js";
|
|
43
|
+
import "./chunk-57WWNMFP.js";
|
|
44
|
+
import "./chunk-LW5CMQGZ.js";
|
|
45
|
+
import "./chunk-B3SJXYIJ.js";
|
|
46
|
+
import "./chunk-7FD7COKE.js";
|
|
41
47
|
import {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
conductorBundledBinDir,
|
|
49
|
+
enrichPathWithNpmGlobalBin,
|
|
50
|
+
ensureAgentPath,
|
|
51
|
+
isConductorBundledCli,
|
|
52
|
+
posixShellSingleQuote,
|
|
53
|
+
resolveCommandBinarySync,
|
|
54
|
+
withExportedPath
|
|
55
|
+
} from "./chunk-FGDJOJ2L.js";
|
|
56
|
+
import "./chunk-BPOTVI5J.js";
|
|
45
57
|
import "./chunk-KGZBYWZ3.js";
|
|
46
58
|
import "./chunk-7MV3RXSC.js";
|
|
47
59
|
export {
|
|
@@ -54,14 +66,17 @@ export {
|
|
|
54
66
|
claudeAdapter,
|
|
55
67
|
codexAdapter,
|
|
56
68
|
coerceOrchestratorAgent,
|
|
69
|
+
conductorBundledBinDir,
|
|
57
70
|
cursorAdapter,
|
|
58
71
|
cursorSdkMessageToEvents,
|
|
59
72
|
decodeBrightsyTarget,
|
|
60
73
|
encodeBrightsyTarget,
|
|
74
|
+
enrichPathWithNpmGlobalBin,
|
|
61
75
|
ensureAgentPath,
|
|
62
76
|
getAdapter,
|
|
63
77
|
getAgentSetupInfo,
|
|
64
78
|
installAgent,
|
|
79
|
+
isConductorBundledCli,
|
|
65
80
|
isCursorAutoModel,
|
|
66
81
|
isOrchestratorCapableAgent,
|
|
67
82
|
isSessionQuotaLimit,
|
|
@@ -77,6 +92,11 @@ export {
|
|
|
77
92
|
parseCursorRunnerLine,
|
|
78
93
|
parseSessionQuotaResetAt,
|
|
79
94
|
permissionMode,
|
|
95
|
+
posixShellSingleQuote,
|
|
96
|
+
prepareTerminalCommand,
|
|
97
|
+
resolveCommandBinarySync,
|
|
80
98
|
resolveCursorModelId,
|
|
81
|
-
|
|
99
|
+
resolveLoginCommand,
|
|
100
|
+
resolveQuotaFallbackAgent,
|
|
101
|
+
withExportedPath
|
|
82
102
|
};
|
|
@@ -24,26 +24,38 @@ import {
|
|
|
24
24
|
opencodeAdapter,
|
|
25
25
|
parseSessionQuotaResetAt,
|
|
26
26
|
permissionMode,
|
|
27
|
+
prepareTerminalCommand,
|
|
27
28
|
resolveCursorModelId,
|
|
29
|
+
resolveLoginCommand,
|
|
28
30
|
resolveQuotaFallbackAgent
|
|
29
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-B4PRRKMA.js";
|
|
30
32
|
import {
|
|
31
33
|
ORCHESTRATOR_AGENT_KINDS,
|
|
32
34
|
assertOrchestratorCapableAgent,
|
|
33
35
|
coerceOrchestratorAgent,
|
|
34
36
|
isOrchestratorCapableAgent
|
|
35
|
-
} from "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-7ZOQY4A7.js";
|
|
38
|
+
import "./chunk-DB3I75FI.js";
|
|
37
39
|
import {
|
|
38
40
|
cursorSdkMessageToEvents,
|
|
39
41
|
parseCursorRunnerLine
|
|
40
42
|
} from "./chunk-3WJAUKIL.js";
|
|
41
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-ZRFAZVGL.js";
|
|
44
|
+
import "./chunk-MHR4OGZ4.js";
|
|
45
|
+
import "./chunk-4BUCGNZS.js";
|
|
46
|
+
import "./chunk-FKOIHGKV.js";
|
|
47
|
+
import "./chunk-FWJYLBO6.js";
|
|
42
48
|
import "./chunk-77WWLBCI.js";
|
|
43
49
|
import "./chunk-M37RITA6.js";
|
|
44
50
|
import {
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
conductorBundledBinDir,
|
|
52
|
+
enrichPathWithNpmGlobalBin,
|
|
53
|
+
ensureAgentPath,
|
|
54
|
+
isConductorBundledCli,
|
|
55
|
+
posixShellSingleQuote,
|
|
56
|
+
resolveCommandBinarySync,
|
|
57
|
+
withExportedPath
|
|
58
|
+
} from "./chunk-4UIYN56C.js";
|
|
47
59
|
export {
|
|
48
60
|
CLAUDE_MODEL_CATALOG,
|
|
49
61
|
ORCHESTRATOR_AGENT_KINDS,
|
|
@@ -54,14 +66,17 @@ export {
|
|
|
54
66
|
claudeAdapter,
|
|
55
67
|
codexAdapter,
|
|
56
68
|
coerceOrchestratorAgent,
|
|
69
|
+
conductorBundledBinDir,
|
|
57
70
|
cursorAdapter,
|
|
58
71
|
cursorSdkMessageToEvents,
|
|
59
72
|
decodeBrightsyTarget,
|
|
60
73
|
encodeBrightsyTarget,
|
|
74
|
+
enrichPathWithNpmGlobalBin,
|
|
61
75
|
ensureAgentPath,
|
|
62
76
|
getAdapter,
|
|
63
77
|
getAgentSetupInfo,
|
|
64
78
|
installAgent,
|
|
79
|
+
isConductorBundledCli,
|
|
65
80
|
isCursorAutoModel,
|
|
66
81
|
isOrchestratorCapableAgent,
|
|
67
82
|
isSessionQuotaLimit,
|
|
@@ -77,6 +92,11 @@ export {
|
|
|
77
92
|
parseCursorRunnerLine,
|
|
78
93
|
parseSessionQuotaResetAt,
|
|
79
94
|
permissionMode,
|
|
95
|
+
posixShellSingleQuote,
|
|
96
|
+
prepareTerminalCommand,
|
|
97
|
+
resolveCommandBinarySync,
|
|
80
98
|
resolveCursorModelId,
|
|
81
|
-
|
|
99
|
+
resolveLoginCommand,
|
|
100
|
+
resolveQuotaFallbackAgent,
|
|
101
|
+
withExportedPath
|
|
82
102
|
};
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
autoRunAfterSetupEnabled,
|
|
11
11
|
brightsyCloudConnectAgent,
|
|
12
12
|
brightsyCloudConnectEnabled,
|
|
13
|
+
brightsyInjectWorktreeMcpEnabled,
|
|
13
14
|
caffeinateWhileCloudConnectEnabled,
|
|
14
15
|
caffeinateWhileRunningEnabled,
|
|
15
16
|
childEnvWithAppSettings,
|
|
@@ -28,18 +29,22 @@ import {
|
|
|
28
29
|
maxConcurrentAgents,
|
|
29
30
|
orchestrationQuotaFallbackAgent,
|
|
30
31
|
orchestrationQuotaOnLimit,
|
|
32
|
+
resolveAgentExecutable,
|
|
31
33
|
resolveClaudeExecutable,
|
|
32
34
|
resolveEffectiveIssueSource,
|
|
33
35
|
resolveNewThreadOptions,
|
|
34
36
|
resolveThreadDefaults,
|
|
35
37
|
saveAppSettings,
|
|
36
38
|
updateAdvancedSettings,
|
|
39
|
+
updateAgentExecutable,
|
|
37
40
|
updateAppEnvironment,
|
|
38
41
|
updateBrightsySettings,
|
|
39
42
|
updateClaudeSettings,
|
|
43
|
+
updateCodexSettings,
|
|
40
44
|
updateDefaultsSettings,
|
|
41
|
-
updateIntegrationsSettings
|
|
42
|
-
|
|
45
|
+
updateIntegrationsSettings,
|
|
46
|
+
updateOpencodeSettings
|
|
47
|
+
} from "./chunk-BPOTVI5J.js";
|
|
43
48
|
import "./chunk-KGZBYWZ3.js";
|
|
44
49
|
import "./chunk-7MV3RXSC.js";
|
|
45
50
|
export {
|
|
@@ -52,6 +57,7 @@ export {
|
|
|
52
57
|
autoRunAfterSetupEnabled,
|
|
53
58
|
brightsyCloudConnectAgent,
|
|
54
59
|
brightsyCloudConnectEnabled,
|
|
60
|
+
brightsyInjectWorktreeMcpEnabled,
|
|
55
61
|
caffeinateWhileCloudConnectEnabled,
|
|
56
62
|
caffeinateWhileRunningEnabled,
|
|
57
63
|
childEnvWithAppSettings,
|
|
@@ -70,15 +76,19 @@ export {
|
|
|
70
76
|
maxConcurrentAgents,
|
|
71
77
|
orchestrationQuotaFallbackAgent,
|
|
72
78
|
orchestrationQuotaOnLimit,
|
|
79
|
+
resolveAgentExecutable,
|
|
73
80
|
resolveClaudeExecutable,
|
|
74
81
|
resolveEffectiveIssueSource,
|
|
75
82
|
resolveNewThreadOptions,
|
|
76
83
|
resolveThreadDefaults,
|
|
77
84
|
saveAppSettings,
|
|
78
85
|
updateAdvancedSettings,
|
|
86
|
+
updateAgentExecutable,
|
|
79
87
|
updateAppEnvironment,
|
|
80
88
|
updateBrightsySettings,
|
|
81
89
|
updateClaudeSettings,
|
|
90
|
+
updateCodexSettings,
|
|
82
91
|
updateDefaultsSettings,
|
|
83
|
-
updateIntegrationsSettings
|
|
92
|
+
updateIntegrationsSettings,
|
|
93
|
+
updateOpencodeSettings
|
|
84
94
|
};
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
autoRunAfterSetupEnabled,
|
|
9
9
|
brightsyCloudConnectAgent,
|
|
10
10
|
brightsyCloudConnectEnabled,
|
|
11
|
+
brightsyInjectWorktreeMcpEnabled,
|
|
11
12
|
caffeinateWhileCloudConnectEnabled,
|
|
12
13
|
caffeinateWhileRunningEnabled,
|
|
13
14
|
childEnvWithAppSettings,
|
|
@@ -26,18 +27,22 @@ import {
|
|
|
26
27
|
maxConcurrentAgents,
|
|
27
28
|
orchestrationQuotaFallbackAgent,
|
|
28
29
|
orchestrationQuotaOnLimit,
|
|
30
|
+
resolveAgentExecutable,
|
|
29
31
|
resolveClaudeExecutable,
|
|
30
32
|
resolveEffectiveIssueSource,
|
|
31
33
|
resolveNewThreadOptions,
|
|
32
34
|
resolveThreadDefaults,
|
|
33
35
|
saveAppSettings,
|
|
34
36
|
updateAdvancedSettings,
|
|
37
|
+
updateAgentExecutable,
|
|
35
38
|
updateAppEnvironment,
|
|
36
39
|
updateBrightsySettings,
|
|
37
40
|
updateClaudeSettings,
|
|
41
|
+
updateCodexSettings,
|
|
38
42
|
updateDefaultsSettings,
|
|
39
|
-
updateIntegrationsSettings
|
|
40
|
-
|
|
43
|
+
updateIntegrationsSettings,
|
|
44
|
+
updateOpencodeSettings
|
|
45
|
+
} from "./chunk-MHR4OGZ4.js";
|
|
41
46
|
import "./chunk-77WWLBCI.js";
|
|
42
47
|
import "./chunk-M37RITA6.js";
|
|
43
48
|
export {
|
|
@@ -50,6 +55,7 @@ export {
|
|
|
50
55
|
autoRunAfterSetupEnabled,
|
|
51
56
|
brightsyCloudConnectAgent,
|
|
52
57
|
brightsyCloudConnectEnabled,
|
|
58
|
+
brightsyInjectWorktreeMcpEnabled,
|
|
53
59
|
caffeinateWhileCloudConnectEnabled,
|
|
54
60
|
caffeinateWhileRunningEnabled,
|
|
55
61
|
childEnvWithAppSettings,
|
|
@@ -68,15 +74,19 @@ export {
|
|
|
68
74
|
maxConcurrentAgents,
|
|
69
75
|
orchestrationQuotaFallbackAgent,
|
|
70
76
|
orchestrationQuotaOnLimit,
|
|
77
|
+
resolveAgentExecutable,
|
|
71
78
|
resolveClaudeExecutable,
|
|
72
79
|
resolveEffectiveIssueSource,
|
|
73
80
|
resolveNewThreadOptions,
|
|
74
81
|
resolveThreadDefaults,
|
|
75
82
|
saveAppSettings,
|
|
76
83
|
updateAdvancedSettings,
|
|
84
|
+
updateAgentExecutable,
|
|
77
85
|
updateAppEnvironment,
|
|
78
86
|
updateBrightsySettings,
|
|
79
87
|
updateClaudeSettings,
|
|
88
|
+
updateCodexSettings,
|
|
80
89
|
updateDefaultsSettings,
|
|
81
|
-
updateIntegrationsSettings
|
|
90
|
+
updateIntegrationsSettings,
|
|
91
|
+
updateOpencodeSettings
|
|
82
92
|
};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// src/git/run.ts
|
|
2
|
+
import { execa } from "execa";
|
|
3
|
+
|
|
4
|
+
// src/agents/path.ts
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { execFileSync } from "child_process";
|
|
7
|
+
import { homedir } from "os";
|
|
8
|
+
import { delimiter, join } from "path";
|
|
9
|
+
var EXTRA_BIN_DIRS = [
|
|
10
|
+
".local/bin",
|
|
11
|
+
".cargo/bin",
|
|
12
|
+
".nvm/current/bin",
|
|
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",
|
|
18
|
+
// pnpm / npm global bins (where `@brightsy/cli` typically lands)
|
|
19
|
+
"Library/pnpm",
|
|
20
|
+
".pnpm"
|
|
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
|
+
}
|
|
32
|
+
function conductorBundledBinDir(home = process.env.HOME || process.env.USERPROFILE || homedir()) {
|
|
33
|
+
return join(home, "Library", "Application Support", "com.conductor.app", "bin");
|
|
34
|
+
}
|
|
35
|
+
function isConductorBundledCli(filePath) {
|
|
36
|
+
const p = (filePath ?? "").replace(/\\/g, "/");
|
|
37
|
+
return p.includes("/com.conductor.app/bin/") || p.endsWith("/com.conductor.app/bin");
|
|
38
|
+
}
|
|
39
|
+
function ensureAgentPath(env = process.env) {
|
|
40
|
+
const home = env.HOME || env.USERPROFILE || homedir();
|
|
41
|
+
const current = env.PATH ?? "";
|
|
42
|
+
const parts = current.split(delimiter).filter(Boolean);
|
|
43
|
+
const seen = new Set(parts);
|
|
44
|
+
const extras = [
|
|
45
|
+
...EXTRA_BIN_DIRS.map((rel) => join(home, rel)),
|
|
46
|
+
"/opt/homebrew/bin",
|
|
47
|
+
"/usr/local/bin",
|
|
48
|
+
// Keep after Homebrew/npm so a user-installed CLI still wins.
|
|
49
|
+
conductorBundledBinDir(home)
|
|
50
|
+
];
|
|
51
|
+
for (const dir of extras.reverse()) {
|
|
52
|
+
if (!dir || seen.has(dir) || !existsSync(dir)) continue;
|
|
53
|
+
parts.unshift(dir);
|
|
54
|
+
seen.add(dir);
|
|
55
|
+
}
|
|
56
|
+
const next = parts.join(delimiter);
|
|
57
|
+
env.PATH = next;
|
|
58
|
+
return next;
|
|
59
|
+
}
|
|
60
|
+
function enrichPathWithNpmGlobalBin(env = process.env) {
|
|
61
|
+
ensureAgentPath(env);
|
|
62
|
+
try {
|
|
63
|
+
const prefix = execFileSync("npm", ["prefix", "-g"], {
|
|
64
|
+
encoding: "utf8",
|
|
65
|
+
env: { ...process.env, ...env },
|
|
66
|
+
timeout: 8e3,
|
|
67
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
68
|
+
}).trim().split(/\r?\n/).find(Boolean);
|
|
69
|
+
if (prefix) {
|
|
70
|
+
const binDir = process.platform === "win32" ? prefix : join(prefix, "bin");
|
|
71
|
+
prependPathDir(env, binDir);
|
|
72
|
+
}
|
|
73
|
+
} catch {
|
|
74
|
+
}
|
|
75
|
+
return env.PATH ?? "";
|
|
76
|
+
}
|
|
77
|
+
function posixShellSingleQuote(value) {
|
|
78
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
79
|
+
}
|
|
80
|
+
function resolveCommandBinarySync(command, whichPath) {
|
|
81
|
+
const trimmed = command.trim();
|
|
82
|
+
if (!trimmed) return trimmed;
|
|
83
|
+
const match = /^(\S+)(\s[\s\S]*)?$/.exec(trimmed);
|
|
84
|
+
if (!match) return trimmed;
|
|
85
|
+
const bin = match[1];
|
|
86
|
+
const rest = match[2] ?? "";
|
|
87
|
+
if (bin.includes("/") || bin.includes("\\")) return trimmed;
|
|
88
|
+
const abs = whichPath?.trim().split(/\r?\n/).find(Boolean);
|
|
89
|
+
if (!abs) return trimmed;
|
|
90
|
+
return `${abs}${rest}`;
|
|
91
|
+
}
|
|
92
|
+
function withExportedPath(command, pathValue) {
|
|
93
|
+
const trimmed = command.trim();
|
|
94
|
+
if (!trimmed) return trimmed;
|
|
95
|
+
if (/^(export\s+PATH=|PATH=)/.test(trimmed)) return trimmed;
|
|
96
|
+
return `export PATH=${posixShellSingleQuote(pathValue)} && ${trimmed}`;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// src/git/run.ts
|
|
100
|
+
async function run(file, args, opts) {
|
|
101
|
+
ensureAgentPath();
|
|
102
|
+
try {
|
|
103
|
+
const result = await execa(file, args, {
|
|
104
|
+
cwd: opts?.cwd,
|
|
105
|
+
env: { ...process.env, ...opts?.env },
|
|
106
|
+
reject: opts?.reject ?? true,
|
|
107
|
+
...opts?.timeoutMs != null ? { timeout: opts.timeoutMs } : {}
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
stdout: result.stdout ?? "",
|
|
111
|
+
stderr: result.stderr ?? "",
|
|
112
|
+
exitCode: result.exitCode ?? 0
|
|
113
|
+
};
|
|
114
|
+
} catch (err) {
|
|
115
|
+
const e = err;
|
|
116
|
+
if (opts?.reject === false) {
|
|
117
|
+
return {
|
|
118
|
+
stdout: String(e.stdout ?? ""),
|
|
119
|
+
stderr: String(e.stderr ?? ""),
|
|
120
|
+
exitCode: e.exitCode ?? 1
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
throw err;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async function git(args, cwd, opts) {
|
|
127
|
+
const prefix = [];
|
|
128
|
+
if (opts?.config) {
|
|
129
|
+
for (const [key, value] of Object.entries(opts.config)) {
|
|
130
|
+
if (!key) continue;
|
|
131
|
+
prefix.push("-c", `${key}=${value}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return run("git", [...prefix, ...args], {
|
|
135
|
+
cwd,
|
|
136
|
+
reject: opts?.reject,
|
|
137
|
+
timeoutMs: opts?.timeoutMs,
|
|
138
|
+
// Never block forever on a credential/SSH prompt inside MCP / Electron.
|
|
139
|
+
env: {
|
|
140
|
+
GIT_TERMINAL_PROMPT: "0",
|
|
141
|
+
GIT_ASKPASS: process.env.GIT_ASKPASS || "echo",
|
|
142
|
+
GIT_SSH_COMMAND: process.env.GIT_SSH_COMMAND || "ssh -o BatchMode=yes -o ConnectTimeout=15",
|
|
143
|
+
...opts?.env
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
async function gh(args, cwd, opts) {
|
|
148
|
+
return run("gh", args, {
|
|
149
|
+
cwd,
|
|
150
|
+
reject: opts?.reject,
|
|
151
|
+
timeoutMs: opts?.timeoutMs
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
async function resolveGhAuthToken(cwd) {
|
|
155
|
+
const result = await gh(["auth", "token"], cwd, { reject: false });
|
|
156
|
+
if (result.exitCode !== 0) return null;
|
|
157
|
+
const token = result.stdout.trim();
|
|
158
|
+
return token || null;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export {
|
|
162
|
+
conductorBundledBinDir,
|
|
163
|
+
isConductorBundledCli,
|
|
164
|
+
ensureAgentPath,
|
|
165
|
+
enrichPathWithNpmGlobalBin,
|
|
166
|
+
posixShellSingleQuote,
|
|
167
|
+
resolveCommandBinarySync,
|
|
168
|
+
withExportedPath,
|
|
169
|
+
run,
|
|
170
|
+
git,
|
|
171
|
+
gh,
|
|
172
|
+
resolveGhAuthToken
|
|
173
|
+
};
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
isGlobalRepoPath
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JWZNK3CQ.js";
|
|
6
6
|
import {
|
|
7
7
|
ensureGhPreferOrigin,
|
|
8
8
|
resolveRepoRoot
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LW5CMQGZ.js";
|
|
10
10
|
import {
|
|
11
11
|
appDataDir
|
|
12
12
|
} from "./chunk-7MV3RXSC.js";
|
|
@@ -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-ZRFAZVGL.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-4BUCGNZS.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,
|