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,284 +0,0 @@
1
- import { strict as assert } from "node:assert";
2
- import { beforeEach, after, afterEach, test } from "node:test";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import fs from "node:fs";
6
- import { AgentService } from "../AgentService/AgentService.js";
7
- import { Connection, GlobalMigrations, GlobalRepository } from "@mcoda/db";
8
- import { CryptoHelper } from "@mcoda/shared";
9
-
10
- let repo: GlobalRepository;
11
- let service: AgentService;
12
- let dbPath: string;
13
- const originalSkipCliChecks = process.env.MCODA_SKIP_CLI_CHECKS;
14
- const originalCliStub = process.env.MCODA_CLI_STUB;
15
- process.env.MCODA_SKIP_CLI_CHECKS = "1";
16
- process.env.MCODA_CLI_STUB = "1";
17
- const originalFetch = global.fetch;
18
-
19
- beforeEach(async () => {
20
- dbPath = path.join(os.tmpdir(), `mcoda-agents-${Date.now()}-${Math.random()}.db`);
21
- const conn = await Connection.open(dbPath);
22
- await GlobalMigrations.run(conn.db);
23
- repo = new GlobalRepository(conn.db, conn);
24
- service = new AgentService(repo);
25
- });
26
-
27
- afterEach(async () => {
28
- global.fetch = originalFetch;
29
- await service.close();
30
- await fs.promises.unlink(dbPath).catch(() => {});
31
- });
32
-
33
- after(() => {
34
- process.env.MCODA_SKIP_CLI_CHECKS = originalSkipCliChecks;
35
- if (originalCliStub === undefined) {
36
- delete process.env.MCODA_CLI_STUB;
37
- } else {
38
- process.env.MCODA_CLI_STUB = originalCliStub;
39
- }
40
- });
41
-
42
- test("uses API adapter when secret is present", async () => {
43
- const agent = await repo.createAgent({
44
- slug: "api-agent",
45
- adapter: "openai-api",
46
- defaultModel: "gpt-4o",
47
- capabilities: ["chat"],
48
- prompts: { jobPrompt: "job", characterPrompt: "character" },
49
- });
50
- const encrypted = await CryptoHelper.encryptSecret("secret");
51
- await repo.setAgentAuth(agent.id, encrypted);
52
-
53
- const result = await service.invoke(agent.id, { input: "ping" });
54
- assert.equal(result.adapter, "openai-api");
55
- assert.equal(result.metadata?.mode, "api");
56
- assert.equal(result.model, "gpt-4o");
57
- });
58
-
59
- test("falls back to CLI adapter when configured and missing API key", async () => {
60
- const agent = await repo.createAgent({
61
- slug: "fallback-cli",
62
- adapter: "openai-api",
63
- config: { cliAdapter: "codex-cli" },
64
- capabilities: ["chat"],
65
- prompts: { jobPrompt: "job", characterPrompt: "character" },
66
- });
67
- const result = await service.invoke(agent.id, { input: "ping" });
68
- assert.equal(result.adapter, "codex-cli");
69
- assert.equal(result.metadata?.mode, "cli");
70
- });
71
-
72
- test("CLI adapter works without stored secret", async () => {
73
- const agent = await repo.createAgent({
74
- slug: "cli-agent",
75
- adapter: "codex-cli",
76
- capabilities: ["chat"],
77
- prompts: { jobPrompt: "job", characterPrompt: "character" },
78
- });
79
- const result = await service.invoke(agent.id, { input: "ping" });
80
- assert.equal(result.adapter, "codex-cli");
81
- assert.equal(result.metadata?.mode, "cli");
82
- });
83
-
84
- test("CLI adapter reports unreachable health when binary is missing", async () => {
85
- const agent = await repo.createAgent({
86
- slug: "cli-health",
87
- adapter: "codex-cli",
88
- capabilities: ["chat"],
89
- prompts: { jobPrompt: "job", characterPrompt: "character" },
90
- });
91
- const originalPath = process.env.PATH;
92
- const originalSkip = process.env.MCODA_SKIP_CLI_CHECKS;
93
- const originalStub = process.env.MCODA_CLI_STUB;
94
- process.env.MCODA_SKIP_CLI_CHECKS = "0";
95
- process.env.MCODA_CLI_STUB = "0";
96
- process.env.PATH = "";
97
- try {
98
- const health = await service.healthCheck(agent.id);
99
- assert.equal(health.status, "unreachable");
100
- assert.match(String((health.details as any)?.reason ?? ""), /missing_cli|cli_error/);
101
- } finally {
102
- process.env.PATH = originalPath;
103
- process.env.MCODA_SKIP_CLI_CHECKS = originalSkip;
104
- if (originalStub === undefined) {
105
- delete process.env.MCODA_CLI_STUB;
106
- } else {
107
- process.env.MCODA_CLI_STUB = originalStub;
108
- }
109
- }
110
- });
111
-
112
- test("local adapter is used when specified", async () => {
113
- const agent = await repo.createAgent({
114
- slug: "local",
115
- adapter: "local-model",
116
- capabilities: ["chat"],
117
- prompts: { jobPrompt: "job", characterPrompt: "character" },
118
- });
119
- const result = await service.invoke(agent.id, { input: "ping" });
120
- assert.equal(result.adapter, "local-model");
121
- assert.equal(result.metadata?.mode, "local");
122
- });
123
-
124
- test("prompts and capabilities are surfaced to adapters", async () => {
125
- const agent = await repo.createAgent({
126
- slug: "prompted",
127
- adapter: "openai-api",
128
- capabilities: ["chat"],
129
- prompts: { jobPrompt: "do work", characterPrompt: "be precise" },
130
- });
131
- const encrypted = await CryptoHelper.encryptSecret("secret");
132
- await repo.setAgentAuth(agent.id, encrypted);
133
- const result = await service.invoke(agent.id, { input: "ping" });
134
- const prompts = result.metadata?.prompts as any;
135
- assert.equal(prompts?.jobPrompt, "do work");
136
- });
137
-
138
- test("falls back to codex CLI when API secret is missing", async () => {
139
- const agent = await repo.createAgent({
140
- slug: "fallback-local",
141
- adapter: "openai-api",
142
- capabilities: ["chat"],
143
- prompts: { jobPrompt: "job", characterPrompt: "character" },
144
- });
145
- const result = await service.invoke(agent.id, { input: "hello" });
146
- assert.equal(result.adapter, "codex-cli");
147
- });
148
-
149
- test("fills defaults when prompts are missing", async () => {
150
- const agent = await repo.createAgent({
151
- slug: "missing-prompts",
152
- adapter: "openai-api",
153
- capabilities: ["chat"],
154
- });
155
- const encrypted = await CryptoHelper.encryptSecret("secret");
156
- await repo.setAgentAuth(agent.id, encrypted);
157
- const result = await service.invoke(agent.id, { input: "ping" });
158
- const prompts = result.metadata?.prompts as any;
159
- assert.equal(prompts?.jobPrompt?.length > 0, true);
160
- });
161
-
162
- test("service does not open workspace DB (global-only guardrail)", async () => {
163
- // trying to resolve a workspace id should still hit the global repo we created
164
- const agent = await repo.createAgent({
165
- slug: "global-only",
166
- adapter: "local-model",
167
- capabilities: ["chat"],
168
- prompts: { jobPrompt: "job", characterPrompt: "character" },
169
- });
170
- const result = await service.invoke(agent.id, { input: "guard" });
171
- assert.equal(result.adapter, "local-model");
172
- });
173
-
174
- test("ollama-remote invokes with configured baseUrl and model", async () => {
175
- const agent = await repo.createAgent({
176
- slug: "remote",
177
- adapter: "ollama-remote",
178
- defaultModel: "gpt-oss:20b",
179
- capabilities: ["plan", "code_write"],
180
- config: { baseUrl: "http://localhost:11434" },
181
- });
182
- global.fetch = async (input: any, init?: any) => {
183
- const url = typeof input === "string" ? input : String((input as any)?.url ?? "");
184
- assert.match(url, /api\/generate/);
185
- assert.equal(init?.method, "POST");
186
- return new Response(JSON.stringify({ response: "hi there" }), {
187
- status: 200,
188
- headers: { "content-type": "application/json" },
189
- });
190
- };
191
- const result = await service.invoke(agent.id, { input: "ping" });
192
- assert.equal(result.adapter, "ollama-remote");
193
- assert.equal(result.output, "hi there");
194
- assert.equal(result.model, "gpt-oss:20b");
195
- });
196
-
197
- test("zhipu-api invokes with configured baseUrl, model, and thinking", async () => {
198
- const agent = await repo.createAgent({
199
- slug: "zhipu",
200
- adapter: "zhipu-api",
201
- defaultModel: "glm-4.7",
202
- capabilities: ["chat"],
203
- config: { baseUrl: "https://api.z.ai/api/coding/paas/v4", thinking: true, temperature: 0.1 },
204
- });
205
- const encrypted = await CryptoHelper.encryptSecret("secret");
206
- await repo.setAgentAuth(agent.id, encrypted);
207
- global.fetch = async (input: any, init?: any) => {
208
- const url = typeof input === "string" ? input : String((input as any)?.url ?? "");
209
- assert.match(url, /https:\/\/api\.z\.ai\/api\/coding\/paas\/v4\/chat\/completions/);
210
- assert.equal(init?.method, "POST");
211
- const headers = init?.headers as Record<string, string>;
212
- assert.equal(headers?.Authorization, "Bearer secret");
213
- const body = JSON.parse(String(init?.body ?? ""));
214
- assert.equal(body.model, "glm-4.7");
215
- assert.equal(body.thinking, true);
216
- assert.equal(body.temperature, 0.1);
217
- assert.equal(body.stream, false);
218
- assert.equal(body.messages?.[0]?.content, "ping");
219
- return new Response(JSON.stringify({ choices: [{ message: { content: "pong" } }], usage: { total_tokens: 5 } }), {
220
- status: 200,
221
- headers: { "content-type": "application/json" },
222
- });
223
- };
224
- const result = await service.invoke(agent.id, { input: "ping" });
225
- assert.equal(result.adapter, "zhipu-api");
226
- assert.equal(result.output, "pong");
227
- assert.equal(result.model, "glm-4.7");
228
- assert.equal((result.metadata as any)?.usage?.total_tokens, 5);
229
- });
230
-
231
- test("gateway handoff is appended to agent input when configured", async () => {
232
- const agent = await repo.createAgent({
233
- slug: "handoff-agent",
234
- adapter: "openai-api",
235
- defaultModel: "gpt-4o",
236
- capabilities: ["chat"],
237
- prompts: { jobPrompt: "job", characterPrompt: "character" },
238
- });
239
- const encrypted = await CryptoHelper.encryptSecret("secret");
240
- await repo.setAgentAuth(agent.id, encrypted);
241
- const handoffPath = path.join(os.tmpdir(), `mcoda-handoff-${Date.now()}-${Math.random()}.md`);
242
- await fs.promises.writeFile(handoffPath, "Use the gateway summary when deciding next steps.", "utf8");
243
- const prevPath = process.env.MCODA_GATEWAY_HANDOFF_PATH;
244
- delete process.env.MCODA_GATEWAY_HANDOFF;
245
- process.env.MCODA_GATEWAY_HANDOFF_PATH = handoffPath;
246
- try {
247
- const result = await service.invoke(agent.id, { input: "ping", metadata: { command: "work-on-tasks" } });
248
- assert.match(result.output, /\[Gateway handoff\]/);
249
- assert.match(result.output, /Use the gateway summary/);
250
- } finally {
251
- if (prevPath === undefined) {
252
- delete process.env.MCODA_GATEWAY_HANDOFF_PATH;
253
- } else {
254
- process.env.MCODA_GATEWAY_HANDOFF_PATH = prevPath;
255
- }
256
- await fs.promises.unlink(handoffPath).catch(() => {});
257
- }
258
- });
259
-
260
- test("ollama-remote health returns unreachable on network error", async () => {
261
- const agent = await repo.createAgent({
262
- slug: "remote-health",
263
- adapter: "ollama-remote",
264
- defaultModel: "gpt-oss:20b",
265
- capabilities: ["plan"],
266
- config: { baseUrl: "http://bad-host" },
267
- });
268
- global.fetch = async () => {
269
- throw new Error("network down");
270
- };
271
- const health = await service.healthCheck(agent.id);
272
- assert.equal(health.status, "unreachable");
273
- assert.equal((health.details as any)?.baseUrl, "http://bad-host");
274
- });
275
-
276
- test("ollama-remote rejects when baseUrl is missing", async () => {
277
- const agent = await repo.createAgent({
278
- slug: "remote-missing",
279
- adapter: "ollama-remote",
280
- defaultModel: "gpt-oss:20b",
281
- capabilities: ["plan"],
282
- });
283
- await assert.rejects(() => service.invoke(agent.id, { input: "ping" }), /baseUrl/i);
284
- });
@@ -1,29 +0,0 @@
1
- import { Agent, AgentAuthMetadata, AgentHealth, AgentPromptManifest } from "@mcoda/shared";
2
- export interface AdapterConfig {
3
- agent: Agent;
4
- capabilities: string[];
5
- model?: string;
6
- apiKey?: string;
7
- prompts?: AgentPromptManifest;
8
- authMetadata?: AgentAuthMetadata;
9
- adapter?: string;
10
- }
11
- export interface AgentAdapter {
12
- getCapabilities(): Promise<string[]>;
13
- healthCheck(): Promise<AgentHealth>;
14
- invoke?(request: InvocationRequest): Promise<InvocationResult>;
15
- invokeStream?(_input: InvocationRequest): AsyncGenerator<InvocationResult, void, unknown>;
16
- }
17
- export interface InvocationRequest {
18
- input: string;
19
- adapterType?: string;
20
- authMode?: "api" | "cli" | "local" | "none";
21
- metadata?: Record<string, unknown>;
22
- }
23
- export interface InvocationResult {
24
- output: string;
25
- adapter: string;
26
- model?: string;
27
- metadata?: Record<string, unknown>;
28
- }
29
- //# sourceMappingURL=AdapterTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdapterTypes.d.ts","sourceRoot":"","sources":["AdapterTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE3F,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,CAAC,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/D,YAAY,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,32 +0,0 @@
1
- import { Agent, AgentAuthMetadata, AgentHealth, AgentPromptManifest } from "@mcoda/shared";
2
-
3
- export interface AdapterConfig {
4
- agent: Agent;
5
- capabilities: string[];
6
- model?: string;
7
- apiKey?: string;
8
- prompts?: AgentPromptManifest;
9
- authMetadata?: AgentAuthMetadata;
10
- adapter?: string;
11
- }
12
-
13
- export interface AgentAdapter {
14
- getCapabilities(): Promise<string[]>;
15
- healthCheck(): Promise<AgentHealth>;
16
- invoke?(request: InvocationRequest): Promise<InvocationResult>;
17
- invokeStream?(_input: InvocationRequest): AsyncGenerator<InvocationResult, void, unknown>;
18
- }
19
-
20
- export interface InvocationRequest {
21
- input: string;
22
- adapterType?: string;
23
- authMode?: "api" | "cli" | "local" | "none";
24
- metadata?: Record<string, unknown>;
25
- }
26
-
27
- export interface InvocationResult {
28
- output: string;
29
- adapter: string;
30
- model?: string;
31
- metadata?: Record<string, unknown>;
32
- }
File without changes
@@ -1,11 +0,0 @@
1
- import { AgentHealth } from "@mcoda/shared";
2
- import { AdapterConfig, AgentAdapter, InvocationRequest, InvocationResult } from "../AdapterTypes.js";
3
- export declare class CodexAdapter implements AgentAdapter {
4
- private config;
5
- constructor(config: AdapterConfig);
6
- getCapabilities(): Promise<string[]>;
7
- healthCheck(): Promise<AgentHealth>;
8
- invoke(request: InvocationRequest): Promise<InvocationResult>;
9
- invokeStream(request: InvocationRequest): AsyncGenerator<InvocationResult, void, unknown>;
10
- }
11
- //# sourceMappingURL=CodexAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodexAdapter.d.ts","sourceRoot":"","sources":["CodexAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtG,qBAAa,YAAa,YAAW,YAAY;IACnC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEnC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIpC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAWnC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe5D,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC;CAWjG"}
@@ -1,43 +0,0 @@
1
- export class CodexAdapter {
2
- constructor(config) {
3
- this.config = config;
4
- }
5
- async getCapabilities() {
6
- return this.config.capabilities;
7
- }
8
- async healthCheck() {
9
- // CLI-based adapter can operate without stored secrets.
10
- return {
11
- agentId: this.config.agent.id,
12
- status: "healthy",
13
- lastCheckedAt: new Date().toISOString(),
14
- latencyMs: 0,
15
- details: { adapter: "codex-cli" },
16
- };
17
- }
18
- async invoke(request) {
19
- const authMode = this.config.apiKey ? "api" : "cli";
20
- return {
21
- output: `codex-stub:${request.input}`,
22
- adapter: this.config.adapter ?? "codex-cli",
23
- model: this.config.model,
24
- metadata: {
25
- mode: authMode,
26
- capabilities: this.config.capabilities,
27
- adapterType: this.config.adapter ?? "codex-cli",
28
- authMode,
29
- },
30
- };
31
- }
32
- async *invokeStream(request) {
33
- yield {
34
- output: `codex-stream:${request.input}`,
35
- adapter: this.config.adapter ?? "codex-cli",
36
- model: this.config.model,
37
- metadata: {
38
- mode: this.config.apiKey ? "api" : "cli",
39
- streaming: true,
40
- },
41
- };
42
- }
43
- }
@@ -1,63 +0,0 @@
1
- import { AgentHealth } from "@mcoda/shared";
2
- import { AdapterConfig, AgentAdapter, InvocationRequest, InvocationResult } from "../AdapterTypes.js";
3
- import { cliHealthy, runCodexExec, runCodexExecStream } from "./CodexCliRunner.js";
4
-
5
- export class CodexAdapter implements AgentAdapter {
6
- constructor(private config: AdapterConfig) {}
7
-
8
- async getCapabilities(): Promise<string[]> {
9
- return this.config.capabilities;
10
- }
11
-
12
- async healthCheck(): Promise<AgentHealth> {
13
- const started = Date.now();
14
- const result = cliHealthy();
15
- return {
16
- agentId: this.config.agent.id,
17
- status: result.ok ? "healthy" : "unreachable",
18
- lastCheckedAt: new Date().toISOString(),
19
- latencyMs: Date.now() - started,
20
- details: { adapter: "codex-cli", ...result.details },
21
- };
22
- }
23
-
24
- async invoke(request: InvocationRequest): Promise<InvocationResult> {
25
- const health = cliHealthy(true);
26
- const cliDetails = health.details;
27
- const result = runCodexExec(request.input, this.config.model);
28
- return {
29
- output: result.output,
30
- adapter: this.config.adapter ?? "codex-cli",
31
- model: this.config.model,
32
- metadata: {
33
- mode: "cli",
34
- capabilities: this.config.capabilities,
35
- adapterType: this.config.adapter ?? "codex-cli",
36
- authMode: "cli",
37
- cli: cliDetails,
38
- raw: result.raw,
39
- },
40
- };
41
- }
42
-
43
- async *invokeStream(request: InvocationRequest): AsyncGenerator<InvocationResult, void, unknown> {
44
- const health = cliHealthy(true);
45
- const cliDetails = health.details;
46
- for await (const chunk of runCodexExecStream(request.input, this.config.model)) {
47
- yield {
48
- output: chunk.output,
49
- adapter: this.config.adapter ?? "codex-cli",
50
- model: this.config.model,
51
- metadata: {
52
- mode: "cli",
53
- capabilities: this.config.capabilities,
54
- adapterType: this.config.adapter ?? "codex-cli",
55
- authMode: "cli",
56
- cli: cliDetails,
57
- raw: chunk.raw,
58
- streaming: true,
59
- },
60
- };
61
- }
62
- }
63
- }
@@ -1,154 +0,0 @@
1
- import { spawn, spawnSync } from "node:child_process";
2
-
3
- const CODEX_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
4
-
5
- export const cliHealthy = (throwOnError = false): { ok: boolean; details?: Record<string, unknown> } => {
6
- if (process.env.MCODA_CLI_STUB === "1") {
7
- return { ok: true, details: { stub: true } };
8
- }
9
- if (process.env.MCODA_SKIP_CLI_CHECKS === "1") {
10
- return { ok: true, details: { skipped: true } };
11
- }
12
- const result = spawnSync("codex", ["--version"], { encoding: "utf8", maxBuffer: CODEX_MAX_BUFFER_BYTES });
13
- if (result.error) {
14
- const details = { reason: "missing_cli", error: result.error.message };
15
- if (throwOnError) {
16
- const error = new Error(`AUTH_ERROR: codex CLI unavailable (${details.reason})`);
17
- (error as any).details = details;
18
- throw error;
19
- }
20
- return { ok: false, details };
21
- }
22
- if (result.status !== 0) {
23
- const details = { reason: "cli_error", exitCode: result.status, stderr: result.stderr?.toString() };
24
- if (throwOnError) {
25
- const error = new Error(`AUTH_ERROR: codex CLI unavailable (${details.reason})`);
26
- (error as any).details = details;
27
- throw error;
28
- }
29
- return { ok: false, details };
30
- }
31
- return { ok: true, details: { version: result.stdout?.toString().trim() } };
32
- };
33
-
34
- export const runCodexExec = (prompt: string, model?: string): { output: string; raw: string } => {
35
- if (process.env.MCODA_CLI_STUB === "1") {
36
- const output = `qa-stub:${prompt}`;
37
- const raw = JSON.stringify({ type: "item.completed", item: { type: "agent_message", text: output } });
38
- return { output, raw };
39
- }
40
- const health = cliHealthy(true);
41
- const args = ["exec", "--model", model ?? "gpt-5.1-codex-max", "--full-auto", "--json"];
42
- const result = spawnSync("codex", args, {
43
- input: prompt,
44
- encoding: "utf8",
45
- maxBuffer: CODEX_MAX_BUFFER_BYTES,
46
- });
47
- if (result.error) {
48
- const error = new Error(`AUTH_ERROR: codex CLI failed (${result.error.message})`);
49
- (error as any).details = { reason: "cli_error", cli: health.details };
50
- throw error;
51
- }
52
- if (result.status !== 0) {
53
- const error = new Error(`AUTH_ERROR: codex CLI failed (exit ${result.status}): ${result.stderr ?? result.stdout ?? ""}`);
54
- (error as any).details = { reason: "cli_error", exitCode: result.status, stderr: result.stderr };
55
- throw error;
56
- }
57
-
58
- const raw = result.stdout?.toString() ?? "";
59
- const lines = raw.split(/\r?\n/).filter((l) => l.trim().length > 0);
60
- let message: string | undefined;
61
- for (const line of lines) {
62
- try {
63
- const parsed = JSON.parse(line);
64
- if (parsed?.type === "item.completed" && parsed?.item?.type === "agent_message" && typeof parsed?.item?.text === "string") {
65
- message = parsed.item.text;
66
- }
67
- } catch {
68
- /* ignore parse errors */
69
- }
70
- }
71
- if (!message) {
72
- message = lines[lines.length - 1] ?? "";
73
- }
74
- return { output: message.trim(), raw };
75
- };
76
-
77
- export async function* runCodexExecStream(
78
- prompt: string,
79
- model?: string,
80
- ): AsyncGenerator<{ output: string; raw: string }, void, unknown> {
81
- if (process.env.MCODA_CLI_STUB === "1") {
82
- const output = `qa-stub:${prompt}\n`;
83
- const raw = JSON.stringify({ type: "item.delta", item: { type: "agent_message", text: output } });
84
- yield { output, raw };
85
- return;
86
- }
87
- cliHealthy(true);
88
- const args = ["exec", "--model", model ?? "gpt-5.1-codex-max", "--full-auto", "--json"];
89
- const child = spawn("codex", args, { stdio: ["pipe", "pipe", "pipe"] });
90
- child.stdin.write(prompt);
91
- child.stdin.end();
92
-
93
- let stderr = "";
94
- child.stderr?.setEncoding("utf8");
95
- child.stderr?.on("data", (chunk) => {
96
- stderr += chunk.toString();
97
- });
98
-
99
- const closePromise = new Promise<number>((resolve, reject) => {
100
- child.on("error", (err) => reject(err));
101
- child.on("close", (code) => resolve(code ?? 0));
102
- });
103
-
104
- const parseLine = (line: string): string | null => {
105
- try {
106
- const parsed = JSON.parse(line);
107
- const item = parsed?.item;
108
- if (item?.type === "agent_message" && typeof item.text === "string") {
109
- return item.text;
110
- }
111
- // The codex CLI emits many JSONL event types (thread/turn/task/tool events).
112
- // We only want the agent's textual output here.
113
- return null;
114
- } catch {
115
- // `codex exec --json` is expected to emit JSONL, but it can still print non-JSON
116
- // preamble lines (e.g., "Reading prompt from stdin..."). Treat those as noise.
117
- return null;
118
- }
119
- };
120
-
121
- const normalizeOutput = (value: string): string => (value.endsWith("\n") ? value : `${value}\n`);
122
-
123
- const stream = child.stdout;
124
- stream?.setEncoding("utf8");
125
- let buffer = "";
126
- for await (const chunk of stream ?? []) {
127
- buffer += chunk;
128
- let idx: number;
129
- while ((idx = buffer.indexOf("\n")) !== -1) {
130
- const line = buffer.slice(0, idx);
131
- buffer = buffer.slice(idx + 1);
132
- const normalized = line.replace(/\r$/, "");
133
- const parsed = parseLine(normalized);
134
- if (!parsed) continue;
135
- const output = normalizeOutput(parsed);
136
- yield { output, raw: normalized };
137
- }
138
- }
139
- const trailing = buffer.replace(/\r$/, "");
140
- if (trailing) {
141
- const parsed = parseLine(trailing);
142
- if (parsed) {
143
- const output = normalizeOutput(parsed);
144
- yield { output, raw: trailing };
145
- }
146
- }
147
-
148
- const exitCode = await closePromise;
149
- if (exitCode !== 0) {
150
- const error = new Error(`AUTH_ERROR: codex CLI failed (exit ${exitCode}): ${stderr || "no output"}`);
151
- (error as any).details = { reason: "cli_error", exitCode, stderr };
152
- throw error;
153
- }
154
- }
File without changes
@@ -1,11 +0,0 @@
1
- import { AgentHealth } from "@mcoda/shared";
2
- import { AdapterConfig, AgentAdapter, InvocationRequest, InvocationResult } from "../AdapterTypes.js";
3
- export declare class GeminiAdapter implements AgentAdapter {
4
- private config;
5
- constructor(config: AdapterConfig);
6
- getCapabilities(): Promise<string[]>;
7
- healthCheck(): Promise<AgentHealth>;
8
- invoke(request: InvocationRequest): Promise<InvocationResult>;
9
- invokeStream(request: InvocationRequest): AsyncGenerator<InvocationResult, void, unknown>;
10
- }
11
- //# sourceMappingURL=GeminiAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GeminiAdapter.d.ts","sourceRoot":"","sources":["GeminiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtG,qBAAa,aAAc,YAAW,YAAY;IACpC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEnC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIpC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAUnC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe5D,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC;CAWjG"}