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
@@ -1,374 +0,0 @@
1
- import { AgentsApi, AgentResponse, WorkspaceResolver } from "@mcoda/core";
2
- import readline from "node:readline";
3
-
4
- interface ParsedArgs {
5
- flags: Record<string, string | boolean | string[]>;
6
- positionals: string[];
7
- }
8
-
9
- const parseArgs = (argv: string[]): ParsedArgs => {
10
- const flags: Record<string, any> = {};
11
- const positionals: string[] = [];
12
- for (let i = 0; i < argv.length; i += 1) {
13
- const arg = argv[i];
14
- if (arg.startsWith("--")) {
15
- const key = arg.replace(/^--/, "");
16
- const next = argv[i + 1];
17
- if (next && !next.startsWith("--")) {
18
- if (flags[key]) {
19
- flags[key] = Array.isArray(flags[key]) ? [...flags[key], next] : [flags[key], next];
20
- } else {
21
- flags[key] = next;
22
- }
23
- i += 1;
24
- } else {
25
- flags[key] = true;
26
- }
27
- } else {
28
- positionals.push(arg);
29
- }
30
- }
31
- return { flags, positionals };
32
- };
33
-
34
- const readSecret = async (promptText: string): Promise<string> =>
35
- new Promise((resolve) => {
36
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
37
- // Hide input characters
38
- // eslint-disable-next-line no-underscore-dangle
39
- (rl as any)._writeToOutput = () => {};
40
- rl.question(promptText, (answer) => {
41
- rl.close();
42
- resolve(answer.trim());
43
- });
44
- });
45
-
46
- const USAGE = `
47
- Usage: mcoda agent <list|add|update|delete|remove|auth|auth-status|set-default|use> ...
48
-
49
- Subcommands:
50
- list List agents (supports --json)
51
- add <NAME> Create a global agent
52
- --adapter <TYPE> Adapter slug (openai-api|zhipu-api|codex-cli|gemini-cli|local-model|qa-cli|ollama-remote)
53
- --model <MODEL> Default model name
54
- --rating <N> Relative capability rating (higher is stronger)
55
- --reasoning-rating <N> Relative reasoning strength rating (higher is stronger)
56
- --best-usage <TEXT> Primary usage area (e.g., code_write, ui_ux_docs)
57
- --cost-per-million <N> Cost per 1M tokens (0 for local models)
58
- --capability <CAP> Repeatable capabilities to attach
59
- --job-path <PATH> Optional job prompt path
60
- --character-path <PATH> Optional character prompt path
61
- --config-base-url <URL> Base URL for remote adapters (e.g., http://host:11434 for ollama-remote)
62
- --config-temperature <N> Temperature override for supported adapters
63
- --config-thinking <BOOL> Enable thinking mode for supported adapters
64
- update <NAME> Update adapter/model/capabilities/prompts for an agent
65
- delete|remove <NAME> Remove an agent (use --force to ignore routing/default references)
66
- --force Force deletion even if referenced
67
- auth set <NAME> Store credentials (use --api-key or interactive prompt)
68
- --api-key <KEY> API key/token
69
- auth-status <NAME> Show redacted auth status (supports --json)
70
- set-default|use <NAME> Set workspace default agent (use --workspace to override detection)
71
- --workspace <PATH> Workspace root to bind defaults
72
- --json Emit JSON for supported commands
73
- --help Show this help
74
- `.trim();
75
-
76
- const parseCapabilities = (value: string | string[] | boolean | undefined): string[] | undefined => {
77
- if (value === undefined) return undefined;
78
- const arr = Array.isArray(value) ? value : [value];
79
- return arr.filter((item): item is string => typeof item === "string");
80
- };
81
-
82
- const parsePrompts = (flags: Record<string, any>) => {
83
- const prompts: Record<string, string> = {};
84
- if (flags["job-path"]) prompts.jobPath = String(flags["job-path"]);
85
- if (flags["character-path"]) prompts.characterPath = String(flags["character-path"]);
86
- return Object.keys(prompts).length ? prompts : undefined;
87
- };
88
-
89
- const parseRating = (value: string | string[] | boolean | undefined): number | undefined => {
90
- if (value === undefined) return undefined;
91
- const raw = Array.isArray(value) ? value[value.length - 1] : value;
92
- if (typeof raw === "boolean") return undefined;
93
- const parsed = Number.parseFloat(String(raw));
94
- if (!Number.isFinite(parsed)) {
95
- throw new Error("Invalid --rating; expected a number");
96
- }
97
- return parsed;
98
- };
99
-
100
- const parseReasoningRating = (value: string | string[] | boolean | undefined): number | undefined => {
101
- if (value === undefined) return undefined;
102
- const raw = Array.isArray(value) ? value[value.length - 1] : value;
103
- if (typeof raw === "boolean") return undefined;
104
- const parsed = Number.parseFloat(String(raw));
105
- if (!Number.isFinite(parsed)) {
106
- throw new Error("Invalid --reasoning-rating; expected a number");
107
- }
108
- return parsed;
109
- };
110
-
111
- const parseCostPerMillion = (value: string | string[] | boolean | undefined): number | undefined => {
112
- if (value === undefined) return undefined;
113
- const raw = Array.isArray(value) ? value[value.length - 1] : value;
114
- if (typeof raw === "boolean") return undefined;
115
- const parsed = Number.parseFloat(String(raw));
116
- if (!Number.isFinite(parsed)) {
117
- throw new Error("Invalid --cost-per-million; expected a number");
118
- }
119
- return parsed;
120
- };
121
-
122
- const parseConfig = (flags: Record<string, any>) => {
123
- const config: Record<string, unknown> = {};
124
- if (flags["config-base-url"]) config.baseUrl = String(flags["config-base-url"]);
125
- if (flags["config-temperature"] !== undefined) {
126
- const raw = flags["config-temperature"];
127
- const parsed = typeof raw === "number" ? raw : Number.parseFloat(String(raw));
128
- if (!Number.isFinite(parsed)) {
129
- throw new Error("Invalid --config-temperature; expected a number");
130
- }
131
- config.temperature = parsed;
132
- }
133
- if (flags["config-thinking"] !== undefined) {
134
- const raw = flags["config-thinking"];
135
- if (typeof raw === "boolean") {
136
- config.thinking = raw;
137
- } else {
138
- const normalized = String(raw).trim().toLowerCase();
139
- if (["true", "1", "yes", "y"].includes(normalized)) {
140
- config.thinking = true;
141
- } else if (["false", "0", "no", "n"].includes(normalized)) {
142
- config.thinking = false;
143
- } else {
144
- throw new Error("Invalid --config-thinking; expected true/false");
145
- }
146
- }
147
- }
148
- return Object.keys(config).length ? config : undefined;
149
- };
150
-
151
- const DEFAULT_OLLAMA_CAPABILITIES = ["plan", "code_write", "code_review"];
152
-
153
- const pad = (value: string, width: number): string => value.padEnd(width, " ");
154
-
155
- const truncate = (value: string, max: number): string => {
156
- if (value.length <= max) return value;
157
- if (max <= 1) return value.slice(0, max);
158
- return `${value.slice(0, max - 1)}…`;
159
- };
160
-
161
- const formatDate = (value?: string): string => {
162
- if (!value) return "-";
163
- if (value.length >= 16) {
164
- return value.replace("T", " ").slice(0, 16);
165
- }
166
- return value;
167
- };
168
-
169
- const formatCost = (value?: number): string => {
170
- if (value === undefined || value === null || Number.isNaN(value)) return "-";
171
- return Number(value).toFixed(2);
172
- };
173
-
174
- const formatCapabilities = (caps: string[] | undefined): string => {
175
- const list = (caps ?? []).slice().sort();
176
- if (list.length === 0) return "none";
177
- const shown = list.slice(0, 4);
178
- const suffix = list.length > shown.length ? `, +${list.length - shown.length}` : "";
179
- return `${shown.join(", ")}${suffix}`;
180
- };
181
-
182
- const formatBoxTable = (headers: string[], rows: string[][], maxWidths: number[]): string => {
183
- if (rows.length === 0) return headers.join(" | ");
184
- const rawWidths = headers.map((header, idx) =>
185
- Math.max(header.length, ...rows.map((row) => (row[idx] ?? "").length)),
186
- );
187
- const widths = rawWidths.map((width, idx) => Math.min(width, maxWidths[idx] ?? width));
188
- const cell = (value: string, idx: number) => pad(truncate(value, widths[idx]), widths[idx]);
189
- const top = `╭${widths.map((w) => "─".repeat(w + 2)).join("┬")}╮`;
190
- const mid = `├${widths.map((w) => "─".repeat(w + 2)).join("┼")}┤`;
191
- const bottom = `╰${widths.map((w) => "─".repeat(w + 2)).join("┴")}╯`;
192
- const headerLine = `│ ${headers.map((h, idx) => cell(h, idx)).join(" │ ")} │`;
193
- const body = rows.map((row) => `│ ${row.map((val, idx) => cell(val ?? "", idx)).join(" │ ")} │`).join("\n");
194
- return [top, headerLine, mid, body, bottom].join("\n");
195
- };
196
-
197
- export class AgentsCommands {
198
- static async run(argv: string[]): Promise<void> {
199
- const [rawSubcommand, ...rest] = argv;
200
- const subcommand =
201
- rawSubcommand === "use" ? "set-default" : rawSubcommand === "remove" ? "delete" : rawSubcommand;
202
- if (!subcommand || rest.includes("--help")) {
203
- throw new Error(USAGE);
204
- }
205
-
206
- const api = await AgentsApi.create();
207
- const parsed = parseArgs(rest);
208
- try {
209
- switch (subcommand) {
210
- case "list": {
211
- const agents = await api.listAgents();
212
- if (parsed.flags.json) {
213
- // eslint-disable-next-line no-console
214
- console.log(JSON.stringify(agents, null, 2));
215
- } else {
216
- if (agents.length === 0) {
217
- // eslint-disable-next-line no-console
218
- console.log("No agents found.");
219
- } else {
220
- const headers = [
221
- "SLUG",
222
- "ADAPTER",
223
- "MODEL",
224
- "RATING",
225
- "REASON",
226
- "USAGE",
227
- "COST/1M",
228
- "HEALTH",
229
- "LAST CHECK",
230
- "CAPABILITIES",
231
- ];
232
- const maxWidths = [14, 14, 24, 6, 9, 10, 12, 10, 16, 36];
233
- const rows = agents.map((agent) => [
234
- agent.slug,
235
- agent.adapter,
236
- agent.defaultModel ?? "-",
237
- agent.rating !== undefined ? String(agent.rating) : "-",
238
- agent.reasoningRating !== undefined ? String(agent.reasoningRating) : "-",
239
- agent.bestUsage ?? "-",
240
- formatCost(agent.costPerMillion),
241
- agent.health?.status ?? "unknown",
242
- formatDate(agent.health?.lastCheckedAt),
243
- formatCapabilities(agent.capabilities),
244
- ]);
245
- // eslint-disable-next-line no-console
246
- console.log(formatBoxTable(headers, rows, maxWidths));
247
- }
248
- }
249
- break;
250
- }
251
- case "add": {
252
- const name = parsed.positionals[0];
253
- if (!name) throw new Error("agent add requires a slug/name\n\n" + USAGE);
254
- const capabilities =
255
- parseCapabilities(parsed.flags.capability) ??
256
- (String(parsed.flags.adapter ?? "openai-api") === "ollama-remote" ? DEFAULT_OLLAMA_CAPABILITIES : []);
257
- const prompts = parsePrompts(parsed.flags);
258
- const config = parseConfig(parsed.flags);
259
- const rating = parseRating(parsed.flags.rating);
260
- const reasoningRating = parseReasoningRating(parsed.flags["reasoning-rating"]);
261
- const bestUsage = parsed.flags["best-usage"] ? String(parsed.flags["best-usage"]) : undefined;
262
- const costPerMillion = parseCostPerMillion(parsed.flags["cost-per-million"]);
263
- const agent = await api.createAgent({
264
- slug: name,
265
- adapter: String(parsed.flags.adapter ?? "openai-api"),
266
- defaultModel: parsed.flags.model ? String(parsed.flags.model) : undefined,
267
- rating,
268
- reasoningRating,
269
- bestUsage,
270
- costPerMillion,
271
- capabilities,
272
- prompts,
273
- config,
274
- });
275
- // eslint-disable-next-line no-console
276
- console.log(`Created agent ${agent.slug}`);
277
- break;
278
- }
279
- case "update": {
280
- const name = parsed.positionals[0];
281
- if (!name) throw new Error("agent update requires a slug/name\n\n" + USAGE);
282
- const capabilities = parseCapabilities(parsed.flags.capability);
283
- const prompts = parsePrompts(parsed.flags);
284
- const config = parseConfig(parsed.flags);
285
- const rating = parseRating(parsed.flags.rating);
286
- const reasoningRating = parseReasoningRating(parsed.flags["reasoning-rating"]);
287
- const bestUsage = parsed.flags["best-usage"] ? String(parsed.flags["best-usage"]) : undefined;
288
- const costPerMillion = parseCostPerMillion(parsed.flags["cost-per-million"]);
289
- const agent = await api.updateAgent(name, {
290
- adapter: parsed.flags.adapter ? String(parsed.flags.adapter) : undefined,
291
- defaultModel: parsed.flags.model ? String(parsed.flags.model) : undefined,
292
- rating,
293
- reasoningRating,
294
- bestUsage,
295
- costPerMillion,
296
- capabilities,
297
- prompts,
298
- config,
299
- });
300
- // eslint-disable-next-line no-console
301
- console.log(`Updated agent ${agent.slug}`);
302
- break;
303
- }
304
- case "delete": {
305
- const name = parsed.positionals[0];
306
- if (!name) throw new Error("agent delete requires a slug/name\n\n" + USAGE);
307
- const force = Boolean(parsed.flags.force);
308
- await api.deleteAgent(name, force);
309
- // eslint-disable-next-line no-console
310
- console.log(`Deleted agent ${name}`);
311
- break;
312
- }
313
- case "auth": {
314
- const mode = parsed.positionals[0];
315
- const name = parsed.positionals[1];
316
- if (mode !== "set" || !name) {
317
- throw new Error("Usage: mcoda agent auth set <NAME> [--api-key <key>]");
318
- }
319
- let secret = parsed.flags["api-key"] ? String(parsed.flags["api-key"]) : "";
320
- if (!secret) {
321
- secret = await readSecret("Enter API key/token: ");
322
- }
323
- if (!secret) throw new Error("No secret provided");
324
- const result = await api.setAgentAuth(name, secret);
325
- // eslint-disable-next-line no-console
326
- console.log(`Stored credentials for ${name}; lastUpdatedAt=${result.lastUpdatedAt ?? "now"}`);
327
- break;
328
- }
329
- case "auth-status": {
330
- const name = parsed.positionals[0];
331
- if (!name) throw new Error("Usage: mcoda agent auth-status <NAME>");
332
- const agent = await api.getAgent(name);
333
- const payload = {
334
- slug: agent.slug,
335
- adapter: agent.adapter,
336
- configured: agent.auth?.configured ?? false,
337
- lastUpdatedAt: agent.auth?.lastUpdatedAt,
338
- lastVerifiedAt: agent.auth?.lastVerifiedAt,
339
- };
340
- if (parsed.flags.json) {
341
- // eslint-disable-next-line no-console
342
- console.log(JSON.stringify(payload, null, 2));
343
- } else {
344
- // eslint-disable-next-line no-console
345
- console.log("| slug | adapter | configured | lastUpdatedAt | lastVerifiedAt |");
346
- // eslint-disable-next-line no-console
347
- console.log("| --- | --- | --- | --- | --- |");
348
- // eslint-disable-next-line no-console
349
- console.log(
350
- `| ${payload.slug} | ${payload.adapter} | ${payload.configured} | ${payload.lastUpdatedAt ?? ""} | ${payload.lastVerifiedAt ?? ""} |`,
351
- );
352
- }
353
- break;
354
- }
355
- case "set-default": {
356
- const name = parsed.positionals[0];
357
- if (!name) throw new Error("Usage: mcoda agent set-default <NAME> [--workspace <path>]");
358
- const workspace = await WorkspaceResolver.resolveWorkspace({
359
- cwd: process.cwd(),
360
- explicitWorkspace: parsed.flags.workspace ? String(parsed.flags.workspace) : undefined,
361
- });
362
- await api.setDefaultAgent(name, workspace.workspaceId);
363
- // eslint-disable-next-line no-console
364
- console.log(`Default agent set to ${name} for workspace ${workspace.workspaceRoot}`);
365
- break;
366
- }
367
- default:
368
- throw new Error(`Unknown agent subcommand: ${subcommand}`);
369
- }
370
- } finally {
371
- await api.close();
372
- }
373
- }
374
- }