@cat-factory/contracts 0.129.0 → 0.131.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.
- package/dist/agent-presentation.d.ts +2 -2
- package/dist/entities.d.ts +70 -1
- package/dist/entities.d.ts.map +1 -1
- package/dist/entities.js +9 -0
- package/dist/entities.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/initiative.d.ts +20 -5
- package/dist/initiative.d.ts.map +1 -1
- package/dist/notifications.d.ts +6 -2
- package/dist/notifications.d.ts.map +1 -1
- package/dist/notifications.js +7 -0
- package/dist/notifications.js.map +1 -1
- package/dist/prReview.d.ts +175 -0
- package/dist/prReview.d.ts.map +1 -0
- package/dist/prReview.js +167 -0
- package/dist/prReview.js.map +1 -0
- package/dist/primitives.d.ts +23 -5
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +31 -5
- package/dist/primitives.js.map +1 -1
- package/dist/requests.d.ts +4 -1
- package/dist/requests.d.ts.map +1 -1
- package/dist/result-views.d.ts +1 -1
- package/dist/result-views.d.ts.map +1 -1
- package/dist/result-views.js +1 -0
- package/dist/result-views.js.map +1 -1
- package/dist/routes/agent-runs.d.ts +52 -0
- package/dist/routes/agent-runs.d.ts.map +1 -1
- package/dist/routes/board.d.ts +52 -13
- package/dist/routes/board.d.ts.map +1 -1
- package/dist/routes/execution.d.ts +216 -2
- package/dist/routes/execution.d.ts.map +1 -1
- package/dist/routes/human-review.d.ts +26 -0
- package/dist/routes/human-review.d.ts.map +1 -1
- package/dist/routes/human-test.d.ts +130 -0
- package/dist/routes/human-test.d.ts.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/initiative.d.ts +68 -17
- package/dist/routes/initiative.d.ts.map +1 -1
- package/dist/routes/notifications.d.ts +6 -3
- package/dist/routes/notifications.d.ts.map +1 -1
- package/dist/routes/prReview.d.ts +124 -0
- package/dist/routes/prReview.d.ts.map +1 -0
- package/dist/routes/prReview.js +26 -0
- package/dist/routes/prReview.js.map +1 -0
- package/dist/routes/slack.d.ts +3 -3
- package/dist/routes/tasks.d.ts +12 -3
- package/dist/routes/tasks.d.ts.map +1 -1
- package/dist/routes/visual-confirm.d.ts +78 -0
- package/dist/routes/visual-confirm.d.ts.map +1 -1
- package/dist/routes/workspace-settings.d.ts +3 -3
- package/dist/routes/workspaces.d.ts +84 -12
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/slack.d.ts +2 -2
- package/dist/snapshot.d.ts +42 -6
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/workspace-settings.d.ts +3 -3
- package/dist/workspace-settings.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/notifications.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as v from 'valibot';
|
|
|
4
4
|
* the frontend can switch on it to render the right action; extending it is a
|
|
5
5
|
* one-line change here plus a handler in the worker's `act` route.
|
|
6
6
|
*/
|
|
7
|
-
export declare const notificationTypeSchema: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "initiative"], undefined>;
|
|
7
|
+
export declare const notificationTypeSchema: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "pr_review_ready", "initiative"], undefined>;
|
|
8
8
|
export type NotificationType = v.InferOutput<typeof notificationTypeSchema>;
|
|
9
9
|
/**
|
|
10
10
|
* Lifecycle of a notification: `open` until a human engages, terminal `acted`
|
|
@@ -45,6 +45,8 @@ export declare const notificationPayloadSchema: v.ObjectSchema<{
|
|
|
45
45
|
readonly findingCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
46
46
|
/** Number of materially different implementation forks surfaced, on a `fork_decision_pending`. */
|
|
47
47
|
readonly forkCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
48
|
+
/** Number of cohesive slices the PR was grouped into, on a `pr_review_ready`. */
|
|
49
|
+
readonly sliceCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
48
50
|
/** The `on-call` agent's assessment, on a `release_regression`. */
|
|
49
51
|
readonly onCallAssessment: v.OptionalSchema<v.ObjectSchema<{
|
|
50
52
|
readonly culpritConfidence: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
|
|
@@ -83,7 +85,7 @@ export type NotificationPayload = v.InferOutput<typeof notificationPayloadSchema
|
|
|
83
85
|
/** A human-actionable item surfaced on the board. */
|
|
84
86
|
export declare const notificationSchema: v.ObjectSchema<{
|
|
85
87
|
readonly id: v.StringSchema<undefined>;
|
|
86
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "initiative"], undefined>;
|
|
88
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "pr_review_ready", "initiative"], undefined>;
|
|
87
89
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
88
90
|
/**
|
|
89
91
|
* Render urgency (see {@link notificationSeveritySchema}). Absent ⇒ `normal`. Flipped
|
|
@@ -115,6 +117,8 @@ export declare const notificationSchema: v.ObjectSchema<{
|
|
|
115
117
|
readonly findingCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
116
118
|
/** Number of materially different implementation forks surfaced, on a `fork_decision_pending`. */
|
|
117
119
|
readonly forkCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
120
|
+
/** Number of cohesive slices the PR was grouped into, on a `pr_review_ready`. */
|
|
121
|
+
readonly sliceCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
118
122
|
/** The `on-call` agent's assessment, on a `release_regression`. */
|
|
119
123
|
readonly onCallAssessment: v.OptionalSchema<v.ObjectSchema<{
|
|
120
124
|
readonly culpritConfidence: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA2D5B;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,kUAgBjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,6DAA6C,CAAA;AAClF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,mDAAmC,CAAA;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;IACpC,4DAA4D;;;;;;;IAE5D,sEAAsE;;IAEtE,gFAAgF;;IAEhF,0DAA0D;;IAE1D,kGAAkG;;IAElG,iFAAiF;;IAEjF,mEAAmE;;;;;;;IAEnE,mEAAmE;;;;;;;;IAEnE,4EAA4E;;IAE5E;;;;OAIG;;IAEH,gFAAgF;;IAEhF;;;;OAIG;;IAEH,yGAAyG;;aAEzG,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,qDAAqD;AACrD,eAAO,MAAM,kBAAkB;;;;IAI7B;;;OAGG;;IAEH,iFAAiF;;IAEjF,yDAAyD;;IAEzD,wCAAwC;;IAExC,mCAAmC;;IAEnC,wFAAwF;;QAvDxF,4DAA4D;;;;;;;QAE5D,sEAAsE;;QAEtE,gFAAgF;;QAEhF,0DAA0D;;QAE1D,kGAAkG;;QAElG,iFAAiF;;QAEjF,mEAAmE;;;;;;;QAEnE,mEAAmE;;;;;;;;QAEnE,4EAA4E;;QAE5E;;;;WAIG;;QAEH,gFAAgF;;QAEhF;;;;WAIG;;QAEH,yGAAyG;;;;IA0BzG,8DAA8D;;aAE9D,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAInE,yDAAyD;AACzD,eAAO,MAAM,+BAA+B,iDAAiC,CAAA;AAC7E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA"}
|
package/dist/notifications.js
CHANGED
|
@@ -36,6 +36,10 @@ import { onCallAssessmentSchema, releaseSignalSchema } from './release.js';
|
|
|
36
36
|
// run parked for a human to choose. Informational + a deep-link to the
|
|
37
37
|
// parked task (where the fork-decision window lets the human pick /
|
|
38
38
|
// type a custom approach / chat); `act` just marks it read.
|
|
39
|
+
// - `pr_review_ready` — the `pr-reviewer` deep-reviewed an open PR and the run parked for a
|
|
40
|
+
// human to SELECT which of the sliced, prioritized findings to act on.
|
|
41
|
+
// Informational + a deep-link to the parked task (where the PR-review
|
|
42
|
+
// window lists the findings grouped by slice); `act` just marks it read.
|
|
39
43
|
// - `initiative` — the initiative execution loop needs a human: a spawned task was
|
|
40
44
|
// blocked (its phase is halted until it is retried/skipped), or the
|
|
41
45
|
// initiative finished (every planned task resolved). Informational +
|
|
@@ -70,6 +74,7 @@ export const notificationTypeSchema = v.picklist([
|
|
|
70
74
|
'human_review',
|
|
71
75
|
'followup_pending',
|
|
72
76
|
'fork_decision_pending',
|
|
77
|
+
'pr_review_ready',
|
|
73
78
|
'initiative',
|
|
74
79
|
]);
|
|
75
80
|
/**
|
|
@@ -104,6 +109,8 @@ export const notificationPayloadSchema = v.object({
|
|
|
104
109
|
findingCount: v.optional(v.number()),
|
|
105
110
|
/** Number of materially different implementation forks surfaced, on a `fork_decision_pending`. */
|
|
106
111
|
forkCount: v.optional(v.number()),
|
|
112
|
+
/** Number of cohesive slices the PR was grouped into, on a `pr_review_ready`. */
|
|
113
|
+
sliceCount: v.optional(v.number()),
|
|
107
114
|
/** The `on-call` agent's assessment, on a `release_regression`. */
|
|
108
115
|
onCallAssessment: v.optional(onCallAssessmentSchema),
|
|
109
116
|
/** The monitors/SLOs that regressed, on a `release_regression`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
/**
|
|
3
|
+
* How serious a finding is, ordered blocker → nit. The window groups + sorts by this and
|
|
4
|
+
* renders a colour per level; the engine sorts the aggregated findings blocker-first.
|
|
5
|
+
*/
|
|
6
|
+
export declare const prReviewSeveritySchema: v.PicklistSchema<["blocker", "high", "medium", "low", "nit"], undefined>;
|
|
7
|
+
export type PrReviewSeverity = v.InferOutput<typeof prReviewSeveritySchema>;
|
|
8
|
+
/** What area a finding concerns — drives the window's category chip. */
|
|
9
|
+
export declare const prReviewCategorySchema: v.PicklistSchema<["correctness", "security", "performance", "maintainability", "style", "test", "other"], undefined>;
|
|
10
|
+
export type PrReviewCategory = v.InferOutput<typeof prReviewCategorySchema>;
|
|
11
|
+
/**
|
|
12
|
+
* One cohesive slice the reviewer grouped the changed files into (a refactor + its call
|
|
13
|
+
* sites + its tests). The window groups findings under their slice. `id` is engine-minted
|
|
14
|
+
* (`prs_*`) when the reviewer's output is recorded onto the step.
|
|
15
|
+
*/
|
|
16
|
+
export declare const prReviewSliceSchema: v.ObjectSchema<{
|
|
17
|
+
/** Engine-minted stable id (`prs_*`); assigned when the reviewer's output is recorded. */
|
|
18
|
+
readonly id: v.StringSchema<undefined>;
|
|
19
|
+
/** Short name of the slice. */
|
|
20
|
+
readonly title: v.StringSchema<undefined>;
|
|
21
|
+
/** Why these files belong together. */
|
|
22
|
+
readonly rationale: v.StringSchema<undefined>;
|
|
23
|
+
/** The repo-relative paths that make up the slice. */
|
|
24
|
+
readonly paths: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
25
|
+
}, undefined>;
|
|
26
|
+
export type PrReviewSlice = v.InferOutput<typeof prReviewSliceSchema>;
|
|
27
|
+
/**
|
|
28
|
+
* One prioritized review finding, id-stamped by the engine and anchored to a slice. Carries
|
|
29
|
+
* everything the window needs to render it and everything PR 3's resolutions consume (the
|
|
30
|
+
* `path`/`line`/`side` anchor for an inline PR comment; the `suggestedFix` for the Fixer).
|
|
31
|
+
*/
|
|
32
|
+
export declare const prReviewFindingSchema: v.ObjectSchema<{
|
|
33
|
+
/** Engine-minted stable id (`prf_*`); the multi-select carries these ids. */
|
|
34
|
+
readonly id: v.StringSchema<undefined>;
|
|
35
|
+
/** The slice this finding belongs to (`prs_*`), or null when it matched no slice. */
|
|
36
|
+
readonly sliceId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
37
|
+
/** Repo-relative path the finding concerns. */
|
|
38
|
+
readonly path: v.StringSchema<undefined>;
|
|
39
|
+
/** The line the finding anchors to on the PR head (for an inline comment), or null. */
|
|
40
|
+
readonly line: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
|
|
41
|
+
/** Which side of the diff the line is on; `RIGHT` (head) unless it concerns a removed line. */
|
|
42
|
+
readonly side: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["LEFT", "RIGHT"], undefined>, undefined>, undefined>;
|
|
43
|
+
readonly severity: v.PicklistSchema<["blocker", "high", "medium", "low", "nit"], undefined>;
|
|
44
|
+
readonly category: v.PicklistSchema<["correctness", "security", "performance", "maintainability", "style", "test", "other"], undefined>;
|
|
45
|
+
/** Short headline. */
|
|
46
|
+
readonly title: v.StringSchema<undefined>;
|
|
47
|
+
/** The full finding, in prose. */
|
|
48
|
+
readonly detail: v.StringSchema<undefined>;
|
|
49
|
+
/** A concrete suggested change, when the reviewer offered one. */
|
|
50
|
+
readonly suggestedFix: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
51
|
+
}, undefined>;
|
|
52
|
+
export type PrReviewFinding = v.InferOutput<typeof prReviewFindingSchema>;
|
|
53
|
+
/**
|
|
54
|
+
* The PR-review lifecycle on a `pr-reviewer` step:
|
|
55
|
+
* - `reviewing`: the read-only reviewer container job is in flight (the agent dispatch).
|
|
56
|
+
* - `awaiting_selection`: parked; the human curates which findings matter through the window.
|
|
57
|
+
* - `fixing` / `posting`: a resolution is executing (PR 3 — the Fixer commits, or inline
|
|
58
|
+
* comments are posted). Unused in PR 2.
|
|
59
|
+
* - `done`: the review is resolved (the human finished; PR 3: fixed / posted).
|
|
60
|
+
* - `skipped`: the reviewer isn't wired / produced nothing to review — the step passed through.
|
|
61
|
+
*/
|
|
62
|
+
export declare const prReviewStatusSchema: v.PicklistSchema<["reviewing", "awaiting_selection", "fixing", "posting", "done", "skipped"], undefined>;
|
|
63
|
+
export type PrReviewStatus = v.InferOutput<typeof prReviewStatusSchema>;
|
|
64
|
+
/**
|
|
65
|
+
* How the human resolved the review. PR 2 ships only `finish` (curate the selection + complete
|
|
66
|
+
* the read-only review); PR 3 adds `fix` (feed the selected findings to a Fixer) and `post`
|
|
67
|
+
* (post them as inline PR review comments). Adding members later is a non-breaking extension
|
|
68
|
+
* (backwards compatibility is a non-goal — see CLAUDE.md).
|
|
69
|
+
*/
|
|
70
|
+
export declare const prReviewResolutionSchema: v.PicklistSchema<["finish"], undefined>;
|
|
71
|
+
export type PrReviewResolution = v.InferOutput<typeof prReviewResolutionSchema>;
|
|
72
|
+
/**
|
|
73
|
+
* Live PR-review state carried on the run's `pr-reviewer` step. Recorded by the engine when
|
|
74
|
+
* the reviewer container job completes (the sliced, severity-ordered findings), then mutated
|
|
75
|
+
* by the human's selection + resolution. `prUrl` is the reviewed PR (for the window header);
|
|
76
|
+
* `model` records the reviewing model for transparency.
|
|
77
|
+
*/
|
|
78
|
+
export declare const prReviewStepStateSchema: v.ObjectSchema<{
|
|
79
|
+
readonly status: v.PicklistSchema<["reviewing", "awaiting_selection", "fixing", "posting", "done", "skipped"], undefined>;
|
|
80
|
+
/** The reviewer's one-paragraph overall assessment of the PR, when it gave one. */
|
|
81
|
+
readonly summary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
82
|
+
/** The cohesive slices the reviewer grouped the changed files into. */
|
|
83
|
+
readonly slices: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
84
|
+
/** Engine-minted stable id (`prs_*`); assigned when the reviewer's output is recorded. */
|
|
85
|
+
readonly id: v.StringSchema<undefined>;
|
|
86
|
+
/** Short name of the slice. */
|
|
87
|
+
readonly title: v.StringSchema<undefined>;
|
|
88
|
+
/** Why these files belong together. */
|
|
89
|
+
readonly rationale: v.StringSchema<undefined>;
|
|
90
|
+
/** The repo-relative paths that make up the slice. */
|
|
91
|
+
readonly paths: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
92
|
+
}, undefined>, undefined>, readonly []>;
|
|
93
|
+
/** The findings, ordered by severity (blocker → nit). */
|
|
94
|
+
readonly findings: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
95
|
+
/** Engine-minted stable id (`prf_*`); the multi-select carries these ids. */
|
|
96
|
+
readonly id: v.StringSchema<undefined>;
|
|
97
|
+
/** The slice this finding belongs to (`prs_*`), or null when it matched no slice. */
|
|
98
|
+
readonly sliceId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
99
|
+
/** Repo-relative path the finding concerns. */
|
|
100
|
+
readonly path: v.StringSchema<undefined>;
|
|
101
|
+
/** The line the finding anchors to on the PR head (for an inline comment), or null. */
|
|
102
|
+
readonly line: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
|
|
103
|
+
/** Which side of the diff the line is on; `RIGHT` (head) unless it concerns a removed line. */
|
|
104
|
+
readonly side: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["LEFT", "RIGHT"], undefined>, undefined>, undefined>;
|
|
105
|
+
readonly severity: v.PicklistSchema<["blocker", "high", "medium", "low", "nit"], undefined>;
|
|
106
|
+
readonly category: v.PicklistSchema<["correctness", "security", "performance", "maintainability", "style", "test", "other"], undefined>;
|
|
107
|
+
/** Short headline. */
|
|
108
|
+
readonly title: v.StringSchema<undefined>;
|
|
109
|
+
/** The full finding, in prose. */
|
|
110
|
+
readonly detail: v.StringSchema<undefined>;
|
|
111
|
+
/** A concrete suggested change, when the reviewer offered one. */
|
|
112
|
+
readonly suggestedFix: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
113
|
+
}, undefined>, undefined>, readonly []>;
|
|
114
|
+
/** The finding ids the human selected to act on (curated in the window). */
|
|
115
|
+
readonly selectedFindingIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, readonly []>;
|
|
116
|
+
/** How the human resolved the review; null while awaiting selection. */
|
|
117
|
+
readonly resolution: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["finish"], undefined>, undefined>, undefined>;
|
|
118
|
+
/** Web URL of the reviewed pull request, when known. */
|
|
119
|
+
readonly prUrl: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
120
|
+
/** Identifier of the model that produced the review, for transparency. */
|
|
121
|
+
readonly model: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
122
|
+
}, undefined>;
|
|
123
|
+
export type PrReviewStepState = v.InferOutput<typeof prReviewStepStateSchema>;
|
|
124
|
+
/**
|
|
125
|
+
* The LENIENT structured shape the read-only `pr-reviewer` container agent returns as
|
|
126
|
+
* `result.custom` (the engine mints slice/finding ids and records it onto the step). Every
|
|
127
|
+
* field falls back to a safe default (`v.fallback`) — exactly like `forkProposal` — so a
|
|
128
|
+
* partially-malformed reply degrades to sensible defaults rather than failing the run: an
|
|
129
|
+
* unreadable severity/category reads as its safe default, and each list degrades to empty.
|
|
130
|
+
* This is the SINGLE source of truth for the reviewer's output shape, consumed both by the
|
|
131
|
+
* agent kind's `defineStructuredOutput` (validation at completion) and the engine's coercion.
|
|
132
|
+
*/
|
|
133
|
+
export declare const prReviewAgentOutputSchema: v.ObjectSchema<{
|
|
134
|
+
/** One-paragraph overall assessment of the PR. */
|
|
135
|
+
readonly summary: v.SchemaWithFallback<v.OptionalSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
136
|
+
/** The cohesive slices the reviewer grouped the changed files into. */
|
|
137
|
+
readonly slices: v.SchemaWithFallback<v.ArraySchema<v.SchemaWithFallback<v.ObjectSchema<{
|
|
138
|
+
readonly title: v.SchemaWithFallback<v.StringSchema<undefined>, "">;
|
|
139
|
+
readonly rationale: v.SchemaWithFallback<v.StringSchema<undefined>, "">;
|
|
140
|
+
readonly paths: v.SchemaWithFallback<v.ArraySchema<v.SchemaWithFallback<v.StringSchema<undefined>, "">, undefined>, readonly []>;
|
|
141
|
+
}, undefined>, {
|
|
142
|
+
readonly title: "";
|
|
143
|
+
readonly rationale: "";
|
|
144
|
+
readonly paths: readonly [];
|
|
145
|
+
}>, undefined>, readonly []>;
|
|
146
|
+
/** The findings, ordered by severity (blocker → nit). */
|
|
147
|
+
readonly findings: v.SchemaWithFallback<v.ArraySchema<v.SchemaWithFallback<v.ObjectSchema<{
|
|
148
|
+
readonly path: v.SchemaWithFallback<v.StringSchema<undefined>, "">;
|
|
149
|
+
readonly line: v.SchemaWithFallback<v.OptionalSchema<v.NumberSchema<undefined>, undefined>, undefined>;
|
|
150
|
+
readonly side: v.SchemaWithFallback<v.OptionalSchema<v.PicklistSchema<["LEFT", "RIGHT"], undefined>, undefined>, undefined>;
|
|
151
|
+
readonly severity: v.SchemaWithFallback<v.PicklistSchema<["blocker", "high", "medium", "low", "nit"], undefined>, "medium">;
|
|
152
|
+
readonly category: v.SchemaWithFallback<v.PicklistSchema<["correctness", "security", "performance", "maintainability", "style", "test", "other"], undefined>, "other">;
|
|
153
|
+
readonly title: v.SchemaWithFallback<v.StringSchema<undefined>, "">;
|
|
154
|
+
readonly detail: v.SchemaWithFallback<v.StringSchema<undefined>, "">;
|
|
155
|
+
readonly suggestedFix: v.SchemaWithFallback<v.OptionalSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
156
|
+
}, undefined>, {
|
|
157
|
+
readonly path: "";
|
|
158
|
+
readonly severity: 'medium';
|
|
159
|
+
readonly category: 'other';
|
|
160
|
+
readonly title: "";
|
|
161
|
+
readonly detail: "";
|
|
162
|
+
}>, undefined>, readonly []>;
|
|
163
|
+
}, undefined>;
|
|
164
|
+
export type PrReviewAgentOutput = v.InferOutput<typeof prReviewAgentOutputSchema>;
|
|
165
|
+
/**
|
|
166
|
+
* Resolve a parked PR review: the human's curated selection (`findingIds`) plus how to resolve
|
|
167
|
+
* it (`action`). PR 2 supports only `finish` — record the selection and complete the read-only
|
|
168
|
+
* review. The Fixer / inline-comment resolutions are PR 3.
|
|
169
|
+
*/
|
|
170
|
+
export declare const resolvePrReviewSchema: v.ObjectSchema<{
|
|
171
|
+
readonly action: v.OptionalSchema<v.PicklistSchema<["finish"], undefined>, "finish">;
|
|
172
|
+
readonly findingIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, readonly []>;
|
|
173
|
+
}, undefined>;
|
|
174
|
+
export type ResolvePrReviewInput = v.InferOutput<typeof resolvePrReviewSchema>;
|
|
175
|
+
//# sourceMappingURL=prReview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prReview.d.ts","sourceRoot":"","sources":["../src/prReview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmB5B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,0EAA0D,CAAA;AAC7F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,sHAQjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;IAC9B,0FAA0F;;IAE1F,+BAA+B;;IAE/B,uCAAuC;;IAEvC,sDAAsD;;aAEtD,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;IAChC,6EAA6E;;IAE7E,qFAAqF;;IAErF,+CAA+C;;IAE/C,uFAAuF;;IAEvF,+FAA+F;;;;IAI/F,sBAAsB;;IAEtB,kCAAkC;;IAElC,kEAAkE;;aAElE,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,0GAO/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,yCAAyB,CAAA;AAC9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;IAElC,mFAAmF;;IAEnF,uEAAuE;;QA5EvE,0FAA0F;;QAE1F,+BAA+B;;QAE/B,uCAAuC;;QAEvC,sDAAsD;;;IAwEtD,yDAAyD;;QA7DzD,6EAA6E;;QAE7E,qFAAqF;;QAErF,+CAA+C;;QAE/C,uFAAuF;;QAEvF,+FAA+F;;;;QAI/F,sBAAsB;;QAEtB,kCAAkC;;QAElC,kEAAkE;;;IA+ClE,4EAA4E;;IAE5E,wEAAwE;;IAExE,wDAAwD;;IAExD,0EAA0E;;aAE1E,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAI7E;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB;IACpC,kDAAkD;;IAElD,uEAAuE;;;;;;;;;;IAcvE,yDAAyD;;;;;;;;;;;;2BAgBvC,QAAQ;2BACR,OAAO;;;;aAQzB,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAIjF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;aAGhC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
|
package/dist/prReview.js
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// PR deep-review wire contracts. A `review` task runs the read-only `pr-reviewer`
|
|
4
|
+
// container agent over an EXISTING open pull request: it slices the diff into
|
|
5
|
+
// cohesive chunks and reviews each within a bounded context, returning prioritized
|
|
6
|
+
// findings. Rather than finishing the run the moment the agent returns (PR 1's
|
|
7
|
+
// behaviour), the engine records the sliced findings onto the run's `pr-reviewer`
|
|
8
|
+
// step (`step.prReview`) and PARKS for a human to visually SELECT which findings
|
|
9
|
+
// matter through the dedicated review window, then resolve.
|
|
10
|
+
//
|
|
11
|
+
// All review state rides the run's `pr-reviewer` step (`PipelineStep.prReview`) —
|
|
12
|
+
// no side table — so it is runtime-symmetric by construction, exactly like
|
|
13
|
+
// `forkDecision` / `followUps`. The two terminal resolutions (feed the selected
|
|
14
|
+
// findings to a Fixer, or post them as inline PR review comments) are the tracked
|
|
15
|
+
// follow-up (PR 3); PR 2 ships the slicing → park → multi-select loop with a
|
|
16
|
+
// neutral `finish` resolution.
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
/**
|
|
19
|
+
* How serious a finding is, ordered blocker → nit. The window groups + sorts by this and
|
|
20
|
+
* renders a colour per level; the engine sorts the aggregated findings blocker-first.
|
|
21
|
+
*/
|
|
22
|
+
export const prReviewSeveritySchema = v.picklist(['blocker', 'high', 'medium', 'low', 'nit']);
|
|
23
|
+
/** What area a finding concerns — drives the window's category chip. */
|
|
24
|
+
export const prReviewCategorySchema = v.picklist([
|
|
25
|
+
'correctness',
|
|
26
|
+
'security',
|
|
27
|
+
'performance',
|
|
28
|
+
'maintainability',
|
|
29
|
+
'style',
|
|
30
|
+
'test',
|
|
31
|
+
'other',
|
|
32
|
+
]);
|
|
33
|
+
/**
|
|
34
|
+
* One cohesive slice the reviewer grouped the changed files into (a refactor + its call
|
|
35
|
+
* sites + its tests). The window groups findings under their slice. `id` is engine-minted
|
|
36
|
+
* (`prs_*`) when the reviewer's output is recorded onto the step.
|
|
37
|
+
*/
|
|
38
|
+
export const prReviewSliceSchema = v.object({
|
|
39
|
+
/** Engine-minted stable id (`prs_*`); assigned when the reviewer's output is recorded. */
|
|
40
|
+
id: v.string(),
|
|
41
|
+
/** Short name of the slice. */
|
|
42
|
+
title: v.string(),
|
|
43
|
+
/** Why these files belong together. */
|
|
44
|
+
rationale: v.string(),
|
|
45
|
+
/** The repo-relative paths that make up the slice. */
|
|
46
|
+
paths: v.array(v.string()),
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* One prioritized review finding, id-stamped by the engine and anchored to a slice. Carries
|
|
50
|
+
* everything the window needs to render it and everything PR 3's resolutions consume (the
|
|
51
|
+
* `path`/`line`/`side` anchor for an inline PR comment; the `suggestedFix` for the Fixer).
|
|
52
|
+
*/
|
|
53
|
+
export const prReviewFindingSchema = v.object({
|
|
54
|
+
/** Engine-minted stable id (`prf_*`); the multi-select carries these ids. */
|
|
55
|
+
id: v.string(),
|
|
56
|
+
/** The slice this finding belongs to (`prs_*`), or null when it matched no slice. */
|
|
57
|
+
sliceId: v.optional(v.nullable(v.string())),
|
|
58
|
+
/** Repo-relative path the finding concerns. */
|
|
59
|
+
path: v.string(),
|
|
60
|
+
/** The line the finding anchors to on the PR head (for an inline comment), or null. */
|
|
61
|
+
line: v.optional(v.nullable(v.number())),
|
|
62
|
+
/** Which side of the diff the line is on; `RIGHT` (head) unless it concerns a removed line. */
|
|
63
|
+
side: v.optional(v.nullable(v.picklist(['LEFT', 'RIGHT']))),
|
|
64
|
+
severity: prReviewSeveritySchema,
|
|
65
|
+
category: prReviewCategorySchema,
|
|
66
|
+
/** Short headline. */
|
|
67
|
+
title: v.string(),
|
|
68
|
+
/** The full finding, in prose. */
|
|
69
|
+
detail: v.string(),
|
|
70
|
+
/** A concrete suggested change, when the reviewer offered one. */
|
|
71
|
+
suggestedFix: v.optional(v.nullable(v.string())),
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* The PR-review lifecycle on a `pr-reviewer` step:
|
|
75
|
+
* - `reviewing`: the read-only reviewer container job is in flight (the agent dispatch).
|
|
76
|
+
* - `awaiting_selection`: parked; the human curates which findings matter through the window.
|
|
77
|
+
* - `fixing` / `posting`: a resolution is executing (PR 3 — the Fixer commits, or inline
|
|
78
|
+
* comments are posted). Unused in PR 2.
|
|
79
|
+
* - `done`: the review is resolved (the human finished; PR 3: fixed / posted).
|
|
80
|
+
* - `skipped`: the reviewer isn't wired / produced nothing to review — the step passed through.
|
|
81
|
+
*/
|
|
82
|
+
export const prReviewStatusSchema = v.picklist([
|
|
83
|
+
'reviewing',
|
|
84
|
+
'awaiting_selection',
|
|
85
|
+
'fixing',
|
|
86
|
+
'posting',
|
|
87
|
+
'done',
|
|
88
|
+
'skipped',
|
|
89
|
+
]);
|
|
90
|
+
/**
|
|
91
|
+
* How the human resolved the review. PR 2 ships only `finish` (curate the selection + complete
|
|
92
|
+
* the read-only review); PR 3 adds `fix` (feed the selected findings to a Fixer) and `post`
|
|
93
|
+
* (post them as inline PR review comments). Adding members later is a non-breaking extension
|
|
94
|
+
* (backwards compatibility is a non-goal — see CLAUDE.md).
|
|
95
|
+
*/
|
|
96
|
+
export const prReviewResolutionSchema = v.picklist(['finish']);
|
|
97
|
+
/**
|
|
98
|
+
* Live PR-review state carried on the run's `pr-reviewer` step. Recorded by the engine when
|
|
99
|
+
* the reviewer container job completes (the sliced, severity-ordered findings), then mutated
|
|
100
|
+
* by the human's selection + resolution. `prUrl` is the reviewed PR (for the window header);
|
|
101
|
+
* `model` records the reviewing model for transparency.
|
|
102
|
+
*/
|
|
103
|
+
export const prReviewStepStateSchema = v.object({
|
|
104
|
+
status: prReviewStatusSchema,
|
|
105
|
+
/** The reviewer's one-paragraph overall assessment of the PR, when it gave one. */
|
|
106
|
+
summary: v.optional(v.nullable(v.string())),
|
|
107
|
+
/** The cohesive slices the reviewer grouped the changed files into. */
|
|
108
|
+
slices: v.optional(v.array(prReviewSliceSchema), []),
|
|
109
|
+
/** The findings, ordered by severity (blocker → nit). */
|
|
110
|
+
findings: v.optional(v.array(prReviewFindingSchema), []),
|
|
111
|
+
/** The finding ids the human selected to act on (curated in the window). */
|
|
112
|
+
selectedFindingIds: v.optional(v.array(v.string()), []),
|
|
113
|
+
/** How the human resolved the review; null while awaiting selection. */
|
|
114
|
+
resolution: v.optional(v.nullable(prReviewResolutionSchema)),
|
|
115
|
+
/** Web URL of the reviewed pull request, when known. */
|
|
116
|
+
prUrl: v.optional(v.nullable(v.string())),
|
|
117
|
+
/** Identifier of the model that produced the review, for transparency. */
|
|
118
|
+
model: v.optional(v.nullable(v.string())),
|
|
119
|
+
});
|
|
120
|
+
// ---- Reviewer agent output (lenient) --------------------------------------
|
|
121
|
+
/**
|
|
122
|
+
* The LENIENT structured shape the read-only `pr-reviewer` container agent returns as
|
|
123
|
+
* `result.custom` (the engine mints slice/finding ids and records it onto the step). Every
|
|
124
|
+
* field falls back to a safe default (`v.fallback`) — exactly like `forkProposal` — so a
|
|
125
|
+
* partially-malformed reply degrades to sensible defaults rather than failing the run: an
|
|
126
|
+
* unreadable severity/category reads as its safe default, and each list degrades to empty.
|
|
127
|
+
* This is the SINGLE source of truth for the reviewer's output shape, consumed both by the
|
|
128
|
+
* agent kind's `defineStructuredOutput` (validation at completion) and the engine's coercion.
|
|
129
|
+
*/
|
|
130
|
+
export const prReviewAgentOutputSchema = v.object({
|
|
131
|
+
/** One-paragraph overall assessment of the PR. */
|
|
132
|
+
summary: v.fallback(v.optional(v.string()), undefined),
|
|
133
|
+
/** The cohesive slices the reviewer grouped the changed files into. */
|
|
134
|
+
slices: v.fallback(v.array(v.fallback(v.object({
|
|
135
|
+
title: v.fallback(v.string(), ''),
|
|
136
|
+
rationale: v.fallback(v.string(), ''),
|
|
137
|
+
paths: v.fallback(v.array(v.fallback(v.string(), '')), []),
|
|
138
|
+
}), { title: '', rationale: '', paths: [] })), []),
|
|
139
|
+
/** The findings, ordered by severity (blocker → nit). */
|
|
140
|
+
findings: v.fallback(v.array(v.fallback(v.object({
|
|
141
|
+
path: v.fallback(v.string(), ''),
|
|
142
|
+
line: v.fallback(v.optional(v.number()), undefined),
|
|
143
|
+
side: v.fallback(v.optional(v.picklist(['LEFT', 'RIGHT'])), undefined),
|
|
144
|
+
severity: v.fallback(prReviewSeveritySchema, 'medium'),
|
|
145
|
+
category: v.fallback(prReviewCategorySchema, 'other'),
|
|
146
|
+
title: v.fallback(v.string(), ''),
|
|
147
|
+
detail: v.fallback(v.string(), ''),
|
|
148
|
+
suggestedFix: v.fallback(v.optional(v.string()), undefined),
|
|
149
|
+
}), {
|
|
150
|
+
path: '',
|
|
151
|
+
severity: 'medium',
|
|
152
|
+
category: 'other',
|
|
153
|
+
title: '',
|
|
154
|
+
detail: '',
|
|
155
|
+
})), []),
|
|
156
|
+
});
|
|
157
|
+
// ---- Request bodies -------------------------------------------------------
|
|
158
|
+
/**
|
|
159
|
+
* Resolve a parked PR review: the human's curated selection (`findingIds`) plus how to resolve
|
|
160
|
+
* it (`action`). PR 2 supports only `finish` — record the selection and complete the read-only
|
|
161
|
+
* review. The Fixer / inline-comment resolutions are PR 3.
|
|
162
|
+
*/
|
|
163
|
+
export const resolvePrReviewSchema = v.object({
|
|
164
|
+
action: v.optional(prReviewResolutionSchema, 'finish'),
|
|
165
|
+
findingIds: v.optional(v.array(v.string()), []),
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=prReview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prReview.js","sourceRoot":"","sources":["../src/prReview.ts"],"names":[],"mappings":"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"}
|
package/dist/primitives.d.ts
CHANGED
|
@@ -36,14 +36,16 @@ export type BlockLevel = v.InferOutput<typeof blockLevelSchema>;
|
|
|
36
36
|
/**
|
|
37
37
|
* The kind of work a task represents, chosen by the human at creation. Drives the
|
|
38
38
|
* task card's icon/badge, per-type creation fields, and (optionally) the per-service
|
|
39
|
-
* running-task limit's bucketing. `
|
|
40
|
-
*
|
|
41
|
-
*
|
|
39
|
+
* running-task limit's bucketing. `review` is a deep-review of an EXISTING open pull
|
|
40
|
+
* request (see {@link taskTypeFieldsSchema}'s `prNumber`/`prUrl`); `recurring` is
|
|
41
|
+
* special: such tasks are NOT created through `addTask` — they are the reused on-board
|
|
42
|
+
* block of a recurring-pipeline schedule, stamped with this type so the board renders
|
|
43
|
+
* them consistently.
|
|
42
44
|
*/
|
|
43
|
-
export declare const taskTypeSchema: v.PicklistSchema<["feature", "bug", "document", "spike", "recurring"], undefined>;
|
|
45
|
+
export declare const taskTypeSchema: v.PicklistSchema<["feature", "bug", "document", "spike", "review", "recurring"], undefined>;
|
|
44
46
|
export type TaskType = v.InferOutput<typeof taskTypeSchema>;
|
|
45
47
|
/** The task types a human can pick in the create-task form (recurring is created via a schedule). */
|
|
46
|
-
export declare const createTaskTypeSchema: v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>;
|
|
48
|
+
export declare const createTaskTypeSchema: v.PicklistSchema<["feature", "bug", "document", "spike", "review"], undefined>;
|
|
47
49
|
export type CreateTaskType = v.InferOutput<typeof createTaskTypeSchema>;
|
|
48
50
|
/**
|
|
49
51
|
* The kinds of document a `document` task can produce. Drives the document-authoring
|
|
@@ -108,6 +110,22 @@ export declare const taskTypeFieldsSchema: v.ObjectSchema<{
|
|
|
108
110
|
readonly optionsToCompare: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
109
111
|
/** API: the endpoints / surface in scope for the reference. */
|
|
110
112
|
readonly apiSurface: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
113
|
+
/**
|
|
114
|
+
* Review: the number of the EXISTING open pull request to deep-review, on the
|
|
115
|
+
* service's linked repository. Either this or {@link prUrl} identifies the target;
|
|
116
|
+
* `prUrl` wins when both are present.
|
|
117
|
+
*/
|
|
118
|
+
readonly prNumber: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
119
|
+
/**
|
|
120
|
+
* Review: the full web URL of the pull request to review (e.g.
|
|
121
|
+
* `https://github.com/owner/repo/pull/123`). Folded into the task description for the
|
|
122
|
+
* reviewer to read; today the reviewer clones the service's linked repo and fetches the
|
|
123
|
+
* PR head by number from `origin`, so a cross-repo `prUrl` is not yet resolved to a
|
|
124
|
+
* different repo (a tracked follow-up — see docs/initiatives/pr-deep-review.md).
|
|
125
|
+
*/
|
|
126
|
+
readonly prUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
127
|
+
/** Review: freeform focus/guidance for the reviewer (e.g. "focus on the auth changes"). */
|
|
128
|
+
readonly reviewFocus: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 4000, undefined>]>, undefined>;
|
|
111
129
|
}, undefined>;
|
|
112
130
|
export type TaskTypeFields = v.InferOutput<typeof taskTypeFieldsSchema>;
|
|
113
131
|
/** A kind-specific document field key on {@link taskTypeFieldsSchema}. */
|
package/dist/primitives.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAM5B,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,iGAAqC,CAAA;AAE1D,8GAA8G;AAC9G,eAAO,MAAM,SAAS,2JAAkE,CAAA;AAExF,eAAO,MAAM,eAAe,mJAW1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,6EAA6D,CAAA;AAC7F,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE,gGAAgG;AAChG,eAAO,MAAM,gBAAgB,YAAI,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAU,CAAA;AAEvF,eAAO,MAAM,iBAAiB,iGAO5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,gFAAgE,CAAA;AAC7F,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
|
package/dist/primitives.js
CHANGED
|
@@ -53,13 +53,22 @@ export const blockLevelSchema = v.picklist(['frame', 'module', 'task', 'epic', '
|
|
|
53
53
|
/**
|
|
54
54
|
* The kind of work a task represents, chosen by the human at creation. Drives the
|
|
55
55
|
* task card's icon/badge, per-type creation fields, and (optionally) the per-service
|
|
56
|
-
* running-task limit's bucketing. `
|
|
57
|
-
*
|
|
58
|
-
*
|
|
56
|
+
* running-task limit's bucketing. `review` is a deep-review of an EXISTING open pull
|
|
57
|
+
* request (see {@link taskTypeFieldsSchema}'s `prNumber`/`prUrl`); `recurring` is
|
|
58
|
+
* special: such tasks are NOT created through `addTask` — they are the reused on-board
|
|
59
|
+
* block of a recurring-pipeline schedule, stamped with this type so the board renders
|
|
60
|
+
* them consistently.
|
|
59
61
|
*/
|
|
60
|
-
export const taskTypeSchema = v.picklist([
|
|
62
|
+
export const taskTypeSchema = v.picklist([
|
|
63
|
+
'feature',
|
|
64
|
+
'bug',
|
|
65
|
+
'document',
|
|
66
|
+
'spike',
|
|
67
|
+
'review',
|
|
68
|
+
'recurring',
|
|
69
|
+
]);
|
|
61
70
|
/** The task types a human can pick in the create-task form (recurring is created via a schedule). */
|
|
62
|
-
export const createTaskTypeSchema = v.picklist(['feature', 'bug', 'document', 'spike']);
|
|
71
|
+
export const createTaskTypeSchema = v.picklist(['feature', 'bug', 'document', 'spike', 'review']);
|
|
63
72
|
/**
|
|
64
73
|
* The kinds of document a `document` task can produce. Drives the document-authoring
|
|
65
74
|
* pipeline's prompts (each kind implies a structure: a PRD vs an RFC vs a runbook) and
|
|
@@ -149,6 +158,23 @@ export const taskTypeFieldsSchema = v.object({
|
|
|
149
158
|
optionsToCompare: v.optional(v.pipe(v.string(), v.maxLength(2000))),
|
|
150
159
|
/** API: the endpoints / surface in scope for the reference. */
|
|
151
160
|
apiSurface: v.optional(v.pipe(v.string(), v.maxLength(2000))),
|
|
161
|
+
// --- Review-task fields ---------------------------------------------------
|
|
162
|
+
/**
|
|
163
|
+
* Review: the number of the EXISTING open pull request to deep-review, on the
|
|
164
|
+
* service's linked repository. Either this or {@link prUrl} identifies the target;
|
|
165
|
+
* `prUrl` wins when both are present.
|
|
166
|
+
*/
|
|
167
|
+
prNumber: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
168
|
+
/**
|
|
169
|
+
* Review: the full web URL of the pull request to review (e.g.
|
|
170
|
+
* `https://github.com/owner/repo/pull/123`). Folded into the task description for the
|
|
171
|
+
* reviewer to read; today the reviewer clones the service's linked repo and fetches the
|
|
172
|
+
* PR head by number from `origin`, so a cross-repo `prUrl` is not yet resolved to a
|
|
173
|
+
* different repo (a tracked follow-up — see docs/initiatives/pr-deep-review.md).
|
|
174
|
+
*/
|
|
175
|
+
prUrl: v.optional(v.pipe(v.string(), v.trim(), v.maxLength(500))),
|
|
176
|
+
/** Review: freeform focus/guidance for the reviewer (e.g. "focus on the auth changes"). */
|
|
177
|
+
reviewFocus: v.optional(v.pipe(v.string(), v.maxLength(4000))),
|
|
152
178
|
});
|
|
153
179
|
/**
|
|
154
180
|
* Which kind-specific fields the create-task form shows — and the author agents fold into the
|
package/dist/primitives.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,+EAA+E;AAC/E,iFAAiF;AACjF,8BAA8B;AAE9B,0EAA0E;AAC1E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1D,8GAA8G;AAC9G,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AAExF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC;IACxC,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,KAAK;IACL,UAAU;IACV,OAAO;IACP,aAAa;IACb,UAAU;IACV,aAAa;CACd,CAAC,CAAA;AAGF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;AAG7F,gGAAgG;AAChG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAU,CAAA;AAEvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC1C,SAAS;IACT,OAAO;IACP,aAAa;IACb,SAAS;IACT,UAAU;IACV,MAAM;CACP,CAAC,CAAA;AAGF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;AAG7F
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
|