@sideboard-ai/core 0.1.92 → 0.1.95
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-JXQ5QHDU.js → agents-HBLA6FEV.js} +1 -1
- package/dist/{agents-TUV4NH7S.js → agents-WS5QV6LE.js} +1 -1
- package/dist/{chunk-35LKGGOC.js → chunk-KWNUZ4LR.js} +1 -0
- package/dist/{chunk-GJ2HJQIU.js → chunk-WBX46OPD.js} +1 -0
- package/dist/index.cjs +80 -18
- package/dist/index.d.cts +15 -2
- package/dist/index.d.ts +15 -2
- package/dist/index.js +80 -19
- package/dist/mcp/run-stdio.cjs +1 -0
- package/dist/mcp/run-stdio.js +2 -2
- package/package.json +1 -1
|
@@ -766,6 +766,7 @@ function toCursorMcpServers(servers) {
|
|
|
766
766
|
const env = mcpSpawnEnv(s.env);
|
|
767
767
|
const launch = cursorSafeMcpLaunch(s.command, s.args);
|
|
768
768
|
out[s.name] = {
|
|
769
|
+
type: "stdio",
|
|
769
770
|
command: launch.command,
|
|
770
771
|
...launch.args && launch.args.length > 0 ? { args: launch.args } : {},
|
|
771
772
|
...env ? { env } : {}
|
|
@@ -958,6 +958,7 @@ function toCursorMcpServers(servers) {
|
|
|
958
958
|
const env = mcpSpawnEnv(s.env);
|
|
959
959
|
const launch = cursorSafeMcpLaunch(s.command, s.args);
|
|
960
960
|
out[s.name] = {
|
|
961
|
+
type: "stdio",
|
|
961
962
|
command: launch.command,
|
|
962
963
|
...launch.args && launch.args.length > 0 ? { args: launch.args } : {},
|
|
963
964
|
...env ? { env } : {}
|
package/dist/index.cjs
CHANGED
|
@@ -6988,6 +6988,7 @@ function toCursorMcpServers(servers) {
|
|
|
6988
6988
|
const env = mcpSpawnEnv(s.env);
|
|
6989
6989
|
const launch = cursorSafeMcpLaunch(s.command, s.args);
|
|
6990
6990
|
out[s.name] = {
|
|
6991
|
+
type: "stdio",
|
|
6991
6992
|
command: launch.command,
|
|
6992
6993
|
...launch.args && launch.args.length > 0 ? { args: launch.args } : {},
|
|
6993
6994
|
...env ? { env } : {}
|
|
@@ -9325,7 +9326,6 @@ __export(index_exports, {
|
|
|
9325
9326
|
SIDEBOARD_FORCE_STOP: () => SIDEBOARD_FORCE_STOP,
|
|
9326
9327
|
SIDEBOARD_MCP_ALLOWED_TOOLS: () => SIDEBOARD_MCP_ALLOWED_TOOLS,
|
|
9327
9328
|
SIDEBOARD_MCP_PROFILE_ENV: () => SIDEBOARD_MCP_PROFILE_ENV,
|
|
9328
|
-
SLACK_LISTEN_BUSY_REPLY: () => SLACK_LISTEN_BUSY_REPLY,
|
|
9329
9329
|
SLACK_LISTEN_STOPPED_REPLY: () => SLACK_LISTEN_STOPPED_REPLY,
|
|
9330
9330
|
SLACK_LISTEN_TIMEOUT_REPLY: () => SLACK_LISTEN_TIMEOUT_REPLY,
|
|
9331
9331
|
SLACK_OAUTH_CANCELLED: () => SLACK_OAUTH_CANCELLED,
|
|
@@ -9543,6 +9543,7 @@ __export(index_exports, {
|
|
|
9543
9543
|
initializeGitRepository: () => initializeGitRepository,
|
|
9544
9544
|
inspectGitWorktree: () => inspectGitWorktree,
|
|
9545
9545
|
installAgent: () => installAgent,
|
|
9546
|
+
interruptSlackCoordinatorForInbound: () => interruptSlackCoordinatorForInbound,
|
|
9546
9547
|
isAskUserToolName: () => isAskUserToolName,
|
|
9547
9548
|
isBrightsyConnected: () => isBrightsyConnected,
|
|
9548
9549
|
isBrightsyNdjsonLine: () => isBrightsyNdjsonLine,
|
|
@@ -19250,6 +19251,7 @@ function mergeSideboardIntoMcpServersJson(existing, sideboard) {
|
|
|
19250
19251
|
const servers = asObject(root.mcpServers);
|
|
19251
19252
|
const env = stripElectronSpawnEnv(sideboard.env);
|
|
19252
19253
|
servers.sideboard = {
|
|
19254
|
+
type: "stdio",
|
|
19253
19255
|
command: sideboard.command,
|
|
19254
19256
|
...sideboard.args && sideboard.args.length > 0 ? { args: sideboard.args } : {},
|
|
19255
19257
|
...env ? { env } : {}
|
|
@@ -20066,15 +20068,10 @@ function connectSession2(ws, opts, log) {
|
|
|
20066
20068
|
}
|
|
20067
20069
|
|
|
20068
20070
|
// src/slack/listen.ts
|
|
20069
|
-
var SLACK_LISTEN_BUSY_REPLY = [
|
|
20070
|
-
"Sideboard is busy with an in-progress turn.",
|
|
20071
|
-
"I did not start a new request.",
|
|
20072
|
-
'Send "stop" to interrupt, or try again when idle.'
|
|
20073
|
-
].join(" ");
|
|
20074
20071
|
var SLACK_LISTEN_STOPPED_REPLY = "Sideboard stopped the in-progress turn. Send another message when you want to continue.";
|
|
20075
20072
|
var SLACK_LISTEN_TIMEOUT_REPLY = [
|
|
20076
20073
|
"Sideboard timed out waiting for the local agent turn to finish.",
|
|
20077
|
-
'Send
|
|
20074
|
+
'Send another message to interrupt and retry, or send "stop".'
|
|
20078
20075
|
].join(" ");
|
|
20079
20076
|
var handleChain = Promise.resolve();
|
|
20080
20077
|
function enqueueHandle(fn) {
|
|
@@ -20088,6 +20085,30 @@ function enqueueHandle(fn) {
|
|
|
20088
20085
|
function refreshWorkspaces2() {
|
|
20089
20086
|
return getOrchestrator().listWorkspaces();
|
|
20090
20087
|
}
|
|
20088
|
+
function slackInboundSuperseded(opts) {
|
|
20089
|
+
if (opts.inboundGeneration === void 0 || !opts.currentInboundGeneration) {
|
|
20090
|
+
return false;
|
|
20091
|
+
}
|
|
20092
|
+
return opts.currentInboundGeneration() !== opts.inboundGeneration;
|
|
20093
|
+
}
|
|
20094
|
+
function interruptSlackCoordinatorForInbound(msg, agent, log = () => void 0) {
|
|
20095
|
+
const userId = msg.userId?.trim();
|
|
20096
|
+
if (!userId) return false;
|
|
20097
|
+
const coordinator = ensureSlackCoordinator(msg.teamId, userId, agent);
|
|
20098
|
+
const fresh = readThread(coordinator.id) ?? coordinator;
|
|
20099
|
+
if (fresh.status !== "running" && fresh.status !== "queued") return false;
|
|
20100
|
+
try {
|
|
20101
|
+
getOrchestrator().stop(fresh.id, { clearQueue: true });
|
|
20102
|
+
log(
|
|
20103
|
+
`interrupt ${msg.kind} ${msg.ts} \u2192 coordinator ${fresh.id.slice(0, 8)} (${fresh.status})`
|
|
20104
|
+
);
|
|
20105
|
+
return true;
|
|
20106
|
+
} catch (err) {
|
|
20107
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
20108
|
+
log(`interrupt ${msg.ts}: ${errMsg}`);
|
|
20109
|
+
return false;
|
|
20110
|
+
}
|
|
20111
|
+
}
|
|
20091
20112
|
function formatSlackInboundPrompt(msg) {
|
|
20092
20113
|
const kind = msg.kind === "mention" ? "Slack @mention" : "Slack DM";
|
|
20093
20114
|
return `${kind}
|
|
@@ -20218,7 +20239,13 @@ async function relayCoordinatorReplyToSlack(threadId, opts) {
|
|
|
20218
20239
|
}
|
|
20219
20240
|
async function handleSlackInbound(msg, opts) {
|
|
20220
20241
|
const log = opts.onLog ?? (() => void 0);
|
|
20221
|
-
|
|
20242
|
+
if (!opts.skipAck) {
|
|
20243
|
+
await ackSlackInboundSeen(msg, opts);
|
|
20244
|
+
}
|
|
20245
|
+
if (slackInboundSuperseded(opts)) {
|
|
20246
|
+
log(`skip superseded ${msg.kind} ${msg.ts}`);
|
|
20247
|
+
return;
|
|
20248
|
+
}
|
|
20222
20249
|
const agent = coerceOrchestratorAgent(opts.agent ?? getDefaultAgent());
|
|
20223
20250
|
const workspaces = refreshWorkspaces2();
|
|
20224
20251
|
for (const ws of workspaces) {
|
|
@@ -20230,25 +20257,31 @@ async function handleSlackInbound(msg, opts) {
|
|
|
20230
20257
|
log(`skip ${msg.kind} ${msg.ts}: missing Slack user id`);
|
|
20231
20258
|
return;
|
|
20232
20259
|
}
|
|
20260
|
+
if (slackInboundSuperseded(opts)) {
|
|
20261
|
+
log(`skip superseded ${msg.kind} ${msg.ts}`);
|
|
20262
|
+
return;
|
|
20263
|
+
}
|
|
20233
20264
|
const coordinator = ensureSlackCoordinator(msg.teamId, userId, agent);
|
|
20234
|
-
|
|
20265
|
+
let fresh = readThread(coordinator.id) ?? coordinator;
|
|
20235
20266
|
if (isSlackStopCommand(msg.text)) {
|
|
20236
20267
|
try {
|
|
20237
|
-
getOrchestrator().stop(fresh.id);
|
|
20268
|
+
getOrchestrator().stop(fresh.id, { clearQueue: true });
|
|
20238
20269
|
log(`stop ${msg.kind} ${msg.ts} \u2192 coordinator ${fresh.id.slice(0, 8)}`);
|
|
20239
20270
|
} catch (err) {
|
|
20240
20271
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
20241
20272
|
log(`stop ${msg.ts}: ${errMsg}`);
|
|
20242
20273
|
}
|
|
20274
|
+
if (slackInboundSuperseded(opts)) {
|
|
20275
|
+
log(`skip superseded stop reply ${msg.ts}`);
|
|
20276
|
+
return;
|
|
20277
|
+
}
|
|
20243
20278
|
await postSlackReply(msg, SLACK_LISTEN_STOPPED_REPLY, opts);
|
|
20244
20279
|
log(`replied stopped ${msg.ts}`);
|
|
20245
20280
|
return;
|
|
20246
20281
|
}
|
|
20247
20282
|
if (fresh.status === "running" || fresh.status === "queued") {
|
|
20248
|
-
|
|
20249
|
-
|
|
20250
|
-
log(`replied busy ${msg.ts}`);
|
|
20251
|
-
return;
|
|
20283
|
+
interruptSlackCoordinatorForInbound(msg, agent, log);
|
|
20284
|
+
fresh = readThread(coordinator.id) ?? coordinator;
|
|
20252
20285
|
}
|
|
20253
20286
|
log(
|
|
20254
20287
|
`run ${msg.kind} ${msg.ts} user ${userId} \u2192 coordinator ${fresh.id.slice(0, 8)} (${inventory.length} workspace${inventory.length === 1 ? "" : "s"})`
|
|
@@ -20265,8 +20298,21 @@ async function handleSlackInbound(msg, opts) {
|
|
|
20265
20298
|
try {
|
|
20266
20299
|
await orch.send(fresh.id, prompt);
|
|
20267
20300
|
await orch.waitForTurn(fresh.id, 14 * 60 * 1e3);
|
|
20301
|
+
if (slackInboundSuperseded(opts)) {
|
|
20302
|
+
log(`turn finished ${msg.ts} (superseded)`);
|
|
20303
|
+
return;
|
|
20304
|
+
}
|
|
20305
|
+
const after = readThread(fresh.id);
|
|
20306
|
+
if (after?.status === "stopped") {
|
|
20307
|
+
log(`turn finished ${msg.ts} (interrupted, skip post)`);
|
|
20308
|
+
return;
|
|
20309
|
+
}
|
|
20268
20310
|
reply = orch.getTurnResult(fresh.id).text.trim();
|
|
20269
20311
|
} catch (err) {
|
|
20312
|
+
if (slackInboundSuperseded(opts)) {
|
|
20313
|
+
log(`turn error ${msg.ts} (superseded)`);
|
|
20314
|
+
return;
|
|
20315
|
+
}
|
|
20270
20316
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
20271
20317
|
const timedOut = /timed out|timeout/i.test(errMsg);
|
|
20272
20318
|
const errorReply = timedOut ? SLACK_LISTEN_TIMEOUT_REPLY : `Sideboard coordinator error: ${errMsg}`;
|
|
@@ -20314,19 +20360,35 @@ async function runSlackListen(opts = {}) {
|
|
|
20314
20360
|
const log = opts.onLog ?? console.log;
|
|
20315
20361
|
const connected = listSlackWorkspacesRaw();
|
|
20316
20362
|
const orch = getOrchestrator();
|
|
20363
|
+
const agent = coerceOrchestratorAgent(opts.agent ?? getDefaultAgent());
|
|
20364
|
+
let inboundGeneration = 0;
|
|
20317
20365
|
const off = orch.on((event) => {
|
|
20318
20366
|
if (event.type !== "turn_finished") return;
|
|
20319
20367
|
void relayCoordinatorReplyToSlack(event.threadId, opts);
|
|
20320
20368
|
});
|
|
20321
|
-
const onInbound = (msg) =>
|
|
20369
|
+
const onInbound = (msg) => {
|
|
20322
20370
|
if (!isInboundForThisDesktop(msg)) {
|
|
20323
20371
|
log(
|
|
20324
20372
|
`skip ${msg.kind} ${msg.ts}: Slack user ${msg.userId ?? "?"} is not connected on this Mac`
|
|
20325
20373
|
);
|
|
20326
20374
|
return;
|
|
20327
20375
|
}
|
|
20328
|
-
|
|
20329
|
-
|
|
20376
|
+
const generation = ++inboundGeneration;
|
|
20377
|
+
void ackSlackInboundSeen(msg, opts);
|
|
20378
|
+
interruptSlackCoordinatorForInbound(msg, agent, log);
|
|
20379
|
+
return enqueueHandle(async () => {
|
|
20380
|
+
if (generation !== inboundGeneration) {
|
|
20381
|
+
log(`skip superseded ${msg.kind} ${msg.ts}`);
|
|
20382
|
+
return;
|
|
20383
|
+
}
|
|
20384
|
+
await handleSlackInbound(msg, {
|
|
20385
|
+
...opts,
|
|
20386
|
+
skipAck: true,
|
|
20387
|
+
inboundGeneration: generation,
|
|
20388
|
+
currentInboundGeneration: () => inboundGeneration
|
|
20389
|
+
});
|
|
20390
|
+
});
|
|
20391
|
+
};
|
|
20330
20392
|
try {
|
|
20331
20393
|
const relay = (opts.relayUrl ?? slackRelayUrl()).trim();
|
|
20332
20394
|
if (!relay) {
|
|
@@ -20929,7 +20991,6 @@ async function startSlackRelayServer(opts) {
|
|
|
20929
20991
|
SIDEBOARD_FORCE_STOP,
|
|
20930
20992
|
SIDEBOARD_MCP_ALLOWED_TOOLS,
|
|
20931
20993
|
SIDEBOARD_MCP_PROFILE_ENV,
|
|
20932
|
-
SLACK_LISTEN_BUSY_REPLY,
|
|
20933
20994
|
SLACK_LISTEN_STOPPED_REPLY,
|
|
20934
20995
|
SLACK_LISTEN_TIMEOUT_REPLY,
|
|
20935
20996
|
SLACK_OAUTH_CANCELLED,
|
|
@@ -21147,6 +21208,7 @@ async function startSlackRelayServer(opts) {
|
|
|
21147
21208
|
initializeGitRepository,
|
|
21148
21209
|
inspectGitWorktree,
|
|
21149
21210
|
installAgent,
|
|
21211
|
+
interruptSlackCoordinatorForInbound,
|
|
21150
21212
|
isAskUserToolName,
|
|
21151
21213
|
isBrightsyConnected,
|
|
21152
21214
|
isBrightsyNdjsonLine,
|
package/dist/index.d.cts
CHANGED
|
@@ -1854,6 +1854,7 @@ type CursorTurnRequest = {
|
|
|
1854
1854
|
* Must be passed on create and resume — Cursor does not persist them.
|
|
1855
1855
|
*/
|
|
1856
1856
|
mcpServers?: Record<string, {
|
|
1857
|
+
type?: 'stdio';
|
|
1857
1858
|
command: string;
|
|
1858
1859
|
args?: string[];
|
|
1859
1860
|
env?: Record<string, string>;
|
|
@@ -4241,7 +4242,6 @@ interface SlackSocketModeOptions {
|
|
|
4241
4242
|
WebSocketImpl?: SlackWebSocketCtor;
|
|
4242
4243
|
}
|
|
4243
4244
|
|
|
4244
|
-
declare const SLACK_LISTEN_BUSY_REPLY: string;
|
|
4245
4245
|
declare const SLACK_LISTEN_STOPPED_REPLY = "Sideboard stopped the in-progress turn. Send another message when you want to continue.";
|
|
4246
4246
|
declare const SLACK_LISTEN_TIMEOUT_REPLY: string;
|
|
4247
4247
|
interface SlackListenOptions {
|
|
@@ -4256,7 +4256,20 @@ interface SlackListenOptions {
|
|
|
4256
4256
|
postReply?: (msg: SlackInboundMessage, text: string) => Promise<void>;
|
|
4257
4257
|
/** Tests: ack reactions without talking to Slack Web API. */
|
|
4258
4258
|
addReaction?: (msg: SlackInboundMessage, name: string) => Promise<void>;
|
|
4259
|
+
/**
|
|
4260
|
+
* Listen session token. After waitForTurn, skip posting if a newer inbound
|
|
4261
|
+
* superseded this turn (interrupt-and-replace).
|
|
4262
|
+
*/
|
|
4263
|
+
inboundGeneration?: number;
|
|
4264
|
+
currentInboundGeneration?: () => number;
|
|
4265
|
+
/** Listen already acked; skip the thumbs-up in handleSlackInbound. */
|
|
4266
|
+
skipAck?: boolean;
|
|
4259
4267
|
}
|
|
4268
|
+
/**
|
|
4269
|
+
* Kill an in-flight Slack coordinator turn so a follow-up can start immediately.
|
|
4270
|
+
* Same force-stop as MCP `send_to_thread` (`clearQueue: true`).
|
|
4271
|
+
*/
|
|
4272
|
+
declare function interruptSlackCoordinatorForInbound(msg: SlackInboundMessage, agent: AgentKind, log?: (line: string) => void): boolean;
|
|
4260
4273
|
declare function formatSlackInboundPrompt(msg: SlackInboundMessage): string;
|
|
4261
4274
|
/**
|
|
4262
4275
|
* Prefix Slack replies with This Mac's destination (`Work: …`) so a user with
|
|
@@ -4450,4 +4463,4 @@ interface SlackRelayClientOptions {
|
|
|
4450
4463
|
*/
|
|
4451
4464
|
declare function runSlackRelayClient(opts: SlackRelayClientOptions): Promise<void>;
|
|
4452
4465
|
|
|
4453
|
-
export { AGENT_GIT_ACTIONS, ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, type LandPreview, type LandResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_BUSY_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScriptHandle, type SetupRunResult, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackReplyBadge, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UsageScope, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, ackSlackInboundSeen, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyGithubGitAuthEnv, applyThreadIntoMain, applyTurnUsage, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSlackListenEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectSlackToken, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectSlackWorkspace, discoverSkills, dismissSlackReplyBadge, dropCachedPrefixOnResume, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatMergePrError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackSignedReply, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, fromInclusiveInputUsage, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCursorAutoModel, isDefaultishSourceRef, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isLinearConnected, isLinearOAuthCancelled, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPrNotMergeableError, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isThinkingEffort, isThreadCaffeinated, isWorkspaceScratchPath, linearAuthorizationHeader, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSlackOutboundWatches, listSlackReplyBadges, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permalinkForSlackReplyBadge, permissionMode, persistVaultKeyInKeychain, planFileAbs, posixShellSingleQuote, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordSlackOutboundWatch, refreshGitHubAuth, refreshSlackReplyBadges, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, saveLinearOAuth, scrubGithubTokensFromChildEnv, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toPublicAppSettings, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, warmGithubAgentAuth, withAgentInstructions, withExportedPath, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
|
|
4466
|
+
export { AGENT_GIT_ACTIONS, ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, type LandPreview, type LandResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScriptHandle, type SetupRunResult, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackReplyBadge, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UsageScope, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, ackSlackInboundSeen, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyGithubGitAuthEnv, applyThreadIntoMain, applyTurnUsage, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSlackListenEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectSlackToken, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectSlackWorkspace, discoverSkills, dismissSlackReplyBadge, dropCachedPrefixOnResume, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatMergePrError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackSignedReply, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, fromInclusiveInputUsage, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, interruptSlackCoordinatorForInbound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCursorAutoModel, isDefaultishSourceRef, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isLinearConnected, isLinearOAuthCancelled, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPrNotMergeableError, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isThinkingEffort, isThreadCaffeinated, isWorkspaceScratchPath, linearAuthorizationHeader, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSlackOutboundWatches, listSlackReplyBadges, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permalinkForSlackReplyBadge, permissionMode, persistVaultKeyInKeychain, planFileAbs, posixShellSingleQuote, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordSlackOutboundWatch, refreshGitHubAuth, refreshSlackReplyBadges, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, saveLinearOAuth, scrubGithubTokensFromChildEnv, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toPublicAppSettings, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, warmGithubAgentAuth, withAgentInstructions, withExportedPath, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
|
package/dist/index.d.ts
CHANGED
|
@@ -1854,6 +1854,7 @@ type CursorTurnRequest = {
|
|
|
1854
1854
|
* Must be passed on create and resume — Cursor does not persist them.
|
|
1855
1855
|
*/
|
|
1856
1856
|
mcpServers?: Record<string, {
|
|
1857
|
+
type?: 'stdio';
|
|
1857
1858
|
command: string;
|
|
1858
1859
|
args?: string[];
|
|
1859
1860
|
env?: Record<string, string>;
|
|
@@ -4241,7 +4242,6 @@ interface SlackSocketModeOptions {
|
|
|
4241
4242
|
WebSocketImpl?: SlackWebSocketCtor;
|
|
4242
4243
|
}
|
|
4243
4244
|
|
|
4244
|
-
declare const SLACK_LISTEN_BUSY_REPLY: string;
|
|
4245
4245
|
declare const SLACK_LISTEN_STOPPED_REPLY = "Sideboard stopped the in-progress turn. Send another message when you want to continue.";
|
|
4246
4246
|
declare const SLACK_LISTEN_TIMEOUT_REPLY: string;
|
|
4247
4247
|
interface SlackListenOptions {
|
|
@@ -4256,7 +4256,20 @@ interface SlackListenOptions {
|
|
|
4256
4256
|
postReply?: (msg: SlackInboundMessage, text: string) => Promise<void>;
|
|
4257
4257
|
/** Tests: ack reactions without talking to Slack Web API. */
|
|
4258
4258
|
addReaction?: (msg: SlackInboundMessage, name: string) => Promise<void>;
|
|
4259
|
+
/**
|
|
4260
|
+
* Listen session token. After waitForTurn, skip posting if a newer inbound
|
|
4261
|
+
* superseded this turn (interrupt-and-replace).
|
|
4262
|
+
*/
|
|
4263
|
+
inboundGeneration?: number;
|
|
4264
|
+
currentInboundGeneration?: () => number;
|
|
4265
|
+
/** Listen already acked; skip the thumbs-up in handleSlackInbound. */
|
|
4266
|
+
skipAck?: boolean;
|
|
4259
4267
|
}
|
|
4268
|
+
/**
|
|
4269
|
+
* Kill an in-flight Slack coordinator turn so a follow-up can start immediately.
|
|
4270
|
+
* Same force-stop as MCP `send_to_thread` (`clearQueue: true`).
|
|
4271
|
+
*/
|
|
4272
|
+
declare function interruptSlackCoordinatorForInbound(msg: SlackInboundMessage, agent: AgentKind, log?: (line: string) => void): boolean;
|
|
4260
4273
|
declare function formatSlackInboundPrompt(msg: SlackInboundMessage): string;
|
|
4261
4274
|
/**
|
|
4262
4275
|
* Prefix Slack replies with This Mac's destination (`Work: …`) so a user with
|
|
@@ -4450,4 +4463,4 @@ interface SlackRelayClientOptions {
|
|
|
4450
4463
|
*/
|
|
4451
4464
|
declare function runSlackRelayClient(opts: SlackRelayClientOptions): Promise<void>;
|
|
4452
4465
|
|
|
4453
|
-
export { AGENT_GIT_ACTIONS, ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, type LandPreview, type LandResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_BUSY_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScriptHandle, type SetupRunResult, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackReplyBadge, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UsageScope, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, ackSlackInboundSeen, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyGithubGitAuthEnv, applyThreadIntoMain, applyTurnUsage, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSlackListenEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectSlackToken, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectSlackWorkspace, discoverSkills, dismissSlackReplyBadge, dropCachedPrefixOnResume, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatMergePrError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackSignedReply, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, fromInclusiveInputUsage, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCursorAutoModel, isDefaultishSourceRef, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isLinearConnected, isLinearOAuthCancelled, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPrNotMergeableError, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isThinkingEffort, isThreadCaffeinated, isWorkspaceScratchPath, linearAuthorizationHeader, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSlackOutboundWatches, listSlackReplyBadges, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permalinkForSlackReplyBadge, permissionMode, persistVaultKeyInKeychain, planFileAbs, posixShellSingleQuote, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordSlackOutboundWatch, refreshGitHubAuth, refreshSlackReplyBadges, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, saveLinearOAuth, scrubGithubTokensFromChildEnv, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toPublicAppSettings, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, warmGithubAgentAuth, withAgentInstructions, withExportedPath, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
|
|
4466
|
+
export { AGENT_GIT_ACTIONS, ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, type LandPreview, type LandResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, type ScriptHandle, type SetupRunResult, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackReplyBadge, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UsageScope, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, ackSlackInboundSeen, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyGithubGitAuthEnv, applyThreadIntoMain, applyTurnUsage, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSlackListenEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectSlackToken, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectSlackWorkspace, discoverSkills, dismissSlackReplyBadge, dropCachedPrefixOnResume, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatMergePrError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackSignedReply, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, fromInclusiveInputUsage, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, interruptSlackCoordinatorForInbound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCursorAutoModel, isDefaultishSourceRef, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isLinearConnected, isLinearOAuthCancelled, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPrNotMergeableError, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isThinkingEffort, isThreadCaffeinated, isWorkspaceScratchPath, linearAuthorizationHeader, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSlackOutboundWatches, listSlackReplyBadges, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permalinkForSlackReplyBadge, permissionMode, persistVaultKeyInKeychain, planFileAbs, posixShellSingleQuote, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordSlackOutboundWatch, refreshGitHubAuth, refreshSlackReplyBadges, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, saveLinearOAuth, scrubGithubTokensFromChildEnv, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toPublicAppSettings, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, warmGithubAgentAuth, withAgentInstructions, withExportedPath, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
|
package/dist/index.js
CHANGED
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
threadRequestsBrightsyMcp,
|
|
66
66
|
totalTokens,
|
|
67
67
|
writeInjectedMcpConfig
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-KWNUZ4LR.js";
|
|
69
69
|
import {
|
|
70
70
|
CLOUD_COORDINATOR_BUSY_REPLY,
|
|
71
71
|
CLOUD_COORDINATOR_STOPPED_REPLY,
|
|
@@ -3832,7 +3832,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
3832
3832
|
return readThread(thread.id) ?? thread;
|
|
3833
3833
|
}
|
|
3834
3834
|
async function listLinearIssues(agent, repoPath) {
|
|
3835
|
-
const { getAdapter: getAdapter2 } = await import("./agents-
|
|
3835
|
+
const { getAdapter: getAdapter2 } = await import("./agents-WS5QV6LE.js");
|
|
3836
3836
|
await requireAgent(agent, { requireLinear: true });
|
|
3837
3837
|
const adapter = getAdapter2(agent);
|
|
3838
3838
|
if (!adapter.listLinearIssues) {
|
|
@@ -9609,6 +9609,7 @@ function mergeSideboardIntoMcpServersJson(existing, sideboard) {
|
|
|
9609
9609
|
const servers = asObject(root.mcpServers);
|
|
9610
9610
|
const env = stripElectronSpawnEnv(sideboard.env);
|
|
9611
9611
|
servers.sideboard = {
|
|
9612
|
+
type: "stdio",
|
|
9612
9613
|
command: sideboard.command,
|
|
9613
9614
|
...sideboard.args && sideboard.args.length > 0 ? { args: sideboard.args } : {},
|
|
9614
9615
|
...env ? { env } : {}
|
|
@@ -10417,15 +10418,10 @@ function connectSession2(ws, opts, log) {
|
|
|
10417
10418
|
}
|
|
10418
10419
|
|
|
10419
10420
|
// src/slack/listen.ts
|
|
10420
|
-
var SLACK_LISTEN_BUSY_REPLY = [
|
|
10421
|
-
"Sideboard is busy with an in-progress turn.",
|
|
10422
|
-
"I did not start a new request.",
|
|
10423
|
-
'Send "stop" to interrupt, or try again when idle.'
|
|
10424
|
-
].join(" ");
|
|
10425
10421
|
var SLACK_LISTEN_STOPPED_REPLY = "Sideboard stopped the in-progress turn. Send another message when you want to continue.";
|
|
10426
10422
|
var SLACK_LISTEN_TIMEOUT_REPLY = [
|
|
10427
10423
|
"Sideboard timed out waiting for the local agent turn to finish.",
|
|
10428
|
-
'Send
|
|
10424
|
+
'Send another message to interrupt and retry, or send "stop".'
|
|
10429
10425
|
].join(" ");
|
|
10430
10426
|
var handleChain = Promise.resolve();
|
|
10431
10427
|
function enqueueHandle(fn) {
|
|
@@ -10439,6 +10435,30 @@ function enqueueHandle(fn) {
|
|
|
10439
10435
|
function refreshWorkspaces2() {
|
|
10440
10436
|
return getOrchestrator().listWorkspaces();
|
|
10441
10437
|
}
|
|
10438
|
+
function slackInboundSuperseded(opts) {
|
|
10439
|
+
if (opts.inboundGeneration === void 0 || !opts.currentInboundGeneration) {
|
|
10440
|
+
return false;
|
|
10441
|
+
}
|
|
10442
|
+
return opts.currentInboundGeneration() !== opts.inboundGeneration;
|
|
10443
|
+
}
|
|
10444
|
+
function interruptSlackCoordinatorForInbound(msg, agent, log = () => void 0) {
|
|
10445
|
+
const userId = msg.userId?.trim();
|
|
10446
|
+
if (!userId) return false;
|
|
10447
|
+
const coordinator = ensureSlackCoordinator(msg.teamId, userId, agent);
|
|
10448
|
+
const fresh = readThread(coordinator.id) ?? coordinator;
|
|
10449
|
+
if (fresh.status !== "running" && fresh.status !== "queued") return false;
|
|
10450
|
+
try {
|
|
10451
|
+
getOrchestrator().stop(fresh.id, { clearQueue: true });
|
|
10452
|
+
log(
|
|
10453
|
+
`interrupt ${msg.kind} ${msg.ts} \u2192 coordinator ${fresh.id.slice(0, 8)} (${fresh.status})`
|
|
10454
|
+
);
|
|
10455
|
+
return true;
|
|
10456
|
+
} catch (err) {
|
|
10457
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
10458
|
+
log(`interrupt ${msg.ts}: ${errMsg}`);
|
|
10459
|
+
return false;
|
|
10460
|
+
}
|
|
10461
|
+
}
|
|
10442
10462
|
function formatSlackInboundPrompt(msg) {
|
|
10443
10463
|
const kind = msg.kind === "mention" ? "Slack @mention" : "Slack DM";
|
|
10444
10464
|
return `${kind}
|
|
@@ -10569,7 +10589,13 @@ async function relayCoordinatorReplyToSlack(threadId, opts) {
|
|
|
10569
10589
|
}
|
|
10570
10590
|
async function handleSlackInbound(msg, opts) {
|
|
10571
10591
|
const log = opts.onLog ?? (() => void 0);
|
|
10572
|
-
|
|
10592
|
+
if (!opts.skipAck) {
|
|
10593
|
+
await ackSlackInboundSeen(msg, opts);
|
|
10594
|
+
}
|
|
10595
|
+
if (slackInboundSuperseded(opts)) {
|
|
10596
|
+
log(`skip superseded ${msg.kind} ${msg.ts}`);
|
|
10597
|
+
return;
|
|
10598
|
+
}
|
|
10573
10599
|
const agent = coerceOrchestratorAgent(opts.agent ?? getDefaultAgent());
|
|
10574
10600
|
const workspaces = refreshWorkspaces2();
|
|
10575
10601
|
for (const ws of workspaces) {
|
|
@@ -10581,25 +10607,31 @@ async function handleSlackInbound(msg, opts) {
|
|
|
10581
10607
|
log(`skip ${msg.kind} ${msg.ts}: missing Slack user id`);
|
|
10582
10608
|
return;
|
|
10583
10609
|
}
|
|
10610
|
+
if (slackInboundSuperseded(opts)) {
|
|
10611
|
+
log(`skip superseded ${msg.kind} ${msg.ts}`);
|
|
10612
|
+
return;
|
|
10613
|
+
}
|
|
10584
10614
|
const coordinator = ensureSlackCoordinator(msg.teamId, userId, agent);
|
|
10585
|
-
|
|
10615
|
+
let fresh = readThread(coordinator.id) ?? coordinator;
|
|
10586
10616
|
if (isSlackStopCommand(msg.text)) {
|
|
10587
10617
|
try {
|
|
10588
|
-
getOrchestrator().stop(fresh.id);
|
|
10618
|
+
getOrchestrator().stop(fresh.id, { clearQueue: true });
|
|
10589
10619
|
log(`stop ${msg.kind} ${msg.ts} \u2192 coordinator ${fresh.id.slice(0, 8)}`);
|
|
10590
10620
|
} catch (err) {
|
|
10591
10621
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
10592
10622
|
log(`stop ${msg.ts}: ${errMsg}`);
|
|
10593
10623
|
}
|
|
10624
|
+
if (slackInboundSuperseded(opts)) {
|
|
10625
|
+
log(`skip superseded stop reply ${msg.ts}`);
|
|
10626
|
+
return;
|
|
10627
|
+
}
|
|
10594
10628
|
await postSlackReply(msg, SLACK_LISTEN_STOPPED_REPLY, opts);
|
|
10595
10629
|
log(`replied stopped ${msg.ts}`);
|
|
10596
10630
|
return;
|
|
10597
10631
|
}
|
|
10598
10632
|
if (fresh.status === "running" || fresh.status === "queued") {
|
|
10599
|
-
|
|
10600
|
-
|
|
10601
|
-
log(`replied busy ${msg.ts}`);
|
|
10602
|
-
return;
|
|
10633
|
+
interruptSlackCoordinatorForInbound(msg, agent, log);
|
|
10634
|
+
fresh = readThread(coordinator.id) ?? coordinator;
|
|
10603
10635
|
}
|
|
10604
10636
|
log(
|
|
10605
10637
|
`run ${msg.kind} ${msg.ts} user ${userId} \u2192 coordinator ${fresh.id.slice(0, 8)} (${inventory.length} workspace${inventory.length === 1 ? "" : "s"})`
|
|
@@ -10616,8 +10648,21 @@ async function handleSlackInbound(msg, opts) {
|
|
|
10616
10648
|
try {
|
|
10617
10649
|
await orch.send(fresh.id, prompt);
|
|
10618
10650
|
await orch.waitForTurn(fresh.id, 14 * 60 * 1e3);
|
|
10651
|
+
if (slackInboundSuperseded(opts)) {
|
|
10652
|
+
log(`turn finished ${msg.ts} (superseded)`);
|
|
10653
|
+
return;
|
|
10654
|
+
}
|
|
10655
|
+
const after = readThread(fresh.id);
|
|
10656
|
+
if (after?.status === "stopped") {
|
|
10657
|
+
log(`turn finished ${msg.ts} (interrupted, skip post)`);
|
|
10658
|
+
return;
|
|
10659
|
+
}
|
|
10619
10660
|
reply = orch.getTurnResult(fresh.id).text.trim();
|
|
10620
10661
|
} catch (err) {
|
|
10662
|
+
if (slackInboundSuperseded(opts)) {
|
|
10663
|
+
log(`turn error ${msg.ts} (superseded)`);
|
|
10664
|
+
return;
|
|
10665
|
+
}
|
|
10621
10666
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
10622
10667
|
const timedOut = /timed out|timeout/i.test(errMsg);
|
|
10623
10668
|
const errorReply = timedOut ? SLACK_LISTEN_TIMEOUT_REPLY : `Sideboard coordinator error: ${errMsg}`;
|
|
@@ -10665,19 +10710,35 @@ async function runSlackListen(opts = {}) {
|
|
|
10665
10710
|
const log = opts.onLog ?? console.log;
|
|
10666
10711
|
const connected = listSlackWorkspacesRaw();
|
|
10667
10712
|
const orch = getOrchestrator();
|
|
10713
|
+
const agent = coerceOrchestratorAgent(opts.agent ?? getDefaultAgent());
|
|
10714
|
+
let inboundGeneration = 0;
|
|
10668
10715
|
const off = orch.on((event) => {
|
|
10669
10716
|
if (event.type !== "turn_finished") return;
|
|
10670
10717
|
void relayCoordinatorReplyToSlack(event.threadId, opts);
|
|
10671
10718
|
});
|
|
10672
|
-
const onInbound = (msg) =>
|
|
10719
|
+
const onInbound = (msg) => {
|
|
10673
10720
|
if (!isInboundForThisDesktop(msg)) {
|
|
10674
10721
|
log(
|
|
10675
10722
|
`skip ${msg.kind} ${msg.ts}: Slack user ${msg.userId ?? "?"} is not connected on this Mac`
|
|
10676
10723
|
);
|
|
10677
10724
|
return;
|
|
10678
10725
|
}
|
|
10679
|
-
|
|
10680
|
-
|
|
10726
|
+
const generation = ++inboundGeneration;
|
|
10727
|
+
void ackSlackInboundSeen(msg, opts);
|
|
10728
|
+
interruptSlackCoordinatorForInbound(msg, agent, log);
|
|
10729
|
+
return enqueueHandle(async () => {
|
|
10730
|
+
if (generation !== inboundGeneration) {
|
|
10731
|
+
log(`skip superseded ${msg.kind} ${msg.ts}`);
|
|
10732
|
+
return;
|
|
10733
|
+
}
|
|
10734
|
+
await handleSlackInbound(msg, {
|
|
10735
|
+
...opts,
|
|
10736
|
+
skipAck: true,
|
|
10737
|
+
inboundGeneration: generation,
|
|
10738
|
+
currentInboundGeneration: () => inboundGeneration
|
|
10739
|
+
});
|
|
10740
|
+
});
|
|
10741
|
+
};
|
|
10681
10742
|
try {
|
|
10682
10743
|
const relay = (opts.relayUrl ?? slackRelayUrl()).trim();
|
|
10683
10744
|
if (!relay) {
|
|
@@ -11279,7 +11340,6 @@ export {
|
|
|
11279
11340
|
SIDEBOARD_FORCE_STOP,
|
|
11280
11341
|
SIDEBOARD_MCP_ALLOWED_TOOLS,
|
|
11281
11342
|
SIDEBOARD_MCP_PROFILE_ENV,
|
|
11282
|
-
SLACK_LISTEN_BUSY_REPLY,
|
|
11283
11343
|
SLACK_LISTEN_STOPPED_REPLY,
|
|
11284
11344
|
SLACK_LISTEN_TIMEOUT_REPLY,
|
|
11285
11345
|
SLACK_OAUTH_CANCELLED,
|
|
@@ -11497,6 +11557,7 @@ export {
|
|
|
11497
11557
|
initializeGitRepository,
|
|
11498
11558
|
inspectGitWorktree,
|
|
11499
11559
|
installAgent,
|
|
11560
|
+
interruptSlackCoordinatorForInbound,
|
|
11500
11561
|
isAskUserToolName,
|
|
11501
11562
|
isBrightsyConnected,
|
|
11502
11563
|
isBrightsyNdjsonLine,
|
package/dist/mcp/run-stdio.cjs
CHANGED
|
@@ -6361,6 +6361,7 @@ function toCursorMcpServers(servers) {
|
|
|
6361
6361
|
const env = mcpSpawnEnv(s.env);
|
|
6362
6362
|
const launch = cursorSafeMcpLaunch(s.command, s.args);
|
|
6363
6363
|
out[s.name] = {
|
|
6364
|
+
type: "stdio",
|
|
6364
6365
|
command: launch.command,
|
|
6365
6366
|
...launch.args && launch.args.length > 0 ? { args: launch.args } : {},
|
|
6366
6367
|
...env ? { env } : {}
|
package/dist/mcp/run-stdio.js
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
resolveQuotaFallbackAgent,
|
|
18
18
|
sideboardMcpProfile,
|
|
19
19
|
summarizeTurnStderr
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-WBX46OPD.js";
|
|
21
21
|
import "../chunk-DKHGWYWR.js";
|
|
22
22
|
import {
|
|
23
23
|
addWorkspace,
|
|
@@ -1851,7 +1851,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
1851
1851
|
return readThread(thread.id) ?? thread;
|
|
1852
1852
|
}
|
|
1853
1853
|
async function listLinearIssues(agent, repoPath) {
|
|
1854
|
-
const { getAdapter: getAdapter2 } = await import("../agents-
|
|
1854
|
+
const { getAdapter: getAdapter2 } = await import("../agents-HBLA6FEV.js");
|
|
1855
1855
|
await requireAgent(agent, { requireLinear: true });
|
|
1856
1856
|
const adapter = getAdapter2(agent);
|
|
1857
1857
|
if (!adapter.listLinearIssues) {
|