edsger 0.77.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 -1247
- 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/api-docs/index.d.ts +0 -18
- package/dist/commands/api-docs/index.js +0 -41
- 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 -45
- package/dist/commands/quality-benchmark/index.js +0 -247
- 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/api-docs/index.d.ts +0 -47
- package/dist/phases/api-docs/index.js +0 -254
- package/dist/phases/api-docs/mcp-server.d.ts +0 -25
- package/dist/phases/api-docs/mcp-server.js +0 -82
- package/dist/phases/api-docs/prompts.d.ts +0 -16
- package/dist/phases/api-docs/prompts.js +0 -65
- package/dist/phases/api-docs/types.d.ts +0 -22
- package/dist/phases/api-docs/types.js +0 -10
- 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 -268
- package/dist/phases/find-architecture/prompts.d.ts +0 -32
- package/dist/phases/find-architecture/prompts.js +0 -129
- 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 -238
- 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/baseline.d.ts +0 -45
- package/dist/phases/find-shared/baseline.js +0 -56
- package/dist/phases/find-shared/custom-rules.d.ts +0 -39
- package/dist/phases/find-shared/custom-rules.js +0 -75
- package/dist/phases/find-shared/detect-context.d.ts +0 -40
- package/dist/phases/find-shared/detect-context.js +0 -247
- 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 -54
- package/dist/phases/find-shared/mcp.js +0 -127
- package/dist/phases/find-shared/rule-config.d.ts +0 -37
- package/dist/phases/find-shared/rule-config.js +0 -67
- package/dist/phases/find-shared/rule-packs.d.ts +0 -65
- package/dist/phases/find-shared/rule-packs.js +0 -124
- 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-shared/scoped-read.d.ts +0 -12
- package/dist/phases/find-shared/scoped-read.js +0 -33
- package/dist/phases/find-smells/index.d.ts +0 -50
- package/dist/phases/find-smells/index.js +0 -305
- package/dist/phases/find-smells/prompts.d.ts +0 -31
- package/dist/phases/find-smells/prompts.js +0 -130
- 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/gate.d.ts +0 -50
- package/dist/phases/quality-benchmark/gate.js +0 -91
- package/dist/phases/quality-benchmark/index.d.ts +0 -65
- package/dist/phases/quality-benchmark/index.js +0 -208
- 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 -45
- package/dist/phases/quality-benchmark/parsers.js +0 -1311
- 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 -1211
- package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
- package/dist/phases/quality-benchmark/tool-catalog.js +0 -693
- 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 -319
- 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,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sequence Diagram domain types.
|
|
3
|
-
*
|
|
4
|
-
* A SequenceParticipant is one lifeline in an interaction — an actor, a
|
|
5
|
-
* service, a database, an external system, a queue, or an internal
|
|
6
|
-
* component. A SequenceMessage is one ordered interaction between two
|
|
7
|
-
* participants (a call, an async send, a return, or a self-message).
|
|
8
|
-
*
|
|
9
|
-
* A sequence diagram captures ONE scenario / flow of control (e.g. "user
|
|
10
|
-
* checkout", "OAuth login"); the user's guidance picks the scenario. The CLI
|
|
11
|
-
* extracts it from source code (call sites, handlers, SDK calls) and the
|
|
12
|
-
* desktop renders participants as lifelines with the messages ordered by the
|
|
13
|
-
* `order` field.
|
|
14
|
-
*
|
|
15
|
-
* Companion to DataNodeSchema / ErEntity: same flow-graph shape (nodes +
|
|
16
|
-
* edges sharing the `diagrams` table storing the JSONB schema), different domain.
|
|
17
|
-
*/
|
|
18
|
-
export type SequenceParticipantKind = 'actor' | 'service' | 'component' | 'database' | 'queue' | 'external';
|
|
19
|
-
export interface SequenceParticipant {
|
|
20
|
-
/** Stable slug within the diagram (e.g. 'user', 'auth-service'). */
|
|
21
|
-
slug: string;
|
|
22
|
-
/** Human-readable name. */
|
|
23
|
-
name: string;
|
|
24
|
-
kind: SequenceParticipantKind;
|
|
25
|
-
/** Source file path (jump anchor) where the participant is defined. */
|
|
26
|
-
file?: string;
|
|
27
|
-
/** One-sentence description of the participant's role. */
|
|
28
|
-
description?: string;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Message kinds describe the nature of the interaction arrow.
|
|
32
|
-
*/
|
|
33
|
-
export type SequenceMessageKind = 'sync' | 'async' | 'return' | 'self';
|
|
34
|
-
export interface SequenceMessage {
|
|
35
|
-
/** Sender participant slug. */
|
|
36
|
-
fromSlug: string;
|
|
37
|
-
/** Receiver participant slug. */
|
|
38
|
-
toSlug: string;
|
|
39
|
-
kind: SequenceMessageKind;
|
|
40
|
-
/** 1-based position of this message in the interaction timeline. */
|
|
41
|
-
order: number;
|
|
42
|
-
/** The call / message text ('POST /login', 'validateToken()', 'rows'). */
|
|
43
|
-
label?: string;
|
|
44
|
-
/** File + line where this call happens (for jump-to-code). */
|
|
45
|
-
sourceFile?: string;
|
|
46
|
-
}
|
|
47
|
-
export interface SequenceDiagramExtraction {
|
|
48
|
-
summary: string;
|
|
49
|
-
participants: SequenceParticipant[];
|
|
50
|
-
messages: SequenceMessage[];
|
|
51
|
-
}
|
|
52
|
-
export declare function isSequenceDiagramExtraction(value: unknown): value is SequenceDiagramExtraction;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sequence Diagram domain types.
|
|
3
|
-
*
|
|
4
|
-
* A SequenceParticipant is one lifeline in an interaction — an actor, a
|
|
5
|
-
* service, a database, an external system, a queue, or an internal
|
|
6
|
-
* component. A SequenceMessage is one ordered interaction between two
|
|
7
|
-
* participants (a call, an async send, a return, or a self-message).
|
|
8
|
-
*
|
|
9
|
-
* A sequence diagram captures ONE scenario / flow of control (e.g. "user
|
|
10
|
-
* checkout", "OAuth login"); the user's guidance picks the scenario. The CLI
|
|
11
|
-
* extracts it from source code (call sites, handlers, SDK calls) and the
|
|
12
|
-
* desktop renders participants as lifelines with the messages ordered by the
|
|
13
|
-
* `order` field.
|
|
14
|
-
*
|
|
15
|
-
* Companion to DataNodeSchema / ErEntity: same flow-graph shape (nodes +
|
|
16
|
-
* edges sharing the `diagrams` table storing the JSONB schema), different domain.
|
|
17
|
-
*/
|
|
18
|
-
// ============================================================================
|
|
19
|
-
// Runtime validation for AI-produced extraction
|
|
20
|
-
// ============================================================================
|
|
21
|
-
const PARTICIPANT_KINDS = new Set([
|
|
22
|
-
'actor',
|
|
23
|
-
'service',
|
|
24
|
-
'component',
|
|
25
|
-
'database',
|
|
26
|
-
'queue',
|
|
27
|
-
'external',
|
|
28
|
-
]);
|
|
29
|
-
const MESSAGE_KINDS = new Set([
|
|
30
|
-
'sync',
|
|
31
|
-
'async',
|
|
32
|
-
'return',
|
|
33
|
-
'self',
|
|
34
|
-
]);
|
|
35
|
-
function isRecord(value) {
|
|
36
|
-
return typeof value === 'object' && value !== null;
|
|
37
|
-
}
|
|
38
|
-
function isSequenceParticipant(value) {
|
|
39
|
-
if (!isRecord(value)) {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
if (typeof value.slug !== 'string' || value.slug.length === 0) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
if (typeof value.name !== 'string' || value.name.length === 0) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
if (typeof value.kind !== 'string' ||
|
|
49
|
-
!PARTICIPANT_KINDS.has(value.kind)) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
function isSequenceMessage(value) {
|
|
55
|
-
if (!isRecord(value)) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
if (typeof value.fromSlug !== 'string') {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
if (typeof value.toSlug !== 'string') {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
if (typeof value.kind !== 'string' ||
|
|
65
|
-
!MESSAGE_KINDS.has(value.kind)) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
if (typeof value.order !== 'number') {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
export function isSequenceDiagramExtraction(value) {
|
|
74
|
-
if (!isRecord(value)) {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
if (typeof value.summary !== 'string') {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
if (!Array.isArray(value.participants)) {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
if (!Array.isArray(value.messages)) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
if (!value.participants.every(isSequenceParticipant)) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
if (!value.messages.every(isSequenceMessage)) {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type EdsgerConfig } from '../../types/index.js';
|
|
2
|
-
export interface GeneratedSmokeTestPlan {
|
|
3
|
-
summary: string;
|
|
4
|
-
test_cases: {
|
|
5
|
-
name: string;
|
|
6
|
-
description: string;
|
|
7
|
-
is_critical?: boolean;
|
|
8
|
-
}[];
|
|
9
|
-
}
|
|
10
|
-
/** @internal Exported for unit tests only. */
|
|
11
|
-
export declare function extractJson(raw: string): GeneratedSmokeTestPlan;
|
|
12
|
-
export declare function executeSmokeTestQuery(systemPrompt: string, userPrompt: string, config: EdsgerConfig, verbose?: boolean, cwd?: string): Promise<GeneratedSmokeTestPlan>;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
3
|
-
import { findBalancedJsonObject } from '../../utils/json-extract.js';
|
|
4
|
-
import { logDebug, logError, logInfo } from '../../utils/logger.js';
|
|
5
|
-
function userMessage(content) {
|
|
6
|
-
return { type: 'user', message: { role: 'user', content } };
|
|
7
|
-
}
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/require-await -- async generator required by SDK interface
|
|
9
|
-
async function* makePrompt(text) {
|
|
10
|
-
yield userMessage(text);
|
|
11
|
-
}
|
|
12
|
-
/** @internal Exported for unit tests only. */
|
|
13
|
-
export function extractJson(raw) {
|
|
14
|
-
let body = raw.trim();
|
|
15
|
-
const fence = body.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
16
|
-
if (fence) {
|
|
17
|
-
body = fence[1].trim();
|
|
18
|
-
}
|
|
19
|
-
// Try parsing the whole body first — if the model returned clean JSON
|
|
20
|
-
// it round-trips without needing to slice.
|
|
21
|
-
let parsed;
|
|
22
|
-
try {
|
|
23
|
-
parsed = JSON.parse(body);
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
const object = findBalancedJsonObject(body);
|
|
27
|
-
if (!object) {
|
|
28
|
-
throw new Error('No JSON object found in model output');
|
|
29
|
-
}
|
|
30
|
-
parsed = JSON.parse(object);
|
|
31
|
-
}
|
|
32
|
-
if (typeof parsed !== 'object' ||
|
|
33
|
-
parsed === null ||
|
|
34
|
-
!Array.isArray(parsed.test_cases)) {
|
|
35
|
-
throw new Error('Model response is missing test_cases array');
|
|
36
|
-
}
|
|
37
|
-
return parsed;
|
|
38
|
-
}
|
|
39
|
-
// eslint-disable-next-line complexity -- agent loop with message type handling
|
|
40
|
-
export async function executeSmokeTestQuery(systemPrompt, userPrompt, config, verbose, cwd) {
|
|
41
|
-
let lastAssistant = '';
|
|
42
|
-
let plan = null;
|
|
43
|
-
let parseError = null;
|
|
44
|
-
let turnCount = 0;
|
|
45
|
-
if (verbose) {
|
|
46
|
-
logInfo('Connecting to Claude Code for smoke-test generation...');
|
|
47
|
-
}
|
|
48
|
-
for await (const message of query({
|
|
49
|
-
prompt: makePrompt(userPrompt),
|
|
50
|
-
options: {
|
|
51
|
-
systemPrompt: {
|
|
52
|
-
type: 'preset',
|
|
53
|
-
preset: 'claude_code',
|
|
54
|
-
append: systemPrompt,
|
|
55
|
-
},
|
|
56
|
-
model: DEFAULT_MODEL,
|
|
57
|
-
maxTurns: 20,
|
|
58
|
-
permissionMode: 'bypassPermissions',
|
|
59
|
-
...(cwd ? { cwd } : {}),
|
|
60
|
-
},
|
|
61
|
-
})) {
|
|
62
|
-
if (message.type === 'assistant' && message.message?.content) {
|
|
63
|
-
turnCount++;
|
|
64
|
-
for (const content of message.message.content) {
|
|
65
|
-
if (content.type === 'text') {
|
|
66
|
-
lastAssistant += `${content.text}\n`;
|
|
67
|
-
logDebug(content.text, verbose);
|
|
68
|
-
}
|
|
69
|
-
else if (content.type === 'tool_use' && verbose) {
|
|
70
|
-
const input = (content.input ?? {});
|
|
71
|
-
const desc = input.description ?? input.command ?? 'Running...';
|
|
72
|
-
logInfo(`[Turn ${turnCount}] ${content.name}: ${typeof desc === 'string' ? desc.slice(0, 120) : 'Running...'}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (message.type === 'result') {
|
|
77
|
-
const text = ('result' in message ? message.result : '') || lastAssistant;
|
|
78
|
-
try {
|
|
79
|
-
plan = extractJson(text);
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
parseError = err instanceof Error ? err.message : String(err);
|
|
83
|
-
}
|
|
84
|
-
if (message.subtype !== 'success') {
|
|
85
|
-
logError(`Smoke-test query incomplete: ${message.subtype}`);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (!plan) {
|
|
90
|
-
throw new Error(`Failed to parse smoke-test plan from model output: ${parseError ?? 'no result message received'}`);
|
|
91
|
-
}
|
|
92
|
-
return plan;
|
|
93
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Smoke-test generation for a single release row. Given a release that has
|
|
3
|
-
* already been synced into the `releases` table (see `phases/release-sync`),
|
|
4
|
-
* this phase clones the repo, diffs against the baseline, and asks Claude
|
|
5
|
-
* to emit a JSON test plan, then persists the test cases and marks the
|
|
6
|
-
* release `ready`.
|
|
7
|
-
*/
|
|
8
|
-
import { type EdsgerConfig } from '../../types/index.js';
|
|
9
|
-
export interface SmokeTestOptions {
|
|
10
|
-
releaseId: string;
|
|
11
|
-
verbose?: boolean;
|
|
12
|
-
}
|
|
13
|
-
export interface SmokeTestResult {
|
|
14
|
-
status: 'success' | 'error';
|
|
15
|
-
releaseId: string;
|
|
16
|
-
releaseTag?: string;
|
|
17
|
-
previousReleaseTag?: string | null;
|
|
18
|
-
casesCount?: number;
|
|
19
|
-
summary: string;
|
|
20
|
-
isSnapshot?: boolean;
|
|
21
|
-
}
|
|
22
|
-
export declare function runSmokeTest(options: SmokeTestOptions, config: EdsgerConfig): Promise<SmokeTestResult>;
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Smoke-test generation for a single release row. Given a release that has
|
|
3
|
-
* already been synced into the `releases` table (see `phases/release-sync`),
|
|
4
|
-
* this phase clones the repo, diffs against the baseline, and asks Claude
|
|
5
|
-
* to emit a JSON test plan, then persists the test cases and marks the
|
|
6
|
-
* release `ready`.
|
|
7
|
-
*/
|
|
8
|
-
import { getGitHubConfigByProduct } from '../../api/github.js';
|
|
9
|
-
import { getProduct } from '../../api/products.js';
|
|
10
|
-
import { clearReleaseTestCases, createReleaseTestCases, } from '../../api/release-test-cases.js';
|
|
11
|
-
import { getRelease, updateRelease } from '../../api/releases.js';
|
|
12
|
-
import { logError, logInfo, logSuccess, logWarning, } from '../../utils/logger.js';
|
|
13
|
-
import { cleanupIssueRepo, cloneIssueRepo, ensureWorkspaceDir, syncRepoToRef, } from '../../workspace/workspace-manager.js';
|
|
14
|
-
import { buildDiffDigest, fetchCompare, getDefaultBranchHead, summariseStats, } from '../release-sync/github.js';
|
|
15
|
-
import { executeSmokeTestQuery } from './agent.js';
|
|
16
|
-
import { buildSmokeTestUserPrompt, createSmokeTestSystemPrompt, } from './prompts.js';
|
|
17
|
-
function isSnapshotRelease(release) {
|
|
18
|
-
return !release.published_at && !release.url;
|
|
19
|
-
}
|
|
20
|
-
function describeReleaseContext(release, isSnapshot) {
|
|
21
|
-
if (isSnapshot) {
|
|
22
|
-
return ` (snapshot ahead of ${release.previous_tag ?? 'first release'})`;
|
|
23
|
-
}
|
|
24
|
-
if (release.previous_tag) {
|
|
25
|
-
return ` (vs ${release.previous_tag})`;
|
|
26
|
-
}
|
|
27
|
-
return ' (first release)';
|
|
28
|
-
}
|
|
29
|
-
export async function runSmokeTest(options, config) {
|
|
30
|
-
const { releaseId, verbose } = options;
|
|
31
|
-
if (verbose) {
|
|
32
|
-
logInfo(`Starting smoke-test generation for release: ${releaseId}`);
|
|
33
|
-
}
|
|
34
|
-
let release;
|
|
35
|
-
try {
|
|
36
|
-
release = await getRelease(releaseId, verbose);
|
|
37
|
-
}
|
|
38
|
-
catch (err) {
|
|
39
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
40
|
-
return {
|
|
41
|
-
status: 'error',
|
|
42
|
-
releaseId,
|
|
43
|
-
summary: `Failed to load release: ${message}`,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
const gh = await getGitHubConfigByProduct(release.product_id, verbose);
|
|
47
|
-
if (!gh.configured || !gh.token || !gh.owner || !gh.repo) {
|
|
48
|
-
return {
|
|
49
|
-
status: 'error',
|
|
50
|
-
releaseId,
|
|
51
|
-
summary: gh.message ||
|
|
52
|
-
'Product is not connected to a GitHub repository. Connect it in Product Settings.',
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
const ghResolved = { owner: gh.owner, repo: gh.repo, token: gh.token };
|
|
56
|
-
const isSnapshot = isSnapshotRelease(release);
|
|
57
|
-
// Mark release as generating up front so the UI reflects progress.
|
|
58
|
-
let markedGenerating = false;
|
|
59
|
-
try {
|
|
60
|
-
await updateRelease({ release_id: release.id, status: 'generating', generation_error: null }, verbose);
|
|
61
|
-
markedGenerating = true;
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
logWarning(`Could not mark release as generating: ${err instanceof Error ? err.message : String(err)}`);
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
return await runSmokeTestInner({
|
|
68
|
-
release,
|
|
69
|
-
gh: ghResolved,
|
|
70
|
-
isSnapshot,
|
|
71
|
-
config,
|
|
72
|
-
verbose,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
catch (err) {
|
|
76
|
-
// Safety net: an uncaught throw past the `generating` mark would leave the
|
|
77
|
-
// release row stuck. Flip it to `failed` so the UI isn't permanently stale.
|
|
78
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
79
|
-
if (markedGenerating) {
|
|
80
|
-
try {
|
|
81
|
-
await updateRelease({
|
|
82
|
-
release_id: release.id,
|
|
83
|
-
status: 'failed',
|
|
84
|
-
generation_error: `Unexpected error: ${message}`,
|
|
85
|
-
}, verbose);
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
// best effort
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
logError(`Smoke-test generation failed: ${message}`);
|
|
92
|
-
return {
|
|
93
|
-
status: 'error',
|
|
94
|
-
releaseId: release.id,
|
|
95
|
-
releaseTag: release.tag,
|
|
96
|
-
summary: message,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// eslint-disable-next-line complexity -- orchestration spans GitHub + DB + AI
|
|
101
|
-
async function runSmokeTestInner(ctx) {
|
|
102
|
-
const { release, gh: ghResolved, isSnapshot, config, verbose } = ctx;
|
|
103
|
-
// Clone + checkout the ref Claude should read.
|
|
104
|
-
let cwd;
|
|
105
|
-
try {
|
|
106
|
-
const workspaceRoot = ensureWorkspaceDir();
|
|
107
|
-
const { repoPath } = cloneIssueRepo(workspaceRoot, `release-${release.product_id}`, ghResolved.owner, ghResolved.repo, ghResolved.token);
|
|
108
|
-
cwd = repoPath;
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
logWarning(`Could not clone repo (continuing without code access): ${err instanceof Error ? err.message : String(err)}`);
|
|
112
|
-
}
|
|
113
|
-
// Decide the diff head. For shipped releases this is the release tag; for
|
|
114
|
-
// snapshots it's the default branch HEAD SHA.
|
|
115
|
-
let diffHead = release.tag;
|
|
116
|
-
if (cwd && isSnapshot) {
|
|
117
|
-
try {
|
|
118
|
-
const head = await getDefaultBranchHead(ghResolved.owner, ghResolved.repo, ghResolved.token);
|
|
119
|
-
syncRepoToRef(cwd, { branch: head.branch }, ghResolved.token);
|
|
120
|
-
diffHead = head.sha;
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
logWarning(`Could not sync to default branch head: ${err instanceof Error ? err.message : String(err)}`);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
else if (cwd && !isSnapshot) {
|
|
127
|
-
try {
|
|
128
|
-
syncRepoToRef(cwd, { tag: release.tag }, ghResolved.token);
|
|
129
|
-
}
|
|
130
|
-
catch (err) {
|
|
131
|
-
logWarning(`Could not checkout release tag ${release.tag}, continuing on default ref: ${err instanceof Error ? err.message : String(err)}`);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// Reset non-approved cases so the run is idempotent.
|
|
135
|
-
try {
|
|
136
|
-
await clearReleaseTestCases(release.id, verbose);
|
|
137
|
-
}
|
|
138
|
-
catch (err) {
|
|
139
|
-
logWarning(`Could not clear existing draft cases: ${err instanceof Error ? err.message : String(err)}`);
|
|
140
|
-
}
|
|
141
|
-
// Fetch diff (skip if there is no baseline).
|
|
142
|
-
let diffDigest = '(No baseline to diff against — generate smoke tests covering the entire release notes.)';
|
|
143
|
-
let diffStats = {
|
|
144
|
-
files_changed: 0,
|
|
145
|
-
additions: 0,
|
|
146
|
-
deletions: 0,
|
|
147
|
-
total_commits: 0,
|
|
148
|
-
};
|
|
149
|
-
if (release.previous_tag) {
|
|
150
|
-
try {
|
|
151
|
-
const compare = await fetchCompare(ghResolved.owner, ghResolved.repo, release.previous_tag, diffHead, ghResolved.token);
|
|
152
|
-
diffDigest = buildDiffDigest(compare);
|
|
153
|
-
diffStats = summariseStats(compare);
|
|
154
|
-
}
|
|
155
|
-
catch (err) {
|
|
156
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
157
|
-
await updateRelease({
|
|
158
|
-
release_id: release.id,
|
|
159
|
-
status: 'failed',
|
|
160
|
-
generation_error: `Failed to fetch diff: ${message}`,
|
|
161
|
-
}, verbose);
|
|
162
|
-
return {
|
|
163
|
-
status: 'error',
|
|
164
|
-
releaseId: release.id,
|
|
165
|
-
releaseTag: release.tag,
|
|
166
|
-
summary: `Failed to fetch diff: ${message}`,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// Pull product metadata for the prompt.
|
|
171
|
-
const product = await getProduct(release.product_id, verbose).catch(() => null);
|
|
172
|
-
const productName = product?.name ?? 'Unknown product';
|
|
173
|
-
const productDescription = product?.description ?? null;
|
|
174
|
-
// Run Claude to produce the test plan.
|
|
175
|
-
let plan;
|
|
176
|
-
try {
|
|
177
|
-
const systemPrompt = await createSmokeTestSystemPrompt(Boolean(cwd), cwd);
|
|
178
|
-
plan = await executeSmokeTestQuery(systemPrompt, buildSmokeTestUserPrompt({
|
|
179
|
-
productName,
|
|
180
|
-
productDescription,
|
|
181
|
-
latestTag: release.tag,
|
|
182
|
-
previousTag: release.previous_tag,
|
|
183
|
-
releaseNotes: release.body ?? null,
|
|
184
|
-
diffDigest,
|
|
185
|
-
}), config, verbose, cwd);
|
|
186
|
-
}
|
|
187
|
-
catch (err) {
|
|
188
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
189
|
-
await updateRelease({ release_id: release.id, status: 'failed', generation_error: message }, verbose);
|
|
190
|
-
logError(`Smoke-test generation failed: ${message}`);
|
|
191
|
-
return {
|
|
192
|
-
status: 'error',
|
|
193
|
-
releaseId: release.id,
|
|
194
|
-
releaseTag: release.tag,
|
|
195
|
-
summary: message,
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
let casesCount = 0;
|
|
199
|
-
try {
|
|
200
|
-
casesCount = await createReleaseTestCases(release.id, plan.test_cases.map((c) => ({
|
|
201
|
-
name: c.name,
|
|
202
|
-
description: c.description,
|
|
203
|
-
is_critical: c.is_critical ?? false,
|
|
204
|
-
})), verbose);
|
|
205
|
-
}
|
|
206
|
-
catch (err) {
|
|
207
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
208
|
-
await updateRelease({
|
|
209
|
-
release_id: release.id,
|
|
210
|
-
status: 'failed',
|
|
211
|
-
generation_error: `Failed to insert cases: ${message}`,
|
|
212
|
-
}, verbose);
|
|
213
|
-
return {
|
|
214
|
-
status: 'error',
|
|
215
|
-
releaseId: release.id,
|
|
216
|
-
releaseTag: release.tag,
|
|
217
|
-
summary: `Failed to insert cases: ${message}`,
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
await updateRelease({
|
|
221
|
-
release_id: release.id,
|
|
222
|
-
status: 'ready',
|
|
223
|
-
diff_summary: plan.summary,
|
|
224
|
-
diff_stats: diffStats,
|
|
225
|
-
generation_error: null,
|
|
226
|
-
}, verbose);
|
|
227
|
-
const suffix = describeReleaseContext(release, isSnapshot);
|
|
228
|
-
logSuccess(`Generated ${casesCount} smoke-test cases for ${release.tag}${suffix}`);
|
|
229
|
-
// Reached only on the success path — early returns above all signal failure
|
|
230
|
-
// and intentionally leave the workspace for inspection.
|
|
231
|
-
cleanupIssueRepo(cwd);
|
|
232
|
-
return {
|
|
233
|
-
status: 'success',
|
|
234
|
-
releaseId: release.id,
|
|
235
|
-
releaseTag: release.tag,
|
|
236
|
-
previousReleaseTag: release.previous_tag,
|
|
237
|
-
casesCount,
|
|
238
|
-
summary: plan.summary,
|
|
239
|
-
isSnapshot,
|
|
240
|
-
};
|
|
241
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface SmokeTestPromptInput {
|
|
2
|
-
productName: string;
|
|
3
|
-
productDescription: string | null;
|
|
4
|
-
latestTag: string;
|
|
5
|
-
previousTag: string | null;
|
|
6
|
-
releaseNotes: string | null;
|
|
7
|
-
diffDigest: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Load the smoke-test system prompt from the shared SKILL.md library.
|
|
11
|
-
* Keeping the prompt in a skill file means it can also be consumed by
|
|
12
|
-
* Claude Code, other agents, or edited by users in the desktop app.
|
|
13
|
-
*/
|
|
14
|
-
export declare function createSmokeTestSystemPrompt(hasCodebase?: boolean, projectDir?: string): Promise<string>;
|
|
15
|
-
export declare function buildSmokeTestUserPrompt(input: SmokeTestPromptInput): string;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { processConditionals, resolveSkill, } from '../../services/skill-resolver.js';
|
|
2
|
-
/**
|
|
3
|
-
* Load the smoke-test system prompt from the shared SKILL.md library.
|
|
4
|
-
* Keeping the prompt in a skill file means it can also be consumed by
|
|
5
|
-
* Claude Code, other agents, or edited by users in the desktop app.
|
|
6
|
-
*/
|
|
7
|
-
export async function createSmokeTestSystemPrompt(hasCodebase = false, projectDir) {
|
|
8
|
-
const skill = await resolveSkill('phase/smoke-test', { projectDir });
|
|
9
|
-
if (!skill) {
|
|
10
|
-
throw new Error('Failed to load skill: phase/smoke-test');
|
|
11
|
-
}
|
|
12
|
-
return processConditionals(skill.prompt, { hasCodebase });
|
|
13
|
-
}
|
|
14
|
-
export function buildSmokeTestUserPrompt(input) {
|
|
15
|
-
const productBlock = input.productDescription
|
|
16
|
-
? `Product: ${input.productName}\nDescription: ${input.productDescription}`
|
|
17
|
-
: `Product: ${input.productName}`;
|
|
18
|
-
const baseBlock = input.previousTag
|
|
19
|
-
? `Previous release: ${input.previousTag}`
|
|
20
|
-
: 'Previous release: (none — this is the first release)';
|
|
21
|
-
const notesBlock = input.releaseNotes
|
|
22
|
-
? `Release notes for ${input.latestTag}:\n${input.releaseNotes.slice(0, 4000)}`
|
|
23
|
-
: `Release notes for ${input.latestTag}: (none)`;
|
|
24
|
-
return `${productBlock}
|
|
25
|
-
|
|
26
|
-
Release to ship: ${input.latestTag}
|
|
27
|
-
${baseBlock}
|
|
28
|
-
|
|
29
|
-
${notesBlock}
|
|
30
|
-
|
|
31
|
-
Code changes between the two releases:
|
|
32
|
-
${input.diffDigest}
|
|
33
|
-
|
|
34
|
-
Produce the smoke-test plan as described in the system prompt.`;
|
|
35
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* state-diagram phase: map a state machine — states + transitions — for a
|
|
3
|
-
* status lifecycle / workflow found in the code (status enums, XState
|
|
4
|
-
* machines, approval flows, etc.). Persisted to the diagrams tables with
|
|
5
|
-
* `type = 'state'`. Built on the shared diagram framework.
|
|
6
|
-
*/
|
|
7
|
-
import { type DiagramPhaseResult } from '../diagram-shared/generate.js';
|
|
8
|
-
export interface StateDiagramPhaseOptions {
|
|
9
|
-
productId?: string;
|
|
10
|
-
repoId?: string;
|
|
11
|
-
diagramId: string;
|
|
12
|
-
guidance?: string;
|
|
13
|
-
verbose?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare function runStateDiagramPhase(options: StateDiagramPhaseOptions): Promise<DiagramPhaseResult>;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* state-diagram phase: map a state machine — states + transitions — for a
|
|
3
|
-
* status lifecycle / workflow found in the code (status enums, XState
|
|
4
|
-
* machines, approval flows, etc.). Persisted to the diagrams tables with
|
|
5
|
-
* `type = 'state'`. Built on the shared diagram framework.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { generateDiagram, } from '../diagram-shared/generate.js';
|
|
9
|
-
import { buildDiagramSystemPrompt, buildDiagramUserPrompt, } from '../diagram-shared/prompts.js';
|
|
10
|
-
const stateNode = z.object({
|
|
11
|
-
slug: z.string().min(1),
|
|
12
|
-
name: z.string().min(1),
|
|
13
|
-
kind: z.enum(['initial', 'state', 'final', 'choice', 'composite']),
|
|
14
|
-
file: z.string().optional(),
|
|
15
|
-
description: z.string().optional(),
|
|
16
|
-
onEntry: z.string().optional(),
|
|
17
|
-
onExit: z.string().optional(),
|
|
18
|
-
activity: z.string().optional(),
|
|
19
|
-
});
|
|
20
|
-
const stateEdge = z.object({
|
|
21
|
-
fromSlug: z.string().min(1),
|
|
22
|
-
toSlug: z.string().min(1),
|
|
23
|
-
kind: z.enum(['transition']),
|
|
24
|
-
/** trigger [guard] / action, e.g. "submit [valid] / persist()". */
|
|
25
|
-
label: z.string().optional(),
|
|
26
|
-
sourceFile: z.string().optional(),
|
|
27
|
-
});
|
|
28
|
-
export function runStateDiagramPhase(options) {
|
|
29
|
-
return generateDiagram({
|
|
30
|
-
...options,
|
|
31
|
-
workspaceKey: 'state-diagram',
|
|
32
|
-
fenceName: 'state_diagram',
|
|
33
|
-
nounPlural: 'states',
|
|
34
|
-
edgeNounPlural: 'transitions',
|
|
35
|
-
mcpConfig: {
|
|
36
|
-
name: 'state-diagram',
|
|
37
|
-
toolName: 'state_diagram',
|
|
38
|
-
summaryDescribe: '1-3 sentence narrative of what this state machine models and its lifecycle.',
|
|
39
|
-
nodesSchema: z.array(stateNode),
|
|
40
|
-
nodesDescribe: 'Every state: initial / state / final / choice / composite. slug MUST be unique.',
|
|
41
|
-
edgesSchema: z.array(stateEdge),
|
|
42
|
-
edgesDescribe: 'Transitions. label carries "trigger [guard] / action". Every fromSlug / toSlug MUST reference a state slug.',
|
|
43
|
-
},
|
|
44
|
-
buildSystemPrompt: (a) => buildDiagramSystemPrompt('phase/state-diagram', 'state-diagram', a),
|
|
45
|
-
buildUserPrompt: (a) => buildDiagramUserPrompt({
|
|
46
|
-
...a,
|
|
47
|
-
task: 'Map the primary state machine for',
|
|
48
|
-
mcpName: 'state-diagram',
|
|
49
|
-
toolName: 'state_diagram',
|
|
50
|
-
process: 'Find the most important stateful lifecycle in the code: a status enum + the code that transitions it (order status, approval/review state, job/task state, an XState/state-machine definition, a wizard). Pick ONE machine (guidance may name it). Read the transition sites to capture each transition\'s trigger, guard, and action. Include exactly one `initial` pseudostate and the `final` state(s).',
|
|
51
|
-
}),
|
|
52
|
-
});
|
|
53
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* sync-github-issues phase: pull every issue from a product's connected
|
|
3
|
-
* GitHub repo, mirror new ones into our local `issues` table, propagate
|
|
4
|
-
* description/state changes (without clobbering user edits, see below),
|
|
5
|
-
* and flag rows that disappeared remotely as deleted. Deterministic — no
|
|
6
|
-
* Claude Agent SDK; this is plain Octokit + MCP.
|
|
7
|
-
*
|
|
8
|
-
* Production hardening over v1:
|
|
9
|
-
*
|
|
10
|
-
* - Octokit retry + throttling plugins handle 429 / secondary rate limits
|
|
11
|
-
* and transient 5xx with exponential backoff.
|
|
12
|
-
* - Upserts are batched (MAX_BATCH_SIZE per round-trip) instead of one
|
|
13
|
-
* PostgREST call per issue. Cuts a 1000-issue sync from ~50s to <1s.
|
|
14
|
-
* - Deletion sweep is keyed on a sync-start timestamp cutoff, not a
|
|
15
|
-
* present_ids list, so special characters in source_id don't break
|
|
16
|
-
* anything and there's no URL length limit.
|
|
17
|
-
* - If any batch fails, we SKIP the deletion sweep — better to leave
|
|
18
|
-
* stale "deleted" flags missing than to wrongly mark live issues as
|
|
19
|
-
* deleted from a partial fetch.
|
|
20
|
-
*
|
|
21
|
-
* On every click we still fetch the full list (state=all) rather than
|
|
22
|
-
* incremental with `since`, because GitHub's `since` filter doesn't
|
|
23
|
-
* surface deletions. Future hybrid (incremental updates + periodic full
|
|
24
|
-
* sweep) can plug into the per-product state file.
|
|
25
|
-
*/
|
|
26
|
-
import { Octokit } from '@octokit/rest';
|
|
27
|
-
import { type GitHubIssueLite, type SyncResult } from './types.js';
|
|
28
|
-
export interface SyncGithubIssuesOptions {
|
|
29
|
-
productId: string;
|
|
30
|
-
/** GitHub installation token (or PAT). */
|
|
31
|
-
githubToken: string;
|
|
32
|
-
owner: string;
|
|
33
|
-
repo: string;
|
|
34
|
-
verbose?: boolean;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Pull every issue from the repo, paginated. Returns issues only (PRs
|
|
38
|
-
* filtered out, since GitHub returns PRs through this endpoint too).
|
|
39
|
-
*/
|
|
40
|
-
export declare function fetchAllRepoIssues(octokit: Octokit, owner: string, repo: string): Promise<GitHubIssueLite[]>;
|
|
41
|
-
export declare function syncGithubIssues(options: SyncGithubIssuesOptions): Promise<SyncResult>;
|