@sideboard-ai/core 0.1.191 → 0.1.193
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-JFMBCSIQ.js → abletime-QHKWGTBY.js} +4 -3
- package/dist/{abletime-53T7G667.js → abletime-UX53JTIH.js} +4 -3
- package/dist/agents/cursor-runner.js +4 -4
- package/dist/{agents-DTPVTDB5.js → agents-MN4GSQTL.js} +19 -17
- package/dist/{agents-5OBZETUV.js → agents-OK5VD25T.js} +10 -8
- package/dist/{app-settings-663VQWUV.js → app-settings-LO7UFHQ6.js} +5 -2
- package/dist/{app-settings-74HBAAH7.js → app-settings-QYLNKRK4.js} +5 -2
- package/dist/branch-prefix-7F37FIPX.js +10 -0
- package/dist/branch-prefix-EVW2KHGQ.js +12 -0
- package/dist/{caffeinate-hold-SK2QISPE.js → caffeinate-hold-22VFDPSO.js} +2 -2
- package/dist/{caffeinate-hold-DBKMRZZO.js → caffeinate-hold-OK4JJ5PP.js} +2 -2
- package/dist/{chunk-GPSIZGEZ.js → chunk-3DX2T2KR.js} +181 -172
- package/dist/{chunk-HVIEYTUK.js → chunk-3OHR73VK.js} +1 -1
- package/dist/{chunk-VIODP5PT.js → chunk-4OVCJPVI.js} +13 -11
- package/dist/{chunk-UBQIELFS.js → chunk-4QJRH5DL.js} +1 -1
- package/dist/{chunk-AO35MGOE.js → chunk-4TYXWPAJ.js} +1 -1
- package/dist/chunk-64QSHOKV.js +869 -0
- package/dist/{chunk-FY64F2ZQ.js → chunk-7AJ7OZZF.js} +4 -4
- package/dist/{chunk-WLPXZFRE.js → chunk-7J72QJOM.js} +1 -1
- package/dist/chunk-7SNJMKD6.js +20 -0
- package/dist/{chunk-WXKXSZN4.js → chunk-BIKCWYRP.js} +16 -873
- package/dist/{chunk-J7LQVLFQ.js → chunk-BWRS6GAS.js} +19 -1
- package/dist/{chunk-GOZ6T3AG.js → chunk-CJFBSQIB.js} +1 -1
- package/dist/{chunk-GBWKMWUQ.js → chunk-EBPBGQ4P.js} +13 -13
- package/dist/{chunk-JTJHOYCU.js → chunk-EQNRWDLN.js} +10 -4
- package/dist/{chunk-5RRAKGPK.js → chunk-EQXXGOMD.js} +192 -182
- package/dist/{chunk-XXEIF2IL.js → chunk-HIX2VDRE.js} +13 -11
- package/dist/chunk-ILWQT2UN.js +55 -0
- package/dist/chunk-JTWKGOFI.js +23 -0
- package/dist/{chunk-TCQAFTSV.js → chunk-KJBYIIJU.js} +1 -1
- package/dist/{chunk-OKZFTOM2.js → chunk-KORE4WOF.js} +19 -1
- package/dist/{chunk-OLDZXO53.js → chunk-MQC2VA5U.js} +14 -14
- package/dist/{chunk-4M2AK3O5.js → chunk-O4BMPY5Y.js} +1 -1
- package/dist/chunk-PBEPPXMY.js +57 -0
- package/dist/{chunk-IEEAVWAP.js → chunk-PE337IM2.js} +7 -7
- package/dist/chunk-RCWHL4TK.js +866 -0
- package/dist/{chunk-EFVFB2AH.js → chunk-WFUDY6PC.js} +12 -5
- package/dist/{chunk-XBLN52RZ.js → chunk-XPKKCFRT.js} +9 -866
- package/dist/{chunk-OCQPTUR7.js → chunk-YWI3IBP2.js} +1 -1
- package/dist/{connected-teams-WOYCH7FR.js → connected-teams-PU4AMFNA.js} +2 -2
- package/dist/{connected-teams-ON2KIKQX.js → connected-teams-SYQQGCXD.js} +2 -2
- package/dist/{coordinator-prompt-LWKOL3AZ.js → coordinator-prompt-GXJIPWNA.js} +7 -5
- package/dist/{coordinator-prompt-MSC44OOM.js → coordinator-prompt-WB65HIZ3.js} +9 -7
- package/dist/{cursor-recover-NDMLLNYX.js → cursor-recover-DTQAUDGO.js} +2 -2
- package/dist/{cursor-recover-L5MD6MBO.js → cursor-recover-TXVTLAMA.js} +1 -1
- package/dist/github-DWROJOB7.js +11 -0
- package/dist/github-IIF7AQNO.js +9 -0
- package/dist/{global-workspace-6G5JJH2E.js → global-workspace-BZ6V6TEX.js} +7 -5
- package/dist/{global-workspace-XATJTV3N.js → global-workspace-MMK5UFUZ.js} +9 -7
- package/dist/index.cjs +332 -205
- package/dist/index.d.cts +53 -9
- package/dist/index.d.ts +53 -9
- package/dist/index.js +147 -136
- package/dist/mcp/run-stdio.cjs +316 -201
- package/dist/mcp/run-stdio.js +84 -85
- package/dist/{orchestrator-F3CXDBZB.js → orchestrator-4KI6VIFG.js} +16 -12
- package/dist/{orchestrator-2X6LYBQI.js → orchestrator-SFOT6Q6F.js} +15 -11
- package/dist/{paths-RRCLNSJB.js → paths-C2VERLAE.js} +1 -1
- package/dist/{paths-53TLA7VQ.js → paths-LOXCISLX.js} +1 -1
- package/dist/{thread-store-ZL6GDIDP.js → thread-store-CO77HV2K.js} +2 -2
- package/dist/{thread-store-RXXNSRVO.js → thread-store-M4B52FUS.js} +2 -2
- package/dist/{workspaces-LMFCRXTT.js → workspaces-ACMZMKPD.js} +7 -5
- package/dist/{workspaces-FWKPWSXV.js → workspaces-KPJS7GLY.js} +9 -7
- package/dist/{worktree-7LOSSD7G.js → worktree-6IEVF3GN.js} +15 -12
- package/dist/{worktree-LPWTX2NA.js → worktree-UW6DNBIE.js} +20 -17
- package/dist/worktree-labels-3XDS6O3U.js +22 -0
- package/dist/worktree-labels-PEDOJBMD.js +24 -0
- package/package.json +1 -1
package/dist/mcp/run-stdio.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
+
import {
|
|
4
|
+
getGitHubStatus
|
|
5
|
+
} from "../chunk-PBEPPXMY.js";
|
|
3
6
|
import {
|
|
4
7
|
AGENT_GIT_ACTIONS,
|
|
5
8
|
BOARD_COLUMN_DEFS,
|
|
@@ -30,6 +33,7 @@ import {
|
|
|
30
33
|
readTurnLive,
|
|
31
34
|
recordSlackOutboundWatch,
|
|
32
35
|
requireSlackWorkspace,
|
|
36
|
+
resolveOrchChildFollowUp,
|
|
33
37
|
resolveScheduleThreadId,
|
|
34
38
|
slackApi,
|
|
35
39
|
slackTokenFor,
|
|
@@ -37,7 +41,9 @@ import {
|
|
|
37
41
|
syncBoardPins,
|
|
38
42
|
updateSchedule,
|
|
39
43
|
waitForDetachedJob
|
|
40
|
-
} from "../chunk-
|
|
44
|
+
} from "../chunk-3DX2T2KR.js";
|
|
45
|
+
import "../chunk-JFOPOMK7.js";
|
|
46
|
+
import "../chunk-YWI3IBP2.js";
|
|
41
47
|
import {
|
|
42
48
|
applySystemCaEnv,
|
|
43
49
|
isCursorApiKeyConfigured,
|
|
@@ -46,31 +52,12 @@ import {
|
|
|
46
52
|
materializeSystemCaBundle,
|
|
47
53
|
sideboardMcpProfile,
|
|
48
54
|
trustSystemCertificates
|
|
49
|
-
} from "../chunk-
|
|
50
|
-
import "../chunk-HVIEYTUK.js";
|
|
51
|
-
import "../chunk-Y4MIXGPA.js";
|
|
52
|
-
import {
|
|
53
|
-
commentAbleTimeTask,
|
|
54
|
-
createAbleTimeTask,
|
|
55
|
-
ensureAbleTimeTask,
|
|
56
|
-
getAbleTimeOrientation,
|
|
57
|
-
getAbleTimeTask,
|
|
58
|
-
listAbleTimeProjects,
|
|
59
|
-
listAbleTimeTasks,
|
|
60
|
-
searchAbleTimeTasks,
|
|
61
|
-
toAbleTimeIssueInfo,
|
|
62
|
-
updateAbleTimeTask
|
|
63
|
-
} from "../chunk-UBQIELFS.js";
|
|
64
|
-
import {
|
|
65
|
-
httpFetch
|
|
66
|
-
} from "../chunk-VKQGAWHY.js";
|
|
67
|
-
import "../chunk-JFOPOMK7.js";
|
|
68
|
-
import "../chunk-OCQPTUR7.js";
|
|
55
|
+
} from "../chunk-EBPBGQ4P.js";
|
|
69
56
|
import {
|
|
70
57
|
GLOBAL_WORKSPACE_ID,
|
|
71
58
|
isCloudCoordinatorThread,
|
|
72
59
|
listWorkspaces
|
|
73
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-HIX2VDRE.js";
|
|
74
61
|
import {
|
|
75
62
|
canonicalizeRepoPath,
|
|
76
63
|
formatGhLandError,
|
|
@@ -81,13 +68,30 @@ import {
|
|
|
81
68
|
resolveListPrsOptions,
|
|
82
69
|
resolveRepoRoot,
|
|
83
70
|
warmGithubAgentAuth
|
|
84
|
-
} from "../chunk-
|
|
71
|
+
} from "../chunk-XPKKCFRT.js";
|
|
85
72
|
import "../chunk-D6JWYJ4P.js";
|
|
86
|
-
import "../chunk-
|
|
73
|
+
import "../chunk-3OHR73VK.js";
|
|
74
|
+
import "../chunk-Y4MIXGPA.js";
|
|
75
|
+
import {
|
|
76
|
+
commentAbleTimeTask,
|
|
77
|
+
createAbleTimeTask,
|
|
78
|
+
ensureAbleTimeTask,
|
|
79
|
+
getAbleTimeOrientation,
|
|
80
|
+
getAbleTimeTask,
|
|
81
|
+
listAbleTimeProjects,
|
|
82
|
+
listAbleTimeTasks,
|
|
83
|
+
searchAbleTimeTasks,
|
|
84
|
+
toAbleTimeIssueInfo,
|
|
85
|
+
updateAbleTimeTask
|
|
86
|
+
} from "../chunk-4QJRH5DL.js";
|
|
87
|
+
import {
|
|
88
|
+
httpFetch
|
|
89
|
+
} from "../chunk-VKQGAWHY.js";
|
|
90
|
+
import "../chunk-CJFBSQIB.js";
|
|
91
|
+
import "../chunk-64QSHOKV.js";
|
|
87
92
|
import "../chunk-SYFVUF2C.js";
|
|
88
93
|
import {
|
|
89
|
-
gh
|
|
90
|
-
run
|
|
94
|
+
gh
|
|
91
95
|
} from "../chunk-FNQNJOHY.js";
|
|
92
96
|
import {
|
|
93
97
|
disconnectLinearConnection,
|
|
@@ -102,12 +106,13 @@ import {
|
|
|
102
106
|
resolveViewerProfileForRepo,
|
|
103
107
|
saveLinearOAuth,
|
|
104
108
|
writeViewerContext
|
|
105
|
-
} from "../chunk-
|
|
109
|
+
} from "../chunk-KORE4WOF.js";
|
|
106
110
|
import "../chunk-NSTQ6QKD.js";
|
|
107
111
|
import "../chunk-KGZBYWZ3.js";
|
|
108
112
|
import {
|
|
109
113
|
appDataDir
|
|
110
|
-
} from "../chunk-
|
|
114
|
+
} from "../chunk-EQNRWDLN.js";
|
|
115
|
+
import "../chunk-JTWKGOFI.js";
|
|
111
116
|
|
|
112
117
|
// src/mcp/server.ts
|
|
113
118
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -414,7 +419,7 @@ function parseProjectTitles(raw) {
|
|
|
414
419
|
}
|
|
415
420
|
async function listGitHubIssueProjects(number, cwd, repoArgs) {
|
|
416
421
|
const result = await gh(
|
|
417
|
-
["issue", "view", String(number), ...repoArgs, "--json", "projectItems
|
|
422
|
+
["issue", "view", String(number), ...repoArgs, "--json", "projectItems"],
|
|
418
423
|
cwd,
|
|
419
424
|
{ reject: false }
|
|
420
425
|
);
|
|
@@ -798,6 +803,16 @@ query SideboardLabels($first: Int!) {
|
|
|
798
803
|
}
|
|
799
804
|
}
|
|
800
805
|
`;
|
|
806
|
+
var TEAM_LABELS_QUERY = `
|
|
807
|
+
query SideboardTeamLabels($id: String!, $first: Int!, $after: String) {
|
|
808
|
+
team(id: $id) {
|
|
809
|
+
labels(first: $first, after: $after) {
|
|
810
|
+
nodes { id name }
|
|
811
|
+
pageInfo { hasNextPage endCursor }
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
`;
|
|
801
816
|
var PROJECTS_QUERY = `
|
|
802
817
|
query SideboardProjects($first: Int!, $filter: ProjectFilter) {
|
|
803
818
|
projects(first: $first, filter: $filter) {
|
|
@@ -1171,15 +1186,38 @@ function formatRelationList(relations) {
|
|
|
1171
1186
|
if (!relations.length) return "(none)";
|
|
1172
1187
|
return relations.map((r) => `${r.type} ${r.issue.identifier || r.issue.id}`).join(", ");
|
|
1173
1188
|
}
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
return (json.issueLabels?.nodes ?? []).flatMap((node) => {
|
|
1189
|
+
function mapLabelNodes(nodes) {
|
|
1190
|
+
return (nodes ?? []).flatMap((node) => {
|
|
1177
1191
|
const id = String(node.id ?? "").trim();
|
|
1178
1192
|
const name = String(node.name ?? "").trim();
|
|
1179
1193
|
if (!id) return [];
|
|
1180
1194
|
return [{ id, name }];
|
|
1181
1195
|
});
|
|
1182
1196
|
}
|
|
1197
|
+
async function listLinearWorkspaceLabels(opts) {
|
|
1198
|
+
const json = await linearGraphql(LABELS_QUERY, { first: 250 }, opts);
|
|
1199
|
+
return mapLabelNodes(json.issueLabels?.nodes);
|
|
1200
|
+
}
|
|
1201
|
+
async function listLinearLabels(opts) {
|
|
1202
|
+
const teamId = opts?.teamId?.trim();
|
|
1203
|
+
if (teamId) {
|
|
1204
|
+
const out = [];
|
|
1205
|
+
let after;
|
|
1206
|
+
for (let page = 0; page < 4; page++) {
|
|
1207
|
+
const json = await linearGraphql(
|
|
1208
|
+
TEAM_LABELS_QUERY,
|
|
1209
|
+
after ? { id: teamId, first: 250, after } : { id: teamId, first: 250 },
|
|
1210
|
+
opts
|
|
1211
|
+
);
|
|
1212
|
+
const conn = json.team?.labels;
|
|
1213
|
+
out.push(...mapLabelNodes(conn?.nodes));
|
|
1214
|
+
if (!conn?.pageInfo?.hasNextPage || !conn.pageInfo.endCursor) break;
|
|
1215
|
+
after = conn.pageInfo.endCursor;
|
|
1216
|
+
}
|
|
1217
|
+
if (out.length) return out;
|
|
1218
|
+
}
|
|
1219
|
+
return listLinearWorkspaceLabels(opts);
|
|
1220
|
+
}
|
|
1183
1221
|
async function listLinearProjects(filter, opts) {
|
|
1184
1222
|
const json = await linearGraphql(PROJECTS_QUERY, { first: 50, filter: filter ?? {} }, opts);
|
|
1185
1223
|
return (json.projects?.nodes ?? []).flatMap((node) => {
|
|
@@ -1468,7 +1506,7 @@ async function updateLinearIssue(input, opts) {
|
|
|
1468
1506
|
}
|
|
1469
1507
|
const addRelations = input.relations?.length ? input.relations : void 0;
|
|
1470
1508
|
const removeRelations = input.removeRelations?.length ? input.removeRelations : void 0;
|
|
1471
|
-
const needsIssue = Boolean(input.state?.trim()) || input.cycle !== void 0 || Boolean(addRelations) || Boolean(removeRelations);
|
|
1509
|
+
const needsIssue = Boolean(input.state?.trim()) || input.cycle !== void 0 || input.labels !== void 0 || Boolean(addRelations) || Boolean(removeRelations);
|
|
1472
1510
|
const existing = needsIssue ? await getLinearIssue(issueId, opts) : void 0;
|
|
1473
1511
|
if (input.state?.trim()) {
|
|
1474
1512
|
const { teams } = await listLinearTeams(opts);
|
|
@@ -1503,7 +1541,10 @@ async function updateLinearIssue(input, opts) {
|
|
|
1503
1541
|
mutationInput.priority = normalizePriority(input.priority);
|
|
1504
1542
|
}
|
|
1505
1543
|
if (input.labels !== void 0) {
|
|
1506
|
-
mutationInput.labelIds = await resolveLinearLabelIds(input.labels,
|
|
1544
|
+
mutationInput.labelIds = await resolveLinearLabelIds(input.labels, {
|
|
1545
|
+
...opts,
|
|
1546
|
+
teamId: existing?.team?.id
|
|
1547
|
+
});
|
|
1507
1548
|
}
|
|
1508
1549
|
if (input.project !== void 0) {
|
|
1509
1550
|
mutationInput.projectId = await resolveLinearProjectId(input.project, opts);
|
|
@@ -3639,50 +3680,6 @@ async function getHomeBoardInputs(workspaces, opts) {
|
|
|
3639
3680
|
}
|
|
3640
3681
|
}
|
|
3641
3682
|
|
|
3642
|
-
// src/integrations/github.ts
|
|
3643
|
-
async function getGitHubStatus() {
|
|
3644
|
-
const which = await run("which", ["gh"], { reject: false });
|
|
3645
|
-
if (which.exitCode !== 0 || !which.stdout.trim()) {
|
|
3646
|
-
return {
|
|
3647
|
-
connected: false,
|
|
3648
|
-
login: null,
|
|
3649
|
-
hosts: [],
|
|
3650
|
-
reason: "gh CLI not found on PATH"
|
|
3651
|
-
};
|
|
3652
|
-
}
|
|
3653
|
-
const loginResult = await run(
|
|
3654
|
-
"gh",
|
|
3655
|
-
["api", "user", "--jq", ".login"],
|
|
3656
|
-
{ reject: false }
|
|
3657
|
-
);
|
|
3658
|
-
if (loginResult.exitCode === 0 && loginResult.stdout.trim()) {
|
|
3659
|
-
return {
|
|
3660
|
-
connected: true,
|
|
3661
|
-
login: loginResult.stdout.trim(),
|
|
3662
|
-
hosts: ["github.com"],
|
|
3663
|
-
reason: null
|
|
3664
|
-
};
|
|
3665
|
-
}
|
|
3666
|
-
const status = await run("gh", ["auth", "status"], { reject: false });
|
|
3667
|
-
const text7 = `${status.stdout}
|
|
3668
|
-
${status.stderr}`;
|
|
3669
|
-
const loginMatch = text7.match(/Logged in to ([^\s]+) account (\S+)/i) ?? text7.match(/Logged in to ([^\s]+) as (\S+)/i);
|
|
3670
|
-
if (loginMatch) {
|
|
3671
|
-
return {
|
|
3672
|
-
connected: true,
|
|
3673
|
-
login: loginMatch[2].replace(/['"]/g, ""),
|
|
3674
|
-
hosts: [loginMatch[1]],
|
|
3675
|
-
reason: null
|
|
3676
|
-
};
|
|
3677
|
-
}
|
|
3678
|
-
return {
|
|
3679
|
-
connected: false,
|
|
3680
|
-
login: null,
|
|
3681
|
-
hosts: [],
|
|
3682
|
-
reason: status.stderr.trim() || status.stdout.trim() || "Not logged in to GitHub (run: gh auth login)"
|
|
3683
|
-
};
|
|
3684
|
-
}
|
|
3685
|
-
|
|
3686
3683
|
// src/mcp/create-thread-agent.ts
|
|
3687
3684
|
function resolveOrchCreateThreadOptions(input) {
|
|
3688
3685
|
const { resolveNewThreadOptions } = input;
|
|
@@ -3840,7 +3837,7 @@ async function startMcpServer() {
|
|
|
3840
3837
|
);
|
|
3841
3838
|
}
|
|
3842
3839
|
try {
|
|
3843
|
-
const { maxConcurrentAgents } = await import("../app-settings-
|
|
3840
|
+
const { maxConcurrentAgents } = await import("../app-settings-QYLNKRK4.js");
|
|
3844
3841
|
orch.setMaxConcurrent(maxConcurrentAgents());
|
|
3845
3842
|
} catch {
|
|
3846
3843
|
}
|
|
@@ -4154,8 +4151,8 @@ async function startMcpServer() {
|
|
|
4154
4151
|
registerSlackTools(server);
|
|
4155
4152
|
registerConnectedIssueVendorTools(server);
|
|
4156
4153
|
registerScheduleTools(server);
|
|
4157
|
-
const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-
|
|
4158
|
-
const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-
|
|
4154
|
+
const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-OK4JJ5PP.js");
|
|
4155
|
+
const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-QYLNKRK4.js");
|
|
4159
4156
|
const accountDefaults = resolveThreadDefaults();
|
|
4160
4157
|
const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
|
|
4161
4158
|
server.tool(
|
|
@@ -4315,7 +4312,7 @@ async function startMcpServer() {
|
|
|
4315
4312
|
);
|
|
4316
4313
|
server.tool(
|
|
4317
4314
|
"send_to_thread",
|
|
4318
|
-
'
|
|
4315
|
+
'Steer a prompt on a worktree thread chat (Settings \u2192 Follow-up, default steer: interrupt and start now, skip the inbox). Use after create_thread to start or continue a conversation. For commit/push/PR, prefer ask_git (canonical desktop-button phrases). Send "Merge PR." / ask_git merge only when the user explicitly asked to merge. force_stop=true kills the in-flight turn and clears the queue before this prompt \u2014 only when the current request is wrong and must be replaced. Do not send_to_thread to check in, resume after a halt notice, or because wait_for_turn returned stillRunning; that interrupts the child mid-thought. Call wait_for_turn again instead.',
|
|
4319
4316
|
{
|
|
4320
4317
|
ref: z9.string(),
|
|
4321
4318
|
prompt: z9.string(),
|
|
@@ -4328,7 +4325,9 @@ async function startMcpServer() {
|
|
|
4328
4325
|
orch.stop(ref, { clearQueue: true, notifyParent: false });
|
|
4329
4326
|
}
|
|
4330
4327
|
}
|
|
4331
|
-
const thread = await orch.send(ref, prompt
|
|
4328
|
+
const thread = await orch.send(ref, prompt, {
|
|
4329
|
+
followUp: resolveOrchChildFollowUp()
|
|
4330
|
+
});
|
|
4332
4331
|
return mcpJson({
|
|
4333
4332
|
id: thread.id,
|
|
4334
4333
|
status: thread.status,
|
|
@@ -4339,7 +4338,7 @@ async function startMcpServer() {
|
|
|
4339
4338
|
);
|
|
4340
4339
|
server.tool(
|
|
4341
4340
|
"wait_for_turn",
|
|
4342
|
-
"Wait until the thread finishes its current/queued turn, or return early with a live progress snapshot. MCP clients often kill tools around 60s, so this returns within 45s even while the child is still working. stillRunning is the source of truth \u2014 if false, the child is not working (do not say it is waiting for a gate). If stillRunning is true, progress is tools/thinking (or \u201Cqueued, waiting for a concurrency slot\u201D if it has not started). Call wait_for_turn again. Do not
|
|
4341
|
+
"Wait until the thread finishes its current/queued turn, or return early with a live progress snapshot. MCP clients often kill tools around 60s, so this returns within 45s even while the child is still working. stillRunning is the source of truth \u2014 if false, the child is not working (do not say it is waiting for a gate). If stillRunning is true, progress is tools/thinking (or \u201Cqueued, waiting for a concurrency slot\u201D if it has not started). Call wait_for_turn again. Do not send_to_thread a check-in (that steers / interrupts), force_stop, or assume a hang. On status error, lastError/text is the failure. On status stopped or broken, the child did not finish \u2014 resume with send_to_thread or tell the user; do not treat that as success. When finished, usage is the last agent turn\u2019s tokens + costUsd (when the provider reported cost).",
|
|
4343
4342
|
{
|
|
4344
4343
|
ref: z9.string(),
|
|
4345
4344
|
timeoutMs: z9.number().optional()
|
|
@@ -4496,7 +4495,7 @@ async function startMcpServer() {
|
|
|
4496
4495
|
);
|
|
4497
4496
|
server.tool(
|
|
4498
4497
|
"ask_git",
|
|
4499
|
-
"Commit & push, open a draft PR, mark ready for review, resolve conflicts, or merge \u2014 same
|
|
4498
|
+
"Commit & push, open a draft PR, mark ready for review, resolve conflicts, or merge \u2014 same prompts as the desktop git buttons (including Resolve). Always steers the worktree agent; does not push or open the PR locally. Then wait_for_turn (loop while stillRunning). Do not start a checks loop on a plain push \u2014 only if the user gave a goal (Greptile 5/5, CI green). Pass a worktree thread ref (not the orchestrator). action=ready-for-review and action=merge only when the user explicitly asked (or clicked the desktop button). Do not run git or gh from the orchestration cwd.",
|
|
4500
4499
|
{
|
|
4501
4500
|
ref: z9.string().describe("Worktree thread id/ref"),
|
|
4502
4501
|
action: z9.enum(AGENT_GIT_ACTIONS).describe(
|
|
@@ -3,34 +3,38 @@ import {
|
|
|
3
3
|
Orchestrator,
|
|
4
4
|
getOrchestrator,
|
|
5
5
|
isPidAlive,
|
|
6
|
+
resolveOrchChildFollowUp,
|
|
6
7
|
resolveSendFollowUp,
|
|
7
8
|
startOrchestration,
|
|
8
9
|
waitForPidExit
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EQXXGOMD.js";
|
|
11
|
+
import "./chunk-MQC2VA5U.js";
|
|
10
12
|
import "./chunk-DJU54RYW.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-WXKXSZN4.js";
|
|
13
|
+
import "./chunk-4OVCJPVI.js";
|
|
14
|
+
import "./chunk-BIKCWYRP.js";
|
|
14
15
|
import "./chunk-6K64FJDD.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-QQKDGPUI.js";
|
|
17
|
+
import "./chunk-PE337IM2.js";
|
|
16
18
|
import "./chunk-AN3THU7F.js";
|
|
17
19
|
import "./chunk-N7WZ6NIN.js";
|
|
18
20
|
import "./chunk-AXQ4ZWHK.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-7AJ7OZZF.js";
|
|
22
|
+
import "./chunk-UFHNSFAS.js";
|
|
23
|
+
import "./chunk-BWRS6GAS.js";
|
|
21
24
|
import "./chunk-4TR3HZFT.js";
|
|
22
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-7SNJMKD6.js";
|
|
26
|
+
import "./chunk-4TYXWPAJ.js";
|
|
23
27
|
import "./chunk-JT7R45JB.js";
|
|
24
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-KJBYIIJU.js";
|
|
25
29
|
import "./chunk-77WWLBCI.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-UFHNSFAS.js";
|
|
30
|
+
import "./chunk-WFUDY6PC.js";
|
|
31
|
+
import "./chunk-RCWHL4TK.js";
|
|
29
32
|
export {
|
|
30
33
|
LIVE_TURN_SPAWN_GRACE_MS,
|
|
31
34
|
Orchestrator,
|
|
32
35
|
getOrchestrator,
|
|
33
36
|
isPidAlive,
|
|
37
|
+
resolveOrchChildFollowUp,
|
|
34
38
|
resolveSendFollowUp,
|
|
35
39
|
startOrchestration,
|
|
36
40
|
waitForPidExit
|
|
@@ -5,31 +5,35 @@ import {
|
|
|
5
5
|
Orchestrator,
|
|
6
6
|
getOrchestrator,
|
|
7
7
|
isPidAlive,
|
|
8
|
+
resolveOrchChildFollowUp,
|
|
8
9
|
resolveSendFollowUp,
|
|
9
10
|
startOrchestration,
|
|
10
11
|
waitForPidExit
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-GBWKMWUQ.js";
|
|
13
|
-
import "./chunk-HVIEYTUK.js";
|
|
14
|
-
import "./chunk-Y4MIXGPA.js";
|
|
15
|
-
import "./chunk-VKQGAWHY.js";
|
|
12
|
+
} from "./chunk-3DX2T2KR.js";
|
|
16
13
|
import "./chunk-JFOPOMK7.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-YWI3IBP2.js";
|
|
15
|
+
import "./chunk-EBPBGQ4P.js";
|
|
16
|
+
import "./chunk-HIX2VDRE.js";
|
|
17
|
+
import "./chunk-XPKKCFRT.js";
|
|
20
18
|
import "./chunk-D6JWYJ4P.js";
|
|
21
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-3OHR73VK.js";
|
|
20
|
+
import "./chunk-Y4MIXGPA.js";
|
|
21
|
+
import "./chunk-VKQGAWHY.js";
|
|
22
|
+
import "./chunk-CJFBSQIB.js";
|
|
23
|
+
import "./chunk-64QSHOKV.js";
|
|
22
24
|
import "./chunk-SYFVUF2C.js";
|
|
23
25
|
import "./chunk-FNQNJOHY.js";
|
|
24
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-KORE4WOF.js";
|
|
25
27
|
import "./chunk-NSTQ6QKD.js";
|
|
26
28
|
import "./chunk-KGZBYWZ3.js";
|
|
27
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-EQNRWDLN.js";
|
|
30
|
+
import "./chunk-JTWKGOFI.js";
|
|
28
31
|
export {
|
|
29
32
|
LIVE_TURN_SPAWN_GRACE_MS,
|
|
30
33
|
Orchestrator,
|
|
31
34
|
getOrchestrator,
|
|
32
35
|
isPidAlive,
|
|
36
|
+
resolveOrchChildFollowUp,
|
|
33
37
|
resolveSendFollowUp,
|
|
34
38
|
startOrchestration,
|
|
35
39
|
waitForPidExit
|
|
@@ -15,9 +15,9 @@ import {
|
|
|
15
15
|
updateThread,
|
|
16
16
|
withThreadLock,
|
|
17
17
|
writeThread
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-CJFBSQIB.js";
|
|
19
19
|
import "./chunk-KGZBYWZ3.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-EQNRWDLN.js";
|
|
21
21
|
export {
|
|
22
22
|
appendMessage,
|
|
23
23
|
createEmptyThread,
|
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
updateThread,
|
|
14
14
|
withThreadLock,
|
|
15
15
|
writeThread
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-KJBYIIJU.js";
|
|
17
17
|
import "./chunk-77WWLBCI.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-WFUDY6PC.js";
|
|
19
19
|
export {
|
|
20
20
|
appendMessage,
|
|
21
21
|
createEmptyThread,
|
|
@@ -6,16 +6,18 @@ import {
|
|
|
6
6
|
listWorkspaces,
|
|
7
7
|
removeWorkspace,
|
|
8
8
|
syncWorkspacesFromThreads
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-HIX2VDRE.js";
|
|
10
|
+
import "./chunk-XPKKCFRT.js";
|
|
11
11
|
import "./chunk-D6JWYJ4P.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-CJFBSQIB.js";
|
|
13
|
+
import "./chunk-64QSHOKV.js";
|
|
13
14
|
import "./chunk-SYFVUF2C.js";
|
|
14
15
|
import "./chunk-FNQNJOHY.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-KORE4WOF.js";
|
|
16
17
|
import "./chunk-NSTQ6QKD.js";
|
|
17
18
|
import "./chunk-KGZBYWZ3.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-EQNRWDLN.js";
|
|
20
|
+
import "./chunk-JTWKGOFI.js";
|
|
19
21
|
export {
|
|
20
22
|
addWorkspace,
|
|
21
23
|
ensureWorkspace,
|
|
@@ -4,17 +4,19 @@ import {
|
|
|
4
4
|
listWorkspaces,
|
|
5
5
|
removeWorkspace,
|
|
6
6
|
syncWorkspacesFromThreads
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-4OVCJPVI.js";
|
|
8
|
+
import "./chunk-BIKCWYRP.js";
|
|
9
9
|
import "./chunk-6K64FJDD.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-QQKDGPUI.js";
|
|
11
|
+
import "./chunk-UFHNSFAS.js";
|
|
12
|
+
import "./chunk-BWRS6GAS.js";
|
|
11
13
|
import "./chunk-4TR3HZFT.js";
|
|
14
|
+
import "./chunk-7SNJMKD6.js";
|
|
12
15
|
import "./chunk-JT7R45JB.js";
|
|
13
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-KJBYIIJU.js";
|
|
14
17
|
import "./chunk-77WWLBCI.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-UFHNSFAS.js";
|
|
18
|
+
import "./chunk-WFUDY6PC.js";
|
|
19
|
+
import "./chunk-RCWHL4TK.js";
|
|
18
20
|
export {
|
|
19
21
|
addWorkspace,
|
|
20
22
|
ensureWorkspace,
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
FAMOUS_SOCCER_TEAMS,
|
|
5
4
|
PR_DETAILS_JSON_FIELDS,
|
|
6
|
-
allocateTeamName,
|
|
7
5
|
allocateTeamSlug,
|
|
8
|
-
branchDisplayLabel,
|
|
9
6
|
canonicalizeRepoPath,
|
|
10
7
|
collectTakenTeamSlugs,
|
|
11
8
|
commitAll,
|
|
@@ -29,15 +26,12 @@ import {
|
|
|
29
26
|
githubAgentGitEnv,
|
|
30
27
|
isDefaultishSourceRef,
|
|
31
28
|
isDirty,
|
|
32
|
-
isPlaceholderBranch,
|
|
33
29
|
isSideboardScratchPath,
|
|
34
30
|
listBranches,
|
|
35
31
|
listPrs,
|
|
36
32
|
listWorktrees,
|
|
37
|
-
lookupSoccerTeam,
|
|
38
33
|
markPrReady,
|
|
39
34
|
mergePr,
|
|
40
|
-
normalizeWorktreePath,
|
|
41
35
|
originFetchBranch,
|
|
42
36
|
originGhRepoEnv,
|
|
43
37
|
parseGithubSlugFromRemoteUrl,
|
|
@@ -52,22 +46,31 @@ import {
|
|
|
52
46
|
resolveRepoRoot,
|
|
53
47
|
resolveWorktreeStartPoint,
|
|
54
48
|
slugify,
|
|
55
|
-
suggestSlug
|
|
49
|
+
suggestSlug
|
|
50
|
+
} from "./chunk-XPKKCFRT.js";
|
|
51
|
+
import "./chunk-D6JWYJ4P.js";
|
|
52
|
+
import "./chunk-CJFBSQIB.js";
|
|
53
|
+
import {
|
|
54
|
+
FAMOUS_SOCCER_TEAMS,
|
|
55
|
+
allocateTeamName,
|
|
56
|
+
branchDisplayLabel,
|
|
57
|
+
isPlaceholderBranch,
|
|
58
|
+
lookupSoccerTeam,
|
|
59
|
+
normalizeWorktreePath,
|
|
56
60
|
threadDisplayLabel,
|
|
57
61
|
ticketSlugForBranch,
|
|
58
62
|
worktreeDisplayLabel,
|
|
59
63
|
worktreeDisplayLabelForGroup,
|
|
60
64
|
worktreeNameFromPath,
|
|
61
65
|
worktreeSlugForTicket
|
|
62
|
-
} from "./chunk-
|
|
63
|
-
import "./chunk-D6JWYJ4P.js";
|
|
64
|
-
import "./chunk-GOZ6T3AG.js";
|
|
66
|
+
} from "./chunk-64QSHOKV.js";
|
|
65
67
|
import "./chunk-SYFVUF2C.js";
|
|
66
68
|
import "./chunk-FNQNJOHY.js";
|
|
67
|
-
import "./chunk-
|
|
69
|
+
import "./chunk-KORE4WOF.js";
|
|
68
70
|
import "./chunk-NSTQ6QKD.js";
|
|
69
71
|
import "./chunk-KGZBYWZ3.js";
|
|
70
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-EQNRWDLN.js";
|
|
73
|
+
import "./chunk-JTWKGOFI.js";
|
|
71
74
|
export {
|
|
72
75
|
FAMOUS_SOCCER_TEAMS,
|
|
73
76
|
PR_DETAILS_JSON_FIELDS,
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
FAMOUS_SOCCER_TEAMS,
|
|
3
2
|
PR_DETAILS_JSON_FIELDS,
|
|
4
|
-
allocateTeamName,
|
|
5
3
|
allocateTeamSlug,
|
|
6
|
-
branchDisplayLabel,
|
|
7
4
|
canonicalizeRepoPath,
|
|
8
5
|
collectTakenTeamSlugs,
|
|
9
6
|
commitAll,
|
|
@@ -27,15 +24,12 @@ import {
|
|
|
27
24
|
githubAgentGitEnv,
|
|
28
25
|
isDefaultishSourceRef,
|
|
29
26
|
isDirty,
|
|
30
|
-
isPlaceholderBranch,
|
|
31
27
|
isSideboardScratchPath,
|
|
32
28
|
listBranches,
|
|
33
29
|
listPrs,
|
|
34
30
|
listWorktrees,
|
|
35
|
-
lookupSoccerTeam,
|
|
36
31
|
markPrReady,
|
|
37
32
|
mergePr,
|
|
38
|
-
normalizeWorktreePath,
|
|
39
33
|
originFetchBranch,
|
|
40
34
|
originGhRepoEnv,
|
|
41
35
|
parseGithubSlugFromRemoteUrl,
|
|
@@ -50,23 +44,32 @@ import {
|
|
|
50
44
|
resolveRepoRoot,
|
|
51
45
|
resolveWorktreeStartPoint,
|
|
52
46
|
slugify,
|
|
53
|
-
suggestSlug
|
|
47
|
+
suggestSlug
|
|
48
|
+
} from "./chunk-BIKCWYRP.js";
|
|
49
|
+
import "./chunk-6K64FJDD.js";
|
|
50
|
+
import "./chunk-QQKDGPUI.js";
|
|
51
|
+
import "./chunk-UFHNSFAS.js";
|
|
52
|
+
import "./chunk-BWRS6GAS.js";
|
|
53
|
+
import "./chunk-4TR3HZFT.js";
|
|
54
|
+
import "./chunk-7SNJMKD6.js";
|
|
55
|
+
import "./chunk-JT7R45JB.js";
|
|
56
|
+
import "./chunk-KJBYIIJU.js";
|
|
57
|
+
import "./chunk-77WWLBCI.js";
|
|
58
|
+
import "./chunk-WFUDY6PC.js";
|
|
59
|
+
import {
|
|
60
|
+
FAMOUS_SOCCER_TEAMS,
|
|
61
|
+
allocateTeamName,
|
|
62
|
+
branchDisplayLabel,
|
|
63
|
+
isPlaceholderBranch,
|
|
64
|
+
lookupSoccerTeam,
|
|
65
|
+
normalizeWorktreePath,
|
|
54
66
|
threadDisplayLabel,
|
|
55
67
|
ticketSlugForBranch,
|
|
56
68
|
worktreeDisplayLabel,
|
|
57
69
|
worktreeDisplayLabelForGroup,
|
|
58
70
|
worktreeNameFromPath,
|
|
59
71
|
worktreeSlugForTicket
|
|
60
|
-
} from "./chunk-
|
|
61
|
-
import "./chunk-6K64FJDD.js";
|
|
62
|
-
import "./chunk-J7LQVLFQ.js";
|
|
63
|
-
import "./chunk-4TR3HZFT.js";
|
|
64
|
-
import "./chunk-JT7R45JB.js";
|
|
65
|
-
import "./chunk-TCQAFTSV.js";
|
|
66
|
-
import "./chunk-77WWLBCI.js";
|
|
67
|
-
import "./chunk-EFVFB2AH.js";
|
|
68
|
-
import "./chunk-QQKDGPUI.js";
|
|
69
|
-
import "./chunk-UFHNSFAS.js";
|
|
72
|
+
} from "./chunk-RCWHL4TK.js";
|
|
70
73
|
export {
|
|
71
74
|
FAMOUS_SOCCER_TEAMS,
|
|
72
75
|
PR_DETAILS_JSON_FIELDS,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
branchDisplayLabel,
|
|
3
|
+
isPlaceholderBranch,
|
|
4
|
+
normalizeWorktreePath,
|
|
5
|
+
threadDisplayLabel,
|
|
6
|
+
ticketSlugForBranch,
|
|
7
|
+
worktreeDisplayLabel,
|
|
8
|
+
worktreeDisplayLabelForGroup,
|
|
9
|
+
worktreeNameFromPath,
|
|
10
|
+
worktreeSlugForTicket
|
|
11
|
+
} from "./chunk-RCWHL4TK.js";
|
|
12
|
+
export {
|
|
13
|
+
branchDisplayLabel,
|
|
14
|
+
isPlaceholderBranch,
|
|
15
|
+
normalizeWorktreePath,
|
|
16
|
+
threadDisplayLabel,
|
|
17
|
+
ticketSlugForBranch,
|
|
18
|
+
worktreeDisplayLabel,
|
|
19
|
+
worktreeDisplayLabelForGroup,
|
|
20
|
+
worktreeNameFromPath,
|
|
21
|
+
worktreeSlugForTicket
|
|
22
|
+
};
|