@clemrig/factory 0.18.1 → 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 (64) hide show
  1. package/README.md +15 -19
  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/review.d.ts +7 -5
  18. package/dist/app/workflows/stages/review.js +75 -24
  19. package/dist/app/workflows/stages/review.js.map +1 -1
  20. package/dist/app/workflows/stages/run.d.ts +1 -2
  21. package/dist/app/workflows/tidy.js +2 -3
  22. package/dist/app/workflows/tidy.js.map +1 -1
  23. package/dist/cli/ui.d.ts +4 -2
  24. package/dist/cli/ui.js +17 -5
  25. package/dist/cli/ui.js.map +1 -1
  26. package/dist/domain/board.d.ts +2 -0
  27. package/dist/domain/board.js +4 -1
  28. package/dist/domain/board.js.map +1 -1
  29. package/dist/domain/description.d.ts +57 -5
  30. package/dist/domain/description.js +133 -12
  31. package/dist/domain/description.js.map +1 -1
  32. package/dist/domain/diff.d.ts +8 -0
  33. package/dist/domain/diff.js +90 -0
  34. package/dist/domain/diff.js.map +1 -0
  35. package/dist/domain/pull-request.d.ts +9 -21
  36. package/dist/domain/pull-request.js +44 -229
  37. package/dist/domain/pull-request.js.map +1 -1
  38. package/dist/domain/review-page.d.ts +171 -0
  39. package/dist/domain/review-page.js +200 -0
  40. package/dist/domain/review-page.js.map +1 -0
  41. package/dist/domain/review.d.ts +85 -5
  42. package/dist/domain/review.js +109 -18
  43. package/dist/domain/review.js.map +1 -1
  44. package/dist/domain/spec.d.ts +1 -1
  45. package/dist/domain/spec.js.map +1 -1
  46. package/dist/system/environment.d.ts +6 -0
  47. package/dist/system/environment.js +19 -0
  48. package/dist/system/environment.js.map +1 -1
  49. package/dist/system/factory.d.ts +2 -0
  50. package/dist/system/factory.js +4 -0
  51. package/dist/system/factory.js.map +1 -1
  52. package/dist/system/git.d.ts +5 -1
  53. package/dist/system/git.js +19 -2
  54. package/dist/system/git.js.map +1 -1
  55. package/dist/system/github.d.ts +3 -12
  56. package/dist/system/github.js +7 -31
  57. package/dist/system/github.js.map +1 -1
  58. package/dist/system/run-files.d.ts +14 -0
  59. package/dist/system/run-files.js +51 -8
  60. package/dist/system/run-files.js.map +1 -1
  61. package/package.json +2 -2
  62. package/prompts/describe.md +36 -15
  63. package/prompts/plan.md +7 -5
  64. package/prompts/review.md +38 -21
@@ -1,10 +1,10 @@
1
1
  import { code, step } from "@clemrig/flow";
2
- import { ghVersionProblem } from "../../../domain/pull-request.js";
3
2
  import { parseSpec } from "../../../domain/spec.js";
4
3
  import { isTidyBranch, tidySlug } from "../../../domain/tidy.js";
5
4
  import { failureFeedback, } from "../../../domain/verification.js";
6
5
  import { runBrowser } from "../../../system/browser.js";
7
6
  import { runChecks } from "../../../system/checks.js";
7
+ import { uiUrl } from "../../../system/environment.js";
8
8
  import * as git from "../../../system/git.js";
9
9
  import * as github from "../../../system/github.js";
10
10
  import { artifactPath, hasArtifact, isIssue, readArtifact, } from "../../../system/issues.js";
@@ -25,14 +25,18 @@ async function baseProblems(dir, base) {
25
25
  problems.push(`${base} must match origin/${base}: push or pull first`);
26
26
  return problems;
27
27
  }
