edsger 0.77.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 -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,351 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Video assembler that combines screenshots and audio narration into a video.
|
|
3
|
-
* Uses ffmpeg for professional-quality video output.
|
|
4
|
-
*/
|
|
5
|
-
import { execFileSync, execSync } from 'child_process';
|
|
6
|
-
import { mkdir, writeFile } from 'fs/promises';
|
|
7
|
-
import { join } from 'path';
|
|
8
|
-
import { logError, logInfo, logWarning } from '../../utils/logger.js';
|
|
9
|
-
import { ensureFFmpeg } from '../../utils/validation.js';
|
|
10
|
-
import { getAudioDuration } from './tts-generator.js';
|
|
11
|
-
/**
|
|
12
|
-
* Check if ffmpeg is available on the system
|
|
13
|
-
*/
|
|
14
|
-
export function isFfmpegAvailable() {
|
|
15
|
-
try {
|
|
16
|
-
execSync('ffmpeg -version', { stdio: 'ignore' });
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Detect the resolution of a screenshot image using ffprobe.
|
|
25
|
-
* Returns null if detection fails (falls back to defaults).
|
|
26
|
-
*/
|
|
27
|
-
function detectScreenshotResolution(imagePath) {
|
|
28
|
-
if (!imagePath) {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
const output = execSync(`ffprobe -v quiet -select_streams v:0 -show_entries stream=width,height -of csv=p=0:s=x "${imagePath}"`, { encoding: 'utf-8' }).trim();
|
|
33
|
-
const [w, h] = output.split('x').map(Number);
|
|
34
|
-
if (w > 0 && h > 0) {
|
|
35
|
-
// Ensure even dimensions (required by h264)
|
|
36
|
-
return { width: w % 2 === 0 ? w : w + 1, height: h % 2 === 0 ? h : h + 1 };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
// Detection failed, will use defaults
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
function concatenateWithCrossfade(opts) {
|
|
45
|
-
const { segmentPaths, outputPath, fadeDuration, width: _width, height: _height, fps, codec, preset, verbose, } = opts;
|
|
46
|
-
// For 2 segments: simple single xfade
|
|
47
|
-
// For N segments: chain xfade filters [0][1]xfade -> [v01], [v01][2]xfade -> [v012], etc.
|
|
48
|
-
// We also need to merge audio with acrossfade.
|
|
49
|
-
// Get segment durations via ffprobe to calculate xfade offsets
|
|
50
|
-
const durations = [];
|
|
51
|
-
for (const seg of segmentPaths) {
|
|
52
|
-
try {
|
|
53
|
-
const durationOutput = execSync(`ffprobe -v quiet -show_entries format=duration -of csv=p=0 "${seg}"`, { encoding: 'utf-8' }).trim();
|
|
54
|
-
durations.push(parseFloat(durationOutput));
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
durations.push(5); // fallback
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// Build input args
|
|
61
|
-
const inputArgs = [];
|
|
62
|
-
for (const seg of segmentPaths) {
|
|
63
|
-
inputArgs.push('-i', seg);
|
|
64
|
-
}
|
|
65
|
-
// Build xfade filter chain
|
|
66
|
-
// offset for xfade between segment i and i+1 = cumulative_duration - (i+1)*fadeDuration
|
|
67
|
-
const n = segmentPaths.length;
|
|
68
|
-
const videoFilters = [];
|
|
69
|
-
const audioFilters = [];
|
|
70
|
-
let cumulativeDuration = durations[0];
|
|
71
|
-
for (let i = 0; i < n - 1; i++) {
|
|
72
|
-
const offset = Math.max(0, cumulativeDuration - fadeDuration);
|
|
73
|
-
const inputA = i === 0 ? `[${i}:v]` : `[vfade${i}]`;
|
|
74
|
-
const inputB = `[${i + 1}:v]`;
|
|
75
|
-
const output = i === n - 2 ? '[vout]' : `[vfade${i + 1}]`;
|
|
76
|
-
videoFilters.push(`${inputA}${inputB}xfade=transition=fade:duration=${fadeDuration}:offset=${offset.toFixed(3)}${output}`);
|
|
77
|
-
const audioA = i === 0 ? `[${i}:a]` : `[afade${i}]`;
|
|
78
|
-
const audioB = `[${i + 1}:a]`;
|
|
79
|
-
const audioOut = i === n - 2 ? '[aout]' : `[afade${i + 1}]`;
|
|
80
|
-
audioFilters.push(`${audioA}${audioB}acrossfade=d=${fadeDuration}:c1=tri:c2=tri${audioOut}`);
|
|
81
|
-
// Update cumulative duration (xfade shortens total by fadeDuration per transition)
|
|
82
|
-
cumulativeDuration = offset + durations[i + 1];
|
|
83
|
-
}
|
|
84
|
-
const filterComplex = [...videoFilters, ...audioFilters].join(';');
|
|
85
|
-
const args = [
|
|
86
|
-
'-y',
|
|
87
|
-
...inputArgs,
|
|
88
|
-
'-filter_complex',
|
|
89
|
-
filterComplex,
|
|
90
|
-
'-map',
|
|
91
|
-
'[vout]',
|
|
92
|
-
'-map',
|
|
93
|
-
'[aout]',
|
|
94
|
-
'-c:v',
|
|
95
|
-
codec,
|
|
96
|
-
'-c:a',
|
|
97
|
-
'aac',
|
|
98
|
-
'-b:a',
|
|
99
|
-
'192k',
|
|
100
|
-
'-pix_fmt',
|
|
101
|
-
'yuv420p',
|
|
102
|
-
'-r',
|
|
103
|
-
String(fps),
|
|
104
|
-
'-preset',
|
|
105
|
-
preset,
|
|
106
|
-
'-movflags',
|
|
107
|
-
'+faststart',
|
|
108
|
-
outputPath,
|
|
109
|
-
];
|
|
110
|
-
if (verbose) {
|
|
111
|
-
logInfo(`Applying crossfade (${fadeDuration}s) between ${n} segments`);
|
|
112
|
-
}
|
|
113
|
-
execFileSync('ffmpeg', args, {
|
|
114
|
-
stdio: verbose ? 'inherit' : 'ignore',
|
|
115
|
-
timeout: 600000, // longer timeout for complex filter graphs
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Simple concatenation without transitions (fallback for old ffmpeg versions).
|
|
120
|
-
*/
|
|
121
|
-
async function simpleConcatenate(segmentPaths, outputPath, tempDir, verbose) {
|
|
122
|
-
const concatFilePath = join(tempDir, 'concat.txt');
|
|
123
|
-
const concatContent = segmentPaths.map((p) => `file '${p}'`).join('\n');
|
|
124
|
-
await writeFile(concatFilePath, concatContent);
|
|
125
|
-
const concatArgs = [
|
|
126
|
-
'-y',
|
|
127
|
-
'-f',
|
|
128
|
-
'concat',
|
|
129
|
-
'-safe',
|
|
130
|
-
'0',
|
|
131
|
-
'-i',
|
|
132
|
-
concatFilePath,
|
|
133
|
-
'-c',
|
|
134
|
-
'copy',
|
|
135
|
-
'-movflags',
|
|
136
|
-
'+faststart',
|
|
137
|
-
outputPath,
|
|
138
|
-
];
|
|
139
|
-
execFileSync('ffmpeg', concatArgs, {
|
|
140
|
-
stdio: verbose ? 'inherit' : 'ignore',
|
|
141
|
-
timeout: 300000,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Assemble a video from captured screenshots and audio narration.
|
|
146
|
-
* Each screenshot is displayed for the duration of its corresponding audio.
|
|
147
|
-
*/
|
|
148
|
-
// eslint-disable-next-line complexity -- sequential video assembly with scene processing and ffmpeg orchestration
|
|
149
|
-
export async function assembleVideo(scenes, audioFiles, options, verbose) {
|
|
150
|
-
ensureFFmpeg(isFfmpegAvailable);
|
|
151
|
-
const { outputPath, width: optWidth, height: optHeight, fps = 30, codec = 'libx264', preset = 'medium', crossfadeDuration = 0.5, } = options;
|
|
152
|
-
// Ensure output directory exists
|
|
153
|
-
const outputDir = join(outputPath, '..');
|
|
154
|
-
await mkdir(outputDir, { recursive: true });
|
|
155
|
-
// Auto-detect resolution from first screenshot if not explicitly set
|
|
156
|
-
let width = optWidth || 1280;
|
|
157
|
-
let height = optHeight || 720;
|
|
158
|
-
if (!optWidth || !optHeight) {
|
|
159
|
-
const detected = detectScreenshotResolution(scenes[0]?.screenshotPath);
|
|
160
|
-
if (detected) {
|
|
161
|
-
;
|
|
162
|
-
({ width, height } = detected);
|
|
163
|
-
if (verbose) {
|
|
164
|
-
logInfo(`Auto-detected video resolution: ${width}x${height}`);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
if (verbose) {
|
|
169
|
-
logInfo(`Assembling video with ${scenes.length} scenes at ${width}x${height}`);
|
|
170
|
-
}
|
|
171
|
-
// Sort scenes and match with audio
|
|
172
|
-
const sortedScenes = [...scenes].sort((a, b) => a.order - b.order);
|
|
173
|
-
const audioMap = new Map(audioFiles.map((a) => [a.sceneOrder, a]));
|
|
174
|
-
// Get actual audio durations
|
|
175
|
-
const sceneDurations = [];
|
|
176
|
-
for (const scene of sortedScenes) {
|
|
177
|
-
const audio = audioMap.get(scene.order);
|
|
178
|
-
let { duration } = scene;
|
|
179
|
-
if (audio) {
|
|
180
|
-
try {
|
|
181
|
-
duration = await getAudioDuration(audio.audioPath);
|
|
182
|
-
// Add a small buffer at the end
|
|
183
|
-
duration += 0.5;
|
|
184
|
-
}
|
|
185
|
-
catch {
|
|
186
|
-
// Use scene-defined duration as fallback
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
sceneDurations.push({ scene, audio, duration });
|
|
190
|
-
}
|
|
191
|
-
// Strategy: Create individual scene videos, then concatenate
|
|
192
|
-
const tempDir = join(outputPath, '..', 'temp-assembly');
|
|
193
|
-
await mkdir(tempDir, { recursive: true });
|
|
194
|
-
const segmentPaths = [];
|
|
195
|
-
for (let i = 0; i < sceneDurations.length; i++) {
|
|
196
|
-
const { scene, audio, duration } = sceneDurations[i];
|
|
197
|
-
const segmentPath = join(tempDir, `segment-${String(i).padStart(3, '0')}.mp4`);
|
|
198
|
-
if (verbose) {
|
|
199
|
-
logInfo(`Creating segment ${i + 1}/${sceneDurations.length} (${duration.toFixed(1)}s)`);
|
|
200
|
-
}
|
|
201
|
-
try {
|
|
202
|
-
if (audio) {
|
|
203
|
-
// Create video segment from image + audio
|
|
204
|
-
const args = [
|
|
205
|
-
'-y',
|
|
206
|
-
'-loop',
|
|
207
|
-
'1',
|
|
208
|
-
'-i',
|
|
209
|
-
scene.screenshotPath,
|
|
210
|
-
'-i',
|
|
211
|
-
audio.audioPath,
|
|
212
|
-
'-c:v',
|
|
213
|
-
codec,
|
|
214
|
-
'-tune',
|
|
215
|
-
'stillimage',
|
|
216
|
-
'-c:a',
|
|
217
|
-
'aac',
|
|
218
|
-
'-b:a',
|
|
219
|
-
'192k',
|
|
220
|
-
'-pix_fmt',
|
|
221
|
-
'yuv420p',
|
|
222
|
-
'-vf',
|
|
223
|
-
`scale=${width}:${height}:force_original_aspect_ratio=decrease,pad=${width}:${height}:(ow-iw)/2:(oh-ih)/2:black`,
|
|
224
|
-
'-r',
|
|
225
|
-
String(fps),
|
|
226
|
-
'-shortest',
|
|
227
|
-
'-preset',
|
|
228
|
-
preset,
|
|
229
|
-
'-movflags',
|
|
230
|
-
'+faststart',
|
|
231
|
-
segmentPath,
|
|
232
|
-
];
|
|
233
|
-
execFileSync('ffmpeg', args, {
|
|
234
|
-
stdio: verbose ? 'inherit' : 'ignore',
|
|
235
|
-
timeout: 120000,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
// Create silent video segment from image with specified duration
|
|
240
|
-
const args = [
|
|
241
|
-
'-y',
|
|
242
|
-
'-loop',
|
|
243
|
-
'1',
|
|
244
|
-
'-i',
|
|
245
|
-
scene.screenshotPath,
|
|
246
|
-
'-f',
|
|
247
|
-
'lavfi',
|
|
248
|
-
'-i',
|
|
249
|
-
'anullsrc=r=44100:cl=stereo',
|
|
250
|
-
'-c:v',
|
|
251
|
-
codec,
|
|
252
|
-
'-tune',
|
|
253
|
-
'stillimage',
|
|
254
|
-
'-c:a',
|
|
255
|
-
'aac',
|
|
256
|
-
'-b:a',
|
|
257
|
-
'128k',
|
|
258
|
-
'-pix_fmt',
|
|
259
|
-
'yuv420p',
|
|
260
|
-
'-vf',
|
|
261
|
-
`scale=${width}:${height}:force_original_aspect_ratio=decrease,pad=${width}:${height}:(ow-iw)/2:(oh-ih)/2:black`,
|
|
262
|
-
'-r',
|
|
263
|
-
String(fps),
|
|
264
|
-
'-t',
|
|
265
|
-
String(duration),
|
|
266
|
-
'-preset',
|
|
267
|
-
preset,
|
|
268
|
-
'-movflags',
|
|
269
|
-
'+faststart',
|
|
270
|
-
segmentPath,
|
|
271
|
-
];
|
|
272
|
-
execFileSync('ffmpeg', args, {
|
|
273
|
-
stdio: verbose ? 'inherit' : 'ignore',
|
|
274
|
-
timeout: 120000,
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
segmentPaths.push(segmentPath);
|
|
278
|
-
}
|
|
279
|
-
catch (error) {
|
|
280
|
-
logError(`Failed to create segment ${i + 1}: ${error instanceof Error ? error.message : String(error)}`);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
if (segmentPaths.length === 0) {
|
|
284
|
-
throw new Error('No video segments were created successfully');
|
|
285
|
-
}
|
|
286
|
-
// Concatenate segments with crossfade transitions
|
|
287
|
-
if (verbose) {
|
|
288
|
-
logInfo('Concatenating segments with crossfade transitions...');
|
|
289
|
-
}
|
|
290
|
-
try {
|
|
291
|
-
if (segmentPaths.length === 1) {
|
|
292
|
-
// Single segment — just copy it
|
|
293
|
-
const { copyFileSync } = await import('fs');
|
|
294
|
-
copyFileSync(segmentPaths[0], outputPath);
|
|
295
|
-
}
|
|
296
|
-
else if (crossfadeDuration > 0 && segmentPaths.length >= 2) {
|
|
297
|
-
// Try xfade crossfade, fall back to simple concat if ffmpeg version doesn't support it
|
|
298
|
-
try {
|
|
299
|
-
concatenateWithCrossfade({
|
|
300
|
-
segmentPaths,
|
|
301
|
-
outputPath,
|
|
302
|
-
fadeDuration: crossfadeDuration,
|
|
303
|
-
width,
|
|
304
|
-
height,
|
|
305
|
-
fps,
|
|
306
|
-
codec,
|
|
307
|
-
preset,
|
|
308
|
-
verbose,
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
catch (xfadeError) {
|
|
312
|
-
logWarning(`Crossfade failed (ffmpeg may not support xfade filter, requires 4.3+): ${xfadeError instanceof Error ? xfadeError.message : String(xfadeError)}`);
|
|
313
|
-
logInfo('Falling back to simple concatenation...');
|
|
314
|
-
await simpleConcatenate(segmentPaths, outputPath, tempDir, verbose);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
await simpleConcatenate(segmentPaths, outputPath, tempDir, verbose);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
catch (error) {
|
|
322
|
-
throw new Error(`Failed to concatenate video segments: ${error instanceof Error ? error.message : String(error)}`);
|
|
323
|
-
}
|
|
324
|
-
// Get final video info
|
|
325
|
-
const { statSync } = await import('fs');
|
|
326
|
-
const stats = statSync(outputPath);
|
|
327
|
-
let totalDuration = 0;
|
|
328
|
-
try {
|
|
329
|
-
const durationOutput = execSync(`ffprobe -v quiet -show_entries format=duration -of csv=p=0 "${outputPath}"`, { encoding: 'utf-8' }).trim();
|
|
330
|
-
totalDuration = parseFloat(durationOutput);
|
|
331
|
-
}
|
|
332
|
-
catch {
|
|
333
|
-
totalDuration = sceneDurations.reduce((sum, s) => sum + s.duration, 0);
|
|
334
|
-
}
|
|
335
|
-
// Clean up temp directory
|
|
336
|
-
try {
|
|
337
|
-
const { rmSync } = await import('fs');
|
|
338
|
-
rmSync(tempDir, { recursive: true, force: true });
|
|
339
|
-
}
|
|
340
|
-
catch {
|
|
341
|
-
logWarning('Could not clean up temporary assembly files');
|
|
342
|
-
}
|
|
343
|
-
const result = {
|
|
344
|
-
videoPath: outputPath,
|
|
345
|
-
duration: totalDuration,
|
|
346
|
-
fileSize: stats.size,
|
|
347
|
-
sceneCount: segmentPaths.length,
|
|
348
|
-
};
|
|
349
|
-
logInfo(`Video assembled: ${result.sceneCount} scenes, ${totalDuration.toFixed(1)}s, ${(stats.size / 1024 / 1024).toFixed(1)}MB`);
|
|
350
|
-
return result;
|
|
351
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Video uploader for growth videos.
|
|
3
|
-
* Uploads generated videos directly to Supabase Storage REST API and saves locally.
|
|
4
|
-
*/
|
|
5
|
-
export interface VideoUploadResult {
|
|
6
|
-
/** Public URL of the uploaded video */
|
|
7
|
-
publicUrl: string;
|
|
8
|
-
/** Storage path in Supabase */
|
|
9
|
-
storagePath: string;
|
|
10
|
-
/** Local backup path */
|
|
11
|
-
localPath: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Upload a video file directly to Supabase Storage REST API.
|
|
15
|
-
* Uses streaming binary upload instead of base64 encoding via MCP JSON-RPC.
|
|
16
|
-
*/
|
|
17
|
-
export declare function uploadGrowthVideo(videoPath: string, productId: string, analysisId: string, verbose?: boolean): Promise<VideoUploadResult>;
|
|
18
|
-
/**
|
|
19
|
-
* Save video metadata to the growth analysis record via MCP.
|
|
20
|
-
*/
|
|
21
|
-
export declare function saveVideoMetadata(analysisId: string, videoData: {
|
|
22
|
-
video_url: string;
|
|
23
|
-
video_storage_path: string;
|
|
24
|
-
video_local_path: string;
|
|
25
|
-
video_duration: number;
|
|
26
|
-
video_file_size: number;
|
|
27
|
-
video_scene_count: number;
|
|
28
|
-
}, verbose?: boolean): Promise<void>;
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Video uploader for growth videos.
|
|
3
|
-
* Uploads generated videos directly to Supabase Storage REST API and saves locally.
|
|
4
|
-
*/
|
|
5
|
-
import { copyFile, mkdir, readFile } from 'fs/promises';
|
|
6
|
-
import { homedir } from 'os';
|
|
7
|
-
import { join } from 'path';
|
|
8
|
-
import { callMcpEndpoint } from '../../api/mcp-client.js';
|
|
9
|
-
import { getSignedUploadUrls } from '../../api/storage.js';
|
|
10
|
-
import { getMcpServerUrl } from '../../auth/auth-store.js';
|
|
11
|
-
import { logError, logInfo } from '../../utils/logger.js';
|
|
12
|
-
import { fetchWithRetry } from './retry.js';
|
|
13
|
-
/**
|
|
14
|
-
* Get the local backup directory for growth videos
|
|
15
|
-
*/
|
|
16
|
-
function getLocalVideoDir() {
|
|
17
|
-
return join(homedir(), '.edsger', 'growth-videos');
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Derive the Supabase Storage REST API base URL from the MCP server URL.
|
|
21
|
-
* MCP URL format: https://<project>.supabase.co/functions/v1
|
|
22
|
-
* Storage URL: https://<project>.supabase.co/storage/v1
|
|
23
|
-
*/
|
|
24
|
-
function getStorageBaseUrl() {
|
|
25
|
-
const mcpUrl = getMcpServerUrl();
|
|
26
|
-
if (!mcpUrl) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
// Replace /functions/v1 with /storage/v1
|
|
30
|
-
const url = new URL(mcpUrl);
|
|
31
|
-
url.pathname = '/storage/v1';
|
|
32
|
-
return url.toString().replace(/\/$/, '');
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Upload a video file directly to Supabase Storage REST API.
|
|
36
|
-
* Uses streaming binary upload instead of base64 encoding via MCP JSON-RPC.
|
|
37
|
-
*/
|
|
38
|
-
export async function uploadGrowthVideo(videoPath, productId, analysisId, verbose) {
|
|
39
|
-
// 1. Save local backup
|
|
40
|
-
const localDir = join(getLocalVideoDir(), productId);
|
|
41
|
-
await mkdir(localDir, { recursive: true });
|
|
42
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
43
|
-
const localFileName = `growth-${timestamp}.mp4`;
|
|
44
|
-
const localPath = join(localDir, localFileName);
|
|
45
|
-
await copyFile(videoPath, localPath);
|
|
46
|
-
logInfo(`Local backup saved: ${localPath}`);
|
|
47
|
-
// 2. Upload directly to Supabase Storage REST API
|
|
48
|
-
const storagePath = `${productId}/${analysisId}/${localFileName}`;
|
|
49
|
-
try {
|
|
50
|
-
const storageBaseUrl = getStorageBaseUrl();
|
|
51
|
-
if (!storageBaseUrl) {
|
|
52
|
-
throw new Error('Not authenticated. Run `edsger login` to configure storage access.');
|
|
53
|
-
}
|
|
54
|
-
const videoBuffer = await readFile(videoPath);
|
|
55
|
-
if (verbose) {
|
|
56
|
-
logInfo(`Uploading video to Supabase Storage (${(videoBuffer.length / 1024 / 1024).toFixed(1)}MB)...`);
|
|
57
|
-
}
|
|
58
|
-
// Get a signed upload URL from the MCP server
|
|
59
|
-
const signedUrls = await getSignedUploadUrls('growth-videos', [storagePath], verbose);
|
|
60
|
-
if (!signedUrls.length) {
|
|
61
|
-
throw new Error('Failed to get signed upload URL for video');
|
|
62
|
-
}
|
|
63
|
-
// Upload using the signed URL (PUT, no auth header needed)
|
|
64
|
-
await fetchWithRetry(signedUrls[0].signed_url, {
|
|
65
|
-
method: 'PUT',
|
|
66
|
-
headers: {
|
|
67
|
-
'Content-Type': 'video/mp4',
|
|
68
|
-
},
|
|
69
|
-
body: new Uint8Array(videoBuffer),
|
|
70
|
-
}, { label: 'Supabase Storage upload' });
|
|
71
|
-
// Build the public URL
|
|
72
|
-
const publicUrl = `${storageBaseUrl}/object/public/growth-videos/${storagePath}`;
|
|
73
|
-
const uploadResult = {
|
|
74
|
-
publicUrl,
|
|
75
|
-
storagePath,
|
|
76
|
-
localPath,
|
|
77
|
-
};
|
|
78
|
-
logInfo(`Video uploaded successfully: ${uploadResult.publicUrl}`);
|
|
79
|
-
return uploadResult;
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
logError(`Failed to upload video to remote storage: ${error instanceof Error ? error.message : String(error)}`);
|
|
83
|
-
logInfo('Video is still saved locally and can be uploaded later.');
|
|
84
|
-
return {
|
|
85
|
-
publicUrl: '',
|
|
86
|
-
storagePath,
|
|
87
|
-
localPath,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Save video metadata to the growth analysis record via MCP.
|
|
93
|
-
*/
|
|
94
|
-
export async function saveVideoMetadata(analysisId, videoData, verbose) {
|
|
95
|
-
try {
|
|
96
|
-
if (verbose) {
|
|
97
|
-
logInfo(`Saving video metadata for analysis: ${analysisId}`);
|
|
98
|
-
}
|
|
99
|
-
await callMcpEndpoint('growth/save_video_metadata', {
|
|
100
|
-
analysis_id: analysisId,
|
|
101
|
-
...videoData,
|
|
102
|
-
});
|
|
103
|
-
logInfo('Video metadata saved successfully');
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
logError(`Failed to save video metadata: ${error instanceof Error ? error.message : String(error)}`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Lay out the realistic options for an architecture decision with an honest, context-grounded pros/cons analysis for a human to choose from
|
|
3
|
-
kind: phase
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are a principal engineer producing an Architecture Decision Record (ADR). The human will state a decision that needs to be made. Your job is to lay out the realistic options with an honest, context-grounded pros/cons analysis so a human can choose — you do NOT make the final choice, but you DO give a clear recommendation.
|
|
8
|
-
|
|
9
|
-
<!-- if:hasCodebase -->
|
|
10
|
-
|
|
11
|
-
You have the project's codebase available in your working directory. Read the relevant files to ground your analysis: inspect the existing architecture, dependencies, conventions, and constraints before forming options. Cite what you find.
|
|
12
|
-
|
|
13
|
-
<!-- endif -->
|
|
14
|
-
<!-- if:!hasCodebase -->
|
|
15
|
-
|
|
16
|
-
You do NOT have the codebase available. Reason from the provided context and your engineering knowledge, and be explicit about assumptions you are making.
|
|
17
|
-
|
|
18
|
-
<!-- endif -->
|
|
19
|
-
|
|
20
|
-
**Approach**:
|
|
21
|
-
|
|
22
|
-
1. Make sure you understand exactly what is being decided and why it matters.
|
|
23
|
-
2. Investigate the relevant context (codebase, constraints, prior art).
|
|
24
|
-
3. Enumerate the credible options. For each, weigh benefits against costs, risks, migration effort, and how well it fits the existing system.
|
|
25
|
-
4. Recommend one, briefly justified by the trade-offs.
|
|
26
|
-
|
|
27
|
-
## Output contract
|
|
28
|
-
|
|
29
|
-
When you have finished investigating, output a SINGLE JSON object (in a ```json code block) and nothing else after it. Shape:
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"options": [
|
|
34
|
-
{
|
|
35
|
-
"title": "Short name of the option (one line)",
|
|
36
|
-
"summary": "1-3 sentences describing the approach concretely",
|
|
37
|
-
"pros": ["benefit 1", "benefit 2"],
|
|
38
|
-
"cons": ["drawback 1", "drawback 2"],
|
|
39
|
-
"is_recommended": false
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Rules:
|
|
46
|
-
|
|
47
|
-
- Provide 2 to 4 genuinely distinct options that a competent engineer would realistically weigh. Avoid strawman options.
|
|
48
|
-
- Ground pros/cons in THIS codebase and context — reference concrete files, libraries, patterns, or constraints you observed, not generic textbook points.
|
|
49
|
-
- Mark exactly ONE option `"is_recommended": true` — your best judgement given the trade-offs. Be opinionated.
|
|
50
|
-
- `pros` and `cons` are arrays of short strings. Keep each to one sentence.
|
|
51
|
-
- Output ONLY the JSON object at the end. Do not wrap it in prose.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Analyze user behavior logs to identify issues and improvement opportunities
|
|
3
|
-
kind: phase
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are a product analyst AI. You analyze user behavior logs from a product to identify issues, pain points, and improvement opportunities.
|
|
8
|
-
|
|
9
|
-
Your job is to:
|
|
10
|
-
|
|
11
|
-
1. Read through the user's interaction logs carefully
|
|
12
|
-
2. Identify patterns that suggest problems (errors, repeated actions, abandoned flows, confusion)
|
|
13
|
-
3. Identify opportunities for product improvement
|
|
14
|
-
4. Generate actionable feedback items that the product team can act on
|
|
15
|
-
|
|
16
|
-
For each issue or improvement you find, output a structured feedback item.
|
|
17
|
-
|
|
18
|
-
IMPORTANT RULES:
|
|
19
|
-
|
|
20
|
-
- Only report genuine issues or meaningful improvements, not noise
|
|
21
|
-
- Be specific about what happened and what should change
|
|
22
|
-
- Prioritize by impact: bugs > usability issues > minor improvements
|
|
23
|
-
- If the logs show normal, successful usage with no issues, say so and return an empty array
|
|
24
|
-
- Do NOT fabricate issues that aren't supported by the log data
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Generate professional app store listings and screenshot compositions for a product
|
|
3
|
-
kind: phase
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are an expert app store optimization (ASO) specialist and UI/UX designer. Your task is to generate professional app store listings and screenshot compositions for a product.
|
|
8
|
-
|
|
9
|
-
**Your Role**: Create compelling store listings and visually stunning screenshot HTML templates that showcase the product's key issues with realistic mock data, professional text overlays, and gradient backgrounds.
|
|
10
|
-
|
|
11
|
-
**Analysis Process**:
|
|
12
|
-
|
|
13
|
-
<!-- if:hasCodebase -->
|
|
14
|
-
|
|
15
|
-
1. **Explore the Codebase**: Use your tools to read README, CLAUDE.md, package.json, landing pages, and key source files to deeply understand the product.
|
|
16
|
-
2. **Understand the Product**: Build a complete picture of issues, UX flows, and value proposition.
|
|
17
|
-
3. **Identify Key Issues**: Pick 5-8 standout issues to highlight in screenshots.
|
|
18
|
-
4. **Create Screenshot Compositions**: Design each as a complete HTML page with gradient background, headline text overlay, and a device-framed mock app UI.
|
|
19
|
-
5. **Write Store Listings**: Generate optimized app name, subtitle, description, and keywords.
|
|
20
|
-
<!-- endif -->
|
|
21
|
-
<!-- if:!hasCodebase -->
|
|
22
|
-
6. **Understand the Product**: Analyze the product from the provided context.
|
|
23
|
-
7. **Identify Key Issues**: Pick 5-8 standout issues to highlight in screenshots.
|
|
24
|
-
8. **Create Screenshot Compositions**: Design each as a complete HTML page with gradient background, headline text overlay, and a device-framed mock app UI.
|
|
25
|
-
9. **Write Store Listings**: Generate optimized app name, subtitle, description, and keywords.
|
|
26
|
-
<!-- endif -->
|
|
27
|
-
|
|
28
|
-
**Screenshot Design Standards**:
|
|
29
|
-
|
|
30
|
-
- Each screenshot must tell a story about a specific issue
|
|
31
|
-
- Professional gradient backgrounds (not flat colors)
|
|
32
|
-
- Bold headline text (2-5 words) at top or bottom, large and readable
|
|
33
|
-
- Optional subheadline with supporting detail
|
|
34
|
-
- The "app mock" area should show realistic UI with mock data (real-looking names, numbers, dates)
|
|
35
|
-
- Modern CSS: flexbox, grid, gradients, shadows, rounded corners
|
|
36
|
-
- Text must be legible at all display sizes
|
|
37
|
-
- Each HTML template is a complete self-contained page with inline CSS
|
|
38
|
-
- The template renders at exact store-required dimensions
|
|
39
|
-
|
|
40
|
-
**Store Listing Standards**:
|
|
41
|
-
|
|
42
|
-
- App name: max 30 characters, compelling and searchable
|
|
43
|
-
- Subtitle: max 30 characters (Apple), punchy value proposition
|
|
44
|
-
- Promotional text: max 170 characters (Apple), highlights current promotions or issues — can be updated without a new app version
|
|
45
|
-
- Short description: max 80 characters (Google Play)
|
|
46
|
-
- Description: max 4000 characters, benefit-focused with issue bullets
|
|
47
|
-
- Keywords: max 100 characters (Apple), comma-separated, no spaces after commas
|
|
48
|
-
- What's New: concise release notes highlighting latest improvements
|
|
49
|
-
|
|
50
|
-
**CRITICAL - NO PLACEHOLDERS**: All content must be fully written using real product details. Never use brackets like [Issue] or [App Name].
|
|
51
|
-
|
|
52
|
-
**Screenshot HTML Template Guidelines**:
|
|
53
|
-
|
|
54
|
-
- Each template should render the mock app UI (NOT the store composition — composition is handled separately)
|
|
55
|
-
- Include realistic mock data that demonstrates the issue
|
|
56
|
-
- Use modern, clean design matching current app design trends
|
|
57
|
-
- Mobile screenshots: design for portrait orientation
|
|
58
|
-
- Tablet/desktop screenshots: design for the appropriate orientation
|
|
59
|
-
- Set appropriate viewport meta tags for the target device size
|
|
60
|
-
- The HTML renders the "screen content" — it will be wrapped in device frame + background + text overlay automatically
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Map a product's high-level architecture — components/modules/services/datastores and their dependencies — into a component diagram
|
|
3
|
-
kind: phase
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are a staff engineer reverse-engineering a product's **architecture** from source code. Your output is a structured graph the desktop app renders as a component / dependency diagram (C4 container/component level). You read the repo structure and code — not a running system.
|
|
8
|
-
|
|
9
|
-
**Components (nodes)** — each is `{ slug, name, kind, file?, description?, tech?, responsibilities? }`:
|
|
10
|
-
|
|
11
|
-
- `kind`: `ui` (front-end / app surface), `service` (a deployable backend / API / worker), `module` (an internal code module/layer), `package` (a workspace/library package), `datastore` (DB / cache / bucket / queue), `external` (third-party system or API)
|
|
12
|
-
- `tech`: framework / technology hint (`next.js`, `electron`, `postgres`, `stripe`)
|
|
13
|
-
- `responsibilities`: 1-4 short bullets of what it owns
|
|
14
|
-
- `file`: the directory or entry file that anchors it
|
|
15
|
-
|
|
16
|
-
**Dependencies (edges)** — each is `{ fromSlug, toSlug, kind, label?, sourceFile? }`. `fromSlug` is the depender:
|
|
17
|
-
|
|
18
|
-
- `depends-on` — generic dependency
|
|
19
|
-
- `calls` — runtime call (HTTP/RPC/IPC) to another component
|
|
20
|
-
- `imports` — code-level import dependency between modules/packages
|
|
21
|
-
- `data` — reads/writes a datastore or sends to a queue
|
|
22
|
-
- `label`: optional clarifier (`REST`, `reads`, `publishes`)
|
|
23
|
-
|
|
24
|
-
**Discipline**:
|
|
25
|
-
|
|
26
|
-
- Be grounded — every component maps to real code (a package, a service dir, a datastore client, a third-party SDK). No invented services.
|
|
27
|
-
- Operate at the right altitude: aim for ~10-25 components. Group leaf files into their owning module/package; do NOT draw a file-level import graph.
|
|
28
|
-
- Capture the boundaries that matter: app surfaces, backend services/functions, shared packages, datastores, and external systems.
|
|
29
|
-
- Deduplicate; one node per component.
|
|
30
|
-
|
|
31
|
-
**Process**:
|
|
32
|
-
|
|
33
|
-
<!-- if:hasCodebase -->
|
|
34
|
-
1. Detect the top-level structure: monorepo workspaces / packages, top-level `src` dirs, deployment units (apps, services, edge functions), `package.json`/manifests.
|
|
35
|
-
2. Create a component per meaningful unit with the right kind; identify datastores (DB clients, migrations, cache) and external systems (third-party SDKs/APIs).
|
|
36
|
-
3. Wire dependencies from the import graph between packages/modules, cross-service calls, and datastore/external access.
|
|
37
|
-
4. Compose the summary (what kind of system, its main building blocks).
|
|
38
|
-
<!-- endif -->
|
|
39
|
-
<!-- if:!hasCodebase -->
|
|
40
|
-
5. Infer a reasonable architecture from the product description + guidance; say in the summary that it is inferred. Use concrete component names, no placeholders.
|
|
41
|
-
<!-- endif -->
|