@renaiss-shipflow/cli 0.11.0 → 0.15.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/client.d.ts +8 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +3 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/stats.d.ts.map +1 -1
- package/dist/commands/stats.js +25 -1
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/test.d.ts +10 -0
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +52 -14
- package/dist/commands/test.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -1
- package/dist/escalation-format.d.ts +69 -12
- package/dist/escalation-format.d.ts.map +1 -1
- package/dist/escalation-format.js +145 -18
- package/dist/escalation-format.js.map +1 -1
- package/dist/packet.d.ts +9 -3
- package/dist/packet.d.ts.map +1 -1
- package/dist/packet.js +39 -22
- package/dist/packet.js.map +1 -1
- package/dist/review-contract-data.d.ts +91 -0
- package/dist/review-contract-data.d.ts.map +1 -0
- package/dist/review-contract-data.js +111 -0
- package/dist/review-contract-data.js.map +1 -0
- package/dist/review-contract.d.ts +10 -3
- package/dist/review-contract.d.ts.map +1 -1
- package/dist/review-contract.js +10 -0
- package/dist/review-contract.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// GENERATED FILE — DO NOT EDIT.
|
|
2
|
+
// Mirror of contracts/review-contract.json (the canonical review contract,
|
|
3
|
+
// epic #96). Regenerate with: node scripts/sync-review-contract.mjs
|
|
4
|
+
// The contract-parity test fails if this file drifts from the canonical one.
|
|
5
|
+
export const REVIEW_CONTRACT = {
|
|
6
|
+
"$comment": "Canonical review contract (epic #96, Option B): the single source of truth for constants BOTH reviewers share — the Go server's pr_review runner and the TS CLI's loop review packet. Mirrors: apps/renaissshipflow-server/internal/reviewcontract/review-contract.json (go:embed, byte-identical) and apps/renaissshipflow-cli/src/review-contract-data.ts (generated). Regenerate mirrors with `node scripts/sync-review-contract.mjs`; parity tests on both sides fail on drift. Noise lists are the UNION of the two pre-contract lists (never narrow), split into scopes: the lists under `noise` are shared review-filter noise; `noise.featuremapOnly` is feature-map-only (tracked, reviewable source the loop packet must keep showing). Verdict vocabularies are carried per side AS-IS — reconciliation is a later slice. `ownsTestVectors` pins the directory-boundary `owns` matcher, which stays implemented per language.",
|
|
7
|
+
"version": 1,
|
|
8
|
+
"budgets": {
|
|
9
|
+
"$comment": "perFileDiffCap/packetTotalCap bound each reviewer's diff; briefCap bounds the linked-issue spec + PR body (acceptance criteria sit at the BOTTOM of issue bodies — a tight cap silently drops the checklist).",
|
|
10
|
+
"perFileDiffCap": 6000,
|
|
11
|
+
"packetTotalCap": 60000,
|
|
12
|
+
"briefCap": 8000
|
|
13
|
+
},
|
|
14
|
+
"noise": {
|
|
15
|
+
"$comment": "Paths excluded from review diffs / the feature map, in two scopes. The lists directly under `noise` are SHARED review-filter noise: excluded from both reviewers' diffs and from the feature map. `featuremapOnly` entries are excluded from the feature map only — and, transitively, from the Go server's review filter, which shares featuremap.IsNoisePath (its pre-contract behavior) — but they are tracked, reviewable source the loop packet MUST keep showing (pre-contract it was the only reviewer that saw them). Matching: substrings contains-match anywhere in the path (TS case-insensitively, Go case-sensitively — each side keeps its pre-contract semantics). suffixes: trailing patterns filepath.Ext can't express. basenames: exact filenames (matched against the path's base name, never as a suffix). extensions: final-dot file extensions.",
|
|
16
|
+
"substrings": [
|
|
17
|
+
"node_modules/",
|
|
18
|
+
".git/",
|
|
19
|
+
"vendor/",
|
|
20
|
+
"dist/",
|
|
21
|
+
"build/",
|
|
22
|
+
".next/",
|
|
23
|
+
"__pycache__/",
|
|
24
|
+
".mypy_cache/",
|
|
25
|
+
".tox/",
|
|
26
|
+
".venv/",
|
|
27
|
+
".cache/",
|
|
28
|
+
"coverage/",
|
|
29
|
+
".nyc_output/",
|
|
30
|
+
".turbo/",
|
|
31
|
+
"__generated__/",
|
|
32
|
+
"__snapshots__/",
|
|
33
|
+
"__mocks__/",
|
|
34
|
+
"storybook-static/",
|
|
35
|
+
".pytest_cache/",
|
|
36
|
+
".gradle/",
|
|
37
|
+
"DerivedData/",
|
|
38
|
+
"Pods/",
|
|
39
|
+
"target/",
|
|
40
|
+
".rush/",
|
|
41
|
+
"out/",
|
|
42
|
+
".swc/",
|
|
43
|
+
".expo/"
|
|
44
|
+
],
|
|
45
|
+
"suffixes": [
|
|
46
|
+
".pb.go",
|
|
47
|
+
"_pb2.py",
|
|
48
|
+
"_pb2_grpc.py",
|
|
49
|
+
"_gen.go",
|
|
50
|
+
"_generated.go",
|
|
51
|
+
".gen.go",
|
|
52
|
+
".generated.ts",
|
|
53
|
+
".generated.tsx",
|
|
54
|
+
".gen.ts",
|
|
55
|
+
".min.js",
|
|
56
|
+
".min.css",
|
|
57
|
+
".tsbuildinfo"
|
|
58
|
+
],
|
|
59
|
+
"basenames": [
|
|
60
|
+
"package-lock.json",
|
|
61
|
+
"bun.lockb"
|
|
62
|
+
],
|
|
63
|
+
"extensions": [
|
|
64
|
+
".map",
|
|
65
|
+
".lock",
|
|
66
|
+
".sum",
|
|
67
|
+
".png",
|
|
68
|
+
".jpg",
|
|
69
|
+
".jpeg",
|
|
70
|
+
".gif",
|
|
71
|
+
".ico",
|
|
72
|
+
".svg",
|
|
73
|
+
".woff",
|
|
74
|
+
".woff2",
|
|
75
|
+
".ttf",
|
|
76
|
+
".eot",
|
|
77
|
+
".snap"
|
|
78
|
+
],
|
|
79
|
+
"featuremapOnly": {
|
|
80
|
+
"$comment": ".claude/ is tracked, reviewable source in this repo (63 files incl. plugin-shipped .claude/commands/shipflow-*.md and .claude/skills TS source) — noise for the feature map (and the server reviewer, per its pre-contract IsNoisePath), never for the loop packet.",
|
|
81
|
+
"substrings": [
|
|
82
|
+
".claude/"
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"verdicts": {
|
|
87
|
+
"$comment": "Carried AS-IS per side; unifying the vocabulary is a later slice of #96. Do not gate on the server enum — the server review is advisory.",
|
|
88
|
+
"loop": ["approve", "comment", "request_changes", "reject"],
|
|
89
|
+
"server": ["looks_good", "comment", "request_changes"]
|
|
90
|
+
},
|
|
91
|
+
"severities": ["critical", "high", "medium", "low"],
|
|
92
|
+
"defaultSeverity": "medium",
|
|
93
|
+
"ownsTestVectors": [
|
|
94
|
+
{ "$comment": "Directory-boundary match: a prefix owns itself and everything under it, never a sibling that merely shares the string.", "prefix": "src/app/admin", "path": "src/app/admin", "owns": true },
|
|
95
|
+
{ "prefix": "src/app/admin", "path": "src/app/admin/page.tsx", "owns": true },
|
|
96
|
+
{ "prefix": "src/app/admin", "path": "src/app/admin/nested/deep/file.ts", "owns": true },
|
|
97
|
+
{ "prefix": "src/app/admin", "path": "src/app/admin-shop/page.tsx", "owns": false },
|
|
98
|
+
{ "prefix": "src/app/admin", "path": "src/app/adminx", "owns": false },
|
|
99
|
+
{ "prefix": "./src/app/admin", "path": "src/app/admin/page.tsx", "owns": true },
|
|
100
|
+
{ "prefix": "src/app/admin/", "path": "src/app/admin/page.tsx", "owns": true },
|
|
101
|
+
{ "prefix": "src/app/admin/", "path": "src/app/admin/", "owns": true },
|
|
102
|
+
{ "prefix": "src/app/admin/", "path": "src/app/admin", "owns": false },
|
|
103
|
+
{ "prefix": "", "path": "src/anything.ts", "owns": false },
|
|
104
|
+
{ "prefix": "./", "path": "src/anything.ts", "owns": false },
|
|
105
|
+
{ "prefix": "apps", "path": "apps/renaissshipflow-cli/src/index.ts", "owns": true },
|
|
106
|
+
{ "prefix": "src/app/admin", "path": "src", "owns": false },
|
|
107
|
+
{ "prefix": "app", "path": "src/app/x.ts", "owns": false },
|
|
108
|
+
{ "prefix": "SRC/App", "path": "src/app/x.ts", "owns": false }
|
|
109
|
+
]
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=review-contract-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-contract-data.js","sourceRoot":"","sources":["../src/review-contract-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
|
|
1
|
+
/** The loop reviewer's verdict vocabulary — from the canonical contract
|
|
2
|
+
* (contracts/review-contract.json): `approve`/`comment`/`request_changes`/
|
|
3
|
+
* `reject`. The server's advisory vocabulary lives beside it in the contract;
|
|
4
|
+
* reconciling the two is a later slice of epic #96. */
|
|
5
|
+
export declare const LOOP_VERDICTS: readonly ["approve", "comment", "request_changes", "reject"];
|
|
6
|
+
export type Verdict = (typeof LOOP_VERDICTS)[number];
|
|
7
|
+
/** Severity scale (highest first) + the default applied to blank severities —
|
|
8
|
+
* from the canonical contract, matching the server's normalisation. */
|
|
9
|
+
export declare const SEVERITIES: readonly ["critical", "high", "medium", "low"];
|
|
10
|
+
export declare const DEFAULT_SEVERITY: "medium";
|
|
4
11
|
/** Severity badge — byte-identical to the server's severityBadge(). */
|
|
5
12
|
export declare function severityBadge(severity: string): string;
|
|
6
13
|
/** CodeRabbit-style fix-size tag after the badge — mirrors the server. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-contract.d.ts","sourceRoot":"","sources":["../src/review-contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"review-contract.d.ts","sourceRoot":"","sources":["../src/review-contract.ts"],"names":[],"mappings":"AAOA;;;wDAGwD;AACxD,eAAO,MAAM,aAAa,8DAAgC,CAAC;AAC3D,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD;wEACwE;AACxE,eAAO,MAAM,UAAU,gDAA6B,CAAC;AACrD,eAAO,MAAM,gBAAgB,UAAkC,CAAC;AAEhE,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAOtD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID;2EAC2E;AAC3E,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAS1D;AAED;;4EAE4E;AAC5E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;AAKD;;+EAE+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAkBlE;AAED;+EAC+E;AAC/E,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAChC;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,CAQpD;AAED,MAAM,WAAW,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE;AAC3F,MAAM,WAAW,aAAa;IAAG,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAAE;AAE7F;;;kFAGkF;AAClF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACnC,GAAG,aAAa,CAqBhB"}
|
package/dist/review-contract.js
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
// single source of truth for verdict vocabulary, severity badges, finding
|
|
3
3
|
// rendering, and diff anchoring, mirroring the server's runner_pr_review.go so
|
|
4
4
|
// the two reviewers post CONSISTENTLY (epic #96). Pure + testable; no I/O.
|
|
5
|
+
import { REVIEW_CONTRACT } from "./review-contract-data.js";
|
|
6
|
+
/** The loop reviewer's verdict vocabulary — from the canonical contract
|
|
7
|
+
* (contracts/review-contract.json): `approve`/`comment`/`request_changes`/
|
|
8
|
+
* `reject`. The server's advisory vocabulary lives beside it in the contract;
|
|
9
|
+
* reconciling the two is a later slice of epic #96. */
|
|
10
|
+
export const LOOP_VERDICTS = REVIEW_CONTRACT.verdicts.loop;
|
|
11
|
+
/** Severity scale (highest first) + the default applied to blank severities —
|
|
12
|
+
* from the canonical contract, matching the server's normalisation. */
|
|
13
|
+
export const SEVERITIES = REVIEW_CONTRACT.severities;
|
|
14
|
+
export const DEFAULT_SEVERITY = REVIEW_CONTRACT.defaultSeverity;
|
|
5
15
|
/** Severity badge — byte-identical to the server's severityBadge(). */
|
|
6
16
|
export function severityBadge(severity) {
|
|
7
17
|
switch (severity.trim().toLowerCase()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-contract.js","sourceRoot":"","sources":["../src/review-contract.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAC1E,+EAA+E;AAC/E,2EAA2E;
|
|
1
|
+
{"version":3,"file":"review-contract.js","sourceRoot":"","sources":["../src/review-contract.ts"],"names":[],"mappings":"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"}
|