@ddtcorex/dsh-maestro-review 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +12 -0
  2. package/cordis.patch.yml +18 -0
  3. package/lib/ci-clone.d.ts +21 -0
  4. package/lib/ci-clone.d.ts.map +1 -0
  5. package/lib/ci-clone.js +35 -0
  6. package/lib/ci-clone.js.map +1 -0
  7. package/lib/ci-coexist.d.ts +9 -0
  8. package/lib/ci-coexist.d.ts.map +1 -0
  9. package/lib/ci-coexist.js +36 -0
  10. package/lib/ci-coexist.js.map +1 -0
  11. package/lib/config-store.d.ts +13 -6
  12. package/lib/config-store.d.ts.map +1 -1
  13. package/lib/config-store.js.map +1 -1
  14. package/lib/events.d.ts +23 -0
  15. package/lib/events.d.ts.map +1 -1
  16. package/lib/gitlab-auth.d.ts +11 -0
  17. package/lib/gitlab-auth.d.ts.map +1 -0
  18. package/lib/gitlab-auth.js +15 -0
  19. package/lib/gitlab-auth.js.map +1 -0
  20. package/lib/gitlab-client.d.ts +57 -0
  21. package/lib/gitlab-client.d.ts.map +1 -1
  22. package/lib/gitlab-client.js +120 -17
  23. package/lib/gitlab-client.js.map +1 -1
  24. package/lib/govard-audit-lint-tool.d.ts +81 -0
  25. package/lib/govard-audit-lint-tool.d.ts.map +1 -1
  26. package/lib/govard-audit-lint-tool.js +121 -36
  27. package/lib/govard-audit-lint-tool.js.map +1 -1
  28. package/lib/govard-tool.js +1 -1
  29. package/lib/govard-tool.js.map +1 -1
  30. package/lib/incremental.d.ts.map +1 -1
  31. package/lib/incremental.js +3 -2
  32. package/lib/incremental.js.map +1 -1
  33. package/lib/orchestrator.d.ts +137 -5
  34. package/lib/orchestrator.d.ts.map +1 -1
  35. package/lib/orchestrator.js +439 -70
  36. package/lib/orchestrator.js.map +1 -1
  37. package/lib/providers/ci-trigger.d.ts +43 -0
  38. package/lib/providers/ci-trigger.d.ts.map +1 -0
  39. package/lib/providers/ci-trigger.js +146 -0
  40. package/lib/providers/ci-trigger.js.map +1 -0
  41. package/lib/providers/gitlab.d.ts.map +1 -1
  42. package/lib/providers/gitlab.js +2 -1
  43. package/lib/providers/gitlab.js.map +1 -1
  44. package/lib/review-findings-tool.d.ts +5 -0
  45. package/lib/review-findings-tool.d.ts.map +1 -1
  46. package/lib/review-findings-tool.js +3 -1
  47. package/lib/review-findings-tool.js.map +1 -1
  48. package/lib/review-intake.d.ts.map +1 -1
  49. package/lib/review-intake.js +5 -1
  50. package/lib/review-intake.js.map +1 -1
  51. package/lib/review-marker.d.ts +17 -0
  52. package/lib/review-marker.d.ts.map +1 -0
  53. package/lib/review-marker.js +23 -0
  54. package/lib/review-marker.js.map +1 -0
  55. package/lib/review-signals.d.ts.map +1 -1
  56. package/lib/review-signals.js +4 -8
  57. package/lib/review-signals.js.map +1 -1
  58. package/lib/settings-rpc.js +1 -1
  59. package/lib/settings-rpc.js.map +1 -1
  60. package/package.json +14 -9
  61. package/profiles/reviewer-ci/cordis.patch.yml +61 -0
  62. package/profiles/reviewer-ci/package.json +19 -0
  63. package/profiles/reviewer-ci/pnpm-lock.yaml +62 -0
  64. package/profiles/reviewer-ci/pnpm-workspace.yaml +12 -0
  65. package/src/host/ci-clone.ts +54 -0
  66. package/src/host/ci-coexist.ts +43 -0
  67. package/src/host/config-store.ts +14 -1
  68. package/src/host/events.ts +25 -0
  69. package/src/host/gitlab-auth.ts +13 -0
  70. package/src/host/gitlab-client.ts +142 -17
  71. package/src/host/govard-audit-lint-tool.ts +144 -31
  72. package/src/host/govard-tool.ts +1 -1
  73. package/src/host/incremental.ts +3 -2
  74. package/src/host/orchestrator.ts +462 -50
  75. package/src/host/providers/ci-trigger.ts +164 -0
  76. package/src/host/providers/gitlab.ts +2 -1
  77. package/src/host/review-findings-tool.ts +9 -1
  78. package/src/host/review-intake.ts +5 -1
  79. package/src/host/review-marker.ts +25 -0
  80. package/src/host/review-signals.ts +4 -3
  81. package/src/host/settings-rpc.ts +1 -1
  82. package/templates/reviewer-project.gitlab-ci.yml +90 -0
  83. package/templates/source-project.gitlab-ci.yml +42 -0
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Machine-readable review comment identity (spec: coexistence §4-5).
3
+ *
4
+ * Every posted review comment (webhook + CI, quick + deep) ends with an
5
+ * invisible marker so the CI flow can detect "this head SHA already has a
6
+ * completed review" without access to the webhook's history store.
7
+ */
8
+ export function reviewMarker(sha, flow) {
9
+ return `<!-- maestro-review sha=${sha} flow=${flow} status=completed -->`;
10
+ }
11
+ export function parseReviewMarker(body) {
12
+ const m = /<!-- maestro-review sha=([0-9a-fA-F]+) flow=([a-z-]+) status=([a-z]+) -->/.exec(body);
13
+ if (!m)
14
+ return undefined;
15
+ return { sha: m[1], flow: m[2], status: m[3] };
16
+ }
17
+ /** CI detection is env-based (established pattern): the reviewer job always sets these. */
18
+ export function resolveFlow(mode) {
19
+ if (process.env.SOURCE_PROJECT_ID === undefined)
20
+ return 'webhook';
21
+ return mode === 'deep' ? 'ci-deep' : 'ci-quick';
22
+ }
23
+ //# sourceMappingURL=review-marker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-marker.js","sourceRoot":"","sources":["../src/host/review-marker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,IAAgB;IACxD,OAAO,2BAA2B,GAAG,SAAS,IAAI,uBAAuB,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,CAAC,GAAG,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChG,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACxB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAChD,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,WAAW,CAAC,IAAsB;IAChD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACjE,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;AACjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-signals.d.ts","sourceRoot":"","sources":["../src/host/review-signals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvD;AA0BD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAgBrJ"}
1
+ {"version":3,"file":"review-signals.d.ts","sourceRoot":"","sources":["../src/host/review-signals.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvD;AA0BD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAgBrJ"}
@@ -1,19 +1,15 @@
1
- /**
2
- * MR award-emoji acknowledgements: the MR shows "eyes" while a review runs and
3
- * a final marker when it completes or fails. Signalling is best-effort — any
4
- * GitLab error is swallowed so it can never fail the review itself.
5
- */
1
+ import { gitlabAuthHeaders } from './gitlab-auth.js';
6
2
  async function award(baseUrl, token, projectId, mrIid, name) {
7
3
  await fetch(`${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}/award_emoji`, {
8
4
  method: 'POST',
9
- headers: { 'PRIVATE-TOKEN': token, 'Content-Type': 'application/json' },
5
+ headers: { ...gitlabAuthHeaders(token), 'Content-Type': 'application/json' },
10
6
  body: JSON.stringify({ name }),
11
7
  });
12
8
  }
13
9
  /** Remove only this bot's stale running markers; other users' awards stay untouched. */
14
10
  async function unawardOwn(baseUrl, token, projectId, mrIid, botUsername) {
15
11
  const response = await fetch(`${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}/award_emoji`, {
16
- headers: { 'PRIVATE-TOKEN': token },
12
+ headers: gitlabAuthHeaders(token),
17
13
  });
18
14
  if (!response.ok)
19
15
  return;
@@ -23,7 +19,7 @@ async function unawardOwn(baseUrl, token, projectId, mrIid, botUsername) {
23
19
  continue;
24
20
  await fetch(`${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}/award_emoji/${awardItem.id}`, {
25
21
  method: 'DELETE',
26
- headers: { 'PRIVATE-TOKEN': token },
22
+ headers: gitlabAuthHeaders(token),
27
23
  }).catch(() => { });
28
24
  }
29
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"review-signals.js","sourceRoot":"","sources":["../src/host/review-signals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,KAAK,UAAU,KAAK,CAAC,OAAe,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa,EAAE,IAAY;IACjG,MAAM,KAAK,CAAC,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,cAAc,EAAE;QACzF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACvE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;KAC/B,CAAC,CAAA;AACJ,CAAC;AAED,wFAAwF;AACxF,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa,EAAE,WAAmB;IAC7G,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,cAAc,EAAE;QAC1G,OAAO,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE;KACpC,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAM;IACxB,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwE,CAAA;IAC7G,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,KAAK,WAAW,IAAI,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ;YAAE,SAAQ;QACvH,MAAM,KAAK,CAAC,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,gBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE;YACzG,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE;SACpC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAkG;IACpI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IACjE,OAAO;QACL,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;gBAC/D,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YACvD,CAAC;YAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;gBAC/D,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACzG,CAAC;YAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAC1D,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"review-signals.js","sourceRoot":"","sources":["../src/host/review-signals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAYpD,KAAK,UAAU,KAAK,CAAC,OAAe,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa,EAAE,IAAY;IACjG,MAAM,KAAK,CAAC,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,cAAc,EAAE;QACzF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC5E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;KAC/B,CAAC,CAAA;AACJ,CAAC;AAED,wFAAwF;AACxF,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa,EAAE,WAAmB;IAC7G,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,cAAc,EAAE;QAC1G,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC;KAClC,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAM;IACxB,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwE,CAAA;IAC7G,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,KAAK,WAAW,IAAI,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ;YAAE,SAAQ;QACvH,MAAM,KAAK,CAAC,GAAG,OAAO,oBAAoB,SAAS,mBAAmB,KAAK,gBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE;YACzG,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC;SAClC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAkG;IACpI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IACjE,OAAO;QACL,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;gBAC/D,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YACvD,CAAC;YAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;gBAC/D,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACzG,CAAC;YAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAC1D,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -7,7 +7,7 @@ export const inject = ['connection', 'maestroTunnel'];
7
7
  /** Keys the Settings card may persist; anything else is a rejected save. */
8
8
  const SAVABLE_KEYS = new Set([
9
9
  'gitlabBaseUrl', 'gitlabToken', 'botUsername', 'webhookSecret', 'webhookPort',
10
- 'projectMappings', 'reviewModel', 'autoRereviewOnPush', 'agentTimeoutMs', 'reviewSessionRetentionDays',
10
+ 'projectMappings', 'reviewModel', 'autoRereviewOnPush', 'autoReviewOnAssign', 'agentTimeoutMs', 'reviewSessionRetentionDays',
11
11
  'tunnelMode', 'quickTarget', 'tunnelId', 'tunnelCredentialsFile', 'tunnelHostname',
12
12
  'proxyPort', 'proxyHost', 'lanPinEnabled', 'telegramBotToken', 'telegramChatId',
13
13
  'telegramReviewNotifications',
@@ -1 +1 @@
1
- {"version":3,"file":"settings-rpc.js","sourceRoot":"","sources":["../src/host/settings-rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-rpc.js","sourceRoot":"","sources":["../src/host/settings-rpc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ddtcorex/dsh-maestro-review",
3
3
  "private": false,
4
- "version": "0.3.2",
4
+ "version": "0.5.0",
5
5
  "description": "Maestro Review — pluggable ReviewProvider (GitLab/GitHub) + orchestrator for automated MR review",
6
6
  "type": "module",
7
7
  "main": "./lib/index.js",
@@ -13,24 +13,24 @@
13
13
  },
14
14
  "files": [
15
15
  "README.md",
16
+ "cordis.patch.yml",
16
17
  "lib",
17
18
  "src",
18
19
  "presets",
19
- "client"
20
+ "client",
21
+ "profiles",
22
+ "templates"
20
23
  ],
21
24
  "peerDependencies": {
22
25
  "@deepseek-ai/cordis": "^4.0.1",
23
26
  "@deepseek-ai/dsh-client-connection": "^0.1.0-rc.6 || >=0.1.1-rc.0 <0.2.0"
24
27
  },
25
28
  "dependencies": {
26
- "@deepseek-ai/schemastery": "^3.0.0",
27
- "@ddtcorex/dsh-maestro-config-lib": "^0.1.1"
29
+ "@ddtcorex/dsh-maestro-config-lib": "^0.1.1",
30
+ "@deepseek-ai/schemastery": "^3.0.0"
28
31
  },
29
32
  "devDependencies": {
30
33
  "@deepseek-ai/cordis": "^4.0.1",
31
- "typescript": "^5.8.0",
32
- "vitest": "^2.0.0",
33
- "@types/node": "^22.0.0",
34
34
  "@deepseek-ai/dsh-agent": "0.1.2-alpha.2",
35
35
  "@deepseek-ai/dsh-agent-default-model": "0.1.2-alpha.2",
36
36
  "@deepseek-ai/dsh-agent-presets": "0.1.2-alpha.2",
@@ -38,7 +38,11 @@
38
38
  "@deepseek-ai/dsh-session": "0.1.2-alpha.2",
39
39
  "@deepseek-ai/dsh-session-title": "0.1.2-alpha.2",
40
40
  "@deepseek-ai/dsh-subagent": "0.1.2-alpha.2",
41
- "@deepseek-ai/dsh-tools": "0.1.2-alpha.2"
41
+ "@deepseek-ai/dsh-tools": "0.1.2-alpha.2",
42
+ "@types/node": "^22.0.0",
43
+ "typescript": "^5.8.0",
44
+ "vitest": "^2.0.0",
45
+ "yaml": "^2.9.0"
42
46
  },
43
47
  "dsh": {
44
48
  "bundle": {
@@ -48,6 +52,7 @@
48
52
  "scripts": {
49
53
  "build": "tsc",
50
54
  "test": "vitest run",
51
- "verify": "tsc --noEmit"
55
+ "verify": "tsc --noEmit",
56
+ "docker:build": "docker build -f docker/Dockerfile -t ddtcorex/maestro-reviewer:0.3.2 -t ddtcorex/maestro-reviewer:latest ../.."
52
57
  }
53
58
  }
@@ -0,0 +1,61 @@
1
+ # profiles/reviewer-ci/cordis.patch.yml — CI-only profile: no webhook, no HTTP server.
2
+ #
3
+ # `dsh-base` (see dsh.profile.bundles in package.json) already self-composes its
4
+ # own ~80-row cordis.patch.yml (it ships a dsh.bundle.patch field). So does
5
+ # @ddtcorex/dsh-maestro-review itself — self-composing 3 rows: maestro-review-webhook,
6
+ # maestro-review-orchestrator, maestro-review-settings-rpc (verified 2026-09-03: using
7
+ # `insert:` for a row id the bundle already provides throws "duplicate loader entry id"
8
+ # at boot). This file touches all three of those rows (bare `- id: X` entries, no
9
+ # `insert:` wrapper — the same pattern deepseek-harness's own headless bundle uses to
10
+ # override `system-prompt`/`tools`) instead of re-inserting them.
11
+
12
+ # maestro-review-webhook needs `webServer`, which this profile never provides (no dsh
13
+ # web/web-app bundle) — disable it explicitly rather than leaving it waiting forever
14
+ # on a service that will never arrive.
15
+ - id: maestro-review-webhook
16
+ disabled: true
17
+
18
+ # maestro-review-settings-rpc serves the Settings UI over the web `connection`
19
+ # (via `maestroTunnel`) — meaningless in a CI container where neither service
20
+ # exists. Verified 2026-09-04: leaving it enabled fails boot with
21
+ # "1 entry did not activate .../settings-rpc.js: pending (waiting for
22
+ # services: connection, maestroTunnel)".
23
+ - id: maestro-review-settings-rpc
24
+ disabled: true
25
+
26
+ # Override the auto-composed row's placeholder config. projectMappings is
27
+ # deliberately empty — this profile only serves the diff-only review path
28
+ # (phase 1, quick mode), matching the non-goal "no full-stack govard env up
29
+ # in CI in phase 1". gitlabBaseUrl must read GITLAB_HOST at runtime (not a
30
+ # static placeholder) since a source project can point ci-trigger.ts at any
31
+ # GitLab host via its own CI variables.
32
+ - id: maestro-review-orchestrator
33
+ config:
34
+ # Ternary must be quoted — an unquoted !!js scalar containing a bare `:`
35
+ # (the ternary's false-branch separator) gets misparsed as a YAML mapping
36
+ # key instead of passed through whole to the JS evaluator (verified
37
+ # 2026-09-03: without quotes, cordis reported gitlabBaseUrl as
38
+ # "[object Object]" instead of a string).
39
+ gitlabBaseUrl: !!js "process.env.GITLAB_HOST ? 'https://' + process.env.GITLAB_HOST : ''"
40
+ gitlabToken: !!js process.env.MAESTRO_GITLAB_TOKEN
41
+ botUsername: maestro-bot
42
+ projectMappings: []
43
+ agentTimeoutMs: 1200000
44
+ # Pinned review model (no Settings UI in CI). Optional as a pair: both unset
45
+ # → host default; ID without provider → the review fails with a provider
46
+ # error instead of silently calling the wrong model.
47
+ reviewModel: !!js "process.env.REVIEW_MODEL ? { provider: process.env.REVIEW_MODEL_PROVIDER, model: process.env.REVIEW_MODEL } : undefined"
48
+
49
+ # New rows this profile needs that dsh-base/dsh-maestro-review don't already provide.
50
+ - insert:
51
+ # @deepseek-ai/dsh-agent-presets ships no dsh.bundle.patch of its own
52
+ # (confirmed — no "dsh" field in its package.json), so it never self-composes;
53
+ # every profile that wants it must insert this row itself, copied verbatim
54
+ # from deepseek-harness/packages/bundle/web-app/cordis.patch.yml.
55
+ - id: agent-presets
56
+ name: '@deepseek-ai/dsh-agent-presets'
57
+ config:
58
+ default: standard
59
+
60
+ - id: maestro-review-ci-trigger
61
+ name: '@ddtcorex/dsh-maestro-review/lib/providers/ci-trigger.js'
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "reviewer-ci-profile",
3
+ "private": true,
4
+ "dsh": {
5
+ "profile": {
6
+ "bundles": [
7
+ "@deepseek-ai/dsh-base",
8
+ "@ddtcorex/dsh-maestro-review",
9
+ "@ddtcorex/maestro-skills"
10
+ ]
11
+ }
12
+ },
13
+ "dependencies": {
14
+ "@deepseek-ai/dsh-base": "link:../../deepseek-harness/packages/bundle/base",
15
+ "@deepseek-ai/dsh-agent-presets": "link:../../deepseek-harness/packages/preset/agent-presets",
16
+ "@ddtcorex/dsh-maestro-review": "link:../../packages/dsh-maestro-review",
17
+ "@ddtcorex/maestro-skills": "^2.11.0"
18
+ }
19
+ }
@@ -0,0 +1,62 @@
1
+ lockfileVersion: '9.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ importers:
8
+
9
+ .:
10
+ dependencies:
11
+ '@ddtcorex/dsh-maestro-review':
12
+ specifier: link:../../packages/dsh-maestro-review
13
+ version: link:../../packages/dsh-maestro-review
14
+ '@ddtcorex/maestro-skills':
15
+ specifier: ^2.11.0
16
+ version: 2.11.0(@deepseek-ai/cordis@4.0.2)
17
+ '@deepseek-ai/dsh-agent-presets':
18
+ specifier: link:../../deepseek-harness/packages/preset/agent-presets
19
+ version: link:../../deepseek-harness/packages/preset/agent-presets
20
+ '@deepseek-ai/dsh-base':
21
+ specifier: link:../../deepseek-harness/packages/bundle/base
22
+ version: link:../../deepseek-harness/packages/bundle/base
23
+
24
+ packages:
25
+
26
+ '@ddtcorex/maestro-skills@2.11.0':
27
+ resolution: {integrity: sha512-S+Nh8jYct1shXuluvveXZIo38wnyTVFMf1A4fNrUi7Ht3Bo6rFio++YqCjf3RL6RIO+mvytTq5ux1hMnc2Ti0w==}
28
+ peerDependencies:
29
+ '@deepseek-ai/cordis': ^4.0.0
30
+
31
+ '@deepseek-ai/cordis@4.0.2':
32
+ resolution: {integrity: sha512-asOnXP1TzFSFQlHb1iegDZp0z/8WD1c7YNrwJR/Tx2bzNuMXfcekE/I67Iv6SQXeLB4csxqCngzQKANP7gdw0g==}
33
+ hasBin: true
34
+ peerDependencies:
35
+ '@deepseek-ai/cordis-plugin-include': ^1.0.7
36
+ '@deepseek-ai/cordis-plugin-loader': ^1.0.3
37
+ peerDependenciesMeta:
38
+ '@deepseek-ai/cordis-plugin-include':
39
+ optional: true
40
+ '@deepseek-ai/cordis-plugin-loader':
41
+ optional: true
42
+
43
+ '@deepseek-ai/cosmokit@1.8.3':
44
+ resolution: {integrity: sha512-qBo+ronVM6Eu2WNVJXi8JcMiqZ19T9BRIpV+5qJUFPXjGH/Z0QKcQMC/IZJ7L394YTOtJgcovbk9qP0w2GsBXQ==}
45
+
46
+ '@standard-schema/spec@1.1.0':
47
+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
48
+
49
+ snapshots:
50
+
51
+ '@ddtcorex/maestro-skills@2.11.0(@deepseek-ai/cordis@4.0.2)':
52
+ dependencies:
53
+ '@deepseek-ai/cordis': 4.0.2
54
+
55
+ '@deepseek-ai/cordis@4.0.2':
56
+ dependencies:
57
+ '@deepseek-ai/cosmokit': 1.8.3
58
+ '@standard-schema/spec': 1.1.0
59
+
60
+ '@deepseek-ai/cosmokit@1.8.3': {}
61
+
62
+ '@standard-schema/spec@1.1.0': {}
@@ -0,0 +1,12 @@
1
+ # Marks profiles/reviewer-ci as its OWN standalone pnpm workspace root — without
2
+ # this file, pnpm's workspace-root detection walks up and finds
3
+ # packages/dsh-maestro-review's own pnpm-workspace.yaml two levels up (this
4
+ # profile is nested inside that package's directory tree), silently folding
5
+ # the profile into that unrelated workspace instead of installing it
6
+ # independently (verified 2026-09-03: `pnpm --dir profiles/reviewer-ci install`
7
+ # printed "Scope: all 2 workspace projects" and resolved relative to `../..`
8
+ # without this file present).
9
+ packages: []
10
+ minimumReleaseAgeExclude:
11
+ - '@ddtcorex/dsh-maestro-review@0.3.1'
12
+ - '@ddtcorex/maestro-skills@2.11.0'
@@ -0,0 +1,54 @@
1
+ import { execFile } from 'node:child_process'
2
+ import { promisify } from 'node:util'
3
+ import { gitlabAuthHeaders } from './gitlab-auth.js'
4
+
5
+ /**
6
+ * Source checkout for CI deep reviews (spec §3): clone the source project at
7
+ * the MR head SHA with the PAT over oauth2. The token lives only in the clone
8
+ * URL passed to git — errors rethrown here are redacted, and the clone dir is
9
+ * ephemeral (fresh container per job; the orchestrator removes it in `finally`).
10
+ */
11
+
12
+ export type RunFn = (cmd: string, args: string[], cwd?: string) => Promise<void>
13
+
14
+ const execFileAsync = promisify(execFile)
15
+
16
+ /** Production runner (execFile — no shell, argv cannot leak into shell history). */
17
+ export const defaultRun: RunFn = async (cmd, args, cwd) => {
18
+ await execFileAsync(cmd, args, { cwd, timeout: 120_000 })
19
+ }
20
+
21
+ export function redactCloneUrl(url: string): string {
22
+ return url.replace(/oauth2:[^@]+@/, 'oauth2:***@')
23
+ }
24
+
25
+ async function repoHttpUrl(fetcher: typeof fetch, host: string, projectId: number, token: string): Promise<string> {
26
+ const res = await fetcher(`https://${host}/api/v4/projects/${projectId}`, { headers: gitlabAuthHeaders(token) })
27
+ if (!res.ok) throw new Error(`GitLab API error ${res.status}: ${(await res.text()).slice(0, 200)}`)
28
+ const body = (await res.json()) as { http_url_to_repo?: string }
29
+ if (!body.http_url_to_repo) throw new Error('project has no http_url_to_repo')
30
+ return body.http_url_to_repo
31
+ }
32
+
33
+ export async function cloneSourceRepo(opts: {
34
+ fetcher: typeof fetch
35
+ run: RunFn
36
+ host: string
37
+ projectId: number
38
+ sourceBranch: string
39
+ headSha: string
40
+ token: string
41
+ dir: string
42
+ }): Promise<string> {
43
+ const httpUrl = await repoHttpUrl(opts.fetcher, opts.host, opts.projectId, opts.token)
44
+ const authed = httpUrl.replace('https://', `https://oauth2:${opts.token}@`)
45
+ try {
46
+ await opts.run('git', ['clone', '--depth', '50', '--branch', opts.sourceBranch, '--', authed, opts.dir])
47
+ await opts.run('git', ['fetch', '--depth', '50', 'origin', opts.headSha], opts.dir)
48
+ await opts.run('git', ['checkout', '--detach', opts.headSha], opts.dir)
49
+ } catch (err) {
50
+ const message = err instanceof Error ? err.message : String(err)
51
+ throw new Error(redactCloneUrl(message))
52
+ }
53
+ return opts.dir
54
+ }
@@ -0,0 +1,43 @@
1
+ import { gitlabAuthHeaders } from './gitlab-auth.js'
2
+ import { parseReviewMarker } from './review-marker.js'
3
+
4
+ /**
5
+ * Coexistence checks (spec §4): the CI flow yields to any completed review of
6
+ * the same head SHA (whatever flow posted it) and to an in-flight review
7
+ * (eyes running-marker). Fetch failures fail open toward running — a missing
8
+ * signal must never block a review, only a present one skips it.
9
+ */
10
+ export async function hasCompletedReviewForSha(
11
+ fetcher: typeof fetch, baseUrl: string, token: string, projectId: number, mrIid: number, sha: string,
12
+ ): Promise<boolean> {
13
+ try {
14
+ const res = await fetcher(
15
+ `${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}/notes?per_page=100&sort=desc&order_by=created_at`,
16
+ { headers: gitlabAuthHeaders(token) },
17
+ )
18
+ if (!res.ok) return false
19
+ const notes = (await res.json()) as Array<{ body?: string }>
20
+ return notes.some((n) => {
21
+ const m = typeof n.body === 'string' ? parseReviewMarker(n.body) : undefined
22
+ return m?.sha.toLowerCase() === sha.toLowerCase() && m?.status === 'completed'
23
+ })
24
+ } catch {
25
+ return false
26
+ }
27
+ }
28
+
29
+ export async function hasRunningEyes(
30
+ fetcher: typeof fetch, baseUrl: string, token: string, projectId: number, mrIid: number,
31
+ ): Promise<boolean> {
32
+ try {
33
+ const res = await fetcher(
34
+ `${baseUrl}/api/v4/projects/${projectId}/merge_requests/${mrIid}/award_emoji`,
35
+ { headers: gitlabAuthHeaders(token) },
36
+ )
37
+ if (!res.ok) return false
38
+ const awards = (await res.json()) as Array<{ name?: string }>
39
+ return awards.some((a) => a.name === 'eyes')
40
+ } catch {
41
+ return false
42
+ }
43
+ }
@@ -14,17 +14,30 @@ export interface ReviewModelSelection {
14
14
  reasoningEffort?: string
15
15
  }
16
16
 
17
+ export interface ProjectMapping {
18
+ projectPath: string
19
+ localRepoPath: string
20
+ reviewProfile?: ReviewSkillProfile
21
+ reviewModel?: ReviewModelSelection
22
+ /** Per-project override of autoRereviewOnPush (undefined = inherit global). */
23
+ rereviewOnPush?: boolean
24
+ /** Per-project override of autoReviewOnAssign (undefined = inherit global). */
25
+ reviewOnAssign?: boolean
26
+ }
27
+
17
28
  export interface MaestroUserConfig {
18
29
  gitlabBaseUrl?: string
19
30
  gitlabToken?: string
20
31
  botUsername?: string
21
32
  webhookSecret?: string
22
33
  webhookPort?: number
23
- projectMappings?: Array<{ projectPath: string; localRepoPath: string; reviewProfile?: ReviewSkillProfile; reviewModel?: ReviewModelSelection }>
34
+ projectMappings?: Array<ProjectMapping>
24
35
  /** Override the DSH default model for automated reviews. When absent the global DSH default is used. */
25
36
  reviewModel?: ReviewModelSelection
26
37
  /** Re-run a quick review whenever new commits land on a previously reviewed MR. */
27
38
  autoRereviewOnPush?: boolean
39
+ /** Trigger an automatic quick review when the bot is assigned as MR reviewer (default true). */
40
+ autoReviewOnAssign?: boolean
28
41
  /** Bound one automated review agent's turn. */
29
42
  agentTimeoutMs?: number
30
43
  /** Prune Maestro's own review records older than this many days (0 = keep forever). */
@@ -11,15 +11,40 @@ export type ReviewScope =
11
11
  | { kind: 'mr' }
12
12
  | { kind: 'discussion'; discussionId: string; path: string; line: number }
13
13
 
14
+ import type { ReviewSkillProfile } from './skills-tool.js'
15
+
14
16
  export interface ReviewRequest extends MrOpenedPayload {
15
17
  /** `push` arrives only when auto re-review on push is enabled and passes the completed-history gate. */
16
18
  trigger: 'reviewer-assignment' | 'mention' | 'push'
17
19
  mode: ReviewMode
18
20
  scope: ReviewScope
21
+ /**
22
+ * CI-only override (ci-trigger sets it from REVIEW_PROFILE). The GitLab webhook
23
+ * producer never sets it — mapped projects resolve their profile from the mapping.
24
+ * Undefined preserves the legacy diff-only generic review.
25
+ */
26
+ reviewProfile?: ReviewSkillProfile
27
+ /**
28
+ * CI-only: MR head SHA from fetchMrDetail (ci-trigger sets it). Feeds the
29
+ * comment marker so later CI runs can yield to this review. The GitLab
30
+ * webhook producer never sets it — webhook comments stay marker-free.
31
+ */
32
+ headSha?: string
33
+ }
34
+
35
+ export interface ReviewResult {
36
+ /** false = the review could not run or failed outright (infra error) — a CI caller should exit non-zero. */
37
+ ok: boolean
38
+ summary?: string
39
+ failures: string[]
40
+ durationMs: number
19
41
  }
20
42
 
21
43
  declare module '@deepseek-ai/cordis' {
22
44
  interface Events {
23
45
  'maestro/review-request': (payload: ReviewRequest) => void
24
46
  }
47
+ interface Context {
48
+ reviewRunner: (payload: ReviewRequest) => Promise<ReviewResult>
49
+ }
25
50
  }
@@ -0,0 +1,13 @@
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: string): Record<string, string> {
11
+ if (process.env.GITLAB_TOKEN_KIND === 'job') return { 'JOB-TOKEN': token }
12
+ return { 'PRIVATE-TOKEN': token }
13
+ }