@clemrig/factory 0.18.3 → 0.19.0

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 (54) hide show
  1. package/README.md +14 -18
  2. package/dist/app/factory.d.ts +2 -0
  3. package/dist/app/factory.js +5 -1
  4. package/dist/app/factory.js.map +1 -1
  5. package/dist/app/review.d.ts +16 -0
  6. package/dist/app/review.js +87 -0
  7. package/dist/app/review.js.map +1 -0
  8. package/dist/app/workflows/implement.js +3 -7
  9. package/dist/app/workflows/implement.js.map +1 -1
  10. package/dist/app/workflows/stages/deliver.d.ts +5 -4
  11. package/dist/app/workflows/stages/deliver.js +47 -53
  12. package/dist/app/workflows/stages/deliver.js.map +1 -1
  13. package/dist/app/workflows/stages/prepare.js +11 -7
  14. package/dist/app/workflows/stages/prepare.js.map +1 -1
  15. package/dist/app/workflows/stages/resume.js +0 -4
  16. package/dist/app/workflows/stages/resume.js.map +1 -1
  17. package/dist/app/workflows/stages/run.d.ts +1 -2
  18. package/dist/app/workflows/tidy.js +2 -3
  19. package/dist/app/workflows/tidy.js.map +1 -1
  20. package/dist/cli/ui.d.ts +4 -2
  21. package/dist/cli/ui.js +17 -5
  22. package/dist/cli/ui.js.map +1 -1
  23. package/dist/domain/board.d.ts +2 -0
  24. package/dist/domain/board.js +4 -1
  25. package/dist/domain/board.js.map +1 -1
  26. package/dist/domain/description.d.ts +57 -5
  27. package/dist/domain/description.js +133 -12
  28. package/dist/domain/description.js.map +1 -1
  29. package/dist/domain/diff.d.ts +8 -0
  30. package/dist/domain/diff.js +90 -0
  31. package/dist/domain/diff.js.map +1 -0
  32. package/dist/domain/pull-request.d.ts +9 -21
  33. package/dist/domain/pull-request.js +43 -228
  34. package/dist/domain/pull-request.js.map +1 -1
  35. package/dist/domain/review-page.d.ts +171 -0
  36. package/dist/domain/review-page.js +200 -0
  37. package/dist/domain/review-page.js.map +1 -0
  38. package/dist/system/environment.d.ts +6 -0
  39. package/dist/system/environment.js +19 -0
  40. package/dist/system/environment.js.map +1 -1
  41. package/dist/system/factory.d.ts +2 -0
  42. package/dist/system/factory.js +4 -0
  43. package/dist/system/factory.js.map +1 -1
  44. package/dist/system/git.d.ts +5 -1
  45. package/dist/system/git.js +19 -2
  46. package/dist/system/git.js.map +1 -1
  47. package/dist/system/github.d.ts +3 -12
  48. package/dist/system/github.js +7 -31
  49. package/dist/system/github.js.map +1 -1
  50. package/dist/system/run-files.d.ts +14 -0
  51. package/dist/system/run-files.js +51 -8
  52. package/dist/system/run-files.js.map +1 -1
  53. package/package.json +2 -2
  54. package/prompts/describe.md +36 -15
