wiggum-cli 0.12.0 → 0.13.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/dist/ai/agents/codebase-analyst.d.ts +0 -1
- package/dist/ai/agents/codebase-analyst.js +0 -1
- package/dist/ai/agents/codebase-analyzer.d.ts +0 -1
- package/dist/ai/agents/codebase-analyzer.js +0 -1
- package/dist/ai/agents/context-enricher.d.ts +0 -1
- package/dist/ai/agents/context-enricher.js +0 -1
- package/dist/ai/agents/evaluator-optimizer.d.ts +0 -1
- package/dist/ai/agents/evaluator-optimizer.js +0 -1
- package/dist/ai/agents/index.d.ts +0 -1
- package/dist/ai/agents/index.js +0 -1
- package/dist/ai/agents/mcp-detector.d.ts +0 -1
- package/dist/ai/agents/mcp-detector.js +0 -1
- package/dist/ai/agents/orchestrator.d.ts +0 -1
- package/dist/ai/agents/orchestrator.js +0 -1
- package/dist/ai/agents/planning-orchestrator.d.ts +0 -1
- package/dist/ai/agents/planning-orchestrator.js +0 -1
- package/dist/ai/agents/stack-researcher.d.ts +0 -1
- package/dist/ai/agents/stack-researcher.js +0 -1
- package/dist/ai/agents/stack-utils.d.ts +0 -1
- package/dist/ai/agents/stack-utils.js +0 -1
- package/dist/ai/agents/synthesis-agent.d.ts +0 -1
- package/dist/ai/agents/synthesis-agent.js +0 -1
- package/dist/ai/agents/tech-researcher.d.ts +0 -1
- package/dist/ai/agents/tech-researcher.js +0 -1
- package/dist/ai/agents/types.d.ts +0 -1
- package/dist/ai/agents/types.js +0 -1
- package/dist/ai/conversation/conversation-manager.d.ts +0 -1
- package/dist/ai/conversation/conversation-manager.js +0 -1
- package/dist/ai/conversation/index.d.ts +0 -1
- package/dist/ai/conversation/index.js +0 -1
- package/dist/ai/conversation/interview-tools.d.ts +0 -1
- package/dist/ai/conversation/interview-tools.js +0 -1
- package/dist/ai/conversation/spec-generator.d.ts +0 -1
- package/dist/ai/conversation/spec-generator.js +0 -1
- package/dist/ai/conversation/url-fetcher.d.ts +0 -1
- package/dist/ai/conversation/url-fetcher.js +0 -1
- package/dist/ai/enhancer.d.ts +0 -1
- package/dist/ai/enhancer.js +0 -1
- package/dist/ai/index.d.ts +0 -1
- package/dist/ai/index.js +0 -1
- package/dist/ai/prompts.d.ts +0 -1
- package/dist/ai/prompts.js +0 -1
- package/dist/ai/providers.d.ts +0 -1
- package/dist/ai/providers.js +0 -1
- package/dist/ai/tools/context7.d.ts +0 -1
- package/dist/ai/tools/context7.js +0 -1
- package/dist/ai/tools/index.d.ts +0 -1
- package/dist/ai/tools/index.js +0 -1
- package/dist/ai/tools/tavily.d.ts +0 -1
- package/dist/ai/tools/tavily.js +0 -1
- package/dist/ai/tools.d.ts +0 -1
- package/dist/ai/tools.js +0 -1
- package/dist/commands/config.d.ts +0 -1
- package/dist/commands/config.js +0 -1
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +0 -1
- package/dist/commands/monitor.d.ts +0 -1
- package/dist/commands/monitor.js +0 -1
- package/dist/commands/new.d.ts +0 -1
- package/dist/commands/new.js +0 -1
- package/dist/commands/run.d.ts +0 -1
- package/dist/commands/run.js +0 -1
- package/dist/context/convert.d.ts +0 -1
- package/dist/context/convert.js +0 -1
- package/dist/context/index.d.ts +0 -1
- package/dist/context/index.js +0 -1
- package/dist/context/storage.d.ts +0 -1
- package/dist/context/storage.js +0 -1
- package/dist/context/types.d.ts +0 -1
- package/dist/context/types.js +0 -1
- package/dist/generator/config.d.ts +0 -1
- package/dist/generator/config.js +0 -1
- package/dist/generator/index.d.ts +0 -1
- package/dist/generator/index.js +0 -1
- package/dist/generator/templates.d.ts +0 -1
- package/dist/generator/templates.js +0 -1
- package/dist/generator/writer.d.ts +0 -1
- package/dist/generator/writer.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +7 -7
- package/dist/repl/command-parser.d.ts +0 -1
- package/dist/repl/command-parser.js +0 -1
- package/dist/repl/index.d.ts +0 -1
- package/dist/repl/index.js +0 -1
- package/dist/repl/session-state.d.ts +0 -1
- package/dist/repl/session-state.js +0 -1
- package/dist/scanner/detectors/core/framework.d.ts +0 -1
- package/dist/scanner/detectors/core/framework.js +0 -1
- package/dist/scanner/detectors/core/packageManager.d.ts +0 -1
- package/dist/scanner/detectors/core/packageManager.js +0 -1
- package/dist/scanner/detectors/core/styling.d.ts +0 -1
- package/dist/scanner/detectors/core/styling.js +0 -1
- package/dist/scanner/detectors/core/testing.d.ts +0 -1
- package/dist/scanner/detectors/core/testing.js +0 -1
- package/dist/scanner/detectors/data/api.d.ts +0 -1
- package/dist/scanner/detectors/data/api.js +0 -1
- package/dist/scanner/detectors/data/database.d.ts +0 -1
- package/dist/scanner/detectors/data/database.js +0 -1
- package/dist/scanner/detectors/data/orm.d.ts +0 -1
- package/dist/scanner/detectors/data/orm.js +0 -1
- package/dist/scanner/detectors/frontend/formHandling.d.ts +0 -1
- package/dist/scanner/detectors/frontend/formHandling.js +0 -1
- package/dist/scanner/detectors/frontend/stateManagement.d.ts +0 -1
- package/dist/scanner/detectors/frontend/stateManagement.js +0 -1
- package/dist/scanner/detectors/frontend/uiComponents.d.ts +0 -1
- package/dist/scanner/detectors/frontend/uiComponents.js +0 -1
- package/dist/scanner/detectors/infra/deployment.d.ts +0 -1
- package/dist/scanner/detectors/infra/deployment.js +0 -1
- package/dist/scanner/detectors/infra/monorepo.d.ts +0 -1
- package/dist/scanner/detectors/infra/monorepo.js +0 -1
- package/dist/scanner/detectors/mcp/mcpProject.d.ts +0 -1
- package/dist/scanner/detectors/mcp/mcpProject.js +0 -1
- package/dist/scanner/detectors/mcp/mcpServers.d.ts +0 -1
- package/dist/scanner/detectors/mcp/mcpServers.js +0 -1
- package/dist/scanner/detectors/services/analytics.d.ts +0 -1
- package/dist/scanner/detectors/services/analytics.js +0 -1
- package/dist/scanner/detectors/services/auth.d.ts +0 -1
- package/dist/scanner/detectors/services/auth.js +0 -1
- package/dist/scanner/detectors/services/email.d.ts +0 -1
- package/dist/scanner/detectors/services/email.js +0 -1
- package/dist/scanner/detectors/services/payments.d.ts +0 -1
- package/dist/scanner/detectors/services/payments.js +0 -1
- package/dist/scanner/detectors/utils.d.ts +0 -1
- package/dist/scanner/detectors/utils.js +0 -1
- package/dist/scanner/index.d.ts +0 -1
- package/dist/scanner/index.js +0 -1
- package/dist/scanner/registry.d.ts +0 -1
- package/dist/scanner/registry.js +0 -1
- package/dist/scanner/types.d.ts +0 -1
- package/dist/scanner/types.js +0 -1
- package/dist/tui/app.d.ts +12 -23
- package/dist/tui/app.js +130 -315
- package/dist/tui/components/ActionOutput.d.ts +0 -1
- package/dist/tui/components/ActionOutput.js +0 -1
- package/dist/tui/components/AppShell.d.ts +47 -0
- package/dist/tui/components/AppShell.js +19 -0
- package/dist/tui/components/ChatInput.d.ts +0 -1
- package/dist/tui/components/ChatInput.js +0 -1
- package/dist/tui/components/CommandDropdown.d.ts +0 -1
- package/dist/tui/components/CommandDropdown.js +0 -1
- package/dist/tui/components/Confirm.d.ts +0 -1
- package/dist/tui/components/Confirm.js +0 -1
- package/dist/tui/components/ErrorCard.d.ts +0 -1
- package/dist/tui/components/ErrorCard.js +0 -1
- package/dist/tui/components/FooterStatusBar.d.ts +0 -1
- package/dist/tui/components/FooterStatusBar.js +2 -4
- package/dist/tui/components/HeaderContent.d.ts +28 -0
- package/dist/tui/components/HeaderContent.js +16 -0
- package/dist/tui/components/MessageList.d.ts +9 -8
- package/dist/tui/components/MessageList.js +23 -18
- package/dist/tui/components/MultiSelect.d.ts +0 -1
- package/dist/tui/components/MultiSelect.js +0 -1
- package/dist/tui/components/PasswordInput.d.ts +0 -1
- package/dist/tui/components/PasswordInput.js +0 -1
- package/dist/tui/components/PhaseHeader.d.ts +0 -1
- package/dist/tui/components/PhaseHeader.js +0 -1
- package/dist/tui/components/RunCompletionSummary.d.ts +22 -0
- package/dist/tui/components/RunCompletionSummary.js +23 -0
- package/dist/tui/components/Select.d.ts +0 -1
- package/dist/tui/components/Select.js +0 -1
- package/dist/tui/components/SpecCompletionSummary.d.ts +47 -0
- package/dist/tui/components/SpecCompletionSummary.js +124 -0
- package/dist/tui/components/StatusLine.d.ts +0 -1
- package/dist/tui/components/StatusLine.js +0 -1
- package/dist/tui/components/StreamingText.d.ts +0 -1
- package/dist/tui/components/StreamingText.js +0 -1
- package/dist/tui/components/TipsBar.d.ts +24 -0
- package/dist/tui/components/TipsBar.js +23 -0
- package/dist/tui/components/ToolCallCard.d.ts +0 -1
- package/dist/tui/components/ToolCallCard.js +0 -1
- package/dist/tui/components/WiggumBanner.d.ts +0 -1
- package/dist/tui/components/WiggumBanner.js +8 -4
- package/dist/tui/components/WorkingIndicator.d.ts +0 -1
- package/dist/tui/components/WorkingIndicator.js +0 -1
- package/dist/tui/components/index.d.ts +0 -1
- package/dist/tui/components/index.js +0 -1
- package/dist/tui/hooks/index.d.ts +0 -1
- package/dist/tui/hooks/index.js +0 -1
- package/dist/tui/hooks/useBackgroundRuns.d.ts +52 -0
- package/dist/tui/hooks/useBackgroundRuns.js +121 -0
- package/dist/tui/hooks/useCommandHistory.d.ts +0 -1
- package/dist/tui/hooks/useCommandHistory.js +0 -1
- package/dist/tui/hooks/useInit.d.ts +0 -1
- package/dist/tui/hooks/useInit.js +0 -1
- package/dist/tui/hooks/useSpecGenerator.d.ts +0 -1
- package/dist/tui/hooks/useSpecGenerator.js +0 -1
- package/dist/tui/hooks/useSync.d.ts +0 -1
- package/dist/tui/hooks/useSync.js +0 -1
- package/dist/tui/index.d.ts +0 -1
- package/dist/tui/index.js +0 -1
- package/dist/tui/orchestration/index.d.ts +0 -1
- package/dist/tui/orchestration/index.js +0 -1
- package/dist/tui/orchestration/interview-orchestrator.d.ts +0 -1
- package/dist/tui/orchestration/interview-orchestrator.js +1 -2
- package/dist/tui/screens/InitScreen.d.ts +13 -9
- package/dist/tui/screens/InitScreen.js +86 -88
- package/dist/tui/screens/InterviewScreen.d.ts +11 -9
- package/dist/tui/screens/InterviewScreen.js +145 -100
- package/dist/tui/screens/MainShell.d.ts +13 -13
- package/dist/tui/screens/MainShell.js +65 -70
- package/dist/tui/screens/RunScreen.d.ts +17 -2
- package/dist/tui/screens/RunScreen.js +235 -81
- package/dist/tui/screens/index.d.ts +0 -3
- package/dist/tui/screens/index.js +0 -2
- package/dist/tui/theme.d.ts +0 -1
- package/dist/tui/theme.js +0 -1
- package/dist/tui/types/interview.d.ts +0 -1
- package/dist/tui/types/interview.js +0 -1
- package/dist/tui/utils/input-utils.d.ts +0 -1
- package/dist/tui/utils/input-utils.js +0 -1
- package/dist/tui/utils/loop-status.d.ts +22 -4
- package/dist/tui/utils/loop-status.js +65 -16
- package/dist/utils/colors.d.ts +0 -1
- package/dist/utils/colors.js +0 -1
- package/dist/utils/config.d.ts +0 -1
- package/dist/utils/config.js +0 -1
- package/dist/utils/env.d.ts +0 -1
- package/dist/utils/env.js +0 -1
- package/dist/utils/header.d.ts +0 -1
- package/dist/utils/header.js +0 -1
- package/dist/utils/json-repair.d.ts +0 -1
- package/dist/utils/json-repair.js +0 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.js +0 -1
- package/dist/utils/spinner.d.ts +0 -1
- package/dist/utils/spinner.js +0 -1
- package/dist/utils/tracing.d.ts +0 -1
- package/dist/utils/tracing.js +0 -1
- package/dist/utils/tui.d.ts +0 -1
- package/dist/utils/tui.js +0 -1
- package/dist/utils/update-check.d.ts +0 -1
- package/dist/utils/update-check.js +0 -1
- package/package.json +6 -4
- package/CONTRIBUTING.md +0 -162
- package/dist/__test-utils__/fixtures.d.ts +0 -17
- package/dist/__test-utils__/fixtures.d.ts.map +0 -1
- package/dist/__test-utils__/fixtures.js +0 -32
- package/dist/__test-utils__/fixtures.js.map +0 -1
- package/dist/__test-utils__/ink-helpers.d.ts +0 -43
- package/dist/__test-utils__/ink-helpers.d.ts.map +0 -1
- package/dist/__test-utils__/ink-helpers.js +0 -62
- package/dist/__test-utils__/ink-helpers.js.map +0 -1
- package/dist/__test-utils__/mock-ai.d.ts +0 -99
- package/dist/__test-utils__/mock-ai.d.ts.map +0 -1
- package/dist/__test-utils__/mock-ai.js +0 -75
- package/dist/__test-utils__/mock-ai.js.map +0 -1
- package/dist/__test-utils__/mock-tracing.d.ts +0 -18
- package/dist/__test-utils__/mock-tracing.d.ts.map +0 -1
- package/dist/__test-utils__/mock-tracing.js +0 -24
- package/dist/__test-utils__/mock-tracing.js.map +0 -1
- package/dist/__test-utils__/setup.d.ts +0 -8
- package/dist/__test-utils__/setup.d.ts.map +0 -1
- package/dist/__test-utils__/setup.js +0 -21
- package/dist/__test-utils__/setup.js.map +0 -1
- package/dist/ai/agents/codebase-analyst.d.ts.map +0 -1
- package/dist/ai/agents/codebase-analyst.js.map +0 -1
- package/dist/ai/agents/codebase-analyzer.d.ts.map +0 -1
- package/dist/ai/agents/codebase-analyzer.js.map +0 -1
- package/dist/ai/agents/context-enricher.d.ts.map +0 -1
- package/dist/ai/agents/context-enricher.js.map +0 -1
- package/dist/ai/agents/evaluator-optimizer.d.ts.map +0 -1
- package/dist/ai/agents/evaluator-optimizer.js.map +0 -1
- package/dist/ai/agents/index.d.ts.map +0 -1
- package/dist/ai/agents/index.js.map +0 -1
- package/dist/ai/agents/mcp-detector.d.ts.map +0 -1
- package/dist/ai/agents/mcp-detector.js.map +0 -1
- package/dist/ai/agents/orchestrator.d.ts.map +0 -1
- package/dist/ai/agents/orchestrator.js.map +0 -1
- package/dist/ai/agents/planning-orchestrator.d.ts.map +0 -1
- package/dist/ai/agents/planning-orchestrator.js.map +0 -1
- package/dist/ai/agents/stack-researcher.d.ts.map +0 -1
- package/dist/ai/agents/stack-researcher.js.map +0 -1
- package/dist/ai/agents/stack-utils.d.ts.map +0 -1
- package/dist/ai/agents/stack-utils.js.map +0 -1
- package/dist/ai/agents/synthesis-agent.d.ts.map +0 -1
- package/dist/ai/agents/synthesis-agent.js.map +0 -1
- package/dist/ai/agents/tech-researcher.d.ts.map +0 -1
- package/dist/ai/agents/tech-researcher.js.map +0 -1
- package/dist/ai/agents/types.d.ts.map +0 -1
- package/dist/ai/agents/types.js.map +0 -1
- package/dist/ai/conversation/conversation-manager.d.ts.map +0 -1
- package/dist/ai/conversation/conversation-manager.js.map +0 -1
- package/dist/ai/conversation/index.d.ts.map +0 -1
- package/dist/ai/conversation/index.js.map +0 -1
- package/dist/ai/conversation/interview-tools.d.ts.map +0 -1
- package/dist/ai/conversation/interview-tools.js.map +0 -1
- package/dist/ai/conversation/spec-generator.d.ts.map +0 -1
- package/dist/ai/conversation/spec-generator.js.map +0 -1
- package/dist/ai/conversation/url-fetcher.d.ts.map +0 -1
- package/dist/ai/conversation/url-fetcher.js.map +0 -1
- package/dist/ai/enhancer.d.ts.map +0 -1
- package/dist/ai/enhancer.js.map +0 -1
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/index.js.map +0 -1
- package/dist/ai/prompts.d.ts.map +0 -1
- package/dist/ai/prompts.js.map +0 -1
- package/dist/ai/providers.d.ts.map +0 -1
- package/dist/ai/providers.js.map +0 -1
- package/dist/ai/tools/context7.d.ts.map +0 -1
- package/dist/ai/tools/context7.js.map +0 -1
- package/dist/ai/tools/index.d.ts.map +0 -1
- package/dist/ai/tools/index.js.map +0 -1
- package/dist/ai/tools/tavily.d.ts.map +0 -1
- package/dist/ai/tools/tavily.js.map +0 -1
- package/dist/ai/tools.d.ts.map +0 -1
- package/dist/ai/tools.js.map +0 -1
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/monitor.d.ts.map +0 -1
- package/dist/commands/monitor.js.map +0 -1
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js.map +0 -1
- package/dist/context/convert.d.ts.map +0 -1
- package/dist/context/convert.js.map +0 -1
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/index.js.map +0 -1
- package/dist/context/storage.d.ts.map +0 -1
- package/dist/context/storage.js.map +0 -1
- package/dist/context/types.d.ts.map +0 -1
- package/dist/context/types.js.map +0 -1
- package/dist/generator/config.d.ts.map +0 -1
- package/dist/generator/config.js.map +0 -1
- package/dist/generator/index.d.ts.map +0 -1
- package/dist/generator/index.js.map +0 -1
- package/dist/generator/templates.d.ts.map +0 -1
- package/dist/generator/templates.js.map +0 -1
- package/dist/generator/writer.d.ts.map +0 -1
- package/dist/generator/writer.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/repl/command-parser.d.ts.map +0 -1
- package/dist/repl/command-parser.js.map +0 -1
- package/dist/repl/index.d.ts.map +0 -1
- package/dist/repl/index.js.map +0 -1
- package/dist/repl/session-state.d.ts.map +0 -1
- package/dist/repl/session-state.js.map +0 -1
- package/dist/scanner/detectors/core/framework.d.ts.map +0 -1
- package/dist/scanner/detectors/core/framework.js.map +0 -1
- package/dist/scanner/detectors/core/packageManager.d.ts.map +0 -1
- package/dist/scanner/detectors/core/packageManager.js.map +0 -1
- package/dist/scanner/detectors/core/styling.d.ts.map +0 -1
- package/dist/scanner/detectors/core/styling.js.map +0 -1
- package/dist/scanner/detectors/core/testing.d.ts.map +0 -1
- package/dist/scanner/detectors/core/testing.js.map +0 -1
- package/dist/scanner/detectors/data/api.d.ts.map +0 -1
- package/dist/scanner/detectors/data/api.js.map +0 -1
- package/dist/scanner/detectors/data/database.d.ts.map +0 -1
- package/dist/scanner/detectors/data/database.js.map +0 -1
- package/dist/scanner/detectors/data/orm.d.ts.map +0 -1
- package/dist/scanner/detectors/data/orm.js.map +0 -1
- package/dist/scanner/detectors/frontend/formHandling.d.ts.map +0 -1
- package/dist/scanner/detectors/frontend/formHandling.js.map +0 -1
- package/dist/scanner/detectors/frontend/stateManagement.d.ts.map +0 -1
- package/dist/scanner/detectors/frontend/stateManagement.js.map +0 -1
- package/dist/scanner/detectors/frontend/uiComponents.d.ts.map +0 -1
- package/dist/scanner/detectors/frontend/uiComponents.js.map +0 -1
- package/dist/scanner/detectors/infra/deployment.d.ts.map +0 -1
- package/dist/scanner/detectors/infra/deployment.js.map +0 -1
- package/dist/scanner/detectors/infra/monorepo.d.ts.map +0 -1
- package/dist/scanner/detectors/infra/monorepo.js.map +0 -1
- package/dist/scanner/detectors/mcp/mcpProject.d.ts.map +0 -1
- package/dist/scanner/detectors/mcp/mcpProject.js.map +0 -1
- package/dist/scanner/detectors/mcp/mcpServers.d.ts.map +0 -1
- package/dist/scanner/detectors/mcp/mcpServers.js.map +0 -1
- package/dist/scanner/detectors/services/analytics.d.ts.map +0 -1
- package/dist/scanner/detectors/services/analytics.js.map +0 -1
- package/dist/scanner/detectors/services/auth.d.ts.map +0 -1
- package/dist/scanner/detectors/services/auth.js.map +0 -1
- package/dist/scanner/detectors/services/email.d.ts.map +0 -1
- package/dist/scanner/detectors/services/email.js.map +0 -1
- package/dist/scanner/detectors/services/payments.d.ts.map +0 -1
- package/dist/scanner/detectors/services/payments.js.map +0 -1
- package/dist/scanner/detectors/utils.d.ts.map +0 -1
- package/dist/scanner/detectors/utils.js.map +0 -1
- package/dist/scanner/index.d.ts.map +0 -1
- package/dist/scanner/index.js.map +0 -1
- package/dist/scanner/registry.d.ts.map +0 -1
- package/dist/scanner/registry.js.map +0 -1
- package/dist/scanner/types.d.ts.map +0 -1
- package/dist/scanner/types.js.map +0 -1
- package/dist/tui/app.d.ts.map +0 -1
- package/dist/tui/app.js.map +0 -1
- package/dist/tui/components/ActionOutput.d.ts.map +0 -1
- package/dist/tui/components/ActionOutput.js.map +0 -1
- package/dist/tui/components/ChatInput.d.ts.map +0 -1
- package/dist/tui/components/ChatInput.js.map +0 -1
- package/dist/tui/components/ChatInput.test.d.ts +0 -2
- package/dist/tui/components/ChatInput.test.d.ts.map +0 -1
- package/dist/tui/components/ChatInput.test.js +0 -75
- package/dist/tui/components/ChatInput.test.js.map +0 -1
- package/dist/tui/components/CommandDropdown.d.ts.map +0 -1
- package/dist/tui/components/CommandDropdown.js.map +0 -1
- package/dist/tui/components/Confirm.d.ts.map +0 -1
- package/dist/tui/components/Confirm.js.map +0 -1
- package/dist/tui/components/ErrorCard.d.ts.map +0 -1
- package/dist/tui/components/ErrorCard.js.map +0 -1
- package/dist/tui/components/FooterStatusBar.d.ts.map +0 -1
- package/dist/tui/components/FooterStatusBar.js.map +0 -1
- package/dist/tui/components/MessageList.d.ts.map +0 -1
- package/dist/tui/components/MessageList.js.map +0 -1
- package/dist/tui/components/MultiSelect.d.ts.map +0 -1
- package/dist/tui/components/MultiSelect.js.map +0 -1
- package/dist/tui/components/PasswordInput.d.ts.map +0 -1
- package/dist/tui/components/PasswordInput.js.map +0 -1
- package/dist/tui/components/PhaseHeader.d.ts.map +0 -1
- package/dist/tui/components/PhaseHeader.js.map +0 -1
- package/dist/tui/components/Select.d.ts.map +0 -1
- package/dist/tui/components/Select.js.map +0 -1
- package/dist/tui/components/StatusLine.d.ts.map +0 -1
- package/dist/tui/components/StatusLine.js.map +0 -1
- package/dist/tui/components/StreamingText.d.ts.map +0 -1
- package/dist/tui/components/StreamingText.js.map +0 -1
- package/dist/tui/components/ToolCallCard.d.ts.map +0 -1
- package/dist/tui/components/ToolCallCard.js.map +0 -1
- package/dist/tui/components/WiggumBanner.d.ts.map +0 -1
- package/dist/tui/components/WiggumBanner.js.map +0 -1
- package/dist/tui/components/WorkingIndicator.d.ts.map +0 -1
- package/dist/tui/components/WorkingIndicator.js.map +0 -1
- package/dist/tui/components/WorkingIndicator.test.d.ts +0 -2
- package/dist/tui/components/WorkingIndicator.test.d.ts.map +0 -1
- package/dist/tui/components/WorkingIndicator.test.js +0 -26
- package/dist/tui/components/WorkingIndicator.test.js.map +0 -1
- package/dist/tui/components/index.d.ts.map +0 -1
- package/dist/tui/components/index.js.map +0 -1
- package/dist/tui/demo.d.ts +0 -8
- package/dist/tui/demo.d.ts.map +0 -1
- package/dist/tui/demo.js +0 -69
- package/dist/tui/demo.js.map +0 -1
- package/dist/tui/hooks/index.d.ts.map +0 -1
- package/dist/tui/hooks/index.js.map +0 -1
- package/dist/tui/hooks/useCommandHistory.d.ts.map +0 -1
- package/dist/tui/hooks/useCommandHistory.js.map +0 -1
- package/dist/tui/hooks/useInit.d.ts.map +0 -1
- package/dist/tui/hooks/useInit.js.map +0 -1
- package/dist/tui/hooks/useSpecGenerator.d.ts.map +0 -1
- package/dist/tui/hooks/useSpecGenerator.js.map +0 -1
- package/dist/tui/hooks/useSync.d.ts.map +0 -1
- package/dist/tui/hooks/useSync.js.map +0 -1
- package/dist/tui/index.d.ts.map +0 -1
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/orchestration/index.d.ts.map +0 -1
- package/dist/tui/orchestration/index.js.map +0 -1
- package/dist/tui/orchestration/interview-orchestrator.d.ts.map +0 -1
- package/dist/tui/orchestration/interview-orchestrator.js.map +0 -1
- package/dist/tui/screens/InitScreen.d.ts.map +0 -1
- package/dist/tui/screens/InitScreen.js.map +0 -1
- package/dist/tui/screens/InterviewScreen.d.ts.map +0 -1
- package/dist/tui/screens/InterviewScreen.integration.test.d.ts +0 -7
- package/dist/tui/screens/InterviewScreen.integration.test.d.ts.map +0 -1
- package/dist/tui/screens/InterviewScreen.integration.test.js +0 -149
- package/dist/tui/screens/InterviewScreen.integration.test.js.map +0 -1
- package/dist/tui/screens/InterviewScreen.js.map +0 -1
- package/dist/tui/screens/MainShell.d.ts.map +0 -1
- package/dist/tui/screens/MainShell.js.map +0 -1
- package/dist/tui/screens/MainShell.test.d.ts +0 -2
- package/dist/tui/screens/MainShell.test.d.ts.map +0 -1
- package/dist/tui/screens/MainShell.test.js +0 -103
- package/dist/tui/screens/MainShell.test.js.map +0 -1
- package/dist/tui/screens/RunScreen.d.ts.map +0 -1
- package/dist/tui/screens/RunScreen.js.map +0 -1
- package/dist/tui/screens/WelcomeScreen.d.ts +0 -45
- package/dist/tui/screens/WelcomeScreen.d.ts.map +0 -1
- package/dist/tui/screens/WelcomeScreen.js +0 -55
- package/dist/tui/screens/WelcomeScreen.js.map +0 -1
- package/dist/tui/screens/WelcomeScreen.test.d.ts +0 -2
- package/dist/tui/screens/WelcomeScreen.test.d.ts.map +0 -1
- package/dist/tui/screens/WelcomeScreen.test.js +0 -51
- package/dist/tui/screens/WelcomeScreen.test.js.map +0 -1
- package/dist/tui/screens/index.d.ts.map +0 -1
- package/dist/tui/screens/index.js.map +0 -1
- package/dist/tui/theme.d.ts.map +0 -1
- package/dist/tui/theme.js.map +0 -1
- package/dist/tui/types/interview.d.ts.map +0 -1
- package/dist/tui/types/interview.js.map +0 -1
- package/dist/tui/utils/input-utils.d.ts.map +0 -1
- package/dist/tui/utils/input-utils.js.map +0 -1
- package/dist/tui/utils/loop-status.d.ts.map +0 -1
- package/dist/tui/utils/loop-status.js.map +0 -1
- package/dist/utils/colors.d.ts.map +0 -1
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/header.d.ts.map +0 -1
- package/dist/utils/header.js.map +0 -1
- package/dist/utils/json-repair.d.ts.map +0 -1
- package/dist/utils/json-repair.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/spinner.d.ts.map +0 -1
- package/dist/utils/spinner.js.map +0 -1
- package/dist/utils/tracing.d.ts.map +0 -1
- package/dist/utils/tracing.js.map +0 -1
- package/dist/utils/tui.d.ts.map +0 -1
- package/dist/utils/tui.js.map +0 -1
- package/dist/utils/update-check.d.ts.map +0 -1
- package/dist/utils/update-check.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Text, Box } from 'ink';
|
|
2
|
+
import { Text, Box, useStdout } from 'ink';
|
|
3
3
|
import { colors } from '../theme.js';
|
|
4
4
|
/**
|
|
5
5
|
* ASCII art banner for Wiggum CLI
|
|
@@ -12,6 +12,8 @@ const BANNER = `██╗ ██╗██╗ ██████╗ ███
|
|
|
12
12
|
╚███╔███╔╝██║╚██████╔╝╚██████╔╝╚██████╔╝██║ ╚═╝ ██║
|
|
13
13
|
╚══╝╚══╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
|
|
14
14
|
`;
|
|
15
|
+
/** Minimum terminal columns needed to display the banner without wrapping */
|
|
16
|
+
const BANNER_MIN_WIDTH = 55;
|
|
15
17
|
/**
|
|
16
18
|
* WiggumBanner component
|
|
17
19
|
*
|
|
@@ -25,9 +27,11 @@ const BANNER = `██╗ ██╗██╗ ██████╗ ███
|
|
|
25
27
|
* ```
|
|
26
28
|
*/
|
|
27
29
|
export function WiggumBanner({ color = colors.yellow, compact = false, }) {
|
|
28
|
-
|
|
30
|
+
const { stdout } = useStdout();
|
|
31
|
+
const columns = stdout?.columns ?? 80;
|
|
32
|
+
// Auto-compact when terminal is too narrow for the ASCII art
|
|
33
|
+
if (compact || columns < BANNER_MIN_WIDTH) {
|
|
29
34
|
return (_jsx(Box, { children: _jsx(Text, { color: color, bold: true, children: "WIGGUM CLI" }) }));
|
|
30
35
|
}
|
|
31
|
-
return (_jsx(Box, { flexDirection: "column", children: _jsx(Text, { color: color, children: BANNER }) }));
|
|
36
|
+
return (_jsx(Box, { flexDirection: "column", overflow: "hidden", children: _jsx(Text, { color: color, wrap: "truncate", children: BANNER }) }));
|
|
32
37
|
}
|
|
33
|
-
//# sourceMappingURL=WiggumBanner.js.map
|
|
@@ -68,4 +68,3 @@ export function WorkingIndicator({ state, showElapsedTime = true, variant = 'act
|
|
|
68
68
|
}
|
|
69
69
|
return (_jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Text, { color: indicatorColor, children: _jsx(Spinner, { type: "dots" }) }), _jsx(Text, { color: indicatorColor, children: status }), showElapsedTime && elapsedMs >= 1000 && (_jsxs(Text, { dimColor: true, children: ["(", formatElapsedTime(elapsedMs), ")"] })), hint && (_jsxs(Text, { color: colors.brown, dimColor: true, children: ["(", hint, ")"] }))] }));
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=WorkingIndicator.js.map
|
|
@@ -29,4 +29,3 @@ export { ActionOutput, ActionList } from './ActionOutput.js';
|
|
|
29
29
|
export type { ActionOutputProps, ActionListProps, ActionStatus } from './ActionOutput.js';
|
|
30
30
|
export { ErrorCard, CommonErrors } from './ErrorCard.js';
|
|
31
31
|
export type { ErrorCardProps, ErrorSuggestion } from './ErrorCard.js';
|
|
32
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -11,4 +11,3 @@ export { useCommandHistory } from './useCommandHistory.js';
|
|
|
11
11
|
export type { UseCommandHistoryReturn } from './useCommandHistory.js';
|
|
12
12
|
export { useSync } from './useSync.js';
|
|
13
13
|
export type { SyncStatus, UseSyncReturn } from './useSync.js';
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/tui/hooks/index.js
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useBackgroundRuns - Hook for tracking background run processes
|
|
3
|
+
*
|
|
4
|
+
* Manages a list of backgrounded feature loop runs, polling their
|
|
5
|
+
* status files periodically to track completion.
|
|
6
|
+
*/
|
|
7
|
+
import { type LoopStatus } from '../utils/loop-status.js';
|
|
8
|
+
/**
|
|
9
|
+
* A backgrounded feature loop run
|
|
10
|
+
*/
|
|
11
|
+
export interface BackgroundRun {
|
|
12
|
+
/** Feature name being implemented */
|
|
13
|
+
featureName: string;
|
|
14
|
+
/** Timestamp when backgrounded */
|
|
15
|
+
backgroundedAt: number;
|
|
16
|
+
/** Path to the log file */
|
|
17
|
+
logPath: string;
|
|
18
|
+
/** Last polled status */
|
|
19
|
+
lastStatus: LoopStatus;
|
|
20
|
+
/** Whether the run has completed */
|
|
21
|
+
completed: boolean;
|
|
22
|
+
/** If polling was stopped due to repeated failures, the error reason */
|
|
23
|
+
pollError?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Return type for useBackgroundRuns hook
|
|
27
|
+
*/
|
|
28
|
+
export interface UseBackgroundRunsReturn {
|
|
29
|
+
/** Current list of background runs */
|
|
30
|
+
runs: BackgroundRun[];
|
|
31
|
+
/** Add a feature to background tracking. Reads initial status and starts polling. */
|
|
32
|
+
background: (featureName: string) => void;
|
|
33
|
+
/** Remove a completed run from tracking */
|
|
34
|
+
dismiss: (featureName: string) => void;
|
|
35
|
+
/** Get a specific run by feature name */
|
|
36
|
+
getRun: (featureName: string) => BackgroundRun | undefined;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Hook to track background feature loop runs
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* const { runs, background, dismiss, getRun } = useBackgroundRuns();
|
|
44
|
+
*
|
|
45
|
+
* // When user presses Esc on RunScreen
|
|
46
|
+
* background('my-feature');
|
|
47
|
+
*
|
|
48
|
+
* // Check if a feature is running in background
|
|
49
|
+
* const run = getRun('my-feature');
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function useBackgroundRuns(): UseBackgroundRunsReturn;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useBackgroundRuns - Hook for tracking background run processes
|
|
3
|
+
*
|
|
4
|
+
* Manages a list of backgrounded feature loop runs, polling their
|
|
5
|
+
* status files periodically to track completion.
|
|
6
|
+
*/
|
|
7
|
+
import { useState, useCallback, useEffect, useRef } from 'react';
|
|
8
|
+
import { readLoopStatus, getLoopLogPath } from '../utils/loop-status.js';
|
|
9
|
+
import { logger } from '../../utils/logger.js';
|
|
10
|
+
const POLL_INTERVAL_MS = 5000;
|
|
11
|
+
/**
|
|
12
|
+
* Hook to track background feature loop runs
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const { runs, background, dismiss, getRun } = useBackgroundRuns();
|
|
17
|
+
*
|
|
18
|
+
* // When user presses Esc on RunScreen
|
|
19
|
+
* background('my-feature');
|
|
20
|
+
*
|
|
21
|
+
* // Check if a feature is running in background
|
|
22
|
+
* const run = getRun('my-feature');
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function useBackgroundRuns() {
|
|
26
|
+
const [runs, setRuns] = useState([]);
|
|
27
|
+
const pollTimers = useRef(new Map());
|
|
28
|
+
const startPolling = useCallback((featureName) => {
|
|
29
|
+
// Clear existing timer if any
|
|
30
|
+
const existing = pollTimers.current.get(featureName);
|
|
31
|
+
if (existing)
|
|
32
|
+
clearInterval(existing);
|
|
33
|
+
let consecutiveFailures = 0;
|
|
34
|
+
const MAX_FAILURES = 3;
|
|
35
|
+
const timer = setInterval(() => {
|
|
36
|
+
try {
|
|
37
|
+
const status = readLoopStatus(featureName);
|
|
38
|
+
consecutiveFailures = 0;
|
|
39
|
+
const nowCompleted = !status.running;
|
|
40
|
+
setRuns((prev) => prev.map((run) => {
|
|
41
|
+
if (run.featureName !== featureName)
|
|
42
|
+
return run;
|
|
43
|
+
return {
|
|
44
|
+
...run,
|
|
45
|
+
lastStatus: status,
|
|
46
|
+
completed: nowCompleted,
|
|
47
|
+
};
|
|
48
|
+
}));
|
|
49
|
+
// Stop polling once the run completes
|
|
50
|
+
if (nowCompleted) {
|
|
51
|
+
clearInterval(timer);
|
|
52
|
+
pollTimers.current.delete(featureName);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
consecutiveFailures++;
|
|
57
|
+
logger.error(`Failed to poll status for ${featureName} (attempt ${consecutiveFailures}): ${err instanceof Error ? err.message : String(err)}`);
|
|
58
|
+
if (consecutiveFailures >= MAX_FAILURES) {
|
|
59
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
60
|
+
logger.error(`Stopping polling for ${featureName} after ${consecutiveFailures} consecutive failures`);
|
|
61
|
+
clearInterval(timer);
|
|
62
|
+
pollTimers.current.delete(featureName);
|
|
63
|
+
setRuns((prev) => prev.map((run) => run.featureName === featureName
|
|
64
|
+
? { ...run, pollError: `Status polling failed: ${reason}` }
|
|
65
|
+
: run));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}, POLL_INTERVAL_MS);
|
|
69
|
+
pollTimers.current.set(featureName, timer);
|
|
70
|
+
}, []);
|
|
71
|
+
const background = useCallback((featureName) => {
|
|
72
|
+
let status;
|
|
73
|
+
try {
|
|
74
|
+
status = readLoopStatus(featureName);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
logger.error(`Failed to read initial status for ${featureName}: ${err instanceof Error ? err.message : String(err)}`);
|
|
78
|
+
// Assume still running so polling can discover truth — if truly dead, polling will detect it
|
|
79
|
+
status = { running: true, iteration: 0, maxIterations: 0, phase: 'unknown', tokensInput: 0, tokensOutput: 0 };
|
|
80
|
+
}
|
|
81
|
+
const logPath = getLoopLogPath(featureName);
|
|
82
|
+
setRuns((prev) => {
|
|
83
|
+
// Don't add duplicates
|
|
84
|
+
if (prev.some((r) => r.featureName === featureName)) {
|
|
85
|
+
return prev;
|
|
86
|
+
}
|
|
87
|
+
return [...prev, {
|
|
88
|
+
featureName,
|
|
89
|
+
backgroundedAt: Date.now(),
|
|
90
|
+
logPath,
|
|
91
|
+
lastStatus: status,
|
|
92
|
+
completed: !status.running,
|
|
93
|
+
}];
|
|
94
|
+
});
|
|
95
|
+
if (status.running) {
|
|
96
|
+
startPolling(featureName);
|
|
97
|
+
}
|
|
98
|
+
}, [startPolling]);
|
|
99
|
+
const dismiss = useCallback((featureName) => {
|
|
100
|
+
// Clear poll timer
|
|
101
|
+
const timer = pollTimers.current.get(featureName);
|
|
102
|
+
if (timer) {
|
|
103
|
+
clearInterval(timer);
|
|
104
|
+
pollTimers.current.delete(featureName);
|
|
105
|
+
}
|
|
106
|
+
setRuns((prev) => prev.filter((r) => r.featureName !== featureName));
|
|
107
|
+
}, []);
|
|
108
|
+
const getRun = useCallback((featureName) => {
|
|
109
|
+
return runs.find((r) => r.featureName === featureName);
|
|
110
|
+
}, [runs]);
|
|
111
|
+
// Cleanup all poll timers on unmount
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
return () => {
|
|
114
|
+
for (const timer of pollTimers.current.values()) {
|
|
115
|
+
clearInterval(timer);
|
|
116
|
+
}
|
|
117
|
+
pollTimers.current.clear();
|
|
118
|
+
};
|
|
119
|
+
}, []);
|
|
120
|
+
return { runs, background, dismiss, getRun };
|
|
121
|
+
}
|
package/dist/tui/index.d.ts
CHANGED
package/dist/tui/index.js
CHANGED
|
@@ -385,7 +385,7 @@ export class InterviewOrchestrator {
|
|
|
385
385
|
try {
|
|
386
386
|
// Set initial phase
|
|
387
387
|
this.onPhaseChange('context');
|
|
388
|
-
this.onMessage('system', `
|
|
388
|
+
this.onMessage('system', `Phase 1: Context - New spec for feature: ${this.featureName}`);
|
|
389
389
|
// Ready for context input
|
|
390
390
|
this.onReady();
|
|
391
391
|
}
|
|
@@ -619,4 +619,3 @@ Today's date is ${new Date().toISOString().split('T')[0]}.`;
|
|
|
619
619
|
return this.generatedSpec;
|
|
620
620
|
}
|
|
621
621
|
}
|
|
622
|
-
//# sourceMappingURL=interview-orchestrator.js.map
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* InitScreen - Full Ink-based init workflow
|
|
3
3
|
*
|
|
4
|
-
* Handles the complete project initialization flow within the TUI
|
|
4
|
+
* Handles the complete project initialization flow within the TUI.
|
|
5
|
+
* High-level steps (some may be skipped if already configured):
|
|
5
6
|
* 1. Scanning project structure
|
|
6
|
-
* 2.
|
|
7
|
-
* 3.
|
|
8
|
-
* 4.
|
|
9
|
-
* 5.
|
|
7
|
+
* 2. Provider selection
|
|
8
|
+
* 3. API key collection (if needed) + optional save
|
|
9
|
+
* 4. Model selection
|
|
10
|
+
* 5. AI analysis (agentic)
|
|
11
|
+
* 6. Confirmation + file generation
|
|
12
|
+
*
|
|
13
|
+
* Wrapped in AppShell for consistent layout.
|
|
10
14
|
*/
|
|
11
15
|
import React from 'react';
|
|
12
16
|
import type { SessionState } from '../../repl/session-state.js';
|
|
@@ -14,6 +18,8 @@ import type { SessionState } from '../../repl/session-state.js';
|
|
|
14
18
|
* Props for the InitScreen component
|
|
15
19
|
*/
|
|
16
20
|
export interface InitScreenProps {
|
|
21
|
+
/** Pre-built header element from App */
|
|
22
|
+
header: React.ReactNode;
|
|
17
23
|
/** Project root directory */
|
|
18
24
|
projectRoot: string;
|
|
19
25
|
/** Current session state */
|
|
@@ -26,8 +32,6 @@ export interface InitScreenProps {
|
|
|
26
32
|
/**
|
|
27
33
|
* InitScreen component
|
|
28
34
|
*
|
|
29
|
-
* The complete Ink-based init workflow
|
|
30
|
-
* init flow with native Ink components.
|
|
35
|
+
* The complete Ink-based init workflow wrapped in AppShell.
|
|
31
36
|
*/
|
|
32
|
-
export declare function InitScreen({ projectRoot, sessionState, onComplete, onCancel, }: InitScreenProps): React.ReactElement;
|
|
33
|
-
//# sourceMappingURL=InitScreen.d.ts.map
|
|
37
|
+
export declare function InitScreen({ header, projectRoot, sessionState, onComplete, onCancel, }: InitScreenProps): React.ReactElement;
|