@codetreker/daynight 0.2.4 → 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.
Files changed (189) hide show
  1. package/dist/api/client.d.ts +43 -0
  2. package/dist/api/client.js +285 -0
  3. package/dist/api/client.js.map +1 -0
  4. package/dist/api/index.d.ts +7 -0
  5. package/dist/api/index.js +5 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/json.d.ts +3 -0
  8. package/dist/api/json.js +25 -0
  9. package/dist/api/json.js.map +1 -0
  10. package/dist/api/operation.d.ts +23 -0
  11. package/dist/api/operation.js +78 -0
  12. package/dist/api/operation.js.map +1 -0
  13. package/dist/api/parse.d.ts +12 -0
  14. package/dist/api/parse.js +160 -0
  15. package/dist/api/parse.js.map +1 -0
  16. package/dist/api/types.d.ts +75 -0
  17. package/dist/api/types.js +2 -0
  18. package/dist/api/types.js.map +1 -0
  19. package/dist/cli/application.d.ts +3 -0
  20. package/dist/cli/application.js +31 -0
  21. package/dist/cli/application.js.map +1 -0
  22. package/dist/cli/commands.d.ts +7 -0
  23. package/dist/cli/commands.js +38 -0
  24. package/dist/cli/commands.js.map +1 -0
  25. package/dist/cli/context.d.ts +17 -0
  26. package/dist/cli/context.js +19 -0
  27. package/dist/cli/context.js.map +1 -0
  28. package/dist/cli/schema.d.ts +52 -0
  29. package/dist/cli/schema.js +108 -0
  30. package/dist/cli/schema.js.map +1 -0
  31. package/dist/commands/completion/bash.d.ts +2 -0
  32. package/dist/commands/completion/bash.js +272 -0
  33. package/dist/commands/completion/bash.js.map +1 -0
  34. package/dist/commands/completion/command.d.ts +2 -0
  35. package/dist/commands/completion/command.js +20 -0
  36. package/dist/commands/completion/command.js.map +1 -0
  37. package/dist/commands/completion/definition.d.ts +2 -0
  38. package/dist/commands/completion/definition.js +8 -0
  39. package/dist/commands/completion/definition.js.map +1 -0
  40. package/dist/commands/completion/zsh.d.ts +2 -0
  41. package/dist/commands/completion/zsh.js +136 -0
  42. package/dist/commands/completion/zsh.js.map +1 -0
  43. package/dist/commands/project/command.d.ts +6 -0
  44. package/dist/commands/project/command.js +39 -0
  45. package/dist/commands/project/command.js.map +1 -0
  46. package/dist/commands/project/definition.d.ts +2 -0
  47. package/dist/commands/project/definition.js +34 -0
  48. package/dist/commands/project/definition.js.map +1 -0
  49. package/dist/commands/project/rendering.d.ts +4 -0
  50. package/dist/commands/project/rendering.js +17 -0
  51. package/dist/commands/project/rendering.js.map +1 -0
  52. package/dist/{copilot.d.ts → commands/review/adapters/copilot.d.ts} +20 -12
  53. package/dist/commands/review/adapters/copilot.js +360 -0
  54. package/dist/commands/review/adapters/copilot.js.map +1 -0
  55. package/dist/{github.d.ts → commands/review/adapters/github.d.ts} +2 -19
  56. package/dist/{github.js → commands/review/adapters/github.js} +0 -43
  57. package/dist/commands/review/adapters/github.js.map +1 -0
  58. package/dist/{git.d.ts → commands/review/adapters/worktrees.d.ts} +3 -2
  59. package/dist/{git.js → commands/review/adapters/worktrees.js} +3 -3
  60. package/dist/commands/review/adapters/worktrees.js.map +1 -0
  61. package/dist/commands/review/command.d.ts +11 -0
  62. package/dist/commands/review/command.js +42 -0
  63. package/dist/commands/review/command.js.map +1 -0
  64. package/dist/{config.d.ts → commands/review/config.d.ts} +8 -8
  65. package/dist/{config.js → commands/review/config.js} +25 -44
  66. package/dist/commands/review/config.js.map +1 -0
  67. package/dist/{coordinator.d.ts → commands/review/coordinator.d.ts} +8 -7
  68. package/dist/{coordinator.js → commands/review/coordinator.js} +8 -3
  69. package/dist/commands/review/coordinator.js.map +1 -0
  70. package/dist/commands/review/definition.d.ts +2 -0
  71. package/dist/commands/review/definition.js +33 -0
  72. package/dist/commands/review/definition.js.map +1 -0
  73. package/dist/commands/review/instance-lock.js.map +1 -0
  74. package/dist/commands/review/listing.d.ts +5 -0
  75. package/dist/{review-list.js → commands/review/listing.js} +3 -9
  76. package/dist/commands/review/listing.js.map +1 -0
  77. package/dist/commands/review/model.d.ts +79 -0
  78. package/dist/commands/review/model.js +2 -0
  79. package/dist/commands/review/model.js.map +1 -0
  80. package/dist/commands/review/paths.d.ts +11 -0
  81. package/dist/commands/review/paths.js +16 -0
  82. package/dist/commands/review/paths.js.map +1 -0
  83. package/dist/commands/review/polling.d.ts +21 -0
  84. package/dist/commands/review/polling.js +44 -0
  85. package/dist/commands/review/polling.js.map +1 -0
  86. package/dist/{processes.d.ts → commands/review/processes.d.ts} +3 -3
  87. package/dist/commands/review/processes.js.map +1 -0
  88. package/dist/{repositories.d.ts → commands/review/repositories.d.ts} +2 -2
  89. package/dist/commands/review/repositories.js +70 -0
  90. package/dist/commands/review/repositories.js.map +1 -0
  91. package/dist/{runtime.d.ts → commands/review/runtime.d.ts} +9 -6
  92. package/dist/{runtime.js → commands/review/runtime.js} +11 -8
  93. package/dist/commands/review/runtime.js.map +1 -0
  94. package/dist/commands/review/skill.d.ts +11 -0
  95. package/dist/commands/review/skill.js +242 -0
  96. package/dist/commands/review/skill.js.map +1 -0
  97. package/dist/commands/review/skills/daynight-review/SKILL.md +63 -0
  98. package/dist/{store.d.ts → commands/review/store.d.ts} +5 -79
  99. package/dist/{store.js → commands/review/store.js} +8 -0
  100. package/dist/commands/review/store.js.map +1 -0
  101. package/dist/commands/server/runtime.d.ts +16 -0
  102. package/dist/commands/server/runtime.js +52 -0
  103. package/dist/commands/server/runtime.js.map +1 -0
  104. package/dist/commands/task/command.d.ts +8 -0
  105. package/dist/commands/task/command.js +106 -0
  106. package/dist/commands/task/command.js.map +1 -0
  107. package/dist/commands/task/definition.d.ts +2 -0
  108. package/dist/commands/task/definition.js +50 -0
  109. package/dist/commands/task/definition.js.map +1 -0
  110. package/dist/commands/task/rendering.d.ts +5 -0
  111. package/dist/commands/task/rendering.js +49 -0
  112. package/dist/commands/task/rendering.js.map +1 -0
  113. package/dist/commands/update/command.d.ts +6 -0
  114. package/dist/commands/update/command.js +23 -0
  115. package/dist/commands/update/command.js.map +1 -0
  116. package/dist/commands/update/definition.d.ts +2 -0
  117. package/dist/commands/update/definition.js +7 -0
  118. package/dist/commands/update/definition.js.map +1 -0
  119. package/dist/{update.d.ts → commands/update/updater.d.ts} +2 -2
  120. package/dist/{update.js → commands/update/updater.js} +3 -3
  121. package/dist/commands/update/updater.js.map +1 -0
  122. package/dist/config/document.d.ts +9 -0
  123. package/dist/config/document.js +45 -0
  124. package/dist/config/document.js.map +1 -0
  125. package/dist/config/files.d.ts +7 -0
  126. package/dist/config/files.js +69 -0
  127. package/dist/config/files.js.map +1 -0
  128. package/dist/config/paths.d.ts +6 -0
  129. package/dist/config/paths.js +9 -0
  130. package/dist/config/paths.js.map +1 -0
  131. package/dist/config/server.d.ts +7 -0
  132. package/dist/config/server.js +34 -0
  133. package/dist/config/server.js.map +1 -0
  134. package/dist/main.js +6 -2
  135. package/dist/main.js.map +1 -1
  136. package/dist/platform/diagnostics.js.map +1 -0
  137. package/dist/platform/files.d.ts +1 -0
  138. package/dist/platform/files.js +48 -0
  139. package/dist/platform/files.js.map +1 -0
  140. package/dist/{paths.d.ts → platform/filesystem.d.ts} +0 -11
  141. package/dist/{paths.js → platform/filesystem.js} +1 -17
  142. package/dist/platform/filesystem.js.map +1 -0
  143. package/dist/platform/terminal.d.ts +1 -0
  144. package/dist/platform/terminal.js +10 -0
  145. package/dist/platform/terminal.js.map +1 -0
  146. package/dist/platform/text.d.ts +2 -0
  147. package/dist/platform/text.js +3 -0
  148. package/dist/platform/text.js.map +1 -0
  149. package/dist/repository/binding.d.ts +21 -0
  150. package/dist/repository/binding.js +242 -0
  151. package/dist/repository/binding.js.map +1 -0
  152. package/dist/repository/context.d.ts +10 -0
  153. package/dist/repository/context.js +32 -0
  154. package/dist/repository/context.js.map +1 -0
  155. package/dist/repository/git.d.ts +20 -0
  156. package/dist/repository/git.js +213 -0
  157. package/dist/repository/git.js.map +1 -0
  158. package/dist/repository/identity.d.ts +5 -0
  159. package/dist/repository/identity.js +154 -0
  160. package/dist/repository/identity.js.map +1 -0
  161. package/dist/repository/index.d.ts +4 -0
  162. package/dist/repository/index.js +3 -0
  163. package/dist/repository/index.js.map +1 -0
  164. package/package.json +6 -5
  165. package/dist/cli.d.ts +0 -19
  166. package/dist/cli.js +0 -202
  167. package/dist/cli.js.map +0 -1
  168. package/dist/config.js.map +0 -1
  169. package/dist/coordinator.js.map +0 -1
  170. package/dist/copilot.js +0 -263
  171. package/dist/copilot.js.map +0 -1
  172. package/dist/diagnostics.js.map +0 -1
  173. package/dist/git.js.map +0 -1
  174. package/dist/github.js.map +0 -1
  175. package/dist/instance-lock.js.map +0 -1
  176. package/dist/paths.js.map +0 -1
  177. package/dist/processes.js.map +0 -1
  178. package/dist/repositories.js +0 -159
  179. package/dist/repositories.js.map +0 -1
  180. package/dist/review-list.d.ts +0 -5
  181. package/dist/review-list.js.map +0 -1
  182. package/dist/runtime.js.map +0 -1
  183. package/dist/store.js.map +0 -1
  184. package/dist/update.js.map +0 -1
  185. /package/dist/{instance-lock.d.ts → commands/review/instance-lock.d.ts} +0 -0
  186. /package/dist/{instance-lock.js → commands/review/instance-lock.js} +0 -0
  187. /package/dist/{processes.js → commands/review/processes.js} +0 -0
  188. /package/dist/{diagnostics.d.ts → platform/diagnostics.d.ts} +0 -0
  189. /package/dist/{diagnostics.js → platform/diagnostics.js} +0 -0
