@sideboard-ai/core 0.1.46 → 0.1.49
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-6L6VENDT.js → agents-3P4N6KHC.js} +1 -1
- package/dist/agents-LUB3Q773.js +82 -0
- package/dist/app-settings-7XVDQJ7F.js +80 -0
- package/dist/{chunk-SZAKJ4TR.js → chunk-3NAS4MWH.js} +1 -1
- package/dist/{chunk-SPCU3MFY.js → chunk-5WYEJ3F3.js} +3 -3
- package/dist/chunk-7MV3RXSC.js +277 -0
- package/dist/chunk-DF5VQQKA.js +191 -0
- package/dist/chunk-E35APBHV.js +269 -0
- package/dist/chunk-EOYDCKQC.js +172 -0
- package/dist/chunk-GZXBYHJC.js +148 -0
- package/dist/chunk-HBJSHRY2.js +494 -0
- package/dist/chunk-ISY4EGF6.js +77 -0
- package/dist/chunk-KGZBYWZ3.js +23 -0
- package/dist/chunk-RQI4TOXK.js +2232 -0
- package/dist/chunk-S2LL5HA4.js +33 -0
- package/dist/{chunk-TQK2OYPU.js → chunk-SS34TVSY.js} +1 -1
- package/dist/chunk-V4JRXYYU.js +122 -0
- package/dist/{chunk-6NAPN2N5.js → chunk-ZQCQIWIP.js} +1 -1
- package/dist/chunk-ZVV5EEQN.js +1892 -0
- package/dist/connected-teams-UBXHZGO4.js +24 -0
- package/dist/{coordinator-prompt-2XFYG3C5.js → coordinator-prompt-SPGDT7J5.js} +1 -1
- package/dist/coordinator-prompt-VG4BZ5JL.js +25 -0
- package/dist/cursor-recover-NNK7JPQM.js +44 -0
- package/dist/{global-workspace-XFOXEQCP.js → global-workspace-KSR3E63K.js} +2 -2
- package/dist/global-workspace-OJF4ENH4.js +40 -0
- package/dist/index.cjs +243 -19
- package/dist/index.d.cts +49 -10
- package/dist/index.d.ts +49 -10
- package/dist/index.js +5768 -192
- package/dist/mcp/run-stdio.cjs +203 -21
- package/dist/mcp/run-stdio.js +5618 -15
- package/dist/paths-2OFB7UJG.js +28 -0
- package/dist/run-HMRSRG3U.js +12 -0
- package/dist/thread-store-XICUWFNM.js +32 -0
- package/dist/title-4WAKWZRF.js +27 -0
- package/dist/workspaces-OZE7LRDO.js +24 -0
- package/dist/{workspaces-SRL2HZTB.js → workspaces-UJX7JIGH.js} +3 -3
- package/dist/worktree-XG5PCLZY.js +94 -0
- package/package.json +2 -2
- package/dist/chunk-7DTJFP4D.js +0 -5680
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
applyConnectedTeamToCli,
|
|
5
|
+
brightsyMcpServerName,
|
|
6
|
+
connectBrightsyTeam,
|
|
7
|
+
disconnectBrightsyTeam,
|
|
8
|
+
ensureCliTeamTracked,
|
|
9
|
+
ensureConnectedBrightsyTeamTokens,
|
|
10
|
+
getConnectedBrightsyTeamsRaw,
|
|
11
|
+
listConnectedBrightsyTeams
|
|
12
|
+
} from "./chunk-E35APBHV.js";
|
|
13
|
+
import "./chunk-ISY4EGF6.js";
|
|
14
|
+
import "./chunk-7MV3RXSC.js";
|
|
15
|
+
export {
|
|
16
|
+
applyConnectedTeamToCli,
|
|
17
|
+
brightsyMcpServerName,
|
|
18
|
+
connectBrightsyTeam,
|
|
19
|
+
disconnectBrightsyTeam,
|
|
20
|
+
ensureCliTeamTracked,
|
|
21
|
+
ensureConnectedBrightsyTeamTokens,
|
|
22
|
+
getConnectedBrightsyTeamsRaw,
|
|
23
|
+
listConnectedBrightsyTeams
|
|
24
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
COORDINATOR_TOOL_PLAYBOOK,
|
|
5
|
+
coordinatorGreenfieldPlaybook,
|
|
6
|
+
coordinatorSystemPrompt,
|
|
7
|
+
coordinatorTurnReminder,
|
|
8
|
+
enrichWorkspacesWithGithub,
|
|
9
|
+
ensureGlobalCoordinatorCwd,
|
|
10
|
+
formatWorkspaceInventory
|
|
11
|
+
} from "./chunk-GZXBYHJC.js";
|
|
12
|
+
import "./chunk-ZVV5EEQN.js";
|
|
13
|
+
import "./chunk-EOYDCKQC.js";
|
|
14
|
+
import "./chunk-ISY4EGF6.js";
|
|
15
|
+
import "./chunk-KGZBYWZ3.js";
|
|
16
|
+
import "./chunk-7MV3RXSC.js";
|
|
17
|
+
export {
|
|
18
|
+
COORDINATOR_TOOL_PLAYBOOK,
|
|
19
|
+
coordinatorGreenfieldPlaybook,
|
|
20
|
+
coordinatorSystemPrompt,
|
|
21
|
+
coordinatorTurnReminder,
|
|
22
|
+
enrichWorkspacesWithGithub,
|
|
23
|
+
ensureGlobalCoordinatorCwd,
|
|
24
|
+
formatWorkspaceInventory
|
|
25
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
appDataDir
|
|
5
|
+
} from "./chunk-7MV3RXSC.js";
|
|
6
|
+
|
|
7
|
+
// src/agents/cursor-recover.ts
|
|
8
|
+
import { existsSync, readFileSync } from "fs";
|
|
9
|
+
import { join } from "path";
|
|
10
|
+
function recoverFinishedCursorRun(opts) {
|
|
11
|
+
const agentId = opts.agentId.trim();
|
|
12
|
+
if (!agentId) return null;
|
|
13
|
+
const runsPath = join(appDataDir(), "cursor-sdk-store", "runs.ndjson");
|
|
14
|
+
if (!existsSync(runsPath)) return null;
|
|
15
|
+
try {
|
|
16
|
+
const lines = readFileSync(runsPath, "utf8").split("\n");
|
|
17
|
+
let best = null;
|
|
18
|
+
for (const line of lines) {
|
|
19
|
+
const trimmed = line.trim();
|
|
20
|
+
if (!trimmed) continue;
|
|
21
|
+
let row;
|
|
22
|
+
try {
|
|
23
|
+
row = JSON.parse(trimmed);
|
|
24
|
+
} catch {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (row.agentId !== agentId) continue;
|
|
28
|
+
if (row.status !== "finished") continue;
|
|
29
|
+
if (typeof row.result !== "string" || !row.result.trim()) continue;
|
|
30
|
+
const endedAt = typeof row.endedAt === "number" ? row.endedAt : 0;
|
|
31
|
+
const createdAt = typeof row.createdAt === "number" ? row.createdAt : 0;
|
|
32
|
+
if (createdAt < opts.startedAfterMs && endedAt < opts.startedAfterMs) continue;
|
|
33
|
+
if (!best || endedAt >= best.endedAt) {
|
|
34
|
+
best = { runId: row.runId || "", result: row.result.trim(), endedAt };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return best;
|
|
38
|
+
} catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
recoverFinishedCursorRun
|
|
44
|
+
};
|
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
orchestrationTitleNeedsSoccerNickname,
|
|
12
12
|
orchestratorSessionPoisonedByBuiltins,
|
|
13
13
|
takenTeamSlugsForOrchestration
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-6NAPN2N5.js";
|
|
14
|
+
} from "./chunk-5WYEJ3F3.js";
|
|
16
15
|
import "./chunk-GI7E5733.js";
|
|
16
|
+
import "./chunk-ZQCQIWIP.js";
|
|
17
17
|
import "./chunk-FV6FN6V5.js";
|
|
18
18
|
import "./chunk-O6W3P7V3.js";
|
|
19
19
|
import "./chunk-77WWLBCI.js";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
GLOBAL_WORKSPACE_ID,
|
|
5
|
+
createGlobalChat,
|
|
6
|
+
ensureCloudCoordinator,
|
|
7
|
+
healOrchestrationSoccerTitles,
|
|
8
|
+
isCloudCoordinatorThread,
|
|
9
|
+
isGlobalRepoPath,
|
|
10
|
+
isGlobalThread,
|
|
11
|
+
isOrchestratorThread,
|
|
12
|
+
listGlobalThreads,
|
|
13
|
+
orchestrationTitleNeedsSoccerNickname,
|
|
14
|
+
orchestratorSessionPoisonedByBuiltins,
|
|
15
|
+
takenTeamSlugsForOrchestration
|
|
16
|
+
} from "./chunk-DF5VQQKA.js";
|
|
17
|
+
import "./chunk-S2LL5HA4.js";
|
|
18
|
+
import "./chunk-GZXBYHJC.js";
|
|
19
|
+
import "./chunk-ZVV5EEQN.js";
|
|
20
|
+
import "./chunk-EOYDCKQC.js";
|
|
21
|
+
import "./chunk-ISY4EGF6.js";
|
|
22
|
+
import "./chunk-KGZBYWZ3.js";
|
|
23
|
+
import {
|
|
24
|
+
globalAgentCwd
|
|
25
|
+
} from "./chunk-7MV3RXSC.js";
|
|
26
|
+
export {
|
|
27
|
+
GLOBAL_WORKSPACE_ID,
|
|
28
|
+
createGlobalChat,
|
|
29
|
+
ensureCloudCoordinator,
|
|
30
|
+
globalAgentCwd,
|
|
31
|
+
healOrchestrationSoccerTitles,
|
|
32
|
+
isCloudCoordinatorThread,
|
|
33
|
+
isGlobalRepoPath,
|
|
34
|
+
isGlobalThread,
|
|
35
|
+
isOrchestratorThread,
|
|
36
|
+
listGlobalThreads,
|
|
37
|
+
orchestrationTitleNeedsSoccerNickname,
|
|
38
|
+
orchestratorSessionPoisonedByBuiltins,
|
|
39
|
+
takenTeamSlugsForOrchestration
|
|
40
|
+
};
|
package/dist/index.cjs
CHANGED
|
@@ -3257,7 +3257,7 @@ var init_coordinator_prompt = __esm({
|
|
|
3257
3257
|
"- list_run_scripts / run_dev_script / stop_dev_script \u2014 start/stop named run scripts",
|
|
3258
3258
|
"Inspect / review / PRs:",
|
|
3259
3259
|
"- get_diff \u2014 compact diff summary",
|
|
3260
|
-
|
|
3260
|
+
'- request_review \u2014 open a Review chat tab on a worktree thread (attaches .sideboard/review.md when present, else local guidelines; sends "Review."); then wait_for_turn / get_turn_result on the returned id',
|
|
3261
3261
|
"- Ask the worktree agent via send_to_thread to open a draft PR with `gh pr create --draft -R <origin-owner/name>` (workspace `github:` slug / that worktree's origin \u2014 never upstream). Do not open PRs from the orchestrator yourself.",
|
|
3262
3262
|
"Human-only (do not attempt): merge, ready-for-review land, purge_thread.",
|
|
3263
3263
|
"Thread links in replies: when mentioning a chat/thread for the user, include a markdown link `[Title](sideboard://thread/<id>)` using the full id (or the link field from create_thread / list_threads). Sideboard renders these as clickable opens.",
|
|
@@ -6385,6 +6385,8 @@ __export(index_exports, {
|
|
|
6385
6385
|
PASTE_ATTACH_MIN_CHARS: () => PASTE_ATTACH_MIN_CHARS,
|
|
6386
6386
|
PASTE_ATTACH_MIN_LINES: () => PASTE_ATTACH_MIN_LINES,
|
|
6387
6387
|
PLAN_MODE_INSTRUCTION: () => PLAN_MODE_INSTRUCTION,
|
|
6388
|
+
REPO_REVIEW_NAME: () => REPO_REVIEW_NAME,
|
|
6389
|
+
REPO_REVIEW_PATH: () => REPO_REVIEW_PATH,
|
|
6388
6390
|
REVIEW_REQUEST_NAME: () => REVIEW_REQUEST_NAME,
|
|
6389
6391
|
REVIEW_REQUEST_PATH: () => REVIEW_REQUEST_PATH,
|
|
6390
6392
|
REVIEW_REQUEST_PREFILL: () => REVIEW_REQUEST_PREFILL,
|
|
@@ -6470,6 +6472,7 @@ __export(index_exports, {
|
|
|
6470
6472
|
ensureCloudCoordinator: () => ensureCloudCoordinator,
|
|
6471
6473
|
ensureGhPreferOrigin: () => ensureGhPreferOrigin,
|
|
6472
6474
|
ensureGlobalCoordinatorCwd: () => ensureGlobalCoordinatorCwd,
|
|
6475
|
+
ensureReviewRequestFile: () => ensureReviewRequestFile,
|
|
6473
6476
|
ensureWorkspace: () => ensureWorkspace,
|
|
6474
6477
|
estimateMessageChars: () => estimateMessageChars,
|
|
6475
6478
|
estimateThreadChars: () => estimateThreadChars,
|
|
@@ -6633,6 +6636,7 @@ __export(index_exports, {
|
|
|
6633
6636
|
resolvePrSelector: () => resolvePrSelector,
|
|
6634
6637
|
resolveQuotaFallbackAgent: () => resolveQuotaFallbackAgent,
|
|
6635
6638
|
resolveRepoRoot: () => resolveRepoRoot,
|
|
6639
|
+
resolveReviewGuidelines: () => resolveReviewGuidelines,
|
|
6636
6640
|
resolveThreadDefaults: () => resolveThreadDefaults,
|
|
6637
6641
|
resolveThreadEffort: () => resolveThreadEffort,
|
|
6638
6642
|
resolveWorktreeStartPoint: () => resolveWorktreeStartPoint,
|
|
@@ -6648,6 +6652,7 @@ __export(index_exports, {
|
|
|
6648
6652
|
settingsSourceLabel: () => settingsSourceLabel,
|
|
6649
6653
|
shouldAttachPastedText: () => shouldAttachPastedText,
|
|
6650
6654
|
shouldCompactContext: () => shouldCompactContext,
|
|
6655
|
+
shouldRefreshReviewRequestTemplate: () => shouldRefreshReviewRequestTemplate,
|
|
6651
6656
|
shouldRunWorktreeCleanup: () => shouldRunWorktreeCleanup,
|
|
6652
6657
|
sideboardHomeDir: () => sideboardHomeDir,
|
|
6653
6658
|
sideboardReposDir: () => sideboardReposDir,
|
|
@@ -10122,22 +10127,149 @@ var import_node_fs24 = require("fs");
|
|
|
10122
10127
|
var import_node_path23 = require("path");
|
|
10123
10128
|
init_global_workspace();
|
|
10124
10129
|
init_thread_store();
|
|
10130
|
+
|
|
10131
|
+
// src/review/review-request-template.ts
|
|
10132
|
+
var REVIEW_REQUEST_TEMPLATE = `# Review guidelines:
|
|
10133
|
+
|
|
10134
|
+
You are reviewing a proposed code change so a human can decide whether it is **ready to merge / land**. Findings matter, but the primary deliverable is a clear readiness recommendation \u2014 not a laundry list of style notes.
|
|
10135
|
+
|
|
10136
|
+
## Required outcome
|
|
10137
|
+
|
|
10138
|
+
Start your reply with a **Recommendation** section using exactly one of:
|
|
10139
|
+
|
|
10140
|
+
- **Approve** \u2014 ready to merge as-is (or with only trivial nits the author can ignore).
|
|
10141
|
+
- **Approve with nits** \u2014 ready to merge; list only optional polish that should not block.
|
|
10142
|
+
- **Request changes** \u2014 not ready; blocking issues must be fixed first.
|
|
10143
|
+
- **Needs more information** \u2014 cannot judge readiness yet (missing context, incomplete diff, unclear intent).
|
|
10144
|
+
|
|
10145
|
+
In 1\u20133 sentences, say **why** \u2014 grounded in correctness, risk, test coverage, and scope \u2014 not vibes. If you request changes, name the blockers explicitly.
|
|
10146
|
+
|
|
10147
|
+
People running this review are asking \u201Ccan we ship this?\u201D Treat that as the question you answer first.
|
|
10148
|
+
|
|
10149
|
+
## Findings
|
|
10150
|
+
|
|
10151
|
+
Below are guidelines for determining whether an issue is worth flagging to the original author.
|
|
10152
|
+
|
|
10153
|
+
These are not the final word. More specific guidelines elsewhere (developer message, user message, a file, etc.) override these.
|
|
10154
|
+
|
|
10155
|
+
Flag something as a bug / blocking finding only when:
|
|
10156
|
+
|
|
10157
|
+
1. It meaningfully impacts the accuracy, performance, security, or maintainability of the code.
|
|
10158
|
+
2. The bug is discrete and actionable (not a vague codebase-wide complaint or a bundle of unrelated issues).
|
|
10159
|
+
3. Fixing it does not demand rigor absent from the rest of the codebase.
|
|
10160
|
+
4. The issue was introduced by this change (do not flag pre-existing bugs unless they are newly exposed by this PR).
|
|
10161
|
+
5. The author would likely fix it if made aware.
|
|
10162
|
+
6. It does not rely on unstated assumptions about the codebase or author intent.
|
|
10163
|
+
7. Speculative breakage is not enough \u2014 identify the other code that is provably affected.
|
|
10164
|
+
8. It is clearly not just an intentional change by the author.
|
|
10165
|
+
|
|
10166
|
+
When flagging an issue, include a short accompanying comment:
|
|
10167
|
+
|
|
10168
|
+
1. Clear about why it is a problem.
|
|
10169
|
+
2. Severity must match reality \u2014 do not inflate.
|
|
10170
|
+
3. Brief: at most one paragraph; avoid unnecessary line breaks in prose.
|
|
10171
|
+
4. No code chunks longer than 3 lines; wrap code in inline ticks or a fenced block.
|
|
10172
|
+
5. Call out scenarios / environments / inputs needed to hit the bug when severity depends on them.
|
|
10173
|
+
6. Matter-of-fact tone \u2014 helpful assistant, not accusatory or effusive.
|
|
10174
|
+
7. Skimmable on first read.
|
|
10175
|
+
8. No empty flattery (\u201CGreat job\u2026\u201D, \u201CThanks for\u2026\u201D).
|
|
10176
|
+
|
|
10177
|
+
HOW MANY FINDINGS TO RETURN:
|
|
10178
|
+
|
|
10179
|
+
List every finding the author would fix if they knew about it. If nothing qualifies, say so and still give the Recommendation. Do not stop at the first finding.
|
|
10180
|
+
|
|
10181
|
+
GUIDELINES:
|
|
10182
|
+
|
|
10183
|
+
- Ignore trivial style unless it obscures meaning or violates documented standards.
|
|
10184
|
+
- One comment per distinct issue (or a short multi-line range if needed).
|
|
10185
|
+
- Use \`\`\`suggestion blocks ONLY for concrete replacement code (minimal lines; no commentary inside the block).
|
|
10186
|
+
- In every \`\`\`suggestion block, preserve the exact leading whitespace of the replaced lines (spaces vs tabs, number of spaces).
|
|
10187
|
+
- Do NOT introduce or remove outer indentation levels unless that is the actual fix.
|
|
10188
|
+
- Separate **blocking** findings from **nits**. Only blocking findings should drive Request changes.
|
|
10189
|
+
|
|
10190
|
+
The report appears in chat (and can become Sideboard diff comments). Avoid unnecessary location chatter in the body; keep line ranges as short as possible (prefer \u22645\u201310 lines).
|
|
10191
|
+
|
|
10192
|
+
## Getting the diff
|
|
10193
|
+
|
|
10194
|
+
Use Sideboard's diff for this thread's worktree. Prefer the \`get_diff\` MCP tool (pass this thread's ref) for a compact summary, then read specific files with Read/Glob as needed. In the Sideboard desktop app, the Changes panel shows the same worktree diff.
|
|
10195
|
+
|
|
10196
|
+
If the user asks you to address or read line comments they added in the Changes / file diff UI, those arrive as \`diff-comment\` attachments on the next turn \u2014 follow them precisely.
|
|
10197
|
+
|
|
10198
|
+
## Fallback: if you don't have access to the Sideboard diff tool
|
|
10199
|
+
|
|
10200
|
+
If you don't have access to \`get_diff\`, use the following git commands to get the diff:
|
|
10201
|
+
|
|
10202
|
+
\`\`\`bash
|
|
10203
|
+
# Get the merge base between this branch and the target
|
|
10204
|
+
MERGE_BASE=$(git merge-base origin/main HEAD)
|
|
10205
|
+
|
|
10206
|
+
# Get the committed diff against the merge base
|
|
10207
|
+
git diff $MERGE_BASE HEAD
|
|
10208
|
+
|
|
10209
|
+
# Get any uncommitted changes (staged and unstaged)
|
|
10210
|
+
git diff HEAD
|
|
10211
|
+
\`\`\`
|
|
10212
|
+
|
|
10213
|
+
Review the combination of both outputs: the first shows all committed changes on this branch relative to the target, and the second shows any uncommitted work in progress.
|
|
10214
|
+
|
|
10215
|
+
No need to mention in your report whether or not you used one of the fallback strategies; it's usually irrelevant.
|
|
10216
|
+
|
|
10217
|
+
## Output format
|
|
10218
|
+
|
|
10219
|
+
**1. Recommendation first** (required), then **2. Findings** (may be empty).
|
|
10220
|
+
|
|
10221
|
+
Only report ONE finding per unique issue.
|
|
10222
|
+
|
|
10223
|
+
<example>
|
|
10224
|
+
## Recommendation
|
|
10225
|
+
|
|
10226
|
+
**Request changes** \u2014 The empty-input crash on load will break first-run users; fix that before merge. The unused helper is a nit and can wait.
|
|
10227
|
+
|
|
10228
|
+
## Findings
|
|
10229
|
+
|
|
10230
|
+
### **#1 Empty input causes crash** (blocking)
|
|
10231
|
+
|
|
10232
|
+
If the input field is empty when the page loads, the app will crash.
|
|
10233
|
+
|
|
10234
|
+
File: src/client/frontends/desktop/ui/Input.tsx
|
|
10235
|
+
|
|
10236
|
+
### **#2 Dead code** (nit)
|
|
10237
|
+
|
|
10238
|
+
The getUserData function is now unused. It should be deleted.
|
|
10239
|
+
|
|
10240
|
+
File: src/client/frontends/desktop/core/UserData.ts
|
|
10241
|
+
</example>
|
|
10242
|
+
|
|
10243
|
+
<example>
|
|
10244
|
+
## Recommendation
|
|
10245
|
+
|
|
10246
|
+
**Approve** \u2014 Diff is scoped, behavior looks correct, and there are no blocking issues. Safe to merge.
|
|
10247
|
+
</example>
|
|
10248
|
+
`;
|
|
10249
|
+
|
|
10250
|
+
// src/review/request-review.ts
|
|
10251
|
+
var REPO_REVIEW_PATH = ".sideboard/review.md";
|
|
10252
|
+
var REPO_REVIEW_NAME = "review.md";
|
|
10125
10253
|
var REVIEW_REQUEST_PATH = ".sideboard/attachments/Review request.md";
|
|
10126
10254
|
var REVIEW_REQUEST_NAME = "Review request.md";
|
|
10127
|
-
var REVIEW_REQUEST_PREFILL =
|
|
10128
|
-
|
|
10129
|
-
|
|
10130
|
-
|
|
10131
|
-
|
|
10132
|
-
|
|
10133
|
-
|
|
10134
|
-
|
|
10135
|
-
|
|
10136
|
-
|
|
10137
|
-
|
|
10255
|
+
var REVIEW_REQUEST_PREFILL = "Review.";
|
|
10256
|
+
var ATTACHMENTS_GITIGNORE2 = `# Sideboard review / composer attachments (local only)
|
|
10257
|
+
*
|
|
10258
|
+
!.gitignore
|
|
10259
|
+
`;
|
|
10260
|
+
var LEGACY_REVIEW_TEMPLATE_MARKERS = [
|
|
10261
|
+
"You are acting as a reviewer for a proposed code change made by another engineer.",
|
|
10262
|
+
"HOW MANY FINDINGS TO RETURN:"
|
|
10263
|
+
];
|
|
10264
|
+
function shouldRefreshReviewRequestTemplate(content) {
|
|
10265
|
+
const trimmed = content.trim();
|
|
10266
|
+
if (!trimmed) return true;
|
|
10267
|
+
if (/##\s*Recommendation|ready to merge|Approve with nits|Request changes/i.test(trimmed)) {
|
|
10268
|
+
return false;
|
|
10269
|
+
}
|
|
10270
|
+
return LEGACY_REVIEW_TEMPLATE_MARKERS.every((m) => trimmed.includes(m));
|
|
10138
10271
|
}
|
|
10139
|
-
function
|
|
10140
|
-
const abs = (0, import_node_path23.join)(worktreePath, REVIEW_REQUEST_PATH);
|
|
10272
|
+
function readTextIfPresent(abs) {
|
|
10141
10273
|
if (!(0, import_node_fs24.existsSync)(abs)) return null;
|
|
10142
10274
|
try {
|
|
10143
10275
|
const content = (0, import_node_fs24.readFileSync)(abs, "utf8");
|
|
@@ -10146,6 +10278,87 @@ function readExistingReviewRequestFile(worktreePath) {
|
|
|
10146
10278
|
return null;
|
|
10147
10279
|
}
|
|
10148
10280
|
}
|
|
10281
|
+
function ensureAttachmentsGitignore(worktreePath) {
|
|
10282
|
+
const gitignoreAbs = (0, import_node_path23.join)(worktreePath, ".sideboard", "attachments", ".gitignore");
|
|
10283
|
+
if ((0, import_node_fs24.existsSync)(gitignoreAbs)) return;
|
|
10284
|
+
(0, import_node_fs24.mkdirSync)((0, import_node_path23.dirname)(gitignoreAbs), { recursive: true });
|
|
10285
|
+
(0, import_node_fs24.writeFileSync)(gitignoreAbs, ATTACHMENTS_GITIGNORE2, "utf8");
|
|
10286
|
+
}
|
|
10287
|
+
function resolveReviewGuidelines(worktreePath) {
|
|
10288
|
+
const repoAbs = (0, import_node_path23.join)(worktreePath, REPO_REVIEW_PATH);
|
|
10289
|
+
const repoContent = readTextIfPresent(repoAbs);
|
|
10290
|
+
if (repoContent) {
|
|
10291
|
+
return {
|
|
10292
|
+
path: REPO_REVIEW_PATH,
|
|
10293
|
+
name: REPO_REVIEW_NAME,
|
|
10294
|
+
content: repoContent,
|
|
10295
|
+
source: "repo"
|
|
10296
|
+
};
|
|
10297
|
+
}
|
|
10298
|
+
const localAbs = (0, import_node_path23.join)(worktreePath, REVIEW_REQUEST_PATH);
|
|
10299
|
+
const localContent = readTextIfPresent(localAbs);
|
|
10300
|
+
if (localContent && !shouldRefreshReviewRequestTemplate(localContent)) {
|
|
10301
|
+
return {
|
|
10302
|
+
path: REVIEW_REQUEST_PATH,
|
|
10303
|
+
name: REVIEW_REQUEST_NAME,
|
|
10304
|
+
content: localContent,
|
|
10305
|
+
source: "local"
|
|
10306
|
+
};
|
|
10307
|
+
}
|
|
10308
|
+
ensureAttachmentsGitignore(worktreePath);
|
|
10309
|
+
(0, import_node_fs24.mkdirSync)((0, import_node_path23.dirname)(localAbs), { recursive: true });
|
|
10310
|
+
(0, import_node_fs24.writeFileSync)(localAbs, REVIEW_REQUEST_TEMPLATE, "utf8");
|
|
10311
|
+
return {
|
|
10312
|
+
path: REVIEW_REQUEST_PATH,
|
|
10313
|
+
name: REVIEW_REQUEST_NAME,
|
|
10314
|
+
content: REVIEW_REQUEST_TEMPLATE,
|
|
10315
|
+
source: "stock"
|
|
10316
|
+
};
|
|
10317
|
+
}
|
|
10318
|
+
function ensureReviewRequestFile(worktreePath) {
|
|
10319
|
+
const repoAbs = (0, import_node_path23.join)(worktreePath, REPO_REVIEW_PATH);
|
|
10320
|
+
const repoContent = readTextIfPresent(repoAbs);
|
|
10321
|
+
if (repoContent) {
|
|
10322
|
+
return {
|
|
10323
|
+
path: REPO_REVIEW_PATH,
|
|
10324
|
+
name: REPO_REVIEW_NAME,
|
|
10325
|
+
content: repoContent,
|
|
10326
|
+
source: "repo"
|
|
10327
|
+
};
|
|
10328
|
+
}
|
|
10329
|
+
const localAbs = (0, import_node_path23.join)(worktreePath, REVIEW_REQUEST_PATH);
|
|
10330
|
+
const localContent = readTextIfPresent(localAbs);
|
|
10331
|
+
if (localContent && !shouldRefreshReviewRequestTemplate(localContent)) {
|
|
10332
|
+
return {
|
|
10333
|
+
path: REVIEW_REQUEST_PATH,
|
|
10334
|
+
name: REVIEW_REQUEST_NAME,
|
|
10335
|
+
content: localContent,
|
|
10336
|
+
source: "local"
|
|
10337
|
+
};
|
|
10338
|
+
}
|
|
10339
|
+
(0, import_node_fs24.mkdirSync)((0, import_node_path23.dirname)(repoAbs), { recursive: true });
|
|
10340
|
+
(0, import_node_fs24.writeFileSync)(repoAbs, REVIEW_REQUEST_TEMPLATE, "utf8");
|
|
10341
|
+
return {
|
|
10342
|
+
path: REPO_REVIEW_PATH,
|
|
10343
|
+
name: REPO_REVIEW_NAME,
|
|
10344
|
+
content: REVIEW_REQUEST_TEMPLATE,
|
|
10345
|
+
source: "repo"
|
|
10346
|
+
};
|
|
10347
|
+
}
|
|
10348
|
+
function buildReviewRequestAttachment(content, opts) {
|
|
10349
|
+
const path = opts?.path ?? REVIEW_REQUEST_PATH;
|
|
10350
|
+
const name = opts?.name ?? (path === REPO_REVIEW_PATH ? REPO_REVIEW_NAME : REVIEW_REQUEST_NAME);
|
|
10351
|
+
return {
|
|
10352
|
+
id: (0, import_node_crypto5.randomUUID)(),
|
|
10353
|
+
name,
|
|
10354
|
+
kind: "file",
|
|
10355
|
+
path,
|
|
10356
|
+
content
|
|
10357
|
+
};
|
|
10358
|
+
}
|
|
10359
|
+
function readExistingReviewRequestFile(worktreePath) {
|
|
10360
|
+
return readTextIfPresent((0, import_node_path23.join)(worktreePath, REPO_REVIEW_PATH)) ?? readTextIfPresent((0, import_node_path23.join)(worktreePath, REVIEW_REQUEST_PATH));
|
|
10361
|
+
}
|
|
10149
10362
|
async function requestReview(threadRef, send) {
|
|
10150
10363
|
const from = findThreadByRef(threadRef);
|
|
10151
10364
|
if (!from) throw new Error(`Thread not found: ${threadRef}`);
|
|
@@ -10157,12 +10370,16 @@ async function requestReview(threadRef, send) {
|
|
|
10157
10370
|
if (from.status === "archived") {
|
|
10158
10371
|
throw new Error(`Thread is archived: ${from.id}`);
|
|
10159
10372
|
}
|
|
10160
|
-
const
|
|
10161
|
-
const attachments = existing ? [buildReviewRequestAttachment(existing)] : [];
|
|
10373
|
+
const guidelines = resolveReviewGuidelines(from.worktreePath);
|
|
10162
10374
|
const tab = createChatTab({
|
|
10163
10375
|
fromThreadId: from.id,
|
|
10164
10376
|
title: "Review",
|
|
10165
|
-
attachments
|
|
10377
|
+
attachments: [
|
|
10378
|
+
buildReviewRequestAttachment(guidelines.content, {
|
|
10379
|
+
path: guidelines.path,
|
|
10380
|
+
name: guidelines.name
|
|
10381
|
+
})
|
|
10382
|
+
]
|
|
10166
10383
|
});
|
|
10167
10384
|
const started = await send(tab.id, REVIEW_REQUEST_PREFILL);
|
|
10168
10385
|
return { tab: started, from };
|
|
@@ -10742,9 +10959,11 @@ var Orchestrator = class {
|
|
|
10742
10959
|
this.emit({ type: "error", threadId, message: `context compact failed: ${message}` });
|
|
10743
10960
|
thread = this.requireThread(threadId);
|
|
10744
10961
|
}
|
|
10962
|
+
const sentAttachments = thread.attachments.length > 0 ? [...thread.attachments] : void 0;
|
|
10745
10963
|
appendMessage(threadId, {
|
|
10746
10964
|
role: "user",
|
|
10747
10965
|
text: prompt,
|
|
10966
|
+
...sentAttachments ? { attachments: sentAttachments } : {},
|
|
10748
10967
|
ts: (/* @__PURE__ */ new Date()).toISOString()
|
|
10749
10968
|
});
|
|
10750
10969
|
thread = this.requireThread(threadId);
|
|
@@ -10752,7 +10971,7 @@ var Orchestrator = class {
|
|
|
10752
10971
|
thread.worktreePath,
|
|
10753
10972
|
prompt,
|
|
10754
10973
|
{
|
|
10755
|
-
attachments: thread.attachments
|
|
10974
|
+
attachments: sentAttachments ?? thread.attachments
|
|
10756
10975
|
}
|
|
10757
10976
|
);
|
|
10758
10977
|
const orchestrationReminder = isOrchestratorThread(thread) ? coordinatorTurnReminder({
|
|
@@ -12056,7 +12275,7 @@ async function startMcpServer() {
|
|
|
12056
12275
|
);
|
|
12057
12276
|
server.tool(
|
|
12058
12277
|
"request_review",
|
|
12059
|
-
|
|
12278
|
+
'Start a merge-readiness Review on a worktree agent thread (same as the desktop Review button). Opens a new Review chat tab, attaches .sideboard/review.md when present (else local Review request.md / stock template), and sends "Review." Expect Approve / Approve with nits / Request changes / Needs more information. Pass a worktree thread ref \u2014 not the orchestrator. Then wait_for_turn / get_turn_result on the returned review tab id.',
|
|
12060
12279
|
{ ref: import_zod.z.string().describe("Worktree thread id/ref to review") },
|
|
12061
12280
|
async ({ ref }) => {
|
|
12062
12281
|
try {
|
|
@@ -12741,6 +12960,8 @@ init_injected_mcp();
|
|
|
12741
12960
|
PASTE_ATTACH_MIN_CHARS,
|
|
12742
12961
|
PASTE_ATTACH_MIN_LINES,
|
|
12743
12962
|
PLAN_MODE_INSTRUCTION,
|
|
12963
|
+
REPO_REVIEW_NAME,
|
|
12964
|
+
REPO_REVIEW_PATH,
|
|
12744
12965
|
REVIEW_REQUEST_NAME,
|
|
12745
12966
|
REVIEW_REQUEST_PATH,
|
|
12746
12967
|
REVIEW_REQUEST_PREFILL,
|
|
@@ -12826,6 +13047,7 @@ init_injected_mcp();
|
|
|
12826
13047
|
ensureCloudCoordinator,
|
|
12827
13048
|
ensureGhPreferOrigin,
|
|
12828
13049
|
ensureGlobalCoordinatorCwd,
|
|
13050
|
+
ensureReviewRequestFile,
|
|
12829
13051
|
ensureWorkspace,
|
|
12830
13052
|
estimateMessageChars,
|
|
12831
13053
|
estimateThreadChars,
|
|
@@ -12989,6 +13211,7 @@ init_injected_mcp();
|
|
|
12989
13211
|
resolvePrSelector,
|
|
12990
13212
|
resolveQuotaFallbackAgent,
|
|
12991
13213
|
resolveRepoRoot,
|
|
13214
|
+
resolveReviewGuidelines,
|
|
12992
13215
|
resolveThreadDefaults,
|
|
12993
13216
|
resolveThreadEffort,
|
|
12994
13217
|
resolveWorktreeStartPoint,
|
|
@@ -13004,6 +13227,7 @@ init_injected_mcp();
|
|
|
13004
13227
|
settingsSourceLabel,
|
|
13005
13228
|
shouldAttachPastedText,
|
|
13006
13229
|
shouldCompactContext,
|
|
13230
|
+
shouldRefreshReviewRequestTemplate,
|
|
13007
13231
|
shouldRunWorktreeCleanup,
|
|
13008
13232
|
sideboardHomeDir,
|
|
13009
13233
|
sideboardReposDir,
|
package/dist/index.d.cts
CHANGED
|
@@ -59,6 +59,11 @@ interface ThreadMessage {
|
|
|
59
59
|
durationMs?: number;
|
|
60
60
|
/** Token usage for this turn, when the agent CLI reports it. */
|
|
61
61
|
usage?: TokenUsage;
|
|
62
|
+
/**
|
|
63
|
+
* Snapshot of composer attachments sent with this user turn (chips stay visible
|
|
64
|
+
* in chat history after pending thread.attachments are cleared).
|
|
65
|
+
*/
|
|
66
|
+
attachments?: ThreadAttachment[];
|
|
62
67
|
ts: string;
|
|
63
68
|
}
|
|
64
69
|
/** Composer / turn attachment (e.g. forked chat transcript). */
|
|
@@ -69,7 +74,7 @@ interface ThreadAttachment {
|
|
|
69
74
|
content: string;
|
|
70
75
|
/** Worktree-relative path when this attachment is a real file that can be opened in a tab. */
|
|
71
76
|
path?: string;
|
|
72
|
-
/** data: URL thumbnail for image attachments
|
|
77
|
+
/** data: URL thumbnail for image attachments (composer + sent user messages). */
|
|
73
78
|
previewDataUrl?: string;
|
|
74
79
|
}
|
|
75
80
|
interface Thread {
|
|
@@ -2214,14 +2219,50 @@ declare function startOrchestration(opts: {
|
|
|
2214
2219
|
attachments?: Thread['attachments'];
|
|
2215
2220
|
}): Promise<Thread>;
|
|
2216
2221
|
|
|
2217
|
-
/**
|
|
2222
|
+
/** Committed per-repo review guidelines (preferred when present). */
|
|
2223
|
+
declare const REPO_REVIEW_PATH = ".sideboard/review.md";
|
|
2224
|
+
declare const REPO_REVIEW_NAME = "review.md";
|
|
2225
|
+
/**
|
|
2226
|
+
* Local / Conductor-style scratch guidelines (gitignored under attachments/).
|
|
2227
|
+
* Used as override when no repo file exists, or as the stock seed target.
|
|
2228
|
+
*/
|
|
2218
2229
|
declare const REVIEW_REQUEST_PATH = ".sideboard/attachments/Review request.md";
|
|
2219
2230
|
declare const REVIEW_REQUEST_NAME = "Review request.md";
|
|
2220
|
-
|
|
2221
|
-
declare
|
|
2231
|
+
/** Short chat message — guidelines live in the attached review file. */
|
|
2232
|
+
declare const REVIEW_REQUEST_PREFILL = "Review.";
|
|
2233
|
+
type ReviewGuidelinesSource = 'repo' | 'local' | 'stock';
|
|
2234
|
+
interface ResolvedReviewGuidelines {
|
|
2235
|
+
path: string;
|
|
2236
|
+
name: string;
|
|
2237
|
+
content: string;
|
|
2238
|
+
source: ReviewGuidelinesSource;
|
|
2239
|
+
}
|
|
2240
|
+
/**
|
|
2241
|
+
* Refresh on-disk local Review request.md when it still looks like the old
|
|
2242
|
+
* findings-only stock template. Preserve real user customizations.
|
|
2243
|
+
*/
|
|
2244
|
+
declare function shouldRefreshReviewRequestTemplate(content: string): boolean;
|
|
2245
|
+
/**
|
|
2246
|
+
* Resolve which review guidelines to attach:
|
|
2247
|
+
* 1. `.sideboard/review.md` (committed, per-repo)
|
|
2248
|
+
* 2. `.sideboard/attachments/Review request.md` (local override)
|
|
2249
|
+
* 3. Seed stock template into the local attachments path (does not write the repo file)
|
|
2250
|
+
*/
|
|
2251
|
+
declare function resolveReviewGuidelines(worktreePath: string): ResolvedReviewGuidelines;
|
|
2252
|
+
/**
|
|
2253
|
+
* Ensure a file the user can edit for guidelines.
|
|
2254
|
+
* Prefers creating/opening committed `.sideboard/review.md` (per-repo).
|
|
2255
|
+
* Falls back to refreshing a legacy local attachments file only when that is
|
|
2256
|
+
* what already exists and the repo file does not.
|
|
2257
|
+
*/
|
|
2258
|
+
declare function ensureReviewRequestFile(worktreePath: string): ResolvedReviewGuidelines;
|
|
2259
|
+
declare function buildReviewRequestAttachment(content: string, opts?: {
|
|
2260
|
+
path?: string;
|
|
2261
|
+
name?: string;
|
|
2262
|
+
}): ThreadAttachment;
|
|
2222
2263
|
/**
|
|
2223
|
-
* Read
|
|
2224
|
-
*
|
|
2264
|
+
* Read existing guidelines without creating files.
|
|
2265
|
+
* Prefers repo `.sideboard/review.md`, then local attachments copy.
|
|
2225
2266
|
*/
|
|
2226
2267
|
declare function readExistingReviewRequestFile(worktreePath: string): string | null;
|
|
2227
2268
|
interface RequestReviewResult {
|
|
@@ -2232,9 +2273,7 @@ interface RequestReviewResult {
|
|
|
2232
2273
|
}
|
|
2233
2274
|
type SendFn = (threadRef: string, prompt: string) => Promise<Thread>;
|
|
2234
2275
|
/**
|
|
2235
|
-
*
|
|
2236
|
-
* the same worktree and send the merge-readiness prefill (attach custom
|
|
2237
|
-
* guidelines file when present).
|
|
2276
|
+
* Open a fresh "Review" chat tab, attach resolved guidelines, send "Review."
|
|
2238
2277
|
*/
|
|
2239
2278
|
declare function requestReview(threadRef: string, send: SendFn): Promise<RequestReviewResult>;
|
|
2240
2279
|
|
|
@@ -2871,4 +2910,4 @@ declare function writeInjectedMcpConfig(opts: {
|
|
|
2871
2910
|
includeBrightsy?: boolean;
|
|
2872
2911
|
}): Promise<string | null>;
|
|
2873
2912
|
|
|
2874
|
-
export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isSessionQuotaLimit, isThinkingEffort, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, parseSessionQuotaResetAt, partsToAssistantText, pastedTextStats, permissionMode, previewLand, pushBranch, readExistingReviewRequestFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
|
|
2913
|
+
export { type ActiveRun, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentInstructionFile, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_MODE_INSTRUCTION, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type TranscriptToolDetail, type TurnCommand, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createGlobalChat, createOrUpdatePr, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initializeGitRepository, inspectGitWorktree, installAgent, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isLinearConnected, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isSessionQuotaLimit, isThinkingEffort, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGithubSlugFromRemoteUrl, parseMcpList, parseSessionQuotaResetAt, partsToAssistantText, pastedTextStats, permissionMode, previewLand, pushBranch, readExistingReviewRequestFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGithubRepoSlug, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writeThread, writeWorktreeFile };
|