@sideboard-ai/core 0.1.316 → 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/{agents-Y3M3EKLY.js → agents-BJVSYC6Y.js} +4 -4
- package/dist/{agents-5XJ7EHGU.js → agents-KABJUDPI.js} +4 -4
- package/dist/{chunk-ATSZXRFQ.js → chunk-4XZJYBO2.js} +5 -34
- package/dist/{chunk-5CTG5W7S.js → chunk-A46CIARU.js} +1 -1
- package/dist/{chunk-PN32Z4JL.js → chunk-A6C67DY5.js} +2 -2
- package/dist/{chunk-7BLIY2DD.js → chunk-BXTISNKW.js} +15 -15
- package/dist/{chunk-FVTR54LY.js → chunk-GH7UMULC.js} +4 -4
- package/dist/{chunk-U35AHE2P.js → chunk-HOLB6ZFZ.js} +33 -2
- package/dist/{chunk-DNWO6PQJ.js → chunk-NRSC4N5X.js} +5 -34
- package/dist/{chunk-GFM63DTU.js → chunk-PX324N7P.js} +2 -2
- package/dist/{chunk-4ISF5XUA.js → chunk-U53JICJ2.js} +16 -16
- 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-NZ4V5CJX.js → conductor-NIUBJLTS.js} +4 -4
- package/dist/{conductor-CFLBKVHJ.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 +67 -36
- package/dist/index.js +12 -11
- package/dist/mcp/run-stdio.cjs +36 -34
- package/dist/mcp/run-stdio.js +6 -6
- package/dist/{orchestrator-KXEPWTG5.js → orchestrator-E72HYGTB.js} +6 -6
- package/dist/{orchestrator-7342RGRU.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
|
@@ -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";
|
|
@@ -787,32 +788,6 @@ function forkChatTab(input) {
|
|
|
787
788
|
return tab;
|
|
788
789
|
}
|
|
789
790
|
|
|
790
|
-
// src/review/review-write-gate.ts
|
|
791
|
-
var REVIEW_TAB_TITLE = "Review";
|
|
792
|
-
function hasLiveReviewSibling(thread, siblings = []) {
|
|
793
|
-
const selfId = thread.id;
|
|
794
|
-
return siblings.some(
|
|
795
|
-
(t) => t.id !== selfId && t.status !== "archived" && t.title.trim() === REVIEW_TAB_TITLE
|
|
796
|
-
);
|
|
797
|
-
}
|
|
798
|
-
function isReviewWriteGatedThread(thread, siblings) {
|
|
799
|
-
if (thread.sourceType === "pr" || thread.title.trim() === REVIEW_TAB_TITLE) {
|
|
800
|
-
return true;
|
|
801
|
-
}
|
|
802
|
-
return hasLiveReviewSibling(thread, siblings);
|
|
803
|
-
}
|
|
804
|
-
function formatReviewWriteGateDirective() {
|
|
805
|
-
return [
|
|
806
|
-
"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.",
|
|
807
|
-
"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.",
|
|
808
|
-
"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.",
|
|
809
|
-
"Do not request reviewers, change labels, or assign yourself unless they asked \u2014 those also notify the author."
|
|
810
|
-
].join("\n");
|
|
811
|
-
}
|
|
812
|
-
function formatReviewWriteGateReminder() {
|
|
813
|
-
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.";
|
|
814
|
-
}
|
|
815
|
-
|
|
816
791
|
// src/review/review-request-template.ts
|
|
817
792
|
var REVIEW_REQUEST_TEMPLATE = `# Review guidelines:
|
|
818
793
|
|
|
@@ -1833,7 +1808,7 @@ var PORT_RANGE_SIZE = 10;
|
|
|
1833
1808
|
var RECLAIM_RETRY_DELAY_MS = 40;
|
|
1834
1809
|
var RECLAIM_TRIES = 8;
|
|
1835
1810
|
async function killReclaimable(ports, worktreePath, signal) {
|
|
1836
|
-
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-
|
|
1811
|
+
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-TP2NA44I.js");
|
|
1837
1812
|
if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
|
|
1838
1813
|
else killListenersOnPorts2(ports);
|
|
1839
1814
|
}
|
|
@@ -2584,10 +2559,6 @@ export {
|
|
|
2584
2559
|
buildForkTranscriptAttachment,
|
|
2585
2560
|
createChatTab,
|
|
2586
2561
|
forkChatTab,
|
|
2587
|
-
REVIEW_TAB_TITLE,
|
|
2588
|
-
isReviewWriteGatedThread,
|
|
2589
|
-
formatReviewWriteGateDirective,
|
|
2590
|
-
formatReviewWriteGateReminder,
|
|
2591
2562
|
REVIEW_REQUEST_TEMPLATE,
|
|
2592
2563
|
REVIEW_SKILL_PATH,
|
|
2593
2564
|
REVIEW_SKILL_NAME,
|
|
@@ -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
|
);
|
|
@@ -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
|
|
@@ -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({
|
|
@@ -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,
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
isGlobalThread,
|
|
12
12
|
isOrchestratorThread,
|
|
13
13
|
isSlackCoordinatorThread
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-A6C67DY5.js";
|
|
15
15
|
import {
|
|
16
16
|
mergeAgentGitAuthEnv,
|
|
17
17
|
resolveAgentGitAuthEnv
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-A46CIARU.js";
|
|
19
19
|
import {
|
|
20
20
|
ATTACHMENTS_DIR,
|
|
21
21
|
DETACHED_JOBS_DIR,
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
stripNestedElectronEnv
|
|
38
38
|
} from "./chunk-WWUABK6B.js";
|
|
39
39
|
import {
|
|
40
|
+
REVIEW_TAB_TITLE,
|
|
40
41
|
allocateTeamName,
|
|
41
42
|
createEmptyThread,
|
|
42
43
|
findThreadByRef,
|
|
@@ -46,7 +47,7 @@ import {
|
|
|
46
47
|
updateThread,
|
|
47
48
|
worktreeNameFromPath,
|
|
48
49
|
writeThread
|
|
49
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-HOLB6ZFZ.js";
|
|
50
51
|
import {
|
|
51
52
|
findConventionSetup,
|
|
52
53
|
loadRepoSettings,
|
|
@@ -762,32 +763,6 @@ function forkChatTab(input) {
|
|
|
762
763
|
return tab;
|
|
763
764
|
}
|
|
764
765
|
|
|
765
|
-
// src/review/review-write-gate.ts
|
|
766
|
-
var REVIEW_TAB_TITLE = "Review";
|
|
767
|
-
function hasLiveReviewSibling(thread, siblings = []) {
|
|
768
|
-
const selfId = thread.id;
|
|
769
|
-
return siblings.some(
|
|
770
|
-
(t) => t.id !== selfId && t.status !== "archived" && t.title.trim() === REVIEW_TAB_TITLE
|
|
771
|
-
);
|
|
772
|
-
}
|
|
773
|
-
function isReviewWriteGatedThread(thread, siblings) {
|
|
774
|
-
if (thread.sourceType === "pr" || thread.title.trim() === REVIEW_TAB_TITLE) {
|
|
775
|
-
return true;
|
|
776
|
-
}
|
|
777
|
-
return hasLiveReviewSibling(thread, siblings);
|
|
778
|
-
}
|
|
779
|
-
function formatReviewWriteGateDirective() {
|
|
780
|
-
return [
|
|
781
|
-
"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.",
|
|
782
|
-
"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.",
|
|
783
|
-
"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.",
|
|
784
|
-
"Do not request reviewers, change labels, or assign yourself unless they asked \u2014 those also notify the author."
|
|
785
|
-
].join("\n");
|
|
786
|
-
}
|
|
787
|
-
function formatReviewWriteGateReminder() {
|
|
788
|
-
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.";
|
|
789
|
-
}
|
|
790
|
-
|
|
791
766
|
// src/review/review-request-template.ts
|
|
792
767
|
var REVIEW_REQUEST_TEMPLATE = `# Review guidelines:
|
|
793
768
|
|
|
@@ -1703,7 +1678,7 @@ var PORT_RANGE_SIZE = 10;
|
|
|
1703
1678
|
var RECLAIM_RETRY_DELAY_MS = 40;
|
|
1704
1679
|
var RECLAIM_TRIES = 8;
|
|
1705
1680
|
async function killReclaimable(ports, worktreePath, signal) {
|
|
1706
|
-
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-
|
|
1681
|
+
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-NIUBJLTS.js");
|
|
1707
1682
|
if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
|
|
1708
1683
|
else killListenersOnPorts2(ports);
|
|
1709
1684
|
}
|
|
@@ -2411,10 +2386,6 @@ export {
|
|
|
2411
2386
|
buildForkTranscriptAttachment,
|
|
2412
2387
|
createChatTab,
|
|
2413
2388
|
forkChatTab,
|
|
2414
|
-
REVIEW_TAB_TITLE,
|
|
2415
|
-
isReviewWriteGatedThread,
|
|
2416
|
-
formatReviewWriteGateDirective,
|
|
2417
|
-
formatReviewWriteGateReminder,
|
|
2418
2389
|
requestReview,
|
|
2419
2390
|
RUN_PORTS_REL,
|
|
2420
2391
|
worktreeRunPortsPath,
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
ensureGhPreferOrigin,
|
|
4
4
|
resolveGithubRepoSlug,
|
|
5
5
|
resolveRepoRoot
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YN6XONV5.js";
|
|
7
7
|
import {
|
|
8
8
|
allocateTeamName,
|
|
9
9
|
createEmptyThread,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
teamSlugFromName,
|
|
13
13
|
updateThread,
|
|
14
14
|
writeThread
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YEIHCSZS.js";
|
|
16
16
|
import {
|
|
17
17
|
ATTACHMENTS_DIR,
|
|
18
18
|
attachmentsGitignoreBody
|
|
@@ -14,9 +14,8 @@ import {
|
|
|
14
14
|
parseSessionQuotaResetAt,
|
|
15
15
|
planModeTurnInstruction,
|
|
16
16
|
resolveQuotaFallbackAgent
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-XWUDFLBX.js";
|
|
18
18
|
import {
|
|
19
|
-
REVIEW_TAB_TITLE,
|
|
20
19
|
applyWorktreePkgCacheEnv,
|
|
21
20
|
askBlockStillWaiting,
|
|
22
21
|
buildBrightsySessionSeed,
|
|
@@ -28,13 +27,10 @@ import {
|
|
|
28
27
|
extractPendingPlanQuestions,
|
|
29
28
|
forkChatTab,
|
|
30
29
|
forkMessageSlice,
|
|
31
|
-
formatReviewWriteGateDirective,
|
|
32
|
-
formatReviewWriteGateReminder,
|
|
33
30
|
getDefaultRunScript,
|
|
34
31
|
getRunMode,
|
|
35
32
|
isAskUserToolName,
|
|
36
33
|
isJobContinuePrompt,
|
|
37
|
-
isReviewWriteGatedThread,
|
|
38
34
|
isWorktreeRunProcessKey,
|
|
39
35
|
killDetachedRunTree,
|
|
40
36
|
killListenersOnPorts,
|
|
@@ -56,7 +52,7 @@ import {
|
|
|
56
52
|
worktreeDevProcessKey,
|
|
57
53
|
worktreeRunProcessKey,
|
|
58
54
|
worktreeSetupProcessKey
|
|
59
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-4XZJYBO2.js";
|
|
60
56
|
import {
|
|
61
57
|
applyAgentEvent,
|
|
62
58
|
clipAgentEventForPaint,
|
|
@@ -103,7 +99,7 @@ import {
|
|
|
103
99
|
stageAbsolutePathsAsAttachments,
|
|
104
100
|
stageBuffersAsAttachments,
|
|
105
101
|
syncWorkspacesFromThreads
|
|
106
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-PX324N7P.js";
|
|
107
103
|
import {
|
|
108
104
|
addPrStackLayer,
|
|
109
105
|
allocateTeamSlug,
|
|
@@ -147,14 +143,18 @@ import {
|
|
|
147
143
|
resolveRepoRoot,
|
|
148
144
|
switchWorktreeBranch,
|
|
149
145
|
withRepoGitLock
|
|
150
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-YN6XONV5.js";
|
|
151
147
|
import {
|
|
148
|
+
REVIEW_TAB_TITLE,
|
|
152
149
|
agentNicknameFromWorktreePath,
|
|
153
150
|
appendMessage,
|
|
154
151
|
createEmptyThread,
|
|
155
152
|
deleteThreadRecord,
|
|
156
153
|
findThreadByRef,
|
|
154
|
+
formatReviewWriteGateDirective,
|
|
155
|
+
formatReviewWriteGateReminder,
|
|
157
156
|
isPlaceholderBranch,
|
|
157
|
+
isReviewWriteGatedThread,
|
|
158
158
|
isWorktreeIdentityTitle,
|
|
159
159
|
listThreads,
|
|
160
160
|
normalizeWorkspaceTags,
|
|
@@ -171,7 +171,7 @@ import {
|
|
|
171
171
|
worktreeNameFromPath,
|
|
172
172
|
worktreeSlugForTicket,
|
|
173
173
|
writeThread
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-YEIHCSZS.js";
|
|
175
175
|
import {
|
|
176
176
|
mcpServerIdForPermission,
|
|
177
177
|
mcpServerPermissionUpdate
|
|
@@ -461,9 +461,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
|
|
|
461
461
|
`Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
|
|
462
462
|
);
|
|
463
463
|
}
|
|
464
|
-
const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-
|
|
464
|
+
const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-72K6D354.js");
|
|
465
465
|
if (isGlobalThread2(thread)) {
|
|
466
|
-
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-
|
|
466
|
+
const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-FQC2SZPP.js");
|
|
467
467
|
ensureGlobalCoordinatorCwd2(
|
|
468
468
|
isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
|
|
469
469
|
);
|
|
@@ -3100,7 +3100,7 @@ async function createThread(input, _onSetupLine) {
|
|
|
3100
3100
|
return readThread(thread.id) ?? thread;
|
|
3101
3101
|
}
|
|
3102
3102
|
async function listLinearIssues(agent, repoPath) {
|
|
3103
|
-
const { getAdapter: getAdapter2 } = await import("./agents-
|
|
3103
|
+
const { getAdapter: getAdapter2 } = await import("./agents-BJVSYC6Y.js");
|
|
3104
3104
|
await requireAgent(agent, { requireLinear: true });
|
|
3105
3105
|
const adapter = getAdapter2(agent);
|
|
3106
3106
|
if (!adapter.listLinearIssues) {
|
|
@@ -3877,7 +3877,7 @@ async function adoptThread(input) {
|
|
|
3877
3877
|
messages: input.messages ?? []
|
|
3878
3878
|
});
|
|
3879
3879
|
writeThread(thread);
|
|
3880
|
-
const { addWorkspace: addWorkspace2 } = await import("./workspaces-
|
|
3880
|
+
const { addWorkspace: addWorkspace2 } = await import("./workspaces-GAUHXBUL.js");
|
|
3881
3881
|
await addWorkspace2(repoPath);
|
|
3882
3882
|
const { ensureWorktreeSideboardIgnored } = await import("./worktree-exclude-RXZPTCNH.js");
|
|
3883
3883
|
await ensureWorktreeSideboardIgnored(input.worktreePath);
|
|
@@ -6815,7 +6815,7 @@ function formatScheduledPrompt(name, prompt) {
|
|
|
6815
6815
|
${prompt}`;
|
|
6816
6816
|
}
|
|
6817
6817
|
async function defaultDeps() {
|
|
6818
|
-
const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-
|
|
6818
|
+
const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-E72HYGTB.js");
|
|
6819
6819
|
const orch = getOrchestrator2();
|
|
6820
6820
|
return {
|
|
6821
6821
|
findThread: (id) => findThreadByRef(id),
|
|
@@ -9697,7 +9697,7 @@ async function startOrchestration(opts) {
|
|
|
9697
9697
|
sourceRef: "default",
|
|
9698
9698
|
...createOpts
|
|
9699
9699
|
}).catch(async () => {
|
|
9700
|
-
const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-
|
|
9700
|
+
const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-6FUQ7FEF.js");
|
|
9701
9701
|
const repo = await resolveRepoRoot2(repoPath);
|
|
9702
9702
|
const def = await resolveDefaultBranch2(repo);
|
|
9703
9703
|
return orch.createThread({
|
|
@@ -9707,7 +9707,7 @@ async function startOrchestration(opts) {
|
|
|
9707
9707
|
repoPath: repo
|
|
9708
9708
|
});
|
|
9709
9709
|
});
|
|
9710
|
-
const { updateThread: upd } = await import("./thread-store-
|
|
9710
|
+
const { updateThread: upd } = await import("./thread-store-7BBA63KV.js");
|
|
9711
9711
|
const updated = upd(thread.id, {
|
|
9712
9712
|
sourceType: "orchestration",
|
|
9713
9713
|
sourceRef: goal
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
} from "./chunk-7Q327QF2.js";
|
|
13
13
|
import {
|
|
14
14
|
isOrchestratorThread
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-PX324N7P.js";
|
|
16
16
|
import {
|
|
17
17
|
codexUnattendedGitConfigArgs,
|
|
18
18
|
mergeAgentGitAuthEnv,
|
|
19
19
|
resolveAgentGitAuthEnv,
|
|
20
20
|
resolveCodexGitWritableRoots
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-YN6XONV5.js";
|
|
22
22
|
import {
|
|
23
23
|
loadBrightsyConfig
|
|
24
24
|
} from "./chunk-RSA47QYR.js";
|
|
@@ -2609,7 +2609,7 @@ var claudeAdapter = {
|
|
|
2609
2609
|
);
|
|
2610
2610
|
}
|
|
2611
2611
|
const mode = permissionMode(thread);
|
|
2612
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
2612
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-72K6D354.js");
|
|
2613
2613
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
2614
2614
|
const rpc = worktreeAgentRpc(isOrchestrator);
|
|
2615
2615
|
const injectedServers = await buildInjectedMcpServers({
|