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,48 +0,0 @@
|
|
|
1
|
-
import { runRunSheet, } from '../../phases/run-sheet/index.js';
|
|
2
|
-
import { deregisterSession, registerSession, } from '../../system/session-manager.js';
|
|
3
|
-
import { logError, logInfo } from '../../utils/logger.js';
|
|
4
|
-
import { validateConfiguration } from '../../utils/validation.js';
|
|
5
|
-
export const runRunSheetCommand = async (options) => {
|
|
6
|
-
const { releaseId } = options;
|
|
7
|
-
if (!releaseId) {
|
|
8
|
-
throw new Error('Release ID is required for run-sheet');
|
|
9
|
-
}
|
|
10
|
-
validateConfiguration({ verbose: options.verbose });
|
|
11
|
-
await registerSession({ command: 'run-sheet' });
|
|
12
|
-
logInfo(`Starting run sheet generation for release: ${releaseId}`);
|
|
13
|
-
try {
|
|
14
|
-
const result = await runRunSheet({
|
|
15
|
-
releaseId,
|
|
16
|
-
force: options.force,
|
|
17
|
-
verbose: options.verbose,
|
|
18
|
-
});
|
|
19
|
-
if (result.status === 'error') {
|
|
20
|
-
logError(`Run sheet generation failed: ${result.summary}`);
|
|
21
|
-
process.exitCode = 1;
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (result.status === 'cached') {
|
|
25
|
-
logInfo(`Run sheet unchanged for ${result.releaseTag} — skipped clone.`);
|
|
26
|
-
}
|
|
27
|
-
else if (result.isDraft) {
|
|
28
|
-
logInfo(`Generated DRAFT run sheet for ${result.releaseTag} (tag not yet cut; used default branch).`);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
logInfo(`Generated run sheet for ${result.releaseTag}`);
|
|
32
|
-
}
|
|
33
|
-
if (result.cloneError) {
|
|
34
|
-
logInfo(`Clone warning: ${result.cloneError}`);
|
|
35
|
-
}
|
|
36
|
-
if (typeof result.agentTurns === 'number') {
|
|
37
|
-
logInfo(`Agent used ${result.agentTurns} turn(s)${result.model ? ` on model ${result.model}` : ''}.`);
|
|
38
|
-
}
|
|
39
|
-
logInfo('View it in the Release detail page of your product dashboard.');
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
logError(`Run sheet generation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
43
|
-
process.exitCode = 1;
|
|
44
|
-
}
|
|
45
|
-
finally {
|
|
46
|
-
await deregisterSession();
|
|
47
|
-
}
|
|
48
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI command: edsger screen-flow <productId> --diagram-id <id>
|
|
3
|
-
*
|
|
4
|
-
* Maps the product's user-facing screens and transitions into a structured
|
|
5
|
-
* flow stored in diagrams / diagram_nodes / diagram_edges (rows tagged type='screen').
|
|
6
|
-
*
|
|
7
|
-
* The desktop UI creates a pending diagrams row first, then invokes the CLI
|
|
8
|
-
* with --diagram-id; the CLI flips status running → success/failed and
|
|
9
|
-
* populates the nodes/edges tables.
|
|
10
|
-
*/
|
|
11
|
-
export interface ScreenFlowCliOptions {
|
|
12
|
-
diagramId: string;
|
|
13
|
-
/** Repo-only mode: generate against a single repositories row, no product. */
|
|
14
|
-
repoId?: string;
|
|
15
|
-
guidance?: string;
|
|
16
|
-
verbose?: boolean;
|
|
17
|
-
}
|
|
18
|
-
export declare function runScreenFlow(productId: string | undefined, options: ScreenFlowCliOptions): Promise<void>;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI command: edsger screen-flow <productId> --diagram-id <id>
|
|
3
|
-
*
|
|
4
|
-
* Maps the product's user-facing screens and transitions into a structured
|
|
5
|
-
* flow stored in diagrams / diagram_nodes / diagram_edges (rows tagged type='screen').
|
|
6
|
-
*
|
|
7
|
-
* The desktop UI creates a pending diagrams row first, then invokes the CLI
|
|
8
|
-
* with --diagram-id; the CLI flips status running → success/failed and
|
|
9
|
-
* populates the nodes/edges tables.
|
|
10
|
-
*/
|
|
11
|
-
import { runScreenFlowPhase } from '../../phases/screen-flow/index.js';
|
|
12
|
-
import { deregisterSession, registerSession, } from '../../system/session-manager.js';
|
|
13
|
-
import { logError, logInfo, logSuccess } from '../../utils/logger.js';
|
|
14
|
-
export async function runScreenFlow(productId, options) {
|
|
15
|
-
const { diagramId, repoId, guidance, verbose } = options;
|
|
16
|
-
if (!productId && !repoId) {
|
|
17
|
-
throw new Error('Either a product ID or --repo-id is required for screen-flow');
|
|
18
|
-
}
|
|
19
|
-
if (!diagramId) {
|
|
20
|
-
throw new Error('--diagram-id is required (the pending diagrams row id)');
|
|
21
|
-
}
|
|
22
|
-
await registerSession({
|
|
23
|
-
command: 'screen-flow',
|
|
24
|
-
...(productId ? { productId } : {}),
|
|
25
|
-
});
|
|
26
|
-
if (productId) {
|
|
27
|
-
logInfo(`Starting screen flow generation for product ${productId}`);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
logInfo(`Starting screen flow generation for repository ${repoId}`);
|
|
31
|
-
}
|
|
32
|
-
try {
|
|
33
|
-
const result = await runScreenFlowPhase({
|
|
34
|
-
productId,
|
|
35
|
-
repoId,
|
|
36
|
-
diagramId,
|
|
37
|
-
guidance,
|
|
38
|
-
verbose,
|
|
39
|
-
});
|
|
40
|
-
if (result.status === 'success') {
|
|
41
|
-
logSuccess(result.message);
|
|
42
|
-
if (result.summary) {
|
|
43
|
-
logInfo(`\nSummary: ${result.summary}`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
logError(result.message);
|
|
48
|
-
process.exit(1);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
52
|
-
await deregisterSession();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI command: edsger sequence-diagram <productId> --diagram-id <id>
|
|
3
|
-
*
|
|
4
|
-
* Traces one scenario through the product's code and maps the participants
|
|
5
|
-
* and the ordered messages between them into a structured flow stored in
|
|
6
|
-
* diagrams / diagram_nodes / diagram_edges (rows tagged type='sequence').
|
|
7
|
-
*
|
|
8
|
-
* The desktop UI creates a pending diagrams row first, then invokes the CLI
|
|
9
|
-
* with --diagram-id; the CLI flips status running → success/failed and
|
|
10
|
-
* populates the nodes/edges tables.
|
|
11
|
-
*/
|
|
12
|
-
export interface SequenceDiagramCliOptions {
|
|
13
|
-
diagramId: string;
|
|
14
|
-
/** Repo-only mode: generate against a single repositories row, no product. */
|
|
15
|
-
repoId?: string;
|
|
16
|
-
guidance?: string;
|
|
17
|
-
verbose?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export declare function runSequenceDiagram(productId: string | undefined, options: SequenceDiagramCliOptions): Promise<void>;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI command: edsger sequence-diagram <productId> --diagram-id <id>
|
|
3
|
-
*
|
|
4
|
-
* Traces one scenario through the product's code and maps the participants
|
|
5
|
-
* and the ordered messages between them into a structured flow stored in
|
|
6
|
-
* diagrams / diagram_nodes / diagram_edges (rows tagged type='sequence').
|
|
7
|
-
*
|
|
8
|
-
* The desktop UI creates a pending diagrams row first, then invokes the CLI
|
|
9
|
-
* with --diagram-id; the CLI flips status running → success/failed and
|
|
10
|
-
* populates the nodes/edges tables.
|
|
11
|
-
*/
|
|
12
|
-
import { runSequenceDiagramPhase } from '../../phases/sequence-diagram/index.js';
|
|
13
|
-
import { deregisterSession, registerSession, } from '../../system/session-manager.js';
|
|
14
|
-
import { logError, logInfo, logSuccess } from '../../utils/logger.js';
|
|
15
|
-
export async function runSequenceDiagram(productId, options) {
|
|
16
|
-
const { diagramId, repoId, guidance, verbose } = options;
|
|
17
|
-
if (!productId && !repoId) {
|
|
18
|
-
throw new Error('Either a product ID or --repo-id is required for sequence-diagram');
|
|
19
|
-
}
|
|
20
|
-
if (!diagramId) {
|
|
21
|
-
throw new Error('--diagram-id is required (the pending diagrams row id)');
|
|
22
|
-
}
|
|
23
|
-
await registerSession({
|
|
24
|
-
command: 'sequence-diagram',
|
|
25
|
-
...(productId ? { productId } : {}),
|
|
26
|
-
});
|
|
27
|
-
if (productId) {
|
|
28
|
-
logInfo(`Starting sequence diagram generation for product ${productId}`);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
logInfo(`Starting sequence diagram generation for repository ${repoId}`);
|
|
32
|
-
}
|
|
33
|
-
try {
|
|
34
|
-
const result = await runSequenceDiagramPhase({
|
|
35
|
-
productId,
|
|
36
|
-
repoId,
|
|
37
|
-
diagramId,
|
|
38
|
-
guidance,
|
|
39
|
-
verbose,
|
|
40
|
-
});
|
|
41
|
-
if (result.status === 'success') {
|
|
42
|
-
logSuccess(result.message);
|
|
43
|
-
if (result.summary) {
|
|
44
|
-
logInfo(`\nSummary: ${result.summary}`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
logError(result.message);
|
|
49
|
-
process.exit(1);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
finally {
|
|
53
|
-
await deregisterSession();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `edsger session-serve <channelId>` — long-lived conversational agent for one
|
|
3
|
-
* chat session.
|
|
4
|
-
*
|
|
5
|
-
* Where `session-turn` runs a single turn and exits, `session-serve` prepares
|
|
6
|
-
* the session context once (repo clone, MCP toolbelt, system prompt) and then
|
|
7
|
-
* stays alive, running one turn per command it reads from stdin. The SDK
|
|
8
|
-
* session id is kept in memory and carried into the next turn automatically, so
|
|
9
|
-
* the conversation (and prompt cache) stays warm without a per-turn cold start.
|
|
10
|
-
*
|
|
11
|
-
* Protocol — one JSON object per line on stdin:
|
|
12
|
-
* {"type":"turn"} process pending messages
|
|
13
|
-
* {"type":"run-finished","runId":"…","command":"…"} report a finished cli_* run
|
|
14
|
-
* {"type":"shutdown"} drain + exit cleanly
|
|
15
|
-
*
|
|
16
|
-
* Turns run strictly one at a time (a session never has two turns in flight).
|
|
17
|
-
* When stdin closes, the process exits after the current turn drains. Markers
|
|
18
|
-
* (session id, background cli runs) are written to stdout exactly as the
|
|
19
|
-
* one-shot command emits them, so the desktop's existing parsing is unchanged.
|
|
20
|
-
*/
|
|
21
|
-
import { type SessionTurnCliOptions } from '../session-turn/index.js';
|
|
22
|
-
/**
|
|
23
|
-
* Emitted once the session context is built and the process is ready to accept
|
|
24
|
-
* turn commands on stdin. The desktop may use it to know the daemon is live;
|
|
25
|
-
* it is harmless to ignore.
|
|
26
|
-
*/
|
|
27
|
-
export declare const SESSION_READY_MARKER = "__EDSGER_SESSION_READY__";
|
|
28
|
-
export type SessionServeCliOptions = Omit<SessionTurnCliOptions, 'runFinished'> & {
|
|
29
|
-
/** SDK session id to resume on the first turn (e.g. after a crash-restart). */
|
|
30
|
-
resumeSessionId?: string;
|
|
31
|
-
};
|
|
32
|
-
export declare function runSessionServeCommand(options: SessionServeCliOptions): Promise<void>;
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `edsger session-serve <channelId>` — long-lived conversational agent for one
|
|
3
|
-
* chat session.
|
|
4
|
-
*
|
|
5
|
-
* Where `session-turn` runs a single turn and exits, `session-serve` prepares
|
|
6
|
-
* the session context once (repo clone, MCP toolbelt, system prompt) and then
|
|
7
|
-
* stays alive, running one turn per command it reads from stdin. The SDK
|
|
8
|
-
* session id is kept in memory and carried into the next turn automatically, so
|
|
9
|
-
* the conversation (and prompt cache) stays warm without a per-turn cold start.
|
|
10
|
-
*
|
|
11
|
-
* Protocol — one JSON object per line on stdin:
|
|
12
|
-
* {"type":"turn"} process pending messages
|
|
13
|
-
* {"type":"run-finished","runId":"…","command":"…"} report a finished cli_* run
|
|
14
|
-
* {"type":"shutdown"} drain + exit cleanly
|
|
15
|
-
*
|
|
16
|
-
* Turns run strictly one at a time (a session never has two turns in flight).
|
|
17
|
-
* When stdin closes, the process exits after the current turn drains. Markers
|
|
18
|
-
* (session id, background cli runs) are written to stdout exactly as the
|
|
19
|
-
* one-shot command emits them, so the desktop's existing parsing is unchanged.
|
|
20
|
-
*/
|
|
21
|
-
import { createInterface } from 'node:readline';
|
|
22
|
-
import { logError, logInfo } from '../../utils/logger.js';
|
|
23
|
-
import { prepareSessionContext, runTurn, } from '../session-turn/index.js';
|
|
24
|
-
/**
|
|
25
|
-
* Emitted once the session context is built and the process is ready to accept
|
|
26
|
-
* turn commands on stdin. The desktop may use it to know the daemon is live;
|
|
27
|
-
* it is harmless to ignore.
|
|
28
|
-
*/
|
|
29
|
-
export const SESSION_READY_MARKER = '__EDSGER_SESSION_READY__';
|
|
30
|
-
export async function runSessionServeCommand(options) {
|
|
31
|
-
const ctx = await prepareSessionContext(options);
|
|
32
|
-
process.stdout.write(`\n${SESSION_READY_MARKER}\n`);
|
|
33
|
-
logInfo(`Session ${ctx.channelId} ready — awaiting turns on stdin.`);
|
|
34
|
-
// Commands queue up here; we drain them one at a time so a session never has
|
|
35
|
-
// two turns running concurrently. `shuttingDown` stops accepting new work.
|
|
36
|
-
const queue = [];
|
|
37
|
-
let running = false;
|
|
38
|
-
let shuttingDown = false;
|
|
39
|
-
let stdinEnded = false;
|
|
40
|
-
const maybeExit = () => {
|
|
41
|
-
if ((shuttingDown || stdinEnded) && !running && queue.length === 0) {
|
|
42
|
-
logInfo(`Session ${ctx.channelId} shutting down.`);
|
|
43
|
-
process.exit(0);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
const drain = async () => {
|
|
47
|
-
if (running) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
running = true;
|
|
51
|
-
try {
|
|
52
|
-
while (queue.length > 0) {
|
|
53
|
-
const cmd = queue.shift();
|
|
54
|
-
if (cmd.type === 'shutdown') {
|
|
55
|
-
shuttingDown = true;
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
try {
|
|
59
|
-
if (cmd.type === 'run-finished' && cmd.runId) {
|
|
60
|
-
await runTurn(ctx, {
|
|
61
|
-
runFinished: { runId: cmd.runId, command: cmd.command },
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
await runTurn(ctx);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
logError(`Turn failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
finally {
|
|
74
|
-
running = false;
|
|
75
|
-
maybeExit();
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
const rl = createInterface({ input: process.stdin });
|
|
79
|
-
rl.on('line', (line) => {
|
|
80
|
-
const trimmed = line.trim();
|
|
81
|
-
if (!trimmed || shuttingDown) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
let cmd;
|
|
85
|
-
try {
|
|
86
|
-
cmd = JSON.parse(trimmed);
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
logError(`Ignoring malformed command: ${trimmed}`);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
queue.push(cmd);
|
|
93
|
-
void drain();
|
|
94
|
-
});
|
|
95
|
-
// stdin closing is the desktop's normal "stop this session" signal.
|
|
96
|
-
rl.on('close', () => {
|
|
97
|
-
stdinEnded = true;
|
|
98
|
-
maybeExit();
|
|
99
|
-
});
|
|
100
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marker emitted on stdout carrying the SDK session id, so the desktop can
|
|
3
|
-
* persist it on the channel and pass it back via --resume next turn. Kept on
|
|
4
|
-
* its own line and free of logger formatting so it parses cleanly.
|
|
5
|
-
*/
|
|
6
|
-
export declare const SESSION_ID_MARKER = "__EDSGER_SESSION_ID__=";
|
|
7
|
-
/**
|
|
8
|
-
* Marker emitted on stdout for each background `cli_*` run still in flight when
|
|
9
|
-
* the turn ends. The desktop main process parses these, watches each run to
|
|
10
|
-
* completion (the turn process itself exits immediately), and then re-engages
|
|
11
|
-
* the agent via `--run-finished` so it reports results without the user having
|
|
12
|
-
* to ask. The JSON payload is `{ run_id, pid, log_path, command }`.
|
|
13
|
-
*/
|
|
14
|
-
export declare const CLI_RUN_MARKER = "__EDSGER_CLI_RUN__=";
|
|
15
|
-
import { loadExternalMcpServers } from 'edsger-tools';
|
|
16
|
-
export interface SessionTurnCliOptions {
|
|
17
|
-
channelId: string;
|
|
18
|
-
productId: string;
|
|
19
|
-
repositoryIds?: string[];
|
|
20
|
-
/** SDK session id from a previous turn, to resume the same conversation. */
|
|
21
|
-
resumeSessionId?: string;
|
|
22
|
-
/**
|
|
23
|
-
* Follow-up turn triggered by the desktop watcher when a background `cli_*`
|
|
24
|
-
* run finishes. When set, the turn is driven by a synthetic prompt instead of
|
|
25
|
-
* the channel's pending human messages: the agent inspects what the run
|
|
26
|
-
* produced and reports it to the user.
|
|
27
|
-
*/
|
|
28
|
-
runFinished?: {
|
|
29
|
-
runId: string;
|
|
30
|
-
command?: string;
|
|
31
|
-
};
|
|
32
|
-
verbose?: boolean;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Everything a session needs to run turns, built once and reused. The daemon
|
|
36
|
-
* keeps a single instance alive across turns so repo clones, the MCP toolbelt,
|
|
37
|
-
* the system prompt, and the SDK session id all persist.
|
|
38
|
-
*/
|
|
39
|
-
export interface SessionContext {
|
|
40
|
-
channelId: string;
|
|
41
|
-
productId: string;
|
|
42
|
-
repositoryIds: string[];
|
|
43
|
-
verbose: boolean;
|
|
44
|
-
sessionDir?: string;
|
|
45
|
-
systemPrompt: string;
|
|
46
|
-
sessionServer: any;
|
|
47
|
-
external: ReturnType<typeof loadExternalMcpServers>;
|
|
48
|
-
/** Latest SDK session id; carried into the next turn's `resume`. Mutable. */
|
|
49
|
-
sdkSessionId: string;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Build the one-time session context: clone repos, assemble the MCP toolbelt
|
|
53
|
-
* and external servers, and build the system prompt. Cheap to call once per
|
|
54
|
-
* session process; expensive to call per turn (which is why the daemon doesn't).
|
|
55
|
-
*/
|
|
56
|
-
export declare function prepareSessionContext(options: SessionTurnCliOptions): Promise<SessionContext>;
|
|
57
|
-
/**
|
|
58
|
-
* Run a single agent turn against an already-prepared {@link SessionContext}.
|
|
59
|
-
* Mutates `ctx.sdkSessionId` so the next turn resumes the same SDK conversation
|
|
60
|
-
* (and prompt cache). Safe to call repeatedly for the life of the process.
|
|
61
|
-
*/
|
|
62
|
-
export declare function runTurn(ctx: SessionContext, opts?: {
|
|
63
|
-
runFinished?: {
|
|
64
|
-
runId: string;
|
|
65
|
-
command?: string;
|
|
66
|
-
};
|
|
67
|
-
}): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* One-shot `session-turn`: prepare the context and run a single turn. Retained
|
|
70
|
-
* for callers that want the previous per-turn-process behaviour (and as the
|
|
71
|
-
* building block the daemon reuses).
|
|
72
|
-
*/
|
|
73
|
-
export declare function runSessionTurnCommand(options: SessionTurnCliOptions): Promise<void>;
|
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marker emitted on stdout carrying the SDK session id, so the desktop can
|
|
3
|
-
* persist it on the channel and pass it back via --resume next turn. Kept on
|
|
4
|
-
* its own line and free of logger formatting so it parses cleanly.
|
|
5
|
-
*/
|
|
6
|
-
export const SESSION_ID_MARKER = '__EDSGER_SESSION_ID__=';
|
|
7
|
-
/**
|
|
8
|
-
* Marker emitted on stdout for each background `cli_*` run still in flight when
|
|
9
|
-
* the turn ends. The desktop main process parses these, watches each run to
|
|
10
|
-
* completion (the turn process itself exits immediately), and then re-engages
|
|
11
|
-
* the agent via `--run-finished` so it reports results without the user having
|
|
12
|
-
* to ask. The JSON payload is `{ run_id, pid, log_path, command }`.
|
|
13
|
-
*/
|
|
14
|
-
export const CLI_RUN_MARKER = '__EDSGER_CLI_RUN__=';
|
|
15
|
-
/**
|
|
16
|
-
* `edsger session-turn <channelId>` — run one conversational agent turn for a
|
|
17
|
-
* chat session (an ai_assistant channel bound to a product).
|
|
18
|
-
*
|
|
19
|
-
* Spawned by the desktop app when the user sends a message in a session. It
|
|
20
|
-
* loads the channel's pending human messages, runs a single Claude Agent SDK
|
|
21
|
-
* turn with the full session toolbelt (createSessionMcpServer — query/action/
|
|
22
|
-
* engineering/cli + conversational + git/PR tools), then posts the reply back
|
|
23
|
-
* to the channel and marks the messages processed. The agent decides what to
|
|
24
|
-
* do (answer, generate stories/test cases, launch cli_* analyses, open PRs);
|
|
25
|
-
* there is no fixed pipeline.
|
|
26
|
-
*
|
|
27
|
-
* The per-turn work is split into {@link prepareSessionContext} (one-time
|
|
28
|
-
* workspace clone + toolbelt + prompt build) and {@link runTurn} (one agent
|
|
29
|
-
* turn against that context). The one-shot `session-turn` command does both
|
|
30
|
-
* once; the long-lived `session-serve` daemon prepares the context once and
|
|
31
|
-
* calls {@link runTurn} repeatedly, keeping the SDK session warm across turns.
|
|
32
|
-
*/
|
|
33
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
34
|
-
import { buildSessionAgentOptions, buildSessionSystemPrompt, buildSessionUserPrompt, createSessionMcpServer, listActiveCliRuns, loadExternalMcpServers, SESSION_MAX_TURNS, } from 'edsger-tools';
|
|
35
|
-
import { callMcpEndpoint } from '../../api/mcp-client.js';
|
|
36
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
37
|
-
import { getToolDeps } from '../../tools/bootstrap.js';
|
|
38
|
-
import { logError, logInfo, logSuccess, logWarning, } from '../../utils/logger.js';
|
|
39
|
-
import { cloneSessionRepos, describeSessionRepos, } from '../../workspace/session-workspace.js';
|
|
40
|
-
/**
|
|
41
|
-
* Clone (or refresh) the session product's repositories into a local session
|
|
42
|
-
* directory and produce the agent's cwd + a prompt note describing the layout.
|
|
43
|
-
*
|
|
44
|
-
* One session dir holds every repo as a subdirectory; clones are reused across
|
|
45
|
-
* turns. Best-effort: if nothing can be cloned (no GitHub config, private repo
|
|
46
|
-
* the token can't reach), the agent still runs — it can answer, file issues,
|
|
47
|
-
* etc. — just without a checked-out codebase.
|
|
48
|
-
*/
|
|
49
|
-
async function prepareSessionWorkspace(opts) {
|
|
50
|
-
let workspace = null;
|
|
51
|
-
try {
|
|
52
|
-
workspace = await cloneSessionRepos(opts);
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
logWarning(`Could not prepare session repos: ${error instanceof Error ? error.message : String(error)}`);
|
|
56
|
-
}
|
|
57
|
-
return {
|
|
58
|
-
sessionDir: workspace?.sessionDir,
|
|
59
|
-
repoScopeNote: workspace ? describeSessionRepos(workspace.repos) : '',
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Build the one-time session context: clone repos, assemble the MCP toolbelt
|
|
64
|
-
* and external servers, and build the system prompt. Cheap to call once per
|
|
65
|
-
* session process; expensive to call per turn (which is why the daemon doesn't).
|
|
66
|
-
*/
|
|
67
|
-
export async function prepareSessionContext(options) {
|
|
68
|
-
const { channelId, productId, repositoryIds = [], resumeSessionId, verbose = false, } = options;
|
|
69
|
-
// Clone the product's in-scope repositories into a local session directory
|
|
70
|
-
// so the agent's Read/Grep/Glob can inspect the real code.
|
|
71
|
-
const { sessionDir, repoScopeNote } = await prepareSessionWorkspace({
|
|
72
|
-
channelId,
|
|
73
|
-
productId,
|
|
74
|
-
repositoryIds,
|
|
75
|
-
verbose,
|
|
76
|
-
});
|
|
77
|
-
const deps = getToolDeps({
|
|
78
|
-
verbose,
|
|
79
|
-
context: { productId, channelId, repositoryIds },
|
|
80
|
-
});
|
|
81
|
-
const sessionServer = createSessionMcpServer(deps);
|
|
82
|
-
// User-configured external MCP servers (~/.edsger/mcp.json). Best-effort.
|
|
83
|
-
const external = loadExternalMcpServers({ warn: logWarning });
|
|
84
|
-
if (external.names.length > 0) {
|
|
85
|
-
logInfo(`External MCP servers: ${external.names.join(', ')}`);
|
|
86
|
-
}
|
|
87
|
-
const systemPrompt = buildSessionSystemPrompt({
|
|
88
|
-
channelId,
|
|
89
|
-
productId,
|
|
90
|
-
repositoryIds,
|
|
91
|
-
repoScopeNote,
|
|
92
|
-
externalMcpNames: external.names,
|
|
93
|
-
});
|
|
94
|
-
return {
|
|
95
|
-
channelId,
|
|
96
|
-
productId,
|
|
97
|
-
repositoryIds,
|
|
98
|
-
verbose,
|
|
99
|
-
sessionDir,
|
|
100
|
-
systemPrompt,
|
|
101
|
-
sessionServer,
|
|
102
|
-
external,
|
|
103
|
-
sdkSessionId: resumeSessionId ?? '',
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
/** Emit the SDK session id so the desktop can persist it for the next turn. */
|
|
107
|
-
function emitSessionId(id) {
|
|
108
|
-
if (id) {
|
|
109
|
-
process.stdout.write(`\n${SESSION_ID_MARKER}${id}\n`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Emit a marker for every background cli_* run still in flight, so the desktop
|
|
114
|
-
* watcher can poll each to completion and re-engage the agent.
|
|
115
|
-
*/
|
|
116
|
-
function emitActiveCliRuns() {
|
|
117
|
-
for (const run of listActiveCliRuns()) {
|
|
118
|
-
const payload = JSON.stringify({
|
|
119
|
-
run_id: run.run_id,
|
|
120
|
-
pid: run.pid,
|
|
121
|
-
log_path: run.log_path,
|
|
122
|
-
command: run.command,
|
|
123
|
-
});
|
|
124
|
-
process.stdout.write(`\n${CLI_RUN_MARKER}${payload}\n`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Run a single agent turn against an already-prepared {@link SessionContext}.
|
|
129
|
-
* Mutates `ctx.sdkSessionId` so the next turn resumes the same SDK conversation
|
|
130
|
-
* (and prompt cache). Safe to call repeatedly for the life of the process.
|
|
131
|
-
*/
|
|
132
|
-
export async function runTurn(ctx, opts = {}) {
|
|
133
|
-
const { runFinished } = opts;
|
|
134
|
-
// 1. Decide what drives this turn. A normal turn replays the channel's
|
|
135
|
-
// pending human messages; a watcher-triggered follow-up replays a
|
|
136
|
-
// synthetic prompt about the background run that just finished.
|
|
137
|
-
let messages = [];
|
|
138
|
-
if (runFinished) {
|
|
139
|
-
logInfo(`Reporting completion of background run ${runFinished.runId} for session ${ctx.channelId}`);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
const pendingResult = (await callMcpEndpoint('chat/messages/pending', {
|
|
143
|
-
channel_id: ctx.channelId,
|
|
144
|
-
}));
|
|
145
|
-
messages = pendingResult.messages ?? [];
|
|
146
|
-
if (messages.length === 0) {
|
|
147
|
-
logInfo('No pending messages for this session — nothing to do.');
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
logInfo(`Processing ${messages.length} message(s) for session ${ctx.channelId}`);
|
|
151
|
-
}
|
|
152
|
-
const userPrompt = runFinished
|
|
153
|
-
? buildRunFinishedPrompt(runFinished)
|
|
154
|
-
: buildSessionUserPrompt(messages);
|
|
155
|
-
// 2. Run one SDK turn. Resume the prior SDK session when we have its id so
|
|
156
|
-
// the conversation (and prompt cache) carries across turns. Point the
|
|
157
|
-
// agent's cwd at the session directory so its read-only file tools resolve
|
|
158
|
-
// against the cloned repos. Prompt + tool/MCP wiring come from the shared
|
|
159
|
-
// session core (edsger-tools) so CLI and worker can't drift apart.
|
|
160
|
-
let finalResponse = '';
|
|
161
|
-
try {
|
|
162
|
-
for await (const message of query({
|
|
163
|
-
prompt: userPrompt,
|
|
164
|
-
options: {
|
|
165
|
-
...buildSessionAgentOptions(ctx.systemPrompt, {
|
|
166
|
-
sessionServer: ctx.sessionServer,
|
|
167
|
-
externalServers: ctx.external.servers,
|
|
168
|
-
externalNames: ctx.external.names,
|
|
169
|
-
sessionDir: ctx.sessionDir,
|
|
170
|
-
maxTurns: SESSION_MAX_TURNS,
|
|
171
|
-
}),
|
|
172
|
-
model: DEFAULT_MODEL,
|
|
173
|
-
...(ctx.sdkSessionId ? { resume: ctx.sdkSessionId } : {}),
|
|
174
|
-
},
|
|
175
|
-
})) {
|
|
176
|
-
const msg = message;
|
|
177
|
-
// The system/init and result messages carry the (possibly new) session
|
|
178
|
-
// id — keep the latest so we persist what the next turn should resume.
|
|
179
|
-
if (msg.session_id) {
|
|
180
|
-
ctx.sdkSessionId = msg.session_id;
|
|
181
|
-
}
|
|
182
|
-
if (ctx.verbose && msg.type === 'assistant') {
|
|
183
|
-
logInfo('· agent step');
|
|
184
|
-
}
|
|
185
|
-
if (msg.type === 'result') {
|
|
186
|
-
finalResponse = msg.result || '';
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
193
|
-
logError(`Session turn failed: ${reason}`);
|
|
194
|
-
await callMcpEndpoint('chat/messages/send_ai', {
|
|
195
|
-
channel_id: ctx.channelId,
|
|
196
|
-
content: `I hit an error processing that: ${reason}`,
|
|
197
|
-
message_type: 'text',
|
|
198
|
-
metadata: {},
|
|
199
|
-
}).catch(() => undefined);
|
|
200
|
-
emitSessionId(ctx.sdkSessionId);
|
|
201
|
-
emitActiveCliRuns();
|
|
202
|
-
await markProcessed(messages);
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
// 3. Post the final reply (the agent may also have posted via
|
|
206
|
-
// send_chat_message during the turn; this carries the closing summary).
|
|
207
|
-
const reply = finalResponse.trim();
|
|
208
|
-
if (reply) {
|
|
209
|
-
await callMcpEndpoint('chat/messages/send_ai', {
|
|
210
|
-
channel_id: ctx.channelId,
|
|
211
|
-
content: reply,
|
|
212
|
-
message_type: 'text',
|
|
213
|
-
metadata: {},
|
|
214
|
-
}).catch((e) => {
|
|
215
|
-
logError(`Failed to post reply: ${e instanceof Error ? e.message : String(e)}`);
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
// 4. Mark the triggering messages processed so they aren't re-run. (No-op for
|
|
219
|
-
// a watcher follow-up, which has no triggering human messages.)
|
|
220
|
-
await markProcessed(messages);
|
|
221
|
-
// 5. Emit the SDK session id so the desktop persists it for the next turn,
|
|
222
|
-
// plus a marker for any background run launched this turn so the watcher
|
|
223
|
-
// keeps following it to completion.
|
|
224
|
-
emitSessionId(ctx.sdkSessionId);
|
|
225
|
-
emitActiveCliRuns();
|
|
226
|
-
logSuccess('Session turn complete.');
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* One-shot `session-turn`: prepare the context and run a single turn. Retained
|
|
230
|
-
* for callers that want the previous per-turn-process behaviour (and as the
|
|
231
|
-
* building block the daemon reuses).
|
|
232
|
-
*/
|
|
233
|
-
export async function runSessionTurnCommand(options) {
|
|
234
|
-
const ctx = await prepareSessionContext(options);
|
|
235
|
-
await runTurn(ctx, { runFinished: options.runFinished });
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* The synthetic user prompt for a watcher-triggered follow-up turn. Steers the
|
|
239
|
-
* agent to inspect what the finished run produced and report it — explicitly
|
|
240
|
-
* NOT to ask the user whether it should check.
|
|
241
|
-
*/
|
|
242
|
-
function buildRunFinishedPrompt(runFinished) {
|
|
243
|
-
const which = runFinished.command
|
|
244
|
-
? `the \`${runFinished.command}\` analysis (run ${runFinished.runId})`
|
|
245
|
-
: `a background analysis you launched earlier (run ${runFinished.runId})`;
|
|
246
|
-
return `${which} just finished. Inspect what it produced — call get_cli_run with run_id "${runFinished.runId}" for the log tail, then use the list_* / get_* tools (e.g. list_issues) to see the findings it filed. Summarize the results for the user via send_chat_message. Do not ask whether you should check — just report what you found. If nothing of note was produced, say so briefly.`;
|
|
247
|
-
}
|
|
248
|
-
async function markProcessed(messages) {
|
|
249
|
-
for (const m of messages) {
|
|
250
|
-
await callMcpEndpoint('chat/messages/mark_processed', {
|
|
251
|
-
message_id: m.id,
|
|
252
|
-
}).catch(() => undefined);
|
|
253
|
-
}
|
|
254
|
-
}
|