mcoda 0.1.2 → 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 (461) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/README.md +9 -300
  3. package/dist/bin/McodaEntrypoint.d.ts +5 -0
  4. package/dist/bin/McodaEntrypoint.d.ts.map +1 -0
  5. package/dist/bin/McodaEntrypoint.js +175 -0
  6. package/dist/commands/agents/AgentsCommands.d.ts +4 -0
  7. package/dist/commands/agents/AgentsCommands.d.ts.map +1 -0
  8. package/dist/commands/agents/AgentsCommands.js +376 -0
  9. package/dist/commands/agents/GatewayAgentCommand.d.ts +4 -0
  10. package/dist/commands/agents/GatewayAgentCommand.d.ts.map +1 -0
  11. package/dist/commands/agents/GatewayAgentCommand.js +583 -0
  12. package/dist/commands/agents/TestAgentCommand.d.ts +4 -0
  13. package/dist/commands/agents/TestAgentCommand.d.ts.map +1 -0
  14. package/dist/commands/agents/TestAgentCommand.js +57 -0
  15. package/dist/commands/backlog/BacklogCommands.d.ts +17 -0
  16. package/dist/commands/backlog/BacklogCommands.d.ts.map +1 -0
  17. package/dist/commands/backlog/BacklogCommands.js +260 -0
  18. package/dist/commands/backlog/OrderTasksCommand.d.ts +16 -0
  19. package/dist/commands/backlog/OrderTasksCommand.d.ts.map +1 -0
  20. package/dist/commands/backlog/OrderTasksCommand.js +211 -0
  21. package/dist/commands/backlog/TaskShowCommands.d.ts +16 -0
  22. package/dist/commands/backlog/TaskShowCommands.d.ts.map +1 -0
  23. package/dist/commands/backlog/TaskShowCommands.js +275 -0
  24. package/dist/commands/docs/DocsCommands.d.ts +37 -0
  25. package/dist/commands/docs/DocsCommands.d.ts.map +1 -0
  26. package/dist/commands/docs/DocsCommands.js +381 -0
  27. package/dist/commands/estimate/EstimateCommands.d.ts +24 -0
  28. package/dist/commands/estimate/EstimateCommands.d.ts.map +1 -0
  29. package/dist/commands/estimate/EstimateCommands.js +259 -0
  30. package/dist/commands/jobs/JobsCommands.d.ts +24 -0
  31. package/dist/commands/jobs/JobsCommands.d.ts.map +1 -0
  32. package/dist/commands/jobs/JobsCommands.js +535 -0
  33. package/dist/commands/openapi/OpenapiCommands.d.ts +14 -0
  34. package/dist/commands/openapi/OpenapiCommands.d.ts.map +1 -0
  35. package/dist/commands/openapi/OpenapiCommands.js +157 -0
  36. package/dist/commands/planning/CreateTasksCommand.d.ts +17 -0
  37. package/dist/commands/planning/CreateTasksCommand.d.ts.map +1 -0
  38. package/dist/commands/planning/CreateTasksCommand.js +134 -0
  39. package/dist/commands/planning/MigrateTasksCommand.d.ts +15 -0
  40. package/dist/commands/planning/MigrateTasksCommand.d.ts.map +1 -0
  41. package/dist/commands/planning/MigrateTasksCommand.js +95 -0
  42. package/dist/commands/planning/PlanningCommands.d.ts +3 -0
  43. package/dist/commands/planning/PlanningCommands.d.ts.map +1 -0
  44. package/dist/commands/planning/PlanningCommands.js +2 -0
  45. package/dist/commands/planning/QaTasksCommand.d.ts +30 -0
  46. package/dist/commands/planning/QaTasksCommand.d.ts.map +1 -0
  47. package/dist/commands/planning/QaTasksCommand.js +293 -0
  48. package/dist/commands/planning/RefineTasksCommand.d.ts +30 -0
  49. package/dist/commands/planning/RefineTasksCommand.d.ts.map +1 -0
  50. package/dist/commands/planning/RefineTasksCommand.js +365 -0
  51. package/dist/commands/review/CodeReviewCommand.d.ts +21 -0
  52. package/dist/commands/review/CodeReviewCommand.d.ts.map +1 -0
  53. package/dist/commands/review/CodeReviewCommand.js +236 -0
  54. package/dist/commands/routing/RoutingCommands.d.ts +7 -0
  55. package/dist/commands/routing/RoutingCommands.d.ts.map +1 -0
  56. package/dist/commands/routing/RoutingCommands.js +484 -0
  57. package/dist/commands/telemetry/TelemetryCommands.d.ts +26 -0
  58. package/dist/commands/telemetry/TelemetryCommands.d.ts.map +1 -0
  59. package/dist/commands/telemetry/TelemetryCommands.js +313 -0
  60. package/dist/commands/update/UpdateCommands.d.ts +4 -0
  61. package/dist/commands/update/UpdateCommands.d.ts.map +1 -0
  62. package/dist/commands/update/UpdateCommands.js +280 -0
  63. package/dist/commands/work/WorkOnTasksCommand.d.ts +21 -0
  64. package/dist/commands/work/WorkOnTasksCommand.d.ts.map +1 -0
  65. package/dist/commands/work/WorkOnTasksCommand.js +238 -0
  66. package/dist/commands/workspace/SetWorkspaceCommand.d.ts +9 -0
  67. package/dist/commands/workspace/SetWorkspaceCommand.d.ts.map +1 -0
  68. package/dist/commands/workspace/SetWorkspaceCommand.js +128 -0
  69. package/dist/index.d.ts +19 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/package.json +31 -16
  72. package/.editorconfig +0 -9
  73. package/.eslintrc.cjs +0 -12
  74. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -29
  75. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  76. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  77. package/.github/workflows/ci.yml +0 -37
  78. package/.github/workflows/nightly.yml +0 -38
  79. package/.github/workflows/release-dry-run.yml +0 -40
  80. package/.github/workflows/release-please.yml +0 -22
  81. package/.github/workflows/release.yml +0 -139
  82. package/.prettierrc +0 -5
  83. package/.release-please-manifest.json +0 -8
  84. package/CLA.md +0 -42
  85. package/CONTRIBUTING.md +0 -38
  86. package/docs/oss_publishing_plan.md +0 -41
  87. package/docs/pdr/.gitkeep +0 -0
  88. package/docs/quality_gates.md +0 -32
  89. package/docs/rfp/.gitkeep +0 -0
  90. package/docs/sds/sds.md +0 -11963
  91. package/docs/usage.md +0 -72
  92. package/openapi/gen-openapi.ts +0 -1
  93. package/openapi/generated/clients/.gitkeep +0 -0
  94. package/openapi/generated/types/.gitkeep +0 -0
  95. package/openapi/generated/types/index.ts +0 -118
  96. package/openapi/mcoda.yaml +0 -2063
  97. package/pack-mcoda.sh +0 -88
  98. package/packages/agents/CHANGELOG.md +0 -7
  99. package/packages/agents/LICENSE +0 -21
  100. package/packages/agents/README.md +0 -9
  101. package/packages/agents/package.json +0 -41
  102. package/packages/agents/src/AgentService/.gitkeep +0 -0
  103. package/packages/agents/src/AgentService/AgentService.d.ts +0 -21
  104. package/packages/agents/src/AgentService/AgentService.d.ts.map +0 -1
  105. package/packages/agents/src/AgentService/AgentService.js +0 -141
  106. package/packages/agents/src/AgentService/AgentService.ts +0 -308
  107. package/packages/agents/src/__tests__/AgentService.test.ts +0 -284
  108. package/packages/agents/src/adapters/AdapterTypes.d.ts +0 -29
  109. package/packages/agents/src/adapters/AdapterTypes.d.ts.map +0 -1
  110. package/packages/agents/src/adapters/AdapterTypes.js +0 -1
  111. package/packages/agents/src/adapters/AdapterTypes.ts +0 -32
  112. package/packages/agents/src/adapters/codex/.gitkeep +0 -0
  113. package/packages/agents/src/adapters/codex/CodexAdapter.d.ts +0 -11
  114. package/packages/agents/src/adapters/codex/CodexAdapter.d.ts.map +0 -1
  115. package/packages/agents/src/adapters/codex/CodexAdapter.js +0 -43
  116. package/packages/agents/src/adapters/codex/CodexAdapter.ts +0 -63
  117. package/packages/agents/src/adapters/codex/CodexCliRunner.ts +0 -154
  118. package/packages/agents/src/adapters/gemini/.gitkeep +0 -0
  119. package/packages/agents/src/adapters/gemini/GeminiAdapter.d.ts +0 -11
  120. package/packages/agents/src/adapters/gemini/GeminiAdapter.d.ts.map +0 -1
  121. package/packages/agents/src/adapters/gemini/GeminiAdapter.js +0 -42
  122. package/packages/agents/src/adapters/gemini/GeminiAdapter.ts +0 -58
  123. package/packages/agents/src/adapters/gemini/GeminiCliRunner.ts +0 -75
  124. package/packages/agents/src/adapters/local/.gitkeep +0 -0
  125. package/packages/agents/src/adapters/local/LocalAdapter.d.ts +0 -11
  126. package/packages/agents/src/adapters/local/LocalAdapter.d.ts.map +0 -1
  127. package/packages/agents/src/adapters/local/LocalAdapter.js +0 -38
  128. package/packages/agents/src/adapters/local/LocalAdapter.ts +0 -43
  129. package/packages/agents/src/adapters/ollama/OllamaCliAdapter.ts +0 -58
  130. package/packages/agents/src/adapters/ollama/OllamaCliRunner.ts +0 -70
  131. package/packages/agents/src/adapters/ollama/OllamaRemoteAdapter.ts +0 -205
  132. package/packages/agents/src/adapters/openai/.gitkeep +0 -0
  133. package/packages/agents/src/adapters/openai/OpenAiAdapter.d.ts +0 -11
  134. package/packages/agents/src/adapters/openai/OpenAiAdapter.d.ts.map +0 -1
  135. package/packages/agents/src/adapters/openai/OpenAiAdapter.js +0 -51
  136. package/packages/agents/src/adapters/openai/OpenAiAdapter.ts +0 -56
  137. package/packages/agents/src/adapters/openai/OpenAiCliAdapter.ts +0 -62
  138. package/packages/agents/src/adapters/qa/.gitkeep +0 -0
  139. package/packages/agents/src/adapters/qa/QaAdapter.d.ts +0 -11
  140. package/packages/agents/src/adapters/qa/QaAdapter.d.ts.map +0 -1
  141. package/packages/agents/src/adapters/qa/QaAdapter.js +0 -37
  142. package/packages/agents/src/adapters/qa/QaAdapter.ts +0 -42
  143. package/packages/agents/src/adapters/zhipu/ZhipuApiAdapter.ts +0 -273
  144. package/packages/agents/src/index.d.ts +0 -8
  145. package/packages/agents/src/index.d.ts.map +0 -1
  146. package/packages/agents/src/index.js +0 -7
  147. package/packages/agents/src/index.ts +0 -11
  148. package/packages/agents/tsconfig.json +0 -14
  149. package/packages/cli/CHANGELOG.md +0 -7
  150. package/packages/cli/LICENSE +0 -21
  151. package/packages/cli/README.md +0 -23
  152. package/packages/cli/package.json +0 -61
  153. package/packages/cli/src/__tests__/AgentsCommands.test.ts +0 -137
  154. package/packages/cli/src/__tests__/BacklogCommands.test.ts +0 -40
  155. package/packages/cli/src/__tests__/CodeReviewCommand.test.ts +0 -594
  156. package/packages/cli/src/__tests__/CreateTasksCommand.test.ts +0 -40
  157. package/packages/cli/src/__tests__/DocsCommands.test.ts +0 -41
  158. package/packages/cli/src/__tests__/EstimateCommands.test.ts +0 -54
  159. package/packages/cli/src/__tests__/JobsCommands.behavior.test.ts +0 -311
  160. package/packages/cli/src/__tests__/JobsCommands.test.ts +0 -49
  161. package/packages/cli/src/__tests__/MigrateTasksCommand.test.ts +0 -36
  162. package/packages/cli/src/__tests__/OpenapiCommands.test.ts +0 -34
  163. package/packages/cli/src/__tests__/OrderTasksCommand.test.ts +0 -150
  164. package/packages/cli/src/__tests__/PlanningCommands.test.ts +0 -9
  165. package/packages/cli/src/__tests__/QaTasksCommand.test.ts +0 -58
  166. package/packages/cli/src/__tests__/RefineTasksCommand.test.ts +0 -63
  167. package/packages/cli/src/__tests__/RoutingCommands.test.ts +0 -302
  168. package/packages/cli/src/__tests__/SetWorkspaceCommand.test.ts +0 -18
  169. package/packages/cli/src/__tests__/TaskShowCommands.test.ts +0 -130
  170. package/packages/cli/src/__tests__/TelemetryCommands.test.ts +0 -35
  171. package/packages/cli/src/__tests__/TestAgentCommand.test.ts +0 -41
  172. package/packages/cli/src/__tests__/UpdateCommands.test.ts +0 -292
  173. package/packages/cli/src/__tests__/WorkOnTasksCommand.test.ts +0 -42
  174. package/packages/cli/src/bin/.gitkeep +0 -0
  175. package/packages/cli/src/bin/McodaEntrypoint.ts +0 -180
  176. package/packages/cli/src/commands/agents/.gitkeep +0 -0
  177. package/packages/cli/src/commands/agents/AgentsCommands.ts +0 -374
  178. package/packages/cli/src/commands/agents/GatewayAgentCommand.ts +0 -621
  179. package/packages/cli/src/commands/agents/TestAgentCommand.ts +0 -63
  180. package/packages/cli/src/commands/backlog/.gitkeep +0 -0
  181. package/packages/cli/src/commands/backlog/BacklogCommands.ts +0 -286
  182. package/packages/cli/src/commands/backlog/OrderTasksCommand.ts +0 -237
  183. package/packages/cli/src/commands/backlog/TaskShowCommands.ts +0 -289
  184. package/packages/cli/src/commands/docs/.gitkeep +0 -0
  185. package/packages/cli/src/commands/docs/DocsCommands.ts +0 -413
  186. package/packages/cli/src/commands/estimate/EstimateCommands.ts +0 -290
  187. package/packages/cli/src/commands/jobs/.gitkeep +0 -0
  188. package/packages/cli/src/commands/jobs/JobsCommands.ts +0 -595
  189. package/packages/cli/src/commands/openapi/OpenapiCommands.ts +0 -167
  190. package/packages/cli/src/commands/planning/.gitkeep +0 -0
  191. package/packages/cli/src/commands/planning/CreateTasksCommand.ts +0 -149
  192. package/packages/cli/src/commands/planning/MigrateTasksCommand.ts +0 -105
  193. package/packages/cli/src/commands/planning/PlanningCommands.ts +0 -1
  194. package/packages/cli/src/commands/planning/QaTasksCommand.ts +0 -320
  195. package/packages/cli/src/commands/planning/RefineTasksCommand.ts +0 -408
  196. package/packages/cli/src/commands/review/CodeReviewCommand.ts +0 -262
  197. package/packages/cli/src/commands/routing/.gitkeep +0 -0
  198. package/packages/cli/src/commands/routing/RoutingCommands.ts +0 -554
  199. package/packages/cli/src/commands/telemetry/.gitkeep +0 -0
  200. package/packages/cli/src/commands/telemetry/TelemetryCommands.ts +0 -348
  201. package/packages/cli/src/commands/update/.gitkeep +0 -0
  202. package/packages/cli/src/commands/update/UpdateCommands.ts +0 -301
  203. package/packages/cli/src/commands/work/WorkOnTasksCommand.ts +0 -264
  204. package/packages/cli/src/commands/workspace/SetWorkspaceCommand.ts +0 -132
  205. package/packages/cli/test/packaging_guardrails.test.js +0 -75
  206. package/packages/cli/tsconfig.json +0 -20
  207. package/packages/core/CHANGELOG.md +0 -7
  208. package/packages/core/LICENSE +0 -21
  209. package/packages/core/README.md +0 -9
  210. package/packages/core/package.json +0 -45
  211. package/packages/core/src/__tests__/SmokeClasses.test.ts +0 -32
  212. package/packages/core/src/api/AgentsApi.ts +0 -219
  213. package/packages/core/src/api/QaTasksApi.ts +0 -38
  214. package/packages/core/src/api/TasksApi.ts +0 -35
  215. package/packages/core/src/api/__tests__/AgentsApi.test.ts +0 -203
  216. package/packages/core/src/api/__tests__/QaTasksApi.test.ts +0 -51
  217. package/packages/core/src/api/__tests__/TasksApi.test.ts +0 -56
  218. package/packages/core/src/config/.gitkeep +0 -0
  219. package/packages/core/src/config/ConfigService.ts +0 -1
  220. package/packages/core/src/domain/dependencies/.gitkeep +0 -0
  221. package/packages/core/src/domain/dependencies/Dependency.ts +0 -1
  222. package/packages/core/src/domain/epics/.gitkeep +0 -0
  223. package/packages/core/src/domain/epics/Epic.ts +0 -1
  224. package/packages/core/src/domain/projects/.gitkeep +0 -0
  225. package/packages/core/src/domain/projects/Project.ts +0 -1
  226. package/packages/core/src/domain/tasks/.gitkeep +0 -0
  227. package/packages/core/src/domain/tasks/Task.ts +0 -1
  228. package/packages/core/src/domain/userStories/.gitkeep +0 -0
  229. package/packages/core/src/domain/userStories/UserStory.ts +0 -1
  230. package/packages/core/src/index.ts +0 -27
  231. package/packages/core/src/prompts/.gitkeep +0 -0
  232. package/packages/core/src/prompts/PdrPrompts.ts +0 -23
  233. package/packages/core/src/prompts/PromptLoader.ts +0 -1
  234. package/packages/core/src/prompts/SdsPrompts.ts +0 -47
  235. package/packages/core/src/services/agents/.gitkeep +0 -0
  236. package/packages/core/src/services/agents/AgentManagementService.ts +0 -1
  237. package/packages/core/src/services/agents/GatewayAgentService.ts +0 -956
  238. package/packages/core/src/services/agents/RoutingService.ts +0 -461
  239. package/packages/core/src/services/agents/__tests__/GatewayAgentService.test.ts +0 -72
  240. package/packages/core/src/services/agents/__tests__/RoutingService.test.ts +0 -267
  241. package/packages/core/src/services/agents/generated/RoutingApiClient.ts +0 -89
  242. package/packages/core/src/services/backlog/.gitkeep +0 -0
  243. package/packages/core/src/services/backlog/BacklogService.ts +0 -580
  244. package/packages/core/src/services/backlog/TaskOrderingService.ts +0 -868
  245. package/packages/core/src/services/backlog/__tests__/BacklogService.test.ts +0 -219
  246. package/packages/core/src/services/backlog/__tests__/TaskOrderingService.test.ts +0 -268
  247. package/packages/core/src/services/docs/.gitkeep +0 -0
  248. package/packages/core/src/services/docs/DocsService.ts +0 -1913
  249. package/packages/core/src/services/docs/__tests__/DocsService.test.ts +0 -350
  250. package/packages/core/src/services/estimate/EstimateService.ts +0 -111
  251. package/packages/core/src/services/estimate/VelocityService.ts +0 -272
  252. package/packages/core/src/services/estimate/__tests__/VelocityAndEstimate.test.ts +0 -209
  253. package/packages/core/src/services/estimate/types.ts +0 -41
  254. package/packages/core/src/services/execution/.gitkeep +0 -0
  255. package/packages/core/src/services/execution/ExecutionService.ts +0 -1
  256. package/packages/core/src/services/execution/QaFollowupService.ts +0 -289
  257. package/packages/core/src/services/execution/QaProfileService.ts +0 -160
  258. package/packages/core/src/services/execution/QaTasksService.ts +0 -1303
  259. package/packages/core/src/services/execution/TaskSelectionService.ts +0 -362
  260. package/packages/core/src/services/execution/TaskStateService.ts +0 -64
  261. package/packages/core/src/services/execution/WorkOnTasksService.ts +0 -2023
  262. package/packages/core/src/services/execution/__tests__/QaFollowupService.test.ts +0 -58
  263. package/packages/core/src/services/execution/__tests__/QaProfileService.test.ts +0 -49
  264. package/packages/core/src/services/execution/__tests__/QaTasksService.test.ts +0 -157
  265. package/packages/core/src/services/execution/__tests__/TaskSelectionService.test.ts +0 -179
  266. package/packages/core/src/services/execution/__tests__/TaskStateService.test.ts +0 -51
  267. package/packages/core/src/services/execution/__tests__/WorkOnTasksService.test.ts +0 -285
  268. package/packages/core/src/services/jobs/.gitkeep +0 -0
  269. package/packages/core/src/services/jobs/JobInsightsService.ts +0 -355
  270. package/packages/core/src/services/jobs/JobResumeService.ts +0 -119
  271. package/packages/core/src/services/jobs/JobService.ts +0 -648
  272. package/packages/core/src/services/jobs/JobsApiClient.ts +0 -113
  273. package/packages/core/src/services/jobs/__tests__/JobInsightsService.test.ts +0 -17
  274. package/packages/core/src/services/jobs/__tests__/JobResumeService.test.ts +0 -45
  275. package/packages/core/src/services/jobs/__tests__/JobService.test.ts +0 -44
  276. package/packages/core/src/services/openapi/OpenApiService.ts +0 -558
  277. package/packages/core/src/services/openapi/__tests__/OpenApiService.test.ts +0 -57
  278. package/packages/core/src/services/planning/.gitkeep +0 -0
  279. package/packages/core/src/services/planning/CreateTasksService.ts +0 -1280
  280. package/packages/core/src/services/planning/KeyHelpers.ts +0 -80
  281. package/packages/core/src/services/planning/PlanningService.ts +0 -1
  282. package/packages/core/src/services/planning/RefineTasksService.ts +0 -1552
  283. package/packages/core/src/services/planning/__tests__/CreateTasksService.test.ts +0 -288
  284. package/packages/core/src/services/planning/__tests__/KeyHelpers.test.ts +0 -16
  285. package/packages/core/src/services/planning/__tests__/RefineTasksService.test.ts +0 -172
  286. package/packages/core/src/services/review/CodeReviewService.ts +0 -1386
  287. package/packages/core/src/services/review/__tests__/CodeReviewService.test.ts +0 -89
  288. package/packages/core/src/services/system/SystemUpdateService.ts +0 -177
  289. package/packages/core/src/services/system/__tests__/SystemUpdateService.test.ts +0 -40
  290. package/packages/core/src/services/tasks/TaskApiResolver.ts +0 -37
  291. package/packages/core/src/services/tasks/TaskDetailService.ts +0 -494
  292. package/packages/core/src/services/tasks/__tests__/TaskApiResolver.test.ts +0 -41
  293. package/packages/core/src/services/tasks/__tests__/TaskDetailService.test.ts +0 -178
  294. package/packages/core/src/services/telemetry/.gitkeep +0 -0
  295. package/packages/core/src/services/telemetry/TelemetryService.ts +0 -515
  296. package/packages/core/src/services/telemetry/__tests__/TelemetryService.test.ts +0 -160
  297. package/packages/core/src/workspace/.gitkeep +0 -0
  298. package/packages/core/src/workspace/WorkspaceManager.ts +0 -234
  299. package/packages/core/tsconfig.json +0 -20
  300. package/packages/db/CHANGELOG.md +0 -7
  301. package/packages/db/LICENSE +0 -21
  302. package/packages/db/README.md +0 -9
  303. package/packages/db/package.json +0 -42
  304. package/packages/db/src/__tests__/GlobalRepository.test.ts +0 -109
  305. package/packages/db/src/__tests__/SchemaAlignment.test.ts +0 -80
  306. package/packages/db/src/__tests__/WorkspaceRepository.test.ts +0 -19
  307. package/packages/db/src/index.d.ts +0 -6
  308. package/packages/db/src/index.d.ts.map +0 -1
  309. package/packages/db/src/index.js +0 -5
  310. package/packages/db/src/index.ts +0 -6
  311. package/packages/db/src/migrations/global/.gitkeep +0 -0
  312. package/packages/db/src/migrations/global/GlobalMigrations.d.ts +0 -9
  313. package/packages/db/src/migrations/global/GlobalMigrations.d.ts.map +0 -1
  314. package/packages/db/src/migrations/global/GlobalMigrations.js +0 -68
  315. package/packages/db/src/migrations/global/GlobalMigrations.ts +0 -336
  316. package/packages/db/src/migrations/workspace/.gitkeep +0 -0
  317. package/packages/db/src/migrations/workspace/WorkspaceMigrations.d.ts +0 -9
  318. package/packages/db/src/migrations/workspace/WorkspaceMigrations.d.ts.map +0 -1
  319. package/packages/db/src/migrations/workspace/WorkspaceMigrations.js +0 -251
  320. package/packages/db/src/migrations/workspace/WorkspaceMigrations.ts +0 -248
  321. package/packages/db/src/repositories/global/.gitkeep +0 -0
  322. package/packages/db/src/repositories/global/GlobalRepository.d.ts +0 -30
  323. package/packages/db/src/repositories/global/GlobalRepository.d.ts.map +0 -1
  324. package/packages/db/src/repositories/global/GlobalRepository.js +0 -209
  325. package/packages/db/src/repositories/global/GlobalRepository.ts +0 -492
  326. package/packages/db/src/repositories/workspace/.gitkeep +0 -0
  327. package/packages/db/src/repositories/workspace/WorkspaceRepository.d.ts +0 -282
  328. package/packages/db/src/repositories/workspace/WorkspaceRepository.d.ts.map +0 -1
  329. package/packages/db/src/repositories/workspace/WorkspaceRepository.js +0 -773
  330. package/packages/db/src/repositories/workspace/WorkspaceRepository.ts +0 -1511
  331. package/packages/db/src/sqlite/connection.d.ts +0 -11
  332. package/packages/db/src/sqlite/connection.d.ts.map +0 -1
  333. package/packages/db/src/sqlite/connection.js +0 -31
  334. package/packages/db/src/sqlite/connection.ts +0 -35
  335. package/packages/db/src/sqlite/pragmas.d.ts +0 -5
  336. package/packages/db/src/sqlite/pragmas.d.ts.map +0 -1
  337. package/packages/db/src/sqlite/pragmas.js +0 -6
  338. package/packages/db/src/sqlite/pragmas.ts +0 -10
  339. package/packages/db/tsconfig.json +0 -13
  340. package/packages/generators/package.json +0 -21
  341. package/packages/generators/src/__tests__/Generators.test.ts +0 -19
  342. package/packages/generators/src/index.ts +0 -1
  343. package/packages/generators/src/openapi/generateTypes.ts +0 -1
  344. package/packages/generators/src/openapi/validateSchema.ts +0 -1
  345. package/packages/generators/src/scaffolding/docs/.gitkeep +0 -0
  346. package/packages/generators/src/scaffolding/docs/DocsScaffolder.ts +0 -1
  347. package/packages/generators/src/scaffolding/global/.gitkeep +0 -0
  348. package/packages/generators/src/scaffolding/global/GlobalScaffolder.ts +0 -1
  349. package/packages/generators/src/scaffolding/workspace/.gitkeep +0 -0
  350. package/packages/generators/src/scaffolding/workspace/WorkspaceScaffolder.ts +0 -1
  351. package/packages/generators/tsconfig.json +0 -10
  352. package/packages/integrations/CHANGELOG.md +0 -7
  353. package/packages/integrations/LICENSE +0 -21
  354. package/packages/integrations/README.md +0 -9
  355. package/packages/integrations/package.json +0 -47
  356. package/packages/integrations/src/docdex/.gitkeep +0 -0
  357. package/packages/integrations/src/docdex/DocdexClient.d.ts +0 -50
  358. package/packages/integrations/src/docdex/DocdexClient.d.ts.map +0 -1
  359. package/packages/integrations/src/docdex/DocdexClient.js +0 -216
  360. package/packages/integrations/src/docdex/DocdexClient.ts +0 -261
  361. package/packages/integrations/src/docdex/__tests__/DocdexClient.test.ts +0 -29
  362. package/packages/integrations/src/index.d.ts +0 -2
  363. package/packages/integrations/src/index.d.ts.map +0 -1
  364. package/packages/integrations/src/index.js +0 -4
  365. package/packages/integrations/src/index.ts +0 -5
  366. package/packages/integrations/src/issues/.gitkeep +0 -0
  367. package/packages/integrations/src/issues/IssuesClient.ts +0 -1
  368. package/packages/integrations/src/issues/__tests__/IssuesClient.test.ts +0 -10
  369. package/packages/integrations/src/qa/.gitkeep +0 -0
  370. package/packages/integrations/src/qa/ChromiumQaAdapter.ts +0 -89
  371. package/packages/integrations/src/qa/CliQaAdapter.ts +0 -95
  372. package/packages/integrations/src/qa/MaestroQaAdapter.ts +0 -91
  373. package/packages/integrations/src/qa/QaAdapter.ts +0 -7
  374. package/packages/integrations/src/qa/QaClient.ts +0 -1
  375. package/packages/integrations/src/qa/QaTypes.ts +0 -26
  376. package/packages/integrations/src/qa/__tests__/ChromiumQaAdapter.test.ts +0 -30
  377. package/packages/integrations/src/qa/__tests__/CliQaAdapter.test.ts +0 -33
  378. package/packages/integrations/src/qa/__tests__/MaestroQaAdapter.test.ts +0 -30
  379. package/packages/integrations/src/qa/index.ts +0 -5
  380. package/packages/integrations/src/system/SystemClient.ts +0 -50
  381. package/packages/integrations/src/system/__tests__/SystemClient.test.ts +0 -40
  382. package/packages/integrations/src/telemetry/TelemetryClient.ts +0 -139
  383. package/packages/integrations/src/telemetry/__tests__/TelemetryClient.test.ts +0 -41
  384. package/packages/integrations/src/vcs/.gitkeep +0 -0
  385. package/packages/integrations/src/vcs/VcsClient.ts +0 -211
  386. package/packages/integrations/src/vcs/__tests__/VcsClient.test.ts +0 -26
  387. package/packages/integrations/tsconfig.json +0 -14
  388. package/packages/shared/CHANGELOG.md +0 -7
  389. package/packages/shared/LICENSE +0 -21
  390. package/packages/shared/README.md +0 -9
  391. package/packages/shared/package.json +0 -40
  392. package/packages/shared/src/__tests__/CommandMetadata.test.ts +0 -15
  393. package/packages/shared/src/__tests__/ServiceShells.test.ts +0 -16
  394. package/packages/shared/src/crypto/.gitkeep +0 -0
  395. package/packages/shared/src/crypto/CryptoHelper.d.ts +0 -15
  396. package/packages/shared/src/crypto/CryptoHelper.d.ts.map +0 -1
  397. package/packages/shared/src/crypto/CryptoHelper.js +0 -54
  398. package/packages/shared/src/crypto/CryptoHelper.ts +0 -57
  399. package/packages/shared/src/errors/.gitkeep +0 -0
  400. package/packages/shared/src/errors/ErrorFactory.ts +0 -1
  401. package/packages/shared/src/index.d.ts +0 -6
  402. package/packages/shared/src/index.d.ts.map +0 -1
  403. package/packages/shared/src/index.js +0 -4
  404. package/packages/shared/src/index.ts +0 -35
  405. package/packages/shared/src/logging/.gitkeep +0 -0
  406. package/packages/shared/src/logging/Logger.ts +0 -1
  407. package/packages/shared/src/metadata/CommandMetadata.ts +0 -165
  408. package/packages/shared/src/openapi/.gitkeep +0 -0
  409. package/packages/shared/src/openapi/OpenApiTypes.d.ts +0 -216
  410. package/packages/shared/src/openapi/OpenApiTypes.d.ts.map +0 -1
  411. package/packages/shared/src/openapi/OpenApiTypes.js +0 -1
  412. package/packages/shared/src/openapi/OpenApiTypes.ts +0 -312
  413. package/packages/shared/src/paths/.gitkeep +0 -0
  414. package/packages/shared/src/paths/PathHelper.d.ts +0 -12
  415. package/packages/shared/src/paths/PathHelper.d.ts.map +0 -1
  416. package/packages/shared/src/paths/PathHelper.js +0 -24
  417. package/packages/shared/src/paths/PathHelper.ts +0 -29
  418. package/packages/shared/src/qa/QaProfile.ts +0 -14
  419. package/packages/shared/src/utils/.gitkeep +0 -0
  420. package/packages/shared/src/utils/UtilityService.ts +0 -1
  421. package/packages/shared/tsconfig.json +0 -10
  422. package/packages/testing/package.json +0 -26
  423. package/packages/testing/src/__tests__/TestingFakes.test.ts +0 -15
  424. package/packages/testing/src/cli/e2e/.gitkeep +0 -0
  425. package/packages/testing/src/cli/e2e/E2eSuite.ts +0 -1
  426. package/packages/testing/src/fakes/agents/.gitkeep +0 -0
  427. package/packages/testing/src/fakes/agents/FakeAgents.ts +0 -1
  428. package/packages/testing/src/fakes/docdex/.gitkeep +0 -0
  429. package/packages/testing/src/fakes/docdex/FakeDocdexClient.ts +0 -1
  430. package/packages/testing/src/fakes/qa/.gitkeep +0 -0
  431. package/packages/testing/src/fakes/qa/FakeQaClient.ts +0 -1
  432. package/packages/testing/src/fakes/vcs/.gitkeep +0 -0
  433. package/packages/testing/src/fakes/vcs/FakeVcsClient.ts +0 -1
  434. package/packages/testing/src/fixtures/db/.gitkeep +0 -0
  435. package/packages/testing/src/fixtures/db/DbFixtures.ts +0 -1
  436. package/packages/testing/src/fixtures/workspaces/.gitkeep +0 -0
  437. package/packages/testing/src/fixtures/workspaces/WorkspaceFixtures.ts +0 -1
  438. package/packages/testing/src/index.ts +0 -1
  439. package/packages/testing/tsconfig.json +0 -10
  440. package/pnpm-workspace.yaml +0 -2
  441. package/prompts/README.md +0 -5
  442. package/prompts/code-reviewer.md +0 -23
  443. package/prompts/code-writer.md +0 -35
  444. package/prompts/gateway-agent.md +0 -27
  445. package/prompts/qa-agent.md +0 -21
  446. package/release-please-config.json +0 -39
  447. package/scripts/build-all.ts +0 -1
  448. package/scripts/dev.ts +0 -1
  449. package/scripts/install-local-cli.sh +0 -28
  450. package/scripts/pack-npm-tarballs.js +0 -63
  451. package/scripts/release.ts +0 -1
  452. package/scripts/run-node-tests.js +0 -37
  453. package/tests/all.js +0 -127
  454. package/tests/api/openapi_spec.test.js +0 -21
  455. package/tests/artifacts.md +0 -31
  456. package/tests/component/cli_version.test.js +0 -38
  457. package/tests/integration/workspace_resolver.test.js +0 -44
  458. package/tests/unit/crypto_helper.test.js +0 -36
  459. package/tests/unit/path_helper.test.js +0 -20
  460. package/tsconfig.base.json +0 -32
  461. /package/{packages/cli/src/index.ts → dist/index.js} +0 -0
