@ddtcorex/dsh-maestro-review 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/cordis.patch.yml +18 -0
- package/lib/ci-clone.d.ts +21 -0
- package/lib/ci-clone.d.ts.map +1 -0
- package/lib/ci-clone.js +35 -0
- package/lib/ci-clone.js.map +1 -0
- package/lib/ci-coexist.d.ts +11 -0
- package/lib/ci-coexist.d.ts.map +1 -0
- package/lib/ci-coexist.js +38 -0
- package/lib/ci-coexist.js.map +1 -0
- package/lib/config-store.d.ts +13 -6
- package/lib/config-store.d.ts.map +1 -1
- package/lib/config-store.js.map +1 -1
- package/lib/events.d.ts +27 -0
- package/lib/events.d.ts.map +1 -1
- package/lib/gitlab-auth.d.ts +11 -0
- package/lib/gitlab-auth.d.ts.map +1 -0
- package/lib/gitlab-auth.js +15 -0
- package/lib/gitlab-auth.js.map +1 -0
- package/lib/gitlab-client.d.ts +7 -0
- package/lib/gitlab-client.d.ts.map +1 -1
- package/lib/gitlab-client.js +23 -1
- package/lib/gitlab-client.js.map +1 -1
- package/lib/incremental.d.ts.map +1 -1
- package/lib/incremental.js +4 -2
- package/lib/incremental.js.map +1 -1
- package/lib/orchestrator.d.ts +56 -6
- package/lib/orchestrator.d.ts.map +1 -1
- package/lib/orchestrator.js +243 -68
- package/lib/orchestrator.js.map +1 -1
- package/lib/providers/ci-trigger.d.ts +44 -0
- package/lib/providers/ci-trigger.d.ts.map +1 -0
- package/lib/providers/ci-trigger.js +150 -0
- package/lib/providers/ci-trigger.js.map +1 -0
- package/lib/providers/gitlab.d.ts.map +1 -1
- package/lib/providers/gitlab.js +16 -3
- package/lib/providers/gitlab.js.map +1 -1
- package/lib/review-history.d.ts +2 -1
- package/lib/review-history.d.ts.map +1 -1
- package/lib/review-history.js +67 -40
- package/lib/review-history.js.map +1 -1
- package/lib/review-intake.d.ts +9 -0
- package/lib/review-intake.d.ts.map +1 -1
- package/lib/review-intake.js +34 -1
- package/lib/review-intake.js.map +1 -1
- package/lib/review-marker.d.ts +17 -0
- package/lib/review-marker.d.ts.map +1 -0
- package/lib/review-marker.js +23 -0
- package/lib/review-marker.js.map +1 -0
- package/lib/review-signals.d.ts.map +1 -1
- package/lib/review-signals.js +8 -6
- package/lib/review-signals.js.map +1 -1
- package/lib/settings-rpc.js +1 -1
- package/lib/settings-rpc.js.map +1 -1
- package/package.json +14 -9
- package/profiles/reviewer-ci/cordis.patch.yml +61 -0
- package/profiles/reviewer-ci/package.json +19 -0
- package/profiles/reviewer-ci/pnpm-lock.yaml +62 -0
- package/profiles/reviewer-ci/pnpm-workspace.yaml +12 -0
- package/src/host/ci-clone.ts +54 -0
- package/src/host/ci-coexist.ts +45 -0
- package/src/host/config-store.ts +14 -1
- package/src/host/events.ts +29 -0
- package/src/host/gitlab-auth.ts +13 -0
- package/src/host/gitlab-client.ts +23 -1
- package/src/host/incremental.ts +6 -4
- package/src/host/orchestrator.ts +247 -46
- package/src/host/providers/ci-trigger.ts +168 -0
- package/src/host/providers/gitlab.ts +19 -4
- package/src/host/review-history.ts +65 -35
- package/src/host/review-intake.ts +36 -1
- package/src/host/review-marker.ts +25 -0
- package/src/host/review-signals.ts +9 -6
- package/src/host/settings-rpc.ts +1 -1
- package/templates/reviewer-project.gitlab-ci.yml +90 -0
- package/templates/source-project.gitlab-ci.yml +41 -0
package/README.md
CHANGED
|
@@ -22,6 +22,19 @@ Part of the Maestro Harness suite (`dsh-maestro-*`). Cordis patch rows:
|
|
|
22
22
|
- **Client half** — settings section rendered into DSH Web slots; notification copy stays
|
|
23
23
|
here, delivery goes through the optional `maestroNotifier` service.
|
|
24
24
|
|
|
25
|
+
## CI reviewer (no local checkout)
|
|
26
|
+
|
|
27
|
+
The same pipeline also runs headless from GitLab CI: a shared reviewer
|
|
28
|
+
project (holds secrets + image) serves any number of source projects through
|
|
29
|
+
a small bridge job — no DSH host, no project mapping needed. Quick runs
|
|
30
|
+
diff-only (or on a real checkout when `REVIEW_PROFILE` is set — reviewer-only,
|
|
31
|
+
no auditor); on-demand deep clones the MR head and reviews reviewer-only with
|
|
32
|
+
a static-only audit (no govard runtime in the container).
|
|
33
|
+
|
|
34
|
+
Full setup, per-case trigger workflows (quick/deep × CI/webhook), model
|
|
35
|
+
selection, and troubleshooting: [`docs/ci-reviewer-setup.md`](docs/ci-reviewer-setup.md).
|
|
36
|
+
Templates live in `templates/`, the image in `docker/`.
|
|
37
|
+
|
|
25
38
|
## Settings
|
|
26
39
|
|
|
27
40
|
Reads its configuration through the **shared namespaced settings store**
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# dsh-maestro-review bundle patch — 3 rows as spec §4
|
|
2
|
+
# RPC channel: /dsh-maestro-review (loopback, see src/index.ts + src/settings-rpc.ts)
|
|
3
|
+
# channel: /dsh-maestro-review
|
|
4
|
+
- insert:
|
|
5
|
+
- id: maestro-review-webhook
|
|
6
|
+
name: '@ddtcorex/dsh-maestro-review/lib/providers/gitlab.js'
|
|
7
|
+
config:
|
|
8
|
+
secret: !!js process.env.MAESTRO_GITLAB_WEBHOOK_SECRET
|
|
9
|
+
botUsername: maestro-bot
|
|
10
|
+
- id: maestro-review-orchestrator
|
|
11
|
+
name: '@ddtcorex/dsh-maestro-review/lib/orchestrator.js'
|
|
12
|
+
config:
|
|
13
|
+
gitlabBaseUrl: https://gitlab.example.com
|
|
14
|
+
gitlabToken: !!js process.env.MAESTRO_GITLAB_TOKEN
|
|
15
|
+
botUsername: maestro-bot
|
|
16
|
+
projectMappings: []
|
|
17
|
+
- id: maestro-review-settings-rpc
|
|
18
|
+
name: '@ddtcorex/dsh-maestro-review/lib/settings-rpc.js'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source checkout for CI deep reviews (spec §3): clone the source project at
|
|
3
|
+
* the MR head SHA with the PAT over oauth2. The token lives only in the clone
|
|
4
|
+
* URL passed to git — errors rethrown here are redacted, and the clone dir is
|
|
5
|
+
* ephemeral (fresh container per job; the orchestrator removes it in `finally`).
|
|
6
|
+
*/
|
|
7
|
+
export type RunFn = (cmd: string, args: string[], cwd?: string) => Promise<void>;
|
|
8
|
+
/** Production runner (execFile — no shell, argv cannot leak into shell history). */
|
|
9
|
+
export declare const defaultRun: RunFn;
|
|
10
|
+
export declare function redactCloneUrl(url: string): string;
|
|
11
|
+
export declare function cloneSourceRepo(opts: {
|
|
12
|
+
fetcher: typeof fetch;
|
|
13
|
+
run: RunFn;
|
|
14
|
+
host: string;
|
|
15
|
+
projectId: number;
|
|
16
|
+
sourceBranch: string;
|
|
17
|
+
headSha: string;
|
|
18
|
+
token: string;
|
|
19
|
+
dir: string;
|
|
20
|
+
}): Promise<string>;
|
|
21
|
+
//# sourceMappingURL=ci-clone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-clone.d.ts","sourceRoot":"","sources":["../src/host/ci-clone.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAIhF,oFAAoF;AACpF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAA;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAUD,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,OAAO,KAAK,CAAA;IACrB,GAAG,EAAE,KAAK,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB"}
|
package/lib/ci-clone.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { promisify } from 'node:util';
|
|
3
|
+
import { gitlabAuthHeaders } from './gitlab-auth.js';
|
|
4
|
+
const execFileAsync = promisify(execFile);
|
|
5
|
+
/** Production runner (execFile — no shell, argv cannot leak into shell history). */
|
|
6
|
+
export const defaultRun = async (cmd, args, cwd) => {
|
|
7
|
+
await execFileAsync(cmd, args, { cwd, timeout: 120_000 });
|
|
8
|
+
};
|
|
9
|
+
export function redactCloneUrl(url) {
|
|
10
|
+
return url.replace(/oauth2:[^@]+@/, 'oauth2:***@');
|
|
11
|
+
}
|
|
12
|
+
async function repoHttpUrl(fetcher, host, projectId, token) {
|
|
13
|
+
const res = await fetcher(`https://${host}/api/v4/projects/${projectId}`, { headers: gitlabAuthHeaders(token) });
|
|
14
|
+
if (!res.ok)
|
|
15
|
+
throw new Error(`GitLab API error ${res.status}: ${(await res.text()).slice(0, 200)}`);
|
|
16
|
+
const body = (await res.json());
|
|
17
|
+
if (!body.http_url_to_repo)
|
|
18
|
+
throw new Error('project has no http_url_to_repo');
|
|
19
|
+
return body.http_url_to_repo;
|
|
20
|
+
}
|
|
21
|
+
export async function cloneSourceRepo(opts) {
|
|
22
|
+
const httpUrl = await repoHttpUrl(opts.fetcher, opts.host, opts.projectId, opts.token);
|
|
23
|
+
const authed = httpUrl.replace('https://', `https://oauth2:${opts.token}@`);
|
|
24
|
+
try {
|
|
25
|
+
await opts.run('git', ['clone', '--depth', '50', '--branch', opts.sourceBranch, '--', authed, opts.dir]);
|
|
26
|
+
await opts.run('git', ['fetch', '--depth', '50', 'origin', opts.headSha], opts.dir);
|
|
27
|
+
await opts.run('git', ['checkout', '--detach', opts.headSha], opts.dir);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
31
|
+
throw new Error(redactCloneUrl(message));
|
|
32
|
+
}
|
|
33
|
+
return opts.dir;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ci-clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-clone.js","sourceRoot":"","sources":["../src/host/ci-clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAWpD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEzC,oFAAoF;AACpF,MAAM,CAAC,MAAM,UAAU,GAAU,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IACxD,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;AACpD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAqB,EAAE,IAAY,EAAE,SAAiB,EAAE,KAAa;IAC9F,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,IAAI,oBAAoB,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAChH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IACnG,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkC,CAAA;IAChE,IAAI,CAAC,IAAI,CAAC,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAC9E,OAAO,IAAI,CAAC,gBAAgB,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IASrC;IACC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACtF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;IAC3E,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACxG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACnF,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coexistence checks (spec §4): the CI flow yields to a completed review of
|
|
3
|
+
* the same head SHA carrying a review marker (i.e. an earlier CI review —
|
|
4
|
+
* webhook reviews post marker-free and stay invisible here) and to an
|
|
5
|
+
* in-flight review (eyes running-marker). Fetch failures fail open toward
|
|
6
|
+
* running — a missing signal must never block a review, only a present one
|
|
7
|
+
* skips it.
|
|
8
|
+
*/
|
|
9
|
+
export declare function hasCompletedReviewForSha(fetcher: typeof fetch, baseUrl: string, token: string, projectId: number, mrIid: number, sha: string): Promise<boolean>;
|
|
10
|
+
export declare function hasRunningEyes(fetcher: typeof fetch, baseUrl: string, token: string, projectId: number, mrIid: number): Promise<boolean>;
|
|
11
|
+
//# sourceMappingURL=ci-coexist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-coexist.d.ts","sourceRoot":"","sources":["../src/host/ci-coexist.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GACnG,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GACtF,OAAO,CAAC,OAAO,CAAC,CAYlB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { gitlabAuthHeaders } from './gitlab-auth.js';
|
|
2
|
+
import { parseReviewMarker } from './review-marker.js';
|
|
3
|
+
/**
|
|
4
|
+
* Coexistence checks (spec §4): the CI flow yields to a completed review of
|
|
5
|
+
* the same head SHA carrying a review marker (i.e. an earlier CI review —
|
|
6
|
+
* webhook reviews post marker-free and stay invisible here) and to an
|
|
7
|
+
* in-flight review (eyes running-marker). Fetch failures fail open toward
|
|
8
|
+
* running — a missing signal must never block a review, only a present one
|
|
9
|
+
* skips it.
|
|
10
|
+
*/
|
|
11
|
+
export async function hasCompletedReviewForSha(fetcher, baseUrl, token, projectId, mrIid, sha) {
|
|
12
|
+
try {
|
|
13
|
+
const res = await fetcher(`${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}/notes?per_page=100&sort=desc&order_by=created_at`, { headers: gitlabAuthHeaders(token) });
|
|
14
|
+
if (!res.ok)
|
|
15
|
+
return false;
|
|
16
|
+
const notes = (await res.json());
|
|
17
|
+
return notes.some((n) => {
|
|
18
|
+
const m = typeof n.body === 'string' ? parseReviewMarker(n.body) : undefined;
|
|
19
|
+
return m?.sha.toLowerCase() === sha.toLowerCase() && m?.status === 'completed';
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export async function hasRunningEyes(fetcher, baseUrl, token, projectId, mrIid) {
|
|
27
|
+
try {
|
|
28
|
+
const res = await fetcher(`${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}/award_emoji`, { headers: gitlabAuthHeaders(token) });
|
|
29
|
+
if (!res.ok)
|
|
30
|
+
return false;
|
|
31
|
+
const awards = (await res.json());
|
|
32
|
+
return awards.some((a) => a.name === 'eyes');
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ci-coexist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-coexist.js","sourceRoot":"","sources":["../src/host/ci-coexist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAqB,EAAE,OAAe,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa,EAAE,GAAW;IAEpG,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,mDAAmD,EAClH,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CACtC,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QACzB,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA6B,CAAA;QAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC5E,OAAO,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,WAAW,CAAA;QAChF,CAAC,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAqB,EAAE,OAAe,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa;IAEvF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,cAAc,EAC7E,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CACtC,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QACzB,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA6B,CAAA;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
package/lib/config-store.d.ts
CHANGED
|
@@ -4,22 +4,29 @@ export interface ReviewModelSelection {
|
|
|
4
4
|
model: string;
|
|
5
5
|
reasoningEffort?: string;
|
|
6
6
|
}
|
|
7
|
+
export interface ProjectMapping {
|
|
8
|
+
projectPath: string;
|
|
9
|
+
localRepoPath: string;
|
|
10
|
+
reviewProfile?: ReviewSkillProfile;
|
|
11
|
+
reviewModel?: ReviewModelSelection;
|
|
12
|
+
/** Per-project override of autoRereviewOnPush (undefined = inherit global). */
|
|
13
|
+
rereviewOnPush?: boolean;
|
|
14
|
+
/** Per-project override of autoReviewOnAssign (undefined = inherit global). */
|
|
15
|
+
reviewOnAssign?: boolean;
|
|
16
|
+
}
|
|
7
17
|
export interface MaestroUserConfig {
|
|
8
18
|
gitlabBaseUrl?: string;
|
|
9
19
|
gitlabToken?: string;
|
|
10
20
|
botUsername?: string;
|
|
11
21
|
webhookSecret?: string;
|
|
12
22
|
webhookPort?: number;
|
|
13
|
-
projectMappings?: Array<
|
|
14
|
-
projectPath: string;
|
|
15
|
-
localRepoPath: string;
|
|
16
|
-
reviewProfile?: ReviewSkillProfile;
|
|
17
|
-
reviewModel?: ReviewModelSelection;
|
|
18
|
-
}>;
|
|
23
|
+
projectMappings?: Array<ProjectMapping>;
|
|
19
24
|
/** Override the DSH default model for automated reviews. When absent the global DSH default is used. */
|
|
20
25
|
reviewModel?: ReviewModelSelection;
|
|
21
26
|
/** Re-run a quick review whenever new commits land on a previously reviewed MR. */
|
|
22
27
|
autoRereviewOnPush?: boolean;
|
|
28
|
+
/** Trigger an automatic quick review when the bot is assigned as MR reviewer (default true). */
|
|
29
|
+
autoReviewOnAssign?: boolean;
|
|
23
30
|
/** Bound one automated review agent's turn. */
|
|
24
31
|
agentTimeoutMs?: number;
|
|
25
32
|
/** Prune Maestro's own review records older than this many days (0 = keep forever). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../src/host/config-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAO1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../src/host/config-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAO1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAClC,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IACvC,wGAAwG;IACxG,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,gGAAgG;IAChG,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uFAAuF;IACvF,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mEAAmE;IACnE,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAyBD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAMjF;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAc3G"}
|
package/lib/config-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../src/host/config-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,GACjB,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../src/host/config-store.ts"],"names":[],"mappings":"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"}
|
package/lib/events.d.ts
CHANGED
|
@@ -13,15 +13,42 @@ export type ReviewScope = {
|
|
|
13
13
|
path: string;
|
|
14
14
|
line: number;
|
|
15
15
|
};
|
|
16
|
+
import type { ReviewSkillProfile } from './skills-tool.js';
|
|
16
17
|
export interface ReviewRequest extends MrOpenedPayload {
|
|
17
18
|
/** `push` arrives only when auto re-review on push is enabled and passes the completed-history gate. */
|
|
18
19
|
trigger: 'reviewer-assignment' | 'mention' | 'push';
|
|
19
20
|
mode: ReviewMode;
|
|
20
21
|
scope: ReviewScope;
|
|
22
|
+
/**
|
|
23
|
+
* CI-only override (ci-trigger sets it from REVIEW_PROFILE). The GitLab webhook
|
|
24
|
+
* producer never sets it — mapped projects resolve their profile from the mapping.
|
|
25
|
+
* Undefined preserves the legacy diff-only generic review.
|
|
26
|
+
*/
|
|
27
|
+
reviewProfile?: ReviewSkillProfile;
|
|
28
|
+
/**
|
|
29
|
+
* CI-only: MR head SHA from fetchMrDetail (ci-trigger sets it). Feeds the
|
|
30
|
+
* comment marker so later CI runs can yield to this review. The GitLab
|
|
31
|
+
* webhook producer never sets it — webhook comments stay marker-free.
|
|
32
|
+
*/
|
|
33
|
+
headSha?: string;
|
|
34
|
+
/** Short (8-char) head-sha hint for `push` triggers, taken from the webhook
|
|
35
|
+
* body — feeds the in-flight key so two concurrent pushes stop deduping
|
|
36
|
+
* each other. Absent when the body carries no sha. */
|
|
37
|
+
pushSha?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ReviewResult {
|
|
40
|
+
/** false = the review could not run or failed outright (infra error) — a CI caller should exit non-zero. */
|
|
41
|
+
ok: boolean;
|
|
42
|
+
summary?: string;
|
|
43
|
+
failures: string[];
|
|
44
|
+
durationMs: number;
|
|
21
45
|
}
|
|
22
46
|
declare module '@deepseek-ai/cordis' {
|
|
23
47
|
interface Events {
|
|
24
48
|
'maestro/review-request': (payload: ReviewRequest) => void;
|
|
25
49
|
}
|
|
50
|
+
interface Context {
|
|
51
|
+
reviewRunner: (payload: ReviewRequest) => Promise<ReviewResult>;
|
|
52
|
+
}
|
|
26
53
|
}
|
|
27
54
|
//# sourceMappingURL=events.d.ts.map
|
package/lib/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/host/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAA;AAEzC,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5E,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,wGAAwG;IACxG,OAAO,EAAE,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd,wBAAwB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;KAC3D;CACF"}
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/host/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAA;AAEzC,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAE1D,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,wGAAwG;IACxG,OAAO,EAAE,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,WAAW,CAAA;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;0DAEsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,4GAA4G;IAC5G,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd,wBAAwB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;KAC3D;IACD,UAAU,OAAO;QACf,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;KAChE;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized GitLab API auth header (spec: token-kind aware).
|
|
3
|
+
*
|
|
4
|
+
* Personal / project / group tokens authenticate with `PRIVATE-TOKEN`.
|
|
5
|
+
* A CI job token (`CI_JOB_TOKEN`, cross-project via the target's job-token
|
|
6
|
+
* allowlist) authenticates with `JOB-TOKEN` instead — `PRIVATE-TOKEN` 401s.
|
|
7
|
+
* The kind comes from `GITLAB_TOKEN_KIND=job` (set by docker/entrypoint.sh
|
|
8
|
+
* when it falls back to `CI_JOB_TOKEN`); anything else means PRIVATE-TOKEN.
|
|
9
|
+
*/
|
|
10
|
+
export declare function gitlabAuthHeaders(token: string): Record<string, string>;
|
|
11
|
+
//# sourceMappingURL=gitlab-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlab-auth.d.ts","sourceRoot":"","sources":["../src/host/gitlab-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized GitLab API auth header (spec: token-kind aware).
|
|
3
|
+
*
|
|
4
|
+
* Personal / project / group tokens authenticate with `PRIVATE-TOKEN`.
|
|
5
|
+
* A CI job token (`CI_JOB_TOKEN`, cross-project via the target's job-token
|
|
6
|
+
* allowlist) authenticates with `JOB-TOKEN` instead — `PRIVATE-TOKEN` 401s.
|
|
7
|
+
* The kind comes from `GITLAB_TOKEN_KIND=job` (set by docker/entrypoint.sh
|
|
8
|
+
* when it falls back to `CI_JOB_TOKEN`); anything else means PRIVATE-TOKEN.
|
|
9
|
+
*/
|
|
10
|
+
export function gitlabAuthHeaders(token) {
|
|
11
|
+
if (process.env.GITLAB_TOKEN_KIND === 'job')
|
|
12
|
+
return { 'JOB-TOKEN': token };
|
|
13
|
+
return { 'PRIVATE-TOKEN': token };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=gitlab-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlab-auth.js","sourceRoot":"","sources":["../src/host/gitlab-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,KAAK;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;IAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;AACnC,CAAC"}
|
package/lib/gitlab-client.d.ts
CHANGED
|
@@ -23,6 +23,13 @@ export interface DiffFileEntry {
|
|
|
23
23
|
export declare function diffFileList(diffs: GitlabDiff[]): DiffFileEntry[];
|
|
24
24
|
/** Unified text for one file, or undefined when the path is not in the MR. Pure. */
|
|
25
25
|
export declare function selectFileDiff(diffs: GitlabDiff[], path: string): string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* `fetch` with a hard ceiling: aborts the request after `ms` (default 15s)
|
|
28
|
+
* and throws `GitLab API timeout after <ms>ms` on abort. The timer is always
|
|
29
|
+
* cleared on settle. Pre-agent lookups degrade the throw to `undefined` at
|
|
30
|
+
* their own call site; post-agent callers let it reach `writeFailedReport`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function fetchWithTimeout(url: string, init: RequestInit | undefined, ms?: number): Promise<Response>;
|
|
26
33
|
interface GitlabDiscussionNote {
|
|
27
34
|
body: string;
|
|
28
35
|
author: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab-client.d.ts","sourceRoot":"","sources":["../src/host/gitlab-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"gitlab-client.d.ts","sourceRoot":"","sources":["../src/host/gitlab-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAMxC,eAAO,MAAM,IAAI,0BAA0B,CAAA;AAC3C,eAAO,MAAM,MAAM,UAAY,CAAA;AAE/B,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAM3B,CAAA;AAEF,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAEjE;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIpF;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,EAAE,SAAS,GACtD,OAAO,CAAC,QAAQ,CAAC,CAWnB;AAQD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IACxD,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,oBAAoB,EAAE,CAAA;CAC9B;AAED,UAAU,SAAS;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAKlH;AAQD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,gBAAgB,EAAE,EAC/B,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAWpD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA8LxD"}
|
package/lib/gitlab-client.js
CHANGED
|
@@ -2,6 +2,7 @@ import z from '@deepseek-ai/schemastery';
|
|
|
2
2
|
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
3
3
|
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
4
4
|
import { join, resolve } from 'node:path';
|
|
5
|
+
import { gitlabAuthHeaders } from './gitlab-auth.js';
|
|
5
6
|
export const name = 'maestro-gitlab-client';
|
|
6
7
|
export const inject = ['tools'];
|
|
7
8
|
export const Config = z.object({
|
|
@@ -22,6 +23,27 @@ export function selectFileDiff(diffs, path) {
|
|
|
22
23
|
return undefined;
|
|
23
24
|
return `--- ${d.old_path}\n+++ ${d.new_path}\n${d.diff}`;
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* `fetch` with a hard ceiling: aborts the request after `ms` (default 15s)
|
|
28
|
+
* and throws `GitLab API timeout after <ms>ms` on abort. The timer is always
|
|
29
|
+
* cleared on settle. Pre-agent lookups degrade the throw to `undefined` at
|
|
30
|
+
* their own call site; post-agent callers let it reach `writeFailedReport`.
|
|
31
|
+
*/
|
|
32
|
+
export async function fetchWithTimeout(url, init, ms = 15_000) {
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
const timer = setTimeout(() => controller.abort(), ms);
|
|
35
|
+
try {
|
|
36
|
+
return await fetch(url, { ...init, signal: controller.signal });
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
if (err?.name === 'AbortError')
|
|
40
|
+
throw new Error(`GitLab API timeout after ${ms}ms`);
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
clearTimeout(timer);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
25
47
|
/**
|
|
26
48
|
* Resolve the in-workspace spill path for the MR diff. The DSH runtime
|
|
27
49
|
* spills large tool outputs to /tmp/dsh-spill-*, which sits outside the
|
|
@@ -61,7 +83,7 @@ export function selectOwnThreads(discussions, botUsername) {
|
|
|
61
83
|
}
|
|
62
84
|
export function apply(ctx, config) {
|
|
63
85
|
const apiBase = `${config.baseUrl}/api/v4/projects/${config.projectId}/merge_requests/${config.mrIid}`;
|
|
64
|
-
const headers =
|
|
86
|
+
const headers = gitlabAuthHeaders(config.token);
|
|
65
87
|
let cachedDiffRefs;
|
|
66
88
|
let cachedDiffs;
|
|
67
89
|
async function getDiffs() {
|
package/lib/gitlab-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab-client.js","sourceRoot":"","sources":["../src/host/gitlab-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gitlab-client.js","sourceRoot":"","sources":["../src/host/gitlab-client.ts"],"names":[],"mappings":"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"}
|
package/lib/incremental.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../src/host/incremental.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../src/host/incremental.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CACtB;AAID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAmBpB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAC/D,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B;AAED,gFAAgF;AAChF,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAC1E,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAWpC"}
|
package/lib/incremental.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { gitlabAuthHeaders } from './gitlab-auth.js';
|
|
2
|
+
import { fetchWithTimeout } from './gitlab-client.js';
|
|
1
3
|
const COMMIT_LIST_CAP = 20;
|
|
2
4
|
/**
|
|
3
5
|
* Build the incremental-review context block for a re-review: everything that
|
|
@@ -35,7 +37,7 @@ export function buildIncrementalBlock(compare, sinceSha, nowSha) {
|
|
|
35
37
|
*/
|
|
36
38
|
export async function fetchMrDetailHeadSha(baseUrl, token, projectId, mrIid) {
|
|
37
39
|
try {
|
|
38
|
-
const response = await
|
|
40
|
+
const response = await fetchWithTimeout(`${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}`, { headers: gitlabAuthHeaders(token) });
|
|
39
41
|
if (!response.ok)
|
|
40
42
|
return undefined;
|
|
41
43
|
const body = await response.json();
|
|
@@ -48,7 +50,7 @@ export async function fetchMrDetailHeadSha(baseUrl, token, projectId, mrIid) {
|
|
|
48
50
|
/** Diff between two MR states, reduced to the fields the prompt block needs. */
|
|
49
51
|
export async function fetchCompare(baseUrl, token, projectId, from, to) {
|
|
50
52
|
try {
|
|
51
|
-
const response = await
|
|
53
|
+
const response = await fetchWithTimeout(`${baseUrl}/api/v4/projects/${projectId}/repository/compare?from=${encodeURIComponent(from)}&to=${encodeURIComponent(to)}`, { headers: gitlabAuthHeaders(token) });
|
|
52
54
|
if (!response.ok)
|
|
53
55
|
return undefined;
|
|
54
56
|
return await response.json();
|
package/lib/incremental.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental.js","sourceRoot":"","sources":["../src/host/incremental.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"incremental.js","sourceRoot":"","sources":["../src/host/incremental.ts"],"names":[],"mappings":"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"}
|
package/lib/orchestrator.d.ts
CHANGED
|
@@ -4,11 +4,12 @@ import type { AgentHandle } from '@deepseek-ai/dsh-agent';
|
|
|
4
4
|
import type { ModelSelection } from '@deepseek-ai/dsh-agent';
|
|
5
5
|
import type { ReviewFinding, FindingSeverity } from './review-findings-tool.js';
|
|
6
6
|
import type { ReviewRequest } from './events.js';
|
|
7
|
-
import { type MaestroUserConfig, type ReviewModelSelection } from './config-store.js';
|
|
7
|
+
import { type MaestroUserConfig, type ProjectMapping, type ReviewModelSelection } from './config-store.js';
|
|
8
8
|
import { type ReviewSkillProfile } from './skills-tool.js';
|
|
9
9
|
import type { ReviewProvider } from './providers/interface.js';
|
|
10
10
|
import { gitlabProvider } from './providers/gitlab.js';
|
|
11
11
|
import './events.js';
|
|
12
|
+
import { type ReviewFlow } from './review-marker.js';
|
|
12
13
|
export declare function runReviewWithProvider(provider: ReviewProvider, request: {
|
|
13
14
|
provider: string;
|
|
14
15
|
projectPath: string;
|
|
@@ -62,11 +63,19 @@ export declare function buildReviewComment(opts: {
|
|
|
62
63
|
durationMs?: number;
|
|
63
64
|
isDiffOnly?: boolean;
|
|
64
65
|
isDiscussion?: boolean;
|
|
66
|
+
marker?: {
|
|
67
|
+
sha: string;
|
|
68
|
+
flow: ReviewFlow;
|
|
69
|
+
};
|
|
65
70
|
}): string;
|
|
66
71
|
export declare function buildNotStartedComment(opts: {
|
|
67
72
|
gitlabBaseUrl: string;
|
|
68
73
|
projectPath: string;
|
|
69
74
|
mrIid: number;
|
|
75
|
+
marker?: {
|
|
76
|
+
sha: string;
|
|
77
|
+
flow: ReviewFlow;
|
|
78
|
+
};
|
|
70
79
|
}): string;
|
|
71
80
|
export declare const name = "maestro-orchestrator";
|
|
72
81
|
export declare const inject: string[];
|
|
@@ -76,11 +85,19 @@ export declare function isUnsupportedReasoningError(err: unknown): boolean;
|
|
|
76
85
|
export declare function getTurnErrorMessage(handle: unknown): string | undefined;
|
|
77
86
|
/**
|
|
78
87
|
* Resolve the model to use for an automated review. Priority: per-project
|
|
79
|
-
* override > global reviewModel >
|
|
88
|
+
* override > global reviewModel (Maestro Settings) > row-config reviewModel
|
|
89
|
+
* (lets a headless profile such as reviewer-ci pin a model from env vars,
|
|
90
|
+
* where there is no Settings UI) > DSH default (`fallback`).
|
|
80
91
|
*/
|
|
81
92
|
export declare function resolveReviewModel(userConfig: MaestroUserConfig, mapping: {
|
|
82
93
|
reviewModel?: ReviewModelSelection | null;
|
|
83
|
-
|
|
94
|
+
projectPath?: string;
|
|
95
|
+
} | undefined, fallback: ModelSelection, rowSelection?: ReviewModelSelection | null): ModelSelection;
|
|
96
|
+
/** Effective auto-trigger flags: per-project row overrides global, unset inherits (design §4). */
|
|
97
|
+
export declare function resolveReviewTriggers(userConfig: MaestroUserConfig, mapping?: ProjectMapping): {
|
|
98
|
+
onPush: boolean;
|
|
99
|
+
onAssign: boolean;
|
|
100
|
+
};
|
|
84
101
|
/** Compose a newly-created agent from the preset service owned by the root context. */
|
|
85
102
|
export declare function mountAgentPreset(agentPresets: {
|
|
86
103
|
mount(agentCtx: Context, id: string): Promise<unknown> | unknown;
|
|
@@ -100,6 +117,19 @@ export interface Config {
|
|
|
100
117
|
botUsername: string;
|
|
101
118
|
/** Hard ceiling on one automated agent's turn. */
|
|
102
119
|
agentTimeoutMs: number;
|
|
120
|
+
/**
|
|
121
|
+
* Deployment-level model pin, below Maestro Settings in precedence. Lets a
|
|
122
|
+
* headless profile (reviewer-ci) select the review model from env vars —
|
|
123
|
+
* e.g. REVIEW_MODEL_PROVIDER/REVIEW_MODEL — where no Settings UI exists.
|
|
124
|
+
*
|
|
125
|
+
* Deliberately absent from the zod schema below: schemastery object schemas
|
|
126
|
+
* always descend into inner fields (probed — even `.required(false)` still
|
|
127
|
+
* throws on undefined), so declaring it would fail every boot without the
|
|
128
|
+
* vars. Unknown keys pass validation through (same precedent as mapping-level
|
|
129
|
+
* reviewModel, which the projectMappings schema doesn't declare either),
|
|
130
|
+
* and resolveReviewModel reads it at review time.
|
|
131
|
+
*/
|
|
132
|
+
reviewModel?: ReviewModelSelection | null;
|
|
103
133
|
}
|
|
104
134
|
export declare const DEFAULT_AGENT_TIMEOUT_MS: number;
|
|
105
135
|
export declare const Config: z<Config>;
|
|
@@ -187,7 +217,24 @@ export declare function reviewKeyHash(payload: ReviewRequest): string;
|
|
|
187
217
|
* Returns `[]` — never throws — when no event source exists.
|
|
188
218
|
*/
|
|
189
219
|
export declare function auditorOutputFromSession(session: unknown): import("@deepseek-ai/dsh-llm").ContentBlock[];
|
|
190
|
-
/**
|
|
220
|
+
/** CI-deep decision: deep mode + CI env + head SHA (spec §3). Mapping is checked by the caller. */
|
|
221
|
+
export declare function shouldCiDeepReview(payload: ReviewRequest): boolean;
|
|
222
|
+
/** CI quick-with-profile decision: quick mode + non-generic profile + CI env
|
|
223
|
+
* + head SHA. Quick + generic/unset stays diff-only (no clone cost); a real
|
|
224
|
+
* profile opts into the clone branch reviewer-only (no auditor — quick never
|
|
225
|
+
* audits, see shouldAudit in runReviewAndAudit). Mapping is checked by the caller. */
|
|
226
|
+
export declare function shouldCiQuickProfileReview(payload: ReviewRequest): boolean;
|
|
227
|
+
/** Auditor degrade for CI (no runtime env): a govard throw becomes reviewer-only, never a failed review. */
|
|
228
|
+
export declare function withAuditorDegrade(runAuditor: (worktreePath: string, payload: ReviewRequest) => Promise<string>): (worktreePath: string, payload: ReviewRequest) => Promise<string>;
|
|
229
|
+
/**
|
|
230
|
+
* Auditor instruction. The mapped flow keeps the full environment + test-suite
|
|
231
|
+
* workflow; the CI flow has no runtime, so the prompt countermands the
|
|
232
|
+
* auditor preset's environment steps and drops the Environment & Test Suite
|
|
233
|
+
* section entirely instead of reporting it "blocked".
|
|
234
|
+
*/
|
|
235
|
+
export declare function buildAuditorPrompt(opts: {
|
|
236
|
+
staticOnly: boolean;
|
|
237
|
+
}): string;
|
|
191
238
|
export declare function runReviewAndAudit(payload: ReviewRequest, deps: ReviewAndAuditDeps): Promise<string>;
|
|
192
239
|
/**
|
|
193
240
|
* Review the GitLab diff without a local checkout. This deliberately has no
|
|
@@ -196,8 +243,11 @@ export declare function runReviewAndAudit(payload: ReviewRequest, deps: ReviewAn
|
|
|
196
243
|
*/
|
|
197
244
|
/** Diff-only fallback review; resolves to the comment body that was posted. */
|
|
198
245
|
export declare function runDiffOnlyReview(payload: ReviewRequest, deps: DiffOnlyReviewDeps): Promise<string>;
|
|
199
|
-
/** Decline a Deep request that lacks the local mapping it requires.
|
|
200
|
-
|
|
246
|
+
/** Decline a Deep request that lacks the local mapping it requires.
|
|
247
|
+
* Resolves `true` when the decline was posted, `false` when a duplicate
|
|
248
|
+
* in-flight review is already handling this key (caller must not record a
|
|
249
|
+
* completion for work it did not do). */
|
|
250
|
+
export declare function declineUnmappedDeepReview(payload: ReviewRequest, deps: ReviewCommentDeps): Promise<boolean>;
|
|
201
251
|
export declare function isBranchNotFoundError(err: unknown): boolean;
|
|
202
252
|
/**
|
|
203
253
|
* Keep a Govard audit worktree isolated from the developer's primary checkout.
|