centaurus-cli 2.8.5 → 2.8.7

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.
Files changed (115) hide show
  1. package/dist/cli-adapter.d.ts +85 -0
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +769 -28
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/config/slash-commands.d.ts +2 -0
  6. package/dist/config/slash-commands.d.ts.map +1 -1
  7. package/dist/config/slash-commands.js +31 -1
  8. package/dist/config/slash-commands.js.map +1 -1
  9. package/dist/context/handlers/docker-handler.js.map +1 -1
  10. package/dist/context/handlers/ssh-handler.d.ts +16 -1
  11. package/dist/context/handlers/ssh-handler.d.ts.map +1 -1
  12. package/dist/context/handlers/ssh-handler.js +57 -12
  13. package/dist/context/handlers/ssh-handler.js.map +1 -1
  14. package/dist/context/subshell-handler.d.ts +14 -0
  15. package/dist/context/subshell-handler.d.ts.map +1 -1
  16. package/dist/hooks/useTerminalDimensions.d.ts +41 -0
  17. package/dist/hooks/useTerminalDimensions.d.ts.map +1 -0
  18. package/dist/hooks/useTerminalDimensions.js +84 -0
  19. package/dist/hooks/useTerminalDimensions.js.map +1 -0
  20. package/dist/index.js +27 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/services/api-client.d.ts +24 -0
  23. package/dist/services/api-client.d.ts.map +1 -1
  24. package/dist/services/api-client.js +27 -0
  25. package/dist/services/api-client.js.map +1 -1
  26. package/dist/services/auth-handler.js +1 -1
  27. package/dist/services/auth-handler.js.map +1 -1
  28. package/dist/services/clipboard-service.d.ts +42 -0
  29. package/dist/services/clipboard-service.d.ts.map +1 -0
  30. package/dist/services/clipboard-service.js +217 -0
  31. package/dist/services/clipboard-service.js.map +1 -0
  32. package/dist/services/local-chat-storage.d.ts +154 -0
  33. package/dist/services/local-chat-storage.d.ts.map +1 -0
  34. package/dist/services/local-chat-storage.js +258 -0
  35. package/dist/services/local-chat-storage.js.map +1 -0
  36. package/dist/tools/grep-search.d.ts +5 -0
  37. package/dist/tools/grep-search.d.ts.map +1 -1
  38. package/dist/tools/grep-search.js +68 -16
  39. package/dist/tools/grep-search.js.map +1 -1
  40. package/dist/tools/plan-mode.d.ts +57 -6
  41. package/dist/tools/plan-mode.d.ts.map +1 -1
  42. package/dist/tools/plan-mode.js +297 -46
  43. package/dist/tools/plan-mode.js.map +1 -1
  44. package/dist/tools/read-binary-file.d.ts +10 -0
  45. package/dist/tools/read-binary-file.d.ts.map +1 -0
  46. package/dist/tools/read-binary-file.js +210 -0
  47. package/dist/tools/read-binary-file.js.map +1 -0
  48. package/dist/types/index.d.ts +7 -1
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/ui/components/App.d.ts +35 -0
  51. package/dist/ui/components/App.d.ts.map +1 -1
  52. package/dist/ui/components/App.js +608 -16
  53. package/dist/ui/components/App.js.map +1 -1
  54. package/dist/ui/components/ClipboardImageAutocomplete.d.ts +14 -0
  55. package/dist/ui/components/ClipboardImageAutocomplete.d.ts.map +1 -0
  56. package/dist/ui/components/ClipboardImageAutocomplete.js +39 -0
  57. package/dist/ui/components/ClipboardImageAutocomplete.js.map +1 -0
  58. package/dist/ui/components/ConnectionStatusMessage.d.ts +1 -1
  59. package/dist/ui/components/ConnectionStatusMessage.d.ts.map +1 -1
  60. package/dist/ui/components/ConnectionStatusMessage.js +21 -0
  61. package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
  62. package/dist/ui/components/DetailedPlanReviewScreen.d.ts +17 -0
  63. package/dist/ui/components/DetailedPlanReviewScreen.d.ts.map +1 -0
  64. package/dist/ui/components/DetailedPlanReviewScreen.js +110 -0
  65. package/dist/ui/components/DetailedPlanReviewScreen.js.map +1 -0
  66. package/dist/ui/components/InputBox.d.ts +2 -1
  67. package/dist/ui/components/InputBox.d.ts.map +1 -1
  68. package/dist/ui/components/InputBox.js +399 -28
  69. package/dist/ui/components/InputBox.js.map +1 -1
  70. package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
  71. package/dist/ui/components/InteractiveShell.js +20 -6
  72. package/dist/ui/components/InteractiveShell.js.map +1 -1
  73. package/dist/ui/components/MessageDisplay.d.ts +6 -0
  74. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  75. package/dist/ui/components/MessageDisplay.js +66 -3
  76. package/dist/ui/components/MessageDisplay.js.map +1 -1
  77. package/dist/ui/components/PlanAcceptedMessage.d.ts +8 -0
  78. package/dist/ui/components/PlanAcceptedMessage.d.ts.map +1 -1
  79. package/dist/ui/components/PlanAcceptedMessage.js +26 -8
  80. package/dist/ui/components/PlanAcceptedMessage.js.map +1 -1
  81. package/dist/ui/components/StreamingMessageDisplay.d.ts +3 -0
  82. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  83. package/dist/ui/components/StreamingMessageDisplay.js +10 -6
  84. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  85. package/dist/ui/components/TaskCompletedMessage.d.ts.map +1 -1
  86. package/dist/ui/components/TaskCompletedMessage.js +4 -4
  87. package/dist/ui/components/TaskCompletedMessage.js.map +1 -1
  88. package/dist/ui/components/TaskProgressIndicator.d.ts +18 -0
  89. package/dist/ui/components/TaskProgressIndicator.d.ts.map +1 -0
  90. package/dist/ui/components/TaskProgressIndicator.js +72 -0
  91. package/dist/ui/components/TaskProgressIndicator.js.map +1 -0
  92. package/dist/ui/components/ThinkingDisplay.d.ts +3 -0
  93. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -1
  94. package/dist/ui/components/ThinkingDisplay.js +6 -4
  95. package/dist/ui/components/ThinkingDisplay.js.map +1 -1
  96. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  97. package/dist/ui/components/ToolExecutionMessage.js +85 -15
  98. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  99. package/dist/utils/custom-commands-manager.d.ts +59 -0
  100. package/dist/utils/custom-commands-manager.d.ts.map +1 -0
  101. package/dist/utils/custom-commands-manager.js +142 -0
  102. package/dist/utils/custom-commands-manager.js.map +1 -0
  103. package/dist/utils/input-classifier.d.ts +10 -11
  104. package/dist/utils/input-classifier.d.ts.map +1 -1
  105. package/dist/utils/input-classifier.js +299 -75
  106. package/dist/utils/input-classifier.js.map +1 -1
  107. package/dist/utils/terminal-output.d.ts.map +1 -1
  108. package/dist/utils/terminal-output.js +110 -14
  109. package/dist/utils/terminal-output.js.map +1 -1
  110. package/dist/utils/unicode-sanitizer.d.ts +44 -0
  111. package/dist/utils/unicode-sanitizer.d.ts.map +1 -0
  112. package/dist/utils/unicode-sanitizer.js +211 -0
  113. package/dist/utils/unicode-sanitizer.js.map +1 -0
  114. package/models-config.json +2 -3
  115. package/package.json +7 -3
