@mcoda/core 0.1.9 → 0.1.12

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 (204) hide show
  1. package/README.md +2 -2
  2. package/dist/api/AgentsApi.d.ts +1 -0
  3. package/dist/api/AgentsApi.d.ts.map +1 -1
  4. package/dist/api/AgentsApi.js +136 -11
  5. package/dist/api/QaTasksApi.d.ts.map +1 -1
  6. package/dist/api/QaTasksApi.js +4 -0
  7. package/dist/prompts/PdrPrompts.d.ts.map +1 -1
  8. package/dist/prompts/PdrPrompts.js +6 -0
  9. package/dist/prompts/SdsPrompts.d.ts.map +1 -1
  10. package/dist/prompts/SdsPrompts.js +7 -0
  11. package/dist/services/agents/AgentRatingService.d.ts +19 -0
  12. package/dist/services/agents/AgentRatingService.d.ts.map +1 -1
  13. package/dist/services/agents/AgentRatingService.js +66 -2
  14. package/dist/services/agents/GatewayAgentService.d.ts +8 -0
  15. package/dist/services/agents/GatewayAgentService.d.ts.map +1 -1
  16. package/dist/services/agents/GatewayAgentService.js +462 -65
  17. package/dist/services/agents/GatewayHandoff.d.ts +5 -1
  18. package/dist/services/agents/GatewayHandoff.d.ts.map +1 -1
  19. package/dist/services/agents/GatewayHandoff.js +65 -32
  20. package/dist/services/agents/RoutingService.d.ts +1 -0
  21. package/dist/services/agents/RoutingService.d.ts.map +1 -1
  22. package/dist/services/agents/RoutingService.js +4 -4
  23. package/dist/services/backlog/BacklogService.d.ts +23 -0
  24. package/dist/services/backlog/BacklogService.d.ts.map +1 -1
  25. package/dist/services/backlog/BacklogService.js +62 -7
  26. package/dist/services/backlog/TaskOrderingHeuristics.d.ts +12 -0
  27. package/dist/services/backlog/TaskOrderingHeuristics.d.ts.map +1 -0
  28. package/dist/services/backlog/TaskOrderingHeuristics.js +56 -0
  29. package/dist/services/backlog/TaskOrderingService.d.ts +16 -4
  30. package/dist/services/backlog/TaskOrderingService.d.ts.map +1 -1
  31. package/dist/services/backlog/TaskOrderingService.js +529 -73
  32. package/dist/services/docs/DocInventory.d.ts +11 -0
  33. package/dist/services/docs/DocInventory.d.ts.map +1 -0
  34. package/dist/services/docs/DocInventory.js +230 -0
  35. package/dist/services/docs/DocgenRunContext.d.ts +59 -0
  36. package/dist/services/docs/DocgenRunContext.d.ts.map +1 -0
  37. package/dist/services/docs/DocgenRunContext.js +4 -0
  38. package/dist/services/docs/DocsService.d.ts +59 -2
  39. package/dist/services/docs/DocsService.d.ts.map +1 -1
  40. package/dist/services/docs/DocsService.js +1701 -48
  41. package/dist/services/docs/alignment/DocAlignmentGraph.d.ts +23 -0
  42. package/dist/services/docs/alignment/DocAlignmentGraph.d.ts.map +1 -0
  43. package/dist/services/docs/alignment/DocAlignmentGraph.js +78 -0
  44. package/dist/services/docs/alignment/DocAlignmentPatcher.d.ts +19 -0
  45. package/dist/services/docs/alignment/DocAlignmentPatcher.d.ts.map +1 -0
  46. package/dist/services/docs/alignment/DocAlignmentPatcher.js +222 -0
  47. package/dist/services/docs/patch/DocPatchEngine.d.ts +57 -0
  48. package/dist/services/docs/patch/DocPatchEngine.d.ts.map +1 -0
  49. package/dist/services/docs/patch/DocPatchEngine.js +331 -0
  50. package/dist/services/docs/review/Glossary.d.ts +16 -0
  51. package/dist/services/docs/review/Glossary.d.ts.map +1 -0
  52. package/dist/services/docs/review/Glossary.js +47 -0
  53. package/dist/services/docs/review/ReviewReportRenderer.d.ts +3 -0
  54. package/dist/services/docs/review/ReviewReportRenderer.d.ts.map +1 -0
  55. package/dist/services/docs/review/ReviewReportRenderer.js +133 -0
  56. package/dist/services/docs/review/ReviewReportSchema.d.ts +39 -0
  57. package/dist/services/docs/review/ReviewReportSchema.d.ts.map +1 -0
  58. package/dist/services/docs/review/ReviewReportSchema.js +47 -0
  59. package/dist/services/docs/review/ReviewTypes.d.ts +76 -0
  60. package/dist/services/docs/review/ReviewTypes.d.ts.map +1 -0
  61. package/dist/services/docs/review/ReviewTypes.js +94 -0
  62. package/dist/services/docs/review/gates/AdminOpenApiSpecGate.d.ts +7 -0
  63. package/dist/services/docs/review/gates/AdminOpenApiSpecGate.d.ts.map +1 -0
  64. package/dist/services/docs/review/gates/AdminOpenApiSpecGate.js +93 -0
  65. package/dist/services/docs/review/gates/ApiPathConsistencyGate.d.ts +7 -0
  66. package/dist/services/docs/review/gates/ApiPathConsistencyGate.d.ts.map +1 -0
  67. package/dist/services/docs/review/gates/ApiPathConsistencyGate.js +308 -0
  68. package/dist/services/docs/review/gates/BuildReadyCompletenessGate.d.ts +8 -0
  69. package/dist/services/docs/review/gates/BuildReadyCompletenessGate.d.ts.map +1 -0
  70. package/dist/services/docs/review/gates/BuildReadyCompletenessGate.js +278 -0
  71. package/dist/services/docs/review/gates/DeploymentBlueprintGate.d.ts +8 -0
  72. package/dist/services/docs/review/gates/DeploymentBlueprintGate.d.ts.map +1 -0
  73. package/dist/services/docs/review/gates/DeploymentBlueprintGate.js +487 -0
  74. package/dist/services/docs/review/gates/NoMaybesGate.d.ts +8 -0
  75. package/dist/services/docs/review/gates/NoMaybesGate.d.ts.map +1 -0
  76. package/dist/services/docs/review/gates/NoMaybesGate.js +145 -0
  77. package/dist/services/docs/review/gates/OpenApiCoverageGate.d.ts +7 -0
  78. package/dist/services/docs/review/gates/OpenApiCoverageGate.d.ts.map +1 -0
  79. package/dist/services/docs/review/gates/OpenApiCoverageGate.js +266 -0
  80. package/dist/services/docs/review/gates/OpenApiSchemaSanityGate.d.ts +7 -0
  81. package/dist/services/docs/review/gates/OpenApiSchemaSanityGate.d.ts.map +1 -0
  82. package/dist/services/docs/review/gates/OpenApiSchemaSanityGate.js +59 -0
  83. package/dist/services/docs/review/gates/OpenQuestionsGate.d.ts +7 -0
  84. package/dist/services/docs/review/gates/OpenQuestionsGate.d.ts.map +1 -0
  85. package/dist/services/docs/review/gates/OpenQuestionsGate.js +200 -0
  86. package/dist/services/docs/review/gates/PdrInterfacesGate.d.ts +7 -0
  87. package/dist/services/docs/review/gates/PdrInterfacesGate.d.ts.map +1 -0
  88. package/dist/services/docs/review/gates/PdrInterfacesGate.js +159 -0
  89. package/dist/services/docs/review/gates/PdrOpenQuestionsGate.d.ts +8 -0
  90. package/dist/services/docs/review/gates/PdrOpenQuestionsGate.d.ts.map +1 -0
  91. package/dist/services/docs/review/gates/PdrOpenQuestionsGate.js +129 -0
  92. package/dist/services/docs/review/gates/PdrOwnershipGate.d.ts +7 -0
  93. package/dist/services/docs/review/gates/PdrOwnershipGate.d.ts.map +1 -0
  94. package/dist/services/docs/review/gates/PdrOwnershipGate.js +169 -0
  95. package/dist/services/docs/review/gates/PlaceholderArtifactGate.d.ts +10 -0
  96. package/dist/services/docs/review/gates/PlaceholderArtifactGate.d.ts.map +1 -0
  97. package/dist/services/docs/review/gates/PlaceholderArtifactGate.js +261 -0
  98. package/dist/services/docs/review/gates/RfpConsentGate.d.ts +6 -0
  99. package/dist/services/docs/review/gates/RfpConsentGate.d.ts.map +1 -0
  100. package/dist/services/docs/review/gates/RfpConsentGate.js +127 -0
  101. package/dist/services/docs/review/gates/RfpDefinitionGate.d.ts +7 -0
  102. package/dist/services/docs/review/gates/RfpDefinitionGate.d.ts.map +1 -0
  103. package/dist/services/docs/review/gates/RfpDefinitionGate.js +173 -0
  104. package/dist/services/docs/review/gates/SdsAdaptersGate.d.ts +7 -0
  105. package/dist/services/docs/review/gates/SdsAdaptersGate.d.ts.map +1 -0
  106. package/dist/services/docs/review/gates/SdsAdaptersGate.js +196 -0
  107. package/dist/services/docs/review/gates/SdsDecisionsGate.d.ts +7 -0
  108. package/dist/services/docs/review/gates/SdsDecisionsGate.d.ts.map +1 -0
  109. package/dist/services/docs/review/gates/SdsDecisionsGate.js +89 -0
  110. package/dist/services/docs/review/gates/SdsOpsGate.d.ts +7 -0
  111. package/dist/services/docs/review/gates/SdsOpsGate.d.ts.map +1 -0
  112. package/dist/services/docs/review/gates/SdsOpsGate.js +162 -0
  113. package/dist/services/docs/review/gates/SdsPolicyTelemetryGate.d.ts +7 -0
  114. package/dist/services/docs/review/gates/SdsPolicyTelemetryGate.d.ts.map +1 -0
  115. package/dist/services/docs/review/gates/SdsPolicyTelemetryGate.js +166 -0
  116. package/dist/services/docs/review/gates/SqlRequiredTablesGate.d.ts +7 -0
  117. package/dist/services/docs/review/gates/SqlRequiredTablesGate.d.ts.map +1 -0
  118. package/dist/services/docs/review/gates/SqlRequiredTablesGate.js +273 -0
  119. package/dist/services/docs/review/gates/SqlSyntaxGate.d.ts +7 -0
  120. package/dist/services/docs/review/gates/SqlSyntaxGate.d.ts.map +1 -0
  121. package/dist/services/docs/review/gates/SqlSyntaxGate.js +203 -0
  122. package/dist/services/docs/review/gates/TerminologyNormalizationGate.d.ts +9 -0
  123. package/dist/services/docs/review/gates/TerminologyNormalizationGate.d.ts.map +1 -0
  124. package/dist/services/docs/review/gates/TerminologyNormalizationGate.js +217 -0
  125. package/dist/services/docs/review/glossary.json +47 -0
  126. package/dist/services/estimate/EstimateService.d.ts +2 -0
  127. package/dist/services/estimate/EstimateService.d.ts.map +1 -1
  128. package/dist/services/estimate/EstimateService.js +66 -18
  129. package/dist/services/estimate/VelocityService.d.ts +4 -0
  130. package/dist/services/estimate/VelocityService.d.ts.map +1 -1
  131. package/dist/services/estimate/VelocityService.js +179 -36
  132. package/dist/services/estimate/types.d.ts +1 -0
  133. package/dist/services/estimate/types.d.ts.map +1 -1
  134. package/dist/services/execution/GatewayTrioService.d.ts +71 -4
  135. package/dist/services/execution/GatewayTrioService.d.ts.map +1 -1
  136. package/dist/services/execution/GatewayTrioService.js +1695 -328
  137. package/dist/services/execution/QaApiRunner.d.ts +30 -0
  138. package/dist/services/execution/QaApiRunner.d.ts.map +1 -0
  139. package/dist/services/execution/QaApiRunner.js +881 -0
  140. package/dist/services/execution/QaFollowupService.d.ts +1 -0
  141. package/dist/services/execution/QaFollowupService.d.ts.map +1 -1
  142. package/dist/services/execution/QaFollowupService.js +8 -2
  143. package/dist/services/execution/QaPlanValidator.d.ts +10 -0
  144. package/dist/services/execution/QaPlanValidator.d.ts.map +1 -0
  145. package/dist/services/execution/QaPlanValidator.js +128 -0
  146. package/dist/services/execution/QaProfileService.d.ts +21 -1
  147. package/dist/services/execution/QaProfileService.d.ts.map +1 -1
  148. package/dist/services/execution/QaProfileService.js +214 -29
  149. package/dist/services/execution/QaTasksService.d.ts +41 -1
  150. package/dist/services/execution/QaTasksService.d.ts.map +1 -1
  151. package/dist/services/execution/QaTasksService.js +2851 -500
  152. package/dist/services/execution/QaTestCommandBuilder.d.ts +51 -0
  153. package/dist/services/execution/QaTestCommandBuilder.d.ts.map +1 -0
  154. package/dist/services/execution/QaTestCommandBuilder.js +495 -0
  155. package/dist/services/execution/TaskSelectionService.d.ts +4 -2
  156. package/dist/services/execution/TaskSelectionService.d.ts.map +1 -1
  157. package/dist/services/execution/TaskSelectionService.js +144 -28
  158. package/dist/services/execution/TaskStateService.d.ts +19 -6
  159. package/dist/services/execution/TaskStateService.d.ts.map +1 -1
  160. package/dist/services/execution/TaskStateService.js +128 -13
  161. package/dist/services/execution/WorkOnTasksService.d.ts +19 -2
  162. package/dist/services/execution/WorkOnTasksService.d.ts.map +1 -1
  163. package/dist/services/execution/WorkOnTasksService.js +3913 -1225
  164. package/dist/services/jobs/JobInsightsService.d.ts +4 -0
  165. package/dist/services/jobs/JobInsightsService.d.ts.map +1 -1
  166. package/dist/services/jobs/JobInsightsService.js +51 -5
  167. package/dist/services/jobs/JobResumeService.d.ts.map +1 -1
  168. package/dist/services/jobs/JobResumeService.js +23 -10
  169. package/dist/services/jobs/JobService.d.ts +56 -4
  170. package/dist/services/jobs/JobService.d.ts.map +1 -1
  171. package/dist/services/jobs/JobService.js +232 -1
  172. package/dist/services/openapi/OpenApiService.d.ts +41 -0
  173. package/dist/services/openapi/OpenApiService.d.ts.map +1 -1
  174. package/dist/services/openapi/OpenApiService.js +889 -98
  175. package/dist/services/planning/CreateTasksService.d.ts +15 -0
  176. package/dist/services/planning/CreateTasksService.d.ts.map +1 -1
  177. package/dist/services/planning/CreateTasksService.js +311 -6
  178. package/dist/services/planning/RefineTasksService.d.ts +4 -0
  179. package/dist/services/planning/RefineTasksService.d.ts.map +1 -1
  180. package/dist/services/planning/RefineTasksService.js +225 -24
  181. package/dist/services/review/CodeReviewService.d.ts +4 -0
  182. package/dist/services/review/CodeReviewService.d.ts.map +1 -1
  183. package/dist/services/review/CodeReviewService.js +778 -232
  184. package/dist/services/review/ReviewNormalizer.d.ts +9 -0
  185. package/dist/services/review/ReviewNormalizer.d.ts.map +1 -0
  186. package/dist/services/review/ReviewNormalizer.js +147 -0
  187. package/dist/services/shared/AuthErrors.d.ts +3 -0
  188. package/dist/services/shared/AuthErrors.d.ts.map +1 -0
  189. package/dist/services/shared/AuthErrors.js +17 -0
  190. package/dist/services/shared/DocdexGuidance.d.ts +7 -0
  191. package/dist/services/shared/DocdexGuidance.d.ts.map +1 -0
  192. package/dist/services/shared/DocdexGuidance.js +12 -0
  193. package/dist/services/shared/ProjectGuidance.d.ts +12 -1
  194. package/dist/services/shared/ProjectGuidance.d.ts.map +1 -1
  195. package/dist/services/shared/ProjectGuidance.js +64 -7
  196. package/dist/services/system/ToolDenylist.d.ts +13 -0
  197. package/dist/services/system/ToolDenylist.d.ts.map +1 -0
  198. package/dist/services/system/ToolDenylist.js +85 -0
  199. package/dist/services/telemetry/TelemetryService.d.ts.map +1 -1
  200. package/dist/services/telemetry/TelemetryService.js +39 -7
  201. package/dist/workspace/WorkspaceManager.d.ts +22 -0
  202. package/dist/workspace/WorkspaceManager.d.ts.map +1 -1
  203. package/dist/workspace/WorkspaceManager.js +203 -32
  204. package/package.json +6 -5
