@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.
- 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.d.ts +3 -0
- package/dist/cli/application.js +31 -0
- package/dist/cli/application.js.map +1 -0
- package/dist/cli/commands.d.ts +7 -0
- package/dist/cli/commands.js +38 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/context.d.ts +17 -0
- package/dist/cli/context.js +19 -0
- package/dist/cli/context.js.map +1 -0
- 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/{copilot.d.ts → commands/review/adapters/copilot.d.ts} +20 -12
- package/dist/commands/review/adapters/copilot.js +360 -0
- package/dist/commands/review/adapters/copilot.js.map +1 -0
- package/dist/{github.d.ts → commands/review/adapters/github.d.ts} +2 -19
- package/dist/{github.js → commands/review/adapters/github.js} +0 -43
- package/dist/commands/review/adapters/github.js.map +1 -0
- package/dist/{git.d.ts → commands/review/adapters/worktrees.d.ts} +3 -2
- package/dist/{git.js → commands/review/adapters/worktrees.js} +3 -3
- package/dist/commands/review/adapters/worktrees.js.map +1 -0
- package/dist/commands/review/command.d.ts +11 -0
- package/dist/commands/review/command.js +42 -0
- package/dist/commands/review/command.js.map +1 -0
- package/dist/{config.d.ts → commands/review/config.d.ts} +8 -8
- package/dist/{config.js → commands/review/config.js} +25 -44
- package/dist/commands/review/config.js.map +1 -0
- package/dist/{coordinator.d.ts → commands/review/coordinator.d.ts} +8 -7
- package/dist/{coordinator.js → commands/review/coordinator.js} +8 -3
- package/dist/commands/review/coordinator.js.map +1 -0
- 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/instance-lock.js.map +1 -0
- package/dist/commands/review/listing.d.ts +5 -0
- package/dist/{review-list.js → commands/review/listing.js} +3 -9
- package/dist/commands/review/listing.js.map +1 -0
- package/dist/commands/review/model.d.ts +79 -0
- package/dist/commands/review/model.js +2 -0
- package/dist/commands/review/model.js.map +1 -0
- package/dist/commands/review/paths.d.ts +11 -0
- package/dist/commands/review/paths.js +16 -0
- package/dist/commands/review/paths.js.map +1 -0
- package/dist/commands/review/polling.d.ts +21 -0
- package/dist/commands/review/polling.js +44 -0
- package/dist/commands/review/polling.js.map +1 -0
- package/dist/{processes.d.ts → commands/review/processes.d.ts} +3 -3
- package/dist/commands/review/processes.js.map +1 -0
- package/dist/{repositories.d.ts → commands/review/repositories.d.ts} +2 -2
- package/dist/commands/review/repositories.js +70 -0
- package/dist/commands/review/repositories.js.map +1 -0
- package/dist/{runtime.d.ts → commands/review/runtime.d.ts} +9 -6
- package/dist/{runtime.js → commands/review/runtime.js} +11 -8
- package/dist/commands/review/runtime.js.map +1 -0
- 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/{store.d.ts → commands/review/store.d.ts} +5 -79
- package/dist/{store.js → commands/review/store.js} +8 -0
- package/dist/commands/review/store.js.map +1 -0
- 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.d.ts +6 -0
- package/dist/commands/update/command.js +23 -0
- package/dist/commands/update/command.js.map +1 -0
- 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/{update.d.ts → commands/update/updater.d.ts} +2 -2
- package/dist/{update.js → commands/update/updater.js} +3 -3
- package/dist/commands/update/updater.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/main.js +6 -2
- package/dist/main.js.map +1 -1
- package/dist/platform/diagnostics.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/{paths.d.ts → platform/filesystem.d.ts} +0 -11
- package/dist/{paths.js → platform/filesystem.js} +1 -17
- package/dist/platform/filesystem.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 +6 -5
- package/dist/cli.d.ts +0 -19
- package/dist/cli.js +0 -202
- package/dist/cli.js.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/coordinator.js.map +0 -1
- package/dist/copilot.js +0 -263
- package/dist/copilot.js.map +0 -1
- package/dist/diagnostics.js.map +0 -1
- package/dist/git.js.map +0 -1
- package/dist/github.js.map +0 -1
- package/dist/instance-lock.js.map +0 -1
- package/dist/paths.js.map +0 -1
- package/dist/processes.js.map +0 -1
- package/dist/repositories.js +0 -159
- package/dist/repositories.js.map +0 -1
- package/dist/review-list.d.ts +0 -5
- package/dist/review-list.js.map +0 -1
- package/dist/runtime.js.map +0 -1
- package/dist/store.js.map +0 -1
- package/dist/update.js.map +0 -1
- /package/dist/{instance-lock.d.ts → commands/review/instance-lock.d.ts} +0 -0
- /package/dist/{instance-lock.js → commands/review/instance-lock.js} +0 -0
- /package/dist/{processes.js → commands/review/processes.js} +0 -0
- /package/dist/{diagnostics.d.ts → platform/diagnostics.d.ts} +0 -0
- /package/dist/{diagnostics.js → platform/diagnostics.js} +0 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { lstat, mkdir, mkdtemp, readFile, readdir, realpath, rename, rm, writeFile } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { parseDocument } from "yaml";
|
|
5
|
+
const skillName = "daynight-review";
|
|
6
|
+
const pluginManifest = Buffer.from(`${JSON.stringify({
|
|
7
|
+
$schema: "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
8
|
+
name: "daynight-review-bundle",
|
|
9
|
+
version: "1.0.0",
|
|
10
|
+
})}\n`, "utf8");
|
|
11
|
+
const hasCode = (error, code) => error instanceof Error && "code" in error && error.code === code;
|
|
12
|
+
const captureBundle = async (directory) => {
|
|
13
|
+
const root = await lstat(directory);
|
|
14
|
+
if (!root.isDirectory() || root.isSymbolicLink()) {
|
|
15
|
+
throw new Error(`Review skill bundle must be a directory without symbolic links: ${directory}.`);
|
|
16
|
+
}
|
|
17
|
+
const entries = [];
|
|
18
|
+
const visit = async (relativeDirectory) => {
|
|
19
|
+
const names = await readdir(path.join(directory, relativeDirectory));
|
|
20
|
+
for (const name of names) {
|
|
21
|
+
if (name === "" || name === "." || name === ".." || /[/\\\0]/u.test(name)) {
|
|
22
|
+
throw new Error(`Review skill bundle contains an invalid path segment: ${JSON.stringify(name)}.`);
|
|
23
|
+
}
|
|
24
|
+
const relativePath = relativeDirectory === "" ? name : `${relativeDirectory}/${name}`;
|
|
25
|
+
const filename = path.join(directory, ...relativePath.split("/"));
|
|
26
|
+
const entry = await lstat(filename);
|
|
27
|
+
if (entry.isSymbolicLink()) {
|
|
28
|
+
throw new Error(`Review skill bundle must not contain symbolic links: ${filename}.`);
|
|
29
|
+
}
|
|
30
|
+
if (entry.isDirectory()) {
|
|
31
|
+
entries.push({ relativePath, type: "directory" });
|
|
32
|
+
await visit(relativePath);
|
|
33
|
+
}
|
|
34
|
+
else if (entry.isFile()) {
|
|
35
|
+
entries.push({ relativePath, type: "file", contents: await readFile(filename) });
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new Error(`Review skill bundle must contain only regular files and directories: ${filename}.`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
await visit("");
|
|
43
|
+
return entries.sort((left, right) => left.relativePath < right.relativePath ? -1 : left.relativePath > right.relativePath ? 1 : 0);
|
|
44
|
+
};
|
|
45
|
+
const validateEntrypoint = (entries) => {
|
|
46
|
+
const entrypoint = entries.find((entry) => entry.relativePath === "SKILL.md");
|
|
47
|
+
if (entrypoint?.type !== "file") {
|
|
48
|
+
throw new Error("Review skill bundle must contain a regular SKILL.md file.");
|
|
49
|
+
}
|
|
50
|
+
let source;
|
|
51
|
+
try {
|
|
52
|
+
source = new TextDecoder("utf-8", { fatal: true }).decode(entrypoint.contents);
|
|
53
|
+
}
|
|
54
|
+
catch (cause) {
|
|
55
|
+
throw new Error("Review skill SKILL.md must be valid UTF-8.", { cause });
|
|
56
|
+
}
|
|
57
|
+
const frontmatter = /^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/u.exec(source);
|
|
58
|
+
if (frontmatter === null) {
|
|
59
|
+
throw new Error("Review skill SKILL.md must begin with YAML frontmatter.");
|
|
60
|
+
}
|
|
61
|
+
const document = parseDocument(frontmatter[1], {
|
|
62
|
+
strict: true,
|
|
63
|
+
uniqueKeys: true,
|
|
64
|
+
stringKeys: true,
|
|
65
|
+
prettyErrors: false,
|
|
66
|
+
});
|
|
67
|
+
const problems = [...document.errors, ...document.warnings];
|
|
68
|
+
if (problems.length !== 0) {
|
|
69
|
+
throw new Error("Review skill SKILL.md has invalid YAML frontmatter.", {
|
|
70
|
+
cause: new AggregateError(problems, "Review skill frontmatter was rejected."),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
let metadata;
|
|
74
|
+
try {
|
|
75
|
+
metadata = document.toJS();
|
|
76
|
+
}
|
|
77
|
+
catch (cause) {
|
|
78
|
+
throw new Error("Cannot decode review skill frontmatter.", { cause });
|
|
79
|
+
}
|
|
80
|
+
if (typeof metadata !== "object" || metadata === null || Array.isArray(metadata)) {
|
|
81
|
+
throw new Error("Review skill frontmatter must be a mapping.");
|
|
82
|
+
}
|
|
83
|
+
if (!("name" in metadata) || metadata.name !== skillName) {
|
|
84
|
+
throw new Error(`Review skill frontmatter name must be ${skillName}.`);
|
|
85
|
+
}
|
|
86
|
+
if (!("description" in metadata) || typeof metadata.description !== "string" || metadata.description.trim() === "" || metadata.description.includes("\0")) {
|
|
87
|
+
throw new Error("Review skill frontmatter description must be a nonempty string without NUL characters.");
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const bundleDigest = (entries) => {
|
|
91
|
+
const hash = createHash("sha256").update("daynight-review-plugin-bundle-v1\0");
|
|
92
|
+
const append = (bytes) => {
|
|
93
|
+
const size = Buffer.alloc(8);
|
|
94
|
+
size.writeBigUInt64BE(BigInt(bytes.length));
|
|
95
|
+
hash.update(size).update(bytes);
|
|
96
|
+
};
|
|
97
|
+
for (const entry of entries) {
|
|
98
|
+
hash.update(entry.type === "file" ? "f" : "d");
|
|
99
|
+
append(Buffer.from(entry.relativePath, "utf8"));
|
|
100
|
+
if (entry.type === "file") {
|
|
101
|
+
append(entry.contents);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return hash.digest("hex");
|
|
105
|
+
};
|
|
106
|
+
const pluginBundle = (entries) => [
|
|
107
|
+
{ relativePath: "plugin.json", type: "file", contents: pluginManifest },
|
|
108
|
+
{ relativePath: "skills", type: "directory" },
|
|
109
|
+
{ relativePath: `skills/${skillName}`, type: "directory" },
|
|
110
|
+
...entries.map((entry) => ({ ...entry, relativePath: `skills/${skillName}/${entry.relativePath}` })),
|
|
111
|
+
];
|
|
112
|
+
const verifySnapshot = async (directory, expected) => {
|
|
113
|
+
const actual = await captureBundle(directory);
|
|
114
|
+
if (actual.length !== expected.length || actual.some((entry, index) => {
|
|
115
|
+
const wanted = expected[index];
|
|
116
|
+
return entry.relativePath !== wanted.relativePath || entry.type !== wanted.type ||
|
|
117
|
+
(entry.type === "file" && wanted.type === "file" && !entry.contents.equals(wanted.contents));
|
|
118
|
+
})) {
|
|
119
|
+
throw new Error(`Review skill snapshot does not match its captured bundle: ${directory}.`);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
export const prepareReviewSkill = async (packageDirectory, cacheDirectory) => {
|
|
123
|
+
const sourceDirectory = path.join(packageDirectory, "dist", "commands", "review", "skills", skillName);
|
|
124
|
+
let entries;
|
|
125
|
+
try {
|
|
126
|
+
entries = await captureBundle(sourceDirectory);
|
|
127
|
+
validateEntrypoint(entries);
|
|
128
|
+
}
|
|
129
|
+
catch (cause) {
|
|
130
|
+
throw new Error(`Cannot capture installed review skill bundle ${sourceDirectory}.`, { cause });
|
|
131
|
+
}
|
|
132
|
+
const snapshot = pluginBundle(entries);
|
|
133
|
+
const digest = bundleDigest(snapshot);
|
|
134
|
+
const snapshotsDirectory = path.resolve(cacheDirectory, "review-skills");
|
|
135
|
+
const rootDirectory = path.join(snapshotsDirectory, digest);
|
|
136
|
+
const directory = path.join(rootDirectory, "skills", skillName);
|
|
137
|
+
const prepared = { name: skillName, digest, rootDirectory, directory, entrypoint: path.join(directory, "SKILL.md") };
|
|
138
|
+
let temporaryDirectory;
|
|
139
|
+
let preparationError;
|
|
140
|
+
let publicationError;
|
|
141
|
+
try {
|
|
142
|
+
await mkdir(snapshotsDirectory, { recursive: true });
|
|
143
|
+
let existing = false;
|
|
144
|
+
try {
|
|
145
|
+
await lstat(rootDirectory);
|
|
146
|
+
existing = true;
|
|
147
|
+
}
|
|
148
|
+
catch (cause) {
|
|
149
|
+
if (!hasCode(cause, "ENOENT")) {
|
|
150
|
+
throw cause;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (!existing) {
|
|
154
|
+
temporaryDirectory = await mkdtemp(path.join(snapshotsDirectory, ".prepare-"));
|
|
155
|
+
for (const entry of snapshot) {
|
|
156
|
+
const destination = path.join(temporaryDirectory, ...entry.relativePath.split("/"));
|
|
157
|
+
if (entry.type === "directory") {
|
|
158
|
+
await mkdir(destination);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
await writeFile(destination, entry.contents, { flag: "wx" });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
await rename(temporaryDirectory, rootDirectory);
|
|
166
|
+
temporaryDirectory = undefined;
|
|
167
|
+
}
|
|
168
|
+
catch (cause) {
|
|
169
|
+
// A concurrent publication is accepted only after verifying the complete winning snapshot.
|
|
170
|
+
publicationError = cause;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
await verifySnapshot(rootDirectory, snapshot);
|
|
175
|
+
}
|
|
176
|
+
catch (cause) {
|
|
177
|
+
if (publicationError !== undefined) {
|
|
178
|
+
throw new AggregateError([publicationError, cause], "Cannot publish or reuse the review skill snapshot.");
|
|
179
|
+
}
|
|
180
|
+
throw cause;
|
|
181
|
+
}
|
|
182
|
+
return prepared;
|
|
183
|
+
}
|
|
184
|
+
catch (cause) {
|
|
185
|
+
preparationError = new Error(`Cannot prepare review skill snapshot ${rootDirectory}.`, { cause });
|
|
186
|
+
throw preparationError;
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
if (temporaryDirectory !== undefined) {
|
|
190
|
+
try {
|
|
191
|
+
await rm(temporaryDirectory, { recursive: true, force: true });
|
|
192
|
+
}
|
|
193
|
+
catch (cause) {
|
|
194
|
+
const cleanupError = new Error(`Cannot remove review skill preparation directory ${temporaryDirectory}.`, { cause });
|
|
195
|
+
if (preparationError !== undefined) {
|
|
196
|
+
throw new AggregateError([preparationError, cleanupError], "Review skill preparation and cleanup failed.");
|
|
197
|
+
}
|
|
198
|
+
throw cleanupError;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
export const validateReviewSkillDiscovery = async (output, skill) => {
|
|
204
|
+
let entries;
|
|
205
|
+
try {
|
|
206
|
+
entries = JSON.parse(output);
|
|
207
|
+
}
|
|
208
|
+
catch (cause) {
|
|
209
|
+
throw new Error("Copilot skill discovery did not return valid JSON.", { cause });
|
|
210
|
+
}
|
|
211
|
+
if (!Array.isArray(entries)) {
|
|
212
|
+
throw new Error("Copilot skill discovery must return a JSON array.");
|
|
213
|
+
}
|
|
214
|
+
for (const entry of entries) {
|
|
215
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry) || !("name" in entry) || typeof entry.name !== "string" || entry.name.trim() === "" || entry.name.includes("\0")) {
|
|
216
|
+
throw new Error("Copilot skill discovery contains a malformed skill entry.");
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
const matching = entries.filter((entry) => entry.name === skill.name);
|
|
220
|
+
if (matching.length !== 1) {
|
|
221
|
+
throw new Error(`Copilot skill discovery must select exactly one ${skill.name} skill; found ${matching.length}.`);
|
|
222
|
+
}
|
|
223
|
+
const match = matching[0];
|
|
224
|
+
if (match.enabled !== true) {
|
|
225
|
+
throw new Error(`Copilot skill ${skill.name} must be enabled.`);
|
|
226
|
+
}
|
|
227
|
+
if (typeof match.path !== "string" || match.path.trim() === "" || match.path.includes("\0") || !path.isAbsolute(match.path)) {
|
|
228
|
+
throw new Error(`Copilot skill ${skill.name} must have an absolute directory path.`);
|
|
229
|
+
}
|
|
230
|
+
let actualDirectory;
|
|
231
|
+
let expectedDirectory;
|
|
232
|
+
try {
|
|
233
|
+
[actualDirectory, expectedDirectory] = await Promise.all([realpath(match.path), realpath(skill.directory)]);
|
|
234
|
+
}
|
|
235
|
+
catch (cause) {
|
|
236
|
+
throw new Error(`Cannot resolve discovered ${skill.name} skill directory.`, { cause });
|
|
237
|
+
}
|
|
238
|
+
if (actualDirectory !== expectedDirectory) {
|
|
239
|
+
throw new Error(`Copilot skill ${skill.name} resolves to ${actualDirectory}; expected ${expectedDirectory}.`);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/commands/review/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: daynight-review
|
|
3
|
+
description: Review the immutable pull-request target supplied by Daynight, proving introduced Critical or Major defects and preparing actionable inline findings.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Daynight Review
|
|
7
|
+
|
|
8
|
+
Use the task-supplied target, publication identity, eligibility checks,
|
|
9
|
+
reconciliation rules and completion protocol. Those values belong to the current
|
|
10
|
+
attempt, including when the conversation contains an earlier review. Repository
|
|
11
|
+
instructions remain applicable within that target and the authorized review.
|
|
12
|
+
|
|
13
|
+
## Establish the change
|
|
14
|
+
|
|
15
|
+
Read the complete diff for the supplied merge-base and head, the surrounding
|
|
16
|
+
implementation, and relevant requirements. Trace changed behavior through its
|
|
17
|
+
callers, consumers and persisted or exchanged data. Derive expected behavior
|
|
18
|
+
from those contracts; do not treat a plausible alternative design as a defect.
|
|
19
|
+
|
|
20
|
+
For each suspected problem, identify the concrete trigger, affected caller,
|
|
21
|
+
observable failure and changed line that introduces it. Compare the original
|
|
22
|
+
behavior when needed to distinguish an introduced defect from an existing one.
|
|
23
|
+
Include adjacent code only when its interaction with this change causes the
|
|
24
|
+
failure.
|
|
25
|
+
|
|
26
|
+
## Verify consequential defects
|
|
27
|
+
|
|
28
|
+
Prioritize data loss, incorrect results, broken authorization, unavailable
|
|
29
|
+
operations, and lifecycle or concurrency failures that materially affect the
|
|
30
|
+
delivered behavior. Examine relevant failure paths and resource ownership, not
|
|
31
|
+
only the successful path.
|
|
32
|
+
|
|
33
|
+
Challenge each candidate independently: follow its callers, inspect the actual
|
|
34
|
+
dependency contract, or run a bounded probe that demonstrates its consequence.
|
|
35
|
+
Choose verification that distinguishes the suspected failure from correct
|
|
36
|
+
behavior. A passing test suite does not by itself settle lifecycle, concurrency,
|
|
37
|
+
filesystem, migration or remote-publication behavior. Preserve errors and state
|
|
38
|
+
the limits of evidence; discard findings that remain speculative.
|
|
39
|
+
|
|
40
|
+
Keep probes within the supplied worktree and temporary directory, preserve the
|
|
41
|
+
captured target, and obey the task's foreground-process and cleanup rules.
|
|
42
|
+
|
|
43
|
+
## Select and publish findings
|
|
44
|
+
|
|
45
|
+
Report only actionable Critical or Major defects introduced by the change.
|
|
46
|
+
Critical defects have severe, broad consequences such as destructive data loss
|
|
47
|
+
or a fundamental security failure. Major defects break required behavior for a
|
|
48
|
+
concrete supported use case. Judge severity by the demonstrated consequence and
|
|
49
|
+
reach, not by how small the fix appears.
|
|
50
|
+
|
|
51
|
+
Defer minor improvements, style preferences, pre-existing defects and unrelated
|
|
52
|
+
cleanup. Do not grow the review into a repository-wide audit. If an uncertain
|
|
53
|
+
candidate cannot be established with the available evidence, leave it out of
|
|
54
|
+
published findings.
|
|
55
|
+
|
|
56
|
+
Write English inline comments on the relevant changed lines and identify the
|
|
57
|
+
reviewing agent as required by the task. Each comment states the defect, the
|
|
58
|
+
trigger or affected behavior, and the necessary correction concisely. Keep
|
|
59
|
+
investigation narration, reproduction transcripts and lists of things checked
|
|
60
|
+
out of the comment. Combine duplicate manifestations of one cause.
|
|
61
|
+
|
|
62
|
+
Follow the current task's result-publication and retry-reconciliation protocol.
|
|
63
|
+
Only its successful publication or confirmation permits its completion marker.
|
|
@@ -1,82 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
host: string;
|
|
3
|
-
githubId: string;
|
|
4
|
-
};
|
|
5
|
-
export type PullRequestIdentity = RepositoryIdentity & {
|
|
6
|
-
number: number;
|
|
7
|
-
};
|
|
8
|
-
export type RepositoryState = RepositoryIdentity & {
|
|
9
|
-
remote: string;
|
|
10
|
-
localPath: string;
|
|
11
|
-
startPrNumber: number | null;
|
|
12
|
-
initializedAt: number | null;
|
|
13
|
-
lastPollAt: number | null;
|
|
14
|
-
lastPollError: string | null;
|
|
15
|
-
};
|
|
16
|
-
export type PullRequestObservation = {
|
|
17
|
-
number: number;
|
|
18
|
-
state: "open" | "closed" | "merged";
|
|
19
|
-
draft: boolean;
|
|
20
|
-
headSha: string;
|
|
21
|
-
baseRef: string;
|
|
22
|
-
baseSha: string;
|
|
23
|
-
};
|
|
24
|
-
export type RepositoryPollUpdate = {
|
|
25
|
-
kind: "initialize";
|
|
26
|
-
startPrNumber: number;
|
|
27
|
-
} | {
|
|
28
|
-
kind: "snapshot";
|
|
29
|
-
observations: readonly PullRequestObservation[];
|
|
30
|
-
};
|
|
31
|
-
export type PullRequestState = PullRequestIdentity & Omit<PullRequestObservation, "number"> & {
|
|
32
|
-
desiredRevision: number;
|
|
33
|
-
completedRevision: number;
|
|
34
|
-
sessionId: string | null;
|
|
35
|
-
sessionEstablished: boolean;
|
|
36
|
-
worktreePath: string | null;
|
|
37
|
-
cleanupPending: boolean;
|
|
38
|
-
cleanupError: string | null;
|
|
39
|
-
observedAt: number;
|
|
40
|
-
};
|
|
41
|
-
export type ReviewStatus = "preparing" | "running" | "retry_wait" | "completed" | "failed" | "interrupted" | "superseded";
|
|
42
|
-
export type ReviewState = PullRequestIdentity & {
|
|
43
|
-
id: string;
|
|
44
|
-
revision: number;
|
|
45
|
-
headSha: string;
|
|
46
|
-
baseRef: string;
|
|
47
|
-
baseSha: string | null;
|
|
48
|
-
status: ReviewStatus;
|
|
49
|
-
attemptCount: number;
|
|
50
|
-
maxAttempts: number;
|
|
51
|
-
retryAt: number | null;
|
|
52
|
-
processOwner: string | null;
|
|
53
|
-
processId: number | null;
|
|
54
|
-
processIdentity: string | null;
|
|
55
|
-
stdoutLogPath: string | null;
|
|
56
|
-
stderrLogPath: string | null;
|
|
57
|
-
lastError: string | null;
|
|
58
|
-
createdAt: number;
|
|
59
|
-
updatedAt: number;
|
|
60
|
-
};
|
|
61
|
-
export type ReviewCandidate = {
|
|
62
|
-
pullRequest: PullRequestState;
|
|
63
|
-
review: ReviewState | null;
|
|
64
|
-
};
|
|
65
|
-
export type ReviewListingSnapshot = {
|
|
66
|
-
repositories: RepositoryState[];
|
|
67
|
-
pullRequests: PullRequestState[];
|
|
68
|
-
reviews: ReviewState[];
|
|
69
|
-
};
|
|
70
|
-
export type AttemptIdentity = {
|
|
71
|
-
reviewId: string;
|
|
72
|
-
attempt: number;
|
|
73
|
-
};
|
|
74
|
-
export type OperationsStopped = {
|
|
75
|
-
operationsStopped: true;
|
|
76
|
-
};
|
|
77
|
-
export type ProcessesExcluded = {
|
|
78
|
-
processesExcluded: true;
|
|
79
|
-
};
|
|
1
|
+
import type { RepositoryIdentity, PullRequestIdentity, RepositoryState, PullRequestObservation, RepositoryPollUpdate, PullRequestState, ReviewState, ReviewCandidate, ReviewListingSnapshot, AttemptIdentity, OperationsStopped, ProcessesExcluded } from "./model.js";
|
|
80
2
|
export declare const readReviewListingSnapshot: (databaseFile: string) => ReviewListingSnapshot | null;
|
|
81
3
|
export declare const openStore: (databaseFile: string, options?: {
|
|
82
4
|
busyTimeoutMs?: number;
|
|
@@ -114,6 +36,10 @@ export declare const openStore: (databaseFile: string, options?: {
|
|
|
114
36
|
pid: number;
|
|
115
37
|
identity: string;
|
|
116
38
|
}) => ReviewState;
|
|
39
|
+
clearProcess: (identity: AttemptIdentity, expected: {
|
|
40
|
+
processId: number | null;
|
|
41
|
+
processIdentity: string | null;
|
|
42
|
+
}, proof: ProcessesExcluded) => ReviewState;
|
|
117
43
|
markSessionEstablished: (identity: PullRequestIdentity) => PullRequestState;
|
|
118
44
|
completeReview: (identity: AttemptIdentity, proof: ProcessesExcluded, now: number) => ReviewState;
|
|
119
45
|
retryReview: (identity: AttemptIdentity, proof: ProcessesExcluded, input: {
|
|
@@ -424,6 +424,14 @@ export const openStore = (databaseFile, options = {}) => {
|
|
|
424
424
|
db.prepare("UPDATE reviews SET process_id = @pid, process_identity = @identity WHERE id = @id").run({ id: review.id, ...input });
|
|
425
425
|
return needReview(review.id);
|
|
426
426
|
}),
|
|
427
|
+
clearProcess: (identity, expected, proof) => atomic(() => {
|
|
428
|
+
requireExcluded(proof);
|
|
429
|
+
const review = attemptReview(identity);
|
|
430
|
+
if (review.processId !== expected.processId || review.processIdentity !== expected.processIdentity)
|
|
431
|
+
throw new Error("The running attempt's process identity changed before exclusion was recorded.");
|
|
432
|
+
db.prepare("UPDATE reviews SET process_id = NULL, process_identity = NULL WHERE id = @id").run({ id: review.id });
|
|
433
|
+
return needReview(review.id);
|
|
434
|
+
}),
|
|
427
435
|
markSessionEstablished: (identity) => atomic(() => {
|
|
428
436
|
const pullRequest = needPullRequest(identity);
|
|
429
437
|
if (pullRequest.sessionId === null)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/commands/review/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { EventEmitter } from "node:events";
|
|
2
|
+
import type { ApiClient, Operation, OperationLimits } from "../../api/index.js";
|
|
3
|
+
import type { CliContext } from "../../cli/context.js";
|
|
4
|
+
export type ServerSession = {
|
|
5
|
+
readonly api: ApiClient;
|
|
6
|
+
readonly operation: Operation;
|
|
7
|
+
readonly serverUrl: string;
|
|
8
|
+
};
|
|
9
|
+
export type ServerCommand = (session: ServerSession) => Promise<string>;
|
|
10
|
+
export type ServerCommandOptions = {
|
|
11
|
+
readonly signalEmitter?: Pick<EventEmitter, "on" | "off">;
|
|
12
|
+
readonly platform?: NodeJS.Platform;
|
|
13
|
+
readonly operationLimits?: Partial<OperationLimits>;
|
|
14
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
15
|
+
};
|
|
16
|
+
export declare const runServerCommand: (context: CliContext, command: ServerCommand, options?: ServerCommandOptions) => Promise<void>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createApiClient, createOperation } from "../../api/index.js";
|
|
2
|
+
import { resolveConfigurationPaths } from "../../config/paths.js";
|
|
3
|
+
import { loadServerConfiguration } from "../../config/server.js";
|
|
4
|
+
export const runServerCommand = async (context, command, options = {}) => {
|
|
5
|
+
const cancellation = new AbortController();
|
|
6
|
+
const operation = createOperation({ signal: cancellation.signal, ...(options.operationLimits === undefined ? {} : { limits: options.operationLimits }) });
|
|
7
|
+
const emitter = options.signalEmitter ?? process;
|
|
8
|
+
const signals = (options.platform ?? process.platform) === "win32" ? ["SIGINT", "SIGTERM", "SIGBREAK"] : ["SIGINT", "SIGTERM"];
|
|
9
|
+
const listeners = [];
|
|
10
|
+
let failed = false;
|
|
11
|
+
let failure;
|
|
12
|
+
try {
|
|
13
|
+
for (const signal of signals) {
|
|
14
|
+
const cancel = () => cancellation.abort(new Error(`Received ${signal}.`));
|
|
15
|
+
emitter.on(signal, cancel);
|
|
16
|
+
listeners.push([signal, cancel]);
|
|
17
|
+
}
|
|
18
|
+
operation.check();
|
|
19
|
+
const paths = resolveConfigurationPaths(context.homeDirectory());
|
|
20
|
+
const { serverUrl } = await loadServerConfiguration(paths, operation.signal);
|
|
21
|
+
operation.check();
|
|
22
|
+
const api = createApiClient({ serverUrl, operation, ...(options.fetch === undefined ? {} : { fetch: options.fetch }) });
|
|
23
|
+
const output = await command({ api, operation, serverUrl });
|
|
24
|
+
operation.check();
|
|
25
|
+
context.stdout(output);
|
|
26
|
+
}
|
|
27
|
+
catch (cause) {
|
|
28
|
+
failed = true;
|
|
29
|
+
failure = cause;
|
|
30
|
+
throw cause;
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
const cleanup = [];
|
|
34
|
+
for (const [signal, listener] of listeners) {
|
|
35
|
+
try {
|
|
36
|
+
emitter.off(signal, listener);
|
|
37
|
+
}
|
|
38
|
+
catch (cause) {
|
|
39
|
+
cleanup.push(cause);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
operation.dispose();
|
|
44
|
+
}
|
|
45
|
+
catch (cause) {
|
|
46
|
+
cleanup.push(cause);
|
|
47
|
+
}
|
|
48
|
+
if (cleanup.length !== 0)
|
|
49
|
+
throw new AggregateError(failed ? [failure, ...cleanup] : cleanup, "Server command or cancellation cleanup failed.");
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/commands/server/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CliContext } from "../../cli/context.js";
|
|
2
|
+
import type { resolveProject } from "../../repository/index.js";
|
|
3
|
+
import type { runServerCommand } from "../server/runtime.js";
|
|
4
|
+
export type TaskCommandDependencies = {
|
|
5
|
+
runServerCommand: typeof runServerCommand;
|
|
6
|
+
resolveProject: typeof resolveProject;
|
|
7
|
+
};
|
|
8
|
+
export declare const runTaskCommand: (args: readonly string[], context: CliContext, dependencies?: TaskCommandDependencies) => Promise<void>;
|