@sideboard-ai/core 0.1.317 → 0.1.319
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{abletime-NZ2ABWAL.js → abletime-DVYO4IVS.js} +6 -4
- package/dist/{abletime-TKAFNXCM.js → abletime-L3ODNTBT.js} +5 -3
- package/dist/{abletime-oauth-S4AXA4WR.js → abletime-oauth-2VWQCXGT.js} +2 -2
- package/dist/{abletime-oauth-CBFFBINA.js → abletime-oauth-6DTX7LB7.js} +3 -3
- package/dist/{abletime-rest-ORBELZQO.js → abletime-rest-7NICZYOC.js} +2 -2
- package/dist/{abletime-rest-NSOP72AI.js → abletime-rest-PYQM234B.js} +3 -3
- package/dist/{agents-BJVSYC6Y.js → agents-2AR7I6B6.js} +5 -5
- package/dist/{app-settings-RQAFJZCD.js → app-settings-V6YPYY57.js} +1 -1
- package/dist/{chunk-CCUGIVYN.js → chunk-5OM7UCTQ.js} +3 -3
- package/dist/{chunk-NXNNYY3Q.js → chunk-AESO2KJS.js} +2 -2
- package/dist/{chunk-VVV7EI6T.js → chunk-AUJ4XB6H.js} +2 -2
- package/dist/{chunk-S3U4HR5F.js → chunk-AZ4GEEGL.js} +2 -2
- package/dist/{chunk-U7PNCYNX.js → chunk-E52SQENB.js} +1 -0
- package/dist/{chunk-OLYNM52B.js → chunk-FDXHNROD.js} +2 -2
- package/dist/{chunk-XWUDFLBX.js → chunk-IAPO7ZFG.js} +4 -4
- package/dist/{chunk-VZAJVX36.js → chunk-JD7CC6SW.js} +1 -1
- package/dist/{chunk-ELBK34TY.js → chunk-LXBZQP2Q.js} +5 -5
- package/dist/{chunk-BXTISNKW.js → chunk-OO3R6CS2.js} +216 -64
- package/dist/{chunk-I5CLCWUK.js → chunk-QPLQXWND.js} +8 -4
- package/dist/{chunk-4XZJYBO2.js → chunk-ST2UQBJT.js} +4 -4
- package/dist/{chunk-YN6XONV5.js → chunk-TUJFCJJU.js} +1 -1
- package/dist/{chunk-U53JICJ2.js → chunk-U2N32EA6.js} +233 -81
- package/dist/{chunk-GXSV3X3L.js → chunk-WLZHRNE6.js} +9 -5
- package/dist/{chunk-PX324N7P.js → chunk-YALFZKSC.js} +2 -2
- package/dist/{chunk-7SCVGGF6.js → chunk-ZM43NTJJ.js} +4 -4
- package/dist/{conductor-TP2NA44I.js → conductor-MG2RAQNT.js} +4 -4
- package/dist/{coordinator-prompt-FQC2SZPP.js → coordinator-prompt-X74F3JIC.js} +3 -3
- package/dist/{global-workspace-72K6D354.js → global-workspace-FTNJEML3.js} +3 -3
- package/dist/index.cjs +301 -79
- package/dist/index.d.cts +29 -9
- package/dist/index.d.ts +29 -9
- package/dist/index.js +72 -27
- package/dist/mcp/run-stdio.cjs +240 -63
- package/dist/mcp/run-stdio.js +4 -4
- package/dist/{optional-cli-LMSRZNH4.js → optional-cli-6GGESWGE.js} +4 -4
- package/dist/{orchestrator-N54V3B76.js → orchestrator-H3DSZ5RM.js} +1 -1
- package/dist/{orchestrator-E72HYGTB.js → orchestrator-NCA4LSCC.js} +8 -8
- package/dist/{workspaces-GAUHXBUL.js → workspaces-MGKEAYNM.js} +3 -3
- package/dist/{worktree-6FUQ7FEF.js → worktree-THAXW5U7.js} +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -122,6 +122,7 @@ import {
|
|
|
122
122
|
issueMatchesUpdatedSince,
|
|
123
123
|
issueNeedsWorkspacePick,
|
|
124
124
|
issueTicketFromThread,
|
|
125
|
+
joinSteerPrompt,
|
|
125
126
|
lastAgentReply,
|
|
126
127
|
latestVisibleMessageText,
|
|
127
128
|
linearTicketIdFromThread,
|
|
@@ -131,6 +132,7 @@ import {
|
|
|
131
132
|
listLinearIssues,
|
|
132
133
|
listSchedules,
|
|
133
134
|
listWorktreeFiles,
|
|
135
|
+
livePartsShowAgentReply,
|
|
134
136
|
localhostPreviewUrl,
|
|
135
137
|
markdownPreviewSource,
|
|
136
138
|
mcpIssueUpdatedSinceSchema,
|
|
@@ -194,6 +196,7 @@ import {
|
|
|
194
196
|
syncBoardPins,
|
|
195
197
|
takePendingTurnAttachments,
|
|
196
198
|
thisProcessShouldDrainAgentQueues,
|
|
199
|
+
trailingUnansweredUserText,
|
|
197
200
|
updateSchedule,
|
|
198
201
|
visibleAgentBlock,
|
|
199
202
|
waitForPidExit,
|
|
@@ -203,7 +206,7 @@ import {
|
|
|
203
206
|
worktreeCleanupSettings,
|
|
204
207
|
writeAgentBlock,
|
|
205
208
|
writeWorktreeFile
|
|
206
|
-
} from "./chunk-
|
|
209
|
+
} from "./chunk-U2N32EA6.js";
|
|
207
210
|
import {
|
|
208
211
|
LEGACY_PLAN_FILE_REL,
|
|
209
212
|
PLAN_FILE_NAME,
|
|
@@ -293,7 +296,7 @@ import {
|
|
|
293
296
|
userMcpNamesToDisable,
|
|
294
297
|
worktreeMcpToolNames,
|
|
295
298
|
writeInjectedMcpConfig
|
|
296
|
-
} from "./chunk-
|
|
299
|
+
} from "./chunk-IAPO7ZFG.js";
|
|
297
300
|
import {
|
|
298
301
|
brightsyMcpServerName,
|
|
299
302
|
connectBrightsyTeam,
|
|
@@ -424,7 +427,7 @@ import {
|
|
|
424
427
|
workspaceAgentChatSummaries,
|
|
425
428
|
worktreeRunPortsPath,
|
|
426
429
|
wrapReviewSkillMarkdown
|
|
427
|
-
} from "./chunk-
|
|
430
|
+
} from "./chunk-ST2UQBJT.js";
|
|
428
431
|
import {
|
|
429
432
|
STDERR_EVENT_MAX_CHARS,
|
|
430
433
|
STDOUT_EVENT_MAX_CHARS,
|
|
@@ -490,9 +493,10 @@ import {
|
|
|
490
493
|
parseAbleTimeOAuthCallbackUrl,
|
|
491
494
|
resolveAbleTimeOAuthHost,
|
|
492
495
|
startAbleTimeOAuth
|
|
493
|
-
} from "./chunk-
|
|
496
|
+
} from "./chunk-5OM7UCTQ.js";
|
|
494
497
|
import {
|
|
495
498
|
ableTimeDependencyTarget,
|
|
499
|
+
ableTimeStateIsClosed,
|
|
496
500
|
commentAbleTimeTask,
|
|
497
501
|
createAbleTimeTask,
|
|
498
502
|
downloadAbleTimeAttachment,
|
|
@@ -515,10 +519,10 @@ import {
|
|
|
515
519
|
toAbleTimeIssueInfo,
|
|
516
520
|
updateAbleTimeTask,
|
|
517
521
|
verifyAbleTimeConnection
|
|
518
|
-
} from "./chunk-
|
|
522
|
+
} from "./chunk-WLZHRNE6.js";
|
|
519
523
|
import {
|
|
520
524
|
looksLikeAbleTimeUlid
|
|
521
|
-
} from "./chunk-
|
|
525
|
+
} from "./chunk-AUJ4XB6H.js";
|
|
522
526
|
import {
|
|
523
527
|
ABLETIME_MCP_PATH,
|
|
524
528
|
ABLETIME_MCP_PM_PATH,
|
|
@@ -539,13 +543,13 @@ import {
|
|
|
539
543
|
normalizeAbleTimeCredential,
|
|
540
544
|
normalizeAbleTimeHost,
|
|
541
545
|
rewriteAbleTimeError
|
|
542
|
-
} from "./chunk-
|
|
546
|
+
} from "./chunk-LXBZQP2Q.js";
|
|
543
547
|
import {
|
|
544
548
|
clearOptionalCliPresenceCache,
|
|
545
549
|
detectOptionalServiceClis,
|
|
546
550
|
installOptionalServiceCli,
|
|
547
551
|
optionalCliPresence
|
|
548
|
-
} from "./chunk-
|
|
552
|
+
} from "./chunk-AZ4GEEGL.js";
|
|
549
553
|
import {
|
|
550
554
|
OPTIONAL_SERVICES,
|
|
551
555
|
OPTIONAL_SERVICE_IDS,
|
|
@@ -561,7 +565,7 @@ import {
|
|
|
561
565
|
optionalServiceConnected,
|
|
562
566
|
optionalServiceSpec,
|
|
563
567
|
verifyOptionalService
|
|
564
|
-
} from "./chunk-
|
|
568
|
+
} from "./chunk-FDXHNROD.js";
|
|
565
569
|
import {
|
|
566
570
|
getAgentSetupInfo,
|
|
567
571
|
installAgent,
|
|
@@ -573,7 +577,7 @@ import {
|
|
|
573
577
|
prepareTerminalCommand,
|
|
574
578
|
resolveLoginCommand,
|
|
575
579
|
whichOnPath
|
|
576
|
-
} from "./chunk-
|
|
580
|
+
} from "./chunk-AESO2KJS.js";
|
|
577
581
|
import {
|
|
578
582
|
CLOUD_COORDINATOR_BUSY_REPLY,
|
|
579
583
|
CLOUD_COORDINATOR_CANCELED_REPLY,
|
|
@@ -626,7 +630,7 @@ import {
|
|
|
626
630
|
stageBuffersAsAttachments,
|
|
627
631
|
syncWorkspacesFromThreads,
|
|
628
632
|
takenTeamSlugsForOrchestration
|
|
629
|
-
} from "./chunk-
|
|
633
|
+
} from "./chunk-YALFZKSC.js";
|
|
630
634
|
import {
|
|
631
635
|
GITHUB_PR_BODY_MAX_CHARS,
|
|
632
636
|
GITHUB_PR_BODY_SAFE_CHARS,
|
|
@@ -714,7 +718,7 @@ import {
|
|
|
714
718
|
suggestSlug,
|
|
715
719
|
switchWorktreeBranch,
|
|
716
720
|
warmGithubAgentAuth
|
|
717
|
-
} from "./chunk-
|
|
721
|
+
} from "./chunk-TUJFCJJU.js";
|
|
718
722
|
import {
|
|
719
723
|
FAMOUS_SOCCER_TEAMS,
|
|
720
724
|
allocateTeamName,
|
|
@@ -1013,7 +1017,7 @@ import {
|
|
|
1013
1017
|
withTurnScopedCost,
|
|
1014
1018
|
writeSecureJson,
|
|
1015
1019
|
writeViewerContext
|
|
1016
|
-
} from "./chunk-
|
|
1020
|
+
} from "./chunk-E52SQENB.js";
|
|
1017
1021
|
import {
|
|
1018
1022
|
THINKING_EFFORTS,
|
|
1019
1023
|
isThinkingEffort,
|
|
@@ -1205,8 +1209,11 @@ var DirectionalSeal = class {
|
|
|
1205
1209
|
recvCounter = 0;
|
|
1206
1210
|
transcript = "";
|
|
1207
1211
|
sendDirection;
|
|
1212
|
+
matchesClientNonce(clientNonce) {
|
|
1213
|
+
return clientNonce === this.hello.clientNonce;
|
|
1214
|
+
}
|
|
1208
1215
|
acceptReady(ready, desktopNonceBytes) {
|
|
1209
|
-
if (ready.v !== 1 ||
|
|
1216
|
+
if (ready.v !== 1 || !this.matchesClientNonce(ready.clientNonce)) return false;
|
|
1210
1217
|
const desktopNonce = desktopNonceBytes ?? b64urlToBytes(ready.desktopNonce);
|
|
1211
1218
|
if (desktopNonce.length !== NONCE_BYTES) return false;
|
|
1212
1219
|
let shared;
|
|
@@ -6392,6 +6399,7 @@ function runRemoteHost(opts) {
|
|
|
6392
6399
|
clientNonce: msg.clientNonce
|
|
6393
6400
|
});
|
|
6394
6401
|
if (ready) send3({ type: "e2ee_ready", ...ready });
|
|
6402
|
+
else send3({ type: "e2ee_fail" });
|
|
6395
6403
|
return;
|
|
6396
6404
|
}
|
|
6397
6405
|
if (msg.type === "e2ee") {
|
|
@@ -6404,8 +6412,13 @@ function runRemoteHost(opts) {
|
|
|
6404
6412
|
}
|
|
6405
6413
|
if (opened.okFrame) {
|
|
6406
6414
|
send3({ type: "e2ee", frame: opened.okFrame });
|
|
6407
|
-
|
|
6415
|
+
try {
|
|
6416
|
+
startBoardSync();
|
|
6417
|
+
} catch (err) {
|
|
6418
|
+
log(`remote error: ${err instanceof Error ? err.message : err}`);
|
|
6419
|
+
}
|
|
6408
6420
|
opts.onPairingCode?.(null);
|
|
6421
|
+
send3({ type: "pairing_done" });
|
|
6409
6422
|
opts.onStatus?.({ connected: true, phoneConnected: true });
|
|
6410
6423
|
log("phone joined");
|
|
6411
6424
|
return;
|
|
@@ -7487,6 +7500,10 @@ var RemoteHub = class {
|
|
|
7487
7500
|
this.issueCode(socket);
|
|
7488
7501
|
return;
|
|
7489
7502
|
}
|
|
7503
|
+
if (msg.type === "pairing_done") {
|
|
7504
|
+
this.finishPairing(socket);
|
|
7505
|
+
return;
|
|
7506
|
+
}
|
|
7490
7507
|
if (msg.type === "pair") {
|
|
7491
7508
|
this.pairPhone(socket, msg.code);
|
|
7492
7509
|
return;
|
|
@@ -7566,7 +7583,8 @@ var RemoteHub = class {
|
|
|
7566
7583
|
hostSecret,
|
|
7567
7584
|
socket,
|
|
7568
7585
|
sessionToken,
|
|
7569
|
-
phone: existing?.socket === socket ? existing.phone : null
|
|
7586
|
+
phone: existing?.socket === socket ? existing.phone : null,
|
|
7587
|
+
pairingCode: existing && existing.socket === socket ? existing.pairingCode : null
|
|
7570
7588
|
};
|
|
7571
7589
|
this.hosts.set(deviceId, host);
|
|
7572
7590
|
this.remembered.set(deviceId, { hostSecret, sessionToken, deviceLabel });
|
|
@@ -7602,8 +7620,15 @@ var RemoteHub = class {
|
|
|
7602
7620
|
send(socket, { type: "error", message: "Mac is offline" });
|
|
7603
7621
|
return;
|
|
7604
7622
|
}
|
|
7605
|
-
this.
|
|
7606
|
-
|
|
7623
|
+
this.attachPhone(socket, host, void 0, code);
|
|
7624
|
+
}
|
|
7625
|
+
/** The Mac accepted the phone. That QR must not replace the saved session. */
|
|
7626
|
+
finishPairing(socket) {
|
|
7627
|
+
const bound = this.bySocket.get(socket);
|
|
7628
|
+
const host = bound?.role === "host" ? this.hosts.get(bound.deviceId) : null;
|
|
7629
|
+
if (!host || host.socket !== socket) return;
|
|
7630
|
+
if (host.pairingCode) this.codes.delete(host.pairingCode);
|
|
7631
|
+
host.pairingCode = null;
|
|
7607
7632
|
}
|
|
7608
7633
|
/** In-memory session, with the live Mac's label when that socket is up. */
|
|
7609
7634
|
memorySession(sessionToken) {
|
|
@@ -7676,7 +7701,7 @@ var RemoteHub = class {
|
|
|
7676
7701
|
send(prev.socket, { type: "phone_left" });
|
|
7677
7702
|
}
|
|
7678
7703
|
}
|
|
7679
|
-
attachPhone(socket, host, sessionToken) {
|
|
7704
|
+
attachPhone(socket, host, sessionToken, pairingCode) {
|
|
7680
7705
|
const bound = this.bySocket.get(socket);
|
|
7681
7706
|
if (bound?.role === "phone" && bound.deviceId !== host.deviceId) {
|
|
7682
7707
|
this.releasePhoneSocket(socket);
|
|
@@ -7697,6 +7722,7 @@ var RemoteHub = class {
|
|
|
7697
7722
|
}
|
|
7698
7723
|
host.sessionToken = token;
|
|
7699
7724
|
host.phone = socket;
|
|
7725
|
+
if (pairingCode) host.pairingCode = pairingCode;
|
|
7700
7726
|
this.phonesByToken.set(token, { deviceId: host.deviceId, deviceLabel: host.deviceLabel });
|
|
7701
7727
|
this.remembered.set(host.deviceId, {
|
|
7702
7728
|
hostSecret: host.hostSecret,
|
|
@@ -8731,7 +8757,7 @@ async function startHeadlessHost(opts) {
|
|
|
8731
8757
|
};
|
|
8732
8758
|
const refreshRunning = async () => {
|
|
8733
8759
|
try {
|
|
8734
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
8760
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-NCA4LSCC.js");
|
|
8735
8761
|
agentsRunning = getOrchestrator2().getRuntime().running;
|
|
8736
8762
|
} catch {
|
|
8737
8763
|
agentsRunning = 0;
|
|
@@ -10664,7 +10690,7 @@ async function handleJobStop(params, _ctx) {
|
|
|
10664
10690
|
return stopDetachedJob(jobCwd(rec), id, reason ? { reason } : void 0);
|
|
10665
10691
|
}
|
|
10666
10692
|
async function defaultTurnWait(ref, timeoutMs) {
|
|
10667
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
10693
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-NCA4LSCC.js");
|
|
10668
10694
|
const orch = getOrchestrator2();
|
|
10669
10695
|
const thread = await orch.waitForTurn(ref, timeoutMs, {
|
|
10670
10696
|
resolveIfStillRunning: true
|
|
@@ -11017,7 +11043,7 @@ async function startMcpServer() {
|
|
|
11017
11043
|
);
|
|
11018
11044
|
}
|
|
11019
11045
|
try {
|
|
11020
|
-
const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-
|
|
11046
|
+
const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-V6YPYY57.js");
|
|
11021
11047
|
orch.setMaxConcurrent(maxConcurrentAgents2());
|
|
11022
11048
|
} catch {
|
|
11023
11049
|
}
|
|
@@ -11565,7 +11591,7 @@ async function startMcpServer() {
|
|
|
11565
11591
|
if (!worktreeProfile) {
|
|
11566
11592
|
registerConnectedIssueVendorTools(server);
|
|
11567
11593
|
const { getCaffeinateHold: getCaffeinateHold2, setCaffeinateHold: setCaffeinateHold2 } = await import("./caffeinate-hold-ZNUEZGHB.js");
|
|
11568
|
-
const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-
|
|
11594
|
+
const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-V6YPYY57.js");
|
|
11569
11595
|
const accountDefaults = resolveThreadDefaults2();
|
|
11570
11596
|
const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
|
|
11571
11597
|
server.tool(
|
|
@@ -12449,6 +12475,9 @@ function firstRecord(record, keys) {
|
|
|
12449
12475
|
}
|
|
12450
12476
|
return null;
|
|
12451
12477
|
}
|
|
12478
|
+
function taskState(record) {
|
|
12479
|
+
return firstString(record, ["state", "board_state", "boardState", "status", "taskState"]);
|
|
12480
|
+
}
|
|
12452
12481
|
function identifierFromUnknown(value) {
|
|
12453
12482
|
if (typeof value === "string" || typeof value === "number") {
|
|
12454
12483
|
const id2 = String(value).trim();
|
|
@@ -12460,6 +12489,7 @@ function identifierFromUnknown(value) {
|
|
|
12460
12489
|
for (const key of ["nodes", "data", "tasks", "items"]) {
|
|
12461
12490
|
if (Array.isArray(rec[key])) return identifierFromUnknown(rec[key]);
|
|
12462
12491
|
}
|
|
12492
|
+
if (ableTimeStateIsClosed(taskState(rec))) return [];
|
|
12463
12493
|
const id = firstString(rec, ["identifier", "reference", "ref", "key", "code", "number", "id"]);
|
|
12464
12494
|
return id ? [id] : [];
|
|
12465
12495
|
}
|
|
@@ -12494,6 +12524,8 @@ async function getAbleTimeIssueBlockedBy(id, opts) {
|
|
|
12494
12524
|
continue;
|
|
12495
12525
|
}
|
|
12496
12526
|
const parent = await callAbleTimeTool("get_task", { id: blockerId, task_id: blockerId }, opts);
|
|
12527
|
+
const parentRecord = firstRecord(asRecord4(parent), ["task", "data"]) ?? asRecord4(parent);
|
|
12528
|
+
if (ableTimeStateIsClosed(taskState(parentRecord))) continue;
|
|
12497
12529
|
const ref = taskReference(parent);
|
|
12498
12530
|
if (!ref || looksLikeAbleTimeUlid(ref)) {
|
|
12499
12531
|
throw new Error(`AbleTime blocker has no reference: ${blockerId}`);
|
|
@@ -12517,6 +12549,8 @@ function githubBlockedByIdentifiers(payload) {
|
|
|
12517
12549
|
const rec = node && typeof node === "object" && !Array.isArray(node) ? node : null;
|
|
12518
12550
|
const number = Number(rec?.number ?? node);
|
|
12519
12551
|
if (!Number.isFinite(number) || number <= 0) continue;
|
|
12552
|
+
const state = String(rec?.state ?? "").trim().toUpperCase();
|
|
12553
|
+
if (state === "CLOSED") continue;
|
|
12520
12554
|
const id = `#${number}`;
|
|
12521
12555
|
const key = id.toLowerCase();
|
|
12522
12556
|
if (seen.has(key)) continue;
|
|
@@ -12529,7 +12563,7 @@ var GITHUB_BLOCKED_BY_QUERY = `
|
|
|
12529
12563
|
query($owner: String!, $name: String!, $number: Int!) {
|
|
12530
12564
|
repository(owner: $owner, name: $name) {
|
|
12531
12565
|
issue(number: $number) {
|
|
12532
|
-
blockedBy(first: 25) { nodes { number } }
|
|
12566
|
+
blockedBy(first: 25) { nodes { number state } }
|
|
12533
12567
|
}
|
|
12534
12568
|
}
|
|
12535
12569
|
}
|
|
@@ -12577,15 +12611,21 @@ async function getGitHubIssueBlockedBy(id, opts) {
|
|
|
12577
12611
|
}
|
|
12578
12612
|
|
|
12579
12613
|
// src/integrations/linear-blocked.ts
|
|
12614
|
+
var RESOLVED_LINEAR_STATE = /* @__PURE__ */ new Set(["completed", "canceled", "cancelled", "duplicate"]);
|
|
12615
|
+
function linearBlockerStillBlocks(issue) {
|
|
12616
|
+
const type = (issue?.state?.type ?? "").trim().toLowerCase();
|
|
12617
|
+
if (!type) return true;
|
|
12618
|
+
return !RESOLVED_LINEAR_STATE.has(type);
|
|
12619
|
+
}
|
|
12580
12620
|
var ISSUE_BLOCKED_BY_QUERY = `
|
|
12581
12621
|
query SideboardIssueBlockedBy($id: String!) {
|
|
12582
12622
|
issue(id: $id) {
|
|
12583
12623
|
identifier
|
|
12584
12624
|
relations(first: 25) {
|
|
12585
|
-
nodes { id type relatedIssue { id identifier } }
|
|
12625
|
+
nodes { id type relatedIssue { id identifier state { type } } }
|
|
12586
12626
|
}
|
|
12587
12627
|
inverseRelations(first: 25) {
|
|
12588
|
-
nodes { id type issue { id identifier } }
|
|
12628
|
+
nodes { id type issue { id identifier state { type } } }
|
|
12589
12629
|
}
|
|
12590
12630
|
}
|
|
12591
12631
|
}
|
|
@@ -12596,6 +12636,7 @@ function linearBlockedByIdentifiers(relations) {
|
|
|
12596
12636
|
for (const rel of relations) {
|
|
12597
12637
|
const type = (rel.type ?? "").trim().toLowerCase().replace(/[\s_-]+/g, "");
|
|
12598
12638
|
if (type !== "blockedby" && type !== "blocked") continue;
|
|
12639
|
+
if (!linearBlockerStillBlocks(rel.issue)) continue;
|
|
12599
12640
|
const id = (rel.issue?.identifier || rel.issue?.id || "").trim();
|
|
12600
12641
|
const key = id.toLowerCase();
|
|
12601
12642
|
if (!id || seen.has(key)) continue;
|
|
@@ -14317,7 +14358,7 @@ async function continueSourceThread(threadId, prompt) {
|
|
|
14317
14358
|
await continueOnReply(threadId, prompt);
|
|
14318
14359
|
return;
|
|
14319
14360
|
}
|
|
14320
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
14361
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-NCA4LSCC.js");
|
|
14321
14362
|
await getOrchestrator2().send(threadId, prompt);
|
|
14322
14363
|
} catch {
|
|
14323
14364
|
}
|
|
@@ -14733,6 +14774,7 @@ export {
|
|
|
14733
14774
|
ableTimeOAuthLocalBounceUrl,
|
|
14734
14775
|
ableTimeOAuthRedirectUri,
|
|
14735
14776
|
ableTimeOAuthResource,
|
|
14777
|
+
ableTimeStateIsClosed,
|
|
14736
14778
|
ableTimeUsesRest,
|
|
14737
14779
|
abletimeMcpRequest,
|
|
14738
14780
|
abletimeMcpUrl,
|
|
@@ -15215,6 +15257,7 @@ export {
|
|
|
15215
15257
|
issueMatchesAssignee,
|
|
15216
15258
|
issueSourceLabel,
|
|
15217
15259
|
issueTicketFromThread,
|
|
15260
|
+
joinSteerPrompt,
|
|
15218
15261
|
killDetachedRunTree,
|
|
15219
15262
|
killListenersOnPorts,
|
|
15220
15263
|
killStaleWorktreeListeners,
|
|
@@ -15273,6 +15316,7 @@ export {
|
|
|
15273
15316
|
listWorktrees,
|
|
15274
15317
|
listenerCwd,
|
|
15275
15318
|
liveActivitySummary,
|
|
15319
|
+
livePartsShowAgentReply,
|
|
15276
15320
|
loadAppSettings,
|
|
15277
15321
|
loadBrightsyConfig,
|
|
15278
15322
|
loadConductorSettings,
|
|
@@ -15610,6 +15654,7 @@ export {
|
|
|
15610
15654
|
toolDetail,
|
|
15611
15655
|
toolFilePath,
|
|
15612
15656
|
totalTokens,
|
|
15657
|
+
trailingUnansweredUserText,
|
|
15613
15658
|
trustSystemCertificates,
|
|
15614
15659
|
tryReservePort,
|
|
15615
15660
|
tryReservePorts,
|