@@ -0,0 +1,171 @@
1
+ import { z } from "@clemrig/flow";
2
+ import type { Description, decisionKinds } from "./description.js";
3
+ import type { Plan } from "./plan.js";
4
+ import { type ChangedFile, type Implementation, type Review } from "./review.js";
5
+ import type { Criterion } from "./spec.js";
6
+ import type { CheckResult } from "./verification.js";
7
+ /** What the review page shows of a delivered change; `@clemrig/factory-ui` draws it. */
8
+ export interface ReviewPage {
9
+ run: {
10
+ id: string;
11
+ durationMs: number | null;
12
+ costUsd: number | null;
13
+ };
14
+ title: string;
15
+ objective: string;
16
+ pullRequest: {
17
+ url: string;
18
+ number: number;
19
+ };
20
+ links: {
21
+ spec: string;
22
+ plan: string;
23
+ };
24
+ danger: Description["danger"];
25
+ changes: string[];
26
+ visuals: Description["visuals"];
27
+ screenshots: PageScreenshot[];
28
+ noScreenshots?: string;
29
+ guide: {
30
+ start: {
31
+ file: string;
32
+ why: string;
33
+ url: string;
34
+ };
35
+ groups: {
36
+ title: string;
37
+ files: PageFile[];
38
+ }[];
39
+ };
40
+ rounds: {
41
+ met: number;
42
+ total: number;
43
+ blocking: number;
44
+ nonBlocking: number;
45
+ resolved: {
46
+ summary: string;
47
+ evidence: string;
48
+ }[];
49
+ }[];
50
+ criteria: PageCriterion[];
51
+ checks: {
52
+ name: string;
53
+ durationMs: number;
54
+ }[];
55
+ skippedChecks: string[];
56
+ decisions: PageDecision[];
57
+ manualChecks: {
58
+ id: string;
59
+ title: string;
60
+ expect: string;
61
+ why: string;
62
+ }[];
63
+ assumptions: string[];
64
+ otherInterpretations: string[];
65
+ otherDeviations: string[];
66
+ }
67
+ interface PageScreenshot {
68
+ file: string;
69
+ caption: string;
70
+ url: string;
71
+ }
72
+ type PageFile = ChangedFile & {
73
+ url: string;
74
+ };
75
+ interface PageCriterion {
76
+ id: string;
77
+ text: string;
78
+ status: "met" | "not_met";
79
+ evidence: string;
80
+ }
81
+ interface PageFinding {
82
+ nature: string;
83
+ blocking: boolean;
84
+ file?: string;
85
+ summary: string;
86
+ }
87
+ interface PageDecision {
88
+ id: string;
89
+ kind: (typeof decisionKinds)[number] | "non_blocking" | "open";
90
+ title: string;
91
+ criterion?: string;
92
+ advice: "accept" | "revise";
93
+ recommendation: string;
94
+ why?: string;
95
+ source?: {
96
+ kind: "interpretation" | "deviation";
97
+ text: string;
98
+ };
99
+ findings?: PageFinding[];
100
+ unmet?: PageCriterion[];
101
+ file?: {
102
+ path: string;
103
+ url: string;
104
+ };
105
+ visual?: {
106
+ kind: "reading";
107
+ spec: string;
108
+ read: string;
109
+ } | {
110
+ kind: "diff";
111
+ file: string;
112
+ content: string;
113
+ } | {
114
+ kind: "screenshots";
115
+ items: PageScreenshot[];
116
+ } | {
117
+ kind: "list";
118
+ items: string[];
119
+ };
120
+ }
121
+ /** What the page is computed from: the run's data, and where the page and the pull request show its files. */
122
+ export interface ReviewFacts {
123
+ run: {
124
+ id: string;
125
+ durationMs: number | null;
126
+ costUsd: number | null;
127
+ };
128
+ title: string;
129
+ objective: string;
130
+ criteria: Criterion[];
131
+ /** Runs of factory 0.7 have no interpretations. */
132
+ plan: Pick<Plan, "risks"> & Partial<Pick<Plan, "interpretations">>;
133
+ implementation: Pick<Implementation, "deviations">;
134
+ /** The review the run judged last, and every review in order: absent from runs of an earlier factory. */
135
+ review: Review;
136
+ reviews?: Review[];
137
+ acceptedReview?: boolean;
138
+ checks: CheckResult[];
139
+ skippedChecks: string[];
140
+ files: ChangedFile[];
141
+ /** The change's whole diff. */
142
+ diff: string;
143
+ /** Runs of an earlier factory have no decisions or manual checks. */
144
+ description: Omit<Description, "decisions" | "manualChecks"> & Partial<Pick<Description, "decisions" | "manualChecks">>;
145
+ pullRequest: string;
146
+ links: {
147
+ spec: string;
148
+ plan: string;
149
+ };
150
+ /** A changed file's diff in the pull request. */
151
+ fileUrl(path: string): string;
152
+ /** Where the page loads a screenshot. */
153
+ screenshotUrl(file: string): string;
154
+ }
155
+ /** The page's data, from the run that delivered the change. */
156
+ export declare function reviewPage(facts: ReviewFacts): ReviewPage;
157
+ /** Where a person is in a run's review, as the page sends it: kept with the run. */
158
+ export declare const reviewAnswers: z.ZodObject<{
159
+ answers: z.ZodRecord<z.ZodString, z.ZodEnum<{
160
+ no: "no";
161
+ ok: "ok";
162
+ skip: "skip";
163
+ }>>;
164
+ notes: z.ZodRecord<z.ZodString, z.ZodString>;
165
+ seen: z.ZodArray<z.ZodString>;
166
+ position: z.ZodNumber;
167
+ startedAt: z.ZodNullable<z.ZodNumber>;
168
+ endedAt: z.ZodNullable<z.ZodNumber>;
169
+ }, z.core.$strict>;
170
+ export type ReviewAnswers = z.output<typeof reviewAnswers>;
171
+ export {};
@@ -0,0 +1,200 @@
1
+ import { z } from "@clemrig/flow";
2
+ import { diffExcerpt } from "./diff.js";
3
+ import { isBlocking, } from "./review.js";
4
+ const finding = ({ nature, file, summary, }) => ({
5
+ nature,
6
+ blocking: isBlocking(nature),
7
+ ...(file ? { file } : {}),
8
+ summary,
9
+ });
10
+ const count = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
11
+ /** The decisions on what the review left: its non-blocking findings, and what the operator delivered open. */
12
+ function reviewDecisions(facts, criteria) {
13
+ const { review, acceptedReview } = facts;
14
+ const nonBlocking = review.findings.filter(({ nature }) => !isBlocking(nature));
15
+ const unmet = acceptedReview
16
+ ? criteria.filter(({ status }) => status === "not_met")
17
+ : [];
18
+ const blocking = acceptedReview
19
+ ? review.findings.filter(({ nature }) => isBlocking(nature))
20
+ : [];
21
+ return [
22
+ ...(unmet.length + blocking.length > 0
23
+ ? [
24
+ {
25
+ id: "open",
26
+ kind: "open",
27
+ title: `Delivered by the operator with ${[
28
+ ...(unmet.length > 0
29
+ ? [count(unmet.length, "unmet criterion", "unmet criteria")]
30
+ : []),
31
+ ...(blocking.length > 0
32
+ ? [count(blocking.length, "blocking finding")]
33
+ : []),
34
+ ].join(" and ")}`,
35
+ advice: "revise",
36
+ recommendation: "The review did not approve them: have them fixed, or merge knowing they stay open.",
37
+ why: "The run was resumed to deliver the change as its last review left it.",
38
+ findings: blocking.map(finding),
39
+ unmet,
40
+ },
41
+ ]
42
+ : []),
43
+ ...(nonBlocking.length > 0
44
+ ? [
45
+ {
46
+ id: "non-blocking",
47
+ kind: "non_blocking",
48
+ title: `${count(nonBlocking.length, "non-blocking finding")} left by the review`,
49
+ advice: "accept",
50
+ recommendation: "The review approved the change without them: merge, and note them for later.",
51
+ why: "None blocks the change; whether they go with it, or come later, is yours to decide.",
52
+ findings: nonBlocking.map(finding),
53
+ },
54
+ ]
55
+ : []),
56
+ ];
57
+ }
58
+ /** The page's data, from the run that delivered the change. */
59
+ export function reviewPage(facts) {
60
+ const { description, review, plan, implementation } = facts;
61
+ const judged = new Map(review.criteria.map((c) => [c.id, c]));
62
+ const criteria = facts.criteria.map(({ id, text }) => ({
63
+ id,
64
+ text,
65
+ status: judged.get(id)?.status ?? "not_met",
66
+ evidence: judged.get(id)?.evidence ?? "",
67
+ }));
68
+ const byPath = new Map(facts.files.map((file) => [file.path, file]));
69
+ const shown = (path) => {
70
+ const file = byPath.get(path);
71
+ return file ? [{ ...file, url: facts.fileUrl(path) }] : [];
72
+ };
73
+ const grouped = new Set(description.guide.groups.flatMap(({ files }) => files));
74
+ const others = facts.files.filter(({ path }) => !grouped.has(path));
75
+ const screenshots = description.screenshots.map(({ file, caption }) => ({
76
+ file,
77
+ caption,
78
+ url: facts.screenshotUrl(file),
79
+ }));
80
+ const interpretations = plan.interpretations ?? [];
81
+ // The interpretations and deviations a decision shows, by position.
82
+ const used = {
83
+ interpretation: new Set(),
84
+ deviation: new Set(),
85
+ };
86
+ const sourceOf = (id) => {
87
+ if (id === undefined)
88
+ return undefined;
89
+ const kind = id.startsWith("I") ? "interpretation" : "deviation";
90
+ const position = Number(id.slice(1)) - 1;
91
+ const text = (kind === "interpretation" ? interpretations : implementation.deviations)[position];
92
+ if (text === undefined)
93
+ return undefined;
94
+ used[kind].add(position);
95
+ return { kind, text };
96
+ };
97
+ const decisions = (description.decisions ?? []).map((decision, index) => {
98
+ const { visual } = decision;
99
+ const source = sourceOf(decision.source);
100
+ const excerpt = visual?.kind === "diff" && visual.file && visual.from && visual.to
101
+ ? diffExcerpt(facts.diff, visual.file, visual.from, visual.to)
102
+ : undefined;
103
+ const drawn = visual?.kind === "reading" && visual.spec && visual.read
104
+ ? { kind: "reading", spec: visual.spec, read: visual.read }
105
+ : visual?.kind === "diff" && visual.file && excerpt
106
+ ? { kind: "diff", file: visual.file, content: excerpt }
107
+ : visual?.kind === "screenshots" && visual.files
108
+ ? {
109
+ kind: "screenshots",
110
+ items: screenshots.filter(({ file }) => visual.files?.includes(file)),
111
+ }
112
+ : visual?.kind === "list" && visual.items
113
+ ? { kind: "list", items: visual.items }
114
+ : undefined;
115
+ return {
116
+ id: `decision-${index + 1}`,
117
+ kind: decision.kind,
118
+ title: decision.title,
119
+ ...(decision.criterion ? { criterion: decision.criterion } : {}),
120
+ advice: decision.advice,
121
+ recommendation: decision.recommendation,
122
+ why: decision.why,
123
+ ...(source ? { source } : {}),
124
+ ...(decision.file
125
+ ? { file: { path: decision.file, url: facts.fileUrl(decision.file) } }
126
+ : {}),
127
+ ...(drawn ? { visual: drawn } : {}),
128
+ };
129
+ });
130
+ const reviews = facts.reviews ?? [review];
131
+ return {
132
+ run: facts.run,
133
+ title: facts.title,
134
+ objective: facts.objective,
135
+ pullRequest: {
136
+ url: facts.pullRequest,
137
+ number: Number(/\/pull\/(\d+)/.exec(facts.pullRequest)?.[1] ?? 0),
138
+ },
139
+ links: facts.links,
140
+ danger: description.danger,
141
+ changes: description.changes,
142
+ visuals: description.visuals,
143
+ screenshots,
144
+ ...(description.noScreenshots
145
+ ? { noScreenshots: description.noScreenshots }
146
+ : {}),
147
+ guide: {
148
+ start: {
149
+ ...description.guide.start,
150
+ url: facts.fileUrl(description.guide.start.file),
151
+ },
152
+ groups: [
153
+ ...description.guide.groups.map(({ title, files }) => ({
154
+ title,
155
+ files: files.flatMap(shown),
156
+ })),
157
+ ...(others.length > 0
158
+ ? [
159
+ {
160
+ title: description.guide.groups.length > 0 ? "Other files" : "Files",
161
+ files: others.flatMap(({ path }) => shown(path)),
162
+ },
163
+ ]
164
+ : []),
165
+ ],
166
+ },
167
+ rounds: reviews.map(({ criteria: judgedCriteria, findings, resolved = [] }) => ({
168
+ met: judgedCriteria.filter(({ status }) => status === "met").length,
169
+ total: facts.criteria.length,
170
+ blocking: findings.filter(({ nature }) => isBlocking(nature)).length,
171
+ nonBlocking: findings.filter(({ nature }) => !isBlocking(nature))
172
+ .length,
173
+ resolved,
174
+ })),
175
+ criteria,
176
+ checks: facts.checks.map(({ name, durationMs }) => ({ name, durationMs })),
177
+ skippedChecks: facts.skippedChecks,
178
+ decisions: [...decisions, ...reviewDecisions(facts, criteria)],
179
+ manualChecks: (description.manualChecks ?? []).map((check, index) => ({
180
+ id: `check-${index + 1}`,
181
+ ...check,
182
+ })),
183
+ assumptions: plan.risks,
184
+ otherInterpretations: interpretations.filter((_, index) => !used.interpretation.has(index)),
185
+ otherDeviations: implementation.deviations.filter((_, index) => !used.deviation.has(index)),
186
+ };
187
+ }
188
+ const answer = z.enum(["ok", "no", "skip"]);
189
+ /** A card's id, as the page and this module give them. */
190
+ const cardId = z.string().regex(/^[a-z][a-z0-9-]{0,63}$/);
191
+ /** Where a person is in a run's review, as the page sends it: kept with the run. */
192
+ export const reviewAnswers = z.strictObject({
193
+ answers: z.record(cardId, answer),
194
+ notes: z.record(cardId, z.string().max(4000)),
195
+ seen: z.array(cardId).max(500),
196
+ position: z.number().int().min(0).max(500),
197
+ startedAt: z.number().int().min(0).nullable(),
198
+ endedAt: z.number().int().min(0).nullable(),
199
+ });
200
+ //# sourceMappingURL=review-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-page.js","sourceRoot":"","sources":["../../src/domain/review-page.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,8 @@
1
1
  /** Optional `.factory/.env` secrets; existing shell variables retain precedence. */
