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,154 +0,0 @@
|
|
|
1
|
-
import { getDefaultBranchForIssue } from '../../services/repo-config.js';
|
|
2
|
-
import { resolveSkill, substituteVariables, } from '../../services/skill-resolver.js';
|
|
3
|
-
import { OUTPUT_CONTRACTS } from '../output-contracts.js';
|
|
4
|
-
/**
|
|
5
|
-
* Create the system prompt for PR splitting: Diff analysis and PR planning
|
|
6
|
-
*/
|
|
7
|
-
export async function createPRSplittingSystemPrompt(config, issueId, projectDir, verbose) {
|
|
8
|
-
const skill = await resolveSkill('phase/pr-splitting', {
|
|
9
|
-
projectDir,
|
|
10
|
-
});
|
|
11
|
-
if (!skill) {
|
|
12
|
-
throw new Error('Failed to load skill: phase/pr-splitting');
|
|
13
|
-
}
|
|
14
|
-
let { prompt } = skill;
|
|
15
|
-
prompt = substituteVariables(prompt, {
|
|
16
|
-
BASE_BRANCH: await getDefaultBranchForIssue(issueId, verbose),
|
|
17
|
-
ISSUE_ID: issueId,
|
|
18
|
-
});
|
|
19
|
-
return `${prompt}\n\n${OUTPUT_CONTRACTS['pr-splitting']}`;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Create the user prompt with diff context for PR splitting
|
|
23
|
-
*/
|
|
24
|
-
export function createPRSplittingPromptWithContext(issueId, contextInfo, existingPRsInfo, diffStat, changedFiles) {
|
|
25
|
-
let prompt = `# PR Splitting Task
|
|
26
|
-
|
|
27
|
-
Please analyze the actual code changes on the \`dev/${issueId}\` branch and create a plan to split them into multiple smaller PRs for review.
|
|
28
|
-
|
|
29
|
-
## Issue Context
|
|
30
|
-
|
|
31
|
-
${contextInfo}
|
|
32
|
-
|
|
33
|
-
## Code Changes Summary
|
|
34
|
-
|
|
35
|
-
### Diff Stat
|
|
36
|
-
\`\`\`
|
|
37
|
-
${diffStat || 'No changes detected'}
|
|
38
|
-
\`\`\`
|
|
39
|
-
|
|
40
|
-
### Changed Files (${changedFiles.length} files)
|
|
41
|
-
${changedFiles.map((f) => `- ${f}`).join('\n') || 'No files changed'}
|
|
42
|
-
|
|
43
|
-
`;
|
|
44
|
-
if (existingPRsInfo) {
|
|
45
|
-
prompt += `## Existing Pull Requests
|
|
46
|
-
|
|
47
|
-
${existingPRsInfo}
|
|
48
|
-
|
|
49
|
-
**Note**: Merged/closed PRs are frozen — do not modify them or reassign their files.
|
|
50
|
-
|
|
51
|
-
`;
|
|
52
|
-
}
|
|
53
|
-
prompt += `## Your Task
|
|
54
|
-
|
|
55
|
-
1. **Examine the actual diff**: Run \`git diff main...dev/${issueId}\` or targeted diffs for specific files to understand what changed
|
|
56
|
-
2. **Identify logical groupings**: Find files that change together for the same reason, considering module boundaries
|
|
57
|
-
3. **Determine dependencies**: Figure out which groups must be merged first
|
|
58
|
-
4. **Create PR plan**: Define PRs with clear scope, file assignments, and acceptance criteria
|
|
59
|
-
|
|
60
|
-
**Remember**:
|
|
61
|
-
- Every changed file must be assigned to exactly one PR
|
|
62
|
-
- Smaller, focused PRs are better than large ones
|
|
63
|
-
- Split by module/domain, not just by layer
|
|
64
|
-
- Order PRs by their dependencies`;
|
|
65
|
-
return prompt;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Format the context information for the prompt
|
|
69
|
-
*/
|
|
70
|
-
export function formatContextForPrompt(issue, product, branches) {
|
|
71
|
-
let context = `### Issue: ${issue.name}
|
|
72
|
-
|
|
73
|
-
${issue.description || 'No description provided'}
|
|
74
|
-
|
|
75
|
-
### Product: ${product.name}
|
|
76
|
-
|
|
77
|
-
${product.description || 'No description provided'}
|
|
78
|
-
|
|
79
|
-
`;
|
|
80
|
-
if (issue.technical_design) {
|
|
81
|
-
context += `### Technical Design
|
|
82
|
-
|
|
83
|
-
${issue.technical_design}
|
|
84
|
-
|
|
85
|
-
`;
|
|
86
|
-
}
|
|
87
|
-
if (branches.length > 0) {
|
|
88
|
-
context += `### Development Branches (${branches.length})
|
|
89
|
-
|
|
90
|
-
${branches.map((b, idx) => `${idx + 1}. **${b.name}** (${b.status}) — ${b.branch_name || 'No branch'}`).join('\n')}
|
|
91
|
-
|
|
92
|
-
`;
|
|
93
|
-
}
|
|
94
|
-
return context;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Format existing pull requests for the prompt
|
|
98
|
-
*/
|
|
99
|
-
export function formatExistingPRsForPrompt(pullRequests) {
|
|
100
|
-
if (!pullRequests || pullRequests.length === 0) {
|
|
101
|
-
return '';
|
|
102
|
-
}
|
|
103
|
-
const frozen = pullRequests.filter((pr) => pr.status === 'merged' || pr.status === 'closed');
|
|
104
|
-
const mutable = pullRequests.filter((pr) => pr.status !== 'merged' && pr.status !== 'closed');
|
|
105
|
-
const formatPR = (pr) => {
|
|
106
|
-
const filesInfo = pr.files && pr.files.length > 0
|
|
107
|
-
? `\n - Files: ${pr.files.map((f) => f.path).join(', ')}`
|
|
108
|
-
: '';
|
|
109
|
-
return `${pr.sequence}. **${pr.name}** (${pr.status})
|
|
110
|
-
- Branch: ${pr.branch_name || 'Not created'}
|
|
111
|
-
- Description: ${pr.description || 'No description'}${filesInfo}`;
|
|
112
|
-
};
|
|
113
|
-
let result = '';
|
|
114
|
-
if (frozen.length > 0) {
|
|
115
|
-
result += `### Frozen PRs (merged/closed — DO NOT modify)\n\n${frozen
|
|
116
|
-
.sort((a, b) => a.sequence - b.sequence)
|
|
117
|
-
.map(formatPR)
|
|
118
|
-
.join('\n\n')}\n\n`;
|
|
119
|
-
}
|
|
120
|
-
if (mutable.length > 0) {
|
|
121
|
-
result += `### Active PRs (can be updated)\n\n${mutable
|
|
122
|
-
.sort((a, b) => a.sequence - b.sequence)
|
|
123
|
-
.map(formatPR)
|
|
124
|
-
.join('\n\n')}`;
|
|
125
|
-
}
|
|
126
|
-
return result;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Create improvement prompt for re-planning based on feedback
|
|
130
|
-
*/
|
|
131
|
-
export function createImprovementPrompt(feedback, currentPlan) {
|
|
132
|
-
return `# PR Splitting Improvement
|
|
133
|
-
|
|
134
|
-
The current PR splitting plan needs improvement based on the following feedback:
|
|
135
|
-
|
|
136
|
-
## Feedback
|
|
137
|
-
|
|
138
|
-
${feedback}
|
|
139
|
-
|
|
140
|
-
## Current Plan
|
|
141
|
-
|
|
142
|
-
${currentPlan}
|
|
143
|
-
|
|
144
|
-
## Your Task
|
|
145
|
-
|
|
146
|
-
Please revise the PR splitting plan to address the feedback. Ensure the new plan:
|
|
147
|
-
1. Addresses all feedback points
|
|
148
|
-
2. Maintains proper dependency ordering
|
|
149
|
-
3. Keeps PRs reasonably sized for code review
|
|
150
|
-
4. Assigns every changed file to exactly one PR
|
|
151
|
-
5. Provides clear scope and acceptance criteria for each PR
|
|
152
|
-
|
|
153
|
-
Respond with the updated JSON PR splitting plan.`;
|
|
154
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* product-techniques phase: clone the product's repo, ask Claude (via the
|
|
3
|
-
* `submit_techniques` MCP tool) to write a catalogue of the techniques the
|
|
4
|
-
* repo uses, and persist the result to product_techniques via the Supabase
|
|
5
|
-
* SDK.
|
|
6
|
-
*
|
|
7
|
-
* Mirrors the screen-flow pattern. Production-grade behaviours layered on
|
|
8
|
-
* top of the basic generate-and-write loop:
|
|
9
|
-
*
|
|
10
|
-
* - Heartbeat: `last_heartbeat_at` is refreshed on every assistant message
|
|
11
|
-
* so the reader can detect stalled / crashed runs (see services/db/
|
|
12
|
-
* product-techniques.ts for the lazy reaper).
|
|
13
|
-
* - Cancellation-safe writes: markRunning / markSuccess / markFailed only
|
|
14
|
-
* touch rows whose status is in {pending, running}. If the user clicked
|
|
15
|
-
* Stop and the row is now 'cancelled', the final write no-ops.
|
|
16
|
-
* - Tool-based submission: validated server-side via Zod + content checks
|
|
17
|
-
* (mcp-server.ts). Falls back to fenced JSON parsing for resilience.
|
|
18
|
-
*/
|
|
19
|
-
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
20
|
-
export interface ProductTechniquesOptions {
|
|
21
|
-
productId: string;
|
|
22
|
-
techniquesId: string;
|
|
23
|
-
guidance?: string;
|
|
24
|
-
verbose?: boolean;
|
|
25
|
-
}
|
|
26
|
-
export interface ProductTechniquesResult {
|
|
27
|
-
status: 'success' | 'error' | 'cancelled';
|
|
28
|
-
message: string;
|
|
29
|
-
summary?: string;
|
|
30
|
-
}
|
|
31
|
-
export declare function runProductTechniquesPhase(options: ProductTechniquesOptions): Promise<ProductTechniquesResult>;
|
|
32
|
-
/**
|
|
33
|
-
* Claim the row by flipping `pending` → `running`. Returns true on success
|
|
34
|
-
* (we won the claim) and false when the row has already moved on (e.g. user
|
|
35
|
-
* cancelled before the CLI started). Bounded by the status filter so we
|
|
36
|
-
* can't accidentally resurrect a 'cancelled' row.
|
|
37
|
-
*/
|
|
38
|
-
export declare function markRunning(supabase: SupabaseClient, techniquesId: string): Promise<boolean>;
|
|
39
|
-
/**
|
|
40
|
-
* Touch the heartbeat. Best-effort — if it fails (network blip, RLS), the
|
|
41
|
-
* agent loop keeps running; the reader treats this row as stale and marks
|
|
42
|
-
* it failed on next read, which is the correct behaviour.
|
|
43
|
-
*/
|
|
44
|
-
export declare function heartbeat(supabase: SupabaseClient, techniquesId: string): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Write failure status iff the row is still in an active state. Returns
|
|
47
|
-
* true if the row was actually updated (so the caller knows whether the
|
|
48
|
-
* agent's verdict made it to the DB). Returns false when the row has
|
|
49
|
-
* already been cancelled or otherwise resolved by someone else.
|
|
50
|
-
*/
|
|
51
|
-
export declare function markFailed(supabase: SupabaseClient, techniquesId: string, errorMessage: string): Promise<boolean>;
|
|
52
|
-
export declare function markSuccess(supabase: SupabaseClient, techniquesId: string, summary: string, content: string): Promise<boolean>;
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* product-techniques phase: clone the product's repo, ask Claude (via the
|
|
3
|
-
* `submit_techniques` MCP tool) to write a catalogue of the techniques the
|
|
4
|
-
* repo uses, and persist the result to product_techniques via the Supabase
|
|
5
|
-
* SDK.
|
|
6
|
-
*
|
|
7
|
-
* Mirrors the screen-flow pattern. Production-grade behaviours layered on
|
|
8
|
-
* top of the basic generate-and-write loop:
|
|
9
|
-
*
|
|
10
|
-
* - Heartbeat: `last_heartbeat_at` is refreshed on every assistant message
|
|
11
|
-
* so the reader can detect stalled / crashed runs (see services/db/
|
|
12
|
-
* product-techniques.ts for the lazy reaper).
|
|
13
|
-
* - Cancellation-safe writes: markRunning / markSuccess / markFailed only
|
|
14
|
-
* touch rows whose status is in {pending, running}. If the user clicked
|
|
15
|
-
* Stop and the row is now 'cancelled', the final write no-ops.
|
|
16
|
-
* - Tool-based submission: validated server-side via Zod + content checks
|
|
17
|
-
* (mcp-server.ts). Falls back to fenced JSON parsing for resilience.
|
|
18
|
-
*/
|
|
19
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
20
|
-
import { getGitHubConfigByProduct } from '../../api/github.js';
|
|
21
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
22
|
-
import { getSupabase } from '../../supabase/client.js';
|
|
23
|
-
import { logError, logInfo, logSuccess, logWarning, } from '../../utils/logger.js';
|
|
24
|
-
import { cleanupIssueRepo, cloneIssueRepo, ensureWorkspaceDir, } from '../../workspace/workspace-manager.js';
|
|
25
|
-
import { fetchProductBasics } from '../find-shared/mcp.js';
|
|
26
|
-
import { createPromptGenerator, extractTextFromContent, tryExtractResult, } from '../pr-shared/agent-utils.js';
|
|
27
|
-
import { createTechniquesCaptureState, createTechniquesMcpServer, validateContent, } from './mcp-server.js';
|
|
28
|
-
import { createProductTechniquesSystemPrompt, createProductTechniquesUserPrompt, } from './prompts.js';
|
|
29
|
-
import { isTechniquesExtraction, TECHNIQUES_CONTENT_MAX, TECHNIQUES_SUMMARY_MAX, } from './types.js';
|
|
30
|
-
const WORKSPACE_KEY = 'product-techniques';
|
|
31
|
-
const MAX_TURNS = 120;
|
|
32
|
-
// Heartbeat cadence: at most one DB write per HEARTBEAT_MIN_INTERVAL_MS.
|
|
33
|
-
// Triggered on every assistant message so a stalled agent (no messages
|
|
34
|
-
// flowing) lets the row go stale and the reader can mark it failed.
|
|
35
|
-
const HEARTBEAT_MIN_INTERVAL_MS = 15_000;
|
|
36
|
-
export async function runProductTechniquesPhase(options) {
|
|
37
|
-
const { productId, techniquesId, guidance, verbose } = options;
|
|
38
|
-
logInfo(`Starting product-techniques generation for product ${productId}`);
|
|
39
|
-
const supabase = getSupabase();
|
|
40
|
-
const claimed = await markRunning(supabase, techniquesId);
|
|
41
|
-
if (!claimed) {
|
|
42
|
-
return {
|
|
43
|
-
status: 'cancelled',
|
|
44
|
-
message: 'Techniques row is no longer in a runnable state (likely cancelled before the CLI started)',
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
const githubConfig = await getGitHubConfigByProduct(productId, verbose);
|
|
48
|
-
if (!githubConfig.configured ||
|
|
49
|
-
!githubConfig.token ||
|
|
50
|
-
!githubConfig.owner ||
|
|
51
|
-
!githubConfig.repo) {
|
|
52
|
-
const msg = githubConfig.message ||
|
|
53
|
-
'GitHub repository not configured for this product. Connect a repo first.';
|
|
54
|
-
await markFailed(supabase, techniquesId, msg);
|
|
55
|
-
return { status: 'error', message: msg };
|
|
56
|
-
}
|
|
57
|
-
let repoPath;
|
|
58
|
-
let succeeded = false;
|
|
59
|
-
try {
|
|
60
|
-
const workspaceRoot = ensureWorkspaceDir();
|
|
61
|
-
const repoKey = `${WORKSPACE_KEY}-${productId}`;
|
|
62
|
-
({ repoPath } = cloneIssueRepo(workspaceRoot, repoKey, githubConfig.owner, githubConfig.repo, githubConfig.token));
|
|
63
|
-
const product = await fetchProductBasics(productId);
|
|
64
|
-
const systemPrompt = createProductTechniquesSystemPrompt();
|
|
65
|
-
const userPrompt = createProductTechniquesUserPrompt({
|
|
66
|
-
productName: product.name,
|
|
67
|
-
productDescription: product.description,
|
|
68
|
-
guidance,
|
|
69
|
-
});
|
|
70
|
-
logInfo('Running Claude agent to write techniques catalogue...');
|
|
71
|
-
const captureState = createTechniquesCaptureState();
|
|
72
|
-
const mcpServer = createTechniquesMcpServer(captureState);
|
|
73
|
-
let lastAssistantResponse = '';
|
|
74
|
-
let lastHeartbeatAt = 0;
|
|
75
|
-
for await (const message of query({
|
|
76
|
-
prompt: createPromptGenerator(userPrompt),
|
|
77
|
-
options: {
|
|
78
|
-
systemPrompt: {
|
|
79
|
-
type: 'preset',
|
|
80
|
-
preset: 'claude_code',
|
|
81
|
-
append: systemPrompt,
|
|
82
|
-
},
|
|
83
|
-
model: DEFAULT_MODEL,
|
|
84
|
-
maxTurns: MAX_TURNS,
|
|
85
|
-
permissionMode: 'bypassPermissions',
|
|
86
|
-
cwd: repoPath,
|
|
87
|
-
mcpServers: {
|
|
88
|
-
'product-techniques': mcpServer,
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
})) {
|
|
92
|
-
if (message.type === 'assistant') {
|
|
93
|
-
lastAssistantResponse += extractTextFromContent(message.message?.content ?? [], verbose);
|
|
94
|
-
// Throttled heartbeat. Awaited (cheap UPDATE) so we don't pile up
|
|
95
|
-
// unresolved promises on a long run.
|
|
96
|
-
const now = Date.now();
|
|
97
|
-
if (now - lastHeartbeatAt >= HEARTBEAT_MIN_INTERVAL_MS) {
|
|
98
|
-
lastHeartbeatAt = now;
|
|
99
|
-
await heartbeat(supabase, techniquesId);
|
|
100
|
-
}
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
if (message.type !== 'result') {
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
// Prefer the MCP-captured extraction. Fall back to fenced JSON only
|
|
107
|
-
// if the agent ignored the tool — robustness, not a contract.
|
|
108
|
-
const fromTool = captureState.captured;
|
|
109
|
-
const fromFallback = fromTool
|
|
110
|
-
? null
|
|
111
|
-
: tryFallbackParse(message, lastAssistantResponse);
|
|
112
|
-
const extraction = fromTool ?? fromFallback;
|
|
113
|
-
if (!extraction) {
|
|
114
|
-
const msg = message.subtype === 'success'
|
|
115
|
-
? 'Techniques generation failed: agent did not call submit_techniques and no parseable fallback was found'
|
|
116
|
-
: `Techniques generation failed: agent ${message.subtype}`;
|
|
117
|
-
const written = await markFailed(supabase, techniquesId, msg);
|
|
118
|
-
return {
|
|
119
|
-
status: written ? 'error' : 'cancelled',
|
|
120
|
-
message: written
|
|
121
|
-
? msg
|
|
122
|
-
: 'Generation was cancelled while the agent was running',
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
if (fromFallback) {
|
|
126
|
-
logWarning('Agent skipped submit_techniques; used fenced fallback JSON instead');
|
|
127
|
-
}
|
|
128
|
-
const written = await markSuccess(supabase, techniquesId, extraction.summary, extraction.content);
|
|
129
|
-
if (!written) {
|
|
130
|
-
return {
|
|
131
|
-
status: 'cancelled',
|
|
132
|
-
message: 'Generation was cancelled before the result could be written',
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
succeeded = true;
|
|
136
|
-
logSuccess(`Techniques catalogue generated (${extraction.content.length} chars of markdown)`);
|
|
137
|
-
return {
|
|
138
|
-
status: 'success',
|
|
139
|
-
message: 'Techniques catalogue generated',
|
|
140
|
-
summary: extraction.summary,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
// Loop ended without a 'result' message — treat as failure.
|
|
144
|
-
const msg = 'Techniques generation ended without a result message';
|
|
145
|
-
await markFailed(supabase, techniquesId, msg);
|
|
146
|
-
return { status: 'error', message: msg };
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
150
|
-
logError(`Techniques generation failed: ${errorMessage}`);
|
|
151
|
-
await markFailed(supabase, techniquesId, errorMessage);
|
|
152
|
-
return { status: 'error', message: errorMessage };
|
|
153
|
-
}
|
|
154
|
-
finally {
|
|
155
|
-
if (succeeded) {
|
|
156
|
-
cleanupIssueRepo(repoPath);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
// Fallback parser: extract a fenced `techniques` JSON block from the final
|
|
161
|
-
// assistant text if the agent skipped the submit_techniques tool. Backstop
|
|
162
|
-
// only — we expect the tool path to be the norm.
|
|
163
|
-
function tryFallbackParse(resultMessage, assistantText) {
|
|
164
|
-
const responseText = resultMessage.subtype === 'success'
|
|
165
|
-
? resultMessage.result || assistantText
|
|
166
|
-
: assistantText;
|
|
167
|
-
const parsed = tryExtractResult(responseText, 'techniques');
|
|
168
|
-
if (!isTechniquesExtraction(parsed)) {
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
171
|
-
if (parsed.summary.length > TECHNIQUES_SUMMARY_MAX) {
|
|
172
|
-
return null;
|
|
173
|
-
}
|
|
174
|
-
if (parsed.content.length > TECHNIQUES_CONTENT_MAX) {
|
|
175
|
-
return null;
|
|
176
|
-
}
|
|
177
|
-
const { error } = validateContent(parsed.content);
|
|
178
|
-
if (error) {
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
return parsed;
|
|
182
|
-
}
|
|
183
|
-
// ============================================================================
|
|
184
|
-
// Persistence — exported for unit tests
|
|
185
|
-
// ============================================================================
|
|
186
|
-
/**
|
|
187
|
-
* Claim the row by flipping `pending` → `running`. Returns true on success
|
|
188
|
-
* (we won the claim) and false when the row has already moved on (e.g. user
|
|
189
|
-
* cancelled before the CLI started). Bounded by the status filter so we
|
|
190
|
-
* can't accidentally resurrect a 'cancelled' row.
|
|
191
|
-
*/
|
|
192
|
-
export async function markRunning(supabase, techniquesId) {
|
|
193
|
-
const { data, error } = await supabase
|
|
194
|
-
.from('product_techniques')
|
|
195
|
-
.update({
|
|
196
|
-
status: 'running',
|
|
197
|
-
error: null,
|
|
198
|
-
last_heartbeat_at: new Date().toISOString(),
|
|
199
|
-
})
|
|
200
|
-
.eq('id', techniquesId)
|
|
201
|
-
.in('status', ['pending', 'running'])
|
|
202
|
-
.select('id')
|
|
203
|
-
.maybeSingle();
|
|
204
|
-
if (error) {
|
|
205
|
-
logWarning(`Could not mark techniques as running: ${error.message}`);
|
|
206
|
-
return false;
|
|
207
|
-
}
|
|
208
|
-
return data !== null;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Touch the heartbeat. Best-effort — if it fails (network blip, RLS), the
|
|
212
|
-
* agent loop keeps running; the reader treats this row as stale and marks
|
|
213
|
-
* it failed on next read, which is the correct behaviour.
|
|
214
|
-
*/
|
|
215
|
-
export async function heartbeat(supabase, techniquesId) {
|
|
216
|
-
const { error } = await supabase
|
|
217
|
-
.from('product_techniques')
|
|
218
|
-
.update({ last_heartbeat_at: new Date().toISOString() })
|
|
219
|
-
.eq('id', techniquesId)
|
|
220
|
-
.eq('status', 'running');
|
|
221
|
-
if (error) {
|
|
222
|
-
logWarning(`Heartbeat failed: ${error.message}`);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Write failure status iff the row is still in an active state. Returns
|
|
227
|
-
* true if the row was actually updated (so the caller knows whether the
|
|
228
|
-
* agent's verdict made it to the DB). Returns false when the row has
|
|
229
|
-
* already been cancelled or otherwise resolved by someone else.
|
|
230
|
-
*/
|
|
231
|
-
export async function markFailed(supabase, techniquesId, errorMessage) {
|
|
232
|
-
const { data, error } = await supabase
|
|
233
|
-
.from('product_techniques')
|
|
234
|
-
.update({
|
|
235
|
-
status: 'failed',
|
|
236
|
-
error: errorMessage,
|
|
237
|
-
completed_at: new Date().toISOString(),
|
|
238
|
-
})
|
|
239
|
-
.eq('id', techniquesId)
|
|
240
|
-
.in('status', ['pending', 'running'])
|
|
241
|
-
.select('id')
|
|
242
|
-
.maybeSingle();
|
|
243
|
-
if (error) {
|
|
244
|
-
logWarning(`Could not mark techniques as failed: ${error.message}`);
|
|
245
|
-
return false;
|
|
246
|
-
}
|
|
247
|
-
return data !== null;
|
|
248
|
-
}
|
|
249
|
-
export async function markSuccess(supabase, techniquesId, summary, content) {
|
|
250
|
-
const { data, error } = await supabase
|
|
251
|
-
.from('product_techniques')
|
|
252
|
-
.update({
|
|
253
|
-
status: 'success',
|
|
254
|
-
summary,
|
|
255
|
-
content,
|
|
256
|
-
error: null,
|
|
257
|
-
completed_at: new Date().toISOString(),
|
|
258
|
-
})
|
|
259
|
-
.eq('id', techniquesId)
|
|
260
|
-
.in('status', ['pending', 'running'])
|
|
261
|
-
.select('id')
|
|
262
|
-
.maybeSingle();
|
|
263
|
-
if (error) {
|
|
264
|
-
logWarning(`Could not mark techniques as success: ${error.message}`);
|
|
265
|
-
return false;
|
|
266
|
-
}
|
|
267
|
-
return data !== null;
|
|
268
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-process MCP server exposing a single tool — `submit_techniques` — that
|
|
3
|
-
* the Claude Agent SDK session calls to return the final markdown catalogue.
|
|
4
|
-
*
|
|
5
|
-
* Using a tool call instead of parsing a fenced JSON block lets the SDK
|
|
6
|
-
* enforce the schema (via Zod) and lets the agent self-correct when
|
|
7
|
-
* validation fails: the error message goes back as the tool result and the
|
|
8
|
-
* agent can re-call the tool with corrected data.
|
|
9
|
-
*
|
|
10
|
-
* The capture pattern: callers pass in a `TechniquesCaptureState`. The tool
|
|
11
|
-
* handler stores the validated args on `state.captured`. The orchestrator
|
|
12
|
-
* reads it after the SDK loop ends.
|
|
13
|
-
*/
|
|
14
|
-
import { z } from 'zod';
|
|
15
|
-
import { type TechniquesExtraction } from './types.js';
|
|
16
|
-
export interface TechniquesCaptureState {
|
|
17
|
-
captured: TechniquesExtraction | null;
|
|
18
|
-
}
|
|
19
|
-
export declare function createTechniquesCaptureState(): TechniquesCaptureState;
|
|
20
|
-
/**
|
|
21
|
-
* Validation that goes beyond the basic Zod schema: enforce that the
|
|
22
|
-
* markdown actually has the H2 sections the prompt asks for. The agent gets
|
|
23
|
-
* an actionable error and can re-submit.
|
|
24
|
-
*
|
|
25
|
-
* We don't require ALL six sections — agents on tiny repos often legitimately
|
|
26
|
-
* collapse some. We require at least the first one ("Languages & Runtime")
|
|
27
|
-
* plus "Notable Techniques", which the prompt calls out as the whole point.
|
|
28
|
-
*/
|
|
29
|
-
export declare function validateContent(content: string): {
|
|
30
|
-
error: string | null;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Build the `submit_techniques` tool. Exported separately from the server
|
|
34
|
-
* so tests can exercise the handler directly without going through MCP
|
|
35
|
-
* transport.
|
|
36
|
-
*/
|
|
37
|
-
export declare function createSubmitTechniquesTool(state: TechniquesCaptureState): import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
|
|
38
|
-
summary: z.ZodString;
|
|
39
|
-
content: z.ZodString;
|
|
40
|
-
}>;
|
|
41
|
-
export declare function createTechniquesMcpServer(state: TechniquesCaptureState): import("@anthropic-ai/claude-agent-sdk").McpSdkServerConfigWithInstance;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-process MCP server exposing a single tool — `submit_techniques` — that
|
|
3
|
-
* the Claude Agent SDK session calls to return the final markdown catalogue.
|
|
4
|
-
*
|
|
5
|
-
* Using a tool call instead of parsing a fenced JSON block lets the SDK
|
|
6
|
-
* enforce the schema (via Zod) and lets the agent self-correct when
|
|
7
|
-
* validation fails: the error message goes back as the tool result and the
|
|
8
|
-
* agent can re-call the tool with corrected data.
|
|
9
|
-
*
|
|
10
|
-
* The capture pattern: callers pass in a `TechniquesCaptureState`. The tool
|
|
11
|
-
* handler stores the validated args on `state.captured`. The orchestrator
|
|
12
|
-
* reads it after the SDK loop ends.
|
|
13
|
-
*/
|
|
14
|
-
import { createSdkMcpServer, tool } from '@anthropic-ai/claude-agent-sdk';
|
|
15
|
-
import { z } from 'zod';
|
|
16
|
-
import { TECHNIQUES_CONTENT_MAX, TECHNIQUES_SUMMARY_MAX, } from './types.js';
|
|
17
|
-
export function createTechniquesCaptureState() {
|
|
18
|
-
return { captured: null };
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Validation that goes beyond the basic Zod schema: enforce that the
|
|
22
|
-
* markdown actually has the H2 sections the prompt asks for. The agent gets
|
|
23
|
-
* an actionable error and can re-submit.
|
|
24
|
-
*
|
|
25
|
-
* We don't require ALL six sections — agents on tiny repos often legitimately
|
|
26
|
-
* collapse some. We require at least the first one ("Languages & Runtime")
|
|
27
|
-
* plus "Notable Techniques", which the prompt calls out as the whole point.
|
|
28
|
-
*/
|
|
29
|
-
export function validateContent(content) {
|
|
30
|
-
const required = [
|
|
31
|
-
/^##\s+Languages\s*&\s*Runtime\b/im,
|
|
32
|
-
/^##\s+Notable\s+Techniques\b/im,
|
|
33
|
-
];
|
|
34
|
-
for (const re of required) {
|
|
35
|
-
if (!re.test(content)) {
|
|
36
|
-
return {
|
|
37
|
-
error: `content is missing the required section matching ${re.source}. Add the section and re-call submit_techniques.`,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return { error: null };
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Build the `submit_techniques` tool. Exported separately from the server
|
|
45
|
-
* so tests can exercise the handler directly without going through MCP
|
|
46
|
-
* transport.
|
|
47
|
-
*/
|
|
48
|
-
export function createSubmitTechniquesTool(state) {
|
|
49
|
-
return tool('submit_techniques', [
|
|
50
|
-
'Submit the final techniques catalogue. Call this EXACTLY once, when',
|
|
51
|
-
'you have finished cataloguing every technique. Pass the summary and',
|
|
52
|
-
'the full markdown content as arguments. After this call succeeds, end',
|
|
53
|
-
'your turn — do NOT also paste the same content as a fenced code block.',
|
|
54
|
-
'If validation fails, the error message tells you what to fix; call the',
|
|
55
|
-
'tool again with corrected data.',
|
|
56
|
-
].join(' '), {
|
|
57
|
-
summary: z
|
|
58
|
-
.string()
|
|
59
|
-
.min(1)
|
|
60
|
-
.max(TECHNIQUES_SUMMARY_MAX)
|
|
61
|
-
.describe('1-2 sentence summary suitable for a tab header. Plain text, no markdown.'),
|
|
62
|
-
content: z
|
|
63
|
-
.string()
|
|
64
|
-
.min(1)
|
|
65
|
-
.max(TECHNIQUES_CONTENT_MAX)
|
|
66
|
-
.describe('Full markdown body with H2 sections: Languages & Runtime, Frameworks & Libraries, Architecture Patterns, State & Data Techniques, Build & Deploy Techniques, Notable Techniques.'),
|
|
67
|
-
}, async (args) => {
|
|
68
|
-
const extraction = {
|
|
69
|
-
summary: args.summary,
|
|
70
|
-
content: args.content,
|
|
71
|
-
};
|
|
72
|
-
const { error } = validateContent(extraction.content);
|
|
73
|
-
if (error) {
|
|
74
|
-
return {
|
|
75
|
-
content: [{ type: 'text', text: error }],
|
|
76
|
-
isError: true,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
state.captured = extraction;
|
|
80
|
-
return {
|
|
81
|
-
content: [
|
|
82
|
-
{
|
|
83
|
-
type: 'text',
|
|
84
|
-
text: `Captured techniques catalogue (${extraction.content.length} chars). End your turn now.`,
|
|
85
|
-
},
|
|
86
|
-
],
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
export function createTechniquesMcpServer(state) {
|
|
91
|
-
return createSdkMcpServer({
|
|
92
|
-
name: 'product-techniques',
|
|
93
|
-
version: '1.0.0',
|
|
94
|
-
tools: [createSubmitTechniquesTool(state)],
|
|
95
|
-
});
|
|
96
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Prompts for the product-level techniques phase.
|
|
3
|
-
*
|
|
4
|
-
* Agent's job: explore the cloned product repo and write a markdown catalogue
|
|
5
|
-
* of the techniques it actually uses — languages, frameworks, patterns, state
|
|
6
|
-
* idioms, build/deploy choices, plus the clever non-obvious bits. Focused on
|
|
7
|
-
* what a new engineer needs to recognize and recreate, not feature lists.
|
|
8
|
-
*
|
|
9
|
-
* The final result is submitted via the `submit_techniques` MCP tool, NOT a
|
|
10
|
-
* fenced JSON block. Tool calls let the SDK enforce the schema with Zod and
|
|
11
|
-
* let the agent self-correct on validation errors. See mcp-server.ts.
|
|
12
|
-
*/
|
|
13
|
-
export interface ProductTechniquesPromptContext {
|
|
14
|
-
productName: string;
|
|
15
|
-
productDescription?: string;
|
|
16
|
-
guidance?: string;
|
|
17
|
-
}
|
|
18
|
-
export declare function createProductTechniquesSystemPrompt(): string;
|
|
19
|
-
export declare function createProductTechniquesUserPrompt(context: ProductTechniquesPromptContext): string;
|