opencastle 0.31.7 → 0.32.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.
Files changed (220) hide show
  1. package/README.md +4 -1
  2. package/bin/cli.mjs +15 -0
  3. package/dist/cli/agents.d.ts.map +1 -1
  4. package/dist/cli/agents.js +19 -5
  5. package/dist/cli/agents.js.map +1 -1
  6. package/dist/cli/artifacts-cli.d.ts +3 -0
  7. package/dist/cli/artifacts-cli.d.ts.map +1 -0
  8. package/dist/cli/artifacts-cli.js +36 -0
  9. package/dist/cli/artifacts-cli.js.map +1 -0
  10. package/dist/cli/baselines.d.ts.map +1 -1
  11. package/dist/cli/baselines.js +11 -0
  12. package/dist/cli/baselines.js.map +1 -1
  13. package/dist/cli/convoy/artifacts.d.ts +25 -0
  14. package/dist/cli/convoy/artifacts.d.ts.map +1 -0
  15. package/dist/cli/convoy/artifacts.js +129 -0
  16. package/dist/cli/convoy/artifacts.js.map +1 -0
  17. package/dist/cli/convoy/artifacts.test.d.ts +2 -0
  18. package/dist/cli/convoy/artifacts.test.d.ts.map +1 -0
  19. package/dist/cli/convoy/artifacts.test.js +169 -0
  20. package/dist/cli/convoy/artifacts.test.js.map +1 -0
  21. package/dist/cli/convoy/compaction.d.ts +23 -0
  22. package/dist/cli/convoy/compaction.d.ts.map +1 -0
  23. package/dist/cli/convoy/compaction.js +117 -0
  24. package/dist/cli/convoy/compaction.js.map +1 -0
  25. package/dist/cli/convoy/compaction.test.d.ts +2 -0
  26. package/dist/cli/convoy/compaction.test.d.ts.map +1 -0
  27. package/dist/cli/convoy/compaction.test.js +205 -0
  28. package/dist/cli/convoy/compaction.test.js.map +1 -0
  29. package/dist/cli/convoy/contracts.d.ts +22 -0
  30. package/dist/cli/convoy/contracts.d.ts.map +1 -0
  31. package/dist/cli/convoy/contracts.js +254 -0
  32. package/dist/cli/convoy/contracts.js.map +1 -0
  33. package/dist/cli/convoy/contracts.test.d.ts +2 -0
  34. package/dist/cli/convoy/contracts.test.d.ts.map +1 -0
  35. package/dist/cli/convoy/contracts.test.js +239 -0
  36. package/dist/cli/convoy/contracts.test.js.map +1 -0
  37. package/dist/cli/convoy/dag-analysis.d.ts +40 -0
  38. package/dist/cli/convoy/dag-analysis.d.ts.map +1 -0
  39. package/dist/cli/convoy/dag-analysis.js +282 -0
  40. package/dist/cli/convoy/dag-analysis.js.map +1 -0
  41. package/dist/cli/convoy/dag-analysis.test.d.ts +2 -0
  42. package/dist/cli/convoy/dag-analysis.test.d.ts.map +1 -0
  43. package/dist/cli/convoy/dag-analysis.test.js +289 -0
  44. package/dist/cli/convoy/dag-analysis.test.js.map +1 -0
  45. package/dist/cli/convoy/effort-scaling.d.ts +20 -0
  46. package/dist/cli/convoy/effort-scaling.d.ts.map +1 -0
  47. package/dist/cli/convoy/effort-scaling.js +82 -0
  48. package/dist/cli/convoy/effort-scaling.js.map +1 -0
  49. package/dist/cli/convoy/effort-scaling.test.d.ts +2 -0
  50. package/dist/cli/convoy/effort-scaling.test.d.ts.map +1 -0
  51. package/dist/cli/convoy/effort-scaling.test.js +120 -0
  52. package/dist/cli/convoy/effort-scaling.test.js.map +1 -0
  53. package/dist/cli/convoy/engine.d.ts.map +1 -1
  54. package/dist/cli/convoy/engine.js +280 -6
  55. package/dist/cli/convoy/engine.js.map +1 -1
  56. package/dist/cli/convoy/engine.test.js +155 -18
  57. package/dist/cli/convoy/engine.test.js.map +1 -1
  58. package/dist/cli/convoy/event-schemas.d.ts.map +1 -1
  59. package/dist/cli/convoy/event-schemas.js +55 -0
  60. package/dist/cli/convoy/event-schemas.js.map +1 -1
  61. package/dist/cli/convoy/isolation.d.ts +27 -0
  62. package/dist/cli/convoy/isolation.d.ts.map +1 -0
  63. package/dist/cli/convoy/isolation.js +120 -0
  64. package/dist/cli/convoy/isolation.js.map +1 -0
  65. package/dist/cli/convoy/isolation.test.d.ts +2 -0
  66. package/dist/cli/convoy/isolation.test.d.ts.map +1 -0
  67. package/dist/cli/convoy/isolation.test.js +105 -0
  68. package/dist/cli/convoy/isolation.test.js.map +1 -0
  69. package/dist/cli/convoy/review-stages.d.ts +9 -0
  70. package/dist/cli/convoy/review-stages.d.ts.map +1 -0
  71. package/dist/cli/convoy/review-stages.js +134 -0
  72. package/dist/cli/convoy/review-stages.js.map +1 -0
  73. package/dist/cli/convoy/review-stages.test.d.ts +2 -0
  74. package/dist/cli/convoy/review-stages.test.d.ts.map +1 -0
  75. package/dist/cli/convoy/review-stages.test.js +197 -0
  76. package/dist/cli/convoy/review-stages.test.js.map +1 -0
  77. package/dist/cli/convoy/skill-refinement.d.ts +39 -0
  78. package/dist/cli/convoy/skill-refinement.d.ts.map +1 -0
  79. package/dist/cli/convoy/skill-refinement.js +239 -0
  80. package/dist/cli/convoy/skill-refinement.js.map +1 -0
  81. package/dist/cli/convoy/skill-refinement.test.d.ts +2 -0
  82. package/dist/cli/convoy/skill-refinement.test.d.ts.map +1 -0
  83. package/dist/cli/convoy/skill-refinement.test.js +230 -0
  84. package/dist/cli/convoy/skill-refinement.test.js.map +1 -0
  85. package/dist/cli/convoy/spec-builder.d.ts +1 -0
  86. package/dist/cli/convoy/spec-builder.d.ts.map +1 -1
  87. package/dist/cli/convoy/spec-builder.js +11 -0
  88. package/dist/cli/convoy/spec-builder.js.map +1 -1
  89. package/dist/cli/convoy/spec-builder.test.js +54 -0
  90. package/dist/cli/convoy/spec-builder.test.js.map +1 -1
  91. package/dist/cli/convoy/store.d.ts +3 -2
  92. package/dist/cli/convoy/store.d.ts.map +1 -1
  93. package/dist/cli/convoy/store.js +20 -2
  94. package/dist/cli/convoy/store.js.map +1 -1
  95. package/dist/cli/convoy/store.test.js +15 -15
  96. package/dist/cli/convoy/store.test.js.map +1 -1
  97. package/dist/cli/convoy/tdd-gate.d.ts +15 -0
  98. package/dist/cli/convoy/tdd-gate.d.ts.map +1 -0
  99. package/dist/cli/convoy/tdd-gate.js +119 -0
  100. package/dist/cli/convoy/tdd-gate.js.map +1 -0
  101. package/dist/cli/convoy/tdd-gate.test.d.ts +2 -0
  102. package/dist/cli/convoy/tdd-gate.test.d.ts.map +1 -0
  103. package/dist/cli/convoy/tdd-gate.test.js +227 -0
  104. package/dist/cli/convoy/tdd-gate.test.js.map +1 -0
  105. package/dist/cli/convoy/types.d.ts +91 -0
  106. package/dist/cli/convoy/types.d.ts.map +1 -1
  107. package/dist/cli/convoy/types.js +8 -0
  108. package/dist/cli/convoy/types.js.map +1 -1
  109. package/dist/cli/insights.d.ts +3 -0
  110. package/dist/cli/insights.d.ts.map +1 -0
  111. package/dist/cli/insights.js +94 -0
  112. package/dist/cli/insights.js.map +1 -0
  113. package/dist/cli/lesson.d.ts.map +1 -1
  114. package/dist/cli/lesson.js +7 -0
  115. package/dist/cli/lesson.js.map +1 -1
  116. package/dist/cli/log.d.ts.map +1 -1
  117. package/dist/cli/log.js +7 -0
  118. package/dist/cli/log.js.map +1 -1
  119. package/dist/cli/package-config.d.ts +12 -0
  120. package/dist/cli/package-config.d.ts.map +1 -0
  121. package/dist/cli/package-config.js +37 -0
  122. package/dist/cli/package-config.js.map +1 -0
  123. package/dist/cli/package.d.ts +23 -0
  124. package/dist/cli/package.d.ts.map +1 -0
  125. package/dist/cli/package.js +285 -0
  126. package/dist/cli/package.js.map +1 -0
  127. package/dist/cli/package.test.d.ts +2 -0
  128. package/dist/cli/package.test.d.ts.map +1 -0
  129. package/dist/cli/package.test.js +236 -0
  130. package/dist/cli/package.test.js.map +1 -0
  131. package/dist/cli/pipeline.d.ts +6 -0
  132. package/dist/cli/pipeline.d.ts.map +1 -1
  133. package/dist/cli/pipeline.js +15 -2
  134. package/dist/cli/pipeline.js.map +1 -1
  135. package/dist/cli/run/schema.d.ts.map +1 -1
  136. package/dist/cli/run/schema.js +32 -0
  137. package/dist/cli/run/schema.js.map +1 -1
  138. package/dist/cli/run/schema.test.js +51 -0
  139. package/dist/cli/run/schema.test.js.map +1 -1
  140. package/dist/cli/skills.d.ts +3 -0
  141. package/dist/cli/skills.d.ts.map +1 -0
  142. package/dist/cli/skills.js +107 -0
  143. package/dist/cli/skills.js.map +1 -0
  144. package/dist/cli/types.d.ts +4 -1
  145. package/dist/cli/types.d.ts.map +1 -1
  146. package/dist/dashboard/scripts/etl.d.ts.map +1 -1
  147. package/dist/dashboard/scripts/etl.js +44 -11
  148. package/dist/dashboard/scripts/etl.js.map +1 -1
  149. package/package.json +2 -1
  150. package/src/cli/agents.ts +20 -5
  151. package/src/cli/artifacts-cli.ts +41 -0
  152. package/src/cli/baselines.ts +12 -0
  153. package/src/cli/convoy/artifacts.test.ts +201 -0
  154. package/src/cli/convoy/artifacts.ts +186 -0
  155. package/src/cli/convoy/compaction.test.ts +245 -0
  156. package/src/cli/convoy/compaction.ts +164 -0
  157. package/src/cli/convoy/contracts.test.ts +279 -0
  158. package/src/cli/convoy/contracts.ts +280 -0
  159. package/src/cli/convoy/dag-analysis.test.ts +349 -0
  160. package/src/cli/convoy/dag-analysis.ts +371 -0
  161. package/src/cli/convoy/effort-scaling.test.ts +140 -0
  162. package/src/cli/convoy/effort-scaling.ts +90 -0
  163. package/src/cli/convoy/engine.test.ts +175 -18
  164. package/src/cli/convoy/engine.ts +301 -7
  165. package/src/cli/convoy/event-schemas.ts +55 -0
  166. package/src/cli/convoy/isolation.test.ts +137 -0
  167. package/src/cli/convoy/isolation.ts +165 -0
  168. package/src/cli/convoy/review-stages.test.ts +235 -0
  169. package/src/cli/convoy/review-stages.ts +166 -0
  170. package/src/cli/convoy/skill-refinement.test.ts +277 -0
  171. package/src/cli/convoy/skill-refinement.ts +306 -0
  172. package/src/cli/convoy/spec-builder.test.ts +61 -0
  173. package/src/cli/convoy/spec-builder.ts +9 -0
  174. package/src/cli/convoy/store.test.ts +15 -15
  175. package/src/cli/convoy/store.ts +26 -4
  176. package/src/cli/convoy/tdd-gate.test.ts +281 -0
  177. package/src/cli/convoy/tdd-gate.ts +154 -0
  178. package/src/cli/convoy/types.ts +51 -0
  179. package/src/cli/insights.ts +99 -0
  180. package/src/cli/lesson.ts +8 -0
  181. package/src/cli/log.ts +8 -0
  182. package/src/cli/package-config.ts +48 -0
  183. package/src/cli/package.test.ts +276 -0
  184. package/src/cli/package.ts +329 -0
  185. package/src/cli/pipeline.ts +21 -2
  186. package/src/cli/run/schema.test.ts +58 -0
  187. package/src/cli/run/schema.ts +33 -0
  188. package/src/cli/skills.ts +121 -0
  189. package/src/cli/types.ts +4 -1
  190. package/src/dashboard/dist/_astro/index.D6quLrA6.css +1 -0
  191. package/src/dashboard/dist/data/convoy-list.json +21 -7
  192. package/src/dashboard/dist/data/convoys/demo-api-v2.json +3 -3
  193. package/src/dashboard/dist/data/convoys/demo-auth-revamp.json +5 -5
  194. package/src/dashboard/dist/data/convoys/demo-convoy-1.json +2 -2
  195. package/src/dashboard/dist/data/convoys/demo-convoy-2.json +1 -1
  196. package/src/dashboard/dist/data/convoys/demo-dashboard-ui.json +7 -7
  197. package/src/dashboard/dist/data/convoys/demo-data-pipeline.json +3 -3
  198. package/src/dashboard/dist/data/convoys/demo-deploy-ci.json +2 -2
  199. package/src/dashboard/dist/data/convoys/demo-docs-update.json +2 -2
  200. package/src/dashboard/dist/data/convoys/demo-perf-opt.json +4 -4
  201. package/src/dashboard/dist/index.html +306 -33
  202. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  203. package/src/dashboard/public/data/convoy-list.json +21 -7
  204. package/src/dashboard/public/data/convoys/demo-api-v2.json +3 -3
  205. package/src/dashboard/public/data/convoys/demo-auth-revamp.json +5 -5
  206. package/src/dashboard/public/data/convoys/demo-convoy-1.json +2 -2
  207. package/src/dashboard/public/data/convoys/demo-convoy-2.json +1 -1
  208. package/src/dashboard/public/data/convoys/demo-dashboard-ui.json +7 -7
  209. package/src/dashboard/public/data/convoys/demo-data-pipeline.json +3 -3
  210. package/src/dashboard/public/data/convoys/demo-deploy-ci.json +2 -2
  211. package/src/dashboard/public/data/convoys/demo-docs-update.json +2 -2
  212. package/src/dashboard/public/data/convoys/demo-perf-opt.json +4 -4
  213. package/src/dashboard/scripts/etl.test.ts +14 -0
  214. package/src/dashboard/scripts/etl.ts +48 -16
  215. package/src/dashboard/scripts/generate-demo-db.ts +18 -10
  216. package/src/dashboard/src/pages/index.astro +348 -45
  217. package/src/dashboard/src/styles/dashboard.css +56 -0
  218. package/src/orchestrator/prompts/assess-complexity.prompt.md +13 -0
  219. package/src/orchestrator/prompts/generate-convoy.prompt.md +19 -0
  220. package/src/dashboard/dist/_astro/index.BRDFmNzR.css +0 -1