2
2
  export declare function loadLocalEnvironment(factoryDir: string): void;
3
+ /**
4
+ * Where others reach `factory ui`, such as the address `tailscale serve`
5
+ * gives it: `FACTORY_UI_URL`, from the shell or `.factory/.env`, always
6
+ * ending with `/`; `undefined` when unset.
7
+ */
8
+ export declare function uiUrl(): URL | undefined;
@@ -10,4 +10,23 @@ export function loadLocalEnvironment(factoryDir) {
10
10
  throw new Error(`Cannot load .env from ${factoryDir}`);
11
11
  }
12
12
  }
13
+ /**
14
+ * Where others reach `factory ui`, such as the address `tailscale serve`
15
+ * gives it: `FACTORY_UI_URL`, from the shell or `.factory/.env`, always
16
+ * ending with `/`; `undefined` when unset.
17
+ */
18
+ export function uiUrl() {
19
+ const value = process.env.FACTORY_UI_URL?.trim();
20
+ if (!value)
21
+ return undefined;
22
+ const url = URL.parse(value);
23
+ if (!url ||
24
+ !["http:", "https:"].includes(url.protocol) ||
25
+ url.search ||
26
+ url.hash)
27
+ throw new Error(`FACTORY_UI_URL must be the http or https address of factory ui, such as https://forge.example.ts.net/; it is ${value}`);
28
+ if (!url.pathname.endsWith("/"))
29
+ url.pathname += "/";
30
+ return url;
31
+ }
13
32
  //# sourceMappingURL=environment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,IAAI,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,IAAI,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,IACE,CAAC,GAAG;QACJ,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3C,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,IAAI;QAER,MAAM,IAAI,KAAK,CACb,gHAAgH,KAAK,EAAE,CACxH,CAAC;IACJ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;IACrD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -11,6 +11,8 @@ export interface Factory {
