mistagent 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/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/src/api/auth.d.ts +7 -0
- package/dist/src/api/auth.d.ts.map +1 -0
- package/dist/src/api/auth.js +16 -0
- package/dist/src/api/auth.js.map +1 -0
- package/dist/src/api/chat.d.ts +8 -0
- package/dist/src/api/chat.d.ts.map +1 -0
- package/dist/src/api/chat.js +14 -0
- package/dist/src/api/chat.js.map +1 -0
- package/dist/src/api/client.d.ts +22 -0
- package/dist/src/api/client.d.ts.map +1 -0
- package/dist/src/api/client.js +140 -0
- package/dist/src/api/client.js.map +1 -0
- package/dist/src/api/commands.d.ts +8 -0
- package/dist/src/api/commands.d.ts.map +1 -0
- package/dist/src/api/commands.js +13 -0
- package/dist/src/api/commands.js.map +1 -0
- package/dist/src/api/models.d.ts +9 -0
- package/dist/src/api/models.d.ts.map +1 -0
- package/dist/src/api/models.js +13 -0
- package/dist/src/api/models.js.map +1 -0
- package/dist/src/api/sessions.d.ts +25 -0
- package/dist/src/api/sessions.d.ts.map +1 -0
- package/dist/src/api/sessions.js +26 -0
- package/dist/src/api/sessions.js.map +1 -0
- package/dist/src/api/tools.d.ts +7 -0
- package/dist/src/api/tools.d.ts.map +1 -0
- package/dist/src/api/tools.js +8 -0
- package/dist/src/api/tools.js.map +1 -0
- package/dist/src/components/App.d.ts +22 -0
- package/dist/src/components/App.d.ts.map +1 -0
- package/dist/src/components/App.js +61 -0
- package/dist/src/components/App.js.map +1 -0
- package/dist/src/components/AppLayout.d.ts +8 -0
- package/dist/src/components/AppLayout.d.ts.map +1 -0
- package/dist/src/components/AppLayout.js +18 -0
- package/dist/src/components/AppLayout.js.map +1 -0
- package/dist/src/components/Composer.d.ts +8 -0
- package/dist/src/components/Composer.d.ts.map +1 -0
- package/dist/src/components/Composer.js +294 -0
- package/dist/src/components/Composer.js.map +1 -0
- package/dist/src/components/Footer.d.ts +10 -0
- package/dist/src/components/Footer.d.ts.map +1 -0
- package/dist/src/components/Footer.js +34 -0
- package/dist/src/components/Footer.js.map +1 -0
- package/dist/src/components/Header.d.ts +3 -0
- package/dist/src/components/Header.d.ts.map +1 -0
- package/dist/src/components/Header.js +99 -0
- package/dist/src/components/Header.js.map +1 -0
- package/dist/src/components/HistoryItemDisplay.d.ts +8 -0
- package/dist/src/components/HistoryItemDisplay.d.ts.map +1 -0
- package/dist/src/components/HistoryItemDisplay.js +32 -0
- package/dist/src/components/HistoryItemDisplay.js.map +1 -0
- package/dist/src/components/InputPrompt.d.ts +11 -0
- package/dist/src/components/InputPrompt.d.ts.map +1 -0
- package/dist/src/components/InputPrompt.js +12 -0
- package/dist/src/components/InputPrompt.js.map +1 -0
- package/dist/src/components/LoadingIndicator.d.ts +8 -0
- package/dist/src/components/LoadingIndicator.d.ts.map +1 -0
- package/dist/src/components/LoadingIndicator.js +17 -0
- package/dist/src/components/LoadingIndicator.js.map +1 -0
- package/dist/src/components/LoginPrompt.d.ts +8 -0
- package/dist/src/components/LoginPrompt.d.ts.map +1 -0
- package/dist/src/components/LoginPrompt.js +76 -0
- package/dist/src/components/LoginPrompt.js.map +1 -0
- package/dist/src/components/MainContent.d.ts +3 -0
- package/dist/src/components/MainContent.d.ts.map +1 -0
- package/dist/src/components/MainContent.js +22 -0
- package/dist/src/components/MainContent.js.map +1 -0
- package/dist/src/components/ModelPicker.d.ts +3 -0
- package/dist/src/components/ModelPicker.d.ts.map +1 -0
- package/dist/src/components/ModelPicker.js +119 -0
- package/dist/src/components/ModelPicker.js.map +1 -0
- package/dist/src/components/MultiLineInput.d.ts +19 -0
- package/dist/src/components/MultiLineInput.d.ts.map +1 -0
- package/dist/src/components/MultiLineInput.js +108 -0
- package/dist/src/components/MultiLineInput.js.map +1 -0
- package/dist/src/components/SessionPicker.d.ts +3 -0
- package/dist/src/components/SessionPicker.d.ts.map +1 -0
- package/dist/src/components/SessionPicker.js +131 -0
- package/dist/src/components/SessionPicker.js.map +1 -0
- package/dist/src/components/SuggestionsDisplay.d.ts +16 -0
- package/dist/src/components/SuggestionsDisplay.d.ts.map +1 -0
- package/dist/src/components/SuggestionsDisplay.js +34 -0
- package/dist/src/components/SuggestionsDisplay.js.map +1 -0
- package/dist/src/components/messages/AssistantMessage.d.ts +8 -0
- package/dist/src/components/messages/AssistantMessage.d.ts.map +1 -0
- package/dist/src/components/messages/AssistantMessage.js +9 -0
- package/dist/src/components/messages/AssistantMessage.js.map +1 -0
- package/dist/src/components/messages/CommandResult.d.ts +8 -0
- package/dist/src/components/messages/CommandResult.d.ts.map +1 -0
- package/dist/src/components/messages/CommandResult.js +7 -0
- package/dist/src/components/messages/CommandResult.js.map +1 -0
- package/dist/src/components/messages/ErrorMessage.d.ts +7 -0
- package/dist/src/components/messages/ErrorMessage.d.ts.map +1 -0
- package/dist/src/components/messages/ErrorMessage.js +7 -0
- package/dist/src/components/messages/ErrorMessage.js.map +1 -0
- package/dist/src/components/messages/InfoMessage.d.ts +9 -0
- package/dist/src/components/messages/InfoMessage.d.ts.map +1 -0
- package/dist/src/components/messages/InfoMessage.js +8 -0
- package/dist/src/components/messages/InfoMessage.js.map +1 -0
- package/dist/src/components/messages/ModelMessage.d.ts +8 -0
- package/dist/src/components/messages/ModelMessage.d.ts.map +1 -0
- package/dist/src/components/messages/ModelMessage.js +7 -0
- package/dist/src/components/messages/ModelMessage.js.map +1 -0
- package/dist/src/components/messages/SessionMessage.d.ts +8 -0
- package/dist/src/components/messages/SessionMessage.d.ts.map +1 -0
- package/dist/src/components/messages/SessionMessage.js +12 -0
- package/dist/src/components/messages/SessionMessage.js.map +1 -0
- package/dist/src/components/messages/ToolCallMessage.d.ts +9 -0
- package/dist/src/components/messages/ToolCallMessage.d.ts.map +1 -0
- package/dist/src/components/messages/ToolCallMessage.js +14 -0
- package/dist/src/components/messages/ToolCallMessage.js.map +1 -0
- package/dist/src/components/messages/UserMessage.d.ts +7 -0
- package/dist/src/components/messages/UserMessage.d.ts.map +1 -0
- package/dist/src/components/messages/UserMessage.js +9 -0
- package/dist/src/components/messages/UserMessage.js.map +1 -0
- package/dist/src/components/shared/HorizontalLine.d.ts +11 -0
- package/dist/src/components/shared/HorizontalLine.d.ts.map +1 -0
- package/dist/src/components/shared/HorizontalLine.js +10 -0
- package/dist/src/components/shared/HorizontalLine.js.map +1 -0
- package/dist/src/components/shared/MarkdownRenderer.d.ts +7 -0
- package/dist/src/components/shared/MarkdownRenderer.d.ts.map +1 -0
- package/dist/src/components/shared/MarkdownRenderer.js +33 -0
- package/dist/src/components/shared/MarkdownRenderer.js.map +1 -0
- package/dist/src/components/shared/Spinner.d.ts +8 -0
- package/dist/src/components/shared/Spinner.d.ts.map +1 -0
- package/dist/src/components/shared/Spinner.js +7 -0
- package/dist/src/components/shared/Spinner.js.map +1 -0
- package/dist/src/components/shared/TextInput.d.ts +10 -0
- package/dist/src/components/shared/TextInput.d.ts.map +1 -0
- package/dist/src/components/shared/TextInput.js +110 -0
- package/dist/src/components/shared/TextInput.js.map +1 -0
- package/dist/src/contexts/AppContext.d.ts +21 -0
- package/dist/src/contexts/AppContext.d.ts.map +1 -0
- package/dist/src/contexts/AppContext.js +16 -0
- package/dist/src/contexts/AppContext.js.map +1 -0
- package/dist/src/contexts/ChatContext.d.ts +68 -0
- package/dist/src/contexts/ChatContext.d.ts.map +1 -0
- package/dist/src/contexts/ChatContext.js +158 -0
- package/dist/src/contexts/ChatContext.js.map +1 -0
- package/dist/src/contexts/KeypressContext.d.ts +47 -0
- package/dist/src/contexts/KeypressContext.d.ts.map +1 -0
- package/dist/src/contexts/KeypressContext.js +792 -0
- package/dist/src/contexts/KeypressContext.js.map +1 -0
- package/dist/src/contexts/ModelContext.d.ts +20 -0
- package/dist/src/contexts/ModelContext.d.ts.map +1 -0
- package/dist/src/contexts/ModelContext.js +42 -0
- package/dist/src/contexts/ModelContext.js.map +1 -0
- package/dist/src/contexts/PasteContext.d.ts +8 -0
- package/dist/src/contexts/PasteContext.d.ts.map +1 -0
- package/dist/src/contexts/PasteContext.js +12 -0
- package/dist/src/contexts/PasteContext.js.map +1 -0
- package/dist/src/contexts/SessionContext.d.ts +19 -0
- package/dist/src/contexts/SessionContext.d.ts.map +1 -0
- package/dist/src/contexts/SessionContext.js +56 -0
- package/dist/src/contexts/SessionContext.js.map +1 -0
- package/dist/src/contexts/UIContext.d.ts +15 -0
- package/dist/src/contexts/UIContext.d.ts.map +1 -0
- package/dist/src/contexts/UIContext.js +16 -0
- package/dist/src/contexts/UIContext.js.map +1 -0
- package/dist/src/hooks/useChat.d.ts +11 -0
- package/dist/src/hooks/useChat.d.ts.map +1 -0
- package/dist/src/hooks/useChat.js +146 -0
- package/dist/src/hooks/useChat.js.map +1 -0
- package/dist/src/hooks/useFileCompletion.d.ts +8 -0
- package/dist/src/hooks/useFileCompletion.d.ts.map +1 -0
- package/dist/src/hooks/useFileCompletion.js +75 -0
- package/dist/src/hooks/useFileCompletion.js.map +1 -0
- package/dist/src/hooks/useInputHistory.d.ts +6 -0
- package/dist/src/hooks/useInputHistory.d.ts.map +1 -0
- package/dist/src/hooks/useInputHistory.js +46 -0
- package/dist/src/hooks/useInputHistory.js.map +1 -0
- package/dist/src/hooks/useKeypress.d.ts +16 -0
- package/dist/src/hooks/useKeypress.d.ts.map +1 -0
- package/dist/src/hooks/useKeypress.js +23 -0
- package/dist/src/hooks/useKeypress.js.map +1 -0
- package/dist/src/hooks/useLoadingIndicator.d.ts +5 -0
- package/dist/src/hooks/useLoadingIndicator.d.ts.map +1 -0
- package/dist/src/hooks/useLoadingIndicator.js +31 -0
- package/dist/src/hooks/useLoadingIndicator.js.map +1 -0
- package/dist/src/hooks/useMultiLineInput.d.ts +37 -0
- package/dist/src/hooks/useMultiLineInput.d.ts.map +1 -0
- package/dist/src/hooks/useMultiLineInput.js +202 -0
- package/dist/src/hooks/useMultiLineInput.js.map +1 -0
- package/dist/src/hooks/usePasteBuffer.d.ts +10 -0
- package/dist/src/hooks/usePasteBuffer.d.ts.map +1 -0
- package/dist/src/hooks/usePasteBuffer.js +90 -0
- package/dist/src/hooks/usePasteBuffer.js.map +1 -0
- package/dist/src/hooks/useSlashCommand.d.ts +6 -0
- package/dist/src/hooks/useSlashCommand.d.ts.map +1 -0
- package/dist/src/hooks/useSlashCommand.js +198 -0
- package/dist/src/hooks/useSlashCommand.js.map +1 -0
- package/dist/src/hooks/useStdinInterceptor.d.ts +2 -0
- package/dist/src/hooks/useStdinInterceptor.d.ts.map +1 -0
- package/dist/src/hooks/useStdinInterceptor.js +85 -0
- package/dist/src/hooks/useStdinInterceptor.js.map +1 -0
- package/dist/src/hooks/useSymbolCompletion.d.ts +10 -0
- package/dist/src/hooks/useSymbolCompletion.d.ts.map +1 -0
- package/dist/src/hooks/useSymbolCompletion.js +65 -0
- package/dist/src/hooks/useSymbolCompletion.js.map +1 -0
- package/dist/src/hooks/useTextBuffer.d.ts +37 -0
- package/dist/src/hooks/useTextBuffer.d.ts.map +1 -0
- package/dist/src/hooks/useTextBuffer.js +627 -0
- package/dist/src/hooks/useTextBuffer.js.map +1 -0
- package/dist/src/main.d.ts +2 -0
- package/dist/src/main.d.ts.map +1 -0
- package/dist/src/main.js +152 -0
- package/dist/src/main.js.map +1 -0
- package/dist/src/tools/code-analyzer/config/ignore-service.d.ts +2 -0
- package/dist/src/tools/code-analyzer/config/ignore-service.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/config/ignore-service.js +209 -0
- package/dist/src/tools/code-analyzer/config/ignore-service.js.map +1 -0
- package/dist/src/tools/code-analyzer/config/supported-languages.d.ts +13 -0
- package/dist/src/tools/code-analyzer/config/supported-languages.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/config/supported-languages.js +17 -0
- package/dist/src/tools/code-analyzer/config/supported-languages.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/graph/graph.d.ts +3 -0
- package/dist/src/tools/code-analyzer/core/graph/graph.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/graph/graph.js +67 -0
- package/dist/src/tools/code-analyzer/core/graph/graph.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/graph/types.d.ts +62 -0
- package/dist/src/tools/code-analyzer/core/graph/types.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/graph/types.js +2 -0
- package/dist/src/tools/code-analyzer/core/graph/types.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/ast-cache.d.ts +12 -0
- package/dist/src/tools/code-analyzer/core/ingestion/ast-cache.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/ast-cache.js +35 -0
- package/dist/src/tools/code-analyzer/core/ingestion/ast-cache.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/call-processor.d.ts +16 -0
- package/dist/src/tools/code-analyzer/core/ingestion/call-processor.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/call-processor.js +328 -0
- package/dist/src/tools/code-analyzer/core/ingestion/call-processor.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/community-processor.d.ts +40 -0
- package/dist/src/tools/code-analyzer/core/ingestion/community-processor.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/community-processor.js +328 -0
- package/dist/src/tools/code-analyzer/core/ingestion/community-processor.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/entry-point-scoring.d.ts +40 -0
- package/dist/src/tools/code-analyzer/core/ingestion/entry-point-scoring.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/entry-point-scoring.js +236 -0
- package/dist/src/tools/code-analyzer/core/ingestion/entry-point-scoring.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/filesystem-walker.d.ts +29 -0
- package/dist/src/tools/code-analyzer/core/ingestion/filesystem-walker.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/filesystem-walker.js +81 -0
- package/dist/src/tools/code-analyzer/core/ingestion/filesystem-walker.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/framework-detection.d.ts +39 -0
- package/dist/src/tools/code-analyzer/core/ingestion/framework-detection.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/framework-detection.js +184 -0
- package/dist/src/tools/code-analyzer/core/ingestion/framework-detection.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/heritage-processor.d.ts +21 -0
- package/dist/src/tools/code-analyzer/core/ingestion/heritage-processor.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/heritage-processor.js +198 -0
- package/dist/src/tools/code-analyzer/core/ingestion/heritage-processor.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/import-processor.d.ts +39 -0
- package/dist/src/tools/code-analyzer/core/ingestion/import-processor.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/import-processor.js +791 -0
- package/dist/src/tools/code-analyzer/core/ingestion/import-processor.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/parsing-processor.d.ts +16 -0
- package/dist/src/tools/code-analyzer/core/ingestion/parsing-processor.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/parsing-processor.js +296 -0
- package/dist/src/tools/code-analyzer/core/ingestion/parsing-processor.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/pipeline.d.ts +3 -0
- package/dist/src/tools/code-analyzer/core/ingestion/pipeline.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/pipeline.js +309 -0
- package/dist/src/tools/code-analyzer/core/ingestion/pipeline.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/process-processor.d.ts +52 -0
- package/dist/src/tools/code-analyzer/core/ingestion/process-processor.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/process-processor.js +310 -0
- package/dist/src/tools/code-analyzer/core/ingestion/process-processor.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/structure-processor.d.ts +3 -0
- package/dist/src/tools/code-analyzer/core/ingestion/structure-processor.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/structure-processor.js +37 -0
- package/dist/src/tools/code-analyzer/core/ingestion/structure-processor.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/symbol-table.d.ts +34 -0
- package/dist/src/tools/code-analyzer/core/ingestion/symbol-table.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/symbol-table.js +39 -0
- package/dist/src/tools/code-analyzer/core/ingestion/symbol-table.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/tree-sitter-queries.d.ts +13 -0
- package/dist/src/tools/code-analyzer/core/ingestion/tree-sitter-queries.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/tree-sitter-queries.js +355 -0
- package/dist/src/tools/code-analyzer/core/ingestion/tree-sitter-queries.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/utils.d.ts +11 -0
- package/dist/src/tools/code-analyzer/core/ingestion/utils.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/utils.js +48 -0
- package/dist/src/tools/code-analyzer/core/ingestion/utils.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/parse-worker.d.ts +59 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/parse-worker.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/parse-worker.js +538 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/parse-worker.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/worker-pool.d.ts +17 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/worker-pool.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/worker-pool.js +121 -0
- package/dist/src/tools/code-analyzer/core/ingestion/workers/worker-pool.js.map +1 -0
- package/dist/src/tools/code-analyzer/core/tree-sitter/parser-loader.d.ts +5 -0
- package/dist/src/tools/code-analyzer/core/tree-sitter/parser-loader.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/core/tree-sitter/parser-loader.js +45 -0
- package/dist/src/tools/code-analyzer/core/tree-sitter/parser-loader.js.map +1 -0
- package/dist/src/tools/code-analyzer/index.d.ts +17 -0
- package/dist/src/tools/code-analyzer/index.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/index.js +15 -0
- package/dist/src/tools/code-analyzer/index.js.map +1 -0
- package/dist/src/tools/code-analyzer/lib/utils.d.ts +2 -0
- package/dist/src/tools/code-analyzer/lib/utils.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/lib/utils.js +4 -0
- package/dist/src/tools/code-analyzer/lib/utils.js.map +1 -0
- package/dist/src/tools/code-analyzer/types/pipeline.d.ts +33 -0
- package/dist/src/tools/code-analyzer/types/pipeline.d.ts.map +1 -0
- package/dist/src/tools/code-analyzer/types/pipeline.js +19 -0
- package/dist/src/tools/code-analyzer/types/pipeline.js.map +1 -0
- package/dist/src/types/api.d.ts +124 -0
- package/dist/src/types/api.d.ts.map +1 -0
- package/dist/src/types/api.js +3 -0
- package/dist/src/types/api.js.map +1 -0
- package/dist/src/types/history.d.ts +49 -0
- package/dist/src/types/history.d.ts.map +1 -0
- package/dist/src/types/history.js +10 -0
- package/dist/src/types/history.js.map +1 -0
- package/dist/src/utils/colors.d.ts +40 -0
- package/dist/src/utils/colors.d.ts.map +1 -0
- package/dist/src/utils/colors.js +48 -0
- package/dist/src/utils/colors.js.map +1 -0
- package/dist/src/utils/config.d.ts +13 -0
- package/dist/src/utils/config.d.ts.map +1 -0
- package/dist/src/utils/config.js +74 -0
- package/dist/src/utils/config.js.map +1 -0
- package/dist/src/utils/constants.d.ts +8 -0
- package/dist/src/utils/constants.d.ts.map +1 -0
- package/dist/src/utils/constants.js +48 -0
- package/dist/src/utils/constants.js.map +1 -0
- package/dist/src/utils/fileRef.d.ts +26 -0
- package/dist/src/utils/fileRef.d.ts.map +1 -0
- package/dist/src/utils/fileRef.js +305 -0
- package/dist/src/utils/fileRef.js.map +1 -0
- package/dist/src/utils/formatters.d.ts +4 -0
- package/dist/src/utils/formatters.d.ts.map +1 -0
- package/dist/src/utils/formatters.js +18 -0
- package/dist/src/utils/formatters.js.map +1 -0
- package/dist/src/utils/pasteTransform.d.ts +37 -0
- package/dist/src/utils/pasteTransform.d.ts.map +1 -0
- package/dist/src/utils/pasteTransform.js +161 -0
- package/dist/src/utils/pasteTransform.js.map +1 -0
- package/dist/src/utils/pasteUtils.d.ts +7 -0
- package/dist/src/utils/pasteUtils.d.ts.map +1 -0
- package/dist/src/utils/pasteUtils.js +33 -0
- package/dist/src/utils/pasteUtils.js.map +1 -0
- package/dist/src/utils/textUtils.d.ts +25 -0
- package/dist/src/utils/textUtils.d.ts.map +1 -0
- package/dist/src/utils/textUtils.js +107 -0
- package/dist/src/utils/textUtils.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { Transform } from 'node:stream';
|
|
2
|
+
// Bracketed paste escape sequences
|
|
3
|
+
const PASTE_START = '\x1b[200~';
|
|
4
|
+
const PASTE_END = '\x1b[201~';
|
|
5
|
+
// Thresholds
|
|
6
|
+
const LARGE_PASTE_LINE_THRESHOLD = 5;
|
|
7
|
+
const LARGE_PASTE_CHAR_THRESHOLD = 500;
|
|
8
|
+
export const PASTE_PLACEHOLDER_REGEX = /\[Pasted: \d+ (?:lines|chars)(?: #\d+)?\]/g;
|
|
9
|
+
function isLargePaste(text) {
|
|
10
|
+
const lineCount = text.split('\n').length;
|
|
11
|
+
return lineCount > LARGE_PASTE_LINE_THRESHOLD || text.length > LARGE_PASTE_CHAR_THRESHOLD;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A Transform stream that sits between raw stdin and Ink.
|
|
15
|
+
* It detects bracketed paste sequences, buffers them, and replaces
|
|
16
|
+
* large pastes with short placeholders.
|
|
17
|
+
*
|
|
18
|
+
* The actual pasted content is stored in `pasteStore` for later expansion.
|
|
19
|
+
*/
|
|
20
|
+
export class PasteTransform extends Transform {
|
|
21
|
+
isPasting = false;
|
|
22
|
+
pasteAccum = '';
|
|
23
|
+
pasteStore = new Map();
|
|
24
|
+
constructor() {
|
|
25
|
+
super({ encoding: 'utf-8', decodeStrings: false });
|
|
26
|
+
}
|
|
27
|
+
generatePlaceholder(text) {
|
|
28
|
+
const lineCount = text.split('\n').length;
|
|
29
|
+
const base = lineCount > LARGE_PASTE_LINE_THRESHOLD
|
|
30
|
+
? `[Pasted: ${lineCount} lines]`
|
|
31
|
+
: `[Pasted: ${text.length} chars]`;
|
|
32
|
+
if (!this.pasteStore.has(base))
|
|
33
|
+
return base;
|
|
34
|
+
let n = 2;
|
|
35
|
+
while (this.pasteStore.has(`${base.slice(0, -1)} #${n}]`))
|
|
36
|
+
n++;
|
|
37
|
+
return `${base.slice(0, -1)} #${n}]`;
|
|
38
|
+
}
|
|
39
|
+
finishPaste(pastedText) {
|
|
40
|
+
if (isLargePaste(pastedText)) {
|
|
41
|
+
const placeholder = this.generatePlaceholder(pastedText);
|
|
42
|
+
this.pasteStore.set(placeholder, pastedText);
|
|
43
|
+
return placeholder;
|
|
44
|
+
}
|
|
45
|
+
// Small paste: collapse newlines for single-line input
|
|
46
|
+
return pastedText.replace(/[\r\n]+/g, ' ');
|
|
47
|
+
}
|
|
48
|
+
_transform(chunk, _encoding, callback) {
|
|
49
|
+
const str = typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
|
|
50
|
+
this.processChunk(str);
|
|
51
|
+
callback();
|
|
52
|
+
}
|
|
53
|
+
processChunk(str) {
|
|
54
|
+
if (this.isPasting) {
|
|
55
|
+
const endIdx = str.indexOf(PASTE_END);
|
|
56
|
+
if (endIdx >= 0) {
|
|
57
|
+
// Paste ended
|
|
58
|
+
this.pasteAccum += str.slice(0, endIdx);
|
|
59
|
+
const result = this.finishPaste(this.pasteAccum);
|
|
60
|
+
this.isPasting = false;
|
|
61
|
+
this.pasteAccum = '';
|
|
62
|
+
this.push(result);
|
|
63
|
+
// Process remaining data after paste end (may contain another paste)
|
|
64
|
+
const after = str.slice(endIdx + PASTE_END.length);
|
|
65
|
+
if (after.length > 0) {
|
|
66
|
+
this.processChunk(after);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Still buffering paste
|
|
71
|
+
this.pasteAccum += str;
|
|
72
|
+
}
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
// Normal mode: look for paste start
|
|
76
|
+
const startIdx = str.indexOf(PASTE_START);
|
|
77
|
+
if (startIdx < 0) {
|
|
78
|
+
// No paste — pass through
|
|
79
|
+
this.push(str);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// Data before paste start passes through
|
|
83
|
+
const before = str.slice(0, startIdx);
|
|
84
|
+
if (before.length > 0) {
|
|
85
|
+
this.push(before);
|
|
86
|
+
}
|
|
87
|
+
// Start buffering
|
|
88
|
+
this.isPasting = true;
|
|
89
|
+
const afterStart = str.slice(startIdx + PASTE_START.length);
|
|
90
|
+
// Check if paste end is in the same chunk
|
|
91
|
+
const endIdx = afterStart.indexOf(PASTE_END);
|
|
92
|
+
if (endIdx >= 0) {
|
|
93
|
+
const pastedText = afterStart.slice(0, endIdx);
|
|
94
|
+
const result = this.finishPaste(pastedText);
|
|
95
|
+
this.isPasting = false;
|
|
96
|
+
this.pasteAccum = '';
|
|
97
|
+
this.push(result);
|
|
98
|
+
// Process remaining data after paste end
|
|
99
|
+
const after = afterStart.slice(endIdx + PASTE_END.length);
|
|
100
|
+
if (after.length > 0) {
|
|
101
|
+
this.processChunk(after);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.pasteAccum = afterStart;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Expand all placeholders back to real content.
|
|
110
|
+
*/
|
|
111
|
+
expandAll(text) {
|
|
112
|
+
if (this.pasteStore.size === 0)
|
|
113
|
+
return text;
|
|
114
|
+
return text.replace(PASTE_PLACEHOLDER_REGEX, (match) => this.pasteStore.get(match) ?? match);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Clear stored pastes (call after submit).
|
|
118
|
+
*/
|
|
119
|
+
clearPastes() {
|
|
120
|
+
this.pasteStore.clear();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a PasteTransform that wraps stdin and mimics ReadStream properties
|
|
125
|
+
* needed by Ink (isTTY, setRawMode, ref, unref, setEncoding, etc.).
|
|
126
|
+
*/
|
|
127
|
+
export function createPasteStdin(realStdin) {
|
|
128
|
+
const transform = new PasteTransform();
|
|
129
|
+
// Pipe real stdin through our transform
|
|
130
|
+
realStdin.pipe(transform);
|
|
131
|
+
// Proxy properties and methods Ink needs from ReadStream
|
|
132
|
+
const proxy = transform;
|
|
133
|
+
proxy.isTTY = realStdin.isTTY;
|
|
134
|
+
proxy.fd = realStdin.fd;
|
|
135
|
+
proxy.setRawMode = (mode) => {
|
|
136
|
+
if (realStdin.setRawMode) {
|
|
137
|
+
realStdin.setRawMode(mode);
|
|
138
|
+
}
|
|
139
|
+
return proxy;
|
|
140
|
+
};
|
|
141
|
+
// Ink calls stdin.ref() / stdin.unref()
|
|
142
|
+
proxy.ref = () => {
|
|
143
|
+
realStdin.ref();
|
|
144
|
+
return proxy;
|
|
145
|
+
};
|
|
146
|
+
proxy.unref = () => {
|
|
147
|
+
realStdin.unref();
|
|
148
|
+
return proxy;
|
|
149
|
+
};
|
|
150
|
+
// Ink calls stdin.setEncoding
|
|
151
|
+
const origSetEncoding = transform.setEncoding.bind(transform);
|
|
152
|
+
proxy.setEncoding = (enc) => {
|
|
153
|
+
realStdin.setEncoding(enc);
|
|
154
|
+
origSetEncoding(enc);
|
|
155
|
+
return proxy;
|
|
156
|
+
};
|
|
157
|
+
// Enable bracketed paste mode on the terminal
|
|
158
|
+
process.stdout.write('\x1b[?2004h');
|
|
159
|
+
return proxy;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=pasteTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pasteTransform.js","sourceRoot":"","sources":["../../../src/utils/pasteTransform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const LARGE_PASTE_LINE_THRESHOLD = 5;
|
|
2
|
+
export declare const LARGE_PASTE_CHAR_THRESHOLD = 500;
|
|
3
|
+
export declare const PASTE_PLACEHOLDER_REGEX: RegExp;
|
|
4
|
+
export declare function isLargePaste(text: string): boolean;
|
|
5
|
+
export declare function generatePlaceholder(text: string, existing: Record<string, string>): string;
|
|
6
|
+
export declare function expandPlaceholders(text: string, pasteMap: Record<string, string>): string;
|
|
7
|
+
//# sourceMappingURL=pasteUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pasteUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/pasteUtils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAG9C,eAAO,MAAM,uBAAuB,QAAgD,CAAC;AAErF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAY1F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAOzF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Thresholds for treating pasted content as "large"
|
|
2
|
+
export const LARGE_PASTE_LINE_THRESHOLD = 5;
|
|
3
|
+
export const LARGE_PASTE_CHAR_THRESHOLD = 500;
|
|
4
|
+
// Placeholder format: [Pasted text] or [Pasted text +176 lines] or [Pasted text #2 +30 lines]
|
|
5
|
+
export const PASTE_PLACEHOLDER_REGEX = /\[Pasted text(?: #\d+)?(?: \+\d+ lines)?\]/g;
|
|
6
|
+
export function isLargePaste(text) {
|
|
7
|
+
const lineCount = text.split('\n').length;
|
|
8
|
+
return lineCount > LARGE_PASTE_LINE_THRESHOLD || text.length > LARGE_PASTE_CHAR_THRESHOLD;
|
|
9
|
+
}
|
|
10
|
+
export function generatePlaceholder(text, existing) {
|
|
11
|
+
const lineCount = text.split('\n').length;
|
|
12
|
+
const linePart = lineCount > 1 ? ` +${lineCount} lines` : '';
|
|
13
|
+
// Try without index first: [Pasted text +176 lines]
|
|
14
|
+
const base = `[Pasted text${linePart}]`;
|
|
15
|
+
if (!(base in existing))
|
|
16
|
+
return base;
|
|
17
|
+
// Add index: [Pasted text #2 +176 lines]
|
|
18
|
+
let n = 2;
|
|
19
|
+
while (`[Pasted text #${n}${linePart}]` in existing)
|
|
20
|
+
n++;
|
|
21
|
+
return `[Pasted text #${n}${linePart}]`;
|
|
22
|
+
}
|
|
23
|
+
export function expandPlaceholders(text, pasteMap) {
|
|
24
|
+
if (Object.keys(pasteMap).length === 0)
|
|
25
|
+
return text;
|
|
26
|
+
return text.replace(PASTE_PLACEHOLDER_REGEX, (match) => {
|
|
27
|
+
const content = pasteMap[match];
|
|
28
|
+
if (content === undefined)
|
|
29
|
+
return match;
|
|
30
|
+
return `\n<pasted_text>\n${content}\n</pasted_text>\n`;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=pasteUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pasteUtils.js","sourceRoot":"","sources":["../../../src/utils/pasteUtils.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAG,6CAA6C,CAAC;AAErF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,SAAS,GAAG,0BAA0B,IAAI,IAAI,CAAC,MAAM,GAAG,0BAA0B,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,QAAgC;IAChF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,oDAAoD;IACpD,MAAM,IAAI,GAAG,eAAe,QAAQ,GAAG,CAAC;IACxC,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,yCAAyC;IACzC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,iBAAiB,CAAC,GAAG,QAAQ,GAAG,IAAI,QAAQ;QAAE,CAAC,EAAE,CAAC;IACzD,OAAO,iBAAiB,CAAC,GAAG,QAAQ,GAAG,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,QAAgC;IAC/E,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,oBAAoB,OAAO,oBAAoB,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrap a single line to fit within maxWidth columns.
|
|
3
|
+
* Uses string-width for CJK/emoji double-width character support.
|
|
4
|
+
* Returns an array of visual line strings.
|
|
5
|
+
*/
|
|
6
|
+
export declare function wrapLine(line: string, maxWidth: number): string[];
|
|
7
|
+
/**
|
|
8
|
+
* Find the previous word boundary in a line, starting from col.
|
|
9
|
+
* Returns the column index of the word start.
|
|
10
|
+
*/
|
|
11
|
+
export declare function findPrevWordBoundary(line: string, col: number): number;
|
|
12
|
+
/**
|
|
13
|
+
* Find the next word boundary in a line, starting from col.
|
|
14
|
+
* Returns the column index after the current word.
|
|
15
|
+
*/
|
|
16
|
+
export declare function findNextWordBoundary(line: string, col: number): number;
|
|
17
|
+
/**
|
|
18
|
+
* Get the character length (code point count) of a string.
|
|
19
|
+
*/
|
|
20
|
+
export declare function cpLen(str: string): number;
|
|
21
|
+
/**
|
|
22
|
+
* Slice a string by code point indices.
|
|
23
|
+
*/
|
|
24
|
+
export declare function cpSlice(str: string, start: number, end?: number): string;
|
|
25
|
+
//# sourceMappingURL=textUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/textUtils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BjE;AAaD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAqBtE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBtE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import stringWidth from 'string-width';
|
|
2
|
+
/**
|
|
3
|
+
* Wrap a single line to fit within maxWidth columns.
|
|
4
|
+
* Uses string-width for CJK/emoji double-width character support.
|
|
5
|
+
* Returns an array of visual line strings.
|
|
6
|
+
*/
|
|
7
|
+
export function wrapLine(line, maxWidth) {
|
|
8
|
+
if (maxWidth <= 0)
|
|
9
|
+
return [line];
|
|
10
|
+
if (line.length === 0)
|
|
11
|
+
return [''];
|
|
12
|
+
const width = stringWidth(line);
|
|
13
|
+
if (width <= maxWidth)
|
|
14
|
+
return [line];
|
|
15
|
+
const result = [];
|
|
16
|
+
let current = '';
|
|
17
|
+
let currentWidth = 0;
|
|
18
|
+
for (const char of [...line]) {
|
|
19
|
+
const charWidth = stringWidth(char);
|
|
20
|
+
if (currentWidth + charWidth > maxWidth && current.length > 0) {
|
|
21
|
+
result.push(current);
|
|
22
|
+
current = '';
|
|
23
|
+
currentWidth = 0;
|
|
24
|
+
}
|
|
25
|
+
current += char;
|
|
26
|
+
currentWidth += charWidth;
|
|
27
|
+
}
|
|
28
|
+
if (current.length > 0) {
|
|
29
|
+
result.push(current);
|
|
30
|
+
}
|
|
31
|
+
return result.length > 0 ? result : [''];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if a character is a word character (alphanumeric or underscore).
|
|
35
|
+
*/
|
|
36
|
+
function isWordChar(char) {
|
|
37
|
+
return /[\w\p{L}\p{N}]/u.test(char);
|
|
38
|
+
}
|
|
39
|
+
function isWhitespace(char) {
|
|
40
|
+
return /\s/.test(char);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Find the previous word boundary in a line, starting from col.
|
|
44
|
+
* Returns the column index of the word start.
|
|
45
|
+
*/
|
|
46
|
+
export function findPrevWordBoundary(line, col) {
|
|
47
|
+
const chars = [...line];
|
|
48
|
+
let i = col;
|
|
49
|
+
if (i <= 0)
|
|
50
|
+
return 0;
|
|
51
|
+
i--;
|
|
52
|
+
// Skip whitespace backwards
|
|
53
|
+
while (i >= 0 && isWhitespace(chars[i]))
|
|
54
|
+
i--;
|
|
55
|
+
if (i < 0)
|
|
56
|
+
return 0;
|
|
57
|
+
if (isWordChar(chars[i])) {
|
|
58
|
+
// Skip word chars backwards
|
|
59
|
+
while (i >= 0 && isWordChar(chars[i]))
|
|
60
|
+
i--;
|
|
61
|
+
return i + 1;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// Skip punctuation backwards
|
|
65
|
+
while (i >= 0 && !isWordChar(chars[i]) && !isWhitespace(chars[i]))
|
|
66
|
+
i--;
|
|
67
|
+
return i + 1;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Find the next word boundary in a line, starting from col.
|
|
72
|
+
* Returns the column index after the current word.
|
|
73
|
+
*/
|
|
74
|
+
export function findNextWordBoundary(line, col) {
|
|
75
|
+
const chars = [...line];
|
|
76
|
+
let i = col;
|
|
77
|
+
if (i >= chars.length)
|
|
78
|
+
return chars.length;
|
|
79
|
+
if (isWordChar(chars[i])) {
|
|
80
|
+
// Skip word chars forwards
|
|
81
|
+
while (i < chars.length && isWordChar(chars[i]))
|
|
82
|
+
i++;
|
|
83
|
+
}
|
|
84
|
+
else if (!isWhitespace(chars[i])) {
|
|
85
|
+
// Skip punctuation forwards
|
|
86
|
+
while (i < chars.length && !isWordChar(chars[i]) && !isWhitespace(chars[i]))
|
|
87
|
+
i++;
|
|
88
|
+
}
|
|
89
|
+
// Skip whitespace forwards
|
|
90
|
+
while (i < chars.length && isWhitespace(chars[i]))
|
|
91
|
+
i++;
|
|
92
|
+
return i;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get the character length (code point count) of a string.
|
|
96
|
+
*/
|
|
97
|
+
export function cpLen(str) {
|
|
98
|
+
return [...str].length;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Slice a string by code point indices.
|
|
102
|
+
*/
|
|
103
|
+
export function cpSlice(str, start, end) {
|
|
104
|
+
const chars = [...str];
|
|
105
|
+
return chars.slice(start, end).join('');
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=textUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textUtils.js","sourceRoot":"","sources":["../../../src/utils/textUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mistagent",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MistAgent - Terminal AI Assistant",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"mist": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"cli",
|
|
16
|
+
"ai",
|
|
17
|
+
"terminal",
|
|
18
|
+
"agent",
|
|
19
|
+
"code-analysis",
|
|
20
|
+
"assistant"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"postinstall": "node -e \"const fs=require('fs'),p=require('path').join('node_modules','tree-sitter-solidity','bindings','node','index.js');if(!fs.existsSync(p))fs.writeFileSync(p,'const root=require(\\\"path\\\").join(__dirname,\\\"..\\\",\\\"..\\\");module.exports=require(\\\"node-gyp-build\\\")(root);try{module.exports.nodeTypeInfo=require(\\\"../../src/node-types.json\\\")}catch(_){}')\"",
|
|
24
|
+
"build": "tsc",
|
|
25
|
+
"start": "node dist/index.js",
|
|
26
|
+
"dev": "tsx index.ts",
|
|
27
|
+
"typecheck": "tsc --noEmit"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"react": "^19.2.0",
|
|
31
|
+
"ink": "^6.0.0",
|
|
32
|
+
"ink-text-input": "^6.0.0",
|
|
33
|
+
"ink-spinner": "^5.0.0",
|
|
34
|
+
"chalk": "^5.4.1",
|
|
35
|
+
"yargs": "^17.7.2",
|
|
36
|
+
"marked": "^15.0.0",
|
|
37
|
+
"marked-terminal": "^7.3.0",
|
|
38
|
+
"eventsource-parser": "^3.0.0",
|
|
39
|
+
"figures": "^6.1.0",
|
|
40
|
+
"cli-spinners": "^3.2.0",
|
|
41
|
+
"string-width": "^7.2.0",
|
|
42
|
+
"glob": "^11.0.0",
|
|
43
|
+
"graphology": "^0.25.4",
|
|
44
|
+
"graphology-indices": "^0.17.0",
|
|
45
|
+
"graphology-utils": "^2.3.0",
|
|
46
|
+
"lru-cache": "^11.0.0",
|
|
47
|
+
"mnemonist": "^0.39.0",
|
|
48
|
+
"pandemonium": "^2.4.0",
|
|
49
|
+
"tree-sitter": "^0.21.0",
|
|
50
|
+
"tree-sitter-c": "^0.21.0",
|
|
51
|
+
"tree-sitter-c-sharp": "^0.21.0",
|
|
52
|
+
"tree-sitter-cpp": "^0.22.0",
|
|
53
|
+
"tree-sitter-go": "^0.21.0",
|
|
54
|
+
"tree-sitter-java": "^0.21.0",
|
|
55
|
+
"tree-sitter-javascript": "^0.21.0",
|
|
56
|
+
"tree-sitter-python": "^0.21.0",
|
|
57
|
+
"tree-sitter-rust": "^0.21.0",
|
|
58
|
+
"tree-sitter-solidity": "1.2.9",
|
|
59
|
+
"tree-sitter-typescript": "^0.21.0"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/node": "^20.11.24",
|
|
63
|
+
"@types/react": "^19.2.0",
|
|
64
|
+
"@types/yargs": "^17.0.32",
|
|
65
|
+
"typescript": "^5.7.0",
|
|
66
|
+
"tsx": "^4.19.0"
|
|
67
|
+
},
|
|
68
|
+
"engines": {
|
|
69
|
+
"node": ">=20"
|
|
70
|
+
}
|
|
71
|
+
}
|