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,622 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-lines -- orchestration module with test execution, result processing, and report generation */
|
|
2
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
3
|
-
import { setPhaseState } from '../../api/issues/index.js';
|
|
4
|
-
import { getMcpServerUrl, getMcpToken } from '../../auth/auth-store.js';
|
|
5
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
-
function processAssistantContent(content, verbose) {
|
|
8
|
-
let text = '';
|
|
9
|
-
for (const item of content) {
|
|
10
|
-
if (item.type === 'text') {
|
|
11
|
-
text += `${item.text}\n`;
|
|
12
|
-
logDebug(`🤖 ${item.text}`, verbose);
|
|
13
|
-
}
|
|
14
|
-
else if (item.type === 'tool_use') {
|
|
15
|
-
logDebug(`🔧 ${item.name}: ${item.input.description || 'Running...'}`, verbose);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return text;
|
|
19
|
-
}
|
|
20
|
-
import { getReadyForReviewBranch, } from '../../services/branches.js';
|
|
21
|
-
import { formatChecklistsForContext, } from '../../services/checklist.js';
|
|
22
|
-
import { formatFeedbacksForContext, getFeedbacksForPhase, } from '../../services/feedbacks.js';
|
|
23
|
-
import { prepareCustomBranchGitEnvironment, preparePhaseGitEnvironment, } from '../../utils/git-branch-manager.js';
|
|
24
|
-
import { logDebug, logError, logInfo } from '../../utils/logger.js';
|
|
25
|
-
import { fetchFunctionalTestingContext, formatContextForPrompt, } from './context-fetcher.js';
|
|
26
|
-
import { saveFunctionalTestResultsWithRetry } from './http-fallback.js';
|
|
27
|
-
import { createTestReport, } from './test-report-creator.js';
|
|
28
|
-
function userMessage(content) {
|
|
29
|
-
return {
|
|
30
|
-
type: 'user',
|
|
31
|
-
message: { role: 'user', content },
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
async function* prompt(testingPrompt) {
|
|
35
|
-
yield userMessage(testingPrompt);
|
|
36
|
-
await new Promise((res) => {
|
|
37
|
-
setTimeout(res, 10000);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Extract JSON from a response using multiple strategies:
|
|
42
|
-
* 1. Markdown code block
|
|
43
|
-
* 2. Search for JSON object by key
|
|
44
|
-
* 3. Parse entire response
|
|
45
|
-
*/
|
|
46
|
-
function extractJsonFromResponse(responseText, searchKeys) {
|
|
47
|
-
// Strategy 1: markdown code block
|
|
48
|
-
const jsonBlockMatch = responseText.match(/```json\s*\n([\s\S]*?)\n\s*```/);
|
|
49
|
-
if (jsonBlockMatch) {
|
|
50
|
-
return JSON.parse(jsonBlockMatch[1]);
|
|
51
|
-
}
|
|
52
|
-
// Strategy 2: find JSON by searching for key patterns in lines
|
|
53
|
-
const jsonResult = findJsonByLineSearch(responseText, searchKeys);
|
|
54
|
-
if (jsonResult) {
|
|
55
|
-
return jsonResult;
|
|
56
|
-
}
|
|
57
|
-
// Strategy 3: parse entire response
|
|
58
|
-
return JSON.parse(responseText);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Search response lines for JSON objects containing specific keys
|
|
62
|
-
*/
|
|
63
|
-
function findJsonByLineSearch(responseText, searchKeys) {
|
|
64
|
-
const lines = responseText.split('\n');
|
|
65
|
-
for (let i = 0; i < lines.length; i++) {
|
|
66
|
-
const line = lines[i].trim();
|
|
67
|
-
const hasMatchingKey = line.includes('{') && searchKeys.some((key) => line.includes(key));
|
|
68
|
-
if (!hasMatchingKey) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
const result = tryExtractJsonFromLines(lines, i);
|
|
72
|
-
if (result) {
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Try to extract a complete JSON object starting from a given line index
|
|
80
|
-
*/
|
|
81
|
-
function tryExtractJsonFromLines(lines, startLine) {
|
|
82
|
-
let braceCount = 0;
|
|
83
|
-
let jsonStr = '';
|
|
84
|
-
let inString = false;
|
|
85
|
-
let escapeNext = false;
|
|
86
|
-
for (let j = startLine; j < lines.length; j++) {
|
|
87
|
-
const currentLine = lines[j];
|
|
88
|
-
for (const char of currentLine) {
|
|
89
|
-
if (escapeNext) {
|
|
90
|
-
escapeNext = false;
|
|
91
|
-
jsonStr += char;
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
if (char === '\\') {
|
|
95
|
-
escapeNext = true;
|
|
96
|
-
jsonStr += char;
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
if (char === '"' && !escapeNext) {
|
|
100
|
-
inString = !inString;
|
|
101
|
-
}
|
|
102
|
-
if (!inString) {
|
|
103
|
-
if (char === '{') {
|
|
104
|
-
braceCount++;
|
|
105
|
-
}
|
|
106
|
-
if (char === '}') {
|
|
107
|
-
braceCount--;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
jsonStr += char;
|
|
111
|
-
if (braceCount === 0 && jsonStr.includes('{')) {
|
|
112
|
-
try {
|
|
113
|
-
return JSON.parse(jsonStr);
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
// Continue searching
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (j > startLine) {
|
|
121
|
-
jsonStr += '\n';
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Build a StructuredTestResult from a parsed JSON result
|
|
128
|
-
*/
|
|
129
|
-
function buildStructuredTestResult(testData, responseText) {
|
|
130
|
-
return {
|
|
131
|
-
status: testData.status || 'testing_failed',
|
|
132
|
-
title: testData.title || 'Functional Test Report',
|
|
133
|
-
summary: testData.summary || 'Test execution completed',
|
|
134
|
-
total_test_cases: testData.total_test_cases || 0,
|
|
135
|
-
passed_test_cases: testData.passed_test_cases || 0,
|
|
136
|
-
failed_test_cases: testData.failed_test_cases || 0,
|
|
137
|
-
test_cases: testData.test_cases || [],
|
|
138
|
-
execution_details: testData.execution_details || responseText,
|
|
139
|
-
timestamp: testData.timestamp || new Date().toISOString(),
|
|
140
|
-
checklist_item_results: testData.checklist_item_results ||
|
|
141
|
-
[],
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Parse test result from agent response text
|
|
146
|
-
*/
|
|
147
|
-
function parseTestResult(responseText) {
|
|
148
|
-
try {
|
|
149
|
-
const jsonResult = extractJsonFromResponse(responseText, [
|
|
150
|
-
'"test_result"',
|
|
151
|
-
'"status"',
|
|
152
|
-
'"checklist_item_results"',
|
|
153
|
-
]);
|
|
154
|
-
if (jsonResult?.test_result) {
|
|
155
|
-
const testData = jsonResult.test_result;
|
|
156
|
-
const structured = buildStructuredTestResult(testData, responseText);
|
|
157
|
-
return { testResult: structured, testStatus: structured.status };
|
|
158
|
-
}
|
|
159
|
-
if (jsonResult && typeof jsonResult === 'object' && jsonResult.status) {
|
|
160
|
-
const structured = buildStructuredTestResult(jsonResult, responseText);
|
|
161
|
-
return { testResult: structured, testStatus: structured.status };
|
|
162
|
-
}
|
|
163
|
-
throw new Error('Invalid JSON structure');
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
logError(`Failed to parse structured test result: ${error}`);
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Resolve the branch to use for testing
|
|
172
|
-
*/
|
|
173
|
-
async function resolveTestBranch(issueId, verbose) {
|
|
174
|
-
let branchName = `dev/${issueId}`;
|
|
175
|
-
let currentBranch = null;
|
|
176
|
-
try {
|
|
177
|
-
currentBranch = await getReadyForReviewBranch({ issueId, verbose });
|
|
178
|
-
if (currentBranch?.branch_name) {
|
|
179
|
-
branchName = currentBranch.branch_name;
|
|
180
|
-
if (verbose) {
|
|
181
|
-
logInfo(`📋 Found ready_for_review branch: ${currentBranch.name}`);
|
|
182
|
-
logInfo(` Using dev branch: ${branchName}`);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
else if (verbose) {
|
|
186
|
-
logInfo(`ℹ️ No ready_for_review branch found, using default: ${branchName}`);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
catch (_error) {
|
|
190
|
-
if (verbose) {
|
|
191
|
-
logInfo(`Note: Could not fetch issue branches, using default branch`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return { branchName, currentBranch };
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Fetch feedbacks for testing context
|
|
198
|
-
*/
|
|
199
|
-
async function fetchTestingFeedbacks(issueId, currentBranch, verbose) {
|
|
200
|
-
try {
|
|
201
|
-
const feedbacksContext = await getFeedbacksForPhase({ issueId, verbose }, 'functional_testing', currentBranch?.id);
|
|
202
|
-
if (feedbacksContext.feedbacks.length > 0) {
|
|
203
|
-
const info = await formatFeedbacksForContext(feedbacksContext);
|
|
204
|
-
if (verbose) {
|
|
205
|
-
logInfo(`Added ${feedbacksContext.feedbacks.length} human feedbacks to testing context${currentBranch ? ` (including branch-specific for "${currentBranch.name}")` : ''}`);
|
|
206
|
-
}
|
|
207
|
-
return info;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
catch (error) {
|
|
211
|
-
if (verbose) {
|
|
212
|
-
logInfo(`Note: Could not fetch feedbacks (${error instanceof Error ? error.message : String(error)})`);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return undefined;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Map test results to existing test cases by name matching
|
|
219
|
-
*/
|
|
220
|
-
async function mapTestResultsToTestCases(structuredTestResult, issueId, verbose) {
|
|
221
|
-
if (!structuredTestResult.test_cases?.length) {
|
|
222
|
-
return undefined;
|
|
223
|
-
}
|
|
224
|
-
try {
|
|
225
|
-
const mcpServerUrl = getMcpServerUrl();
|
|
226
|
-
const mcpToken = getMcpToken();
|
|
227
|
-
const testCasesResponse = await fetch(`${mcpServerUrl}/mcp`, {
|
|
228
|
-
method: 'POST',
|
|
229
|
-
headers: {
|
|
230
|
-
'Content-Type': 'application/json',
|
|
231
|
-
Authorization: `Bearer ${mcpToken}`,
|
|
232
|
-
},
|
|
233
|
-
body: JSON.stringify({
|
|
234
|
-
jsonrpc: '2.0',
|
|
235
|
-
method: 'test_cases/list',
|
|
236
|
-
params: { issue_id: issueId },
|
|
237
|
-
id: Math.random().toString(36).substring(7),
|
|
238
|
-
}),
|
|
239
|
-
});
|
|
240
|
-
if (!testCasesResponse.ok) {
|
|
241
|
-
return undefined;
|
|
242
|
-
}
|
|
243
|
-
const testCasesData = (await testCasesResponse.json());
|
|
244
|
-
if (testCasesData.error || !testCasesData.result) {
|
|
245
|
-
return undefined;
|
|
246
|
-
}
|
|
247
|
-
const resultObj = testCasesData.result;
|
|
248
|
-
const existingTestCases = (resultObj.test_cases || []);
|
|
249
|
-
const testResults = structuredTestResult.test_cases
|
|
250
|
-
.map((testCase) => {
|
|
251
|
-
const matchingTestCase = existingTestCases.find((existing) => existing.name.toLowerCase().includes(testCase.name.toLowerCase()) ||
|
|
252
|
-
testCase.name.toLowerCase().includes(existing.name.toLowerCase()));
|
|
253
|
-
if (!matchingTestCase) {
|
|
254
|
-
return null;
|
|
255
|
-
}
|
|
256
|
-
return {
|
|
257
|
-
test_case_id: matchingTestCase.id,
|
|
258
|
-
result: testCase.status,
|
|
259
|
-
notes: testCase.error_message || testCase.description || undefined,
|
|
260
|
-
};
|
|
261
|
-
})
|
|
262
|
-
.filter((r) => r !== null);
|
|
263
|
-
if (verbose && testResults.length > 0) {
|
|
264
|
-
logInfo(`Mapped ${testResults.length} test results to existing test cases`);
|
|
265
|
-
}
|
|
266
|
-
return testResults.length > 0 ? testResults : undefined;
|
|
267
|
-
}
|
|
268
|
-
catch (error) {
|
|
269
|
-
if (verbose) {
|
|
270
|
-
logError(`Failed to fetch test cases for mapping: ${error}`);
|
|
271
|
-
}
|
|
272
|
-
return undefined;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Save test status and create test report
|
|
277
|
-
*/
|
|
278
|
-
async function saveTestResults(issueId, testStatus, structuredTestResult, lastAssistantResponse, verbose) {
|
|
279
|
-
if (verbose) {
|
|
280
|
-
logInfo('Saving test results...');
|
|
281
|
-
}
|
|
282
|
-
// testStatus is 'testing_passed' | 'testing_failed'. Under the 2D model
|
|
283
|
-
// both map to a single phase-state update on functional_testing —
|
|
284
|
-
// 'completed' for passed, 'failed' for failed. issues.status stays
|
|
285
|
-
// 'in_progress'; humans decide when to ship.
|
|
286
|
-
const phaseState = testStatus === 'testing_passed' ? 'completed' : 'failed';
|
|
287
|
-
let statusSaved = true;
|
|
288
|
-
try {
|
|
289
|
-
await setPhaseState(issueId, 'functional_testing', phaseState, verbose);
|
|
290
|
-
}
|
|
291
|
-
catch (err) {
|
|
292
|
-
statusSaved = false;
|
|
293
|
-
if (verbose) {
|
|
294
|
-
logError(`Direct setPhaseState failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
if (!statusSaved) {
|
|
298
|
-
if (verbose) {
|
|
299
|
-
logInfo('Direct status update failed, trying HTTP fallback...');
|
|
300
|
-
}
|
|
301
|
-
const fallbackSaved = await saveFunctionalTestResultsWithRetry({
|
|
302
|
-
issueId,
|
|
303
|
-
testStatus,
|
|
304
|
-
testResults: structuredTestResult?.execution_details || lastAssistantResponse,
|
|
305
|
-
verbose,
|
|
306
|
-
});
|
|
307
|
-
if (!fallbackSaved && verbose) {
|
|
308
|
-
logError('⚠️ Both direct update and HTTP fallback failed');
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
if (!structuredTestResult) {
|
|
312
|
-
return undefined;
|
|
313
|
-
}
|
|
314
|
-
if (verbose) {
|
|
315
|
-
logInfo('Creating test report...');
|
|
316
|
-
}
|
|
317
|
-
const testReportData = {
|
|
318
|
-
title: structuredTestResult.title ||
|
|
319
|
-
`Functional Test Report - ${new Date().toLocaleString()}`,
|
|
320
|
-
summary: structuredTestResult.summary,
|
|
321
|
-
testResults: structuredTestResult.execution_details || lastAssistantResponse,
|
|
322
|
-
status: testStatus,
|
|
323
|
-
};
|
|
324
|
-
const testResults = await mapTestResultsToTestCases(structuredTestResult, issueId, verbose);
|
|
325
|
-
const testReportResult = await createTestReport({
|
|
326
|
-
issueId,
|
|
327
|
-
testReportData,
|
|
328
|
-
testResults,
|
|
329
|
-
verbose,
|
|
330
|
-
});
|
|
331
|
-
if (testReportResult.success && verbose) {
|
|
332
|
-
logInfo(`✅ Test report created: ${testReportResult.testReportUrl}`);
|
|
333
|
-
}
|
|
334
|
-
else if (!testReportResult.success && verbose) {
|
|
335
|
-
logError(`⚠️ Test report creation failed: ${testReportResult.error}`);
|
|
336
|
-
}
|
|
337
|
-
return testReportResult;
|
|
338
|
-
}
|
|
339
|
-
export const runFunctionalTesting = async (options, config, checklistContext) => {
|
|
340
|
-
const { issueId, verbose } = options;
|
|
341
|
-
if (verbose) {
|
|
342
|
-
logInfo(`Starting functional testing for issue ID: ${issueId}`);
|
|
343
|
-
}
|
|
344
|
-
const { branchName, currentBranch } = await resolveTestBranch(issueId, verbose);
|
|
345
|
-
const cleanupGit = currentBranch
|
|
346
|
-
? prepareCustomBranchGitEnvironment(branchName, 'main', verbose)
|
|
347
|
-
: preparePhaseGitEnvironment(issueId, 'main', verbose);
|
|
348
|
-
try {
|
|
349
|
-
if (verbose) {
|
|
350
|
-
logInfo('Fetching issue testing context via MCP endpoints...');
|
|
351
|
-
}
|
|
352
|
-
const context = await fetchFunctionalTestingContext(issueId, verbose);
|
|
353
|
-
const feedbacksInfo = await fetchTestingFeedbacks(issueId, currentBranch, verbose);
|
|
354
|
-
const systemPrompt = createSystemPrompt(config, issueId);
|
|
355
|
-
const testingPrompt = createTestingPromptWithContext(issueId, context, checklistContext, verbose, feedbacksInfo);
|
|
356
|
-
let lastAssistantResponse = '';
|
|
357
|
-
let structuredTestResult = null;
|
|
358
|
-
let testStatus = 'testing_failed';
|
|
359
|
-
if (verbose) {
|
|
360
|
-
logInfo('Starting Claude Code query with pre-fetched information...');
|
|
361
|
-
}
|
|
362
|
-
for await (const message of query({
|
|
363
|
-
prompt: prompt(testingPrompt),
|
|
364
|
-
options: {
|
|
365
|
-
systemPrompt: {
|
|
366
|
-
type: 'preset',
|
|
367
|
-
preset: 'claude_code',
|
|
368
|
-
append: systemPrompt,
|
|
369
|
-
},
|
|
370
|
-
model: DEFAULT_MODEL,
|
|
371
|
-
maxTurns: 1000,
|
|
372
|
-
permissionMode: 'bypassPermissions',
|
|
373
|
-
},
|
|
374
|
-
})) {
|
|
375
|
-
if (verbose) {
|
|
376
|
-
logInfo(`Received message type: ${message.type}`);
|
|
377
|
-
}
|
|
378
|
-
if (message.type === 'assistant') {
|
|
379
|
-
lastAssistantResponse += processAssistantContent(message.message?.content ?? [], verbose);
|
|
380
|
-
}
|
|
381
|
-
if (message.type !== 'result') {
|
|
382
|
-
continue;
|
|
383
|
-
}
|
|
384
|
-
if (message.subtype === 'success') {
|
|
385
|
-
logInfo('\n🎭 Functional testing completed, parsing results...');
|
|
386
|
-
const responseText = message.result || lastAssistantResponse;
|
|
387
|
-
const parsed = parseTestResult(responseText);
|
|
388
|
-
if (parsed) {
|
|
389
|
-
structuredTestResult = parsed.testResult;
|
|
390
|
-
({ testStatus } = parsed);
|
|
391
|
-
}
|
|
392
|
-
else {
|
|
393
|
-
structuredTestResult = {
|
|
394
|
-
status: 'testing_failed',
|
|
395
|
-
title: 'Test Result Parse Error',
|
|
396
|
-
summary: 'Failed to parse structured test results from Claude Code response',
|
|
397
|
-
total_test_cases: 0,
|
|
398
|
-
passed_test_cases: 0,
|
|
399
|
-
failed_test_cases: 1,
|
|
400
|
-
execution_details: message.result || lastAssistantResponse,
|
|
401
|
-
timestamp: new Date().toISOString(),
|
|
402
|
-
checklist_item_results: [],
|
|
403
|
-
};
|
|
404
|
-
testStatus = 'testing_failed';
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
else {
|
|
408
|
-
logError(`\n⚠️ Functional testing incomplete: ${message.subtype}`);
|
|
409
|
-
if (message.subtype === 'error_max_turns') {
|
|
410
|
-
logError('💡 Try simplifying the test cases or reducing test scope');
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
const testReportResult = await saveTestResults(issueId, testStatus, structuredTestResult, lastAssistantResponse, verbose);
|
|
415
|
-
if (structuredTestResult) {
|
|
416
|
-
return {
|
|
417
|
-
issueId,
|
|
418
|
-
testStatus,
|
|
419
|
-
structuredTestResult,
|
|
420
|
-
testReport: testReportResult,
|
|
421
|
-
status: 'success',
|
|
422
|
-
message: `Functional testing completed with status: ${testStatus}`,
|
|
423
|
-
data: {
|
|
424
|
-
checklist_item_results: structuredTestResult.checklist_item_results,
|
|
425
|
-
},
|
|
426
|
-
};
|
|
427
|
-
}
|
|
428
|
-
return {
|
|
429
|
-
issueId,
|
|
430
|
-
testStatus: 'testing_failed',
|
|
431
|
-
structuredTestResult: null,
|
|
432
|
-
testReport: testReportResult,
|
|
433
|
-
status: 'error',
|
|
434
|
-
message: 'Functional testing failed or incomplete',
|
|
435
|
-
};
|
|
436
|
-
}
|
|
437
|
-
catch (error) {
|
|
438
|
-
logError(`Functional testing failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
439
|
-
try {
|
|
440
|
-
await setPhaseState(issueId, 'functional_testing', 'failed', verbose);
|
|
441
|
-
}
|
|
442
|
-
catch (rpcErr) {
|
|
443
|
-
if (verbose) {
|
|
444
|
-
logError(`Direct setPhaseState failed (${rpcErr instanceof Error ? rpcErr.message : String(rpcErr)}); trying HTTP fallback...`);
|
|
445
|
-
}
|
|
446
|
-
try {
|
|
447
|
-
await saveFunctionalTestResultsWithRetry({
|
|
448
|
-
issueId,
|
|
449
|
-
testStatus: 'testing_failed',
|
|
450
|
-
testResults: `Testing failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
451
|
-
verbose,
|
|
452
|
-
});
|
|
453
|
-
}
|
|
454
|
-
catch (fallbackError) {
|
|
455
|
-
if (verbose) {
|
|
456
|
-
logError(`❌ Failed to save error status: ${fallbackError}`);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
return {
|
|
461
|
-
issueId,
|
|
462
|
-
testStatus: 'testing_failed',
|
|
463
|
-
structuredTestResult: null,
|
|
464
|
-
status: 'error',
|
|
465
|
-
message: `Functional testing failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
466
|
-
};
|
|
467
|
-
}
|
|
468
|
-
finally {
|
|
469
|
-
cleanupGit();
|
|
470
|
-
}
|
|
471
|
-
};
|
|
472
|
-
const createSystemPrompt = (_config, mcpServerUrl, mcpToken, issueId) => {
|
|
473
|
-
let mcpInstructions = '';
|
|
474
|
-
if (mcpServerUrl && mcpToken && issueId) {
|
|
475
|
-
mcpInstructions = `
|
|
476
|
-
|
|
477
|
-
**MANDATORY Checklist Compliance**:
|
|
478
|
-
If you are provided with checklists in the context, you MUST satisfy ALL of them during your testing work. Checklists are mandatory requirements that define quality standards and cannot be ignored or skipped.
|
|
479
|
-
|
|
480
|
-
- Review each checklist carefully and ensure your testing addresses every requirement
|
|
481
|
-
- You MUST include ALL provided checklist item IDs in the "checklist_item_results" field of your JSON response (use the exact UUID from "ID:" field in items list)
|
|
482
|
-
- Set "is_passed": true for each checklist item you have completed successfully
|
|
483
|
-
- Provide appropriate "value" based on the item type (boolean: true/false, text: descriptive text, number: numeric value)
|
|
484
|
-
- If you cannot satisfy a checklist item requirement, set "is_passed": false and explain why in the "notes" field
|
|
485
|
-
- The system will validate that all checklist items have been addressed - missing items will cause the pipeline to fail
|
|
486
|
-
|
|
487
|
-
CRITICAL: Checklists are not optional suggestions - they are mandatory quality gates that must be satisfied.`;
|
|
488
|
-
}
|
|
489
|
-
return `You are a professional QA automation engineer performing comprehensive functional testing using headless Playwright MCP.
|
|
490
|
-
|
|
491
|
-
**Your Role**: Execute end-to-end functional tests for implemented issues using headless browser automation.
|
|
492
|
-
|
|
493
|
-
**Available Tools**:
|
|
494
|
-
- Headless Playwright MCP: Full headless browser automation capabilities for testing
|
|
495
|
-
- Bash: Command line tools for starting servers and running commands
|
|
496
|
-
|
|
497
|
-
**Testing Process**:
|
|
498
|
-
1. **Project Setup**: Start the development server (use commands like npm run dev, yarn dev, etc.)
|
|
499
|
-
2. **Test Execution**: Use headless Playwright MCP to:
|
|
500
|
-
- Launch headless browser with appropriate settings for CI/CD environments
|
|
501
|
-
- Configure browser for headless operation (no GUI, faster execution)
|
|
502
|
-
- Navigate to the application (typically http://localhost:3000 or similar)
|
|
503
|
-
- Authenticate with provided credentials (username/password)
|
|
504
|
-
- Execute test cases based on user stories and technical specifications
|
|
505
|
-
- Verify functionality works as expected
|
|
506
|
-
3. **Results Reporting**: Provide detailed test results with specific pass/fail information
|
|
507
|
-
|
|
508
|
-
**Testing Guidelines**:
|
|
509
|
-
- Start the development server before testing
|
|
510
|
-
- ALWAYS configure browser in headless mode for CI/CD compatibility
|
|
511
|
-
- Use appropriate timeouts for headless browser operations
|
|
512
|
-
- Test ALL critical functionality described in user stories
|
|
513
|
-
- Verify both positive and negative test scenarios
|
|
514
|
-
- Test data validation and error handling
|
|
515
|
-
- Ensure proper authentication flows
|
|
516
|
-
- Validate UI elements and user interactions
|
|
517
|
-
- Be thorough but efficient in your testing approach
|
|
518
|
-
- Optimize for performance in headless environments
|
|
519
|
-
|
|
520
|
-
**Important Notes**:
|
|
521
|
-
- The issue has already been implemented - you're testing existing functionality
|
|
522
|
-
- All issue information, user stories, test cases, and credentials are provided in the prompt
|
|
523
|
-
- You need to start the development server yourself (npm run dev, etc.)
|
|
524
|
-
- Use the provided login credentials for authentication
|
|
525
|
-
- ALWAYS configure browser in HEADLESS mode for better performance and CI/CD compatibility
|
|
526
|
-
- Configure appropriate timeouts and settings for headless browser operations
|
|
527
|
-
- Mark as 'passed' ONLY if ALL critical tests pass
|
|
528
|
-
- Mark as 'failed' if ANY critical functionality is broken
|
|
529
|
-
- Provide specific details about what passed/failed in your results
|
|
530
|
-
|
|
531
|
-
**CRITICAL - Result Format**:
|
|
532
|
-
You MUST end your response with a JSON object containing the test results in this EXACT format:
|
|
533
|
-
|
|
534
|
-
\`\`\`json
|
|
535
|
-
{
|
|
536
|
-
"test_result": {
|
|
537
|
-
"status": "testing_passed" | "testing_failed",
|
|
538
|
-
"title": "Descriptive test report title",
|
|
539
|
-
"summary": "Brief summary of what was tested and results",
|
|
540
|
-
"total_test_cases": number,
|
|
541
|
-
"passed_test_cases": number,
|
|
542
|
-
"failed_test_cases": number,
|
|
543
|
-
"test_cases": [
|
|
544
|
-
{
|
|
545
|
-
"name": "Test case name",
|
|
546
|
-
"status": "passed" | "failed" | "skipped",
|
|
547
|
-
"description": "What this test validates",
|
|
548
|
-
"error_message": "Error details if failed (optional)"
|
|
549
|
-
}
|
|
550
|
-
],
|
|
551
|
-
"checklist_item_results": [
|
|
552
|
-
{
|
|
553
|
-
"checklist_item_id": "EXACT_CHECKLIST_ITEM_UUID_FROM_ID_FIELD",
|
|
554
|
-
"is_passed": true,
|
|
555
|
-
"value": "Result value based on item type (boolean, text, number, etc.)",
|
|
556
|
-
"notes": "Optional notes about this specific checklist item"
|
|
557
|
-
}
|
|
558
|
-
],
|
|
559
|
-
"execution_details": "Detailed execution log and findings",
|
|
560
|
-
"timestamp": "ISO timestamp"
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
\`\`\`
|
|
564
|
-
|
|
565
|
-
MANDATORY: If checklists are provided in the context, you MUST include checklist_item_results for ALL checklist items. Every checklist item ID must be addressed - either passed or with explanation in notes why it cannot be satisfied. Missing any checklist item will cause the pipeline to fail.
|
|
566
|
-
|
|
567
|
-
IMPORTANT: In the checklist context, look for lines that say "ID: [UUID]" in the items list - use these exact UUIDs as checklist_item_id values. Do NOT use the item title or description as the checklist_item_id.
|
|
568
|
-
|
|
569
|
-
Focus on systematic testing based on the provided context information.${mcpInstructions}`;
|
|
570
|
-
};
|
|
571
|
-
const createTestingPromptWithContext = (issueId, context, checklistContext, verbose, feedbacksInfo) => {
|
|
572
|
-
const contextInfo = formatContextForPrompt(context);
|
|
573
|
-
let finalContextInfo = contextInfo;
|
|
574
|
-
// Add feedbacks context to the testing prompt
|
|
575
|
-
if (feedbacksInfo) {
|
|
576
|
-
finalContextInfo = `${finalContextInfo}\n\n${feedbacksInfo}`;
|
|
577
|
-
}
|
|
578
|
-
// Add checklist context to the testing prompt
|
|
579
|
-
if (checklistContext && checklistContext.checklists.length > 0) {
|
|
580
|
-
const checklistInfo = formatChecklistsForContext(checklistContext);
|
|
581
|
-
finalContextInfo = `${finalContextInfo}\n\n${checklistInfo}`;
|
|
582
|
-
if (verbose) {
|
|
583
|
-
logInfo(`Added ${checklistContext.checklists.length} checklists to testing context`);
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
return `Please perform comprehensive functional testing for issue ID: ${issueId}
|
|
587
|
-
|
|
588
|
-
${finalContextInfo}
|
|
589
|
-
|
|
590
|
-
## Testing Instructions
|
|
591
|
-
|
|
592
|
-
Follow this systematic approach:
|
|
593
|
-
|
|
594
|
-
1. **Start Development Server**: Start the development server (npm run dev, yarn dev, etc.)
|
|
595
|
-
|
|
596
|
-
2. **Execute Functional Tests**: Use headless Playwright MCP to:
|
|
597
|
-
- Launch browser in HEADLESS mode with appropriate settings
|
|
598
|
-
- Configure browser for optimal headless performance
|
|
599
|
-
- Navigate to the application (typically http://localhost:3000)
|
|
600
|
-
- Log in using the provided credentials from the environment configuration
|
|
601
|
-
- Test each user story requirement systematically
|
|
602
|
-
- Execute all test cases, especially the CRITICAL ones
|
|
603
|
-
- Verify the issue works according to the technical design
|
|
604
|
-
- Test error handling and edge cases
|
|
605
|
-
|
|
606
|
-
3. **Report Results**: Provide detailed test results including:
|
|
607
|
-
- Summary of what was tested
|
|
608
|
-
- Which user stories were validated
|
|
609
|
-
- Which test cases passed/failed
|
|
610
|
-
- Overall status: 'passed' if ALL critical functionality works correctly, 'failed' if ANY critical functionality is broken
|
|
611
|
-
- Specific details about any failures or issues found
|
|
612
|
-
|
|
613
|
-
## Important Notes
|
|
614
|
-
- Focus on the critical test cases marked as [CRITICAL]
|
|
615
|
-
- Ensure all user stories are properly validated
|
|
616
|
-
- Test both positive and negative scenarios
|
|
617
|
-
- The issue should already be implemented - you're validating existing functionality
|
|
618
|
-
- Use the login credentials provided in the environment configuration
|
|
619
|
-
- Be thorough but efficient in your testing approach
|
|
620
|
-
|
|
621
|
-
Start the development server and begin systematic testing based on the above context.`;
|
|
622
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { type ProductInfo } from '../../api/products.js';
|
|
2
|
-
import type { IssueInfo, TestCase, UserStory } from '../../types/issues.js';
|
|
3
|
-
export interface FunctionalTestingContext {
|
|
4
|
-
issue: IssueInfo;
|
|
5
|
-
product: ProductInfo;
|
|
6
|
-
user_stories: UserStory[];
|
|
7
|
-
test_cases: TestCase[];
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Fetch all functional testing context information via MCP endpoints
|
|
11
|
-
*/
|
|
12
|
-
export declare function fetchFunctionalTestingContext(issueId: string, verbose?: boolean): Promise<FunctionalTestingContext>;
|
|
13
|
-
/**
|
|
14
|
-
* Format the context into a readable string for Claude Code
|
|
15
|
-
*/
|
|
16
|
-
export declare function formatContextForPrompt(context: FunctionalTestingContext): string;
|