@@ -1,80 +1,306 @@
1
1
  /**
2
2
  * Input Classification Utilities
3
3
  *
4
- * Provides heuristic-based detection of user intent (Terminal Command vs AI Message).
5
- * Completely replaces backend API classification.
4
+ * Provides intelligent heuristic-based detection of user intent (Terminal Command vs AI Message).
5
+ * Uses sentence structure analysis, command syntax detection, and context-aware disambiguation.
6
6
  */
7
+ import { CustomCommandsManager } from './custom-commands-manager.js';
7
8
  // Valid slash commands that should be handled by the Agent/CLI logic
8
9
  const SLASH_COMMANDS = new Set([
9
10
  'help', 'h', '?',
10
11
  'model', 'm',
11
12
  'config', 'c', 'settings',
12
13
  'clear', 'cls', 'reset',
14
+ 'clean-ui', 'refresh-ui', 'redraw',
13
15
  'exit', 'quit', 'q',
14
16
  'session', 's',
15
17
  'tools', 't',
16
18
  'plan',
17
19
  'init', 'i',
18
20
  'mcp',
21
+ 'chat',
19
22
  'docs',
20
23
  'sign-in',
21
24
  'logout',
22
25
  'quality',
23
- 'autonomous'
26
+ 'autonomous',
27
+ 'add-command', 'add-command-auto-detect'
24
28
  ]);
