@mcoda/core 0.1.4

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 (142) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +9 -0
  4. package/dist/api/AgentsApi.d.ts +36 -0
  5. package/dist/api/AgentsApi.d.ts.map +1 -0
  6. package/dist/api/AgentsApi.js +176 -0
  7. package/dist/api/QaTasksApi.d.ts +8 -0
  8. package/dist/api/QaTasksApi.d.ts.map +1 -0
  9. package/dist/api/QaTasksApi.js +36 -0
  10. package/dist/api/TasksApi.d.ts +7 -0
  11. package/dist/api/TasksApi.d.ts.map +1 -0
  12. package/dist/api/TasksApi.js +34 -0
  13. package/dist/config/ConfigService.d.ts +3 -0
  14. package/dist/config/ConfigService.d.ts.map +1 -0
  15. package/dist/config/ConfigService.js +2 -0
  16. package/dist/domain/dependencies/Dependency.d.ts +3 -0
  17. package/dist/domain/dependencies/Dependency.d.ts.map +1 -0
  18. package/dist/domain/dependencies/Dependency.js +2 -0
  19. package/dist/domain/epics/Epic.d.ts +3 -0
  20. package/dist/domain/epics/Epic.d.ts.map +1 -0
  21. package/dist/domain/epics/Epic.js +2 -0
  22. package/dist/domain/projects/Project.d.ts +3 -0
  23. package/dist/domain/projects/Project.d.ts.map +1 -0
  24. package/dist/domain/projects/Project.js +2 -0
  25. package/dist/domain/tasks/Task.d.ts +3 -0
  26. package/dist/domain/tasks/Task.d.ts.map +1 -0
  27. package/dist/domain/tasks/Task.js +2 -0
  28. package/dist/domain/userStories/UserStory.d.ts +3 -0
  29. package/dist/domain/userStories/UserStory.d.ts.map +1 -0
  30. package/dist/domain/userStories/UserStory.js +2 -0
  31. package/dist/index.d.ts +28 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +27 -0
  34. package/dist/prompts/PdrPrompts.d.ts +4 -0
  35. package/dist/prompts/PdrPrompts.d.ts.map +1 -0
  36. package/dist/prompts/PdrPrompts.js +21 -0
  37. package/dist/prompts/PromptLoader.d.ts +3 -0
  38. package/dist/prompts/PromptLoader.d.ts.map +1 -0
  39. package/dist/prompts/PromptLoader.js +2 -0
  40. package/dist/prompts/SdsPrompts.d.ts +5 -0
  41. package/dist/prompts/SdsPrompts.d.ts.map +1 -0
  42. package/dist/prompts/SdsPrompts.js +44 -0
  43. package/dist/services/agents/AgentManagementService.d.ts +3 -0
  44. package/dist/services/agents/AgentManagementService.d.ts.map +1 -0
  45. package/dist/services/agents/AgentManagementService.js +2 -0
  46. package/dist/services/agents/GatewayAgentService.d.ts +92 -0
  47. package/dist/services/agents/GatewayAgentService.d.ts.map +1 -0
  48. package/dist/services/agents/GatewayAgentService.js +870 -0
  49. package/dist/services/agents/RoutingApiClient.d.ts +23 -0
  50. package/dist/services/agents/RoutingApiClient.d.ts.map +1 -0
  51. package/dist/services/agents/RoutingApiClient.js +62 -0
  52. package/dist/services/agents/RoutingService.d.ts +50 -0
  53. package/dist/services/agents/RoutingService.d.ts.map +1 -0
  54. package/dist/services/agents/RoutingService.js +386 -0
  55. package/dist/services/agents/generated/RoutingApiClient.d.ts +21 -0
  56. package/dist/services/agents/generated/RoutingApiClient.d.ts.map +1 -0
  57. package/dist/services/agents/generated/RoutingApiClient.js +68 -0
  58. package/dist/services/backlog/BacklogService.d.ts +98 -0
  59. package/dist/services/backlog/BacklogService.d.ts.map +1 -0
  60. package/dist/services/backlog/BacklogService.js +453 -0
  61. package/dist/services/backlog/TaskOrderingService.d.ts +88 -0
  62. package/dist/services/backlog/TaskOrderingService.d.ts.map +1 -0
  63. package/dist/services/backlog/TaskOrderingService.js +675 -0
  64. package/dist/services/docs/DocsService.d.ts +82 -0
  65. package/dist/services/docs/DocsService.d.ts.map +1 -0
  66. package/dist/services/docs/DocsService.js +1631 -0
  67. package/dist/services/estimate/EstimateService.d.ts +12 -0
  68. package/dist/services/estimate/EstimateService.d.ts.map +1 -0
  69. package/dist/services/estimate/EstimateService.js +103 -0
  70. package/dist/services/estimate/VelocityService.d.ts +19 -0
  71. package/dist/services/estimate/VelocityService.d.ts.map +1 -0
  72. package/dist/services/estimate/VelocityService.js +237 -0
  73. package/dist/services/estimate/types.d.ts +30 -0
  74. package/dist/services/estimate/types.d.ts.map +1 -0
  75. package/dist/services/estimate/types.js +1 -0
  76. package/dist/services/execution/ExecutionService.d.ts +3 -0
  77. package/dist/services/execution/ExecutionService.d.ts.map +1 -0
  78. package/dist/services/execution/ExecutionService.js +2 -0
  79. package/dist/services/execution/QaFollowupService.d.ts +38 -0
  80. package/dist/services/execution/QaFollowupService.d.ts.map +1 -0
  81. package/dist/services/execution/QaFollowupService.js +236 -0
  82. package/dist/services/execution/QaProfileService.d.ts +22 -0
  83. package/dist/services/execution/QaProfileService.d.ts.map +1 -0
  84. package/dist/services/execution/QaProfileService.js +142 -0
  85. package/dist/services/execution/QaTasksService.d.ts +101 -0
  86. package/dist/services/execution/QaTasksService.d.ts.map +1 -0
  87. package/dist/services/execution/QaTasksService.js +1117 -0
  88. package/dist/services/execution/TaskSelectionService.d.ts +50 -0
  89. package/dist/services/execution/TaskSelectionService.d.ts.map +1 -0
  90. package/dist/services/execution/TaskSelectionService.js +281 -0
  91. package/dist/services/execution/TaskStateService.d.ts +19 -0
  92. package/dist/services/execution/TaskStateService.d.ts.map +1 -0
  93. package/dist/services/execution/TaskStateService.js +59 -0
  94. package/dist/services/execution/WorkOnTasksService.d.ts +80 -0
  95. package/dist/services/execution/WorkOnTasksService.d.ts.map +1 -0
  96. package/dist/services/execution/WorkOnTasksService.js +1833 -0
  97. package/dist/services/jobs/JobInsightsService.d.ts +97 -0
  98. package/dist/services/jobs/JobInsightsService.d.ts.map +1 -0
  99. package/dist/services/jobs/JobInsightsService.js +263 -0
  100. package/dist/services/jobs/JobResumeService.d.ts +16 -0
  101. package/dist/services/jobs/JobResumeService.d.ts.map +1 -0
  102. package/dist/services/jobs/JobResumeService.js +113 -0
  103. package/dist/services/jobs/JobService.d.ts +149 -0
  104. package/dist/services/jobs/JobService.d.ts.map +1 -0
  105. package/dist/services/jobs/JobService.js +490 -0
  106. package/dist/services/jobs/JobsApiClient.d.ts +73 -0
  107. package/dist/services/jobs/JobsApiClient.d.ts.map +1 -0
  108. package/dist/services/jobs/JobsApiClient.js +67 -0
  109. package/dist/services/openapi/OpenApiService.d.ts +54 -0
  110. package/dist/services/openapi/OpenApiService.d.ts.map +1 -0
  111. package/dist/services/openapi/OpenApiService.js +503 -0
  112. package/dist/services/planning/CreateTasksService.d.ts +68 -0
  113. package/dist/services/planning/CreateTasksService.d.ts.map +1 -0
  114. package/dist/services/planning/CreateTasksService.js +989 -0
  115. package/dist/services/planning/KeyHelpers.d.ts +5 -0
  116. package/dist/services/planning/KeyHelpers.d.ts.map +1 -0
  117. package/dist/services/planning/KeyHelpers.js +62 -0
  118. package/dist/services/planning/PlanningService.d.ts +3 -0
  119. package/dist/services/planning/PlanningService.d.ts.map +1 -0
  120. package/dist/services/planning/PlanningService.js +2 -0
  121. package/dist/services/planning/RefineTasksService.d.ts +56 -0
  122. package/dist/services/planning/RefineTasksService.d.ts.map +1 -0
  123. package/dist/services/planning/RefineTasksService.js +1328 -0
  124. package/dist/services/review/CodeReviewService.d.ts +103 -0
  125. package/dist/services/review/CodeReviewService.d.ts.map +1 -0
  126. package/dist/services/review/CodeReviewService.js +1187 -0
  127. package/dist/services/system/SystemUpdateService.d.ts +55 -0
  128. package/dist/services/system/SystemUpdateService.d.ts.map +1 -0
  129. package/dist/services/system/SystemUpdateService.js +136 -0
  130. package/dist/services/tasks/TaskApiResolver.d.ts +7 -0
  131. package/dist/services/tasks/TaskApiResolver.d.ts.map +1 -0
  132. package/dist/services/tasks/TaskApiResolver.js +41 -0
  133. package/dist/services/tasks/TaskDetailService.d.ts +106 -0
  134. package/dist/services/tasks/TaskDetailService.d.ts.map +1 -0
  135. package/dist/services/tasks/TaskDetailService.js +332 -0
  136. package/dist/services/telemetry/TelemetryService.d.ts +53 -0
  137. package/dist/services/telemetry/TelemetryService.d.ts.map +1 -0
  138. package/dist/services/telemetry/TelemetryService.js +434 -0
  139. package/dist/workspace/WorkspaceManager.d.ts +35 -0
  140. package/dist/workspace/WorkspaceManager.d.ts.map +1 -0
  141. package/dist/workspace/WorkspaceManager.js +201 -0
  142. package/package.json +45 -0
