edsger 0.77.0 → 0.79.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 +1348 -1247
- package/dist/index.js.map +1 -0
- package/package.json +58 -53
- package/dist/api/adr.d.ts +0 -48
- package/dist/api/adr.js +0 -139
- package/dist/api/app-store-iap.d.ts +0 -60
- package/dist/api/app-store-iap.js +0 -145
- package/dist/api/app-store.d.ts +0 -93
- package/dist/api/app-store.js +0 -206
- package/dist/api/chat.d.ts +0 -72
- package/dist/api/chat.js +0 -272
- package/dist/api/cross-product.d.ts +0 -33
- package/dist/api/cross-product.js +0 -127
- package/dist/api/financing.d.ts +0 -47
- package/dist/api/financing.js +0 -37
- package/dist/api/github.d.ts +0 -86
- package/dist/api/github.js +0 -203
- package/dist/api/growth.d.ts +0 -81
- package/dist/api/growth.js +0 -75
- package/dist/api/intelligence-normalize.d.ts +0 -25
- package/dist/api/intelligence-normalize.js +0 -103
- package/dist/api/intelligence.d.ts +0 -187
- package/dist/api/intelligence.js +0 -402
- package/dist/api/issues/approval-checker.d.ts +0 -22
- package/dist/api/issues/approval-checker.js +0 -141
- package/dist/api/issues/batch-operations.d.ts +0 -17
- package/dist/api/issues/batch-operations.js +0 -100
- package/dist/api/issues/get-issue.d.ts +0 -5
- package/dist/api/issues/get-issue.js +0 -47
- package/dist/api/issues/index.d.ts +0 -8
- package/dist/api/issues/index.js +0 -10
- package/dist/api/issues/issue-utils.d.ts +0 -25
- package/dist/api/issues/issue-utils.js +0 -133
- package/dist/api/issues/status-updater.d.ts +0 -68
- package/dist/api/issues/status-updater.js +0 -190
- package/dist/api/issues/test-cases.d.ts +0 -29
- package/dist/api/issues/test-cases.js +0 -185
- package/dist/api/issues/update-issue.d.ts +0 -25
- package/dist/api/issues/update-issue.js +0 -127
- package/dist/api/issues/user-stories.d.ts +0 -21
- package/dist/api/issues/user-stories.js +0 -163
- package/dist/api/mcp-client.d.ts +0 -22
- package/dist/api/mcp-client.js +0 -75
- package/dist/api/products/test-cases.d.ts +0 -18
- package/dist/api/products/test-cases.js +0 -51
- package/dist/api/products.d.ts +0 -15
- package/dist/api/products.js +0 -45
- package/dist/api/release-test-cases.d.ts +0 -7
- package/dist/api/release-test-cases.js +0 -59
- package/dist/api/releases.d.ts +0 -41
- package/dist/api/releases.js +0 -117
- package/dist/api/run-sheets.d.ts +0 -22
- package/dist/api/run-sheets.js +0 -13
- package/dist/api/storage.d.ts +0 -13
- package/dist/api/storage.js +0 -29
- package/dist/api/tasks.d.ts +0 -26
- package/dist/api/tasks.js +0 -81
- package/dist/api/test-reports.d.ts +0 -9
- package/dist/api/test-reports.js +0 -43
- package/dist/api/user-psychology.d.ts +0 -101
- package/dist/api/user-psychology.js +0 -143
- package/dist/api/web-deploy.d.ts +0 -67
- package/dist/api/web-deploy.js +0 -199
- package/dist/auth/auth-store.d.ts +0 -98
- package/dist/auth/auth-store.js +0 -194
- package/dist/auth/env-store.d.ts +0 -41
- package/dist/auth/env-store.js +0 -127
- package/dist/auth/login.d.ts +0 -18
- package/dist/auth/login.js +0 -179
- package/dist/commands/adr/index.d.ts +0 -13
- package/dist/commands/adr/index.js +0 -31
- package/dist/commands/agent-workflow/chat-worker.d.ts +0 -16
- package/dist/commands/agent-workflow/chat-worker.js +0 -465
- package/dist/commands/agent-workflow/index.d.ts +0 -13
- package/dist/commands/agent-workflow/index.js +0 -107
- package/dist/commands/agent-workflow/issue-worker.d.ts +0 -14
- package/dist/commands/agent-workflow/issue-worker.js +0 -65
- package/dist/commands/agent-workflow/processor.d.ts +0 -95
- package/dist/commands/agent-workflow/processor.js +0 -519
- package/dist/commands/analyze-logs/index.d.ts +0 -7
- package/dist/commands/analyze-logs/index.js +0 -34
- package/dist/commands/api-docs/index.d.ts +0 -18
- package/dist/commands/api-docs/index.js +0 -41
- package/dist/commands/app-store/index.d.ts +0 -12
- package/dist/commands/app-store/index.js +0 -69
- package/dist/commands/architecture-diagram/index.d.ts +0 -8
- package/dist/commands/architecture-diagram/index.js +0 -10
- package/dist/commands/build/detect-project.d.ts +0 -52
- package/dist/commands/build/detect-project.js +0 -277
- package/dist/commands/build/index.d.ts +0 -66
- package/dist/commands/build/index.js +0 -544
- package/dist/commands/chat-serve/chat-server.d.ts +0 -114
- package/dist/commands/chat-serve/chat-server.js +0 -339
- package/dist/commands/chat-serve/index.d.ts +0 -20
- package/dist/commands/chat-serve/index.js +0 -58
- package/dist/commands/checklists/index.d.ts +0 -16
- package/dist/commands/checklists/index.js +0 -187
- package/dist/commands/checklists/tools.d.ts +0 -17
- package/dist/commands/checklists/tools.js +0 -19
- package/dist/commands/class-diagram/index.d.ts +0 -7
- package/dist/commands/class-diagram/index.js +0 -9
- package/dist/commands/code-review/index.d.ts +0 -2
- package/dist/commands/code-review/index.js +0 -37
- package/dist/commands/code-review/reviewer.d.ts +0 -3
- package/dist/commands/code-review/reviewer.js +0 -205
- package/dist/commands/config/index.d.ts +0 -16
- package/dist/commands/config/index.js +0 -60
- package/dist/commands/data-flow/index.d.ts +0 -19
- package/dist/commands/data-flow/index.js +0 -55
- package/dist/commands/diagram-shared/index.d.ts +0 -21
- package/dist/commands/diagram-shared/index.js +0 -37
- package/dist/commands/discover/index.d.ts +0 -14
- package/dist/commands/discover/index.js +0 -29
- package/dist/commands/er-diagram/index.d.ts +0 -19
- package/dist/commands/er-diagram/index.js +0 -55
- package/dist/commands/features/index.d.ts +0 -15
- package/dist/commands/features/index.js +0 -34
- package/dist/commands/financing-deck/index.d.ts +0 -8
- package/dist/commands/financing-deck/index.js +0 -66
- package/dist/commands/find-architecture/index.d.ts +0 -15
- package/dist/commands/find-architecture/index.js +0 -50
- package/dist/commands/find-bugs/index.d.ts +0 -13
- package/dist/commands/find-bugs/index.js +0 -48
- package/dist/commands/find-features/index.d.ts +0 -14
- package/dist/commands/find-features/index.js +0 -42
- package/dist/commands/find-smells/index.d.ts +0 -23
- package/dist/commands/find-smells/index.js +0 -74
- package/dist/commands/flowchart/index.d.ts +0 -8
- package/dist/commands/flowchart/index.js +0 -10
- package/dist/commands/growth-analysis/index.d.ts +0 -7
- package/dist/commands/growth-analysis/index.js +0 -89
- package/dist/commands/init/index.d.ts +0 -5
- package/dist/commands/init/index.js +0 -152
- package/dist/commands/init/prompts.d.ts +0 -9
- package/dist/commands/init/prompts.js +0 -128
- package/dist/commands/init/templates.d.ts +0 -9
- package/dist/commands/init/templates.js +0 -264
- package/dist/commands/intelligence/index.d.ts +0 -15
- package/dist/commands/intelligence/index.js +0 -138
- package/dist/commands/issue-analysis/index.d.ts +0 -5
- package/dist/commands/issue-analysis/index.js +0 -9
- package/dist/commands/pr-resolve/index.d.ts +0 -13
- package/dist/commands/pr-resolve/index.js +0 -50
- package/dist/commands/pr-review/index.d.ts +0 -12
- package/dist/commands/pr-review/index.js +0 -47
- package/dist/commands/product-techniques/index.d.ts +0 -15
- package/dist/commands/product-techniques/index.js +0 -37
- package/dist/commands/product-test-cases/index.d.ts +0 -12
- package/dist/commands/product-test-cases/index.js +0 -40
- package/dist/commands/quality-benchmark/index.d.ts +0 -45
- package/dist/commands/quality-benchmark/index.js +0 -247
- package/dist/commands/recipes/index.d.ts +0 -17
- package/dist/commands/recipes/index.js +0 -40
- package/dist/commands/refactor/refactor.d.ts +0 -2
- package/dist/commands/refactor/refactor.js +0 -134
- package/dist/commands/release-sync/index.d.ts +0 -5
- package/dist/commands/release-sync/index.js +0 -38
- package/dist/commands/run-sheet/index.d.ts +0 -6
- package/dist/commands/run-sheet/index.js +0 -48
- package/dist/commands/screen-flow/index.d.ts +0 -18
- package/dist/commands/screen-flow/index.js +0 -54
- package/dist/commands/sequence-diagram/index.d.ts +0 -19
- package/dist/commands/sequence-diagram/index.js +0 -55
- package/dist/commands/session-serve/index.d.ts +0 -32
- package/dist/commands/session-serve/index.js +0 -100
- package/dist/commands/session-turn/index.d.ts +0 -73
- package/dist/commands/session-turn/index.js +0 -254
- package/dist/commands/smoke-test/index.d.ts +0 -5
- package/dist/commands/smoke-test/index.js +0 -40
- package/dist/commands/state-diagram/index.d.ts +0 -7
- package/dist/commands/state-diagram/index.js +0 -9
- package/dist/commands/sync-aws/index.d.ts +0 -16
- package/dist/commands/sync-aws/index.js +0 -214
- package/dist/commands/sync-datadog/index.d.ts +0 -16
- package/dist/commands/sync-datadog/index.js +0 -236
- package/dist/commands/sync-github-issues/index.d.ts +0 -11
- package/dist/commands/sync-github-issues/index.js +0 -42
- package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
- package/dist/commands/sync-github-pull-requests/index.js +0 -42
- package/dist/commands/sync-org-repos/index.d.ts +0 -12
- package/dist/commands/sync-org-repos/index.js +0 -60
- package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
- package/dist/commands/sync-sentry-issues/index.js +0 -73
- package/dist/commands/sync-terraform/index.d.ts +0 -16
- package/dist/commands/sync-terraform/index.js +0 -248
- package/dist/commands/task-worker/index.d.ts +0 -8
- package/dist/commands/task-worker/index.js +0 -34
- package/dist/commands/task-worker/processor.d.ts +0 -23
- package/dist/commands/task-worker/processor.js +0 -84
- package/dist/commands/technical-design/index.d.ts +0 -5
- package/dist/commands/technical-design/index.js +0 -9
- package/dist/commands/test-cases-analysis/index.d.ts +0 -5
- package/dist/commands/test-cases-analysis/index.js +0 -9
- package/dist/commands/user-psychology/index.d.ts +0 -7
- package/dist/commands/user-psychology/index.js +0 -51
- package/dist/commands/user-stories-analysis/index.d.ts +0 -5
- package/dist/commands/user-stories-analysis/index.js +0 -9
- package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
- package/dist/commands/workflow/config/phase-configs.js +0 -132
- package/dist/commands/workflow/core/index.d.ts +0 -8
- package/dist/commands/workflow/core/index.js +0 -12
- package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
- package/dist/commands/workflow/core/issue-filter.js +0 -47
- package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
- package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
- package/dist/commands/workflow/core/state-manager.d.ts +0 -24
- package/dist/commands/workflow/core/state-manager.js +0 -42
- package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
- package/dist/commands/workflow/core/workflow-logger.js +0 -77
- package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
- package/dist/commands/workflow/executors/phase-executor.js +0 -338
- package/dist/commands/workflow/index.d.ts +0 -2
- package/dist/commands/workflow/index.js +0 -34
- package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
- package/dist/commands/workflow/issue-coordinator.js +0 -161
- package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
- package/dist/commands/workflow/phase-orchestrator.js +0 -699
- package/dist/commands/workflow/processor.d.ts +0 -47
- package/dist/commands/workflow/processor.js +0 -149
- package/dist/config/issue-status.d.ts +0 -29
- package/dist/config/issue-status.js +0 -44
- package/dist/config.d.ts +0 -3
- package/dist/config.js +0 -79
- package/dist/constants.d.ts +0 -10
- package/dist/constants.js +0 -36
- package/dist/errors/index.d.ts +0 -68
- package/dist/errors/index.js +0 -129
- package/dist/index.d.ts +0 -4
- package/dist/phases/adr-generation/agent.d.ts +0 -6
- package/dist/phases/adr-generation/agent.js +0 -69
- package/dist/phases/adr-generation/index.d.ts +0 -15
- package/dist/phases/adr-generation/index.js +0 -66
- package/dist/phases/adr-generation/parse.d.ts +0 -12
- package/dist/phases/adr-generation/parse.js +0 -123
- package/dist/phases/adr-generation/prompts.d.ts +0 -8
- package/dist/phases/adr-generation/prompts.js +0 -35
- package/dist/phases/analyze-logs/agent.d.ts +0 -11
- package/dist/phases/analyze-logs/agent.js +0 -66
- package/dist/phases/analyze-logs/index.d.ts +0 -23
- package/dist/phases/analyze-logs/index.js +0 -152
- package/dist/phases/analyze-logs/prompts.d.ts +0 -3
- package/dist/phases/analyze-logs/prompts.js +0 -27
- package/dist/phases/api-docs/index.d.ts +0 -47
- package/dist/phases/api-docs/index.js +0 -254
- package/dist/phases/api-docs/mcp-server.d.ts +0 -25
- package/dist/phases/api-docs/mcp-server.js +0 -82
- package/dist/phases/api-docs/prompts.d.ts +0 -16
- package/dist/phases/api-docs/prompts.js +0 -65
- package/dist/phases/api-docs/types.d.ts +0 -22
- package/dist/phases/api-docs/types.js +0 -10
- package/dist/phases/app-store-generation/agent.d.ts +0 -2
- package/dist/phases/app-store-generation/agent.js +0 -177
- package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
- package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
- package/dist/phases/app-store-generation/context.d.ts +0 -21
- package/dist/phases/app-store-generation/context.js +0 -78
- package/dist/phases/app-store-generation/index.d.ts +0 -20
- package/dist/phases/app-store-generation/index.js +0 -157
- package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
- package/dist/phases/app-store-generation/inter-font.js +0 -49
- package/dist/phases/app-store-generation/prompts.d.ts +0 -43
- package/dist/phases/app-store-generation/prompts.js +0 -73
- package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
- package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
- package/dist/phases/app-store-generation/uploader.d.ts +0 -19
- package/dist/phases/app-store-generation/uploader.js +0 -150
- package/dist/phases/architecture-diagram/index.d.ts +0 -15
- package/dist/phases/architecture-diagram/index.js +0 -51
- package/dist/phases/autonomous/index.d.ts +0 -32
- package/dist/phases/autonomous/index.js +0 -412
- package/dist/phases/autonomous/prompts.d.ts +0 -5
- package/dist/phases/autonomous/prompts.js +0 -31
- package/dist/phases/branch-planning/context.d.ts +0 -14
- package/dist/phases/branch-planning/context.js +0 -43
- package/dist/phases/branch-planning/index.d.ts +0 -25
- package/dist/phases/branch-planning/index.js +0 -404
- package/dist/phases/branch-planning/outcome.d.ts +0 -28
- package/dist/phases/branch-planning/outcome.js +0 -115
- package/dist/phases/branch-planning/prompts.d.ts +0 -41
- package/dist/phases/branch-planning/prompts.js +0 -157
- package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
- package/dist/phases/bug-fixing/analyzer.js +0 -247
- package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
- package/dist/phases/bug-fixing/context-fetcher.js +0 -137
- package/dist/phases/bug-fixing/index.d.ts +0 -7
- package/dist/phases/bug-fixing/index.js +0 -7
- package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
- package/dist/phases/bug-fixing/mcp-server.js +0 -19
- package/dist/phases/bug-fixing/prompts.d.ts +0 -2
- package/dist/phases/bug-fixing/prompts.js +0 -9
- package/dist/phases/chat-processor/context.d.ts +0 -38
- package/dist/phases/chat-processor/context.js +0 -91
- package/dist/phases/chat-processor/index.d.ts +0 -49
- package/dist/phases/chat-processor/index.js +0 -482
- package/dist/phases/chat-processor/product-context.d.ts +0 -36
- package/dist/phases/chat-processor/product-context.js +0 -113
- package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
- package/dist/phases/chat-processor/product-prompts.js +0 -65
- package/dist/phases/chat-processor/product-tools.d.ts +0 -8
- package/dist/phases/chat-processor/product-tools.js +0 -11
- package/dist/phases/chat-processor/prompts.d.ts +0 -35
- package/dist/phases/chat-processor/prompts.js +0 -213
- package/dist/phases/chat-processor/tools.d.ts +0 -8
- package/dist/phases/chat-processor/tools.js +0 -11
- package/dist/phases/class-diagram/index.d.ts +0 -14
- package/dist/phases/class-diagram/index.js +0 -76
- package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
- package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
- package/dist/phases/code-implementation/context.d.ts +0 -17
- package/dist/phases/code-implementation/context.js +0 -88
- package/dist/phases/code-implementation/index.d.ts +0 -33
- package/dist/phases/code-implementation/index.js +0 -926
- package/dist/phases/code-implementation/outcome.d.ts +0 -47
- package/dist/phases/code-implementation/outcome.js +0 -53
- package/dist/phases/code-implementation/prompts.d.ts +0 -8
- package/dist/phases/code-implementation/prompts.js +0 -166
- package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
- package/dist/phases/code-implementation-verification/agent.js +0 -225
- package/dist/phases/code-implementation-verification/index.d.ts +0 -27
- package/dist/phases/code-implementation-verification/index.js +0 -121
- package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
- package/dist/phases/code-implementation-verification/prompts.js +0 -90
- package/dist/phases/code-refine/context.d.ts +0 -99
- package/dist/phases/code-refine/context.js +0 -457
- package/dist/phases/code-refine/index.d.ts +0 -59
- package/dist/phases/code-refine/index.js +0 -348
- package/dist/phases/code-refine/prompts.d.ts +0 -5
- package/dist/phases/code-refine/prompts.js +0 -162
- package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
- package/dist/phases/code-refine/refine-iteration.js +0 -166
- package/dist/phases/code-refine/retry-handler.d.ts +0 -17
- package/dist/phases/code-refine/retry-handler.js +0 -87
- package/dist/phases/code-refine-verification/github.d.ts +0 -54
- package/dist/phases/code-refine-verification/github.js +0 -328
- package/dist/phases/code-refine-verification/index.d.ts +0 -11
- package/dist/phases/code-refine-verification/index.js +0 -260
- package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
- package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
- package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
- package/dist/phases/code-refine-verification/prompts.js +0 -119
- package/dist/phases/code-refine-verification/types.d.ts +0 -74
- package/dist/phases/code-refine-verification/types.js +0 -4
- package/dist/phases/code-review/context.d.ts +0 -96
- package/dist/phases/code-review/context.js +0 -278
- package/dist/phases/code-review/diff-utils.d.ts +0 -36
- package/dist/phases/code-review/diff-utils.js +0 -100
- package/dist/phases/code-review/index.d.ts +0 -40
- package/dist/phases/code-review/index.js +0 -627
- package/dist/phases/code-testing/analyzer.d.ts +0 -19
- package/dist/phases/code-testing/analyzer.js +0 -215
- package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
- package/dist/phases/code-testing/context-fetcher.js +0 -83
- package/dist/phases/code-testing/index.d.ts +0 -2
- package/dist/phases/code-testing/index.js +0 -2
- package/dist/phases/code-testing/prompts.d.ts +0 -3
- package/dist/phases/code-testing/prompts.js +0 -63
- package/dist/phases/data-flow/index.d.ts +0 -28
- package/dist/phases/data-flow/index.js +0 -286
- package/dist/phases/data-flow/mcp-server.d.ts +0 -85
- package/dist/phases/data-flow/mcp-server.js +0 -140
- package/dist/phases/data-flow/prompts.d.ts +0 -14
- package/dist/phases/data-flow/prompts.js +0 -36
- package/dist/phases/data-flow/types.d.ts +0 -71
- package/dist/phases/data-flow/types.js +0 -86
- package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
- package/dist/phases/diagram-shared/clone-repos.js +0 -153
- package/dist/phases/diagram-shared/generate.d.ts +0 -42
- package/dist/phases/diagram-shared/generate.js +0 -162
- package/dist/phases/diagram-shared/graph.d.ts +0 -62
- package/dist/phases/diagram-shared/graph.js +0 -169
- package/dist/phases/diagram-shared/mcp.d.ts +0 -35
- package/dist/phases/diagram-shared/mcp.js +0 -68
- package/dist/phases/diagram-shared/prompts.d.ts +0 -23
- package/dist/phases/diagram-shared/prompts.js +0 -35
- package/dist/phases/discover-services/index.d.ts +0 -29
- package/dist/phases/discover-services/index.js +0 -528
- package/dist/phases/er-diagram/index.d.ts +0 -28
- package/dist/phases/er-diagram/index.js +0 -290
- package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
- package/dist/phases/er-diagram/mcp-server.js +0 -144
- package/dist/phases/er-diagram/prompts.d.ts +0 -14
- package/dist/phases/er-diagram/prompts.js +0 -36
- package/dist/phases/er-diagram/types.d.ts +0 -76
- package/dist/phases/er-diagram/types.js +0 -84
- package/dist/phases/features/index.d.ts +0 -65
- package/dist/phases/features/index.js +0 -292
- package/dist/phases/features/mcp-server.d.ts +0 -61
- package/dist/phases/features/mcp-server.js +0 -165
- package/dist/phases/features/prompts.d.ts +0 -32
- package/dist/phases/features/prompts.js +0 -92
- package/dist/phases/features/types.d.ts +0 -34
- package/dist/phases/features/types.js +0 -15
- package/dist/phases/financing-deck/agent.d.ts +0 -1
- package/dist/phases/financing-deck/agent.js +0 -96
- package/dist/phases/financing-deck/context.d.ts +0 -13
- package/dist/phases/financing-deck/context.js +0 -69
- package/dist/phases/financing-deck/index.d.ts +0 -15
- package/dist/phases/financing-deck/index.js +0 -89
- package/dist/phases/financing-deck/prompts.d.ts +0 -2
- package/dist/phases/financing-deck/prompts.js +0 -94
- package/dist/phases/find-architecture/index.d.ts +0 -47
- package/dist/phases/find-architecture/index.js +0 -268
- package/dist/phases/find-architecture/prompts.d.ts +0 -32
- package/dist/phases/find-architecture/prompts.js +0 -129
- package/dist/phases/find-architecture/state.d.ts +0 -21
- package/dist/phases/find-architecture/state.js +0 -17
- package/dist/phases/find-architecture/types.d.ts +0 -55
- package/dist/phases/find-architecture/types.js +0 -69
- package/dist/phases/find-bugs/index.d.ts +0 -33
- package/dist/phases/find-bugs/index.js +0 -238
- package/dist/phases/find-bugs/prompts.d.ts +0 -22
- package/dist/phases/find-bugs/prompts.js +0 -101
- package/dist/phases/find-bugs/state.d.ts +0 -19
- package/dist/phases/find-bugs/state.js +0 -13
- package/dist/phases/find-bugs/types.d.ts +0 -21
- package/dist/phases/find-bugs/types.js +0 -16
- package/dist/phases/find-features/index.d.ts +0 -40
- package/dist/phases/find-features/index.js +0 -328
- package/dist/phases/find-features/prompts.d.ts +0 -43
- package/dist/phases/find-features/prompts.js +0 -138
- package/dist/phases/find-features/state.d.ts +0 -25
- package/dist/phases/find-features/state.js +0 -22
- package/dist/phases/find-features/types.d.ts +0 -27
- package/dist/phases/find-features/types.js +0 -16
- package/dist/phases/find-shared/baseline.d.ts +0 -45
- package/dist/phases/find-shared/baseline.js +0 -56
- package/dist/phases/find-shared/custom-rules.d.ts +0 -39
- package/dist/phases/find-shared/custom-rules.js +0 -75
- package/dist/phases/find-shared/detect-context.d.ts +0 -40
- package/dist/phases/find-shared/detect-context.js +0 -247
- package/dist/phases/find-shared/git.d.ts +0 -24
- package/dist/phases/find-shared/git.js +0 -60
- package/dist/phases/find-shared/mcp.d.ts +0 -54
- package/dist/phases/find-shared/mcp.js +0 -127
- package/dist/phases/find-shared/rule-config.d.ts +0 -37
- package/dist/phases/find-shared/rule-config.js +0 -67
- package/dist/phases/find-shared/rule-packs.d.ts +0 -65
- package/dist/phases/find-shared/rule-packs.js +0 -124
- package/dist/phases/find-shared/scan-state.d.ts +0 -33
- package/dist/phases/find-shared/scan-state.js +0 -112
- package/dist/phases/find-shared/scoped-read.d.ts +0 -12
- package/dist/phases/find-shared/scoped-read.js +0 -33
- package/dist/phases/find-smells/index.d.ts +0 -50
- package/dist/phases/find-smells/index.js +0 -305
- package/dist/phases/find-smells/prompts.d.ts +0 -31
- package/dist/phases/find-smells/prompts.js +0 -130
- package/dist/phases/find-smells/state.d.ts +0 -21
- package/dist/phases/find-smells/state.js +0 -17
- package/dist/phases/find-smells/types.d.ts +0 -51
- package/dist/phases/find-smells/types.js +0 -64
- package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
- package/dist/phases/flow-shared/clone-repos.js +0 -153
- package/dist/phases/flowchart/index.d.ts +0 -15
- package/dist/phases/flowchart/index.js +0 -50
- package/dist/phases/functional-testing/analyzer.d.ts +0 -46
- package/dist/phases/functional-testing/analyzer.js +0 -622
- package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
- package/dist/phases/functional-testing/context-fetcher.js +0 -83
- package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
- package/dist/phases/functional-testing/http-fallback.js +0 -156
- package/dist/phases/functional-testing/index.d.ts +0 -4
- package/dist/phases/functional-testing/index.js +0 -4
- package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
- package/dist/phases/functional-testing/mcp-server.js +0 -13
- package/dist/phases/functional-testing/prompts.d.ts +0 -2
- package/dist/phases/functional-testing/prompts.js +0 -58
- package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
- package/dist/phases/functional-testing/test-report-creator.js +0 -306
- package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
- package/dist/phases/functional-testing/test-retry-handler.js +0 -70
- package/dist/phases/growth-analysis/agent.d.ts +0 -2
- package/dist/phases/growth-analysis/agent.js +0 -107
- package/dist/phases/growth-analysis/context.d.ts +0 -23
- package/dist/phases/growth-analysis/context.js +0 -137
- package/dist/phases/growth-analysis/index.d.ts +0 -32
- package/dist/phases/growth-analysis/index.js +0 -226
- package/dist/phases/growth-analysis/prompts.d.ts +0 -2
- package/dist/phases/growth-analysis/prompts.js +0 -45
- package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
- package/dist/phases/intelligence-analysis/agent.js +0 -338
- package/dist/phases/intelligence-analysis/context.d.ts +0 -23
- package/dist/phases/intelligence-analysis/context.js +0 -142
- package/dist/phases/intelligence-analysis/index.d.ts +0 -58
- package/dist/phases/intelligence-analysis/index.js +0 -244
- package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
- package/dist/phases/intelligence-analysis/prompts.js +0 -62
- package/dist/phases/issue-analysis/agent.d.ts +0 -21
- package/dist/phases/issue-analysis/agent.js +0 -153
- package/dist/phases/issue-analysis/context.d.ts +0 -20
- package/dist/phases/issue-analysis/context.js +0 -93
- package/dist/phases/issue-analysis/index.d.ts +0 -8
- package/dist/phases/issue-analysis/index.js +0 -147
- package/dist/phases/issue-analysis/outcome.d.ts +0 -10
- package/dist/phases/issue-analysis/outcome.js +0 -42
- package/dist/phases/issue-analysis/prompts.d.ts +0 -8
- package/dist/phases/issue-analysis/prompts.js +0 -99
- package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
- package/dist/phases/issue-analysis-verification/agent.js +0 -124
- package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
- package/dist/phases/issue-analysis-verification/index.js +0 -79
- package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
- package/dist/phases/issue-analysis-verification/prompts.js +0 -75
- package/dist/phases/output-contracts.d.ts +0 -7
- package/dist/phases/output-contracts.js +0 -1201
- package/dist/phases/pr-execution/context.d.ts +0 -32
- package/dist/phases/pr-execution/context.js +0 -246
- package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
- package/dist/phases/pr-execution/file-assigner.js +0 -287
- package/dist/phases/pr-execution/index.d.ts +0 -22
- package/dist/phases/pr-execution/index.js +0 -401
- package/dist/phases/pr-execution/outcome.d.ts +0 -24
- package/dist/phases/pr-execution/outcome.js +0 -34
- package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
- package/dist/phases/pr-execution/pr-executor.js +0 -78
- package/dist/phases/pr-execution/prompts.d.ts +0 -27
- package/dist/phases/pr-execution/prompts.js +0 -131
- package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
- package/dist/phases/pr-resolve/checklist-learner.js +0 -153
- package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
- package/dist/phases/pr-resolve/github-reply.js +0 -75
- package/dist/phases/pr-resolve/index.d.ts +0 -33
- package/dist/phases/pr-resolve/index.js +0 -272
- package/dist/phases/pr-resolve/prompts.d.ts +0 -17
- package/dist/phases/pr-resolve/prompts.js +0 -107
- package/dist/phases/pr-resolve/types.d.ts +0 -18
- package/dist/phases/pr-resolve/types.js +0 -14
- package/dist/phases/pr-resolve/workspace.d.ts +0 -45
- package/dist/phases/pr-resolve/workspace.js +0 -174
- package/dist/phases/pr-review/index.d.ts +0 -27
- package/dist/phases/pr-review/index.js +0 -209
- package/dist/phases/pr-review/prompts.d.ts +0 -5
- package/dist/phases/pr-review/prompts.js +0 -87
- package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
- package/dist/phases/pr-shared/agent-utils.js +0 -112
- package/dist/phases/pr-shared/context.d.ts +0 -24
- package/dist/phases/pr-shared/context.js +0 -78
- package/dist/phases/pr-shared/status.d.ts +0 -18
- package/dist/phases/pr-shared/status.js +0 -37
- package/dist/phases/pr-splitting/context.d.ts +0 -28
- package/dist/phases/pr-splitting/context.js +0 -182
- package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
- package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
- package/dist/phases/pr-splitting/index.d.ts +0 -36
- package/dist/phases/pr-splitting/index.js +0 -413
- package/dist/phases/pr-splitting/outcome.d.ts +0 -24
- package/dist/phases/pr-splitting/outcome.js +0 -114
- package/dist/phases/pr-splitting/prompts.d.ts +0 -43
- package/dist/phases/pr-splitting/prompts.js +0 -154
- package/dist/phases/product-techniques/index.d.ts +0 -52
- package/dist/phases/product-techniques/index.js +0 -268
- package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
- package/dist/phases/product-techniques/mcp-server.js +0 -96
- package/dist/phases/product-techniques/prompts.d.ts +0 -19
- package/dist/phases/product-techniques/prompts.js +0 -66
- package/dist/phases/product-techniques/types.d.ts +0 -13
- package/dist/phases/product-techniques/types.js +0 -13
- package/dist/phases/product-test-cases/index.d.ts +0 -25
- package/dist/phases/product-test-cases/index.js +0 -174
- package/dist/phases/product-test-cases/prompts.d.ts +0 -24
- package/dist/phases/product-test-cases/prompts.js +0 -80
- package/dist/phases/product-test-cases/types.d.ts +0 -17
- package/dist/phases/product-test-cases/types.js +0 -27
- package/dist/phases/pull-request/creator.d.ts +0 -30
- package/dist/phases/pull-request/creator.js +0 -319
- package/dist/phases/pull-request/handler.d.ts +0 -15
- package/dist/phases/pull-request/handler.js +0 -92
- package/dist/phases/quality-benchmark/gate.d.ts +0 -50
- package/dist/phases/quality-benchmark/gate.js +0 -91
- package/dist/phases/quality-benchmark/index.d.ts +0 -65
- package/dist/phases/quality-benchmark/index.js +0 -208
- package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
- package/dist/phases/quality-benchmark/mcp-server.js +0 -252
- package/dist/phases/quality-benchmark/parsers.d.ts +0 -45
- package/dist/phases/quality-benchmark/parsers.js +0 -1311
- package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
- package/dist/phases/quality-benchmark/prompts.js +0 -154
- package/dist/phases/quality-benchmark/rubric.md +0 -1211
- package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
- package/dist/phases/quality-benchmark/tool-catalog.js +0 -693
- package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
- package/dist/phases/quality-benchmark/tool-runner.js +0 -399
- package/dist/phases/quality-benchmark/types.d.ts +0 -319
- package/dist/phases/quality-benchmark/types.js +0 -23
- package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
- package/dist/phases/quality-benchmark/workspace.js +0 -110
- package/dist/phases/recipes/index.d.ts +0 -63
- package/dist/phases/recipes/index.js +0 -358
- package/dist/phases/recipes/mcp-server.d.ts +0 -66
- package/dist/phases/recipes/mcp-server.js +0 -229
- package/dist/phases/recipes/prompts.d.ts +0 -35
- package/dist/phases/recipes/prompts.js +0 -105
- package/dist/phases/recipes/types.d.ts +0 -42
- package/dist/phases/recipes/types.js +0 -16
- package/dist/phases/release-sync/github.d.ts +0 -66
- package/dist/phases/release-sync/github.js +0 -140
- package/dist/phases/release-sync/index.d.ts +0 -24
- package/dist/phases/release-sync/index.js +0 -156
- package/dist/phases/release-sync/snapshot.d.ts +0 -27
- package/dist/phases/release-sync/snapshot.js +0 -158
- package/dist/phases/run-sheet/agent.d.ts +0 -49
- package/dist/phases/run-sheet/agent.js +0 -156
- package/dist/phases/run-sheet/index.d.ts +0 -57
- package/dist/phases/run-sheet/index.js +0 -392
- package/dist/phases/screen-flow/index.d.ts +0 -26
- package/dist/phases/screen-flow/index.js +0 -349
- package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
- package/dist/phases/screen-flow/mcp-server.js +0 -272
- package/dist/phases/screen-flow/prompts.d.ts +0 -19
- package/dist/phases/screen-flow/prompts.js +0 -43
- package/dist/phases/screen-flow/theme.d.ts +0 -19
- package/dist/phases/screen-flow/theme.js +0 -193
- package/dist/phases/screen-flow/types.d.ts +0 -137
- package/dist/phases/screen-flow/types.js +0 -81
- package/dist/phases/sequence-diagram/index.d.ts +0 -30
- package/dist/phases/sequence-diagram/index.js +0 -290
- package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
- package/dist/phases/sequence-diagram/mcp-server.js +0 -134
- package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
- package/dist/phases/sequence-diagram/prompts.js +0 -36
- package/dist/phases/sequence-diagram/types.d.ts +0 -52
- package/dist/phases/sequence-diagram/types.js +0 -93
- package/dist/phases/smoke-test/agent.d.ts +0 -12
- package/dist/phases/smoke-test/agent.js +0 -93
- package/dist/phases/smoke-test/index.d.ts +0 -22
- package/dist/phases/smoke-test/index.js +0 -241
- package/dist/phases/smoke-test/prompts.d.ts +0 -15
- package/dist/phases/smoke-test/prompts.js +0 -35
- package/dist/phases/state-diagram/index.d.ts +0 -15
- package/dist/phases/state-diagram/index.js +0 -53
- package/dist/phases/sync-github-issues/index.d.ts +0 -41
- package/dist/phases/sync-github-issues/index.js +0 -187
- package/dist/phases/sync-github-issues/state.d.ts +0 -26
- package/dist/phases/sync-github-issues/state.js +0 -18
- package/dist/phases/sync-github-issues/types.d.ts +0 -35
- package/dist/phases/sync-github-issues/types.js +0 -6
- package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
- package/dist/phases/sync-github-pull-requests/index.js +0 -210
- package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
- package/dist/phases/sync-github-pull-requests/state.js +0 -16
- package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
- package/dist/phases/sync-github-pull-requests/types.js +0 -1
- package/dist/phases/sync-org-repos/index.d.ts +0 -28
- package/dist/phases/sync-org-repos/index.js +0 -133
- package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
- package/dist/phases/sync-sentry-issues/index.js +0 -153
- package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
- package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
- package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
- package/dist/phases/sync-sentry-issues/state.js +0 -18
- package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
- package/dist/phases/sync-sentry-issues/types.js +0 -6
- package/dist/phases/sync-shared/mcp.d.ts +0 -81
- package/dist/phases/sync-shared/mcp.js +0 -111
- package/dist/phases/task/agent.d.ts +0 -10
- package/dist/phases/task/agent.js +0 -83
- package/dist/phases/task/context.d.ts +0 -16
- package/dist/phases/task/context.js +0 -50
- package/dist/phases/task/index.d.ts +0 -17
- package/dist/phases/task/index.js +0 -54
- package/dist/phases/task/prompts.d.ts +0 -9
- package/dist/phases/task/prompts.js +0 -21
- package/dist/phases/technical-design/context.d.ts +0 -12
- package/dist/phases/technical-design/context.js +0 -39
- package/dist/phases/technical-design/index.d.ts +0 -21
- package/dist/phases/technical-design/index.js +0 -456
- package/dist/phases/technical-design/outcome.d.ts +0 -25
- package/dist/phases/technical-design/outcome.js +0 -41
- package/dist/phases/technical-design/prompts.d.ts +0 -8
- package/dist/phases/technical-design/prompts.js +0 -210
- package/dist/phases/technical-design-verification/agent.d.ts +0 -53
- package/dist/phases/technical-design-verification/agent.js +0 -186
- package/dist/phases/technical-design-verification/index.d.ts +0 -38
- package/dist/phases/technical-design-verification/index.js +0 -152
- package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
- package/dist/phases/technical-design-verification/prompts.js +0 -143
- package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
- package/dist/phases/test-cases-analysis/agent.js +0 -105
- package/dist/phases/test-cases-analysis/context.d.ts +0 -15
- package/dist/phases/test-cases-analysis/context.js +0 -86
- package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
- package/dist/phases/test-cases-analysis/formatters.js +0 -35
- package/dist/phases/test-cases-analysis/index.d.ts +0 -9
- package/dist/phases/test-cases-analysis/index.js +0 -175
- package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
- package/dist/phases/test-cases-analysis/outcome.js +0 -146
- package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
- package/dist/phases/test-cases-analysis/prompts.js +0 -171
- package/dist/phases/user-psychology/agent.d.ts +0 -16
- package/dist/phases/user-psychology/agent.js +0 -105
- package/dist/phases/user-psychology/context.d.ts +0 -10
- package/dist/phases/user-psychology/context.js +0 -65
- package/dist/phases/user-psychology/index.d.ts +0 -18
- package/dist/phases/user-psychology/index.js +0 -96
- package/dist/phases/user-psychology/prompts.d.ts +0 -2
- package/dist/phases/user-psychology/prompts.js +0 -41
- package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
- package/dist/phases/user-stories-analysis/agent.js +0 -105
- package/dist/phases/user-stories-analysis/context.d.ts +0 -15
- package/dist/phases/user-stories-analysis/context.js +0 -86
- package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
- package/dist/phases/user-stories-analysis/formatters.js +0 -32
- package/dist/phases/user-stories-analysis/index.d.ts +0 -9
- package/dist/phases/user-stories-analysis/index.js +0 -175
- package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
- package/dist/phases/user-stories-analysis/outcome.js +0 -146
- package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
- package/dist/phases/user-stories-analysis/prompts.js +0 -194
- package/dist/services/audit-logs.d.ts +0 -73
- package/dist/services/audit-logs.js +0 -174
- package/dist/services/branches.d.ts +0 -103
- package/dist/services/branches.js +0 -391
- package/dist/services/checklist.d.ts +0 -100
- package/dist/services/checklist.js +0 -259
- package/dist/services/coaching/coaching-agent.d.ts +0 -39
- package/dist/services/coaching/coaching-agent.js +0 -308
- package/dist/services/coaching/coaching-loop.d.ts +0 -62
- package/dist/services/coaching/coaching-loop.js +0 -265
- package/dist/services/coaching/index.d.ts +0 -8
- package/dist/services/coaching/index.js +0 -8
- package/dist/services/coaching/phase-coaching.d.ts +0 -47
- package/dist/services/coaching/phase-coaching.js +0 -60
- package/dist/services/coaching/self-rating.d.ts +0 -26
- package/dist/services/coaching/self-rating.js +0 -153
- package/dist/services/feedbacks.d.ts +0 -57
- package/dist/services/feedbacks.js +0 -264
- package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
- package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
- package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
- package/dist/services/phase-hooks/hook-executor.js +0 -167
- package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
- package/dist/services/phase-hooks/hook-logging.js +0 -41
- package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
- package/dist/services/phase-hooks/hook-runner.js +0 -83
- package/dist/services/phase-hooks/index.d.ts +0 -10
- package/dist/services/phase-hooks/index.js +0 -9
- package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
- package/dist/services/phase-hooks/plugin-loader.js +0 -207
- package/dist/services/phase-hooks/types.d.ts +0 -69
- package/dist/services/phase-hooks/types.js +0 -8
- package/dist/services/phase-ratings.d.ts +0 -70
- package/dist/services/phase-ratings.js +0 -143
- package/dist/services/product-logs.d.ts +0 -31
- package/dist/services/product-logs.js +0 -94
- package/dist/services/pull-requests.d.ts +0 -57
- package/dist/services/pull-requests.js +0 -186
- package/dist/services/quality-reports.d.ts +0 -45
- package/dist/services/quality-reports.js +0 -93
- package/dist/services/repo-config.d.ts +0 -17
- package/dist/services/repo-config.js +0 -50
- package/dist/services/skill-resolver.d.ts +0 -46
- package/dist/services/skill-resolver.js +0 -123
- package/dist/services/video/device-frames.d.ts +0 -34
- package/dist/services/video/device-frames.js +0 -513
- package/dist/services/video/index.d.ts +0 -66
- package/dist/services/video/index.js +0 -238
- package/dist/services/video/retry.d.ts +0 -20
- package/dist/services/video/retry.js +0 -76
- package/dist/services/video/screenshot-generator.d.ts +0 -69
- package/dist/services/video/screenshot-generator.js +0 -259
- package/dist/services/video/tts-generator.d.ts +0 -40
- package/dist/services/video/tts-generator.js +0 -121
- package/dist/services/video/video-assembler.d.ts +0 -45
- package/dist/services/video/video-assembler.js +0 -351
- package/dist/services/video/video-uploader.d.ts +0 -28
- package/dist/services/video/video-uploader.js +0 -108
- package/dist/skills/phase/adr-generation/SKILL.md +0 -51
- package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
- package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
- package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
- package/dist/skills/phase/autonomous/SKILL.md +0 -52
- package/dist/skills/phase/branch-planning/SKILL.md +0 -55
- package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
- package/dist/skills/phase/class-diagram/SKILL.md +0 -44
- package/dist/skills/phase/code-implementation/SKILL.md +0 -68
- package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
- package/dist/skills/phase/code-refine/SKILL.md +0 -62
- package/dist/skills/phase/code-testing/SKILL.md +0 -78
- package/dist/skills/phase/data-flow/SKILL.md +0 -82
- package/dist/skills/phase/er-diagram/SKILL.md +0 -71
- package/dist/skills/phase/flowchart/SKILL.md +0 -38
- package/dist/skills/phase/functional-testing/SKILL.md +0 -62
- package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
- package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
- package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
- package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
- package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
- package/dist/skills/phase/pr-execution/SKILL.md +0 -69
- package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
- package/dist/skills/phase/screen-flow/SKILL.md +0 -78
- package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
- package/dist/skills/phase/smoke-test/SKILL.md +0 -80
- package/dist/skills/phase/state-diagram/SKILL.md +0 -38
- package/dist/skills/phase/task/SKILL.md +0 -19
- package/dist/skills/phase/technical-design/SKILL.md +0 -75
- package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
- package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
- package/dist/skills/phase/user-psychology/SKILL.md +0 -135
- package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
- package/dist/supabase/client.d.ts +0 -34
- package/dist/supabase/client.js +0 -123
- package/dist/system/session-manager.d.ts +0 -67
- package/dist/system/session-manager.js +0 -300
- package/dist/system/sleep-notification.d.ts +0 -15
- package/dist/system/sleep-notification.js +0 -108
- package/dist/system/sleep-prevention.d.ts +0 -20
- package/dist/system/sleep-prevention.js +0 -112
- package/dist/tools/bootstrap.d.ts +0 -45
- package/dist/tools/bootstrap.js +0 -50
- package/dist/types/external-sources.d.ts +0 -22
- package/dist/types/external-sources.js +0 -23
- package/dist/types/index.d.ts +0 -206
- package/dist/types/index.js +0 -1
- package/dist/types/issues.d.ts +0 -37
- package/dist/types/issues.js +0 -1
- package/dist/types/llm-responses.d.ts +0 -114
- package/dist/types/llm-responses.js +0 -9
- package/dist/types/pipeline.d.ts +0 -28
- package/dist/types/pipeline.js +0 -4
- package/dist/updater/auto-updater.d.ts +0 -39
- package/dist/updater/auto-updater.js +0 -134
- package/dist/utils/conflict-resolver.d.ts +0 -49
- package/dist/utils/conflict-resolver.js +0 -201
- package/dist/utils/formatters.d.ts +0 -42
- package/dist/utils/formatters.js +0 -166
- package/dist/utils/git-branch-manager-async.d.ts +0 -127
- package/dist/utils/git-branch-manager-async.js +0 -425
- package/dist/utils/git-branch-manager.d.ts +0 -160
- package/dist/utils/git-branch-manager.js +0 -613
- package/dist/utils/git-push.d.ts +0 -43
- package/dist/utils/git-push.js +0 -136
- package/dist/utils/github-repo-info.d.ts +0 -26
- package/dist/utils/github-repo-info.js +0 -45
- package/dist/utils/image-downloader.d.ts +0 -32
- package/dist/utils/image-downloader.js +0 -152
- package/dist/utils/issue-phase-cli.d.ts +0 -26
- package/dist/utils/issue-phase-cli.js +0 -44
- package/dist/utils/json-extract.d.ts +0 -6
- package/dist/utils/json-extract.js +0 -44
- package/dist/utils/json-extractor.d.ts +0 -27
- package/dist/utils/json-extractor.js +0 -102
- package/dist/utils/logger.d.ts +0 -35
- package/dist/utils/logger.js +0 -167
- package/dist/utils/pipeline-logger.d.ts +0 -8
- package/dist/utils/pipeline-logger.js +0 -38
- package/dist/utils/validation.d.ts +0 -68
- package/dist/utils/validation.js +0 -229
- package/dist/utils/workflow-utils.d.ts +0 -22
- package/dist/utils/workflow-utils.js +0 -48
- package/dist/workspace/session-workspace.d.ts +0 -43
- package/dist/workspace/session-workspace.js +0 -90
- package/dist/workspace/workspace-manager.d.ts +0 -105
- package/dist/workspace/workspace-manager.js +0 -280
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { type GrowthVideoResult } from '../../services/video/index.js';
|
|
2
|
-
import { type EdsgerConfig } from '../../types/index.js';
|
|
3
|
-
export interface GrowthAnalysisOptions {
|
|
4
|
-
productId: string;
|
|
5
|
-
verbose?: boolean;
|
|
6
|
-
guidance?: string;
|
|
7
|
-
analysisId?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface GrowthAnalysisResult {
|
|
10
|
-
productId: string;
|
|
11
|
-
status: 'success' | 'error';
|
|
12
|
-
summary: string;
|
|
13
|
-
analysisId?: string;
|
|
14
|
-
targetChannels: {
|
|
15
|
-
name: string;
|
|
16
|
-
reason: string;
|
|
17
|
-
audience: string;
|
|
18
|
-
priority: string;
|
|
19
|
-
}[];
|
|
20
|
-
contentSuggestions: {
|
|
21
|
-
channel: string;
|
|
22
|
-
title: string;
|
|
23
|
-
content: string;
|
|
24
|
-
rationale: string;
|
|
25
|
-
videoPlan?: {
|
|
26
|
-
shouldGenerateVideo: boolean;
|
|
27
|
-
videoReason: string;
|
|
28
|
-
videoResult?: GrowthVideoResult;
|
|
29
|
-
};
|
|
30
|
-
}[];
|
|
31
|
-
}
|
|
32
|
-
export declare const analyseGrowth: (options: GrowthAnalysisOptions, config: EdsgerConfig) => Promise<GrowthAnalysisResult>;
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { getGitHubConfigByProduct } from '../../api/github.js';
|
|
2
|
-
import { saveGrowthAnalysis, updateGrowthAnalysis } from '../../api/growth.js';
|
|
3
|
-
import { generateGrowthVideo, } from '../../services/video/index.js';
|
|
4
|
-
import { logError, logInfo, logSuccess, logWarning, } from '../../utils/logger.js';
|
|
5
|
-
import { cleanupIssueRepo, cloneIssueRepo, ensureWorkspaceDir, } from '../../workspace/workspace-manager.js';
|
|
6
|
-
import { executeGrowthAnalysisQuery } from './agent.js';
|
|
7
|
-
import { prepareGrowthAnalysisContext } from './context.js';
|
|
8
|
-
import { createGrowthAnalysisSystemPrompt } from './prompts.js';
|
|
9
|
-
/**
|
|
10
|
-
* Extract video plans from AI-generated content suggestions
|
|
11
|
-
*/
|
|
12
|
-
function extractVideoPlans(
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
-
contentSuggestions) {
|
|
15
|
-
const plans = [];
|
|
16
|
-
for (let i = 0; i < contentSuggestions.length; i++) {
|
|
17
|
-
const suggestion = contentSuggestions[i];
|
|
18
|
-
const videoPlan = suggestion.video_plan;
|
|
19
|
-
if (videoPlan &&
|
|
20
|
-
videoPlan.should_generate_video &&
|
|
21
|
-
videoPlan.scenes?.length > 0) {
|
|
22
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
-
const scenes = videoPlan.scenes.map((s) => ({
|
|
24
|
-
order: s.order,
|
|
25
|
-
pagePath: s.page_path || '/',
|
|
26
|
-
description: s.description,
|
|
27
|
-
transcript: s.transcript,
|
|
28
|
-
duration: s.duration || 8,
|
|
29
|
-
viewportWidth: s.viewport_width,
|
|
30
|
-
viewportHeight: s.viewport_height,
|
|
31
|
-
deviceFrame: s.device_frame,
|
|
32
|
-
frameBackground: s.frame_background,
|
|
33
|
-
frameBrowserUrl: s.frame_browser_url,
|
|
34
|
-
}));
|
|
35
|
-
const htmlTemplates = videoPlan.scenes
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
-
.map((s) => s.html_template)
|
|
38
|
-
.filter(Boolean);
|
|
39
|
-
plans.push({
|
|
40
|
-
index: i,
|
|
41
|
-
plan: {
|
|
42
|
-
shouldGenerateVideo: true,
|
|
43
|
-
videoReason: videoPlan.video_reason || 'Video enhances content understanding',
|
|
44
|
-
scenes,
|
|
45
|
-
htmlTemplates: htmlTemplates.length > 0 ? htmlTemplates : undefined,
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return plans;
|
|
51
|
-
}
|
|
52
|
-
export const analyseGrowth = async (options, config) => {
|
|
53
|
-
const { productId, verbose, guidance, analysisId } = options;
|
|
54
|
-
if (verbose) {
|
|
55
|
-
logInfo(`Starting growth analysis for product ID: ${productId}`);
|
|
56
|
-
}
|
|
57
|
-
let repoCwd;
|
|
58
|
-
let analysisSucceeded = false;
|
|
59
|
-
try {
|
|
60
|
-
// Clone product repo if GitHub is configured
|
|
61
|
-
try {
|
|
62
|
-
const githubConfig = await getGitHubConfigByProduct(productId, verbose);
|
|
63
|
-
if (githubConfig.configured &&
|
|
64
|
-
githubConfig.token &&
|
|
65
|
-
githubConfig.owner &&
|
|
66
|
-
githubConfig.repo) {
|
|
67
|
-
const workspaceRoot = ensureWorkspaceDir();
|
|
68
|
-
const { repoPath } = cloneIssueRepo(workspaceRoot, `growth-${productId}`, githubConfig.owner, githubConfig.repo, githubConfig.token);
|
|
69
|
-
repoCwd = repoPath;
|
|
70
|
-
logInfo(`Repository cloned to: ${repoCwd}`);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
logInfo(`No GitHub repo configured for product, running without codebase access. ${githubConfig.message || ''}`);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
logInfo(`Could not clone repo (continuing without codebase): ${error instanceof Error ? error.message : String(error)}`);
|
|
78
|
-
}
|
|
79
|
-
const hasCodebase = !!repoCwd;
|
|
80
|
-
const { context: _context, analysisPrompt } = await prepareGrowthAnalysisContext(productId, verbose, hasCodebase, guidance);
|
|
81
|
-
const systemPrompt = await createGrowthAnalysisSystemPrompt(hasCodebase);
|
|
82
|
-
if (verbose) {
|
|
83
|
-
logInfo('Starting AI query for growth analysis...');
|
|
84
|
-
}
|
|
85
|
-
const analysisResult = await executeGrowthAnalysisQuery(analysisPrompt, systemPrompt, config, verbose, repoCwd);
|
|
86
|
-
if (!analysisResult) {
|
|
87
|
-
throw new Error('No analysis results received');
|
|
88
|
-
}
|
|
89
|
-
// Save analysis result via MCP
|
|
90
|
-
if (verbose) {
|
|
91
|
-
logInfo('Saving growth analysis results...');
|
|
92
|
-
}
|
|
93
|
-
const analysisContent = analysisResult.analysis_content || '';
|
|
94
|
-
const targetChannels = (analysisResult.target_channels || []);
|
|
95
|
-
const contentSuggestions = (analysisResult.content_suggestions || []);
|
|
96
|
-
const searchContext = analysisResult.search_context || null;
|
|
97
|
-
const savedAnalysis = analysisId
|
|
98
|
-
? await updateGrowthAnalysis(analysisId, {
|
|
99
|
-
analysis_content: analysisContent,
|
|
100
|
-
target_channels: targetChannels,
|
|
101
|
-
content_suggestions: contentSuggestions,
|
|
102
|
-
search_context: searchContext,
|
|
103
|
-
status: 'completed',
|
|
104
|
-
}, verbose)
|
|
105
|
-
: await saveGrowthAnalysis({
|
|
106
|
-
product_id: productId,
|
|
107
|
-
analysis_content: analysisContent,
|
|
108
|
-
target_channels: targetChannels,
|
|
109
|
-
content_suggestions: contentSuggestions,
|
|
110
|
-
search_context: searchContext,
|
|
111
|
-
growth_guidance: guidance ?? null,
|
|
112
|
-
status: 'completed',
|
|
113
|
-
}, verbose);
|
|
114
|
-
logInfo(`Growth analysis completed: ${targetChannels.length} channels, ${contentSuggestions.length} suggestions`);
|
|
115
|
-
// Process video generation for applicable content suggestions
|
|
116
|
-
const videoPlans = extractVideoPlans(contentSuggestions);
|
|
117
|
-
const videoResults = new Map();
|
|
118
|
-
if (videoPlans.length > 0) {
|
|
119
|
-
logInfo(`\nFound ${videoPlans.length} content suggestion(s) with video plans`);
|
|
120
|
-
// Log all planned videos
|
|
121
|
-
for (const { index, plan } of videoPlans) {
|
|
122
|
-
const suggestion = contentSuggestions[index];
|
|
123
|
-
logInfo(`\nVideo planned for: "${suggestion.title}" [${suggestion.channel}]`);
|
|
124
|
-
logInfo(` Reason: ${plan.videoReason}`);
|
|
125
|
-
logInfo(` Scenes: ${plan.scenes.length}`);
|
|
126
|
-
}
|
|
127
|
-
// Generate videos with concurrency limit (max 2 simultaneous)
|
|
128
|
-
const MAX_CONCURRENT_VIDEOS = 2;
|
|
129
|
-
logInfo(`\nGenerating ${videoPlans.length} video(s) (max ${MAX_CONCURRENT_VIDEOS} concurrent)...`);
|
|
130
|
-
const settled = await runWithConcurrencyLimit(videoPlans.map(({ index, plan }) => () => generateGrowthVideo(plan, {
|
|
131
|
-
productId,
|
|
132
|
-
analysisId: analysisId ?? '',
|
|
133
|
-
verbose,
|
|
134
|
-
}).then((result) => ({ index, result }))), MAX_CONCURRENT_VIDEOS);
|
|
135
|
-
for (const outcome of settled) {
|
|
136
|
-
if (outcome.status !== 'fulfilled') {
|
|
137
|
-
logError(`Video generation error: ${outcome.reason instanceof Error ? outcome.reason.message : String(outcome.reason)}`);
|
|
138
|
-
continue;
|
|
139
|
-
}
|
|
140
|
-
const { index, result } = outcome.value;
|
|
141
|
-
const suggestion = contentSuggestions[index];
|
|
142
|
-
videoResults.set(index, result);
|
|
143
|
-
if (!result.success) {
|
|
144
|
-
logWarning(`Video generation failed for "${suggestion.title}": ${result.error}`);
|
|
145
|
-
continue;
|
|
146
|
-
}
|
|
147
|
-
logSuccess(`Video generated for "${suggestion.title}": ${result.duration?.toFixed(1)}s, ${result.sceneCount} scenes`);
|
|
148
|
-
if (result.localPath) {
|
|
149
|
-
logInfo(` Local: ${result.localPath}`);
|
|
150
|
-
}
|
|
151
|
-
if (result.videoUrl) {
|
|
152
|
-
logInfo(` URL: ${result.videoUrl}`);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// Build final content suggestions with video results
|
|
157
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
158
|
-
const finalSuggestions = contentSuggestions.map((s, i) => {
|
|
159
|
-
const videoPlan = s.video_plan;
|
|
160
|
-
const videoResult = videoResults.get(i);
|
|
161
|
-
return {
|
|
162
|
-
channel: s.channel,
|
|
163
|
-
title: s.title,
|
|
164
|
-
content: s.content,
|
|
165
|
-
rationale: s.rationale,
|
|
166
|
-
...(videoPlan
|
|
167
|
-
? {
|
|
168
|
-
videoPlan: {
|
|
169
|
-
shouldGenerateVideo: videoPlan.should_generate_video,
|
|
170
|
-
videoReason: videoPlan.video_reason,
|
|
171
|
-
...(videoResult ? { videoResult } : {}),
|
|
172
|
-
},
|
|
173
|
-
}
|
|
174
|
-
: {}),
|
|
175
|
-
};
|
|
176
|
-
});
|
|
177
|
-
analysisSucceeded = true;
|
|
178
|
-
return {
|
|
179
|
-
productId,
|
|
180
|
-
status: 'success',
|
|
181
|
-
summary: analysisContent || 'Analysis completed',
|
|
182
|
-
analysisId: savedAnalysis?.id,
|
|
183
|
-
targetChannels,
|
|
184
|
-
contentSuggestions: finalSuggestions,
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
catch (error) {
|
|
188
|
-
logError(`Growth analysis failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
189
|
-
return {
|
|
190
|
-
productId,
|
|
191
|
-
status: 'error',
|
|
192
|
-
summary: `Analysis failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
193
|
-
targetChannels: [],
|
|
194
|
-
contentSuggestions: [],
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
finally {
|
|
198
|
-
if (analysisSucceeded) {
|
|
199
|
-
cleanupIssueRepo(repoCwd);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
/**
|
|
204
|
-
* Run async tasks with a concurrency limit.
|
|
205
|
-
* Returns PromiseSettledResult array in the same order as input.
|
|
206
|
-
*/
|
|
207
|
-
async function runWithConcurrencyLimit(tasks, limit) {
|
|
208
|
-
const results = new Array(tasks.length);
|
|
209
|
-
let nextIndex = 0;
|
|
210
|
-
async function runNext() {
|
|
211
|
-
while (nextIndex < tasks.length) {
|
|
212
|
-
const i = nextIndex++;
|
|
213
|
-
try {
|
|
214
|
-
const value = await tasks[i]();
|
|
215
|
-
results[i] = { status: 'fulfilled', value };
|
|
216
|
-
}
|
|
217
|
-
catch (reason) {
|
|
218
|
-
results[i] = { status: 'rejected', reason };
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
// Start `limit` workers that each pull from the task queue
|
|
223
|
-
const workers = Array.from({ length: Math.min(limit, tasks.length) }, () => runNext());
|
|
224
|
-
await Promise.all(workers);
|
|
225
|
-
return results;
|
|
226
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { processConditionals, resolveSkill, } from '../../services/skill-resolver.js';
|
|
2
|
-
import { OUTPUT_CONTRACTS } from '../output-contracts.js';
|
|
3
|
-
export const createGrowthAnalysisSystemPrompt = async (hasCodebase = false, projectDir) => {
|
|
4
|
-
const skill = await resolveSkill('phase/growth-analysis', { projectDir });
|
|
5
|
-
if (!skill) {
|
|
6
|
-
throw new Error('Failed to load skill: phase/growth-analysis');
|
|
7
|
-
}
|
|
8
|
-
let { prompt } = skill;
|
|
9
|
-
prompt = processConditionals(prompt, {
|
|
10
|
-
hasCodebase,
|
|
11
|
-
});
|
|
12
|
-
return `${prompt}
|
|
13
|
-
|
|
14
|
-
${OUTPUT_CONTRACTS['growth-analysis']}`;
|
|
15
|
-
};
|
|
16
|
-
export const createGrowthAnalysisPromptWithContext = (productId, contextInfo, hasCodebase = false) => {
|
|
17
|
-
const codebaseInstructions = hasCodebase
|
|
18
|
-
? `
|
|
19
|
-
**Step 1 - Explore the codebase FIRST**: Before writing anything, use your file reading and search tools to explore this project's codebase. Look at:
|
|
20
|
-
- README.md, CLAUDE.md, package.json for project overview
|
|
21
|
-
- Landing pages, marketing copy, or documentation for existing messaging
|
|
22
|
-
- Key source files to understand what the product actually does technically
|
|
23
|
-
- Any configuration or deployment files that reveal the tech stack
|
|
24
|
-
|
|
25
|
-
**Step 2 - Analyze and create strategy**: Using your deep understanding from Step 1 plus the context above:`
|
|
26
|
-
: `
|
|
27
|
-
**Analyze and create strategy**: Using the product context above:`;
|
|
28
|
-
return `Please conduct comprehensive growth analysis for product ID: ${productId}
|
|
29
|
-
|
|
30
|
-
${contextInfo}
|
|
31
|
-
|
|
32
|
-
## Analysis Instructions
|
|
33
|
-
${codebaseInstructions}
|
|
34
|
-
1. Understand the product's real value proposition, target users, and competitive advantages
|
|
35
|
-
2. Study the previous campaigns listed above - DO NOT suggest content that overlaps with what has already been published
|
|
36
|
-
3. Identify the most effective channels for reaching this product's target audience
|
|
37
|
-
4. Generate specific, ready-to-publish content pieces using REAL details${hasCodebase ? ' from the codebase (actual issue names, real technical details, concrete benefits)' : ' from the product context above'}
|
|
38
|
-
5. For content that would benefit from visual demonstration, create detailed video scene plans with HTML templates and narration scripts
|
|
39
|
-
|
|
40
|
-
**VIDEO CONTENT**: Decide for each suggestion whether it needs a video. Include a video_plan object in every content_suggestions entry. When video adds value (demos, tutorials, issue showcases), provide complete scene plans with HTML templates featuring realistic mock data. When text is sufficient, set should_generate_video to false with a brief explanation.
|
|
41
|
-
|
|
42
|
-
**CRITICAL**: Every content piece must be ready to copy-paste and publish. Use actual product details, not placeholders.
|
|
43
|
-
|
|
44
|
-
Return ONLY the JSON response as specified in your instructions.`;
|
|
45
|
-
};
|
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
3
|
-
import { logDebug, logError, logInfo } from '../../utils/logger.js';
|
|
4
|
-
/**
|
|
5
|
-
* Find the index of the matching closer for an opener at `start`.
|
|
6
|
-
* Handles nested brackets/braces and respects JSON string boundaries.
|
|
7
|
-
*
|
|
8
|
-
* @param text The full text to scan.
|
|
9
|
-
* @param start Index of the opening character (`{` or `[`).
|
|
10
|
-
* @returns Index of the matching closer, or -1 if not found.
|
|
11
|
-
*/
|
|
12
|
-
function findMatchingClose(text, start) {
|
|
13
|
-
const opener = text[start];
|
|
14
|
-
const closer = opener === '{' ? '}' : ']';
|
|
15
|
-
let depth = 0;
|
|
16
|
-
let inString = false;
|
|
17
|
-
let escape = false;
|
|
18
|
-
for (let i = start; i < text.length; i++) {
|
|
19
|
-
const ch = text[i];
|
|
20
|
-
if (escape) {
|
|
21
|
-
escape = false;
|
|
22
|
-
continue;
|
|
23
|
-
}
|
|
24
|
-
if (ch === '\\' && inString) {
|
|
25
|
-
escape = true;
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
if (ch === '"') {
|
|
29
|
-
inString = !inString;
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
if (inString) {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
if (ch === opener) {
|
|
36
|
-
depth++;
|
|
37
|
-
}
|
|
38
|
-
else if (ch === closer) {
|
|
39
|
-
depth--;
|
|
40
|
-
if (depth === 0) {
|
|
41
|
-
return i;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return -1;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Try to extract JSON from a string using multiple strategies.
|
|
49
|
-
* Returns the parsed object or null.
|
|
50
|
-
*/
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
|
-
function extractJSON(text) {
|
|
53
|
-
// Strategy 1: ```json code block (greedy — grab the largest block)
|
|
54
|
-
const jsonBlocks = [...text.matchAll(/```json\s*\n([\s\S]*?)\n\s*```/g)];
|
|
55
|
-
if (jsonBlocks.length > 0) {
|
|
56
|
-
// Pick the largest block (most likely the full result)
|
|
57
|
-
const largest = jsonBlocks.reduce((a, b) => a[1].length >= b[1].length ? a : b);
|
|
58
|
-
try {
|
|
59
|
-
return JSON.parse(largest[1]);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// Try to repair truncated JSON from the largest block
|
|
63
|
-
const repaired = repairTruncatedJSON(largest[1]);
|
|
64
|
-
if (repaired) {
|
|
65
|
-
return repaired;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// Strategy 2: Generic code block
|
|
70
|
-
const codeBlockMatch = text.match(/```\s*\n([\s\S]*?)\n\s*```/);
|
|
71
|
-
if (codeBlockMatch) {
|
|
72
|
-
try {
|
|
73
|
-
return JSON.parse(codeBlockMatch[1]);
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
/* fall through */
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Strategy 3: Find balanced { ... } blocks using bracket counting.
|
|
80
|
-
// Tries each top-level '{' in order — if one balanced block isn't valid
|
|
81
|
-
// JSON, skip past it and keep scanning for the next '{'.
|
|
82
|
-
for (let i = 0; i < text.length; i++) {
|
|
83
|
-
if (text[i] === '{') {
|
|
84
|
-
const end = findMatchingClose(text, i);
|
|
85
|
-
if (end !== -1) {
|
|
86
|
-
try {
|
|
87
|
-
return JSON.parse(text.slice(i, end + 1));
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// This balanced block wasn't valid JSON; skip past it and keep looking
|
|
91
|
-
i = end;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
// No matching close for this '{' — skip it and try the next one
|
|
96
|
-
// (the unmatched brace might be inside prose text)
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// Strategy 4: Parse entire text as JSON
|
|
101
|
-
try {
|
|
102
|
-
return JSON.parse(text);
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Attempt to repair truncated JSON by closing open braces/brackets.
|
|
110
|
-
* Handles the common case where AI output is cut off mid-object.
|
|
111
|
-
*
|
|
112
|
-
* Uses a stack (not independent counters) so interleaved nesting like
|
|
113
|
-
* `{ "a": [ {` is closed correctly as `}]}` rather than `]}}`.
|
|
114
|
-
*/
|
|
115
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
116
|
-
function repairTruncatedJSON(text) {
|
|
117
|
-
// Strip trailing comma and incomplete value
|
|
118
|
-
let trimmed = text.replace(/,\s*"[^"]*"?\s*:?\s*$/, '');
|
|
119
|
-
trimmed = trimmed.replace(/,\s*$/, '');
|
|
120
|
-
// Track open brackets/braces in a stack so closers are emitted
|
|
121
|
-
// in the correct reverse order.
|
|
122
|
-
const stack = [];
|
|
123
|
-
let inString = false;
|
|
124
|
-
let escape = false;
|
|
125
|
-
for (const ch of trimmed) {
|
|
126
|
-
if (escape) {
|
|
127
|
-
escape = false;
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
if (ch === '\\' && inString) {
|
|
131
|
-
escape = true;
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
if (ch === '"') {
|
|
135
|
-
inString = !inString;
|
|
136
|
-
continue;
|
|
137
|
-
}
|
|
138
|
-
if (inString) {
|
|
139
|
-
continue;
|
|
140
|
-
}
|
|
141
|
-
if (ch === '{' || ch === '[') {
|
|
142
|
-
stack.push(ch);
|
|
143
|
-
}
|
|
144
|
-
else if (ch === '}' || ch === ']') {
|
|
145
|
-
stack.pop();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Close any unterminated string
|
|
149
|
-
if (inString) {
|
|
150
|
-
trimmed += '"';
|
|
151
|
-
}
|
|
152
|
-
// Nothing to close — text is already balanced (or not truncated)
|
|
153
|
-
if (stack.length === 0) {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
// Build suffix by popping the stack — each opener gets its matching closer
|
|
157
|
-
const suffix = stack
|
|
158
|
-
.reverse()
|
|
159
|
-
.map((opener) => (opener === '{' ? '}' : ']'))
|
|
160
|
-
.join('');
|
|
161
|
-
try {
|
|
162
|
-
return JSON.parse(trimmed + suffix);
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Extract individual fields from response text as a last-resort fallback.
|
|
170
|
-
*
|
|
171
|
-
* For array fields: locates `"field": [` then uses bracket-counting via
|
|
172
|
-
* `findMatchingClose` to find the balanced `]`, correctly handling nested
|
|
173
|
-
* arrays/objects inside the value.
|
|
174
|
-
*
|
|
175
|
-
* For string fields: uses a regex that respects escaped quotes.
|
|
176
|
-
*/
|
|
177
|
-
function extractFieldsFallback(text) {
|
|
178
|
-
const arrayFields = [
|
|
179
|
-
'key_findings',
|
|
180
|
-
'recommendations',
|
|
181
|
-
'discovered_competitors',
|
|
182
|
-
'competitor_snapshots',
|
|
183
|
-
'market_signals',
|
|
184
|
-
'trends',
|
|
185
|
-
'competitor_highlights',
|
|
186
|
-
];
|
|
187
|
-
const stringFields = {
|
|
188
|
-
title: /"title"\s*:\s*"((?:[^"\\]|\\.)*)"/,
|
|
189
|
-
summary: /"summary"\s*:\s*"((?:[^"\\]|\\.)*)"/,
|
|
190
|
-
report_type: /"report_type"\s*:\s*"((?:[^"\\]|\\.)*)"/,
|
|
191
|
-
};
|
|
192
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
193
|
-
const result = {};
|
|
194
|
-
let recovered = false;
|
|
195
|
-
// Array fields — find `"field": [` then bracket-count to the matching `]`
|
|
196
|
-
for (const field of arrayFields) {
|
|
197
|
-
const keyPattern = new RegExp(`"${field}"\\s*:\\s*\\[`);
|
|
198
|
-
const keyMatch = keyPattern.exec(text);
|
|
199
|
-
if (!keyMatch) {
|
|
200
|
-
continue;
|
|
201
|
-
}
|
|
202
|
-
// Position of the opening `[`
|
|
203
|
-
const bracketStart = keyMatch.index + keyMatch[0].length - 1;
|
|
204
|
-
const bracketEnd = findMatchingClose(text, bracketStart);
|
|
205
|
-
if (bracketEnd === -1) {
|
|
206
|
-
continue;
|
|
207
|
-
}
|
|
208
|
-
try {
|
|
209
|
-
result[field] = JSON.parse(text.slice(bracketStart, bracketEnd + 1));
|
|
210
|
-
recovered = true;
|
|
211
|
-
}
|
|
212
|
-
catch {
|
|
213
|
-
/* skip unparseable field */
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
// String fields — regex is safe here since values are flat strings
|
|
217
|
-
for (const [field, regex] of Object.entries(stringFields)) {
|
|
218
|
-
const match = text.match(regex);
|
|
219
|
-
if (match) {
|
|
220
|
-
result[field] = match[1].replace(/\\"/g, '"');
|
|
221
|
-
recovered = true;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return recovered ? result : null;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Parse JSON result from Claude Code response.
|
|
228
|
-
*
|
|
229
|
-
* Uses a layered approach:
|
|
230
|
-
* 1. Try clean JSON extraction (code blocks, brace matching)
|
|
231
|
-
* 2. Try repairing truncated JSON
|
|
232
|
-
* 3. Fall back to field-level extraction
|
|
233
|
-
*/
|
|
234
|
-
function parseIntelligenceResult(responseText) {
|
|
235
|
-
// Layer 1: Clean extraction
|
|
236
|
-
const jsonResult = extractJSON(responseText);
|
|
237
|
-
if (jsonResult) {
|
|
238
|
-
if (jsonResult.analysis) {
|
|
239
|
-
return { analysis: jsonResult.analysis };
|
|
240
|
-
}
|
|
241
|
-
// AI may have returned the analysis object directly (without wrapper)
|
|
242
|
-
if (jsonResult.key_findings || jsonResult.recommendations) {
|
|
243
|
-
return { analysis: jsonResult };
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
// Layer 2: Field-level fallback — salvage whatever we can
|
|
247
|
-
logInfo('Full JSON parse failed, attempting field-level recovery...');
|
|
248
|
-
const fallback = extractFieldsFallback(responseText);
|
|
249
|
-
if (fallback) {
|
|
250
|
-
logInfo(`Recovered ${Object.keys(fallback).length} fields: ${Object.keys(fallback).join(', ')}`);
|
|
251
|
-
return {
|
|
252
|
-
analysis: {
|
|
253
|
-
title: fallback.title || 'Intelligence Analysis (partial recovery)',
|
|
254
|
-
summary: fallback.summary ||
|
|
255
|
-
'Analysis completed but some results could not be parsed.',
|
|
256
|
-
...fallback,
|
|
257
|
-
},
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
return {
|
|
261
|
-
error: 'JSON parsing failed: could not extract structured data from response',
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
265
|
-
async function* prompt(analysisPrompt) {
|
|
266
|
-
yield {
|
|
267
|
-
type: 'user',
|
|
268
|
-
message: { role: 'user', content: analysisPrompt },
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
export async function executeIntelligenceQuery(currentPrompt, systemPrompt, _config, verbose, cwd) {
|
|
272
|
-
let lastAssistantResponse = '';
|
|
273
|
-
let structuredResult = null;
|
|
274
|
-
let turnCount = 0;
|
|
275
|
-
logInfo('Connecting to AI agent for intelligence analysis...');
|
|
276
|
-
for await (const message of query({
|
|
277
|
-
prompt: prompt(currentPrompt),
|
|
278
|
-
options: {
|
|
279
|
-
systemPrompt: {
|
|
280
|
-
type: 'preset',
|
|
281
|
-
preset: 'claude_code',
|
|
282
|
-
append: systemPrompt,
|
|
283
|
-
},
|
|
284
|
-
model: DEFAULT_MODEL,
|
|
285
|
-
maxTurns: 1000,
|
|
286
|
-
permissionMode: 'bypassPermissions',
|
|
287
|
-
...(cwd ? { cwd } : {}),
|
|
288
|
-
},
|
|
289
|
-
})) {
|
|
290
|
-
if (verbose) {
|
|
291
|
-
logInfo(`Received message type: ${message.type}`);
|
|
292
|
-
}
|
|
293
|
-
if (message.type === 'assistant' && message.message?.content) {
|
|
294
|
-
turnCount++;
|
|
295
|
-
for (const content of message.message.content) {
|
|
296
|
-
if (content.type === 'text') {
|
|
297
|
-
lastAssistantResponse += `${content.text}\n`;
|
|
298
|
-
logDebug(`${content.text}`, verbose);
|
|
299
|
-
}
|
|
300
|
-
else if (content.type === 'tool_use') {
|
|
301
|
-
const input = (content.input ?? {});
|
|
302
|
-
const desc = input.description ?? input.command ?? 'Running...';
|
|
303
|
-
logInfo(`[Turn ${turnCount}] ${content.name}: ${typeof desc === 'string' ? desc.slice(0, 120) : 'Running...'}`);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
if (message.type === 'result') {
|
|
308
|
-
if (message.subtype === 'success') {
|
|
309
|
-
logInfo(`\nIntelligence analysis completed after ${turnCount} turns, parsing results...`);
|
|
310
|
-
const responseText = message.result || lastAssistantResponse;
|
|
311
|
-
const parsed = parseIntelligenceResult(responseText);
|
|
312
|
-
if (parsed.error) {
|
|
313
|
-
logError(`Failed to parse intelligence result: ${parsed.error}`);
|
|
314
|
-
structuredResult = {
|
|
315
|
-
status: 'error',
|
|
316
|
-
title: 'Intelligence Analysis (parse error)',
|
|
317
|
-
summary: 'Analysis completed but results could not be parsed.',
|
|
318
|
-
key_findings: [],
|
|
319
|
-
recommendations: [],
|
|
320
|
-
};
|
|
321
|
-
}
|
|
322
|
-
else {
|
|
323
|
-
structuredResult = parsed.analysis;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
else {
|
|
327
|
-
logError(`\nAnalysis incomplete: ${message.subtype}`);
|
|
328
|
-
if (lastAssistantResponse) {
|
|
329
|
-
const parsed = parseIntelligenceResult(lastAssistantResponse);
|
|
330
|
-
if (!parsed.error) {
|
|
331
|
-
structuredResult = parsed.analysis;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
return structuredResult;
|
|
338
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { type Competitor, type CompetitorSnapshot } from '../../api/intelligence.js';
|
|
2
|
-
import { type ProductInfo } from '../../api/products.js';
|
|
3
|
-
export interface IntelligenceAnalysisContext {
|
|
4
|
-
product: ProductInfo;
|
|
5
|
-
confirmedCompetitors: Competitor[];
|
|
6
|
-
suggestedCompetitors: Competitor[];
|
|
7
|
-
previousSnapshots: Map<string, CompetitorSnapshot[]>;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Fetch all context needed for intelligence analysis via MCP endpoints
|
|
11
|
-
*/
|
|
12
|
-
export declare function fetchIntelligenceContext(productId: string, verbose?: boolean): Promise<IntelligenceAnalysisContext>;
|
|
13
|
-
/**
|
|
14
|
-
* Format context into a prompt string for the AI
|
|
15
|
-
*/
|
|
16
|
-
export declare function formatContextForPrompt(context: IntelligenceAnalysisContext, guidance?: string): string;
|
|
17
|
-
/**
|
|
18
|
-
* Prepare the full analysis prompt with all context
|
|
19
|
-
*/
|
|
20
|
-
export declare function prepareIntelligenceContext(productId: string, verbose?: boolean, reportType?: string, guidance?: string): Promise<{
|
|
21
|
-
context: IntelligenceAnalysisContext;
|
|
22
|
-
analysisPrompt: string;
|
|
23
|
-
}>;
|