@butlerw/vellum 0.1.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 +411 -0
- package/__fixtures__/responses/code-generation.json +42 -0
- package/__fixtures__/responses/error-response.json +20 -0
- package/__fixtures__/responses/hello-world.json +32 -0
- package/dist/auth-6MCXESOH.js +26 -0
- package/dist/chunk-SECXJGWA.js +597 -0
- package/dist/index.js +34023 -0
- package/package.json +67 -0
- package/src/__tests__/commands.e2e.test.ts +728 -0
- package/src/__tests__/credentials.test.ts +713 -0
- package/src/__tests__/mode-e2e.test.ts +391 -0
- package/src/__tests__/tui-integration.test.tsx +1271 -0
- package/src/agents/__tests__/task-persistence.test.ts +235 -0
- package/src/agents/commands/delegate.ts +240 -0
- package/src/agents/commands/index.ts +10 -0
- package/src/agents/commands/resume.ts +335 -0
- package/src/agents/index.ts +29 -0
- package/src/agents/task-persistence.ts +272 -0
- package/src/agents/task-resumption.ts +242 -0
- package/src/app.tsx +4737 -0
- package/src/commands/__tests__/.gitkeep +1 -0
- package/src/commands/__tests__/agents.test.ts +606 -0
- package/src/commands/__tests__/auth.test.ts +626 -0
- package/src/commands/__tests__/autocomplete.test.ts +683 -0
- package/src/commands/__tests__/batch.test.ts +287 -0
- package/src/commands/__tests__/chain-pipe-parser.test.ts +654 -0
- package/src/commands/__tests__/completion.test.ts +238 -0
- package/src/commands/__tests__/core.test.ts +363 -0
- package/src/commands/__tests__/executor.test.ts +496 -0
- package/src/commands/__tests__/exit-codes.test.ts +220 -0
- package/src/commands/__tests__/init.test.ts +243 -0
- package/src/commands/__tests__/language.test.ts +353 -0
- package/src/commands/__tests__/mode-cli.test.ts +667 -0
- package/src/commands/__tests__/model.test.ts +277 -0
- package/src/commands/__tests__/parser.test.ts +493 -0
- package/src/commands/__tests__/performance.bench.ts +380 -0
- package/src/commands/__tests__/registry.test.ts +534 -0
- package/src/commands/__tests__/resume.test.ts +449 -0
- package/src/commands/__tests__/security.test.ts +845 -0
- package/src/commands/__tests__/stream-json.test.ts +372 -0
- package/src/commands/__tests__/user-commands.test.ts +597 -0
- package/src/commands/adapters.ts +267 -0
- package/src/commands/agent.ts +395 -0
- package/src/commands/agents/generate.ts +506 -0
- package/src/commands/agents/index.ts +272 -0
- package/src/commands/agents/show.ts +271 -0
- package/src/commands/agents/validate.ts +387 -0
- package/src/commands/auth.ts +883 -0
- package/src/commands/autocomplete.ts +480 -0
- package/src/commands/batch/command.ts +388 -0
- package/src/commands/batch/executor.ts +361 -0
- package/src/commands/batch/index.ts +12 -0
- package/src/commands/commit.ts +235 -0
- package/src/commands/completion/index.ts +371 -0
- package/src/commands/condense.ts +191 -0
- package/src/commands/config.ts +344 -0
- package/src/commands/context-provider.ts +173 -0
- package/src/commands/copy.ts +329 -0
- package/src/commands/core/clear.ts +38 -0
- package/src/commands/core/exit.ts +43 -0
- package/src/commands/core/help.ts +354 -0
- package/src/commands/core/index.ts +15 -0
- package/src/commands/cost.ts +179 -0
- package/src/commands/credentials.tsx +618 -0
- package/src/commands/custom-agents/__tests__/custom-agents.test.ts +709 -0
- package/src/commands/custom-agents/create.ts +377 -0
- package/src/commands/custom-agents/export.ts +135 -0
- package/src/commands/custom-agents/import.ts +199 -0
- package/src/commands/custom-agents/index.ts +372 -0
- package/src/commands/custom-agents/info.ts +318 -0
- package/src/commands/custom-agents/list.ts +267 -0
- package/src/commands/custom-agents/validate.ts +388 -0
- package/src/commands/diff-mode.ts +241 -0
- package/src/commands/env.ts +53 -0
- package/src/commands/executor.ts +579 -0
- package/src/commands/exit-codes.ts +202 -0
- package/src/commands/index.ts +701 -0
- package/src/commands/init/index.ts +15 -0
- package/src/commands/init/prompts.ts +366 -0
- package/src/commands/init/templates/commands-readme.md +80 -0
- package/src/commands/init/templates/example-command.md +79 -0
- package/src/commands/init/templates/example-skill.md +168 -0
- package/src/commands/init/templates/example-workflow.md +101 -0
- package/src/commands/init/templates/prompts-readme.md +52 -0
- package/src/commands/init/templates/rules-readme.md +63 -0
- package/src/commands/init/templates/skills-readme.md +83 -0
- package/src/commands/init/templates/workflows-readme.md +94 -0
- package/src/commands/init.ts +391 -0
- package/src/commands/install.ts +90 -0
- package/src/commands/language.ts +191 -0
- package/src/commands/loaders/.gitkeep +1 -0
- package/src/commands/lsp.ts +199 -0
- package/src/commands/markdown-commands.ts +253 -0
- package/src/commands/mcp.ts +588 -0
- package/src/commands/memory/export.ts +341 -0
- package/src/commands/memory/index.ts +148 -0
- package/src/commands/memory/list.ts +261 -0
- package/src/commands/memory/search.ts +346 -0
- package/src/commands/memory/utils.ts +15 -0
- package/src/commands/metrics.ts +75 -0
- package/src/commands/migrate/index.ts +16 -0
- package/src/commands/migrate/prompts.ts +477 -0
- package/src/commands/mode.ts +331 -0
- package/src/commands/model.ts +298 -0
- package/src/commands/onboard.ts +205 -0
- package/src/commands/open.ts +169 -0
- package/src/commands/output/stream-json.ts +373 -0
- package/src/commands/parser/chain-parser.ts +370 -0
- package/src/commands/parser/index.ts +29 -0
- package/src/commands/parser/pipe-parser.ts +480 -0
- package/src/commands/parser.ts +588 -0
- package/src/commands/persistence.ts +355 -0
- package/src/commands/progress.ts +18 -0
- package/src/commands/prompt/index.ts +17 -0
- package/src/commands/prompt/validate.ts +621 -0
- package/src/commands/prompt-priority.ts +401 -0
- package/src/commands/registry.ts +374 -0
- package/src/commands/sandbox/index.ts +131 -0
- package/src/commands/security/index.ts +21 -0
- package/src/commands/security/input-sanitizer.ts +168 -0
- package/src/commands/security/permission-checker.ts +456 -0
- package/src/commands/security/sensitive-data.ts +350 -0
- package/src/commands/session/delete.ts +38 -0
- package/src/commands/session/export.ts +39 -0
- package/src/commands/session/index.ts +26 -0
- package/src/commands/session/list.ts +26 -0
- package/src/commands/session/resume.ts +562 -0
- package/src/commands/session/search.ts +434 -0
- package/src/commands/session/show.ts +26 -0
- package/src/commands/settings.ts +368 -0
- package/src/commands/setup.ts +23 -0
- package/src/commands/shell/index.ts +16 -0
- package/src/commands/shell/setup.ts +422 -0
- package/src/commands/shell-init.ts +50 -0
- package/src/commands/shell-integration/index.ts +194 -0
- package/src/commands/skill.ts +1220 -0
- package/src/commands/spec.ts +558 -0
- package/src/commands/status.ts +246 -0
- package/src/commands/theme.ts +211 -0
- package/src/commands/think.ts +551 -0
- package/src/commands/trust.ts +211 -0
- package/src/commands/tutorial.ts +522 -0
- package/src/commands/types.ts +512 -0
- package/src/commands/update.ts +274 -0
- package/src/commands/usage.ts +213 -0
- package/src/commands/user-commands.ts +630 -0
- package/src/commands/utils.ts +142 -0
- package/src/commands/vim.ts +152 -0
- package/src/commands/workflow.ts +257 -0
- package/src/components/header.tsx +25 -0
- package/src/components/input.tsx +25 -0
- package/src/components/message-list.tsx +32 -0
- package/src/components/status-bar.tsx +23 -0
- package/src/index.tsx +614 -0
- package/src/onboarding/__tests__/tutorial.test.ts +740 -0
- package/src/onboarding/index.ts +69 -0
- package/src/onboarding/tips/index.ts +9 -0
- package/src/onboarding/tips/tip-engine.ts +459 -0
- package/src/onboarding/tutorial/index.ts +88 -0
- package/src/onboarding/tutorial/lessons/basics.ts +151 -0
- package/src/onboarding/tutorial/lessons/index.ts +151 -0
- package/src/onboarding/tutorial/lessons/modes.ts +230 -0
- package/src/onboarding/tutorial/lessons/tools.ts +172 -0
- package/src/onboarding/tutorial/progress-tracker.ts +350 -0
- package/src/onboarding/tutorial/storage.ts +249 -0
- package/src/onboarding/tutorial/tutorial-system.ts +462 -0
- package/src/onboarding/tutorial/types.ts +310 -0
- package/src/orchestrator-singleton.ts +129 -0
- package/src/shutdown.ts +33 -0
- package/src/test/e2e/assertions.ts +267 -0
- package/src/test/e2e/fixtures.ts +204 -0
- package/src/test/e2e/harness.ts +575 -0
- package/src/test/e2e/index.ts +57 -0
- package/src/test/e2e/types.ts +228 -0
- package/src/test/fixtures/__tests__/fake-response-loader.test.ts +314 -0
- package/src/test/fixtures/fake-response-loader.ts +314 -0
- package/src/test/fixtures/index.ts +20 -0
- package/src/tui/__tests__/mcp-panel.test.tsx +82 -0
- package/src/tui/__tests__/mcp-wiring.test.tsx +78 -0
- package/src/tui/__tests__/mode-components.test.tsx +395 -0
- package/src/tui/__tests__/permission-ask-flow.test.tsx +138 -0
- package/src/tui/__tests__/sidebar-panel-data.test.tsx +148 -0
- package/src/tui/__tests__/tools-panel-hotkeys.test.tsx +41 -0
- package/src/tui/adapters/agent-adapter.ts +1008 -0
- package/src/tui/adapters/index.ts +48 -0
- package/src/tui/adapters/message-adapter.ts +315 -0
- package/src/tui/adapters/persistence-bridge.ts +331 -0
- package/src/tui/adapters/session-adapter.ts +419 -0
- package/src/tui/buffered-stdout.ts +223 -0
- package/src/tui/components/AgentProgress.tsx +424 -0
- package/src/tui/components/Banner/AsciiArt.ts +160 -0
- package/src/tui/components/Banner/Banner.tsx +355 -0
- package/src/tui/components/Banner/ShimmerContext.tsx +131 -0
- package/src/tui/components/Banner/ShimmerText.tsx +193 -0
- package/src/tui/components/Banner/TypeWriterGradient.tsx +321 -0
- package/src/tui/components/Banner/index.ts +61 -0
- package/src/tui/components/Banner/useShimmer.ts +241 -0
- package/src/tui/components/ChatView.tsx +11 -0
- package/src/tui/components/Checkpoint/CheckpointDiffView.tsx +371 -0
- package/src/tui/components/Checkpoint/SnapshotCheckpointPanel.tsx +440 -0
- package/src/tui/components/Checkpoint/index.ts +19 -0
- package/src/tui/components/CostDisplay.tsx +226 -0
- package/src/tui/components/InitErrorBanner.tsx +122 -0
- package/src/tui/components/Input/Autocomplete.tsx +603 -0
- package/src/tui/components/Input/EnhancedCommandInput.tsx +471 -0
- package/src/tui/components/Input/HighlightedText.tsx +236 -0
- package/src/tui/components/Input/MentionAutocomplete.tsx +375 -0
- package/src/tui/components/Input/TextInput.tsx +1002 -0
- package/src/tui/components/Input/__tests__/Autocomplete.test.tsx +374 -0
- package/src/tui/components/Input/__tests__/TextInput.test.tsx +241 -0
- package/src/tui/components/Input/__tests__/highlight.test.ts +219 -0
- package/src/tui/components/Input/__tests__/slash-command-utils.test.ts +104 -0
- package/src/tui/components/Input/highlight.ts +362 -0
- package/src/tui/components/Input/index.ts +36 -0
- package/src/tui/components/Input/slash-command-utils.ts +135 -0
- package/src/tui/components/Layout.tsx +432 -0
- package/src/tui/components/McpPanel.tsx +137 -0
- package/src/tui/components/MemoryPanel.tsx +448 -0
- package/src/tui/components/Messages/CodeBlock.tsx +527 -0
- package/src/tui/components/Messages/DiffView.tsx +679 -0
- package/src/tui/components/Messages/ImageReference.tsx +89 -0
- package/src/tui/components/Messages/MarkdownBlock.tsx +228 -0
- package/src/tui/components/Messages/MarkdownRenderer.tsx +498 -0
- package/src/tui/components/Messages/MessageBubble.tsx +270 -0
- package/src/tui/components/Messages/MessageList.tsx +1719 -0
- package/src/tui/components/Messages/StreamingText.tsx +216 -0
- package/src/tui/components/Messages/ThinkingBlock.tsx +408 -0
- package/src/tui/components/Messages/ToolResultPreview.tsx +243 -0
- package/src/tui/components/Messages/__tests__/CodeBlock.test.tsx +296 -0
- package/src/tui/components/Messages/__tests__/DiffView.test.tsx +239 -0
- package/src/tui/components/Messages/__tests__/MarkdownRenderer.test.tsx +303 -0
- package/src/tui/components/Messages/__tests__/MessageBubble.test.tsx +268 -0
- package/src/tui/components/Messages/__tests__/MessageList.test.tsx +324 -0
- package/src/tui/components/Messages/__tests__/StreamingText.test.tsx +215 -0
- package/src/tui/components/Messages/index.ts +25 -0
- package/src/tui/components/ModeIndicator.tsx +177 -0
- package/src/tui/components/ModeSelector.tsx +216 -0
- package/src/tui/components/ModelSelector.tsx +339 -0
- package/src/tui/components/OnboardingWizard.tsx +670 -0
- package/src/tui/components/PhaseProgressIndicator.tsx +270 -0
- package/src/tui/components/RateLimitIndicator.tsx +82 -0
- package/src/tui/components/ScreenReaderLayout.tsx +295 -0
- package/src/tui/components/SettingsPanel.tsx +643 -0
- package/src/tui/components/Sidebar/SystemStatusPanel.tsx +284 -0
- package/src/tui/components/Sidebar/index.ts +9 -0
- package/src/tui/components/Status/ModelStatusBar.tsx +270 -0
- package/src/tui/components/Status/index.ts +12 -0
- package/src/tui/components/StatusBar/AgentModeIndicator.tsx +257 -0
- package/src/tui/components/StatusBar/ContextProgress.tsx +167 -0
- package/src/tui/components/StatusBar/FileChangesIndicator.tsx +62 -0
- package/src/tui/components/StatusBar/GitIndicator.tsx +89 -0
- package/src/tui/components/StatusBar/HeaderBar.tsx +126 -0
- package/src/tui/components/StatusBar/ModelIndicator.tsx +157 -0
- package/src/tui/components/StatusBar/PersistenceStatusIndicator.tsx +210 -0
- package/src/tui/components/StatusBar/ResilienceIndicator.tsx +106 -0
- package/src/tui/components/StatusBar/SandboxIndicator.tsx +167 -0
- package/src/tui/components/StatusBar/StatusBar.tsx +368 -0
- package/src/tui/components/StatusBar/ThinkingModeIndicator.tsx +170 -0
- package/src/tui/components/StatusBar/TokenBreakdown.tsx +246 -0
- package/src/tui/components/StatusBar/TokenCounter.tsx +135 -0
- package/src/tui/components/StatusBar/TrustModeIndicator.tsx +130 -0
- package/src/tui/components/StatusBar/WorkspaceIndicator.tsx +86 -0
- package/src/tui/components/StatusBar/__tests__/AgentModeIndicator.test.tsx +193 -0
- package/src/tui/components/StatusBar/__tests__/StatusBar.test.tsx +729 -0
- package/src/tui/components/StatusBar/index.ts +60 -0
- package/src/tui/components/TipBanner.tsx +115 -0
- package/src/tui/components/TodoItem.tsx +208 -0
- package/src/tui/components/TodoPanel.tsx +455 -0
- package/src/tui/components/Tools/ApprovalQueue.tsx +407 -0
- package/src/tui/components/Tools/OptionSelector.tsx +160 -0
- package/src/tui/components/Tools/PermissionDialog.tsx +286 -0
- package/src/tui/components/Tools/ToolParams.tsx +483 -0
- package/src/tui/components/Tools/ToolsPanel.tsx +178 -0
- package/src/tui/components/Tools/__tests__/PermissionDialog.test.tsx +510 -0
- package/src/tui/components/Tools/__tests__/ToolParams.test.tsx +432 -0
- package/src/tui/components/Tools/index.ts +21 -0
- package/src/tui/components/TrustPrompt.tsx +279 -0
- package/src/tui/components/UpdateBanner.tsx +166 -0
- package/src/tui/components/VimModeIndicator.tsx +112 -0
- package/src/tui/components/backtrack/BacktrackControls.tsx +402 -0
- package/src/tui/components/backtrack/index.ts +13 -0
- package/src/tui/components/common/AutoApprovalStatus.tsx +251 -0
- package/src/tui/components/common/CostWarning.tsx +294 -0
- package/src/tui/components/common/DynamicShortcutHints.tsx +209 -0
- package/src/tui/components/common/EnhancedLoadingIndicator.tsx +305 -0
- package/src/tui/components/common/ErrorBoundary.tsx +140 -0
- package/src/tui/components/common/GradientText.tsx +224 -0
- package/src/tui/components/common/HotkeyHelpModal.tsx +193 -0
- package/src/tui/components/common/HotkeyHints.tsx +70 -0
- package/src/tui/components/common/MaxSizedBox.tsx +354 -0
- package/src/tui/components/common/NewMessagesBadge.tsx +65 -0
- package/src/tui/components/common/ProtectedFileLegend.tsx +89 -0
- package/src/tui/components/common/ScrollIndicator.tsx +160 -0
- package/src/tui/components/common/Spinner.tsx +342 -0
- package/src/tui/components/common/StreamingIndicator.tsx +316 -0
- package/src/tui/components/common/VirtualizedList/VirtualizedList.tsx +428 -0
- package/src/tui/components/common/VirtualizedList/hooks/index.ts +19 -0
- package/src/tui/components/common/VirtualizedList/hooks/useBatchedScroll.ts +64 -0
- package/src/tui/components/common/VirtualizedList/hooks/useScrollAnchor.ts +290 -0
- package/src/tui/components/common/VirtualizedList/hooks/useVirtualization.ts +340 -0
- package/src/tui/components/common/VirtualizedList/index.ts +30 -0
- package/src/tui/components/common/VirtualizedList/types.ts +107 -0
- package/src/tui/components/common/__tests__/NewMessagesBadge.test.tsx +74 -0
- package/src/tui/components/common/__tests__/ScrollIndicator.test.tsx +193 -0
- package/src/tui/components/common/index.ts +110 -0
- package/src/tui/components/index.ts +79 -0
- package/src/tui/components/session/CheckpointPanel.tsx +323 -0
- package/src/tui/components/session/RollbackDialog.tsx +169 -0
- package/src/tui/components/session/SessionItem.tsx +136 -0
- package/src/tui/components/session/SessionListPanel.tsx +252 -0
- package/src/tui/components/session/SessionPicker.tsx +449 -0
- package/src/tui/components/session/SessionPreview.tsx +240 -0
- package/src/tui/components/session/__tests__/session.test.tsx +408 -0
- package/src/tui/components/session/index.ts +28 -0
- package/src/tui/components/session/types.ts +116 -0
- package/src/tui/components/theme/__tests__/tokens.test.ts +471 -0
- package/src/tui/components/theme/index.ts +227 -0
- package/src/tui/components/theme/tokens.ts +484 -0
- package/src/tui/config/defaults.ts +134 -0
- package/src/tui/config/index.ts +17 -0
- package/src/tui/context/AnimationContext.tsx +284 -0
- package/src/tui/context/AppContext.tsx +349 -0
- package/src/tui/context/BracketedPasteContext.tsx +372 -0
- package/src/tui/context/LspContext.tsx +192 -0
- package/src/tui/context/McpContext.tsx +325 -0
- package/src/tui/context/MessagesContext.tsx +870 -0
- package/src/tui/context/OverflowContext.tsx +213 -0
- package/src/tui/context/RateLimitContext.tsx +108 -0
- package/src/tui/context/ResilienceContext.tsx +275 -0
- package/src/tui/context/RootProvider.tsx +136 -0
- package/src/tui/context/ScrollContext.tsx +331 -0
- package/src/tui/context/ToolsContext.tsx +702 -0
- package/src/tui/context/__tests__/BracketedPasteContext.test.tsx +416 -0
- package/src/tui/context/index.ts +140 -0
- package/src/tui/enterprise-integration.ts +282 -0
- package/src/tui/hooks/__tests__/useBacktrack.test.tsx +138 -0
- package/src/tui/hooks/__tests__/useBracketedPaste.test.tsx +222 -0
- package/src/tui/hooks/__tests__/useCopyMode.test.tsx +336 -0
- package/src/tui/hooks/__tests__/useHotkeys.ctrl-input.test.tsx +96 -0
- package/src/tui/hooks/__tests__/useHotkeys.test.tsx +454 -0
- package/src/tui/hooks/__tests__/useInputHistory.test.tsx +660 -0
- package/src/tui/hooks/__tests__/useLineBuffer.test.ts +295 -0
- package/src/tui/hooks/__tests__/useModeController.test.ts +137 -0
- package/src/tui/hooks/__tests__/useModeShortcuts.test.tsx +142 -0
- package/src/tui/hooks/__tests__/useScrollController.test.ts +464 -0
- package/src/tui/hooks/__tests__/useVim.test.tsx +531 -0
- package/src/tui/hooks/index.ts +252 -0
- package/src/tui/hooks/useAgentLoop.ts +712 -0
- package/src/tui/hooks/useAlternateBuffer.ts +398 -0
- package/src/tui/hooks/useAnimatedScrollbar.ts +241 -0
- package/src/tui/hooks/useBacktrack.ts +443 -0
- package/src/tui/hooks/useBracketedPaste.ts +104 -0
- package/src/tui/hooks/useCollapsible.ts +240 -0
- package/src/tui/hooks/useCopyMode.ts +382 -0
- package/src/tui/hooks/useCostSummary.ts +75 -0
- package/src/tui/hooks/useDesktopNotification.ts +414 -0
- package/src/tui/hooks/useDiffMode.ts +44 -0
- package/src/tui/hooks/useFileChangeStats.ts +110 -0
- package/src/tui/hooks/useFileSuggestions.ts +284 -0
- package/src/tui/hooks/useFlickerDetector.ts +250 -0
- package/src/tui/hooks/useGitStatus.ts +200 -0
- package/src/tui/hooks/useHotkeys.ts +579 -0
- package/src/tui/hooks/useImagePaste.ts +114 -0
- package/src/tui/hooks/useInputHighlight.ts +145 -0
- package/src/tui/hooks/useInputHistory.ts +246 -0
- package/src/tui/hooks/useKeyboardScroll.ts +209 -0
- package/src/tui/hooks/useLineBuffer.ts +356 -0
- package/src/tui/hooks/useMentionAutocomplete.ts +235 -0
- package/src/tui/hooks/useModeController.ts +167 -0
- package/src/tui/hooks/useModeShortcuts.ts +196 -0
- package/src/tui/hooks/usePermissionHandler.ts +146 -0
- package/src/tui/hooks/usePersistence.ts +480 -0
- package/src/tui/hooks/usePersistenceShortcuts.ts +225 -0
- package/src/tui/hooks/usePlaceholderRotation.ts +143 -0
- package/src/tui/hooks/useProviderStatus.ts +270 -0
- package/src/tui/hooks/useRateLimitStatus.ts +90 -0
- package/src/tui/hooks/useScreenReader.ts +315 -0
- package/src/tui/hooks/useScrollController.ts +450 -0
- package/src/tui/hooks/useScrollEventBatcher.ts +185 -0
- package/src/tui/hooks/useSidebarPanelData.ts +115 -0
- package/src/tui/hooks/useSmoothScroll.ts +202 -0
- package/src/tui/hooks/useSnapshots.ts +300 -0
- package/src/tui/hooks/useStateAndRef.ts +50 -0
- package/src/tui/hooks/useTerminalSize.ts +206 -0
- package/src/tui/hooks/useToolApprovalController.ts +91 -0
- package/src/tui/hooks/useVim.ts +334 -0
- package/src/tui/hooks/useWorkspace.ts +56 -0
- package/src/tui/i18n/__tests__/init.test.ts +278 -0
- package/src/tui/i18n/__tests__/language-config.test.ts +199 -0
- package/src/tui/i18n/__tests__/locale-detection.test.ts +250 -0
- package/src/tui/i18n/__tests__/settings-integration.test.ts +262 -0
- package/src/tui/i18n/index.ts +72 -0
- package/src/tui/i18n/init.ts +131 -0
- package/src/tui/i18n/language-config.ts +106 -0
- package/src/tui/i18n/locale-detection.ts +173 -0
- package/src/tui/i18n/settings-integration.ts +557 -0
- package/src/tui/i18n/tui-namespace.ts +538 -0
- package/src/tui/i18n/types.ts +312 -0
- package/src/tui/index.ts +43 -0
- package/src/tui/lsp-integration.ts +409 -0
- package/src/tui/metrics-integration.ts +366 -0
- package/src/tui/plugins.ts +383 -0
- package/src/tui/resilience.ts +342 -0
- package/src/tui/sandbox-integration.ts +317 -0
- package/src/tui/services/clipboard.ts +348 -0
- package/src/tui/services/fuzzy-search.ts +441 -0
- package/src/tui/services/index.ts +72 -0
- package/src/tui/services/markdown-renderer.ts +565 -0
- package/src/tui/services/open-external.ts +247 -0
- package/src/tui/services/syntax-highlighter.ts +483 -0
- package/src/tui/slash-commands.ts +12 -0
- package/src/tui/theme/index.ts +15 -0
- package/src/tui/theme/provider.tsx +206 -0
- package/src/tui/tip-integration.ts +300 -0
- package/src/tui/types/__tests__/ink-extended.test.ts +121 -0
- package/src/tui/types/ink-extended.ts +87 -0
- package/src/tui/utils/__tests__/bracketedPaste.test.ts +231 -0
- package/src/tui/utils/__tests__/heightEstimator.test.ts +157 -0
- package/src/tui/utils/__tests__/text-width.test.ts +158 -0
- package/src/tui/utils/__tests__/textSanitizer.test.ts +266 -0
- package/src/tui/utils/__tests__/ui-sizing.test.ts +169 -0
- package/src/tui/utils/bracketedPaste.ts +107 -0
- package/src/tui/utils/cursor-manager.ts +131 -0
- package/src/tui/utils/detectTerminal.ts +596 -0
- package/src/tui/utils/findLastSafeSplitPoint.ts +92 -0
- package/src/tui/utils/heightEstimator.ts +198 -0
- package/src/tui/utils/index.ts +91 -0
- package/src/tui/utils/isNarrowWidth.ts +52 -0
- package/src/tui/utils/stdoutGuard.ts +90 -0
- package/src/tui/utils/synchronized-update.ts +70 -0
- package/src/tui/utils/text-width.ts +225 -0
- package/src/tui/utils/textSanitizer.ts +225 -0
- package/src/tui/utils/textUtils.ts +114 -0
- package/src/tui/utils/ui-sizing.ts +192 -0
- package/src/tui-blessed/app.ts +160 -0
- package/src/tui-blessed/index.ts +2 -0
- package/src/tui-blessed/neo-blessed.d.ts +6 -0
- package/src/tui-blessed/test.ts +21 -0
- package/src/tui-blessed/types.ts +14 -0
- package/src/utils/icons.ts +130 -0
- package/src/utils/index.ts +33 -0
- package/src/utils/resume-hint.ts +86 -0
- package/src/version.ts +1 -0
- package/tsconfig.json +8 -0
- package/vitest.config.ts +35 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bugfix
|
|
3
|
+
description: Structured workflow for fixing bugs
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
phases:
|
|
6
|
+
- name: reproduce
|
|
7
|
+
description: Reproduce and understand the bug
|
|
8
|
+
- name: diagnose
|
|
9
|
+
description: Find the root cause
|
|
10
|
+
- name: fix
|
|
11
|
+
description: Implement the fix
|
|
12
|
+
- name: verify
|
|
13
|
+
description: Verify the fix works
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Bugfix Workflow
|
|
17
|
+
|
|
18
|
+
A structured approach to fixing bugs safely and effectively.
|
|
19
|
+
|
|
20
|
+
## Phase 1: Reproduce
|
|
21
|
+
|
|
22
|
+
**Goal**: Understand and reliably reproduce the bug.
|
|
23
|
+
|
|
24
|
+
### Steps
|
|
25
|
+
|
|
26
|
+
1. Read the bug report/description carefully
|
|
27
|
+
2. Identify the expected vs actual behavior
|
|
28
|
+
3. Find or create a minimal reproduction case
|
|
29
|
+
4. Document reproduction steps
|
|
30
|
+
|
|
31
|
+
### Checklist
|
|
32
|
+
|
|
33
|
+
- [ ] Can reproduce the bug consistently
|
|
34
|
+
- [ ] Understand what behavior is expected
|
|
35
|
+
- [ ] Have a clear test case
|
|
36
|
+
|
|
37
|
+
## Phase 2: Diagnose
|
|
38
|
+
|
|
39
|
+
**Goal**: Find the root cause of the bug.
|
|
40
|
+
|
|
41
|
+
### Steps
|
|
42
|
+
|
|
43
|
+
1. Add logging/debugging to trace execution
|
|
44
|
+
2. Review recent changes to affected code
|
|
45
|
+
3. Check for similar issues in history
|
|
46
|
+
4. Identify the exact line(s) causing the issue
|
|
47
|
+
|
|
48
|
+
### Questions to Answer
|
|
49
|
+
|
|
50
|
+
- When was this introduced?
|
|
51
|
+
- What code path leads to the bug?
|
|
52
|
+
- Are there related issues?
|
|
53
|
+
|
|
54
|
+
### Checklist
|
|
55
|
+
|
|
56
|
+
- [ ] Root cause identified
|
|
57
|
+
- [ ] Understand why the bug occurs
|
|
58
|
+
- [ ] Know the scope of impact
|
|
59
|
+
|
|
60
|
+
## Phase 3: Fix
|
|
61
|
+
|
|
62
|
+
**Goal**: Implement a safe, minimal fix.
|
|
63
|
+
|
|
64
|
+
### Principles
|
|
65
|
+
|
|
66
|
+
1. **Minimal**: Change only what's necessary
|
|
67
|
+
2. **Safe**: Don't introduce new bugs
|
|
68
|
+
3. **Clear**: Make the fix easy to understand
|
|
69
|
+
4. **Tested**: Add regression test
|
|
70
|
+
|
|
71
|
+
### Steps
|
|
72
|
+
|
|
73
|
+
1. Write a failing test that reproduces the bug
|
|
74
|
+
2. Implement the fix
|
|
75
|
+
3. Verify the test passes
|
|
76
|
+
4. Review for side effects
|
|
77
|
+
|
|
78
|
+
### Checklist
|
|
79
|
+
|
|
80
|
+
- [ ] Test written first
|
|
81
|
+
- [ ] Fix implemented
|
|
82
|
+
- [ ] All tests pass
|
|
83
|
+
- [ ] No new warnings
|
|
84
|
+
|
|
85
|
+
## Phase 4: Verify
|
|
86
|
+
|
|
87
|
+
**Goal**: Confirm the fix works and doesn't break anything.
|
|
88
|
+
|
|
89
|
+
### Steps
|
|
90
|
+
|
|
91
|
+
1. Run the full test suite
|
|
92
|
+
2. Manually verify the original reproduction case
|
|
93
|
+
3. Check edge cases
|
|
94
|
+
4. Review the diff one more time
|
|
95
|
+
|
|
96
|
+
### Final Checklist
|
|
97
|
+
|
|
98
|
+
- [ ] Original bug is fixed
|
|
99
|
+
- [ ] No regressions introduced
|
|
100
|
+
- [ ] Tests pass
|
|
101
|
+
- [ ] Ready for review
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Prompts Directory
|
|
2
|
+
|
|
3
|
+
Custom prompt files for Vellum. Place your `.md` files here to extend or override built-in prompts.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
prompts/
|
|
9
|
+
├── roles/ # Role definitions (e.g., coder, architect)
|
|
10
|
+
├── providers/ # Provider-specific prompts
|
|
11
|
+
├── spec/ # Spec workflow phases
|
|
12
|
+
├── workers/ # Worker agent prompts
|
|
13
|
+
└── custom/ # Custom prompts
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## File Format
|
|
17
|
+
|
|
18
|
+
Each prompt file uses YAML frontmatter:
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
---
|
|
22
|
+
id: my-prompt
|
|
23
|
+
name: My Custom Prompt
|
|
24
|
+
category: custom
|
|
25
|
+
description: A brief description
|
|
26
|
+
version: "1.0.0"
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
Your prompt content here.
|
|
30
|
+
|
|
31
|
+
## Variables
|
|
32
|
+
|
|
33
|
+
Use `{{variable}}` syntax for interpolation:
|
|
34
|
+
- `{{os}}` - Operating system
|
|
35
|
+
- `{{shell}}` - Default shell
|
|
36
|
+
- `{{cwd}}` - Current directory
|
|
37
|
+
- `{{date}}` - Current date
|
|
38
|
+
- `{{mode}}` - Current coding mode
|
|
39
|
+
- `{{provider}}` - LLM provider
|
|
40
|
+
- `{{model}}` - Model name
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Priority
|
|
44
|
+
|
|
45
|
+
Prompts in this directory take precedence over:
|
|
46
|
+
1. User prompts (`~/.vellum/prompts/`)
|
|
47
|
+
2. Legacy paths (`.github/prompts/`, `.claude/prompts/`, etc.)
|
|
48
|
+
3. Built-in prompts
|
|
49
|
+
|
|
50
|
+
## Documentation
|
|
51
|
+
|
|
52
|
+
See [Vellum Prompts Documentation](https://vellum.dev/docs/prompts) for more details.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Rules Directory
|
|
2
|
+
|
|
3
|
+
Global rules that apply to all Vellum sessions. Rules are always included in the system prompt.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
rules/
|
|
9
|
+
├── *.md # Global rules (all modes)
|
|
10
|
+
└── rules-{mode}/ # Mode-specific rules
|
|
11
|
+
└── *.md
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Mode-Specific Rules
|
|
15
|
+
|
|
16
|
+
Create subdirectories for mode-specific rules:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
rules/
|
|
20
|
+
├── coding-standards.md # All modes
|
|
21
|
+
├── rules-vibe/
|
|
22
|
+
│ └── fast-iteration.md # Vibe mode only
|
|
23
|
+
├── rules-plan/
|
|
24
|
+
│ └── documentation.md # Plan mode only
|
|
25
|
+
└── rules-spec/
|
|
26
|
+
└── formal-review.md # Spec mode only
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## File Format
|
|
30
|
+
|
|
31
|
+
Rules use simple markdown:
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
---
|
|
35
|
+
id: no-console-log
|
|
36
|
+
name: No Console Logs
|
|
37
|
+
priority: 100
|
|
38
|
+
enabled: true
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Rule: No Console Logs in Production
|
|
42
|
+
|
|
43
|
+
Never leave `console.log()` statements in production code.
|
|
44
|
+
|
|
45
|
+
### Instead
|
|
46
|
+
|
|
47
|
+
- Use a logging library like `pino` or `winston`
|
|
48
|
+
- Remove debug logs before committing
|
|
49
|
+
- Use conditional logging for development
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Frontmatter Options
|
|
53
|
+
|
|
54
|
+
| Field | Type | Description |
|
|
55
|
+
|-------|------|-------------|
|
|
56
|
+
| `id` | string | Unique identifier (required) |
|
|
57
|
+
| `name` | string | Display name |
|
|
58
|
+
| `priority` | number | Load order (lower = first) |
|
|
59
|
+
| `enabled` | boolean | Whether rule is active |
|
|
60
|
+
|
|
61
|
+
## Documentation
|
|
62
|
+
|
|
63
|
+
See [Vellum Rules Documentation](https://vellum.dev/docs/rules) for more details.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Skills Directory
|
|
2
|
+
|
|
3
|
+
Skills are reusable prompt modules with specialized knowledge. They can be activated on-demand or automatically based on context.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
skills/
|
|
9
|
+
├── {skill-name}/
|
|
10
|
+
│ ├── SKILL.md # Main skill definition (required)
|
|
11
|
+
│ ├── scripts/ # Helper scripts (optional)
|
|
12
|
+
│ ├── references/ # Reference documents (optional)
|
|
13
|
+
│ └── assets/ # Additional assets (optional)
|
|
14
|
+
└── README.md
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## SKILL.md Format
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
---
|
|
21
|
+
name: typescript-testing
|
|
22
|
+
description: Expert knowledge for testing TypeScript applications
|
|
23
|
+
version: "1.0.0"
|
|
24
|
+
triggers:
|
|
25
|
+
- "test"
|
|
26
|
+
- "testing"
|
|
27
|
+
- "vitest"
|
|
28
|
+
- "jest"
|
|
29
|
+
tags:
|
|
30
|
+
- typescript
|
|
31
|
+
- testing
|
|
32
|
+
- vitest
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
# TypeScript Testing Skill
|
|
36
|
+
|
|
37
|
+
## Overview
|
|
38
|
+
|
|
39
|
+
This skill provides expert guidance for testing TypeScript applications.
|
|
40
|
+
|
|
41
|
+
## Best Practices
|
|
42
|
+
|
|
43
|
+
1. Use `vitest` for unit tests
|
|
44
|
+
2. Follow the AAA pattern (Arrange, Act, Assert)
|
|
45
|
+
3. Mock external dependencies
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
### Basic Test
|
|
50
|
+
|
|
51
|
+
\`\`\`typescript
|
|
52
|
+
import { describe, it, expect } from 'vitest';
|
|
53
|
+
|
|
54
|
+
describe('MyFunction', () => {
|
|
55
|
+
it('should return expected value', () => {
|
|
56
|
+
const result = myFunction();
|
|
57
|
+
expect(result).toBe(expected);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
\`\`\`
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Frontmatter Options
|
|
64
|
+
|
|
65
|
+
| Field | Type | Description |
|
|
66
|
+
|-------|------|-------------|
|
|
67
|
+
| `name` | string | Skill identifier (required) |
|
|
68
|
+
| `description` | string | Brief description (required) |
|
|
69
|
+
| `version` | string | Semantic version |
|
|
70
|
+
| `triggers` | string[] | Keywords that activate this skill |
|
|
71
|
+
| `tags` | string[] | Categorization tags |
|
|
72
|
+
| `priority` | number | Load order when multiple skills match |
|
|
73
|
+
|
|
74
|
+
## Activation
|
|
75
|
+
|
|
76
|
+
Skills can be:
|
|
77
|
+
- **Auto-activated**: When trigger keywords are detected
|
|
78
|
+
- **Manual**: Via `/skill {name}` command
|
|
79
|
+
- **Context-aware**: Based on file types or project structure
|
|
80
|
+
|
|
81
|
+
## Documentation
|
|
82
|
+
|
|
83
|
+
See [Vellum Skills Documentation](https://vellum.dev/docs/skills) for more details.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Workflows Directory
|
|
2
|
+
|
|
3
|
+
Multi-step workflows for complex tasks. Workflows define a sequence of phases that guide the AI through structured processes.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
workflows/
|
|
9
|
+
├── {workflow-name}.md # Workflow definition
|
|
10
|
+
└── README.md
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## File Format
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
---
|
|
17
|
+
name: feature
|
|
18
|
+
description: Implement a new feature with full lifecycle
|
|
19
|
+
version: "1.0.0"
|
|
20
|
+
phases:
|
|
21
|
+
- name: research
|
|
22
|
+
description: Understand requirements
|
|
23
|
+
- name: design
|
|
24
|
+
description: Create implementation plan
|
|
25
|
+
- name: implement
|
|
26
|
+
description: Write the code
|
|
27
|
+
- name: test
|
|
28
|
+
description: Add tests
|
|
29
|
+
- name: document
|
|
30
|
+
description: Update documentation
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# Feature Workflow
|
|
34
|
+
|
|
35
|
+
Structured workflow for implementing new features.
|
|
36
|
+
|
|
37
|
+
## Phase 1: Research
|
|
38
|
+
|
|
39
|
+
- Understand the feature requirements
|
|
40
|
+
- Identify affected components
|
|
41
|
+
- List dependencies
|
|
42
|
+
|
|
43
|
+
## Phase 2: Design
|
|
44
|
+
|
|
45
|
+
- Create high-level design
|
|
46
|
+
- Define interfaces
|
|
47
|
+
- Plan file changes
|
|
48
|
+
|
|
49
|
+
## Phase 3: Implement
|
|
50
|
+
|
|
51
|
+
- Write implementation code
|
|
52
|
+
- Follow coding standards
|
|
53
|
+
- Keep changes minimal
|
|
54
|
+
|
|
55
|
+
## Phase 4: Test
|
|
56
|
+
|
|
57
|
+
- Add unit tests
|
|
58
|
+
- Run existing tests
|
|
59
|
+
- Fix any regressions
|
|
60
|
+
|
|
61
|
+
## Phase 5: Document
|
|
62
|
+
|
|
63
|
+
- Update README if needed
|
|
64
|
+
- Add JSDoc comments
|
|
65
|
+
- Update changelog
|
|
66
|
+
```markdown
|
|
67
|
+
|
|
68
|
+
## Frontmatter Options
|
|
69
|
+
|
|
70
|
+
| Field | Type | Description |
|
|
71
|
+
|-------|------|-------------|
|
|
72
|
+
| `name` | string | Workflow identifier (required) |
|
|
73
|
+
| `description` | string | Brief description (required) |
|
|
74
|
+
| `version` | string | Semantic version |
|
|
75
|
+
| `phases` | array | Phase definitions |
|
|
76
|
+
| `phases[].name` | string | Phase identifier |
|
|
77
|
+
| `phases[].description` | string | Phase description |
|
|
78
|
+
|
|
79
|
+
## Usage
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Start a workflow
|
|
83
|
+
/workflow feature
|
|
84
|
+
|
|
85
|
+
# View available workflows
|
|
86
|
+
/workflow list
|
|
87
|
+
|
|
88
|
+
# Get help
|
|
89
|
+
/workflow help
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Documentation
|
|
93
|
+
|
|
94
|
+
See [Vellum Workflows Documentation](https://vellum.dev/docs/workflows) for more details.
|