edsger 0.76.0 → 0.78.0
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/LICENSE +21 -0
- package/README.md +95 -210
- package/assets/LICENSE +21 -0
- package/assets/README.md +104 -0
- package/assets/benchmark/base.yaml +286 -0
- package/assets/benchmark/csharp.yaml +68 -0
- package/assets/benchmark/dart.yaml +70 -0
- package/assets/benchmark/go.yaml +71 -0
- package/assets/benchmark/java.yaml +68 -0
- package/assets/benchmark/python.yaml +72 -0
- package/assets/benchmark/typescript.yaml +71 -0
- package/assets/languages.yaml +35 -0
- package/assets/manifest.yaml +39 -0
- package/assets/review/base.yaml +111 -0
- package/assets/review/csharp.yaml +38 -0
- package/assets/review/dart.yaml +40 -0
- package/assets/review/go.yaml +40 -0
- package/assets/review/java.yaml +40 -0
- package/assets/review/python.yaml +41 -0
- package/assets/review/typescript.yaml +40 -0
- package/assets/schema/benchmark.schema.json +87 -0
- package/assets/schema/review.schema.json +73 -0
- package/assets/skills/benchmark/SKILL.md +66 -0
- package/assets/skills/pr-resolve/SKILL.md +58 -0
- package/assets/skills/pr-review/SKILL.md +66 -0
- package/dist/index.js +1339 -1218
- package/dist/index.js.map +1 -0
- package/package.json +58 -53
- package/dist/api/adr.d.ts +0 -48
- package/dist/api/adr.js +0 -139
- package/dist/api/app-store-iap.d.ts +0 -60
- package/dist/api/app-store-iap.js +0 -145
- package/dist/api/app-store.d.ts +0 -93
- package/dist/api/app-store.js +0 -206
- package/dist/api/chat.d.ts +0 -72
- package/dist/api/chat.js +0 -272
- package/dist/api/cross-product.d.ts +0 -33
- package/dist/api/cross-product.js +0 -127
- package/dist/api/financing.d.ts +0 -47
- package/dist/api/financing.js +0 -37
- package/dist/api/github.d.ts +0 -86
- package/dist/api/github.js +0 -203
- package/dist/api/growth.d.ts +0 -81
- package/dist/api/growth.js +0 -75
- package/dist/api/intelligence-normalize.d.ts +0 -25
- package/dist/api/intelligence-normalize.js +0 -103
- package/dist/api/intelligence.d.ts +0 -187
- package/dist/api/intelligence.js +0 -402
- package/dist/api/issues/approval-checker.d.ts +0 -22
- package/dist/api/issues/approval-checker.js +0 -141
- package/dist/api/issues/batch-operations.d.ts +0 -17
- package/dist/api/issues/batch-operations.js +0 -100
- package/dist/api/issues/get-issue.d.ts +0 -5
- package/dist/api/issues/get-issue.js +0 -47
- package/dist/api/issues/index.d.ts +0 -8
- package/dist/api/issues/index.js +0 -10
- package/dist/api/issues/issue-utils.d.ts +0 -25
- package/dist/api/issues/issue-utils.js +0 -133
- package/dist/api/issues/status-updater.d.ts +0 -68
- package/dist/api/issues/status-updater.js +0 -190
- package/dist/api/issues/test-cases.d.ts +0 -29
- package/dist/api/issues/test-cases.js +0 -185
- package/dist/api/issues/update-issue.d.ts +0 -25
- package/dist/api/issues/update-issue.js +0 -127
- package/dist/api/issues/user-stories.d.ts +0 -21
- package/dist/api/issues/user-stories.js +0 -163
- package/dist/api/mcp-client.d.ts +0 -22
- package/dist/api/mcp-client.js +0 -75
- package/dist/api/products/test-cases.d.ts +0 -18
- package/dist/api/products/test-cases.js +0 -51
- package/dist/api/products.d.ts +0 -15
- package/dist/api/products.js +0 -45
- package/dist/api/release-test-cases.d.ts +0 -7
- package/dist/api/release-test-cases.js +0 -59
- package/dist/api/releases.d.ts +0 -41
- package/dist/api/releases.js +0 -117
- package/dist/api/run-sheets.d.ts +0 -22
- package/dist/api/run-sheets.js +0 -13
- package/dist/api/storage.d.ts +0 -13
- package/dist/api/storage.js +0 -29
- package/dist/api/tasks.d.ts +0 -26
- package/dist/api/tasks.js +0 -81
- package/dist/api/test-reports.d.ts +0 -9
- package/dist/api/test-reports.js +0 -43
- package/dist/api/user-psychology.d.ts +0 -101
- package/dist/api/user-psychology.js +0 -143
- package/dist/api/web-deploy.d.ts +0 -67
- package/dist/api/web-deploy.js +0 -199
- package/dist/auth/auth-store.d.ts +0 -98
- package/dist/auth/auth-store.js +0 -194
- package/dist/auth/env-store.d.ts +0 -41
- package/dist/auth/env-store.js +0 -127
- package/dist/auth/login.d.ts +0 -18
- package/dist/auth/login.js +0 -179
- package/dist/commands/adr/index.d.ts +0 -13
- package/dist/commands/adr/index.js +0 -31
- package/dist/commands/agent-workflow/chat-worker.d.ts +0 -16
- package/dist/commands/agent-workflow/chat-worker.js +0 -465
- package/dist/commands/agent-workflow/index.d.ts +0 -13
- package/dist/commands/agent-workflow/index.js +0 -107
- package/dist/commands/agent-workflow/issue-worker.d.ts +0 -14
- package/dist/commands/agent-workflow/issue-worker.js +0 -65
- package/dist/commands/agent-workflow/processor.d.ts +0 -95
- package/dist/commands/agent-workflow/processor.js +0 -519
- package/dist/commands/analyze-logs/index.d.ts +0 -7
- package/dist/commands/analyze-logs/index.js +0 -34
- package/dist/commands/app-store/index.d.ts +0 -12
- package/dist/commands/app-store/index.js +0 -69
- package/dist/commands/architecture-diagram/index.d.ts +0 -8
- package/dist/commands/architecture-diagram/index.js +0 -10
- package/dist/commands/build/detect-project.d.ts +0 -52
- package/dist/commands/build/detect-project.js +0 -277
- package/dist/commands/build/index.d.ts +0 -66
- package/dist/commands/build/index.js +0 -544
- package/dist/commands/chat-serve/chat-server.d.ts +0 -114
- package/dist/commands/chat-serve/chat-server.js +0 -339
- package/dist/commands/chat-serve/index.d.ts +0 -20
- package/dist/commands/chat-serve/index.js +0 -58
- package/dist/commands/checklists/index.d.ts +0 -16
- package/dist/commands/checklists/index.js +0 -187
- package/dist/commands/checklists/tools.d.ts +0 -17
- package/dist/commands/checklists/tools.js +0 -19
- package/dist/commands/class-diagram/index.d.ts +0 -7
- package/dist/commands/class-diagram/index.js +0 -9
- package/dist/commands/code-review/index.d.ts +0 -2
- package/dist/commands/code-review/index.js +0 -37
- package/dist/commands/code-review/reviewer.d.ts +0 -3
- package/dist/commands/code-review/reviewer.js +0 -205
- package/dist/commands/config/index.d.ts +0 -16
- package/dist/commands/config/index.js +0 -60
- package/dist/commands/data-flow/index.d.ts +0 -19
- package/dist/commands/data-flow/index.js +0 -55
- package/dist/commands/diagram-shared/index.d.ts +0 -21
- package/dist/commands/diagram-shared/index.js +0 -37
- package/dist/commands/discover/index.d.ts +0 -14
- package/dist/commands/discover/index.js +0 -29
- package/dist/commands/er-diagram/index.d.ts +0 -19
- package/dist/commands/er-diagram/index.js +0 -55
- package/dist/commands/features/index.d.ts +0 -15
- package/dist/commands/features/index.js +0 -34
- package/dist/commands/financing-deck/index.d.ts +0 -8
- package/dist/commands/financing-deck/index.js +0 -66
- package/dist/commands/find-architecture/index.d.ts +0 -15
- package/dist/commands/find-architecture/index.js +0 -50
- package/dist/commands/find-bugs/index.d.ts +0 -13
- package/dist/commands/find-bugs/index.js +0 -48
- package/dist/commands/find-features/index.d.ts +0 -14
- package/dist/commands/find-features/index.js +0 -42
- package/dist/commands/find-smells/index.d.ts +0 -23
- package/dist/commands/find-smells/index.js +0 -74
- package/dist/commands/flowchart/index.d.ts +0 -8
- package/dist/commands/flowchart/index.js +0 -10
- package/dist/commands/growth-analysis/index.d.ts +0 -7
- package/dist/commands/growth-analysis/index.js +0 -89
- package/dist/commands/init/index.d.ts +0 -5
- package/dist/commands/init/index.js +0 -152
- package/dist/commands/init/prompts.d.ts +0 -9
- package/dist/commands/init/prompts.js +0 -128
- package/dist/commands/init/templates.d.ts +0 -9
- package/dist/commands/init/templates.js +0 -264
- package/dist/commands/intelligence/index.d.ts +0 -15
- package/dist/commands/intelligence/index.js +0 -138
- package/dist/commands/issue-analysis/index.d.ts +0 -5
- package/dist/commands/issue-analysis/index.js +0 -9
- package/dist/commands/pr-resolve/index.d.ts +0 -13
- package/dist/commands/pr-resolve/index.js +0 -50
- package/dist/commands/pr-review/index.d.ts +0 -12
- package/dist/commands/pr-review/index.js +0 -47
- package/dist/commands/product-techniques/index.d.ts +0 -15
- package/dist/commands/product-techniques/index.js +0 -37
- package/dist/commands/product-test-cases/index.d.ts +0 -12
- package/dist/commands/product-test-cases/index.js +0 -40
- package/dist/commands/quality-benchmark/index.d.ts +0 -40
- package/dist/commands/quality-benchmark/index.js +0 -219
- package/dist/commands/recipes/index.d.ts +0 -17
- package/dist/commands/recipes/index.js +0 -40
- package/dist/commands/refactor/refactor.d.ts +0 -2
- package/dist/commands/refactor/refactor.js +0 -134
- package/dist/commands/release-sync/index.d.ts +0 -5
- package/dist/commands/release-sync/index.js +0 -38
- package/dist/commands/run-sheet/index.d.ts +0 -6
- package/dist/commands/run-sheet/index.js +0 -48
- package/dist/commands/screen-flow/index.d.ts +0 -18
- package/dist/commands/screen-flow/index.js +0 -54
- package/dist/commands/sequence-diagram/index.d.ts +0 -19
- package/dist/commands/sequence-diagram/index.js +0 -55
- package/dist/commands/session-serve/index.d.ts +0 -32
- package/dist/commands/session-serve/index.js +0 -100
- package/dist/commands/session-turn/index.d.ts +0 -73
- package/dist/commands/session-turn/index.js +0 -254
- package/dist/commands/smoke-test/index.d.ts +0 -5
- package/dist/commands/smoke-test/index.js +0 -40
- package/dist/commands/state-diagram/index.d.ts +0 -7
- package/dist/commands/state-diagram/index.js +0 -9
- package/dist/commands/sync-aws/index.d.ts +0 -16
- package/dist/commands/sync-aws/index.js +0 -214
- package/dist/commands/sync-datadog/index.d.ts +0 -16
- package/dist/commands/sync-datadog/index.js +0 -236
- package/dist/commands/sync-github-issues/index.d.ts +0 -11
- package/dist/commands/sync-github-issues/index.js +0 -42
- package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
- package/dist/commands/sync-github-pull-requests/index.js +0 -42
- package/dist/commands/sync-org-repos/index.d.ts +0 -12
- package/dist/commands/sync-org-repos/index.js +0 -60
- package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
- package/dist/commands/sync-sentry-issues/index.js +0 -73
- package/dist/commands/sync-terraform/index.d.ts +0 -16
- package/dist/commands/sync-terraform/index.js +0 -248
- package/dist/commands/task-worker/index.d.ts +0 -8
- package/dist/commands/task-worker/index.js +0 -34
- package/dist/commands/task-worker/processor.d.ts +0 -23
- package/dist/commands/task-worker/processor.js +0 -84
- package/dist/commands/technical-design/index.d.ts +0 -5
- package/dist/commands/technical-design/index.js +0 -9
- package/dist/commands/test-cases-analysis/index.d.ts +0 -5
- package/dist/commands/test-cases-analysis/index.js +0 -9
- package/dist/commands/user-psychology/index.d.ts +0 -7
- package/dist/commands/user-psychology/index.js +0 -51
- package/dist/commands/user-stories-analysis/index.d.ts +0 -5
- package/dist/commands/user-stories-analysis/index.js +0 -9
- package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
- package/dist/commands/workflow/config/phase-configs.js +0 -132
- package/dist/commands/workflow/core/index.d.ts +0 -8
- package/dist/commands/workflow/core/index.js +0 -12
- package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
- package/dist/commands/workflow/core/issue-filter.js +0 -47
- package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
- package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
- package/dist/commands/workflow/core/state-manager.d.ts +0 -24
- package/dist/commands/workflow/core/state-manager.js +0 -42
- package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
- package/dist/commands/workflow/core/workflow-logger.js +0 -77
- package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
- package/dist/commands/workflow/executors/phase-executor.js +0 -338
- package/dist/commands/workflow/index.d.ts +0 -2
- package/dist/commands/workflow/index.js +0 -34
- package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
- package/dist/commands/workflow/issue-coordinator.js +0 -161
- package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
- package/dist/commands/workflow/phase-orchestrator.js +0 -699
- package/dist/commands/workflow/processor.d.ts +0 -47
- package/dist/commands/workflow/processor.js +0 -149
- package/dist/config/issue-status.d.ts +0 -29
- package/dist/config/issue-status.js +0 -44
- package/dist/config.d.ts +0 -3
- package/dist/config.js +0 -79
- package/dist/constants.d.ts +0 -10
- package/dist/constants.js +0 -36
- package/dist/errors/index.d.ts +0 -68
- package/dist/errors/index.js +0 -129
- package/dist/index.d.ts +0 -4
- package/dist/phases/adr-generation/agent.d.ts +0 -6
- package/dist/phases/adr-generation/agent.js +0 -69
- package/dist/phases/adr-generation/index.d.ts +0 -15
- package/dist/phases/adr-generation/index.js +0 -66
- package/dist/phases/adr-generation/parse.d.ts +0 -12
- package/dist/phases/adr-generation/parse.js +0 -123
- package/dist/phases/adr-generation/prompts.d.ts +0 -8
- package/dist/phases/adr-generation/prompts.js +0 -35
- package/dist/phases/analyze-logs/agent.d.ts +0 -11
- package/dist/phases/analyze-logs/agent.js +0 -66
- package/dist/phases/analyze-logs/index.d.ts +0 -23
- package/dist/phases/analyze-logs/index.js +0 -152
- package/dist/phases/analyze-logs/prompts.d.ts +0 -3
- package/dist/phases/analyze-logs/prompts.js +0 -27
- package/dist/phases/app-store-generation/agent.d.ts +0 -2
- package/dist/phases/app-store-generation/agent.js +0 -177
- package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
- package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
- package/dist/phases/app-store-generation/context.d.ts +0 -21
- package/dist/phases/app-store-generation/context.js +0 -78
- package/dist/phases/app-store-generation/index.d.ts +0 -20
- package/dist/phases/app-store-generation/index.js +0 -157
- package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
- package/dist/phases/app-store-generation/inter-font.js +0 -49
- package/dist/phases/app-store-generation/prompts.d.ts +0 -43
- package/dist/phases/app-store-generation/prompts.js +0 -73
- package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
- package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
- package/dist/phases/app-store-generation/uploader.d.ts +0 -19
- package/dist/phases/app-store-generation/uploader.js +0 -150
- package/dist/phases/architecture-diagram/index.d.ts +0 -15
- package/dist/phases/architecture-diagram/index.js +0 -51
- package/dist/phases/autonomous/index.d.ts +0 -32
- package/dist/phases/autonomous/index.js +0 -412
- package/dist/phases/autonomous/prompts.d.ts +0 -5
- package/dist/phases/autonomous/prompts.js +0 -31
- package/dist/phases/branch-planning/context.d.ts +0 -14
- package/dist/phases/branch-planning/context.js +0 -43
- package/dist/phases/branch-planning/index.d.ts +0 -25
- package/dist/phases/branch-planning/index.js +0 -404
- package/dist/phases/branch-planning/outcome.d.ts +0 -28
- package/dist/phases/branch-planning/outcome.js +0 -115
- package/dist/phases/branch-planning/prompts.d.ts +0 -41
- package/dist/phases/branch-planning/prompts.js +0 -157
- package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
- package/dist/phases/bug-fixing/analyzer.js +0 -247
- package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
- package/dist/phases/bug-fixing/context-fetcher.js +0 -137
- package/dist/phases/bug-fixing/index.d.ts +0 -7
- package/dist/phases/bug-fixing/index.js +0 -7
- package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
- package/dist/phases/bug-fixing/mcp-server.js +0 -19
- package/dist/phases/bug-fixing/prompts.d.ts +0 -2
- package/dist/phases/bug-fixing/prompts.js +0 -9
- package/dist/phases/chat-processor/context.d.ts +0 -38
- package/dist/phases/chat-processor/context.js +0 -91
- package/dist/phases/chat-processor/index.d.ts +0 -49
- package/dist/phases/chat-processor/index.js +0 -482
- package/dist/phases/chat-processor/product-context.d.ts +0 -36
- package/dist/phases/chat-processor/product-context.js +0 -113
- package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
- package/dist/phases/chat-processor/product-prompts.js +0 -65
- package/dist/phases/chat-processor/product-tools.d.ts +0 -8
- package/dist/phases/chat-processor/product-tools.js +0 -11
- package/dist/phases/chat-processor/prompts.d.ts +0 -35
- package/dist/phases/chat-processor/prompts.js +0 -213
- package/dist/phases/chat-processor/tools.d.ts +0 -8
- package/dist/phases/chat-processor/tools.js +0 -11
- package/dist/phases/class-diagram/index.d.ts +0 -14
- package/dist/phases/class-diagram/index.js +0 -76
- package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
- package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
- package/dist/phases/code-implementation/context.d.ts +0 -17
- package/dist/phases/code-implementation/context.js +0 -88
- package/dist/phases/code-implementation/index.d.ts +0 -33
- package/dist/phases/code-implementation/index.js +0 -926
- package/dist/phases/code-implementation/outcome.d.ts +0 -47
- package/dist/phases/code-implementation/outcome.js +0 -53
- package/dist/phases/code-implementation/prompts.d.ts +0 -8
- package/dist/phases/code-implementation/prompts.js +0 -166
- package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
- package/dist/phases/code-implementation-verification/agent.js +0 -225
- package/dist/phases/code-implementation-verification/index.d.ts +0 -27
- package/dist/phases/code-implementation-verification/index.js +0 -121
- package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
- package/dist/phases/code-implementation-verification/prompts.js +0 -90
- package/dist/phases/code-refine/context.d.ts +0 -99
- package/dist/phases/code-refine/context.js +0 -457
- package/dist/phases/code-refine/index.d.ts +0 -59
- package/dist/phases/code-refine/index.js +0 -348
- package/dist/phases/code-refine/prompts.d.ts +0 -5
- package/dist/phases/code-refine/prompts.js +0 -162
- package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
- package/dist/phases/code-refine/refine-iteration.js +0 -166
- package/dist/phases/code-refine/retry-handler.d.ts +0 -17
- package/dist/phases/code-refine/retry-handler.js +0 -87
- package/dist/phases/code-refine-verification/github.d.ts +0 -54
- package/dist/phases/code-refine-verification/github.js +0 -328
- package/dist/phases/code-refine-verification/index.d.ts +0 -11
- package/dist/phases/code-refine-verification/index.js +0 -260
- package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
- package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
- package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
- package/dist/phases/code-refine-verification/prompts.js +0 -119
- package/dist/phases/code-refine-verification/types.d.ts +0 -74
- package/dist/phases/code-refine-verification/types.js +0 -4
- package/dist/phases/code-review/context.d.ts +0 -96
- package/dist/phases/code-review/context.js +0 -278
- package/dist/phases/code-review/diff-utils.d.ts +0 -36
- package/dist/phases/code-review/diff-utils.js +0 -100
- package/dist/phases/code-review/index.d.ts +0 -40
- package/dist/phases/code-review/index.js +0 -627
- package/dist/phases/code-testing/analyzer.d.ts +0 -19
- package/dist/phases/code-testing/analyzer.js +0 -215
- package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
- package/dist/phases/code-testing/context-fetcher.js +0 -83
- package/dist/phases/code-testing/index.d.ts +0 -2
- package/dist/phases/code-testing/index.js +0 -2
- package/dist/phases/code-testing/prompts.d.ts +0 -3
- package/dist/phases/code-testing/prompts.js +0 -63
- package/dist/phases/data-flow/index.d.ts +0 -28
- package/dist/phases/data-flow/index.js +0 -286
- package/dist/phases/data-flow/mcp-server.d.ts +0 -85
- package/dist/phases/data-flow/mcp-server.js +0 -140
- package/dist/phases/data-flow/prompts.d.ts +0 -14
- package/dist/phases/data-flow/prompts.js +0 -36
- package/dist/phases/data-flow/types.d.ts +0 -71
- package/dist/phases/data-flow/types.js +0 -86
- package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
- package/dist/phases/diagram-shared/clone-repos.js +0 -153
- package/dist/phases/diagram-shared/generate.d.ts +0 -42
- package/dist/phases/diagram-shared/generate.js +0 -162
- package/dist/phases/diagram-shared/graph.d.ts +0 -62
- package/dist/phases/diagram-shared/graph.js +0 -169
- package/dist/phases/diagram-shared/mcp.d.ts +0 -35
- package/dist/phases/diagram-shared/mcp.js +0 -68
- package/dist/phases/diagram-shared/prompts.d.ts +0 -23
- package/dist/phases/diagram-shared/prompts.js +0 -35
- package/dist/phases/discover-services/index.d.ts +0 -29
- package/dist/phases/discover-services/index.js +0 -528
- package/dist/phases/er-diagram/index.d.ts +0 -28
- package/dist/phases/er-diagram/index.js +0 -290
- package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
- package/dist/phases/er-diagram/mcp-server.js +0 -144
- package/dist/phases/er-diagram/prompts.d.ts +0 -14
- package/dist/phases/er-diagram/prompts.js +0 -36
- package/dist/phases/er-diagram/types.d.ts +0 -76
- package/dist/phases/er-diagram/types.js +0 -84
- package/dist/phases/features/index.d.ts +0 -65
- package/dist/phases/features/index.js +0 -292
- package/dist/phases/features/mcp-server.d.ts +0 -61
- package/dist/phases/features/mcp-server.js +0 -165
- package/dist/phases/features/prompts.d.ts +0 -32
- package/dist/phases/features/prompts.js +0 -92
- package/dist/phases/features/types.d.ts +0 -34
- package/dist/phases/features/types.js +0 -15
- package/dist/phases/financing-deck/agent.d.ts +0 -1
- package/dist/phases/financing-deck/agent.js +0 -96
- package/dist/phases/financing-deck/context.d.ts +0 -13
- package/dist/phases/financing-deck/context.js +0 -69
- package/dist/phases/financing-deck/index.d.ts +0 -15
- package/dist/phases/financing-deck/index.js +0 -89
- package/dist/phases/financing-deck/prompts.d.ts +0 -2
- package/dist/phases/financing-deck/prompts.js +0 -94
- package/dist/phases/find-architecture/index.d.ts +0 -47
- package/dist/phases/find-architecture/index.js +0 -261
- package/dist/phases/find-architecture/prompts.d.ts +0 -31
- package/dist/phases/find-architecture/prompts.js +0 -128
- package/dist/phases/find-architecture/state.d.ts +0 -21
- package/dist/phases/find-architecture/state.js +0 -17
- package/dist/phases/find-architecture/types.d.ts +0 -55
- package/dist/phases/find-architecture/types.js +0 -69
- package/dist/phases/find-bugs/index.d.ts +0 -33
- package/dist/phases/find-bugs/index.js +0 -236
- package/dist/phases/find-bugs/prompts.d.ts +0 -22
- package/dist/phases/find-bugs/prompts.js +0 -101
- package/dist/phases/find-bugs/state.d.ts +0 -19
- package/dist/phases/find-bugs/state.js +0 -13
- package/dist/phases/find-bugs/types.d.ts +0 -21
- package/dist/phases/find-bugs/types.js +0 -16
- package/dist/phases/find-features/index.d.ts +0 -40
- package/dist/phases/find-features/index.js +0 -328
- package/dist/phases/find-features/prompts.d.ts +0 -43
- package/dist/phases/find-features/prompts.js +0 -138
- package/dist/phases/find-features/state.d.ts +0 -25
- package/dist/phases/find-features/state.js +0 -22
- package/dist/phases/find-features/types.d.ts +0 -27
- package/dist/phases/find-features/types.js +0 -16
- package/dist/phases/find-shared/git.d.ts +0 -24
- package/dist/phases/find-shared/git.js +0 -60
- package/dist/phases/find-shared/mcp.d.ts +0 -48
- package/dist/phases/find-shared/mcp.js +0 -125
- package/dist/phases/find-shared/scan-state.d.ts +0 -33
- package/dist/phases/find-shared/scan-state.js +0 -112
- package/dist/phases/find-smells/index.d.ts +0 -50
- package/dist/phases/find-smells/index.js +0 -298
- package/dist/phases/find-smells/prompts.d.ts +0 -30
- package/dist/phases/find-smells/prompts.js +0 -129
- package/dist/phases/find-smells/state.d.ts +0 -21
- package/dist/phases/find-smells/state.js +0 -17
- package/dist/phases/find-smells/types.d.ts +0 -51
- package/dist/phases/find-smells/types.js +0 -64
- package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
- package/dist/phases/flow-shared/clone-repos.js +0 -153
- package/dist/phases/flowchart/index.d.ts +0 -15
- package/dist/phases/flowchart/index.js +0 -50
- package/dist/phases/functional-testing/analyzer.d.ts +0 -46
- package/dist/phases/functional-testing/analyzer.js +0 -622
- package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
- package/dist/phases/functional-testing/context-fetcher.js +0 -83
- package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
- package/dist/phases/functional-testing/http-fallback.js +0 -156
- package/dist/phases/functional-testing/index.d.ts +0 -4
- package/dist/phases/functional-testing/index.js +0 -4
- package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
- package/dist/phases/functional-testing/mcp-server.js +0 -13
- package/dist/phases/functional-testing/prompts.d.ts +0 -2
- package/dist/phases/functional-testing/prompts.js +0 -58
- package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
- package/dist/phases/functional-testing/test-report-creator.js +0 -306
- package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
- package/dist/phases/functional-testing/test-retry-handler.js +0 -70
- package/dist/phases/growth-analysis/agent.d.ts +0 -2
- package/dist/phases/growth-analysis/agent.js +0 -107
- package/dist/phases/growth-analysis/context.d.ts +0 -23
- package/dist/phases/growth-analysis/context.js +0 -137
- package/dist/phases/growth-analysis/index.d.ts +0 -32
- package/dist/phases/growth-analysis/index.js +0 -226
- package/dist/phases/growth-analysis/prompts.d.ts +0 -2
- package/dist/phases/growth-analysis/prompts.js +0 -45
- package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
- package/dist/phases/intelligence-analysis/agent.js +0 -338
- package/dist/phases/intelligence-analysis/context.d.ts +0 -23
- package/dist/phases/intelligence-analysis/context.js +0 -142
- package/dist/phases/intelligence-analysis/index.d.ts +0 -58
- package/dist/phases/intelligence-analysis/index.js +0 -244
- package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
- package/dist/phases/intelligence-analysis/prompts.js +0 -62
- package/dist/phases/issue-analysis/agent.d.ts +0 -21
- package/dist/phases/issue-analysis/agent.js +0 -153
- package/dist/phases/issue-analysis/context.d.ts +0 -20
- package/dist/phases/issue-analysis/context.js +0 -93
- package/dist/phases/issue-analysis/index.d.ts +0 -8
- package/dist/phases/issue-analysis/index.js +0 -147
- package/dist/phases/issue-analysis/outcome.d.ts +0 -10
- package/dist/phases/issue-analysis/outcome.js +0 -42
- package/dist/phases/issue-analysis/prompts.d.ts +0 -8
- package/dist/phases/issue-analysis/prompts.js +0 -99
- package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
- package/dist/phases/issue-analysis-verification/agent.js +0 -124
- package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
- package/dist/phases/issue-analysis-verification/index.js +0 -79
- package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
- package/dist/phases/issue-analysis-verification/prompts.js +0 -75
- package/dist/phases/output-contracts.d.ts +0 -7
- package/dist/phases/output-contracts.js +0 -1201
- package/dist/phases/pr-execution/context.d.ts +0 -32
- package/dist/phases/pr-execution/context.js +0 -246
- package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
- package/dist/phases/pr-execution/file-assigner.js +0 -287
- package/dist/phases/pr-execution/index.d.ts +0 -22
- package/dist/phases/pr-execution/index.js +0 -401
- package/dist/phases/pr-execution/outcome.d.ts +0 -24
- package/dist/phases/pr-execution/outcome.js +0 -34
- package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
- package/dist/phases/pr-execution/pr-executor.js +0 -78
- package/dist/phases/pr-execution/prompts.d.ts +0 -27
- package/dist/phases/pr-execution/prompts.js +0 -131
- package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
- package/dist/phases/pr-resolve/checklist-learner.js +0 -153
- package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
- package/dist/phases/pr-resolve/github-reply.js +0 -75
- package/dist/phases/pr-resolve/index.d.ts +0 -33
- package/dist/phases/pr-resolve/index.js +0 -272
- package/dist/phases/pr-resolve/prompts.d.ts +0 -17
- package/dist/phases/pr-resolve/prompts.js +0 -107
- package/dist/phases/pr-resolve/types.d.ts +0 -18
- package/dist/phases/pr-resolve/types.js +0 -14
- package/dist/phases/pr-resolve/workspace.d.ts +0 -45
- package/dist/phases/pr-resolve/workspace.js +0 -174
- package/dist/phases/pr-review/index.d.ts +0 -27
- package/dist/phases/pr-review/index.js +0 -209
- package/dist/phases/pr-review/prompts.d.ts +0 -5
- package/dist/phases/pr-review/prompts.js +0 -87
- package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
- package/dist/phases/pr-shared/agent-utils.js +0 -112
- package/dist/phases/pr-shared/context.d.ts +0 -24
- package/dist/phases/pr-shared/context.js +0 -78
- package/dist/phases/pr-shared/status.d.ts +0 -18
- package/dist/phases/pr-shared/status.js +0 -37
- package/dist/phases/pr-splitting/context.d.ts +0 -28
- package/dist/phases/pr-splitting/context.js +0 -182
- package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
- package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
- package/dist/phases/pr-splitting/index.d.ts +0 -36
- package/dist/phases/pr-splitting/index.js +0 -413
- package/dist/phases/pr-splitting/outcome.d.ts +0 -24
- package/dist/phases/pr-splitting/outcome.js +0 -114
- package/dist/phases/pr-splitting/prompts.d.ts +0 -43
- package/dist/phases/pr-splitting/prompts.js +0 -154
- package/dist/phases/product-techniques/index.d.ts +0 -52
- package/dist/phases/product-techniques/index.js +0 -268
- package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
- package/dist/phases/product-techniques/mcp-server.js +0 -96
- package/dist/phases/product-techniques/prompts.d.ts +0 -19
- package/dist/phases/product-techniques/prompts.js +0 -66
- package/dist/phases/product-techniques/types.d.ts +0 -13
- package/dist/phases/product-techniques/types.js +0 -13
- package/dist/phases/product-test-cases/index.d.ts +0 -25
- package/dist/phases/product-test-cases/index.js +0 -174
- package/dist/phases/product-test-cases/prompts.d.ts +0 -24
- package/dist/phases/product-test-cases/prompts.js +0 -80
- package/dist/phases/product-test-cases/types.d.ts +0 -17
- package/dist/phases/product-test-cases/types.js +0 -27
- package/dist/phases/pull-request/creator.d.ts +0 -30
- package/dist/phases/pull-request/creator.js +0 -319
- package/dist/phases/pull-request/handler.d.ts +0 -15
- package/dist/phases/pull-request/handler.js +0 -92
- package/dist/phases/quality-benchmark/index.d.ts +0 -65
- package/dist/phases/quality-benchmark/index.js +0 -194
- package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
- package/dist/phases/quality-benchmark/mcp-server.js +0 -252
- package/dist/phases/quality-benchmark/parsers.d.ts +0 -22
- package/dist/phases/quality-benchmark/parsers.js +0 -1101
- package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
- package/dist/phases/quality-benchmark/prompts.js +0 -154
- package/dist/phases/quality-benchmark/rubric.md +0 -1174
- package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
- package/dist/phases/quality-benchmark/tool-catalog.js +0 -636
- package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
- package/dist/phases/quality-benchmark/tool-runner.js +0 -399
- package/dist/phases/quality-benchmark/types.d.ts +0 -312
- package/dist/phases/quality-benchmark/types.js +0 -23
- package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
- package/dist/phases/quality-benchmark/workspace.js +0 -110
- package/dist/phases/recipes/index.d.ts +0 -63
- package/dist/phases/recipes/index.js +0 -358
- package/dist/phases/recipes/mcp-server.d.ts +0 -66
- package/dist/phases/recipes/mcp-server.js +0 -229
- package/dist/phases/recipes/prompts.d.ts +0 -35
- package/dist/phases/recipes/prompts.js +0 -105
- package/dist/phases/recipes/types.d.ts +0 -42
- package/dist/phases/recipes/types.js +0 -16
- package/dist/phases/release-sync/github.d.ts +0 -66
- package/dist/phases/release-sync/github.js +0 -140
- package/dist/phases/release-sync/index.d.ts +0 -24
- package/dist/phases/release-sync/index.js +0 -156
- package/dist/phases/release-sync/snapshot.d.ts +0 -27
- package/dist/phases/release-sync/snapshot.js +0 -158
- package/dist/phases/run-sheet/agent.d.ts +0 -49
- package/dist/phases/run-sheet/agent.js +0 -156
- package/dist/phases/run-sheet/index.d.ts +0 -57
- package/dist/phases/run-sheet/index.js +0 -392
- package/dist/phases/screen-flow/index.d.ts +0 -26
- package/dist/phases/screen-flow/index.js +0 -349
- package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
- package/dist/phases/screen-flow/mcp-server.js +0 -272
- package/dist/phases/screen-flow/prompts.d.ts +0 -19
- package/dist/phases/screen-flow/prompts.js +0 -43
- package/dist/phases/screen-flow/theme.d.ts +0 -19
- package/dist/phases/screen-flow/theme.js +0 -193
- package/dist/phases/screen-flow/types.d.ts +0 -137
- package/dist/phases/screen-flow/types.js +0 -81
- package/dist/phases/sequence-diagram/index.d.ts +0 -30
- package/dist/phases/sequence-diagram/index.js +0 -290
- package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
- package/dist/phases/sequence-diagram/mcp-server.js +0 -134
- package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
- package/dist/phases/sequence-diagram/prompts.js +0 -36
- package/dist/phases/sequence-diagram/types.d.ts +0 -52
- package/dist/phases/sequence-diagram/types.js +0 -93
- package/dist/phases/smoke-test/agent.d.ts +0 -12
- package/dist/phases/smoke-test/agent.js +0 -93
- package/dist/phases/smoke-test/index.d.ts +0 -22
- package/dist/phases/smoke-test/index.js +0 -241
- package/dist/phases/smoke-test/prompts.d.ts +0 -15
- package/dist/phases/smoke-test/prompts.js +0 -35
- package/dist/phases/state-diagram/index.d.ts +0 -15
- package/dist/phases/state-diagram/index.js +0 -53
- package/dist/phases/sync-github-issues/index.d.ts +0 -41
- package/dist/phases/sync-github-issues/index.js +0 -187
- package/dist/phases/sync-github-issues/state.d.ts +0 -26
- package/dist/phases/sync-github-issues/state.js +0 -18
- package/dist/phases/sync-github-issues/types.d.ts +0 -35
- package/dist/phases/sync-github-issues/types.js +0 -6
- package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
- package/dist/phases/sync-github-pull-requests/index.js +0 -210
- package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
- package/dist/phases/sync-github-pull-requests/state.js +0 -16
- package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
- package/dist/phases/sync-github-pull-requests/types.js +0 -1
- package/dist/phases/sync-org-repos/index.d.ts +0 -28
- package/dist/phases/sync-org-repos/index.js +0 -133
- package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
- package/dist/phases/sync-sentry-issues/index.js +0 -153
- package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
- package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
- package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
- package/dist/phases/sync-sentry-issues/state.js +0 -18
- package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
- package/dist/phases/sync-sentry-issues/types.js +0 -6
- package/dist/phases/sync-shared/mcp.d.ts +0 -81
- package/dist/phases/sync-shared/mcp.js +0 -111
- package/dist/phases/task/agent.d.ts +0 -10
- package/dist/phases/task/agent.js +0 -83
- package/dist/phases/task/context.d.ts +0 -16
- package/dist/phases/task/context.js +0 -50
- package/dist/phases/task/index.d.ts +0 -17
- package/dist/phases/task/index.js +0 -54
- package/dist/phases/task/prompts.d.ts +0 -9
- package/dist/phases/task/prompts.js +0 -21
- package/dist/phases/technical-design/context.d.ts +0 -12
- package/dist/phases/technical-design/context.js +0 -39
- package/dist/phases/technical-design/index.d.ts +0 -21
- package/dist/phases/technical-design/index.js +0 -456
- package/dist/phases/technical-design/outcome.d.ts +0 -25
- package/dist/phases/technical-design/outcome.js +0 -41
- package/dist/phases/technical-design/prompts.d.ts +0 -8
- package/dist/phases/technical-design/prompts.js +0 -210
- package/dist/phases/technical-design-verification/agent.d.ts +0 -53
- package/dist/phases/technical-design-verification/agent.js +0 -186
- package/dist/phases/technical-design-verification/index.d.ts +0 -38
- package/dist/phases/technical-design-verification/index.js +0 -152
- package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
- package/dist/phases/technical-design-verification/prompts.js +0 -143
- package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
- package/dist/phases/test-cases-analysis/agent.js +0 -105
- package/dist/phases/test-cases-analysis/context.d.ts +0 -15
- package/dist/phases/test-cases-analysis/context.js +0 -86
- package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
- package/dist/phases/test-cases-analysis/formatters.js +0 -35
- package/dist/phases/test-cases-analysis/index.d.ts +0 -9
- package/dist/phases/test-cases-analysis/index.js +0 -175
- package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
- package/dist/phases/test-cases-analysis/outcome.js +0 -146
- package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
- package/dist/phases/test-cases-analysis/prompts.js +0 -171
- package/dist/phases/user-psychology/agent.d.ts +0 -16
- package/dist/phases/user-psychology/agent.js +0 -105
- package/dist/phases/user-psychology/context.d.ts +0 -10
- package/dist/phases/user-psychology/context.js +0 -65
- package/dist/phases/user-psychology/index.d.ts +0 -18
- package/dist/phases/user-psychology/index.js +0 -96
- package/dist/phases/user-psychology/prompts.d.ts +0 -2
- package/dist/phases/user-psychology/prompts.js +0 -41
- package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
- package/dist/phases/user-stories-analysis/agent.js +0 -105
- package/dist/phases/user-stories-analysis/context.d.ts +0 -15
- package/dist/phases/user-stories-analysis/context.js +0 -86
- package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
- package/dist/phases/user-stories-analysis/formatters.js +0 -32
- package/dist/phases/user-stories-analysis/index.d.ts +0 -9
- package/dist/phases/user-stories-analysis/index.js +0 -175
- package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
- package/dist/phases/user-stories-analysis/outcome.js +0 -146
- package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
- package/dist/phases/user-stories-analysis/prompts.js +0 -194
- package/dist/services/audit-logs.d.ts +0 -73
- package/dist/services/audit-logs.js +0 -174
- package/dist/services/branches.d.ts +0 -103
- package/dist/services/branches.js +0 -391
- package/dist/services/checklist.d.ts +0 -100
- package/dist/services/checklist.js +0 -259
- package/dist/services/coaching/coaching-agent.d.ts +0 -39
- package/dist/services/coaching/coaching-agent.js +0 -308
- package/dist/services/coaching/coaching-loop.d.ts +0 -62
- package/dist/services/coaching/coaching-loop.js +0 -265
- package/dist/services/coaching/index.d.ts +0 -8
- package/dist/services/coaching/index.js +0 -8
- package/dist/services/coaching/phase-coaching.d.ts +0 -47
- package/dist/services/coaching/phase-coaching.js +0 -60
- package/dist/services/coaching/self-rating.d.ts +0 -26
- package/dist/services/coaching/self-rating.js +0 -153
- package/dist/services/feedbacks.d.ts +0 -57
- package/dist/services/feedbacks.js +0 -264
- package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
- package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
- package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
- package/dist/services/phase-hooks/hook-executor.js +0 -167
- package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
- package/dist/services/phase-hooks/hook-logging.js +0 -41
- package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
- package/dist/services/phase-hooks/hook-runner.js +0 -83
- package/dist/services/phase-hooks/index.d.ts +0 -10
- package/dist/services/phase-hooks/index.js +0 -9
- package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
- package/dist/services/phase-hooks/plugin-loader.js +0 -207
- package/dist/services/phase-hooks/types.d.ts +0 -69
- package/dist/services/phase-hooks/types.js +0 -8
- package/dist/services/phase-ratings.d.ts +0 -70
- package/dist/services/phase-ratings.js +0 -143
- package/dist/services/product-logs.d.ts +0 -31
- package/dist/services/product-logs.js +0 -94
- package/dist/services/pull-requests.d.ts +0 -57
- package/dist/services/pull-requests.js +0 -186
- package/dist/services/quality-reports.d.ts +0 -45
- package/dist/services/quality-reports.js +0 -93
- package/dist/services/repo-config.d.ts +0 -17
- package/dist/services/repo-config.js +0 -50
- package/dist/services/skill-resolver.d.ts +0 -46
- package/dist/services/skill-resolver.js +0 -123
- package/dist/services/video/device-frames.d.ts +0 -34
- package/dist/services/video/device-frames.js +0 -513
- package/dist/services/video/index.d.ts +0 -66
- package/dist/services/video/index.js +0 -238
- package/dist/services/video/retry.d.ts +0 -20
- package/dist/services/video/retry.js +0 -76
- package/dist/services/video/screenshot-generator.d.ts +0 -69
- package/dist/services/video/screenshot-generator.js +0 -259
- package/dist/services/video/tts-generator.d.ts +0 -40
- package/dist/services/video/tts-generator.js +0 -121
- package/dist/services/video/video-assembler.d.ts +0 -45
- package/dist/services/video/video-assembler.js +0 -351
- package/dist/services/video/video-uploader.d.ts +0 -28
- package/dist/services/video/video-uploader.js +0 -108
- package/dist/skills/phase/adr-generation/SKILL.md +0 -51
- package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
- package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
- package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
- package/dist/skills/phase/autonomous/SKILL.md +0 -52
- package/dist/skills/phase/branch-planning/SKILL.md +0 -55
- package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
- package/dist/skills/phase/class-diagram/SKILL.md +0 -44
- package/dist/skills/phase/code-implementation/SKILL.md +0 -68
- package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
- package/dist/skills/phase/code-refine/SKILL.md +0 -62
- package/dist/skills/phase/code-testing/SKILL.md +0 -78
- package/dist/skills/phase/data-flow/SKILL.md +0 -82
- package/dist/skills/phase/er-diagram/SKILL.md +0 -71
- package/dist/skills/phase/flowchart/SKILL.md +0 -38
- package/dist/skills/phase/functional-testing/SKILL.md +0 -62
- package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
- package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
- package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
- package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
- package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
- package/dist/skills/phase/pr-execution/SKILL.md +0 -69
- package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
- package/dist/skills/phase/screen-flow/SKILL.md +0 -78
- package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
- package/dist/skills/phase/smoke-test/SKILL.md +0 -80
- package/dist/skills/phase/state-diagram/SKILL.md +0 -38
- package/dist/skills/phase/task/SKILL.md +0 -19
- package/dist/skills/phase/technical-design/SKILL.md +0 -75
- package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
- package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
- package/dist/skills/phase/user-psychology/SKILL.md +0 -135
- package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
- package/dist/supabase/client.d.ts +0 -34
- package/dist/supabase/client.js +0 -123
- package/dist/system/session-manager.d.ts +0 -67
- package/dist/system/session-manager.js +0 -300
- package/dist/system/sleep-notification.d.ts +0 -15
- package/dist/system/sleep-notification.js +0 -108
- package/dist/system/sleep-prevention.d.ts +0 -20
- package/dist/system/sleep-prevention.js +0 -112
- package/dist/tools/bootstrap.d.ts +0 -45
- package/dist/tools/bootstrap.js +0 -50
- package/dist/types/external-sources.d.ts +0 -22
- package/dist/types/external-sources.js +0 -23
- package/dist/types/index.d.ts +0 -206
- package/dist/types/index.js +0 -1
- package/dist/types/issues.d.ts +0 -37
- package/dist/types/issues.js +0 -1
- package/dist/types/llm-responses.d.ts +0 -114
- package/dist/types/llm-responses.js +0 -9
- package/dist/types/pipeline.d.ts +0 -28
- package/dist/types/pipeline.js +0 -4
- package/dist/updater/auto-updater.d.ts +0 -39
- package/dist/updater/auto-updater.js +0 -134
- package/dist/utils/conflict-resolver.d.ts +0 -49
- package/dist/utils/conflict-resolver.js +0 -201
- package/dist/utils/formatters.d.ts +0 -42
- package/dist/utils/formatters.js +0 -166
- package/dist/utils/git-branch-manager-async.d.ts +0 -127
- package/dist/utils/git-branch-manager-async.js +0 -425
- package/dist/utils/git-branch-manager.d.ts +0 -160
- package/dist/utils/git-branch-manager.js +0 -613
- package/dist/utils/git-push.d.ts +0 -43
- package/dist/utils/git-push.js +0 -136
- package/dist/utils/github-repo-info.d.ts +0 -26
- package/dist/utils/github-repo-info.js +0 -45
- package/dist/utils/image-downloader.d.ts +0 -32
- package/dist/utils/image-downloader.js +0 -152
- package/dist/utils/issue-phase-cli.d.ts +0 -26
- package/dist/utils/issue-phase-cli.js +0 -44
- package/dist/utils/json-extract.d.ts +0 -6
- package/dist/utils/json-extract.js +0 -44
- package/dist/utils/json-extractor.d.ts +0 -27
- package/dist/utils/json-extractor.js +0 -102
- package/dist/utils/logger.d.ts +0 -35
- package/dist/utils/logger.js +0 -167
- package/dist/utils/pipeline-logger.d.ts +0 -8
- package/dist/utils/pipeline-logger.js +0 -38
- package/dist/utils/validation.d.ts +0 -68
- package/dist/utils/validation.js +0 -229
- package/dist/utils/workflow-utils.d.ts +0 -22
- package/dist/utils/workflow-utils.js +0 -48
- package/dist/workspace/session-workspace.d.ts +0 -43
- package/dist/workspace/session-workspace.js +0 -90
- package/dist/workspace/workspace-manager.d.ts +0 -105
- package/dist/workspace/workspace-manager.js +0 -280
|
@@ -1,627 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-lines -- orchestration module with inline prompt generation and review processing */
|
|
2
|
-
/**
|
|
3
|
-
* Code Review Analyzer
|
|
4
|
-
* Reviews GitHub PR code and creates review comments with REQUEST_CHANGES
|
|
5
|
-
*/
|
|
6
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
7
|
-
import { Octokit } from '@octokit/rest';
|
|
8
|
-
import { getGitHubConfig } from '../../api/github.js';
|
|
9
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
10
|
-
import { getBaseBranchInfo, getBranches, updateBranch, } from '../../services/branches.js';
|
|
11
|
-
import { formatChecklistsForContext, } from '../../services/checklist.js';
|
|
12
|
-
import { formatFeedbacksForContext, getFeedbacksForPhase, } from '../../services/feedbacks.js';
|
|
13
|
-
import { getDefaultBranchForIssue } from '../../services/repo-config.js';
|
|
14
|
-
import { prepareCustomBranchGitEnvironmentAsync, preparePhaseGitEnvironmentAsync, syncFeatBranchWithMain, } from '../../utils/git-branch-manager.js';
|
|
15
|
-
import { logError, logInfo } from '../../utils/logger.js';
|
|
16
|
-
import { createPromptGenerator, extractTextFromContent, tryExtractResult, } from '../pr-shared/agent-utils.js';
|
|
17
|
-
import { fetchCodeReviewContext, formatContextForPrompt, } from './context.js';
|
|
18
|
-
import { buildLineToPositionMap, findClosestPosition } from './diff-utils.js';
|
|
19
|
-
/**
|
|
20
|
-
* Process a query result message and extract the structured review result
|
|
21
|
-
*/
|
|
22
|
-
function parseQueryResultMessage(message, lastAssistantResponse) {
|
|
23
|
-
if (message.subtype === 'success') {
|
|
24
|
-
logInfo('\n Code review analysis completed, parsing results...');
|
|
25
|
-
const responseText = message.result || lastAssistantResponse;
|
|
26
|
-
const result = tryExtractResult(responseText, 'review_result');
|
|
27
|
-
if (result) {
|
|
28
|
-
return result;
|
|
29
|
-
}
|
|
30
|
-
logError('Failed to parse structured review result');
|
|
31
|
-
return parseCodeReviewResponse(responseText);
|
|
32
|
-
}
|
|
33
|
-
logError(`\n Code review incomplete: ${message.subtype}`);
|
|
34
|
-
if (message.subtype === 'error_max_turns') {
|
|
35
|
-
logError('Try simplifying the review scope');
|
|
36
|
-
}
|
|
37
|
-
if (!lastAssistantResponse) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
const result = tryExtractResult(lastAssistantResponse, 'review_result');
|
|
41
|
-
if (result) {
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
return parseCodeReviewResponse(lastAssistantResponse);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Log base branch rebase info for verbose mode
|
|
48
|
-
*/
|
|
49
|
-
function logBaseBranchRebaseInfo(currentBranch,
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
-
baseBranchInfo, baseBranchForRebase, originalBaseBranchForRebase, verbose) {
|
|
52
|
-
if (!verbose) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (!currentBranch.base_branch_id) {
|
|
56
|
-
// No base branch - first branch in chain
|
|
57
|
-
}
|
|
58
|
-
else if (baseBranchInfo.baseBranchMerged) {
|
|
59
|
-
logInfo(` Base branch is merged, will rebase from feat branch: ${baseBranchForRebase}`);
|
|
60
|
-
if (originalBaseBranchForRebase) {
|
|
61
|
-
logInfo(` Using --onto from original base: ${originalBaseBranchForRebase}`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
logInfo(` Will rebase from base branch: ${baseBranchForRebase}`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Main code review function
|
|
70
|
-
*/
|
|
71
|
-
export const reviewPullRequest = async (options, config, checklistContext) => {
|
|
72
|
-
const { issueId, githubToken, verbose } = options;
|
|
73
|
-
if (verbose) {
|
|
74
|
-
logInfo(`Starting code review for issue ID: ${issueId}`);
|
|
75
|
-
}
|
|
76
|
-
// Resolve the repo's default branch (handles forks where default is master, etc.)
|
|
77
|
-
const defaultBranch = await getDefaultBranchForIssue(issueId, verbose);
|
|
78
|
-
// For multi-branch issues, find the branch that is ready for review
|
|
79
|
-
// and use its branch_name for review (branch_name is stored as dev/...)
|
|
80
|
-
let branchName = `dev/${issueId}`; // Default for single-branch issues
|
|
81
|
-
let currentBranch = null;
|
|
82
|
-
let allBranches = [];
|
|
83
|
-
let baseBranchForRebase = defaultBranch; // Default base branch for rebase
|
|
84
|
-
let rebaseTargetBranchForRebase; // Target for --onto rebase (e.g., main)
|
|
85
|
-
let originalBaseBranchForRebase; // For --onto when base was squash-merged
|
|
86
|
-
let baseBranchCompletedForRebase = false;
|
|
87
|
-
try {
|
|
88
|
-
// Get all branches to determine base branch info
|
|
89
|
-
allBranches = await getBranches({ issueId, verbose });
|
|
90
|
-
currentBranch =
|
|
91
|
-
allBranches.find((b) => b.status === 'ready_for_review') || null;
|
|
92
|
-
if (currentBranch && currentBranch.branch_name) {
|
|
93
|
-
// Use branch_name directly (already stored as dev/...)
|
|
94
|
-
branchName = currentBranch.branch_name;
|
|
95
|
-
if (verbose) {
|
|
96
|
-
logInfo(`📋 Found ready_for_review branch: ${currentBranch.name}`);
|
|
97
|
-
logInfo(` Using dev branch: ${branchName}`);
|
|
98
|
-
}
|
|
99
|
-
// Determine the correct base branch for rebase using base_branch_id
|
|
100
|
-
const baseBranchInfo = getBaseBranchInfo(currentBranch, allBranches, defaultBranch);
|
|
101
|
-
// Always use the baseBranch from getBaseBranchInfo - it handles all cases:
|
|
102
|
-
// - No base branch: returns 'main'
|
|
103
|
-
// - Base branch merged: returns feat branch (new branches created from feat/xxx)
|
|
104
|
-
// - Base branch completed: returns main
|
|
105
|
-
// - Base branch not merged: returns dev branch
|
|
106
|
-
baseBranchForRebase = baseBranchInfo.baseBranch;
|
|
107
|
-
// When base branch is merged, rebaseTargetBranch is 'main' (target for --onto)
|
|
108
|
-
rebaseTargetBranchForRebase = baseBranchInfo.rebaseTargetBranch;
|
|
109
|
-
// When base branch is merged (squash merge), we need originalBaseBranch for --onto
|
|
110
|
-
originalBaseBranchForRebase = baseBranchInfo.originalBaseBranch;
|
|
111
|
-
baseBranchCompletedForRebase = baseBranchInfo.baseBranchCompleted || false;
|
|
112
|
-
logBaseBranchRebaseInfo(currentBranch, baseBranchInfo, baseBranchForRebase, originalBaseBranchForRebase, verbose);
|
|
113
|
-
}
|
|
114
|
-
else if (verbose) {
|
|
115
|
-
logInfo(`ℹ️ No ready_for_review branch found, using default: ${branchName}`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (_error) {
|
|
119
|
-
if (verbose) {
|
|
120
|
-
logInfo(`Note: Could not fetch issue branches, using default branch`);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// Get PR URL from branch
|
|
124
|
-
let pullRequestUrl = null;
|
|
125
|
-
if (currentBranch && currentBranch.pull_request_url) {
|
|
126
|
-
pullRequestUrl = currentBranch.pull_request_url;
|
|
127
|
-
if (verbose) {
|
|
128
|
-
logInfo(`📝 Using PR URL from branch: ${pullRequestUrl}`);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else if (verbose) {
|
|
132
|
-
logInfo(`Note: No PR URL found on branch`);
|
|
133
|
-
}
|
|
134
|
-
// Sync feat branch to main before rebase to ensure it's up to date
|
|
135
|
-
// This prevents the PR (dev → feat) from showing extra commits
|
|
136
|
-
let featSyncedToMain = false;
|
|
137
|
-
if (branchName.startsWith('dev/')) {
|
|
138
|
-
try {
|
|
139
|
-
const githubConfig = await getGitHubConfig(issueId, verbose);
|
|
140
|
-
if (githubConfig.configured &&
|
|
141
|
-
githubConfig.token &&
|
|
142
|
-
githubConfig.owner &&
|
|
143
|
-
githubConfig.repo) {
|
|
144
|
-
const featBranchName = branchName.replace(/^dev\//, 'feat/');
|
|
145
|
-
if (verbose) {
|
|
146
|
-
logInfo(`📥 Syncing ${featBranchName} with ${defaultBranch} before rebase...`);
|
|
147
|
-
}
|
|
148
|
-
featSyncedToMain = await syncFeatBranchWithMain({
|
|
149
|
-
featBranch: featBranchName,
|
|
150
|
-
githubToken: githubConfig.token,
|
|
151
|
-
owner: githubConfig.owner,
|
|
152
|
-
repo: githubConfig.repo,
|
|
153
|
-
baseBranch: defaultBranch,
|
|
154
|
-
verbose,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
// Don't fail the phase if sync fails
|
|
160
|
-
if (verbose) {
|
|
161
|
-
logInfo(`⚠️ Could not sync feat branch: ${error instanceof Error ? error.message : String(error)}`);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// Prepare git environment: switch to the appropriate branch and rebase from correct base
|
|
166
|
-
// Use async version with automatic conflict resolution
|
|
167
|
-
const gitEnvResult = currentBranch
|
|
168
|
-
? await prepareCustomBranchGitEnvironmentAsync({
|
|
169
|
-
issueBranch: branchName,
|
|
170
|
-
baseBranch: baseBranchForRebase,
|
|
171
|
-
rebaseTargetBranch: rebaseTargetBranchForRebase,
|
|
172
|
-
originalBaseBranch: originalBaseBranchForRebase,
|
|
173
|
-
verbose,
|
|
174
|
-
resolveConflicts: true,
|
|
175
|
-
conflictResolverConfig: {
|
|
176
|
-
model: DEFAULT_MODEL,
|
|
177
|
-
},
|
|
178
|
-
forcePushAfterRebase: featSyncedToMain,
|
|
179
|
-
baseBranchCompleted: baseBranchCompletedForRebase,
|
|
180
|
-
githubToken,
|
|
181
|
-
})
|
|
182
|
-
: await preparePhaseGitEnvironmentAsync(issueId, defaultBranch, verbose, true, {
|
|
183
|
-
model: DEFAULT_MODEL,
|
|
184
|
-
});
|
|
185
|
-
const cleanupGit = gitEnvResult.cleanup;
|
|
186
|
-
// Log if conflicts were automatically resolved
|
|
187
|
-
if (gitEnvResult.conflictsResolved && verbose) {
|
|
188
|
-
logInfo(`🔧 Automatically resolved ${gitEnvResult.resolvedFiles?.length || 0} conflict(s) during rebase`);
|
|
189
|
-
}
|
|
190
|
-
try {
|
|
191
|
-
// Fetch code review context (PR data, files, commits)
|
|
192
|
-
if (verbose) {
|
|
193
|
-
logInfo('Fetching code review context from GitHub PR...');
|
|
194
|
-
}
|
|
195
|
-
const context = await fetchCodeReviewContext(issueId, githubToken, verbose, pullRequestUrl || undefined);
|
|
196
|
-
// Check if there are any files to review
|
|
197
|
-
if (context.files.length === 0) {
|
|
198
|
-
if (verbose) {
|
|
199
|
-
logInfo('✅ No files to review in the PR.');
|
|
200
|
-
}
|
|
201
|
-
return {
|
|
202
|
-
issueId,
|
|
203
|
-
status: 'success',
|
|
204
|
-
message: 'No files to review',
|
|
205
|
-
summary: 'No changed files found in the PR',
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
if (verbose) {
|
|
209
|
-
logInfo(`📋 Found ${context.files.length} files to review across ${context.commits.length} commits`);
|
|
210
|
-
}
|
|
211
|
-
// Fetch additional feedbacks for code-review phase
|
|
212
|
-
// For multi-branch issues, filter by the current branch to get branch-specific feedbacks
|
|
213
|
-
let feedbacksInfo;
|
|
214
|
-
try {
|
|
215
|
-
const feedbacksContext = await getFeedbacksForPhase({ issueId, verbose }, 'code_review', currentBranch?.id // Pass branch_id if we have a current branch
|
|
216
|
-
);
|
|
217
|
-
if (feedbacksContext.feedbacks.length > 0) {
|
|
218
|
-
feedbacksInfo = await formatFeedbacksForContext(feedbacksContext);
|
|
219
|
-
if (verbose) {
|
|
220
|
-
logInfo(`Added ${feedbacksContext.feedbacks.length} human feedbacks to code review context${currentBranch ? ` (including branch-specific for "${currentBranch.name}")` : ''}`);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
catch (error) {
|
|
225
|
-
if (verbose) {
|
|
226
|
-
logInfo(`Note: Could not fetch feedbacks (${error instanceof Error ? error.message : String(error)})`);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
// Create prompt for code review
|
|
230
|
-
const systemPrompt = createSystemPrompt(config, checklistContext);
|
|
231
|
-
const reviewPrompt = createCodeReviewPrompt(issueId, context, feedbacksInfo, checklistContext);
|
|
232
|
-
let lastAssistantResponse = '';
|
|
233
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
234
|
-
let structuredReviewResult = null;
|
|
235
|
-
let executionSessionId = '';
|
|
236
|
-
if (verbose) {
|
|
237
|
-
logInfo('Starting Claude analysis for code review...');
|
|
238
|
-
}
|
|
239
|
-
// Use Claude to analyze the code (not using Claude Code SDK for actual implementation)
|
|
240
|
-
// This is a simplified approach - just analyze the code
|
|
241
|
-
for await (const message of query({
|
|
242
|
-
prompt: createPromptGenerator(reviewPrompt),
|
|
243
|
-
options: {
|
|
244
|
-
systemPrompt: {
|
|
245
|
-
type: 'preset',
|
|
246
|
-
preset: 'claude_code',
|
|
247
|
-
append: systemPrompt,
|
|
248
|
-
},
|
|
249
|
-
model: DEFAULT_MODEL,
|
|
250
|
-
maxTurns: 50, // Limited turns since this is just analysis
|
|
251
|
-
permissionMode: 'bypassPermissions',
|
|
252
|
-
},
|
|
253
|
-
})) {
|
|
254
|
-
if (verbose) {
|
|
255
|
-
logInfo(`Received message type: ${message.type}`);
|
|
256
|
-
}
|
|
257
|
-
// Stream the code review process
|
|
258
|
-
if (message.type === 'assistant') {
|
|
259
|
-
lastAssistantResponse += extractTextFromContent(message.message?.content ?? [], verbose);
|
|
260
|
-
continue;
|
|
261
|
-
}
|
|
262
|
-
if (message.type !== 'result') {
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
265
|
-
executionSessionId = message.session_id || executionSessionId;
|
|
266
|
-
structuredReviewResult = parseQueryResultMessage(message, lastAssistantResponse);
|
|
267
|
-
}
|
|
268
|
-
// Create GitHub review with comments
|
|
269
|
-
if (structuredReviewResult) {
|
|
270
|
-
const { summary, comments, overall_assessment, checklist_item_results } = structuredReviewResult;
|
|
271
|
-
// Initialize Octokit
|
|
272
|
-
const octokit = new Octokit({ auth: githubToken });
|
|
273
|
-
if (!comments || comments.length === 0) {
|
|
274
|
-
if (verbose) {
|
|
275
|
-
logInfo('✅ No issues found. PR looks good!');
|
|
276
|
-
}
|
|
277
|
-
// Create a comment review if no issues found
|
|
278
|
-
// Note: We use COMMENT instead of APPROVE because:
|
|
279
|
-
// 1. Automated reviews should not approve PRs
|
|
280
|
-
// 2. GitHub doesn't allow approving your own PR
|
|
281
|
-
const review = await octokit.pulls.createReview({
|
|
282
|
-
owner: context.owner,
|
|
283
|
-
repo: context.repo,
|
|
284
|
-
pull_number: context.pullRequestNumber,
|
|
285
|
-
event: 'COMMENT',
|
|
286
|
-
body: summary ||
|
|
287
|
-
overall_assessment ||
|
|
288
|
-
'Code review completed. No issues found.',
|
|
289
|
-
});
|
|
290
|
-
// Update branch status to 'reviewed' for multi-branch issues
|
|
291
|
-
if (currentBranch) {
|
|
292
|
-
await updateBranch(currentBranch.id, { status: 'reviewed' }, verbose);
|
|
293
|
-
if (verbose) {
|
|
294
|
-
logInfo(`✅ Branch "${currentBranch.name}" status updated to 'reviewed'`);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return {
|
|
298
|
-
issueId,
|
|
299
|
-
status: 'success',
|
|
300
|
-
message: 'Code review completed - no issues found',
|
|
301
|
-
reviewId: review.data.id,
|
|
302
|
-
reviewUrl: review.data.html_url,
|
|
303
|
-
commentsCount: 0,
|
|
304
|
-
summary: summary || 'No issues found',
|
|
305
|
-
data: {
|
|
306
|
-
checklist_item_results,
|
|
307
|
-
execution_session_id: executionSessionId || undefined,
|
|
308
|
-
},
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
if (verbose) {
|
|
312
|
-
logInfo(`Creating GitHub review with ${comments.length} comments...`);
|
|
313
|
-
}
|
|
314
|
-
// Build a map of file paths to their line-to-position mappings
|
|
315
|
-
const fileLineToPosition = new Map();
|
|
316
|
-
for (const file of context.files) {
|
|
317
|
-
if (file.patch) {
|
|
318
|
-
fileLineToPosition.set(file.filename, buildLineToPositionMap(file.patch));
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
// Get the latest commit SHA from the PR for the review
|
|
322
|
-
const commitId = context.prData.head.sha;
|
|
323
|
-
// Create review with inline comments using unified diff positions
|
|
324
|
-
const reviewComments = [];
|
|
325
|
-
for (const comment of comments) {
|
|
326
|
-
const filePath = comment.file || comment.path;
|
|
327
|
-
const requestedLine = comment.line;
|
|
328
|
-
const lineToPosition = fileLineToPosition.get(filePath);
|
|
329
|
-
if (!lineToPosition) {
|
|
330
|
-
if (verbose) {
|
|
331
|
-
logInfo(`⚠️ Skipping comment for ${filePath}:${requestedLine} - file has no diff`);
|
|
332
|
-
}
|
|
333
|
-
continue;
|
|
334
|
-
}
|
|
335
|
-
// Find the diff position for this line number
|
|
336
|
-
const positionResult = findClosestPosition(requestedLine, lineToPosition);
|
|
337
|
-
if (positionResult === null) {
|
|
338
|
-
if (verbose) {
|
|
339
|
-
logInfo(`⚠️ Skipping comment for ${filePath}:${requestedLine} - line not in diff range`);
|
|
340
|
-
}
|
|
341
|
-
continue;
|
|
342
|
-
}
|
|
343
|
-
let commentBody = comment.comment || comment.body;
|
|
344
|
-
// If we had to adjust the line number, add a note
|
|
345
|
-
if (positionResult.actualLine !== requestedLine) {
|
|
346
|
-
commentBody = `**Note**: Comment originally for line ${requestedLine}, adjusted to line ${positionResult.actualLine} (nearest line in diff).\n\n${commentBody}`;
|
|
347
|
-
if (verbose) {
|
|
348
|
-
logInfo(` Adjusted ${filePath}:${requestedLine} → line ${positionResult.actualLine} (position ${positionResult.position})`);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
reviewComments.push({
|
|
352
|
-
path: filePath,
|
|
353
|
-
position: positionResult.position,
|
|
354
|
-
body: commentBody,
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
// If all comments were filtered out, just create a review with the summary
|
|
358
|
-
if (reviewComments.length === 0) {
|
|
359
|
-
if (verbose) {
|
|
360
|
-
logInfo(`⚠️ All ${comments.length} comments were filtered out (invalid line numbers)`);
|
|
361
|
-
logInfo('Creating review with summary only...');
|
|
362
|
-
}
|
|
363
|
-
const review = await octokit.pulls.createReview({
|
|
364
|
-
owner: context.owner,
|
|
365
|
-
repo: context.repo,
|
|
366
|
-
pull_number: context.pullRequestNumber,
|
|
367
|
-
event: 'COMMENT',
|
|
368
|
-
body: `${summary || overall_assessment || 'Code review completed.'}\n\n**Note**: Some review comments could not be posted because they referenced lines not present in the diff.`,
|
|
369
|
-
});
|
|
370
|
-
// Update branch status to 'reviewed' for multi-branch issues
|
|
371
|
-
if (currentBranch) {
|
|
372
|
-
await updateBranch(currentBranch.id, { status: 'reviewed' }, verbose);
|
|
373
|
-
if (verbose) {
|
|
374
|
-
logInfo(`✅ Branch "${currentBranch.name}" status updated to 'reviewed'`);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
return {
|
|
378
|
-
issueId,
|
|
379
|
-
status: 'success',
|
|
380
|
-
message: 'Code review completed - comments filtered due to invalid line numbers',
|
|
381
|
-
reviewId: review.data.id,
|
|
382
|
-
reviewUrl: review.data.html_url,
|
|
383
|
-
commentsCount: 0,
|
|
384
|
-
summary: summary || 'Code review completed (comments filtered)',
|
|
385
|
-
data: {
|
|
386
|
-
checklist_item_results,
|
|
387
|
-
execution_session_id: executionSessionId || undefined,
|
|
388
|
-
},
|
|
389
|
-
};
|
|
390
|
-
}
|
|
391
|
-
if (verbose) {
|
|
392
|
-
logInfo(`📝 Posting ${reviewComments.length} validated comments (${comments.length - reviewComments.length} filtered out)`);
|
|
393
|
-
}
|
|
394
|
-
const review = await octokit.pulls.createReview({
|
|
395
|
-
owner: context.owner,
|
|
396
|
-
repo: context.repo,
|
|
397
|
-
pull_number: context.pullRequestNumber,
|
|
398
|
-
commit_id: commitId, // Required for position-based comments
|
|
399
|
-
event: 'COMMENT',
|
|
400
|
-
body: summary ||
|
|
401
|
-
overall_assessment ||
|
|
402
|
-
'Please address the following review comments.',
|
|
403
|
-
comments: reviewComments,
|
|
404
|
-
});
|
|
405
|
-
if (verbose) {
|
|
406
|
-
logInfo(`✅ GitHub review created: ${review.data.html_url}`);
|
|
407
|
-
logInfo(`Review ID: ${review.data.id}`);
|
|
408
|
-
logInfo(`Comments posted: ${comments.length}`);
|
|
409
|
-
}
|
|
410
|
-
// Update branch status to 'reviewed' for multi-branch issues
|
|
411
|
-
if (currentBranch) {
|
|
412
|
-
await updateBranch(currentBranch.id, { status: 'reviewed' }, verbose);
|
|
413
|
-
if (verbose) {
|
|
414
|
-
logInfo(`✅ Branch "${currentBranch.name}" status updated to 'reviewed'`);
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
return {
|
|
418
|
-
issueId,
|
|
419
|
-
status: 'success',
|
|
420
|
-
message: 'Code review completed and posted to GitHub',
|
|
421
|
-
reviewId: review.data.id,
|
|
422
|
-
reviewUrl: review.data.html_url,
|
|
423
|
-
commentsCount: comments.length,
|
|
424
|
-
summary: summary || 'Code review completed',
|
|
425
|
-
data: {
|
|
426
|
-
checklist_item_results,
|
|
427
|
-
execution_session_id: executionSessionId || undefined,
|
|
428
|
-
},
|
|
429
|
-
};
|
|
430
|
-
}
|
|
431
|
-
return {
|
|
432
|
-
issueId,
|
|
433
|
-
status: 'error',
|
|
434
|
-
message: 'Code review analysis failed or incomplete',
|
|
435
|
-
};
|
|
436
|
-
}
|
|
437
|
-
catch (error) {
|
|
438
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
439
|
-
logError(`Code review failed: ${errorMessage}`);
|
|
440
|
-
return {
|
|
441
|
-
issueId,
|
|
442
|
-
status: 'error',
|
|
443
|
-
message: `Code review failed: ${errorMessage}`,
|
|
444
|
-
};
|
|
445
|
-
}
|
|
446
|
-
finally {
|
|
447
|
-
// Always return to main branch after phase completion
|
|
448
|
-
cleanupGit();
|
|
449
|
-
}
|
|
450
|
-
};
|
|
451
|
-
function createSystemPrompt(_config, checklistContext) {
|
|
452
|
-
const checklistInstructions = checklistContext &&
|
|
453
|
-
checklistContext.checklists &&
|
|
454
|
-
checklistContext.checklists.length > 0
|
|
455
|
-
? `
|
|
456
|
-
|
|
457
|
-
**MANDATORY Checklist Compliance**:
|
|
458
|
-
If you are provided with checklists in the context, you MUST evaluate ALL of them during your code review. Checklists are mandatory requirements that define quality standards and cannot be ignored or skipped.
|
|
459
|
-
|
|
460
|
-
- Review each checklist carefully and evaluate whether the code satisfies every requirement
|
|
461
|
-
- You MUST include ALL provided checklist item IDs in the "checklist_item_results" field of your JSON response
|
|
462
|
-
- CRITICAL: Use the exact UUID from the "ID:" field in each checklist ITEM, NOT the item title or description
|
|
463
|
-
- Set "is_passed": true for each checklist item the code satisfies
|
|
464
|
-
- Provide appropriate "value" based on the item type (boolean: true/false, text: descriptive text, number: numeric value)
|
|
465
|
-
- If the code does not satisfy a checklist item requirement, set "is_passed": false and explain why in the "notes" field
|
|
466
|
-
- The system will validate that all checklists have been addressed - missing checklists will cause the pipeline to fail`
|
|
467
|
-
: '';
|
|
468
|
-
const checklistJsonField = checklistContext &&
|
|
469
|
-
checklistContext.checklists &&
|
|
470
|
-
checklistContext.checklists.length > 0
|
|
471
|
-
? `,
|
|
472
|
-
"checklist_item_results": [
|
|
473
|
-
{
|
|
474
|
-
"checklist_item_id": "EXACT_CHECKLIST_ITEM_UUID_FROM_ID_FIELD",
|
|
475
|
-
"is_passed": true,
|
|
476
|
-
"value": "Result value based on item type (boolean, text, number, etc.)",
|
|
477
|
-
"notes": "Optional notes about this specific checklist item"
|
|
478
|
-
}
|
|
479
|
-
]`
|
|
480
|
-
: '';
|
|
481
|
-
return `You are an expert code reviewer specializing in thorough, constructive code reviews. Your goal is to analyze pull request code and identify issues, potential bugs, code quality concerns, and areas for improvement.
|
|
482
|
-
|
|
483
|
-
**Your Role**: Review pull request code and provide detailed, actionable feedback.
|
|
484
|
-
|
|
485
|
-
**Review Focus Areas**:
|
|
486
|
-
1. **Code Quality**: Clean code principles, readability, maintainability
|
|
487
|
-
2. **Best Practices**: Language-specific conventions, design patterns
|
|
488
|
-
3. **Potential Bugs**: Logic errors, edge cases, error handling
|
|
489
|
-
4. **Security**: Security vulnerabilities, input validation
|
|
490
|
-
5. **Performance**: Performance issues, optimization opportunities
|
|
491
|
-
6. **Testing**: Test coverage, test quality
|
|
492
|
-
7. **Documentation**: Code comments, documentation completeness
|
|
493
|
-
8. **Architecture**: Design decisions, coupling, cohesion
|
|
494
|
-
|
|
495
|
-
**Important Guidelines**:
|
|
496
|
-
- Be thorough but focus on significant issues
|
|
497
|
-
- Provide constructive, actionable feedback
|
|
498
|
-
- Suggest specific improvements
|
|
499
|
-
- Consider the technical design and requirements
|
|
500
|
-
- Be respectful and professional
|
|
501
|
-
- Focus on issues that truly matter, not nitpicks
|
|
502
|
-
- If code looks good overall, provide positive feedback
|
|
503
|
-
${checklistInstructions}
|
|
504
|
-
|
|
505
|
-
**CRITICAL - Result Format**:
|
|
506
|
-
You MUST end your response with a JSON object containing the review results in this EXACT format:
|
|
507
|
-
|
|
508
|
-
\`\`\`json
|
|
509
|
-
{
|
|
510
|
-
"review_result": {
|
|
511
|
-
"issue_id": "ISSUE_ID_PLACEHOLDER",
|
|
512
|
-
"summary": "Overall review summary and assessment",
|
|
513
|
-
"overall_assessment": "APPROVE | REQUEST_CHANGES | COMMENT",
|
|
514
|
-
"comments": [
|
|
515
|
-
{
|
|
516
|
-
"file": "path/to/file.ts",
|
|
517
|
-
"line": 42,
|
|
518
|
-
"comment": "Detailed comment about the issue and suggested fix"
|
|
519
|
-
}
|
|
520
|
-
],
|
|
521
|
-
"issues_found": {
|
|
522
|
-
"critical": 0,
|
|
523
|
-
"major": 0,
|
|
524
|
-
"minor": 0
|
|
525
|
-
}${checklistJsonField}
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
\`\`\`
|
|
529
|
-
|
|
530
|
-
**Comment Guidelines**:
|
|
531
|
-
- Each comment should reference a specific file and line number
|
|
532
|
-
- Be specific about what the issue is
|
|
533
|
-
- Provide a suggested fix or improvement
|
|
534
|
-
- Use a constructive, helpful tone
|
|
535
|
-
|
|
536
|
-
**Assessment Options**:
|
|
537
|
-
- **APPROVE**: Code looks good, no significant issues
|
|
538
|
-
- **REQUEST_CHANGES**: Issues found that should be addressed
|
|
539
|
-
- **COMMENT**: Minor suggestions or questions, not blocking
|
|
540
|
-
|
|
541
|
-
Focus on providing valuable, actionable code review feedback.`;
|
|
542
|
-
}
|
|
543
|
-
function createCodeReviewPrompt(issueId, context, feedbacksInfo, checklistContext) {
|
|
544
|
-
let contextInfo = formatContextForPrompt(context);
|
|
545
|
-
if (feedbacksInfo) {
|
|
546
|
-
contextInfo = `${contextInfo}\n\n${feedbacksInfo}`;
|
|
547
|
-
}
|
|
548
|
-
if (checklistContext && checklistContext.checklists.length > 0) {
|
|
549
|
-
const checklistInfo = formatChecklistsForContext(checklistContext);
|
|
550
|
-
contextInfo = `${contextInfo}\n\n${checklistInfo}`;
|
|
551
|
-
}
|
|
552
|
-
return `Review the pull request code for issue: ${issueId}
|
|
553
|
-
|
|
554
|
-
${contextInfo}
|
|
555
|
-
|
|
556
|
-
## Code Review Instructions
|
|
557
|
-
|
|
558
|
-
Follow this systematic approach:
|
|
559
|
-
|
|
560
|
-
1. **Understand the Context**: Review the issue description, technical design, user stories, and test cases to understand what the code should accomplish.
|
|
561
|
-
|
|
562
|
-
2. **Analyze Each File**: For each changed file:
|
|
563
|
-
- Review the code changes in the diff
|
|
564
|
-
- Look for code quality issues
|
|
565
|
-
- Check for potential bugs or logic errors
|
|
566
|
-
- Verify error handling
|
|
567
|
-
- Consider security implications
|
|
568
|
-
- Evaluate performance considerations
|
|
569
|
-
- Check test coverage
|
|
570
|
-
|
|
571
|
-
3. **Check Against Requirements**:
|
|
572
|
-
- Does the code implement the technical design correctly?
|
|
573
|
-
- Are all user stories addressed?
|
|
574
|
-
- Are test cases covered?
|
|
575
|
-
|
|
576
|
-
4. **Identify Issues**: Categorize issues by severity:
|
|
577
|
-
- **Critical**: Security vulnerabilities, data loss risks, major bugs
|
|
578
|
-
- **Major**: Logic errors, incorrect implementations, missing error handling
|
|
579
|
-
- **Minor**: Code quality improvements, style issues, optimization suggestions
|
|
580
|
-
|
|
581
|
-
5. **Provide Actionable Feedback**: For each issue:
|
|
582
|
-
- Reference the specific file and line number
|
|
583
|
-
- Explain what the issue is
|
|
584
|
-
- Suggest how to fix it
|
|
585
|
-
- Be constructive and helpful
|
|
586
|
-
|
|
587
|
-
6. **Generate Review Result**: Create a structured JSON response with:
|
|
588
|
-
- Overall summary
|
|
589
|
-
- Assessment (APPROVE/REQUEST_CHANGES/COMMENT)
|
|
590
|
-
- List of comments with file, line, and comment text
|
|
591
|
-
- Count of issues by severity
|
|
592
|
-
|
|
593
|
-
## Important Notes
|
|
594
|
-
- Be thorough but focus on meaningful issues
|
|
595
|
-
- Provide specific, actionable suggestions
|
|
596
|
-
- Consider the context and requirements
|
|
597
|
-
- Be professional and constructive
|
|
598
|
-
- If code is good, say so!
|
|
599
|
-
${checklistContext && checklistContext.checklists.length > 0
|
|
600
|
-
? `
|
|
601
|
-
## MANDATORY - Checklist Compliance
|
|
602
|
-
You MUST evaluate ALL checklist items provided in the context and include results in your JSON response.
|
|
603
|
-
- Use the exact UUID from each checklist item's "ID:" field as the "checklist_item_id"
|
|
604
|
-
- Evaluate whether the code satisfies each checklist requirement
|
|
605
|
-
- Set "is_passed" to true if the requirement is met, false otherwise
|
|
606
|
-
- Provide detailed "notes" for any items that are not passed
|
|
607
|
-
- ALL checklist items must be included - missing items will cause pipeline failure
|
|
608
|
-
`
|
|
609
|
-
: ''}
|
|
610
|
-
Begin by analyzing the changed files and identifying any issues or improvements.`;
|
|
611
|
-
}
|
|
612
|
-
function parseCodeReviewResponse(response) {
|
|
613
|
-
const summaryMatch = response.match(/## Review Summary\n([\s\S]*?)(?=\n##|\n\n|$)/);
|
|
614
|
-
const summary = summaryMatch
|
|
615
|
-
? summaryMatch[1].trim()
|
|
616
|
-
: 'Code review completed';
|
|
617
|
-
return {
|
|
618
|
-
summary,
|
|
619
|
-
comments: [],
|
|
620
|
-
overall_assessment: 'COMMENT',
|
|
621
|
-
issues_found: {
|
|
622
|
-
critical: 0,
|
|
623
|
-
major: 0,
|
|
624
|
-
minor: 0,
|
|
625
|
-
},
|
|
626
|
-
};
|
|
627
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type EdsgerConfig, type WithExecutionSessionId } from '../../types/index.js';
|
|
2
|
-
export interface CodeTestingOptions {
|
|
3
|
-
issueId: string;
|
|
4
|
-
verbose?: boolean;
|
|
5
|
-
}
|
|
6
|
-
export interface CodeTestingResult extends WithExecutionSessionId {
|
|
7
|
-
issueId: string;
|
|
8
|
-
branchName: string;
|
|
9
|
-
testSummary: string | null;
|
|
10
|
-
status: 'success' | 'error';
|
|
11
|
-
message: string;
|
|
12
|
-
testFilesCreated?: string[];
|
|
13
|
-
testFilesModified?: string[];
|
|
14
|
-
commitHash?: string;
|
|
15
|
-
totalTestsWritten?: number;
|
|
16
|
-
testsPassing?: boolean;
|
|
17
|
-
testCoverage?: string;
|
|
18
|
-
}
|
|
19
|
-
export declare const writeCodeTests: (options: CodeTestingOptions, config: EdsgerConfig) => Promise<CodeTestingResult>;
|