@@ -0,0 +1,5 @@
1
+ export declare const normalizeAreaCode: (input: string | undefined, fallback: string) => string;
2
+ export declare const createEpicKeyGenerator: (projectKey: string, existingKeys?: Iterable<string>) => ((area?: string) => string);
3
+ export declare const createStoryKeyGenerator: (epicKey: string, existingKeys?: Iterable<string>) => (() => string);
4
+ export declare const createTaskKeyGenerator: (storyKey: string, existingKeys?: Iterable<string>) => (() => string);
5
+ //# sourceMappingURL=KeyHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyHelpers.d.ts","sourceRoot":"","sources":["../../../src/services/planning/KeyHelpers.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,GAAG,SAAS,EAAE,UAAU,MAAM,KAAG,MAI/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,EAAE,eAAc,QAAQ,CAAC,MAAM,CAAM,KAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAU1H,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,eAAc,QAAQ,CAAC,MAAM,CAAM,KAClC,CAAC,MAAM,MAAM,CAQf,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,eAAc,QAAQ,CAAC,MAAM,CAAM,KAClC,CAAC,MAAM,MAAM,CAQf,CAAC"}
@@ -0,0 +1,62 @@
1
+ const AREA_ALIASES = {
2
+ admin: "adm",
3
+ backend: "bck",
4
+ infra: "ops",
5
+ infrastructure: "ops",
6
+ operations: "ops",
7
+ ops: "ops",
8
+ platform: "ops",
9
+ frontend: "web",
10
+ front: "web",
11
+ web: "web",
12
+ ui: "web",
13
+ mobile: "mob",
14
+ };
15
+ const escapeRegex = (value) => value.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
16
+ const pad = (num, width = 2) => String(num).padStart(width, "0");
17
+ const nextIndexedKey = (existing, formatter, matcher) => {
18
+ let max = 0;
19
+ for (const key of existing) {
20
+ const idx = matcher(key);
21
+ if (idx && idx > max) {
22
+ max = idx;
23
+ }
24
+ }
25
+ const next = max + 1;
26
+ const result = formatter(next);
27
+ existing.add(result);
28
+ return result;
29
+ };
30
+ export const normalizeAreaCode = (input, fallback) => {
31
+ if (!input)
32
+ return fallback;
33
+ const normalized = input.trim().toLowerCase();
34
+ return (AREA_ALIASES[normalized] ?? normalized) || fallback;
35
+ };
36
+ export const createEpicKeyGenerator = (projectKey, existingKeys = []) => {
37
+ const known = new Set(existingKeys);
38
+ return (area) => {
39
+ const code = normalizeAreaCode(area, projectKey);
40
+ const pattern = new RegExp(`^${escapeRegex(code)}-(\\d+)$`);
41
+ return nextIndexedKey(known, (idx) => `${code}-${pad(idx)}`, (value) => {
42
+ const match = value.match(pattern);
43
+ return match ? Number(match[1]) : undefined;
44
+ });
45
+ };
46
+ };
47
+ export const createStoryKeyGenerator = (epicKey, existingKeys = []) => {
48
+ const known = new Set(existingKeys);
49
+ const pattern = new RegExp(`^${escapeRegex(epicKey)}-us-(\\d+)$`);
50
+ return () => nextIndexedKey(known, (idx) => `${epicKey}-us-${pad(idx)}`, (value) => {
51
+ const match = value.match(pattern);
52
+ return match ? Number(match[1]) : undefined;
53
+ });
54
+ };
55
+ export const createTaskKeyGenerator = (storyKey, existingKeys = []) => {
56
+ const known = new Set(existingKeys);
57
+ const pattern = new RegExp(`^${escapeRegex(storyKey)}-t(\\d+)$`);
58
+ return () => nextIndexedKey(known, (idx) => `${storyKey}-t${pad(idx)}`, (value) => {
59
+ const match = value.match(pattern);
60
+ return match ? Number(match[1]) : undefined;
61
+ });
62
+ };
@@ -0,0 +1,3 @@
1
+ export declare class PlanningService {
2
+ }
3
+ //# sourceMappingURL=PlanningService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanningService.d.ts","sourceRoot":"","sources":["../../../src/services/planning/PlanningService.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;CAAG"}
@@ -0,0 +1,2 @@
1
+ export class PlanningService {
2
+ }
@@ -0,0 +1,56 @@
1
+ import { AgentService } from "@mcoda/agents";
2
+ import { DocdexClient } from "@mcoda/integrations";
3
+ import { GlobalRepository, WorkspaceRepository } from "@mcoda/db";
4
+ import { RefineTasksRequest, RefineTasksResult } from "@mcoda/shared";
5
+ import { WorkspaceResolution } from "../../workspace/WorkspaceManager.js";
6
+ import { JobService } from "../jobs/JobService.js";
7
+ import { RoutingService } from "../agents/RoutingService.js";
8
+ interface RefineTasksOptions extends RefineTasksRequest {
9
+ workspace: WorkspaceResolution;
10
+ storyKey?: string;
11
+ agentName?: string;
12
+ agentStream?: boolean;
13
+ fromDb?: boolean;
14
+ planInPath?: string;
15
+ planOutPath?: string;
16
+ jobId?: string;
17
+ apply?: boolean;
18
+ excludeAlreadyRefined?: boolean;
19
+ allowEmptySelection?: boolean;
20
+ outputJson?: boolean;
21
+ }
22
+ export declare class RefineTasksService {
23
+ private docdex;
24
+ private jobService;
25
+ private agentService;
26
+ private repo;
27
+ private workspaceRepo;
28
+ private routingService;
29
+ private workspace;
30
+ constructor(workspace: WorkspaceResolution, deps: {
31
+ docdex: DocdexClient;
32
+ jobService: JobService;
33
+ agentService: AgentService;
34
+ repo: GlobalRepository;
35
+ workspaceRepo: WorkspaceRepository;
36
+ routingService: RoutingService;
37
+ });
38
+ static create(workspace: WorkspaceResolution): Promise<RefineTasksService>;
39
+ close(): Promise<void>;
40
+ private resolveAgent;
41
+ private selectTasks;
42
+ private parseTaskKeyParts;
43
+ private ensureTaskExists;
44
+ private buildStoryPrompt;
45
+ private summarizeDocs;
46
+ private summarizeHistory;
47
+ private logWarningsToTasks;
48
+ private mergeMetadata;
49
+ private validateOperation;
50
+ private detectCycle;
51
+ private applyOperations;
52
+ private invokeAgent;
53
+ refineTasks(options: RefineTasksOptions): Promise<RefineTasksResult>;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=RefineTasksService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefineTasksService.d.ts","sourceRoot":"","sources":["../../../src/services/planning/RefineTasksService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAA6C,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAIL,kBAAkB,EAClB,iBAAiB,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,UAAU,kBAAmB,SAAQ,kBAAkB;IACrD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAsFD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAsB;gBAGrC,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAE;QACJ,MAAM,EAAE,YAAY,CAAC;QACrB,UAAU,EAAE,UAAU,CAAC;QACvB,YAAY,EAAE,YAAY,CAAC;QAC3B,IAAI,EAAE,gBAAgB,CAAC;QACvB,aAAa,EAAE,mBAAmB,CAAC;QACnC,cAAc,EAAE,cAAc,CAAC;KAChC;WAWU,MAAM,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoB1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBd,YAAY;YASZ,WAAW;IA4KzB,OAAO,CAAC,iBAAiB;YASX,gBAAgB;IAkK9B,OAAO,CAAC,gBAAgB;YA4BV,aAAa;YAoDb,gBAAgB;YA+BhB,kBAAkB;IAkChC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,iBAAiB;IA8EzB,OAAO,CAAC,WAAW;YA0BL,eAAe;YAoSf,WAAW;IA6FnB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAuX3E"}