@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
@@ -1,7 +1,8 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
+ import { randomUUID } from "node:crypto";
3
4
  import { Connection } from "@mcoda/db";
4
- import { PathHelper } from "@mcoda/shared";
5
+ import { PathHelper, READY_TO_CODE_REVIEW } from "@mcoda/shared";
5
6
  const DEFAULT_SP_PER_HOUR = 15;
6
7
  const DEFAULT_ALPHA = 0.5;
7
8
  export class VelocityService {
@@ -65,6 +66,9 @@ export class VelocityService {
65
66
  base.reviewSpPerHour = options.spPerHourAll;
66
67
  base.qaSpPerHour = options.spPerHourAll;
67
68
  }
69
+ if (options.spPerHourImplementation !== undefined) {
70
+ base.implementationSpPerHour = options.spPerHourImplementation;
71
+ }
68
72
  if (options.spPerHourReview !== undefined) {
69
73
  base.reviewSpPerHour = options.spPerHourReview;
70
74
  }
@@ -121,44 +125,169 @@ export class VelocityService {
121
125
  return { clause: "", params: [] };
122
126
  return { clause: `AND ${clauses.join(" AND ")}`, params };
123
127
  }
124
- async computeLaneVelocity(commandName, scope, assignee, windowTasks) {
128
+ async insertStatusEvent(entry) {
129
+ await this.db.run(`INSERT INTO task_status_events (id, task_id, from_status, to_status, timestamp, command_name, job_id, task_run_id, agent_id, metadata_json)
130
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, randomUUID(), entry.taskId, entry.fromStatus ?? null, entry.toStatus, entry.timestamp, entry.commandName ?? null, entry.jobId ?? null, entry.taskRunId ?? null, entry.agentId ?? null, entry.metadata ? JSON.stringify(entry.metadata) : null);
131
+ }
132
+ async maybeBackfillStatusEvents(commandName, transition, scope, assignee, windowTasks) {
133
+ const { startStatus, endStatus } = transition;
134
+ try {
135
+ const filters = this.buildTaskFilters(scope, assignee);
136
+ const existingRow = await this.db.get(`
137
+ SELECT COUNT(1) as count
138
+ FROM task_status_events e
139
+ INNER JOIN tasks t ON t.id = e.task_id
140
+ WHERE e.from_status = ?
141
+ AND e.to_status = ?
142
+ ${filters.clause}
143
+ `, startStatus, endStatus, ...filters.params);
144
+ const existingCount = existingRow?.count ?? 0;
145
+ if (existingCount >= windowTasks)
146
+ return;
147
+ const limit = Math.max(windowTasks * 3, windowTasks);
148
+ const runs = await this.db.all(`
149
+ SELECT tr.id, tr.task_id, tr.job_id, tr.agent_id, tr.started_at, tr.finished_at
150
+ FROM task_runs tr
151
+ INNER JOIN tasks t ON t.id = tr.task_id
152
+ WHERE tr.command = ?
153
+ AND tr.status IN ('success','succeeded')
154
+ AND tr.started_at IS NOT NULL
155
+ AND tr.finished_at IS NOT NULL
156
+ ${filters.clause}
157
+ ORDER BY datetime(tr.finished_at) DESC
158
+ LIMIT ?
159
+ `, commandName, ...filters.params, limit);
160
+ let inserted = 0;
161
+ for (const run of runs) {
162
+ if (existingCount + inserted >= windowTasks)
163
+ break;
164
+ const startedAt = run.started_at;
165
+ const finishedAt = run.finished_at;
166
+ if (!startedAt || !finishedAt)
167
+ continue;
168
+ const startExists = await this.db.get(`SELECT id FROM task_status_events WHERE task_id = ? AND to_status = ? AND timestamp = ? LIMIT 1`, run.task_id, startStatus, startedAt);
169
+ if (!startExists) {
170
+ await this.insertStatusEvent({
171
+ taskId: run.task_id,
172
+ fromStatus: null,
173
+ toStatus: startStatus,
174
+ timestamp: startedAt,
175
+ commandName,
176
+ jobId: run.job_id ?? null,
177
+ taskRunId: run.id,
178
+ agentId: run.agent_id ?? null,
179
+ metadata: {
180
+ backfilled: true,
181
+ source: "task_runs",
182
+ phase: "start",
183
+ transition: `${startStatus}->${endStatus}`,
184
+ },
185
+ });
186
+ }
187
+ const endExists = await this.db.get(`SELECT id FROM task_status_events WHERE task_id = ? AND from_status = ? AND to_status = ? AND timestamp = ? LIMIT 1`, run.task_id, startStatus, endStatus, finishedAt);
188
+ if (!endExists) {
189
+ await this.insertStatusEvent({
190
+ taskId: run.task_id,
191
+ fromStatus: startStatus,
192
+ toStatus: endStatus,
193
+ timestamp: finishedAt,
194
+ commandName,
195
+ jobId: run.job_id ?? null,
196
+ taskRunId: run.id,
197
+ agentId: run.agent_id ?? null,
198
+ metadata: {
199
+ backfilled: true,
200
+ source: "task_runs",
201
+ phase: "end",
202
+ transition: `${startStatus}->${endStatus}`,
203
+ },
204
+ });
205
+ inserted += 1;
206
+ }
207
+ }
208
+ }
209
+ catch {
210
+ // ignore backfill errors
211
+ }
212
+ }
213
+ async computeLaneVelocityFromTaskRuns(commandName, scope, assignee, windowTasks) {
214
+ const filters = this.buildTaskFilters(scope, assignee);
125
215
  const runs = await this.db.all(`
126
- SELECT id, started_at, completed_at, duration_seconds
127
- FROM command_runs
128
- WHERE command_name = ?
129
- AND status IN ('success','succeeded')
130
- ORDER BY COALESCE(completed_at, started_at) DESC
131
- `, commandName);
216
+ SELECT
217
+ COALESCE(tr.story_points_at_run, t.story_points, 0) as story_points,
218
+ tr.started_at,
219
+ tr.finished_at
220
+ FROM task_runs tr
221
+ INNER JOIN tasks t ON t.id = tr.task_id
222
+ WHERE tr.command = ?
223
+ AND tr.status IN ('success','succeeded')
224
+ ${filters.clause}
225
+ ORDER BY COALESCE(tr.finished_at, tr.started_at) DESC
226
+ `, commandName, ...filters.params);
132
227
  let totalSp = 0;
133
228
  let totalDurationSeconds = 0;
134
229
  let samples = 0;
135
- const filters = this.buildTaskFilters(scope, assignee);
136
230
  for (const run of runs) {
137
- const aggregation = await this.db.get(`
138
- SELECT
139
- SUM(COALESCE(t.story_points, 0)) as sp,
140
- COUNT(*) as tasks
141
- FROM task_runs tr
142
- INNER JOIN tasks t ON t.id = tr.task_id
143
- WHERE tr.command_run_id = ?
144
- ${filters.clause}
145
- `, run.id, ...filters.params);
146
- const taskCount = aggregation?.tasks ?? 0;
147
- const sp = aggregation?.sp ?? 0;
148
- if (taskCount === 0) {
149
- continue;
150
- }
151
- const durationSeconds = typeof run.duration_seconds === "number" && Number.isFinite(run.duration_seconds)
152
- ? run.duration_seconds
153
- : this.deriveDurationSeconds(run.started_at, run.completed_at);
231
+ if (samples >= windowTasks)
232
+ break;
233
+ const durationSeconds = this.deriveDurationSeconds(run.started_at, run.finished_at);
154
234
  if (!durationSeconds || durationSeconds <= 0) {
155
235
  continue;
156
236
  }
157
- totalSp += sp;
237
+ totalSp += run.story_points ?? 0;
158
238
  totalDurationSeconds += durationSeconds;
159
- samples += taskCount;
239
+ samples += 1;
240
+ }
241
+ if (samples === 0 || totalDurationSeconds <= 0 || totalSp <= 0) {
242
+ return { samples: 0 };
243
+ }
244
+ return {
245
+ spPerHour: totalSp / (totalDurationSeconds / 3600),
246
+ samples,
247
+ };
248
+ }
249
+ async computeLaneVelocityFromStatusEvents(startStatus, endStatus, scope, assignee, windowTasks) {
250
+ const filters = this.buildTaskFilters(scope, assignee);
251
+ let rows = [];
252
+ try {
253
+ rows = await this.db.all(`
254
+ SELECT
255
+ t.id as task_id,
256
+ t.story_points as story_points,
257
+ end_event.timestamp as end_ts,
258
+ (
259
+ SELECT e2.timestamp
260
+ FROM task_status_events e2
261
+ WHERE e2.task_id = end_event.task_id
262
+ AND e2.to_status = ?
263
+ AND datetime(e2.timestamp) <= datetime(end_event.timestamp)
264
+ ORDER BY datetime(e2.timestamp) DESC
265
+ LIMIT 1
266
+ ) as start_ts
267
+ FROM task_status_events end_event
268
+ INNER JOIN tasks t ON t.id = end_event.task_id
269
+ WHERE end_event.from_status = ?
270
+ AND end_event.to_status = ?
271
+ ${filters.clause}
272
+ ORDER BY datetime(end_event.timestamp) DESC
273
+ `, startStatus, startStatus, endStatus, ...filters.params);
274
+ }
275
+ catch {
276
+ return { samples: 0 };
277
+ }
278
+ let totalSp = 0;
279
+ let totalDurationSeconds = 0;
280
+ let samples = 0;
281
+ for (const row of rows) {
160
282
  if (samples >= windowTasks)
161
283
  break;
284
+ const durationSeconds = this.deriveDurationSeconds(row.start_ts ?? undefined, row.end_ts ?? undefined);
285
+ if (!durationSeconds || durationSeconds <= 0) {
286
+ continue;
287
+ }
288
+ totalSp += row.story_points ?? 0;
289
+ totalDurationSeconds += durationSeconds;
290
+ samples += 1;
162
291
  }
163
292
  if (samples === 0 || totalDurationSeconds <= 0 || totalSp <= 0) {
164
293
  return { samples: 0 };
@@ -168,6 +297,14 @@ export class VelocityService {
168
297
  samples,
169
298
  };
170
299
  }
300
+ async computeLaneVelocity(commandName, transition, scope, assignee, windowTasks) {
301
+ await this.maybeBackfillStatusEvents(commandName, transition, scope, assignee, windowTasks);
302
+ const statusSamples = await this.computeLaneVelocityFromStatusEvents(transition.startStatus, transition.endStatus, scope, assignee, windowTasks);
303
+ if (statusSamples.samples > 0) {
304
+ return statusSamples;
305
+ }
306
+ return this.computeLaneVelocityFromTaskRuns(commandName, scope, assignee, windowTasks);
307
+ }
171
308
  deriveDurationSeconds(started, completed) {
172
309
  if (!started || !completed)
173
310
  return undefined;
@@ -181,18 +318,22 @@ export class VelocityService {
181
318
  const mode = options.mode ?? "config";
182
319
  const windowTasks = options.windowTasks ?? 10;
183
320
  const config = this.resolveConfig(options);
321
+ const defaultSamples = { implementation: 0, review: 0, qa: 0 };
184
322
  if (mode === "config") {
185
323
  return {
186
324
  implementationSpPerHour: config.implementationSpPerHour,
187
325
  reviewSpPerHour: config.reviewSpPerHour,
188
326
  qaSpPerHour: config.qaSpPerHour,
189
327
  source: "config",
328
+ requestedMode: mode,
329
+ windowTasks,
330
+ samples: defaultSamples,
190
331
  };
191
332
  }
192
333
  const scope = await this.resolveScopeIds(options);
193
- const implementation = await this.computeLaneVelocity("work-on-tasks", scope, options.assignee, windowTasks);
194
- const review = await this.computeLaneVelocity("code-review", scope, options.assignee, windowTasks);
195
- const qa = await this.computeLaneVelocity("qa-tasks", scope, options.assignee, windowTasks);
334
+ const implementation = await this.computeLaneVelocity("work-on-tasks", { startStatus: "in_progress", endStatus: READY_TO_CODE_REVIEW }, scope, options.assignee, windowTasks);
335
+ const review = await this.computeLaneVelocity("code-review", { startStatus: READY_TO_CODE_REVIEW, endStatus: "ready_to_qa" }, scope, options.assignee, windowTasks);
336
+ const qa = await this.computeLaneVelocity("qa-tasks", { startStatus: "ready_to_qa", endStatus: "completed" }, scope, options.assignee, windowTasks);
196
337
  const alpha = config.alpha ?? DEFAULT_ALPHA;
197
338
  const resolveLane = (empirical) => {
198
339
  if (empirical === undefined || empirical <= 0)
@@ -218,6 +359,11 @@ export class VelocityService {
218
359
  const implementationSpPerHour = resolveLane(implementation.spPerHour);
219
360
  const reviewSpPerHour = resolveReviewLane(review.spPerHour);
220
361
  const qaSpPerHour = resolveQaLane(qa.spPerHour);
362
+ const samples = {
363
+ implementation: implementation.samples,
364
+ review: review.samples,
365
+ qa: qa.samples,
366
+ };
221
367
  const usedEmpirical = (implementation.spPerHour && implementation.spPerHour > 0) ||
222
368
  (review.spPerHour && review.spPerHour > 0) ||
223
369
  (qa.spPerHour && qa.spPerHour > 0);
@@ -226,12 +372,9 @@ export class VelocityService {
226
372
  reviewSpPerHour,
227
373
  qaSpPerHour,
228
374
  source: usedEmpirical ? mode : "config",
375
+ requestedMode: mode,
229
376
  windowTasks,
230
- samples: {
231
- implementation: implementation.samples,
232
- review: review.samples,
233
- qa: qa.samples,
234
- },
377
+ samples,
235
378
  };
236
379
  }
237
380
  }
@@ -14,6 +14,7 @@ export interface VelocityOptions {
14
14
  mode?: VelocitySource;
15
15
  windowTasks?: 10 | 20 | 50;
16
16
  spPerHourAll?: number;
17
+ spPerHourImplementation?: number;
17
18
  spPerHourReview?: number;
18
19
  spPerHourQa?: number;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/estimate/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/estimate/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
@@ -1,6 +1,15 @@
1
1
  import { WorkspaceResolution } from "../../workspace/WorkspaceManager.js";
2
2
  import { TaskSelectionFilters } from "./TaskSelectionService.js";
3
3
  type StepName = "work" | "review" | "qa";
4
+ type AgentTier = "cheap" | "strong" | "specialist" | "unknown";
5
+ type DecisionRecord = {
6
+ step: StepName;
7
+ kind: "result" | "retry" | "terminal";
8
+ status: string;
9
+ detail?: string;
10
+ attempt: number;
11
+ timestamp: string;
12
+ };
4
13
  type FailureRecord = {
5
14
  step: StepName;
6
15
  agent: string;
@@ -19,11 +28,20 @@ type RatingSummary = {
19
28
  type TaskProgress = {
20
29
  taskKey: string;
21
30
  attempts: number;
22
- status: "pending" | "completed" | "blocked" | "failed" | "skipped";
31
+ status: "pending" | "completed" | "failed" | "skipped";
23
32
  lastStep?: StepName;
24
33
  lastError?: string;
34
+ lastWorkAgentTier?: AgentTier;
35
+ lastEscalationReason?: string;
36
+ escalationAttempts?: Record<string, number>;
37
+ lastGuardrailRetryable?: boolean;
38
+ lastQaFailureSummary?: string;
39
+ pendingLearningSummary?: string;
40
+ lastRevertEventAt?: string;
25
41
  lastDecision?: string;
26
42
  lastOutcome?: string;
43
+ stepOutcomes?: Partial<Record<StepName, string>>;
44
+ decisionHistory?: DecisionRecord[];
27
45
  chosenAgents: {
28
46
  work?: string;
29
47
  review?: string;
@@ -37,6 +55,10 @@ export interface GatewayTrioRequest extends TaskSelectionFilters {
37
55
  maxIterations?: number;
38
56
  maxCycles?: number;
39
57
  onJobStart?: (jobId: string, commandRunId: string) => void;
58
+ onGatewayStart?: (details: GatewayLogDetails) => void;
59
+ onGatewayChunk?: (chunk: string) => void;
60
+ onGatewaySelection?: (details: GatewayLogDetails) => void;
61
+ onGatewayEnd?: (details: GatewayLogDetails) => void;
40
62
  gatewayAgentName?: string;
41
63
  workAgentName?: string;
42
64
  reviewAgentName?: string;
@@ -52,13 +74,29 @@ export interface GatewayTrioRequest extends TaskSelectionFilters {
52
74
  qaTestCommand?: string;
53
75
  qaMode?: "auto" | "manual";
54
76
  qaFollowups?: "auto" | "none" | "prompt";
55
- qaResult?: "pass" | "fail" | "blocked";
77
+ reviewFollowups?: boolean;
78
+ qaResult?: "pass" | "fail";
56
79
  qaNotes?: string;
57
80
  qaEvidenceUrl?: string;
58
81
  qaAllowDirty?: boolean;
59
82
  resumeJobId?: string;
60
83
  rateAgents?: boolean;
61
84
  escalateOnNoChange?: boolean;
85
+ workRunner?: string;
86
+ useCodali?: boolean;
87
+ agentAdapterOverride?: string;
88
+ }
89
+ export interface GatewayLogDetails {
90
+ taskKey: string;
91
+ job: string;
92
+ gatewayAgent?: string;
93
+ chosenAgent?: string;
94
+ chosenModel?: string;
95
+ chosenAdapter?: string;
96
+ startedAt: string;
97
+ endedAt?: string;
98
+ status?: "completed" | "failed";
99
+ error?: string;
62
100
  }
63
101
  export interface GatewayTrioTaskSummary {
64
102
  taskKey: string;
@@ -76,7 +114,6 @@ export interface GatewayTrioResult {
76
114
  commandRunId: string;
77
115
  tasks: GatewayTrioTaskSummary[];
78
116
  warnings: string[];
79
- blocked: string[];
80
117
  failed: string[];
81
118
  skipped: string[];
82
119
  }
@@ -85,16 +122,25 @@ export declare class GatewayTrioService {
85
122
  private deps;
86
123
  private selectionService;
87
124
  private projectKeyCache;
125
+ private tokenUsageCheckEnabled?;
88
126
  private constructor();
89
127
  static create(workspace: WorkspaceResolution, options?: {
90
128
  noTelemetry?: boolean;
91
129
  }): Promise<GatewayTrioService>;
92
130
  close(): Promise<void>;
131
+ private disableDocdex;
132
+ private writeDocdexCheckArtifact;
133
+ private runDocdexPreflight;
93
134
  private trioDir;
94
135
  private statePath;
95
136
  private writeState;
96
137
  private loadState;
97
138
  private readManifest;
139
+ private isPseudoTaskKey;
140
+ private skipPseudoTask;
141
+ private isTokenUsageCheckEnabled;
142
+ private isZeroTokenRun;
143
+ private backoffZeroTokens;
98
144
  private cleanupExpiredTaskLocks;
99
145
  private assertResumeAllowed;
100
146
  private writeHandoffArtifact;
@@ -102,9 +148,15 @@ export declare class GatewayTrioService {
102
148
  private projectKeyForTask;
103
149
  private seedExplicitTasks;
104
150
  private ensureProgress;
151
+ private dedupeTaskKeys;
152
+ private buildRunListFromExplicit;
153
+ private buildRunListFromSelection;
154
+ private guardMissingContext;
155
+ private hasMissingTaskSignal;
105
156
  private hasReachedMaxIterations;
106
157
  private hasIterationsRemaining;
107
- private reopenRetryableBlockedTasks;
158
+ private shouldReopenFailedTask;
159
+ private reopenRetryableFailedTasks;
108
160
  private dependenciesReady;
109
161
  private normalizeStatus;
110
162
  private resolveRequest;
@@ -113,16 +165,31 @@ export declare class GatewayTrioService {
113
165
  private parseWorkResult;
114
166
  private parseReviewResult;
115
167
  private parseQaResult;
168
+ private isAuthFailure;
116
169
  private shouldRetryAfter;
117
170
  private escalationReasons;
171
+ private resolveTierFromComplexity;
172
+ private nextTier;
118
173
  private recordFailure;
174
+ private mergeGatewayFiles;
175
+ private handoffContextForProgress;
176
+ private appendFallbackHandoffContext;
177
+ private recordDecision;
178
+ private buildQaFailureSummary;
179
+ private extractRevertLearning;
180
+ private shouldSavePreference;
181
+ private persistRevertLearning;
182
+ private sanitizeGoldenText;
183
+ private appendGoldenExample;
119
184
  private countFailures;
120
185
  private prioritizeFeedbackTasks;
121
186
  private buildAgentOptions;
122
187
  private recordRating;
123
188
  private loadRatingSummary;
189
+ private updateJobHeartbeat;
124
190
  private runStepWithTimeout;
125
191
  private runGateway;
192
+ private withGatewayIoSuppressed;
126
193
  private runWorkStep;
127
194
  private runReviewStep;
128
195
  private runQaStep;
@@ -1 +1 @@
1
- {"version":3,"file":"GatewayTrioService.d.ts","sourceRoot":"","sources":["../../../src/services/execution/GatewayTrioService.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAA2C,MAAM,2BAA2B,CAAC;AAsB1G,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;AAiBzC,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAUF,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,SAAS,EAAE,mBAAmB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,IAAI;IALd,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,eAAe,CAA6B;IAEpD,OAAO;WAgBM,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBnH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;YAIH,UAAU;YAKV,SAAS;YAST,YAAY;YAUZ,uBAAuB;IAOrC,OAAO,CAAC,mBAAmB;YA8Bb,oBAAoB;YAgBpB,cAAc;YAcd,iBAAiB;YASjB,iBAAiB;IAY/B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;YAKhB,2BAA2B;YAuD3B,iBAAiB;IAmB/B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;YAuCR,iBAAiB;YAwBjB,iBAAiB;IAS/B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,YAAY;YAQN,iBAAiB;YAmBjB,kBAAkB;YA8ClB,UAAU;YAqBV,WAAW;YA+DX,aAAa;YA6Db,SAAS;IAqEvB,OAAO,CAAC,SAAS;IAcX,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAgfnE"}
1
+ {"version":3,"file":"GatewayTrioService.d.ts","sourceRoot":"","sources":["../../../src/services/execution/GatewayTrioService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAA2C,MAAM,2BAA2B,CAAC;AA0F1G,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;AAQzC,KAAK,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;AAqB/D,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,YAAY,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAWF,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,SAAS,EAAE,mBAAmB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAM3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,IAAI;IANd,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,sBAAsB,CAAC,CAAU;IAEzC,OAAO;WAkBM,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqBnH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B,OAAO,CAAC,aAAa;YAOP,wBAAwB;YAQxB,kBAAkB;IAqDhC,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;YAIH,UAAU;YAKV,SAAS;YAST,YAAY;IAU1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;YAQR,wBAAwB;YAaxB,cAAc;YAoCd,iBAAiB;YAKjB,uBAAuB;IAOrC,OAAO,CAAC,mBAAmB;YA8Bb,oBAAoB;YAgBpB,cAAc;YAcd,iBAAiB;YASjB,iBAAiB;IAY/B,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,wBAAwB;YAclB,yBAAyB;YAgBzB,mBAAmB;IA8BjC,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,sBAAsB;YAwChB,0BAA0B;YAiF1B,iBAAiB;IAmB/B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;YAgDR,iBAAiB;YAwBjB,iBAAiB;IAS/B,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,oBAAoB;YAKd,qBAAqB;IAiCnC,OAAO,CAAC,kBAAkB;YAQZ,mBAAmB;IA2CjC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,YAAY;YAQN,iBAAiB;YAmBjB,kBAAkB;YAyBlB,kBAAkB;YAgDlB,UAAU;YAwFV,uBAAuB;YAuBvB,WAAW;YAgGX,aAAa;YAyFb,SAAS;IAgGvB,OAAO,CAAC,SAAS;IAcX,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAuoCnE"}