@sideboard-ai/core 0.1.315 → 0.1.317
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-QQZWYJXC.js → abletime-NZ2ABWAL.js} +3 -3
- package/dist/{abletime-QK3KMRQD.js → abletime-TKAFNXCM.js} +3 -3
- package/dist/{abletime-oauth-CAHTMB4V.js → abletime-oauth-CBFFBINA.js} +2 -2
- package/dist/{abletime-oauth-I2RRPVKT.js → abletime-oauth-S4AXA4WR.js} +2 -2
- package/dist/{abletime-rest-5V4KGMSY.js → abletime-rest-NSOP72AI.js} +2 -2
- package/dist/{abletime-rest-W5TLQK7C.js → abletime-rest-ORBELZQO.js} +2 -2
- package/dist/{agents-Y3M3EKLY.js → agents-BJVSYC6Y.js} +4 -4
- package/dist/{agents-5XJ7EHGU.js → agents-KABJUDPI.js} +4 -4
- package/dist/{chunk-IODJCVMN.js → chunk-4XZJYBO2.js} +6 -34
- package/dist/{chunk-JRZTJ4F7.js → chunk-7SCVGGF6.js} +4 -4
- package/dist/{chunk-5CTG5W7S.js → chunk-A46CIARU.js} +1 -1
- package/dist/{chunk-PN32Z4JL.js → chunk-A6C67DY5.js} +2 -2
- package/dist/{chunk-CYPFOIUK.js → chunk-BXTISNKW.js} +16 -16
- package/dist/{chunk-7J2KOIYD.js → chunk-CCUGIVYN.js} +2 -2
- package/dist/{chunk-DV6ID6CK.js → chunk-ELBK34TY.js} +4 -4
- package/dist/{chunk-FVTR54LY.js → chunk-GH7UMULC.js} +4 -4
- package/dist/{chunk-MKGSMPWB.js → chunk-GXSV3X3L.js} +2 -2
- package/dist/{chunk-U35AHE2P.js → chunk-HOLB6ZFZ.js} +33 -2
- package/dist/{chunk-72OWKHFJ.js → chunk-I5CLCWUK.js} +2 -2
- package/dist/{chunk-YR7NZYUT.js → chunk-NRSC4N5X.js} +6 -34
- package/dist/{chunk-GFM63DTU.js → chunk-PX324N7P.js} +2 -2
- package/dist/{chunk-BMORGDYI.js → chunk-U53JICJ2.js} +18 -17
- package/dist/{chunk-NZVD5EVX.js → chunk-VVV7EI6T.js} +2 -1
- package/dist/{chunk-Y4WARKPW.js → chunk-VZAJVX36.js} +2 -1
- package/dist/{chunk-NKVNHBDB.js → chunk-XWUDFLBX.js} +3 -3
- package/dist/{chunk-CHUPIJP7.js → chunk-YEIHCSZS.js} +63 -2
- package/dist/{chunk-BPBDGJ43.js → chunk-YN6XONV5.js} +1 -1
- package/dist/{conductor-IMKNYQWZ.js → conductor-NIUBJLTS.js} +4 -4
- package/dist/{conductor-DKWTQADV.js → conductor-TP2NA44I.js} +4 -4
- package/dist/{coordinator-prompt-HUZC4DZ2.js → coordinator-prompt-3CT3D5UM.js} +3 -3
- package/dist/{coordinator-prompt-SPOYUZG5.js → coordinator-prompt-FQC2SZPP.js} +3 -3
- package/dist/{global-workspace-3NNDDTFD.js → global-workspace-72K6D354.js} +3 -3
- package/dist/{global-workspace-SK4JQBPN.js → global-workspace-BUWMRNW5.js} +3 -3
- package/dist/index.cjs +360 -42
- package/dist/index.d.cts +11 -5
- package/dist/index.d.ts +11 -5
- package/dist/index.js +301 -21
- package/dist/mcp/run-stdio.cjs +38 -34
- package/dist/mcp/run-stdio.js +9 -9
- package/dist/{orchestrator-4XFRK57E.js → orchestrator-E72HYGTB.js} +6 -6
- package/dist/{orchestrator-ZRMZ4TCL.js → orchestrator-N54V3B76.js} +6 -6
- package/dist/{thread-store-5OF6M6VZ.js → thread-store-7BBA63KV.js} +1 -1
- package/dist/{thread-store-GOVVXQV2.js → thread-store-PLNIWFZ4.js} +1 -1
- package/dist/{workspaces-EYNZDL45.js → workspaces-2V5UYPYC.js} +3 -3
- package/dist/{workspaces-52L6NZ3P.js → workspaces-GAUHXBUL.js} +3 -3
- package/dist/{worktree-BP5ICYQ2.js → worktree-6FUQ7FEF.js} +2 -2
- package/dist/{worktree-UCOSAI7J.js → worktree-XJKLDYOL.js} +2 -2
- package/package.json +1 -1
|
@@ -16,9 +16,9 @@ import {
|
|
|
16
16
|
toAbleTimeIssueInfo,
|
|
17
17
|
updateAbleTimeTask,
|
|
18
18
|
verifyAbleTimeConnection
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-GXSV3X3L.js";
|
|
20
|
+
import "./chunk-VVV7EI6T.js";
|
|
21
|
+
import "./chunk-ELBK34TY.js";
|
|
22
22
|
import "./chunk-JAT3JFOS.js";
|
|
23
23
|
import "./chunk-6K64FJDD.js";
|
|
24
24
|
import "./chunk-U7PNCYNX.js";
|
|
@@ -18,9 +18,9 @@ import {
|
|
|
18
18
|
toAbleTimeIssueInfo,
|
|
19
19
|
updateAbleTimeTask,
|
|
20
20
|
verifyAbleTimeConnection
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-I5CLCWUK.js";
|
|
22
|
+
import "./chunk-VZAJVX36.js";
|
|
23
|
+
import "./chunk-7SCVGGF6.js";
|
|
24
24
|
import "./chunk-2GPQZZLY.js";
|
|
25
25
|
import "./chunk-N2WW62LF.js";
|
|
26
26
|
import "./chunk-GCHSJCCX.js";
|
|
@@ -20,8 +20,8 @@ import {
|
|
|
20
20
|
parseAbleTimeOAuthCallbackUrl,
|
|
21
21
|
resolveAbleTimeOAuthHost,
|
|
22
22
|
startAbleTimeOAuth
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-CCUGIVYN.js";
|
|
24
|
+
import "./chunk-ELBK34TY.js";
|
|
25
25
|
import "./chunk-JAT3JFOS.js";
|
|
26
26
|
import "./chunk-U7PNCYNX.js";
|
|
27
27
|
import "./chunk-77WWLBCI.js";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import {
|
|
4
4
|
DEFAULT_ABLETIME_HOST,
|
|
5
5
|
normalizeAbleTimeHost
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7SCVGGF6.js";
|
|
7
7
|
import {
|
|
8
8
|
httpFetch
|
|
9
9
|
} from "./chunk-2GPQZZLY.js";
|
|
@@ -288,7 +288,7 @@ async function startAbleTimeOAuth(opts) {
|
|
|
288
288
|
persistAbleTimeTokens(data, { host });
|
|
289
289
|
const token = data.access_token.trim();
|
|
290
290
|
try {
|
|
291
|
-
const { getAbleTimeOrientation } = await import("./abletime-
|
|
291
|
+
const { getAbleTimeOrientation } = await import("./abletime-TKAFNXCM.js");
|
|
292
292
|
const orientation = await getAbleTimeOrientation({ token, host });
|
|
293
293
|
return saveAbleTimeConnection({
|
|
294
294
|
accessToken: token,
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
callAbleTimeRestTool,
|
|
6
6
|
looksLikeAbleTimeUlid,
|
|
7
7
|
textFromAbleTimeDoc
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-VVV7EI6T.js";
|
|
9
|
+
import "./chunk-ELBK34TY.js";
|
|
10
10
|
import "./chunk-JAT3JFOS.js";
|
|
11
11
|
import "./chunk-U7PNCYNX.js";
|
|
12
12
|
import "./chunk-77WWLBCI.js";
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
callAbleTimeRestTool,
|
|
8
8
|
looksLikeAbleTimeUlid,
|
|
9
9
|
textFromAbleTimeDoc
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-VZAJVX36.js";
|
|
11
|
+
import "./chunk-7SCVGGF6.js";
|
|
12
12
|
import "./chunk-2GPQZZLY.js";
|
|
13
13
|
import "./chunk-GCHSJCCX.js";
|
|
14
14
|
import "./chunk-NSTQ6QKD.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
planModeTurnInstruction,
|
|
38
38
|
resolveCursorModelId,
|
|
39
39
|
resolveQuotaFallbackAgent
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-XWUDFLBX.js";
|
|
41
41
|
import "./chunk-HH3VVTEC.js";
|
|
42
42
|
import "./chunk-7Q327QF2.js";
|
|
43
43
|
import {
|
|
@@ -52,9 +52,9 @@ import {
|
|
|
52
52
|
resolveLoginCommand,
|
|
53
53
|
whichOnPath
|
|
54
54
|
} from "./chunk-NXNNYY3Q.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-PX324N7P.js";
|
|
56
|
+
import "./chunk-YN6XONV5.js";
|
|
57
|
+
import "./chunk-YEIHCSZS.js";
|
|
58
58
|
import "./chunk-2P4XKWV2.js";
|
|
59
59
|
import "./chunk-RSA47QYR.js";
|
|
60
60
|
import "./chunk-JAT3JFOS.js";
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
resolveCursorSdkRoot,
|
|
47
47
|
resolveQuotaFallbackAgent,
|
|
48
48
|
turnCostUsdFromCursorUsage
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-GH7UMULC.js";
|
|
50
50
|
import {
|
|
51
51
|
getAgentSetupInfo,
|
|
52
52
|
installAgent,
|
|
@@ -63,8 +63,8 @@ import "./chunk-V5BTGQ6M.js";
|
|
|
63
63
|
import "./chunk-E63AM3PW.js";
|
|
64
64
|
import "./chunk-2GPQZZLY.js";
|
|
65
65
|
import "./chunk-I5TESHDN.js";
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-A6C67DY5.js";
|
|
67
|
+
import "./chunk-A46CIARU.js";
|
|
68
68
|
import "./chunk-N2WW62LF.js";
|
|
69
69
|
import "./chunk-DD67JWTN.js";
|
|
70
70
|
import {
|
|
@@ -88,7 +88,7 @@ import "./chunk-NSTQ6QKD.js";
|
|
|
88
88
|
import "./chunk-WWUABK6B.js";
|
|
89
89
|
import "./chunk-FJZWM2ON.js";
|
|
90
90
|
import "./chunk-J2LNLI4S.js";
|
|
91
|
-
import "./chunk-
|
|
91
|
+
import "./chunk-HOLB6ZFZ.js";
|
|
92
92
|
import "./chunk-WMZIANPV.js";
|
|
93
93
|
import "./chunk-KGZBYWZ3.js";
|
|
94
94
|
import "./chunk-WOU343SI.js";
|
|
@@ -8,12 +8,13 @@ import {
|
|
|
8
8
|
isGlobalThread,
|
|
9
9
|
isOrchestratorThread,
|
|
10
10
|
isSlackCoordinatorThread
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PX324N7P.js";
|
|
12
12
|
import {
|
|
13
13
|
mergeAgentGitAuthEnv,
|
|
14
14
|
resolveAgentGitAuthEnv
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YN6XONV5.js";
|
|
16
16
|
import {
|
|
17
|
+
REVIEW_TAB_TITLE,
|
|
17
18
|
allocateTeamName,
|
|
18
19
|
createEmptyThread,
|
|
19
20
|
findThreadByRef,
|
|
@@ -23,7 +24,7 @@ import {
|
|
|
23
24
|
updateThread,
|
|
24
25
|
worktreeNameFromPath,
|
|
25
26
|
writeThread
|
|
26
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-YEIHCSZS.js";
|
|
27
28
|
import {
|
|
28
29
|
ensureWorktreeSideboardIgnored
|
|
29
30
|
} from "./chunk-2P4XKWV2.js";
|
|
@@ -690,6 +691,7 @@ function worktreeBindingFrom(from) {
|
|
|
690
691
|
prIsInMergeQueue: from.prIsInMergeQueue,
|
|
691
692
|
prLabels: from.prLabels,
|
|
692
693
|
prChecksFailed: from.prChecksFailed,
|
|
694
|
+
issueBlockedBy: from.issueBlockedBy,
|
|
693
695
|
skipAutoArchiveOnMerge: from.skipAutoArchiveOnMerge,
|
|
694
696
|
stackId: from.stackId,
|
|
695
697
|
stackLayer: from.stackLayer,
|
|
@@ -786,32 +788,6 @@ function forkChatTab(input) {
|
|
|
786
788
|
return tab;
|
|
787
789
|
}
|
|
788
790
|
|
|
789
|
-
// src/review/review-write-gate.ts
|
|
790
|
-
var REVIEW_TAB_TITLE = "Review";
|
|
791
|
-
function hasLiveReviewSibling(thread, siblings = []) {
|
|
792
|
-
const selfId = thread.id;
|
|
793
|
-
return siblings.some(
|
|
794
|
-
(t) => t.id !== selfId && t.status !== "archived" && t.title.trim() === REVIEW_TAB_TITLE
|
|
795
|
-
);
|
|
796
|
-
}
|
|
797
|
-
function isReviewWriteGatedThread(thread, siblings) {
|
|
798
|
-
if (thread.sourceType === "pr" || thread.title.trim() === REVIEW_TAB_TITLE) {
|
|
799
|
-
return true;
|
|
800
|
-
}
|
|
801
|
-
return hasLiveReviewSibling(thread, siblings);
|
|
802
|
-
}
|
|
803
|
-
function formatReviewWriteGateDirective() {
|
|
804
|
-
return [
|
|
805
|
-
"Review writes are public. The PR or ticket author sees GitHub/Linear/AbleTime comments, ticket updates, and submitted reviews immediately \u2014 a draft will confuse them.",
|
|
806
|
-
"Write the recommendation in chat so the user can work through the feedback first. Do not call github_comment, linear_comment, abletime_comment, github_update_issue, linear_update_issue, abletime_update_task, or run `gh pr review` / `gh pr comment`, until they type a next step that asks you to post.",
|
|
807
|
-
"After the review is in chat, stop. Do not call ask_user. The user needs time to read and will type the next steps. If they already asked you to post a specific comment or update in this turn, that is confirmation.",
|
|
808
|
-
"Do not request reviewers, change labels, or assign yourself unless they asked \u2014 those also notify the author."
|
|
809
|
-
].join("\n");
|
|
810
|
-
}
|
|
811
|
-
function formatReviewWriteGateReminder() {
|
|
812
|
-
return "Review writes: keep the review in chat. Do not ask_user after it \u2014 they read and type next steps. Do not github_comment / linear_comment / *_update_* / `gh pr review` on the PR or ticket until they ask. Authors see those immediately.";
|
|
813
|
-
}
|
|
814
|
-
|
|
815
791
|
// src/review/review-request-template.ts
|
|
816
792
|
var REVIEW_REQUEST_TEMPLATE = `# Review guidelines:
|
|
817
793
|
|
|
@@ -1832,7 +1808,7 @@ var PORT_RANGE_SIZE = 10;
|
|
|
1832
1808
|
var RECLAIM_RETRY_DELAY_MS = 40;
|
|
1833
1809
|
var RECLAIM_TRIES = 8;
|
|
1834
1810
|
async function killReclaimable(ports, worktreePath, signal) {
|
|
1835
|
-
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-
|
|
1811
|
+
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-TP2NA44I.js");
|
|
1836
1812
|
if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
|
|
1837
1813
|
else killListenersOnPorts2(ports);
|
|
1838
1814
|
}
|
|
@@ -2583,10 +2559,6 @@ export {
|
|
|
2583
2559
|
buildForkTranscriptAttachment,
|
|
2584
2560
|
createChatTab,
|
|
2585
2561
|
forkChatTab,
|
|
2586
|
-
REVIEW_TAB_TITLE,
|
|
2587
|
-
isReviewWriteGatedThread,
|
|
2588
|
-
formatReviewWriteGateDirective,
|
|
2589
|
-
formatReviewWriteGateReminder,
|
|
2590
2562
|
REVIEW_REQUEST_TEMPLATE,
|
|
2591
2563
|
REVIEW_SKILL_PATH,
|
|
2592
2564
|
REVIEW_SKILL_NAME,
|
|
@@ -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-S4AXA4WR.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-S4AXA4WR.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-ORBELZQO.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-ORBELZQO.js");
|
|
248
248
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
249
249
|
}
|
|
250
250
|
throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
ensureGhPreferOrigin,
|
|
6
6
|
resolveGithubRepoSlug,
|
|
7
7
|
resolveRepoRoot
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-A46CIARU.js";
|
|
9
9
|
import {
|
|
10
10
|
ATTACHMENTS_DIR,
|
|
11
11
|
attachmentsGitignoreBody
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
teamSlugFromName,
|
|
32
32
|
updateThread,
|
|
33
33
|
writeThread
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-HOLB6ZFZ.js";
|
|
35
35
|
import {
|
|
36
36
|
appDataDir,
|
|
37
37
|
globalAgentCwd,
|
|
@@ -27,9 +27,8 @@ import {
|
|
|
27
27
|
parseSessionQuotaResetAt,
|
|
28
28
|
planModeTurnInstruction,
|
|
29
29
|
resolveQuotaFallbackAgent
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-GH7UMULC.js";
|
|
31
31
|
import {
|
|
32
|
-
REVIEW_TAB_TITLE,
|
|
33
32
|
applyWorktreePkgCacheEnv,
|
|
34
33
|
askBlockStillWaiting,
|
|
35
34
|
buildBrightsySessionSeed,
|
|
@@ -41,13 +40,10 @@ import {
|
|
|
41
40
|
extractPendingPlanQuestions,
|
|
42
41
|
forkChatTab,
|
|
43
42
|
forkMessageSlice,
|
|
44
|
-
formatReviewWriteGateDirective,
|
|
45
|
-
formatReviewWriteGateReminder,
|
|
46
43
|
getDefaultRunScript,
|
|
47
44
|
getRunMode,
|
|
48
45
|
isAskUserToolName,
|
|
49
46
|
isJobContinuePrompt,
|
|
50
|
-
isReviewWriteGatedThread,
|
|
51
47
|
isWorktreeRunProcessKey,
|
|
52
48
|
killDetachedRunTree,
|
|
53
49
|
killListenersOnPorts,
|
|
@@ -69,7 +65,7 @@ import {
|
|
|
69
65
|
worktreeDevProcessKey,
|
|
70
66
|
worktreeRunProcessKey,
|
|
71
67
|
worktreeSetupProcessKey
|
|
72
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-NRSC4N5X.js";
|
|
73
69
|
import {
|
|
74
70
|
applyAgentEvent,
|
|
75
71
|
clipAgentEventForPaint,
|
|
@@ -121,7 +117,7 @@ import {
|
|
|
121
117
|
stageAbsolutePathsAsAttachments,
|
|
122
118
|
stageBuffersAsAttachments,
|
|
123
119
|
syncWorkspacesFromThreads
|
|
124
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-A6C67DY5.js";
|
|
125
121
|
import {
|
|
126
122
|
addPrStackLayer,
|
|
127
123
|
allocateTeamSlug,
|
|
@@ -163,7 +159,7 @@ import {
|
|
|
163
159
|
resolveRepoRoot,
|
|
164
160
|
switchWorktreeBranch,
|
|
165
161
|
withRepoGitLock
|
|
166
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-A46CIARU.js";
|
|
167
163
|
import {
|
|
168
164
|
clearStaleIndexLocks,
|
|
169
165
|
enrichPathWithNpmGlobalBin,
|
|
@@ -220,12 +216,16 @@ import {
|
|
|
220
216
|
resolveAccountForThread
|
|
221
217
|
} from "./chunk-J2LNLI4S.js";
|
|
222
218
|
import {
|
|
219
|
+
REVIEW_TAB_TITLE,
|
|
223
220
|
agentNicknameFromWorktreePath,
|
|
224
221
|
appendMessage,
|
|
225
222
|
createEmptyThread,
|
|
226
223
|
deleteThreadRecord,
|
|
227
224
|
findThreadByRef,
|
|
225
|
+
formatReviewWriteGateDirective,
|
|
226
|
+
formatReviewWriteGateReminder,
|
|
228
227
|
isPlaceholderBranch,
|
|
228
|
+
isReviewWriteGatedThread,
|
|
229
229
|
isWorktreeIdentityTitle,
|
|
230
230
|
listThreads,
|
|
231
231
|
normalizeWorkspaceTags,
|
|
@@ -242,7 +242,7 @@ import {
|
|
|
242
242
|
worktreeNameFromPath,
|
|
243
243
|
worktreeSlugForTicket,
|
|
244
244
|
writeThread
|
|
245
|
-
} from "./chunk-
|
|
245
|
+
} from "./chunk-HOLB6ZFZ.js";
|
|
246
246
|
import {
|
|
247
247
|
annotateDevAccessRuns,
|
|
248
248
|
appDataDir,
|
|
@@ -507,9 +507,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
|
|
|
507
507
|
`Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
|
|
508
508
|
);
|
|
509
509
|
}
|
|
510
|
-
const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-
|
|
510
|
+
const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-BUWMRNW5.js");
|
|
511
511
|
if (isGlobalThread2(thread)) {
|
|
512
|
-
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-
|
|
512
|
+
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-3CT3D5UM.js");
|
|
513
513
|
ensureGlobalCoordinatorCwd2(
|
|
514
514
|
isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
|
|
515
515
|
);
|
|
@@ -2691,7 +2691,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
2691
2691
|
let sourceIsFork = false;
|
|
2692
2692
|
if (!input.cowboy && sourceType === "branch" && (!sourceRef || sourceRef === "HEAD" || sourceRef === "default")) {
|
|
2693
2693
|
if (isAbleTimeConnected() && getIssueSource() === "abletime") {
|
|
2694
|
-
const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-
|
|
2694
|
+
const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-TKAFNXCM.js");
|
|
2695
2695
|
const task = await ensureAbleTimeTask({
|
|
2696
2696
|
title: title?.trim() || "Untitled work",
|
|
2697
2697
|
description: input.prompt?.trim() || void 0
|
|
@@ -3564,7 +3564,7 @@ async function adoptThread(input) {
|
|
|
3564
3564
|
messages: input.messages ?? []
|
|
3565
3565
|
});
|
|
3566
3566
|
writeThread(thread);
|
|
3567
|
-
const { addWorkspace: addWorkspace2 } = await import("./workspaces-
|
|
3567
|
+
const { addWorkspace: addWorkspace2 } = await import("./workspaces-2V5UYPYC.js");
|
|
3568
3568
|
await addWorkspace2(repoPath);
|
|
3569
3569
|
const { ensureWorktreeSideboardIgnored } = await import("./worktree-exclude-5N2KTYIT.js");
|
|
3570
3570
|
await ensureWorktreeSideboardIgnored(input.worktreePath);
|
|
@@ -6458,7 +6458,7 @@ function formatScheduledPrompt(name, prompt) {
|
|
|
6458
6458
|
${prompt}`;
|
|
6459
6459
|
}
|
|
6460
6460
|
async function defaultDeps() {
|
|
6461
|
-
const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-
|
|
6461
|
+
const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-N54V3B76.js");
|
|
6462
6462
|
const orch = getOrchestrator2();
|
|
6463
6463
|
return {
|
|
6464
6464
|
findThread: (id) => findThreadByRef(id),
|
|
@@ -9340,7 +9340,7 @@ async function startOrchestration(opts) {
|
|
|
9340
9340
|
sourceRef: "default",
|
|
9341
9341
|
...createOpts
|
|
9342
9342
|
}).catch(async () => {
|
|
9343
|
-
const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-
|
|
9343
|
+
const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-XJKLDYOL.js");
|
|
9344
9344
|
const repo = await resolveRepoRoot2(repoPath);
|
|
9345
9345
|
const def = await resolveDefaultBranch2(repo);
|
|
9346
9346
|
return orch.createThread({
|
|
@@ -9350,7 +9350,7 @@ async function startOrchestration(opts) {
|
|
|
9350
9350
|
repoPath: repo
|
|
9351
9351
|
});
|
|
9352
9352
|
});
|
|
9353
|
-
const { updateThread: upd } = await import("./thread-store-
|
|
9353
|
+
const { updateThread: upd } = await import("./thread-store-PLNIWFZ4.js");
|
|
9354
9354
|
const updated = upd(thread.id, {
|
|
9355
9355
|
sourceType: "orchestration",
|
|
9356
9356
|
sourceRef: goal
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_ABLETIME_HOST,
|
|
3
3
|
normalizeAbleTimeHost
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ELBK34TY.js";
|
|
5
5
|
import {
|
|
6
6
|
httpFetch
|
|
7
7
|
} from "./chunk-JAT3JFOS.js";
|
|
@@ -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-NZ2ABWAL.js");
|
|
284
284
|
const orientation = await getAbleTimeOrientation({ token, host });
|
|
285
285
|
return saveAbleTimeConnection({
|
|
286
286
|
accessToken: token,
|
|
@@ -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-CBFFBINA.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-CBFFBINA.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-NSOP72AI.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-NSOP72AI.js");
|
|
246
246
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
247
247
|
}
|
|
248
248
|
throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
|
|
@@ -24,13 +24,13 @@ import {
|
|
|
24
24
|
} from "./chunk-I5TESHDN.js";
|
|
25
25
|
import {
|
|
26
26
|
isOrchestratorThread
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-A6C67DY5.js";
|
|
28
28
|
import {
|
|
29
29
|
codexUnattendedGitConfigArgs,
|
|
30
30
|
mergeAgentGitAuthEnv,
|
|
31
31
|
resolveAgentGitAuthEnv,
|
|
32
32
|
resolveCodexGitWritableRoots
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-A46CIARU.js";
|
|
34
34
|
import {
|
|
35
35
|
githubAgentAuthReady,
|
|
36
36
|
npmGlobalNodeModules,
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS,
|
|
58
58
|
CLAUDE_PRINT_BG_WAIT_CEILING_MS,
|
|
59
59
|
mcpAllowToolsFromNames
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-HOLB6ZFZ.js";
|
|
61
61
|
import {
|
|
62
62
|
appDataDir
|
|
63
63
|
} from "./chunk-WOU343SI.js";
|
|
@@ -2916,7 +2916,7 @@ var claudeAdapter = {
|
|
|
2916
2916
|
);
|
|
2917
2917
|
}
|
|
2918
2918
|
const mode = permissionMode(thread);
|
|
2919
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
2919
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-BUWMRNW5.js");
|
|
2920
2920
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
2921
2921
|
const rpc = worktreeAgentRpc(isOrchestrator);
|
|
2922
2922
|
const injectedServers = await buildInjectedMcpServers({
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
abletimeRestUrl,
|
|
3
3
|
textFromAbleTimeDoc
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VVV7EI6T.js";
|
|
5
5
|
import {
|
|
6
6
|
assertAbleTimeCredential,
|
|
7
7
|
callAbleTimeTool,
|
|
8
8
|
normalizeAbleTimeHost,
|
|
9
9
|
rewriteAbleTimeError
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ELBK34TY.js";
|
|
11
11
|
import {
|
|
12
12
|
httpFetch
|
|
13
13
|
} from "./chunk-JAT3JFOS.js";
|
|
@@ -15,6 +15,32 @@ import {
|
|
|
15
15
|
// src/store/thread-store.ts
|
|
16
16
|
import { randomUUID } from "crypto";
|
|
17
17
|
|
|
18
|
+
// src/review/review-write-gate.ts
|
|
19
|
+
var REVIEW_TAB_TITLE = "Review";
|
|
20
|
+
function hasLiveReviewSibling(thread, siblings = []) {
|
|
21
|
+
const selfId = thread.id;
|
|
22
|
+
return siblings.some(
|
|
23
|
+
(t) => t.id !== selfId && t.status !== "archived" && t.title.trim() === REVIEW_TAB_TITLE
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
function isReviewWriteGatedThread(thread, siblings) {
|
|
27
|
+
if (thread.sourceType === "pr" || thread.title.trim() === REVIEW_TAB_TITLE) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return hasLiveReviewSibling(thread, siblings);
|
|
31
|
+
}
|
|
32
|
+
function formatReviewWriteGateDirective() {
|
|
33
|
+
return [
|
|
34
|
+
"Review writes are public. The PR or ticket author sees GitHub/Linear/AbleTime comments, ticket updates, and submitted reviews immediately \u2014 a draft will confuse them.",
|
|
35
|
+
"Write the recommendation in chat so the user can work through the feedback first. Do not call github_comment, linear_comment, abletime_comment, github_update_issue, linear_update_issue, abletime_update_task, or run `gh pr review` / `gh pr comment`, until they type a next step that asks you to post.",
|
|
36
|
+
"After the review is in chat, stop. Do not call ask_user. The user needs time to read and will type the next steps. If they already asked you to post a specific comment or update in this turn, that is confirmation.",
|
|
37
|
+
"Do not request reviewers, change labels, or assign yourself unless they asked \u2014 those also notify the author."
|
|
38
|
+
].join("\n");
|
|
39
|
+
}
|
|
40
|
+
function formatReviewWriteGateReminder() {
|
|
41
|
+
return "Review writes: keep the review in chat. Do not ask_user after it \u2014 they read and type next steps. Do not github_comment / linear_comment / *_update_* / `gh pr review` on the PR or ticket until they ask. Authors see those immediately.";
|
|
42
|
+
}
|
|
43
|
+
|
|
18
44
|
// src/git/team-meta.ts
|
|
19
45
|
var SOCCER_TEAM_META = {
|
|
20
46
|
"aalborg": { location: "Aalborg, Denmark", league: "Danish Superliga" },
|
|
@@ -875,11 +901,12 @@ function branchDisplayLabel(branchName, worktreePath) {
|
|
|
875
901
|
}
|
|
876
902
|
function taskPurposeTitle(title) {
|
|
877
903
|
const trimmed = title?.trim() ?? "";
|
|
878
|
-
if (!trimmed || teamSlugFromName(trimmed)) return null;
|
|
904
|
+
if (!trimmed || teamSlugFromName(trimmed) || trimmed === REVIEW_TAB_TITLE) return null;
|
|
879
905
|
return trimmed;
|
|
880
906
|
}
|
|
881
907
|
function threadDisplayLabel(thread) {
|
|
882
|
-
|
|
908
|
+
const titled = thread.title?.trim() ?? "";
|
|
909
|
+
if (thread.userSetTitle && titled && titled !== REVIEW_TAB_TITLE) return titled;
|
|
883
910
|
if (thread.prTitle?.trim()) return thread.prTitle.trim();
|
|
884
911
|
if (isPlaceholderBranch(thread.branchName, thread.worktreePath)) {
|
|
885
912
|
const purpose = taskPurposeTitle(thread.title);
|
|
@@ -1285,6 +1312,10 @@ function findThreadByRef(ref) {
|
|
|
1285
1312
|
}
|
|
1286
1313
|
|
|
1287
1314
|
export {
|
|
1315
|
+
REVIEW_TAB_TITLE,
|
|
1316
|
+
isReviewWriteGatedThread,
|
|
1317
|
+
formatReviewWriteGateDirective,
|
|
1318
|
+
formatReviewWriteGateReminder,
|
|
1288
1319
|
FAMOUS_SOCCER_TEAMS,
|
|
1289
1320
|
lookupSoccerTeam,
|
|
1290
1321
|
teamSlugFromName,
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import {
|
|
4
4
|
abletimeRestUrl,
|
|
5
5
|
textFromAbleTimeDoc
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VZAJVX36.js";
|
|
7
7
|
import {
|
|
8
8
|
assertAbleTimeCredential,
|
|
9
9
|
callAbleTimeTool,
|
|
10
10
|
normalizeAbleTimeHost,
|
|
11
11
|
rewriteAbleTimeError
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7SCVGGF6.js";
|
|
13
13
|
import {
|
|
14
14
|
httpFetch
|
|
15
15
|
} from "./chunk-2GPQZZLY.js";
|