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.
- package/CHANGELOG.md +2 -2
- package/README.md +9 -300
- package/dist/bin/McodaEntrypoint.d.ts +5 -0
- package/dist/bin/McodaEntrypoint.d.ts.map +1 -0
- package/dist/bin/McodaEntrypoint.js +175 -0
- package/dist/commands/agents/AgentsCommands.d.ts +4 -0
- package/dist/commands/agents/AgentsCommands.d.ts.map +1 -0
- package/dist/commands/agents/AgentsCommands.js +376 -0
- package/dist/commands/agents/GatewayAgentCommand.d.ts +4 -0
- package/dist/commands/agents/GatewayAgentCommand.d.ts.map +1 -0
- package/dist/commands/agents/GatewayAgentCommand.js +583 -0
- package/dist/commands/agents/TestAgentCommand.d.ts +4 -0
- package/dist/commands/agents/TestAgentCommand.d.ts.map +1 -0
- package/dist/commands/agents/TestAgentCommand.js +57 -0
- package/dist/commands/backlog/BacklogCommands.d.ts +17 -0
- package/dist/commands/backlog/BacklogCommands.d.ts.map +1 -0
- package/dist/commands/backlog/BacklogCommands.js +260 -0
- package/dist/commands/backlog/OrderTasksCommand.d.ts +16 -0
- package/dist/commands/backlog/OrderTasksCommand.d.ts.map +1 -0
- package/dist/commands/backlog/OrderTasksCommand.js +211 -0
- package/dist/commands/backlog/TaskShowCommands.d.ts +16 -0
- package/dist/commands/backlog/TaskShowCommands.d.ts.map +1 -0
- package/dist/commands/backlog/TaskShowCommands.js +275 -0
- package/dist/commands/docs/DocsCommands.d.ts +37 -0
- package/dist/commands/docs/DocsCommands.d.ts.map +1 -0
- package/dist/commands/docs/DocsCommands.js +381 -0
- package/dist/commands/estimate/EstimateCommands.d.ts +24 -0
- package/dist/commands/estimate/EstimateCommands.d.ts.map +1 -0
- package/dist/commands/estimate/EstimateCommands.js +259 -0
- package/dist/commands/jobs/JobsCommands.d.ts +24 -0
- package/dist/commands/jobs/JobsCommands.d.ts.map +1 -0
- package/dist/commands/jobs/JobsCommands.js +535 -0
- package/dist/commands/openapi/OpenapiCommands.d.ts +14 -0
- package/dist/commands/openapi/OpenapiCommands.d.ts.map +1 -0
- package/dist/commands/openapi/OpenapiCommands.js +157 -0
- package/dist/commands/planning/CreateTasksCommand.d.ts +17 -0
- package/dist/commands/planning/CreateTasksCommand.d.ts.map +1 -0
- package/dist/commands/planning/CreateTasksCommand.js +134 -0
- package/dist/commands/planning/MigrateTasksCommand.d.ts +15 -0
- package/dist/commands/planning/MigrateTasksCommand.d.ts.map +1 -0
- package/dist/commands/planning/MigrateTasksCommand.js +95 -0
- package/dist/commands/planning/PlanningCommands.d.ts +3 -0
- package/dist/commands/planning/PlanningCommands.d.ts.map +1 -0
- package/dist/commands/planning/PlanningCommands.js +2 -0
- package/dist/commands/planning/QaTasksCommand.d.ts +30 -0
- package/dist/commands/planning/QaTasksCommand.d.ts.map +1 -0
- package/dist/commands/planning/QaTasksCommand.js +293 -0
- package/dist/commands/planning/RefineTasksCommand.d.ts +30 -0
- package/dist/commands/planning/RefineTasksCommand.d.ts.map +1 -0
- package/dist/commands/planning/RefineTasksCommand.js +365 -0
- package/dist/commands/review/CodeReviewCommand.d.ts +21 -0
- package/dist/commands/review/CodeReviewCommand.d.ts.map +1 -0
- package/dist/commands/review/CodeReviewCommand.js +236 -0
- package/dist/commands/routing/RoutingCommands.d.ts +7 -0
- package/dist/commands/routing/RoutingCommands.d.ts.map +1 -0
- package/dist/commands/routing/RoutingCommands.js +484 -0
- package/dist/commands/telemetry/TelemetryCommands.d.ts +26 -0
- package/dist/commands/telemetry/TelemetryCommands.d.ts.map +1 -0
- package/dist/commands/telemetry/TelemetryCommands.js +313 -0
- package/dist/commands/update/UpdateCommands.d.ts +4 -0
- package/dist/commands/update/UpdateCommands.d.ts.map +1 -0
- package/dist/commands/update/UpdateCommands.js +280 -0
- package/dist/commands/work/WorkOnTasksCommand.d.ts +21 -0
- package/dist/commands/work/WorkOnTasksCommand.d.ts.map +1 -0
- package/dist/commands/work/WorkOnTasksCommand.js +238 -0
- package/dist/commands/workspace/SetWorkspaceCommand.d.ts +9 -0
- package/dist/commands/workspace/SetWorkspaceCommand.d.ts.map +1 -0
- package/dist/commands/workspace/SetWorkspaceCommand.js +128 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/package.json +31 -16
- package/.editorconfig +0 -9
- package/.eslintrc.cjs +0 -12
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -29
- package/.github/ISSUE_TEMPLATE/config.yml +0 -5
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/workflows/ci.yml +0 -37
- package/.github/workflows/nightly.yml +0 -38
- package/.github/workflows/release-dry-run.yml +0 -40
- package/.github/workflows/release-please.yml +0 -22
- package/.github/workflows/release.yml +0 -139
- package/.prettierrc +0 -5
- package/.release-please-manifest.json +0 -8
- package/CLA.md +0 -42
- package/CONTRIBUTING.md +0 -38
- package/docs/oss_publishing_plan.md +0 -41
- package/docs/pdr/.gitkeep +0 -0
- package/docs/quality_gates.md +0 -32
- package/docs/rfp/.gitkeep +0 -0
- package/docs/sds/sds.md +0 -11963
- package/docs/usage.md +0 -72
- package/openapi/gen-openapi.ts +0 -1
- package/openapi/generated/clients/.gitkeep +0 -0
- package/openapi/generated/types/.gitkeep +0 -0
- package/openapi/generated/types/index.ts +0 -118
- package/openapi/mcoda.yaml +0 -2063
- package/pack-mcoda.sh +0 -88
- package/packages/agents/CHANGELOG.md +0 -7
- package/packages/agents/LICENSE +0 -21
- package/packages/agents/README.md +0 -9
- package/packages/agents/package.json +0 -41
- package/packages/agents/src/AgentService/.gitkeep +0 -0
- package/packages/agents/src/AgentService/AgentService.d.ts +0 -21
- package/packages/agents/src/AgentService/AgentService.d.ts.map +0 -1
- package/packages/agents/src/AgentService/AgentService.js +0 -141
- package/packages/agents/src/AgentService/AgentService.ts +0 -308
- package/packages/agents/src/__tests__/AgentService.test.ts +0 -284
- package/packages/agents/src/adapters/AdapterTypes.d.ts +0 -29
- package/packages/agents/src/adapters/AdapterTypes.d.ts.map +0 -1
- package/packages/agents/src/adapters/AdapterTypes.js +0 -1
- package/packages/agents/src/adapters/AdapterTypes.ts +0 -32
- package/packages/agents/src/adapters/codex/.gitkeep +0 -0
- package/packages/agents/src/adapters/codex/CodexAdapter.d.ts +0 -11
- package/packages/agents/src/adapters/codex/CodexAdapter.d.ts.map +0 -1
- package/packages/agents/src/adapters/codex/CodexAdapter.js +0 -43
- package/packages/agents/src/adapters/codex/CodexAdapter.ts +0 -63
- package/packages/agents/src/adapters/codex/CodexCliRunner.ts +0 -154
- package/packages/agents/src/adapters/gemini/.gitkeep +0 -0
- package/packages/agents/src/adapters/gemini/GeminiAdapter.d.ts +0 -11
- package/packages/agents/src/adapters/gemini/GeminiAdapter.d.ts.map +0 -1
- package/packages/agents/src/adapters/gemini/GeminiAdapter.js +0 -42
- package/packages/agents/src/adapters/gemini/GeminiAdapter.ts +0 -58
- package/packages/agents/src/adapters/gemini/GeminiCliRunner.ts +0 -75
- package/packages/agents/src/adapters/local/.gitkeep +0 -0
- package/packages/agents/src/adapters/local/LocalAdapter.d.ts +0 -11
- package/packages/agents/src/adapters/local/LocalAdapter.d.ts.map +0 -1
- package/packages/agents/src/adapters/local/LocalAdapter.js +0 -38
- package/packages/agents/src/adapters/local/LocalAdapter.ts +0 -43
- package/packages/agents/src/adapters/ollama/OllamaCliAdapter.ts +0 -58
- package/packages/agents/src/adapters/ollama/OllamaCliRunner.ts +0 -70
- package/packages/agents/src/adapters/ollama/OllamaRemoteAdapter.ts +0 -205
- package/packages/agents/src/adapters/openai/.gitkeep +0 -0
- package/packages/agents/src/adapters/openai/OpenAiAdapter.d.ts +0 -11
- package/packages/agents/src/adapters/openai/OpenAiAdapter.d.ts.map +0 -1
- package/packages/agents/src/adapters/openai/OpenAiAdapter.js +0 -51
- package/packages/agents/src/adapters/openai/OpenAiAdapter.ts +0 -56
- package/packages/agents/src/adapters/openai/OpenAiCliAdapter.ts +0 -62
- package/packages/agents/src/adapters/qa/.gitkeep +0 -0
- package/packages/agents/src/adapters/qa/QaAdapter.d.ts +0 -11
- package/packages/agents/src/adapters/qa/QaAdapter.d.ts.map +0 -1
- package/packages/agents/src/adapters/qa/QaAdapter.js +0 -37
- package/packages/agents/src/adapters/qa/QaAdapter.ts +0 -42
- package/packages/agents/src/adapters/zhipu/ZhipuApiAdapter.ts +0 -273
- package/packages/agents/src/index.d.ts +0 -8
- package/packages/agents/src/index.d.ts.map +0 -1
- package/packages/agents/src/index.js +0 -7
- package/packages/agents/src/index.ts +0 -11
- package/packages/agents/tsconfig.json +0 -14
- package/packages/cli/CHANGELOG.md +0 -7
- package/packages/cli/LICENSE +0 -21
- package/packages/cli/README.md +0 -23
- package/packages/cli/package.json +0 -61
- package/packages/cli/src/__tests__/AgentsCommands.test.ts +0 -137
- package/packages/cli/src/__tests__/BacklogCommands.test.ts +0 -40
- package/packages/cli/src/__tests__/CodeReviewCommand.test.ts +0 -594
- package/packages/cli/src/__tests__/CreateTasksCommand.test.ts +0 -40
- package/packages/cli/src/__tests__/DocsCommands.test.ts +0 -41
- package/packages/cli/src/__tests__/EstimateCommands.test.ts +0 -54
- package/packages/cli/src/__tests__/JobsCommands.behavior.test.ts +0 -311
- package/packages/cli/src/__tests__/JobsCommands.test.ts +0 -49
- package/packages/cli/src/__tests__/MigrateTasksCommand.test.ts +0 -36
- package/packages/cli/src/__tests__/OpenapiCommands.test.ts +0 -34
- package/packages/cli/src/__tests__/OrderTasksCommand.test.ts +0 -150
- package/packages/cli/src/__tests__/PlanningCommands.test.ts +0 -9
- package/packages/cli/src/__tests__/QaTasksCommand.test.ts +0 -58
- package/packages/cli/src/__tests__/RefineTasksCommand.test.ts +0 -63
- package/packages/cli/src/__tests__/RoutingCommands.test.ts +0 -302
- package/packages/cli/src/__tests__/SetWorkspaceCommand.test.ts +0 -18
- package/packages/cli/src/__tests__/TaskShowCommands.test.ts +0 -130
- package/packages/cli/src/__tests__/TelemetryCommands.test.ts +0 -35
- package/packages/cli/src/__tests__/TestAgentCommand.test.ts +0 -41
- package/packages/cli/src/__tests__/UpdateCommands.test.ts +0 -292
- package/packages/cli/src/__tests__/WorkOnTasksCommand.test.ts +0 -42
- package/packages/cli/src/bin/.gitkeep +0 -0
- package/packages/cli/src/bin/McodaEntrypoint.ts +0 -180
- package/packages/cli/src/commands/agents/.gitkeep +0 -0
- package/packages/cli/src/commands/agents/AgentsCommands.ts +0 -374
- package/packages/cli/src/commands/agents/GatewayAgentCommand.ts +0 -621
- package/packages/cli/src/commands/agents/TestAgentCommand.ts +0 -63
- package/packages/cli/src/commands/backlog/.gitkeep +0 -0
- package/packages/cli/src/commands/backlog/BacklogCommands.ts +0 -286
- package/packages/cli/src/commands/backlog/OrderTasksCommand.ts +0 -237
- package/packages/cli/src/commands/backlog/TaskShowCommands.ts +0 -289
- package/packages/cli/src/commands/docs/.gitkeep +0 -0
- package/packages/cli/src/commands/docs/DocsCommands.ts +0 -413
- package/packages/cli/src/commands/estimate/EstimateCommands.ts +0 -290
- package/packages/cli/src/commands/jobs/.gitkeep +0 -0
- package/packages/cli/src/commands/jobs/JobsCommands.ts +0 -595
- package/packages/cli/src/commands/openapi/OpenapiCommands.ts +0 -167
- package/packages/cli/src/commands/planning/.gitkeep +0 -0
- package/packages/cli/src/commands/planning/CreateTasksCommand.ts +0 -149
- package/packages/cli/src/commands/planning/MigrateTasksCommand.ts +0 -105
- package/packages/cli/src/commands/planning/PlanningCommands.ts +0 -1
- package/packages/cli/src/commands/planning/QaTasksCommand.ts +0 -320
- package/packages/cli/src/commands/planning/RefineTasksCommand.ts +0 -408
- package/packages/cli/src/commands/review/CodeReviewCommand.ts +0 -262
- package/packages/cli/src/commands/routing/.gitkeep +0 -0
- package/packages/cli/src/commands/routing/RoutingCommands.ts +0 -554
- package/packages/cli/src/commands/telemetry/.gitkeep +0 -0
- package/packages/cli/src/commands/telemetry/TelemetryCommands.ts +0 -348
- package/packages/cli/src/commands/update/.gitkeep +0 -0
- package/packages/cli/src/commands/update/UpdateCommands.ts +0 -301
- package/packages/cli/src/commands/work/WorkOnTasksCommand.ts +0 -264
- package/packages/cli/src/commands/workspace/SetWorkspaceCommand.ts +0 -132
- package/packages/cli/test/packaging_guardrails.test.js +0 -75
- package/packages/cli/tsconfig.json +0 -20
- package/packages/core/CHANGELOG.md +0 -7
- package/packages/core/LICENSE +0 -21
- package/packages/core/README.md +0 -9
- package/packages/core/package.json +0 -45
- package/packages/core/src/__tests__/SmokeClasses.test.ts +0 -32
- package/packages/core/src/api/AgentsApi.ts +0 -219
- package/packages/core/src/api/QaTasksApi.ts +0 -38
- package/packages/core/src/api/TasksApi.ts +0 -35
- package/packages/core/src/api/__tests__/AgentsApi.test.ts +0 -203
- package/packages/core/src/api/__tests__/QaTasksApi.test.ts +0 -51
- package/packages/core/src/api/__tests__/TasksApi.test.ts +0 -56
- package/packages/core/src/config/.gitkeep +0 -0
- package/packages/core/src/config/ConfigService.ts +0 -1
- package/packages/core/src/domain/dependencies/.gitkeep +0 -0
- package/packages/core/src/domain/dependencies/Dependency.ts +0 -1
- package/packages/core/src/domain/epics/.gitkeep +0 -0
- package/packages/core/src/domain/epics/Epic.ts +0 -1
- package/packages/core/src/domain/projects/.gitkeep +0 -0
- package/packages/core/src/domain/projects/Project.ts +0 -1
- package/packages/core/src/domain/tasks/.gitkeep +0 -0
- package/packages/core/src/domain/tasks/Task.ts +0 -1
- package/packages/core/src/domain/userStories/.gitkeep +0 -0
- package/packages/core/src/domain/userStories/UserStory.ts +0 -1
- package/packages/core/src/index.ts +0 -27
- package/packages/core/src/prompts/.gitkeep +0 -0
- package/packages/core/src/prompts/PdrPrompts.ts +0 -23
- package/packages/core/src/prompts/PromptLoader.ts +0 -1
- package/packages/core/src/prompts/SdsPrompts.ts +0 -47
- package/packages/core/src/services/agents/.gitkeep +0 -0
- package/packages/core/src/services/agents/AgentManagementService.ts +0 -1
- package/packages/core/src/services/agents/GatewayAgentService.ts +0 -956
- package/packages/core/src/services/agents/RoutingService.ts +0 -461
- package/packages/core/src/services/agents/__tests__/GatewayAgentService.test.ts +0 -72
- package/packages/core/src/services/agents/__tests__/RoutingService.test.ts +0 -267
- package/packages/core/src/services/agents/generated/RoutingApiClient.ts +0 -89
- package/packages/core/src/services/backlog/.gitkeep +0 -0
- package/packages/core/src/services/backlog/BacklogService.ts +0 -580
- package/packages/core/src/services/backlog/TaskOrderingService.ts +0 -868
- package/packages/core/src/services/backlog/__tests__/BacklogService.test.ts +0 -219
- package/packages/core/src/services/backlog/__tests__/TaskOrderingService.test.ts +0 -268
- package/packages/core/src/services/docs/.gitkeep +0 -0
- package/packages/core/src/services/docs/DocsService.ts +0 -1913
- package/packages/core/src/services/docs/__tests__/DocsService.test.ts +0 -350
- package/packages/core/src/services/estimate/EstimateService.ts +0 -111
- package/packages/core/src/services/estimate/VelocityService.ts +0 -272
- package/packages/core/src/services/estimate/__tests__/VelocityAndEstimate.test.ts +0 -209
- package/packages/core/src/services/estimate/types.ts +0 -41
- package/packages/core/src/services/execution/.gitkeep +0 -0
- package/packages/core/src/services/execution/ExecutionService.ts +0 -1
- package/packages/core/src/services/execution/QaFollowupService.ts +0 -289
- package/packages/core/src/services/execution/QaProfileService.ts +0 -160
- package/packages/core/src/services/execution/QaTasksService.ts +0 -1303
- package/packages/core/src/services/execution/TaskSelectionService.ts +0 -362
- package/packages/core/src/services/execution/TaskStateService.ts +0 -64
- package/packages/core/src/services/execution/WorkOnTasksService.ts +0 -2023
- package/packages/core/src/services/execution/__tests__/QaFollowupService.test.ts +0 -58
- package/packages/core/src/services/execution/__tests__/QaProfileService.test.ts +0 -49
- package/packages/core/src/services/execution/__tests__/QaTasksService.test.ts +0 -157
- package/packages/core/src/services/execution/__tests__/TaskSelectionService.test.ts +0 -179
- package/packages/core/src/services/execution/__tests__/TaskStateService.test.ts +0 -51
- package/packages/core/src/services/execution/__tests__/WorkOnTasksService.test.ts +0 -285
- package/packages/core/src/services/jobs/.gitkeep +0 -0
- package/packages/core/src/services/jobs/JobInsightsService.ts +0 -355
- package/packages/core/src/services/jobs/JobResumeService.ts +0 -119
- package/packages/core/src/services/jobs/JobService.ts +0 -648
- package/packages/core/src/services/jobs/JobsApiClient.ts +0 -113
- package/packages/core/src/services/jobs/__tests__/JobInsightsService.test.ts +0 -17
- package/packages/core/src/services/jobs/__tests__/JobResumeService.test.ts +0 -45
- package/packages/core/src/services/jobs/__tests__/JobService.test.ts +0 -44
- package/packages/core/src/services/openapi/OpenApiService.ts +0 -558
- package/packages/core/src/services/openapi/__tests__/OpenApiService.test.ts +0 -57
- package/packages/core/src/services/planning/.gitkeep +0 -0
- package/packages/core/src/services/planning/CreateTasksService.ts +0 -1280
- package/packages/core/src/services/planning/KeyHelpers.ts +0 -80
- package/packages/core/src/services/planning/PlanningService.ts +0 -1
- package/packages/core/src/services/planning/RefineTasksService.ts +0 -1552
- package/packages/core/src/services/planning/__tests__/CreateTasksService.test.ts +0 -288
- package/packages/core/src/services/planning/__tests__/KeyHelpers.test.ts +0 -16
- package/packages/core/src/services/planning/__tests__/RefineTasksService.test.ts +0 -172
- package/packages/core/src/services/review/CodeReviewService.ts +0 -1386
- package/packages/core/src/services/review/__tests__/CodeReviewService.test.ts +0 -89
- package/packages/core/src/services/system/SystemUpdateService.ts +0 -177
- package/packages/core/src/services/system/__tests__/SystemUpdateService.test.ts +0 -40
- package/packages/core/src/services/tasks/TaskApiResolver.ts +0 -37
- package/packages/core/src/services/tasks/TaskDetailService.ts +0 -494
- package/packages/core/src/services/tasks/__tests__/TaskApiResolver.test.ts +0 -41
- package/packages/core/src/services/tasks/__tests__/TaskDetailService.test.ts +0 -178
- package/packages/core/src/services/telemetry/.gitkeep +0 -0
- package/packages/core/src/services/telemetry/TelemetryService.ts +0 -515
- package/packages/core/src/services/telemetry/__tests__/TelemetryService.test.ts +0 -160
- package/packages/core/src/workspace/.gitkeep +0 -0
- package/packages/core/src/workspace/WorkspaceManager.ts +0 -234
- package/packages/core/tsconfig.json +0 -20
- package/packages/db/CHANGELOG.md +0 -7
- package/packages/db/LICENSE +0 -21
- package/packages/db/README.md +0 -9
- package/packages/db/package.json +0 -42
- package/packages/db/src/__tests__/GlobalRepository.test.ts +0 -109
- package/packages/db/src/__tests__/SchemaAlignment.test.ts +0 -80
- package/packages/db/src/__tests__/WorkspaceRepository.test.ts +0 -19
- package/packages/db/src/index.d.ts +0 -6
- package/packages/db/src/index.d.ts.map +0 -1
- package/packages/db/src/index.js +0 -5
- package/packages/db/src/index.ts +0 -6
- package/packages/db/src/migrations/global/.gitkeep +0 -0
- package/packages/db/src/migrations/global/GlobalMigrations.d.ts +0 -9
- package/packages/db/src/migrations/global/GlobalMigrations.d.ts.map +0 -1
- package/packages/db/src/migrations/global/GlobalMigrations.js +0 -68
- package/packages/db/src/migrations/global/GlobalMigrations.ts +0 -336
- package/packages/db/src/migrations/workspace/.gitkeep +0 -0
- package/packages/db/src/migrations/workspace/WorkspaceMigrations.d.ts +0 -9
- package/packages/db/src/migrations/workspace/WorkspaceMigrations.d.ts.map +0 -1
- package/packages/db/src/migrations/workspace/WorkspaceMigrations.js +0 -251
- package/packages/db/src/migrations/workspace/WorkspaceMigrations.ts +0 -248
- package/packages/db/src/repositories/global/.gitkeep +0 -0
- package/packages/db/src/repositories/global/GlobalRepository.d.ts +0 -30
- package/packages/db/src/repositories/global/GlobalRepository.d.ts.map +0 -1
- package/packages/db/src/repositories/global/GlobalRepository.js +0 -209
- package/packages/db/src/repositories/global/GlobalRepository.ts +0 -492
- package/packages/db/src/repositories/workspace/.gitkeep +0 -0
- package/packages/db/src/repositories/workspace/WorkspaceRepository.d.ts +0 -282
- package/packages/db/src/repositories/workspace/WorkspaceRepository.d.ts.map +0 -1
- package/packages/db/src/repositories/workspace/WorkspaceRepository.js +0 -773
- package/packages/db/src/repositories/workspace/WorkspaceRepository.ts +0 -1511
- package/packages/db/src/sqlite/connection.d.ts +0 -11
- package/packages/db/src/sqlite/connection.d.ts.map +0 -1
- package/packages/db/src/sqlite/connection.js +0 -31
- package/packages/db/src/sqlite/connection.ts +0 -35
- package/packages/db/src/sqlite/pragmas.d.ts +0 -5
- package/packages/db/src/sqlite/pragmas.d.ts.map +0 -1
- package/packages/db/src/sqlite/pragmas.js +0 -6
- package/packages/db/src/sqlite/pragmas.ts +0 -10
- package/packages/db/tsconfig.json +0 -13
- package/packages/generators/package.json +0 -21
- package/packages/generators/src/__tests__/Generators.test.ts +0 -19
- package/packages/generators/src/index.ts +0 -1
- package/packages/generators/src/openapi/generateTypes.ts +0 -1
- package/packages/generators/src/openapi/validateSchema.ts +0 -1
- package/packages/generators/src/scaffolding/docs/.gitkeep +0 -0
- package/packages/generators/src/scaffolding/docs/DocsScaffolder.ts +0 -1
- package/packages/generators/src/scaffolding/global/.gitkeep +0 -0
- package/packages/generators/src/scaffolding/global/GlobalScaffolder.ts +0 -1
- package/packages/generators/src/scaffolding/workspace/.gitkeep +0 -0
- package/packages/generators/src/scaffolding/workspace/WorkspaceScaffolder.ts +0 -1
- package/packages/generators/tsconfig.json +0 -10
- package/packages/integrations/CHANGELOG.md +0 -7
- package/packages/integrations/LICENSE +0 -21
- package/packages/integrations/README.md +0 -9
- package/packages/integrations/package.json +0 -47
- package/packages/integrations/src/docdex/.gitkeep +0 -0
- package/packages/integrations/src/docdex/DocdexClient.d.ts +0 -50
- package/packages/integrations/src/docdex/DocdexClient.d.ts.map +0 -1
- package/packages/integrations/src/docdex/DocdexClient.js +0 -216
- package/packages/integrations/src/docdex/DocdexClient.ts +0 -261
- package/packages/integrations/src/docdex/__tests__/DocdexClient.test.ts +0 -29
- package/packages/integrations/src/index.d.ts +0 -2
- package/packages/integrations/src/index.d.ts.map +0 -1
- package/packages/integrations/src/index.js +0 -4
- package/packages/integrations/src/index.ts +0 -5
- package/packages/integrations/src/issues/.gitkeep +0 -0
- package/packages/integrations/src/issues/IssuesClient.ts +0 -1
- package/packages/integrations/src/issues/__tests__/IssuesClient.test.ts +0 -10
- package/packages/integrations/src/qa/.gitkeep +0 -0
- package/packages/integrations/src/qa/ChromiumQaAdapter.ts +0 -89
- package/packages/integrations/src/qa/CliQaAdapter.ts +0 -95
- package/packages/integrations/src/qa/MaestroQaAdapter.ts +0 -91
- package/packages/integrations/src/qa/QaAdapter.ts +0 -7
- package/packages/integrations/src/qa/QaClient.ts +0 -1
- package/packages/integrations/src/qa/QaTypes.ts +0 -26
- package/packages/integrations/src/qa/__tests__/ChromiumQaAdapter.test.ts +0 -30
- package/packages/integrations/src/qa/__tests__/CliQaAdapter.test.ts +0 -33
- package/packages/integrations/src/qa/__tests__/MaestroQaAdapter.test.ts +0 -30
- package/packages/integrations/src/qa/index.ts +0 -5
- package/packages/integrations/src/system/SystemClient.ts +0 -50
- package/packages/integrations/src/system/__tests__/SystemClient.test.ts +0 -40
- package/packages/integrations/src/telemetry/TelemetryClient.ts +0 -139
- package/packages/integrations/src/telemetry/__tests__/TelemetryClient.test.ts +0 -41
- package/packages/integrations/src/vcs/.gitkeep +0 -0
- package/packages/integrations/src/vcs/VcsClient.ts +0 -211
- package/packages/integrations/src/vcs/__tests__/VcsClient.test.ts +0 -26
- package/packages/integrations/tsconfig.json +0 -14
- package/packages/shared/CHANGELOG.md +0 -7
- package/packages/shared/LICENSE +0 -21
- package/packages/shared/README.md +0 -9
- package/packages/shared/package.json +0 -40
- package/packages/shared/src/__tests__/CommandMetadata.test.ts +0 -15
- package/packages/shared/src/__tests__/ServiceShells.test.ts +0 -16
- package/packages/shared/src/crypto/.gitkeep +0 -0
- package/packages/shared/src/crypto/CryptoHelper.d.ts +0 -15
- package/packages/shared/src/crypto/CryptoHelper.d.ts.map +0 -1
- package/packages/shared/src/crypto/CryptoHelper.js +0 -54
- package/packages/shared/src/crypto/CryptoHelper.ts +0 -57
- package/packages/shared/src/errors/.gitkeep +0 -0
- package/packages/shared/src/errors/ErrorFactory.ts +0 -1
- package/packages/shared/src/index.d.ts +0 -6
- package/packages/shared/src/index.d.ts.map +0 -1
- package/packages/shared/src/index.js +0 -4
- package/packages/shared/src/index.ts +0 -35
- package/packages/shared/src/logging/.gitkeep +0 -0
- package/packages/shared/src/logging/Logger.ts +0 -1
- package/packages/shared/src/metadata/CommandMetadata.ts +0 -165
- package/packages/shared/src/openapi/.gitkeep +0 -0
- package/packages/shared/src/openapi/OpenApiTypes.d.ts +0 -216
- package/packages/shared/src/openapi/OpenApiTypes.d.ts.map +0 -1
- package/packages/shared/src/openapi/OpenApiTypes.js +0 -1
- package/packages/shared/src/openapi/OpenApiTypes.ts +0 -312
- package/packages/shared/src/paths/.gitkeep +0 -0
- package/packages/shared/src/paths/PathHelper.d.ts +0 -12
- package/packages/shared/src/paths/PathHelper.d.ts.map +0 -1
- package/packages/shared/src/paths/PathHelper.js +0 -24
- package/packages/shared/src/paths/PathHelper.ts +0 -29
- package/packages/shared/src/qa/QaProfile.ts +0 -14
- package/packages/shared/src/utils/.gitkeep +0 -0
- package/packages/shared/src/utils/UtilityService.ts +0 -1
- package/packages/shared/tsconfig.json +0 -10
- package/packages/testing/package.json +0 -26
- package/packages/testing/src/__tests__/TestingFakes.test.ts +0 -15
- package/packages/testing/src/cli/e2e/.gitkeep +0 -0
- package/packages/testing/src/cli/e2e/E2eSuite.ts +0 -1
- package/packages/testing/src/fakes/agents/.gitkeep +0 -0
- package/packages/testing/src/fakes/agents/FakeAgents.ts +0 -1
- package/packages/testing/src/fakes/docdex/.gitkeep +0 -0
- package/packages/testing/src/fakes/docdex/FakeDocdexClient.ts +0 -1
- package/packages/testing/src/fakes/qa/.gitkeep +0 -0
- package/packages/testing/src/fakes/qa/FakeQaClient.ts +0 -1
- package/packages/testing/src/fakes/vcs/.gitkeep +0 -0
- package/packages/testing/src/fakes/vcs/FakeVcsClient.ts +0 -1
- package/packages/testing/src/fixtures/db/.gitkeep +0 -0
- package/packages/testing/src/fixtures/db/DbFixtures.ts +0 -1
- package/packages/testing/src/fixtures/workspaces/.gitkeep +0 -0
- package/packages/testing/src/fixtures/workspaces/WorkspaceFixtures.ts +0 -1
- package/packages/testing/src/index.ts +0 -1
- package/packages/testing/tsconfig.json +0 -10
- package/pnpm-workspace.yaml +0 -2
- package/prompts/README.md +0 -5
- package/prompts/code-reviewer.md +0 -23
- package/prompts/code-writer.md +0 -35
- package/prompts/gateway-agent.md +0 -27
- package/prompts/qa-agent.md +0 -21
- package/release-please-config.json +0 -39
- package/scripts/build-all.ts +0 -1
- package/scripts/dev.ts +0 -1
- package/scripts/install-local-cli.sh +0 -28
- package/scripts/pack-npm-tarballs.js +0 -63
- package/scripts/release.ts +0 -1
- package/scripts/run-node-tests.js +0 -37
- package/tests/all.js +0 -127
- package/tests/api/openapi_spec.test.js +0 -21
- package/tests/artifacts.md +0 -31
- package/tests/component/cli_version.test.js +0 -38
- package/tests/integration/workspace_resolver.test.js +0 -44
- package/tests/unit/crypto_helper.test.js +0 -36
- package/tests/unit/path_helper.test.js +0 -20
- package/tsconfig.base.json +0 -32
- /package/{packages/cli/src/index.ts → dist/index.js} +0 -0
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -2,313 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
mcoda is a local-first CLI for planning, documentation, and execution workflows with agent assistance.
|
|
4
4
|
|
|
5
|
-
## Install
|
|
5
|
+
## Install
|
|
6
6
|
- Requires Node.js >= 20.
|
|
7
|
-
-
|
|
7
|
+
- Global install: `npm i -g mcoda`
|
|
8
8
|
- Verify: `mcoda --version`
|
|
9
|
-
- One-off: `npx mcoda --version`
|
|
10
9
|
|
|
11
|
-
##
|
|
10
|
+
## Quick start
|
|
12
11
|
```sh
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
pnpm -r run test
|
|
12
|
+
mcoda set-workspace --workspace-root .
|
|
13
|
+
mcoda docs pdr generate --workspace-root . --project WEB --rfp-path docs/rfp/web.md --agent codex
|
|
16
14
|
```
|
|
17
15
|
|
|
18
|
-
## Generate a PDR from an RFP
|
|
19
|
-
|
|
20
|
-
Use the docs command to draft a Product Design Review with docdex + an agent:
|
|
21
|
-
|
|
22
|
-
```sh
|
|
23
|
-
mcoda docs pdr generate \
|
|
24
|
-
--workspace-root ~/Documents/apps/test1 \
|
|
25
|
-
--project TEST1 \
|
|
26
|
-
--rfp-path docs/rfp/test1-rfp.md \
|
|
27
|
-
--agent codex
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Add `--agent-stream false` for a quieter run, or `--rfp-id <DOCDEX_ID>` to pull an RFP already registered in docdex. The PDR is written under `.mcoda/docs/pdr/` by default.
|
|
31
|
-
|
|
32
|
-
- If docdex is unavailable, the command runs in a degraded “local RFP only” mode and warns you.
|
|
33
|
-
- Agent selection uses the workspace default for `docs-pdr-generate` (or any agent with `docdex_query` + `doc_generation` capabilities); override with `--agent <name>`.
|
|
34
|
-
- Flags: `--debug`, `--quiet`, `--no-color`, `--agent-stream false`, `--json`, `--dry-run`, `--workspace-root <path>`, `--project <KEY>`, `--rfp-id` or `--rfp-path`.
|
|
35
|
-
- Workspace config: `.mcoda/config.json` supports `docdexUrl`, `mirrorDocs` (default true), and `branch` metadata for docdex registration.
|
|
36
|
-
|
|
37
|
-
## Generate an SDS from your PDR/RFP context
|
|
38
|
-
|
|
39
|
-
```sh
|
|
40
|
-
mcoda docs sds generate \
|
|
41
|
-
--workspace-root ~/Documents/apps/test1 \
|
|
42
|
-
--project TEST1 \
|
|
43
|
-
--agent codex \
|
|
44
|
-
--template SDS_backend_service
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
- Streams agent output by default; pass `--agent-stream false` for quiet mode.
|
|
48
|
-
- Default output: `.mcoda/docs/sds/<project>.md` (override with `--out <FILE>`). Use `--force` to overwrite an existing SDS.
|
|
49
|
-
- Context comes from docdex (RFP + PDR + any existing SDS + OpenAPI); if docdex is down the command falls back to local docs and warns.
|
|
50
|
-
- Flags: `--template <NAME>`, `--agent <NAME>`, `--workspace-root <path>`, `--project <KEY>`, `--agent-stream <true|false>`, `--force`, `--resume <JOB_ID>`, `--dry-run`, `--json`, `--debug`, `--no-color`, `--quiet`.
|
|
51
|
-
- Alias: `mcoda sds ...` forwards to `mcoda docs sds generate`.
|
|
52
|
-
|
|
53
|
-
## Generate the OpenAPI spec from docs
|
|
54
|
-
|
|
55
|
-
Produce or refresh the canonical `openapi/mcoda.yaml` from SDS/PDR context, docdex, and the existing spec:
|
|
56
|
-
|
|
57
|
-
```sh
|
|
58
|
-
mcoda openapi-from-docs --workspace-root . --agent codex --force
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
- Streams agent output by default; pass `--agent-stream false` to disable streaming.
|
|
62
|
-
- Writes to `openapi/mcoda.yaml` (backs up an existing file to `.bak` when `--force` is used).
|
|
63
|
-
- Use `--dry-run` to print the generated YAML without writing, or `--validate-only` to parse/validate the current spec without invoking an agent.
|
|
64
|
-
|
|
65
|
-
## Inspect the backlog (DB-only)
|
|
66
|
-
|
|
67
|
-
List SP buckets and tasks already stored in the workspace SQLite DB:
|
|
68
|
-
|
|
69
|
-
```sh
|
|
70
|
-
mcoda backlog --project WEB --order dependencies --verbose
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
- Flags: `--project <KEY>`, `--epic <KEY>`, `--story <KEY>`, `--assignee <USER>`, `--status <STATUS[,STATUS...]>`, `--order dependencies`, `--json`, `--verbose`, `--workspace-root <path>`.
|
|
74
|
-
- No agents or docdex are called; output comes purely from `.mcoda/mcoda.db`.
|
|
75
|
-
|
|
76
|
-
## Dependency-aware ordering
|
|
77
|
-
|
|
78
|
-
Compute a deterministic, dependency-aware order (most depended-on first, topo-safe) and persist global priorities:
|
|
79
|
-
|
|
80
|
-
```sh
|
|
81
|
-
mcoda order-tasks --project WEB --epic web-01 --include-blocked --json
|
|
82
|
-
mcoda tasks order-by-deps --project WEB --status not_started,in_progress
|
|
83
|
-
mcoda backlog --project WEB --order dependencies # same core ordering
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
- Flags: `--workspace-root <path>`, `--project <KEY>` (required), `--epic <KEY>`, `--status <STATUS_FILTER>`, `--include-blocked`, `--agent <NAME>`, `--agent-stream <true|false>`, `--json`.
|
|
87
|
-
- Behavior: topo order over `task_dependencies`, ties by dependency impact → priority → SP → age → status; blocked tasks are listed separately unless `--include-blocked` is set. Updates `priority` across tasks, stories, and epics in the scoped project.
|
|
88
|
-
|
|
89
|
-
## Create tasks (plan files + DB), then migrate
|
|
90
|
-
|
|
91
|
-
- Generate epics/stories/tasks from SDS/OpenAPI into JSON plan files (and attempt DB insert):
|
|
92
|
-
|
|
93
|
-
```sh
|
|
94
|
-
mcoda create-tasks \
|
|
95
|
-
--workspace-root . \
|
|
96
|
-
--project TODO \
|
|
97
|
-
--agent openai \
|
|
98
|
-
--doc .mcoda/docs/sds/todo.md \
|
|
99
|
-
--openapi openapi/mcoda.yaml
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Writes plan artifacts to `.mcoda/tasks/<PROJECT>/plan.json` plus `epics.json`, `stories.json`, `tasks.json`. If the DB is busy, the files still persist for later import.
|
|
103
|
-
|
|
104
|
-
- Import (or re-import) the plan into the workspace DB:
|
|
105
|
-
|
|
106
|
-
```sh
|
|
107
|
-
mcoda migrate-tasks --workspace-root . --project TODO --plan-dir .mcoda/tasks/TODO
|
|
108
|
-
mcoda migrate-tasks --workspace-root . --project TODO --plan-dir .mcoda/tasks/TODO --force # wipes and replaces epics/stories/tasks
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
`--force` deletes the project backlog (deps/runs/tasks/stories/epics) before inserting to avoid duplicates.
|
|
112
|
-
|
|
113
|
-
- Optionally apply all saved refinement plans after migrating the base backlog:
|
|
114
|
-
|
|
115
|
-
```sh
|
|
116
|
-
mcoda migrate-tasks \
|
|
117
|
-
--workspace-root . \
|
|
118
|
-
--project TODO \
|
|
119
|
-
--plan-dir .mcoda/tasks/TODO \
|
|
120
|
-
--refine-plans-dir .mcoda/tasks/TODO/refinements
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Command list (partial)
|
|
124
|
-
|
|
125
|
-
- Agents & routing: `mcoda agent ...`, `mcoda routing ...`
|
|
126
|
-
- Planning: `mcoda create-tasks`, `mcoda refine-tasks`
|
|
127
|
-
- Ordering & backlog: `mcoda order-tasks`, `mcoda tasks order-by-deps`, `mcoda backlog --order dependencies`
|
|
128
|
-
- Execution: `mcoda work-on-tasks`, `mcoda code-review`, `mcoda qa-tasks`
|
|
129
|
-
- Docs/spec: `mcoda docs pdr generate`, `mcoda docs sds generate`, `mcoda openapi-from-docs`
|
|
130
|
-
- Telemetry: `mcoda tokens`, `mcoda telemetry`, `mcoda job ...`
|
|
131
|
-
- Workspace bootstrap: `mcoda set-workspace [--workspace-root <path>] [--no-git] [--no-docdex]` (creates `.mcoda`, seeds the SQLite DB, trusts codex CLI, optional git init, and initializes docdex index when available)
|
|
132
|
-
|
|
133
|
-
## Update the CLI
|
|
134
|
-
|
|
135
|
-
Check for updates without applying:
|
|
136
|
-
|
|
137
|
-
```sh
|
|
138
|
-
mcoda update --check --json
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Apply the latest release on the chosen channel (defaults to stable):
|
|
142
|
-
|
|
143
|
-
```sh
|
|
144
|
-
mcoda update --force --channel beta # stable|beta|nightly
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Use `--version <SEMVER>` to pin to a specific published version; `--json` emits machine-readable output, and `--quiet` suppresses non-essential logs. In CI or other non-interactive shells, pass `--force` to skip the confirmation prompt.
|
|
148
|
-
|
|
149
|
-
## Inspect a single task (DB + OpenAPI lookup)
|
|
150
|
-
|
|
151
|
-
Inspect a task with hierarchy, VCS, dependencies, comments, and optional logs/history:
|
|
152
|
-
|
|
153
|
-
```sh
|
|
154
|
-
mcoda task show web-01-us-01-t01 --project WEB --include-logs --include-history --format table
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
- Aliases: `mcoda task <KEY>`, `mcoda task-detail --project <KEY> --task <KEY>`.
|
|
158
|
-
- Flags: `--project <KEY>`, `--include-logs`, `--include-history`, `--format <table|json|yaml>` (YAML is experimental), `--no-telemetry`, `--workspace-root <path>`.
|
|
159
|
-
- Lookup: prefers the workspace DB; if `MCODA_API_BASE_URL` (or legacy `MCODA_TASKS_API_URL`) is set, the task key is first resolved via `GET /tasks?key=...` to align with the OpenAPI surface, then hydrated from the local DB for details.
|
|
160
|
-
|
|
161
|
-
## Telemetry: tokens and config
|
|
162
|
-
|
|
163
|
-
Summarize token usage (aggregated via the Telemetry API):
|
|
164
|
-
|
|
165
|
-
```sh
|
|
166
|
-
mcoda tokens --group-by project,command,agent --since 7d --format table
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
- Filters: `--project`, `--agent`, `--command`, `--job`, `--since/--until`, `--group-by <project|agent|command|day|model|job|action>`, `--format <table|json>`.
|
|
170
|
-
|
|
171
|
-
Inspect or toggle telemetry settings:
|
|
172
|
-
|
|
173
|
-
```sh
|
|
174
|
-
mcoda telemetry show
|
|
175
|
-
mcoda telemetry opt-out --strict # disable remote export; strict also disables local logging
|
|
176
|
-
mcoda telemetry opt-in
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Debug a specific job’s token usage:
|
|
180
|
-
|
|
181
|
-
```sh
|
|
182
|
-
mcoda job tokens <JOB_ID> --since 24h --format table
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
## Jobs: list, status, logs, resume
|
|
186
|
-
|
|
187
|
-
Keep long-running commands observable and resumable:
|
|
188
|
-
|
|
189
|
-
```sh
|
|
190
|
-
mcoda job list [--project <KEY>] [--status <STATE>] [--type <TYPE>] [--since <DURATION|TS>] [--limit <N>] [--json]
|
|
191
|
-
mcoda job status <JOB_ID> [--json]
|
|
192
|
-
mcoda job watch <JOB_ID> [--interval <SECONDS>] [--no-logs]
|
|
193
|
-
mcoda job logs <JOB_ID> [--since <TIMESTAMP|DURATION>] [--follow]
|
|
194
|
-
mcoda job inspect <JOB_ID> [--json]
|
|
195
|
-
mcoda job resume <JOB_ID> [--agent <NAME>] [--no-telemetry]
|
|
196
|
-
mcoda job cancel <JOB_ID> [--force]
|
|
197
|
-
mcoda job tokens <JOB_ID> [--since <TIMESTAMP|DURATION>] [--format table|json]
|
|
198
|
-
|
|
199
|
-
# Examples
|
|
200
|
-
mcoda job list --status running
|
|
201
|
-
mcoda job watch <JOB_ID> --interval 2 --no-logs
|
|
202
|
-
mcoda job inspect <JOB_ID> --json
|
|
203
|
-
mcoda job resume <JOB_ID> --agent codex
|
|
204
|
-
mcoda job logs <JOB_ID> --since 10m --follow
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
## Work on tasks (implementation pipeline)
|
|
208
|
-
|
|
209
|
-
Drive tasks from the workspace DB through the agent-powered implementation loop:
|
|
210
|
-
|
|
211
|
-
```sh
|
|
212
|
-
mcoda work-on-tasks --workspace . --project WEB --status not_started,in_progress --limit 3
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
- Scopes: `--project <KEY>` (required), `--task <KEY>...`, `--epic <KEY>`, or `--story <KEY>`. Default statuses: `not_started,in_progress` (override with `--status ...`).
|
|
216
|
-
- Behavior flags: `--limit <N>`, `--parallel <N>`, `--no-commit`, `--dry-run`, `--agent <NAME>`, `--agent-stream <true|false>`, `--json`.
|
|
217
|
-
- Selection & ordering: dependency-aware (skips/reroutes blocked tasks), topo + priority + SP + created_at, with in-progress tie-breaks. Blocked tasks are listed in JSON output (`blocked`).
|
|
218
|
-
- Orchestration: creates `jobs`, `command_runs`, `task_runs`, `task_logs`, and `token_usage` rows in `.mcoda/mcoda.db`, streams agent output by default, and stops tasks at `ready_to_review`. Checkpoints live under `.mcoda/jobs/<jobId>/work/state.json` for resume/debug.
|
|
219
|
-
- Scope & safety: enforces allowed files/tests from task metadata; scope violations are blocked and logged.
|
|
220
|
-
- VCS: ensures `.mcoda` exists and is gitignored, creates deterministic task branches (`mcoda/task/<TASK_KEY>`) from the base branch (default `mcoda-dev`), respects remotes when present, and skips commit/push on `--no-commit` or `--dry-run`.
|
|
221
|
-
|
|
222
|
-
## Use a remote Ollama agent (GPU offload)
|
|
223
|
-
|
|
224
|
-
Point mcoda at a remote Ollama host (e.g., `sukunahikona` on your LAN/VPN):
|
|
225
|
-
|
|
226
|
-
```sh
|
|
227
|
-
mcoda agent add suku-ollama \
|
|
228
|
-
--adapter ollama-remote \
|
|
229
|
-
--model gpt-oss:20b \
|
|
230
|
-
--config-base-url http://192.168.1.115:11434 \
|
|
231
|
-
--capability plan --capability code_write --capability code_review
|
|
232
|
-
|
|
233
|
-
mcoda test-agent suku-ollama # quick health check
|
|
234
|
-
mcoda agent use suku-ollama # set as default for workspace
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
Firewall guidance: Ollama has no auth; keep it bound to localhost or LAN IP and allowlist only trusted IPs (VPN/LAN). If exposing via the internet, use a reverse proxy with auth/TLS and open port 11434 only to trusted sources.
|
|
238
|
-
|
|
239
|
-
## Code review (review pipeline)
|
|
240
|
-
|
|
241
|
-
Run AI-assisted review on task branches and write findings to the workspace DB:
|
|
242
|
-
|
|
243
|
-
```sh
|
|
244
|
-
mcoda code-review --workspace . --project WEB --status ready_to_review --limit 5 --base mcoda-dev --agent reviewer
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
- Scopes: `--project <KEY>`, `--task <KEY>...`, `--epic <KEY>`, `--story <KEY>`, default `--status ready_to_review` (override with `--status ...`), optional `--limit <N>`.
|
|
248
|
-
- Behavior: `--base <BRANCH>` (diff base), `--dry-run` (skip status transitions), `--resume <JOB_ID>`, `--agent <NAME>`, `--agent-stream <true|false>` (default true), `--json`.
|
|
249
|
-
- Outputs & side effects: creates `jobs`/`command_runs`/`task_runs`, writes `task_comments` + `task_reviews`, records `token_usage`, may auto-create follow-up tasks for review findings, and transitions tasks (`ready_to_review → ready_to_qa/in_progress/blocked` unless `--dry-run`). Artifacts (diffs, context, checkpoints) under `.mcoda/jobs/<jobId>/review/`. JSON output shape: `{ job: {id, commandRunId}, tasks: [...], errors: [...], warnings: [...] }`.
|
|
250
|
-
|
|
251
|
-
## QA tasks (QA pipeline)
|
|
252
|
-
|
|
253
|
-
Run automated or manual QA on tasks in the workspace DB:
|
|
254
|
-
|
|
255
|
-
```sh
|
|
256
|
-
mcoda qa-tasks --workspace . --project WEB --status ready_to_qa --profile ui --agent qa
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
- Scopes: `--project <KEY>` (required), `--task <KEY>...`, `--epic <KEY>`, `--story <KEY>`, default `--status ready_to_qa` (override for regression runs).
|
|
260
|
-
- Modes: `--mode auto` (default; runs CLI/Chromium/Maestro via QA profiles) or `--mode manual --result pass|fail|blocked [--notes "..."] [--evidence-url "..."]`.
|
|
261
|
-
- Profiles & runners: `--profile <NAME>` or `--level unit|integration|acceptance`, `--test-command "<CMD>"` override for CLI runner. Agent streaming defaults to true (`--agent-stream false` to quiet). Resume a QA sweep with `--resume <JOB_ID>`.
|
|
262
|
-
- Outputs & state: creates `jobs`/`command_runs`/`task_runs`/`task_qa_runs`, writes `task_comments`, records `token_usage`, and applies TaskStateService transitions (`ready_to_qa → completed/in_progress/blocked` unless `--dry-run`). Artifacts live under `.mcoda/jobs/<jobId>/qa/<task_key>/`.
|
|
263
|
-
- Manual example: `mcoda qa-tasks --project WEB --task web-01-us-01-t01 --mode manual --result fail --notes "Checkout button unresponsive" --evidence-url https://ci.example/run/123`.
|
|
264
|
-
|
|
265
|
-
## Routing defaults, preview, and explain
|
|
266
|
-
|
|
267
|
-
Use the OpenAPI-backed router to inspect or update workspace defaults:
|
|
268
|
-
|
|
269
|
-
```sh
|
|
270
|
-
# Show effective defaults (workspace + __GLOBAL__ fallback)
|
|
271
|
-
mcoda routing defaults [--workspace <PATH>] [--json]
|
|
272
|
-
|
|
273
|
-
# Update defaults (only the provided flags are changed)
|
|
274
|
-
mcoda routing defaults \
|
|
275
|
-
--set-command create-tasks=codex \
|
|
276
|
-
--set-qa-profile integration \
|
|
277
|
-
--set-docdex-scope sds
|
|
278
|
-
|
|
279
|
-
# Reset a command to inherit from __GLOBAL__
|
|
280
|
-
mcoda routing defaults --reset-command work-on-tasks
|
|
281
|
-
|
|
282
|
-
# Preview which agent would run a command (honors --agent override)
|
|
283
|
-
mcoda routing preview \
|
|
284
|
-
--command work-on-tasks \
|
|
285
|
-
[--agent <SLUG>] \
|
|
286
|
-
[--task-type <TYPE>] \
|
|
287
|
-
[--project <KEY>] \
|
|
288
|
-
[--json]
|
|
289
|
-
|
|
290
|
-
# Explain the routing decision with candidates/health/capabilities
|
|
291
|
-
mcoda routing explain \
|
|
292
|
-
--command create-tasks \
|
|
293
|
-
[--agent <SLUG>] \
|
|
294
|
-
[--task-type <TYPE>] \
|
|
295
|
-
[--debug] \
|
|
296
|
-
[--json]
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
Flags & behavior:
|
|
300
|
-
- `--workspace <PATH>` resolves workspace_id + DB paths via WorkspaceResolver; omitted uses CWD.
|
|
301
|
-
- Defaults: `--set-command <cmd>=<agent>` (validates against global agents + required capabilities), `--reset-command <cmd>`, `--set-qa-profile <NAME>`, `--set-docdex-scope <NAME>`. With no setters, `--list` is implied.
|
|
302
|
-
- Preview/explain: validate command names via OpenAPI `x-mcoda-cli.name`; source shows `override|workspace_default|global_default`; explain prints candidate agents with health/capabilities/missing caps.
|
|
303
|
-
- Output: human-friendly tables by default; `--json` emits raw `RoutingDefaults` or `RoutingPreview` DTOs. `--debug` surfaces extra trace fields when available.
|
|
304
|
-
|
|
305
16
|
## Documentation
|
|
306
|
-
|
|
307
|
-
-
|
|
308
|
-
-
|
|
309
|
-
|
|
310
|
-
## Contributing
|
|
311
|
-
- `CONTRIBUTING.md`
|
|
17
|
+
Full docs live in the repository:
|
|
18
|
+
- README: https://github.com/bekirdag/mcoda
|
|
19
|
+
- Usage guide: https://github.com/bekirdag/mcoda/blob/main/docs/usage.md
|
|
20
|
+
- Quality gates: https://github.com/bekirdag/mcoda/blob/main/docs/quality_gates.md
|
|
312
21
|
|
|
313
22
|
## License
|
|
314
23
|
MIT - see `LICENSE`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"McodaEntrypoint.d.ts","sourceRoot":"","sources":["../../src/bin/McodaEntrypoint.ts"],"names":[],"mappings":";AAyBA,qBAAa,eAAe;WACb,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;CAoIxE"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { realpathSync } from "node:fs";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import packageJson from "../../package.json" with { type: "json" };
|
|
5
|
+
import { AgentsCommands } from "../commands/agents/AgentsCommands.js";
|
|
6
|
+
import { GatewayAgentCommand } from "../commands/agents/GatewayAgentCommand.js";
|
|
7
|
+
import { DocsCommands } from "../commands/docs/DocsCommands.js";
|
|
8
|
+
import { JobsCommands } from "../commands/jobs/JobsCommands.js";
|
|
9
|
+
import { OpenapiCommands } from "../commands/openapi/OpenapiCommands.js";
|
|
10
|
+
import { CreateTasksCommand } from "../commands/planning/CreateTasksCommand.js";
|
|
11
|
+
import { RefineTasksCommand } from "../commands/planning/RefineTasksCommand.js";
|
|
12
|
+
import { BacklogCommands } from "../commands/backlog/BacklogCommands.js";
|
|
13
|
+
import { TaskShowCommands } from "../commands/backlog/TaskShowCommands.js";
|
|
14
|
+
import { OrderTasksCommand } from "../commands/backlog/OrderTasksCommand.js";
|
|
15
|
+
import { EstimateCommands } from "../commands/estimate/EstimateCommands.js";
|
|
16
|
+
import { TelemetryCommands } from "../commands/telemetry/TelemetryCommands.js";
|
|
17
|
+
import { WorkOnTasksCommand } from "../commands/work/WorkOnTasksCommand.js";
|
|
18
|
+
import { CodeReviewCommand } from "../commands/review/CodeReviewCommand.js";
|
|
19
|
+
import { QaTasksCommand } from "../commands/planning/QaTasksCommand.js";
|
|
20
|
+
import { MigrateTasksCommand } from "../commands/planning/MigrateTasksCommand.js";
|
|
21
|
+
import { UpdateCommands } from "../commands/update/UpdateCommands.js";
|
|
22
|
+
import { RoutingCommands } from "../commands/routing/RoutingCommands.js";
|
|
23
|
+
import { TestAgentCommand } from "../commands/agents/TestAgentCommand.js";
|
|
24
|
+
import { SetWorkspaceCommand } from "../commands/workspace/SetWorkspaceCommand.js";
|
|
25
|
+
export class McodaEntrypoint {
|
|
26
|
+
static async run(argv = process.argv.slice(2)) {
|
|
27
|
+
const [command, ...rest] = argv;
|
|
28
|
+
const wantsJson = argv.some((arg) => arg === "--json" || arg.startsWith("--json="));
|
|
29
|
+
const wantsQuiet = argv.some((arg) => arg === "--quiet" || arg.startsWith("--quiet="));
|
|
30
|
+
if (wantsJson || wantsQuiet) {
|
|
31
|
+
process.env.MCODA_STREAM_IO = "0";
|
|
32
|
+
}
|
|
33
|
+
else if (process.env.MCODA_STREAM_IO === undefined) {
|
|
34
|
+
process.env.MCODA_STREAM_IO = "1";
|
|
35
|
+
}
|
|
36
|
+
if (command === "--version" || command === "-v" || command === "version") {
|
|
37
|
+
// Keep this simple so `mcoda --version` works even in thin installs.
|
|
38
|
+
// eslint-disable-next-line no-console
|
|
39
|
+
console.log(packageJson.version ?? "dev");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!command) {
|
|
43
|
+
throw new Error("Usage: mcoda <agent|gateway-agent|routing|docs|openapi|job|jobs|tokens|telemetry|create-tasks|migrate-tasks|refine-tasks|order-tasks|tasks|work-on-tasks|code-review|qa-tasks|backlog|task|task-detail|estimate|update|set-workspace|pdr|sds> [...args]\n" +
|
|
44
|
+
"Routing: use `mcoda routing defaults` to view/update workspace/global defaults, `mcoda routing preview|explain` to inspect agent selection/provenance (override → workspace_default → global_default).\n" +
|
|
45
|
+
"Aliases: `tasks order-by-deps` forwards to `order-tasks` (dependency-aware ordering), `task`/`task-detail` show a single task.\n" +
|
|
46
|
+
"Job commands (mcoda job --help for details): list|status|watch|logs|inspect|resume|cancel|tokens\n" +
|
|
47
|
+
"Jobs API required for job commands (set MCODA_API_BASE_URL/MCODA_JOBS_API_URL or workspace api.baseUrl). status/watch/logs exit non-zero on failed/cancelled jobs per SDS.");
|
|
48
|
+
}
|
|
49
|
+
if (command === "agent") {
|
|
50
|
+
await AgentsCommands.run(rest);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (command === "gateway-agent") {
|
|
54
|
+
await GatewayAgentCommand.run(rest);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (command === "test-agent") {
|
|
58
|
+
await TestAgentCommand.run(rest);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (command === "routing") {
|
|
62
|
+
await RoutingCommands.run(rest);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (command === "docs") {
|
|
66
|
+
await DocsCommands.run(rest);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (command === "openapi-from-docs" || command === "openapi") {
|
|
70
|
+
await OpenapiCommands.run(rest);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (command === "job" || command === "jobs") {
|
|
74
|
+
await JobsCommands.run(rest);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (command === "tokens") {
|
|
78
|
+
await TelemetryCommands.runTokens(rest);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (command === "telemetry") {
|
|
82
|
+
await TelemetryCommands.runTelemetry(rest);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (command === "pdr" || command === "mcoda:pdr") {
|
|
86
|
+
await DocsCommands.run(["pdr", "generate", ...rest]);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (command === "sds" || command === "mcoda:sds") {
|
|
90
|
+
await DocsCommands.run(["sds", "generate", ...rest]);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (command === "create-tasks") {
|
|
94
|
+
await CreateTasksCommand.run(rest);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (command === "migrate-tasks") {
|
|
98
|
+
await MigrateTasksCommand.run(rest);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (command === "refine-tasks") {
|
|
102
|
+
await RefineTasksCommand.run(rest);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (command === "qa-tasks") {
|
|
106
|
+
if (rest.includes("--help") || rest.includes("-h")) {
|
|
107
|
+
// eslint-disable-next-line no-console
|
|
108
|
+
console.log("Usage: mcoda qa-tasks [--workspace-root <path>] --project <PROJECT_KEY> [--task <TASK_KEY> ... | --epic <EPIC_KEY> | --story <STORY_KEY>] [--status <STATUS_FILTER>] [--mode auto|manual] [--profile <PROFILE_NAME>] [--level unit|integration|acceptance] [--test-command \"<CMD>\"] [--agent <NAME>] [--agent-stream true|false] [--resume <JOB_ID>] [--create-followup-tasks auto|none|prompt] [--result pass|fail|blocked] [--notes \"<text>\"] [--evidence-url \"<url>\"] [--dry-run] [--json]");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
await QaTasksCommand.run(rest);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (command === "order-tasks") {
|
|
115
|
+
await OrderTasksCommand.run(rest);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (command === "tasks") {
|
|
119
|
+
const [sub, ...tail] = rest;
|
|
120
|
+
if (sub === "order-by-deps" || sub === "order-by-dependencies") {
|
|
121
|
+
await OrderTasksCommand.run(tail);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (command === "work-on-tasks") {
|
|
126
|
+
await WorkOnTasksCommand.run(rest);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (command === "code-review") {
|
|
130
|
+
await CodeReviewCommand.run(rest);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (command === "backlog") {
|
|
134
|
+
await BacklogCommands.run(rest);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (command === "task" || command === "task-detail") {
|
|
138
|
+
await TaskShowCommands.run(rest);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (command === "estimate") {
|
|
142
|
+
await EstimateCommands.run(rest);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (command === "update") {
|
|
146
|
+
await UpdateCommands.run(rest);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (command === "set-workspace") {
|
|
150
|
+
await SetWorkspaceCommand.run(rest);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
throw new Error(`Unknown command: ${command}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const isDirectRun = (() => {
|
|
157
|
+
if (typeof process.argv[1] !== "string") {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
const invokedPath = realpathSync(process.argv[1]);
|
|
162
|
+
const modulePath = realpathSync(fileURLToPath(import.meta.url));
|
|
163
|
+
return invokedPath === modulePath;
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
})();
|
|
169
|
+
if (isDirectRun) {
|
|
170
|
+
McodaEntrypoint.run().catch((error) => {
|
|
171
|
+
// eslint-disable-next-line no-console
|
|
172
|
+
console.error(error instanceof Error ? error.message : error);
|
|
173
|
+
process.exitCode = 1;
|
|
174
|
+
});
|
|
175
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentsCommands.d.ts","sourceRoot":"","sources":["../../../src/commands/agents/AgentsCommands.ts"],"names":[],"mappings":"AAoMA,qBAAa,cAAc;WACZ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgLhD"}
|