11
11
  }
12
12
  /** A factory without workflows, to read runs when `factory.ts` cannot load. */
13
13
  export declare function emptyFactory(factoryDir: string): Factory;
14
+ /** A run's directory, where it keeps its files. */
15
+ export declare function runDir(factory: Factory, id: string): string;
14
16
  /** Imports `.factory/factory.ts` and returns its default export, unchecked. */
15
17
  export declare function importFactory(factoryDir: string): Promise<unknown>;
16
18
  export declare function workflowOf(factory: Factory, name: string): Workflow;
@@ -12,6 +12,10 @@ export function emptyFactory(factoryDir) {
12
12
  packaged: new Set(),
13
13
  };
14
14
  }
15
+ /** A run's directory, where it keeps its files. */
16
+ export function runDir(factory, id) {
17
+ return join(factory.runsDir, id);
18
+ }
15
19
  /** Imports `.factory/factory.ts` and returns its default export, unchecked. */
16
20
  export async function importFactory(factoryDir) {
17
21
  const module = (await import(pathToFileURL(join(factoryDir, "factory.ts")).href));
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/system/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/system/factory.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,11 @@ export declare function recentCommits(dir: string, since: {
35
35
  } | {
36
36
  days: number;
37
37
  }, max: number): Promise<RecentCommit[]>;
38
- /** The diff from one commit or tree to another. */
38
+ /**
39
+ * The diff from one commit or tree to another, as its readers take it
40
+ * whatever Git's configuration says: names after `a/` and `b/`, unescaped
41
+ * letters, no colors, each line as the files have it.
42
+ */
39
43
  export declare function diff(dir: string, before: string, after: string): Promise<{
40
44
  text: string;
41
45
  truncated: boolean;
@@ -134,9 +134,26 @@ export async function recentCommits(dir, since, max) {
134
134
  }
135
135
  return commits;
136
136
  }
137
- /** The diff from one commit or tree to another. */
137
+ /**
138
+ * The diff from one commit or tree to another, as its readers take it
139
+ * whatever Git's configuration says: names after `a/` and `b/`, unescaped
140
+ * letters, no colors, each line as the files have it.
141
+ */
138
142
  export async function diff(dir, before, after) {
139
- const result = await git(dir, ["diff", before, after]);
143
+ const result = await git(dir, [
144
+ "-c",
145
+ "core.quotePath=false",
146
+ "-c",
147
+ "diff.suppressBlankEmpty=false",
148
+ "diff",
149
+ "--no-ext-diff",
150
+ "--no-textconv",
151
+ "--no-color",
152
+ "--src-prefix=a/",
153
+ "--dst-prefix=b/",
154
+ before,
155
+ after,
156
+ ]);
140
157
  return { text: result.stdout, truncated: result.stdoutTruncated };
141
158
  }
142
159
  /** Each file that differs from one commit or tree to another, with its added and removed lines, renames seen as `diff` sees them. */
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/system/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/system/git.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  export declare function isAuthenticated(dir: string): Promise<boolean>;
2
- /** The version of gh, such as `2.102.0`. */
3
- export declare function version(dir: string): Promise<string>;
4
- /** The repository's GitHub page, and whether anyone can see it. */
2
+ /** The repository's GitHub page. */
5
3
  export declare function repository(dir: string): Promise<{
6
4
  url: string;
7
- public: boolean;
8
5
  }>;
9
6
  /** An open pull request: its title, branch, page and the files it changes, the first 100: gh lists no more. */
10
7
  export interface OpenPullRequest {
@@ -27,11 +24,5 @@ export declare function openPullRequest(dir: string, pullRequest: {
27
24
  title: string;
28
25
  body: string;
29
26
  }): Promise<string>;
30
- /** Replaces the pull request's body. */
31
- export declare function editBody(dir: string, pullRequest: string, body: string): Promise<void>;
32
- /**
33
- * Replaces the pull request's body, uploading the `images` of `folder` it
34
- * names: gh, run there, points each reference at its upload. When some fail,
35
- * gh still writes the body, with the others' references unchanged.
36
- */
37
- export declare function attachImages(folder: string, pullRequest: string, body: string, images: string[]): Promise<void>;
27
+ /** Where a changed file's diff opens in its pull request: GitHub names it by its path's SHA-256. */
28
+ export declare function fileAnchor(pullRequest: string, path: string): string;
@@ -1,3 +1,4 @@
1
+ import { createHash } from "node:crypto";
1
2
  import { runProcess } from "@clemrig/flow";
2
3
  /** Runs gh in the repository; its output is never journaled, as it may describe the account. */
3
4
  async function gh(dir, args, stdin, timeoutMs = 60_000) {
@@ -10,18 +11,10 @@ export async function isAuthenticated(dir) {
10
11
  const result = await runProcess(["gh", "auth", "status"], dir, 60_000);
11
12
  return result.exitCode === 0;
12
13
  }
13
- /** The version of gh, such as `2.102.0`. */
14
- export async function version(dir) {
15
- const output = await gh(dir, ["--version"]);
16
- const found = /^gh version (\d+\.\d+\.\d+)/.exec(output)?.[1];
17
- if (!found)
18
- throw new Error(`gh --version printed no version: ${output}`);
19
- return found;
20
- }
21
- /** The repository's GitHub page, and whether anyone can see it. */
14
+ /** The repository's GitHub page. */
22
15
  export async function repository(dir) {
23
- const { url, visibility } = JSON.parse(await gh(dir, ["repo", "view", "--json", "url,visibility"]));
24
- return { url, public: visibility === "PUBLIC" };
16
+ const { url } = JSON.parse(await gh(dir, ["repo", "view", "--json", "url"]));
17
+ return { url };
25
18
  }
26
19
  /** The pull requests gh lists: the latest, at most this many. */
27
20
  const listed = "100";
@@ -100,25 +93,8 @@ export async function openPullRequest(dir, pullRequest) {
100
93
  "-",
101
94
  ], body);
102
95
  }
103
- /** Replaces the pull request's body. */
104
- export async function editBody(dir, pullRequest, body) {
105
- await gh(dir, ["pr", "edit", pullRequest, "--body-file", "-"], body);
106
- }
107
- /**
108
- * Replaces the pull request's body, uploading the `images` of `folder` it
109
- * names: gh, run there, points each reference at its upload. When some fail,
110
- * gh still writes the body, with the others' references unchanged.
111
- */
112
- export async function attachImages(folder, pullRequest, body, images) {
113
- await gh(folder, [
114
- "pr",
115
- "edit",
116
- pullRequest,
117
- "--body-file",
118
- "-",
119
- ...images.flatMap((image) => ["--attach", image]),
120
- ], body,
121
- // Uploads take longer than the other calls.
122
- 600_000);
96
+ /** Where a changed file's diff opens in its pull request: GitHub names it by its path's SHA-256. */
97
+ export function fileAnchor(pullRequest, path) {
98
+ return `${pullRequest}/files#diff-${createHash("sha256").update(path).digest("hex")}`;
123
99
  }
124
100
  //# sourceMappingURL=github.js.map