@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Vellum Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
# @vellum/cli
|
|
2
|
+
|
|
3
|
+
> Command-line interface for the Vellum AI coding agent
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @vellum/cli
|
|
9
|
+
```markdown
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Start interactive mode
|
|
15
|
+
vellum
|
|
16
|
+
|
|
17
|
+
# Run with a specific prompt
|
|
18
|
+
vellum "Create a React component"
|
|
19
|
+
|
|
20
|
+
# Run with a configuration file
|
|
21
|
+
vellum --config vellum.config.json
|
|
22
|
+
```markdown
|
|
23
|
+
|
|
24
|
+
## TUI System
|
|
25
|
+
|
|
26
|
+
The CLI provides a rich Terminal User Interface (TUI) built with React Ink. The TUI system is modular and customizable.
|
|
27
|
+
|
|
28
|
+
### Architecture
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
tui/
|
|
32
|
+
├── components/ # UI components
|
|
33
|
+
├── context/ # React context providers
|
|
34
|
+
├── hooks/ # Custom hooks
|
|
35
|
+
├── theme/ # Theming system
|
|
36
|
+
├── adapters/ # External integrations
|
|
37
|
+
└── i18n/ # Internationalization
|
|
38
|
+
```markdown
|
|
39
|
+
|
|
40
|
+
### Quick Start
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import { RootProvider, Layout, TextInput, MessageList, StatusBar } from "@vellum/cli";
|
|
44
|
+
|
|
45
|
+
function App() {
|
|
46
|
+
return (
|
|
47
|
+
<RootProvider theme="dark">
|
|
48
|
+
<Layout
|
|
49
|
+
header={<StatusBar model={{ provider: "anthropic", model: "claude-3" }} />}
|
|
50
|
+
footer={<TextInput value={input} onChange={setInput} />}
|
|
51
|
+
>
|
|
52
|
+
<MessageList messages={messages} />
|
|
53
|
+
</Layout>
|
|
54
|
+
</RootProvider>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
```markdown
|
|
58
|
+
|
|
59
|
+
### Core Components
|
|
60
|
+
|
|
61
|
+
| Component | Description |
|
|
62
|
+
|-----------|-------------|
|
|
63
|
+
| `RootProvider` | Composes all context providers |
|
|
64
|
+
| `Layout` | Main application layout with header/footer/sidebar |
|
|
65
|
+
| `TextInput` | Multiline text input with keyboard handling |
|
|
66
|
+
| `MessageList` | Message display with auto-scroll |
|
|
67
|
+
| `StatusBar` | Model, tokens, and mode indicators |
|
|
68
|
+
| `PermissionDialog` | Tool approval dialog |
|
|
69
|
+
|
|
70
|
+
### Hooks
|
|
71
|
+
|
|
72
|
+
| Hook | Description |
|
|
73
|
+
|------|-------------|
|
|
74
|
+
| `useVim` | Vim modal editing mode |
|
|
75
|
+
| `useHotkeys` | Keyboard shortcut management |
|
|
76
|
+
| `useCopyMode` | Visual text selection and copy |
|
|
77
|
+
| `useApp` | Application state access |
|
|
78
|
+
| `useMessages` | Message state management |
|
|
79
|
+
| `useTools` | Tool execution state |
|
|
80
|
+
| `useTheme` | Theme access and switching |
|
|
81
|
+
|
|
82
|
+
### Themes
|
|
83
|
+
|
|
84
|
+
Built-in themes: `dark`, `light`, `dracula`, `nord`, `solarized`
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
// Use a preset theme
|
|
88
|
+
<RootProvider theme="dracula">
|
|
89
|
+
|
|
90
|
+
// Or provide a custom theme
|
|
91
|
+
<RootProvider theme={customTheme}>
|
|
92
|
+
```text
|
|
93
|
+
|
|
94
|
+
For detailed documentation, see [docs/tui.md](../../docs/tui.md).
|
|
95
|
+
|
|
96
|
+
## Configuration
|
|
97
|
+
|
|
98
|
+
| Option | Type | Default | Description |
|
|
99
|
+
|--------|------|---------|-------------|
|
|
100
|
+
| `theme` | `string` | `"dark"` | Color theme |
|
|
101
|
+
| `vimMode` | `boolean` | `false` | Enable Vim keybindings |
|
|
102
|
+
| `trustMode` | `string` | `"ask"` | Tool approval mode |
|
|
103
|
+
|
|
104
|
+
## Slash Commands
|
|
105
|
+
|
|
106
|
+
The CLI provides a powerful slash command system for quick actions and configuration.
|
|
107
|
+
|
|
108
|
+
### Available Commands
|
|
109
|
+
|
|
110
|
+
| Command | Aliases | Description |
|
|
111
|
+
|---------|---------|-------------|
|
|
112
|
+
| `/help [topic]` | `/h`, `/?` | Show help for commands or categories |
|
|
113
|
+
| `/clear` | `/cls` | Clear the terminal screen |
|
|
114
|
+
| `/exit [--force]` | `/quit`, `/q` | Exit the application |
|
|
115
|
+
| `/login [provider]` | `/signin` | Add credential for a provider |
|
|
116
|
+
| `/logout [provider]` | `/signout` | Remove credential for a provider |
|
|
117
|
+
| `/credentials` | | Show credential status |
|
|
118
|
+
| `/language [code]` | `/lang` | Show or change UI language |
|
|
119
|
+
|
|
120
|
+
### Command Syntax
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Basic command
|
|
124
|
+
/help
|
|
125
|
+
|
|
126
|
+
# Command with positional argument
|
|
127
|
+
/login anthropic
|
|
128
|
+
|
|
129
|
+
# Command with flags
|
|
130
|
+
/exit --force
|
|
131
|
+
/exit -f
|
|
132
|
+
|
|
133
|
+
# Command with flag and value
|
|
134
|
+
/login anthropic --store keychain
|
|
135
|
+
/login anthropic -s keychain
|
|
136
|
+
|
|
137
|
+
# Mixed positional and named arguments
|
|
138
|
+
/config theme --value dark --global
|
|
139
|
+
```markdown
|
|
140
|
+
|
|
141
|
+
## AGENTS.md Commands
|
|
142
|
+
|
|
143
|
+
The CLI provides commands for managing AGENTS.md configuration files, which control AI assistant behavior.
|
|
144
|
+
|
|
145
|
+
### `vellum init`
|
|
146
|
+
|
|
147
|
+
Create a new AGENTS.md file in the current directory.
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Interactive wizard (default)
|
|
151
|
+
vellum init
|
|
152
|
+
|
|
153
|
+
# Skip wizard, use minimal defaults
|
|
154
|
+
vellum init --minimal
|
|
155
|
+
|
|
156
|
+
# Overwrite existing file
|
|
157
|
+
vellum init --force
|
|
158
|
+
|
|
159
|
+
# Non-interactive mode for CI
|
|
160
|
+
vellum init --non-interactive
|
|
161
|
+
```markdown
|
|
162
|
+
|
|
163
|
+
**Options:**
|
|
164
|
+
|
|
165
|
+
| Flag | Description |
|
|
166
|
+
|------|-------------|
|
|
167
|
+
| `--minimal` | Skip prompts, create minimal template |
|
|
168
|
+
| `--force`, `-f` | Overwrite existing AGENTS.md |
|
|
169
|
+
| `--non-interactive` | Disable interactive prompts (for CI) |
|
|
170
|
+
|
|
171
|
+
### `vellum agents show`
|
|
172
|
+
|
|
173
|
+
Display the merged AGENTS.md configuration.
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
# Show current configuration
|
|
177
|
+
vellum agents show
|
|
178
|
+
|
|
179
|
+
# Output as JSON
|
|
180
|
+
vellum agents show --json
|
|
181
|
+
|
|
182
|
+
# Show all details including sources
|
|
183
|
+
vellum agents show --verbose
|
|
184
|
+
|
|
185
|
+
# Show config for specific scope
|
|
186
|
+
vellum agents show --scope ./src
|
|
187
|
+
```markdown
|
|
188
|
+
|
|
189
|
+
**Options:**
|
|
190
|
+
|
|
191
|
+
| Flag | Description |
|
|
192
|
+
|------|-------------|
|
|
193
|
+
| `--json` | Output configuration as JSON |
|
|
194
|
+
| `--verbose`, `-v` | Show all details including merge config |
|
|
195
|
+
| `--scope <path>` | Show config for specific directory |
|
|
196
|
+
|
|
197
|
+
### `vellum agents validate`
|
|
198
|
+
|
|
199
|
+
Validate AGENTS.md files for syntax and structural errors.
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Validate all AGENTS.md files in project
|
|
203
|
+
vellum agents validate
|
|
204
|
+
|
|
205
|
+
# Validate specific file
|
|
206
|
+
vellum agents validate ./AGENTS.md
|
|
207
|
+
|
|
208
|
+
# JSON output (for CI)
|
|
209
|
+
vellum agents validate --json
|
|
210
|
+
|
|
211
|
+
# Verbose output with warnings
|
|
212
|
+
vellum agents validate --verbose
|
|
213
|
+
```markdown
|
|
214
|
+
|
|
215
|
+
**Options:**
|
|
216
|
+
|
|
217
|
+
| Flag | Description |
|
|
218
|
+
|------|-------------|
|
|
219
|
+
| `--json` | Output validation results as JSON |
|
|
220
|
+
| `--verbose`, `-v` | Show detailed validation info |
|
|
221
|
+
|
|
222
|
+
**Exit Codes:**
|
|
223
|
+
|
|
224
|
+
| Code | Meaning |
|
|
225
|
+
|------|---------|
|
|
226
|
+
| `0` | All files valid |
|
|
227
|
+
| `1` | Validation errors found |
|
|
228
|
+
|
|
229
|
+
### `vellum agents generate`
|
|
230
|
+
|
|
231
|
+
Generate an AGENTS.md file based on project analysis.
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Generate from project analysis
|
|
235
|
+
vellum agents generate
|
|
236
|
+
|
|
237
|
+
# Preview without writing file
|
|
238
|
+
vellum agents generate --dry-run
|
|
239
|
+
|
|
240
|
+
# Write to custom path
|
|
241
|
+
vellum agents generate --output ./config/AGENTS.md
|
|
242
|
+
|
|
243
|
+
# Merge with existing file
|
|
244
|
+
vellum agents generate --merge
|
|
245
|
+
```markdown
|
|
246
|
+
|
|
247
|
+
**Options:**
|
|
248
|
+
|
|
249
|
+
| Flag | Description |
|
|
250
|
+
|------|-------------|
|
|
251
|
+
| `--dry-run` | Preview generated content without writing |
|
|
252
|
+
| `--output <path>` | Custom output file path |
|
|
253
|
+
| `--merge` | Merge with existing AGENTS.md |
|
|
254
|
+
|
|
255
|
+
**Detection Features:**
|
|
256
|
+
|
|
257
|
+
- Project name and description from `package.json`
|
|
258
|
+
- Language detection (TypeScript, JavaScript, Python, etc.)
|
|
259
|
+
- Framework detection (React, Vue, Next.js, etc.)
|
|
260
|
+
- Build tool detection (Vite, Webpack, esbuild)
|
|
261
|
+
- Test framework detection (Vitest, Jest, Playwright)
|
|
262
|
+
- Package manager detection (npm, pnpm, yarn, bun)
|
|
263
|
+
|
|
264
|
+
### Autocomplete
|
|
265
|
+
|
|
266
|
+
The CLI provides intelligent autocomplete for slash commands:
|
|
267
|
+
|
|
268
|
+
- **Trigger**: Start typing `/` to activate autocomplete
|
|
269
|
+
- **Navigate**: Use `↑`/`↓` arrow keys to select candidates
|
|
270
|
+
- **Complete**: Press `Tab` to insert the selected command
|
|
271
|
+
- **Cancel**: Press `Escape` to dismiss autocomplete
|
|
272
|
+
|
|
273
|
+
Autocomplete uses fuzzy matching, so typing `/hel` will match both `/help` and `/hello`.
|
|
274
|
+
|
|
275
|
+
### Adding Custom Commands
|
|
276
|
+
|
|
277
|
+
You can extend the command system by registering custom commands:
|
|
278
|
+
|
|
279
|
+
```typescript
|
|
280
|
+
import { CommandRegistry, type SlashCommand } from "@vellum/cli";
|
|
281
|
+
|
|
282
|
+
const myCommand: SlashCommand = {
|
|
283
|
+
name: "greet",
|
|
284
|
+
description: "Send a greeting",
|
|
285
|
+
kind: "user",
|
|
286
|
+
category: "tools",
|
|
287
|
+
positionalArgs: [
|
|
288
|
+
{
|
|
289
|
+
name: "name",
|
|
290
|
+
type: "string",
|
|
291
|
+
description: "Name to greet",
|
|
292
|
+
required: false,
|
|
293
|
+
},
|
|
294
|
+
],
|
|
295
|
+
namedArgs: [
|
|
296
|
+
{
|
|
297
|
+
name: "loud",
|
|
298
|
+
shorthand: "l",
|
|
299
|
+
type: "boolean",
|
|
300
|
+
description: "Use uppercase",
|
|
301
|
+
required: false,
|
|
302
|
+
default: false,
|
|
303
|
+
},
|
|
304
|
+
],
|
|
305
|
+
execute: async (ctx) => {
|
|
306
|
+
const name = ctx.parsedArgs.positional[0] ?? "World";
|
|
307
|
+
const loud = ctx.parsedArgs.named.loud;
|
|
308
|
+
const message = `Hello, ${name}!`;
|
|
309
|
+
|
|
310
|
+
return {
|
|
311
|
+
kind: "success",
|
|
312
|
+
message: loud ? message.toUpperCase() : message,
|
|
313
|
+
};
|
|
314
|
+
},
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
// Register with a CommandRegistry instance
|
|
318
|
+
registry.register(myCommand);
|
|
319
|
+
```markdown
|
|
320
|
+
|
|
321
|
+
### Command Result Types
|
|
322
|
+
|
|
323
|
+
Commands return one of four result types:
|
|
324
|
+
|
|
325
|
+
| Type | Description |
|
|
326
|
+
|------|-------------|
|
|
327
|
+
| `success` | Command completed successfully |
|
|
328
|
+
| `error` | Command failed with error code and message |
|
|
329
|
+
| `interactive` | Command needs user input to continue |
|
|
330
|
+
| `pending` | Command started an async operation |
|
|
331
|
+
|
|
332
|
+
## Internationalization (i18n)
|
|
333
|
+
|
|
334
|
+
The CLI supports multiple languages for UI text.
|
|
335
|
+
|
|
336
|
+
### Supported Languages
|
|
337
|
+
|
|
338
|
+
| Code | Language |
|
|
339
|
+
|------|----------|
|
|
340
|
+
| `en` | English (default) |
|
|
341
|
+
| `zh` | 中文 (Chinese) |
|
|
342
|
+
|
|
343
|
+
### Setting Language
|
|
344
|
+
|
|
345
|
+
**Using the `/language` command:**
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
# Show current language and available options
|
|
349
|
+
/language
|
|
350
|
+
|
|
351
|
+
# Switch to Chinese
|
|
352
|
+
/language zh
|
|
353
|
+
|
|
354
|
+
# Switch to English
|
|
355
|
+
/language en
|
|
356
|
+
|
|
357
|
+
# Clear preference (use auto-detection)
|
|
358
|
+
/language auto
|
|
359
|
+
```markdown
|
|
360
|
+
|
|
361
|
+
**Using the `--language` CLI flag:**
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Start with Chinese UI
|
|
365
|
+
vellum --language zh
|
|
366
|
+
vellum -l zh
|
|
367
|
+
|
|
368
|
+
# Start with English UI
|
|
369
|
+
vellum --language en
|
|
370
|
+
```markdown
|
|
371
|
+
|
|
372
|
+
**Using environment variable:**
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
# Set default language via environment
|
|
376
|
+
export VELLUM_LANGUAGE=zh
|
|
377
|
+
vellum
|
|
378
|
+
```markdown
|
|
379
|
+
|
|
380
|
+
### Language Priority
|
|
381
|
+
|
|
382
|
+
Language is resolved in the following order (highest priority first):
|
|
383
|
+
|
|
384
|
+
1. `--language` / `-l` CLI flag
|
|
385
|
+
2. `VELLUM_LANGUAGE` environment variable
|
|
386
|
+
3. Saved preference (from `/language` command)
|
|
387
|
+
4. System locale detection
|
|
388
|
+
5. Default (`en`)
|
|
389
|
+
|
|
390
|
+
## Development
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
# Run in development mode
|
|
394
|
+
pnpm dev
|
|
395
|
+
|
|
396
|
+
# Build
|
|
397
|
+
pnpm build
|
|
398
|
+
|
|
399
|
+
# Test
|
|
400
|
+
pnpm test
|
|
401
|
+
|
|
402
|
+
# Run benchmarks
|
|
403
|
+
pnpm exec vitest bench
|
|
404
|
+
|
|
405
|
+
# Type check
|
|
406
|
+
pnpm typecheck
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
## License
|
|
410
|
+
|
|
411
|
+
MIT
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "code-generation",
|
|
3
|
+
"promptPattern": "write.*function|create.*code|generate.*typescript",
|
|
4
|
+
"isRegex": true,
|
|
5
|
+
"description": "Code generation response with tool calls",
|
|
6
|
+
"streamDelay": 20,
|
|
7
|
+
"events": [
|
|
8
|
+
{
|
|
9
|
+
"type": "text",
|
|
10
|
+
"content": "I'll create a TypeScript function for you.\n\n"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"type": "tool_call_start",
|
|
14
|
+
"toolCallId": "toolu_01ABC123",
|
|
15
|
+
"toolName": "write_file"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "tool_call_delta",
|
|
19
|
+
"toolCallId": "toolu_01ABC123",
|
|
20
|
+
"arguments": "{\"path\": \"src/utils/helper.ts\", \"content\": \"export function greet(name: string): string {\\n return `Hello, ${name}!`;\\n}\"}"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"type": "tool_call_end",
|
|
24
|
+
"toolCallId": "toolu_01ABC123"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "text",
|
|
28
|
+
"content": "\n\nI've created a simple greeting function in `src/utils/helper.ts`."
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "usage",
|
|
32
|
+
"usage": {
|
|
33
|
+
"inputTokens": 25,
|
|
34
|
+
"outputTokens": 120
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "end",
|
|
39
|
+
"stopReason": "end_turn"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "error-response",
|
|
3
|
+
"promptPattern": "trigger-error|cause-failure",
|
|
4
|
+
"isRegex": true,
|
|
5
|
+
"description": "Error response for testing error handling",
|
|
6
|
+
"streamDelay": 0,
|
|
7
|
+
"events": [
|
|
8
|
+
{
|
|
9
|
+
"type": "text",
|
|
10
|
+
"content": "Processing your request..."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"type": "error",
|
|
14
|
+
"error": {
|
|
15
|
+
"code": "RATE_LIMIT_EXCEEDED",
|
|
16
|
+
"message": "You have exceeded the rate limit. Please wait before making another request."
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "hello-world",
|
|
3
|
+
"promptPattern": "hello",
|
|
4
|
+
"isRegex": false,
|
|
5
|
+
"description": "Simple greeting response for basic connectivity tests",
|
|
6
|
+
"streamDelay": 10,
|
|
7
|
+
"events": [
|
|
8
|
+
{
|
|
9
|
+
"type": "text",
|
|
10
|
+
"content": "Hello! "
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"type": "text",
|
|
14
|
+
"content": "I'm Vellum, your AI assistant. "
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "text",
|
|
18
|
+
"content": "How can I help you today?"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "usage",
|
|
22
|
+
"usage": {
|
|
23
|
+
"inputTokens": 5,
|
|
24
|
+
"outputTokens": 15
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "end",
|
|
29
|
+
"stopReason": "end_turn"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
authCommand,
|
|
3
|
+
authSlashCommands,
|
|
4
|
+
createCredentialManager,
|
|
5
|
+
credentialsCommand,
|
|
6
|
+
enhancedAuthCommands,
|
|
7
|
+
executeSlashCommand,
|
|
8
|
+
findSlashCommand,
|
|
9
|
+
getSlashCommandHelp,
|
|
10
|
+
handleCredentials,
|
|
11
|
+
isSlashCommand,
|
|
12
|
+
parseSlashCommand
|
|
13
|
+
} from "./chunk-SECXJGWA.js";
|
|
14
|
+
export {
|
|
15
|
+
authCommand,
|
|
16
|
+
authSlashCommands,
|
|
17
|
+
createCredentialManager,
|
|
18
|
+
credentialsCommand,
|
|
19
|
+
enhancedAuthCommands,
|
|
20
|
+
executeSlashCommand,
|
|
21
|
+
findSlashCommand,
|
|
22
|
+
getSlashCommandHelp,
|
|
23
|
+
handleCredentials,
|
|
24
|
+
isSlashCommand,
|
|
25
|
+
parseSlashCommand
|
|
26
|
+
};
|