@@ -0,0 +1,11 @@
1
+ import { WorkspaceResolution } from "../../workspace/WorkspaceManager.js";
2
+ import { DocgenArtifactInventory } from "./DocgenRunContext.js";
3
+ export type BuildDocInventoryInput = {
4
+ workspace: WorkspaceResolution;
5
+ preferred?: {
6
+ pdrPath?: string;
7
+ sdsPath?: string;
8
+ };
9
+ };
10
+ export declare const buildDocInventory: (input: BuildDocInventoryInput) => Promise<DocgenArtifactInventory>;
11
+ //# sourceMappingURL=DocInventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocInventory.d.ts","sourceRoot":"","sources":["../../../src/services/docs/DocInventory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAIL,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD,CAAC;AA8LF,eAAO,MAAM,iBAAiB,GAAU,OAAO,sBAAsB,KAAG,OAAO,CAAC,uBAAuB,CAwDtG,CAAC"}
@@ -0,0 +1,230 @@
1
+ import path from "node:path";
2
+ import { promises as fs } from "node:fs";
3
+ const META_SUFFIX = ".meta.json";
4
+ const DRAFT_SUFFIX = "-first-draft.md";
5
+ const MARKDOWN_EXTENSIONS = new Set([".md", ".markdown"]);
6
+ const YAML_EXTENSIONS = new Set([".yaml", ".yml"]);
7
+ const JSON_EXTENSIONS = new Set([".json"]);
8
+ const SQL_EXTENSIONS = new Set([".sql"]);
9
+ const ENV_EXTENSIONS = new Set([".env"]);
10
+ const SKIPPED_DIRS = new Set([
11
+ ".git",
12
+ "node_modules",
13
+ "dist",
14
+ "build",
15
+ ".next",
16
+ ".cache",
17
+ "coverage",
18
+ ]);
19
+ const shouldIgnoreFile = (filePath) => {
20
+ const baseName = path.basename(filePath);
21
+ if (baseName.endsWith(META_SUFFIX))
22
+ return true;
23
+ if (baseName.endsWith(DRAFT_SUFFIX))
24
+ return true;
25
+ return false;
26
+ };
27
+ const normalizePath = (filePath) => path.resolve(filePath);
28
+ const isMarkdown = (filePath) => MARKDOWN_EXTENSIONS.has(path.extname(filePath).toLowerCase());
29
+ const isYamlOrJson = (filePath) => {
30
+ const ext = path.extname(filePath).toLowerCase();
31
+ return YAML_EXTENSIONS.has(ext) || JSON_EXTENSIONS.has(ext);
32
+ };
33
+ const isSql = (filePath) => SQL_EXTENSIONS.has(path.extname(filePath).toLowerCase());
34
+ const isEnvExample = (filePath) => path.basename(filePath).toLowerCase() === ".env.example" ||
35
+ (ENV_EXTENSIONS.has(path.extname(filePath).toLowerCase()) && filePath.toLowerCase().endsWith(".env.example"));
36
+ const matchesSegment = (filePath, segment) => {
37
+ const normalized = filePath.replace(/\\/g, "/").toLowerCase();
38
+ return normalized.includes(`/${segment}/`);
39
+ };
40
+ const isPdrPath = (filePath) => {
41
+ if (!isMarkdown(filePath))
42
+ return false;
43
+ return /(^|[\\/._-])pdr([\\/._-]|$)/i.test(filePath);
44
+ };
45
+ const isSdsPath = (filePath) => {
46
+ if (!isMarkdown(filePath))
47
+ return false;
48
+ return /(^|[\\/._-])sds([\\/._-]|$)/i.test(filePath);
49
+ };
50
+ const isOpenApiPath = (filePath) => {
51
+ if (!isYamlOrJson(filePath))
52
+ return false;
53
+ return /openapi/i.test(filePath) || matchesSegment(filePath, "openapi");
54
+ };
55
+ const getOpenApiVariant = (filePath) => {
56
+ const lower = filePath.toLowerCase();
57
+ if (/(^|[\\/._-])admin([\\/._-]|$)/.test(lower))
58
+ return "admin";
59
+ return "primary";
60
+ };
61
+ const isDeploymentPath = (filePath) => {
62
+ const lower = filePath.toLowerCase();
63
+ if (lower.includes("docker-compose"))
64
+ return true;
65
+ if (lower.endsWith("kustomization.yaml") || lower.endsWith("kustomization.yml"))
66
+ return true;
67
+ if (matchesSegment(filePath, "deploy") || matchesSegment(filePath, "deployment"))
68
+ return true;
69
+ if (matchesSegment(filePath, "infra") || matchesSegment(filePath, "k8s"))
70
+ return true;
71
+ if (isEnvExample(filePath))
72
+ return true;
73
+ return false;
74
+ };
75
+ const collectFilesRecursively = async (target) => {
76
+ const stat = await fs.stat(target);
77
+ if (!stat.isDirectory())
78
+ return [target];
79
+ const entries = await fs.readdir(target, { withFileTypes: true });
80
+ const sorted = entries.slice().sort((a, b) => a.name.localeCompare(b.name));
81
+ const results = [];
82
+ for (const entry of sorted) {
83
+ const entryPath = path.join(target, entry.name);
84
+ if (entry.isDirectory()) {
85
+ if (SKIPPED_DIRS.has(entry.name))
86
+ continue;
87
+ results.push(...(await collectFilesRecursively(entryPath)));
88
+ }
89
+ else {
90
+ results.push(entryPath);
91
+ }
92
+ }
93
+ return results;
94
+ };
95
+ const readMetaIfExists = async (filePath) => {
96
+ const metaPath = `${filePath}${META_SUFFIX}`;
97
+ try {
98
+ const raw = await fs.readFile(metaPath, "utf8");
99
+ const parsed = JSON.parse(raw);
100
+ return {
101
+ docdexId: typeof parsed.docdexId === "string" ? parsed.docdexId : undefined,
102
+ segments: Array.isArray(parsed.segments)
103
+ ? parsed.segments.filter((item) => typeof item === "string")
104
+ : undefined,
105
+ projectKey: typeof parsed.projectKey === "string" ? parsed.projectKey : undefined,
106
+ };
107
+ }
108
+ catch {
109
+ return {};
110
+ }
111
+ };
112
+ const buildRecord = async (kind, filePath, variant) => {
113
+ const stat = await fs.stat(filePath);
114
+ const meta = await readMetaIfExists(filePath);
115
+ return {
116
+ kind,
117
+ path: filePath,
118
+ variant,
119
+ meta: {
120
+ sizeBytes: stat.size,
121
+ modifiedAt: stat.mtime.toISOString(),
122
+ docdexId: meta.docdexId,
123
+ segments: meta.segments,
124
+ projectKey: meta.projectKey,
125
+ },
126
+ };
127
+ };
128
+ const sortByPath = (items) => items.slice().sort((a, b) => a.path.localeCompare(b.path));
129
+ const pickPreferred = (items, preferredPath) => {
130
+ if (preferredPath) {
131
+ const normalizedPreferred = normalizePath(preferredPath);
132
+ const match = items.find((item) => normalizePath(item.path) === normalizedPreferred);
133
+ if (match)
134
+ return match;
135
+ }
136
+ const sorted = sortByPath(items);
137
+ return sorted[0];
138
+ };
139
+ const pickSql = (items) => {
140
+ if (items.length === 0)
141
+ return undefined;
142
+ const schema = items.find((item) => path.basename(item.path).toLowerCase() === "schema.sql");
143
+ return schema ?? sortByPath(items)[0];
144
+ };
145
+ const resolveCandidates = async (workspace) => {
146
+ const workspaceRoot = workspace.workspaceRoot;
147
+ const candidates = [
148
+ path.join(workspace.mcodaDir, "docs"),
149
+ path.join(workspaceRoot, "docs"),
150
+ path.join(workspaceRoot, "openapi"),
151
+ path.join(workspaceRoot, "openapi.yaml"),
152
+ path.join(workspaceRoot, "openapi.yml"),
153
+ path.join(workspaceRoot, "openapi.json"),
154
+ path.join(workspaceRoot, "sql"),
155
+ path.join(workspaceRoot, "db"),
156
+ path.join(workspaceRoot, "schema.sql"),
157
+ path.join(workspaceRoot, "deploy"),
158
+ path.join(workspaceRoot, "deployment"),
159
+ path.join(workspaceRoot, "infra"),
160
+ path.join(workspaceRoot, "k8s"),
161
+ path.join(workspaceRoot, "docker-compose.yml"),
162
+ path.join(workspaceRoot, "docker-compose.yaml"),
163
+ path.join(workspaceRoot, ".env.example"),
164
+ ];
165
+ const existing = [];
166
+ for (const candidate of candidates) {
167
+ try {
168
+ const stat = await fs.stat(candidate);
169
+ if (stat.isFile() || stat.isDirectory()) {
170
+ existing.push(candidate);
171
+ }
172
+ }
173
+ catch {
174
+ // skip missing candidates
175
+ }
176
+ }
177
+ return existing;
178
+ };
179
+ export const buildDocInventory = async (input) => {
180
+ const candidates = await resolveCandidates(input.workspace);
181
+ const files = [];
182
+ for (const candidate of candidates) {
183
+ const collected = await collectFilesRecursively(candidate);
184
+ files.push(...collected);
185
+ }
186
+ const uniqueFiles = Array.from(new Set(files))
187
+ .filter((filePath) => !shouldIgnoreFile(filePath))
188
+ .filter((filePath) => {
189
+ const ext = path.extname(filePath).toLowerCase();
190
+ return (MARKDOWN_EXTENSIONS.has(ext) ||
191
+ YAML_EXTENSIONS.has(ext) ||
192
+ JSON_EXTENSIONS.has(ext) ||
193
+ SQL_EXTENSIONS.has(ext) ||
194
+ isEnvExample(filePath));
195
+ })
196
+ .sort((a, b) => a.localeCompare(b));
197
+ const pdrRecords = [];
198
+ const sdsRecords = [];
199
+ const openapiRecords = [];
200
+ const sqlRecords = [];
201
+ const blueprintRecords = [];
202
+ for (const filePath of uniqueFiles) {
203
+ if (isPdrPath(filePath)) {
204
+ pdrRecords.push(await buildRecord("pdr", filePath));
205
+ continue;
206
+ }
207
+ if (isSdsPath(filePath)) {
208
+ sdsRecords.push(await buildRecord("sds", filePath));
209
+ continue;
210
+ }
211
+ if (isOpenApiPath(filePath)) {
212
+ openapiRecords.push(await buildRecord("openapi", filePath, getOpenApiVariant(filePath)));
213
+ continue;
214
+ }
215
+ if (isSql(filePath)) {
216
+ sqlRecords.push(await buildRecord("sql", filePath));
217
+ continue;
218
+ }
219
+ if (isDeploymentPath(filePath)) {
220
+ blueprintRecords.push(await buildRecord("deployment", filePath));
221
+ }
222
+ }
223
+ return {
224
+ pdr: pickPreferred(pdrRecords, input.preferred?.pdrPath),
225
+ sds: pickPreferred(sdsRecords, input.preferred?.sdsPath),
226
+ openapi: sortByPath(openapiRecords),
227
+ sql: pickSql(sqlRecords),
228
+ blueprints: sortByPath(blueprintRecords),
229
+ };
230
+ };
@@ -0,0 +1,59 @@
1
+ import { WorkspaceResolution } from "../../workspace/WorkspaceManager.js";
2
+ export type DocgenCommandName = "docs-pdr-generate" | "docs-sds-generate";
3
+ export type DocArtifactKind = "pdr" | "sds" | "openapi" | "sql" | "deployment";
4
+ export type DocArtifactVariant = "primary" | "admin" | "unknown";
5
+ export interface DocArtifactMeta {
6
+ sizeBytes?: number;
7
+ modifiedAt?: string;
8
+ docdexId?: string;
9
+ segments?: string[];
10
+ projectKey?: string;
11
+ }
12
+ export interface DocArtifactRecord {
13
+ kind: DocArtifactKind;
14
+ path: string;
15
+ variant?: DocArtifactVariant;
16
+ meta: DocArtifactMeta;
17
+ }
18
+ export interface DocgenArtifactInventory {
19
+ pdr?: DocArtifactRecord;
20
+ sds?: DocArtifactRecord;
21
+ openapi: DocArtifactRecord[];
22
+ sql?: DocArtifactRecord;
23
+ blueprints: DocArtifactRecord[];
24
+ }
25
+ export interface DocgenIterationState {
26
+ current: number;
27
+ max: number;
28
+ }
29
+ export interface DocgenRunContext {
30
+ version: 1;
31
+ commandName: DocgenCommandName;
32
+ commandRunId: string;
33
+ jobId: string;
34
+ workspace: WorkspaceResolution;
35
+ projectKey?: string;
36
+ rfpId?: string;
37
+ rfpPath?: string;
38
+ templateName?: string;
39
+ outputPath: string;
40
+ createdAt: string;
41
+ flags: {
42
+ dryRun: boolean;
43
+ fast: boolean;
44
+ iterate: boolean;
45
+ json: boolean;
46
+ stream: boolean;
47
+ buildReady: boolean;
48
+ noPlaceholders: boolean;
49
+ resolveOpenQuestions: boolean;
50
+ noMaybes: boolean;
51
+ crossAlign: boolean;
52
+ };
53
+ iteration: DocgenIterationState;
54
+ artifacts: DocgenArtifactInventory;
55
+ stateWarnings?: string[];
56
+ warnings: string[];
57
+ }
58
+ export declare const createEmptyArtifacts: () => DocgenArtifactInventory;
59
+ //# sourceMappingURL=DocgenRunContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocgenRunContext.d.ts","sourceRoot":"","sources":["../../../src/services/docs/DocgenRunContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;AAE/E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,iBAAiB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,OAAO,CAAC;QACxB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,SAAS,EAAE,oBAAoB,CAAC;IAChC,SAAS,EAAE,uBAAuB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,oBAAoB,QAAO,uBAGtC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const createEmptyArtifacts = () => ({
2
+ openapi: [],
3
+ blueprints: [],
4
+ });
@@ -15,6 +15,12 @@ export interface GeneratePdrOptions {
15
15
  agentStream?: boolean;
16
16
  rateAgents?: boolean;
17
17
  fast?: boolean;
18
+ iterate?: boolean;
19
+ buildReady?: boolean;
20
+ noPlaceholders?: boolean;
21
+ resolveOpenQuestions?: boolean;
22
+ noMaybes?: boolean;
23
+ crossAlign?: boolean;
18
24
  dryRun?: boolean;
19
25
  json?: boolean;
20
26
  onToken?: (token: string) => void;
@@ -37,6 +43,12 @@ export interface GenerateSdsOptions {
37
43
  agentStream?: boolean;
38
44
  rateAgents?: boolean;
39
45
  fast?: boolean;
46
+ iterate?: boolean;
47
+ buildReady?: boolean;
48
+ noPlaceholders?: boolean;
49
+ resolveOpenQuestions?: boolean;
50
+ noMaybes?: boolean;
51
+ crossAlign?: boolean;
40
52
  dryRun?: boolean;
41
53
  json?: boolean;
42
54
  force?: boolean;
@@ -77,12 +89,57 @@ export declare class DocsService {
77
89
  private defaultPdrOutputPath;
78
90
  private defaultSdsOutputPath;
79
91
  private loadSdsTemplate;
80
- private resolveAgent;
92
+ private buildDocgenCapabilityProfile;
93
+ private collectDocgenCandidates;
94
+ private selectDocgenAgent;
81
95
  private ensureRatingService;
96
+ private createRunContext;
97
+ private recordDocgenStage;
98
+ private enforceToolDenylist;
99
+ private applyDocPatches;
100
+ private resolveMaxIterations;
101
+ private isIterationEnabled;
102
+ private shouldBlockGate;
103
+ private appendUniqueWarnings;
104
+ private summarizeIssues;
105
+ private appendGateWarnings;
106
+ private runReviewGates;
107
+ private buildPatchPlanFromIssues;
108
+ private resolveQuestionDecision;
109
+ private sanitizeIndecisiveLine;
110
+ private formatResolvedDecisions;
111
+ private resolveOpenQuestions;
112
+ private reviewReportDir;
113
+ private reviewReportPaths;
114
+ private buildReviewReport;
115
+ private persistReviewReport;
116
+ private runIterationLoop;
117
+ private enforcePlaceholderArtifacts;
118
+ private enforceApiPathConsistency;
119
+ private enforceOpenApiSchemaSanity;
120
+ private enforceOpenApiCoverage;
121
+ private enforceSqlSyntax;
122
+ private enforceSqlRequiredTables;
123
+ private generateDeploymentBlueprint;
124
+ private enforceAdminOpenApiSpec;
125
+ private enforceTerminologyNormalization;
126
+ private enforceOpenQuestions;
127
+ private enforceNoMaybes;
128
+ private enforceRfpConsent;
129
+ private enforceRfpDefinitionCoverage;
130
+ private enforcePdrInterfaces;
131
+ private enforcePdrOwnership;
132
+ private enforcePdrOpenQuestionsQuality;
133
+ private enforceSdsExplicitDecisions;
134
+ private enforceSdsPolicyTelemetry;
135
+ private enforceSdsOpsObservabilityTesting;
136
+ private enforceSdsExternalAdapters;
137
+ private enforceDeploymentBlueprint;
138
+ private enforceBuildReadyCompleteness;
82
139
  private writePdrFile;
83
140
  private registerPdr;
84
141
  private writeSdsFile;
85
- private assertSdsDocdexProfile;
142
+ private checkSdsDocdexProfile;
86
143
  private registerSds;
87
144
  private invokeAgent;
88
145
  generatePdr(options: GeneratePdrOptions): Promise<GeneratePdrResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"DocsService.d.ts","sourceRoot":"","sources":["../../../src/services/docs/DocsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocsService.d.ts","sourceRoot":"","sources":["../../../src/services/docs/DocsService.ts"],"names":[],"mappings":"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"}