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,9 +0,0 @@
|
|
|
1
|
-
import { resolveSkill } from '../../services/skill-resolver.js';
|
|
2
|
-
import { OUTPUT_CONTRACTS } from '../output-contracts.js';
|
|
3
|
-
export const createBugFixingSystemPrompt = async (_config, projectDir) => {
|
|
4
|
-
const skill = await resolveSkill('phase/bug-fixing', { projectDir });
|
|
5
|
-
if (!skill) {
|
|
6
|
-
throw new Error('Failed to load skill: phase/bug-fixing');
|
|
7
|
-
}
|
|
8
|
-
return `${skill.prompt}\n\n${OUTPUT_CONTRACTS['bug-fixing']}`;
|
|
9
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build context for the chat AI processor.
|
|
3
|
-
* Fetches issue state, user stories, test cases, and recent chat history.
|
|
4
|
-
*/
|
|
5
|
-
import type { ChatMessage } from '../../types/index.js';
|
|
6
|
-
export interface ChatProcessorContext {
|
|
7
|
-
issueId: string;
|
|
8
|
-
productId: string;
|
|
9
|
-
issueDescription: string;
|
|
10
|
-
issueStatus: string;
|
|
11
|
-
executionMode: string;
|
|
12
|
-
workflow: {
|
|
13
|
-
phase: string;
|
|
14
|
-
status: string;
|
|
15
|
-
}[];
|
|
16
|
-
userStories: {
|
|
17
|
-
id: string;
|
|
18
|
-
title: string;
|
|
19
|
-
description: string;
|
|
20
|
-
status: string;
|
|
21
|
-
}[];
|
|
22
|
-
testCases: {
|
|
23
|
-
id: string;
|
|
24
|
-
name: string;
|
|
25
|
-
description: string;
|
|
26
|
-
is_critical: boolean;
|
|
27
|
-
}[];
|
|
28
|
-
recentChatMessages: ChatMessage[];
|
|
29
|
-
channelId: string;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Build the full context for the chat AI to process a message.
|
|
33
|
-
*/
|
|
34
|
-
export declare function buildChatContext(issueId: string, channelId: string, verbose?: boolean): Promise<ChatProcessorContext>;
|
|
35
|
-
/**
|
|
36
|
-
* Format context into a string for the AI system prompt.
|
|
37
|
-
*/
|
|
38
|
-
export declare function formatContextForAI(context: ChatProcessorContext): string;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build context for the chat AI processor.
|
|
3
|
-
* Fetches issue state, user stories, test cases, and recent chat history.
|
|
4
|
-
*/
|
|
5
|
-
import { listChatMessages } from '../../api/chat.js';
|
|
6
|
-
import { callMcpEndpoint } from '../../api/mcp-client.js';
|
|
7
|
-
/**
|
|
8
|
-
* Build the full context for the chat AI to process a message.
|
|
9
|
-
*/
|
|
10
|
-
export async function buildChatContext(issueId, channelId, verbose) {
|
|
11
|
-
// Fetch issue, user stories, and test cases in parallel
|
|
12
|
-
const [issueResult, storiesResult, testCasesResult, recentMessages] = await Promise.all([
|
|
13
|
-
callMcpEndpoint('issues/get', {
|
|
14
|
-
issue_id: issueId,
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
-
}),
|
|
17
|
-
callMcpEndpoint('user_stories/list', {
|
|
18
|
-
issue_id: issueId,
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
-
}),
|
|
21
|
-
callMcpEndpoint('test_cases/list', {
|
|
22
|
-
issue_id: issueId,
|
|
23
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
-
}),
|
|
25
|
-
listChatMessages(channelId, { limit: 20 }, verbose),
|
|
26
|
-
]);
|
|
27
|
-
const issue = issueResult?.issues?.[0] || {};
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
-
const userStories = (storiesResult?.user_stories || []).map((s) => ({
|
|
30
|
-
id: s.id,
|
|
31
|
-
title: s.title,
|
|
32
|
-
description: s.description,
|
|
33
|
-
status: s.status,
|
|
34
|
-
}));
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
-
const testCases = (testCasesResult?.test_cases || []).map((t) => ({
|
|
37
|
-
id: t.id,
|
|
38
|
-
name: t.name,
|
|
39
|
-
description: t.description,
|
|
40
|
-
is_critical: t.is_critical,
|
|
41
|
-
}));
|
|
42
|
-
return {
|
|
43
|
-
issueId,
|
|
44
|
-
productId: issue.product_id || '',
|
|
45
|
-
issueDescription: `${issue.name || 'Unknown'}: ${issue.description || 'No description'}`,
|
|
46
|
-
issueStatus: issue.status || 'unknown',
|
|
47
|
-
executionMode: issue.execution_mode || 'unknown',
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
-
workflow: (issue.workflow || []).map((p) => ({
|
|
50
|
-
phase: p.phase,
|
|
51
|
-
status: p.status,
|
|
52
|
-
})),
|
|
53
|
-
userStories,
|
|
54
|
-
testCases,
|
|
55
|
-
recentChatMessages: recentMessages,
|
|
56
|
-
channelId,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Format context into a string for the AI system prompt.
|
|
61
|
-
*/
|
|
62
|
-
export function formatContextForAI(context) {
|
|
63
|
-
const parts = [
|
|
64
|
-
`## Issue: ${context.issueDescription}`,
|
|
65
|
-
`**Status:** ${context.issueStatus}`,
|
|
66
|
-
`**Execution Mode:** ${context.executionMode}`,
|
|
67
|
-
'',
|
|
68
|
-
'## Workflow Phases',
|
|
69
|
-
...context.workflow.map((p) => `- ${p.phase}: ${p.status}`),
|
|
70
|
-
'',
|
|
71
|
-
`## User Stories (${context.userStories.length})`,
|
|
72
|
-
];
|
|
73
|
-
if (context.userStories.length > 0) {
|
|
74
|
-
for (const story of context.userStories) {
|
|
75
|
-
parts.push(`- [${story.status}] ${story.title}: ${story.description.slice(0, 100)}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
parts.push('- (none yet)');
|
|
80
|
-
}
|
|
81
|
-
parts.push('', `## Test Cases (${context.testCases.length})`);
|
|
82
|
-
if (context.testCases.length > 0) {
|
|
83
|
-
for (const tc of context.testCases) {
|
|
84
|
-
parts.push(`- ${tc.is_critical ? '[CRITICAL] ' : ''}${tc.name}: ${tc.description.slice(0, 100)}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
parts.push('- (none yet)');
|
|
89
|
-
}
|
|
90
|
-
return parts.join('\n');
|
|
91
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat processor — the AI brain for handling chat messages.
|
|
3
|
-
*
|
|
4
|
-
* Uses Claude Agent SDK session resumption for conversation continuity.
|
|
5
|
-
* Each channel maintains a persistent session ID. New messages resume
|
|
6
|
-
* the same session so the AI naturally remembers the full conversation
|
|
7
|
-
* history without re-stuffing context into the prompt each time.
|
|
8
|
-
*
|
|
9
|
-
* Two modes of operation:
|
|
10
|
-
* 1. processHumanMessages() — Respond to human messages (resumes session)
|
|
11
|
-
* 2. processPhaseCompletion() — Generate next-step suggestions (resumes session)
|
|
12
|
-
*/
|
|
13
|
-
import type { ChatMessage, EdsgerConfig } from '../../types/index.js';
|
|
14
|
-
/**
|
|
15
|
-
* Get the stored session ID for a channel, if any.
|
|
16
|
-
*/
|
|
17
|
-
export declare function getChannelSessionId(channelId: string): string | undefined;
|
|
18
|
-
/**
|
|
19
|
-
* Clear a channel's session (e.g., on issue reset).
|
|
20
|
-
*/
|
|
21
|
-
export declare function clearChannelSession(channelId: string): void;
|
|
22
|
-
/**
|
|
23
|
-
* Process one or more human messages by resuming the channel's session.
|
|
24
|
-
* On first call: creates a new session with full context in the system prompt.
|
|
25
|
-
* On subsequent calls: resumes the session — AI already has conversation history.
|
|
26
|
-
*
|
|
27
|
-
* Returns the session ID (callers should track this if needed).
|
|
28
|
-
*/
|
|
29
|
-
export declare function processHumanMessages(messages: ChatMessage[], issueId: string, config: EdsgerConfig, verbose?: boolean, repoPath?: string): Promise<string | undefined>;
|
|
30
|
-
/**
|
|
31
|
-
* Process one or more human messages from a product channel.
|
|
32
|
-
* Same session resumption pattern as issue chat, but uses
|
|
33
|
-
* product context, product prompt, and product tools.
|
|
34
|
-
*/
|
|
35
|
-
export declare function processProductHumanMessages(messages: ChatMessage[], productId: string, config: EdsgerConfig, verbose?: boolean): Promise<string | undefined>;
|
|
36
|
-
/**
|
|
37
|
-
* Process a phase completion event: analyze output and suggest next steps.
|
|
38
|
-
* Resumes the same channel session so AI has full conversation context.
|
|
39
|
-
*/
|
|
40
|
-
export interface ProcessPhaseCompletionOptions {
|
|
41
|
-
issueId: string;
|
|
42
|
-
phase: string;
|
|
43
|
-
summary: string;
|
|
44
|
-
phaseOutput: unknown;
|
|
45
|
-
config: EdsgerConfig;
|
|
46
|
-
verbose?: boolean;
|
|
47
|
-
repoPath?: string;
|
|
48
|
-
}
|
|
49
|
-
export declare function processPhaseCompletion(opts: ProcessPhaseCompletionOptions): Promise<void>;
|
|
@@ -1,482 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat processor — the AI brain for handling chat messages.
|
|
3
|
-
*
|
|
4
|
-
* Uses Claude Agent SDK session resumption for conversation continuity.
|
|
5
|
-
* Each channel maintains a persistent session ID. New messages resume
|
|
6
|
-
* the same session so the AI naturally remembers the full conversation
|
|
7
|
-
* history without re-stuffing context into the prompt each time.
|
|
8
|
-
*
|
|
9
|
-
* Two modes of operation:
|
|
10
|
-
* 1. processHumanMessages() — Respond to human messages (resumes session)
|
|
11
|
-
* 2. processPhaseCompletion() — Generate next-step suggestions (resumes session)
|
|
12
|
-
*/
|
|
13
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
14
|
-
import { getIssueChannel, listChatMessages, markMessageProcessed, sendAiMessage, sendSystemMessage, } from '../../api/chat.js';
|
|
15
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
16
|
-
import { logDebug, logError, logInfo } from '../../utils/logger.js';
|
|
17
|
-
import { buildChatContext, formatContextForAI } from './context.js';
|
|
18
|
-
import { buildProductChatContext, formatProductContextForAI, } from './product-context.js';
|
|
19
|
-
import { PRODUCT_CHAT_RESPONSE_PROMPT } from './product-prompts.js';
|
|
20
|
-
import { createProductChatMcpServer } from './product-tools.js';
|
|
21
|
-
import { buildNextStepAdvisorMessage, CHAT_RESPONSE_PROMPT, NEXT_STEP_ADVISOR_PROMPT, } from './prompts.js';
|
|
22
|
-
import { createChatMcpServer } from './tools.js';
|
|
23
|
-
// ============================================================
|
|
24
|
-
// Session Management
|
|
25
|
-
// ============================================================
|
|
26
|
-
// channelId → SDK session ID (persisted to disk by the SDK)
|
|
27
|
-
const channelSessions = new Map();
|
|
28
|
-
/**
|
|
29
|
-
* Get the stored session ID for a channel, if any.
|
|
30
|
-
*/
|
|
31
|
-
export function getChannelSessionId(channelId) {
|
|
32
|
-
return channelSessions.get(channelId);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Clear a channel's session (e.g., on issue reset).
|
|
36
|
-
*/
|
|
37
|
-
export function clearChannelSession(channelId) {
|
|
38
|
-
channelSessions.delete(channelId);
|
|
39
|
-
}
|
|
40
|
-
// ============================================================
|
|
41
|
-
// Message Processing
|
|
42
|
-
// ============================================================
|
|
43
|
-
/**
|
|
44
|
-
* Process one or more human messages by resuming the channel's session.
|
|
45
|
-
* On first call: creates a new session with full context in the system prompt.
|
|
46
|
-
* On subsequent calls: resumes the session — AI already has conversation history.
|
|
47
|
-
*
|
|
48
|
-
* Returns the session ID (callers should track this if needed).
|
|
49
|
-
*/
|
|
50
|
-
export async function processHumanMessages(messages, issueId, config, verbose, repoPath) {
|
|
51
|
-
if (messages.length === 0) {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
const channelId = messages[0].channel_id;
|
|
55
|
-
const existingSessionId = channelSessions.get(channelId);
|
|
56
|
-
if (verbose) {
|
|
57
|
-
logInfo(`Processing ${messages.length} message(s) for channel ${channelId}${existingSessionId
|
|
58
|
-
? ` (resuming session ${existingSessionId})`
|
|
59
|
-
: ' (new session)'}`);
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
// Build the user prompt — just the message content
|
|
63
|
-
const messageParts = messages.map((m, i) => {
|
|
64
|
-
if (messages.length === 1) {
|
|
65
|
-
return m.content;
|
|
66
|
-
}
|
|
67
|
-
return `[Message ${i + 1} from ${m.sender_name}]: ${m.content}`;
|
|
68
|
-
});
|
|
69
|
-
const userPrompt = messageParts.join('\n\n');
|
|
70
|
-
// On first message: include full context + chat history so the session
|
|
71
|
-
// starts informed (covers CLI restart where in-memory session is lost).
|
|
72
|
-
// On resume: just send the new message — the session already has context.
|
|
73
|
-
let fullPrompt;
|
|
74
|
-
if (!existingSessionId) {
|
|
75
|
-
const context = await buildChatContext(issueId, channelId, verbose);
|
|
76
|
-
const contextStr = formatContextForAI(context);
|
|
77
|
-
// Load recent chat history so the AI has conversational continuity
|
|
78
|
-
const recentMessages = await listChatMessages(channelId, { limit: 30 }, verbose);
|
|
79
|
-
// Exclude the messages we're about to process (they'll be in userPrompt)
|
|
80
|
-
const currentIds = new Set(messages.map((m) => m.id));
|
|
81
|
-
const historyMessages = recentMessages.filter((m) => !currentIds.has(m.id));
|
|
82
|
-
let historySection = '';
|
|
83
|
-
if (historyMessages.length > 0) {
|
|
84
|
-
const historyLines = historyMessages.map((m) => {
|
|
85
|
-
const nonAiRole = m.sender_type === 'system' ? 'System' : m.sender_name || 'User';
|
|
86
|
-
const role = m.sender_type === 'ai' ? 'AI' : nonAiRole;
|
|
87
|
-
return `[${role}]: ${m.content}`;
|
|
88
|
-
});
|
|
89
|
-
historySection = [
|
|
90
|
-
`## Previous Chat History`,
|
|
91
|
-
`The following is the recent conversation history in this channel. Continue the conversation naturally.`,
|
|
92
|
-
'',
|
|
93
|
-
...historyLines,
|
|
94
|
-
'',
|
|
95
|
-
].join('\n');
|
|
96
|
-
}
|
|
97
|
-
fullPrompt = [
|
|
98
|
-
`## Current Issue Context`,
|
|
99
|
-
contextStr,
|
|
100
|
-
'',
|
|
101
|
-
`## Channel ID: ${channelId}`,
|
|
102
|
-
`## Issue ID: ${issueId}`,
|
|
103
|
-
`## Product ID: ${context.productId}`,
|
|
104
|
-
'',
|
|
105
|
-
historySection,
|
|
106
|
-
`## Human Message`,
|
|
107
|
-
userPrompt,
|
|
108
|
-
'',
|
|
109
|
-
`Respond to this message. Use tools if you need to take actions. Always respond in the chat using the send_chat_message tool.`,
|
|
110
|
-
].join('\n');
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
fullPrompt = userPrompt;
|
|
114
|
-
}
|
|
115
|
-
// Run the agent (with resume if we have a session)
|
|
116
|
-
const result = await runChatAgent({
|
|
117
|
-
systemPrompt: CHAT_RESPONSE_PROMPT,
|
|
118
|
-
userPrompt: fullPrompt,
|
|
119
|
-
config,
|
|
120
|
-
resumeSessionId: existingSessionId,
|
|
121
|
-
verbose,
|
|
122
|
-
cwd: repoPath,
|
|
123
|
-
});
|
|
124
|
-
// Store the session ID for future resumption
|
|
125
|
-
if (result.sessionId) {
|
|
126
|
-
channelSessions.set(channelId, result.sessionId);
|
|
127
|
-
}
|
|
128
|
-
// If the agent didn't send a message via tools, send the response text
|
|
129
|
-
const sentViaTool = result.toolsUsed.has('mcp__edsger-chat__send_chat_message');
|
|
130
|
-
if (result.text && !sentViaTool) {
|
|
131
|
-
await sendAiMessage(channelId, result.text, {
|
|
132
|
-
in_response_to: messages[messages.length - 1].id,
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
// Mark all messages as processed
|
|
136
|
-
for (const message of messages) {
|
|
137
|
-
await markMessageProcessed(message.id, verbose);
|
|
138
|
-
}
|
|
139
|
-
if (verbose) {
|
|
140
|
-
logInfo(`All ${messages.length} message(s) processed successfully`);
|
|
141
|
-
}
|
|
142
|
-
return result.sessionId;
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
146
|
-
logError(`Failed to process messages: ${msg}`);
|
|
147
|
-
// If resume fails (e.g., corrupted session), clear and retry without resume
|
|
148
|
-
if (existingSessionId) {
|
|
149
|
-
logInfo(`Clearing session ${existingSessionId} and retrying without resume`);
|
|
150
|
-
channelSessions.delete(channelId);
|
|
151
|
-
return processHumanMessages(messages, issueId, config, verbose, repoPath);
|
|
152
|
-
}
|
|
153
|
-
// Send error message to chat
|
|
154
|
-
try {
|
|
155
|
-
await sendAiMessage(channelId, `Sorry, I encountered an error processing your message: ${msg}`, {
|
|
156
|
-
error: true,
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
catch {
|
|
160
|
-
// Ignore error sending error message
|
|
161
|
-
}
|
|
162
|
-
// Mark all as processed to avoid infinite retry loops
|
|
163
|
-
for (const message of messages) {
|
|
164
|
-
await markMessageProcessed(message.id, verbose);
|
|
165
|
-
}
|
|
166
|
-
return undefined;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Process one or more human messages from a product channel.
|
|
171
|
-
* Same session resumption pattern as issue chat, but uses
|
|
172
|
-
* product context, product prompt, and product tools.
|
|
173
|
-
*/
|
|
174
|
-
export async function processProductHumanMessages(messages, productId, config, verbose) {
|
|
175
|
-
if (messages.length === 0) {
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
178
|
-
const channelId = messages[0].channel_id;
|
|
179
|
-
const existingSessionId = channelSessions.get(channelId);
|
|
180
|
-
if (verbose) {
|
|
181
|
-
logInfo(`Processing ${messages.length} product message(s) for channel ${channelId}${existingSessionId
|
|
182
|
-
? ` (resuming session ${existingSessionId})`
|
|
183
|
-
: ' (new session)'}`);
|
|
184
|
-
}
|
|
185
|
-
try {
|
|
186
|
-
// Build the user prompt
|
|
187
|
-
const messageParts = messages.map((m, i) => {
|
|
188
|
-
if (messages.length === 1) {
|
|
189
|
-
return m.content;
|
|
190
|
-
}
|
|
191
|
-
return `[Message ${i + 1} from ${m.sender_name}]: ${m.content}`;
|
|
192
|
-
});
|
|
193
|
-
const userPrompt = messageParts.join('\n\n');
|
|
194
|
-
let fullPrompt;
|
|
195
|
-
if (!existingSessionId) {
|
|
196
|
-
const context = await buildProductChatContext(productId, channelId, verbose);
|
|
197
|
-
const contextStr = formatProductContextForAI(context);
|
|
198
|
-
// Load recent chat history
|
|
199
|
-
const recentMessages = await listChatMessages(channelId, { limit: 30 }, verbose);
|
|
200
|
-
const currentIds = new Set(messages.map((m) => m.id));
|
|
201
|
-
const historyMessages = recentMessages.filter((m) => !currentIds.has(m.id));
|
|
202
|
-
let historySection = '';
|
|
203
|
-
if (historyMessages.length > 0) {
|
|
204
|
-
const historyLines = historyMessages.map((m) => {
|
|
205
|
-
const nonAiRole = m.sender_type === 'system' ? 'System' : m.sender_name || 'User';
|
|
206
|
-
const role = m.sender_type === 'ai' ? 'AI' : nonAiRole;
|
|
207
|
-
return `[${role}]: ${m.content}`;
|
|
208
|
-
});
|
|
209
|
-
historySection = [
|
|
210
|
-
`## Previous Chat History`,
|
|
211
|
-
`The following is the recent conversation history in this channel. Continue the conversation naturally.`,
|
|
212
|
-
'',
|
|
213
|
-
...historyLines,
|
|
214
|
-
'',
|
|
215
|
-
].join('\n');
|
|
216
|
-
}
|
|
217
|
-
fullPrompt = [
|
|
218
|
-
`## Current Product Context`,
|
|
219
|
-
contextStr,
|
|
220
|
-
'',
|
|
221
|
-
`## Channel ID: ${channelId}`,
|
|
222
|
-
`## Product ID: ${productId}`,
|
|
223
|
-
'',
|
|
224
|
-
historySection,
|
|
225
|
-
`## Human Message`,
|
|
226
|
-
userPrompt,
|
|
227
|
-
'',
|
|
228
|
-
`Respond to this message. Use tools if you need to take actions. Always respond in the chat using the send_chat_message tool.`,
|
|
229
|
-
].join('\n');
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
fullPrompt = userPrompt;
|
|
233
|
-
}
|
|
234
|
-
// Run the agent with product tools (no cwd — product chat doesn't operate on a repo)
|
|
235
|
-
const result = await runProductChatAgent(PRODUCT_CHAT_RESPONSE_PROMPT, fullPrompt, config, existingSessionId, verbose);
|
|
236
|
-
if (result.sessionId) {
|
|
237
|
-
channelSessions.set(channelId, result.sessionId);
|
|
238
|
-
}
|
|
239
|
-
const sentViaTool = result.toolsUsed.has('mcp__edsger-product-chat__send_chat_message');
|
|
240
|
-
if (result.text && !sentViaTool) {
|
|
241
|
-
await sendAiMessage(channelId, result.text, {
|
|
242
|
-
in_response_to: messages[messages.length - 1].id,
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
for (const message of messages) {
|
|
246
|
-
await markMessageProcessed(message.id, verbose);
|
|
247
|
-
}
|
|
248
|
-
if (verbose) {
|
|
249
|
-
logInfo(`All ${messages.length} product message(s) processed successfully`);
|
|
250
|
-
}
|
|
251
|
-
return result.sessionId;
|
|
252
|
-
}
|
|
253
|
-
catch (error) {
|
|
254
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
255
|
-
logError(`Failed to process product messages: ${msg}`);
|
|
256
|
-
if (existingSessionId) {
|
|
257
|
-
logInfo(`Clearing session ${existingSessionId} and retrying without resume`);
|
|
258
|
-
channelSessions.delete(channelId);
|
|
259
|
-
return processProductHumanMessages(messages, productId, config, verbose);
|
|
260
|
-
}
|
|
261
|
-
try {
|
|
262
|
-
await sendAiMessage(channelId, `Sorry, I encountered an error processing your message: ${msg}`, {
|
|
263
|
-
error: true,
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
catch {
|
|
267
|
-
// Ignore error sending error message
|
|
268
|
-
}
|
|
269
|
-
for (const message of messages) {
|
|
270
|
-
await markMessageProcessed(message.id, verbose);
|
|
271
|
-
}
|
|
272
|
-
return undefined;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
export async function processPhaseCompletion(opts) {
|
|
276
|
-
const { issueId, phase, summary, phaseOutput, config, verbose, repoPath } = opts;
|
|
277
|
-
if (verbose) {
|
|
278
|
-
logInfo(`Processing phase completion: ${phase} for issue ${issueId}`);
|
|
279
|
-
}
|
|
280
|
-
try {
|
|
281
|
-
// Get or create the issue's channel
|
|
282
|
-
const channel = await getIssueChannel(issueId, verbose);
|
|
283
|
-
const channelId = channel.id;
|
|
284
|
-
const existingSessionId = channelSessions.get(channelId);
|
|
285
|
-
// Step 1: Write system message (factual, immediate)
|
|
286
|
-
await sendSystemMessage(channelId, `Phase "${phase}" completed.`, { phase, status: 'completed', summary }, verbose);
|
|
287
|
-
// Step 2: Build the advisor prompt
|
|
288
|
-
const context = await buildChatContext(issueId, channelId, verbose);
|
|
289
|
-
const recentMessages = await listChatMessages(channelId, { limit: 10 }, verbose);
|
|
290
|
-
const remainingPhases = context.workflow
|
|
291
|
-
.filter((p) => p.status === 'pending')
|
|
292
|
-
.map((p) => p.phase);
|
|
293
|
-
const advisorMessage = buildNextStepAdvisorMessage({
|
|
294
|
-
issueDescription: context.issueDescription,
|
|
295
|
-
completedPhase: phase,
|
|
296
|
-
summary,
|
|
297
|
-
phaseOutput,
|
|
298
|
-
remainingPhases,
|
|
299
|
-
userStoriesCount: context.userStories.length,
|
|
300
|
-
testCasesCount: context.testCases.length,
|
|
301
|
-
recentChatMessages: recentMessages.map((m) => ({
|
|
302
|
-
sender_type: m.sender_type,
|
|
303
|
-
content: m.content,
|
|
304
|
-
})),
|
|
305
|
-
});
|
|
306
|
-
// If this is the first interaction on this channel, include full context
|
|
307
|
-
let fullPrompt;
|
|
308
|
-
if (!existingSessionId) {
|
|
309
|
-
const contextStr = formatContextForAI(context);
|
|
310
|
-
fullPrompt = [
|
|
311
|
-
`## Current Issue Context`,
|
|
312
|
-
contextStr,
|
|
313
|
-
'',
|
|
314
|
-
`## Channel ID: ${channelId}`,
|
|
315
|
-
`## Issue ID: ${issueId}`,
|
|
316
|
-
`## Product ID: ${context.productId}`,
|
|
317
|
-
'',
|
|
318
|
-
advisorMessage,
|
|
319
|
-
'',
|
|
320
|
-
`Analyze the completed phase and suggest next steps. Use the provide_options tool to present actionable choices to the user.`,
|
|
321
|
-
].join('\n');
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
fullPrompt = [
|
|
325
|
-
advisorMessage,
|
|
326
|
-
'',
|
|
327
|
-
`Analyze the completed phase and suggest next steps. Use the provide_options tool to present actionable choices to the user.`,
|
|
328
|
-
].join('\n');
|
|
329
|
-
}
|
|
330
|
-
// Use NEXT_STEP_ADVISOR_PROMPT for the system prompt on new sessions,
|
|
331
|
-
// but on resume the system prompt from the original session persists.
|
|
332
|
-
// We still pass the advisor prompt — the SDK will use it for new sessions
|
|
333
|
-
// and ignore it for resumed ones (system prompt is fixed at session creation).
|
|
334
|
-
const result = await runChatAgent({
|
|
335
|
-
systemPrompt: existingSessionId
|
|
336
|
-
? CHAT_RESPONSE_PROMPT
|
|
337
|
-
: NEXT_STEP_ADVISOR_PROMPT,
|
|
338
|
-
userPrompt: fullPrompt,
|
|
339
|
-
config,
|
|
340
|
-
resumeSessionId: existingSessionId,
|
|
341
|
-
verbose,
|
|
342
|
-
cwd: repoPath,
|
|
343
|
-
});
|
|
344
|
-
// Store session ID
|
|
345
|
-
if (result.sessionId) {
|
|
346
|
-
channelSessions.set(channelId, result.sessionId);
|
|
347
|
-
}
|
|
348
|
-
// If the agent didn't send a message via tools, send the raw response
|
|
349
|
-
const sentMessage = result.toolsUsed.has('mcp__edsger-chat__send_chat_message');
|
|
350
|
-
const sentOptions = result.toolsUsed.has('mcp__edsger-chat__provide_options');
|
|
351
|
-
if (result.text && !sentMessage && !sentOptions) {
|
|
352
|
-
await sendAiMessage(channelId, result.text, {
|
|
353
|
-
phase_completion_suggestion: true,
|
|
354
|
-
phase,
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
if (verbose) {
|
|
358
|
-
logInfo(`Phase completion processed for ${phase}`);
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
catch (error) {
|
|
362
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
363
|
-
logError(`Failed to process phase completion for ${phase}: ${msg}`);
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
function userMessage(content) {
|
|
367
|
-
return {
|
|
368
|
-
type: 'user',
|
|
369
|
-
message: { role: 'user', content },
|
|
370
|
-
};
|
|
371
|
-
}
|
|
372
|
-
// eslint-disable-next-line @typescript-eslint/require-await -- async generator required by SDK interface
|
|
373
|
-
async function* prompt(userContent) {
|
|
374
|
-
yield userMessage(userContent);
|
|
375
|
-
}
|
|
376
|
-
async function runChatAgent(opts) {
|
|
377
|
-
const { systemPrompt, userPrompt, config: _config, resumeSessionId, verbose, cwd, } = opts;
|
|
378
|
-
let lastAssistantResponse = '';
|
|
379
|
-
const toolUsed = new Set();
|
|
380
|
-
let sessionId;
|
|
381
|
-
// Create the in-process MCP server with our chat tools
|
|
382
|
-
const chatMcpServer = createChatMcpServer();
|
|
383
|
-
for await (const message of query({
|
|
384
|
-
prompt: prompt(userPrompt),
|
|
385
|
-
options: {
|
|
386
|
-
systemPrompt: {
|
|
387
|
-
type: 'preset',
|
|
388
|
-
preset: 'claude_code',
|
|
389
|
-
append: systemPrompt,
|
|
390
|
-
},
|
|
391
|
-
model: DEFAULT_MODEL,
|
|
392
|
-
maxTurns: 20,
|
|
393
|
-
permissionMode: 'bypassPermissions',
|
|
394
|
-
mcpServers: {
|
|
395
|
-
'edsger-chat': chatMcpServer,
|
|
396
|
-
},
|
|
397
|
-
...(cwd ? { cwd } : {}),
|
|
398
|
-
...(resumeSessionId ? { resume: resumeSessionId } : {}),
|
|
399
|
-
},
|
|
400
|
-
})) {
|
|
401
|
-
// Capture session ID from any message
|
|
402
|
-
if (message.session_id && !sessionId) {
|
|
403
|
-
sessionId = message.session_id;
|
|
404
|
-
}
|
|
405
|
-
if (message.type === 'assistant' && message.message?.content) {
|
|
406
|
-
for (const content of message.message.content) {
|
|
407
|
-
if (content.type === 'text') {
|
|
408
|
-
lastAssistantResponse += `${content.text}\n`;
|
|
409
|
-
logDebug(`🤖 ${content.text}`, verbose);
|
|
410
|
-
}
|
|
411
|
-
else if (content.type === 'tool_use') {
|
|
412
|
-
toolUsed.add(content.name);
|
|
413
|
-
logDebug(`🔧 Tool: ${content.name}`, verbose);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
if (message.type === 'result') {
|
|
418
|
-
if (verbose) {
|
|
419
|
-
logInfo(`Chat agent completed: ${message.subtype}`);
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
return {
|
|
424
|
-
text: lastAssistantResponse.trim(),
|
|
425
|
-
sessionId,
|
|
426
|
-
toolsUsed: toolUsed,
|
|
427
|
-
};
|
|
428
|
-
}
|
|
429
|
-
/**
|
|
430
|
-
* Run the Claude Agent SDK with product chat MCP tools.
|
|
431
|
-
* Same as runChatAgent but uses product-level tools instead of issue-level tools.
|
|
432
|
-
* No cwd parameter since product chat doesn't operate on a specific repo.
|
|
433
|
-
*/
|
|
434
|
-
async function runProductChatAgent(systemPrompt, userPrompt, config, resumeSessionId, verbose) {
|
|
435
|
-
let lastAssistantResponse = '';
|
|
436
|
-
const toolUsed = new Set();
|
|
437
|
-
let sessionId;
|
|
438
|
-
const productChatMcpServer = createProductChatMcpServer();
|
|
439
|
-
for await (const message of query({
|
|
440
|
-
prompt: prompt(userPrompt),
|
|
441
|
-
options: {
|
|
442
|
-
systemPrompt: {
|
|
443
|
-
type: 'preset',
|
|
444
|
-
preset: 'claude_code',
|
|
445
|
-
append: systemPrompt,
|
|
446
|
-
},
|
|
447
|
-
model: DEFAULT_MODEL,
|
|
448
|
-
maxTurns: 20,
|
|
449
|
-
permissionMode: 'bypassPermissions',
|
|
450
|
-
mcpServers: {
|
|
451
|
-
'edsger-product-chat': productChatMcpServer,
|
|
452
|
-
},
|
|
453
|
-
...(resumeSessionId ? { resume: resumeSessionId } : {}),
|
|
454
|
-
},
|
|
455
|
-
})) {
|
|
456
|
-
if (message.session_id && !sessionId) {
|
|
457
|
-
sessionId = message.session_id;
|
|
458
|
-
}
|
|
459
|
-
if (message.type === 'assistant' && message.message?.content) {
|
|
460
|
-
for (const content of message.message.content) {
|
|
461
|
-
if (content.type === 'text') {
|
|
462
|
-
lastAssistantResponse += `${content.text}\n`;
|
|
463
|
-
logDebug(`🤖 ${content.text}`, verbose);
|
|
464
|
-
}
|
|
465
|
-
else if (content.type === 'tool_use') {
|
|
466
|
-
toolUsed.add(content.name);
|
|
467
|
-
logDebug(`🔧 Tool: ${content.name}`, verbose);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
if (message.type === 'result') {
|
|
472
|
-
if (verbose) {
|
|
473
|
-
logInfo(`Product chat agent completed: ${message.subtype}`);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
return {
|
|
478
|
-
text: lastAssistantResponse.trim(),
|
|
479
|
-
sessionId,
|
|
480
|
-
toolsUsed: toolUsed,
|
|
481
|
-
};
|
|
482
|
-
}
|