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,465 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat Worker — Child process entry point for processing chat messages.
|
|
3
|
-
*
|
|
4
|
-
* Spawned by AgentWorkflowProcessor as a parallel subprocess alongside issue workers.
|
|
5
|
-
* Runs continuously, polling for unprocessed human messages across all active issue channels.
|
|
6
|
-
*
|
|
7
|
-
* Communication with parent via IPC:
|
|
8
|
-
* - Parent sends: { type: 'init', config }
|
|
9
|
-
* - Parent sends: { type: 'event:phase_completed', issueId, phase, summary, phaseOutput }
|
|
10
|
-
* - Parent sends: { type: 'event:phase_failed', issueId, phase, error }
|
|
11
|
-
* - Parent sends: { type: 'event:issue_done', issueId }
|
|
12
|
-
* - Worker sends: { type: 'log', level, message }
|
|
13
|
-
* - Worker sends: { type: 'command:pause_issue', issueId }
|
|
14
|
-
* - Worker sends: { type: 'command:resume_issue', issueId }
|
|
15
|
-
*/
|
|
16
|
-
import { randomUUID } from 'node:crypto';
|
|
17
|
-
import { claimPendingMessages, getIssueChannel, listChannels, sendSystemMessage, } from '../../api/chat.js';
|
|
18
|
-
import { processHumanMessages, processPhaseCompletion, processProductHumanMessages, } from '../../phases/chat-processor/index.js';
|
|
19
|
-
import { getSupabase, hasSupabaseSession } from '../../supabase/client.js';
|
|
20
|
-
function sendMessage(msg) {
|
|
21
|
-
if (process.send) {
|
|
22
|
-
process.send(msg);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function log(level, message) {
|
|
26
|
-
sendMessage({ type: 'log', level, message });
|
|
27
|
-
}
|
|
28
|
-
// ============================================================
|
|
29
|
-
// State
|
|
30
|
-
// ============================================================
|
|
31
|
-
let config = null;
|
|
32
|
-
let verbose = false;
|
|
33
|
-
let isRunning = false;
|
|
34
|
-
let pollTimer = null;
|
|
35
|
-
// Unique worker ID for this process instance — used for atomic message claiming
|
|
36
|
-
const WORKER_ID = `chat-worker-${process.pid}-${randomUUID().slice(0, 8)}`;
|
|
37
|
-
// Track active issue channels (issueId -> channelId)
|
|
38
|
-
const activeChannels = new Map();
|
|
39
|
-
// Track active product channels (productId -> channelId)
|
|
40
|
-
const activeProductChannels = new Map();
|
|
41
|
-
const channelMetaById = new Map();
|
|
42
|
-
// Track issue repo paths (issueId -> repoPath) for setting cwd on AI agent
|
|
43
|
-
const issueRepoPaths = new Map();
|
|
44
|
-
// Active Realtime channel — set when the Supabase session is available.
|
|
45
|
-
let realtimeChannel = null;
|
|
46
|
-
// Fallback poll interval (legacy path when no Supabase session — desktop-app
|
|
47
|
-
// not yet rolled out / standalone CLI). Realtime path needs no timer.
|
|
48
|
-
const POLL_INTERVAL = 5000;
|
|
49
|
-
// In the legacy poll path: refresh the channel list every N polls (~30s).
|
|
50
|
-
// The Realtime path discovers new channels via the chat_channels
|
|
51
|
-
// subscription, so this constant is unused there.
|
|
52
|
-
const CHANNEL_REFRESH_INTERVAL = 6;
|
|
53
|
-
let pollCount = 0;
|
|
54
|
-
// ============================================================
|
|
55
|
-
// Message Polling Loop
|
|
56
|
-
// ============================================================
|
|
57
|
-
async function pollForMessages() {
|
|
58
|
-
if (!config || !isRunning) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
// Periodically refresh the channel list to pick up newly created channels
|
|
62
|
-
pollCount++;
|
|
63
|
-
if (pollCount % CHANNEL_REFRESH_INTERVAL === 0) {
|
|
64
|
-
await refreshChannels();
|
|
65
|
-
}
|
|
66
|
-
// Poll issue channels
|
|
67
|
-
for (const [issueId, channelId] of activeChannels) {
|
|
68
|
-
try {
|
|
69
|
-
const claimed = await claimPendingMessages(channelId, WORKER_ID);
|
|
70
|
-
if (claimed.length > 0) {
|
|
71
|
-
log('info', `Claimed ${claimed.length} message(s) for issue ${issueId} (worker: ${WORKER_ID})`);
|
|
72
|
-
const repoPath = issueRepoPaths.get(issueId);
|
|
73
|
-
await processHumanMessages(claimed, issueId, config, verbose, repoPath);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
78
|
-
log('error', `Error polling issue channel ${channelId}: ${msg}`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// Poll product channels
|
|
82
|
-
for (const [productId, channelId] of activeProductChannels) {
|
|
83
|
-
try {
|
|
84
|
-
const claimed = await claimPendingMessages(channelId, WORKER_ID);
|
|
85
|
-
if (claimed.length > 0) {
|
|
86
|
-
log('info', `Claimed ${claimed.length} message(s) for product ${productId} (worker: ${WORKER_ID})`);
|
|
87
|
-
await processProductHumanMessages(claimed, productId, config, verbose);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
92
|
-
log('error', `Error polling product channel ${channelId}: ${msg}`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
function startPolling() {
|
|
97
|
-
if (pollTimer) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
isRunning = true;
|
|
101
|
-
log('info', 'Chat worker started polling (MCP fallback path)');
|
|
102
|
-
// Initial poll
|
|
103
|
-
pollForMessages().catch((error) => {
|
|
104
|
-
log('error', `Initial poll error: ${error instanceof Error ? error.message : String(error)}`);
|
|
105
|
-
});
|
|
106
|
-
// Set up interval
|
|
107
|
-
pollTimer = setInterval(() => {
|
|
108
|
-
pollForMessages().catch((error) => {
|
|
109
|
-
log('error', `Poll error: ${error instanceof Error ? error.message : String(error)}`);
|
|
110
|
-
});
|
|
111
|
-
}, POLL_INTERVAL);
|
|
112
|
-
}
|
|
113
|
-
function stopPolling() {
|
|
114
|
-
isRunning = false;
|
|
115
|
-
if (pollTimer) {
|
|
116
|
-
clearInterval(pollTimer);
|
|
117
|
-
pollTimer = null;
|
|
118
|
-
}
|
|
119
|
-
stopRealtime();
|
|
120
|
-
log('info', 'Chat worker stopped');
|
|
121
|
-
}
|
|
122
|
-
// ============================================================
|
|
123
|
-
// Event Handlers
|
|
124
|
-
// ============================================================
|
|
125
|
-
async function handleInit(msg) {
|
|
126
|
-
;
|
|
127
|
-
({ config } = msg);
|
|
128
|
-
verbose = msg.verbose ?? false;
|
|
129
|
-
log('info', `Chat worker initialized (id: ${WORKER_ID})`);
|
|
130
|
-
// Seed the channel cache before subscriptions/polling so dispatch knows
|
|
131
|
-
// which kind (issue vs product) a chat_messages event belongs to.
|
|
132
|
-
await refreshChannels();
|
|
133
|
-
// Drain any messages that landed while we were offline.
|
|
134
|
-
isRunning = true;
|
|
135
|
-
for (const channelId of channelMetaById.keys()) {
|
|
136
|
-
void claimAndProcess(channelId);
|
|
137
|
-
}
|
|
138
|
-
// Prefer Realtime over polling when the Supabase session is available —
|
|
139
|
-
// eliminates the 5s/N-channel polling load entirely.
|
|
140
|
-
if (startRealtime()) {
|
|
141
|
-
log('info', 'Chat worker running in Realtime mode');
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
log('info', 'No Supabase session — chat worker falling back to MCP polling mode');
|
|
145
|
-
startPolling();
|
|
146
|
-
}
|
|
147
|
-
async function handlePhaseCompleted(msg) {
|
|
148
|
-
if (!config) {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
const { issueId, phase, summary, phaseOutput } = msg;
|
|
152
|
-
log('info', `Phase completed: ${phase} for issue ${issueId}`);
|
|
153
|
-
try {
|
|
154
|
-
// Ensure we have the channel registered
|
|
155
|
-
await ensureIssueChannel(issueId);
|
|
156
|
-
// Process with AI for next-step suggestions
|
|
157
|
-
const repoPath = issueRepoPaths.get(issueId);
|
|
158
|
-
await processPhaseCompletion({
|
|
159
|
-
issueId,
|
|
160
|
-
phase,
|
|
161
|
-
summary,
|
|
162
|
-
phaseOutput,
|
|
163
|
-
config,
|
|
164
|
-
verbose,
|
|
165
|
-
repoPath,
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
catch (error) {
|
|
169
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
170
|
-
log('error', `Failed to process phase completion: ${errorMsg}`);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
async function handlePhaseFailed(msg) {
|
|
174
|
-
const { issueId, phase, error: errorStr } = msg;
|
|
175
|
-
log('warning', `Phase failed: ${phase} for issue ${issueId}`);
|
|
176
|
-
try {
|
|
177
|
-
await ensureIssueChannel(issueId);
|
|
178
|
-
const channelId = activeChannels.get(issueId);
|
|
179
|
-
if (channelId) {
|
|
180
|
-
await sendSystemMessage(channelId, `Phase "${phase}" failed: ${errorStr}`, { phase, status: 'failed', error: errorStr });
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
185
|
-
log('error', `Failed to send phase failure message: ${errorMsg}`);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
async function handleIssueDone(msg) {
|
|
189
|
-
const { issueId } = msg;
|
|
190
|
-
log('info', `Issue done: ${issueId}`);
|
|
191
|
-
try {
|
|
192
|
-
const channelId = activeChannels.get(issueId);
|
|
193
|
-
if (channelId) {
|
|
194
|
-
await sendSystemMessage(channelId, 'All workflow phases completed.', {
|
|
195
|
-
status: 'issue_done',
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
catch (_error) {
|
|
200
|
-
// Non-critical
|
|
201
|
-
}
|
|
202
|
-
// Keep the channel in activeChannels so we can still process messages
|
|
203
|
-
}
|
|
204
|
-
// ============================================================
|
|
205
|
-
// Channel Management
|
|
206
|
-
// ============================================================
|
|
207
|
-
/**
|
|
208
|
-
* Refresh the active channels list from the server.
|
|
209
|
-
* Called on init (and, in the legacy poll path, periodically) to discover
|
|
210
|
-
* newly created channels. In the Realtime path the chat_channels INSERT
|
|
211
|
-
* subscription keeps the map fresh; refreshChannels is still called once at
|
|
212
|
-
* startup to seed it.
|
|
213
|
-
*/
|
|
214
|
-
async function refreshChannels() {
|
|
215
|
-
try {
|
|
216
|
-
// Fetch issue and product channels in parallel
|
|
217
|
-
const [issueChannels, productChannels] = await Promise.all([
|
|
218
|
-
listChannels('issue'),
|
|
219
|
-
listChannels('product'),
|
|
220
|
-
]);
|
|
221
|
-
let added = 0;
|
|
222
|
-
for (const channel of issueChannels) {
|
|
223
|
-
if (channel.channel_ref_id) {
|
|
224
|
-
if (!activeChannels.has(channel.channel_ref_id)) {
|
|
225
|
-
activeChannels.set(channel.channel_ref_id, channel.id);
|
|
226
|
-
added++;
|
|
227
|
-
}
|
|
228
|
-
channelMetaById.set(channel.id, {
|
|
229
|
-
kind: 'issue',
|
|
230
|
-
refId: channel.channel_ref_id,
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
for (const channel of productChannels) {
|
|
235
|
-
if (channel.channel_ref_id) {
|
|
236
|
-
if (!activeProductChannels.has(channel.channel_ref_id)) {
|
|
237
|
-
activeProductChannels.set(channel.channel_ref_id, channel.id);
|
|
238
|
-
added++;
|
|
239
|
-
}
|
|
240
|
-
channelMetaById.set(channel.id, {
|
|
241
|
-
kind: 'product',
|
|
242
|
-
refId: channel.channel_ref_id,
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
if (added > 0) {
|
|
247
|
-
log('info', `Discovered ${added} new channel(s) (issues: ${activeChannels.size}, products: ${activeProductChannels.size})`);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
catch (error) {
|
|
251
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
252
|
-
log('error', `Failed to refresh channels: ${msg}`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
/** Register a newly-discovered channel (typically from a Realtime event). */
|
|
256
|
-
function registerChannel(channel) {
|
|
257
|
-
if (!channel.channel_ref_id) {
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
if (channel.channel_type === 'issue') {
|
|
261
|
-
if (!activeChannels.has(channel.channel_ref_id)) {
|
|
262
|
-
activeChannels.set(channel.channel_ref_id, channel.id);
|
|
263
|
-
log('info', `New issue channel discovered: ${channel.channel_ref_id} (${channel.id})`);
|
|
264
|
-
}
|
|
265
|
-
channelMetaById.set(channel.id, {
|
|
266
|
-
kind: 'issue',
|
|
267
|
-
refId: channel.channel_ref_id,
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
else if (channel.channel_type === 'product') {
|
|
271
|
-
if (!activeProductChannels.has(channel.channel_ref_id)) {
|
|
272
|
-
activeProductChannels.set(channel.channel_ref_id, channel.id);
|
|
273
|
-
log('info', `New product channel discovered: ${channel.channel_ref_id} (${channel.id})`);
|
|
274
|
-
}
|
|
275
|
-
channelMetaById.set(channel.id, {
|
|
276
|
-
kind: 'product',
|
|
277
|
-
refId: channel.channel_ref_id,
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Dispatch claim+process for a single channel. Called both from Realtime
|
|
283
|
-
* INSERT events on chat_messages and (in the legacy path) from the poll loop.
|
|
284
|
-
*/
|
|
285
|
-
async function claimAndProcess(channelId) {
|
|
286
|
-
if (!config) {
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
const meta = channelMetaById.get(channelId);
|
|
290
|
-
if (!meta) {
|
|
291
|
-
// Unknown channel — could be a fresh channel we haven't seeded yet.
|
|
292
|
-
// Skip rather than fetch synchronously; the chat_channels INSERT
|
|
293
|
-
// subscription will populate it momentarily and the next message event
|
|
294
|
-
// will pick it up.
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
try {
|
|
298
|
-
const claimed = await claimPendingMessages(channelId, WORKER_ID);
|
|
299
|
-
if (claimed.length === 0) {
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
if (meta.kind === 'issue') {
|
|
303
|
-
log('info', `Claimed ${claimed.length} message(s) for issue ${meta.refId} (worker: ${WORKER_ID})`);
|
|
304
|
-
const repoPath = issueRepoPaths.get(meta.refId);
|
|
305
|
-
await processHumanMessages(claimed, meta.refId, config, verbose, repoPath);
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
log('info', `Claimed ${claimed.length} message(s) for product ${meta.refId} (worker: ${WORKER_ID})`);
|
|
309
|
-
await processProductHumanMessages(claimed, meta.refId, config, verbose);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
catch (error) {
|
|
313
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
314
|
-
log('error', `Error processing channel ${channelId}: ${msg}`);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Bring up the Realtime subscription. Listens for:
|
|
319
|
-
* - chat_messages INSERT (sender_type=human) → claim+process on that channel
|
|
320
|
-
* - chat_channels INSERT → register newly-created channels
|
|
321
|
-
*
|
|
322
|
-
* Returns true if the subscription was successfully started.
|
|
323
|
-
*/
|
|
324
|
-
function startRealtime() {
|
|
325
|
-
if (realtimeChannel) {
|
|
326
|
-
return true;
|
|
327
|
-
}
|
|
328
|
-
if (!hasSupabaseSession()) {
|
|
329
|
-
return false;
|
|
330
|
-
}
|
|
331
|
-
try {
|
|
332
|
-
const supabase = getSupabase();
|
|
333
|
-
realtimeChannel = supabase
|
|
334
|
-
.channel('chat-worker', { config: { broadcast: { ack: false } } })
|
|
335
|
-
.on('postgres_changes', {
|
|
336
|
-
event: 'INSERT',
|
|
337
|
-
schema: 'public',
|
|
338
|
-
table: 'chat_messages',
|
|
339
|
-
filter: 'sender_type=eq.human',
|
|
340
|
-
}, (payload) => {
|
|
341
|
-
// RLS filters out events from channels the user isn't in, so any
|
|
342
|
-
// event reaching us belongs to a channel we have access to.
|
|
343
|
-
const row = payload.new;
|
|
344
|
-
if (!row.channel_id || row.is_processed) {
|
|
345
|
-
return;
|
|
346
|
-
}
|
|
347
|
-
void claimAndProcess(row.channel_id);
|
|
348
|
-
})
|
|
349
|
-
.on('postgres_changes', {
|
|
350
|
-
event: 'INSERT',
|
|
351
|
-
schema: 'public',
|
|
352
|
-
table: 'chat_channels',
|
|
353
|
-
}, (payload) => {
|
|
354
|
-
registerChannel(payload.new);
|
|
355
|
-
// A channel created with messages already in it (unlikely but
|
|
356
|
-
// possible if INSERTs race) deserves an immediate sweep.
|
|
357
|
-
const { id } = payload.new;
|
|
358
|
-
if (id) {
|
|
359
|
-
void claimAndProcess(id);
|
|
360
|
-
}
|
|
361
|
-
})
|
|
362
|
-
.subscribe((status) => {
|
|
363
|
-
if (status === 'SUBSCRIBED') {
|
|
364
|
-
log('info', 'Realtime subscription active (chat_messages, chat_channels)');
|
|
365
|
-
}
|
|
366
|
-
else if (status === 'CHANNEL_ERROR' ||
|
|
367
|
-
status === 'TIMED_OUT' ||
|
|
368
|
-
status === 'CLOSED') {
|
|
369
|
-
log('warning', `Realtime channel status: ${status}`);
|
|
370
|
-
// supabase-js auto-reconnects; no manual reschedule needed here.
|
|
371
|
-
}
|
|
372
|
-
});
|
|
373
|
-
return true;
|
|
374
|
-
}
|
|
375
|
-
catch (error) {
|
|
376
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
377
|
-
log('error', `Failed to start Realtime subscription: ${msg}`);
|
|
378
|
-
return false;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
function stopRealtime() {
|
|
382
|
-
if (!realtimeChannel) {
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
try {
|
|
386
|
-
void getSupabase().removeChannel(realtimeChannel);
|
|
387
|
-
}
|
|
388
|
-
catch {
|
|
389
|
-
// Best-effort; supabase may already be torn down.
|
|
390
|
-
}
|
|
391
|
-
realtimeChannel = null;
|
|
392
|
-
}
|
|
393
|
-
async function ensureIssueChannel(issueId) {
|
|
394
|
-
const cachedChannel = activeChannels.get(issueId);
|
|
395
|
-
if (cachedChannel) {
|
|
396
|
-
return cachedChannel;
|
|
397
|
-
}
|
|
398
|
-
try {
|
|
399
|
-
const channel = await getIssueChannel(issueId);
|
|
400
|
-
activeChannels.set(issueId, channel.id);
|
|
401
|
-
channelMetaById.set(channel.id, { kind: 'issue', refId: issueId });
|
|
402
|
-
log('info', `Registered channel ${channel.id} for issue ${issueId}`);
|
|
403
|
-
return channel.id;
|
|
404
|
-
}
|
|
405
|
-
catch (error) {
|
|
406
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
407
|
-
log('error', `Failed to get channel for issue ${issueId}: ${msg}`);
|
|
408
|
-
throw error;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
// ============================================================
|
|
412
|
-
// Main IPC Listener
|
|
413
|
-
// ============================================================
|
|
414
|
-
process.on('message', (msg) => {
|
|
415
|
-
switch (msg.type) {
|
|
416
|
-
case 'init':
|
|
417
|
-
handleInit(msg).catch((error) => {
|
|
418
|
-
log('error', `Init error: ${error instanceof Error ? error.message : String(error)}`);
|
|
419
|
-
});
|
|
420
|
-
break;
|
|
421
|
-
case 'event:phase_completed':
|
|
422
|
-
handlePhaseCompleted(msg).catch((error) => {
|
|
423
|
-
log('error', `Phase event error: ${error instanceof Error ? error.message : String(error)}`);
|
|
424
|
-
});
|
|
425
|
-
break;
|
|
426
|
-
case 'event:phase_failed':
|
|
427
|
-
handlePhaseFailed(msg).catch((error) => {
|
|
428
|
-
log('error', `Phase fail event error: ${error instanceof Error ? error.message : String(error)}`);
|
|
429
|
-
});
|
|
430
|
-
break;
|
|
431
|
-
case 'event:issue_done':
|
|
432
|
-
handleIssueDone(msg).catch((error) => {
|
|
433
|
-
log('error', `Issue done event error: ${error instanceof Error ? error.message : String(error)}`);
|
|
434
|
-
});
|
|
435
|
-
break;
|
|
436
|
-
// Register an issue channel for polling when a worker starts
|
|
437
|
-
case 'event:issue_started': {
|
|
438
|
-
const startMsg = msg;
|
|
439
|
-
if (startMsg.repoPath) {
|
|
440
|
-
issueRepoPaths.set(startMsg.issueId, startMsg.repoPath);
|
|
441
|
-
}
|
|
442
|
-
ensureIssueChannel(startMsg.issueId).catch((error) => {
|
|
443
|
-
log('error', `Channel registration error: ${error instanceof Error ? error.message : String(error)}`);
|
|
444
|
-
});
|
|
445
|
-
break;
|
|
446
|
-
}
|
|
447
|
-
default:
|
|
448
|
-
log('warning', `Unknown message type: ${msg.type}`);
|
|
449
|
-
}
|
|
450
|
-
});
|
|
451
|
-
// Handle graceful shutdown
|
|
452
|
-
process.on('SIGTERM', () => {
|
|
453
|
-
stopPolling();
|
|
454
|
-
process.exit(0);
|
|
455
|
-
});
|
|
456
|
-
process.on('SIGINT', () => {
|
|
457
|
-
stopPolling();
|
|
458
|
-
process.exit(0);
|
|
459
|
-
});
|
|
460
|
-
// Handle uncaught errors
|
|
461
|
-
process.on('uncaughtException', (error) => {
|
|
462
|
-
log('error', `Uncaught exception: ${error.message}`);
|
|
463
|
-
stopPolling();
|
|
464
|
-
process.exit(1);
|
|
465
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Workflow - New default workflow mode
|
|
3
|
-
*
|
|
4
|
-
* This is the new cross-product workflow that:
|
|
5
|
-
* 1. Uses stored auth from `edsger login` (no per-repo env config needed)
|
|
6
|
-
* 2. Fetches ready_for_ai issues across ALL products
|
|
7
|
-
* 3. Clones repos using GitHub App installation tokens
|
|
8
|
-
* 4. Manages workspace directories with issue ID naming
|
|
9
|
-
* 5. Runs continuously with auto-update, sleep prevention, and session management
|
|
10
|
-
* 6. Responds to web dashboard commands (pause/resume/stop)
|
|
11
|
-
*/
|
|
12
|
-
import { type CliOptions } from '../../types/index.js';
|
|
13
|
-
export declare function runAgentWorkflow(options: CliOptions): Promise<void>;
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Workflow - New default workflow mode
|
|
3
|
-
*
|
|
4
|
-
* This is the new cross-product workflow that:
|
|
5
|
-
* 1. Uses stored auth from `edsger login` (no per-repo env config needed)
|
|
6
|
-
* 2. Fetches ready_for_ai issues across ALL products
|
|
7
|
-
* 3. Clones repos using GitHub App installation tokens
|
|
8
|
-
* 4. Manages workspace directories with issue ID naming
|
|
9
|
-
* 5. Runs continuously with auto-update, sleep prevention, and session management
|
|
10
|
-
* 6. Responds to web dashboard commands (pause/resume/stop)
|
|
11
|
-
*/
|
|
12
|
-
import { isLoggedIn } from '../../auth/auth-store.js';
|
|
13
|
-
import { getVersion } from '../../constants.js';
|
|
14
|
-
import { deregisterSession, registerSession, startHeartbeat, stopHeartbeat, } from '../../system/session-manager.js';
|
|
15
|
-
import { startSleepMonitor, stopSleepMonitor, } from '../../system/sleep-notification.js';
|
|
16
|
-
import { startSleepPrevention, stopSleepPrevention, } from '../../system/sleep-prevention.js';
|
|
17
|
-
import { startAutoUpdateChecker, stopAutoUpdateChecker, } from '../../updater/auto-updater.js';
|
|
18
|
-
import { logError, logInfo, logRaw, logSuccess, logWarning, } from '../../utils/logger.js';
|
|
19
|
-
import { validateConfiguration } from '../../utils/validation.js';
|
|
20
|
-
import { ensureWorkspaceDir } from '../../workspace/workspace-manager.js';
|
|
21
|
-
import { AgentWorkflowProcessor, MAX_CONCURRENCY } from './processor.js';
|
|
22
|
-
export async function runAgentWorkflow(options) {
|
|
23
|
-
// Verify authentication
|
|
24
|
-
if (!isLoggedIn()) {
|
|
25
|
-
logError('Not authenticated. Please run `edsger login` first.');
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
const config = validateConfiguration(options);
|
|
29
|
-
const version = getVersion();
|
|
30
|
-
logRaw('');
|
|
31
|
-
logInfo(`Edsger Agent v${version}`);
|
|
32
|
-
logInfo('Cross-product workflow mode');
|
|
33
|
-
logRaw('');
|
|
34
|
-
// Set up workspace directory
|
|
35
|
-
const workspaceRoot = ensureWorkspaceDir();
|
|
36
|
-
logInfo(`Workspace: ${workspaceRoot}`);
|
|
37
|
-
// Register CLI session with server
|
|
38
|
-
const sessionId = await registerSession({ command: 'agent-workflow' });
|
|
39
|
-
logInfo(`Session: ${sessionId}`);
|
|
40
|
-
// Start auto-update checker
|
|
41
|
-
startAutoUpdateChecker();
|
|
42
|
-
// Start sleep prevention
|
|
43
|
-
startSleepPrevention();
|
|
44
|
-
startSleepMonitor();
|
|
45
|
-
// Start heartbeat
|
|
46
|
-
startHeartbeat();
|
|
47
|
-
logRaw('');
|
|
48
|
-
logSuccess('Agent started. Watching for issues...');
|
|
49
|
-
logRaw('');
|
|
50
|
-
// Create and start the processor
|
|
51
|
-
let maxConcurrent = 3;
|
|
52
|
-
if (options.concurrency && options.concurrency > 0) {
|
|
53
|
-
maxConcurrent = Math.min(options.concurrency, MAX_CONCURRENCY);
|
|
54
|
-
if (options.concurrency > MAX_CONCURRENCY) {
|
|
55
|
-
logWarning(`Concurrency capped at ${MAX_CONCURRENCY} (requested ${options.concurrency}). ` +
|
|
56
|
-
`Higher values risk API rate limits, memory exhaustion, and GitHub throttling.`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const processor = new AgentWorkflowProcessor({
|
|
60
|
-
workspaceRoot,
|
|
61
|
-
pollInterval: 30_000,
|
|
62
|
-
maxConcurrent,
|
|
63
|
-
maxRetries: 3,
|
|
64
|
-
verbose: options.verbose,
|
|
65
|
-
}, config);
|
|
66
|
-
try {
|
|
67
|
-
await processor.start();
|
|
68
|
-
// Handle graceful shutdown
|
|
69
|
-
const cleanup = async () => {
|
|
70
|
-
logInfo('\nShutting down...');
|
|
71
|
-
processor.stop();
|
|
72
|
-
// Show stats
|
|
73
|
-
const stats = processor.getStats();
|
|
74
|
-
logRaw('');
|
|
75
|
-
logInfo('Session Statistics:');
|
|
76
|
-
logInfo(` Total processed: ${stats.totalProcessed}`);
|
|
77
|
-
logInfo(` Completed: ${stats.completed}`);
|
|
78
|
-
logInfo(` Failed: ${stats.failed}`);
|
|
79
|
-
logInfo(` Processing: ${stats.processing}`);
|
|
80
|
-
// Cleanup
|
|
81
|
-
stopAutoUpdateChecker();
|
|
82
|
-
stopSleepPrevention();
|
|
83
|
-
stopSleepMonitor();
|
|
84
|
-
stopHeartbeat();
|
|
85
|
-
await deregisterSession();
|
|
86
|
-
logSuccess('Agent stopped gracefully');
|
|
87
|
-
process.exit(0);
|
|
88
|
-
};
|
|
89
|
-
process.on('SIGINT', () => {
|
|
90
|
-
void cleanup();
|
|
91
|
-
});
|
|
92
|
-
process.on('SIGTERM', () => {
|
|
93
|
-
void cleanup();
|
|
94
|
-
});
|
|
95
|
-
// Keep the process running
|
|
96
|
-
process.stdin.resume();
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
logError(`Agent workflow failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
100
|
-
stopAutoUpdateChecker();
|
|
101
|
-
stopSleepPrevention();
|
|
102
|
-
stopSleepMonitor();
|
|
103
|
-
stopHeartbeat();
|
|
104
|
-
await deregisterSession();
|
|
105
|
-
process.exit(1);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Issue Worker - Child process entry point for processing a single issue
|
|
3
|
-
*
|
|
4
|
-
* This file is spawned by the parent AgentWorkflowProcessor via child_process.fork().
|
|
5
|
-
* Each worker runs in its own process with its own cwd, which:
|
|
6
|
-
* 1. Allows concurrent issue processing (no shared process.chdir())
|
|
7
|
-
* 2. After auto-update, new workers load the latest code from disk
|
|
8
|
-
*
|
|
9
|
-
* Communication with parent via IPC messages:
|
|
10
|
-
* - Parent sends: { type: 'start', issueId, verbose, config }
|
|
11
|
-
* - Worker sends: { type: 'result', success: boolean, issueId }
|
|
12
|
-
* - Worker sends: { type: 'log', level, message } for logging
|
|
13
|
-
*/
|
|
14
|
-
export {};
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Issue Worker - Child process entry point for processing a single issue
|
|
3
|
-
*
|
|
4
|
-
* This file is spawned by the parent AgentWorkflowProcessor via child_process.fork().
|
|
5
|
-
* Each worker runs in its own process with its own cwd, which:
|
|
6
|
-
* 1. Allows concurrent issue processing (no shared process.chdir())
|
|
7
|
-
* 2. After auto-update, new workers load the latest code from disk
|
|
8
|
-
*
|
|
9
|
-
* Communication with parent via IPC messages:
|
|
10
|
-
* - Parent sends: { type: 'start', issueId, verbose, config }
|
|
11
|
-
* - Worker sends: { type: 'result', success: boolean, issueId }
|
|
12
|
-
* - Worker sends: { type: 'log', level, message } for logging
|
|
13
|
-
*/
|
|
14
|
-
import { evaluatePipelineResults } from '../workflow/core/pipeline-evaluator.js';
|
|
15
|
-
import { runIssueWorkflow } from '../workflow/issue-coordinator.js';
|
|
16
|
-
function sendMessage(msg) {
|
|
17
|
-
if (process.send) {
|
|
18
|
-
process.send(msg);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function log(level, message) {
|
|
22
|
-
sendMessage({ type: 'log', level, message });
|
|
23
|
-
}
|
|
24
|
-
async function handleStart(msg) {
|
|
25
|
-
const { issueId, verbose, config } = msg;
|
|
26
|
-
try {
|
|
27
|
-
log('info', `Worker started for issue: ${issueId}`);
|
|
28
|
-
const results = await runIssueWorkflow({ issueId, verbose }, config);
|
|
29
|
-
const allSuccessful = evaluatePipelineResults(results);
|
|
30
|
-
sendMessage({
|
|
31
|
-
type: 'result',
|
|
32
|
-
issueId,
|
|
33
|
-
success: allSuccessful,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
38
|
-
log('error', `Worker error for issue ${issueId}: ${errorMessage}`);
|
|
39
|
-
sendMessage({
|
|
40
|
-
type: 'result',
|
|
41
|
-
issueId,
|
|
42
|
-
success: false,
|
|
43
|
-
error: errorMessage,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
// Listen for messages from parent
|
|
48
|
-
process.on('message', (msg) => {
|
|
49
|
-
if (msg.type === 'start') {
|
|
50
|
-
void handleStart(msg).finally(() => {
|
|
51
|
-
// Exit worker process after completion
|
|
52
|
-
process.exit(0);
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
// Handle uncaught errors
|
|
57
|
-
process.on('uncaughtException', (error) => {
|
|
58
|
-
sendMessage({
|
|
59
|
-
type: 'result',
|
|
60
|
-
issueId: 'unknown',
|
|
61
|
-
success: false,
|
|
62
|
-
error: `Uncaught exception: ${error.message}`,
|
|
63
|
-
});
|
|
64
|
-
process.exit(1);
|
|
65
|
-
});
|