25
- // Common binaries that definitely indicate a terminal command
26
- const COMMON_COMMANDS = new Set([
29
+ // Commands that are definitely terminal commands (not ambiguous with natural language)
30
+ const DEFINITE_COMMANDS = new Set([
27
31
  // Package Managers
28
- 'npm', 'yarn', 'pnpm', 'bun', 'npx', 'gem', 'pip', 'pip3', 'conda', 'cargo', 'go', 'composer', 'mvn', 'gradle',
32
+ 'npm', 'yarn', 'pnpm', 'bun', 'npx', 'gem', 'pip', 'pip3', 'conda', 'cargo', 'composer', 'mvn', 'gradle',
29
33
  // Version Control
30
34
  'git', 'svn', 'hg', 'gh',
31
- // File Operations
32
- 'ls', 'cd', 'pwd', 'mkdir', 'rm', 'cp', 'mv', 'touch', 'cat', 'less', 'more', 'head', 'tail', 'code',
33
- // Editors (must match INTERACTIVE_EDITORS in editor-utils.ts)
34
- 'vim', 'nvim', 'vi', 'nano', 'emacs', 'micro', 'helix', 'hx', 'pico', 'joe', 'ne', 'mcedit',
35
+ // File Operations (non-ambiguous)
36
+ 'ls', 'cd', 'pwd', 'mkdir', 'rm', 'cp', 'mv', 'cat', 'less', 'more', 'chmod', 'chown', 'chgrp', 'ln',
37
+ // Editors
38
+ 'vim', 'nvim', 'vi', 'nano', 'emacs', 'micro', 'helix', 'hx', 'pico', 'joe', 'ne', 'mcedit', 'code',
35
39
  // System / Process
36
- 'ps', 'kill', 'killall', 'top', 'htop', 'btop', 'free', 'df', 'du', 'chmod', 'chown', 'chgrp', 'ln', 'whoami', 'su', 'sudo',
40
+ 'ps', 'kill', 'killall', 'htop', 'btop', 'free', 'df', 'du', 'whoami', 'su', 'sudo',
37
41
  // Network
38
42
  'curl', 'wget', 'ssh', 'scp', 'ping', 'telnet', 'nc', 'netstat', 'lsof', 'dig', 'nslookup', 'ip', 'ifconfig', 'traceroute',
39
- // Build / Run
40
- 'make', 'cmake', 'docker', 'docker-compose', 'kubectl', 'node', 'python', 'python3', 'ruby', 'perl', 'php', 'java', 'gcc', 'g++', 'clang',
43
+ // Build / Run (non-ambiguous)
44
+ 'cmake', 'docker', 'docker-compose', 'kubectl', 'python', 'python3', 'ruby', 'perl', 'php', 'java', 'gcc', 'g++', 'clang',
41
45
  // Shell / Subshells
42
- 'echo', 'export', 'alias', 'unalias', 'source', 'env', 'history', 'clear', 'exit', 'date', 'cal', 'man', 'which', 'whereis',
46
+ 'echo', 'env', 'cal',
43
47
  'wsl', 'bash', 'sh', 'zsh', 'fish', 'powershell', 'pwsh', 'cmd',
44
48
  // Archives
45
49
  'tar', 'zip', 'unzip', 'gzip', 'gunzip', '7z', 'rar',
46
- // Search
47
- 'grep', 'find', 'locate', 'sed', 'awk', 'ack', 'ag', 'rg',
50
+ // Search (non-ambiguous)
51
+ 'grep', 'locate', 'sed', 'awk', 'ack', 'ag', 'rg',
48
52
  // Misc
49
- 'tree', 'watch', 'jq', 'yq', 'crontab', 'visudo', 'vipw', 'sudoedit'
53
+ 'jq', 'yq', 'crontab', 'visudo', 'vipw', 'sudoedit',
54
+ // Cloud / DevOps
55
+ 'aws', 'az', 'gcloud', 'terraform', 'ansible', 'kubectl', 'helm', 'vagrant',
56
+ // Database
57
+ 'mysql', 'psql', 'mongo', 'mongod', 'redis-cli', 'sqlite3',
58
+ // Web / Security
59
+ 'openssl', 'certbot', 'nginx', 'apache2', 'httpd',
60
+ // Language runtimes (non-ambiguous)
61
+ 'node', 'deno', 'ts-node', 'tsx', 'esbuild', 'webpack', 'vite', 'rollup', 'parcel',
62
+ // Go
63
+ 'go',
64
+ // Rust
65
+ 'rustc', 'rustup',
66
+ ]);
67
+ // Commands that can also be natural language words - need disambiguation
68
+ const AMBIGUOUS_COMMANDS = new Set([
69
+ 'which', 'make', 'export', 'watch', 'find', 'head', 'tail', 'clear',
70
+ 'test', 'open', 'run', 'start', 'stop', 'touch', 'top', 'man',
71
+ 'date', 'time', 'history', 'alias', 'source', 'tree', 'sort',
72
+ 'diff', 'patch', 'split', 'join', 'cut', 'paste', 'fold', 'fmt',
73
+ 'look', 'spell', 'type', 'set', 'unset', 'wait', 'read', 'print'
50
74
  ]);
51
75
  // Natural language keywords that strongly indicate AI intent
52
76
  const AI_KEYWORDS = new Set([
53
- 'how', 'what', 'why', 'when', 'where', 'who',
54
- 'write', 'create', 'make', 'build', 'generate', 'implement', 'scaffold',
77
+ // Question words
78
+ 'how', 'what', 'why', 'when', 'where', 'who', 'whose', 'whom',
79
+ // Action requests
80
+ 'write', 'create', 'generate', 'implement', 'scaffold', 'design',
55
81
  'explain', 'describe', 'clarify', 'analyze', 'review', 'audit',
56
82
  'fix', 'debug', 'solve', 'correct', 'repair',
57
- 'optimize', 'improve', 'refactor', 'clean', 'format',
58
- 'test', 'verify', 'validate', 'check',
83
+ 'optimize', 'improve', 'refactor', 'format',
84
+ 'verify', 'validate',
59
85
  'translate', 'convert', 'transform',
60
86
  'summarize', 'document', 'comment',
61
87
  'add', 'update', 'change', 'modify', 'remove', 'delete',
62
- 'can', 'could', 'would', 'should',
63
- 'hey', 'hi', 'hello', 'help', 'please'
88
+ // Modal verbs indicating requests
89
+ 'can', 'could', 'would', 'should', 'shall', 'might', 'must',
90
+ // Greetings and polite markers
91
+ 'hey', 'hi', 'hello', 'help', 'please', 'thanks', 'thank',
92
+ // Contextual
93
+ 'show', 'tell', 'give', 'list', 'provide', 'suggest', 'recommend'
94
+ ]);
95
+ // Words that indicate natural language sentence structure
96
+ const NATURAL_LANGUAGE_MARKERS = new Set([
97
+ // Articles
98
+ 'a', 'an', 'the',
99
+ // Pronouns
100
+ 'i', 'me', 'my', 'mine', 'you', 'your', 'yours', 'he', 'she', 'it', 'we', 'they',
101
+ 'this', 'that', 'these', 'those',
102
+ // Prepositions commonly used in requests
103
+ 'for', 'with', 'about', 'from', 'into', 'through', 'during', 'before', 'after',
104
+ // Conjunctions
105
+ 'and', 'but', 'or', 'so', 'because', 'if', 'then', 'while',
106
+ // Common verbs in questions/requests
107
+ 'is', 'are', 'was', 'were', 'be', 'been', 'being',
108
+ 'do', 'does', 'did', 'doing', 'done',
109
+ 'have', 'has', 'had', 'having',
110
+ 'get', 'got', 'getting',
111
+ // Adverbs
112
+ 'here', 'there', 'now', 'just', 'also', 'only', 'even', 'still', 'already'
113
+ ]);
114
+ // Known command + subcommand patterns (command followed by valid subcommand)
115
+ const COMMAND_SUBCOMMANDS = new Map([
116
+ ['git', new Set(['add', 'commit', 'push', 'pull', 'clone', 'checkout', 'branch', 'merge', 'rebase', 'reset', 'stash', 'log', 'diff', 'status', 'init', 'remote', 'fetch', 'tag', 'show', 'rm', 'mv', 'bisect', 'blame', 'cherry-pick', 'revert', 'clean', 'gc', 'reflog', 'worktree', 'submodule', 'config', 'help', 'version'])],
117
+ ['npm', new Set(['install', 'i', 'uninstall', 'un', 'update', 'up', 'run', 'start', 'test', 'build', 'init', 'publish', 'pack', 'link', 'unlink', 'ls', 'list', 'outdated', 'audit', 'cache', 'config', 'help', 'version', 'ci', 'exec', 'create', 'set-script', 'pkg', 'dedupe', 'prune', 'shrinkwrap', 'adduser', 'login', 'logout', 'whoami', 'token', 'owner', 'access', 'team', 'deprecate', 'unpublish', 'dist-tag', 'view', 'search', 'doctor', 'explain', 'find-dupes', 'fund', 'hook', 'org', 'ping', 'prefix', 'profile', 'rebuild', 'repo', 'root', 'star', 'stars', 'unstar', 'bugs', 'docs', 'edit', 'explore'])],
118
+ ['yarn', new Set(['add', 'remove', 'install', 'run', 'start', 'test', 'build', 'init', 'publish', 'link', 'unlink', 'list', 'outdated', 'audit', 'cache', 'config', 'help', 'version', 'upgrade', 'upgrade-interactive', 'why', 'workspaces', 'set', 'create', 'dlx', 'pack', 'dedupe', 'info'])],
119
+ ['pnpm', new Set(['add', 'remove', 'install', 'i', 'run', 'start', 'test', 'build', 'init', 'publish', 'link', 'unlink', 'list', 'ls', 'outdated', 'audit', 'store', 'config', 'help', 'version', 'update', 'up', 'why', 'dlx', 'create', 'exec', 'fetch', 'dedupe', 'patch', 'prune', 'rebuild'])],
120
+ ['docker', new Set(['run', 'exec', 'build', 'pull', 'push', 'images', 'ps', 'stop', 'start', 'restart', 'rm', 'rmi', 'logs', 'inspect', 'network', 'volume', 'compose', 'system', 'container', 'image', 'login', 'logout', 'tag', 'save', 'load', 'export', 'import', 'commit', 'cp', 'create', 'diff', 'events', 'history', 'info', 'kill', 'pause', 'unpause', 'port', 'rename', 'stats', 'top', 'update', 'wait', 'attach', 'builder', 'buildx', 'config', 'context', 'manifest', 'plugin', 'search', 'secret', 'service', 'stack', 'swarm', 'trust', 'version'])],
121
+ ['kubectl', new Set(['get', 'describe', 'create', 'apply', 'delete', 'edit', 'logs', 'exec', 'port-forward', 'proxy', 'run', 'expose', 'scale', 'rollout', 'set', 'explain', 'cluster-info', 'top', 'cordon', 'uncordon', 'drain', 'taint', 'label', 'annotate', 'config', 'cp', 'attach', 'auth', 'autoscale', 'certificate', 'completion', 'debug', 'diff', 'kustomize', 'patch', 'plugin', 'replace', 'version', 'wait', 'api-resources', 'api-versions'])],
122
+ ['go', new Set(['build', 'run', 'test', 'get', 'install', 'mod', 'fmt', 'vet', 'generate', 'clean', 'env', 'version', 'list', 'work', 'doc', 'fix', 'tool', 'bug'])],
123
+ ['cargo', new Set(['build', 'run', 'test', 'new', 'init', 'add', 'remove', 'update', 'search', 'publish', 'install', 'uninstall', 'check', 'bench', 'doc', 'clean', 'fetch', 'fix', 'fmt', 'clippy', 'tree', 'vendor', 'verify-project', 'version', 'yank', 'help', 'login', 'logout', 'owner', 'package', 'generate-lockfile', 'locate-project', 'metadata', 'pkgid', 'read-manifest', 'report'])],
124
+ ['pip', new Set(['install', 'uninstall', 'download', 'freeze', 'list', 'show', 'search', 'wheel', 'hash', 'check', 'config', 'cache', 'index', 'debug', 'help', 'completion'])],
125
+ ['pip3', new Set(['install', 'uninstall', 'download', 'freeze', 'list', 'show', 'search', 'wheel', 'hash', 'check', 'config', 'cache', 'index', 'debug', 'help', 'completion'])],
126
+ ['aws', new Set(['s3', 'ec2', 'lambda', 'iam', 'rds', 'dynamodb', 'cloudformation', 'ecs', 'eks', 'sns', 'sqs', 'cloudwatch', 'route53', 'apigateway', 'cognito', 'secretsmanager', 'ssm', 'sts', 'configure', 'help'])],
127
+ ['az', new Set(['login', 'logout', 'account', 'group', 'vm', 'storage', 'network', 'webapp', 'functionapp', 'aks', 'acr', 'sql', 'cosmosdb', 'keyvault', 'monitor', 'resource', 'role', 'ad', 'configure', 'help', 'version'])],
128
+ ['gcloud', new Set(['auth', 'config', 'compute', 'container', 'functions', 'run', 'app', 'sql', 'storage', 'pubsub', 'iam', 'projects', 'services', 'builds', 'deploy', 'components', 'help', 'version', 'init', 'info'])],
129
+ ['terraform', new Set(['init', 'plan', 'apply', 'destroy', 'validate', 'fmt', 'show', 'output', 'refresh', 'import', 'state', 'workspace', 'providers', 'graph', 'taint', 'untaint', 'console', 'force-unlock', 'get', 'login', 'logout', 'version', 'help'])],
130
+ ['make', new Set(['all', 'build', 'clean', 'install', 'uninstall', 'test', 'check', 'dist', 'distclean', 'help'])],
131
+ ['find', new Set([])], // find uses expressions, not subcommands
132
+ ['which', new Set([])], // which doesn't have subcommands
64
133
  ]);
65
134
  /**
66
- * Detects the intent of the user input using local heuristics.
135
+ * Check if the input looks like a natural language sentence
136
+ */
137
+ function looksLikeNaturalLanguage(words) {
138
+ if (words.length < 2)
139
+ return false;
140
+ const lowerWords = words.map(w => w.toLowerCase());
141
+ // Count natural language markers
142
+ let markerCount = 0;
143
+ for (const word of lowerWords) {
144
+ if (NATURAL_LANGUAGE_MARKERS.has(word)) {
145
+ markerCount++;
146
+ }
147
+ }
148
+ // If more than 30% of words are natural language markers, it's likely natural language
149
+ if (markerCount >= Math.ceil(words.length * 0.3)) {
150
+ return true;
151
+ }
152
+ // Check for common natural language patterns
153
+ // Pattern: verb + article (e.g., "make a", "create the", "find the")
154
+ if (lowerWords.length >= 2 && ['a', 'an', 'the', 'me', 'my', 'some', 'any'].includes(lowerWords[1])) {
155
+ return true;
156
+ }
157
+ // Pattern: question word + verb/article (e.g., "which libraries have")
158
+ if (lowerWords.length >= 3 &&
159
+ AMBIGUOUS_COMMANDS.has(lowerWords[0]) &&
160
+ NATURAL_LANGUAGE_MARKERS.has(lowerWords[1])) {
161
+ return true;
162
+ }
163
+ // Pattern: contains "i" as a word (pronoun)
164
+ if (lowerWords.includes('i') && lowerWords.indexOf('i') > 0) {
165
+ return true;
166
+ }
167
+ // Pattern: long phrase with multiple natural language markers scattered
168
+ if (words.length >= 4 && markerCount >= 2) {
169
+ return true;
170
+ }
171
+ return false;
172
+ }
173
+ /**
174
+ * Check if input has strong command syntax indicators
175
+ */
176
+ function hasCommandSyntax(input, words) {
177
+ // Flags: -f, --flag (must be preceded by space)
178
+ const hasFlags = /\s-[a-zA-Z]|\s--[a-zA-Z]/.test(input);
179
+ // Operators: |, >, >>, <, &&, ||, ;
180
+ const hasOperators = /(\s\|\s)|(\s>\s)|(\s>>\s)|(\s<\s)|(\s&&\s)|(\s\|\|\s)|(;)/.test(input);
181
+ // Variable assignment: VAR=val (at start or after space)
182
+ const hasVarAssign = /^[a-zA-Z_][a-zA-Z0-9_]*=[^ ]/.test(input) || /\s[a-zA-Z_][a-zA-Z0-9_]*=[^ ]/.test(input);
183
+ // Quoted arguments that look like command arguments (e.g., -m "message")
184
+ const hasQuotedWithFlag = /\s-[a-zA-Z]+\s+["']/.test(input) || /\s--[a-zA-Z-]+[=\s]+["']/.test(input);
185
+ // Path patterns (absolute paths or ./ or ../)
186
+ const hasPathPattern = /^[.~]?\/|^\.\.\/|\s[.~]?\/|\s\.\.\//.test(input);
187
+ // Redirect to/from file
188
+ const hasFileRedirect = /[<>]\s*[a-zA-Z0-9_./-]+/.test(input);
189
+ // Environment variable usage
190
+ const hasEnvVar = /\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{[^}]+\}/.test(input);
191
+ // Check for known command + subcommand pattern
192
+ if (words.length >= 2) {
193
+ const firstWord = words[0].toLowerCase();
194
+ const secondWord = words[1].toLowerCase();
195
+ const subcommands = COMMAND_SUBCOMMANDS.get(firstWord);
196
+ if (subcommands && subcommands.has(secondWord)) {
197
+ return true;
198
+ }
199
+ }
200
+ return hasFlags || hasOperators || hasVarAssign || hasQuotedWithFlag || hasPathPattern || hasFileRedirect || hasEnvVar;
201
+ }
202
+ /**
203
+ * Disambiguate ambiguous commands based on context
204
+ */
205
+ function disambiguateCommand(input, words) {
206
+ const firstWord = words[0].toLowerCase();
207
+ // If it has command syntax, it's definitely a command
208
+ if (hasCommandSyntax(input, words)) {
209
+ return 'command';
210
+ }
211
+ // If it looks like natural language, it's AI
212
+ if (looksLikeNaturalLanguage(words)) {
213
+ return 'ai';
214
+ }
215
+ // Special case for 'make' - check for Makefile targets vs natural language
216
+ if (firstWord === 'make') {
217
+ // "make build", "make clean", "make all" - valid Makefile targets
218
+ const makeSubcommands = COMMAND_SUBCOMMANDS.get('make');
219
+ if (words.length >= 2 && makeSubcommands?.has(words[1].toLowerCase())) {
220
+ return 'command';
221
+ }
222
+ // "make something" where something is a single word could be a target
223
+ if (words.length === 2 && /^[a-z0-9_-]+$/i.test(words[1])) {
224
+ return 'command';
225
+ }
226
+ // Otherwise, likely natural language ("make it work", "make a file")
227
+ return 'ai';
228
+ }
229
+ // Special case for 'which' - almost always a command when alone or with one arg
230
+ if (firstWord === 'which') {
231
+ // "which node" - valid command
232
+ if (words.length === 2 && /^[a-z0-9_.-]+$/i.test(words[1])) {
233
+ return 'command';
234
+ }
235
+ // "which libraries have I used" - natural language
236
+ if (words.length > 2) {
237
+ return 'ai';
238
+ }
239
+ }
240
+ // Special case for 'find' - needs path or expression flags
241
+ if (firstWord === 'find') {
242
+ // "find . -name" or "find /path" - command
243
+ if (words.length >= 2 && (words[1].startsWith('.') || words[1].startsWith('/') || words[1].startsWith('-'))) {
244
+ return 'command';
245
+ }
246
+ // "find all bugs" - natural language
247
+ if (words.length > 2) {
248
+ return 'ai';
249
+ }
250
+ }
251
+ // Special case for 'export' - needs assignment
252
+ if (firstWord === 'export') {
253
+ // "export VAR=value" or "export PATH" - command
254
+ if (words.length >= 2 && /^[A-Z_][A-Z0-9_]*/.test(words[1])) {
255
+ return 'command';
256
+ }
257
+ // "export the data" - natural language
258
+ return 'ai';
259
+ }
260
+ // Special case for 'run', 'start', 'stop', 'test'
261
+ if (['run', 'start', 'stop', 'test'].includes(firstWord)) {
262
+ // These are more often natural language unless they have specific patterns
263
+ // "run npm install" - could be shorthand for script runner
264
+ // "run this code" - natural language
265
+ // "start the server" - ambiguous but likely natural language
266
+ // "test the api" - natural language
267
+ if (words.length >= 2) {
268
+ // If followed by a known command, treat as command
269
+ if (DEFINITE_COMMANDS.has(words[1].toLowerCase())) {
270
+ return 'command';
271
+ }
272
+ // If followed by natural language markers, treat as AI
273
+ if (NATURAL_LANGUAGE_MARKERS.has(words[1].toLowerCase())) {
274
+ return 'ai';
275
+ }
276
+ }
277
+ // Default to AI for these ambiguous words
278
+ return 'ai';
279
+ }
280
+ // For other ambiguous commands:
281
+ // Single word - could be a command, but safer to default to command (can be overridden)
282
+ if (words.length === 1) {
283
+ return 'command';
284
+ }
285
+ // Two words where second is a simple identifier - likely command
286
+ if (words.length === 2 && /^[a-z0-9_.-]+$/i.test(words[1]) && !NATURAL_LANGUAGE_MARKERS.has(words[1].toLowerCase())) {
287
+ return 'command';
288
+ }
289
+ // Default to AI for multi-word ambiguous commands
290
+ return 'ai';
291
+ }
292
+ /**
293
+ * Detects the intent of the user input using intelligent heuristics.
67
294
  *
68
- * Logic:
295
+ * Logic Priority:
69
296
  * 1. Slash Commands: If starts with '/', check if valid command -> AI
70
297
  * 2. Prefixes: '?' -> AI, '.', '/', '$', '~' -> Command
71
- * 3. Known Binaries: First word matches common commands -> Command
72
- * 4. Syntax Patterns: Flags (--), pipes (|), redirects (>), chaining (&&, ||, ;) -> Command
73
- * 5. AI Indicators: Starts with keywords, ends with '?' -> AI
74
- * 6. Fallback:
75
- * - If it looks like a file path -> Command
76
- * - If it's a sentence (multiple words) -> AI
77
- * - Default -> AI (Safer to assume chat if unsure)
298
+ * 3. Strong AI Indicators: Question marks, AI keywords
299
+ * 4. Strong Command Syntax: Flags, pipes, redirects, quotes, env vars
300
+ * 5. Definite Commands: Known command binaries that aren't ambiguous
301
+ * 6. Ambiguous Command Disambiguation: Context-aware analysis
302
+ * 7. Natural Language Detection: Sentence structure analysis
303
+ * 8. Fallback: Multi-word without command syntax -> AI
78
304
  *
79
305
  * @param input The user input string
80
306
  * @returns 'command' | 'ai'
@@ -99,66 +325,64 @@ export function detectIntent(input) {
99
325
  return 'ai';
100
326
  if (trimmed.startsWith('.') || trimmed.startsWith('$') || trimmed.startsWith('~'))
101
327
  return 'command';
102
- // Check 2 - Known Binaries
328
+ // Parse words for analysis
103
329
  const words = trimmed.split(/\s+/);
104
330
  const firstWord = words[0].toLowerCase();
105
- if (COMMON_COMMANDS.has(firstWord)) {
331
+ // Check 2 - Strong AI Indicators (check BEFORE command matching)
332
+ const isQuestion = trimmed.endsWith('?');
333
+ const startsWithAIKeyword = AI_KEYWORDS.has(firstWord);
334
+ if (startsWithAIKeyword) {
335
+ // If starts with AI keyword, it's almost always AI
336
+ // Exception: if it has strong command syntax, it might still be a command
337
+ if (!hasCommandSyntax(trimmed, words)) {
338
+ return 'ai';
339
+ }
340
+ }
341
+ if (isQuestion) {
342
+ // Questions are almost always AI
343
+ // Exception: rare case of command with ? (like "ls ?*.txt" - but this is uncommon)
344
+ if (!hasCommandSyntax(trimmed, words)) {
345
+ return 'ai';
346
+ }
347
+ }
348
+ // Check 3 - Strong Command Syntax (before command name matching)
349
+ if (hasCommandSyntax(trimmed, words)) {
106
350
  return 'command';
107
351
  }
108
- // Check 3 - Strong Command Syntax
109
- // Flags: -f, --flag (must be preceded by space)
110
- const hasFlags = /\s-[a-zA-Z]|\s--[a-zA-Z]/.test(trimmed);
111
- // Operators: |, >, >>, <, &&, ||, ;
112
- const hasOperators = /(\s\|\s)|(\s>\s)|(\s>>\s)|(\s<\s)|(\s&&\s)|(\s\|\|\s)|(;)/.test(trimmed);
113
- // Variable assignment: VAR=val (at start or after space)
114
- const hasVarAssign = /^[a-zA-Z_][a-zA-Z0-9_]*=[^ ]/.test(trimmed) || /\s[a-zA-Z_][a-zA-Z0-9_]*=[^ ]/.test(trimmed);
115
- if (hasFlags || hasOperators || hasVarAssign) {
352
+ // Check 4 - Definite Commands (non-ambiguous command names)
353
+ if (DEFINITE_COMMANDS.has(firstWord)) {
116
354
  return 'command';
117
355
  }
118
- // Check 4 - AI Indicators
119
- const isQuestion = trimmed.endsWith('?');
120
- const startsWithKeyword = AI_KEYWORDS.has(firstWord);
121
- if (startsWithKeyword || isQuestion) {
122
- return 'ai';
356
+ // Check 4.5 - Custom Commands (user-defined terminal commands)
357
+ // Load custom commands synchronously for fast detection
358
+ const customCommandsManager = CustomCommandsManager.getInstance();
359
+ customCommandsManager.loadSync();
360
+ if (customCommandsManager.hasCommand(firstWord)) {
361
+ return 'command';
362
+ }
363
+ // Check 5 - Ambiguous Commands (need disambiguation)
364
+ if (AMBIGUOUS_COMMANDS.has(firstWord)) {
365
+ return disambiguateCommand(trimmed, words);
123
366
  }
124
- // Check 5 - Path-like strings
367
+ // Check 6 - Path-like strings
125
368
  // If it contains slashes and no spaces, it might be a path execution
126
369
  if ((trimmed.includes('/') || trimmed.includes('\\')) && !trimmed.includes(' ')) {
127
370
  return 'command';
128
371
  }
129
- // Check 6 - Fallback Heuristics
372
+ // Check 7 - Natural Language Detection for unknown first words
373
+ if (looksLikeNaturalLanguage(words)) {
374
+ return 'ai';
375
+ }
376
+ // Check 8 - Fallback Heuristics
130
377
  // If it's a single word and NOT a known command/keyword:
131
- // "foo" -> Could be a custom script.
132
- // But "hello" -> AI.
133
- // If it's mixed case or has numbers, maybe command/script? "runScript.sh"
134
378
  if (words.length === 1) {
135
379
  if (trimmed.includes('.'))
136
380
  return 'command'; // script.sh, main.py
137
- // If it's all lowercase alpha, and not in our list, it's ambiguous.
138
- // User wants no ambiguous.
139
- // "centaurus" -> command?
140
- // "thanks" -> AI
141
- // Let's lean towards AI for unknown single words unless they look "technical"
381
+ // Unknown single word - default to AI (safer for chat)
142
382
  return 'ai';
143
383
  }
144
- // Multiple words, no flags, no operators, no keywords.
145
- // "install react" -> "npm install react" (Command) or "how to install react" (AI)?
146
- // "install" is not in AI keywords (I added it to commands? No, "npm" is command).
147
- // If I type "git status", "git" catches it.
148
- // If I type "my script param", "my" is unknown.
149
- // If I type "make a button", "make" is a command! But "make a button" is AI.
150
- // Special Case: "make"
151
- if (firstWord === 'make') {
152
- // "make build" -> Command
153
- // "make a file" -> AI
154
- // Heuristic: "make" followed by "a", "an", "the", "me" -> AI
155
- const secondWord = words[1]?.toLowerCase();
156
- if (['a', 'an', 'the', 'me', 'it'].includes(secondWord)) {
157
- return 'ai';
158
- }
159
- return 'command';
160
- }
161
- // Default to AI for multi-word sentences
384
+ // Multiple words, no flags, no operators, no keywords, not natural language pattern
385
+ // This is truly ambiguous - default to AI (safer for chat assistant)
162
386
  return 'ai';
163
387
  }
164
388
  //# sourceMappingURL=input-classifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-classifier.js","sourceRoot":"","sources":["../../src/utils/input-classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input-classifier.js","sourceRoot":"","sources":["../../src/utils/input-classifier.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-output.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+CH;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAwFzD"}
1
+ {"version":3,"file":"terminal-output.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+CH;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkMzD"}