28
- /** The repository on GitHub, when gh is recent enough and logged in to open its pull request; otherwise why not. */
28
+ /**
29
+ * The repository on GitHub, when gh is logged in to open its pull request and
30
+ * the review page it links to has a valid address; otherwise why not.
31
+ */
29
32
  async function gitHubProblems(dir) {
30
33
  const problems = [];
31
- const version = await github
32
- .version(dir)
33
- .then(ghVersionProblem, (error) => message(error));
34
- if (version)
35
- problems.push(version);
34
+ try {
35
+ uiUrl();
36
+ }
37
+ catch (error) {
38
+ problems.push(message(error));
39
+ }
36
40
  if (!(await github.isAuthenticated(dir))) {
37
41
  problems.push("gh is not logged in: run gh auth login");
38
42
  return { problems };
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/prepare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/prepare.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,6 @@ import { facts, short, specCommitOf } from "./run.js";
9
9
  export async function resumeProblem({ dir, state, }) {
10
10
  if (state.stage === "prepare")
11
11
  return undefined;
12
- // Its pull request is open: only its screenshots remain to attach, from the
13
- // run's folder, whatever the repository is on.
14
- if (state.stage === "attach")
15
- return undefined;
16
12
  // Stopped once its last stage was done, such as by Ctrl-C.
17
13
  const { pullRequest } = state.data;
18
14
  if (typeof pullRequest === "string")
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/resume.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,13 @@ export declare const diff: Stage<"ok">;
9
9
  * The reviewing agent: it judges the change against the spec, from the code
10
10
  * and the checks alone. From the second round on, it first reviews the change
11
11
  * knowing nothing of the earlier reviews, then, in the same conversation,
12
- * checks what the previous one found against the code as it is now, and gives
13
- * its whole review again: nothing found earlier is lost on the way. A first
14
- * answer that cannot be judged, such as a note sent while its sub-agents still
15
- * ran, goes to the gate as it is: checked against the previous review, it
16
- * would leave that review alone to repeat.
12
+ * checks what the previous one found against the code as it is now; the gate
13
+ * keeps its first answer and adds that check to it, so that nothing found
14
+ * earlier is lost on the way. A first answer that cannot be judged, such as a
15
+ * note sent while its sub-agents still ran, goes to the gate alone: checked
16
+ * against the previous review, it would leave that review alone to repeat.
17
+ * A check the gate cannot judge answers again alone: the first answer, which
18
+ * the gate judged, stands, and receives no correction meant for the check.
17
19
  */
18
20
  export declare function reviewer(profile: AgentProfile, app?: AppDeclaration): Stage<"ok" | "modified">;
19
21
  /** An unmet criterion or a blocking finding sends the change back, unless the operator accepted the review. */
@@ -1,5 +1,5 @@
1
1
  import { agent, gate, step, z, } from "@clemrig/flow";
2
- import { largeChangeLines, reviewChanges, reviewOutput, reviewProblem, } from "../../../domain/review.js";
2
+ import { composeReview, largeChangeLines, recheckOutput, recheckProblem, recheckRequest, reviewChanges, reviewOutput, reviewProblem, } from "../../../domain/review.js";
3
3
  import * as git from "../../../system/git.js";
4
4
  import { keepInRun } from "../../../system/run-files.js";
5
5
  import { browserContext, readers, reading, runningApp } from "./agents.js";
@@ -37,53 +37,104 @@ export const diff = step(async ({ dir, state, log, runDir }) => {
37
37
  log(`Large change: the review reads its diff from ${changes.diffFile}`);
38
38
  return { changes, reviewedTree };
39
39
  });
40
+ const invalid = (error) => `Invalid structured output:\n${z.prettifyError(error)}`;
41
+ /** It names the answer at fault, and sends back the check alone. */
42
+ const checkPrefix = "The check of the previous review: ";
43
+ const checkProblem = (problem) => ({
44
+ problem: `${checkPrefix}${problem}`,
45
+ });
40
46
  /** The review an agent's answer gives, or why it cannot be judged. */
41
47
  function readReview(output, criteria) {
42
48
  const parsed = reviewOutput.safeParse(output);
43
49
  if (!parsed.success)
44
- return {
45
- problem: `Invalid structured output:\n${z.prettifyError(parsed.error)}`,
46
- };
50
+ return { problem: invalid(parsed.error) };
47
51
  const problem = reviewProblem(parsed.data, criteria);
48
52
  return problem ? { problem } : { review: parsed.data };
49
53
  }
54
+ /**
55
+ * The review the reviewer's answers give, or why they cannot be judged: its
56
+ * answer alone in the first round, then its first answer with its check of
57
+ * the previous review.
58
+ */
59
+ function judgedReview(state) {
60
+ const { criteria, reviews } = facts(state);
61
+ const previous = reviews?.at(-1);
62
+ if (!previous)
63
+ return readReview(state.output, criteria);
64
+ const answers = (state.output ?? {});
65
+ const read = readReview(answers.first, criteria);
66
+ if ("problem" in read)
67
+ return read;
68
+ const parsed = recheckOutput.safeParse(answers.recheck);
69
+ if (!parsed.success)
70
+ return checkProblem(invalid(parsed.error));
71
+ const problem = recheckProblem(parsed.data, read.review, previous);
72
+ if (problem)
73
+ return checkProblem(problem);
74
+ return { review: composeReview(read.review, parsed.data, previous) };
75
+ }
50
76
  /**
51
77
  * The reviewing agent: it judges the change against the spec, from the code
52
78
  * and the checks alone. From the second round on, it first reviews the change
53
79
  * knowing nothing of the earlier reviews, then, in the same conversation,
54
- * checks what the previous one found against the code as it is now, and gives
55
- * its whole review again: nothing found earlier is lost on the way. A first
56
- * answer that cannot be judged, such as a note sent while its sub-agents still
57
- * ran, goes to the gate as it is: checked against the previous review, it
58
- * would leave that review alone to repeat.
80
+ * checks what the previous one found against the code as it is now; the gate
81
+ * keeps its first answer and adds that check to it, so that nothing found
82
+ * earlier is lost on the way. A first answer that cannot be judged, such as a
83
+ * note sent while its sub-agents still ran, goes to the gate alone: checked
84
+ * against the previous review, it would leave that review alone to repeat.
85
+ * A check the gate cannot judge answers again alone: the first answer, which
86
+ * the gate judged, stands, and receives no correction meant for the check.
59
87
  */
60
88
  export function reviewer(profile, app) {
61
- const call = (context) => agent({ profile, schema: reviewOutput, session: reviewSession, context });
62
- const fresh = call(({ state }) => {
63
- const { slug, spec, changes, checks } = facts(state);
64
- return { issue: slug, spec, changes, checks, ...browserContext(state) };
89
+ const fresh = agent({
90
+ profile,
91
+ schema: reviewOutput,
92
+ session: reviewSession,
93
+ context: ({ state }) => {
94
+ const { slug, spec, changes, checks } = facts(state);
95
+ return { issue: slug, spec, changes, checks, ...browserContext(state) };
96
+ },
97
+ });
98
+ const recheck = (previous, answer) => agent({
99
+ profile,
100
+ schema: recheckOutput,
101
+ session: reviewSession,
102
+ context: () => recheckRequest(previous, answer),
65
103
  });
66
- const recheck = call(({ state }) => ({
67
- previous: facts(state).reviews?.at(-1),
68
- }));
69
104
  return runningApp(app, reading(readers.review, {
70
105
  ...fresh,
71
106
  async run(context) {
72
- const first = await fresh.run(context);
73
- const { reviews, criteria } = facts(context.state);
74
- if ((reviews ?? []).length === 0)
75
- return first;
76
- if ("problem" in readReview(first.output, criteria)) {
107
+ const { state } = context;
108
+ const { reviews, criteria } = facts(state);
109
+ const previous = reviews?.at(-1);
110
+ if (!previous)
111
+ return fresh.run(context);
112
+ const correction = typeof state.feedback === "string" &&
113
+ state.feedback.startsWith(checkPrefix)
114
+ ? state.feedback
115
+ : undefined;
116
+ const kept = correction === undefined
117
+ ? undefined
118
+ : state.output?.first;
119
+ if (kept !== undefined)
120
+ context.log("The check of the previous review is sent back alone: the review's own answer stands");
121
+ const first = kept ?? (await fresh.run(context)).output;
122
+ const read = readReview(first, criteria);
123
+ if ("problem" in read) {
77
124
  context.log("The review's own answer cannot be judged: sent back before the previous review is checked");
78
- return first;
125
+ return { outcome: "ok", output: { first } };
79
126
  }
80
- return recheck.run(context);
127
+ const second = await recheck(previous, read.review).run({
128
+ ...context,
129
+ state: { ...state, feedback: correction },
130
+ });
131
+ return { ...second, output: { first, recheck: second.output } };
81
132
  },
82
133
  }));
83
134
  }
84
135
  /** An unmet criterion or a blocking finding sends the change back, unless the operator accepted the review. */
85
136
  export const judgeReview = gate(["approved", "changes", "invalid"], async ({ state }) => {
86
- const read = readReview(state.output, facts(state).criteria);
137
+ const read = judgedReview(state);
87
138
  if ("problem" in read)
88
139
  return { outcome: "invalid", reason: read.problem };
89
140
  const { review } = read;
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/review.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,9 @@ export interface Facts {
17
17
  /** The spec's Objective, which the pull request recalls. */
18
18
  objective: string;
19
19
  criteria: Criterion[];
20
- /** The repository on GitHub: its page, and whether anyone can see it. */
20
+ /** The repository on GitHub: its page. */
21
21
  repository: {
22
22
  url: string;
23
- public: boolean;
24
23
  };
25
24
  /** The agents' browser, when `.factory/` installs one. */
26
25
  browser?: string;
@@ -1,7 +1,7 @@
1
1
  import { defineWorkflow, END, node, retry } from "@clemrig/flow";
2
2
  import { TIDY } from "../../domain/tidy.js";
3
3
  import { commitSpec, judgeChoice, release, scout, survey, tidyResult, } from "./stages/choose.js";
4
- import { attach, deliver, describer, judgeDescription, } from "./stages/deliver.js";
4
+ import { deliver, describer, judgeDescription } from "./stages/deliver.js";
5
5
  import { implementer, judgeImplementation } from "./stages/implement.js";
6
6
  import { commitPlan, judgePlan, planner } from "./stages/plan.js";
7
7
  import { prepareTidy } from "./stages/prepare.js";
@@ -67,8 +67,7 @@ export function tidy(definition) {
67
67
  ok: "deliver",
68
68
  invalid: retry("describe", 2),
69
69
  }),
70
- deliver: node(deliver, { done: END, attach: "attach" }),
71
- attach: node(attach, { ok: END }),
70
+ deliver: node(deliver, { done: END }),
72
71
  },
73
72
  resumeProblem,
74
73
  // Also called for a failed run, which opened no pull request.
@@ -1 +1 @@
1
- {"version":3,"file":"tidy.js","sourceRoot":"","sources":["../../../src/app/workflows/tidy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tidy.js","sourceRoot":"","sources":["../../../src/app/workflows/tidy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,UAAoB;IACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAChC,OAAO,cAAc,CAAC;QACpB,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC5C,KAAK,EAAE,QAAQ;gBACf,yDAAyD;gBACzD,OAAO,EAAE,GAAG;aACb,CAAC;YACF,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;YACrC,qEAAqE;YACrE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;YACpD,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;gBACzB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3B,CAAC;YACF,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;YACnC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;gBACvB,EAAE,EAAE,aAAa;gBACjB,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;aAC1B,CAAC;YACF,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;YACpD,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC/D,EAAE,EAAE,aAAa;aAClB,CAAC;YACF,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACrC,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;aAC/B,CAAC;YACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;aAC9B,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;YAClC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtD,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC7B,CAAC;YACF,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC1B,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC9B,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5B,CAAC;YACF,QAAQ,EAAE,IAAI,CACZ,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAC/D,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CACpD;YACD,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBAChC,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;aAC9B,CAAC;YACF,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;SACtC;QACD,aAAa;QACb,8DAA8D;QAC9D,aAAa,EAAE,UAAU;KAC1B,CAAC,CAAC;AACL,CAAC"}
package/dist/cli/ui.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { Factory } from "../app/factory.js";
2
2
  /**
3
- * `factory ui`: serves the Kanban of the repository's issues, and the dashboard
4
- * of its runs under `/runs/`, until Ctrl-C, on `port` or one the system chooses.
3
+ * `factory ui`: serves the Kanban of the repository's issues, the dashboard
4
+ * of its runs under `/runs/` and each delivered run's review page, until
5
+ * Ctrl-C, on `port` or one the system chooses. It also answers the host of
6
+ * `FACTORY_UI_URL`, which a proxy such as `tailscale serve` keeps.
5
7
  */
6
8
  export declare function ui(factory: Factory, port?: number, loadError?: string): Promise<number>;
package/dist/cli/ui.js CHANGED
@@ -1,11 +1,15 @@
1
1
  import { basename } from "node:path";
2
- import { startFactoryUi } from "@clemrig/factory-ui";
2
+ import { startFactoryUi, } from "@clemrig/factory-ui";
3
3
  import { dashboardHandler } from "@clemrig/flow-ui";
4
4
  import { readBoard } from "../app/board.js";
5
+ import { uiAddress } from "../app/factory.js";
6
+ import { readReviewAnswers, readReviewPage, readReviewScreenshot, saveReviewAnswers, } from "../app/review.js";
5
7
  import { presentResult } from "../app/runs.js";
6
8
  /**
7
- * `factory ui`: serves the Kanban of the repository's issues, and the dashboard
8
- * of its runs under `/runs/`, until Ctrl-C, on `port` or one the system chooses.
9
+ * `factory ui`: serves the Kanban of the repository's issues, the dashboard
10
+ * of its runs under `/runs/` and each delivered run's review page, until
11
+ * Ctrl-C, on `port` or one the system chooses. It also answers the host of
12
+ * `FACTORY_UI_URL`, which a proxy such as `tailscale serve` keeps.
9
13
  */
10
14
  export async function ui(factory, port, loadError) {
11
15
  const label = basename(factory.dir);
@@ -17,14 +21,22 @@ export async function ui(factory, port, loadError) {
17
21
  // Mounted under `/runs/`: the Kanban is one level up.
18
22
  home: { label: "Board", href: "../" },
19
23
  });
24
+ const address = uiAddress();
20
25
  const page = await startFactoryUi({
21
26
  title: "factory",
22
27
  label,
23
- // The board the factory computes is what the page shows: checked here, where both meet.
28
+ // What the factory computes is what the pages show: checked here, where both meet.
24
29
  board: () => readBoard(factory, loadError),
25
30
  runs,
31
+ review: {
32
+ page: (run) => readReviewPage(factory, run, (file) => `api/review/${encodeURIComponent(run)}/screenshots/${encodeURIComponent(file)}`),
33
+ answers: (run) => readReviewAnswers(factory, run),
34
+ saveAnswers: (run, answers) => saveReviewAnswers(factory, run, answers),
35
+ screenshot: (run, file) => readReviewScreenshot(factory, run, file),
36
+ },
37
+ ...(address ? { hosts: [address.host] } : {}),
26
38
  }, port);
27
- process.stdout.write(`factory ui: ${page.url} (runs: ${page.url}runs/; read-only; Ctrl-C to stop)\n`);
39
+ process.stdout.write(`factory ui: ${page.url} (runs: ${page.url}runs/; review pages: ${address?.href ?? page.url}review?run=<id>; Ctrl-C to stop)\n`);
28
40
  await new Promise((resolve) => {
29
41
  const stop = () => {
30
42
  process.off("SIGINT", stop);
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAc,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,EAAE,CACtB,OAAgB,EAChB,IAAa,EACb,SAAkB;IAElB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,SAAS;QAChB,KAAK;QACL,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;QACvD,sDAAsD;QACtD,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;KACtC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B;QACE,KAAK,EAAE,SAAS;QAChB,KAAK;QACL,wFAAwF;QACxF,KAAK,EAAE,GAAmB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;QAC1D,IAAI;KACL,EACD,IAAI,CACL,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,GAAG,qCAAqC,CAChF,CAAC;IACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,8 @@ export interface IssueCard {
47
47
  waitsFor: string[];
48
48
  /** The newest pull request its deliveries recorded. */
49
49
  pullRequest?: string;
50
+ /** The run that recorded it, when it has a review page: one that described its change. */
51
+ review?: string;
50
52
  /** The last run of each shown workflow, newest first. */
51
53
  runs: RunProgress[];
52
54
  }
@@ -67,7 +67,8 @@ export function boardOf(issues, runs, shown, problems) {
67
67
  // The last delivery sets the column. A new delivery updates the same pull
68
68
  // request: the newest one recorded stays shown.
69
69
  const delivery = last(DELIVERY);
70
- const pullRequest = own.map(pullRequestOf).findLast(Boolean);
70
+ const delivered = own.findLast((run) => pullRequestOf(run) !== undefined);
71
+ const pullRequest = delivered && pullRequestOf(delivered);
71
72
  const cardRuns = shown
72
73
  .flatMap((workflow) => {
73
74
  const run = last(workflow.name);
@@ -91,6 +92,8 @@ export function boardOf(issues, runs, shown, problems) {
91
92
  .filter(({ delivered }) => !delivered)
92
93
  .map(({ slug }) => slug),
93
94
  ...(pullRequest ? { pullRequest } : {}),
95
+ // Runs delivered by an earlier factory have no description, nor its page.
96
+ ...(delivered?.data.description ? { review: delivered.id } : {}),
94
97
  runs: cardRuns,
95
98
  },
96
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/domain/board.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/domain/board.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
1
  import { z } from "@clemrig/flow";
2
2
  import type { ChangedFile } from "./review.js";
3
- /** What GitHub draws: a mermaid diagram; a diff or a text block shows a shape as it is. */
3
+ import type { Criterion } from "./spec.js";
4
+ /** What the review page draws: a mermaid diagram; a diff or a text block shows a shape as it is. */
4
5
  export declare const visualKinds: readonly ["mermaid", "diff", "text"];
5
- /** GitHub's limit for an image attached to a pull request. */
6
+ /** The largest screenshot: the review page loads it whole, on a phone too. */
6
7
  export declare const maxScreenshotBytes: number;
8
+ /** What a decision departs from: the spec's scope, a test that existed, or the spec's letter. */
9
+ export declare const decisionKinds: readonly ["beyond_spec", "changed_test", "spec_reading"];
10
+ /** What a decision's card shows: one of these, with its own fields. */
11
+ export declare const decisionVisualKinds: readonly ["reading", "diff", "screenshots", "list"];
7
12
  /**
8
13
  * The describing agent's response: what a reader who forgot the issue needs
9
- * to review its pull request. As many items as the change calls for.
14
+ * to review its pull request, on the review page. As many items as the
15
+ * change calls for.
10
16
  */
11
17
  export declare const descriptionOutput: z.ZodObject<{
12
18
  changes: z.ZodArray<z.ZodString>;
@@ -45,7 +51,53 @@ export declare const descriptionOutput: z.ZodObject<{
45
51
  caption: z.ZodString;
46
52
  }, z.core.$strict>>;
47
53
  noScreenshots: z.ZodOptional<z.ZodString>;
54
+ decisions: z.ZodArray<z.ZodObject<{
55
+ kind: z.ZodEnum<{
56
+ beyond_spec: "beyond_spec";
57
+ changed_test: "changed_test";
58
+ spec_reading: "spec_reading";
59
+ }>;
60
+ title: z.ZodString;
61
+ criterion: z.ZodOptional<z.ZodString>;
62
+ advice: z.ZodEnum<{
63
+ accept: "accept";
64
+ revise: "revise";
65
+ }>;
66
+ recommendation: z.ZodString;
67
+ why: z.ZodString;
68
+ source: z.ZodOptional<z.ZodString>;
69
+ file: z.ZodOptional<z.ZodString>;
70
+ visual: z.ZodOptional<z.ZodObject<{
71
+ kind: z.ZodEnum<{
72
+ diff: "diff";
73
+ list: "list";
74
+ reading: "reading";
75
+ screenshots: "screenshots";
76
+ }>;
77
+ spec: z.ZodOptional<z.ZodString>;
78
+ read: z.ZodOptional<z.ZodString>;
79
+ file: z.ZodOptional<z.ZodString>;
80
+ from: z.ZodOptional<z.ZodNumber>;
81
+ to: z.ZodOptional<z.ZodNumber>;
82
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
83
+ items: z.ZodOptional<z.ZodArray<z.ZodString>>;
84
+ }, z.core.$strict>>;
85
+ }, z.core.$strict>>;
86
+ manualChecks: z.ZodArray<z.ZodObject<{
87
+ title: z.ZodString;
88
+ expect: z.ZodString;
89
+ why: z.ZodString;
90
+ }, z.core.$strict>>;
48
91
  }, z.core.$strict>;
49
92
  export type Description = z.output<typeof descriptionOutput>;
50
- /** What is wrong with a description of these changed files, the screenshots' files aside. */
51
- export declare function descriptionProblems(description: Description, files: ChangedFile[]): string[];
93
+ /** What a description is checked against: the run's change, criteria, interpretations and deviations. */
94
+ export interface Described {
95
+ files: ChangedFile[];
96
+ /** The change's whole diff. */
97
+ diff: string;
98
+ criteria: Pick<Criterion, "id">[];
99
+ interpretations: number;
100
+ deviations: number;
101
+ }
102
+ /** What is wrong with a description of this change, the screenshots' files aside. */
103
+ export declare function descriptionProblems(description: Description, described: Described): string[];