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,319 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pull Request Creator for the development workflow
|
|
3
|
-
* Creates pull requests from issue branches after successful testing
|
|
4
|
-
*/
|
|
5
|
-
import { Octokit } from '@octokit/rest';
|
|
6
|
-
import { execFileSync, execSync } from 'child_process';
|
|
7
|
-
import { buildCredentialArgs, gitPush } from '../../utils/git-push.js';
|
|
8
|
-
import { resolveDefaultBranch } from '../../utils/github-repo-info.js';
|
|
9
|
-
import { logDebug } from '../../utils/logger.js';
|
|
10
|
-
// GitHub PR title best practice: keep under 72 characters
|
|
11
|
-
const MAX_PR_TITLE_LENGTH = 72;
|
|
12
|
-
const PR_TITLE_PREFIX = 'feat: ';
|
|
13
|
-
const MAX_ISSUE_NAME_LENGTH = MAX_PR_TITLE_LENGTH - PR_TITLE_PREFIX.length;
|
|
14
|
-
/**
|
|
15
|
-
* Truncate text to a maximum length, adding ellipsis if truncated
|
|
16
|
-
*/
|
|
17
|
-
function truncateText(text, maxLength) {
|
|
18
|
-
if (text.length <= maxLength) {
|
|
19
|
-
return text;
|
|
20
|
-
}
|
|
21
|
-
return `${text.slice(0, maxLength - 3)}...`;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get current Git branch name
|
|
25
|
-
*/
|
|
26
|
-
const getCurrentBranch = () => {
|
|
27
|
-
try {
|
|
28
|
-
return execSync('git branch --show-current', { encoding: 'utf-8' }).trim();
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
throw new Error(`Failed to get current branch: ${error}`);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Check if a branch exists
|
|
36
|
-
*/
|
|
37
|
-
const branchExists = (branch) => {
|
|
38
|
-
try {
|
|
39
|
-
execSync(`git rev-parse --verify ${branch}`, { encoding: 'utf-8' });
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Discard uncommitted changes in the working directory
|
|
48
|
-
*/
|
|
49
|
-
const discardUncommittedChanges = (verbose) => {
|
|
50
|
-
try {
|
|
51
|
-
logDebug('Discarding uncommitted changes...', verbose);
|
|
52
|
-
// Reset all tracked files to HEAD
|
|
53
|
-
execSync('git reset --hard HEAD', { encoding: 'utf-8' });
|
|
54
|
-
// Remove all untracked files and directories
|
|
55
|
-
execSync('git clean -fd', { encoding: 'utf-8' });
|
|
56
|
-
logDebug('Working directory cleaned', verbose);
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
throw new Error(`Failed to discard uncommitted changes: ${error}`);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Switch to an existing branch
|
|
64
|
-
* By default, checks remote if branch doesn't exist locally (handles multi-clone scenarios)
|
|
65
|
-
* @param branch - The branch to switch to
|
|
66
|
-
* @param verbose - Whether to log verbose output
|
|
67
|
-
*/
|
|
68
|
-
const switchToBranch = (branch, verbose, githubToken) => {
|
|
69
|
-
try {
|
|
70
|
-
// First check if branch exists locally
|
|
71
|
-
if (!branchExists(branch)) {
|
|
72
|
-
// Branch doesn't exist locally, try to fetch and create tracking branch from remote
|
|
73
|
-
logDebug(`Branch '${branch}' not found locally, checking remote...`, verbose);
|
|
74
|
-
try {
|
|
75
|
-
// Fetch to get latest remote refs
|
|
76
|
-
const credArgs = buildCredentialArgs(githubToken);
|
|
77
|
-
execFileSync('git', [...credArgs, 'fetch', 'origin'], {
|
|
78
|
-
encoding: 'utf-8',
|
|
79
|
-
stdio: 'pipe',
|
|
80
|
-
});
|
|
81
|
-
// Check if remote branch exists
|
|
82
|
-
execSync(`git rev-parse --verify origin/${branch}`, {
|
|
83
|
-
encoding: 'utf-8',
|
|
84
|
-
stdio: 'pipe',
|
|
85
|
-
});
|
|
86
|
-
// Remote branch exists, create local tracking branch
|
|
87
|
-
logDebug(`Found branch '${branch}' on remote, creating local tracking branch...`, verbose);
|
|
88
|
-
// Discard any uncommitted changes before creating branch
|
|
89
|
-
discardUncommittedChanges(verbose);
|
|
90
|
-
execSync(`git checkout -b ${branch} --track origin/${branch}`, {
|
|
91
|
-
encoding: 'utf-8',
|
|
92
|
-
});
|
|
93
|
-
logDebug(`Created and switched to tracking branch: ${branch}`, verbose);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
catch (_e) {
|
|
97
|
-
// Remote branch doesn't exist either
|
|
98
|
-
throw new Error(`Branch '${branch}' does not exist locally or on remote. The branch should have been created during code implementation phase.`);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
logDebug(`Switching to branch: ${branch}`, verbose);
|
|
102
|
-
// Discard any uncommitted changes before switching
|
|
103
|
-
discardUncommittedChanges(verbose);
|
|
104
|
-
execSync(`git checkout ${branch}`, { encoding: 'utf-8' });
|
|
105
|
-
logDebug(`Switched to branch: ${branch}`, verbose);
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
throw new Error(`Failed to switch to branch ${branch}: ${error}`);
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* Switch to the repo's default branch (e.g. main, master). Caller passes the
|
|
113
|
-
* resolved branch name; falls back to local origin/HEAD if undefined.
|
|
114
|
-
*/
|
|
115
|
-
const switchToMainBranch = (mainBranch, verbose) => {
|
|
116
|
-
const target = mainBranch ?? resolveDefaultBranch();
|
|
117
|
-
try {
|
|
118
|
-
logDebug(`Switching to ${target} branch...`, verbose);
|
|
119
|
-
// Discard any uncommitted changes before switching
|
|
120
|
-
discardUncommittedChanges(verbose);
|
|
121
|
-
execFileSync('git', ['checkout', target], { encoding: 'utf-8' });
|
|
122
|
-
logDebug(`Switched to ${target} branch`, verbose);
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
throw new Error(`Failed to switch to ${target} branch: ${error}`);
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Generate pull request title from issue name
|
|
130
|
-
* Truncates to keep under 72 characters (GitHub best practice)
|
|
131
|
-
*/
|
|
132
|
-
const generatePRTitle = (issueName) => {
|
|
133
|
-
// Remove issue ID prefix if present (e.g., "FEAT-123: Issue Name" -> "Issue Name")
|
|
134
|
-
const cleanName = issueName.replace(/^[A-Z]+-\d+:\s*/, '');
|
|
135
|
-
// Truncate to keep total title under 72 chars
|
|
136
|
-
const truncatedName = truncateText(cleanName.toLowerCase(), MAX_ISSUE_NAME_LENGTH);
|
|
137
|
-
return `${PR_TITLE_PREFIX}${truncatedName}`;
|
|
138
|
-
};
|
|
139
|
-
const findExistingPullRequest = async (opts) => {
|
|
140
|
-
const { octokit, owner, repo, head, base, verbose } = opts;
|
|
141
|
-
try {
|
|
142
|
-
logDebug(`Checking for existing PR from ${head} to ${base}...`, verbose);
|
|
143
|
-
const { data: pullRequests } = await octokit.pulls.list({
|
|
144
|
-
owner,
|
|
145
|
-
repo,
|
|
146
|
-
head: `${owner}:${head}`,
|
|
147
|
-
base,
|
|
148
|
-
state: 'open',
|
|
149
|
-
});
|
|
150
|
-
if (pullRequests.length > 0) {
|
|
151
|
-
const existingPR = pullRequests[0];
|
|
152
|
-
logDebug(`Found existing PR #${existingPR.number}: ${existingPR.html_url}`, verbose);
|
|
153
|
-
return {
|
|
154
|
-
number: existingPR.number,
|
|
155
|
-
html_url: existingPR.html_url,
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
logDebug('No existing PR found', verbose);
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
catch (error) {
|
|
162
|
-
logDebug(`Error checking for existing PR: ${error}`, verbose);
|
|
163
|
-
// If we can't check, return null and proceed with creation attempt
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
/**
|
|
168
|
-
* Generate pull request body with issue details
|
|
169
|
-
*/
|
|
170
|
-
const generatePRBody = (issue) => {
|
|
171
|
-
const sections = [];
|
|
172
|
-
// Issue URL section
|
|
173
|
-
const appUrl = process.env.NEXTAUTH_URL || process.env.APP_URL || 'http://localhost:3000';
|
|
174
|
-
if (issue.productId) {
|
|
175
|
-
sections.push('## Issue Details');
|
|
176
|
-
sections.push(`📋 [View Issue Details](${appUrl}/products/${issue.productId}/issues/${issue.id})`);
|
|
177
|
-
sections.push('');
|
|
178
|
-
}
|
|
179
|
-
// Test Report section (if available)
|
|
180
|
-
if (issue.testReportUrl) {
|
|
181
|
-
sections.push('## Test Report');
|
|
182
|
-
sections.push(`🧪 [View Detailed Test Report](${issue.testReportUrl})`);
|
|
183
|
-
sections.push('');
|
|
184
|
-
}
|
|
185
|
-
// Metadata
|
|
186
|
-
sections.push('---');
|
|
187
|
-
sections.push(`Issue ID: ${issue.id}`);
|
|
188
|
-
sections.push(`Created by: Automated Workflow`);
|
|
189
|
-
return sections.join('\n');
|
|
190
|
-
};
|
|
191
|
-
/**
|
|
192
|
-
* Create a pull request for the issue
|
|
193
|
-
*/
|
|
194
|
-
export async function createPullRequest(config, issue) {
|
|
195
|
-
const { githubToken, owner, repo, baseBranch = resolveDefaultBranch(), verbose, } = config;
|
|
196
|
-
try {
|
|
197
|
-
// Initialize Octokit with personal access token
|
|
198
|
-
const octokit = new Octokit({
|
|
199
|
-
auth: githubToken,
|
|
200
|
-
});
|
|
201
|
-
// Get current branch (should be dev/issue-id)
|
|
202
|
-
let currentBranch = getCurrentBranch();
|
|
203
|
-
logDebug(`Current branch: ${currentBranch}`, verbose);
|
|
204
|
-
// If we're on the base branch, switch to dev branch (should already exist)
|
|
205
|
-
// Default behavior now checks remote if not found locally (multi-clone scenario)
|
|
206
|
-
if (currentBranch === baseBranch) {
|
|
207
|
-
const devBranch = `dev/${issue.id}`;
|
|
208
|
-
logDebug(`Currently on ${baseBranch} branch, switching to ${devBranch}`, verbose);
|
|
209
|
-
switchToBranch(devBranch, verbose, githubToken);
|
|
210
|
-
currentBranch = devBranch;
|
|
211
|
-
}
|
|
212
|
-
// Extract issue ID from current branch (dev/issue-id)
|
|
213
|
-
let targetBranch = baseBranch;
|
|
214
|
-
if (currentBranch.startsWith('dev/')) {
|
|
215
|
-
const issueId = currentBranch.replace('dev/', '');
|
|
216
|
-
targetBranch = `feat/${issueId}`;
|
|
217
|
-
// Create the feat/ branch from base branch (main)
|
|
218
|
-
logDebug(`Creating target branch: ${targetBranch} from ${baseBranch}`, verbose);
|
|
219
|
-
try {
|
|
220
|
-
// Push current branch to remote first
|
|
221
|
-
const pushResult = gitPush({
|
|
222
|
-
branchName: currentBranch,
|
|
223
|
-
token: githubToken,
|
|
224
|
-
verbose,
|
|
225
|
-
});
|
|
226
|
-
if (!pushResult.success) {
|
|
227
|
-
throw new Error(`Failed to push branch: ${pushResult.error}`);
|
|
228
|
-
}
|
|
229
|
-
// Get the base branch (main) SHA to create feat/ branch from
|
|
230
|
-
const { data: baseBranchData } = await octokit.repos.getBranch({
|
|
231
|
-
owner,
|
|
232
|
-
repo,
|
|
233
|
-
branch: baseBranch,
|
|
234
|
-
});
|
|
235
|
-
// Create the feat/ branch from main
|
|
236
|
-
await octokit.git.createRef({
|
|
237
|
-
owner,
|
|
238
|
-
repo,
|
|
239
|
-
ref: `refs/heads/${targetBranch}`,
|
|
240
|
-
sha: baseBranchData.commit.sha,
|
|
241
|
-
});
|
|
242
|
-
logDebug(`Created target branch: ${targetBranch} from ${baseBranch}`, verbose);
|
|
243
|
-
}
|
|
244
|
-
catch (error) {
|
|
245
|
-
// If branch already exists, that's fine
|
|
246
|
-
if (!(error instanceof Error) ||
|
|
247
|
-
!error.message?.includes('Reference already exists')) {
|
|
248
|
-
throw error;
|
|
249
|
-
}
|
|
250
|
-
logDebug(`Target branch ${targetBranch} already exists`, verbose);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
// If not a dev/ branch, push it normally
|
|
255
|
-
const pushResult = gitPush({
|
|
256
|
-
branchName: currentBranch,
|
|
257
|
-
token: githubToken,
|
|
258
|
-
verbose,
|
|
259
|
-
});
|
|
260
|
-
if (!pushResult.success) {
|
|
261
|
-
throw new Error(`Failed to push branch: ${pushResult.error}`);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
// Generate PR title and body
|
|
265
|
-
const title = generatePRTitle(issue.name);
|
|
266
|
-
const body = generatePRBody(issue);
|
|
267
|
-
// Check if PR already exists
|
|
268
|
-
const existingPR = await findExistingPullRequest({
|
|
269
|
-
octokit,
|
|
270
|
-
owner,
|
|
271
|
-
repo,
|
|
272
|
-
head: currentBranch,
|
|
273
|
-
base: targetBranch,
|
|
274
|
-
verbose,
|
|
275
|
-
});
|
|
276
|
-
let pullRequest;
|
|
277
|
-
if (existingPR) {
|
|
278
|
-
logDebug(`Using existing pull request: ${existingPR.html_url}`, verbose);
|
|
279
|
-
pullRequest = existingPR;
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
logDebug(`Creating pull request: ${title} from ${currentBranch} to ${targetBranch}`, verbose);
|
|
283
|
-
// Create the pull request from dev/ to feat/
|
|
284
|
-
const { data: newPullRequest } = await octokit.pulls.create({
|
|
285
|
-
owner,
|
|
286
|
-
repo,
|
|
287
|
-
title,
|
|
288
|
-
body,
|
|
289
|
-
head: currentBranch,
|
|
290
|
-
base: targetBranch,
|
|
291
|
-
draft: false,
|
|
292
|
-
});
|
|
293
|
-
logDebug(`Pull request created: ${newPullRequest.html_url}`, verbose);
|
|
294
|
-
pullRequest = newPullRequest;
|
|
295
|
-
}
|
|
296
|
-
// Switch back to main branch
|
|
297
|
-
switchToMainBranch(baseBranch, verbose);
|
|
298
|
-
return {
|
|
299
|
-
success: true,
|
|
300
|
-
pullRequestUrl: pullRequest.html_url,
|
|
301
|
-
pullRequestNumber: pullRequest.number,
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
|
-
catch (error) {
|
|
305
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
306
|
-
logDebug(`Failed to create pull request: ${errorMessage}`, verbose);
|
|
307
|
-
// Try to switch back to main branch even if PR creation failed
|
|
308
|
-
try {
|
|
309
|
-
switchToMainBranch(baseBranch, verbose);
|
|
310
|
-
}
|
|
311
|
-
catch {
|
|
312
|
-
// Ignore error if we can't switch back
|
|
313
|
-
}
|
|
314
|
-
return {
|
|
315
|
-
success: false,
|
|
316
|
-
error: errorMessage,
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pull request creation handler for pipeline execution
|
|
3
|
-
*/
|
|
4
|
-
import { type PipelineResult } from '../../types/pipeline.js';
|
|
5
|
-
export interface PullRequestHandlerOptions {
|
|
6
|
-
issueId: string;
|
|
7
|
-
results: readonly PipelineResult[];
|
|
8
|
-
testingResult?: PipelineResult;
|
|
9
|
-
verbose?: boolean;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Create pull request for successful issue implementation
|
|
13
|
-
* Returns true if PR was successfully created, false otherwise
|
|
14
|
-
*/
|
|
15
|
-
export declare function handlePullRequestCreation({ issueId, results, testingResult, verbose, }: PullRequestHandlerOptions): Promise<boolean>;
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pull request creation handler for pipeline execution
|
|
3
|
-
*/
|
|
4
|
-
import { getGitHubConfig } from '../../api/github.js';
|
|
5
|
-
import { getIssue } from '../../api/issues/index.js';
|
|
6
|
-
import { getCurrentBranch, updateBranch, } from '../../services/branches.js';
|
|
7
|
-
import { getDefaultBranchForIssue } from '../../services/repo-config.js';
|
|
8
|
-
import { logDebug } from '../../utils/logger.js';
|
|
9
|
-
import { createPullRequest } from './creator.js';
|
|
10
|
-
/**
|
|
11
|
-
* Create pull request for successful issue implementation
|
|
12
|
-
* Returns true if PR was successfully created, false otherwise
|
|
13
|
-
*/
|
|
14
|
-
// eslint-disable-next-line complexity -- orchestration function with branch detection, PR creation, and status updates
|
|
15
|
-
export async function handlePullRequestCreation({ issueId, results, testingResult, verbose, }) {
|
|
16
|
-
logDebug('Creating pull request for successful issue...', verbose);
|
|
17
|
-
// Get issue details for PR creation
|
|
18
|
-
const issue = await getIssue(issueId, verbose);
|
|
19
|
-
if (!issue) {
|
|
20
|
-
logDebug('Could not fetch issue details for pull request creation', verbose);
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
// Get current branch for the issue
|
|
24
|
-
let currentBranch = null;
|
|
25
|
-
try {
|
|
26
|
-
currentBranch = await getCurrentBranch({ issueId, verbose });
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
logDebug(`Could not fetch branch for issue: ${error}`, verbose);
|
|
30
|
-
}
|
|
31
|
-
// Check if PR already exists on the branch
|
|
32
|
-
if (currentBranch?.pull_request_url) {
|
|
33
|
-
logDebug(`Pull request already exists: ${currentBranch.pull_request_url}`, verbose);
|
|
34
|
-
logDebug('Skipping PR creation, using existing pull request', verbose);
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
// Get GitHub configuration from product developer settings
|
|
38
|
-
const githubConfig = await getGitHubConfig(issueId, verbose);
|
|
39
|
-
if (!githubConfig.configured ||
|
|
40
|
-
!githubConfig.token ||
|
|
41
|
-
!githubConfig.owner ||
|
|
42
|
-
!githubConfig.repo) {
|
|
43
|
-
logDebug('GitHub configuration not found. Skipping pull request creation.', verbose);
|
|
44
|
-
logDebug(`${githubConfig.message || 'Please configure a developer with GitHub App installation in the product settings.'}`, verbose);
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
const { token: githubToken, owner: githubOwner, repo: githubRepo, } = githubConfig;
|
|
48
|
-
logDebug(`Using GitHub config from product developer: ${githubOwner}/${githubRepo}`, verbose);
|
|
49
|
-
const baseBranch = await getDefaultBranchForIssue(issueId, verbose);
|
|
50
|
-
const prResult = await createPullRequest({
|
|
51
|
-
githubToken,
|
|
52
|
-
owner: githubOwner,
|
|
53
|
-
repo: githubRepo,
|
|
54
|
-
baseBranch,
|
|
55
|
-
verbose,
|
|
56
|
-
}, {
|
|
57
|
-
id: issue.id,
|
|
58
|
-
name: issue.name,
|
|
59
|
-
description: issue.description || '',
|
|
60
|
-
productId: issue.product_id,
|
|
61
|
-
// Get technical design and test result from previous phases (if available)
|
|
62
|
-
technicalDesign: results.find((r) => r.phase === 'technical-design')?.data?.technicalDesign,
|
|
63
|
-
testResult: testingResult
|
|
64
|
-
? testingResult.data
|
|
65
|
-
?.testResult
|
|
66
|
-
: undefined,
|
|
67
|
-
testReportUrl: testingResult
|
|
68
|
-
? testingResult.data
|
|
69
|
-
?.testReport?.testReportUrl
|
|
70
|
-
: undefined,
|
|
71
|
-
});
|
|
72
|
-
if (prResult.success && prResult.pullRequestUrl) {
|
|
73
|
-
// Update branch with PR URL and status (if branch exists)
|
|
74
|
-
if (currentBranch) {
|
|
75
|
-
try {
|
|
76
|
-
await updateBranch(currentBranch.id, {
|
|
77
|
-
pull_request_url: prResult.pullRequestUrl,
|
|
78
|
-
pull_request_number: prResult.pullRequestNumber,
|
|
79
|
-
status: 'ready_for_review',
|
|
80
|
-
}, verbose);
|
|
81
|
-
logDebug('Branch updated with PR URL', verbose);
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
logDebug(`Failed to update branch with PR URL: ${error}`, verbose);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
logDebug(`Pull request created${currentBranch ? ' and branch updated' : ''}`, verbose);
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
logDebug(`Pull request creation failed: ${prResult.error}`, verbose);
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Quality benchmark phase entry point.
|
|
3
|
-
*
|
|
4
|
-
* Drives a single Claude Agent SDK session whose system prompt is the
|
|
5
|
-
* full rubric (loaded by `prompts.ts`) and whose tool surface is the
|
|
6
|
-
* in-process MCP server in `mcp-server.ts`. The session walks the
|
|
7
|
-
* rubric's 6-phase pipeline by calling MCP tools; we observe the
|
|
8
|
-
* messages for progress events and capture the final JSON report.
|
|
9
|
-
*
|
|
10
|
-
* Pure compute boundary: this function does NOT touch the database.
|
|
11
|
-
* Callers (the CLI command, the desktop-app IPC bridge) decide how to
|
|
12
|
-
* persist the returned payload — see the CLI command in
|
|
13
|
-
* `src/commands/quality-benchmark/index.ts` for the MCP-mediated
|
|
14
|
-
* persistence path.
|
|
15
|
-
*
|
|
16
|
-
* Side effects that DO happen here:
|
|
17
|
-
* - Creates a scratch dir under ~/.edsger/quality-runs/<run-id>/
|
|
18
|
-
* - Writes raw tool outputs to that dir
|
|
19
|
-
* - Spawns child_process invocations of the catalog tools
|
|
20
|
-
*/
|
|
21
|
-
import { type ProgressEvent } from './mcp-server.js';
|
|
22
|
-
import { type QualityReportPayload, type RunPhase } from './types.js';
|
|
23
|
-
export interface QualityBenchmarkOptions {
|
|
24
|
-
productId: string;
|
|
25
|
-
productName: string;
|
|
26
|
-
/** Absolute path to the local repo checkout. */
|
|
27
|
-
repoRoot: string;
|
|
28
|
-
/** Branch name (informational; doesn't checkout). */
|
|
29
|
-
branch?: string;
|
|
30
|
-
/**
|
|
31
|
-
* Detected JS package manager (informational; the SDK will detect on its
|
|
32
|
-
* own but we pass through for catalog filtering).
|
|
33
|
-
*/
|
|
34
|
-
packageManager?: string;
|
|
35
|
-
/** When false, install_tool always refuses (mirrors --no-install CLI flag). */
|
|
36
|
-
installEnabled: boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Optional progress callback for the calling surface (CLI logger,
|
|
39
|
-
* Electron IPC, etc.). Receives every MCP-server-emitted event.
|
|
40
|
-
*/
|
|
41
|
-
onProgress?: (event: ProgressEvent) => void;
|
|
42
|
-
verbose?: boolean;
|
|
43
|
-
/** Override scratch-dir base (mainly for tests). */
|
|
44
|
-
scanDirBase?: string;
|
|
45
|
-
/** Override commit sha resolution (mainly for tests). */
|
|
46
|
-
commitShaOverride?: string;
|
|
47
|
-
}
|
|
48
|
-
export type QualityBenchmarkOutcome = {
|
|
49
|
-
status: 'success';
|
|
50
|
-
report: QualityReportPayload;
|
|
51
|
-
runId: string;
|
|
52
|
-
commitSha: string;
|
|
53
|
-
startedAt: string;
|
|
54
|
-
completedAt: string;
|
|
55
|
-
durationSeconds: number;
|
|
56
|
-
} | {
|
|
57
|
-
status: 'error';
|
|
58
|
-
message: string;
|
|
59
|
-
runId?: string;
|
|
60
|
-
commitSha?: string;
|
|
61
|
-
lastPhase?: RunPhase;
|
|
62
|
-
};
|
|
63
|
-
export declare function runQualityBenchmark(opts: QualityBenchmarkOptions): Promise<QualityBenchmarkOutcome>;
|
|
64
|
-
export type { ProgressEvent } from './mcp-server.js';
|
|
65
|
-
export type { QualityReportPayload, RunPhase } from './types.js';
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Quality benchmark phase entry point.
|
|
3
|
-
*
|
|
4
|
-
* Drives a single Claude Agent SDK session whose system prompt is the
|
|
5
|
-
* full rubric (loaded by `prompts.ts`) and whose tool surface is the
|
|
6
|
-
* in-process MCP server in `mcp-server.ts`. The session walks the
|
|
7
|
-
* rubric's 6-phase pipeline by calling MCP tools; we observe the
|
|
8
|
-
* messages for progress events and capture the final JSON report.
|
|
9
|
-
*
|
|
10
|
-
* Pure compute boundary: this function does NOT touch the database.
|
|
11
|
-
* Callers (the CLI command, the desktop-app IPC bridge) decide how to
|
|
12
|
-
* persist the returned payload — see the CLI command in
|
|
13
|
-
* `src/commands/quality-benchmark/index.ts` for the MCP-mediated
|
|
14
|
-
* persistence path.
|
|
15
|
-
*
|
|
16
|
-
* Side effects that DO happen here:
|
|
17
|
-
* - Creates a scratch dir under ~/.edsger/quality-runs/<run-id>/
|
|
18
|
-
* - Writes raw tool outputs to that dir
|
|
19
|
-
* - Spawns child_process invocations of the catalog tools
|
|
20
|
-
*/
|
|
21
|
-
import { spawnSync } from 'node:child_process';
|
|
22
|
-
import { randomUUID } from 'node:crypto';
|
|
23
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
24
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
25
|
-
import { logError, logInfo, logSuccess } from '../../utils/logger.js';
|
|
26
|
-
import { createPromptGenerator } from '../pr-shared/agent-utils.js';
|
|
27
|
-
import { createEmptyRunState, createQualityBenchmarkMcpServer, } from './mcp-server.js';
|
|
28
|
-
import { createQualityBenchmarkSystemPrompt, createQualityBenchmarkUserPrompt, extractReportJson, } from './prompts.js';
|
|
29
|
-
import { createRunnerContext } from './tool-runner.js';
|
|
30
|
-
import { RUBRIC_VERSION, } from './types.js';
|
|
31
|
-
// SDK upper bound. Each phase usually takes ~1-3 turns; with up to 30
|
|
32
|
-
// tools probed + run plus per-finding verification, 500 gives headroom while
|
|
33
|
-
// still cutting off runaway loops.
|
|
34
|
-
const MAX_TURNS = 500;
|
|
35
|
-
// ---------------------------------------------------------------------------
|
|
36
|
-
// Orchestration
|
|
37
|
-
// ---------------------------------------------------------------------------
|
|
38
|
-
// eslint-disable-next-line complexity
|
|
39
|
-
export async function runQualityBenchmark(opts) {
|
|
40
|
-
const { productId, productName, repoRoot, branch, packageManager, installEnabled, onProgress, verbose, scanDirBase, commitShaOverride, } = opts;
|
|
41
|
-
// 1. Determine commit sha from the local checkout.
|
|
42
|
-
const commitSha = commitShaOverride ?? readGitHead(repoRoot);
|
|
43
|
-
if (!commitSha) {
|
|
44
|
-
return {
|
|
45
|
-
status: 'error',
|
|
46
|
-
message: `Could not read git HEAD at ${repoRoot} — is this a git repo?`,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
// 2. Set up runner + MCP server.
|
|
50
|
-
const runId = randomUUID();
|
|
51
|
-
const startedAt = new Date().toISOString();
|
|
52
|
-
const runner = createRunnerContext({
|
|
53
|
-
repo_root: repoRoot,
|
|
54
|
-
package_manager: packageManager,
|
|
55
|
-
install_enabled: installEnabled,
|
|
56
|
-
run_id: runId,
|
|
57
|
-
base_dir: scanDirBase,
|
|
58
|
-
});
|
|
59
|
-
const state = createEmptyRunState();
|
|
60
|
-
let lastPhase = 'detection';
|
|
61
|
-
const emit = (event) => {
|
|
62
|
-
lastPhase = event.phase;
|
|
63
|
-
onProgress?.(event);
|
|
64
|
-
if (verbose) {
|
|
65
|
-
logInfo(`[${event.phase}] ${event.message}`);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
const mcpServer = createQualityBenchmarkMcpServer({ runner, onProgress: emit, installEnabled }, state);
|
|
69
|
-
// 3. Run the SDK session.
|
|
70
|
-
const systemPrompt = createQualityBenchmarkSystemPrompt();
|
|
71
|
-
const userPrompt = createQualityBenchmarkUserPrompt({
|
|
72
|
-
productName,
|
|
73
|
-
productId,
|
|
74
|
-
repoRoot,
|
|
75
|
-
branch,
|
|
76
|
-
commitSha,
|
|
77
|
-
runId,
|
|
78
|
-
installEnabled,
|
|
79
|
-
});
|
|
80
|
-
let lastAssistantText = '';
|
|
81
|
-
try {
|
|
82
|
-
for await (const message of query({
|
|
83
|
-
prompt: createPromptGenerator(userPrompt),
|
|
84
|
-
options: {
|
|
85
|
-
systemPrompt: {
|
|
86
|
-
type: 'preset',
|
|
87
|
-
preset: 'claude_code',
|
|
88
|
-
append: systemPrompt,
|
|
89
|
-
},
|
|
90
|
-
model: DEFAULT_MODEL,
|
|
91
|
-
maxTurns: MAX_TURNS,
|
|
92
|
-
permissionMode: 'bypassPermissions',
|
|
93
|
-
cwd: repoRoot,
|
|
94
|
-
mcpServers: {
|
|
95
|
-
'quality-benchmark': mcpServer,
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
})) {
|
|
99
|
-
if (message.type === 'assistant' && message.message?.content) {
|
|
100
|
-
for (const c of message.message.content) {
|
|
101
|
-
if (c.type === 'text') {
|
|
102
|
-
lastAssistantText += `${c.text}\n`;
|
|
103
|
-
if (verbose) {
|
|
104
|
-
logInfo(`🤖 ${c.text}`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
if (message.type === 'result') {
|
|
110
|
-
if (message.subtype !== 'success') {
|
|
111
|
-
logError(`SDK session ended with subtype=${message.subtype}`);
|
|
112
|
-
}
|
|
113
|
-
if (message.subtype === 'success' &&
|
|
114
|
-
'result' in message &&
|
|
115
|
-
typeof message.result === 'string') {
|
|
116
|
-
lastAssistantText = message.result || lastAssistantText;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
catch (err) {
|
|
122
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
123
|
-
return {
|
|
124
|
-
status: 'error',
|
|
125
|
-
message: `SDK error: ${msg}`,
|
|
126
|
-
runId,
|
|
127
|
-
commitSha,
|
|
128
|
-
lastPhase,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
// 4. Extract + validate JSON report.
|
|
132
|
-
const raw = extractReportJson(lastAssistantText);
|
|
133
|
-
if (!raw || typeof raw !== 'object') {
|
|
134
|
-
return {
|
|
135
|
-
status: 'error',
|
|
136
|
-
message: 'SDK session did not emit a parseable JSON report',
|
|
137
|
-
runId,
|
|
138
|
-
commitSha,
|
|
139
|
-
lastPhase: 'synthesis',
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
const report = raw;
|
|
143
|
-
// Merge SDK-emitted fields with the state we accumulated server-side. The
|
|
144
|
-
// server-side state is authoritative for execution metadata; the LLM owns
|
|
145
|
-
// the scoring fields.
|
|
146
|
-
const merged = {
|
|
147
|
-
...report,
|
|
148
|
-
rubric_version: RUBRIC_VERSION,
|
|
149
|
-
tool_versions: { ...state.tool_versions, ...(report.tool_versions ?? {}) },
|
|
150
|
-
unavailable_tools: dedupUnavailable([
|
|
151
|
-
...state.unavailable_tools,
|
|
152
|
-
...(report.unavailable_tools ?? []),
|
|
153
|
-
]),
|
|
154
|
-
tool_outputs: { ...state.tool_outputs, ...(report.tool_outputs ?? {}) },
|
|
155
|
-
dropped_findings: Math.max(state.dropped_findings, report.dropped_findings ?? 0),
|
|
156
|
-
};
|
|
157
|
-
const completedAt = new Date().toISOString();
|
|
158
|
-
const durationSec = Math.round((new Date(completedAt).getTime() - new Date(startedAt).getTime()) / 1000);
|
|
159
|
-
logSuccess(`Benchmark complete — grade ${merged.overall_grade ?? '?'} (${merged.overall_score ?? '?'})`);
|
|
160
|
-
return {
|
|
161
|
-
status: 'success',
|
|
162
|
-
report: merged,
|
|
163
|
-
runId,
|
|
164
|
-
commitSha,
|
|
165
|
-
startedAt,
|
|
166
|
-
completedAt,
|
|
167
|
-
durationSeconds: durationSec,
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
// ---------------------------------------------------------------------------
|
|
171
|
-
// Helpers
|
|
172
|
-
// ---------------------------------------------------------------------------
|
|
173
|
-
function readGitHead(repoRoot) {
|
|
174
|
-
const res = spawnSync('git', ['rev-parse', 'HEAD'], {
|
|
175
|
-
cwd: repoRoot,
|
|
176
|
-
encoding: 'utf8',
|
|
177
|
-
});
|
|
178
|
-
if (res.status !== 0) {
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
return res.stdout.trim() || null;
|
|
182
|
-
}
|
|
183
|
-
function dedupUnavailable(list) {
|
|
184
|
-
const seen = new Set();
|
|
185
|
-
const out = [];
|
|
186
|
-
for (const entry of list) {
|
|
187
|
-
if (seen.has(entry.name)) {
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
seen.add(entry.name);
|
|
191
|
-
out.push(entry);
|
|
192
|
-
}
|
|
193
|
-
return out;
|
|
194
|
-
}
|