@sideboard-ai/core 0.1.273 → 0.1.275
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-4ZSDI4YP.js → abletime-VCVPSLSU.js} +4 -4
- package/dist/{abletime-JNQAHLHH.js → abletime-VRATUMDO.js} +4 -4
- package/dist/{abletime-oauth-4RXZH2KU.js → abletime-oauth-4C4G2J3R.js} +3 -3
- package/dist/{abletime-oauth-DCEIINYT.js → abletime-oauth-4K7MICAD.js} +3 -3
- package/dist/{abletime-rest-KVBJFVFD.js → abletime-rest-6N63ZVQ3.js} +3 -3
- package/dist/{abletime-rest-VN6PZ6P2.js → abletime-rest-PIBCNHF3.js} +3 -3
- package/dist/{agents-LAFFXBBZ.js → agents-2FOWVJCN.js} +4 -4
- package/dist/{agents-ZCO37SKG.js → agents-JBVJRDH3.js} +4 -4
- package/dist/{app-settings-RAC4PSSP.js → app-settings-EQQZQNYD.js} +1 -1
- package/dist/{app-settings-L5HGYXWJ.js → app-settings-NI4X5HW3.js} +1 -1
- package/dist/{chunk-UXI52MLJ.js → chunk-2J34G3WJ.js} +3 -3
- package/dist/{chunk-PTNGMA5C.js → chunk-A2G3ZBJS.js} +2 -2
- package/dist/{chunk-T47ARZ5Q.js → chunk-FELFTNH2.js} +25 -24
- package/dist/{chunk-OUBQH5GR.js → chunk-HOMZKYHF.js} +31 -29
- package/dist/{chunk-GONPMH36.js → chunk-IJDQKC5A.js} +5 -5
- package/dist/{chunk-USBZ7PH4.js → chunk-IPPY3FG5.js} +1 -1
- package/dist/{chunk-NWE3NOWQ.js → chunk-K7MWJLR7.js} +1 -1
- package/dist/{chunk-HO2T6BC3.js → chunk-MGS5T2A3.js} +31 -29
- package/dist/{chunk-ADWNK2JH.js → chunk-NIB2IZ6J.js} +5 -5
- package/dist/{chunk-AGXZAMOF.js → chunk-NQ7JMVSU.js} +2 -2
- package/dist/{chunk-JLDJGGCL.js → chunk-NT7RIWRR.js} +5 -5
- package/dist/{chunk-L6CYOON4.js → chunk-PZURG3XN.js} +5 -5
- package/dist/{chunk-LAIBYKZS.js → chunk-QINJKNLR.js} +3 -3
- package/dist/{chunk-2QUILREI.js → chunk-QTZO4LPU.js} +2 -2
- package/dist/{chunk-KZ2CDZBZ.js → chunk-R7HLXD4I.js} +3 -3
- package/dist/{chunk-N3LASDJM.js → chunk-SQOAFR2U.js} +26 -25
- package/dist/{chunk-OIENQEGG.js → chunk-WRIMAEF2.js} +67 -122
- package/dist/{chunk-DBFAFI5A.js → chunk-XKZAVGTT.js} +2 -2
- package/dist/{chunk-PAH7KDL2.js → chunk-YNTXWFXT.js} +67 -122
- package/dist/{conductor-3AQM67VK.js → conductor-GBCE37K4.js} +4 -4
- package/dist/{conductor-FLWACOVC.js → conductor-YYQKZAND.js} +4 -4
- package/dist/{coordinator-prompt-4KVA6XUX.js → coordinator-prompt-B3GLVXPP.js} +3 -3
- package/dist/{coordinator-prompt-MVUHFNSC.js → coordinator-prompt-SFZCZ3HR.js} +3 -3
- package/dist/{global-workspace-FR7QTLPK.js → global-workspace-7XEXTIHL.js} +3 -3
- package/dist/{global-workspace-34Z2IWYQ.js → global-workspace-N2YYJKA5.js} +3 -3
- package/dist/index.cjs +1700 -186
- package/dist/index.d.cts +99 -20
- package/dist/index.d.ts +99 -20
- package/dist/index.js +1583 -43
- package/dist/mcp/run-stdio.cjs +95 -141
- package/dist/mcp/run-stdio.js +11 -11
- package/dist/{orchestrator-YKSDWR6C.js → orchestrator-6QJLM6Y4.js} +6 -6
- package/dist/{orchestrator-K42IBMBE.js → orchestrator-QMKVXVUR.js} +6 -6
- package/dist/{workspaces-5GERYHDJ.js → workspaces-BJCHMGVG.js} +3 -3
- package/dist/{workspaces-2JBDUMM6.js → workspaces-PBB6HY2D.js} +3 -3
- package/dist/{worktree-ACW23KJ5.js → worktree-L57T3KH7.js} +2 -2
- package/dist/{worktree-C7RPVHZ7.js → worktree-Q6UJHG25.js} +2 -2
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
isGlobalThread,
|
|
9
9
|
isOrchestratorThread,
|
|
10
10
|
isSlackCoordinatorThread
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-A2G3ZBJS.js";
|
|
12
12
|
import {
|
|
13
13
|
allocateTeamName,
|
|
14
14
|
mergeAgentGitAuthEnv,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
resolveAgentGitAuthEnv,
|
|
17
17
|
takenSlugsFromThread,
|
|
18
18
|
worktreeNameFromPath
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-IPPY3FG5.js";
|
|
20
20
|
import {
|
|
21
21
|
createEmptyThread,
|
|
22
22
|
findThreadByRef,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
import {
|
|
44
44
|
assertOrchestratorCapableAgent,
|
|
45
45
|
contextTokens
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-YNTXWFXT.js";
|
|
47
47
|
import {
|
|
48
48
|
stripNestedElectronEnv
|
|
49
49
|
} from "./chunk-4TR3HZFT.js";
|
|
@@ -1194,6 +1194,31 @@ import {
|
|
|
1194
1194
|
} from "fs";
|
|
1195
1195
|
import { dirname as dirname3, join as join4 } from "path";
|
|
1196
1196
|
|
|
1197
|
+
// src/mcp/job-process.ts
|
|
1198
|
+
function jobAlive(pid) {
|
|
1199
|
+
if (!Number.isInteger(pid) || pid <= 0) return false;
|
|
1200
|
+
try {
|
|
1201
|
+
process.kill(pid, 0);
|
|
1202
|
+
return true;
|
|
1203
|
+
} catch {
|
|
1204
|
+
return false;
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
function processGroupAlive(pgid) {
|
|
1208
|
+
if (process.platform === "win32") return false;
|
|
1209
|
+
if (!Number.isInteger(pgid) || pgid <= 1) return false;
|
|
1210
|
+
try {
|
|
1211
|
+
process.kill(-pgid, 0);
|
|
1212
|
+
return true;
|
|
1213
|
+
} catch (err) {
|
|
1214
|
+
return Boolean(err && typeof err === "object" && "code" in err && err.code === "EPERM");
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
function jobTreeAlive(pid) {
|
|
1218
|
+
if (pid == null) return false;
|
|
1219
|
+
return jobAlive(pid) || processGroupAlive(pid);
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1197
1222
|
// src/orchestrator/task-state.ts
|
|
1198
1223
|
function isTerminalTaskState(state) {
|
|
1199
1224
|
return state !== "submitted" && state !== "working";
|
|
@@ -1299,29 +1324,6 @@ function sanitizeDetachedJobId(id) {
|
|
|
1299
1324
|
}
|
|
1300
1325
|
return s;
|
|
1301
1326
|
}
|
|
1302
|
-
function jobAlive(pid) {
|
|
1303
|
-
if (!Number.isInteger(pid) || pid <= 0) return false;
|
|
1304
|
-
try {
|
|
1305
|
-
process.kill(pid, 0);
|
|
1306
|
-
return true;
|
|
1307
|
-
} catch {
|
|
1308
|
-
return false;
|
|
1309
|
-
}
|
|
1310
|
-
}
|
|
1311
|
-
function processGroupAlive(pgid) {
|
|
1312
|
-
if (process.platform === "win32") return false;
|
|
1313
|
-
if (!Number.isInteger(pgid) || pgid <= 1) return false;
|
|
1314
|
-
try {
|
|
1315
|
-
process.kill(-pgid, 0);
|
|
1316
|
-
return true;
|
|
1317
|
-
} catch (err) {
|
|
1318
|
-
return Boolean(err && typeof err === "object" && "code" in err && err.code === "EPERM");
|
|
1319
|
-
}
|
|
1320
|
-
}
|
|
1321
|
-
function jobTreeAlive(pid) {
|
|
1322
|
-
if (pid == null) return false;
|
|
1323
|
-
return jobAlive(pid) || processGroupAlive(pid);
|
|
1324
|
-
}
|
|
1325
1327
|
function readIntFile(file) {
|
|
1326
1328
|
if (!existsSync3(file)) return null;
|
|
1327
1329
|
const n = Number.parseInt(readFileSync3(file, "utf8").trim(), 10);
|
|
@@ -1362,7 +1364,7 @@ function looksLikeDeferredDonePromise(text) {
|
|
|
1362
1364
|
if (!t || t.length > DEFERRED_DONE_MAX_CHARS) return false;
|
|
1363
1365
|
const unquoted = t.replace(/`[^`]*`/g, " ").replace(/["“”][^"“”]*["“”]/g, " ").replace(/\s+/g, " ").trim();
|
|
1364
1366
|
if (!unquoted) return false;
|
|
1365
|
-
return /\b(i['’]?ll|i will)\s+let you know\b/i.test(unquoted) || /\blet you know when\b/i.test(unquoted) || /\b(check back|ping me)\s+when\b/i.test(unquoted) || /\bi(?:['’]ll| will)\s+(report|update you)\s+when\b/i.test(unquoted) || /\
|
|
1367
|
+
return /\b(i['’]?ll|i will)\s+let you know\b/i.test(unquoted) || /\blet you know when\b/i.test(unquoted) || /\b(check back|ping me)\s+when\b/i.test(unquoted) || /\bi(?:['’]ll| will)\s+(report|update you)\s+when\b/i.test(unquoted) || /\bwill notify (?:me|you) when\b/i.test(unquoted) || /\bi(?:['’]ll| will) be notified when\b/i.test(unquoted) || /\bi(?:['’]ll| will)\s+(?:keep|continue)\s+(?:watching|waiting|polling|checking)\b/i.test(
|
|
1366
1368
|
unquoted
|
|
1367
1369
|
) || /\bi(?:['’]ll| will)\s+come back when\b/i.test(unquoted);
|
|
1368
1370
|
}
|
|
@@ -1406,7 +1408,7 @@ function formatJobStillRunningContinuePrompt(jobIds) {
|
|
|
1406
1408
|
function formatDeferredDoneContinuePrompt() {
|
|
1407
1409
|
return [
|
|
1408
1410
|
"You ended the turn after promising to report later, but no detached job is running.",
|
|
1409
|
-
"A native
|
|
1411
|
+
"A native CLI Task or bash notify does not resume this chat (Claude, Cursor, Codex, OpenCode).",
|
|
1410
1412
|
"If tests/pack/deploy still need to run: start once with detached-job.cjs, then loop wait_for_job until stillRunning is false (the log pane updates from wait JSON).",
|
|
1411
1413
|
"Do not say you will let the user know later."
|
|
1412
1414
|
].join(" ");
|
|
@@ -1631,7 +1633,7 @@ var PORT_RANGE_SIZE = 10;
|
|
|
1631
1633
|
var RECLAIM_RETRY_DELAY_MS = 40;
|
|
1632
1634
|
var RECLAIM_TRIES = 8;
|
|
1633
1635
|
async function killReclaimable(ports, worktreePath, signal) {
|
|
1634
|
-
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-
|
|
1636
|
+
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-GBCE37K4.js");
|
|
1635
1637
|
if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
|
|
1636
1638
|
else killListenersOnPorts2(ports);
|
|
1637
1639
|
}
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
} from "./chunk-FAGK33E2.js";
|
|
13
13
|
import {
|
|
14
14
|
isOrchestratorThread
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-A2G3ZBJS.js";
|
|
16
16
|
import {
|
|
17
17
|
codexUnattendedGitConfigArgs,
|
|
18
18
|
mergeAgentGitAuthEnv,
|
|
19
19
|
resolveAgentGitAuthEnv,
|
|
20
20
|
resolveCodexGitWritableRoots
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-IPPY3FG5.js";
|
|
22
22
|
import {
|
|
23
23
|
loadBrightsyConfig
|
|
24
24
|
} from "./chunk-ROPGQRPU.js";
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
loadAppSettings,
|
|
72
72
|
resolveAgentExecutable,
|
|
73
73
|
resolveClaudeExecutable
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-YNTXWFXT.js";
|
|
75
75
|
import {
|
|
76
76
|
isElectronLikeCommand,
|
|
77
77
|
unwrapStrippedElectronLaunch
|
|
@@ -1745,7 +1745,7 @@ var claudeAdapter = {
|
|
|
1745
1745
|
);
|
|
1746
1746
|
}
|
|
1747
1747
|
const mode = permissionMode(thread);
|
|
1748
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
1748
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-N2YYJKA5.js");
|
|
1749
1749
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
1750
1750
|
const rpc = worktreeAgentRpc(isOrchestrator);
|
|
1751
1751
|
const injectedServers = await buildInjectedMcpServers({
|
|
@@ -3893,7 +3893,7 @@ async function loginAgent(agent) {
|
|
|
3893
3893
|
};
|
|
3894
3894
|
}
|
|
3895
3895
|
async function loginManagedAccount(accountId) {
|
|
3896
|
-
const { loadAppSettings: loadAppSettings2 } = await import("./app-settings-
|
|
3896
|
+
const { loadAppSettings: loadAppSettings2 } = await import("./app-settings-NI4X5HW3.js");
|
|
3897
3897
|
const { loginEnvPrefix } = await import("./managed-accounts-2AK5RIAF.js");
|
|
3898
3898
|
const account = loadAppSettings2().accounts.accounts.find((a) => a.id === accountId);
|
|
3899
3899
|
if (!account) {
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
normalizeAbleTimeCredential,
|
|
5
5
|
normalizeAbleTimeHost,
|
|
6
6
|
rewriteAbleTimeError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PZURG3XN.js";
|
|
8
8
|
import {
|
|
9
9
|
httpFetch
|
|
10
10
|
} from "./chunk-N7WZ6NIN.js";
|
|
11
11
|
import {
|
|
12
12
|
getAbleTimeAccessToken,
|
|
13
13
|
getAbleTimeHost
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YNTXWFXT.js";
|
|
15
15
|
|
|
16
16
|
// src/integrations/abletime-rest.ts
|
|
17
17
|
var ABLETIME_REST_PREFIX = "/api/public/v2";
|
|
@@ -24,13 +24,13 @@ import {
|
|
|
24
24
|
} from "./chunk-UKSJO36E.js";
|
|
25
25
|
import {
|
|
26
26
|
isOrchestratorThread
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-QTZO4LPU.js";
|
|
28
28
|
import {
|
|
29
29
|
codexUnattendedGitConfigArgs,
|
|
30
30
|
mergeAgentGitAuthEnv,
|
|
31
31
|
resolveAgentGitAuthEnv,
|
|
32
32
|
resolveCodexGitWritableRoots
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-K7MWJLR7.js";
|
|
34
34
|
import {
|
|
35
35
|
enrichPathWithNpmGlobalBin,
|
|
36
36
|
isConductorBundledCli,
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
loadAppSettings,
|
|
48
48
|
resolveAgentExecutable,
|
|
49
49
|
resolveClaudeExecutable
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-WRIMAEF2.js";
|
|
51
51
|
import {
|
|
52
52
|
isElectronLikeCommand,
|
|
53
53
|
unwrapStrippedElectronLaunch,
|
|
@@ -2010,7 +2010,7 @@ var claudeAdapter = {
|
|
|
2010
2010
|
);
|
|
2011
2011
|
}
|
|
2012
2012
|
const mode = permissionMode(thread);
|
|
2013
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
2013
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-7XEXTIHL.js");
|
|
2014
2014
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
2015
2015
|
const rpc = worktreeAgentRpc(isOrchestrator);
|
|
2016
2016
|
const injectedServers = await buildInjectedMcpServers({
|
|
@@ -4541,7 +4541,7 @@ async function loginAgent(agent) {
|
|
|
4541
4541
|
};
|
|
4542
4542
|
}
|
|
4543
4543
|
async function loginManagedAccount(accountId) {
|
|
4544
|
-
const { loadAppSettings: loadAppSettings2 } = await import("./app-settings-
|
|
4544
|
+
const { loadAppSettings: loadAppSettings2 } = await import("./app-settings-EQQZQNYD.js");
|
|
4545
4545
|
const { loginEnvPrefix } = await import("./managed-accounts-46A4KRUE.js");
|
|
4546
4546
|
const account = loadAppSettings2().accounts.accounts.find((a) => a.id === accountId);
|
|
4547
4547
|
if (!account) {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
getAbleTimeHost,
|
|
6
6
|
isAbleTimeConnected
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YNTXWFXT.js";
|
|
8
8
|
|
|
9
9
|
// src/integrations/abletime-mcp.ts
|
|
10
10
|
var DEFAULT_ABLETIME_HOST = "https://track.abletime.com";
|
|
@@ -153,7 +153,7 @@ function textsFromUnknown(value) {
|
|
|
153
153
|
return "";
|
|
154
154
|
}
|
|
155
155
|
async function abletimeMcpRequest(method, params, opts) {
|
|
156
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
156
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-4C4G2J3R.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
157
157
|
if (!rawToken?.trim()) {
|
|
158
158
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
159
159
|
}
|
|
@@ -224,9 +224,9 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
224
224
|
if (!opts?.token && !isAbleTimeConnected()) {
|
|
225
225
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
226
226
|
}
|
|
227
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
227
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-4C4G2J3R.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
228
228
|
if (rawToken && ableTimeUsesRest(rawToken)) {
|
|
229
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
229
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-6N63ZVQ3.js");
|
|
230
230
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
231
231
|
}
|
|
232
232
|
const requestOpts = { ...opts, pm: opts?.pm ?? abletimeToolUsesPm(name) };
|
|
@@ -242,7 +242,7 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
242
242
|
return await call();
|
|
243
243
|
}
|
|
244
244
|
if (rawToken && ableTimeUsesRest(rawToken) && isAbleTimeRejectedCredential(message)) {
|
|
245
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
245
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-6N63ZVQ3.js");
|
|
246
246
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
247
247
|
}
|
|
248
248
|
throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_ABLETIME_HOST,
|
|
3
3
|
normalizeAbleTimeHost
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PZURG3XN.js";
|
|
5
5
|
import {
|
|
6
6
|
httpFetch
|
|
7
7
|
} from "./chunk-N7WZ6NIN.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
getAbleTimeHost,
|
|
11
11
|
loadAppSettings,
|
|
12
12
|
saveAbleTimeConnection
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YNTXWFXT.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-VRATUMDO.js");
|
|
284
284
|
const orientation = await getAbleTimeOrientation({ token, host });
|
|
285
285
|
return saveAbleTimeConnection({
|
|
286
286
|
accessToken: token,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
resolveRepoRoot,
|
|
9
9
|
takenSlugsFromThread,
|
|
10
10
|
teamSlugFromName
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-K7MWJLR7.js";
|
|
12
12
|
import {
|
|
13
13
|
ATTACHMENTS_DIR,
|
|
14
14
|
attachmentsGitignoreBody
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
resolveThreadDefaults,
|
|
26
26
|
resolveViewerProfile,
|
|
27
27
|
resolveViewerProfileForRepo
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-WRIMAEF2.js";
|
|
29
29
|
import {
|
|
30
30
|
createEmptyThread,
|
|
31
31
|
listThreads,
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import {
|
|
4
4
|
abletimeRestUrl,
|
|
5
5
|
textFromAbleTimeDoc
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XKZAVGTT.js";
|
|
7
7
|
import {
|
|
8
8
|
assertAbleTimeCredential,
|
|
9
9
|
callAbleTimeTool,
|
|
10
10
|
normalizeAbleTimeHost,
|
|
11
11
|
rewriteAbleTimeError
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-IJDQKC5A.js";
|
|
13
13
|
import {
|
|
14
14
|
httpFetch
|
|
15
15
|
} from "./chunk-VKQGAWHY.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
getAbleTimeHost,
|
|
23
23
|
isAbleTimeConnected,
|
|
24
24
|
saveAbleTimeConnection
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-WRIMAEF2.js";
|
|
26
26
|
|
|
27
27
|
// src/integrations/issue-attachments.ts
|
|
28
28
|
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
parseSessionQuotaResetAt,
|
|
8
8
|
planModeTurnInstruction,
|
|
9
9
|
resolveQuotaFallbackAgent
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NIB2IZ6J.js";
|
|
11
11
|
import {
|
|
12
12
|
REVIEW_TAB_TITLE,
|
|
13
13
|
applyWorktreePkgCacheEnv,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
worktreeDevProcessKey,
|
|
45
45
|
worktreeRunProcessKey,
|
|
46
46
|
worktreeSetupProcessKey
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-MGS5T2A3.js";
|
|
48
48
|
import {
|
|
49
49
|
applyAgentEvent,
|
|
50
50
|
clipAgentEventForPaint,
|
|
@@ -88,7 +88,7 @@ import {
|
|
|
88
88
|
stageAbsolutePathsAsAttachments,
|
|
89
89
|
stageBuffersAsAttachments,
|
|
90
90
|
syncWorkspacesFromThreads
|
|
91
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-A2G3ZBJS.js";
|
|
92
92
|
import {
|
|
93
93
|
addPrStackLayer,
|
|
94
94
|
agentNicknameFromWorktreePath,
|
|
@@ -140,7 +140,7 @@ import {
|
|
|
140
140
|
worktreeIdentityTitles,
|
|
141
141
|
worktreeNameFromPath,
|
|
142
142
|
worktreeSlugForTicket
|
|
143
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-IPPY3FG5.js";
|
|
144
144
|
import {
|
|
145
145
|
appendMessage,
|
|
146
146
|
createEmptyThread,
|
|
@@ -215,7 +215,7 @@ import {
|
|
|
215
215
|
updateAdvancedSettings,
|
|
216
216
|
usageOnLimit,
|
|
217
217
|
withTurnScopedCost
|
|
218
|
-
} from "./chunk-
|
|
218
|
+
} from "./chunk-YNTXWFXT.js";
|
|
219
219
|
import {
|
|
220
220
|
examplePrefixedBranch,
|
|
221
221
|
sanitizeGitBranchPrefix
|
|
@@ -437,9 +437,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
|
|
|
437
437
|
`Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
|
|
438
438
|
);
|
|
439
439
|
}
|
|
440
|
-
const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-
|
|
440
|
+
const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-N2YYJKA5.js");
|
|
441
441
|
if (isGlobalThread2(thread)) {
|
|
442
|
-
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-
|
|
442
|
+
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-B3GLVXPP.js");
|
|
443
443
|
ensureGlobalCoordinatorCwd2(
|
|
444
444
|
isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
|
|
445
445
|
);
|
|
@@ -2238,7 +2238,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
2238
2238
|
});
|
|
2239
2239
|
await requireAgent(resolved.agent);
|
|
2240
2240
|
if (input.cowboy) {
|
|
2241
|
-
const { cowboyModeEnabled } = await import("./app-settings-
|
|
2241
|
+
const { cowboyModeEnabled } = await import("./app-settings-NI4X5HW3.js");
|
|
2242
2242
|
if (!cowboyModeEnabled()) {
|
|
2243
2243
|
throw new Error(
|
|
2244
2244
|
"Cowboy mode is off. Enable it in Settings \u2192 Advanced."
|
|
@@ -2296,7 +2296,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
2296
2296
|
let sourceIsFork = false;
|
|
2297
2297
|
if (!input.cowboy && sourceType === "branch" && (!sourceRef || sourceRef === "HEAD" || sourceRef === "default")) {
|
|
2298
2298
|
if (isAbleTimeConnected() && getIssueSource() === "abletime") {
|
|
2299
|
-
const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-
|
|
2299
|
+
const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-VRATUMDO.js");
|
|
2300
2300
|
const task = await ensureAbleTimeTask({
|
|
2301
2301
|
title: title?.trim() || "Untitled work",
|
|
2302
2302
|
description: input.prompt?.trim() || void 0
|
|
@@ -2406,7 +2406,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
2406
2406
|
return readThread(thread.id) ?? thread;
|
|
2407
2407
|
}
|
|
2408
2408
|
async function listLinearIssues(agent, repoPath) {
|
|
2409
|
-
const { getAdapter: getAdapter2 } = await import("./agents-
|
|
2409
|
+
const { getAdapter: getAdapter2 } = await import("./agents-2FOWVJCN.js");
|
|
2410
2410
|
await requireAgent(agent, { requireLinear: true });
|
|
2411
2411
|
const adapter = getAdapter2(agent);
|
|
2412
2412
|
if (!adapter.listLinearIssues) {
|
|
@@ -2913,7 +2913,7 @@ async function adoptThread(input) {
|
|
|
2913
2913
|
messages: input.messages ?? []
|
|
2914
2914
|
});
|
|
2915
2915
|
writeThread(thread);
|
|
2916
|
-
const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-
|
|
2916
|
+
const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-PBB6HY2D.js");
|
|
2917
2917
|
await ensureWorkspace2(repoPath);
|
|
2918
2918
|
const { ensureWorktreeSideboardIgnored } = await import("./worktree-exclude-RXZPTCNH.js");
|
|
2919
2919
|
await ensureWorktreeSideboardIgnored(input.worktreePath);
|
|
@@ -4374,7 +4374,7 @@ var LONG_RUNNING_SKILL_BODY = `# Long-running jobs
|
|
|
4374
4374
|
|
|
4375
4375
|
A Sideboard or Cursor **worktree turn** SIGTERMs the agent shell (and its process group) when the user sends another message or the turn is interrupted. \`block_until_ms: 0\` is not enough \u2014 the child stays in that group.
|
|
4376
4376
|
|
|
4377
|
-
Do **not** ask the human to check back. Detach, then **wait** in 45s slices (MCP \`wait_for_job\`, same idea as \`wait_for_turn\`) until \`stillRunning\` is false. Do not end the turn
|
|
4377
|
+
Do **not** ask the human to check back. Detach, then **wait** in 45s slices (MCP \`wait_for_job\`, same idea as \`wait_for_turn\`) until \`stillRunning\` is false. Do not end the turn after starting a job \u2014 a native CLI Task or bash notify does **not** resume a Sideboard chat (Claude, Cursor, Codex, OpenCode).
|
|
4378
4378
|
|
|
4379
4379
|
## Tool
|
|
4380
4380
|
|
|
@@ -5017,7 +5017,7 @@ function formatPrGateDirective() {
|
|
|
5017
5017
|
return [
|
|
5018
5018
|
"If a goal is given (not after every push):",
|
|
5019
5019
|
"- Enter a watch-fix-push loop and stay in it until that goal is met or you are blocked (examples: \u201CGreptile 5/5\u201D, \u201CCI green\u201D, \u201Cuntil checks pass\u201D). Do not stop after one red run or one review cycle.",
|
|
5020
|
-
"- Wait with `/long-running`: detach `gh pr checks --watch` (add `-R <origin>` when needed), then loop `wait_for_job` until stillRunning is false. Do not end the turn \u2014 a
|
|
5020
|
+
"- Wait with `/long-running`: detach `gh pr checks --watch` (add `-R <origin>` when needed), then loop `wait_for_job` until stillRunning is false. Do not end the turn \u2014 a native CLI Task or bash notify does not resume this chat. Do not ask the human to poll.",
|
|
5021
5021
|
"- Greptile 5/5: wait for the greptile check; read the latest `N/5` from the PR body or Greptile\u2019s most recently *updated* issue comment; also fetch unresolved review comments / the \u201CPrompt to fix all with AI\u201D block. Done = **5/5 and zero unresolved Greptile comments**. If Greptile is idle, comment `@greptile review`. Cap about 5 iterations, then report leftovers. Do not merge unless asked."
|
|
5022
5022
|
].join("\n");
|
|
5023
5023
|
}
|
|
@@ -5050,7 +5050,7 @@ function formatLongRunningDirective(opts) {
|
|
|
5050
5050
|
}
|
|
5051
5051
|
function formatLongRunningReminder(opts) {
|
|
5052
5052
|
const invoke = formatDetachedJobInvoke(opts?.scriptPath);
|
|
5053
|
-
return `Long jobs: \`${invoke} start <id> -- <cmd>\`, loop wait_for_job (or detached-job wait). The log pane updates from wait JSON; present_artifact type=log is optional. stop_job if hanging or wrong. Do not say you will let the user know later \u2014 stay in the turn. A
|
|
5053
|
+
return `Long jobs: \`${invoke} start <id> -- <cmd>\`, loop wait_for_job (or detached-job wait). The log pane updates from wait JSON; present_artifact type=log is optional. stop_job if hanging or wrong. Do not say you will let the user know later \u2014 stay in the turn. A native CLI Task or bash notify does not resume this chat. Project Dev button: list_run_scripts / run_dev_script / stop_dev_script / get_run_log (UI-connected \u2014 not detached-job). ${formatDevAccessHint(opts?.activeRuns)}`;
|
|
5054
5054
|
}
|
|
5055
5055
|
function formatArtifactDirective() {
|
|
5056
5056
|
return [
|
|
@@ -5610,7 +5610,7 @@ function formatScheduledPrompt(name, prompt) {
|
|
|
5610
5610
|
${prompt}`;
|
|
5611
5611
|
}
|
|
5612
5612
|
async function defaultDeps() {
|
|
5613
|
-
const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-
|
|
5613
|
+
const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-QMKVXVUR.js");
|
|
5614
5614
|
const orch = getOrchestrator2();
|
|
5615
5615
|
return {
|
|
5616
5616
|
findThread: (id) => findThreadByRef(id),
|
|
@@ -5928,7 +5928,7 @@ var Orchestrator = class {
|
|
|
5928
5928
|
orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
|
|
5929
5929
|
});
|
|
5930
5930
|
}
|
|
5931
|
-
const { autoCleanupOrphansEnabled } = await import("./app-settings-
|
|
5931
|
+
const { autoCleanupOrphansEnabled } = await import("./app-settings-NI4X5HW3.js");
|
|
5932
5932
|
if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
|
|
5933
5933
|
await cleanupOrphanWorktrees({ repoPaths });
|
|
5934
5934
|
}
|
|
@@ -6317,7 +6317,7 @@ var Orchestrator = class {
|
|
|
6317
6317
|
}
|
|
6318
6318
|
await setup;
|
|
6319
6319
|
if (skipSetup) return;
|
|
6320
|
-
const { autoRunAfterSetupEnabled } = await import("./app-settings-
|
|
6320
|
+
const { autoRunAfterSetupEnabled } = await import("./app-settings-NI4X5HW3.js");
|
|
6321
6321
|
if (autoRunAfterSetupEnabled()) {
|
|
6322
6322
|
try {
|
|
6323
6323
|
await this.startDev(threadId);
|
|
@@ -6370,7 +6370,8 @@ var Orchestrator = class {
|
|
|
6370
6370
|
throw new Error(`Thread is archived: ${thread.id}`);
|
|
6371
6371
|
}
|
|
6372
6372
|
const followUp = resolveSendFollowUp(current, opts?.followUp);
|
|
6373
|
-
const
|
|
6373
|
+
const explicit = opts?.attachments;
|
|
6374
|
+
const consumed = explicit !== void 0 ? { attachments: current.attachments, consumed: explicit } : consumeComposerAttachments(current);
|
|
6374
6375
|
const queued = appendQueuedItem(
|
|
6375
6376
|
current.queue,
|
|
6376
6377
|
current.queueAttachments,
|
|
@@ -6384,7 +6385,7 @@ var Orchestrator = class {
|
|
|
6384
6385
|
const inFlight = this.activeTurns.has(thread.id) || this.startingTurns.has(thread.id) || current.status === "running";
|
|
6385
6386
|
shouldSteer = followUp === "steer" && (inFlight || current.queue.length > 0);
|
|
6386
6387
|
const patch = queued;
|
|
6387
|
-
if (consumed.consumed.length > 0) {
|
|
6388
|
+
if (explicit === void 0 && consumed.consumed.length > 0) {
|
|
6388
6389
|
patch.attachments = consumed.attachments;
|
|
6389
6390
|
}
|
|
6390
6391
|
if (!inFlight) patch.status = "queued";
|
|
@@ -6696,7 +6697,7 @@ var Orchestrator = class {
|
|
|
6696
6697
|
}
|
|
6697
6698
|
const isBrightsy = fresh.agent === "brightsy";
|
|
6698
6699
|
const isOrchestration = isOrchestratorThread(fresh);
|
|
6699
|
-
const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-
|
|
6700
|
+
const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-NI4X5HW3.js");
|
|
6700
6701
|
const gitAuthMode = getGithubGitAuthMode();
|
|
6701
6702
|
const worktreeDirective = isBrightsy || isOrchestration ? null : formatWorktreeDirective(fresh, {
|
|
6702
6703
|
githubSlug: await withTimeout(
|
|
@@ -8006,7 +8007,7 @@ var Orchestrator = class {
|
|
|
8006
8007
|
if (Object.keys(patch).length === 0) continue;
|
|
8007
8008
|
updateThread(t.id, patch);
|
|
8008
8009
|
}
|
|
8009
|
-
const { autoArchiveOnMergeEnabled } = await import("./app-settings-
|
|
8010
|
+
const { autoArchiveOnMergeEnabled } = await import("./app-settings-NI4X5HW3.js");
|
|
8010
8011
|
const latest = this.requireThread(thread.id);
|
|
8011
8012
|
if (!shouldAutoArchiveOnPrMerge({
|
|
8012
8013
|
previousPrState: prevState || null,
|
|
@@ -8297,7 +8298,7 @@ var Orchestrator = class {
|
|
|
8297
8298
|
this.enforceHistoryRetention();
|
|
8298
8299
|
if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
|
|
8299
8300
|
try {
|
|
8300
|
-
const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-
|
|
8301
|
+
const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-PBB6HY2D.js");
|
|
8301
8302
|
await ensureWorkspace2(thread.repoPath);
|
|
8302
8303
|
} catch {
|
|
8303
8304
|
}
|
|
@@ -8324,7 +8325,7 @@ var Orchestrator = class {
|
|
|
8324
8325
|
await runArchiveScript(thread.repoPath, thread.worktreePath);
|
|
8325
8326
|
} catch {
|
|
8326
8327
|
}
|
|
8327
|
-
const { deleteBranchOnPurgeEnabled } = await import("./app-settings-
|
|
8328
|
+
const { deleteBranchOnPurgeEnabled } = await import("./app-settings-NI4X5HW3.js");
|
|
8328
8329
|
const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
|
|
8329
8330
|
await removeWorktree(thread.repoPath, thread.worktreePath, {
|
|
8330
8331
|
deleteBranch: deleteBranch ? thread.branchName : void 0
|
|
@@ -8351,7 +8352,7 @@ var Orchestrator = class {
|
|
|
8351
8352
|
`Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
|
|
8352
8353
|
);
|
|
8353
8354
|
}
|
|
8354
|
-
const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-
|
|
8355
|
+
const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-Q6UJHG25.js");
|
|
8355
8356
|
const slug = thread.worktreePath.split("/").pop();
|
|
8356
8357
|
const dest = thread.worktreePath;
|
|
8357
8358
|
await withRepoGitLock(thread.repoPath, async () => {
|
|
@@ -8461,7 +8462,7 @@ async function startOrchestration(opts) {
|
|
|
8461
8462
|
sourceRef: "default",
|
|
8462
8463
|
...createOpts
|
|
8463
8464
|
}).catch(async () => {
|
|
8464
|
-
const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-
|
|
8465
|
+
const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-Q6UJHG25.js");
|
|
8465
8466
|
const repo = await resolveRepoRoot2(repoPath);
|
|
8466
8467
|
const def = await resolveDefaultBranch2(repo);
|
|
8467
8468
|
return orch.createThread({
|