@codetreker/daynight 0.3.0 → 0.6.1
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/api/client.d.ts +43 -0
- package/dist/api/client.js +285 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.js +5 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/json.d.ts +3 -0
- package/dist/api/json.js +25 -0
- package/dist/api/json.js.map +1 -0
- package/dist/api/operation.d.ts +23 -0
- package/dist/api/operation.js +78 -0
- package/dist/api/operation.js.map +1 -0
- package/dist/api/parse.d.ts +12 -0
- package/dist/api/parse.js +160 -0
- package/dist/api/parse.js.map +1 -0
- package/dist/api/types.d.ts +75 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/cli/application.js +10 -20
- package/dist/cli/application.js.map +1 -1
- package/dist/cli/commands.d.ts +3 -3
- package/dist/cli/commands.js +29 -4
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/schema.d.ts +52 -0
- package/dist/cli/schema.js +108 -0
- package/dist/cli/schema.js.map +1 -0
- package/dist/commands/completion/bash.d.ts +2 -0
- package/dist/commands/completion/bash.js +272 -0
- package/dist/commands/completion/bash.js.map +1 -0
- package/dist/commands/completion/command.d.ts +2 -0
- package/dist/commands/completion/command.js +20 -0
- package/dist/commands/completion/command.js.map +1 -0
- package/dist/commands/completion/definition.d.ts +2 -0
- package/dist/commands/completion/definition.js +8 -0
- package/dist/commands/completion/definition.js.map +1 -0
- package/dist/commands/completion/zsh.d.ts +2 -0
- package/dist/commands/completion/zsh.js +136 -0
- package/dist/commands/completion/zsh.js.map +1 -0
- package/dist/commands/project/command.d.ts +6 -0
- package/dist/commands/project/command.js +39 -0
- package/dist/commands/project/command.js.map +1 -0
- package/dist/commands/project/definition.d.ts +2 -0
- package/dist/commands/project/definition.js +34 -0
- package/dist/commands/project/definition.js.map +1 -0
- package/dist/commands/project/rendering.d.ts +4 -0
- package/dist/commands/project/rendering.js +17 -0
- package/dist/commands/project/rendering.js.map +1 -0
- package/dist/commands/review/adapters/copilot.d.ts +16 -9
- package/dist/commands/review/adapters/copilot.js +196 -99
- package/dist/commands/review/adapters/copilot.js.map +1 -1
- package/dist/commands/review/command.js +12 -98
- package/dist/commands/review/command.js.map +1 -1
- package/dist/commands/review/config.d.ts +1 -2
- package/dist/commands/review/config.js +24 -43
- package/dist/commands/review/config.js.map +1 -1
- package/dist/commands/review/coordinator.d.ts +2 -2
- package/dist/commands/review/coordinator.js +5 -1
- package/dist/commands/review/coordinator.js.map +1 -1
- package/dist/commands/review/definition.d.ts +2 -0
- package/dist/commands/review/definition.js +33 -0
- package/dist/commands/review/definition.js.map +1 -0
- package/dist/commands/review/listing.js +2 -8
- package/dist/commands/review/listing.js.map +1 -1
- package/dist/commands/review/paths.d.ts +2 -3
- package/dist/commands/review/paths.js +4 -6
- package/dist/commands/review/paths.js.map +1 -1
- package/dist/commands/review/processes.d.ts +2 -2
- package/dist/commands/review/repositories.js +13 -102
- package/dist/commands/review/repositories.js.map +1 -1
- package/dist/commands/review/runtime.d.ts +4 -1
- package/dist/commands/review/runtime.js +7 -4
- package/dist/commands/review/runtime.js.map +1 -1
- package/dist/commands/review/skill.d.ts +11 -0
- package/dist/commands/review/skill.js +242 -0
- package/dist/commands/review/skill.js.map +1 -0
- package/dist/commands/review/skills/daynight-review/SKILL.md +63 -0
- package/dist/commands/review/store.d.ts +4 -0
- package/dist/commands/review/store.js +8 -0
- package/dist/commands/review/store.js.map +1 -1
- package/dist/commands/server/runtime.d.ts +16 -0
- package/dist/commands/server/runtime.js +52 -0
- package/dist/commands/server/runtime.js.map +1 -0
- package/dist/commands/task/command.d.ts +8 -0
- package/dist/commands/task/command.js +106 -0
- package/dist/commands/task/command.js.map +1 -0
- package/dist/commands/task/definition.d.ts +2 -0
- package/dist/commands/task/definition.js +50 -0
- package/dist/commands/task/definition.js.map +1 -0
- package/dist/commands/task/rendering.d.ts +5 -0
- package/dist/commands/task/rendering.js +49 -0
- package/dist/commands/task/rendering.js.map +1 -0
- package/dist/commands/update/command.js +5 -15
- package/dist/commands/update/command.js.map +1 -1
- package/dist/commands/update/definition.d.ts +2 -0
- package/dist/commands/update/definition.js +7 -0
- package/dist/commands/update/definition.js.map +1 -0
- package/dist/config/document.d.ts +9 -0
- package/dist/config/document.js +45 -0
- package/dist/config/document.js.map +1 -0
- package/dist/config/files.d.ts +7 -0
- package/dist/config/files.js +69 -0
- package/dist/config/files.js.map +1 -0
- package/dist/config/paths.d.ts +6 -0
- package/dist/config/paths.js +9 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/server.d.ts +7 -0
- package/dist/config/server.js +34 -0
- package/dist/config/server.js.map +1 -0
- package/dist/platform/files.d.ts +1 -0
- package/dist/platform/files.js +48 -0
- package/dist/platform/files.js.map +1 -0
- package/dist/platform/terminal.d.ts +1 -0
- package/dist/platform/terminal.js +10 -0
- package/dist/platform/terminal.js.map +1 -0
- package/dist/platform/text.d.ts +2 -0
- package/dist/platform/text.js +3 -0
- package/dist/platform/text.js.map +1 -0
- package/dist/repository/binding.d.ts +21 -0
- package/dist/repository/binding.js +242 -0
- package/dist/repository/binding.js.map +1 -0
- package/dist/repository/context.d.ts +10 -0
- package/dist/repository/context.js +32 -0
- package/dist/repository/context.js.map +1 -0
- package/dist/repository/git.d.ts +20 -0
- package/dist/repository/git.js +213 -0
- package/dist/repository/git.js.map +1 -0
- package/dist/repository/identity.d.ts +5 -0
- package/dist/repository/identity.js +154 -0
- package/dist/repository/identity.js.map +1 -0
- package/dist/repository/index.d.ts +4 -0
- package/dist/repository/index.js +3 -0
- package/dist/repository/index.js.map +1 -0
- package/package.json +5 -4
|
@@ -2,30 +2,36 @@ import type { ChildProcess } from "node:child_process";
|
|
|
2
2
|
import type { PreparedWorktree } from "./worktrees.js";
|
|
3
3
|
import type { ReviewPaths } from "../paths.js";
|
|
4
4
|
import type { Store } from "../store.js";
|
|
5
|
-
import type { AttemptIdentity, ReviewState } from "../model.js";
|
|
5
|
+
import type { AttemptIdentity, ProcessesExcluded, ReviewState } from "../model.js";
|
|
6
|
+
import type { PreparedReviewSkill } from "../skill.js";
|
|
6
7
|
export type PreviousReview = Pick<ReviewState, "id" | "revision" | "headSha" | "baseRef">;
|
|
7
|
-
export type
|
|
8
|
+
export type CopilotProcessOutcome = {
|
|
9
|
+
directProcessClosed: boolean;
|
|
10
|
+
captureComplete: boolean;
|
|
11
|
+
exitCode: number | null;
|
|
12
|
+
signal: NodeJS.Signals | null;
|
|
13
|
+
interruption: "aborted" | "timeout" | null;
|
|
14
|
+
launchFailure: "command-not-found" | null;
|
|
15
|
+
};
|
|
16
|
+
export type CopilotAttemptOutcome = CopilotProcessOutcome & {
|
|
8
17
|
attempt: AttemptIdentity;
|
|
9
18
|
sessionId: string;
|
|
10
19
|
sessionMode: "create" | "resume";
|
|
11
20
|
stdoutLogPath: string;
|
|
12
21
|
stderrLogPath: string;
|
|
13
22
|
completed: boolean;
|
|
14
|
-
|
|
15
|
-
captureComplete: boolean;
|
|
16
|
-
exitCode: number | null;
|
|
17
|
-
signal: NodeJS.Signals | null;
|
|
23
|
+
processExclusionFailure: Error | null;
|
|
18
24
|
lastNonemptyLine: string | null;
|
|
19
|
-
interruption: "aborted" | "timeout" | null;
|
|
20
|
-
launchFailure: "command-not-found" | null;
|
|
21
25
|
errors: Error[];
|
|
22
26
|
};
|
|
23
27
|
export type CopilotRunnerOptions = {
|
|
28
|
+
skill: PreparedReviewSkill;
|
|
24
29
|
paths: ReviewPaths;
|
|
25
30
|
processOwner: string;
|
|
26
31
|
timeoutMs: number;
|
|
27
32
|
terminationGraceMs?: number;
|
|
28
33
|
maxLineCharacters?: number;
|
|
34
|
+
maxDiscoveryBytes?: number;
|
|
29
35
|
now?: () => number;
|
|
30
36
|
environment?: NodeJS.ProcessEnv;
|
|
31
37
|
command?: {
|
|
@@ -34,6 +40,7 @@ export type CopilotRunnerOptions = {
|
|
|
34
40
|
};
|
|
35
41
|
};
|
|
36
42
|
export type CopilotRunOptions = {
|
|
43
|
+
excludeProcess: (review: ReviewState, outcome: CopilotProcessOutcome) => Promise<ProcessesExcluded>;
|
|
37
44
|
signal?: AbortSignal;
|
|
38
45
|
previousReview?: PreviousReview;
|
|
39
46
|
onProcess?: (child: ChildProcess, attempt: AttemptIdentity) => void;
|
|
@@ -41,5 +48,5 @@ export type CopilotRunOptions = {
|
|
|
41
48
|
};
|
|
42
49
|
/** Runs one persisted attempt; the caller retains scheduling, final state transitions, and descendant-process exclusion. */
|
|
43
50
|
export declare const createCopilotRunner: (options: CopilotRunnerOptions) => {
|
|
44
|
-
run: (store: Store, reviewId: string, worktree: PreparedWorktree, input
|
|
51
|
+
run: (store: Store, reviewId: string, worktree: PreparedWorktree, input: CopilotRunOptions) => Promise<CopilotAttemptOutcome>;
|
|
45
52
|
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { lstat, mkdir, mkdtemp, open } from "node:fs/promises";
|
|
3
3
|
import { Readable, Transform } from "node:stream";
|
|
4
|
+
import { performance } from "node:perf_hooks";
|
|
4
5
|
import { pipeline } from "node:stream/promises";
|
|
5
6
|
import crossSpawn from "cross-spawn";
|
|
6
7
|
import { remoteIdentity } from "../config.js";
|
|
7
8
|
import { isolatedGitEnvironment } from "./worktrees.js";
|
|
9
|
+
import { validateReviewSkillDiscovery } from "../skill.js";
|
|
8
10
|
const asError = (value) => value instanceof Error ? value : new Error(String(value));
|
|
9
11
|
const positiveInteger = (value, name) => {
|
|
10
12
|
if (!Number.isSafeInteger(value) || value < 1 || value > 2_147_483_647)
|
|
@@ -22,16 +24,18 @@ const sessionExists = async (directory) => {
|
|
|
22
24
|
throw error;
|
|
23
25
|
}
|
|
24
26
|
};
|
|
25
|
-
const reviewPrompt = (review, worktree, repository, previous) => `You are the Copilot code review agent for daynight.
|
|
27
|
+
const reviewPrompt = (review, worktree, repository, skill, previous) => `You are the Copilot code review agent for daynight.
|
|
28
|
+
Before reviewing, explicitly invoke /daynight-review and load the CURRENT immutable skill snapshot from ${JSON.stringify(skill.entrypoint)} (digest ${skill.digest}). Load this exact current path even when resumed conversation history already contains an older skill with the same name. Complete the native skill invocation before beginning the review.
|
|
29
|
+
Daynight skill bundle: ${JSON.stringify({ name: skill.name, digest: skill.digest, entrypoint: skill.entrypoint })}
|
|
26
30
|
Review this immutable target:
|
|
27
31
|
${JSON.stringify({ host: review.host, repositoryId: review.githubId, repository: `${repository.owner}/${repository.name}`, pullRequest: review.number,
|
|
28
32
|
reviewId: review.id, revision: review.revision, headSha: review.headSha, baseBranch: review.baseRef, baseSha: worktree.baseSha, mergeBaseSha: worktree.mergeBaseSha })}
|
|
29
|
-
The worktree is already prepared.
|
|
33
|
+
The worktree is already prepared. Its Git environment exposes the original commit objects and a complete checkout.
|
|
30
34
|
${previous === undefined ? "" : `A previous unfinished review may have published results: ${JSON.stringify(previous)}. Reconcile its existing effects; do not publish a review for its obsolete target merely to confirm it.\n`}This attempt may follow an interrupted or incomplete attempt of this same review. First inspect the PR's existing reviews and inline comments for the stable identity below. If this target's required result was already published successfully, confirm it without publishing it again; otherwise finish the remaining work.
|
|
31
35
|
Stable review identity: daynight review=${review.id} revision=${review.revision} head=${review.headSha}
|
|
32
36
|
Publish the review yourself using gh api. Immediately before publication re-read the PR and require it to be Open, non-Draft, with head SHA ${review.headSha} and base branch ${JSON.stringify(review.baseRef)}. If it is stale, closed, Draft, inaccessible, or publication fails, explain the problem and do not output the completion marker.
|
|
33
37
|
Use POST repos/${repository.owner}/${repository.name}/pulls/${review.number}/reviews on host ${review.host}. Explicitly set commit_id to ${review.headSha} and include the stable review identity in the review body. Use English and identify yourself as Copilot in published text.
|
|
34
|
-
|
|
38
|
+
Publish findings using inline comments on the relevant changed lines in a COMMENT review. Never submit REQUEST_CHANGES. If no Critical or Major problem remains, publish APPROVE. Verify the required publication succeeded. Do not treat an existing COMMENT as evidence of approval, and do not claim success when you cannot approve your own PR.
|
|
35
39
|
The repository and worktree are dedicated to this review system. Worktree creation, reset and cleanup belong to daynight; do not perform those lifecycle operations. Keep supplementary clones and temporary resources under the supplied temporary directory.
|
|
36
40
|
Run all tools in the foreground, await and reap them, and stop every service or other tool you started before returning. Do not leave background or detached processes running.
|
|
37
41
|
After the required review result has been published or confirmed, finish stdout with exactly this standalone line, with no text after it:
|
|
@@ -82,17 +86,43 @@ class LastLine extends Transform {
|
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
88
|
}
|
|
89
|
+
class DiscoveryOutput extends Transform {
|
|
90
|
+
limit;
|
|
91
|
+
chunks = [];
|
|
92
|
+
length = 0;
|
|
93
|
+
overflow = false;
|
|
94
|
+
constructor(limit) { super(); this.limit = limit; }
|
|
95
|
+
_transform(chunk, _encoding, callback) {
|
|
96
|
+
if (!this.overflow) {
|
|
97
|
+
this.length += chunk.length;
|
|
98
|
+
if (this.length > this.limit) {
|
|
99
|
+
this.overflow = true;
|
|
100
|
+
this.chunks.length = 0;
|
|
101
|
+
}
|
|
102
|
+
else
|
|
103
|
+
this.chunks.push(Buffer.from(chunk));
|
|
104
|
+
}
|
|
105
|
+
callback(null, chunk);
|
|
106
|
+
}
|
|
107
|
+
text() {
|
|
108
|
+
if (this.overflow)
|
|
109
|
+
throw new Error(`Copilot skill discovery output exceeded ${this.limit} bytes.`);
|
|
110
|
+
return new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(Buffer.concat(this.chunks));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
85
113
|
/** Runs one persisted attempt; the caller retains scheduling, final state transitions, and descendant-process exclusion. */
|
|
86
114
|
export const createCopilotRunner = (options) => {
|
|
87
115
|
const now = options.now === undefined ? Date.now : options.now;
|
|
88
116
|
const grace = options.terminationGraceMs === undefined ? 5_000 : options.terminationGraceMs;
|
|
89
117
|
const lineLimit = options.maxLineCharacters === undefined ? 8_192 : options.maxLineCharacters;
|
|
118
|
+
const discoveryLimit = options.maxDiscoveryBytes === undefined ? 1_048_576 : options.maxDiscoveryBytes;
|
|
90
119
|
positiveInteger(options.timeoutMs, "Copilot timeout");
|
|
91
120
|
positiveInteger(grace, "Termination grace");
|
|
92
121
|
positiveInteger(lineLimit, "Line character limit");
|
|
122
|
+
positiveInteger(discoveryLimit, "Skill discovery byte limit");
|
|
93
123
|
if (options.processOwner.trim() === "")
|
|
94
124
|
throw new Error("Copilot process owner must be nonempty.");
|
|
95
|
-
const run = async (store, reviewId, worktree, input
|
|
125
|
+
const run = async (store, reviewId, worktree, input) => {
|
|
96
126
|
input.signal?.throwIfAborted();
|
|
97
127
|
const review = store.getReview(reviewId);
|
|
98
128
|
if (review === null)
|
|
@@ -132,131 +162,198 @@ export const createCopilotRunner = (options) => {
|
|
|
132
162
|
await Promise.all([stdoutFile.close(), stderrFile.close()]);
|
|
133
163
|
throw error;
|
|
134
164
|
}
|
|
165
|
+
const deadline = performance.now() + options.timeoutMs;
|
|
135
166
|
const attempt = { reviewId: review.id, attempt: launched.attemptCount };
|
|
136
167
|
const errors = [];
|
|
137
168
|
const outcome = { attempt, sessionId: pr.sessionId, sessionMode: mode, stdoutLogPath, stderrLogPath,
|
|
138
|
-
completed: false, directProcessClosed:
|
|
169
|
+
completed: false, directProcessClosed: true, captureComplete: true, exitCode: null, signal: null, lastNonemptyLine: null,
|
|
170
|
+
interruption: null, launchFailure: null, processExclusionFailure: null, errors };
|
|
139
171
|
const parentEnvironment = options.environment === undefined ? process.env : options.environment;
|
|
140
172
|
const environment = { ...parentEnvironment, ...isolatedGitEnvironment(parentEnvironment, worktree.gitEnvironment),
|
|
141
173
|
COPILOT_HOME: options.paths.copilotDirectory, COPILOT_CACHE_HOME: options.paths.cacheDirectory,
|
|
142
174
|
TMPDIR: options.paths.temporaryDirectory, TMP: options.paths.temporaryDirectory, TEMP: options.paths.temporaryDirectory,
|
|
143
175
|
NO_COLOR: "1", GH_PROMPT_DISABLED: "1", GH_FORCE_TTY: "", PAGER: "cat", GH_PAGER: "cat" };
|
|
144
176
|
delete environment.GH_DEBUG;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
177
|
+
for (const name of Object.keys(environment))
|
|
178
|
+
if (name.toUpperCase() === "COPILOT_SKILLS_DIRS")
|
|
179
|
+
delete environment[name];
|
|
148
180
|
const commandFile = options.command === undefined ? "copilot" : options.command.file;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
181
|
+
const prefix = [...(options.command?.args === undefined ? [] : options.command.args), "-C", worktree.path, `--plugin-dir=${options.skill.rootDirectory}`];
|
|
182
|
+
const interrupted = () => {
|
|
183
|
+
if (input.signal?.aborted)
|
|
184
|
+
outcome.interruption = "aborted";
|
|
185
|
+
else if (performance.now() >= deadline)
|
|
186
|
+
outcome.interruption = "timeout";
|
|
187
|
+
return outcome.interruption !== null;
|
|
188
|
+
};
|
|
189
|
+
const runPhase = async (phase, args, output, files, prompt) => {
|
|
190
|
+
outcome.directProcessClosed = false;
|
|
191
|
+
outcome.captureComplete = false;
|
|
192
|
+
outcome.exitCode = null;
|
|
193
|
+
outcome.signal = null;
|
|
194
|
+
outcome.launchFailure = null;
|
|
195
|
+
let child;
|
|
196
|
+
try {
|
|
197
|
+
child = crossSpawn(commandFile, args, { cwd: worktree.path, env: environment, shell: false, windowsHide: true, detached: process.platform !== "win32", stdio: ["pipe", "pipe", "pipe"] });
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
errors.push(asError(error));
|
|
201
|
+
await Promise.all(files.map((file) => file.close()));
|
|
202
|
+
outcome.directProcessClosed = true;
|
|
168
203
|
return;
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
204
|
+
}
|
|
205
|
+
let timeout;
|
|
206
|
+
let force;
|
|
207
|
+
let abandon;
|
|
208
|
+
let stopped = false;
|
|
209
|
+
let resolveClose;
|
|
210
|
+
const closed = new Promise((resolve) => { resolveClose = resolve; });
|
|
211
|
+
const stop = () => {
|
|
212
|
+
if (stopped || outcome.directProcessClosed || outcome.launchFailure !== null)
|
|
213
|
+
return;
|
|
214
|
+
stopped = true;
|
|
215
|
+
if (input.stopProcess !== undefined && child.pid !== undefined) {
|
|
216
|
+
void input.stopProcess(child, attempt).catch((error) => { errors.push(asError(error)); }).finally(() => {
|
|
217
|
+
if (!outcome.directProcessClosed) {
|
|
218
|
+
errors.push(new Error("Copilot termination could not confirm its direct process and streams closed; retained state requires operator recovery."));
|
|
219
|
+
child.stdin.destroy();
|
|
220
|
+
child.stdout.destroy();
|
|
221
|
+
child.stderr.destroy();
|
|
222
|
+
resolveClose();
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
child.kill("SIGTERM");
|
|
228
|
+
force = setTimeout(() => {
|
|
229
|
+
child.kill("SIGKILL");
|
|
230
|
+
abandon = setTimeout(() => {
|
|
231
|
+
errors.push(new Error("Copilot did not close its process and streams within the termination grace period; descendant processes must be excluded before reuse."));
|
|
174
232
|
child.stdin.destroy();
|
|
175
233
|
child.stdout.destroy();
|
|
176
234
|
child.stderr.destroy();
|
|
177
235
|
resolveClose();
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
child.kill("SIGTERM");
|
|
183
|
-
force = setTimeout(() => {
|
|
184
|
-
child.kill("SIGKILL");
|
|
185
|
-
abandon = setTimeout(() => {
|
|
186
|
-
errors.push(new Error("Copilot did not close its process and streams within the termination grace period; descendant processes must be excluded before reuse."));
|
|
187
|
-
child.stdin.destroy();
|
|
188
|
-
child.stdout.destroy();
|
|
189
|
-
child.stderr.destroy();
|
|
190
|
-
resolveClose();
|
|
236
|
+
}, grace);
|
|
191
237
|
}, grace);
|
|
192
|
-
}
|
|
238
|
+
};
|
|
239
|
+
child.once("error", (error) => {
|
|
240
|
+
errors.push(error);
|
|
241
|
+
const failed = error;
|
|
242
|
+
// cross-spawn reports an unresolved Windows command when its cmd.exe wrapper exits.
|
|
243
|
+
// https://github.com/moxystudio/node-cross-spawn/blob/77cd97f3ca7b62c904a63a698fc4a79bf41977d0/lib/enoent.js#L6
|
|
244
|
+
if (failed.code === "ENOENT" && failed.syscall === `spawn ${commandFile}` && failed.path === commandFile &&
|
|
245
|
+
(child.pid === undefined || (process.platform === "win32" && failed.errno === "ENOENT" && Array.isArray(failed.spawnargs) &&
|
|
246
|
+
failed.spawnargs.length === args.length && failed.spawnargs.every((argument, index) => argument === args[index]))))
|
|
247
|
+
outcome.launchFailure = "command-not-found";
|
|
248
|
+
else
|
|
249
|
+
stop();
|
|
250
|
+
});
|
|
251
|
+
child.once("spawn", () => {
|
|
252
|
+
try {
|
|
253
|
+
store.recordProcess(attempt, { pid: child.pid, identity: `${options.processOwner}:${review.id}:${attempt.attempt}:${phase}` });
|
|
254
|
+
input.onProcess?.(child, attempt);
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
errors.push(asError(error));
|
|
258
|
+
stop();
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
child.once("close", (code, signal) => { outcome.directProcessClosed = true; outcome.exitCode = code; outcome.signal = signal; resolveClose(); });
|
|
262
|
+
const abort = () => { outcome.interruption = "aborted"; stop(); };
|
|
263
|
+
input.signal?.addEventListener("abort", abort, { once: true });
|
|
264
|
+
timeout = setTimeout(() => { outcome.interruption = "timeout"; stop(); }, Math.max(0, deadline - performance.now()));
|
|
265
|
+
const capture = async (operation, promptInput = false) => {
|
|
266
|
+
try {
|
|
267
|
+
await operation;
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
errors.push(asError(error));
|
|
272
|
+
// A wrapper can close its input before cross-spawn reports that the command was not found.
|
|
273
|
+
// The process close or configured timeout still bounds a failed prompt delivery.
|
|
274
|
+
if (!promptInput)
|
|
275
|
+
stop();
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
const outputs = [capture(pipeline(child.stdout, output, files[0].createWriteStream())), capture(pipeline(child.stderr, files[1].createWriteStream())),
|
|
280
|
+
capture(pipeline(Readable.from(prompt === undefined ? [] : [prompt]), child.stdin), true)];
|
|
281
|
+
if (input.signal?.aborted)
|
|
282
|
+
abort();
|
|
283
|
+
await closed;
|
|
284
|
+
if (timeout !== undefined)
|
|
285
|
+
clearTimeout(timeout);
|
|
286
|
+
if (force !== undefined)
|
|
287
|
+
clearTimeout(force);
|
|
288
|
+
if (abandon !== undefined)
|
|
289
|
+
clearTimeout(abandon);
|
|
290
|
+
input.signal?.removeEventListener("abort", abort);
|
|
291
|
+
outcome.captureComplete = (await Promise.all(outputs)).every(Boolean);
|
|
193
292
|
};
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
failed.spawnargs.length === args.length && failed.spawnargs.every((argument, index) => argument === args[index])))) {
|
|
202
|
-
outcome.launchFailure = "command-not-found";
|
|
293
|
+
let mainStarted = false;
|
|
294
|
+
try {
|
|
295
|
+
const discovery = new DiscoveryOutput(discoveryLimit);
|
|
296
|
+
const discoveryStdout = await open(path.join(attemptDirectory, "skill-list.stdout.log"), "wx", 0o600);
|
|
297
|
+
let discoveryStderr;
|
|
298
|
+
try {
|
|
299
|
+
discoveryStderr = await open(path.join(attemptDirectory, "skill-list.stderr.log"), "wx", 0o600);
|
|
203
300
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
301
|
+
catch (error) {
|
|
302
|
+
await discoveryStdout.close();
|
|
303
|
+
throw error;
|
|
304
|
+
}
|
|
305
|
+
if (interrupted()) {
|
|
306
|
+
await Promise.all([discoveryStdout.close(), discoveryStderr.close()]);
|
|
307
|
+
return outcome;
|
|
308
|
+
}
|
|
309
|
+
await runPhase("skill-list", [...prefix, "--no-auto-update", "skill", "list", "--json"], discovery, [discoveryStdout, discoveryStderr]);
|
|
310
|
+
const current = store.getReview(review.id);
|
|
208
311
|
try {
|
|
209
|
-
|
|
210
|
-
input.
|
|
312
|
+
const { directProcessClosed, captureComplete, exitCode, signal, interruption, launchFailure } = outcome;
|
|
313
|
+
const proof = await input.excludeProcess(current, { directProcessClosed, captureComplete, exitCode, signal, interruption, launchFailure });
|
|
314
|
+
store.clearProcess(attempt, { processId: current.processId, processIdentity: current.processIdentity }, proof);
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
outcome.processExclusionFailure = asError(error);
|
|
318
|
+
errors.push(outcome.processExclusionFailure);
|
|
319
|
+
return outcome;
|
|
320
|
+
}
|
|
321
|
+
if (interrupted() || !outcome.directProcessClosed || !outcome.captureComplete || errors.length !== 0)
|
|
322
|
+
return outcome;
|
|
323
|
+
if (outcome.exitCode !== 0 || outcome.signal !== null) {
|
|
324
|
+
errors.push(new Error(`Copilot skill discovery exited with code ${outcome.exitCode} and signal ${outcome.signal}.`));
|
|
325
|
+
return outcome;
|
|
326
|
+
}
|
|
327
|
+
try {
|
|
328
|
+
await validateReviewSkillDiscovery(discovery.text(), options.skill);
|
|
211
329
|
}
|
|
212
330
|
catch (error) {
|
|
213
331
|
errors.push(asError(error));
|
|
214
|
-
|
|
332
|
+
return outcome;
|
|
215
333
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
334
|
+
if (interrupted())
|
|
335
|
+
return outcome;
|
|
336
|
+
const parser = new LastLine(lineLimit);
|
|
337
|
+
mainStarted = true;
|
|
338
|
+
await runPhase("review", [...prefix, `--${mode === "resume" ? "resume" : "session-id"}=${pr.sessionId}`, "-s", "--output-format", "text", "--stream", "on", "--no-color",
|
|
339
|
+
"--no-ask-user", "--no-auto-update", "--allow-all-tools", "--log-dir", attemptDirectory], parser, [stdoutFile, stderrFile], reviewPrompt(launched, worktree, coordinate, options.skill, input.previousReview));
|
|
340
|
+
outcome.lastNonemptyLine = parser.lastNonempty;
|
|
222
341
|
try {
|
|
223
|
-
await
|
|
224
|
-
|
|
342
|
+
if (await sessionExists(sessionDirectory))
|
|
343
|
+
store.markSessionEstablished(pr);
|
|
344
|
+
else
|
|
345
|
+
errors.push(new Error(`Copilot session ${pr.sessionId} did not retain its history at ${sessionDirectory}.`));
|
|
225
346
|
}
|
|
226
347
|
catch (error) {
|
|
227
348
|
errors.push(asError(error));
|
|
228
|
-
// A wrapper can close its input before cross-spawn reports that the command was not found.
|
|
229
|
-
// The process close or configured timeout still bounds a failed prompt delivery.
|
|
230
|
-
if (!promptInput)
|
|
231
|
-
stop();
|
|
232
|
-
return false;
|
|
233
349
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
capture(pipeline(Readable.from([reviewPrompt(launched, worktree, coordinate, input.previousReview)]), child.stdin), true)];
|
|
237
|
-
if (input.signal?.aborted)
|
|
238
|
-
abort();
|
|
239
|
-
await closed;
|
|
240
|
-
if (timeout !== undefined)
|
|
241
|
-
clearTimeout(timeout);
|
|
242
|
-
if (force !== undefined)
|
|
243
|
-
clearTimeout(force);
|
|
244
|
-
if (abandon !== undefined)
|
|
245
|
-
clearTimeout(abandon);
|
|
246
|
-
input.signal?.removeEventListener("abort", abort);
|
|
247
|
-
outcome.captureComplete = (await Promise.all(outputs)).every(Boolean);
|
|
248
|
-
outcome.lastNonemptyLine = parser.lastNonempty;
|
|
249
|
-
try {
|
|
250
|
-
if (await sessionExists(sessionDirectory))
|
|
251
|
-
store.markSessionEstablished(pr);
|
|
252
|
-
else
|
|
253
|
-
errors.push(new Error(`Copilot session ${pr.sessionId} did not retain its history at ${sessionDirectory}.`));
|
|
350
|
+
outcome.completed = outcome.directProcessClosed && outcome.captureComplete && errors.length === 0 && outcome.interruption === null && outcome.exitCode === 0 && outcome.signal === null && outcome.lastNonemptyLine === `PR ${review.number} Review Completed`;
|
|
351
|
+
return outcome;
|
|
254
352
|
}
|
|
255
|
-
|
|
256
|
-
|
|
353
|
+
finally {
|
|
354
|
+
if (!mainStarted)
|
|
355
|
+
await Promise.all([stdoutFile.close(), stderrFile.close()]);
|
|
257
356
|
}
|
|
258
|
-
outcome.completed = outcome.directProcessClosed && outcome.captureComplete && errors.length === 0 && outcome.interruption === null && outcome.exitCode === 0 && outcome.signal === null && outcome.lastNonemptyLine === `PR ${review.number} Review Completed`;
|
|
259
|
-
return outcome;
|
|
260
357
|
};
|
|
261
358
|
return { run };
|
|
262
359
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../../src/commands/review/adapters/copilot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../../src/commands/review/adapters/copilot.ts"],"names":[],"mappings":"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"}
|