@promptwheel/cli 0.6.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/README.md +215 -0
- package/dist/bin/promptwheel.d.ts +17 -0
- package/dist/bin/promptwheel.d.ts.map +1 -0
- package/dist/bin/promptwheel.js +90 -0
- package/dist/bin/promptwheel.js.map +1 -0
- package/dist/commands/auto-auth.d.ts +26 -0
- package/dist/commands/auto-auth.d.ts.map +1 -0
- package/dist/commands/auto-auth.js +216 -0
- package/dist/commands/auto-auth.js.map +1 -0
- package/dist/commands/auto-ci-mode.d.ts +9 -0
- package/dist/commands/auto-ci-mode.d.ts.map +1 -0
- package/dist/commands/auto-ci-mode.js +176 -0
- package/dist/commands/auto-ci-mode.js.map +1 -0
- package/dist/commands/solo-analytics.d.ts +6 -0
- package/dist/commands/solo-analytics.d.ts.map +1 -0
- package/dist/commands/solo-analytics.js +267 -0
- package/dist/commands/solo-analytics.js.map +1 -0
- package/dist/commands/solo-auto.d.ts +6 -0
- package/dist/commands/solo-auto.d.ts.map +1 -0
- package/dist/commands/solo-auto.js +135 -0
- package/dist/commands/solo-auto.js.map +1 -0
- package/dist/commands/solo-daemon.d.ts +12 -0
- package/dist/commands/solo-daemon.d.ts.map +1 -0
- package/dist/commands/solo-daemon.js +177 -0
- package/dist/commands/solo-daemon.js.map +1 -0
- package/dist/commands/solo-exec.d.ts +6 -0
- package/dist/commands/solo-exec.d.ts.map +1 -0
- package/dist/commands/solo-exec.js +656 -0
- package/dist/commands/solo-exec.js.map +1 -0
- package/dist/commands/solo-inspect.d.ts +6 -0
- package/dist/commands/solo-inspect.d.ts.map +1 -0
- package/dist/commands/solo-inspect.js +765 -0
- package/dist/commands/solo-inspect.js.map +1 -0
- package/dist/commands/solo-lifecycle.d.ts +6 -0
- package/dist/commands/solo-lifecycle.d.ts.map +1 -0
- package/dist/commands/solo-lifecycle.js +226 -0
- package/dist/commands/solo-lifecycle.js.map +1 -0
- package/dist/commands/solo-nudge.d.ts +6 -0
- package/dist/commands/solo-nudge.d.ts.map +1 -0
- package/dist/commands/solo-nudge.js +49 -0
- package/dist/commands/solo-nudge.js.map +1 -0
- package/dist/commands/solo-qa.d.ts +6 -0
- package/dist/commands/solo-qa.d.ts.map +1 -0
- package/dist/commands/solo-qa.js +253 -0
- package/dist/commands/solo-qa.js.map +1 -0
- package/dist/commands/solo-trajectory.d.ts +6 -0
- package/dist/commands/solo-trajectory.d.ts.map +1 -0
- package/dist/commands/solo-trajectory.js +268 -0
- package/dist/commands/solo-trajectory.js.map +1 -0
- package/dist/commands/solo.d.ts +11 -0
- package/dist/commands/solo.d.ts.map +1 -0
- package/dist/commands/solo.js +52 -0
- package/dist/commands/solo.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/artifacts.d.ts +136 -0
- package/dist/lib/artifacts.d.ts.map +1 -0
- package/dist/lib/artifacts.js +147 -0
- package/dist/lib/artifacts.js.map +1 -0
- package/dist/lib/codebase-index.d.ts +5 -0
- package/dist/lib/codebase-index.d.ts.map +1 -0
- package/dist/lib/codebase-index.js +5 -0
- package/dist/lib/codebase-index.js.map +1 -0
- package/dist/lib/cycle-context.d.ts +62 -0
- package/dist/lib/cycle-context.d.ts.map +1 -0
- package/dist/lib/cycle-context.js +141 -0
- package/dist/lib/cycle-context.js.map +1 -0
- package/dist/lib/daemon-fork.d.ts +39 -0
- package/dist/lib/daemon-fork.d.ts.map +1 -0
- package/dist/lib/daemon-fork.js +164 -0
- package/dist/lib/daemon-fork.js.map +1 -0
- package/dist/lib/daemon-notifier.d.ts +29 -0
- package/dist/lib/daemon-notifier.d.ts.map +1 -0
- package/dist/lib/daemon-notifier.js +147 -0
- package/dist/lib/daemon-notifier.js.map +1 -0
- package/dist/lib/daemon.d.ts +75 -0
- package/dist/lib/daemon.d.ts.map +1 -0
- package/dist/lib/daemon.js +265 -0
- package/dist/lib/daemon.js.map +1 -0
- package/dist/lib/dedup-memory.d.ts +46 -0
- package/dist/lib/dedup-memory.d.ts.map +1 -0
- package/dist/lib/dedup-memory.js +190 -0
- package/dist/lib/dedup-memory.js.map +1 -0
- package/dist/lib/dedup.d.ts +37 -0
- package/dist/lib/dedup.d.ts.map +1 -0
- package/dist/lib/dedup.js +85 -0
- package/dist/lib/dedup.js.map +1 -0
- package/dist/lib/display-adapter-log.d.ts +26 -0
- package/dist/lib/display-adapter-log.d.ts.map +1 -0
- package/dist/lib/display-adapter-log.js +63 -0
- package/dist/lib/display-adapter-log.js.map +1 -0
- package/dist/lib/display-adapter-spinner.d.ts +28 -0
- package/dist/lib/display-adapter-spinner.d.ts.map +1 -0
- package/dist/lib/display-adapter-spinner.js +93 -0
- package/dist/lib/display-adapter-spinner.js.map +1 -0
- package/dist/lib/display-adapter-tui.d.ts +32 -0
- package/dist/lib/display-adapter-tui.d.ts.map +1 -0
- package/dist/lib/display-adapter-tui.js +77 -0
- package/dist/lib/display-adapter-tui.js.map +1 -0
- package/dist/lib/display-adapter.d.ts +40 -0
- package/dist/lib/display-adapter.d.ts.map +1 -0
- package/dist/lib/display-adapter.js +9 -0
- package/dist/lib/display-adapter.js.map +1 -0
- package/dist/lib/doctor.d.ts +45 -0
- package/dist/lib/doctor.d.ts.map +1 -0
- package/dist/lib/doctor.js +382 -0
- package/dist/lib/doctor.js.map +1 -0
- package/dist/lib/exclusion-index.d.ts +50 -0
- package/dist/lib/exclusion-index.d.ts.map +1 -0
- package/dist/lib/exclusion-index.js +249 -0
- package/dist/lib/exclusion-index.js.map +1 -0
- package/dist/lib/exec.d.ts +24 -0
- package/dist/lib/exec.d.ts.map +1 -0
- package/dist/lib/exec.js +295 -0
- package/dist/lib/exec.js.map +1 -0
- package/dist/lib/execution-backends/claude.d.ts +27 -0
- package/dist/lib/execution-backends/claude.d.ts.map +1 -0
- package/dist/lib/execution-backends/claude.js +161 -0
- package/dist/lib/execution-backends/claude.js.map +1 -0
- package/dist/lib/execution-backends/codex.d.ts +28 -0
- package/dist/lib/execution-backends/codex.d.ts.map +1 -0
- package/dist/lib/execution-backends/codex.js +216 -0
- package/dist/lib/execution-backends/codex.js.map +1 -0
- package/dist/lib/execution-backends/index.d.ts +10 -0
- package/dist/lib/execution-backends/index.d.ts.map +1 -0
- package/dist/lib/execution-backends/index.js +9 -0
- package/dist/lib/execution-backends/index.js.map +1 -0
- package/dist/lib/execution-backends/kimi.d.ts +25 -0
- package/dist/lib/execution-backends/kimi.d.ts.map +1 -0
- package/dist/lib/execution-backends/kimi.js +76 -0
- package/dist/lib/execution-backends/kimi.js.map +1 -0
- package/dist/lib/execution-backends/types.d.ts +38 -0
- package/dist/lib/execution-backends/types.d.ts.map +1 -0
- package/dist/lib/execution-backends/types.js +5 -0
- package/dist/lib/execution-backends/types.js.map +1 -0
- package/dist/lib/failure-classifier.d.ts +11 -0
- package/dist/lib/failure-classifier.d.ts.map +1 -0
- package/dist/lib/failure-classifier.js +24 -0
- package/dist/lib/failure-classifier.js.map +1 -0
- package/dist/lib/file-cooldown.d.ts +9 -0
- package/dist/lib/file-cooldown.d.ts.map +1 -0
- package/dist/lib/file-cooldown.js +75 -0
- package/dist/lib/file-cooldown.js.map +1 -0
- package/dist/lib/formulas.d.ts +52 -0
- package/dist/lib/formulas.d.ts.map +1 -0
- package/dist/lib/formulas.js +123 -0
- package/dist/lib/formulas.js.map +1 -0
- package/dist/lib/git.d.ts +9 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +60 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/goals.d.ts +59 -0
- package/dist/lib/goals.d.ts.map +1 -0
- package/dist/lib/goals.js +216 -0
- package/dist/lib/goals.js.map +1 -0
- package/dist/lib/guidelines.d.ts +32 -0
- package/dist/lib/guidelines.d.ts.map +1 -0
- package/dist/lib/guidelines.js +102 -0
- package/dist/lib/guidelines.js.map +1 -0
- package/dist/lib/learnings.d.ts +65 -0
- package/dist/lib/learnings.d.ts.map +1 -0
- package/dist/lib/learnings.js +193 -0
- package/dist/lib/learnings.js.map +1 -0
- package/dist/lib/logger.d.ts +17 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +42 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/meta-learnings.d.ts +27 -0
- package/dist/lib/meta-learnings.d.ts.map +1 -0
- package/dist/lib/meta-learnings.js +270 -0
- package/dist/lib/meta-learnings.js.map +1 -0
- package/dist/lib/metrics.d.ts +48 -0
- package/dist/lib/metrics.d.ts.map +1 -0
- package/dist/lib/metrics.js +107 -0
- package/dist/lib/metrics.js.map +1 -0
- package/dist/lib/openai-local-execution.d.ts +29 -0
- package/dist/lib/openai-local-execution.d.ts.map +1 -0
- package/dist/lib/openai-local-execution.js +282 -0
- package/dist/lib/openai-local-execution.js.map +1 -0
- package/dist/lib/project-metadata/csharp.d.ts +6 -0
- package/dist/lib/project-metadata/csharp.d.ts.map +1 -0
- package/dist/lib/project-metadata/csharp.js +19 -0
- package/dist/lib/project-metadata/csharp.js.map +1 -0
- package/dist/lib/project-metadata/elixir.d.ts +6 -0
- package/dist/lib/project-metadata/elixir.d.ts.map +1 -0
- package/dist/lib/project-metadata/elixir.js +23 -0
- package/dist/lib/project-metadata/elixir.js.map +1 -0
- package/dist/lib/project-metadata/go.d.ts +6 -0
- package/dist/lib/project-metadata/go.d.ts.map +1 -0
- package/dist/lib/project-metadata/go.js +30 -0
- package/dist/lib/project-metadata/go.js.map +1 -0
- package/dist/lib/project-metadata/index.d.ts +13 -0
- package/dist/lib/project-metadata/index.d.ts.map +1 -0
- package/dist/lib/project-metadata/index.js +111 -0
- package/dist/lib/project-metadata/index.js.map +1 -0
- package/dist/lib/project-metadata/java.d.ts +6 -0
- package/dist/lib/project-metadata/java.d.ts.map +1 -0
- package/dist/lib/project-metadata/java.js +37 -0
- package/dist/lib/project-metadata/java.js.map +1 -0
- package/dist/lib/project-metadata/node.d.ts +6 -0
- package/dist/lib/project-metadata/node.d.ts.map +1 -0
- package/dist/lib/project-metadata/node.js +135 -0
- package/dist/lib/project-metadata/node.js.map +1 -0
- package/dist/lib/project-metadata/php.d.ts +6 -0
- package/dist/lib/project-metadata/php.d.ts.map +1 -0
- package/dist/lib/project-metadata/php.js +29 -0
- package/dist/lib/project-metadata/php.js.map +1 -0
- package/dist/lib/project-metadata/python.d.ts +6 -0
- package/dist/lib/project-metadata/python.d.ts.map +1 -0
- package/dist/lib/project-metadata/python.js +79 -0
- package/dist/lib/project-metadata/python.js.map +1 -0
- package/dist/lib/project-metadata/ruby.d.ts +6 -0
- package/dist/lib/project-metadata/ruby.d.ts.map +1 -0
- package/dist/lib/project-metadata/ruby.js +38 -0
- package/dist/lib/project-metadata/ruby.js.map +1 -0
- package/dist/lib/project-metadata/rust.d.ts +6 -0
- package/dist/lib/project-metadata/rust.d.ts.map +1 -0
- package/dist/lib/project-metadata/rust.js +33 -0
- package/dist/lib/project-metadata/rust.js.map +1 -0
- package/dist/lib/project-metadata/swift.d.ts +6 -0
- package/dist/lib/project-metadata/swift.d.ts.map +1 -0
- package/dist/lib/project-metadata/swift.js +19 -0
- package/dist/lib/project-metadata/swift.js.map +1 -0
- package/dist/lib/project-metadata/types.d.ts +37 -0
- package/dist/lib/project-metadata/types.d.ts.map +1 -0
- package/dist/lib/project-metadata/types.js +5 -0
- package/dist/lib/project-metadata/types.js.map +1 -0
- package/dist/lib/proposal-review.d.ts +9 -0
- package/dist/lib/proposal-review.d.ts.map +1 -0
- package/dist/lib/proposal-review.js +9 -0
- package/dist/lib/proposal-review.js.map +1 -0
- package/dist/lib/providers/claude.d.ts +6 -0
- package/dist/lib/providers/claude.d.ts.map +1 -0
- package/dist/lib/providers/claude.js +21 -0
- package/dist/lib/providers/claude.js.map +1 -0
- package/dist/lib/providers/codex.d.ts +6 -0
- package/dist/lib/providers/codex.d.ts.map +1 -0
- package/dist/lib/providers/codex.js +26 -0
- package/dist/lib/providers/codex.js.map +1 -0
- package/dist/lib/providers/index.d.ts +22 -0
- package/dist/lib/providers/index.d.ts.map +1 -0
- package/dist/lib/providers/index.js +39 -0
- package/dist/lib/providers/index.js.map +1 -0
- package/dist/lib/providers/kimi.d.ts +6 -0
- package/dist/lib/providers/kimi.d.ts.map +1 -0
- package/dist/lib/providers/kimi.js +22 -0
- package/dist/lib/providers/kimi.js.map +1 -0
- package/dist/lib/providers/openai-local.d.ts +8 -0
- package/dist/lib/providers/openai-local.d.ts.map +1 -0
- package/dist/lib/providers/openai-local.js +30 -0
- package/dist/lib/providers/openai-local.js.map +1 -0
- package/dist/lib/providers/types.d.ts +37 -0
- package/dist/lib/providers/types.d.ts.map +1 -0
- package/dist/lib/providers/types.js +5 -0
- package/dist/lib/providers/types.js.map +1 -0
- package/dist/lib/qa-stats.d.ts +113 -0
- package/dist/lib/qa-stats.d.ts.map +1 -0
- package/dist/lib/qa-stats.js +311 -0
- package/dist/lib/qa-stats.js.map +1 -0
- package/dist/lib/retention.d.ts +125 -0
- package/dist/lib/retention.d.ts.map +1 -0
- package/dist/lib/retention.js +767 -0
- package/dist/lib/retention.js.map +1 -0
- package/dist/lib/run-history.d.ts +52 -0
- package/dist/lib/run-history.d.ts.map +1 -0
- package/dist/lib/run-history.js +116 -0
- package/dist/lib/run-history.js.map +1 -0
- package/dist/lib/run-state.d.ts +129 -0
- package/dist/lib/run-state.d.ts.map +1 -0
- package/dist/lib/run-state.js +312 -0
- package/dist/lib/run-state.js.map +1 -0
- package/dist/lib/scope.d.ts +8 -0
- package/dist/lib/scope.d.ts.map +1 -0
- package/dist/lib/scope.js +8 -0
- package/dist/lib/scope.js.map +1 -0
- package/dist/lib/scout-prompt-builder.d.ts +22 -0
- package/dist/lib/scout-prompt-builder.d.ts.map +1 -0
- package/dist/lib/scout-prompt-builder.js +97 -0
- package/dist/lib/scout-prompt-builder.js.map +1 -0
- package/dist/lib/sectors.d.ts +21 -0
- package/dist/lib/sectors.d.ts.map +1 -0
- package/dist/lib/sectors.js +96 -0
- package/dist/lib/sectors.js.map +1 -0
- package/dist/lib/selection.d.ts +35 -0
- package/dist/lib/selection.d.ts.map +1 -0
- package/dist/lib/selection.js +110 -0
- package/dist/lib/selection.js.map +1 -0
- package/dist/lib/session-report.d.ts +26 -0
- package/dist/lib/session-report.d.ts.map +1 -0
- package/dist/lib/session-report.js +143 -0
- package/dist/lib/session-report.js.map +1 -0
- package/dist/lib/solo-auto-between-cycles.d.ts +10 -0
- package/dist/lib/solo-auto-between-cycles.d.ts.map +1 -0
- package/dist/lib/solo-auto-between-cycles.js +577 -0
- package/dist/lib/solo-auto-between-cycles.js.map +1 -0
- package/dist/lib/solo-auto-execute.d.ts +22 -0
- package/dist/lib/solo-auto-execute.d.ts.map +1 -0
- package/dist/lib/solo-auto-execute.js +530 -0
- package/dist/lib/solo-auto-execute.js.map +1 -0
- package/dist/lib/solo-auto-filter.d.ts +14 -0
- package/dist/lib/solo-auto-filter.d.ts.map +1 -0
- package/dist/lib/solo-auto-filter.js +311 -0
- package/dist/lib/solo-auto-filter.js.map +1 -0
- package/dist/lib/solo-auto-finalize.d.ts +6 -0
- package/dist/lib/solo-auto-finalize.d.ts.map +1 -0
- package/dist/lib/solo-auto-finalize.js +242 -0
- package/dist/lib/solo-auto-finalize.js.map +1 -0
- package/dist/lib/solo-auto-init-qa.d.ts +23 -0
- package/dist/lib/solo-auto-init-qa.d.ts.map +1 -0
- package/dist/lib/solo-auto-init-qa.js +183 -0
- package/dist/lib/solo-auto-init-qa.js.map +1 -0
- package/dist/lib/solo-auto-planning.d.ts +40 -0
- package/dist/lib/solo-auto-planning.d.ts.map +1 -0
- package/dist/lib/solo-auto-planning.js +171 -0
- package/dist/lib/solo-auto-planning.js.map +1 -0
- package/dist/lib/solo-auto-scout.d.ts +18 -0
- package/dist/lib/solo-auto-scout.d.ts.map +1 -0
- package/dist/lib/solo-auto-scout.js +269 -0
- package/dist/lib/solo-auto-scout.js.map +1 -0
- package/dist/lib/solo-auto-state.d.ts +20 -0
- package/dist/lib/solo-auto-state.d.ts.map +1 -0
- package/dist/lib/solo-auto-state.js +859 -0
- package/dist/lib/solo-auto-state.js.map +1 -0
- package/dist/lib/solo-auto-types.d.ts +197 -0
- package/dist/lib/solo-auto-types.d.ts.map +1 -0
- package/dist/lib/solo-auto-types.js +11 -0
- package/dist/lib/solo-auto-types.js.map +1 -0
- package/dist/lib/solo-auto-utils.d.ts +23 -0
- package/dist/lib/solo-auto-utils.d.ts.map +1 -0
- package/dist/lib/solo-auto-utils.js +53 -0
- package/dist/lib/solo-auto-utils.js.map +1 -0
- package/dist/lib/solo-auto.d.ts +25 -0
- package/dist/lib/solo-auto.d.ts.map +1 -0
- package/dist/lib/solo-auto.js +345 -0
- package/dist/lib/solo-auto.js.map +1 -0
- package/dist/lib/solo-ci.d.ts +84 -0
- package/dist/lib/solo-ci.d.ts.map +1 -0
- package/dist/lib/solo-ci.js +306 -0
- package/dist/lib/solo-ci.js.map +1 -0
- package/dist/lib/solo-config.d.ts +242 -0
- package/dist/lib/solo-config.d.ts.map +1 -0
- package/dist/lib/solo-config.js +354 -0
- package/dist/lib/solo-config.js.map +1 -0
- package/dist/lib/solo-cycle-formula.d.ts +36 -0
- package/dist/lib/solo-cycle-formula.d.ts.map +1 -0
- package/dist/lib/solo-cycle-formula.js +90 -0
- package/dist/lib/solo-cycle-formula.js.map +1 -0
- package/dist/lib/solo-git.d.ts +87 -0
- package/dist/lib/solo-git.d.ts.map +1 -0
- package/dist/lib/solo-git.js +365 -0
- package/dist/lib/solo-git.js.map +1 -0
- package/dist/lib/solo-hints.d.ts +32 -0
- package/dist/lib/solo-hints.d.ts.map +1 -0
- package/dist/lib/solo-hints.js +98 -0
- package/dist/lib/solo-hints.js.map +1 -0
- package/dist/lib/solo-prompt-builder.d.ts +12 -0
- package/dist/lib/solo-prompt-builder.d.ts.map +1 -0
- package/dist/lib/solo-prompt-builder.js +53 -0
- package/dist/lib/solo-prompt-builder.js.map +1 -0
- package/dist/lib/solo-qa-retry.d.ts +43 -0
- package/dist/lib/solo-qa-retry.d.ts.map +1 -0
- package/dist/lib/solo-qa-retry.js +125 -0
- package/dist/lib/solo-qa-retry.js.map +1 -0
- package/dist/lib/solo-remote.d.ts +14 -0
- package/dist/lib/solo-remote.d.ts.map +1 -0
- package/dist/lib/solo-remote.js +48 -0
- package/dist/lib/solo-remote.js.map +1 -0
- package/dist/lib/solo-session-summary.d.ts +52 -0
- package/dist/lib/solo-session-summary.d.ts.map +1 -0
- package/dist/lib/solo-session-summary.js +188 -0
- package/dist/lib/solo-session-summary.js.map +1 -0
- package/dist/lib/solo-stdin.d.ts +33 -0
- package/dist/lib/solo-stdin.d.ts.map +1 -0
- package/dist/lib/solo-stdin.js +299 -0
- package/dist/lib/solo-stdin.js.map +1 -0
- package/dist/lib/solo-ticket-qa.d.ts +19 -0
- package/dist/lib/solo-ticket-qa.d.ts.map +1 -0
- package/dist/lib/solo-ticket-qa.js +68 -0
- package/dist/lib/solo-ticket-qa.js.map +1 -0
- package/dist/lib/solo-ticket-types.d.ts +146 -0
- package/dist/lib/solo-ticket-types.d.ts.map +1 -0
- package/dist/lib/solo-ticket-types.js +26 -0
- package/dist/lib/solo-ticket-types.js.map +1 -0
- package/dist/lib/solo-ticket.d.ts +12 -0
- package/dist/lib/solo-ticket.d.ts.map +1 -0
- package/dist/lib/solo-ticket.js +192 -0
- package/dist/lib/solo-ticket.js.map +1 -0
- package/dist/lib/solo-utils.d.ts +130 -0
- package/dist/lib/solo-utils.d.ts.map +1 -0
- package/dist/lib/solo-utils.js +277 -0
- package/dist/lib/solo-utils.js.map +1 -0
- package/dist/lib/spindle/failure-patterns.d.ts +15 -0
- package/dist/lib/spindle/failure-patterns.d.ts.map +1 -0
- package/dist/lib/spindle/failure-patterns.js +22 -0
- package/dist/lib/spindle/failure-patterns.js.map +1 -0
- package/dist/lib/spindle/format.d.ts +9 -0
- package/dist/lib/spindle/format.d.ts.map +1 -0
- package/dist/lib/spindle/format.js +37 -0
- package/dist/lib/spindle/format.js.map +1 -0
- package/dist/lib/spindle/index.d.ts +33 -0
- package/dist/lib/spindle/index.d.ts.map +1 -0
- package/dist/lib/spindle/index.js +231 -0
- package/dist/lib/spindle/index.js.map +1 -0
- package/dist/lib/spindle/oscillation.d.ts +17 -0
- package/dist/lib/spindle/oscillation.d.ts.map +1 -0
- package/dist/lib/spindle/oscillation.js +96 -0
- package/dist/lib/spindle/oscillation.js.map +1 -0
- package/dist/lib/spindle/repetition.d.ts +16 -0
- package/dist/lib/spindle/repetition.d.ts.map +1 -0
- package/dist/lib/spindle/repetition.js +52 -0
- package/dist/lib/spindle/repetition.js.map +1 -0
- package/dist/lib/spindle/similarity.d.ts +14 -0
- package/dist/lib/spindle/similarity.d.ts.map +1 -0
- package/dist/lib/spindle/similarity.js +58 -0
- package/dist/lib/spindle/similarity.js.map +1 -0
- package/dist/lib/spindle/types.d.ts +97 -0
- package/dist/lib/spindle/types.d.ts.map +1 -0
- package/dist/lib/spindle/types.js +46 -0
- package/dist/lib/spindle/types.js.map +1 -0
- package/dist/lib/spinner.d.ts +41 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +186 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/taste-profile.d.ts +26 -0
- package/dist/lib/taste-profile.d.ts.map +1 -0
- package/dist/lib/taste-profile.js +121 -0
- package/dist/lib/taste-profile.js.map +1 -0
- package/dist/lib/ticket-steps/index.d.ts +14 -0
- package/dist/lib/ticket-steps/index.d.ts.map +1 -0
- package/dist/lib/ticket-steps/index.js +13 -0
- package/dist/lib/ticket-steps/index.js.map +1 -0
- package/dist/lib/ticket-steps/step-agent.d.ts +6 -0
- package/dist/lib/ticket-steps/step-agent.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-agent.js +122 -0
- package/dist/lib/ticket-steps/step-agent.js.map +1 -0
- package/dist/lib/ticket-steps/step-cleanup.d.ts +6 -0
- package/dist/lib/ticket-steps/step-cleanup.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-cleanup.js +11 -0
- package/dist/lib/ticket-steps/step-cleanup.js.map +1 -0
- package/dist/lib/ticket-steps/step-commit.d.ts +6 -0
- package/dist/lib/ticket-steps/step-commit.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-commit.js +31 -0
- package/dist/lib/ticket-steps/step-commit.js.map +1 -0
- package/dist/lib/ticket-steps/step-pr.d.ts +6 -0
- package/dist/lib/ticket-steps/step-pr.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-pr.js +38 -0
- package/dist/lib/ticket-steps/step-pr.js.map +1 -0
- package/dist/lib/ticket-steps/step-push.d.ts +6 -0
- package/dist/lib/ticket-steps/step-push.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-push.js +35 -0
- package/dist/lib/ticket-steps/step-push.js.map +1 -0
- package/dist/lib/ticket-steps/step-qa.d.ts +6 -0
- package/dist/lib/ticket-steps/step-qa.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-qa.js +300 -0
- package/dist/lib/ticket-steps/step-qa.js.map +1 -0
- package/dist/lib/ticket-steps/step-scope.d.ts +6 -0
- package/dist/lib/ticket-steps/step-scope.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-scope.js +121 -0
- package/dist/lib/ticket-steps/step-scope.js.map +1 -0
- package/dist/lib/ticket-steps/step-spindle.d.ts +9 -0
- package/dist/lib/ticket-steps/step-spindle.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-spindle.js +160 -0
- package/dist/lib/ticket-steps/step-spindle.js.map +1 -0
- package/dist/lib/ticket-steps/step-worktree.d.ts +6 -0
- package/dist/lib/ticket-steps/step-worktree.d.ts.map +1 -0
- package/dist/lib/ticket-steps/step-worktree.js +157 -0
- package/dist/lib/ticket-steps/step-worktree.js.map +1 -0
- package/dist/lib/ticket-steps/types.d.ts +70 -0
- package/dist/lib/ticket-steps/types.d.ts.map +1 -0
- package/dist/lib/ticket-steps/types.js +8 -0
- package/dist/lib/ticket-steps/types.js.map +1 -0
- package/dist/lib/tool-command-map.d.ts +11 -0
- package/dist/lib/tool-command-map.d.ts.map +1 -0
- package/dist/lib/tool-command-map.js +24 -0
- package/dist/lib/tool-command-map.js.map +1 -0
- package/dist/lib/trajectory-generate.d.ts +24 -0
- package/dist/lib/trajectory-generate.d.ts.map +1 -0
- package/dist/lib/trajectory-generate.js +163 -0
- package/dist/lib/trajectory-generate.js.map +1 -0
- package/dist/lib/trajectory.d.ts +20 -0
- package/dist/lib/trajectory.d.ts.map +1 -0
- package/dist/lib/trajectory.js +104 -0
- package/dist/lib/trajectory.js.map +1 -0
- package/dist/lib/trigger-config.d.ts +12 -0
- package/dist/lib/trigger-config.d.ts.map +1 -0
- package/dist/lib/trigger-config.js +37 -0
- package/dist/lib/trigger-config.js.map +1 -0
- package/dist/lib/update-check.d.ts +28 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +178 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/wave-scheduling.d.ts +18 -0
- package/dist/lib/wave-scheduling.d.ts.map +1 -0
- package/dist/lib/wave-scheduling.js +29 -0
- package/dist/lib/wave-scheduling.js.map +1 -0
- package/dist/tui/app.d.ts +17 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +139 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/index.d.ts +10 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +9 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/poller.d.ts +42 -0
- package/dist/tui/poller.d.ts.map +1 -0
- package/dist/tui/poller.js +62 -0
- package/dist/tui/poller.js.map +1 -0
- package/dist/tui/screens/auto.d.ts +85 -0
- package/dist/tui/screens/auto.d.ts.map +1 -0
- package/dist/tui/screens/auto.js +440 -0
- package/dist/tui/screens/auto.js.map +1 -0
- package/dist/tui/screens/overview.d.ts +9 -0
- package/dist/tui/screens/overview.d.ts.map +1 -0
- package/dist/tui/screens/overview.js +189 -0
- package/dist/tui/screens/overview.js.map +1 -0
- package/dist/tui/state.d.ts +93 -0
- package/dist/tui/state.d.ts.map +1 -0
- package/dist/tui/state.js +169 -0
- package/dist/tui/state.js.map +1 -0
- package/dist/tui/ticket-output-buffer.d.ts +23 -0
- package/dist/tui/ticket-output-buffer.d.ts.map +1 -0
- package/dist/tui/ticket-output-buffer.js +60 -0
- package/dist/tui/ticket-output-buffer.js.map +1 -0
- package/dist/tui/types.d.ts +18 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +5 -0
- package/dist/tui/types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave scheduling utilities for conflict-free parallel execution.
|
|
3
|
+
*
|
|
4
|
+
* Pure algorithms (conflict detection, partitioning, escalation) live in
|
|
5
|
+
* @promptwheel/core/waves/shared. This file provides metric instrumentation
|
|
6
|
+
* and re-exports.
|
|
7
|
+
*/
|
|
8
|
+
export { type ConflictSensitivity, type ConflictDetectionOptions, CONFLICT_PRONE_FILENAMES, SHARED_DIRECTORY_PATTERNS, PACKAGE_PATTERN, DIRECTORY_OVERLAP_NORMAL, DIRECTORY_OVERLAP_STRICT, parsePath, pathsOverlap, directoriesOverlap, isConflictProneFile, isInSharedDirectory, getDirectories, hasSiblingFiles, hasConflictProneOverlap, hasSharedParentConflict, touchesSamePackage, proposalsConflict, buildScoutEscalation, } from '@promptwheel/core/waves/shared';
|
|
9
|
+
import type { ConflictDetectionOptions } from '@promptwheel/core/waves/shared';
|
|
10
|
+
/**
|
|
11
|
+
* Partition proposals into conflict-free waves, with CLI metric instrumentation.
|
|
12
|
+
* Wraps the core pure algorithm and adds metric() call.
|
|
13
|
+
*/
|
|
14
|
+
export declare function partitionIntoWaves<T extends {
|
|
15
|
+
files: string[];
|
|
16
|
+
category?: string;
|
|
17
|
+
}>(proposals: T[], options?: ConflictDetectionOptions): T[][];
|
|
18
|
+
//# sourceMappingURL=wave-scheduling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wave-scheduling.d.ts","sourceRoot":"","sources":["../../src/lib/wave-scheduling.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK/E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACjF,SAAS,EAAE,CAAC,EAAE,EACd,OAAO,GAAE,wBAA6B,GACrC,CAAC,EAAE,EAAE,CAcP"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave scheduling utilities for conflict-free parallel execution.
|
|
3
|
+
*
|
|
4
|
+
* Pure algorithms (conflict detection, partitioning, escalation) live in
|
|
5
|
+
* @promptwheel/core/waves/shared. This file provides metric instrumentation
|
|
6
|
+
* and re-exports.
|
|
7
|
+
*/
|
|
8
|
+
import { metric } from './metrics.js';
|
|
9
|
+
// Re-export everything from core
|
|
10
|
+
export { CONFLICT_PRONE_FILENAMES, SHARED_DIRECTORY_PATTERNS, PACKAGE_PATTERN, DIRECTORY_OVERLAP_NORMAL, DIRECTORY_OVERLAP_STRICT, parsePath, pathsOverlap, directoriesOverlap, isConflictProneFile, isInSharedDirectory, getDirectories, hasSiblingFiles, hasConflictProneOverlap, hasSharedParentConflict, touchesSamePackage, proposalsConflict, buildScoutEscalation, } from '@promptwheel/core/waves/shared';
|
|
11
|
+
import { partitionIntoWaves as partitionIntoWavesCore, } from '@promptwheel/core/waves/shared';
|
|
12
|
+
/**
|
|
13
|
+
* Partition proposals into conflict-free waves, with CLI metric instrumentation.
|
|
14
|
+
* Wraps the core pure algorithm and adds metric() call.
|
|
15
|
+
*/
|
|
16
|
+
export function partitionIntoWaves(proposals, options = {}) {
|
|
17
|
+
const waves = partitionIntoWavesCore(proposals, options);
|
|
18
|
+
// Instrument: track wave partitioning
|
|
19
|
+
if (proposals.length > 0) {
|
|
20
|
+
metric('wave', 'partitioned', {
|
|
21
|
+
proposals: proposals.length,
|
|
22
|
+
waves: waves.length,
|
|
23
|
+
parallelizable: waves.length === 1 || (waves.length < proposals.length),
|
|
24
|
+
maxParallel: Math.max(...waves.map(w => w.length)),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return waves;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=wave-scheduling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wave-scheduling.js","sourceRoot":"","sources":["../../src/lib/wave-scheduling.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,iCAAiC;AACjC,OAAO,EAGL,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,kBAAkB,IAAI,sBAAsB,GAC7C,MAAM,gCAAgC,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAc,EACd,UAAoC,EAAE;IAEtC,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEzD,sCAAsC;IACtC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE;YAC5B,SAAS,EAAE,SAAS,CAAC,MAAM;YAC3B,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,cAAc,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YACvE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI main application
|
|
3
|
+
*
|
|
4
|
+
* Keyboard-first terminal UI for solo mode.
|
|
5
|
+
* Uses blessed for rendering, repos for state, services for actions.
|
|
6
|
+
*/
|
|
7
|
+
import type { DatabaseAdapter } from '@promptwheel/core/db';
|
|
8
|
+
import type { TuiActions } from './types.js';
|
|
9
|
+
export type TuiAppDeps = {
|
|
10
|
+
db: DatabaseAdapter;
|
|
11
|
+
repoRoot: string;
|
|
12
|
+
actions?: TuiActions;
|
|
13
|
+
};
|
|
14
|
+
export declare function startTuiApp(deps: TuiAppDeps): Promise<{
|
|
15
|
+
stop: () => Promise<void>;
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/tui/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,eAAe,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,CAAC;AA4CF,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAsG1F"}
|
package/dist/tui/app.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI main application
|
|
3
|
+
*
|
|
4
|
+
* Keyboard-first terminal UI for solo mode.
|
|
5
|
+
* Uses blessed for rendering, repos for state, services for actions.
|
|
6
|
+
*/
|
|
7
|
+
import blessed from 'neo-blessed';
|
|
8
|
+
import { AdaptivePoller } from './poller.js';
|
|
9
|
+
import { buildSnapshot } from './state.js';
|
|
10
|
+
import { createOverviewScreen } from './screens/overview.js';
|
|
11
|
+
/**
|
|
12
|
+
* Manages screen lifecycle - mount/destroy/update
|
|
13
|
+
*/
|
|
14
|
+
class ScreenManager {
|
|
15
|
+
current = null;
|
|
16
|
+
screen;
|
|
17
|
+
constructor(screen) {
|
|
18
|
+
this.screen = screen;
|
|
19
|
+
}
|
|
20
|
+
set(next) {
|
|
21
|
+
if (this.current) {
|
|
22
|
+
this.current.destroy();
|
|
23
|
+
}
|
|
24
|
+
this.current = next;
|
|
25
|
+
next.mount(this.screen);
|
|
26
|
+
next.focus?.();
|
|
27
|
+
this.screen.render();
|
|
28
|
+
}
|
|
29
|
+
update(snapshot) {
|
|
30
|
+
if (!this.current)
|
|
31
|
+
return;
|
|
32
|
+
this.current.update(snapshot);
|
|
33
|
+
this.screen.render();
|
|
34
|
+
}
|
|
35
|
+
getCurrentName() {
|
|
36
|
+
return this.current?.name ?? null;
|
|
37
|
+
}
|
|
38
|
+
destroy() {
|
|
39
|
+
this.current?.destroy();
|
|
40
|
+
this.current = null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function safeString(err) {
|
|
44
|
+
if (err instanceof Error)
|
|
45
|
+
return err.stack || err.message;
|
|
46
|
+
return String(err);
|
|
47
|
+
}
|
|
48
|
+
export async function startTuiApp(deps) {
|
|
49
|
+
const { db, repoRoot, actions } = deps;
|
|
50
|
+
const screen = blessed.screen({
|
|
51
|
+
smartCSR: true,
|
|
52
|
+
fullUnicode: true,
|
|
53
|
+
title: 'PromptWheel',
|
|
54
|
+
});
|
|
55
|
+
// Toast bar at bottom for status messages
|
|
56
|
+
const toast = blessed.box({
|
|
57
|
+
parent: screen,
|
|
58
|
+
bottom: 0,
|
|
59
|
+
height: 1,
|
|
60
|
+
width: '100%',
|
|
61
|
+
tags: true,
|
|
62
|
+
style: { fg: 'white' },
|
|
63
|
+
content: ' {gray-fg}Starting...{/gray-fg}',
|
|
64
|
+
});
|
|
65
|
+
const manager = new ScreenManager(screen);
|
|
66
|
+
const overview = createOverviewScreen({
|
|
67
|
+
onHint: (msg) => {
|
|
68
|
+
toast.setContent(` {gray-fg}${msg}{/gray-fg}`);
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
manager.set(overview);
|
|
72
|
+
let actionInFlight = null;
|
|
73
|
+
async function runAction(name, fn) {
|
|
74
|
+
if (!fn) {
|
|
75
|
+
toast.setContent(` {yellow-fg}${name} not configured{/yellow-fg}`);
|
|
76
|
+
screen.render();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (actionInFlight) {
|
|
80
|
+
toast.setContent(` {gray-fg}Action already running...{/gray-fg}`);
|
|
81
|
+
screen.render();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
toast.setContent(` {cyan-fg}${name}...{/cyan-fg}`);
|
|
85
|
+
screen.render();
|
|
86
|
+
actionInFlight = (async () => {
|
|
87
|
+
try {
|
|
88
|
+
await fn();
|
|
89
|
+
toast.setContent(` {green-fg}${name} complete{/green-fg}`);
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
toast.setContent(` {red-fg}${name} failed: ${safeString(e).slice(0, 50)}{/red-fg}`);
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
actionInFlight = null;
|
|
96
|
+
screen.render();
|
|
97
|
+
poller.tickNow();
|
|
98
|
+
}
|
|
99
|
+
})();
|
|
100
|
+
}
|
|
101
|
+
// Global keybindings
|
|
102
|
+
screen.key(['C-c'], async () => {
|
|
103
|
+
await stop();
|
|
104
|
+
});
|
|
105
|
+
screen.key(['s'], () => void runAction('Scout', actions?.runScout));
|
|
106
|
+
screen.key(['q'], () => void runAction('QA', actions?.runQa));
|
|
107
|
+
screen.key(['r'], () => {
|
|
108
|
+
toast.setContent(' {gray-fg}Refreshing...{/gray-fg}');
|
|
109
|
+
screen.render();
|
|
110
|
+
poller.tickNow();
|
|
111
|
+
});
|
|
112
|
+
// Poller wiring
|
|
113
|
+
const poller = new AdaptivePoller({
|
|
114
|
+
fetch: () => buildSnapshot({ db, repoRoot }),
|
|
115
|
+
hash: (snap) => snap.etag,
|
|
116
|
+
isActive: (snap) => snap.runs.activeCount > 0 || snap.runs.runningStep !== null,
|
|
117
|
+
intervals: {
|
|
118
|
+
idleMs: 1000,
|
|
119
|
+
activeMs: 300,
|
|
120
|
+
errorMs: 2000,
|
|
121
|
+
},
|
|
122
|
+
onUpdate: async (snap) => {
|
|
123
|
+
manager.update(snap);
|
|
124
|
+
toast.setContent(` {gray-fg}${snap.hintLine}{/gray-fg}`);
|
|
125
|
+
},
|
|
126
|
+
onError: (err) => {
|
|
127
|
+
toast.setContent(` {red-fg}Poll error: ${safeString(err).slice(0, 50)}{/red-fg}`);
|
|
128
|
+
screen.render();
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
poller.start();
|
|
132
|
+
async function stop() {
|
|
133
|
+
poller.stop();
|
|
134
|
+
manager.destroy();
|
|
135
|
+
screen.destroy();
|
|
136
|
+
}
|
|
137
|
+
return { stop };
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/tui/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI module exports
|
|
3
|
+
*/
|
|
4
|
+
export { startTuiApp, type TuiAppDeps } from './app.js';
|
|
5
|
+
export { buildSnapshot, type TuiSnapshot, type BuildSnapshotDeps } from './state.js';
|
|
6
|
+
export { AdaptivePoller, type AdaptivePollerOptions, type AdaptivePollerIntervals } from './poller.js';
|
|
7
|
+
export type { TuiScreen, TuiActions } from './types.js';
|
|
8
|
+
export { TicketOutputBuffer } from './ticket-output-buffer.js';
|
|
9
|
+
export { AutoScreen, type AutoScreenOptions, type TicketStatus } from './screens/auto.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACvG,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI module exports
|
|
3
|
+
*/
|
|
4
|
+
export { startTuiApp } from './app.js';
|
|
5
|
+
export { buildSnapshot } from './state.js';
|
|
6
|
+
export { AdaptivePoller } from './poller.js';
|
|
7
|
+
export { TicketOutputBuffer } from './ticket-output-buffer.js';
|
|
8
|
+
export { AutoScreen } from './screens/auto.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAmB,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,aAAa,EAA4C,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAA4D,MAAM,aAAa,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAA6C,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive poller for TUI
|
|
3
|
+
*
|
|
4
|
+
* Polls faster when there's activity (running steps),
|
|
5
|
+
* slows down when idle. Uses hash-based dedupe to avoid
|
|
6
|
+
* unnecessary re-renders.
|
|
7
|
+
*/
|
|
8
|
+
export type AdaptivePollerIntervals = {
|
|
9
|
+
idleMs: number;
|
|
10
|
+
activeMs: number;
|
|
11
|
+
errorMs: number;
|
|
12
|
+
};
|
|
13
|
+
export type AdaptivePollerOptions<T> = {
|
|
14
|
+
fetch: () => Promise<T>;
|
|
15
|
+
onUpdate: (snapshot: T) => void | Promise<void>;
|
|
16
|
+
onError?: (err: unknown) => void;
|
|
17
|
+
/**
|
|
18
|
+
* Determines whether the app is "active" (e.g. a run is running),
|
|
19
|
+
* which switches polling to activeMs.
|
|
20
|
+
*/
|
|
21
|
+
isActive?: (snapshot: T) => boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Used to avoid re-rendering when nothing changed.
|
|
24
|
+
* If omitted, every tick calls onUpdate.
|
|
25
|
+
*/
|
|
26
|
+
hash?: (snapshot: T) => string;
|
|
27
|
+
intervals: AdaptivePollerIntervals;
|
|
28
|
+
};
|
|
29
|
+
export declare class AdaptivePoller<T> {
|
|
30
|
+
private opts;
|
|
31
|
+
private stopped;
|
|
32
|
+
private timer;
|
|
33
|
+
private lastHash;
|
|
34
|
+
constructor(opts: AdaptivePollerOptions<T>);
|
|
35
|
+
start(): void;
|
|
36
|
+
stop(): void;
|
|
37
|
+
/** Force an immediate poll (e.g., after user action) */
|
|
38
|
+
tickNow(): void;
|
|
39
|
+
private schedule;
|
|
40
|
+
private loop;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=poller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../src/tui/poller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC;IAEpC;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC;IAE/B,SAAS,EAAE,uBAAuB,CAAC;CACpC,CAAC;AAEF,qBAAa,cAAc,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAI1C,KAAK;IAML,IAAI;IAMJ,wDAAwD;IACxD,OAAO;IAOP,OAAO,CAAC,QAAQ;YAKF,IAAI;CAqBnB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive poller for TUI
|
|
3
|
+
*
|
|
4
|
+
* Polls faster when there's activity (running steps),
|
|
5
|
+
* slows down when idle. Uses hash-based dedupe to avoid
|
|
6
|
+
* unnecessary re-renders.
|
|
7
|
+
*/
|
|
8
|
+
export class AdaptivePoller {
|
|
9
|
+
opts;
|
|
10
|
+
stopped = true;
|
|
11
|
+
timer = null;
|
|
12
|
+
lastHash = null;
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
this.opts = opts;
|
|
15
|
+
}
|
|
16
|
+
start() {
|
|
17
|
+
if (!this.stopped)
|
|
18
|
+
return;
|
|
19
|
+
this.stopped = false;
|
|
20
|
+
void this.loop();
|
|
21
|
+
}
|
|
22
|
+
stop() {
|
|
23
|
+
this.stopped = true;
|
|
24
|
+
if (this.timer)
|
|
25
|
+
clearTimeout(this.timer);
|
|
26
|
+
this.timer = null;
|
|
27
|
+
}
|
|
28
|
+
/** Force an immediate poll (e.g., after user action) */
|
|
29
|
+
tickNow() {
|
|
30
|
+
if (this.stopped)
|
|
31
|
+
return;
|
|
32
|
+
if (this.timer)
|
|
33
|
+
clearTimeout(this.timer);
|
|
34
|
+
this.timer = null;
|
|
35
|
+
void this.loop();
|
|
36
|
+
}
|
|
37
|
+
schedule(ms) {
|
|
38
|
+
if (this.stopped)
|
|
39
|
+
return;
|
|
40
|
+
this.timer = setTimeout(() => void this.loop(), ms);
|
|
41
|
+
}
|
|
42
|
+
async loop() {
|
|
43
|
+
if (this.stopped)
|
|
44
|
+
return;
|
|
45
|
+
try {
|
|
46
|
+
const snap = await this.opts.fetch();
|
|
47
|
+
const nextHash = this.opts.hash ? this.opts.hash(snap) : null;
|
|
48
|
+
const changed = nextHash === null ? true : nextHash !== this.lastHash;
|
|
49
|
+
if (changed) {
|
|
50
|
+
await this.opts.onUpdate(snap);
|
|
51
|
+
this.lastHash = nextHash;
|
|
52
|
+
}
|
|
53
|
+
const active = this.opts.isActive ? this.opts.isActive(snap) : false;
|
|
54
|
+
this.schedule(active ? this.opts.intervals.activeMs : this.opts.intervals.idleMs);
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
this.opts.onError?.(err);
|
|
58
|
+
this.schedule(this.opts.intervals.errorMs);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=poller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/tui/poller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,MAAM,OAAO,cAAc;IACjB,IAAI,CAA2B;IAC/B,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAyC,IAAI,CAAC;IACnD,QAAQ,GAAkB,IAAI,CAAC;IAEvC,YAAY,IAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,wDAAwD;IACxD,OAAO;QACL,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAEO,QAAQ,CAAC,EAAU;QACzB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;YAEtE,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI Auto Screen — unified log with ticket bookmarks.
|
|
3
|
+
*
|
|
4
|
+
* Layout:
|
|
5
|
+
* ┌─ Header ──────────────────────────────────────────────────────┐
|
|
6
|
+
* │ PromptWheel v0.5.63 │ direct │ 12m │ Cycle 2 │ 3 done │
|
|
7
|
+
* ├───────────────────────────────────────────────────────────────┤
|
|
8
|
+
* │ > Fix auth ✓ Add tests ✗ Refactor ○ Update docs │
|
|
9
|
+
* ├───────────────────────────────────────────────────────────────┤
|
|
10
|
+
* │ [scout] Scouting packages/core/**... │
|
|
11
|
+
* │ [scout] Complete: 3 proposals │
|
|
12
|
+
* │ │
|
|
13
|
+
* │ ═══ [1] Fix auth validation ═══ │
|
|
14
|
+
* │ Reading src/auth/login.ts... │
|
|
15
|
+
* │ Found validateToken function on line 42. │
|
|
16
|
+
* │ Writing src/auth/login.ts... │
|
|
17
|
+
* │ --- DONE: Committed to direct branch --- │
|
|
18
|
+
* │ │
|
|
19
|
+
* │ ═══ [2] Add tests ═══ │
|
|
20
|
+
* │ Reading src/auth/login.test.ts... │
|
|
21
|
+
* │ │
|
|
22
|
+
* ├───────────────────────────────────────────────────────────────┤
|
|
23
|
+
* │ > │
|
|
24
|
+
* └───────────────────────────────────────────────────────────────┘
|
|
25
|
+
*/
|
|
26
|
+
export type TicketStatus = 'running' | 'done' | 'failed' | 'pending';
|
|
27
|
+
export interface AutoScreenOptions {
|
|
28
|
+
version: string;
|
|
29
|
+
deliveryMode: string;
|
|
30
|
+
repoRoot?: string;
|
|
31
|
+
onInput?: (text: string) => void;
|
|
32
|
+
onQuit?: () => void;
|
|
33
|
+
}
|
|
34
|
+
export declare class AutoScreen {
|
|
35
|
+
private opts;
|
|
36
|
+
private screen;
|
|
37
|
+
private header;
|
|
38
|
+
private ticketBar;
|
|
39
|
+
private mainPane;
|
|
40
|
+
private inputBar;
|
|
41
|
+
private tickets;
|
|
42
|
+
private selectedIndex;
|
|
43
|
+
private following;
|
|
44
|
+
private unifiedLog;
|
|
45
|
+
private batchProgressStart;
|
|
46
|
+
private lastStatusLine;
|
|
47
|
+
private lastRawChunk;
|
|
48
|
+
private cycleCount;
|
|
49
|
+
private doneCount;
|
|
50
|
+
private failedCount;
|
|
51
|
+
private startTime;
|
|
52
|
+
private endTime;
|
|
53
|
+
private headerTimer;
|
|
54
|
+
private destroyed;
|
|
55
|
+
private logStream;
|
|
56
|
+
constructor(opts: AutoScreenOptions);
|
|
57
|
+
private setupKeys;
|
|
58
|
+
private updateHeader;
|
|
59
|
+
private updateTicketBar;
|
|
60
|
+
private formatElapsed;
|
|
61
|
+
private appendToUnifiedLog;
|
|
62
|
+
private jumpToTicket;
|
|
63
|
+
setSessionInfo(info: {
|
|
64
|
+
startTime: number;
|
|
65
|
+
endTime?: number;
|
|
66
|
+
cycleCount: number;
|
|
67
|
+
}): void;
|
|
68
|
+
addTicket(id: string, title: string, slotLabel: string): void;
|
|
69
|
+
updateTicketStatus(id: string, msg: string): void;
|
|
70
|
+
appendOutput(id: string, chunk: string): void;
|
|
71
|
+
markTicketDone(id: string, success: boolean, msg: string): void;
|
|
72
|
+
showScoutProgress(msg: string): void;
|
|
73
|
+
appendScoutOutput(chunk: string): void;
|
|
74
|
+
showScoutBatchProgress(statuses: Array<{
|
|
75
|
+
index: number;
|
|
76
|
+
status: string;
|
|
77
|
+
proposals?: number;
|
|
78
|
+
}>, totalBatches: number, totalProposals: number): void;
|
|
79
|
+
/** Reset batch progress tracker (call when scout finishes) */
|
|
80
|
+
private resetBatchProgress;
|
|
81
|
+
showLog(msg: string): void;
|
|
82
|
+
private writeLog;
|
|
83
|
+
destroy(): void;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=auto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/auto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AASH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAUrE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AASD,qBAAa,UAAU;IA0BT,OAAO,CAAC,IAAI;IAzBxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,YAAY,CAAM;IAG1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAA4B;gBAEzB,IAAI,EAAE,iBAAiB;IAyG3C,OAAO,CAAC,SAAS;IA6DjB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,YAAY;IAiBpB,cAAc,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOvF,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAmB7D,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAWjD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAW7C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAkB/D,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQpC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAwBtC,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IA2BlJ,8DAA8D;IAC9D,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ1B,OAAO,CAAC,QAAQ;IAKhB,OAAO,IAAI,IAAI;CAWhB"}
|