@@ -167,6 +167,61 @@ export const EVENT_DATA_SCHEMAS = {
167
167
  description: v.optional(v.string()),
168
168
  severity: v.optional(v.string()),
169
169
  }),
170
+ contract_violation: v.looseObject({
171
+ task_id: v.optional(v.string()),
172
+ agent: v.optional(v.string()),
173
+ missing: v.optional(v.array(v.string())),
174
+ warnings: v.optional(v.array(v.string())),
175
+ }),
176
+ partition_violation: v.looseObject({
177
+ task_id: v.optional(v.string()),
178
+ allowed: v.optional(v.array(v.string())),
179
+ actual: v.optional(v.array(v.string())),
180
+ violations: v.optional(v.array(v.string())),
181
+ }),
182
+ context_compacted: v.looseObject({
183
+ task_id: v.optional(v.string()),
184
+ compaction_count: v.optional(v.number()),
185
+ summary_path: v.optional(v.string()),
186
+ model: v.optional(v.string()),
187
+ tokens_used: v.optional(v.number()),
188
+ }),
189
+ skill_refinement_proposed: v.looseObject({
190
+ skill_name: v.optional(v.string()),
191
+ proposal_path: v.optional(v.string()),
192
+ failure_count: v.optional(v.number()),
193
+ confidence: v.optional(v.string()),
194
+ }),
195
+ tdd_check_passed: v.looseObject({
196
+ task_id: v.optional(v.string()),
197
+ new_source_files: v.optional(v.number()),
198
+ existing_test_files: v.optional(v.number()),
199
+ }),
200
+ tdd_check_failed: v.looseObject({
201
+ task_id: v.optional(v.string()),
202
+ missing_test_files: v.optional(v.array(v.string())),
203
+ new_source_files: v.optional(v.number()),
204
+ }),
205
+ tdd_check_skipped: v.looseObject({
206
+ task_id: v.optional(v.string()),
207
+ reason: v.optional(v.string()),
208
+ agent: v.optional(v.string()),
209
+ }),
210
+ review_stage_completed: v.looseObject({
211
+ stage: v.string(),
212
+ verdict: v.string(),
213
+ tokens: v.number(),
214
+ task_id: v.optional(v.string()),
215
+ model: v.optional(v.string()),
216
+ }),
217
+ artifacts_extracted: v.looseObject({
218
+ task_id: v.optional(v.string()),
219
+ count: v.optional(v.number()),
220
+ artifacts: v.optional(v.array(v.looseObject({
221
+ filename: v.string(),
222
+ summary: v.optional(v.string()),
223
+ }))),
224
+ }),
170
225
  };
