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,272 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone PR Resolve
|
|
3
|
-
* Evaluates unresolved review comments, fixes what's genuinely better,
|
|
4
|
-
* replies to every comment on GitHub explaining the decision.
|
|
5
|
-
*/
|
|
6
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
7
|
-
import { Octokit } from '@octokit/rest';
|
|
8
|
-
import { execSync } from 'child_process';
|
|
9
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
10
|
-
import { logError, logInfo, logSuccess } from '../../utils/logger.js';
|
|
11
|
-
import { cleanupIssueRepo } from '../../workspace/workspace-manager.js';
|
|
12
|
-
import { fetchUnresolvedReviewThreads } from '../code-refine-verification/github.js';
|
|
13
|
-
import { createPromptGenerator, extractTextFromContent, tryExtractResult, } from '../pr-shared/agent-utils.js';
|
|
14
|
-
import { parsePullRequestUrl } from '../pr-shared/context.js';
|
|
15
|
-
import { updatePullRequestStatus } from '../pr-shared/status.js';
|
|
16
|
-
import { learnFromReviewFeedback } from './checklist-learner.js';
|
|
17
|
-
import { hasResolveMarker, replyToReviewThread, resolveReviewThread, } from './github-reply.js';
|
|
18
|
-
import { createResolveSystemPrompt, createResolveUserPrompt, } from './prompts.js';
|
|
19
|
-
import { isResolveResult } from './types.js';
|
|
20
|
-
import { hasNewCommits, hasUncommittedChanges, prepareWorkspace, pushChanges, } from './workspace.js';
|
|
21
|
-
export { isResolveResult } from './types.js';
|
|
22
|
-
/**
|
|
23
|
-
* Resolve PR change requests: evaluate each comment, fix or explain.
|
|
24
|
-
*/
|
|
25
|
-
// eslint-disable-next-line complexity
|
|
26
|
-
export async function resolveStandalonePR(options) {
|
|
27
|
-
const { pullRequestUrl, githubToken, owner, repo, verbose, prId } = options;
|
|
28
|
-
logInfo(`Starting PR resolve: ${pullRequestUrl}`);
|
|
29
|
-
try {
|
|
30
|
-
// Parse PR URL
|
|
31
|
-
const prInfo = parsePullRequestUrl(pullRequestUrl);
|
|
32
|
-
if (!prInfo) {
|
|
33
|
-
throw new Error(`Invalid PR URL: ${pullRequestUrl}`);
|
|
34
|
-
}
|
|
35
|
-
const octokit = new Octokit({ auth: githubToken });
|
|
36
|
-
// Fetch unresolved review threads
|
|
37
|
-
logInfo('Fetching unresolved review threads...');
|
|
38
|
-
const allUnresolvedThreads = await fetchUnresolvedReviewThreads(octokit, owner, repo, prInfo.prNumber, verbose);
|
|
39
|
-
// Skip threads whose last comment already carries our marker — they were
|
|
40
|
-
// handled in a previous pr-resolve run and replying again would just spam.
|
|
41
|
-
// If a human has commented after our reply, the last comment will no
|
|
42
|
-
// longer be ours and the thread will be picked up again.
|
|
43
|
-
const unresolvedThreads = allUnresolvedThreads.filter((thread) => {
|
|
44
|
-
const lastComment = thread.comments.nodes[thread.comments.nodes.length - 1];
|
|
45
|
-
return !hasResolveMarker(lastComment?.body);
|
|
46
|
-
});
|
|
47
|
-
const alreadyHandled = allUnresolvedThreads.length - unresolvedThreads.length;
|
|
48
|
-
if (alreadyHandled > 0) {
|
|
49
|
-
logInfo(`Skipping ${alreadyHandled} thread(s) already addressed in a previous resolve run`);
|
|
50
|
-
}
|
|
51
|
-
if (unresolvedThreads.length === 0) {
|
|
52
|
-
logSuccess('No unresolved review threads found.');
|
|
53
|
-
return {
|
|
54
|
-
status: 'success',
|
|
55
|
-
message: alreadyHandled > 0
|
|
56
|
-
? `All ${alreadyHandled} unresolved thread(s) were already addressed in a previous resolve run`
|
|
57
|
-
: 'No unresolved review threads to resolve',
|
|
58
|
-
threadsAddressed: 0,
|
|
59
|
-
threadsSkipped: 0,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
logInfo(`Found ${unresolvedThreads.length} unresolved threads to evaluate`);
|
|
63
|
-
// Get PR details for head branch
|
|
64
|
-
// Note: workspace will be preserved on failure for manual inspection
|
|
65
|
-
const { data: prData } = await octokit.pulls.get({
|
|
66
|
-
owner,
|
|
67
|
-
repo,
|
|
68
|
-
pull_number: prInfo.prNumber,
|
|
69
|
-
});
|
|
70
|
-
const headRef = prData.head.ref;
|
|
71
|
-
// Determine clone source: fork PRs need to clone from the fork repo.
|
|
72
|
-
// head.repo is null when the fork has been deleted — treat as fork with deleted source.
|
|
73
|
-
const isFork = !prData.head.repo ||
|
|
74
|
-
prData.head.repo.full_name !== prData.base.repo.full_name;
|
|
75
|
-
const forkDeleted = !prData.head.repo;
|
|
76
|
-
const cloneOwner = isFork && !forkDeleted ? prData.head.repo.owner.login : owner;
|
|
77
|
-
const cloneRepo = isFork && !forkDeleted ? prData.head.repo.name : repo;
|
|
78
|
-
if (isFork && verbose) {
|
|
79
|
-
logInfo(forkDeleted
|
|
80
|
-
? `Fork PR detected but fork repo has been deleted, will use PR ref from ${owner}/${repo}`
|
|
81
|
-
: `Fork PR detected: cloning from ${cloneOwner}/${cloneRepo} instead of ${owner}/${repo}`);
|
|
82
|
-
}
|
|
83
|
-
// Clone repo and checkout PR branch.
|
|
84
|
-
// For fork PRs, pass fallback info so prepareWorkspace can fetch the PR ref
|
|
85
|
-
// from upstream if the fork branch is unavailable.
|
|
86
|
-
// For deleted forks, clone upstream directly and always use PR ref fallback.
|
|
87
|
-
const repoPath = prepareWorkspace({
|
|
88
|
-
owner: cloneOwner,
|
|
89
|
-
repo: cloneRepo,
|
|
90
|
-
headRef,
|
|
91
|
-
prNumber: prInfo.prNumber,
|
|
92
|
-
token: githubToken,
|
|
93
|
-
verbose,
|
|
94
|
-
forkFallback: isFork
|
|
95
|
-
? { upstreamOwner: owner, upstreamRepo: repo }
|
|
96
|
-
: undefined,
|
|
97
|
-
});
|
|
98
|
-
try {
|
|
99
|
-
// Run Claude Agent SDK to evaluate and fix comments
|
|
100
|
-
const systemPrompt = createResolveSystemPrompt();
|
|
101
|
-
const { prompt: resolvePrompt, commentIdToThreadId } = createResolveUserPrompt(unresolvedThreads);
|
|
102
|
-
let lastAssistantResponse = '';
|
|
103
|
-
let resolveResult = null;
|
|
104
|
-
logInfo('Starting Claude agent to evaluate and resolve comments...');
|
|
105
|
-
for await (const message of query({
|
|
106
|
-
prompt: createPromptGenerator(resolvePrompt),
|
|
107
|
-
options: {
|
|
108
|
-
systemPrompt: {
|
|
109
|
-
type: 'preset',
|
|
110
|
-
preset: 'claude_code',
|
|
111
|
-
append: systemPrompt,
|
|
112
|
-
},
|
|
113
|
-
model: DEFAULT_MODEL,
|
|
114
|
-
maxTurns: 2000,
|
|
115
|
-
permissionMode: 'bypassPermissions',
|
|
116
|
-
cwd: repoPath,
|
|
117
|
-
},
|
|
118
|
-
})) {
|
|
119
|
-
if (message.type === 'assistant') {
|
|
120
|
-
lastAssistantResponse += extractTextFromContent(message.message?.content ?? [], verbose);
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
if (message.type !== 'result') {
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
if (message.subtype === 'success') {
|
|
127
|
-
logInfo('Agent completed, parsing results...');
|
|
128
|
-
const responseText = message.result || lastAssistantResponse;
|
|
129
|
-
const parsed = tryExtractResult(responseText, 'resolve_result');
|
|
130
|
-
// eslint-disable-next-line max-depth
|
|
131
|
-
if (isResolveResult(parsed)) {
|
|
132
|
-
resolveResult = parsed;
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
logError('Failed to parse resolve result JSON');
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
logError(`Agent incomplete: ${message.subtype}`);
|
|
140
|
-
// Try to salvage partial results from last response
|
|
141
|
-
// eslint-disable-next-line max-depth
|
|
142
|
-
if (lastAssistantResponse) {
|
|
143
|
-
const salvaged = tryExtractResult(lastAssistantResponse, 'resolve_result');
|
|
144
|
-
// eslint-disable-next-line max-depth
|
|
145
|
-
if (isResolveResult(salvaged)) {
|
|
146
|
-
resolveResult = salvaged;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
// Fallback: commit any leftover uncommitted changes the agent didn't commit itself
|
|
152
|
-
if (hasUncommittedChanges(repoPath)) {
|
|
153
|
-
logInfo('Committing remaining uncommitted changes...');
|
|
154
|
-
execSync('git add -A', { cwd: repoPath, stdio: 'pipe' });
|
|
155
|
-
execSync('git commit -m "Resolve PR review comments\n\nAutomated resolution by Edsger AI"', { cwd: repoPath, stdio: 'pipe' });
|
|
156
|
-
}
|
|
157
|
-
// Check if there are commits to push (agent may have made its own commits)
|
|
158
|
-
const newCommitsExist = hasNewCommits(repoPath, headRef);
|
|
159
|
-
if (newCommitsExist) {
|
|
160
|
-
pushChanges(repoPath, headRef, githubToken, verbose);
|
|
161
|
-
}
|
|
162
|
-
// Reply to each comment on GitHub
|
|
163
|
-
let threadsAddressed = 0;
|
|
164
|
-
let threadsSkipped = 0;
|
|
165
|
-
let threadsErrored = 0;
|
|
166
|
-
if (resolveResult?.comments) {
|
|
167
|
-
const { comments } = resolveResult;
|
|
168
|
-
for (const comment of comments) {
|
|
169
|
-
// Map comment_id back to real GraphQL thread ID
|
|
170
|
-
const threadId = commentIdToThreadId.get(comment.comment_id);
|
|
171
|
-
// eslint-disable-next-line max-depth
|
|
172
|
-
if (!threadId) {
|
|
173
|
-
logError(`Unknown comment_id "${comment.comment_id}", skipping reply`);
|
|
174
|
-
threadsErrored++;
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
// eslint-disable-next-line max-depth
|
|
178
|
-
try {
|
|
179
|
-
const replied = await replyToReviewThread(octokit, threadId, comment.reply, comment.action, verbose);
|
|
180
|
-
// eslint-disable-next-line max-depth
|
|
181
|
-
if (replied && comment.action === 'changed') {
|
|
182
|
-
// Resolve the thread since the change was made
|
|
183
|
-
await resolveReviewThread(octokit, threadId, verbose);
|
|
184
|
-
threadsAddressed++;
|
|
185
|
-
}
|
|
186
|
-
else if (replied && comment.action === 'skipped') {
|
|
187
|
-
// Don't resolve - leave open for human to review the explanation
|
|
188
|
-
threadsSkipped++;
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
threadsErrored++;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
logError(`Failed to process ${comment.comment_id}: ${error}`);
|
|
196
|
-
threadsErrored++;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
// No structured result - check if agent made changes and reply generically
|
|
202
|
-
logInfo('No structured resolve result. Replying with generic status to each thread.');
|
|
203
|
-
const agentMadeChanges = newCommitsExist;
|
|
204
|
-
for (const thread of unresolvedThreads) {
|
|
205
|
-
try {
|
|
206
|
-
const genericReply = agentMadeChanges
|
|
207
|
-
? 'Changes were made to address review feedback. Please re-review.'
|
|
208
|
-
: 'Reviewed this comment. No changes were made at this time.';
|
|
209
|
-
const replied = await replyToReviewThread(octokit, thread.id, genericReply, agentMadeChanges ? 'changed' : 'skipped', verbose);
|
|
210
|
-
// eslint-disable-next-line max-depth
|
|
211
|
-
if (replied) {
|
|
212
|
-
threadsSkipped++;
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
threadsErrored++;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
catch {
|
|
219
|
-
threadsErrored++;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
logSuccess(`PR resolve completed: ${threadsAddressed} addressed, ${threadsSkipped} skipped, ${threadsErrored} errors`);
|
|
224
|
-
// Learn from addressed comments to update code-review checklists.
|
|
225
|
-
// Product-scoped only — repo-only mode passes learn=false.
|
|
226
|
-
if (options.learn !== false &&
|
|
227
|
-
options.productId &&
|
|
228
|
-
threadsAddressed > 0 &&
|
|
229
|
-
resolveResult) {
|
|
230
|
-
await learnFromReviewFeedback({
|
|
231
|
-
productId: options.productId,
|
|
232
|
-
unresolvedThreads,
|
|
233
|
-
resolveResult,
|
|
234
|
-
commentIdToThreadId,
|
|
235
|
-
verbose,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
if (prId) {
|
|
239
|
-
await updatePullRequestStatus({
|
|
240
|
-
prId,
|
|
241
|
-
status: 'in_review',
|
|
242
|
-
repositoryId: options.repositoryId,
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
// Clean up workspace on success
|
|
246
|
-
cleanupIssueRepo(repoPath);
|
|
247
|
-
return {
|
|
248
|
-
status: 'success',
|
|
249
|
-
message: `Resolved ${threadsAddressed} threads, skipped ${threadsSkipped}, ${threadsErrored} errors`,
|
|
250
|
-
threadsAddressed,
|
|
251
|
-
threadsSkipped,
|
|
252
|
-
threadsErrored,
|
|
253
|
-
filesModified: resolveResult?.files_modified,
|
|
254
|
-
summary: resolveResult?.summary,
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
catch (innerError) {
|
|
258
|
-
// On failure, keep workspace for inspection
|
|
259
|
-
logError(`Error during resolve: ${innerError instanceof Error ? innerError.message : String(innerError)}`);
|
|
260
|
-
logInfo(`Workspace preserved for inspection: ${repoPath}`);
|
|
261
|
-
throw innerError;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
catch (error) {
|
|
265
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
266
|
-
logError(`PR resolve failed: ${errorMessage}`);
|
|
267
|
-
return {
|
|
268
|
-
status: 'error',
|
|
269
|
-
message: `PR resolve failed: ${errorMessage}`,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Prompts for standalone PR resolve.
|
|
3
|
-
* The agent evaluates each review comment, fixes what's genuinely better, and explains what it won't change.
|
|
4
|
-
*
|
|
5
|
-
* Uses simple numeric IDs (comment_1, comment_2...) instead of opaque GraphQL thread IDs
|
|
6
|
-
* to make it easier for the agent to produce correct output. The caller maps back to real IDs.
|
|
7
|
-
*/
|
|
8
|
-
import { type ReviewThread } from '../code-refine-verification/types.js';
|
|
9
|
-
export declare function createResolveSystemPrompt(): string;
|
|
10
|
-
/**
|
|
11
|
-
* Build the user prompt with numbered comment IDs.
|
|
12
|
-
* Returns the prompt string and a mapping from comment_id to real thread ID.
|
|
13
|
-
*/
|
|
14
|
-
export declare function createResolveUserPrompt(unresolvedThreads: ReviewThread[]): {
|
|
15
|
-
prompt: string;
|
|
16
|
-
commentIdToThreadId: Map<string, string>;
|
|
17
|
-
};
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Prompts for standalone PR resolve.
|
|
3
|
-
* The agent evaluates each review comment, fixes what's genuinely better, and explains what it won't change.
|
|
4
|
-
*
|
|
5
|
-
* Uses simple numeric IDs (comment_1, comment_2...) instead of opaque GraphQL thread IDs
|
|
6
|
-
* to make it easier for the agent to produce correct output. The caller maps back to real IDs.
|
|
7
|
-
*/
|
|
8
|
-
export function createResolveSystemPrompt() {
|
|
9
|
-
return `You are an expert software engineer resolving code review feedback on a pull request.
|
|
10
|
-
|
|
11
|
-
**Your Goal**: For each review comment, make the change unless the reviewer is factually wrong or has misunderstood the code. The default is to accept the feedback.
|
|
12
|
-
|
|
13
|
-
**Make the change when** (this is the default — apply it broadly):
|
|
14
|
-
- The suggestion would improve the code in any way: correctness, security, error handling, clarity, maintainability, performance, design, naming, structure, tests, docs
|
|
15
|
-
- The suggestion aligns with best practices for the language or framework
|
|
16
|
-
- Apply the change even if it is large, touches many files, or requires non-trivial refactoring — workload is not a reason to skip
|
|
17
|
-
|
|
18
|
-
**Skip the change ONLY when** (the bar is high — be conservative about skipping):
|
|
19
|
-
- The reviewer is factually wrong (e.g., claims the code does X when it actually does Y, or asserts a behavior that does not exist)
|
|
20
|
-
- The reviewer has misunderstood the code's purpose, the surrounding context, or how this piece interacts with other parts of the system
|
|
21
|
-
- Following the suggestion would actually make the code worse or introduce a regression
|
|
22
|
-
|
|
23
|
-
Personal preference, "I'd prefer a different style", "this is more complex than I'd like", or "this conflicts with a pattern I prefer" are NOT valid reasons to skip. If the change would make the code better, do it.
|
|
24
|
-
|
|
25
|
-
**Process**:
|
|
26
|
-
1. Read all the review comments carefully
|
|
27
|
-
2. For each comment, examine the relevant code so you actually understand what it does
|
|
28
|
-
3. Default: make the change in the file. Only skip if you can articulate a specific factual error or misunderstanding by the reviewer.
|
|
29
|
-
4. After making all changes, commit them with a descriptive message summarizing what was resolved (do NOT push)
|
|
30
|
-
5. After committing, output a JSON summary
|
|
31
|
-
|
|
32
|
-
**CRITICAL - Result Format**:
|
|
33
|
-
After making all changes, you MUST output a JSON result. Use the exact comment_id from each comment (comment_1, comment_2, etc.):
|
|
34
|
-
|
|
35
|
-
\`\`\`json
|
|
36
|
-
{
|
|
37
|
-
"resolve_result": {
|
|
38
|
-
"comments": [
|
|
39
|
-
{
|
|
40
|
-
"comment_id": "comment_1",
|
|
41
|
-
"action": "changed",
|
|
42
|
-
"reply": "Brief description of what was changed"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"comment_id": "comment_2",
|
|
46
|
-
"action": "skipped",
|
|
47
|
-
"reply": "Technical explanation of why not changing"
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
"files_modified": ["list of modified file paths"],
|
|
51
|
-
"summary": "Overall summary of what was done"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
\`\`\`
|
|
55
|
-
|
|
56
|
-
**Reply Guidelines**:
|
|
57
|
-
- For "changed": briefly describe what was changed (1-2 sentences)
|
|
58
|
-
- For "skipped": clearly explain the specific factual error or misunderstanding — point to the exact line, behavior, or invariant the reviewer got wrong (2-3 sentences). Do not skip with a vague "I disagree" — name the misunderstanding.
|
|
59
|
-
- Be professional and constructive in all replies
|
|
60
|
-
- You MUST include an entry for EVERY comment_id`;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Build the user prompt with numbered comment IDs.
|
|
64
|
-
* Returns the prompt string and a mapping from comment_id to real thread ID.
|
|
65
|
-
*/
|
|
66
|
-
export function createResolveUserPrompt(unresolvedThreads) {
|
|
67
|
-
const sections = [];
|
|
68
|
-
const commentIdToThreadId = new Map();
|
|
69
|
-
sections.push('# PR Review Comments to Resolve');
|
|
70
|
-
sections.push('');
|
|
71
|
-
sections.push(`There are ${unresolvedThreads.length} unresolved review comment(s) to evaluate.`);
|
|
72
|
-
sections.push('');
|
|
73
|
-
let commentIndex = 0;
|
|
74
|
-
for (const thread of unresolvedThreads) {
|
|
75
|
-
const firstComment = thread.comments.nodes[0];
|
|
76
|
-
if (!firstComment) {
|
|
77
|
-
continue;
|
|
78
|
-
}
|
|
79
|
-
commentIndex++;
|
|
80
|
-
const commentId = `comment_${commentIndex}`;
|
|
81
|
-
commentIdToThreadId.set(commentId, thread.id);
|
|
82
|
-
sections.push(`## ${commentId}`);
|
|
83
|
-
sections.push(`**File**: ${firstComment.path}`);
|
|
84
|
-
if (firstComment.line) {
|
|
85
|
-
sections.push(`**Line**: ${firstComment.line}`);
|
|
86
|
-
}
|
|
87
|
-
sections.push(`**Author**: @${firstComment.author.login}`);
|
|
88
|
-
sections.push(`**Comment**:`);
|
|
89
|
-
sections.push(firstComment.body);
|
|
90
|
-
// Include follow-up comments in the thread
|
|
91
|
-
if (thread.comments.nodes.length > 1) {
|
|
92
|
-
sections.push('');
|
|
93
|
-
sections.push('**Follow-up comments**:');
|
|
94
|
-
for (const comment of thread.comments.nodes.slice(1)) {
|
|
95
|
-
sections.push(`- @${comment.author.login}: ${comment.body}`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
sections.push('');
|
|
99
|
-
}
|
|
100
|
-
sections.push('## Instructions');
|
|
101
|
-
sections.push('');
|
|
102
|
-
sections.push('For each comment above, read the referenced file and evaluate the suggestion.');
|
|
103
|
-
sections.push('Default to making the change — even if it is large or touches many files. Only skip when the reviewer is factually wrong or has misunderstood the code, and explain the specific misunderstanding in your reply.');
|
|
104
|
-
sections.push('After processing all comments, output the JSON resolve_result with your decisions and reply messages.');
|
|
105
|
-
sections.push(`Use the exact comment IDs: ${Array.from(commentIdToThreadId.keys()).join(', ')}`);
|
|
106
|
-
return { prompt: sections.join('\n'), commentIdToThreadId };
|
|
107
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared type definitions for PR resolve phase.
|
|
3
|
-
*/
|
|
4
|
-
export interface ResolveComment {
|
|
5
|
-
comment_id: string;
|
|
6
|
-
action: 'changed' | 'skipped';
|
|
7
|
-
reply: string;
|
|
8
|
-
}
|
|
9
|
-
export interface ResolveResult {
|
|
10
|
-
comments: ResolveComment[];
|
|
11
|
-
files_modified?: string[];
|
|
12
|
-
summary?: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Runtime type guard — validates that an unknown value from tryExtractResult
|
|
16
|
-
* has the shape of a ResolveResult.
|
|
17
|
-
*/
|
|
18
|
-
export declare function isResolveResult(value: unknown): value is ResolveResult;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared type definitions for PR resolve phase.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Runtime type guard — validates that an unknown value from tryExtractResult
|
|
6
|
-
* has the shape of a ResolveResult.
|
|
7
|
-
*/
|
|
8
|
-
export function isResolveResult(value) {
|
|
9
|
-
if (!value || typeof value !== 'object') {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
const obj = value;
|
|
13
|
-
return Array.isArray(obj.comments);
|
|
14
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git workspace operations for PR resolve.
|
|
3
|
-
* Extracted for testability.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Build git credential helper args for GitHub token auth.
|
|
7
|
-
*/
|
|
8
|
-
export declare function buildCredentialArgs(token: string): string[];
|
|
9
|
-
/**
|
|
10
|
-
* Get the workspace path for a PR resolve operation.
|
|
11
|
-
* Includes owner/repo to avoid collisions when resolving PRs from different repos.
|
|
12
|
-
*/
|
|
13
|
-
export declare function getResolveWorkspacePath(owner: string, repo: string, prNumber: number): string;
|
|
14
|
-
export interface ForkFallbackInfo {
|
|
15
|
-
upstreamOwner: string;
|
|
16
|
-
upstreamRepo: string;
|
|
17
|
-
}
|
|
18
|
-
export interface PrepareWorkspaceOptions {
|
|
19
|
-
owner: string;
|
|
20
|
-
repo: string;
|
|
21
|
-
headRef: string;
|
|
22
|
-
prNumber: number;
|
|
23
|
-
token: string;
|
|
24
|
-
verbose?: boolean;
|
|
25
|
-
forkFallback?: ForkFallbackInfo;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Clone or reuse a repo for PR resolve.
|
|
29
|
-
* For fork PRs, clones from the fork repo. If the fork branch is unavailable,
|
|
30
|
-
* falls back to fetching the PR ref from the upstream repo.
|
|
31
|
-
* Returns the workspace path.
|
|
32
|
-
*/
|
|
33
|
-
export declare function prepareWorkspace(options: PrepareWorkspaceOptions): string;
|
|
34
|
-
/**
|
|
35
|
-
* Push changes from workspace back to remote.
|
|
36
|
-
*/
|
|
37
|
-
export declare function pushChanges(repoPath: string, headRef: string, token: string, _verbose?: boolean): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Check if there are uncommitted changes in the workspace.
|
|
40
|
-
*/
|
|
41
|
-
export declare function hasUncommittedChanges(repoPath: string): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Check if there are new commits ahead of remote.
|
|
44
|
-
*/
|
|
45
|
-
export declare function hasNewCommits(repoPath: string, headRef: string): boolean;
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git workspace operations for PR resolve.
|
|
3
|
-
* Extracted for testability.
|
|
4
|
-
*/
|
|
5
|
-
import { execFileSync, execSync } from 'child_process';
|
|
6
|
-
import { existsSync } from 'fs';
|
|
7
|
-
import { homedir } from 'os';
|
|
8
|
-
import { join } from 'path';
|
|
9
|
-
import { logError, logInfo, logSuccess } from '../../utils/logger.js';
|
|
10
|
-
/**
|
|
11
|
-
* Build git credential helper args for GitHub token auth.
|
|
12
|
-
*/
|
|
13
|
-
export function buildCredentialArgs(token) {
|
|
14
|
-
const credentialHelper = `!f() { echo "username=x-access-token"; echo "password=${token}"; }; f`;
|
|
15
|
-
return [
|
|
16
|
-
'-c',
|
|
17
|
-
'credential.helper=',
|
|
18
|
-
'-c',
|
|
19
|
-
`credential.helper=${credentialHelper}`,
|
|
20
|
-
];
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Get the workspace path for a PR resolve operation.
|
|
24
|
-
* Includes owner/repo to avoid collisions when resolving PRs from different repos.
|
|
25
|
-
*/
|
|
26
|
-
export function getResolveWorkspacePath(owner, repo, prNumber) {
|
|
27
|
-
return join(homedir(), 'edsger', `pr-resolve-${owner}-${repo}-${prNumber}`);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Clone or reuse a repo for PR resolve.
|
|
31
|
-
* For fork PRs, clones from the fork repo. If the fork branch is unavailable,
|
|
32
|
-
* falls back to fetching the PR ref from the upstream repo.
|
|
33
|
-
* Returns the workspace path.
|
|
34
|
-
*/
|
|
35
|
-
export function prepareWorkspace(options) {
|
|
36
|
-
const { owner, repo, headRef, prNumber, token, verbose, forkFallback } = options;
|
|
37
|
-
const repoPath = getResolveWorkspacePath(owner, repo, prNumber);
|
|
38
|
-
const repoUrl = `https://github.com/${owner}/${repo}.git`;
|
|
39
|
-
const gitCredentialArgs = buildCredentialArgs(token);
|
|
40
|
-
if (existsSync(join(repoPath, '.git'))) {
|
|
41
|
-
logInfo(`Reusing existing repo at ${repoPath}`);
|
|
42
|
-
try {
|
|
43
|
-
execSync(`git remote set-url origin "${repoUrl}"`, {
|
|
44
|
-
cwd: repoPath,
|
|
45
|
-
stdio: 'pipe',
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// ignore
|
|
50
|
-
}
|
|
51
|
-
try {
|
|
52
|
-
execFileSync('git', [...gitCredentialArgs, 'fetch', 'origin'], {
|
|
53
|
-
cwd: repoPath,
|
|
54
|
-
stdio: 'pipe',
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
logError('Could not fetch latest changes');
|
|
59
|
-
}
|
|
60
|
-
try {
|
|
61
|
-
execSync(`git checkout ${headRef}`, { cwd: repoPath, stdio: 'pipe' });
|
|
62
|
-
execSync(`git reset --hard origin/${headRef}`, {
|
|
63
|
-
cwd: repoPath,
|
|
64
|
-
stdio: 'pipe',
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
logError(`Could not checkout branch ${headRef}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
logInfo(`Cloning ${owner}/${repo} (branch: ${headRef})...`);
|
|
73
|
-
try {
|
|
74
|
-
execFileSync('git', [
|
|
75
|
-
...gitCredentialArgs,
|
|
76
|
-
'clone',
|
|
77
|
-
'--branch',
|
|
78
|
-
headRef,
|
|
79
|
-
'--single-branch',
|
|
80
|
-
repoUrl,
|
|
81
|
-
repoPath,
|
|
82
|
-
], { stdio: 'pipe' });
|
|
83
|
-
logSuccess(`Cloned to ${repoPath}`);
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
// If clone fails and this is a fork PR, fall back to upstream PR ref
|
|
87
|
-
if (forkFallback) {
|
|
88
|
-
logInfo(`Fork branch not available, falling back to PR ref from ${forkFallback.upstreamOwner}/${forkFallback.upstreamRepo}`);
|
|
89
|
-
const upstreamUrl = `https://github.com/${forkFallback.upstreamOwner}/${forkFallback.upstreamRepo}.git`;
|
|
90
|
-
execFileSync('git', [...gitCredentialArgs, 'clone', upstreamUrl, repoPath], { stdio: 'pipe' });
|
|
91
|
-
// Fetch the PR ref and check it out
|
|
92
|
-
execFileSync('git', [
|
|
93
|
-
...gitCredentialArgs,
|
|
94
|
-
'fetch',
|
|
95
|
-
'origin',
|
|
96
|
-
`pull/${prNumber}/head:${headRef}`,
|
|
97
|
-
], { cwd: repoPath, stdio: 'pipe' });
|
|
98
|
-
execSync(`git checkout ${headRef}`, {
|
|
99
|
-
cwd: repoPath,
|
|
100
|
-
stdio: 'pipe',
|
|
101
|
-
});
|
|
102
|
-
logSuccess(`Cloned via PR ref to ${repoPath}`);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// Configure git user for commits
|
|
110
|
-
try {
|
|
111
|
-
execSync('git config user.email "edsger-bot@edsger.ai"', {
|
|
112
|
-
cwd: repoPath,
|
|
113
|
-
stdio: 'pipe',
|
|
114
|
-
});
|
|
115
|
-
execSync('git config user.name "Edsger Bot"', {
|
|
116
|
-
cwd: repoPath,
|
|
117
|
-
stdio: 'pipe',
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
if (verbose) {
|
|
122
|
-
logInfo('Note: Could not set git user config');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return repoPath;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Push changes from workspace back to remote.
|
|
129
|
-
*/
|
|
130
|
-
export function pushChanges(repoPath, headRef, token, _verbose) {
|
|
131
|
-
const gitCredentialArgs = buildCredentialArgs(token);
|
|
132
|
-
try {
|
|
133
|
-
execFileSync('git', [...gitCredentialArgs, 'push', 'origin', headRef], {
|
|
134
|
-
cwd: repoPath,
|
|
135
|
-
stdio: 'pipe',
|
|
136
|
-
});
|
|
137
|
-
logSuccess('Pushed changes to remote');
|
|
138
|
-
return true;
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
logError(`Failed to push: ${error instanceof Error ? error.message : String(error)}`);
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Check if there are uncommitted changes in the workspace.
|
|
147
|
-
*/
|
|
148
|
-
export function hasUncommittedChanges(repoPath) {
|
|
149
|
-
try {
|
|
150
|
-
const result = execSync('git status --porcelain', {
|
|
151
|
-
cwd: repoPath,
|
|
152
|
-
encoding: 'utf-8',
|
|
153
|
-
});
|
|
154
|
-
return result.trim().length > 0;
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
return false;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Check if there are new commits ahead of remote.
|
|
162
|
-
*/
|
|
163
|
-
export function hasNewCommits(repoPath, headRef) {
|
|
164
|
-
try {
|
|
165
|
-
const result = execSync(`git log origin/${headRef}..HEAD --oneline`, {
|
|
166
|
-
cwd: repoPath,
|
|
167
|
-
encoding: 'utf-8',
|
|
168
|
-
});
|
|
169
|
-
return result.trim().length > 0;
|
|
170
|
-
}
|
|
171
|
-
catch {
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone PR Review
|
|
3
|
-
* Reviews a GitHub PR and posts review comments, without issue lifecycle dependency.
|
|
4
|
-
*/
|
|
5
|
-
export interface StandalonePRReviewOptions {
|
|
6
|
-
productId?: string;
|
|
7
|
-
/** Set for repo-scoped PRs — routes the status write through Supabase. */
|
|
8
|
-
repositoryId?: string;
|
|
9
|
-
pullRequestUrl: string;
|
|
10
|
-
githubToken: string;
|
|
11
|
-
owner: string;
|
|
12
|
-
repo: string;
|
|
13
|
-
prId?: string;
|
|
14
|
-
verbose?: boolean;
|
|
15
|
-
}
|
|
16
|
-
export interface StandalonePRReviewResult {
|
|
17
|
-
status: 'success' | 'error';
|
|
18
|
-
message: string;
|
|
19
|
-
reviewId?: number;
|
|
20
|
-
reviewUrl?: string;
|
|
21
|
-
commentsCount?: number;
|
|
22
|
-
summary?: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Review a standalone PR and post comments to GitHub.
|
|
26
|
-
*/
|
|
27
|
-
export declare function reviewStandalonePR(options: StandalonePRReviewOptions): Promise<StandalonePRReviewResult>;
|