@@ -0,0 +1,484 @@
1
+ import { JobService, RoutingService, WorkspaceResolver } from "@mcoda/core";
2
+ import { canonicalizeCommandName, getKnownCommands, getKnownDocdexScopes, getKnownQaProfiles, } from "@mcoda/shared";
3
+ const DEFAULTS_USAGE = `mcoda routing defaults \\
4
+ [--workspace <PATH>] \\
5
+ [--list] \\
6
+ [--set-command <COMMAND>=<AGENT>]... \\
7
+ [--set-qa-profile <PROFILE>] \\
8
+ [--set-docdex-scope <SCOPE>] \\
9
+ [--reset-command <COMMAND>]... \\
10
+ [--no-telemetry] \\
11
+ [--json]`;
12
+ const DEFAULTS_HELP = `${DEFAULTS_USAGE}
13
+
14
+ Manage per-workspace routing defaults backed by the global DB (~/.mcoda/mcoda.db).
15
+
16
+ Flags:
17
+ --list List workspace + __GLOBAL__ defaults (default if no setters are passed)
18
+ --set-command c=a Set default agent for command c (validates capabilities)
19
+ --reset-command c Remove workspace override so __GLOBAL__ applies
20
+ --set-qa-profile name Set workspace QA profile override (validated against OpenAPI profiles)
21
+ --set-docdex-scope name Set docdex scope override (validated against OpenAPI scopes)
22
+ --workspace PATH Resolve workspace via PATH (otherwise uses CWD)
23
+ --json Emit raw RoutingDefaults DTOs
24
+ --no-telemetry Skip local token usage recording for this run
25
+ `;
26
+ const PREVIEW_USAGE = `mcoda routing preview \\
27
+ [--workspace <PATH>] \\
28
+ --command <COMMAND_NAME> \\
29
+ [--task-type <TYPE>] \\
30
+ [--agent <OVERRIDE_SLUG>] \\
31
+ [--project <PROJECT_KEY>] \\
32
+ [--no-telemetry] \\
33
+ [--json]`;
34
+ const PREVIEW_HELP = `${PREVIEW_USAGE}
35
+
36
+ Preview which agent would be selected for a command using full routing (override → workspace default → global default).
37
+
38
+ Flags:
39
+ --command NAME CLI command to preview (validated against OpenAPI x-mcoda-cli.name)
40
+ --agent SLUG Force a specific agent (capability-validated)
41
+ --task-type TYPE Optional task type hint (adds QA-required capabilities)
42
+ --project KEY Optional project key for context
43
+ --workspace PATH Resolve workspace via PATH (otherwise uses CWD)
44
+ --json Emit raw RoutingPreview DTO
45
+ --no-telemetry Skip local token usage recording for this run
46
+ `;
47
+ const EXPLAIN_USAGE = `mcoda routing explain \\
48
+ [--workspace <PATH>] \\
49
+ --command <COMMAND_NAME> \\
50
+ [--task-type <TYPE>] \\
51
+ [--agent <OVERRIDE_SLUG>] \\
52
+ [--no-telemetry] \\
53
+ [--json] \\
54
+ [--debug]`;
55
+ const EXPLAIN_HELP = `${EXPLAIN_USAGE}
56
+
57
+ Explain routing decisions with candidates, health, capabilities, and provenance.
58
+ Same flags as preview; add --debug to surface extra trace fields when available.
59
+ `;
60
+ const pad = (value, width) => value.padEnd(width, " ");
61
+ const formatTable = (headers, rows) => {
62
+ if (rows.length === 0)
63
+ return headers.join(" | ");
64
+ const widths = headers.map((header, idx) => Math.max(header.length, ...rows.map((row) => (row[idx] ?? "").length)));
65
+ const headerLine = headers.map((h, idx) => pad(h, widths[idx])).join(" | ");
66
+ const sepLine = widths.map((w) => "-".repeat(w)).join("-+-");
67
+ const body = rows.map((row) => row.map((cell, idx) => pad(cell ?? "", widths[idx])).join(" | ")).join("\n");
68
+ return [headerLine, sepLine, body].filter(Boolean).join("\n");
69
+ };
70
+ const parseDefaultsArgs = (argv) => {
71
+ const args = { workspace: undefined, set: {}, reset: [], list: false, json: false };
72
+ for (let i = 0; i < argv.length; i += 1) {
73
+ const arg = argv[i];
74
+ if (arg === "--help" || arg === "-h") {
75
+ // eslint-disable-next-line no-console
76
+ console.log(DEFAULTS_HELP);
77
+ process.exit(0);
78
+ }
79
+ if (arg === "--workspace") {
80
+ args.workspace = argv[i + 1];
81
+ i += 1;
82
+ continue;
83
+ }
84
+ if (arg === "--list") {
85
+ args.list = true;
86
+ continue;
87
+ }
88
+ if (arg.startsWith("--set-command")) {
89
+ const value = arg.includes("=") ? arg.split("=", 2)[1] : argv[i + 1];
90
+ if (!value)
91
+ throw new Error("Missing value for --set-command (expected <command>=<agent>)");
92
+ if (!arg.includes("="))
93
+ i += 1;
94
+ const [cmd, agent] = value.split("=", 2);
95
+ if (!cmd || !agent)
96
+ throw new Error("Invalid --set-command format, expected <command>=<agent>");
97
+ args.set[cmd] = agent;
98
+ continue;
99
+ }
100
+ if (arg.startsWith("--reset-command")) {
101
+ const value = arg.includes("=") ? arg.split("=", 2)[1] : argv[i + 1];
102
+ if (!value)
103
+ throw new Error("Missing value for --reset-command");
104
+ if (!arg.includes("="))
105
+ i += 1;
106
+ args.reset.push(value);
107
+ continue;
108
+ }
109
+ if (arg === "--set-qa-profile") {
110
+ args.qaProfile = argv[i + 1];
111
+ i += 1;
112
+ continue;
113
+ }
114
+ if (arg.startsWith("--set-qa-profile=")) {
115
+ args.qaProfile = arg.split("=", 2)[1];
116
+ continue;
117
+ }
118
+ if (arg === "--set-docdex-scope") {
119
+ args.docdexScope = argv[i + 1];
120
+ i += 1;
121
+ continue;
122
+ }
123
+ if (arg.startsWith("--set-docdex-scope=")) {
124
+ args.docdexScope = arg.split("=", 2)[1];
125
+ continue;
126
+ }
127
+ if (arg === "--json") {
128
+ args.json = true;
129
+ continue;
130
+ }
131
+ if (arg === "--no-telemetry") {
132
+ args.noTelemetry = true;
133
+ continue;
134
+ }
135
+ }
136
+ if (!args.list &&
137
+ Object.keys(args.set).length === 0 &&
138
+ args.reset.length === 0 &&
139
+ !args.qaProfile &&
140
+ !args.docdexScope) {
141
+ args.list = true;
142
+ }
143
+ return args;
144
+ };
145
+ const parsePreviewArgs = (argv) => {
146
+ const args = { json: false, debug: false };
147
+ for (let i = 0; i < argv.length; i += 1) {
148
+ const arg = argv[i];
149
+ if (arg === "--help" || arg === "-h") {
150
+ // eslint-disable-next-line no-console
151
+ console.log(PREVIEW_HELP);
152
+ process.exit(0);
153
+ }
154
+ if (arg === "--workspace") {
155
+ args.workspace = argv[i + 1];
156
+ i += 1;
157
+ continue;
158
+ }
159
+ if (arg === "--command") {
160
+ args.command = argv[i + 1];
161
+ i += 1;
162
+ continue;
163
+ }
164
+ if (arg.startsWith("--command=")) {
165
+ args.command = arg.split("=", 2)[1];
166
+ continue;
167
+ }
168
+ if (arg === "--task-type") {
169
+ args.taskType = argv[i + 1];
170
+ i += 1;
171
+ continue;
172
+ }
173
+ if (arg.startsWith("--task-type=")) {
174
+ args.taskType = arg.split("=", 2)[1];
175
+ continue;
176
+ }
177
+ if (arg === "--agent") {
178
+ args.agent = argv[i + 1];
179
+ i += 1;
180
+ continue;
181
+ }
182
+ if (arg.startsWith("--agent=")) {
183
+ args.agent = arg.split("=", 2)[1];
184
+ continue;
185
+ }
186
+ if (arg === "--project") {
187
+ args.project = argv[i + 1];
188
+ i += 1;
189
+ continue;
190
+ }
191
+ if (arg.startsWith("--project=")) {
192
+ args.project = arg.split("=", 2)[1];
193
+ continue;
194
+ }
195
+ if (arg === "--json") {
196
+ args.json = true;
197
+ continue;
198
+ }
199
+ if (arg === "--debug") {
200
+ args.debug = true;
201
+ continue;
202
+ }
203
+ if (arg === "--no-telemetry") {
204
+ args.noTelemetry = true;
205
+ }
206
+ }
207
+ return args;
208
+ };
209
+ const validateCommandName = (routing, name) => {
210
+ if (!name) {
211
+ throw new Error("routing preview/explain requires --command.\n\n" + PREVIEW_USAGE);
212
+ }
213
+ const normalized = canonicalizeCommandName(name);
214
+ const allowed = new Set(getKnownCommands().map((c) => routing.normalizeCommand(c)));
215
+ if (!allowed.has(normalized)) {
216
+ throw new Error(`Unknown command ${name}; must be one of: ${Array.from(allowed)
217
+ .sort()
218
+ .join(", ")}`);
219
+ }
220
+ return normalized;
221
+ };
222
+ const normalizeValue = (value) => value ? value.trim().toLowerCase().replace(/[_\s]+/g, "-") : undefined;
223
+ export class RoutingCommands {
224
+ static async run(argv) {
225
+ try {
226
+ const [maybeSub, ...rest] = argv;
227
+ let subcommand = "defaults";
228
+ let tail = rest;
229
+ if (maybeSub === "--help" || maybeSub === "-h") {
230
+ // eslint-disable-next-line no-console
231
+ console.log([
232
+ "mcoda routing <defaults|preview|explain> [flags]",
233
+ "",
234
+ "Subcommands:",
235
+ " defaults List/update routing defaults (workspace + global)",
236
+ " preview Preview agent selection with routing provenance",
237
+ " explain Explain routing decision with candidates/health",
238
+ "",
239
+ "Use --help with each subcommand for detailed flags.",
240
+ ].join("\n"));
241
+ return;
242
+ }
243
+ if (maybeSub && !maybeSub.startsWith("--")) {
244
+ if (!["defaults", "preview", "explain"].includes(maybeSub)) {
245
+ throw new Error(`Unknown routing subcommand: ${maybeSub}\n\nAvailable: defaults | preview | explain`);
246
+ }
247
+ subcommand = maybeSub;
248
+ tail = rest;
249
+ }
250
+ else {
251
+ tail = argv;
252
+ }
253
+ if (subcommand === "defaults") {
254
+ await this.runDefaults(tail);
255
+ return;
256
+ }
257
+ if (subcommand === "preview") {
258
+ await this.runPreview(tail, false);
259
+ return;
260
+ }
261
+ if (subcommand === "explain") {
262
+ await this.runPreview(tail, true);
263
+ return;
264
+ }
265
+ }
266
+ catch (error) {
267
+ // eslint-disable-next-line no-console
268
+ console.error(error.message);
269
+ process.exitCode = 1;
270
+ }
271
+ }
272
+ static async resolveWorkspace(explicit) {
273
+ return WorkspaceResolver.resolveWorkspace({ cwd: process.cwd(), explicitWorkspace: explicit });
274
+ }
275
+ static async runDefaults(argv) {
276
+ const args = parseDefaultsArgs(argv);
277
+ const workspace = await this.resolveWorkspace(args.workspace);
278
+ const routing = await RoutingService.create();
279
+ const jobService = new JobService(workspace, undefined, { noTelemetry: args.noTelemetry });
280
+ const commandRun = await jobService.startCommandRun("routing defaults");
281
+ try {
282
+ const knownQa = getKnownQaProfiles().map((p) => normalizeValue(p));
283
+ const knownDocdex = getKnownDocdexScopes().map((p) => normalizeValue(p));
284
+ if (args.qaProfile && knownQa.length && !knownQa.includes(normalizeValue(args.qaProfile))) {
285
+ throw new Error(`Unknown QA profile ${args.qaProfile}; allowed values: ${knownQa.filter(Boolean).join(", ")}`);
286
+ }
287
+ if (args.docdexScope && knownDocdex.length && !knownDocdex.includes(normalizeValue(args.docdexScope))) {
288
+ throw new Error(`Unknown docdex scope ${args.docdexScope}; allowed values: ${knownDocdex.filter(Boolean).join(", ")}`);
289
+ }
290
+ if (args.list) {
291
+ const defaults = await routing.getWorkspaceDefaults(workspace);
292
+ const globalDefaults = await routing.getWorkspaceDefaults("__GLOBAL__");
293
+ if (args.json) {
294
+ // eslint-disable-next-line no-console
295
+ console.log(JSON.stringify({ workspaceId: workspace.workspaceId, defaults, globalDefaults }, null, 2));
296
+ }
297
+ else {
298
+ const commands = new Set();
299
+ defaults.forEach((d) => commands.add(routing.normalizeCommand(d.commandName)));
300
+ globalDefaults.forEach((d) => commands.add(routing.normalizeCommand(d.commandName)));
301
+ const rows = [];
302
+ for (const cmd of Array.from(commands).sort()) {
303
+ const ws = defaults.find((d) => routing.normalizeCommand(d.commandName) === cmd);
304
+ const global = globalDefaults.find((d) => routing.normalizeCommand(d.commandName) === cmd);
305
+ const wsAgentSummary = ws ? await routing.getAgentSummary(ws.agentId) : undefined;
306
+ const globalAgentSummary = global ? await routing.getAgentSummary(global.agentId) : undefined;
307
+ const wsAgent = wsAgentSummary?.slug ?? ws?.agentId ?? "-";
308
+ const globalAgent = globalAgentSummary?.slug ?? global?.agentId ?? "-";
309
+ rows.push([
310
+ cmd,
311
+ wsAgent,
312
+ ws?.qaProfile ?? "-",
313
+ ws?.docdexScope ?? "-",
314
+ globalAgent,
315
+ global?.qaProfile ?? "-",
316
+ global?.docdexScope ?? "-",
317
+ ]);
318
+ }
319
+ // eslint-disable-next-line no-console
320
+ console.log(formatTable([
321
+ "Command",
322
+ "Workspace Agent",
323
+ "Workspace QA",
324
+ "Workspace Docdex",
325
+ "Global Agent",
326
+ "Global QA",
327
+ "Global Docdex",
328
+ ], rows));
329
+ }
330
+ }
331
+ else {
332
+ const updated = await routing.updateWorkspaceDefaults(workspace.workspaceId, {
333
+ set: args.set,
334
+ reset: args.reset,
335
+ qaProfile: args.qaProfile,
336
+ docdexScope: args.docdexScope,
337
+ });
338
+ if (args.json) {
339
+ // eslint-disable-next-line no-console
340
+ console.log(JSON.stringify({ workspaceId: workspace.workspaceId, defaults: updated }, null, 2));
341
+ }
342
+ else {
343
+ // eslint-disable-next-line no-console
344
+ console.log(`Updated routing defaults for workspace ${workspace.workspaceId}`);
345
+ const rows = await Promise.all(updated.map(async (d) => {
346
+ const agent = await routing.getAgentSummary(d.agentId);
347
+ return [
348
+ d.commandName,
349
+ agent?.slug ?? d.agentId,
350
+ d.qaProfile ?? "-",
351
+ d.docdexScope ?? "-",
352
+ d.updatedAt ?? "",
353
+ ];
354
+ }));
355
+ // eslint-disable-next-line no-console
356
+ console.log(formatTable(["Command", "Agent", "QA Profile", "Docdex Scope", "Updated"], rows));
357
+ }
358
+ }
359
+ await jobService.finishCommandRun(commandRun.id, "succeeded");
360
+ }
361
+ catch (error) {
362
+ await jobService.finishCommandRun(commandRun.id, "failed", error.message);
363
+ throw error;
364
+ }
365
+ finally {
366
+ await routing.close();
367
+ await jobService.close();
368
+ }
369
+ }
370
+ static async runPreview(argv, explain) {
371
+ const args = parsePreviewArgs(argv);
372
+ if (argv.includes("--help") || argv.includes("-h")) {
373
+ // eslint-disable-next-line no-console
374
+ console.log(explain ? EXPLAIN_HELP : PREVIEW_HELP);
375
+ return;
376
+ }
377
+ const routing = await RoutingService.create();
378
+ const workspace = await this.resolveWorkspace(args.workspace);
379
+ const commandName = validateCommandName(routing, args.command);
380
+ const jobService = new JobService(workspace, undefined, { noTelemetry: args.noTelemetry });
381
+ const commandRun = await jobService.startCommandRun(explain ? "routing explain" : "routing preview");
382
+ try {
383
+ const resolved = await routing.resolveAgentForCommand({
384
+ workspace,
385
+ commandName,
386
+ taskType: args.taskType,
387
+ overrideAgentSlug: args.agent,
388
+ projectKey: args.project,
389
+ });
390
+ if (args.json) {
391
+ // eslint-disable-next-line no-console
392
+ console.log(JSON.stringify(resolved.routingPreview, null, 2));
393
+ }
394
+ else if (explain) {
395
+ // eslint-disable-next-line no-console
396
+ console.log(`Workspace: ${workspace.workspaceId}`);
397
+ // eslint-disable-next-line no-console
398
+ console.log(`Command: ${commandName}`);
399
+ if (args.taskType) {
400
+ // eslint-disable-next-line no-console
401
+ console.log(`Task type: ${args.taskType}`);
402
+ }
403
+ const rows = resolved.routingPreview.candidates?.map((c) => [
404
+ c.agentSlug ?? c.agentId,
405
+ c.source,
406
+ c.health?.status ?? "unknown",
407
+ (c.capabilities ?? []).join(",") || "-",
408
+ c.missingCapabilities?.join(",") ?? "",
409
+ c.notes ?? "",
410
+ ]) ?? [];
411
+ // eslint-disable-next-line no-console
412
+ console.log(formatTable(["Candidate", "Source", "Health", "Capabilities", "Missing", "Notes"], rows));
413
+ // eslint-disable-next-line no-console
414
+ console.log(`Selected: ${resolved.agentSlug} (source=${resolved.source}, health=${resolved.healthStatus})`);
415
+ if (resolved.requiredCapabilities.length) {
416
+ // eslint-disable-next-line no-console
417
+ console.log(`Required capabilities: ${resolved.requiredCapabilities.join(",")}`);
418
+ }
419
+ if (resolved.qaProfile) {
420
+ // eslint-disable-next-line no-console
421
+ console.log(`QA Profile: ${resolved.qaProfile}`);
422
+ }
423
+ if (resolved.docdexScope) {
424
+ // eslint-disable-next-line no-console
425
+ console.log(`Docdex Scope: ${resolved.docdexScope}`);
426
+ }
427
+ if (resolved.routingPreview.notes) {
428
+ // eslint-disable-next-line no-console
429
+ console.log(`Notes: ${resolved.routingPreview.notes}`);
430
+ }
431
+ }
432
+ else {
433
+ const row = [
434
+ commandName,
435
+ workspace.workspaceId,
436
+ resolved.agentSlug,
437
+ resolved.source,
438
+ resolved.healthStatus,
439
+ resolved.capabilities.join(",") || "-",
440
+ resolved.qaProfile ?? "-",
441
+ resolved.docdexScope ?? "-",
442
+ ];
443
+ // eslint-disable-next-line no-console
444
+ console.log(formatTable(["Command", "Workspace", "Agent", "Source", "Health", "Capabilities", "QA Profile", "Docdex Scope"], [row]));
445
+ if (resolved.routingPreview.notes) {
446
+ // eslint-disable-next-line no-console
447
+ console.log(`Notes: ${resolved.routingPreview.notes}`);
448
+ }
449
+ }
450
+ if (!args.noTelemetry) {
451
+ await jobService.recordTokenUsage({
452
+ workspaceId: workspace.workspaceId,
453
+ commandRunId: commandRun.id,
454
+ commandName: explain ? "routing explain" : "routing preview",
455
+ agentId: resolved.agentId,
456
+ modelName: resolved.model,
457
+ tokensPrompt: 0,
458
+ tokensCompletion: 0,
459
+ tokensTotal: 0,
460
+ timestamp: new Date().toISOString(),
461
+ metadata: {
462
+ routing: resolved.routingPreview,
463
+ provenance: resolved.source,
464
+ requiredCapabilities: resolved.requiredCapabilities,
465
+ overrideAgent: args.agent,
466
+ qaProfile: resolved.qaProfile,
467
+ docdexScope: resolved.docdexScope,
468
+ taskType: args.taskType,
469
+ projectKey: args.project,
470
+ },
471
+ });
472
+ }
473
+ await jobService.finishCommandRun(commandRun.id, "succeeded");
474
+ }
475
+ catch (error) {
476
+ await jobService.finishCommandRun(commandRun.id, "failed", error.message);
477
+ throw error;
478
+ }
479
+ finally {
480
+ await routing.close();
481
+ await jobService.close();
482
+ }
483
+ }
484
+ }
@@ -0,0 +1,26 @@
1
+ type OutputFormat = "table" | "json";
2
+ interface TokensArgs {
3
+ workspaceRoot?: string;
4
+ project?: string;
5
+ agent?: string;
6
+ command?: string;
7
+ job?: string;
8
+ since?: string;
9
+ until?: string;
10
+ groupBy: string[];
11
+ format: OutputFormat;
12
+ }
13
+ interface TelemetryArgs {
14
+ workspaceRoot?: string;
15
+ subcommand: "show" | "opt-out" | "opt-in";
16
+ format: OutputFormat;
17
+ strict?: boolean;
18
+ }
19
+ export declare const parseTokensArgs: (argv: string[]) => TokensArgs;
20
+ export declare const parseTelemetryArgs: (argv: string[]) => TelemetryArgs;
21
+ export declare class TelemetryCommands {
22
+ static runTokens(argv: string[]): Promise<void>;
23
+ static runTelemetry(argv: string[]): Promise<void>;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=TelemetryCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetryCommands.d.ts","sourceRoot":"","sources":["../../../src/commands/telemetry/TelemetryCommands.ts"],"names":[],"mappings":"AAGA,KAAK,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAErC,UAAU,UAAU;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,UAAU,aAAa;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2BD,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,KAAG,UAoEhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,KAAG,aAwCnD,CAAC;AA6EF,qBAAa,iBAAiB;WACf,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;WAwDxC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAsDzD"}