@sideboard-ai/core 0.1.318 → 0.1.320
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-TKAFNXCM.js → abletime-CRRLEYTE.js} +6 -4
- package/dist/{abletime-KWOBUL46.js → abletime-ICW6Q2AB.js} +6 -4
- package/dist/{abletime-oauth-S4AXA4WR.js → abletime-oauth-P3KPPJE4.js} +3 -3
- package/dist/{abletime-oauth-IUIAGLFJ.js → abletime-oauth-Q76XBSPG.js} +3 -3
- package/dist/{abletime-rest-RWN4EPY3.js → abletime-rest-DNFAYYLP.js} +3 -3
- package/dist/{abletime-rest-ORBELZQO.js → abletime-rest-DQ3PNKXP.js} +3 -3
- package/dist/{agents-KABJUDPI.js → agents-CJZYJOWP.js} +7 -7
- package/dist/{agents-2AR7I6B6.js → agents-F2E2HACB.js} +7 -7
- package/dist/{app-settings-CZVFMOI5.js → app-settings-KMPVI2B7.js} +1 -1
- package/dist/{app-settings-V6YPYY57.js → app-settings-P3H4SEIK.js} +1 -1
- package/dist/{chunk-YEIHCSZS.js → chunk-4GZC6DDH.js} +2 -0
- package/dist/{chunk-XOZNEAWF.js → chunk-56M6VEXI.js} +3 -3
- package/dist/{chunk-7SCVGGF6.js → chunk-5OQONGHO.js} +5 -5
- package/dist/{chunk-A6C67DY5.js → chunk-5S3YP5KH.js} +4 -4
- package/dist/{chunk-I5CLCWUK.js → chunk-72PUPPV2.js} +9 -5
- package/dist/{chunk-BXTISNKW.js → chunk-B7UL36WH.js} +428 -99
- package/dist/{chunk-W5QZWAUB.js → chunk-BTIXTH4N.js} +9 -5
- package/dist/{chunk-AESO2KJS.js → chunk-CB5Z5C3J.js} +2 -2
- package/dist/{chunk-2HOZMSKQ.js → chunk-DFUXW2IT.js} +2 -2
- package/dist/{chunk-ST2UQBJT.js → chunk-DJZRDTZY.js} +6 -6
- package/dist/{chunk-TUJFCJJU.js → chunk-EDXTP2VR.js} +2 -2
- package/dist/{chunk-I5TESHDN.js → chunk-EQ52JR3Q.js} +5 -5
- package/dist/{chunk-FDXHNROD.js → chunk-EQ5JY3MJ.js} +2 -2
- package/dist/{chunk-E52SQENB.js → chunk-FZKAAAEB.js} +3 -1
- package/dist/{chunk-VZAJVX36.js → chunk-HHPTGIKS.js} +2 -2
- package/dist/{chunk-23ZUL2EX.js → chunk-IDPFLXRY.js} +429 -100
- package/dist/{chunk-GCHSJCCX.js → chunk-IFU4W4C4.js} +3 -1
- package/dist/{chunk-IAPO7ZFG.js → chunk-LLIEU2ZB.js} +5 -5
- package/dist/{chunk-MBYGWNLQ.js → chunk-OAFBHCSM.js} +1 -1
- package/dist/{chunk-NRSC4N5X.js → chunk-P74GXA5V.js} +6 -6
- package/dist/{chunk-A46CIARU.js → chunk-PNLGWAYE.js} +2 -2
- package/dist/{chunk-53OCOGND.js → chunk-QGY3UNNL.js} +2 -2
- package/dist/{chunk-7Q327QF2.js → chunk-QIC2JXHW.js} +5 -5
- package/dist/{chunk-YALFZKSC.js → chunk-RHJPP26T.js} +11 -11
- package/dist/{chunk-AZ4GEEGL.js → chunk-UK2KESBN.js} +2 -2
- package/dist/{chunk-7ADEYEMH.js → chunk-V76MQ7MH.js} +5 -5
- package/dist/{chunk-HOLB6ZFZ.js → chunk-XMHMVEIY.js} +2 -0
- package/dist/{chunk-GH7UMULC.js → chunk-ZYZBCLJR.js} +6 -6
- package/dist/{conductor-MG2RAQNT.js → conductor-FPFY6Z5S.js} +6 -6
- package/dist/{conductor-NIUBJLTS.js → conductor-JA5W3L7C.js} +6 -6
- package/dist/{coordinator-prompt-3CT3D5UM.js → coordinator-prompt-M75TAN43.js} +4 -4
- package/dist/{coordinator-prompt-X74F3JIC.js → coordinator-prompt-NUC2ZXMJ.js} +4 -4
- package/dist/{global-workspace-BUWMRNW5.js → global-workspace-5A4H34AF.js} +4 -4
- package/dist/{global-workspace-FTNJEML3.js → global-workspace-SCLQUNUI.js} +4 -4
- package/dist/index.cjs +861 -475
- package/dist/index.d.cts +56 -13
- package/dist/index.d.ts +56 -13
- package/dist/index.js +54 -31
- package/dist/mcp/run-stdio.cjs +459 -95
- package/dist/mcp/run-stdio.js +23 -23
- package/dist/{optional-cli-EMSZBYDE.js → optional-cli-2V3SLME5.js} +3 -3
- package/dist/{optional-cli-6GGESWGE.js → optional-cli-MRNQKVIR.js} +4 -4
- package/dist/{orchestrator-N54V3B76.js → orchestrator-7BDZ5GWD.js} +10 -10
- package/dist/{orchestrator-2SXK4U65.js → orchestrator-NPFWU3XU.js} +10 -10
- package/dist/{thread-store-PLNIWFZ4.js → thread-store-JWHVXLDX.js} +1 -1
- package/dist/{thread-store-7BBA63KV.js → thread-store-QHYN2ZMQ.js} +1 -1
- package/dist/{workspaces-2V5UYPYC.js → workspaces-5QA3YM4L.js} +4 -4
- package/dist/{workspaces-MGKEAYNM.js → workspaces-KWMBOTQD.js} +4 -4
- package/dist/{worktree-THAXW5U7.js → worktree-7EATHVYQ.js} +3 -3
- package/dist/{worktree-XJKLDYOL.js → worktree-O6BANO2I.js} +3 -3
- 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-IDPFLXRY.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-LLIEU2ZB.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-DJZRDTZY.js";
|
|
428
431
|
import {
|
|
429
432
|
STDERR_EVENT_MAX_CHARS,
|
|
430
433
|
STDOUT_EVENT_MAX_CHARS,
|
|
@@ -466,7 +469,7 @@ import {
|
|
|
466
469
|
visibleToolRowDetail,
|
|
467
470
|
withEventParentId,
|
|
468
471
|
withEventsParentId
|
|
469
|
-
} from "./chunk-
|
|
472
|
+
} from "./chunk-QIC2JXHW.js";
|
|
470
473
|
import "./chunk-7H655NEW.js";
|
|
471
474
|
import {
|
|
472
475
|
ABLETIME_OAUTH_CALLBACK_PATH,
|
|
@@ -490,9 +493,10 @@ import {
|
|
|
490
493
|
parseAbleTimeOAuthCallbackUrl,
|
|
491
494
|
resolveAbleTimeOAuthHost,
|
|
492
495
|
startAbleTimeOAuth
|
|
493
|
-
} from "./chunk-
|
|
496
|
+
} from "./chunk-56M6VEXI.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-BTIXTH4N.js";
|
|
519
523
|
import {
|
|
520
524
|
looksLikeAbleTimeUlid
|
|
521
|
-
} from "./chunk-
|
|
525
|
+
} from "./chunk-DFUXW2IT.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-V76MQ7MH.js";
|
|
543
547
|
import {
|
|
544
548
|
clearOptionalCliPresenceCache,
|
|
545
549
|
detectOptionalServiceClis,
|
|
546
550
|
installOptionalServiceCli,
|
|
547
551
|
optionalCliPresence
|
|
548
|
-
} from "./chunk-
|
|
552
|
+
} from "./chunk-UK2KESBN.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-EQ5JY3MJ.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-CB5Z5C3J.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-RHJPP26T.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-EDXTP2VR.js";
|
|
718
722
|
import {
|
|
719
723
|
FAMOUS_SOCCER_TEAMS,
|
|
720
724
|
allocateTeamName,
|
|
@@ -748,7 +752,7 @@ import {
|
|
|
748
752
|
worktreeNameFromPath,
|
|
749
753
|
worktreeSlugForTicket,
|
|
750
754
|
writeThread
|
|
751
|
-
} from "./chunk-
|
|
755
|
+
} from "./chunk-4GZC6DDH.js";
|
|
752
756
|
import "./chunk-2P4XKWV2.js";
|
|
753
757
|
import {
|
|
754
758
|
BRIGHTSY_OAUTH_CLIENT_ID,
|
|
@@ -1013,7 +1017,7 @@ import {
|
|
|
1013
1017
|
withTurnScopedCost,
|
|
1014
1018
|
writeSecureJson,
|
|
1015
1019
|
writeViewerContext
|
|
1016
|
-
} from "./chunk-
|
|
1020
|
+
} from "./chunk-FZKAAAEB.js";
|
|
1017
1021
|
import {
|
|
1018
1022
|
THINKING_EFFORTS,
|
|
1019
1023
|
isThinkingEffort,
|
|
@@ -8753,7 +8757,7 @@ async function startHeadlessHost(opts) {
|
|
|
8753
8757
|
};
|
|
8754
8758
|
const refreshRunning = async () => {
|
|
8755
8759
|
try {
|
|
8756
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
8760
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-NPFWU3XU.js");
|
|
8757
8761
|
agentsRunning = getOrchestrator2().getRuntime().running;
|
|
8758
8762
|
} catch {
|
|
8759
8763
|
agentsRunning = 0;
|
|
@@ -10375,7 +10379,7 @@ function parseWhen(args) {
|
|
|
10375
10379
|
function registerScheduleTools(server) {
|
|
10376
10380
|
server.tool(
|
|
10377
10381
|
"list_schedules",
|
|
10378
|
-
"List local Sideboard
|
|
10382
|
+
"List local Sideboard automations that trigger a chat when due. Jobs fire only while Sideboard.app is running on this Mac (sleep skips until wake). Shown in the sidebar after Board.",
|
|
10379
10383
|
{},
|
|
10380
10384
|
async () => {
|
|
10381
10385
|
try {
|
|
@@ -10387,9 +10391,9 @@ function registerScheduleTools(server) {
|
|
|
10387
10391
|
);
|
|
10388
10392
|
server.tool(
|
|
10389
10393
|
"create_schedule",
|
|
10390
|
-
"Create a local
|
|
10394
|
+
"Create a local automation that, when due, sends a prompt to an existing chat (chatId) or starts a new Global orchestration chat (omit chatId). Pass chatId=self to continue this chat. If that chat is missing or archived when the job fires, Sideboard starts a new Global chat (recurring jobs then continue that chat). Exactly one of at (ISO datetime), every (15m/1h/6h/1d), or cron (5-field). Recurring jobs without chatId open a new Global chat each run and archive it when that run finishes. History keeps the latest run for that automation. Creating or enabling a future job turns on Settings \u2192 Advanced \u2192 Caffeinate while automations are enabled so the Mac stays awake until due. Sideboard.app must be running for the job to fire.",
|
|
10391
10395
|
{
|
|
10392
|
-
prompt: z7.string().describe("User message / goal queued when the
|
|
10396
|
+
prompt: z7.string().describe("User message / goal queued when the automation fires"),
|
|
10393
10397
|
name: z7.string().optional(),
|
|
10394
10398
|
at: z7.string().optional().describe("ISO datetime for a one-shot"),
|
|
10395
10399
|
every: z7.string().optional().describe("Interval such as 15m, 1h, 6h, 1d"),
|
|
@@ -10425,7 +10429,7 @@ function registerScheduleTools(server) {
|
|
|
10425
10429
|
});
|
|
10426
10430
|
return text4({
|
|
10427
10431
|
schedule,
|
|
10428
|
-
hint: scheduleNeedsCaffeinate(schedule) ? "Fires while Sideboard.app is running. Recurring jobs without chatId create a new orchestration chat each run. Caffeinate while
|
|
10432
|
+
hint: scheduleNeedsCaffeinate(schedule) ? "Fires while Sideboard.app is running. Recurring jobs without chatId create a new orchestration chat each run and archive it when that run finishes (History keeps the latest). Caffeinate while automations are enabled is now on so the Mac can stay awake until this job is due." : "Fires while Sideboard.app is running. Recurring jobs without chatId create a new orchestration chat each run and archive it when that run finishes (History keeps the latest)."
|
|
10429
10433
|
});
|
|
10430
10434
|
} catch (err) {
|
|
10431
10435
|
return fail4(err);
|
|
@@ -10434,7 +10438,7 @@ function registerScheduleTools(server) {
|
|
|
10434
10438
|
);
|
|
10435
10439
|
server.tool(
|
|
10436
10440
|
"update_schedule",
|
|
10437
|
-
"Update a local
|
|
10441
|
+
"Update a local automation (prompt, cadence, target chat, enabled). Pass id from list_schedules.",
|
|
10438
10442
|
{
|
|
10439
10443
|
id: z7.string(),
|
|
10440
10444
|
prompt: z7.string().optional(),
|
|
@@ -10489,7 +10493,7 @@ function registerScheduleTools(server) {
|
|
|
10489
10493
|
);
|
|
10490
10494
|
server.tool(
|
|
10491
10495
|
"delete_schedule",
|
|
10492
|
-
"Delete a local
|
|
10496
|
+
"Delete a local automation. Pass id from list_schedules.",
|
|
10493
10497
|
{ id: z7.string() },
|
|
10494
10498
|
async ({ id }) => {
|
|
10495
10499
|
try {
|
|
@@ -10502,12 +10506,12 @@ function registerScheduleTools(server) {
|
|
|
10502
10506
|
);
|
|
10503
10507
|
server.tool(
|
|
10504
10508
|
"run_schedule",
|
|
10505
|
-
"Fire
|
|
10509
|
+
"Fire an automation now (does not wait for nextRunAt). Queues the prompt on the target chat or starts a new Global chat. If Sideboard.app is running, the desktop drains the turn.",
|
|
10506
10510
|
{ id: z7.string() },
|
|
10507
10511
|
async ({ id }) => {
|
|
10508
10512
|
try {
|
|
10509
10513
|
if (!getSchedule(id)) {
|
|
10510
|
-
return fail4(new Error(`
|
|
10514
|
+
return fail4(new Error(`Automation not found: ${id}`));
|
|
10511
10515
|
}
|
|
10512
10516
|
const schedule = await fireSchedule(id);
|
|
10513
10517
|
return text4({ schedule });
|
|
@@ -10686,7 +10690,7 @@ async function handleJobStop(params, _ctx) {
|
|
|
10686
10690
|
return stopDetachedJob(jobCwd(rec), id, reason ? { reason } : void 0);
|
|
10687
10691
|
}
|
|
10688
10692
|
async function defaultTurnWait(ref, timeoutMs) {
|
|
10689
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
10693
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-NPFWU3XU.js");
|
|
10690
10694
|
const orch = getOrchestrator2();
|
|
10691
10695
|
const thread = await orch.waitForTurn(ref, timeoutMs, {
|
|
10692
10696
|
resolveIfStillRunning: true
|
|
@@ -11039,7 +11043,7 @@ async function startMcpServer() {
|
|
|
11039
11043
|
);
|
|
11040
11044
|
}
|
|
11041
11045
|
try {
|
|
11042
|
-
const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-
|
|
11046
|
+
const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-P3H4SEIK.js");
|
|
11043
11047
|
orch.setMaxConcurrent(maxConcurrentAgents2());
|
|
11044
11048
|
} catch {
|
|
11045
11049
|
}
|
|
@@ -11587,7 +11591,7 @@ async function startMcpServer() {
|
|
|
11587
11591
|
if (!worktreeProfile) {
|
|
11588
11592
|
registerConnectedIssueVendorTools(server);
|
|
11589
11593
|
const { getCaffeinateHold: getCaffeinateHold2, setCaffeinateHold: setCaffeinateHold2 } = await import("./caffeinate-hold-ZNUEZGHB.js");
|
|
11590
|
-
const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-
|
|
11594
|
+
const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-P3H4SEIK.js");
|
|
11591
11595
|
const accountDefaults = resolveThreadDefaults2();
|
|
11592
11596
|
const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
|
|
11593
11597
|
server.tool(
|
|
@@ -12471,6 +12475,9 @@ function firstRecord(record, keys) {
|
|
|
12471
12475
|
}
|
|
12472
12476
|
return null;
|
|
12473
12477
|
}
|
|
12478
|
+
function taskState(record) {
|
|
12479
|
+
return firstString(record, ["state", "board_state", "boardState", "status", "taskState"]);
|
|
12480
|
+
}
|
|
12474
12481
|
function identifierFromUnknown(value) {
|
|
12475
12482
|
if (typeof value === "string" || typeof value === "number") {
|
|
12476
12483
|
const id2 = String(value).trim();
|
|
@@ -12482,6 +12489,7 @@ function identifierFromUnknown(value) {
|
|
|
12482
12489
|
for (const key of ["nodes", "data", "tasks", "items"]) {
|
|
12483
12490
|
if (Array.isArray(rec[key])) return identifierFromUnknown(rec[key]);
|
|
12484
12491
|
}
|
|
12492
|
+
if (ableTimeStateIsClosed(taskState(rec))) return [];
|
|
12485
12493
|
const id = firstString(rec, ["identifier", "reference", "ref", "key", "code", "number", "id"]);
|
|
12486
12494
|
return id ? [id] : [];
|
|
12487
12495
|
}
|
|
@@ -12516,6 +12524,8 @@ async function getAbleTimeIssueBlockedBy(id, opts) {
|
|
|
12516
12524
|
continue;
|
|
12517
12525
|
}
|
|
12518
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;
|
|
12519
12529
|
const ref = taskReference(parent);
|
|
12520
12530
|
if (!ref || looksLikeAbleTimeUlid(ref)) {
|
|
12521
12531
|
throw new Error(`AbleTime blocker has no reference: ${blockerId}`);
|
|
@@ -12539,6 +12549,8 @@ function githubBlockedByIdentifiers(payload) {
|
|
|
12539
12549
|
const rec = node && typeof node === "object" && !Array.isArray(node) ? node : null;
|
|
12540
12550
|
const number = Number(rec?.number ?? node);
|
|
12541
12551
|
if (!Number.isFinite(number) || number <= 0) continue;
|
|
12552
|
+
const state = String(rec?.state ?? "").trim().toUpperCase();
|
|
12553
|
+
if (state === "CLOSED") continue;
|
|
12542
12554
|
const id = `#${number}`;
|
|
12543
12555
|
const key = id.toLowerCase();
|
|
12544
12556
|
if (seen.has(key)) continue;
|
|
@@ -12551,7 +12563,7 @@ var GITHUB_BLOCKED_BY_QUERY = `
|
|
|
12551
12563
|
query($owner: String!, $name: String!, $number: Int!) {
|
|
12552
12564
|
repository(owner: $owner, name: $name) {
|
|
12553
12565
|
issue(number: $number) {
|
|
12554
|
-
blockedBy(first: 25) { nodes { number } }
|
|
12566
|
+
blockedBy(first: 25) { nodes { number state } }
|
|
12555
12567
|
}
|
|
12556
12568
|
}
|
|
12557
12569
|
}
|
|
@@ -12599,15 +12611,21 @@ async function getGitHubIssueBlockedBy(id, opts) {
|
|
|
12599
12611
|
}
|
|
12600
12612
|
|
|
12601
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
|
+
}
|
|
12602
12620
|
var ISSUE_BLOCKED_BY_QUERY = `
|
|
12603
12621
|
query SideboardIssueBlockedBy($id: String!) {
|
|
12604
12622
|
issue(id: $id) {
|
|
12605
12623
|
identifier
|
|
12606
12624
|
relations(first: 25) {
|
|
12607
|
-
nodes { id type relatedIssue { id identifier } }
|
|
12625
|
+
nodes { id type relatedIssue { id identifier state { type } } }
|
|
12608
12626
|
}
|
|
12609
12627
|
inverseRelations(first: 25) {
|
|
12610
|
-
nodes { id type issue { id identifier } }
|
|
12628
|
+
nodes { id type issue { id identifier state { type } } }
|
|
12611
12629
|
}
|
|
12612
12630
|
}
|
|
12613
12631
|
}
|
|
@@ -12618,6 +12636,7 @@ function linearBlockedByIdentifiers(relations) {
|
|
|
12618
12636
|
for (const rel of relations) {
|
|
12619
12637
|
const type = (rel.type ?? "").trim().toLowerCase().replace(/[\s_-]+/g, "");
|
|
12620
12638
|
if (type !== "blockedby" && type !== "blocked") continue;
|
|
12639
|
+
if (!linearBlockerStillBlocks(rel.issue)) continue;
|
|
12621
12640
|
const id = (rel.issue?.identifier || rel.issue?.id || "").trim();
|
|
12622
12641
|
const key = id.toLowerCase();
|
|
12623
12642
|
if (!id || seen.has(key)) continue;
|
|
@@ -14339,7 +14358,7 @@ async function continueSourceThread(threadId, prompt) {
|
|
|
14339
14358
|
await continueOnReply(threadId, prompt);
|
|
14340
14359
|
return;
|
|
14341
14360
|
}
|
|
14342
|
-
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-
|
|
14361
|
+
const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-NPFWU3XU.js");
|
|
14343
14362
|
await getOrchestrator2().send(threadId, prompt);
|
|
14344
14363
|
} catch {
|
|
14345
14364
|
}
|
|
@@ -14755,6 +14774,7 @@ export {
|
|
|
14755
14774
|
ableTimeOAuthLocalBounceUrl,
|
|
14756
14775
|
ableTimeOAuthRedirectUri,
|
|
14757
14776
|
ableTimeOAuthResource,
|
|
14777
|
+
ableTimeStateIsClosed,
|
|
14758
14778
|
ableTimeUsesRest,
|
|
14759
14779
|
abletimeMcpRequest,
|
|
14760
14780
|
abletimeMcpUrl,
|
|
@@ -15237,6 +15257,7 @@ export {
|
|
|
15237
15257
|
issueMatchesAssignee,
|
|
15238
15258
|
issueSourceLabel,
|
|
15239
15259
|
issueTicketFromThread,
|
|
15260
|
+
joinSteerPrompt,
|
|
15240
15261
|
killDetachedRunTree,
|
|
15241
15262
|
killListenersOnPorts,
|
|
15242
15263
|
killStaleWorktreeListeners,
|
|
@@ -15295,6 +15316,7 @@ export {
|
|
|
15295
15316
|
listWorktrees,
|
|
15296
15317
|
listenerCwd,
|
|
15297
15318
|
liveActivitySummary,
|
|
15319
|
+
livePartsShowAgentReply,
|
|
15298
15320
|
loadAppSettings,
|
|
15299
15321
|
loadBrightsyConfig,
|
|
15300
15322
|
loadConductorSettings,
|
|
@@ -15632,6 +15654,7 @@ export {
|
|
|
15632
15654
|
toolDetail,
|
|
15633
15655
|
toolFilePath,
|
|
15634
15656
|
totalTokens,
|
|
15657
|
+
trailingUnansweredUserText,
|
|
15635
15658
|
trustSystemCertificates,
|
|
15636
15659
|
tryReservePort,
|
|
15637
15660
|
tryReservePorts,
|