@@ -1,30 +1,37 @@
1
1
  import type { ChildProcess } from "node:child_process";
2
- import type { PreparedWorktree } from "./git.js";
3
- import type { RuntimePaths } from "./paths.js";
4
- import type { AttemptIdentity, ReviewState, Store } from "./store.js";
2
+ import type { PreparedWorktree } from "./worktrees.js";
3
+ import type { ReviewPaths } from "../paths.js";
4
+ import type { Store } from "../store.js";
5
+ import type { AttemptIdentity, ProcessesExcluded, ReviewState } from "../model.js";
6
+ import type { PreparedReviewSkill } from "../skill.js";
5
7
  export type PreviousReview = Pick<ReviewState, "id" | "revision" | "headSha" | "baseRef">;
6
- export type CopilotAttemptOutcome = {
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 & {
7
17
  attempt: AttemptIdentity;
8
18
  sessionId: string;
9
19
  sessionMode: "create" | "resume";
10
20
  stdoutLogPath: string;
11
21
  stderrLogPath: string;
12
22
  completed: boolean;
13
- directProcessClosed: boolean;
14
- captureComplete: boolean;
15
- exitCode: number | null;
16
- signal: NodeJS.Signals | null;
23
+ processExclusionFailure: Error | null;
17
24
  lastNonemptyLine: string | null;
18
- interruption: "aborted" | "timeout" | null;
19
- launchFailure: "command-not-found" | null;
20
25
  errors: Error[];
21
26
  };
22
27
  export type CopilotRunnerOptions = {
23
- paths: RuntimePaths;
28
+ skill: PreparedReviewSkill;
29
+ paths: ReviewPaths;
24
30
  processOwner: string;
25
31
  timeoutMs: number;
26
32
  terminationGraceMs?: number;
27
33
  maxLineCharacters?: number;
34
+ maxDiscoveryBytes?: number;
28
35
  now?: () => number;
29
36
  environment?: NodeJS.ProcessEnv;
30
37
  command?: {
@@ -33,6 +40,7 @@ export type CopilotRunnerOptions = {
33
40
  };
34
41
  };
35
42
  export type CopilotRunOptions = {
43
+ excludeProcess: (review: ReviewState, outcome: CopilotProcessOutcome) => Promise<ProcessesExcluded>;
36
44
  signal?: AbortSignal;
37
45
  previousReview?: PreviousReview;
38
46
  onProcess?: (child: ChildProcess, attempt: AttemptIdentity) => void;
@@ -40,5 +48,5 @@ export type CopilotRunOptions = {
40
48
  };
41
49
  /** Runs one persisted attempt; the caller retains scheduling, final state transitions, and descendant-process exclusion. */
42
50
  export declare const createCopilotRunner: (options: CopilotRunnerOptions) => {
43
- run: (store: Store, reviewId: string, worktree: PreparedWorktree, input?: CopilotRunOptions) => Promise<CopilotAttemptOutcome>;
51
+ run: (store: Store, reviewId: string, worktree: PreparedWorktree, input: CopilotRunOptions) => Promise<CopilotAttemptOutcome>;
44
52
  };
@@ -0,0 +1,360 @@
1
+ import path from "node:path";
2
+ import { lstat, mkdir, mkdtemp, open } from "node:fs/promises";
3
+ import { Readable, Transform } from "node:stream";
4
+ import { performance } from "node:perf_hooks";
5
+ import { pipeline } from "node:stream/promises";
6
+ import crossSpawn from "cross-spawn";
7
+ import { remoteIdentity } from "../config.js";
8
+ import { isolatedGitEnvironment } from "./worktrees.js";
9
+ import { validateReviewSkillDiscovery } from "../skill.js";
10
+ const asError = (value) => value instanceof Error ? value : new Error(String(value));
11
+ const positiveInteger = (value, name) => {
12
+ if (!Number.isSafeInteger(value) || value < 1 || value > 2_147_483_647)
13
+ throw new Error(`${name} must be a positive integer no greater than 2147483647.`);
14
+ };
15
+ const sessionExists = async (directory) => {
16
+ try {
17
+ if (!(await lstat(directory)).isDirectory())
18
+ throw new Error(`Copilot session history ${directory} must be a directory.`);
19
+ return true;
20
+ }
21
+ catch (error) {
22
+ if (error instanceof Error && "code" in error && error.code === "ENOENT")
23
+ return false;
24
+ throw error;
25
+ }
26
+ };
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 })}
30
+ Review this immutable target:
31
+ ${JSON.stringify({ host: review.host, repositoryId: review.githubId, repository: `${repository.owner}/${repository.name}`, pullRequest: review.number,
32
+ reviewId: review.id, revision: review.revision, headSha: review.headSha, baseBranch: review.baseRef, baseSha: worktree.baseSha, mergeBaseSha: worktree.mergeBaseSha })}
33
+ The worktree is already prepared. Its Git environment exposes the original commit objects and a complete checkout.
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.
35
+ Stable review identity: daynight review=${review.id} revision=${review.revision} head=${review.headSha}
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.
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.
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.
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.
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.
41
+ After the required review result has been published or confirmed, finish stdout with exactly this standalone line, with no text after it:
42
+ PR ${review.number} Review Completed
43
+ `;
44
+ class LastLine extends Transform {
45
+ decoder = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
46
+ limit;
47
+ line = "";
48
+ overflow = false;
49
+ lastNonempty = null;
50
+ constructor(limit) { super(); this.limit = limit; }
51
+ accept(text) {
52
+ for (const piece of text.split(/(?<=\n)/)) {
53
+ const newline = piece.endsWith("\n");
54
+ const content = newline ? piece.slice(0, -1) : piece;
55
+ if (this.line.length + content.length > this.limit)
56
+ this.overflow = true;
57
+ if (!this.overflow)
58
+ this.line += content;
59
+ if (newline) {
60
+ const value = this.line.endsWith("\r") ? this.line.slice(0, -1) : this.line;
61
+ if (this.overflow || value.length !== 0)
62
+ this.lastNonempty = this.overflow ? null : value;
63
+ this.line = "";
64
+ this.overflow = false;
65
+ }
66
+ }
67
+ }
68
+ _transform(chunk, _encoding, callback) {
69
+ try {
70
+ this.accept(this.decoder.decode(chunk, { stream: true }));
71
+ callback(null, chunk);
72
+ }
73
+ catch (error) {
74
+ callback(asError(error));
75
+ }
76
+ }
77
+ _flush(callback) {
78
+ try {
79
+ this.accept(this.decoder.decode());
80
+ if (this.overflow || this.line.length !== 0)
81
+ this.lastNonempty = this.overflow ? null : this.line;
82
+ callback();
83
+ }
84
+ catch (error) {
85
+ callback(asError(error));
86
+ }
87
+ }
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
+ }
113
+ /** Runs one persisted attempt; the caller retains scheduling, final state transitions, and descendant-process exclusion. */
114
+ export const createCopilotRunner = (options) => {
115
+ const now = options.now === undefined ? Date.now : options.now;
116
+ const grace = options.terminationGraceMs === undefined ? 5_000 : options.terminationGraceMs;
117
+ const lineLimit = options.maxLineCharacters === undefined ? 8_192 : options.maxLineCharacters;
118
+ const discoveryLimit = options.maxDiscoveryBytes === undefined ? 1_048_576 : options.maxDiscoveryBytes;
119
+ positiveInteger(options.timeoutMs, "Copilot timeout");
120
+ positiveInteger(grace, "Termination grace");
121
+ positiveInteger(lineLimit, "Line character limit");
122
+ positiveInteger(discoveryLimit, "Skill discovery byte limit");
123
+ if (options.processOwner.trim() === "")
124
+ throw new Error("Copilot process owner must be nonempty.");
125
+ const run = async (store, reviewId, worktree, input) => {
126
+ input.signal?.throwIfAborted();
127
+ const review = store.getReview(reviewId);
128
+ if (review === null)
129
+ throw new Error("The Copilot review does not exist.");
130
+ const pr = store.getPullRequest(review);
131
+ const repository = store.getRepository(review);
132
+ if (pr === null || repository === null || pr.sessionId === null || pr.worktreePath !== worktree.path || review.headSha !== worktree.headSha || review.baseSha !== worktree.baseSha)
133
+ throw new Error("The prepared Copilot target does not match persisted review state.");
134
+ const coordinate = remoteIdentity(repository.remote, "Review repository remote");
135
+ const sessionDirectory = path.join(options.paths.copilotDirectory, "session-state", pr.sessionId);
136
+ const existing = await sessionExists(sessionDirectory);
137
+ if (pr.sessionEstablished && !existing)
138
+ throw new Error(`Established Copilot session ${pr.sessionId} is missing its history at ${sessionDirectory}.`);
139
+ if (existing && !pr.sessionEstablished)
140
+ store.markSessionEstablished(pr);
141
+ const mode = existing ? "resume" : "create";
142
+ const reviewLogs = path.join(options.paths.logsDirectory, review.id);
143
+ await Promise.all([options.paths.copilotDirectory, options.paths.cacheDirectory, options.paths.temporaryDirectory, reviewLogs].map((directory) => mkdir(directory, { recursive: true })));
144
+ const attemptDirectory = await mkdtemp(path.join(reviewLogs, `${review.attemptCount + 1}-`));
145
+ const stdoutLogPath = path.join(attemptDirectory, "stdout.log");
146
+ const stderrLogPath = path.join(attemptDirectory, "stderr.log");
147
+ const stdoutFile = await open(stdoutLogPath, "wx", 0o600);
148
+ let stderrFile;
149
+ try {
150
+ stderrFile = await open(stderrLogPath, "wx", 0o600);
151
+ }
152
+ catch (error) {
153
+ await stdoutFile.close();
154
+ throw error;
155
+ }
156
+ let launched;
157
+ try {
158
+ input.signal?.throwIfAborted();
159
+ launched = store.startAttempt(review.id, { processOwner: options.processOwner, stdoutLogPath, stderrLogPath }, now());
160
+ }
161
+ catch (error) {
162
+ await Promise.all([stdoutFile.close(), stderrFile.close()]);
163
+ throw error;
164
+ }
165
+ const deadline = performance.now() + options.timeoutMs;
166
+ const attempt = { reviewId: review.id, attempt: launched.attemptCount };
167
+ const errors = [];
168
+ const outcome = { attempt, sessionId: pr.sessionId, sessionMode: mode, stdoutLogPath, stderrLogPath,
169
+ completed: false, directProcessClosed: true, captureComplete: true, exitCode: null, signal: null, lastNonemptyLine: null,
170
+ interruption: null, launchFailure: null, processExclusionFailure: null, errors };
171
+ const parentEnvironment = options.environment === undefined ? process.env : options.environment;
172
+ const environment = { ...parentEnvironment, ...isolatedGitEnvironment(parentEnvironment, worktree.gitEnvironment),
173
+ COPILOT_HOME: options.paths.copilotDirectory, COPILOT_CACHE_HOME: options.paths.cacheDirectory,
174
+ TMPDIR: options.paths.temporaryDirectory, TMP: options.paths.temporaryDirectory, TEMP: options.paths.temporaryDirectory,
175
+ NO_COLOR: "1", GH_PROMPT_DISABLED: "1", GH_FORCE_TTY: "", PAGER: "cat", GH_PAGER: "cat" };
176
+ delete environment.GH_DEBUG;
177
+ for (const name of Object.keys(environment))
178
+ if (name.toUpperCase() === "COPILOT_SKILLS_DIRS")
179
+ delete environment[name];
180
+ const commandFile = options.command === undefined ? "copilot" : options.command.file;
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;
203
+ return;
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."));
232
+ child.stdin.destroy();
233
+ child.stdout.destroy();
234
+ child.stderr.destroy();
235
+ resolveClose();
236
+ }, grace);
237
+ }, grace);
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);
292
+ };
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);
300
+ }
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);
311
+ try {
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);
329
+ }
330
+ catch (error) {
331
+ errors.push(asError(error));
332
+ return outcome;
333
+ }
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;
341
+ try {
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}.`));
346
+ }
347
+ catch (error) {
348
+ errors.push(asError(error));
349
+ }
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;
352
+ }
353
+ finally {
354
+ if (!mainStarted)
355
+ await Promise.all([stdoutFile.close(), stderrFile.close()]);
356
+ }
357
+ };
358
+ return { run };
359
+ };
360
+ //# sourceMappingURL=copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../../src/commands/review/adapters/copilot.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { RepositoryConfiguration } from "./config.js";
2
- import type { PullRequestObservation, RepositoryIdentity, RepositoryState, Store } from "./store.js";
1
+ import type { RepositoryConfiguration } from "../config.js";
2
+ import type { PullRequestObservation, RepositoryIdentity } from "../model.js";
3
3
  export type CommandOptions = {
4
4
  timeoutMs: number;
5
5
  maxBufferBytes: number;
@@ -51,20 +51,3 @@ export declare const createGitHubClient: (options?: {
51
51
  timeoutMs?: number;
52
52
  maxBufferBytes?: number;
53
53
  }) => GitHubClient;
54
- export declare const pollRepository: (store: Store, configuration: RepositoryConfiguration, client: GitHubClient, options: {
55
- now: () => number;
56
- signal?: AbortSignal;
57
- }) => Promise<RepositoryState>;
58
- export type RepositoryPollResult = {
59
- configuration: RepositoryConfiguration;
60
- ok: true;
61
- repository: RepositoryState;
62
- } | {
63
- configuration: RepositoryConfiguration;
64
- ok: false;
65
- error: unknown;
66
- };
67
- export declare const pollRepositories: (store: Store, configurations: readonly RepositoryConfiguration[], client: GitHubClient, options: {
68
- now: () => number;
69
- signal?: AbortSignal;
70
- }) => Promise<RepositoryPollResult[]>;
@@ -629,47 +629,4 @@ export const createGitHubClient = (options = {}) => {
629
629
  },
630
630
  };
