@sideboard-ai/core 0.1.229 → 0.1.230
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-B7G4BQTS.js → agents-ENAQHQRZ.js} +4 -4
- package/dist/{agents-ZKP7QNXA.js → agents-TCTEAK6M.js} +4 -4
- package/dist/{chunk-F3GT6DQW.js → chunk-4CZ25DO2.js} +1 -1
- package/dist/{chunk-3IMSQNTS.js → chunk-4VGCG2HV.js} +17 -0
- package/dist/{chunk-T7Y5ULHM.js → chunk-6L25K7BE.js} +3 -3
- package/dist/{chunk-LULHFLPU.js → chunk-FA4CPYCY.js} +3 -3
- package/dist/{chunk-7YKXBFQE.js → chunk-HZFLKVGC.js} +2 -2
- package/dist/{chunk-UHT6OS7V.js → chunk-HZLZ34FK.js} +145 -15
- package/dist/{chunk-6HKGCUDN.js → chunk-JJRRLCCS.js} +143 -14
- package/dist/{chunk-AMMRFFB7.js → chunk-N5TX66CD.js} +1 -1
- package/dist/{chunk-N7UXGM3Y.js → chunk-UNTOZA3C.js} +2 -2
- package/dist/{chunk-HY2GFZ5S.js → chunk-XJETIO4K.js} +17 -0
- package/dist/{coordinator-prompt-DZMMCDRW.js → coordinator-prompt-DFXYTM6D.js} +3 -3
- package/dist/{coordinator-prompt-RL3GKIAQ.js → coordinator-prompt-YKLXQTWH.js} +3 -3
- package/dist/{global-workspace-QW4OXCLJ.js → global-workspace-4SPANNJT.js} +3 -3
- package/dist/{global-workspace-G3QEVRGZ.js → global-workspace-EYZKYHAO.js} +3 -3
- package/dist/index.cjs +174 -17
- package/dist/index.d.cts +53 -5
- package/dist/index.d.ts +53 -5
- package/dist/index.js +10 -6
- package/dist/mcp/run-stdio.cjs +159 -7
- package/dist/mcp/run-stdio.js +6 -6
- package/dist/{orchestrator-GKAHLGXT.js → orchestrator-HMJPNUN5.js} +7 -5
- package/dist/{orchestrator-X4VFA5WW.js → orchestrator-ZT3SJVKF.js} +7 -5
- package/dist/{thread-store-KDPPXJJ3.js → thread-store-FBK5SZ5P.js} +1 -1
- package/dist/{thread-store-N6WQIWZ4.js → thread-store-IKJD4EOK.js} +1 -1
- package/dist/{workspaces-77C5XQEY.js → workspaces-73Y7IJY2.js} +3 -3
- package/dist/{workspaces-WXRPLT2N.js → workspaces-FQCSCTNH.js} +3 -3
- package/dist/{worktree-P67WAJKH.js → worktree-36VEFUJN.js} +2 -2
- package/dist/{worktree-L6FJXFUC.js → worktree-DOPRKG7K.js} +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -30,6 +30,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
30
30
|
));
|
|
31
31
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
32
32
|
|
|
33
|
+
// src/types/thread.ts
|
|
34
|
+
function isUnclaimedRunScriptRequest(req) {
|
|
35
|
+
return Boolean(req && !req.claimedAt && !req.fulfilledAt && !req.error);
|
|
36
|
+
}
|
|
37
|
+
var init_thread = __esm({
|
|
38
|
+
"src/types/thread.ts"() {
|
|
39
|
+
"use strict";
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
33
43
|
// src/types/thinking-effort.ts
|
|
34
44
|
function normalizeThinkingEffort(value) {
|
|
35
45
|
if (typeof value !== "string") return null;
|
|
@@ -3137,6 +3147,22 @@ function resolveThreadEffort(raw) {
|
|
|
3137
3147
|
if (raw.fast) return "low";
|
|
3138
3148
|
return "high";
|
|
3139
3149
|
}
|
|
3150
|
+
function normalizeRunScriptRequest(raw) {
|
|
3151
|
+
if (!raw || typeof raw !== "object") return void 0;
|
|
3152
|
+
const req = raw;
|
|
3153
|
+
if (req.op !== "start" && req.op !== "stop") return void 0;
|
|
3154
|
+
if (typeof req.requestId !== "string" || !req.requestId.trim()) return void 0;
|
|
3155
|
+
if (typeof req.requestedAt !== "string" || !req.requestedAt.trim()) return void 0;
|
|
3156
|
+
return {
|
|
3157
|
+
op: req.op,
|
|
3158
|
+
scriptName: req.scriptName ?? null,
|
|
3159
|
+
requestId: req.requestId,
|
|
3160
|
+
requestedAt: req.requestedAt,
|
|
3161
|
+
claimedAt: req.claimedAt ?? null,
|
|
3162
|
+
fulfilledAt: req.fulfilledAt ?? null,
|
|
3163
|
+
error: req.error ?? null
|
|
3164
|
+
};
|
|
3165
|
+
}
|
|
3140
3166
|
function normalizeThread(raw) {
|
|
3141
3167
|
return {
|
|
3142
3168
|
...raw,
|
|
@@ -3160,6 +3186,7 @@ function normalizeThread(raw) {
|
|
|
3160
3186
|
stackLayer: raw.stackLayer ?? null,
|
|
3161
3187
|
userSetTitle: Boolean(raw.userSetTitle),
|
|
3162
3188
|
activeRuns: Array.isArray(raw.activeRuns) ? raw.activeRuns : [],
|
|
3189
|
+
runScriptRequest: normalizeRunScriptRequest(raw.runScriptRequest),
|
|
3163
3190
|
quotaResumeAt: raw.quotaResumeAt ?? null,
|
|
3164
3191
|
quotaContinuedFromId: raw.quotaContinuedFromId ?? null,
|
|
3165
3192
|
archivedAt: typeof raw.archivedAt === "string" && raw.archivedAt.trim() ? raw.archivedAt.trim() : void 0
|
|
@@ -23334,6 +23361,7 @@ __export(orchestrator_exports, {
|
|
|
23334
23361
|
LIGHT_RECONCILE_THROTTLE_MS: () => LIGHT_RECONCILE_THROTTLE_MS,
|
|
23335
23362
|
LIVE_TURN_SPAWN_GRACE_MS: () => LIVE_TURN_SPAWN_GRACE_MS,
|
|
23336
23363
|
Orchestrator: () => Orchestrator,
|
|
23364
|
+
RUN_SCRIPT_DESKTOP_ADOPT_MS: () => RUN_SCRIPT_DESKTOP_ADOPT_MS,
|
|
23337
23365
|
getOrchestrator: () => getOrchestrator,
|
|
23338
23366
|
isPidAlive: () => isPidAlive,
|
|
23339
23367
|
resolveOrchChildFollowUp: () => resolveOrchChildFollowUp,
|
|
@@ -23445,12 +23473,13 @@ async function startOrchestration(opts) {
|
|
|
23445
23473
|
}
|
|
23446
23474
|
return updated;
|
|
23447
23475
|
}
|
|
23448
|
-
var import_node_events, import_node_fs56, LIVE_TURN_SPAWN_GRACE_MS, STALE_AGENT_PID_WAIT_MS, LIGHT_RECONCILE_THROTTLE_MS, Orchestrator, singleton;
|
|
23476
|
+
var import_node_events, import_node_crypto12, import_node_fs56, LIVE_TURN_SPAWN_GRACE_MS, RUN_SCRIPT_DESKTOP_ADOPT_MS, STALE_AGENT_PID_WAIT_MS, LIGHT_RECONCILE_THROTTLE_MS, Orchestrator, singleton;
|
|
23449
23477
|
var init_orchestrator = __esm({
|
|
23450
23478
|
"src/orchestrator/orchestrator.ts"() {
|
|
23451
23479
|
"use strict";
|
|
23452
23480
|
import_node_events = require("events");
|
|
23453
23481
|
init_outbound_watch();
|
|
23482
|
+
import_node_crypto12 = require("crypto");
|
|
23454
23483
|
import_node_fs56 = require("fs");
|
|
23455
23484
|
init_error_detail();
|
|
23456
23485
|
init_run();
|
|
@@ -23468,6 +23497,7 @@ var init_orchestrator = __esm({
|
|
|
23468
23497
|
init_history_cleanup();
|
|
23469
23498
|
init_apply_into_main();
|
|
23470
23499
|
init_clone_repo();
|
|
23500
|
+
init_thread();
|
|
23471
23501
|
init_message_parts();
|
|
23472
23502
|
init_usage();
|
|
23473
23503
|
init_thread_store();
|
|
@@ -23513,6 +23543,7 @@ var init_orchestrator = __esm({
|
|
|
23513
23543
|
init_schedule_runner();
|
|
23514
23544
|
init_coordinator_prompt();
|
|
23515
23545
|
LIVE_TURN_SPAWN_GRACE_MS = 15e3;
|
|
23546
|
+
RUN_SCRIPT_DESKTOP_ADOPT_MS = 2e4;
|
|
23516
23547
|
STALE_AGENT_PID_WAIT_MS = 2500;
|
|
23517
23548
|
LIGHT_RECONCILE_THROTTLE_MS = 1e4;
|
|
23518
23549
|
Orchestrator = class {
|
|
@@ -23551,6 +23582,11 @@ var init_orchestrator = __esm({
|
|
|
23551
23582
|
jobContinueNudged = /* @__PURE__ */ new Set();
|
|
23552
23583
|
/** In-flight startDev per worktree run key — agent MCP + UI Start must not double-spawn. */
|
|
23553
23584
|
startingDev = /* @__PURE__ */ new Map();
|
|
23585
|
+
/**
|
|
23586
|
+
* MCP/CLI poll budget while Electron main adopts `runScriptRequest`.
|
|
23587
|
+
* Tests shorten this so a missing desktop does not wait 20s.
|
|
23588
|
+
*/
|
|
23589
|
+
runScriptAdoptTimeoutMs = RUN_SCRIPT_DESKTOP_ADOPT_MS;
|
|
23554
23590
|
maxConcurrent;
|
|
23555
23591
|
runningCount = 0;
|
|
23556
23592
|
constructor(opts) {
|
|
@@ -23720,6 +23756,58 @@ var init_orchestrator = __esm({
|
|
|
23720
23756
|
this.armDrain(thread.id);
|
|
23721
23757
|
}
|
|
23722
23758
|
}
|
|
23759
|
+
this.adoptPersistedRunScripts();
|
|
23760
|
+
}
|
|
23761
|
+
/**
|
|
23762
|
+
* Adopt run-script start/stop persisted by MCP/CLI while this process owns
|
|
23763
|
+
* live children (desktop host). Spawning in stdio leaves the Run tab on
|
|
23764
|
+
* "Starting…" with no logs — `run_output` never reaches the renderer.
|
|
23765
|
+
*/
|
|
23766
|
+
adoptPersistedRunScripts() {
|
|
23767
|
+
if (!this.shouldOwnRunScripts()) return;
|
|
23768
|
+
for (const thread of listThreads()) {
|
|
23769
|
+
if (thread.status === "archived") continue;
|
|
23770
|
+
const req = thread.runScriptRequest;
|
|
23771
|
+
if (!isUnclaimedRunScriptRequest(req) || !req) continue;
|
|
23772
|
+
const claimedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
23773
|
+
const claimed = { ...req, claimedAt };
|
|
23774
|
+
updateThread(thread.id, { runScriptRequest: claimed });
|
|
23775
|
+
void this.applyRunScriptRequest(thread.id, claimed);
|
|
23776
|
+
}
|
|
23777
|
+
}
|
|
23778
|
+
async applyRunScriptRequest(threadId, req) {
|
|
23779
|
+
try {
|
|
23780
|
+
if (req.op === "start") {
|
|
23781
|
+
await this.startDev(threadId, req.scriptName ?? void 0);
|
|
23782
|
+
} else {
|
|
23783
|
+
await this.stopDev(threadId, req.scriptName ?? void 0);
|
|
23784
|
+
}
|
|
23785
|
+
const latest = readThread(threadId);
|
|
23786
|
+
const current = latest?.runScriptRequest;
|
|
23787
|
+
if (current?.requestId === req.requestId && !current.error) {
|
|
23788
|
+
updateThread(threadId, {
|
|
23789
|
+
runScriptRequest: {
|
|
23790
|
+
...current,
|
|
23791
|
+
fulfilledAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
23792
|
+
}
|
|
23793
|
+
});
|
|
23794
|
+
}
|
|
23795
|
+
} catch (err) {
|
|
23796
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
23797
|
+
const latest = readThread(threadId);
|
|
23798
|
+
const current = latest?.runScriptRequest;
|
|
23799
|
+
if (!current || current.requestId !== req.requestId) return;
|
|
23800
|
+
updateThread(threadId, {
|
|
23801
|
+
runScriptRequest: { ...current, error: message }
|
|
23802
|
+
});
|
|
23803
|
+
}
|
|
23804
|
+
}
|
|
23805
|
+
/**
|
|
23806
|
+
* Same rule as agent-queue drain: MCP stdio must not own Electron children
|
|
23807
|
+
* while Sideboard.app is alive.
|
|
23808
|
+
*/
|
|
23809
|
+
shouldOwnRunScripts() {
|
|
23810
|
+
return thisProcessShouldDrainAgentQueues();
|
|
23723
23811
|
}
|
|
23724
23812
|
/**
|
|
23725
23813
|
* Mid-session: a worktree can sit at `running` after the agent process dies
|
|
@@ -24768,6 +24856,13 @@ var init_orchestrator = __esm({
|
|
|
24768
24856
|
"No run script found for this worktree. Add [scripts.run.*] in the worktree\u2019s .sideboard/settings.toml or .conductor/settings.toml (or settings.local.toml on the main repo)."
|
|
24769
24857
|
);
|
|
24770
24858
|
}
|
|
24859
|
+
if (!this.shouldOwnRunScripts()) {
|
|
24860
|
+
const result = await this.requestDesktopRunScript(thread, "start", resolvedName);
|
|
24861
|
+
if (!result) {
|
|
24862
|
+
throw new Error("Desktop did not return a run script port.");
|
|
24863
|
+
}
|
|
24864
|
+
return result;
|
|
24865
|
+
}
|
|
24771
24866
|
const runKey = worktreeRunProcessKey(thread.worktreePath, resolvedName);
|
|
24772
24867
|
const inFlight = this.startingDev.get(runKey);
|
|
24773
24868
|
if (inFlight) return inFlight;
|
|
@@ -24890,8 +24985,65 @@ var init_orchestrator = __esm({
|
|
|
24890
24985
|
});
|
|
24891
24986
|
return { port: handle.port, scriptName: resolvedName, ports: handle.ports };
|
|
24892
24987
|
}
|
|
24893
|
-
|
|
24988
|
+
/**
|
|
24989
|
+
* Persist a run-script intent for the desktop host (MCP/CLI while the board
|
|
24990
|
+
* is alive). Polls until Electron main adopts and fulfills it.
|
|
24991
|
+
*/
|
|
24992
|
+
async requestDesktopRunScript(thread, op, scriptName) {
|
|
24993
|
+
const latest = readThread(thread.id) ?? thread;
|
|
24994
|
+
const pending = latest.runScriptRequest;
|
|
24995
|
+
const claimedAt = pending?.claimedAt;
|
|
24996
|
+
const staleClaim = typeof claimedAt === "string" && Date.now() - Date.parse(claimedAt) > this.runScriptAdoptTimeoutMs;
|
|
24997
|
+
const sameIntent = pending && pending.op === op && (pending.scriptName ?? null) === (scriptName ?? null) && !pending.error && !pending.fulfilledAt && !staleClaim;
|
|
24998
|
+
const request = sameIntent ? pending : {
|
|
24999
|
+
op,
|
|
25000
|
+
scriptName: scriptName ?? null,
|
|
25001
|
+
requestId: (0, import_node_crypto12.randomUUID)(),
|
|
25002
|
+
requestedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
25003
|
+
};
|
|
25004
|
+
if (!sameIntent) {
|
|
25005
|
+
updateThread(thread.id, { runScriptRequest: request });
|
|
25006
|
+
}
|
|
25007
|
+
return this.waitForDesktopRunScript(thread.id, request, op, scriptName);
|
|
25008
|
+
}
|
|
25009
|
+
async waitForDesktopRunScript(threadId, request, op, scriptName) {
|
|
25010
|
+
const deadline = Date.now() + this.runScriptAdoptTimeoutMs;
|
|
25011
|
+
while (Date.now() < deadline) {
|
|
25012
|
+
const latest = readThread(threadId);
|
|
25013
|
+
if (!latest) {
|
|
25014
|
+
throw new Error("Thread disappeared while waiting for the desktop run script.");
|
|
25015
|
+
}
|
|
25016
|
+
const req = latest.runScriptRequest;
|
|
25017
|
+
if (req?.requestId === request.requestId && req.error) {
|
|
25018
|
+
throw new Error(req.error);
|
|
25019
|
+
}
|
|
25020
|
+
const shared = mergeWorktreeActiveRuns(threadsSharingWorktree(latest.worktreePath));
|
|
25021
|
+
const run2 = scriptName ? shared.activeRuns.find((r) => r.scriptName === scriptName) : shared.activeRuns[0];
|
|
25022
|
+
const fulfilled = req?.requestId === request.requestId && Boolean(req.fulfilledAt);
|
|
25023
|
+
const requestGone = !req || req.requestId !== request.requestId;
|
|
25024
|
+
if (op === "start") {
|
|
25025
|
+
if (run2 && (fulfilled || requestGone || run2.startedAt >= request.requestedAt)) {
|
|
25026
|
+
return { port: run2.port, scriptName: run2.scriptName, ports: run2.ports };
|
|
25027
|
+
}
|
|
25028
|
+
if (fulfilled && !run2) {
|
|
25029
|
+
throw new Error("Desktop reported the run script started, but it is not active.");
|
|
25030
|
+
}
|
|
25031
|
+
} else {
|
|
25032
|
+
const gone = scriptName ? !run2 : shared.activeRuns.length === 0;
|
|
25033
|
+
if (fulfilled || gone) return null;
|
|
25034
|
+
}
|
|
25035
|
+
await new Promise((r) => setTimeout(r, 40));
|
|
25036
|
+
}
|
|
25037
|
+
throw new Error(
|
|
25038
|
+
op === "start" ? "Desktop did not start the run script in time. Is Sideboard.app running this worktree?" : "Desktop did not stop the run script in time."
|
|
25039
|
+
);
|
|
25040
|
+
}
|
|
25041
|
+
async stopDev(threadRef, scriptName) {
|
|
24894
25042
|
const thread = this.requireThread(threadRef);
|
|
25043
|
+
if (!this.shouldOwnRunScripts()) {
|
|
25044
|
+
await this.requestDesktopRunScript(thread, "stop", scriptName);
|
|
25045
|
+
return;
|
|
25046
|
+
}
|
|
24895
25047
|
const siblings = threadsSharingWorktree(thread.worktreePath);
|
|
24896
25048
|
const shared = mergeWorktreeActiveRuns(siblings);
|
|
24897
25049
|
if (scriptName) {
|
|
@@ -26099,6 +26251,7 @@ __export(index_exports, {
|
|
|
26099
26251
|
REVIEW_REQUEST_TEMPLATE: () => REVIEW_REQUEST_TEMPLATE,
|
|
26100
26252
|
REVIEW_SKILL_NAME: () => REVIEW_SKILL_NAME,
|
|
26101
26253
|
REVIEW_SKILL_PATH: () => REVIEW_SKILL_PATH,
|
|
26254
|
+
RUN_SCRIPT_DESKTOP_ADOPT_MS: () => RUN_SCRIPT_DESKTOP_ADOPT_MS,
|
|
26102
26255
|
SEED_FULL_TOOL_MESSAGES: () => SEED_FULL_TOOL_MESSAGES,
|
|
26103
26256
|
SEED_MAX_CHARS: () => SEED_MAX_CHARS,
|
|
26104
26257
|
SESSION_RESET_OCCUPANCY_TOKENS: () => SESSION_RESET_OCCUPANCY_TOKENS,
|
|
@@ -26528,6 +26681,7 @@ __export(index_exports, {
|
|
|
26528
26681
|
isThisProcessDesktopHost: () => isThisProcessDesktopHost,
|
|
26529
26682
|
isThreadCaffeinated: () => isThreadCaffeinated,
|
|
26530
26683
|
isThreadRecordFile: () => isThreadRecordFile,
|
|
26684
|
+
isUnclaimedRunScriptRequest: () => isUnclaimedRunScriptRequest,
|
|
26531
26685
|
isUsageOnLimit: () => isUsageOnLimit,
|
|
26532
26686
|
isWorkspaceScratchPath: () => isWorkspaceScratchPath,
|
|
26533
26687
|
issueAttachmentForAbleTimeTask: () => issueAttachmentForAbleTimeTask,
|
|
@@ -26898,6 +27052,7 @@ __export(index_exports, {
|
|
|
26898
27052
|
writeWorktreeFile: () => writeWorktreeFile
|
|
26899
27053
|
});
|
|
26900
27054
|
module.exports = __toCommonJS(index_exports);
|
|
27055
|
+
init_thread();
|
|
26901
27056
|
init_thinking_effort();
|
|
26902
27057
|
init_paths();
|
|
26903
27058
|
init_app_settings();
|
|
@@ -27204,7 +27359,7 @@ function issueActivityKind(issue, sinceIso) {
|
|
|
27204
27359
|
}
|
|
27205
27360
|
|
|
27206
27361
|
// src/integrations/linear-oauth.ts
|
|
27207
|
-
var
|
|
27362
|
+
var import_node_crypto13 = require("crypto");
|
|
27208
27363
|
var import_node_http2 = require("http");
|
|
27209
27364
|
init_app_settings();
|
|
27210
27365
|
init_fetch();
|
|
@@ -27236,8 +27391,8 @@ function linearOAuthCredentials() {
|
|
|
27236
27391
|
return { clientId, clientSecret };
|
|
27237
27392
|
}
|
|
27238
27393
|
function createLinearPkce() {
|
|
27239
|
-
const verifier = (0,
|
|
27240
|
-
const challenge = (0,
|
|
27394
|
+
const verifier = (0, import_node_crypto13.randomBytes)(32).toString("base64url");
|
|
27395
|
+
const challenge = (0, import_node_crypto13.createHash)("sha256").update(verifier).digest("base64url");
|
|
27241
27396
|
return { verifier, challenge };
|
|
27242
27397
|
}
|
|
27243
27398
|
function linearOAuthAuthorizeUrl(clientId, state, codeChallenge) {
|
|
@@ -27368,7 +27523,7 @@ async function startLinearOAuth(opts) {
|
|
|
27368
27523
|
throw new LinearOAuthCancelledError();
|
|
27369
27524
|
}
|
|
27370
27525
|
const { clientId, clientSecret } = linearOAuthCredentials();
|
|
27371
|
-
const state = (0,
|
|
27526
|
+
const state = (0, import_node_crypto13.randomBytes)(16).toString("hex");
|
|
27372
27527
|
const pkce = createLinearPkce();
|
|
27373
27528
|
const authorizeUrl = linearOAuthAuthorizeUrl(clientId, state, pkce.challenge);
|
|
27374
27529
|
const timeoutMs = opts?.timeoutMs ?? 5 * 6e4;
|
|
@@ -29223,7 +29378,7 @@ init_stage_files();
|
|
|
29223
29378
|
init_consume_attachments();
|
|
29224
29379
|
|
|
29225
29380
|
// src/composer/pasted-text.ts
|
|
29226
|
-
var
|
|
29381
|
+
var import_node_crypto14 = require("crypto");
|
|
29227
29382
|
var PASTE_ATTACH_MIN_CHARS = 1200;
|
|
29228
29383
|
var PASTE_ATTACH_MIN_LINES = 15;
|
|
29229
29384
|
var PASTED_NAME_RE = /^Pasted text #(\d+)\.txt$/i;
|
|
@@ -29250,7 +29405,7 @@ function nextPastedTextName(existing) {
|
|
|
29250
29405
|
}
|
|
29251
29406
|
function buildPastedTextAttachment(text7, opts) {
|
|
29252
29407
|
return {
|
|
29253
|
-
id: opts?.id ?? (0,
|
|
29408
|
+
id: opts?.id ?? (0, import_node_crypto14.randomUUID)(),
|
|
29254
29409
|
name: opts?.name ?? "Pasted text #1.txt",
|
|
29255
29410
|
kind: "file",
|
|
29256
29411
|
path: opts?.path,
|
|
@@ -29406,7 +29561,7 @@ init_history_cleanup();
|
|
|
29406
29561
|
var import_mcp = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
29407
29562
|
var import_stdio = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
29408
29563
|
var import_zod9 = require("zod");
|
|
29409
|
-
var
|
|
29564
|
+
var import_node_crypto16 = require("crypto");
|
|
29410
29565
|
var import_node_path56 = require("path");
|
|
29411
29566
|
init_orchestrator();
|
|
29412
29567
|
init_worktree();
|
|
@@ -31150,7 +31305,7 @@ init_worktree();
|
|
|
31150
31305
|
init_paths();
|
|
31151
31306
|
|
|
31152
31307
|
// src/board/board-pins.ts
|
|
31153
|
-
var
|
|
31308
|
+
var import_node_crypto15 = require("crypto");
|
|
31154
31309
|
var import_node_fs57 = require("fs");
|
|
31155
31310
|
var import_node_path54 = require("path");
|
|
31156
31311
|
init_paths();
|
|
@@ -31182,7 +31337,7 @@ function addBoardPin(input) {
|
|
|
31182
31337
|
const ref = input.ref.trim();
|
|
31183
31338
|
if (!ref) throw new Error("Board item needs a ref");
|
|
31184
31339
|
const pin = {
|
|
31185
|
-
id: (0,
|
|
31340
|
+
id: (0, import_node_crypto15.randomUUID)(),
|
|
31186
31341
|
kind: input.kind,
|
|
31187
31342
|
ref,
|
|
31188
31343
|
repoPath: input.repoPath.trim(),
|
|
@@ -31948,7 +32103,7 @@ async function startMcpServer() {
|
|
|
31948
32103
|
async ({ ref, name }) => {
|
|
31949
32104
|
try {
|
|
31950
32105
|
const threadRef = resolveRunScriptThreadRef(ref);
|
|
31951
|
-
orch.stopDev(threadRef, name);
|
|
32106
|
+
await orch.stopDev(threadRef, name);
|
|
31952
32107
|
return mcpJson({ ok: true, ref: threadRef, stopped: name ?? "all" });
|
|
31953
32108
|
} catch (err) {
|
|
31954
32109
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -32076,7 +32231,7 @@ async function startMcpServer() {
|
|
|
32076
32231
|
const ident = issue?.identifier ?? ref.trim();
|
|
32077
32232
|
const attachments = issue ? [
|
|
32078
32233
|
{
|
|
32079
|
-
id: (0,
|
|
32234
|
+
id: (0, import_node_crypto16.randomUUID)(),
|
|
32080
32235
|
name: issue.identifier,
|
|
32081
32236
|
kind: "issue",
|
|
32082
32237
|
content: [
|
|
@@ -33005,7 +33160,7 @@ init_orch_mcp_isolation();
|
|
|
33005
33160
|
init_workspaces2();
|
|
33006
33161
|
|
|
33007
33162
|
// src/slack/oauth.ts
|
|
33008
|
-
var
|
|
33163
|
+
var import_node_crypto17 = require("crypto");
|
|
33009
33164
|
init_app_settings();
|
|
33010
33165
|
init_workspaces2();
|
|
33011
33166
|
|
|
@@ -33229,7 +33384,7 @@ async function startSlackOAuth(opts) {
|
|
|
33229
33384
|
throw new SlackOAuthCancelledError();
|
|
33230
33385
|
}
|
|
33231
33386
|
const { clientId } = slackOAuthCredentials();
|
|
33232
|
-
const state = (0,
|
|
33387
|
+
const state = (0, import_node_crypto17.randomBytes)(16).toString("hex");
|
|
33233
33388
|
const authorizeUrl = slackOAuthAuthorizeUrl(clientId, state);
|
|
33234
33389
|
const timeoutMs = opts?.timeoutMs ?? 5 * 6e4;
|
|
33235
33390
|
const pollIntervalMs = opts?.pollIntervalMs ?? 400;
|
|
@@ -33511,7 +33666,7 @@ init_workspaces2();
|
|
|
33511
33666
|
init_reply_target();
|
|
33512
33667
|
|
|
33513
33668
|
// src/slack/relay-protocol.ts
|
|
33514
|
-
var
|
|
33669
|
+
var import_node_crypto18 = require("crypto");
|
|
33515
33670
|
var SLACK_RELAY_PING_INTERVAL_MS = 2e4;
|
|
33516
33671
|
var SLACK_RELAY_PONG_TIMEOUT_MS = 15e3;
|
|
33517
33672
|
function slackRelaySessionKey(teamId, userId, deviceId) {
|
|
@@ -33521,7 +33676,7 @@ function slackRelayUserKey(teamId, userId) {
|
|
|
33521
33676
|
return `${teamId.trim()}:${userId.trim()}`;
|
|
33522
33677
|
}
|
|
33523
33678
|
function newSlackRelayEventId() {
|
|
33524
|
-
return (0,
|
|
33679
|
+
return (0, import_node_crypto18.randomBytes)(12).toString("hex");
|
|
33525
33680
|
}
|
|
33526
33681
|
function parseSlackRelayClientMessage(raw) {
|
|
33527
33682
|
try {
|
|
@@ -35050,6 +35205,7 @@ init_outbound_watch();
|
|
|
35050
35205
|
REVIEW_REQUEST_TEMPLATE,
|
|
35051
35206
|
REVIEW_SKILL_NAME,
|
|
35052
35207
|
REVIEW_SKILL_PATH,
|
|
35208
|
+
RUN_SCRIPT_DESKTOP_ADOPT_MS,
|
|
35053
35209
|
SEED_FULL_TOOL_MESSAGES,
|
|
35054
35210
|
SEED_MAX_CHARS,
|
|
35055
35211
|
SESSION_RESET_OCCUPANCY_TOKENS,
|
|
@@ -35479,6 +35635,7 @@ init_outbound_watch();
|
|
|
35479
35635
|
isThisProcessDesktopHost,
|
|
35480
35636
|
isThreadCaffeinated,
|
|
35481
35637
|
isThreadRecordFile,
|
|
35638
|
+
isUnclaimedRunScriptRequest,
|
|
35482
35639
|
isUsageOnLimit,
|
|
35483
35640
|
isWorkspaceScratchPath,
|
|
35484
35641
|
issueAttachmentForAbleTimeTask,
|
package/dist/index.d.cts
CHANGED
|
@@ -144,6 +144,12 @@ interface Thread {
|
|
|
144
144
|
devPort: number | null;
|
|
145
145
|
/** Named run scripts currently tracked for this thread. */
|
|
146
146
|
activeRuns?: ActiveRun[];
|
|
147
|
+
/**
|
|
148
|
+
* Cross-process run-script intent. Worktree MCP / CLI write this when the
|
|
149
|
+
* desktop host is alive instead of spawning; Electron main adopts and calls
|
|
150
|
+
* `startDev` / `stopDev` so Run-tab logs use renderer IPC.
|
|
151
|
+
*/
|
|
152
|
+
runScriptRequest?: RunScriptRequest | null;
|
|
147
153
|
prUrl: string | null;
|
|
148
154
|
/** Cached PR title for Conductor-style sidebar labels (PR title > branch). */
|
|
149
155
|
prTitle: string | null;
|
|
@@ -651,6 +657,22 @@ interface ActiveRun {
|
|
|
651
657
|
ports: number[];
|
|
652
658
|
startedAt: string;
|
|
653
659
|
}
|
|
660
|
+
/**
|
|
661
|
+
* MCP/CLI → desktop run-script request (same path as `send_to_thread` queues).
|
|
662
|
+
* Desktop claims, runs `startDev`/`stopDev`, then fulfills or sets `error`.
|
|
663
|
+
*/
|
|
664
|
+
interface RunScriptRequest {
|
|
665
|
+
op: 'start' | 'stop';
|
|
666
|
+
/** Omit/null = default script for start, every script for stop. */
|
|
667
|
+
scriptName?: string | null;
|
|
668
|
+
requestId: string;
|
|
669
|
+
requestedAt: string;
|
|
670
|
+
claimedAt?: string | null;
|
|
671
|
+
fulfilledAt?: string | null;
|
|
672
|
+
error?: string | null;
|
|
673
|
+
}
|
|
674
|
+
/** True when desktop should `startDev`/`stopDev` this persisted request. */
|
|
675
|
+
declare function isUnclaimedRunScriptRequest(req: RunScriptRequest | null | undefined): boolean;
|
|
654
676
|
/** Live snapshot for the global orchestrator board. */
|
|
655
677
|
interface OrchestratorRuntime {
|
|
656
678
|
running: number;
|
|
@@ -1678,9 +1700,10 @@ declare function releaseDesktopHost(pid?: number): void;
|
|
|
1678
1700
|
declare function isDesktopHostAlive(): boolean;
|
|
1679
1701
|
declare function isThisProcessDesktopHost(): boolean;
|
|
1680
1702
|
/**
|
|
1681
|
-
* MCP/CLI must not spawn worktree turns when the board is
|
|
1682
|
-
* children have no renderer IPC, so the chat stays
|
|
1683
|
-
*
|
|
1703
|
+
* MCP/CLI must not spawn worktree turns or run scripts when the board is
|
|
1704
|
+
* running — those children have no renderer IPC, so the chat/Run tab stays
|
|
1705
|
+
* blank, and Stop cannot see in-memory handles. Desktop adopts persisted
|
|
1706
|
+
* queues and `runScriptRequest`.
|
|
1684
1707
|
*/
|
|
1685
1708
|
declare function thisProcessShouldDrainAgentQueues(): boolean;
|
|
1686
1709
|
|
|
@@ -4743,6 +4766,8 @@ declare function applyThreadIntoMain(thread: Pick<Thread, 'repoPath' | 'worktree
|
|
|
4743
4766
|
|
|
4744
4767
|
/** Status may be `running` for this long before `agentPid` is written. */
|
|
4745
4768
|
declare const LIVE_TURN_SPAWN_GRACE_MS = 15000;
|
|
4769
|
+
/** MCP/CLI wait for desktop to adopt a run-script request (under the ~60s MCP kill). */
|
|
4770
|
+
declare const RUN_SCRIPT_DESKTOP_ADOPT_MS = 20000;
|
|
4746
4771
|
/** True when `kill(pid, 0)` succeeds (process exists and is signalable). */
|
|
4747
4772
|
declare function isPidAlive(pid: number): boolean;
|
|
4748
4773
|
/** Wait until pid exits, or `timeoutMs` elapses. */
|
|
@@ -4798,6 +4823,11 @@ declare class Orchestrator {
|
|
|
4798
4823
|
private readonly jobContinueNudged;
|
|
4799
4824
|
/** In-flight startDev per worktree run key — agent MCP + UI Start must not double-spawn. */
|
|
4800
4825
|
private readonly startingDev;
|
|
4826
|
+
/**
|
|
4827
|
+
* MCP/CLI poll budget while Electron main adopts `runScriptRequest`.
|
|
4828
|
+
* Tests shorten this so a missing desktop does not wait 20s.
|
|
4829
|
+
*/
|
|
4830
|
+
runScriptAdoptTimeoutMs: number;
|
|
4801
4831
|
private maxConcurrent;
|
|
4802
4832
|
private runningCount;
|
|
4803
4833
|
constructor(opts?: {
|
|
@@ -4851,6 +4881,18 @@ declare class Orchestrator {
|
|
|
4851
4881
|
* MCP-created review threads don't stay `queued` after the MCP child exits.
|
|
4852
4882
|
*/
|
|
4853
4883
|
adoptPersistedQueues(): void;
|
|
4884
|
+
/**
|
|
4885
|
+
* Adopt run-script start/stop persisted by MCP/CLI while this process owns
|
|
4886
|
+
* live children (desktop host). Spawning in stdio leaves the Run tab on
|
|
4887
|
+
* "Starting…" with no logs — `run_output` never reaches the renderer.
|
|
4888
|
+
*/
|
|
4889
|
+
adoptPersistedRunScripts(): void;
|
|
4890
|
+
private applyRunScriptRequest;
|
|
4891
|
+
/**
|
|
4892
|
+
* Same rule as agent-queue drain: MCP stdio must not own Electron children
|
|
4893
|
+
* while Sideboard.app is alive.
|
|
4894
|
+
*/
|
|
4895
|
+
shouldOwnRunScripts(): boolean;
|
|
4854
4896
|
/**
|
|
4855
4897
|
* Mid-session: a worktree can sit at `running` after the agent process dies
|
|
4856
4898
|
* (Cursor/CLI crash, OOM) while wait_for_turn still reports stillRunning.
|
|
@@ -4930,7 +4972,13 @@ declare class Orchestrator {
|
|
|
4930
4972
|
ports: number[];
|
|
4931
4973
|
}>;
|
|
4932
4974
|
private startDevUnlocked;
|
|
4933
|
-
|
|
4975
|
+
/**
|
|
4976
|
+
* Persist a run-script intent for the desktop host (MCP/CLI while the board
|
|
4977
|
+
* is alive). Polls until Electron main adopts and fulfills it.
|
|
4978
|
+
*/
|
|
4979
|
+
private requestDesktopRunScript;
|
|
4980
|
+
private waitForDesktopRunScript;
|
|
4981
|
+
stopDev(threadRef: string, scriptName?: string): Promise<void>;
|
|
4934
4982
|
/**
|
|
4935
4983
|
* App quit: tear down every registered run/setup child and free persisted
|
|
4936
4984
|
* ports so the next launch is not blocked by orphans.
|
|
@@ -7023,4 +7071,4 @@ declare function pollSlackOutboundWatches(opts?: {
|
|
|
7023
7071
|
now?: number;
|
|
7024
7072
|
}): Promise<void>;
|
|
7025
7073
|
|
|
7026
|
-
export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, 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, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CLAUDE_MODEL_CATALOG, CLI_DIR, 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, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunMode, type RunScript, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killListenersOnPorts, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, moveQueuedItemToFront, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeQueuedItem, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, statWorktreePath, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
|
|
7074
|
+
export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, 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, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CLAUDE_MODEL_CATALOG, CLI_DIR, 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, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, RUN_SCRIPT_DESKTOP_ADOPT_MS, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunMode, type RunScript, type RunScriptRequest, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isUnclaimedRunScriptRequest, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killListenersOnPorts, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, moveQueuedItemToFront, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeQueuedItem, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, statWorktreePath, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
|