171
226
  export function validateEventData(type, data) {
172
227
  const schema = EVENT_DATA_SCHEMAS[type];
@@ -1 +1 @@
1
- {"version":3,"file":"event-schemas.js","sourceRoot":"","sources":["../../../src/cli/convoy/event-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-schemas.js","sourceRoot":"","sources":["../../../src/cli/convoy/event-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { ConvoyStore } from './store.js';
2
+ import { type ArtifactRef } from './artifacts.js';
3
+ export interface DependencyResult {
4
+ taskId: string;
5
+ agent: string;
6
+ status: string;
7
+ summary: string | null;
8
+ filesChanged: string[];
9
+ artifactRefs?: ArtifactRef[];
10
+ }
11
+ export interface PartitionViolation {
12
+ taskId: string;
13
+ allowedFiles: string[];
14
+ actualFiles: string[];
15
+ violations: string[];
16
+ }
17
+ export declare function formatDependencyResults(deps: DependencyResult[]): string;
18
+ export declare function buildIsolationPreamble(task: {
19
+ id: string;
20
+ description: string;
21
+ prompt: string;
22
+ files: string[];
23
+ agent: string;
24
+ }, dependencyResults: DependencyResult[]): string;
25
+ export declare function detectPartitionViolations(taskId: string, allowedFiles: string[], actualFiles: string[]): PartitionViolation | null;
26
+ export declare function resolveDependencyResults(store: ConvoyStore, convoyId: string, dependsOn: string[]): DependencyResult[];
27
+ //# sourceMappingURL=isolation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/isolation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAIhE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAgBxE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACzF,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,MAAM,CA8BR;AAID,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,GACpB,kBAAkB,GAAG,IAAI,CA8B3B;AAID,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,GAClB,gBAAgB,EAAE,CA2CpB"}
@@ -0,0 +1,120 @@
1
+ import { normalizePath, pathsOverlap } from './partition.js';
2
+ import { listArtifacts } from './artifacts.js';
3
+ // ── Formatting ────────────────────────────────────────────────────────────────
4
+ export function formatDependencyResults(deps) {
5
+ return deps
6
+ .map(dep => {
7
+ let text = '#### ' + dep.taskId + ' (' + dep.agent + ') \u2014 ' + dep.status + '\n'
8
+ + (dep.summary ?? 'No summary available.') + '\n'
9
+ + 'Files changed: ' + (dep.filesChanged.length > 0 ? dep.filesChanged.join(', ') : 'none');
10
+ if (dep.artifactRefs && dep.artifactRefs.length > 0) {
11
+ text += '\nArtifacts available:\n'
12
+ + dep.artifactRefs.map(r => '- ' + r.path + ' \u2014 "' + r.summary + '"').join('\n')
13
+ + '\n\nTo read an artifact, open the file at the path above.';
14
+ }
15
+ return text;
16
+ })
17
+ .join('\n\n');
18
+ }
19
+ export function buildIsolationPreamble(task, dependencyResults) {
20
+ const objective = task.description || task.prompt.slice(0, 200);
21
+ const fileList = task.files.length > 0 ? task.files.map(f => '- ' + f).join('\n') : '- (none specified)';
22
+ const depSection = dependencyResults.length > 0
23
+ ? formatDependencyResults(dependencyResults)
24
+ : 'No dependencies \u2014 you are in the first phase.';
25
+ return [
26
+ '## Context Isolation Notice',
27
+ 'You are a fresh agent with NO prior context. You have no knowledge of other tasks',
28
+ 'in this convoy. Your only context is what follows.',
29
+ '',
30
+ '### Your Task',
31
+ '- **ID:** ' + task.id,
32
+ '- **Agent:** ' + task.agent,
33
+ '- **Objective:** ' + objective,
34
+ '',
35
+ '### Your File Partition',
36
+ 'You may ONLY read and modify files within this partition:',
37
+ fileList,
38
+ '',
39
+ 'Do NOT modify files outside this partition. If you discover a need to change files',
40
+ 'outside your partition, note it in your output but do not make the change.',
41
+ '',
42
+ '### Dependency Results',
43
+ depSection,
44
+ '',
45
+ '### Project Conventions',
46
+ 'Read `.github/instructions/general.instructions.md` for coding standards.',
47
+ ].join('\n');
48
+ }
49
+ // ── Partition violation detection ─────────────────────────────────────────────
50
+ export function detectPartitionViolations(taskId, allowedFiles, actualFiles) {
51
+ const violations = [];
52
+ for (const actual of actualFiles) {
53
+ let isAllowed = false;
54
+ for (const allowed of allowedFiles) {
55
+ try {
56
+ const normalizedAllowed = normalizePath(allowed);
57
+ const normalizedActual = normalizePath(actual);
58
+ if (pathsOverlap(normalizedAllowed, normalizedActual)) {
59
+ isAllowed = true;
60
+ break;
61
+ }
62
+ }
63
+ catch {
64
+ // Fallback for unusual paths: exact match or directory prefix
65
+ const allowedDir = allowed.endsWith('/') ? allowed : allowed + '/';
66
+ if (actual === allowed || actual.startsWith(allowedDir)) {
67
+ isAllowed = true;
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ if (!isAllowed) {
73
+ violations.push(actual);
74
+ }
75
+ }
76
+ if (violations.length === 0)
77
+ return null;
78
+ return { taskId, allowedFiles, actualFiles, violations };
79
+ }
80
+ // ── Dependency result resolution ──────────────────────────────────────────────
81
+ export function resolveDependencyResults(store, convoyId, dependsOn) {
82
+ return dependsOn
83
+ .map((depId) => {
84
+ const record = store.getTask(depId, convoyId);
85
+ if (!record)
86
+ return null;
87
+ let summary = null;
88
+ let filesChanged = [];
89
+ if (record.contract_result) {
90
+ try {
91
+ const cr = JSON.parse(record.contract_result);
92
+ if (cr.data) {
93
+ summary = typeof cr.data['summary'] === 'string' ? cr.data['summary'] : null;
94
+ const files = cr.data['files_changed'];
95
+ if (Array.isArray(files)) {
96
+ filesChanged = files.filter((f) => typeof f === 'string');
97
+ }
98
+ }
99
+ }
100
+ catch { /* non-critical */ }
101
+ }
102
+ let artifactRefs;
103
+ try {
104
+ const refs = listArtifacts(convoyId, depId);
105
+ if (refs.length > 0)
106
+ artifactRefs = refs;
107
+ }
108
+ catch { /* non-critical */ }
109
+ return {
110
+ taskId: record.id,
111
+ agent: record.agent,
112
+ status: record.status,
113
+ summary,
114
+ filesChanged,
115
+ artifactRefs,
116
+ };
117
+ })
118
+ .filter((r) => r !== null);
119
+ }
120
+ //# sourceMappingURL=isolation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.js","sourceRoot":"","sources":["../../../src/cli/convoy/isolation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isolation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.test.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/isolation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,105 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildIsolationPreamble, formatDependencyResults, detectPartitionViolations, } from './isolation.js';
3
+ describe('buildIsolationPreamble', () => {
4
+ const baseTask = {
5
+ id: 'task-1',
6
+ description: 'Implement the auth service',
7
+ prompt: 'Please implement the auth service with JWT tokens',
8
+ files: ['src/auth/', 'src/services/auth.ts'],
9
+ agent: 'developer',
10
+ };
11
+ it('with no dependencies contains task ID, agent, description, file list, and no-dependency text', () => {
12
+ const result = buildIsolationPreamble(baseTask, []);
13
+ expect(result).toContain('task-1');
14
+ expect(result).toContain('developer');
15
+ expect(result).toContain('Implement the auth service');
16
+ expect(result).toContain('src/auth/');
17
+ expect(result).toContain('src/services/auth.ts');
18
+ expect(result).toContain('No dependencies');
19
+ expect(result).toContain('first phase');
20
+ });
21
+ it('with 2 completed dependencies includes dependency summaries and files', () => {
22
+ const depResults = [
23
+ { taskId: 'task-0', agent: 'architect', status: 'done', summary: 'Designed the auth schema', filesChanged: ['schema.ts', 'types.ts'] },
24
+ { taskId: 'task-0b', agent: 'developer', status: 'done', summary: 'Set up project structure', filesChanged: ['package.json'] },
25
+ ];
26
+ const result = buildIsolationPreamble(baseTask, depResults);
27
+ expect(result).toContain('task-0');
28
+ expect(result).toContain('Designed the auth schema');
29
+ expect(result).toContain('schema.ts, types.ts');
30
+ expect(result).toContain('task-0b');
31
+ expect(result).toContain('package.json');
32
+ expect(result).not.toContain('No dependencies');
33
+ });
34
+ it('with failed dependency includes failure status', () => {
35
+ const depResults = [
36
+ { taskId: 'task-x', agent: 'developer', status: 'failed', summary: 'Build failed due to type errors', filesChanged: [] },
37
+ ];
38
+ const result = buildIsolationPreamble(baseTask, depResults);
39
+ expect(result).toContain('failed');
40
+ expect(result).toContain('Build failed due to type errors');
41
+ });
42
+ it('uses prompt slice when no description', () => {
43
+ const longPrompt = 'A'.repeat(300);
44
+ const task = { ...baseTask, description: '', prompt: longPrompt };
45
+ const result = buildIsolationPreamble(task, []);
46
+ expect(result).toContain('A'.repeat(200));
47
+ expect(result).not.toContain('A'.repeat(201));
48
+ });
49
+ });
50
+ describe('formatDependencyResults', () => {
51
+ it('compact format includes summary and filesChanged but not full output', () => {
52
+ const deps = [
53
+ {
54
+ taskId: 'dep-1',
55
+ agent: 'developer',
56
+ status: 'done',
57
+ summary: 'Completed auth setup',
58
+ filesChanged: ['src/auth.ts', 'src/index.ts'],
59
+ },
60
+ ];
61
+ const result = formatDependencyResults(deps);
62
+ expect(result).toContain('dep-1');
63
+ expect(result).toContain('developer');
64
+ expect(result).toContain('done');
65
+ expect(result).toContain('Completed auth setup');
66
+ expect(result).toContain('src/auth.ts, src/index.ts');
67
+ });
68
+ it('shows no-summary placeholder when summary is null', () => {
69
+ const deps = [
70
+ { taskId: 'dep-2', agent: 'architect', status: 'done', summary: null, filesChanged: [] },
71
+ ];
72
+ const result = formatDependencyResults(deps);
73
+ expect(result).toContain('No summary available.');
74
+ expect(result).toContain('Files changed: none');
75
+ });
76
+ });
77
+ describe('detectPartitionViolations', () => {
78
+ it('returns null when all files are within partition', () => {
79
+ const result = detectPartitionViolations('task-1', ['src/auth/', 'src/types.ts'], ['src/auth/service.ts', 'src/auth/utils.ts', 'src/types.ts']);
80
+ expect(result).toBeNull();
81
+ });
82
+ it('detects files outside partition', () => {
83
+ const result = detectPartitionViolations('task-1', ['src/auth/'], ['src/auth/service.ts', 'src/other/unrelated.ts']);
84
+ expect(result).not.toBeNull();
85
+ expect(result.violations).toContain('src/other/unrelated.ts');
86
+ expect(result.violations).not.toContain('src/auth/service.ts');
87
+ expect(result.taskId).toBe('task-1');
88
+ expect(result.allowedFiles).toEqual(['src/auth/']);
89
+ });
90
+ it('handles directory paths - src/auth/ allows src/auth/service.ts', () => {
91
+ const result = detectPartitionViolations('task-1', ['src/auth/'], ['src/auth/service.ts', 'src/auth/utils/helper.ts']);
92
+ expect(result).toBeNull();
93
+ });
94
+ it('handles exact file matches - src/index.ts allows only that exact file', () => {
95
+ const result = detectPartitionViolations('task-1', ['src/index.ts'], ['src/index.ts', 'src/other.ts']);
96
+ expect(result).not.toBeNull();
97
+ expect(result.violations).toContain('src/other.ts');
98
+ expect(result.violations).not.toContain('src/index.ts');
99
+ });
100
+ it('returns null for empty actualFiles', () => {
101
+ const result = detectPartitionViolations('task-1', ['src/auth/'], []);
102
+ expect(result).toBeNull();
103
+ });
104
+ });
105
+ //# sourceMappingURL=isolation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.test.js","sourceRoot":"","sources":["../../../src/cli/convoy/isolation.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { TaskRecord } from './types.js';
2
+ import type { ReviewStage, StageVerdict, TwoStageReviewResult } from './types.js';
3
+ import type { ReviewLevel, ReviewResult } from './engine.js';
4
+ export type ReviewRunnerFn = (task: TaskRecord, level: ReviewLevel, model: string) => Promise<ReviewResult>;
5
+ export declare function buildSpecCompliancePrompt(task: TaskRecord, diff?: string): string;
6
+ export declare function buildCodeQualityPrompt(task: TaskRecord, diff?: string): string;
7
+ export declare function parseStageVerdict(output: string, expectedStage: ReviewStage): StageVerdict;
8
+ export declare function runTwoStageReview(task: TaskRecord, reviewRunner: ReviewRunnerFn, reviewerModel: string): Promise<TwoStageReviewResult>;
9
+ //# sourceMappingURL=review-stages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-stages.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/review-stages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,YAAY,CAAC,CAAA;AAI1B,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBjF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB9E;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,GAAG,YAAY,CAwC1F;AAID,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,cAAc,EAC5B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAqC/B"}
@@ -0,0 +1,134 @@
1
+ // ── Stage prompt builders ─────────────────────────────────────────────────────
2
+ export function buildSpecCompliancePrompt(task, diff) {
3
+ const diffSection = diff ? `\n\n## Diff\n\`\`\`\n${diff}\n\`\`\`` : '';
4
+ const filesSection = task.files ? `\n\n## File Partition\n${task.files}` : '';
5
+ return `You are a spec-compliance reviewer. Your job is to verify the implementation matches the original specification.
6
+
7
+ ## Task Prompt
8
+ ${task.prompt}
9
+ ${filesSection}${diffSection}
10
+
11
+ ## Review Criteria (Stage 1 — Spec Compliance)
12
+
13
+ 1. Does the implementation match ALL acceptance criteria from the task prompt?
14
+ 2. Are all required deliverables present and complete?
15
+ 3. Do tests exist for all new functionality?
16
+ 4. Is the change confined to the assigned file partition (no out-of-scope files modified)?
17
+
18
+ Respond with a single HTML comment containing a JSON verdict. Do not include any other text after the verdict comment.
19
+
20
+ <!-- REVIEW_VERDICT { "stage": "spec-compliance", "verdict": "pass", "issues": [] } -->
21
+
22
+ Use "block" if ANY criterion fails, and list the specific issues. Example:
23
+
24
+ <!-- REVIEW_VERDICT { "stage": "spec-compliance", "verdict": "block", "issues": ["Missing tests for edge case X", "File src/other.ts is outside the partition"] } -->`;
25
+ }
26
+ export function buildCodeQualityPrompt(task, diff) {
27
+ const diffSection = diff ? `\n\n## Diff\n\`\`\`\n${diff}\n\`\`\`` : '';
28
+ return `You are a code-quality reviewer. The implementation has already passed spec compliance. Now review for code quality.
29
+
30
+ ## Task Prompt
31
+ ${task.prompt}
32
+ ${diffSection}
33
+
34
+ ## Review Criteria (Stage 2 — Code Quality)
35
+
36
+ 1. Is the code idiomatic for the project conventions (TypeScript-first, no \`as any\`, proper types)?
37
+ 2. Are there type safety issues (missing types, unsafe casts, untyped props)?
38
+ 3. Are there obvious bugs, race conditions, or error handling gaps?
39
+ 4. Are there DRY violations, dead code, or unnecessary complexity?
40
+
41
+ Respond with a single HTML comment containing a JSON verdict. Do not include any other text after the verdict comment.
42
+
43
+ <!-- REVIEW_VERDICT { "stage": "code-quality", "verdict": "pass", "issues": [] } -->
44
+
45
+ Use "block" if ANY criterion fails, and list the specific issues. Example:
46
+
47
+ <!-- REVIEW_VERDICT { "stage": "code-quality", "verdict": "block", "issues": ["Uses 'as any' cast on line 42", "Swallowed exception in catch block"] } -->`;
48
+ }
49
+ // ── Verdict parser ────────────────────────────────────────────────────────────
50
+ export function parseStageVerdict(output, expectedStage) {
51
+ const fallback = {
52
+ stage: expectedStage,
53
+ verdict: 'block',
54
+ issues: ['Failed to parse reviewer output'],
55
+ tokens_used: 0,
56
+ };
57
+ const match = output.match(/<!--\s*REVIEW_VERDICT\s*(\{[\s\S]*?\})\s*-->/);
58
+ if (!match)
59
+ return fallback;
60
+ let parsed;
61
+ try {
62
+ parsed = JSON.parse(match[1]);
63
+ }
64
+ catch {
65
+ return fallback;
66
+ }
67
+ if (typeof parsed !== 'object' ||
68
+ parsed === null ||
69
+ !('stage' in parsed) ||
70
+ !('verdict' in parsed) ||
71
+ !('issues' in parsed)) {
72
+ return fallback;
73
+ }
74
+ const p = parsed;
75
+ const verdict = p['verdict'] === 'pass' ? 'pass' : 'block';
76
+ const issues = Array.isArray(p['issues'])
77
+ ? p['issues'].filter((i) => typeof i === 'string')
78
+ : [];
79
+ return {
80
+ stage: expectedStage,
81
+ verdict,
82
+ issues,
83
+ tokens_used: 0,
84
+ };
85
+ }
86
+ // ── Two-stage runner ──────────────────────────────────────────────────────────
87
+ export async function runTwoStageReview(task, reviewRunner, reviewerModel) {
88
+ // Stage 1: spec compliance
89
+ const stage1Result = await reviewRunner(task, 'fast', reviewerModel);
90
+ // Use ReviewResult.verdict as authoritative gate; parseStageVerdict extracts issues only on successful parse
91
+ const stage1Parsed = parseStageVerdict(stage1Result.feedback, 'spec-compliance');
92
+ const stage1Issues = resolveIssues(stage1Parsed, stage1Result);
93
+ const stage1Verdict = {
94
+ stage: 'spec-compliance',
95
+ verdict: stage1Result.verdict,
96
+ issues: stage1Issues,
97
+ tokens_used: stage1Result.tokens,
98
+ };
99
+ if (stage1Verdict.verdict === 'block') {
100
+ return {
101
+ stages: [stage1Verdict],
102
+ overall_verdict: 'block',
103
+ total_tokens: stage1Verdict.tokens_used,
104
+ };
105
+ }
106
+ // Stage 2: code quality (only runs if stage 1 passes)
107
+ const stage2Result = await reviewRunner(task, 'fast', reviewerModel);
108
+ const stage2Parsed = parseStageVerdict(stage2Result.feedback, 'code-quality');
109
+ const stage2Issues = resolveIssues(stage2Parsed, stage2Result);
110
+ const stage2Verdict = {
111
+ stage: 'code-quality',
112
+ verdict: stage2Result.verdict,
113
+ issues: stage2Issues,
114
+ tokens_used: stage2Result.tokens,
115
+ };
116
+ return {
117
+ stages: [stage1Verdict, stage2Verdict],
118
+ overall_verdict: stage2Verdict.verdict,
119
+ total_tokens: stage1Verdict.tokens_used + stage2Verdict.tokens_used,
120
+ };
121
+ }
122
+ /**
123
+ * Resolve issues from stage verdict, falling back to raw feedback when
124
+ * structured parsing failed (e.g. legacy reviewers or test mocks).
125
+ */
126
+ function resolveIssues(parsed, raw) {
127
+ if (parsed.issues.length === 1 &&
128
+ parsed.issues[0] === 'Failed to parse reviewer output' &&
129
+ raw.feedback) {
130
+ return [raw.feedback];
131
+ }
132
+ return parsed.issues;
133
+ }
134
+ //# sourceMappingURL=review-stages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-stages.js","sourceRoot":"","sources":["../../../src/cli/convoy/review-stages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=review-stages.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-stages.test.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/review-stages.test.ts"],"names":[],"mappings":""}