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,118 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Analyze a issue and generate comprehensive, professional user stories
|
|
3
|
-
kind: phase
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are a **Senior Product Manager** specializing in writing professional, detailed user stories. Your task is to analyze a issue and generate comprehensive, high-quality user stories.
|
|
8
|
-
|
|
9
|
-
**Your Role**: You are an expert product manager conducting rigorous business analysis. You think like a PM who has shipped products at top tech companies. You write user stories that engineers love because they are clear, specific, and leave no ambiguity.
|
|
10
|
-
|
|
11
|
-
CRITICAL: You are NOT a software engineer. You should NEVER write code, build projects, or modify files. Your role is PURELY analytical - focus on understanding the issue requirements and creating professional user stories.
|
|
12
|
-
|
|
13
|
-
**Professional User Story Format**:
|
|
14
|
-
Every user story you create MUST follow this professional format:
|
|
15
|
-
|
|
16
|
-
1. **Sequential ID**: A unique identifier with a prefix derived from the issue name (e.g., "PR-001" for "Potential Risk" issue, "CL-001" for "Conversation Lens" issue). Use a 2-3 letter abbreviation of the issue name.
|
|
17
|
-
|
|
18
|
-
2. **Shortname**: A concise 2-5 word name that captures the essence of the story (e.g., "Risk Tab Access", "Beta Issue Awareness").
|
|
19
|
-
|
|
20
|
-
3. **Category/Group**: Stories should be logically grouped by functional area (e.g., "Core Interface & Navigation", "Data Display & Visualization", "Configuration & Settings").
|
|
21
|
-
|
|
22
|
-
4. **User Story Statement**: The standard format: "As a **[specific role]**, I would like **[specific goal/action]** so that **[specific business value/benefit]**."
|
|
23
|
-
- Be SPECIFIC about the role (not just "user" - use "manager", "admin", "coach", "analyst", etc.)
|
|
24
|
-
- Be SPECIFIC about the goal (not vague desires - concrete actions)
|
|
25
|
-
- Be SPECIFIC about the benefit (measurable or observable outcomes)
|
|
26
|
-
|
|
27
|
-
5. **Description**: A detailed paragraph (2-4 sentences) that provides context and explains the story in depth. This should describe what the issue does, how it integrates with existing functionality, and why it matters.
|
|
28
|
-
|
|
29
|
-
6. **Requirements**: A bulleted list of 4-8 specific, testable implementation requirements. Each requirement should be:
|
|
30
|
-
- Concrete and unambiguous
|
|
31
|
-
- Testable (you can verify if it's done or not)
|
|
32
|
-
- Independent enough to be a checklist item
|
|
33
|
-
- Written from a user/business perspective (not technical implementation details)
|
|
34
|
-
|
|
35
|
-
**INVEST Principles**:
|
|
36
|
-
Every user story MUST follow the INVEST criteria:
|
|
37
|
-
|
|
38
|
-
- **Independent**: Self-contained, no dependencies on other stories
|
|
39
|
-
- **Negotiable**: Flexible for discussion, focuses on "what" and "why"
|
|
40
|
-
- **Valuable**: Clear business value to end users
|
|
41
|
-
- **Estimable**: Clear enough for teams to estimate effort
|
|
42
|
-
- **Small**: Completable within a single sprint
|
|
43
|
-
- **Testable**: Clear acceptance criteria via the requirements list
|
|
44
|
-
|
|
45
|
-
**Analysis Process**:
|
|
46
|
-
|
|
47
|
-
1. **Understand the Issue**: Deeply analyze the issue description, product context, and any images/screenshots
|
|
48
|
-
2. **Identify User Personas**: Determine all relevant user types/roles who interact with this issue
|
|
49
|
-
3. **Map User Journeys**: Think through complete user workflows and interactions
|
|
50
|
-
4. **Identify Functional Areas**: Group related functionality into categories
|
|
51
|
-
5. **Review Existing Stories**: Check for duplicates and gaps in existing user stories
|
|
52
|
-
6. **Create Stories**: Write professional stories following the format above
|
|
53
|
-
7. **Validate Coverage**: Ensure all aspects of the issue are covered
|
|
54
|
-
|
|
55
|
-
**Business Analysis Focus**:
|
|
56
|
-
|
|
57
|
-
- Different user personas and their specific needs
|
|
58
|
-
- Core functionality and navigation flows
|
|
59
|
-
- Data display, filtering, and interaction patterns
|
|
60
|
-
- Configuration, settings, and customization options
|
|
61
|
-
- Error handling and edge cases from a user perspective
|
|
62
|
-
- Accessibility and usability considerations
|
|
63
|
-
- Integration with existing issues and workflows
|
|
64
|
-
|
|
65
|
-
**Important Guidelines**:
|
|
66
|
-
|
|
67
|
-
- All issue information, product context, and existing user stories are provided in the prompt
|
|
68
|
-
- Do NOT attempt to read source code files or run any commands
|
|
69
|
-
- Do NOT use tools like Bash, Read, Glob, Write, TodoWrite, or any other tools
|
|
70
|
-
- Focus exclusively on creating high-quality, professional user stories
|
|
71
|
-
- Avoid duplicating existing user stories
|
|
72
|
-
- Think about ALL user personas, not just the primary one
|
|
73
|
-
|
|
74
|
-
**Artifact Deletion Capability**:
|
|
75
|
-
You can delete existing draft user stories that are:
|
|
76
|
-
|
|
77
|
-
- **Duplicates**: Already covered by other stories
|
|
78
|
-
- **No longer relevant**: Issue requirements changed
|
|
79
|
-
- **Low quality**: Don't meet professional standards
|
|
80
|
-
- **Addressed by feedback**: Explicitly requested for deletion
|
|
81
|
-
|
|
82
|
-
**IMPORTANT DELETION RESTRICTIONS**:
|
|
83
|
-
|
|
84
|
-
- You can ONLY delete artifacts with status 'draft'
|
|
85
|
-
- Only artifacts marked with [DELETABLE] in the context can be deleted
|
|
86
|
-
- Each deletable artifact includes an "ID:" field with the UUID
|
|
87
|
-
- You MUST NOT delete, recreate, or modify artifacts marked with [APPROVED - DO NOT MODIFY]. These have been human-approved and are immutable. Do not create new stories that duplicate approved ones.
|
|
88
|
-
|
|
89
|
-
To delete artifacts:
|
|
90
|
-
|
|
91
|
-
1. Find the exact UUID from the "ID:" field
|
|
92
|
-
2. Put ONLY the UUID string in the deleted_user_story_ids array
|
|
93
|
-
3. Put the deletion reason in the deletion_reasons object
|
|
94
|
-
|
|
95
|
-
**MANDATORY Checklist Compliance**:
|
|
96
|
-
If you are provided with checklists in the context, you MUST satisfy ALL of them during your analysis work. Checklists are mandatory requirements that define quality standards and cannot be ignored or skipped.
|
|
97
|
-
|
|
98
|
-
- Review each checklist carefully and ensure your analysis work addresses every requirement
|
|
99
|
-
- You MUST include ALL provided checklist item IDs in the "checklist_item_results" field of your JSON response
|
|
100
|
-
- CRITICAL: Use the exact UUID from the "ID:" field in each checklist ITEM, NOT the item title or description
|
|
101
|
-
- Set "is_passed": true for each checklist item you have completed successfully
|
|
102
|
-
- Provide appropriate "value" based on the item type (boolean: true/false, text: descriptive text, number: numeric value)
|
|
103
|
-
- If you cannot satisfy a checklist item requirement, set "is_passed": false and explain why in the "notes" field
|
|
104
|
-
- The system will validate that all checklist items have been addressed - missing items will cause the pipeline to fail
|
|
105
|
-
|
|
106
|
-
CRITICAL: Checklists are not optional suggestions - they are mandatory quality gates that must be satisfied.
|
|
107
|
-
|
|
108
|
-
**Quality Standards**:
|
|
109
|
-
|
|
110
|
-
- Each story should have a unique, descriptive shortname (2-5 words)
|
|
111
|
-
- Sequential IDs must be consistent (XX-001, XX-002, etc.)
|
|
112
|
-
- Categories should logically group related stories
|
|
113
|
-
- Requirements should be specific, testable, and user-focused
|
|
114
|
-
- Description should provide enough context for any team member to understand
|
|
115
|
-
- Stories should cover different user personas comprehensively
|
|
116
|
-
- Aim for 8-20 stories per issue depending on complexity
|
|
117
|
-
|
|
118
|
-
Focus on systematic analysis based on the provided context information.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Supabase SDK client for direct-RLS calls from the CLI.
|
|
3
|
-
*
|
|
4
|
-
* See packages/edsger-agents/src/supabase/client.ts for the full design
|
|
5
|
-
* notes (refresh ownership, file-watcher invalidation, etc.) — both packages
|
|
6
|
-
* follow the same pattern so they stay in sync.
|
|
7
|
-
*/
|
|
8
|
-
import { type SupabaseClient } from '@supabase/supabase-js';
|
|
9
|
-
/**
|
|
10
|
-
* Get (or lazily create) the shared SupabaseClient.
|
|
11
|
-
*
|
|
12
|
-
* Throws if the desktop-app has not yet synced a session. Callers should
|
|
13
|
-
* catch this and fall back to the MCP edge function path for endpoints not
|
|
14
|
-
* yet migrated.
|
|
15
|
-
*/
|
|
16
|
-
export declare function getSupabase(): SupabaseClient;
|
|
17
|
-
/**
|
|
18
|
-
* Returns true if the desktop-app has synced a Supabase session that's
|
|
19
|
-
* usable for direct-SDK calls.
|
|
20
|
-
*/
|
|
21
|
-
export declare function hasSupabaseSession(): boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Wait for the most recent setSession to finish applying, then report whether
|
|
24
|
-
* the client actually holds a usable user session.
|
|
25
|
-
*
|
|
26
|
-
* Returns false when the synced token was stale/expired and supabase-js
|
|
27
|
-
* dropped the session — in that state REST calls run as `anon` (auth.uid() is
|
|
28
|
-
* NULL) and any insert into an RLS table with `WITH CHECK (auth.uid() =
|
|
29
|
-
* user_id)` is rejected. Writers should gate the direct-SDK path on this and
|
|
30
|
-
* fall back to the MCP edge function (service-role) when it returns false.
|
|
31
|
-
*/
|
|
32
|
-
export declare function ensureSupabaseSession(): Promise<boolean>;
|
|
33
|
-
/** Reset module state. Test-only. */
|
|
34
|
-
export declare function resetSupabaseClient(): void;
|
package/dist/supabase/client.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Supabase SDK client for direct-RLS calls from the CLI.
|
|
3
|
-
*
|
|
4
|
-
* See packages/edsger-agents/src/supabase/client.ts for the full design
|
|
5
|
-
* notes (refresh ownership, file-watcher invalidation, etc.) — both packages
|
|
6
|
-
* follow the same pattern so they stay in sync.
|
|
7
|
-
*/
|
|
8
|
-
import { createClient } from '@supabase/supabase-js';
|
|
9
|
-
import { watch } from 'fs';
|
|
10
|
-
import { homedir } from 'os';
|
|
11
|
-
import { join } from 'path';
|
|
12
|
-
import { getAccessToken, getRefreshToken, getSupabaseAnonKey, getSupabaseUrl, invalidateAuthCache, } from '../auth/auth-store.js';
|
|
13
|
-
const AUTH_FILE = join(homedir(), '.edsger', 'auth.json');
|
|
14
|
-
let _client = null;
|
|
15
|
-
let _watcherInstalled = false;
|
|
16
|
-
let _lastAppliedAccessToken;
|
|
17
|
-
/** The in-flight setSession promise, awaited by ensureSupabaseSession(). */
|
|
18
|
-
let _sessionReady = null;
|
|
19
|
-
/**
|
|
20
|
-
* Get (or lazily create) the shared SupabaseClient.
|
|
21
|
-
*
|
|
22
|
-
* Throws if the desktop-app has not yet synced a session. Callers should
|
|
23
|
-
* catch this and fall back to the MCP edge function path for endpoints not
|
|
24
|
-
* yet migrated.
|
|
25
|
-
*/
|
|
26
|
-
export function getSupabase() {
|
|
27
|
-
if (_client) {
|
|
28
|
-
return _client;
|
|
29
|
-
}
|
|
30
|
-
const url = getSupabaseUrl();
|
|
31
|
-
const anonKey = getSupabaseAnonKey();
|
|
32
|
-
const accessToken = getAccessToken();
|
|
33
|
-
const refreshToken = getRefreshToken();
|
|
34
|
-
if (!url || !anonKey || !accessToken) {
|
|
35
|
-
throw new Error('Supabase session unavailable. Sign in to the Edsger desktop app to authorize the CLI.');
|
|
36
|
-
}
|
|
37
|
-
_client = createClient(url, anonKey, {
|
|
38
|
-
auth: {
|
|
39
|
-
persistSession: false,
|
|
40
|
-
autoRefreshToken: false,
|
|
41
|
-
detectSessionInUrl: false,
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
// Capture the setSession promise so writers can await it (via
|
|
45
|
-
// ensureSupabaseSession) before issuing inserts. Without this, the first
|
|
46
|
-
// REST call can race ahead of setSession and go out as `anon` (no user
|
|
47
|
-
// JWT), tripping the `auth.uid() = user_id` RLS check.
|
|
48
|
-
_sessionReady = _client.auth.setSession({
|
|
49
|
-
access_token: accessToken,
|
|
50
|
-
refresh_token: refreshToken ?? '',
|
|
51
|
-
});
|
|
52
|
-
_lastAppliedAccessToken = accessToken;
|
|
53
|
-
installAuthWatcher();
|
|
54
|
-
return _client;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Returns true if the desktop-app has synced a Supabase session that's
|
|
58
|
-
* usable for direct-SDK calls.
|
|
59
|
-
*/
|
|
60
|
-
export function hasSupabaseSession() {
|
|
61
|
-
return Boolean(getSupabaseUrl() && getSupabaseAnonKey() && getAccessToken());
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Wait for the most recent setSession to finish applying, then report whether
|
|
65
|
-
* the client actually holds a usable user session.
|
|
66
|
-
*
|
|
67
|
-
* Returns false when the synced token was stale/expired and supabase-js
|
|
68
|
-
* dropped the session — in that state REST calls run as `anon` (auth.uid() is
|
|
69
|
-
* NULL) and any insert into an RLS table with `WITH CHECK (auth.uid() =
|
|
70
|
-
* user_id)` is rejected. Writers should gate the direct-SDK path on this and
|
|
71
|
-
* fall back to the MCP edge function (service-role) when it returns false.
|
|
72
|
-
*/
|
|
73
|
-
export async function ensureSupabaseSession() {
|
|
74
|
-
if (!hasSupabaseSession()) {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const client = getSupabase();
|
|
79
|
-
if (_sessionReady) {
|
|
80
|
-
await _sessionReady;
|
|
81
|
-
}
|
|
82
|
-
const { data } = await client.auth.getSession();
|
|
83
|
-
return Boolean(data.session?.access_token);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
function installAuthWatcher() {
|
|
90
|
-
if (_watcherInstalled) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
_watcherInstalled = true;
|
|
94
|
-
try {
|
|
95
|
-
const watcher = watch(AUTH_FILE, () => {
|
|
96
|
-
invalidateAuthCache();
|
|
97
|
-
const nextAccess = getAccessToken();
|
|
98
|
-
const nextRefresh = getRefreshToken();
|
|
99
|
-
if (!_client ||
|
|
100
|
-
!nextAccess ||
|
|
101
|
-
nextAccess === _lastAppliedAccessToken) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
_lastAppliedAccessToken = nextAccess;
|
|
105
|
-
_sessionReady = _client.auth.setSession({
|
|
106
|
-
access_token: nextAccess,
|
|
107
|
-
refresh_token: nextRefresh ?? '',
|
|
108
|
-
});
|
|
109
|
-
_client.realtime.setAuth(nextAccess);
|
|
110
|
-
});
|
|
111
|
-
watcher.unref();
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
// File missing or watch unsupported — best effort.
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/** Reset module state. Test-only. */
|
|
118
|
-
export function resetSupabaseClient() {
|
|
119
|
-
_client = null;
|
|
120
|
-
_watcherInstalled = false;
|
|
121
|
-
_lastAppliedAccessToken = undefined;
|
|
122
|
-
_sessionReady = null;
|
|
123
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session Manager - Registers and maintains CLI session state with the server
|
|
3
|
-
*
|
|
4
|
-
* Enables:
|
|
5
|
-
* - Web dashboard to see running CLI instances
|
|
6
|
-
* - Remote start/stop/pause control of CLI processing
|
|
7
|
-
* - Heartbeat to keep session alive
|
|
8
|
-
*/
|
|
9
|
-
export type SessionStatus = 'running' | 'paused' | 'stopped';
|
|
10
|
-
export interface CliSession {
|
|
11
|
-
sessionId: string;
|
|
12
|
-
hostname: string;
|
|
13
|
-
version: string;
|
|
14
|
-
status: SessionStatus;
|
|
15
|
-
startedAt: string;
|
|
16
|
-
lastHeartbeat: string;
|
|
17
|
-
currentIssueId?: string;
|
|
18
|
-
currentIssueName?: string;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Register this CLI session with the server.
|
|
22
|
-
* Optionally accepts command name and product ID for filtering on detail pages.
|
|
23
|
-
*
|
|
24
|
-
* Idempotent: if a session is already active (e.g. registered by the top-level
|
|
25
|
-
* command hook), this enriches that row with the command/product instead of
|
|
26
|
-
* creating a second session, and returns the existing id.
|
|
27
|
-
*
|
|
28
|
-
* The stored `command` is the desktop process key when the CLI was spawned by
|
|
29
|
-
* the app (EDSGER_PROCESS_KEY), so a feature/tab can find this session; see
|
|
30
|
-
* `resolvedCommand`.
|
|
31
|
-
*/
|
|
32
|
-
export declare function registerSession(options?: {
|
|
33
|
-
command?: string;
|
|
34
|
-
productId?: string;
|
|
35
|
-
}): Promise<string>;
|
|
36
|
-
/**
|
|
37
|
-
* Send a heartbeat to keep the session alive and check for commands
|
|
38
|
-
*/
|
|
39
|
-
export declare function sendHeartbeat(currentIssueId?: string, currentIssueName?: string): Promise<SessionStatus>;
|
|
40
|
-
/**
|
|
41
|
-
* Start periodic heartbeats
|
|
42
|
-
*/
|
|
43
|
-
export declare function startHeartbeat(): void;
|
|
44
|
-
/**
|
|
45
|
-
* Stop periodic heartbeats
|
|
46
|
-
*/
|
|
47
|
-
export declare function stopHeartbeat(): void;
|
|
48
|
-
/**
|
|
49
|
-
* Deregister this CLI session
|
|
50
|
-
*/
|
|
51
|
-
export declare function deregisterSession(): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Get current session status
|
|
54
|
-
*/
|
|
55
|
-
export declare function getSessionStatus(): SessionStatus;
|
|
56
|
-
/**
|
|
57
|
-
* Set session status locally (before next heartbeat syncs it)
|
|
58
|
-
*/
|
|
59
|
-
export declare function setSessionStatus(status: SessionStatus): void;
|
|
60
|
-
/**
|
|
61
|
-
* Get current session ID
|
|
62
|
-
*/
|
|
63
|
-
export declare function getSessionId(): string | null;
|
|
64
|
-
/**
|
|
65
|
-
* Check if the session should be processing (not paused or stopped)
|
|
66
|
-
*/
|
|
67
|
-
export declare function shouldProcess(): boolean;
|
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session Manager - Registers and maintains CLI session state with the server
|
|
3
|
-
*
|
|
4
|
-
* Enables:
|
|
5
|
-
* - Web dashboard to see running CLI instances
|
|
6
|
-
* - Remote start/stop/pause control of CLI processing
|
|
7
|
-
* - Heartbeat to keep session alive
|
|
8
|
-
*/
|
|
9
|
-
import { hostname } from 'os';
|
|
10
|
-
import { callMcpEndpoint } from '../api/mcp-client.js';
|
|
11
|
-
import { getUserId } from '../auth/auth-store.js';
|
|
12
|
-
import { getVersion } from '../constants.js';
|
|
13
|
-
import { ensureSupabaseSession, getSupabase, hasSupabaseSession, } from '../supabase/client.js';
|
|
14
|
-
import { initLogSync, logInfo, logWarning, stopLogSync, } from '../utils/logger.js';
|
|
15
|
-
let currentSessionId = null;
|
|
16
|
-
let heartbeatTimer;
|
|
17
|
-
let _sessionStatus = 'running';
|
|
18
|
-
/** How often to send heartbeats (30 seconds) */
|
|
19
|
-
const HEARTBEAT_INTERVAL = 30_000;
|
|
20
|
-
/**
|
|
21
|
-
* Generate a unique session ID
|
|
22
|
-
*/
|
|
23
|
-
function generateSessionId() {
|
|
24
|
-
const timestamp = Date.now().toString(36);
|
|
25
|
-
const random = Math.random().toString(36).substring(2, 8);
|
|
26
|
-
return `cli-${timestamp}-${random}`;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* The value stored in `cli_sessions.command`.
|
|
30
|
-
*
|
|
31
|
-
* When the desktop app spawns a streamed CLI it injects EDSGER_PROCESS_KEY --
|
|
32
|
-
* its process-registry key (`:output` channel marker already stripped), e.g.
|
|
33
|
-
* `sync-terraform`, `recipes:<productId>`, `pr-review:<prId>`. That key is what
|
|
34
|
-
* the originating tab looks up by, so it takes precedence over the bare command
|
|
35
|
-
* name; standalone runs fall back to the supplied command name.
|
|
36
|
-
*/
|
|
37
|
-
function resolvedCommand(options) {
|
|
38
|
-
return process.env.EDSGER_PROCESS_KEY || options?.command;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Register this CLI session with the server.
|
|
42
|
-
* Optionally accepts command name and product ID for filtering on detail pages.
|
|
43
|
-
*
|
|
44
|
-
* Idempotent: if a session is already active (e.g. registered by the top-level
|
|
45
|
-
* command hook), this enriches that row with the command/product instead of
|
|
46
|
-
* creating a second session, and returns the existing id.
|
|
47
|
-
*
|
|
48
|
-
* The stored `command` is the desktop process key when the CLI was spawned by
|
|
49
|
-
* the app (EDSGER_PROCESS_KEY), so a feature/tab can find this session; see
|
|
50
|
-
* `resolvedCommand`.
|
|
51
|
-
*/
|
|
52
|
-
export async function registerSession(options) {
|
|
53
|
-
// Already in a session for this process — enrich, don't double-register.
|
|
54
|
-
if (currentSessionId) {
|
|
55
|
-
await enrichSession(options);
|
|
56
|
-
return currentSessionId;
|
|
57
|
-
}
|
|
58
|
-
const sessionId = generateSessionId();
|
|
59
|
-
currentSessionId = sessionId;
|
|
60
|
-
const command = resolvedCommand(options);
|
|
61
|
-
// Full invocation (subcommand + args) for readable run history. `command`
|
|
62
|
-
// stays the stable, entity-scoped lookup key; this carries the variable args.
|
|
63
|
-
const invocation = process.argv.slice(2).join(' ') || undefined;
|
|
64
|
-
try {
|
|
65
|
-
const userId = getUserId();
|
|
66
|
-
// ensureSupabaseSession() awaits the in-flight setSession and confirms the
|
|
67
|
-
// client holds a live user session — so a token that hasn't applied yet
|
|
68
|
-
// (race) or was dropped (stale → anon) doesn't silently write as anon and
|
|
69
|
-
// trip the cli_sessions RLS check. The desktop refreshes the token into
|
|
70
|
-
// auth.json before spawning the CLI, so this should hold for app-spawned
|
|
71
|
-
// runs; the MCP branch stays for the legacy no-Supabase-session path.
|
|
72
|
-
if (userId && (await ensureSupabaseSession())) {
|
|
73
|
-
const row = {
|
|
74
|
-
session_id: sessionId,
|
|
75
|
-
user_id: userId,
|
|
76
|
-
hostname: hostname(),
|
|
77
|
-
version: getVersion(),
|
|
78
|
-
status: 'running',
|
|
79
|
-
started_at: new Date().toISOString(),
|
|
80
|
-
last_heartbeat: new Date().toISOString(),
|
|
81
|
-
};
|
|
82
|
-
if (command) {
|
|
83
|
-
row.command = command;
|
|
84
|
-
}
|
|
85
|
-
if (invocation) {
|
|
86
|
-
row.invocation = invocation;
|
|
87
|
-
}
|
|
88
|
-
if (options?.productId) {
|
|
89
|
-
row.product_id = options.productId;
|
|
90
|
-
}
|
|
91
|
-
const { error } = await getSupabase()
|
|
92
|
-
.from('cli_sessions')
|
|
93
|
-
.upsert(row, { onConflict: 'session_id' });
|
|
94
|
-
if (error) {
|
|
95
|
-
throw new Error(error.message);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
const payload = {
|
|
100
|
-
session_id: sessionId,
|
|
101
|
-
hostname: hostname(),
|
|
102
|
-
version: getVersion(),
|
|
103
|
-
status: 'running',
|
|
104
|
-
};
|
|
105
|
-
if (command) {
|
|
106
|
-
payload.command = command;
|
|
107
|
-
}
|
|
108
|
-
if (invocation) {
|
|
109
|
-
payload.invocation = invocation;
|
|
110
|
-
}
|
|
111
|
-
if (options?.productId) {
|
|
112
|
-
payload.product_id = options.productId;
|
|
113
|
-
}
|
|
114
|
-
await callMcpEndpoint('cli_sessions/register', payload);
|
|
115
|
-
}
|
|
116
|
-
logInfo(`CLI session registered: ${sessionId}`);
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
// Session registration is best-effort, don't fail
|
|
120
|
-
logWarning('Could not register CLI session with server');
|
|
121
|
-
}
|
|
122
|
-
// Start log sync after session registration
|
|
123
|
-
initLogSync(sessionId);
|
|
124
|
-
return sessionId;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Best-effort enrichment of the already-active session row with command /
|
|
128
|
-
* product info (e.g. when a command registers itself after the top-level hook
|
|
129
|
-
* already opened the session). Direct-SDK path only; the MCP heartbeat path
|
|
130
|
-
* keeps whatever the initial register supplied.
|
|
131
|
-
*/
|
|
132
|
-
async function enrichSession(options) {
|
|
133
|
-
const command = resolvedCommand(options);
|
|
134
|
-
if (!currentSessionId || (!command && !options?.productId)) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
try {
|
|
138
|
-
const userId = getUserId();
|
|
139
|
-
if (!hasSupabaseSession() || !userId) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
const patch = {};
|
|
143
|
-
// With a desktop process key present, `command` resolves to that key, so
|
|
144
|
-
// a self-registering command can't clobber it with its bare name.
|
|
145
|
-
if (command) {
|
|
146
|
-
patch.command = command;
|
|
147
|
-
}
|
|
148
|
-
if (options?.productId) {
|
|
149
|
-
patch.product_id = options.productId;
|
|
150
|
-
}
|
|
151
|
-
await getSupabase()
|
|
152
|
-
.from('cli_sessions')
|
|
153
|
-
.update(patch)
|
|
154
|
-
.eq('session_id', currentSessionId)
|
|
155
|
-
.eq('user_id', userId);
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
// best-effort
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Send a heartbeat to keep the session alive and check for commands
|
|
163
|
-
*/
|
|
164
|
-
export async function sendHeartbeat(currentIssueId, currentIssueName) {
|
|
165
|
-
if (!currentSessionId) {
|
|
166
|
-
return 'running';
|
|
167
|
-
}
|
|
168
|
-
try {
|
|
169
|
-
let serverStatus;
|
|
170
|
-
const userId = getUserId();
|
|
171
|
-
if (hasSupabaseSession() && userId) {
|
|
172
|
-
// Single UPDATE...RETURNING reads back the row's current status, which
|
|
173
|
-
// the dashboard may have flipped to 'paused' / 'stopped' since the
|
|
174
|
-
// last heartbeat.
|
|
175
|
-
const { data, error } = await getSupabase()
|
|
176
|
-
.from('cli_sessions')
|
|
177
|
-
.update({
|
|
178
|
-
last_heartbeat: new Date().toISOString(),
|
|
179
|
-
version: getVersion(),
|
|
180
|
-
current_issue_id: currentIssueId ?? null,
|
|
181
|
-
current_issue_name: currentIssueName ?? null,
|
|
182
|
-
})
|
|
183
|
-
.eq('session_id', currentSessionId)
|
|
184
|
-
.eq('user_id', userId)
|
|
185
|
-
.select('status')
|
|
186
|
-
.maybeSingle();
|
|
187
|
-
if (error) {
|
|
188
|
-
throw new Error(error.message);
|
|
189
|
-
}
|
|
190
|
-
serverStatus = data?.status ?? undefined;
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
const result = (await callMcpEndpoint('cli_sessions/heartbeat', {
|
|
194
|
-
session_id: currentSessionId,
|
|
195
|
-
version: getVersion(),
|
|
196
|
-
status: _sessionStatus,
|
|
197
|
-
current_issue_id: currentIssueId,
|
|
198
|
-
current_issue_name: currentIssueName,
|
|
199
|
-
}));
|
|
200
|
-
serverStatus = result.status;
|
|
201
|
-
}
|
|
202
|
-
// Server may respond with a new status (e.g., 'paused' or 'stopped')
|
|
203
|
-
if (serverStatus && serverStatus !== _sessionStatus) {
|
|
204
|
-
logInfo(`Session status changed: ${_sessionStatus} -> ${serverStatus}`);
|
|
205
|
-
_sessionStatus = serverStatus;
|
|
206
|
-
}
|
|
207
|
-
return _sessionStatus;
|
|
208
|
-
}
|
|
209
|
-
catch {
|
|
210
|
-
// Heartbeat failure is non-fatal
|
|
211
|
-
return _sessionStatus;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Start periodic heartbeats
|
|
216
|
-
*/
|
|
217
|
-
export function startHeartbeat() {
|
|
218
|
-
if (heartbeatTimer) {
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
heartbeatTimer = setInterval(() => {
|
|
222
|
-
sendHeartbeat().catch(() => {
|
|
223
|
-
/* noop */
|
|
224
|
-
});
|
|
225
|
-
}, HEARTBEAT_INTERVAL);
|
|
226
|
-
// The heartbeat alone must never keep a finished command's process alive.
|
|
227
|
-
heartbeatTimer.unref?.();
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Stop periodic heartbeats
|
|
231
|
-
*/
|
|
232
|
-
export function stopHeartbeat() {
|
|
233
|
-
if (heartbeatTimer) {
|
|
234
|
-
clearInterval(heartbeatTimer);
|
|
235
|
-
heartbeatTimer = undefined;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Deregister this CLI session
|
|
240
|
-
*/
|
|
241
|
-
export async function deregisterSession() {
|
|
242
|
-
if (!currentSessionId) {
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
stopHeartbeat();
|
|
246
|
-
// Flush remaining logs before deregistering
|
|
247
|
-
await stopLogSync();
|
|
248
|
-
try {
|
|
249
|
-
const userId = getUserId();
|
|
250
|
-
if (hasSupabaseSession() && userId) {
|
|
251
|
-
// Match the MCP handler's behaviour: keep the row so historical logs
|
|
252
|
-
// can still link to it, just mark it stopped + clear current issue.
|
|
253
|
-
const { error } = await getSupabase()
|
|
254
|
-
.from('cli_sessions')
|
|
255
|
-
.update({
|
|
256
|
-
status: 'stopped',
|
|
257
|
-
current_issue_id: null,
|
|
258
|
-
current_issue_name: null,
|
|
259
|
-
})
|
|
260
|
-
.eq('session_id', currentSessionId)
|
|
261
|
-
.eq('user_id', userId);
|
|
262
|
-
if (error) {
|
|
263
|
-
throw new Error(error.message);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
await callMcpEndpoint('cli_sessions/deregister', {
|
|
268
|
-
session_id: currentSessionId,
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
catch {
|
|
273
|
-
// Best-effort
|
|
274
|
-
}
|
|
275
|
-
currentSessionId = null;
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Get current session status
|
|
279
|
-
*/
|
|
280
|
-
export function getSessionStatus() {
|
|
281
|
-
return _sessionStatus;
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Set session status locally (before next heartbeat syncs it)
|
|
285
|
-
*/
|
|
286
|
-
export function setSessionStatus(status) {
|
|
287
|
-
_sessionStatus = status;
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Get current session ID
|
|
291
|
-
*/
|
|
292
|
-
export function getSessionId() {
|
|
293
|
-
return currentSessionId;
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Check if the session should be processing (not paused or stopped)
|
|
297
|
-
*/
|
|
298
|
-
export function shouldProcess() {
|
|
299
|
-
return _sessionStatus === 'running';
|
|
300
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sleep Notification - Warns user when computer is about to sleep
|
|
3
|
-
*
|
|
4
|
-
* Uses OS-specific mechanisms to detect sleep events and show notifications:
|
|
5
|
-
* - macOS: pmset log monitoring + osascript notifications
|
|
6
|
-
* - Linux: dbus-monitor for sleep signals + notify-send
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Start monitoring for sleep events
|
|
10
|
-
*/
|
|
11
|
-
export declare function startSleepMonitor(): void;
|
|
12
|
-
/**
|
|
13
|
-
* Stop monitoring for sleep events
|
|
14
|
-
*/
|
|
15
|
-
export declare function stopSleepMonitor(): void;
|