@sideboard-ai/core 0.1.319 → 0.1.321
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{abletime-L3ODNTBT.js → abletime-CRRLEYTE.js} +4 -4
- package/dist/{abletime-DVYO4IVS.js → abletime-ICW6Q2AB.js} +4 -4
- package/dist/{abletime-oauth-2VWQCXGT.js → abletime-oauth-P3KPPJE4.js} +3 -3
- package/dist/{abletime-oauth-6DTX7LB7.js → abletime-oauth-Q76XBSPG.js} +3 -3
- package/dist/{abletime-rest-PYQM234B.js → abletime-rest-DNFAYYLP.js} +3 -3
- package/dist/{abletime-rest-7NICZYOC.js → abletime-rest-DQ3PNKXP.js} +3 -3
- package/dist/agents/cursor-runner.js +2 -2
- package/dist/{agents-KABJUDPI.js → agents-PFVYC36J.js} +10 -10
- package/dist/{agents-2AR7I6B6.js → agents-ROFDNE7Z.js} +11 -11
- package/dist/{app-settings-CZVFMOI5.js → app-settings-KMPVI2B7.js} +1 -1
- package/dist/{app-settings-V6YPYY57.js → app-settings-P3H4SEIK.js} +1 -1
- package/dist/{chunk-QVN2WOKJ.js → chunk-2TUE6JKQ.js} +12 -0
- package/dist/{chunk-OO3R6CS2.js → chunk-45UB2J47.js} +537 -90
- package/dist/{chunk-DD67JWTN.js → chunk-4YXZOXMT.js} +1 -1
- package/dist/{chunk-5OM7UCTQ.js → chunk-56M6VEXI.js} +3 -3
- package/dist/{chunk-ZM43NTJJ.js → chunk-5OQONGHO.js} +5 -5
- package/dist/{chunk-V5BTGQ6M.js → chunk-6U6QRUHY.js} +1 -1
- package/dist/{chunk-QPLQXWND.js → chunk-72PUPPV2.js} +3 -3
- package/dist/{chunk-53OCOGND.js → chunk-7JV5QP5K.js} +3 -3
- package/dist/{chunk-HOLB6ZFZ.js → chunk-B4CDSSRN.js} +2 -0
- package/dist/{chunk-ST2UQBJT.js → chunk-BANN5HUX.js} +8 -8
- package/dist/{chunk-AESO2KJS.js → chunk-BPDVHB4U.js} +3 -3
- package/dist/{chunk-WLZHRNE6.js → chunk-BTIXTH4N.js} +3 -3
- package/dist/{chunk-AUJ4XB6H.js → chunk-DFUXW2IT.js} +2 -2
- package/dist/{chunk-I5TESHDN.js → chunk-EQ52JR3Q.js} +5 -5
- package/dist/{chunk-E52SQENB.js → chunk-FZKAAAEB.js} +3 -1
- package/dist/{chunk-YALFZKSC.js → chunk-H6GXYV5Q.js} +23 -20
- package/dist/{chunk-JD7CC6SW.js → chunk-HHPTGIKS.js} +2 -2
- package/dist/{chunk-GCHSJCCX.js → chunk-IFU4W4C4.js} +3 -1
- package/dist/{chunk-YEIHCSZS.js → chunk-IFWGG2M2.js} +9 -0
- package/dist/{chunk-IAPO7ZFG.js → chunk-JNEFEA2A.js} +8 -8
- package/dist/{chunk-U2N32EA6.js → chunk-LD2DXHBP.js} +543 -92
- package/dist/{chunk-7Q327QF2.js → chunk-QIC2JXHW.js} +5 -5
- package/dist/{chunk-2P4XKWV2.js → chunk-QKHEVSB5.js} +1 -1
- package/dist/{chunk-NRSC4N5X.js → chunk-RGUZPMTF.js} +8 -8
- package/dist/{chunk-AZ4GEEGL.js → chunk-RHJKZOPQ.js} +3 -3
- package/dist/{chunk-HH3VVTEC.js → chunk-S5CJUIPY.js} +5 -5
- package/dist/{chunk-A6C67DY5.js → chunk-SPMIZSKH.js} +16 -13
- package/dist/{chunk-FDXHNROD.js → chunk-TEFFR6PB.js} +2 -2
- package/dist/{chunk-TUJFCJJU.js → chunk-UWJUARFA.js} +546 -187
- package/dist/{chunk-MBYGWNLQ.js → chunk-UX6EDDGR.js} +1 -1
- package/dist/{chunk-LXBZQP2Q.js → chunk-V76MQ7MH.js} +5 -5
- package/dist/{chunk-GH7UMULC.js → chunk-XDQSHSL6.js} +8 -8
- package/dist/{chunk-2UG25RMK.js → chunk-YBTSZ2SW.js} +12 -0
- package/dist/{chunk-A46CIARU.js → chunk-YWBLQBSN.js} +549 -188
- package/dist/{chunk-Y3Y7SZBZ.js → chunk-ZHGMRBSC.js} +1 -1
- package/dist/{conductor-MG2RAQNT.js → conductor-CNT3VL3S.js} +8 -8
- package/dist/{conductor-NIUBJLTS.js → conductor-XLXJU24U.js} +8 -8
- package/dist/{connected-teams-IHK2WXUI.js → connected-teams-H4LZOJDC.js} +2 -2
- package/dist/{connected-teams-IFW3NQ6G.js → connected-teams-XYRZMQO4.js} +2 -2
- package/dist/{coordinator-prompt-X74F3JIC.js → coordinator-prompt-D5EE2YTV.js} +6 -6
- package/dist/{coordinator-prompt-3CT3D5UM.js → coordinator-prompt-TU24TQ4I.js} +6 -6
- package/dist/{global-workspace-BUWMRNW5.js → global-workspace-743TPQNF.js} +6 -6
- package/dist/{global-workspace-FTNJEML3.js → global-workspace-UPMXDQM7.js} +6 -6
- package/dist/index.cjs +2160 -867
- package/dist/index.d.cts +211 -74
- package/dist/index.d.ts +211 -74
- package/dist/index.js +496 -78
- package/dist/mcp/run-stdio.cjs +1377 -478
- package/dist/mcp/run-stdio.js +80 -32
- package/dist/{optional-cli-6GGESWGE.js → optional-cli-2YDQQCCD.js} +5 -5
- package/dist/{optional-cli-EMSZBYDE.js → optional-cli-USD6PROE.js} +4 -4
- package/dist/{orchestrator-NCA4LSCC.js → orchestrator-B4STIW4B.js} +14 -14
- package/dist/{orchestrator-H3DSZ5RM.js → orchestrator-VQ4HRYVB.js} +13 -13
- package/dist/{run-PCX5QWR4.js → run-7QMRYP3F.js} +3 -1
- package/dist/{run-TB7RBII2.js → run-UPNCCRCN.js} +3 -1
- package/dist/{thread-store-PLNIWFZ4.js → thread-store-3F7GR64A.js} +1 -1
- package/dist/{thread-store-7BBA63KV.js → thread-store-JRSL4HQY.js} +1 -1
- package/dist/{workspaces-MGKEAYNM.js → workspaces-47WQL5IG.js} +6 -6
- package/dist/{workspaces-2V5UYPYC.js → workspaces-75FD4QUR.js} +6 -6
- package/dist/{worktree-XJKLDYOL.js → worktree-G3E6WP66.js} +11 -9
- package/dist/{worktree-THAXW5U7.js → worktree-PDNPL5CQ.js} +11 -9
- package/dist/{worktree-exclude-RXZPTCNH.js → worktree-exclude-INRDQFWV.js} +2 -2
- package/dist/{worktree-exclude-5N2KTYIT.js → worktree-exclude-P5NJODWP.js} +2 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_ABLETIME_HOST,
|
|
3
3
|
normalizeAbleTimeHost
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V76MQ7MH.js";
|
|
5
5
|
import {
|
|
6
6
|
httpFetch
|
|
7
7
|
} from "./chunk-JAT3JFOS.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
getAbleTimeHost,
|
|
11
11
|
loadAppSettings,
|
|
12
12
|
saveAbleTimeConnection
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FZKAAAEB.js";
|
|
14
14
|
|
|
15
15
|
// src/integrations/abletime-oauth.ts
|
|
16
16
|
import { createHash, randomBytes } from "crypto";
|
|
@@ -280,7 +280,7 @@ async function startAbleTimeOAuth(opts) {
|
|
|
280
280
|
persistAbleTimeTokens(data, { host });
|
|
281
281
|
const token = data.access_token.trim();
|
|
282
282
|
try {
|
|
283
|
-
const { getAbleTimeOrientation } = await import("./abletime-
|
|
283
|
+
const { getAbleTimeOrientation } = await import("./abletime-ICW6Q2AB.js");
|
|
284
284
|
const orientation = await getAbleTimeOrientation({ token, host });
|
|
285
285
|
return saveAbleTimeConnection({
|
|
286
286
|
accessToken: token,
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
getAbleTimeHost,
|
|
8
8
|
isAbleTimeConnected
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IFU4W4C4.js";
|
|
10
10
|
|
|
11
11
|
// src/integrations/abletime-mcp.ts
|
|
12
12
|
var DEFAULT_ABLETIME_HOST = "https://track.abletime.com";
|
|
@@ -155,7 +155,7 @@ function textsFromUnknown(value) {
|
|
|
155
155
|
return "";
|
|
156
156
|
}
|
|
157
157
|
async function abletimeMcpRequest(method, params, opts) {
|
|
158
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
158
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-P3KPPJE4.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
159
159
|
if (!rawToken?.trim()) {
|
|
160
160
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
161
161
|
}
|
|
@@ -226,9 +226,9 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
226
226
|
if (!opts?.token && !isAbleTimeConnected()) {
|
|
227
227
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
228
228
|
}
|
|
229
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
229
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-P3KPPJE4.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
230
230
|
if (rawToken && ableTimeUsesRest(rawToken)) {
|
|
231
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
231
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-DQ3PNKXP.js");
|
|
232
232
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
233
233
|
}
|
|
234
234
|
const requestOpts = { ...opts, pm: opts?.pm ?? abletimeToolUsesPm(name) };
|
|
@@ -244,7 +244,7 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
244
244
|
return await call();
|
|
245
245
|
}
|
|
246
246
|
if (rawToken && ableTimeUsesRest(rawToken) && isAbleTimeRejectedCredential(message)) {
|
|
247
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
247
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-DQ3PNKXP.js");
|
|
248
248
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
249
249
|
}
|
|
250
250
|
throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import {
|
|
4
4
|
abletimeRestUrl,
|
|
5
5
|
textFromAbleTimeDoc
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HHPTGIKS.js";
|
|
7
7
|
import {
|
|
8
8
|
assertAbleTimeCredential,
|
|
9
9
|
callAbleTimeTool,
|
|
10
10
|
normalizeAbleTimeHost,
|
|
11
11
|
rewriteAbleTimeError
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-5OQONGHO.js";
|
|
13
13
|
import {
|
|
14
14
|
httpFetch
|
|
15
15
|
} from "./chunk-2GPQZZLY.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
getAbleTimeHost,
|
|
23
23
|
isAbleTimeConnected,
|
|
24
24
|
saveAbleTimeConnection
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-IFU4W4C4.js";
|
|
26
26
|
|
|
27
27
|
// src/integrations/issue-attachments.ts
|
|
28
28
|
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
resolveCommandBinarySync,
|
|
7
7
|
run,
|
|
8
8
|
withExportedPath
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-YBTSZ2SW.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveAgentExecutable
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-IFU4W4C4.js";
|
|
13
13
|
|
|
14
14
|
// src/agents/install.ts
|
|
15
15
|
import { existsSync } from "fs";
|
|
@@ -267,7 +267,7 @@ async function loginAgent(agent) {
|
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
269
|
async function loginManagedAccount(accountId) {
|
|
270
|
-
const { loadAppSettings } = await import("./app-settings-
|
|
270
|
+
const { loadAppSettings } = await import("./app-settings-KMPVI2B7.js");
|
|
271
271
|
const { loginEnvPrefix } = await import("./managed-accounts-PITLFLKU.js");
|
|
272
272
|
const account = loadAppSettings().accounts.accounts.find((a) => a.id === accountId);
|
|
273
273
|
if (!account) {
|
|
@@ -1105,6 +1105,7 @@ function normalizeThread(raw) {
|
|
|
1105
1105
|
quotaContinuedFromId: raw.quotaContinuedFromId ?? null,
|
|
1106
1106
|
accountId: raw.accountId === null ? null : typeof raw.accountId === "string" && raw.accountId.trim() ? raw.accountId.trim() : void 0,
|
|
1107
1107
|
archivedAt: typeof raw.archivedAt === "string" && raw.archivedAt.trim() ? raw.archivedAt.trim() : void 0,
|
|
1108
|
+
ephemeralAutomationId: typeof raw.ephemeralAutomationId === "string" && raw.ephemeralAutomationId.trim() ? raw.ephemeralAutomationId.trim() : void 0,
|
|
1108
1109
|
compactedMessages: Array.isArray(raw.compactedMessages) ? raw.compactedMessages : void 0
|
|
1109
1110
|
};
|
|
1110
1111
|
}
|
|
@@ -1293,6 +1294,7 @@ function updateThread(id, patch) {
|
|
|
1293
1294
|
} else {
|
|
1294
1295
|
delete next.archivedAt;
|
|
1295
1296
|
}
|
|
1297
|
+
if (!next.ephemeralAutomationId?.trim()) delete next.ephemeralAutomationId;
|
|
1296
1298
|
writeThread(next);
|
|
1297
1299
|
return next;
|
|
1298
1300
|
}
|
|
@@ -2,17 +2,17 @@ import {
|
|
|
2
2
|
compactSummaryPart,
|
|
3
3
|
isInternalAgentStatusText,
|
|
4
4
|
lastAssistantMessageText
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QIC2JXHW.js";
|
|
6
6
|
import {
|
|
7
7
|
isCloudCoordinatorThread,
|
|
8
8
|
isGlobalThread,
|
|
9
9
|
isOrchestratorThread,
|
|
10
10
|
isSlackCoordinatorThread
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-H6GXYV5Q.js";
|
|
12
12
|
import {
|
|
13
13
|
mergeAgentGitAuthEnv,
|
|
14
14
|
resolveAgentGitAuthEnv
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UWJUARFA.js";
|
|
16
16
|
import {
|
|
17
17
|
REVIEW_TAB_TITLE,
|
|
18
18
|
allocateTeamName,
|
|
@@ -24,10 +24,10 @@ import {
|
|
|
24
24
|
updateThread,
|
|
25
25
|
worktreeNameFromPath,
|
|
26
26
|
writeThread
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-IFWGG2M2.js";
|
|
28
28
|
import {
|
|
29
29
|
ensureWorktreeSideboardIgnored
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-QKHEVSB5.js";
|
|
31
31
|
import {
|
|
32
32
|
clipToolResultForStore
|
|
33
33
|
} from "./chunk-5XNT6BCG.js";
|
|
@@ -40,11 +40,11 @@ import {
|
|
|
40
40
|
import {
|
|
41
41
|
ensureAgentPath,
|
|
42
42
|
run
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-2TUE6JKQ.js";
|
|
44
44
|
import {
|
|
45
45
|
assertOrchestratorCapableAgent,
|
|
46
46
|
contextTokens
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-FZKAAAEB.js";
|
|
48
48
|
import {
|
|
49
49
|
stripNestedElectronEnv
|
|
50
50
|
} from "./chunk-4TR3HZFT.js";
|
|
@@ -1808,7 +1808,7 @@ var PORT_RANGE_SIZE = 10;
|
|
|
1808
1808
|
var RECLAIM_RETRY_DELAY_MS = 40;
|
|
1809
1809
|
var RECLAIM_TRIES = 8;
|
|
1810
1810
|
async function killReclaimable(ports, worktreePath, signal) {
|
|
1811
|
-
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-
|
|
1811
|
+
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-CNT3VL3S.js");
|
|
1812
1812
|
if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
|
|
1813
1813
|
else killListenersOnPorts2(ports);
|
|
1814
1814
|
}
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
resolveCommandBinarySync,
|
|
5
5
|
run,
|
|
6
6
|
withExportedPath
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2TUE6JKQ.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveAgentExecutable
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FZKAAAEB.js";
|
|
11
11
|
|
|
12
12
|
// src/agents/install.ts
|
|
13
13
|
import { existsSync } from "fs";
|
|
@@ -265,7 +265,7 @@ async function loginAgent(agent) {
|
|
|
265
265
|
};
|
|
266
266
|
}
|
|
267
267
|
async function loginManagedAccount(accountId) {
|
|
268
|
-
const { loadAppSettings } = await import("./app-settings-
|
|
268
|
+
const { loadAppSettings } = await import("./app-settings-P3H4SEIK.js");
|
|
269
269
|
const { loginEnvPrefix } = await import("./managed-accounts-JJTAKHMG.js");
|
|
270
270
|
const account = loadAppSettings().accounts.accounts.find((a) => a.id === accountId);
|
|
271
271
|
if (!account) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
abletimeRestUrl,
|
|
3
3
|
textFromAbleTimeDoc
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DFUXW2IT.js";
|
|
5
5
|
import {
|
|
6
6
|
assertAbleTimeCredential,
|
|
7
7
|
callAbleTimeTool,
|
|
8
8
|
normalizeAbleTimeHost,
|
|
9
9
|
rewriteAbleTimeError
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-V76MQ7MH.js";
|
|
11
11
|
import {
|
|
12
12
|
httpFetch
|
|
13
13
|
} from "./chunk-JAT3JFOS.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
getAbleTimeHost,
|
|
21
21
|
isAbleTimeConnected,
|
|
22
22
|
saveAbleTimeConnection
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-FZKAAAEB.js";
|
|
24
24
|
|
|
25
25
|
// src/integrations/issue-attachments.ts
|
|
26
26
|
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
normalizeAbleTimeCredential,
|
|
5
5
|
normalizeAbleTimeHost,
|
|
6
6
|
rewriteAbleTimeError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-V76MQ7MH.js";
|
|
8
8
|
import {
|
|
9
9
|
httpFetch
|
|
10
10
|
} from "./chunk-JAT3JFOS.js";
|
|
11
11
|
import {
|
|
12
12
|
getAbleTimeAccessToken,
|
|
13
13
|
getAbleTimeHost
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FZKAAAEB.js";
|
|
15
15
|
|
|
16
16
|
// src/integrations/abletime-rest.ts
|
|
17
17
|
var ABLETIME_REST_PREFIX = "/api/public/v2";
|
|
@@ -566,13 +566,13 @@ function toolDescription(name, input) {
|
|
|
566
566
|
else if (/notify_orchestrator$/i.test(name)) return "Notify orchestrator";
|
|
567
567
|
else if (/set_workspace_tags$/i.test(name)) return "Set workspace tags";
|
|
568
568
|
if (/(?:list|set|delete)_env$/i.test(name)) return /list_env$/i.test(name) ? "List env vars" : /set_env$/i.test(name) ? "Set env var" : "Delete env var";
|
|
569
|
-
if (/list_schedules$/i.test(name)) return "List
|
|
569
|
+
if (/list_schedules$/i.test(name)) return "List automations";
|
|
570
570
|
if (/create_schedule$/i.test(name)) {
|
|
571
|
-
return str(input?.name) ? `
|
|
571
|
+
return str(input?.name) ? `Automation ${str(input?.name)}` : "Create automation";
|
|
572
572
|
}
|
|
573
|
-
if (/update_schedule$/i.test(name)) return "Update
|
|
574
|
-
if (/delete_schedule$/i.test(name)) return "Delete
|
|
575
|
-
if (/run_schedule$/i.test(name)) return "Run
|
|
573
|
+
if (/update_schedule$/i.test(name)) return "Update automation";
|
|
574
|
+
if (/delete_schedule$/i.test(name)) return "Delete automation";
|
|
575
|
+
if (/run_schedule$/i.test(name)) return "Run automation";
|
|
576
576
|
if (isSkillToolName(name)) {
|
|
577
577
|
const cmd = skillCommandFromInput(input);
|
|
578
578
|
return cmd ? `Using /${cmd}` : "Using skill";
|
|
@@ -876,7 +876,9 @@ function planHistoryRetention(archived, thresholds = {}) {
|
|
|
876
876
|
if (archivedUpdatedMs(thread) < cutoff) expiredIds.add(thread.id);
|
|
877
877
|
}
|
|
878
878
|
}
|
|
879
|
-
const remaining = oldestFirst.filter(
|
|
879
|
+
const remaining = oldestFirst.filter(
|
|
880
|
+
(t) => !expiredIds.has(t.id) && !t.ephemeralAutomationId?.trim()
|
|
881
|
+
);
|
|
880
882
|
const overflow = remaining.length > maxCount ? remaining.slice(0, remaining.length - maxCount) : [];
|
|
881
883
|
const stripIds = [];
|
|
882
884
|
const purgeIds = [...expiredIds];
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
canonicalizeRepoPath,
|
|
3
3
|
ensureGhPreferOrigin,
|
|
4
|
+
formatRemoteTag,
|
|
4
5
|
resolveGithubRepoSlug,
|
|
6
|
+
resolveOriginRemote,
|
|
5
7
|
resolveRepoRoot
|
|
6
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UWJUARFA.js";
|
|
7
9
|
import {
|
|
8
10
|
allocateTeamName,
|
|
9
11
|
createEmptyThread,
|
|
@@ -12,7 +14,7 @@ import {
|
|
|
12
14
|
teamSlugFromName,
|
|
13
15
|
updateThread,
|
|
14
16
|
writeThread
|
|
15
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IFWGG2M2.js";
|
|
16
18
|
import {
|
|
17
19
|
ATTACHMENTS_DIR,
|
|
18
20
|
attachmentsGitignoreBody
|
|
@@ -29,7 +31,7 @@ import {
|
|
|
29
31
|
resolveThreadDefaults,
|
|
30
32
|
resolveViewerProfile,
|
|
31
33
|
resolveViewerProfileForRepo
|
|
32
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-FZKAAAEB.js";
|
|
33
35
|
import {
|
|
34
36
|
appDataDir,
|
|
35
37
|
globalAgentCwd,
|
|
@@ -354,7 +356,7 @@ import { join as join2 } from "path";
|
|
|
354
356
|
function formatWorkspaceInventory(workspaces) {
|
|
355
357
|
if (workspaces.length === 0) return "(no registered workspaces)";
|
|
356
358
|
return workspaces.map((w) => {
|
|
357
|
-
const slug = w.githubSlug?.trim() ? ` github:${w.githubSlug.trim()}` : "";
|
|
359
|
+
const slug = w.originRemote ? ` ${formatRemoteTag(w.originRemote)}` : w.githubSlug?.trim() ? ` github:${w.githubSlug.trim()}` : "";
|
|
358
360
|
const profile = formatWorkspaceProfileSuffix(safeViewerProfile(w.path));
|
|
359
361
|
return `- ${w.name}: ${w.path}${slug}${profile}`;
|
|
360
362
|
}).join("\n");
|
|
@@ -362,8 +364,9 @@ function formatWorkspaceInventory(workspaces) {
|
|
|
362
364
|
async function enrichWorkspacesWithGithub(workspaces) {
|
|
363
365
|
return Promise.all(
|
|
364
366
|
workspaces.map(async (w) => {
|
|
365
|
-
const
|
|
366
|
-
|
|
367
|
+
const originRemote = await resolveOriginRemote(w.path).catch(() => null);
|
|
368
|
+
const githubSlug = originRemote ? originRemote.forge === "github" ? originRemote.slug : null : await resolveGithubRepoSlug(w.path).catch(() => null);
|
|
369
|
+
return { ...w, githubSlug, originRemote };
|
|
367
370
|
})
|
|
368
371
|
);
|
|
369
372
|
}
|
|
@@ -374,8 +377,8 @@ function coordinatorGreenfieldPlaybook(reposDir) {
|
|
|
374
377
|
"- Examples:",
|
|
375
378
|
` - Clone: \`git clone <url> ${reposDir}/<name>\``,
|
|
376
379
|
` - New GitHub repo: \`gh repo create <owner>/<name> --private --clone -- ${reposDir}/<name>\` (or mkdir + git init + gh repo create + remote add + push)`,
|
|
377
|
-
"- Then: add_project with that absolute path \u2192 create_workspace (repoPath + parentChatId) \u2192 send_to_chat (build) \u2192 wait_for_turn (loop while stillRunning) \u2192 ask_git create-draft (
|
|
378
|
-
"- Always target the child worktree's **origin** (`github:`
|
|
380
|
+
"- Then: add_project with that absolute path \u2192 create_workspace (repoPath + parentChatId) \u2192 send_to_chat (build) \u2192 wait_for_turn (loop while stillRunning) \u2192 ask_git create-draft (GitHub: `gh pr create --draft --assignee @me -R <slug>`; Cursor: `origin pr create --draft --push -R <slug>`; Entire: `entire trail create --title`).",
|
|
381
|
+
"- Always target the child worktree's **origin** (`github:`, `cursor:`, or `entire:` from list_projects / `git remote get-url origin` in that worktree). Never open PRs against `upstream`.",
|
|
379
382
|
"- Do coding work in the child worktree thread, not by editing files in this home cwd."
|
|
380
383
|
].join("\n");
|
|
381
384
|
}
|
|
@@ -383,9 +386,9 @@ var COORDINATOR_TOOL_PLAYBOOK = [
|
|
|
383
386
|
"Role: you oversee Sideboard workspaces across registered repos. A workspace is one isolated checkout and can have many agent chats on those same files. You do not live inside one of those worktrees. Do not treat a workspace as one agent.",
|
|
384
387
|
"Sideboard MCP (fleet control \u2014 prefer these for status and orchestration):",
|
|
385
388
|
"Discover:",
|
|
386
|
-
"- list_projects \u2014 registered repos (path + github
|
|
389
|
+
"- list_projects \u2014 registered repos (path + that repo's origin host:owner/repo, such as github:, cursor:, or entire:, and project context when set). Projects do not share one git host. Use account / project context to pick the right repo for tickets or reviews.",
|
|
387
390
|
"- list_board \u2014 Home Kanban of workspaces (New / Draft / Review / Approved / Merged; one card per checkout). Sibling chats on a card are separate agents, not one agent. Path to merge: no PR \u2192 draft PR \u2192 open PR \u2192 approved \u2192 merged. Archive removes the card to Settings \u2192 History (list_archive to browse, restore_workspace to bring it back). Queued/running are activity on the card, not columns. Orchestration chats are not on the board. Filters: query, repoPath, kind, column, limit.",
|
|
388
|
-
|
|
391
|
+
'- list_branches / list_prs / list_issues \u2014 pass repoPath from list_projects. Review is PRs (the surface for assigned ticket work), not the tickets: "Get me N tickets to review" \u2192 list_prs(queue=review, limit=N) then create_workspace sourceType=pr. That is open non-draft PRs labeled with this project\'s ready-for-review GitHub label (Settings \u2192 Projects; default eng-review) with no individual user reviewer yet. A team request (engineering-team) is not a claim \u2014 the viewer is on that team and can pick it up; claimed means an individual account is the reviewer. Bots ignored. Use Settings \u2192 Agents / Projects context (roles, teams, labels \u2014 freeform text; project adds to account) to prefer the right queues. queue=mine is review-requested:@me; queue=approved|changes uses those labels. Also: state, label, reviewer=me|unassigned|login, query, limit default 40 max 250; raise limit or tighten when truncated. list_issues (query, assignee=me|unassigned|all|user, limit default 40 max 250) lists Linear, AbleTime, or GitHub tickets. Cursor Origin has no issues; a Cursor repo uses Linear or AbleTime (unavailableReason otherwise) \u2014 do not use it for that review-inbox ask. Entire tickets are Trails (`entire trail`), not GitHub Issues. When they ask for tickets to work on, follow their context (assignee=me or unassigned as it says).',
|
|
389
392
|
"- Find work: when they ask to find work, pick up tickets, or list reviews, use Settings \u2192 Agents (account) plus Settings \u2192 Projects (per-repo) context. Tickets \u2192 Sideboard list_issues / linear_* (Account Linear). Reviews \u2192 list_prs(queue=review). Do not call Claude Linear MCP or any other vendor Linear MCP \u2014 those HTTP connectors hang or flap on the first turn. If a vendor MCP is down or reconnecting, ignore it and keep going with Sideboard tools. A failed Claude connector is not a Sideboard outage \u2014 do not mention it when the Account connection works. Show the options \u2014 do not create_workspace or start unless they also asked to start (e.g. \u201Cfind me work and start it\u201D). Do not start this unprompted. To change that context, show the proposed text, ask_user (Save this context / Do not save), wait, then update_viewer_context with confirmed=true. Never write it without confirmation.",
|
|
390
393
|
"- Ticket updates: list_issues / linear_search_issues / github_search_issues with updatedSince (yesterday, 2d, or ISO). One call returns new assignments, ticket edits, and new comments \u2014 do not get_issue every ticket just to check for comments. kind=created vs updated distinguishes new tickets from existing ones.",
|
|
391
394
|
"- linear_* (when Linear is connected) \u2014 list_teams for team key/states; linear_list_projects for project names; get/search include the project a ticket is on; get/create/update/comment with ENG-123. Worktree agents have the same Account tools \u2014 prefer they comment, update status, and create spin-offs (parent=) on their own ticket when they were asked to do the work. When reviewing a PR or ticket, do not comment or update until the user types a next step \u2014 they should work through the feedback in chat first. Do not tell the child to ask_user after the review. Scope errors: reconnect Linear in Account settings. Prefer these over any Linear MCP the CLI may still list. Worktree agents use the Claude Linear connector only when Account Linear is not set or the Sideboard call fails, and they do not mention that connector startup failure when Sideboard works.",
|
|
@@ -399,7 +402,7 @@ var COORDINATOR_TOOL_PLAYBOOK = [
|
|
|
399
402
|
"- get_viewer_context / update_viewer_context \u2014 read or replace Settings \u2192 Agents (account) and Settings \u2192 Projects (per-repo) context. You can update a project: pass scope=project and repoPath from list_projects (this cwd is not a project). update_viewer_context requires confirmed=true after ask_user. Never write context unprompted.",
|
|
400
403
|
"- list_env / set_env / delete_env \u2014 Settings \u2192 Environment. scope=project requires repoPath from list_projects and stores the key under that project prefix (the project name, uppercased, plus _). APPLE_ID for sideboard is SIDEBOARD_APPLE_ID. scope=account is shared by every project and is not prefixed. list_env returns names only.",
|
|
401
404
|
"- set_caffeinate \u2014 keep this Mac awake across turns (macOS caffeinate). Turn on for phone remote / away-from-keyboard work, overnight schedules, or when the user will be away. Turn OFF when they say they are done, wrapping up, going to sleep, or no longer need the machine awake. Closing this chat also releases it.",
|
|
402
|
-
"- list_schedules / create_schedule / update_schedule / delete_schedule / run_schedule \u2014
|
|
405
|
+
"- list_schedules / create_schedule / update_schedule / delete_schedule / run_schedule \u2014 automations that send a prompt to a chat (chatId or self) or start a new Global chat (omit chatId). One-shot `at`, interval `every` (15m/1h/6h/1d), or 5-field `cron`. Recurring jobs without chatId open a new chat each run and archive it when that run finishes (History keeps the latest run for that automation). Worktree agents have the same tools (`chatId=self` continues that coding chat). Jobs fire only while Sideboard.app is running; sleep skips until wake. Creating or enabling a future job turns on Settings \u2192 Advanced \u2192 Caffeinate while automations are enabled (or call set_caffeinate). The desktop lists them in the sidebar after Board.",
|
|
403
406
|
"Projects:",
|
|
404
407
|
"- add_project / remove_project \u2014 register or unregister a git repo",
|
|
405
408
|
"Workspaces and chats:",
|
|
@@ -422,11 +425,11 @@ var COORDINATOR_TOOL_PLAYBOOK = [
|
|
|
422
425
|
"- list_run_scripts / run_dev_script / stop_dev_script / get_run_log \u2014 start/stop named run scripts and read the Run-tab terminal (tail). Pass name so desktop and mobile (or any pair) can run at once; each gets its own port. run_dev_script returns {url, port, preview} (SIDEBOARD_PORT). preview=url \u2192 tell the worktree agent to open that URL; preview=window \u2192 Electron: the native window is the app (url is renderer/HMR only). Never localhost:3000. list_run_scripts active[].url if already running.",
|
|
423
426
|
"Inspect / review / PRs:",
|
|
424
427
|
"- get_diff \u2014 compact diff summary",
|
|
425
|
-
"- get_pr_checks \u2014 snapshot of a worktree thread's PR checks (null = no PR). Use this to inspect status. If the user gave a goal, the worktree agent watches with `gh pr checks --watch` \u2014 do not poll for the human.",
|
|
428
|
+
"- get_pr_checks \u2014 snapshot of a worktree thread's PR checks (null = no PR). Use this to inspect status. If the user gave a goal, the worktree agent watches with `gh pr checks --watch` on GitHub, `origin pr watch` on Cursor, or `entire trail watch` on Entire \u2014 do not poll for the human.",
|
|
426
429
|
'- request_review \u2014 run a Review on a worktree thread. Reuses the only unused idle agent when the checkout has a single chat with no messages; otherwise opens a Review tab (attaches .claude/skills/review/SKILL.md when present, else .context/review.md copied from .sideboard/review.md / stock; sends "Review changes in this workspace."); then wait_for_turn (loop while stillRunning) / get_turn_result on the returned id. The review stays in that chat so they can read it and type next steps \u2014 do not tell the child to comment or update the PR or ticket.',
|
|
427
430
|
"- ask_git \u2014 commit & push, open a draft PR, mark ready for review, resolve conflicts, or merge \u2014 same prompts as the desktop git buttons (Resolve, Create PR, \u2026). Always steers the worktree agent; then wait_for_turn (loop while stillRunning). Prefer this over paraphrasing. If the user gave a goal (Greptile 5/5, CI green), send_to_chat that goal so the worktree agent enters the watch-fix-push loop \u2014 do not tell the human to poll.",
|
|
428
431
|
'- Merge (`ask_git` action=merge / send_to_chat "Merge PR.") only when the user explicitly asked to merge that PR. Do not merge because the work looks done, CI is green, or a typical flow includes it.',
|
|
429
|
-
'- Or send_to_chat with those exact phrases: "Commit and push.", "Commit, push, and open a draft PR.", "Ready for review.", "Merge PR." Prefer ask_git resolve-conflicts (it names the actual PR base \u2014 not always main) over paraphrasing.
|
|
432
|
+
'- Or send_to_chat with those exact phrases: "Commit and push.", "Commit, push, and open a draft PR.", "Ready for review.", "Merge PR." Prefer ask_git resolve-conflicts (it names the actual PR base \u2014 not always main) over paraphrasing. Draft PRs follow that workspace origin: GitHub (`github:`) uses `gh pr create --draft --assignee @me -R <slug>`; Cursor (`cursor:`) uses `origin pr create --draft --push -R <slug>`; Entire (`entire:`) uses `entire trail create --title` (Trails have no draft state). Never upstream. Never run git, gh, origin, or entire from this orchestration cwd, and never merge the PR yourself.',
|
|
430
433
|
"Process guides:",
|
|
431
434
|
"- Long child jobs (pack, test, deploy, anything that may run more than ~30s): workers always have `/long-running` (Sideboard product skill). Tell them to detach and wait; they may `stop_job` if it hangs or is doing the wrong thing; do not ask the human to poll.",
|
|
432
435
|
"- Recurring multi-item / fan-out: if the child worktree has `.claude/skills/graph-engineering/SKILL.md`, tell the worker to follow it (`/graph-engineering`). Judge first; state on disk; grow the rulebook; do not patch three threads.",
|
|
@@ -1076,6 +1079,13 @@ async function archiveRemovedWorkspaceChats(threads, archive) {
|
|
|
1076
1079
|
}
|
|
1077
1080
|
|
|
1078
1081
|
export {
|
|
1082
|
+
isImageFilePath,
|
|
1083
|
+
attachmentFromAbsolutePath,
|
|
1084
|
+
stageAbsolutePathsAsAttachments,
|
|
1085
|
+
stageBuffersAsAttachments,
|
|
1086
|
+
attachmentsFromBuffers,
|
|
1087
|
+
persistPendingFileAttachments,
|
|
1088
|
+
attachmentsFromWorktreePaths,
|
|
1079
1089
|
CLOUD_ORCHESTRATOR_GOAL,
|
|
1080
1090
|
SIDEBOARD_FORCE_STOP,
|
|
1081
1091
|
CLOUD_COORDINATOR_BUSY_REPLY,
|
|
@@ -1084,13 +1094,6 @@ export {
|
|
|
1084
1094
|
CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY,
|
|
1085
1095
|
CLOUD_COORDINATOR_CANCELED_REPLY,
|
|
1086
1096
|
parseForceStopMessage,
|
|
1087
|
-
isImageFilePath,
|
|
1088
|
-
attachmentFromAbsolutePath,
|
|
1089
|
-
stageAbsolutePathsAsAttachments,
|
|
1090
|
-
stageBuffersAsAttachments,
|
|
1091
|
-
attachmentsFromBuffers,
|
|
1092
|
-
persistPendingFileAttachments,
|
|
1093
|
-
attachmentsFromWorktreePaths,
|
|
1094
1097
|
sameWorkspacePath,
|
|
1095
1098
|
isRemovedWorkspace,
|
|
1096
1099
|
archivesWithRemovedWorkspace,
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
normalizeAbleTimeCredential,
|
|
7
7
|
normalizeAbleTimeHost,
|
|
8
8
|
rewriteAbleTimeError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5OQONGHO.js";
|
|
10
10
|
import {
|
|
11
11
|
httpFetch
|
|
12
12
|
} from "./chunk-2GPQZZLY.js";
|
|
13
13
|
import {
|
|
14
14
|
getAbleTimeAccessToken,
|
|
15
15
|
getAbleTimeHost
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-IFU4W4C4.js";
|
|
17
17
|
|
|
18
18
|
// src/integrations/abletime-rest.ts
|
|
19
19
|
var ABLETIME_REST_PREFIX = "/api/public/v2";
|
|
@@ -661,7 +661,9 @@ function planHistoryRetention(archived, thresholds = {}) {
|
|
|
661
661
|
if (archivedUpdatedMs(thread) < cutoff) expiredIds.add(thread.id);
|
|
662
662
|
}
|
|
663
663
|
}
|
|
664
|
-
const remaining = oldestFirst.filter(
|
|
664
|
+
const remaining = oldestFirst.filter(
|
|
665
|
+
(t) => !expiredIds.has(t.id) && !t.ephemeralAutomationId?.trim()
|
|
666
|
+
);
|
|
665
667
|
const overflow = remaining.length > maxCount ? remaining.slice(0, remaining.length - maxCount) : [];
|
|
666
668
|
const stripIds = [];
|
|
667
669
|
const purgeIds = [...expiredIds];
|
|
@@ -967,6 +967,12 @@ function workspaceNameLabel(thread) {
|
|
|
967
967
|
if (repo && worktreeNameFromPath(repo).toLowerCase() === dir.toLowerCase()) return null;
|
|
968
968
|
return agentNicknameFromWorktreePath(path) ?? dir;
|
|
969
969
|
}
|
|
970
|
+
function workspaceRowLabel(threads) {
|
|
971
|
+
if (threads.length === 0) return { label: "Worktree" };
|
|
972
|
+
const label = worktreeAnchorLabel(threads).title;
|
|
973
|
+
const named = workspaceNameLabel(threads[0]);
|
|
974
|
+
return named && named !== label ? { label, workspace: named } : { label };
|
|
975
|
+
}
|
|
970
976
|
function worktreeIdentityTitles(thread, parentTitle) {
|
|
971
977
|
const out = [];
|
|
972
978
|
const push = (value) => {
|
|
@@ -1095,6 +1101,7 @@ function normalizeThread(raw) {
|
|
|
1095
1101
|
quotaContinuedFromId: raw.quotaContinuedFromId ?? null,
|
|
1096
1102
|
accountId: raw.accountId === null ? null : typeof raw.accountId === "string" && raw.accountId.trim() ? raw.accountId.trim() : void 0,
|
|
1097
1103
|
archivedAt: typeof raw.archivedAt === "string" && raw.archivedAt.trim() ? raw.archivedAt.trim() : void 0,
|
|
1104
|
+
ephemeralAutomationId: typeof raw.ephemeralAutomationId === "string" && raw.ephemeralAutomationId.trim() ? raw.ephemeralAutomationId.trim() : void 0,
|
|
1098
1105
|
compactedMessages: Array.isArray(raw.compactedMessages) ? raw.compactedMessages : void 0
|
|
1099
1106
|
};
|
|
1100
1107
|
}
|
|
@@ -1283,6 +1290,7 @@ function updateThread(id, patch) {
|
|
|
1283
1290
|
} else {
|
|
1284
1291
|
delete next.archivedAt;
|
|
1285
1292
|
}
|
|
1293
|
+
if (!next.ephemeralAutomationId?.trim()) delete next.ephemeralAutomationId;
|
|
1286
1294
|
writeThread(next);
|
|
1287
1295
|
return next;
|
|
1288
1296
|
}
|
|
@@ -1326,6 +1334,7 @@ export {
|
|
|
1326
1334
|
worktreeAnchorLabel,
|
|
1327
1335
|
agentNicknameFromWorktreePath,
|
|
1328
1336
|
workspaceNameLabel,
|
|
1337
|
+
workspaceRowLabel,
|
|
1329
1338
|
worktreeIdentityTitles,
|
|
1330
1339
|
isWorktreeIdentityTitle,
|
|
1331
1340
|
resolveThreadEffort,
|
|
@@ -3,22 +3,22 @@ import {
|
|
|
3
3
|
brightsyMcpServerName,
|
|
4
4
|
ensureCliTeamTracked,
|
|
5
5
|
ensureConnectedBrightsyTeamTokens
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-S5CJUIPY.js";
|
|
7
7
|
import {
|
|
8
8
|
looksLikeConversationSummary,
|
|
9
9
|
looksLikeSkillBody,
|
|
10
10
|
skillCommandFromBody,
|
|
11
11
|
withEventParentId
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QIC2JXHW.js";
|
|
13
13
|
import {
|
|
14
14
|
isOrchestratorThread
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-H6GXYV5Q.js";
|
|
16
16
|
import {
|
|
17
17
|
codexUnattendedGitConfigArgs,
|
|
18
18
|
mergeAgentGitAuthEnv,
|
|
19
19
|
resolveAgentGitAuthEnv,
|
|
20
20
|
resolveCodexGitWritableRoots
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-UWJUARFA.js";
|
|
22
22
|
import {
|
|
23
23
|
loadBrightsyConfig
|
|
24
24
|
} from "./chunk-RSA47QYR.js";
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
packagedMcpStdioPath,
|
|
46
46
|
parseCursorRunnerLine,
|
|
47
47
|
resolveNodeLaunch
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-ZHGMRBSC.js";
|
|
49
49
|
import {
|
|
50
50
|
extractJsonErrorMessage,
|
|
51
51
|
formatUnknownDetail,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
import {
|
|
56
56
|
githubAgentAuthReady,
|
|
57
57
|
run
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-2TUE6JKQ.js";
|
|
59
59
|
import {
|
|
60
60
|
AGENT_RPC_CLAUDE_SDK_SERVER,
|
|
61
61
|
AGENT_RPC_CWD_ENV,
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
loadAppSettings,
|
|
77
77
|
resolveAgentExecutable,
|
|
78
78
|
resolveClaudeExecutable
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-FZKAAAEB.js";
|
|
80
80
|
import {
|
|
81
81
|
isElectronLikeCommand,
|
|
82
82
|
unwrapStrippedElectronLaunch
|
|
@@ -2609,7 +2609,7 @@ var claudeAdapter = {
|
|
|
2609
2609
|
);
|
|
2610
2610
|
}
|
|
2611
2611
|
const mode = permissionMode(thread);
|
|
2612
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
2612
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-UPMXDQM7.js");
|
|
2613
2613
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
2614
2614
|
const rpc = worktreeAgentRpc(isOrchestrator);
|
|
2615
2615
|
const injectedServers = await buildInjectedMcpServers({
|