631
631
  };
632
- export const pollRepository = async (store, configuration, client, options) => {
633
- let identity = null;
634
- try {
635
- const repository = await client.resolveRepository(configuration, options.signal);
636
- identity = repository;
637
- const registered = store.registerRepository({ ...repository, remote: configuration.remote, localPath: configuration.path });
638
- if (registered.startPrNumber === null) {
639
- const numbers = await client.listPullRequestNumbers(repository, options.signal);
640
- const startPrNumber = numbers.reduce((maximum, number) => Math.max(maximum, number), 0);
641
- return store.applyRepositoryPoll(repository, { kind: "initialize", startPrNumber }, options.now());
642
- }
643
- const observations = await client.listOpenPullRequests(repository, registered.startPrNumber, options.signal);
644
- const observed = new Set(observations.map((item) => item.number));
645
- for (const previous of store.listPullRequests(repository)) {
646
- if (previous.state === "open" && !observed.has(previous.number))
647
- observations.push(await client.getPullRequest(repository, previous.number, options.signal));
648
- }
649
- return store.applyRepositoryPoll(repository, { kind: "snapshot", observations }, options.now());
650
- }
651
- catch (error) {
652
- if (identity !== null) {
653
- try {
654
- store.recordPollError(identity, error instanceof Error ? error.message : String(error));
655
- }
656
- catch (recordError) {
657
- throw new AggregateError([error, recordError], `GitHub polling and error persistence failed for ${configuration.coordinate}.`);
658
- }
659
- }
660
- throw error;
661
- }
662
- };
663
- export const pollRepositories = async (store, configurations, client, options) => {
664
- const results = [];
665
- for (const configuration of configurations) {
666
- try {
667
- results.push({ configuration, ok: true, repository: await pollRepository(store, configuration, client, options) });
668
- }
669
- catch (error) {
670
- results.push({ configuration, ok: false, error });
671
- }
672
- }
673
- return results;
674
- };
675
632
  //# sourceMappingURL=github.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/commands/review/adapters/github.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { RepositoryConfiguration } from "./config.js";
1
+ import type { RepositoryConfiguration } from "../config.js";
2
2
  import type { CommandExecutor, GitHubClient, GitHubRepository } from "./github.js";
3
- import type { OperationsStopped, ProcessesExcluded, PullRequestIdentity, Store } from "./store.js";
3
+ import type { Store } from "../store.js";
4
+ import type { OperationsStopped, ProcessesExcluded, PullRequestIdentity } from "../model.js";
4
5
  export type LocalRepository = {
5
6
  configuration: RepositoryConfiguration;
6
7
  repository: GitHubRepository;