@mragentix/cli 4.2.37
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 +149 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +772 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +29 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session.d.ts +87 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +498 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/agents.d.ts +30 -0
- package/dist/core/agents.d.ts.map +1 -0
- package/dist/core/agents.js +91 -0
- package/dist/core/agents.js.map +1 -0
- package/dist/core/auth-storage.d.ts +35 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +144 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/auto-update.d.ts +8 -0
- package/dist/core/auto-update.d.ts.map +1 -0
- package/dist/core/auto-update.js +152 -0
- package/dist/core/auto-update.js.map +1 -0
- package/dist/core/compaction/compactor.d.ts +69 -0
- package/dist/core/compaction/compactor.d.ts.map +1 -0
- package/dist/core/compaction/compactor.js +405 -0
- package/dist/core/compaction/compactor.js.map +1 -0
- package/dist/core/compaction/compactor.test.d.ts +2 -0
- package/dist/core/compaction/compactor.test.d.ts.map +1 -0
- package/dist/core/compaction/compactor.test.js +461 -0
- package/dist/core/compaction/compactor.test.js.map +1 -0
- package/dist/core/compaction/token-estimator.d.ts +10 -0
- package/dist/core/compaction/token-estimator.d.ts.map +1 -0
- package/dist/core/compaction/token-estimator.js +75 -0
- package/dist/core/compaction/token-estimator.js.map +1 -0
- package/dist/core/compaction/token-estimator.test.d.ts +2 -0
- package/dist/core/compaction/token-estimator.test.d.ts.map +1 -0
- package/dist/core/compaction/token-estimator.test.js +137 -0
- package/dist/core/compaction/token-estimator.test.js.map +1 -0
- package/dist/core/custom-commands.d.ts +13 -0
- package/dist/core/custom-commands.d.ts.map +1 -0
- package/dist/core/custom-commands.js +40 -0
- package/dist/core/custom-commands.js.map +1 -0
- package/dist/core/event-bus.d.ts +95 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +99 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +8 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +48 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/types.d.ts +19 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +2 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/file-lock.d.ts +6 -0
- package/dist/core/file-lock.d.ts.map +1 -0
- package/dist/core/file-lock.js +76 -0
- package/dist/core/file-lock.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +26 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +132 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/mcp/client.d.ts +9 -0
- package/dist/core/mcp/client.d.ts.map +1 -0
- package/dist/core/mcp/client.js +126 -0
- package/dist/core/mcp/client.js.map +1 -0
- package/dist/core/mcp/defaults.d.ts +9 -0
- package/dist/core/mcp/defaults.d.ts.map +1 -0
- package/dist/core/mcp/defaults.js +47 -0
- package/dist/core/mcp/defaults.js.map +1 -0
- package/dist/core/mcp/index.d.ts +4 -0
- package/dist/core/mcp/index.d.ts.map +1 -0
- package/dist/core/mcp/index.js +3 -0
- package/dist/core/mcp/index.js.map +1 -0
- package/dist/core/mcp/types.d.ts +15 -0
- package/dist/core/mcp/types.d.ts.map +1 -0
- package/dist/core/mcp/types.js +2 -0
- package/dist/core/mcp/types.js.map +1 -0
- package/dist/core/model-registry.d.ts +25 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +135 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/oauth/anthropic.d.ts +4 -0
- package/dist/core/oauth/anthropic.d.ts.map +1 -0
- package/dist/core/oauth/anthropic.js +75 -0
- package/dist/core/oauth/anthropic.js.map +1 -0
- package/dist/core/oauth/openai.d.ts +4 -0
- package/dist/core/oauth/openai.d.ts.map +1 -0
- package/dist/core/oauth/openai.js +186 -0
- package/dist/core/oauth/openai.js.map +1 -0
- package/dist/core/oauth/pkce.d.ts +5 -0
- package/dist/core/oauth/pkce.d.ts.map +1 -0
- package/dist/core/oauth/pkce.js +17 -0
- package/dist/core/oauth/pkce.js.map +1 -0
- package/dist/core/oauth/types.d.ts +12 -0
- package/dist/core/oauth/types.d.ts.map +1 -0
- package/dist/core/oauth/types.js +2 -0
- package/dist/core/oauth/types.js.map +1 -0
- package/dist/core/process-manager.d.ts +30 -0
- package/dist/core/process-manager.d.ts.map +1 -0
- package/dist/core/process-manager.js +130 -0
- package/dist/core/process-manager.js.map +1 -0
- package/dist/core/prompt-commands.d.ts +14 -0
- package/dist/core/prompt-commands.d.ts.map +1 -0
- package/dist/core/prompt-commands.js +496 -0
- package/dist/core/prompt-commands.js.map +1 -0
- package/dist/core/session-manager.d.ts +112 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +326 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +43 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +64 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +23 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +89 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +35 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +183 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/telegram.d.ts +94 -0
- package/dist/core/telegram.d.ts.map +1 -0
- package/dist/core/telegram.js +227 -0
- package/dist/core/telegram.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive.d.ts +3 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/interactive.js +173 -0
- package/dist/interactive.js.map +1 -0
- package/dist/modes/index.d.ts +3 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +3 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/json-mode.d.ts +13 -0
- package/dist/modes/json-mode.d.ts.map +1 -0
- package/dist/modes/json-mode.js +74 -0
- package/dist/modes/json-mode.js.map +1 -0
- package/dist/modes/print-mode.d.ts +12 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +49 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc-mode.d.ts +28 -0
- package/dist/modes/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc-mode.js +145 -0
- package/dist/modes/rpc-mode.js.map +1 -0
- package/dist/modes/serve-mode.d.ts +21 -0
- package/dist/modes/serve-mode.d.ts.map +1 -0
- package/dist/modes/serve-mode.js +649 -0
- package/dist/modes/serve-mode.js.map +1 -0
- package/dist/session.d.ts +16 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +129 -0
- package/dist/session.js.map +1 -0
- package/dist/system-prompt.d.ts +6 -0
- package/dist/system-prompt.d.ts.map +1 -0
- package/dist/system-prompt.js +115 -0
- package/dist/system-prompt.js.map +1 -0
- package/dist/tools/bash.d.ts +13 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +165 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit-diff.d.ts +18 -0
- package/dist/tools/edit-diff.d.ts.map +1 -0
- package/dist/tools/edit-diff.js +92 -0
- package/dist/tools/edit-diff.js.map +1 -0
- package/dist/tools/edit.d.ts +11 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +57 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/find.d.ts +9 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +59 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/grep.d.ts +13 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +121 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/index.d.ts +30 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +50 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/ls.d.ts +10 -0
- package/dist/tools/ls.d.ts.map +1 -0
- package/dist/tools/ls.js +56 -0
- package/dist/tools/ls.js.map +1 -0
- package/dist/tools/operations.d.ts +39 -0
- package/dist/tools/operations.d.ts.map +1 -0
- package/dist/tools/operations.js +27 -0
- package/dist/tools/operations.js.map +1 -0
- package/dist/tools/path-utils.d.ts +7 -0
- package/dist/tools/path-utils.d.ts.map +1 -0
- package/dist/tools/path-utils.js +27 -0
- package/dist/tools/path-utils.js.map +1 -0
- package/dist/tools/read.d.ts +12 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +113 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/subagent.d.ts +26 -0
- package/dist/tools/subagent.d.ts.map +1 -0
- package/dist/tools/subagent.js +210 -0
- package/dist/tools/subagent.js.map +1 -0
- package/dist/tools/task-output.d.ts +10 -0
- package/dist/tools/task-output.d.ts.map +1 -0
- package/dist/tools/task-output.js +33 -0
- package/dist/tools/task-output.js.map +1 -0
- package/dist/tools/task-stop.d.ts +9 -0
- package/dist/tools/task-stop.d.ts.map +1 -0
- package/dist/tools/task-stop.js +15 -0
- package/dist/tools/task-stop.js.map +1 -0
- package/dist/tools/tasks.d.ts +16 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +132 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/truncate.d.ts +19 -0
- package/dist/tools/truncate.d.ts.map +1 -0
- package/dist/tools/truncate.js +59 -0
- package/dist/tools/truncate.js.map +1 -0
- package/dist/tools/truncate.test.d.ts +2 -0
- package/dist/tools/truncate.test.d.ts.map +1 -0
- package/dist/tools/truncate.test.js +100 -0
- package/dist/tools/truncate.test.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +9 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +97 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/write.d.ts +10 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +30 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/tools/write.test.d.ts +2 -0
- package/dist/tools/write.test.d.ts.map +1 -0
- package/dist/tools/write.test.js +84 -0
- package/dist/tools/write.test.js.map +1 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/App.d.ts +148 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +1191 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/components/ActivityIndicator.d.ts +13 -0
- package/dist/ui/components/ActivityIndicator.d.ts.map +1 -0
- package/dist/ui/components/ActivityIndicator.js +313 -0
- package/dist/ui/components/ActivityIndicator.js.map +1 -0
- package/dist/ui/components/AnimationContext.d.ts +22 -0
- package/dist/ui/components/AnimationContext.d.ts.map +1 -0
- package/dist/ui/components/AnimationContext.js +35 -0
- package/dist/ui/components/AnimationContext.js.map +1 -0
- package/dist/ui/components/AssistantMessage.d.ts +9 -0
- package/dist/ui/components/AssistantMessage.d.ts.map +1 -0
- package/dist/ui/components/AssistantMessage.js +11 -0
- package/dist/ui/components/AssistantMessage.js.map +1 -0
- package/dist/ui/components/BackgroundTasksBar.d.ts +15 -0
- package/dist/ui/components/BackgroundTasksBar.d.ts.map +1 -0
- package/dist/ui/components/BackgroundTasksBar.js +74 -0
- package/dist/ui/components/BackgroundTasksBar.js.map +1 -0
- package/dist/ui/components/Banner.d.ts +11 -0
- package/dist/ui/components/Banner.d.ts.map +1 -0
- package/dist/ui/components/Banner.js +55 -0
- package/dist/ui/components/Banner.js.map +1 -0
- package/dist/ui/components/CompactionNotice.d.ts +10 -0
- package/dist/ui/components/CompactionNotice.d.ts.map +1 -0
- package/dist/ui/components/CompactionNotice.js +27 -0
- package/dist/ui/components/CompactionNotice.js.map +1 -0
- package/dist/ui/components/DiffView.d.ts +4 -0
- package/dist/ui/components/DiffView.d.ts.map +1 -0
- package/dist/ui/components/DiffView.js +20 -0
- package/dist/ui/components/DiffView.js.map +1 -0
- package/dist/ui/components/Footer.d.ts +10 -0
- package/dist/ui/components/Footer.d.ts.map +1 -0
- package/dist/ui/components/Footer.js +105 -0
- package/dist/ui/components/Footer.js.map +1 -0
- package/dist/ui/components/InputArea.d.ts +21 -0
- package/dist/ui/components/InputArea.d.ts.map +1 -0
- package/dist/ui/components/InputArea.js +465 -0
- package/dist/ui/components/InputArea.js.map +1 -0
- package/dist/ui/components/Markdown.d.ts +9 -0
- package/dist/ui/components/Markdown.d.ts.map +1 -0
- package/dist/ui/components/Markdown.js +246 -0
- package/dist/ui/components/Markdown.js.map +1 -0
- package/dist/ui/components/ModelSelector.d.ts +11 -0
- package/dist/ui/components/ModelSelector.d.ts.map +1 -0
- package/dist/ui/components/ModelSelector.js +20 -0
- package/dist/ui/components/ModelSelector.js.map +1 -0
- package/dist/ui/components/Overlay.d.ts +8 -0
- package/dist/ui/components/Overlay.d.ts.map +1 -0
- package/dist/ui/components/Overlay.js +9 -0
- package/dist/ui/components/Overlay.js.map +1 -0
- package/dist/ui/components/SelectList.d.ts +14 -0
- package/dist/ui/components/SelectList.d.ts.map +1 -0
- package/dist/ui/components/SelectList.js +46 -0
- package/dist/ui/components/SelectList.js.map +1 -0
- package/dist/ui/components/ServerToolExecution.d.ts +17 -0
- package/dist/ui/components/ServerToolExecution.d.ts.map +1 -0
- package/dist/ui/components/ServerToolExecution.js +26 -0
- package/dist/ui/components/ServerToolExecution.js.map +1 -0
- package/dist/ui/components/SessionSelector.d.ts +9 -0
- package/dist/ui/components/SessionSelector.d.ts.map +1 -0
- package/dist/ui/components/SessionSelector.js +13 -0
- package/dist/ui/components/SessionSelector.js.map +1 -0
- package/dist/ui/components/SettingsSelector.d.ts +9 -0
- package/dist/ui/components/SettingsSelector.d.ts.map +1 -0
- package/dist/ui/components/SettingsSelector.js +13 -0
- package/dist/ui/components/SettingsSelector.js.map +1 -0
- package/dist/ui/components/SlashCommandMenu.d.ts +15 -0
- package/dist/ui/components/SlashCommandMenu.d.ts.map +1 -0
- package/dist/ui/components/SlashCommandMenu.js +32 -0
- package/dist/ui/components/SlashCommandMenu.js.map +1 -0
- package/dist/ui/components/Spinner.d.ts +4 -0
- package/dist/ui/components/Spinner.d.ts.map +1 -0
- package/dist/ui/components/Spinner.js +13 -0
- package/dist/ui/components/Spinner.js.map +1 -0
- package/dist/ui/components/StreamingArea.d.ts +10 -0
- package/dist/ui/components/StreamingArea.d.ts.map +1 -0
- package/dist/ui/components/StreamingArea.js +58 -0
- package/dist/ui/components/StreamingArea.js.map +1 -0
- package/dist/ui/components/SubAgentPanel.d.ts +21 -0
- package/dist/ui/components/SubAgentPanel.d.ts.map +1 -0
- package/dist/ui/components/SubAgentPanel.js +71 -0
- package/dist/ui/components/SubAgentPanel.js.map +1 -0
- package/dist/ui/components/TaskOverlay.d.ts +10 -0
- package/dist/ui/components/TaskOverlay.d.ts.map +1 -0
- package/dist/ui/components/TaskOverlay.js +263 -0
- package/dist/ui/components/TaskOverlay.js.map +1 -0
- package/dist/ui/components/ThinkingBlock.d.ts +11 -0
- package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
- package/dist/ui/components/ThinkingBlock.js +43 -0
- package/dist/ui/components/ThinkingBlock.js.map +1 -0
- package/dist/ui/components/ThinkingIndicator.d.ts +6 -0
- package/dist/ui/components/ThinkingIndicator.d.ts.map +1 -0
- package/dist/ui/components/ThinkingIndicator.js +144 -0
- package/dist/ui/components/ThinkingIndicator.js.map +1 -0
- package/dist/ui/components/ToolExecution.d.ts +16 -0
- package/dist/ui/components/ToolExecution.d.ts.map +1 -0
- package/dist/ui/components/ToolExecution.js +490 -0
- package/dist/ui/components/ToolExecution.js.map +1 -0
- package/dist/ui/components/ToolGroupExecution.d.ts +7 -0
- package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -0
- package/dist/ui/components/ToolGroupExecution.js +115 -0
- package/dist/ui/components/ToolGroupExecution.js.map +1 -0
- package/dist/ui/components/UserMessage.d.ts +7 -0
- package/dist/ui/components/UserMessage.d.ts.map +1 -0
- package/dist/ui/components/UserMessage.js +16 -0
- package/dist/ui/components/UserMessage.js.map +1 -0
- package/dist/ui/components/index.d.ts +15 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +15 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/hooks/useAgentLoop.d.ts +69 -0
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -0
- package/dist/ui/hooks/useAgentLoop.js +483 -0
- package/dist/ui/hooks/useAgentLoop.js.map +1 -0
- package/dist/ui/hooks/useSessionManager.d.ts +13 -0
- package/dist/ui/hooks/useSessionManager.d.ts.map +1 -0
- package/dist/ui/hooks/useSessionManager.js +43 -0
- package/dist/ui/hooks/useSessionManager.js.map +1 -0
- package/dist/ui/hooks/useSlashCommands.d.ts +7 -0
- package/dist/ui/hooks/useSlashCommands.d.ts.map +1 -0
- package/dist/ui/hooks/useSlashCommands.js +11 -0
- package/dist/ui/hooks/useSlashCommands.js.map +1 -0
- package/dist/ui/hooks/useTerminalSize.d.ts +20 -0
- package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -0
- package/dist/ui/hooks/useTerminalSize.js +55 -0
- package/dist/ui/hooks/useTerminalSize.js.map +1 -0
- package/dist/ui/hooks/useTerminalTitle.d.ts +3 -0
- package/dist/ui/hooks/useTerminalTitle.d.ts.map +1 -0
- package/dist/ui/hooks/useTerminalTitle.js +41 -0
- package/dist/ui/hooks/useTerminalTitle.js.map +1 -0
- package/dist/ui/live-item-flush.d.ts +59 -0
- package/dist/ui/live-item-flush.d.ts.map +1 -0
- package/dist/ui/live-item-flush.js +135 -0
- package/dist/ui/live-item-flush.js.map +1 -0
- package/dist/ui/live-item-flush.test.d.ts +2 -0
- package/dist/ui/live-item-flush.test.d.ts.map +1 -0
- package/dist/ui/live-item-flush.test.js +307 -0
- package/dist/ui/live-item-flush.test.js.map +1 -0
- package/dist/ui/login.d.ts +3 -0
- package/dist/ui/login.d.ts.map +1 -0
- package/dist/ui/login.js +117 -0
- package/dist/ui/login.js.map +1 -0
- package/dist/ui/render.d.ts +38 -0
- package/dist/ui/render.d.ts.map +1 -0
- package/dist/ui/render.js +72 -0
- package/dist/ui/render.js.map +1 -0
- package/dist/ui/sessions.d.ts +2 -0
- package/dist/ui/sessions.d.ts.map +1 -0
- package/dist/ui/sessions.js +208 -0
- package/dist/ui/sessions.js.map +1 -0
- package/dist/ui/spinner-frames.d.ts +3 -0
- package/dist/ui/spinner-frames.d.ts.map +1 -0
- package/dist/ui/spinner-frames.js +7 -0
- package/dist/ui/spinner-frames.js.map +1 -0
- package/dist/ui/theme/dark.json +24 -0
- package/dist/ui/theme/detect-theme.d.ts +12 -0
- package/dist/ui/theme/detect-theme.d.ts.map +1 -0
- package/dist/ui/theme/detect-theme.js +152 -0
- package/dist/ui/theme/detect-theme.js.map +1 -0
- package/dist/ui/theme/light.json +24 -0
- package/dist/ui/theme/theme.d.ts +29 -0
- package/dist/ui/theme/theme.d.ts.map +1 -0
- package/dist/ui/theme/theme.js +11 -0
- package/dist/ui/theme/theme.js.map +1 -0
- package/dist/ui/utils/highlight.d.ts +8 -0
- package/dist/ui/utils/highlight.d.ts.map +1 -0
- package/dist/ui/utils/highlight.js +49 -0
- package/dist/ui/utils/highlight.js.map +1 -0
- package/dist/ui/utils/table-text.d.ts +25 -0
- package/dist/ui/utils/table-text.d.ts.map +1 -0
- package/dist/ui/utils/table-text.js +78 -0
- package/dist/ui/utils/table-text.js.map +1 -0
- package/dist/ui/utils/table-text.test.d.ts +2 -0
- package/dist/ui/utils/table-text.test.d.ts.map +1 -0
- package/dist/ui/utils/table-text.test.js +202 -0
- package/dist/ui/utils/table-text.test.js.map +1 -0
- package/dist/utils/error-handler.d.ts +5 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +120 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/format.d.ts +21 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +120 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/git.d.ts +2 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +13 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/image.d.ts +30 -0
- package/dist/utils/image.d.ts.map +1 -0
- package/dist/utils/image.js +231 -0
- package/dist/utils/image.js.map +1 -0
- package/dist/utils/markdown.d.ts +6 -0
- package/dist/utils/markdown.d.ts.map +1 -0
- package/dist/utils/markdown.js +25 -0
- package/dist/utils/markdown.js.map +1 -0
- package/dist/utils/process.d.ts +6 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +19 -0
- package/dist/utils/process.js.map +1 -0
- package/dist/utils/shell.d.ts +3 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +8 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sound.d.ts +2 -0
- package/dist/utils/sound.d.ts.map +1 -0
- package/dist/utils/sound.js +11 -0
- package/dist/utils/sound.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
// ── Types ──────────────────────────────────────────────────
|
|
2
|
+
// ── Registry ───────────────────────────────────────────────
|
|
3
|
+
export class SlashCommandRegistry {
|
|
4
|
+
commands = new Map();
|
|
5
|
+
register(command) {
|
|
6
|
+
this.commands.set(command.name, command);
|
|
7
|
+
for (const alias of command.aliases) {
|
|
8
|
+
this.commands.set(alias, command);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
unregister(name) {
|
|
12
|
+
const cmd = this.commands.get(name);
|
|
13
|
+
if (!cmd)
|
|
14
|
+
return;
|
|
15
|
+
this.commands.delete(cmd.name);
|
|
16
|
+
for (const alias of cmd.aliases) {
|
|
17
|
+
this.commands.delete(alias);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
get(name) {
|
|
21
|
+
return this.commands.get(name);
|
|
22
|
+
}
|
|
23
|
+
getAll() {
|
|
24
|
+
// Deduplicate (aliases point to same command)
|
|
25
|
+
const seen = new Set();
|
|
26
|
+
const result = [];
|
|
27
|
+
for (const cmd of this.commands.values()) {
|
|
28
|
+
if (!seen.has(cmd.name)) {
|
|
29
|
+
seen.add(cmd.name);
|
|
30
|
+
result.push(cmd);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
parse(input) {
|
|
36
|
+
const trimmed = input.trim();
|
|
37
|
+
if (!trimmed.startsWith("/"))
|
|
38
|
+
return null;
|
|
39
|
+
const spaceIndex = trimmed.indexOf(" ");
|
|
40
|
+
const name = spaceIndex === -1 ? trimmed.slice(1) : trimmed.slice(1, spaceIndex);
|
|
41
|
+
const args = spaceIndex === -1 ? "" : trimmed.slice(spaceIndex + 1).trim();
|
|
42
|
+
return { name, args };
|
|
43
|
+
}
|
|
44
|
+
async execute(input, context) {
|
|
45
|
+
const parsed = this.parse(input);
|
|
46
|
+
if (!parsed)
|
|
47
|
+
return null;
|
|
48
|
+
const command = this.get(parsed.name);
|
|
49
|
+
if (!command)
|
|
50
|
+
return `Unknown command: /${parsed.name}. Type /help for available commands.`;
|
|
51
|
+
return command.execute(parsed.args, context);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// ── Built-in Commands ──────────────────────────────────────
|
|
55
|
+
export function createBuiltinCommands() {
|
|
56
|
+
return [
|
|
57
|
+
{
|
|
58
|
+
name: "model",
|
|
59
|
+
aliases: ["m"],
|
|
60
|
+
description: "Switch model or list available models",
|
|
61
|
+
usage: "/model [provider:model]",
|
|
62
|
+
async execute(args, ctx) {
|
|
63
|
+
if (!args) {
|
|
64
|
+
return ctx.getModelList();
|
|
65
|
+
}
|
|
66
|
+
const parts = args.split(":");
|
|
67
|
+
if (parts.length === 2) {
|
|
68
|
+
await ctx.switchModel(parts[0], parts[1]);
|
|
69
|
+
return `Switched to ${parts[0]}:${parts[1]}`;
|
|
70
|
+
}
|
|
71
|
+
// Assume it's just a model name with current provider
|
|
72
|
+
await ctx.switchModel("", args);
|
|
73
|
+
return `Switched to model: ${args}`;
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "compact",
|
|
78
|
+
aliases: ["c"],
|
|
79
|
+
description: "Compact conversation to reduce context usage",
|
|
80
|
+
usage: "/compact",
|
|
81
|
+
async execute(_args, ctx) {
|
|
82
|
+
await ctx.compact();
|
|
83
|
+
return "Conversation compacted.";
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "settings",
|
|
88
|
+
aliases: ["config"],
|
|
89
|
+
description: "Show or modify settings",
|
|
90
|
+
usage: "/settings [key] [value]",
|
|
91
|
+
async execute(args, ctx) {
|
|
92
|
+
if (!args) {
|
|
93
|
+
const settings = ctx.getSettings();
|
|
94
|
+
return Object.entries(settings)
|
|
95
|
+
.map(([k, v]) => ` ${k}: ${JSON.stringify(v)}`)
|
|
96
|
+
.join("\n");
|
|
97
|
+
}
|
|
98
|
+
const [key, ...rest] = args.split(" ");
|
|
99
|
+
if (rest.length === 0) {
|
|
100
|
+
const settings = ctx.getSettings();
|
|
101
|
+
const val = settings[key];
|
|
102
|
+
return val !== undefined ? `${key}: ${JSON.stringify(val)}` : `Unknown setting: ${key}`;
|
|
103
|
+
}
|
|
104
|
+
const value = rest.join(" ");
|
|
105
|
+
let parsed;
|
|
106
|
+
try {
|
|
107
|
+
parsed = JSON.parse(value);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
parsed = value;
|
|
111
|
+
}
|
|
112
|
+
await ctx.setSetting(key, parsed);
|
|
113
|
+
return `Set ${key} = ${JSON.stringify(parsed)}`;
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "session",
|
|
118
|
+
aliases: ["s"],
|
|
119
|
+
description: "List sessions or create new",
|
|
120
|
+
usage: "/session [list|new]",
|
|
121
|
+
async execute(args, ctx) {
|
|
122
|
+
if (args === "new" || args === "n") {
|
|
123
|
+
await ctx.newSession();
|
|
124
|
+
return "New session created.";
|
|
125
|
+
}
|
|
126
|
+
return ctx.listSessions();
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: "new",
|
|
131
|
+
aliases: ["n"],
|
|
132
|
+
description: "Start a new session",
|
|
133
|
+
usage: "/new",
|
|
134
|
+
async execute(_args, ctx) {
|
|
135
|
+
await ctx.newSession();
|
|
136
|
+
return "New session created.";
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: "branch",
|
|
141
|
+
aliases: ["b"],
|
|
142
|
+
description: "Create a branch (rewind and fork the conversation)",
|
|
143
|
+
usage: "/branch [steps_back] — rewind N messages and fork (default: 2)",
|
|
144
|
+
async execute(args, ctx) {
|
|
145
|
+
const stepsBack = args ? parseInt(args, 10) : 2;
|
|
146
|
+
if (isNaN(stepsBack) || stepsBack < 1) {
|
|
147
|
+
return "Usage: /branch [N] — rewind N messages (default: 2)";
|
|
148
|
+
}
|
|
149
|
+
return ctx.branch(stepsBack);
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: "branches",
|
|
154
|
+
aliases: [],
|
|
155
|
+
description: "List all branches in the current session",
|
|
156
|
+
usage: "/branches",
|
|
157
|
+
async execute(_args, ctx) {
|
|
158
|
+
return ctx.listBranches();
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
name: "help",
|
|
163
|
+
aliases: ["h", "?"],
|
|
164
|
+
description: "Show available commands",
|
|
165
|
+
usage: "/help",
|
|
166
|
+
execute() {
|
|
167
|
+
// This will be populated dynamically by the registry
|
|
168
|
+
return "Use /help to see available slash commands.";
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: "quit",
|
|
173
|
+
aliases: ["q", "exit"],
|
|
174
|
+
description: "Exit the agent",
|
|
175
|
+
usage: "/quit",
|
|
176
|
+
execute(_args, ctx) {
|
|
177
|
+
ctx.quit();
|
|
178
|
+
return "Goodbye!";
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
];
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=slash-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal Telegram Bot API client using raw fetch().
|
|
3
|
+
* Supports long polling, markdown messages, inline keyboards, and message splitting.
|
|
4
|
+
*/
|
|
5
|
+
export interface TelegramConfig {
|
|
6
|
+
botToken: string;
|
|
7
|
+
/** Only accept messages from this Telegram user ID. */
|
|
8
|
+
allowedUserId: number;
|
|
9
|
+
}
|
|
10
|
+
export interface TelegramUpdate {
|
|
11
|
+
update_id: number;
|
|
12
|
+
message?: {
|
|
13
|
+
message_id: number;
|
|
14
|
+
from: {
|
|
15
|
+
id: number;
|
|
16
|
+
first_name: string;
|
|
17
|
+
};
|
|
18
|
+
chat: {
|
|
19
|
+
id: number;
|
|
20
|
+
type: string;
|
|
21
|
+
title?: string;
|
|
22
|
+
};
|
|
23
|
+
text?: string;
|
|
24
|
+
};
|
|
25
|
+
callback_query?: {
|
|
26
|
+
id: string;
|
|
27
|
+
from: {
|
|
28
|
+
id: number;
|
|
29
|
+
};
|
|
30
|
+
message: {
|
|
31
|
+
chat: {
|
|
32
|
+
id: number;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
data: string;
|
|
36
|
+
};
|
|
37
|
+
my_chat_member?: {
|
|
38
|
+
chat: {
|
|
39
|
+
id: number;
|
|
40
|
+
type: string;
|
|
41
|
+
title?: string;
|
|
42
|
+
};
|
|
43
|
+
from: {
|
|
44
|
+
id: number;
|
|
45
|
+
};
|
|
46
|
+
new_chat_member: {
|
|
47
|
+
status: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export interface InlineButton {
|
|
52
|
+
text: string;
|
|
53
|
+
callback_data: string;
|
|
54
|
+
}
|
|
55
|
+
/** Incoming message with chat context. */
|
|
56
|
+
export interface TelegramMessage {
|
|
57
|
+
text: string;
|
|
58
|
+
chatId: number;
|
|
59
|
+
chatType: "private" | "group" | "supergroup" | "channel";
|
|
60
|
+
chatTitle?: string;
|
|
61
|
+
}
|
|
62
|
+
export declare class TelegramBot {
|
|
63
|
+
private token;
|
|
64
|
+
private allowedUserId;
|
|
65
|
+
private offset;
|
|
66
|
+
private running;
|
|
67
|
+
private onMessage;
|
|
68
|
+
private onCallback;
|
|
69
|
+
private onBotAdded;
|
|
70
|
+
private onBotRemoved;
|
|
71
|
+
constructor(config: TelegramConfig);
|
|
72
|
+
/** Register handler for incoming text messages. */
|
|
73
|
+
onText(handler: (msg: TelegramMessage) => void): void;
|
|
74
|
+
/** Register handler for inline keyboard button presses. */
|
|
75
|
+
onCallbackQuery(handler: (data: string, chatId: number) => void): void;
|
|
76
|
+
/** Register handler for when the bot is added to a group. */
|
|
77
|
+
onAddedToGroup(handler: (chatId: number, chatTitle?: string) => void): void;
|
|
78
|
+
/** Register handler for when the bot is removed from a group. */
|
|
79
|
+
onRemovedFromGroup(handler: (chatId: number) => void): void;
|
|
80
|
+
/** Start long polling. Blocks until stop() is called. */
|
|
81
|
+
start(): Promise<void>;
|
|
82
|
+
/** Stop long polling. */
|
|
83
|
+
stop(): void;
|
|
84
|
+
/** Send a text message to a specific chat. Converts markdown and splits long messages. */
|
|
85
|
+
send(chatId: number, text: string, buttons?: InlineButton[][]): Promise<void>;
|
|
86
|
+
/** Send a plain text message (no markdown parsing) to a specific chat. */
|
|
87
|
+
sendPlain(chatId: number, text: string): Promise<void>;
|
|
88
|
+
/** Send a typing indicator to a specific chat. */
|
|
89
|
+
sendTyping(chatId: number): Promise<void>;
|
|
90
|
+
private getUpdates;
|
|
91
|
+
private handleUpdate;
|
|
92
|
+
private apiCall;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=telegram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/core/telegram.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal Telegram Bot API client using raw fetch().
|
|
3
|
+
* Supports long polling, markdown messages, inline keyboards, and message splitting.
|
|
4
|
+
*/
|
|
5
|
+
const TELEGRAM_API = "https://api.telegram.org";
|
|
6
|
+
const MAX_MESSAGE_LENGTH = 4096;
|
|
7
|
+
export class TelegramBot {
|
|
8
|
+
token;
|
|
9
|
+
allowedUserId;
|
|
10
|
+
offset = 0;
|
|
11
|
+
running = false;
|
|
12
|
+
onMessage = null;
|
|
13
|
+
onCallback = null;
|
|
14
|
+
onBotAdded = null;
|
|
15
|
+
onBotRemoved = null;
|
|
16
|
+
constructor(config) {
|
|
17
|
+
this.token = config.botToken;
|
|
18
|
+
this.allowedUserId = config.allowedUserId;
|
|
19
|
+
}
|
|
20
|
+
/** Register handler for incoming text messages. */
|
|
21
|
+
onText(handler) {
|
|
22
|
+
this.onMessage = handler;
|
|
23
|
+
}
|
|
24
|
+
/** Register handler for inline keyboard button presses. */
|
|
25
|
+
onCallbackQuery(handler) {
|
|
26
|
+
this.onCallback = handler;
|
|
27
|
+
}
|
|
28
|
+
/** Register handler for when the bot is added to a group. */
|
|
29
|
+
onAddedToGroup(handler) {
|
|
30
|
+
this.onBotAdded = handler;
|
|
31
|
+
}
|
|
32
|
+
/** Register handler for when the bot is removed from a group. */
|
|
33
|
+
onRemovedFromGroup(handler) {
|
|
34
|
+
this.onBotRemoved = handler;
|
|
35
|
+
}
|
|
36
|
+
/** Start long polling. Blocks until stop() is called. */
|
|
37
|
+
async start() {
|
|
38
|
+
this.running = true;
|
|
39
|
+
// Verify bot token works
|
|
40
|
+
const me = await this.apiCall("getMe");
|
|
41
|
+
if (!me.ok) {
|
|
42
|
+
throw new Error(`Invalid bot token: ${JSON.stringify(me)}`);
|
|
43
|
+
}
|
|
44
|
+
while (this.running) {
|
|
45
|
+
try {
|
|
46
|
+
const updates = await this.getUpdates();
|
|
47
|
+
for (const update of updates) {
|
|
48
|
+
await this.handleUpdate(update);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
if (!this.running)
|
|
53
|
+
break;
|
|
54
|
+
console.error(`[telegram] Poll error: ${err instanceof Error ? err.message : err}`);
|
|
55
|
+
await sleep(3000);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Stop long polling. */
|
|
60
|
+
stop() {
|
|
61
|
+
this.running = false;
|
|
62
|
+
}
|
|
63
|
+
/** Send a text message to a specific chat. Converts markdown and splits long messages. */
|
|
64
|
+
async send(chatId, text, buttons) {
|
|
65
|
+
const converted = toTelegramMarkdown(text);
|
|
66
|
+
const chunks = splitMessage(converted);
|
|
67
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
68
|
+
const isLast = i === chunks.length - 1;
|
|
69
|
+
const replyMarkup = isLast && buttons
|
|
70
|
+
? {
|
|
71
|
+
inline_keyboard: buttons.map((row) => row.map((b) => ({ text: b.text, callback_data: b.callback_data }))),
|
|
72
|
+
}
|
|
73
|
+
: undefined;
|
|
74
|
+
await this.apiCall("sendMessage", {
|
|
75
|
+
chat_id: chatId,
|
|
76
|
+
text: chunks[i],
|
|
77
|
+
parse_mode: "Markdown",
|
|
78
|
+
...(replyMarkup ? { reply_markup: replyMarkup } : {}),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** Send a plain text message (no markdown parsing) to a specific chat. */
|
|
83
|
+
async sendPlain(chatId, text) {
|
|
84
|
+
const chunks = splitMessage(text);
|
|
85
|
+
for (const chunk of chunks) {
|
|
86
|
+
await this.apiCall("sendMessage", {
|
|
87
|
+
chat_id: chatId,
|
|
88
|
+
text: chunk,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** Send a typing indicator to a specific chat. */
|
|
93
|
+
async sendTyping(chatId) {
|
|
94
|
+
await this.apiCall("sendChatAction", {
|
|
95
|
+
chat_id: chatId,
|
|
96
|
+
action: "typing",
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
// ── Private ───────────────────────────────────────────
|
|
100
|
+
async getUpdates() {
|
|
101
|
+
const result = await this.apiCall("getUpdates", {
|
|
102
|
+
offset: this.offset,
|
|
103
|
+
timeout: 30,
|
|
104
|
+
allowed_updates: ["message", "callback_query", "my_chat_member"],
|
|
105
|
+
});
|
|
106
|
+
if (!result.ok || !Array.isArray(result.result))
|
|
107
|
+
return [];
|
|
108
|
+
const updates = result.result;
|
|
109
|
+
if (updates.length > 0) {
|
|
110
|
+
this.offset = updates[updates.length - 1].update_id + 1;
|
|
111
|
+
}
|
|
112
|
+
return updates;
|
|
113
|
+
}
|
|
114
|
+
async handleUpdate(update) {
|
|
115
|
+
if (update.message) {
|
|
116
|
+
const msg = update.message;
|
|
117
|
+
// Auth check
|
|
118
|
+
if (msg.from.id !== this.allowedUserId) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (msg.text && this.onMessage) {
|
|
122
|
+
this.onMessage({
|
|
123
|
+
text: msg.text,
|
|
124
|
+
chatId: msg.chat.id,
|
|
125
|
+
chatType: msg.chat.type,
|
|
126
|
+
chatTitle: msg.chat.title,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Bot membership changed in a group
|
|
131
|
+
if (update.my_chat_member) {
|
|
132
|
+
const member = update.my_chat_member;
|
|
133
|
+
const status = member.new_chat_member.status;
|
|
134
|
+
if ((status === "member" || status === "administrator") && this.onBotAdded) {
|
|
135
|
+
this.onBotAdded(member.chat.id, member.chat.title);
|
|
136
|
+
}
|
|
137
|
+
else if ((status === "left" || status === "kicked") && this.onBotRemoved) {
|
|
138
|
+
this.onBotRemoved(member.chat.id);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (update.callback_query) {
|
|
142
|
+
const cb = update.callback_query;
|
|
143
|
+
if (cb.from.id !== this.allowedUserId)
|
|
144
|
+
return;
|
|
145
|
+
await this.apiCall("answerCallbackQuery", { callback_query_id: cb.id });
|
|
146
|
+
if (cb.data && this.onCallback) {
|
|
147
|
+
this.onCallback(cb.data, cb.message.chat.id);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async apiCall(method, body) {
|
|
152
|
+
const url = `${TELEGRAM_API}/bot${this.token}/${method}`;
|
|
153
|
+
const response = await fetch(url, {
|
|
154
|
+
method: "POST",
|
|
155
|
+
headers: { "Content-Type": "application/json" },
|
|
156
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
157
|
+
});
|
|
158
|
+
return response.json();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// ── Markdown Conversion ──────────────────────────────────
|
|
162
|
+
/**
|
|
163
|
+
* Convert GitHub-flavored markdown to Telegram-compatible Markdown.
|
|
164
|
+
*
|
|
165
|
+
* Telegram supports: *bold*, _italic_, `code`, ```pre```, [link](url)
|
|
166
|
+
* Does NOT support: headings, horizontal rules, tables, HTML tags, images
|
|
167
|
+
*/
|
|
168
|
+
function toTelegramMarkdown(text) {
|
|
169
|
+
const lines = text.split("\n");
|
|
170
|
+
const result = [];
|
|
171
|
+
let inCodeBlock = false;
|
|
172
|
+
for (const line of lines) {
|
|
173
|
+
if (line.trimStart().startsWith("```")) {
|
|
174
|
+
inCodeBlock = !inCodeBlock;
|
|
175
|
+
result.push(line);
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (inCodeBlock) {
|
|
179
|
+
result.push(line);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
let transformed = line;
|
|
183
|
+
// Headings → bold text
|
|
184
|
+
const headingMatch = transformed.match(/^(#{1,6})\s+(.+)$/);
|
|
185
|
+
if (headingMatch) {
|
|
186
|
+
transformed = `*${headingMatch[2]}*`;
|
|
187
|
+
result.push(transformed);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
// Horizontal rules → empty line
|
|
191
|
+
if (/^(-{3,}|_{3,}|\*{3,})$/.test(transformed.trim())) {
|
|
192
|
+
result.push("");
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
// **bold** → *bold*
|
|
196
|
+
transformed = transformed.replace(/\*\*(.+?)\*\*/g, "*$1*");
|
|
197
|
+
result.push(transformed);
|
|
198
|
+
}
|
|
199
|
+
return result.join("\n");
|
|
200
|
+
}
|
|
201
|
+
// ── Helpers ───────────────────────────────────────────────
|
|
202
|
+
function splitMessage(text) {
|
|
203
|
+
if (text.length <= MAX_MESSAGE_LENGTH)
|
|
204
|
+
return [text];
|
|
205
|
+
const chunks = [];
|
|
206
|
+
let remaining = text;
|
|
207
|
+
while (remaining.length > 0) {
|
|
208
|
+
if (remaining.length <= MAX_MESSAGE_LENGTH) {
|
|
209
|
+
chunks.push(remaining);
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
let splitAt = remaining.lastIndexOf("\n", MAX_MESSAGE_LENGTH);
|
|
213
|
+
if (splitAt === -1 || splitAt < MAX_MESSAGE_LENGTH * 0.5) {
|
|
214
|
+
splitAt = remaining.lastIndexOf(" ", MAX_MESSAGE_LENGTH);
|
|
215
|
+
}
|
|
216
|
+
if (splitAt === -1 || splitAt < MAX_MESSAGE_LENGTH * 0.5) {
|
|
217
|
+
splitAt = MAX_MESSAGE_LENGTH;
|
|
218
|
+
}
|
|
219
|
+
chunks.push(remaining.slice(0, splitAt));
|
|
220
|
+
remaining = remaining.slice(splitAt).trimStart();
|
|
221
|
+
}
|
|
222
|
+
return chunks;
|
|
223
|
+
}
|
|
224
|
+
function sleep(ms) {
|
|
225
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=telegram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/core/telegram.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { createTools, createReadTool, createWriteTool, createEditTool, createBashTool, createFindTool, createGrepTool, createLsTool, } from "./tools/index.js";
|
|
2
|
+
export { buildSystemPrompt } from "./system-prompt.js";
|
|
3
|
+
export { createSession, loadSession, listSessions, getMostRecentSession, persistMessage, } from "./session.js";
|
|
4
|
+
export { EventBus, AgentSession, SessionManager, SettingsManager, AuthStorage, SlashCommandRegistry, ExtensionLoader, MODELS, getModel, getModelsForProvider, getDefaultModel, getContextWindow, shouldCompact, compact, discoverSkills, estimateTokens, estimateConversationTokens, } from "./core/index.js";
|
|
5
|
+
export { runPrintMode } from "./modes/index.js";
|
|
6
|
+
export { renderApp } from "./ui/render.js";
|
|
7
|
+
export { APP_NAME, VERSION, getAppPaths, ensureAppDirs } from "./config.js";
|
|
8
|
+
export type { CliConfig, SessionHeader as LegacySessionHeader, SessionMessageEntry, SessionEntry as LegacySessionEntry, SessionInfo as LegacySessionInfo, } from "./types.js";
|
|
9
|
+
export type { AgentSessionOptions, AgentSessionState, BusEventMap, ModelInfo, Settings, SlashCommand, SlashCommandContext, Skill, Extension, ExtensionContext, CompactionResult, SessionEntry, SessionInfo, SessionHeader, } from "./core/index.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,cAAc,EACd,cAAc,EACd,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5E,YAAY,EACV,SAAS,EACT,aAAa,IAAI,mBAAmB,EACpC,mBAAmB,EACnB,YAAY,IAAI,kBAAkB,EAClC,WAAW,IAAI,iBAAiB,GACjC,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Tools
|
|
2
|
+
export { createTools, createReadTool, createWriteTool, createEditTool, createBashTool, createFindTool, createGrepTool, createLsTool, } from "./tools/index.js";
|
|
3
|
+
// System prompt
|
|
4
|
+
export { buildSystemPrompt } from "./system-prompt.js";
|
|
5
|
+
// Session (legacy — still usable)
|
|
6
|
+
export { createSession, loadSession, listSessions, getMostRecentSession, persistMessage, } from "./session.js";
|
|
7
|
+
// Core
|
|
8
|
+
export { EventBus, AgentSession, SessionManager, SettingsManager, AuthStorage, SlashCommandRegistry, ExtensionLoader, MODELS, getModel, getModelsForProvider, getDefaultModel, getContextWindow, shouldCompact, compact, discoverSkills, estimateTokens, estimateConversationTokens, } from "./core/index.js";
|
|
9
|
+
// Modes
|
|
10
|
+
export { runPrintMode } from "./modes/index.js";
|
|
11
|
+
// UI entry
|
|
12
|
+
export { renderApp } from "./ui/render.js";
|
|
13
|
+
// Config
|
|
14
|
+
export { APP_NAME, VERSION, getAppPaths, ensureAppDirs } from "./config.js";
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,kCAAkC;AAClC,OAAO,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO;AACP,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,cAAc,EACd,cAAc,EACd,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAEzB,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,WAAW;AACX,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,SAAS;AACT,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAsB5C,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA8IrE"}
|