@shareai-lab/kode 1.1.14 → 1.1.16-dev.2
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/cli.js +77 -82
- package/dist/entrypoints/cli.js +59 -38
- package/dist/entrypoints/cli.js.map +3 -3
- package/dist/index.js +5 -26
- package/dist/package.json +4 -1
- package/package.json +11 -104
- package/dist/test/testAdapters.js +0 -88
- package/dist/test/testAdapters.js.map +0 -1
- package/src/ProjectOnboarding.tsx +0 -198
- package/src/Tool.ts +0 -83
- package/src/commands/agents.tsx +0 -3416
- package/src/commands/approvedTools.ts +0 -53
- package/src/commands/bug.tsx +0 -20
- package/src/commands/clear.ts +0 -43
- package/src/commands/compact.ts +0 -120
- package/src/commands/config.tsx +0 -19
- package/src/commands/cost.ts +0 -18
- package/src/commands/ctx_viz.ts +0 -209
- package/src/commands/doctor.ts +0 -24
- package/src/commands/help.tsx +0 -19
- package/src/commands/init.ts +0 -37
- package/src/commands/listen.ts +0 -42
- package/src/commands/login.tsx +0 -51
- package/src/commands/logout.tsx +0 -40
- package/src/commands/mcp.ts +0 -41
- package/src/commands/model.tsx +0 -40
- package/src/commands/modelstatus.tsx +0 -20
- package/src/commands/onboarding.tsx +0 -34
- package/src/commands/pr_comments.ts +0 -59
- package/src/commands/refreshCommands.ts +0 -54
- package/src/commands/release-notes.ts +0 -34
- package/src/commands/resume.tsx +0 -31
- package/src/commands/review.ts +0 -49
- package/src/commands/terminalSetup.ts +0 -221
- package/src/commands.ts +0 -139
- package/src/components/ApproveApiKey.tsx +0 -93
- package/src/components/AsciiLogo.tsx +0 -13
- package/src/components/AutoUpdater.tsx +0 -148
- package/src/components/Bug.tsx +0 -367
- package/src/components/Config.tsx +0 -293
- package/src/components/ConsoleOAuthFlow.tsx +0 -327
- package/src/components/Cost.tsx +0 -23
- package/src/components/CostThresholdDialog.tsx +0 -46
- package/src/components/CustomSelect/option-map.ts +0 -42
- package/src/components/CustomSelect/select-option.tsx +0 -78
- package/src/components/CustomSelect/select.tsx +0 -152
- package/src/components/CustomSelect/theme.ts +0 -45
- package/src/components/CustomSelect/use-select-state.ts +0 -414
- package/src/components/CustomSelect/use-select.ts +0 -35
- package/src/components/FallbackToolUseRejectedMessage.tsx +0 -15
- package/src/components/FileEditToolUpdatedMessage.tsx +0 -66
- package/src/components/Help.tsx +0 -215
- package/src/components/HighlightedCode.tsx +0 -33
- package/src/components/InvalidConfigDialog.tsx +0 -113
- package/src/components/Link.tsx +0 -32
- package/src/components/LogSelector.tsx +0 -86
- package/src/components/Logo.tsx +0 -170
- package/src/components/MCPServerApprovalDialog.tsx +0 -100
- package/src/components/MCPServerDialogCopy.tsx +0 -25
- package/src/components/MCPServerMultiselectDialog.tsx +0 -109
- package/src/components/Message.tsx +0 -221
- package/src/components/MessageResponse.tsx +0 -15
- package/src/components/MessageSelector.tsx +0 -211
- package/src/components/ModeIndicator.tsx +0 -88
- package/src/components/ModelConfig.tsx +0 -301
- package/src/components/ModelListManager.tsx +0 -227
- package/src/components/ModelSelector.tsx +0 -3387
- package/src/components/ModelStatusDisplay.tsx +0 -230
- package/src/components/Onboarding.tsx +0 -274
- package/src/components/PressEnterToContinue.tsx +0 -11
- package/src/components/PromptInput.tsx +0 -760
- package/src/components/SentryErrorBoundary.ts +0 -39
- package/src/components/Spinner.tsx +0 -129
- package/src/components/StickerRequestForm.tsx +0 -16
- package/src/components/StructuredDiff.tsx +0 -191
- package/src/components/TextInput.tsx +0 -259
- package/src/components/TodoItem.tsx +0 -47
- package/src/components/TokenWarning.tsx +0 -31
- package/src/components/ToolUseLoader.tsx +0 -40
- package/src/components/TrustDialog.tsx +0 -106
- package/src/components/binary-feedback/BinaryFeedback.tsx +0 -63
- package/src/components/binary-feedback/BinaryFeedbackOption.tsx +0 -111
- package/src/components/binary-feedback/BinaryFeedbackView.tsx +0 -172
- package/src/components/binary-feedback/utils.ts +0 -220
- package/src/components/messages/AssistantBashOutputMessage.tsx +0 -22
- package/src/components/messages/AssistantLocalCommandOutputMessage.tsx +0 -49
- package/src/components/messages/AssistantRedactedThinkingMessage.tsx +0 -19
- package/src/components/messages/AssistantTextMessage.tsx +0 -144
- package/src/components/messages/AssistantThinkingMessage.tsx +0 -40
- package/src/components/messages/AssistantToolUseMessage.tsx +0 -132
- package/src/components/messages/TaskProgressMessage.tsx +0 -32
- package/src/components/messages/TaskToolMessage.tsx +0 -58
- package/src/components/messages/UserBashInputMessage.tsx +0 -28
- package/src/components/messages/UserCommandMessage.tsx +0 -30
- package/src/components/messages/UserKodingInputMessage.tsx +0 -28
- package/src/components/messages/UserPromptMessage.tsx +0 -35
- package/src/components/messages/UserTextMessage.tsx +0 -39
- package/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +0 -12
- package/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +0 -36
- package/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +0 -31
- package/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +0 -57
- package/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +0 -35
- package/src/components/messages/UserToolResultMessage/utils.tsx +0 -56
- package/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +0 -121
- package/src/components/permissions/FallbackPermissionRequest.tsx +0 -153
- package/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +0 -182
- package/src/components/permissions/FileEditPermissionRequest/FileEditToolDiff.tsx +0 -77
- package/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +0 -164
- package/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +0 -83
- package/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +0 -240
- package/src/components/permissions/PermissionRequest.tsx +0 -101
- package/src/components/permissions/PermissionRequestTitle.tsx +0 -69
- package/src/components/permissions/hooks.ts +0 -44
- package/src/components/permissions/toolUseOptions.ts +0 -59
- package/src/components/permissions/utils.ts +0 -23
- package/src/constants/betas.ts +0 -5
- package/src/constants/claude-asterisk-ascii-art.tsx +0 -238
- package/src/constants/figures.ts +0 -4
- package/src/constants/keys.ts +0 -3
- package/src/constants/macros.ts +0 -11
- package/src/constants/modelCapabilities.ts +0 -179
- package/src/constants/models.ts +0 -1025
- package/src/constants/oauth.ts +0 -18
- package/src/constants/product.ts +0 -17
- package/src/constants/prompts.ts +0 -168
- package/src/constants/releaseNotes.ts +0 -7
- package/src/context/PermissionContext.tsx +0 -149
- package/src/context.ts +0 -278
- package/src/cost-tracker.ts +0 -84
- package/src/entrypoints/cli.tsx +0 -1561
- package/src/entrypoints/mcp.ts +0 -175
- package/src/history.ts +0 -25
- package/src/hooks/useApiKeyVerification.ts +0 -59
- package/src/hooks/useArrowKeyHistory.ts +0 -55
- package/src/hooks/useCanUseTool.ts +0 -138
- package/src/hooks/useCancelRequest.ts +0 -39
- package/src/hooks/useDoublePress.ts +0 -41
- package/src/hooks/useExitOnCtrlCD.ts +0 -31
- package/src/hooks/useInterval.ts +0 -25
- package/src/hooks/useLogMessages.ts +0 -16
- package/src/hooks/useLogStartupTime.ts +0 -12
- package/src/hooks/useNotifyAfterTimeout.ts +0 -65
- package/src/hooks/usePermissionRequestLogging.ts +0 -44
- package/src/hooks/useTerminalSize.ts +0 -49
- package/src/hooks/useTextInput.ts +0 -317
- package/src/hooks/useUnifiedCompletion.ts +0 -1405
- package/src/index.ts +0 -34
- package/src/messages.ts +0 -38
- package/src/permissions.ts +0 -268
- package/src/query.ts +0 -720
- package/src/screens/ConfigureNpmPrefix.tsx +0 -197
- package/src/screens/Doctor.tsx +0 -219
- package/src/screens/LogList.tsx +0 -68
- package/src/screens/REPL.tsx +0 -813
- package/src/screens/ResumeConversation.tsx +0 -68
- package/src/services/adapters/base.ts +0 -38
- package/src/services/adapters/chatCompletions.ts +0 -90
- package/src/services/adapters/responsesAPI.ts +0 -170
- package/src/services/browserMocks.ts +0 -66
- package/src/services/claude.ts +0 -2197
- package/src/services/customCommands.ts +0 -704
- package/src/services/fileFreshness.ts +0 -377
- package/src/services/gpt5ConnectionTest.ts +0 -340
- package/src/services/mcpClient.ts +0 -564
- package/src/services/mcpServerApproval.tsx +0 -50
- package/src/services/mentionProcessor.ts +0 -273
- package/src/services/modelAdapterFactory.ts +0 -69
- package/src/services/notifier.ts +0 -40
- package/src/services/oauth.ts +0 -357
- package/src/services/openai.ts +0 -1359
- package/src/services/responseStateManager.ts +0 -90
- package/src/services/sentry.ts +0 -3
- package/src/services/statsig.ts +0 -172
- package/src/services/statsigStorage.ts +0 -86
- package/src/services/systemReminder.ts +0 -507
- package/src/services/vcr.ts +0 -161
- package/src/test/testAdapters.ts +0 -96
- package/src/tools/ArchitectTool/ArchitectTool.tsx +0 -135
- package/src/tools/ArchitectTool/prompt.ts +0 -15
- package/src/tools/AskExpertModelTool/AskExpertModelTool.tsx +0 -576
- package/src/tools/BashTool/BashTool.tsx +0 -243
- package/src/tools/BashTool/BashToolResultMessage.tsx +0 -38
- package/src/tools/BashTool/OutputLine.tsx +0 -49
- package/src/tools/BashTool/prompt.ts +0 -174
- package/src/tools/BashTool/utils.ts +0 -56
- package/src/tools/FileEditTool/FileEditTool.tsx +0 -319
- package/src/tools/FileEditTool/prompt.ts +0 -51
- package/src/tools/FileEditTool/utils.ts +0 -58
- package/src/tools/FileReadTool/FileReadTool.tsx +0 -404
- package/src/tools/FileReadTool/prompt.ts +0 -7
- package/src/tools/FileWriteTool/FileWriteTool.tsx +0 -301
- package/src/tools/FileWriteTool/prompt.ts +0 -10
- package/src/tools/GlobTool/GlobTool.tsx +0 -119
- package/src/tools/GlobTool/prompt.ts +0 -8
- package/src/tools/GrepTool/GrepTool.tsx +0 -147
- package/src/tools/GrepTool/prompt.ts +0 -11
- package/src/tools/MCPTool/MCPTool.tsx +0 -107
- package/src/tools/MCPTool/prompt.ts +0 -3
- package/src/tools/MemoryReadTool/MemoryReadTool.tsx +0 -127
- package/src/tools/MemoryReadTool/prompt.ts +0 -3
- package/src/tools/MemoryWriteTool/MemoryWriteTool.tsx +0 -89
- package/src/tools/MemoryWriteTool/prompt.ts +0 -3
- package/src/tools/MultiEditTool/MultiEditTool.tsx +0 -388
- package/src/tools/MultiEditTool/prompt.ts +0 -45
- package/src/tools/NotebookEditTool/NotebookEditTool.tsx +0 -298
- package/src/tools/NotebookEditTool/prompt.ts +0 -3
- package/src/tools/NotebookReadTool/NotebookReadTool.tsx +0 -258
- package/src/tools/NotebookReadTool/prompt.ts +0 -3
- package/src/tools/StickerRequestTool/StickerRequestTool.tsx +0 -107
- package/src/tools/StickerRequestTool/prompt.ts +0 -19
- package/src/tools/TaskTool/TaskTool.tsx +0 -438
- package/src/tools/TaskTool/constants.ts +0 -1
- package/src/tools/TaskTool/prompt.ts +0 -92
- package/src/tools/ThinkTool/ThinkTool.tsx +0 -54
- package/src/tools/ThinkTool/prompt.ts +0 -12
- package/src/tools/TodoWriteTool/TodoWriteTool.tsx +0 -313
- package/src/tools/TodoWriteTool/prompt.ts +0 -63
- package/src/tools/URLFetcherTool/URLFetcherTool.tsx +0 -178
- package/src/tools/URLFetcherTool/cache.ts +0 -55
- package/src/tools/URLFetcherTool/htmlToMarkdown.ts +0 -55
- package/src/tools/URLFetcherTool/prompt.ts +0 -17
- package/src/tools/WebSearchTool/WebSearchTool.tsx +0 -103
- package/src/tools/WebSearchTool/prompt.ts +0 -13
- package/src/tools/WebSearchTool/searchProviders.ts +0 -66
- package/src/tools/lsTool/lsTool.tsx +0 -272
- package/src/tools/lsTool/prompt.ts +0 -2
- package/src/tools.ts +0 -67
- package/src/types/PermissionMode.ts +0 -120
- package/src/types/RequestContext.ts +0 -72
- package/src/types/common.d.ts +0 -2
- package/src/types/conversation.ts +0 -51
- package/src/types/logs.ts +0 -58
- package/src/types/modelCapabilities.ts +0 -64
- package/src/types/notebook.ts +0 -87
- package/src/utils/Cursor.ts +0 -436
- package/src/utils/PersistentShell.ts +0 -552
- package/src/utils/advancedFuzzyMatcher.ts +0 -290
- package/src/utils/agentLoader.ts +0 -278
- package/src/utils/agentStorage.ts +0 -97
- package/src/utils/array.ts +0 -3
- package/src/utils/ask.tsx +0 -99
- package/src/utils/auth.ts +0 -13
- package/src/utils/autoCompactCore.ts +0 -223
- package/src/utils/autoUpdater.ts +0 -458
- package/src/utils/betas.ts +0 -20
- package/src/utils/browser.ts +0 -14
- package/src/utils/cleanup.ts +0 -72
- package/src/utils/commands.ts +0 -261
- package/src/utils/commonUnixCommands.ts +0 -161
- package/src/utils/config.ts +0 -945
- package/src/utils/conversationRecovery.ts +0 -55
- package/src/utils/debugLogger.ts +0 -1235
- package/src/utils/diff.ts +0 -42
- package/src/utils/env.ts +0 -57
- package/src/utils/errors.ts +0 -21
- package/src/utils/exampleCommands.ts +0 -109
- package/src/utils/execFileNoThrow.ts +0 -51
- package/src/utils/expertChatStorage.ts +0 -136
- package/src/utils/file.ts +0 -405
- package/src/utils/fileRecoveryCore.ts +0 -71
- package/src/utils/format.tsx +0 -44
- package/src/utils/fuzzyMatcher.ts +0 -328
- package/src/utils/generators.ts +0 -62
- package/src/utils/git.ts +0 -92
- package/src/utils/globalLogger.ts +0 -77
- package/src/utils/http.ts +0 -10
- package/src/utils/imagePaste.ts +0 -38
- package/src/utils/json.ts +0 -13
- package/src/utils/log.ts +0 -382
- package/src/utils/markdown.ts +0 -213
- package/src/utils/messageContextManager.ts +0 -294
- package/src/utils/messages.tsx +0 -945
- package/src/utils/model.ts +0 -914
- package/src/utils/permissions/filesystem.ts +0 -127
- package/src/utils/responseState.ts +0 -23
- package/src/utils/ripgrep.ts +0 -167
- package/src/utils/secureFile.ts +0 -564
- package/src/utils/sessionState.ts +0 -49
- package/src/utils/state.ts +0 -25
- package/src/utils/style.ts +0 -29
- package/src/utils/terminal.ts +0 -50
- package/src/utils/theme.ts +0 -127
- package/src/utils/thinking.ts +0 -144
- package/src/utils/todoStorage.ts +0 -431
- package/src/utils/tokens.ts +0 -43
- package/src/utils/toolExecutionController.ts +0 -163
- package/src/utils/unaryLogging.ts +0 -26
- package/src/utils/user.ts +0 -37
- package/src/utils/validate.ts +0 -165
package/cli.js
CHANGED
|
@@ -1,100 +1,95 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const { spawn
|
|
3
|
+
const { spawn } = require('child_process');
|
|
4
4
|
const path = require('path');
|
|
5
5
|
const fs = require('fs');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
* Windows Syntax Error Fix
|
|
9
|
-
*
|
|
10
|
-
* This script is designed to work around common Windows CLI syntax issues:
|
|
11
|
-
* 1. cmd.exe shell syntax limitations
|
|
12
|
-
* 2. Path separator issues (\ vs /)
|
|
13
|
-
* 3. spawn/exec command format differences
|
|
14
|
-
*
|
|
15
|
-
* For most Windows users, the compiled dist/ files should work directly
|
|
16
|
-
* without needing any additional tools like bun or tsx.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
const isWindows = process.platform === 'win32';
|
|
7
|
+
// Prefer dist (pure Node) if available, otherwise try bun, then node+tsx
|
|
20
8
|
const args = process.argv.slice(2);
|
|
21
|
-
|
|
22
|
-
// Windows-safe path construction
|
|
23
9
|
const cliPath = path.join(__dirname, 'src', 'entrypoints', 'cli.tsx');
|
|
24
10
|
const distEntrypoint = path.join(__dirname, 'dist', 'entrypoints', 'cli.js');
|
|
25
|
-
const yogaWasmPath = path.join(__dirname, 'yoga.wasm');
|
|
26
|
-
|
|
27
|
-
// Windows command execution with proper escaping
|
|
28
|
-
function runWindowsSafe(command, cmdArgs = [], env = {}) {
|
|
29
|
-
// Use cmd.exe for Windows to handle shell syntax properly
|
|
30
|
-
const options = {
|
|
31
|
-
stdio: 'inherit',
|
|
32
|
-
windowsHide: true,
|
|
33
|
-
shell: true,
|
|
34
|
-
env: {
|
|
35
|
-
...process.env,
|
|
36
|
-
...env,
|
|
37
|
-
YOGA_WASM_PATH: yogaWasmPath
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
11
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return spawn('cmd', ['/c', fullCommand], options);
|
|
12
|
+
// 1) Run compiled dist with Node if present (Windows-friendly, no bun/tsx needed)
|
|
13
|
+
try {
|
|
14
|
+
if (fs.existsSync(distEntrypoint)) {
|
|
15
|
+
const child = spawn(process.execPath, [distEntrypoint, ...args], {
|
|
16
|
+
stdio: 'inherit',
|
|
17
|
+
env: {
|
|
18
|
+
...process.env,
|
|
19
|
+
YOGA_WASM_PATH: path.join(__dirname, 'yoga.wasm'),
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
child.on('exit', code => process.exit(code || 0));
|
|
23
|
+
child.on('error', () => runWithBunOrTsx());
|
|
24
|
+
return;
|
|
55
25
|
}
|
|
26
|
+
} catch (_) {
|
|
27
|
+
// fallthrough to bun/tsx
|
|
56
28
|
}
|
|
57
29
|
|
|
58
|
-
//
|
|
59
|
-
|
|
30
|
+
// 2) Otherwise, try bun first, then fall back to node+tsx
|
|
31
|
+
runWithBunOrTsx();
|
|
32
|
+
|
|
33
|
+
function runWithBunOrTsx() {
|
|
34
|
+
// Try bun first
|
|
60
35
|
try {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
} catch (err) {
|
|
77
|
-
console.error('❌ Unexpected error:', err.message);
|
|
78
|
-
process.exit(1);
|
|
36
|
+
const { execSync } = require('child_process');
|
|
37
|
+
execSync('bun --version', { stdio: 'ignore' });
|
|
38
|
+
const child = spawn('bun', ['run', cliPath, ...args], {
|
|
39
|
+
stdio: 'inherit',
|
|
40
|
+
env: {
|
|
41
|
+
...process.env,
|
|
42
|
+
YOGA_WASM_PATH: path.join(__dirname, 'yoga.wasm'),
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
child.on('exit', code => process.exit(code || 0));
|
|
46
|
+
child.on('error', () => runWithNodeTsx());
|
|
47
|
+
return;
|
|
48
|
+
} catch {
|
|
49
|
+
// ignore and try tsx path
|
|
79
50
|
}
|
|
80
|
-
}
|
|
81
51
|
|
|
82
|
-
|
|
83
|
-
function handleWindowsError(error) {
|
|
84
|
-
console.error('\n❌ Windows CLI Error');
|
|
85
|
-
console.error('Error:', error.message);
|
|
86
|
-
console.error('\n💡 Solutions for Windows:');
|
|
87
|
-
console.error('1. Install latest Node.js from nodejs.org');
|
|
88
|
-
console.error('2. Use Git Bash (recommended) or Windows Terminal');
|
|
89
|
-
console.error('3. Reinstall: npm install -g @shareai-lab/kode');
|
|
90
|
-
console.error('4. Use WSL (Windows Subsystem for Linux)');
|
|
91
|
-
process.exit(1);
|
|
52
|
+
runWithNodeTsx();
|
|
92
53
|
}
|
|
93
54
|
|
|
94
|
-
|
|
95
|
-
if
|
|
96
|
-
|
|
97
|
-
|
|
55
|
+
function runWithNodeTsx() {
|
|
56
|
+
// Use local tsx installation; if missing, try PATH-resolved tsx
|
|
57
|
+
const binDir = path.join(__dirname, 'node_modules', '.bin')
|
|
58
|
+
const tsxPath = process.platform === 'win32'
|
|
59
|
+
? path.join(binDir, 'tsx.cmd')
|
|
60
|
+
: path.join(binDir, 'tsx')
|
|
61
|
+
|
|
62
|
+
const runPathTsx = () => {
|
|
63
|
+
const child2 = spawn('tsx', [cliPath, ...args], {
|
|
64
|
+
stdio: 'inherit',
|
|
65
|
+
shell: process.platform === 'win32',
|
|
66
|
+
env: {
|
|
67
|
+
...process.env,
|
|
68
|
+
YOGA_WASM_PATH: path.join(__dirname, 'yoga.wasm'),
|
|
69
|
+
TSX_TSCONFIG_PATH: process.platform === 'win32' ? 'noop' : undefined
|
|
70
|
+
},
|
|
71
|
+
})
|
|
72
|
+
child2.on('error', () => {
|
|
73
|
+
console.error('\nError: tsx is required but not found.')
|
|
74
|
+
console.error('Please install tsx globally: npm install -g tsx')
|
|
75
|
+
process.exit(1)
|
|
76
|
+
})
|
|
77
|
+
child2.on('exit', (code2) => process.exit(code2 || 0))
|
|
78
|
+
}
|
|
98
79
|
|
|
99
|
-
|
|
100
|
-
|
|
80
|
+
const child = spawn(tsxPath, [cliPath, ...args], {
|
|
81
|
+
stdio: 'inherit',
|
|
82
|
+
shell: process.platform === 'win32',
|
|
83
|
+
env: {
|
|
84
|
+
...process.env,
|
|
85
|
+
YOGA_WASM_PATH: path.join(__dirname, 'yoga.wasm'),
|
|
86
|
+
TSX_TSCONFIG_PATH: process.platform === 'win32' ? 'noop' : undefined
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
child.on('error', () => runPathTsx())
|
|
91
|
+
child.on('exit', (code) => {
|
|
92
|
+
if (code && code !== 0) return runPathTsx()
|
|
93
|
+
process.exit(code || 0)
|
|
94
|
+
})
|
|
95
|
+
}
|
package/dist/entrypoints/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-warnings=ExperimentalWarning --enable-source-maps
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
4
5
|
import { initSentry } from "../services/sentry.js";
|
|
5
6
|
import { PRODUCT_COMMAND, PRODUCT_NAME } from "../constants/product.js";
|
|
6
7
|
initSentry();
|
|
@@ -21,7 +22,7 @@ import * as dontcare from "@anthropic-ai/sdk/shims/node";
|
|
|
21
22
|
Object.keys(dontcare);
|
|
22
23
|
import React from "react";
|
|
23
24
|
import { ReadStream } from "tty";
|
|
24
|
-
import { openSync
|
|
25
|
+
import { openSync } from "fs";
|
|
25
26
|
import { addToHistory } from "../history.js";
|
|
26
27
|
import { getContext, setContext, removeContext } from "../context.js";
|
|
27
28
|
import { Command } from "@commander-js/extra-typings";
|
|
@@ -101,9 +102,9 @@ async function showSetupScreens(safeMode, print) {
|
|
|
101
102
|
const config = getGlobalConfig();
|
|
102
103
|
if (!config.theme || !config.hasCompletedOnboarding) {
|
|
103
104
|
await clearTerminal();
|
|
104
|
-
const { render
|
|
105
|
+
const { render } = await import("ink");
|
|
105
106
|
await new Promise((resolve) => {
|
|
106
|
-
|
|
107
|
+
render(
|
|
107
108
|
/* @__PURE__ */ React.createElement(
|
|
108
109
|
Onboarding,
|
|
109
110
|
{
|
|
@@ -127,9 +128,12 @@ async function showSetupScreens(safeMode, print) {
|
|
|
127
128
|
grantReadPermissionForOriginalDir();
|
|
128
129
|
resolve();
|
|
129
130
|
};
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
(async () => {
|
|
132
|
+
const { render } = await import("ink");
|
|
133
|
+
render(/* @__PURE__ */ React.createElement(TrustDialog, { onDone }), {
|
|
134
|
+
exitOnCtrlC: false
|
|
135
|
+
});
|
|
136
|
+
})();
|
|
133
137
|
});
|
|
134
138
|
}
|
|
135
139
|
if (process.env.USER_TYPE === "ant") {
|
|
@@ -195,7 +199,11 @@ async function setup(cwd2, safeMode) {
|
|
|
195
199
|
if (autoUpdaterStatus === "not_configured") {
|
|
196
200
|
logEvent("tengu_setup_auto_updater_not_configured", {});
|
|
197
201
|
await new Promise((resolve) => {
|
|
198
|
-
|
|
202
|
+
;
|
|
203
|
+
(async () => {
|
|
204
|
+
const { render } = await import("ink");
|
|
205
|
+
render(/* @__PURE__ */ React.createElement(Doctor, { onDone: () => resolve() }));
|
|
206
|
+
})();
|
|
199
207
|
});
|
|
200
208
|
}
|
|
201
209
|
}
|
|
@@ -321,9 +329,9 @@ ${commandList}`
|
|
|
321
329
|
return { version: null, commands: null };
|
|
322
330
|
})();
|
|
323
331
|
{
|
|
324
|
-
const { render
|
|
332
|
+
const { render } = await import("ink");
|
|
325
333
|
const { REPL } = await import("../screens/REPL.js");
|
|
326
|
-
|
|
334
|
+
render(
|
|
327
335
|
/* @__PURE__ */ React.createElement(
|
|
328
336
|
REPL,
|
|
329
337
|
{
|
|
@@ -725,7 +733,7 @@ ${commandList}`
|
|
|
725
733
|
const reactModule = await import("react");
|
|
726
734
|
const inkjsui = await import("@inkjs/ui");
|
|
727
735
|
const utilsTheme = await import("../utils/theme.js");
|
|
728
|
-
const { render
|
|
736
|
+
const { render } = ink;
|
|
729
737
|
const React2 = reactModule;
|
|
730
738
|
const { MultiSelect } = inkjsui;
|
|
731
739
|
const { Box, Text } = ink;
|
|
@@ -822,7 +830,7 @@ ${commandList}`
|
|
|
822
830
|
))
|
|
823
831
|
), /* @__PURE__ */ React2.createElement(Box, { marginTop: 0, marginLeft: 3 }, /* @__PURE__ */ React2.createElement(Text, { dimColor: true }, "Space to select \xB7 Enter to confirm \xB7 Esc to cancel")), isFinished && /* @__PURE__ */ React2.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React2.createElement(Text, { color: theme.success }, "Successfully imported", " ", importResults.filter((r) => r.success).length, " MCP server to local config.")));
|
|
824
832
|
}
|
|
825
|
-
const { unmount } =
|
|
833
|
+
const { unmount } = render(/* @__PURE__ */ React2.createElement(ClaudeDesktopImport, null));
|
|
826
834
|
setTimeout(() => {
|
|
827
835
|
unmount();
|
|
828
836
|
resolve();
|
|
@@ -864,7 +872,11 @@ ${commandList}`
|
|
|
864
872
|
program.command("doctor").description(`Check the health of your ${PRODUCT_NAME} auto-updater`).action(async () => {
|
|
865
873
|
logEvent("tengu_doctor_command", {});
|
|
866
874
|
await new Promise((resolve) => {
|
|
867
|
-
|
|
875
|
+
;
|
|
876
|
+
(async () => {
|
|
877
|
+
const { render } = await import("ink");
|
|
878
|
+
render(/* @__PURE__ */ React.createElement(Doctor, { onDone: () => resolve(), doctorMode: true }));
|
|
879
|
+
})();
|
|
868
880
|
});
|
|
869
881
|
process.exit(0);
|
|
870
882
|
});
|
|
@@ -899,11 +911,14 @@ ${commandList}`
|
|
|
899
911
|
await setup(cwd2, false);
|
|
900
912
|
logEvent("tengu_view_logs", { number: number?.toString() ?? "" });
|
|
901
913
|
const context2 = {};
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
914
|
+
(async () => {
|
|
915
|
+
const { render } = await import("ink");
|
|
916
|
+
const { unmount } = render(
|
|
917
|
+
/* @__PURE__ */ React.createElement(LogList, { context: context2, type: "messages", logNumber: number }),
|
|
918
|
+
renderContextWithExitOnCtrlC
|
|
919
|
+
);
|
|
920
|
+
context2.unmount = unmount;
|
|
921
|
+
})();
|
|
907
922
|
});
|
|
908
923
|
program.command("resume").description(
|
|
909
924
|
"Resume a previous conversation. Optionally provide a number (0, 1, 2, etc.) or file path to resume a specific conversation."
|
|
@@ -953,9 +968,9 @@ ${commandList}`
|
|
|
953
968
|
const fork = getNextAvailableLogForkNumber(date, forkNumber ?? 1, 0);
|
|
954
969
|
const isDefaultModel = await isDefaultSlowAndCapableModel();
|
|
955
970
|
{
|
|
956
|
-
const { render
|
|
971
|
+
const { render } = await import("ink");
|
|
957
972
|
const { REPL } = await import("../screens/REPL.js");
|
|
958
|
-
|
|
973
|
+
render(
|
|
959
974
|
/* @__PURE__ */ React.createElement(
|
|
960
975
|
REPL,
|
|
961
976
|
{
|
|
@@ -981,20 +996,23 @@ ${commandList}`
|
|
|
981
996
|
}
|
|
982
997
|
} else {
|
|
983
998
|
const context2 = {};
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
999
|
+
(async () => {
|
|
1000
|
+
const { render } = await import("ink");
|
|
1001
|
+
const { unmount } = render(
|
|
1002
|
+
/* @__PURE__ */ React.createElement(
|
|
1003
|
+
ResumeConversation,
|
|
1004
|
+
{
|
|
1005
|
+
context: context2,
|
|
1006
|
+
commands: commands2,
|
|
1007
|
+
logs,
|
|
1008
|
+
tools,
|
|
1009
|
+
verbose
|
|
1010
|
+
}
|
|
1011
|
+
),
|
|
1012
|
+
renderContextWithExitOnCtrlC
|
|
1013
|
+
);
|
|
1014
|
+
context2.unmount = unmount;
|
|
1015
|
+
})();
|
|
998
1016
|
}
|
|
999
1017
|
});
|
|
1000
1018
|
program.command("error").description(
|
|
@@ -1007,11 +1025,14 @@ ${commandList}`
|
|
|
1007
1025
|
await setup(cwd2, false);
|
|
1008
1026
|
logEvent("tengu_view_errors", { number: number?.toString() ?? "" });
|
|
1009
1027
|
const context2 = {};
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1028
|
+
(async () => {
|
|
1029
|
+
const { render } = await import("ink");
|
|
1030
|
+
const { unmount } = render(
|
|
1031
|
+
/* @__PURE__ */ React.createElement(LogList, { context: context2, type: "errors", logNumber: number }),
|
|
1032
|
+
renderContextWithExitOnCtrlC
|
|
1033
|
+
);
|
|
1034
|
+
context2.unmount = unmount;
|
|
1035
|
+
})();
|
|
1015
1036
|
});
|
|
1016
1037
|
const context = program.command("context").description(
|
|
1017
1038
|
`Set static context (eg. ${PRODUCT_COMMAND} context add-file ./src/*.py)`
|