@junctionpanel/server 0.1.75 → 0.1.77
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/server/client/daemon-client-terminal-stream-manager.d.ts +1 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.d.ts.map +1 -1
- package/dist/server/client/daemon-client-terminal-stream-manager.js +20 -5
- package/dist/server/client/daemon-client-terminal-stream-manager.js.map +1 -1
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +44 -33
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.d.ts +2 -1
- package/dist/server/server/agent/providers/gemini-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.js +233 -77
- package/dist/server/server/agent/providers/gemini-agent.js.map +1 -1
- package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
- package/dist/server/server/agent/timeline-projection.js +68 -52
- package/dist/server/server/agent/timeline-projection.js.map +1 -1
- package/dist/server/server/session.d.ts +0 -2
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +157 -33
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +8 -5
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +91 -37
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/package.json +2 -2
|
@@ -232,15 +232,17 @@ export declare class PullRequestRateLimitError extends Error {
|
|
|
232
232
|
export declare function invalidatePullRequestCache(cwd: string, options?: {
|
|
233
233
|
remoteName?: string | null;
|
|
234
234
|
}): void;
|
|
235
|
-
|
|
236
|
-
* Read the current branch pull request snapshot using cache-aware summary/detail hydration.
|
|
237
|
-
*/
|
|
238
|
-
export declare function getPullRequestSnapshot(cwd: string, options?: {
|
|
235
|
+
type PullRequestLookupOptions = {
|
|
239
236
|
remoteName?: string | null;
|
|
240
237
|
detailLevel?: PullRequestDetailLevel;
|
|
241
238
|
maxAgeMs?: number;
|
|
242
239
|
forceRefresh?: boolean;
|
|
243
|
-
|
|
240
|
+
currentBranchHint?: string | null;
|
|
241
|
+
};
|
|
242
|
+
/**
|
|
243
|
+
* Read the current branch pull request snapshot using cache-aware summary/detail hydration.
|
|
244
|
+
*/
|
|
245
|
+
export declare function getPullRequestSnapshot(cwd: string, options?: PullRequestLookupOptions): Promise<PullRequestLookupResult>;
|
|
244
246
|
export declare function createPullRequest(cwd: string, options: CreatePullRequestOptions): Promise<{
|
|
245
247
|
url: string;
|
|
246
248
|
number: number;
|
|
@@ -252,6 +254,7 @@ export declare function getPullRequestStatus(cwd: string, options?: {
|
|
|
252
254
|
remoteName?: string | null;
|
|
253
255
|
maxAgeMs?: number;
|
|
254
256
|
forceRefresh?: boolean;
|
|
257
|
+
currentBranchHint?: string | null;
|
|
255
258
|
}): Promise<PullRequestStatusResult>;
|
|
256
259
|
/**
|
|
257
260
|
* Search pull requests for the current repository using a short-lived cache.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-git.d.ts","sourceRoot":"","sources":["../../../src/utils/checkout-git.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout-git.d.ts","sourceRoot":"","sources":["../../../src/utils/checkout-git.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,11 @@ const SMALL_OUTPUT_MAX_BUFFER = 20 * 1024 * 1024; // 20MB
|
|
|
18
18
|
async function execGit(command, options) {
|
|
19
19
|
return execAsync(command, { ...options, maxBuffer: SMALL_OUTPUT_MAX_BUFFER });
|
|
20
20
|
}
|
|
21
|
+
function isSafeRemoteName(remoteName) {
|
|
22
|
+
return SAFE_GIT_REMOTE_NAME_PATTERN.test(remoteName);
|
|
23
|
+
}
|
|
21
24
|
function assertSafeRemoteName(remoteName) {
|
|
22
|
-
if (!
|
|
25
|
+
if (!isSafeRemoteName(remoteName)) {
|
|
23
26
|
throw new Error(`Invalid remote name: ${remoteName}`);
|
|
24
27
|
}
|
|
25
28
|
}
|
|
@@ -637,6 +640,13 @@ async function listRemoteNames(cwd) {
|
|
|
637
640
|
}
|
|
638
641
|
async function getRemoteHeadBranch(cwd, remoteName) {
|
|
639
642
|
assertSafeRemoteName(remoteName);
|
|
643
|
+
let cachedRemoteUrl;
|
|
644
|
+
const loadRemoteUrl = async () => {
|
|
645
|
+
if (cachedRemoteUrl === undefined) {
|
|
646
|
+
cachedRemoteUrl = await getRemoteUrl(cwd, remoteName);
|
|
647
|
+
}
|
|
648
|
+
return cachedRemoteUrl;
|
|
649
|
+
};
|
|
640
650
|
try {
|
|
641
651
|
const { stdout } = await execAsync(`git symbolic-ref --quiet refs/remotes/${remoteName}/HEAD`, {
|
|
642
652
|
cwd,
|
|
@@ -644,7 +654,7 @@ async function getRemoteHeadBranch(cwd, remoteName) {
|
|
|
644
654
|
});
|
|
645
655
|
const ref = stdout.trim();
|
|
646
656
|
if (!ref) {
|
|
647
|
-
const remoteUrl = await
|
|
657
|
+
const remoteUrl = await loadRemoteUrl();
|
|
648
658
|
return remoteUrl ? getLocalRemoteHeadBranch(remoteUrl) : null;
|
|
649
659
|
}
|
|
650
660
|
const shortRef = ref.replace(/^refs\/remotes\//, "");
|
|
@@ -663,14 +673,14 @@ async function getRemoteHeadBranch(cwd, remoteName) {
|
|
|
663
673
|
.map((line) => line.trim())
|
|
664
674
|
.find((line) => line.startsWith("ref: refs/heads/") && line.endsWith("\tHEAD"));
|
|
665
675
|
if (!headLine) {
|
|
666
|
-
const remoteUrl = await
|
|
676
|
+
const remoteUrl = await loadRemoteUrl();
|
|
667
677
|
return remoteUrl ? getLocalRemoteHeadBranch(remoteUrl) : null;
|
|
668
678
|
}
|
|
669
679
|
const match = /^ref:\s+refs\/heads\/(.+)\tHEAD$/.exec(headLine);
|
|
670
680
|
return match?.[1] ?? null;
|
|
671
681
|
}
|
|
672
682
|
catch {
|
|
673
|
-
const remoteUrl = await
|
|
683
|
+
const remoteUrl = await loadRemoteUrl();
|
|
674
684
|
return remoteUrl ? getLocalRemoteHeadBranch(remoteUrl) : null;
|
|
675
685
|
}
|
|
676
686
|
}
|
|
@@ -692,12 +702,56 @@ export async function listGitRemotes(cwd) {
|
|
|
692
702
|
}));
|
|
693
703
|
return remotes;
|
|
694
704
|
}
|
|
705
|
+
async function resolveRemoteIdentity(cwd, requestedRemoteName) {
|
|
706
|
+
const trimmedRequested = requestedRemoteName?.trim();
|
|
707
|
+
if (trimmedRequested && isSafeRemoteName(trimmedRequested)) {
|
|
708
|
+
const requestedRemoteUrl = await getRemoteUrl(cwd, trimmedRequested);
|
|
709
|
+
if (requestedRemoteUrl !== null) {
|
|
710
|
+
return {
|
|
711
|
+
remoteName: trimmedRequested,
|
|
712
|
+
remoteUrl: requestedRemoteUrl,
|
|
713
|
+
repo: parseGitHubRepoFromRemoteUrl(requestedRemoteUrl),
|
|
714
|
+
};
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
const remotes = await listRemoteNames(cwd);
|
|
718
|
+
if (remotes.length === 0) {
|
|
719
|
+
return {
|
|
720
|
+
remoteName: null,
|
|
721
|
+
remoteUrl: null,
|
|
722
|
+
repo: null,
|
|
723
|
+
};
|
|
724
|
+
}
|
|
725
|
+
let remoteName = null;
|
|
726
|
+
if (trimmedRequested && remotes.includes(trimmedRequested)) {
|
|
727
|
+
assertSafeRemoteName(trimmedRequested);
|
|
728
|
+
remoteName = trimmedRequested;
|
|
729
|
+
}
|
|
730
|
+
else if (remotes.includes("origin")) {
|
|
731
|
+
remoteName = "origin";
|
|
732
|
+
}
|
|
733
|
+
else {
|
|
734
|
+
remoteName = remotes[0] ?? null;
|
|
735
|
+
}
|
|
736
|
+
const remoteUrl = remoteName ? await getRemoteUrl(cwd, remoteName) : null;
|
|
737
|
+
return {
|
|
738
|
+
remoteName,
|
|
739
|
+
remoteUrl,
|
|
740
|
+
repo: remoteUrl ? parseGitHubRepoFromRemoteUrl(remoteUrl) : null,
|
|
741
|
+
};
|
|
742
|
+
}
|
|
695
743
|
async function resolveEffectiveRemoteName(cwd, requestedRemoteName) {
|
|
744
|
+
const trimmedRequested = requestedRemoteName?.trim();
|
|
745
|
+
if (trimmedRequested && isSafeRemoteName(trimmedRequested)) {
|
|
746
|
+
const requestedRemoteUrl = await getRemoteUrl(cwd, trimmedRequested);
|
|
747
|
+
if (requestedRemoteUrl !== null) {
|
|
748
|
+
return trimmedRequested;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
696
751
|
const remotes = await listRemoteNames(cwd);
|
|
697
752
|
if (remotes.length === 0) {
|
|
698
753
|
return null;
|
|
699
754
|
}
|
|
700
|
-
const trimmedRequested = requestedRemoteName?.trim();
|
|
701
755
|
if (trimmedRequested && remotes.includes(trimmedRequested)) {
|
|
702
756
|
assertSafeRemoteName(trimmedRequested);
|
|
703
757
|
return trimmedRequested;
|
|
@@ -1622,12 +1676,7 @@ function parseGitHubRepoFromRemoteUrl(url) {
|
|
|
1622
1676
|
return cleaned;
|
|
1623
1677
|
}
|
|
1624
1678
|
async function resolveGitHubRepo(cwd, options) {
|
|
1625
|
-
|
|
1626
|
-
if (!remoteName) {
|
|
1627
|
-
return null;
|
|
1628
|
-
}
|
|
1629
|
-
const remoteUrl = await getRemoteUrl(cwd, remoteName);
|
|
1630
|
-
return remoteUrl ? parseGitHubRepoFromRemoteUrl(remoteUrl) : null;
|
|
1679
|
+
return (await resolveRemoteIdentity(cwd, options?.remoteName)).repo;
|
|
1631
1680
|
}
|
|
1632
1681
|
async function hasAuthenticatedGitHubCliSession(cwd) {
|
|
1633
1682
|
try {
|
|
@@ -1714,7 +1763,6 @@ function setCachedPullRequestLookup(cacheKey, localHeadSha, lookup, options) {
|
|
|
1714
1763
|
if (getPullRequestLookupCacheGeneration(options.cwd) !== options.generation) {
|
|
1715
1764
|
return lookup;
|
|
1716
1765
|
}
|
|
1717
|
-
prunePullRequestLookupCache();
|
|
1718
1766
|
pullRequestLookupCache.set(cacheKey, {
|
|
1719
1767
|
lookup,
|
|
1720
1768
|
localHeadSha,
|
|
@@ -2078,6 +2126,13 @@ function toPullRequestStatus(baseStatus, checks, mergeability, options) {
|
|
|
2078
2126
|
: requiredChecks.every((check) => check.bucket === "pass" || check.bucket === "skipping");
|
|
2079
2127
|
const hasConflicts = baseStatus.isMerged ? false : (mergeability?.hasConflicts ?? false);
|
|
2080
2128
|
const mergeableKnown = baseStatus.isMerged ? true : (mergeability?.mergeableKnown ?? true);
|
|
2129
|
+
const canMerge = baseStatus.isMerged
|
|
2130
|
+
? false
|
|
2131
|
+
: baseStatus.draft || !requiredChecksPassed || hasConflicts
|
|
2132
|
+
? false
|
|
2133
|
+
: !mergeableKnown
|
|
2134
|
+
? null
|
|
2135
|
+
: true;
|
|
2081
2136
|
return {
|
|
2082
2137
|
number: baseStatus.number,
|
|
2083
2138
|
url: baseStatus.url,
|
|
@@ -2089,11 +2144,7 @@ function toPullRequestStatus(baseStatus, checks, mergeability, options) {
|
|
|
2089
2144
|
detailLevel: "detail",
|
|
2090
2145
|
checksState,
|
|
2091
2146
|
requiredChecksPassed,
|
|
2092
|
-
canMerge
|
|
2093
|
-
!baseStatus.draft &&
|
|
2094
|
-
requiredChecksPassed &&
|
|
2095
|
-
!hasConflicts &&
|
|
2096
|
-
mergeableKnown,
|
|
2147
|
+
canMerge,
|
|
2097
2148
|
hasConflicts,
|
|
2098
2149
|
};
|
|
2099
2150
|
}
|
|
@@ -2239,8 +2290,10 @@ function toSummaryOnlyPullRequestStatus(baseStatus) {
|
|
|
2239
2290
|
async function loadCurrentPullRequest(cwd, options) {
|
|
2240
2291
|
await requireGitRepo(cwd);
|
|
2241
2292
|
const detailLevel = normalizePullRequestDetailLevel(options?.detailLevel);
|
|
2242
|
-
const
|
|
2243
|
-
const
|
|
2293
|
+
const currentBranchHint = options?.currentBranchHint?.trim();
|
|
2294
|
+
const head = currentBranchHint && currentBranchHint.length > 0
|
|
2295
|
+
? currentBranchHint
|
|
2296
|
+
: await getCurrentBranch(cwd);
|
|
2244
2297
|
if (!head) {
|
|
2245
2298
|
return {
|
|
2246
2299
|
status: null,
|
|
@@ -2252,20 +2305,22 @@ async function loadCurrentPullRequest(cwd, options) {
|
|
|
2252
2305
|
fetchedAt: Date.now(),
|
|
2253
2306
|
};
|
|
2254
2307
|
}
|
|
2255
|
-
const remoteName = await
|
|
2256
|
-
const remoteUrl = remoteName ? await getRemoteUrl(cwd, remoteName) : null;
|
|
2308
|
+
const { remoteName, remoteUrl, repo } = await resolveRemoteIdentity(cwd, options?.remoteName);
|
|
2257
2309
|
const cacheKey = buildPullRequestLookupCacheKey({
|
|
2258
2310
|
cwd,
|
|
2259
2311
|
remoteName,
|
|
2260
2312
|
repoIdentity: remoteUrl,
|
|
2261
2313
|
branch: head,
|
|
2262
2314
|
});
|
|
2315
|
+
const localHeadSha = repo ? await getCurrentHeadSha(cwd) : null;
|
|
2263
2316
|
const cacheGeneration = getPullRequestLookupCacheGeneration(cwd);
|
|
2264
|
-
const compatibleCachedLookup =
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2317
|
+
const compatibleCachedLookup = repo
|
|
2318
|
+
? getCompatiblePullRequestLookup({
|
|
2319
|
+
cacheKey,
|
|
2320
|
+
detailLevel,
|
|
2321
|
+
localHeadSha,
|
|
2322
|
+
})
|
|
2323
|
+
: null;
|
|
2269
2324
|
const maxAgeMs = options?.maxAgeMs ??
|
|
2270
2325
|
resolvePullRequestLookupMaxAgeMs({
|
|
2271
2326
|
detailLevel,
|
|
@@ -2273,12 +2328,14 @@ async function loadCurrentPullRequest(cwd, options) {
|
|
|
2273
2328
|
});
|
|
2274
2329
|
const freshCachedLookup = options?.forceRefresh
|
|
2275
2330
|
? null
|
|
2276
|
-
:
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2331
|
+
: repo
|
|
2332
|
+
? getCachedPullRequestLookup({
|
|
2333
|
+
cacheKey,
|
|
2334
|
+
detailLevel,
|
|
2335
|
+
maxAgeMs,
|
|
2336
|
+
localHeadSha,
|
|
2337
|
+
})
|
|
2338
|
+
: null;
|
|
2282
2339
|
if (freshCachedLookup) {
|
|
2283
2340
|
return freshCachedLookup;
|
|
2284
2341
|
}
|
|
@@ -2317,7 +2374,6 @@ async function loadCurrentPullRequest(cwd, options) {
|
|
|
2317
2374
|
fetchedAt: Date.now(),
|
|
2318
2375
|
};
|
|
2319
2376
|
}
|
|
2320
|
-
const repo = parseGitHubRepoFromRemoteUrl(remoteUrl);
|
|
2321
2377
|
if (!repo) {
|
|
2322
2378
|
return {
|
|
2323
2379
|
status: null,
|
|
@@ -2558,6 +2614,7 @@ export async function getPullRequestStatus(cwd, options) {
|
|
|
2558
2614
|
detailLevel: "detail",
|
|
2559
2615
|
maxAgeMs: options?.maxAgeMs ?? PULL_REQUEST_STATUS_ACTIVE_CACHE_MS,
|
|
2560
2616
|
forceRefresh: options?.forceRefresh,
|
|
2617
|
+
currentBranchHint: options?.currentBranchHint,
|
|
2561
2618
|
});
|
|
2562
2619
|
return {
|
|
2563
2620
|
status: lookup.status,
|
|
@@ -2578,9 +2635,7 @@ export async function searchPullRequests(cwd, options = {}) {
|
|
|
2578
2635
|
githubFeaturesEnabled: false,
|
|
2579
2636
|
};
|
|
2580
2637
|
}
|
|
2581
|
-
const remoteName = await
|
|
2582
|
-
const remoteUrl = remoteName ? await getRemoteUrl(cwd, remoteName) : null;
|
|
2583
|
-
const repo = remoteUrl ? parseGitHubRepoFromRemoteUrl(remoteUrl) : null;
|
|
2638
|
+
const { remoteName, repo } = await resolveRemoteIdentity(cwd, options.remoteName ?? undefined);
|
|
2584
2639
|
if (!repo) {
|
|
2585
2640
|
return {
|
|
2586
2641
|
pullRequests: [],
|
|
@@ -2661,7 +2716,6 @@ export async function searchPullRequests(cwd, options = {}) {
|
|
|
2661
2716
|
pullRequests,
|
|
2662
2717
|
githubFeaturesEnabled: true,
|
|
2663
2718
|
};
|
|
2664
|
-
prunePullRequestSearchCache();
|
|
2665
2719
|
pullRequestSearchCache.set(searchCacheKey, {
|
|
2666
2720
|
result,
|
|
2667
2721
|
fetchedAt: Date.now(),
|