@shareai-lab/kode 1.1.13 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entrypoints/cli.js +2 -1
- package/dist/entrypoints/cli.js.map +2 -2
- package/dist/index.js +5 -26
- package/dist/package.json +4 -1
- package/package.json +9 -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/src/test/testAdapters.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { ModelAdapterFactory } from '../services/modelAdapterFactory'
|
|
2
|
-
import { getModelCapabilities } from '../constants/modelCapabilities'
|
|
3
|
-
import { ModelProfile } from '../utils/config'
|
|
4
|
-
|
|
5
|
-
// Test different models' adapter selection
|
|
6
|
-
const testModels: ModelProfile[] = [
|
|
7
|
-
{
|
|
8
|
-
name: 'GPT-5 Test',
|
|
9
|
-
modelName: 'gpt-5',
|
|
10
|
-
provider: 'openai',
|
|
11
|
-
apiKey: 'test-key',
|
|
12
|
-
maxTokens: 8192,
|
|
13
|
-
contextLength: 128000,
|
|
14
|
-
reasoningEffort: 'medium',
|
|
15
|
-
isActive: true,
|
|
16
|
-
createdAt: Date.now()
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'GPT-4o Test',
|
|
20
|
-
modelName: 'gpt-4o',
|
|
21
|
-
provider: 'openai',
|
|
22
|
-
apiKey: 'test-key',
|
|
23
|
-
maxTokens: 4096,
|
|
24
|
-
contextLength: 128000,
|
|
25
|
-
isActive: true,
|
|
26
|
-
createdAt: Date.now()
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: 'Claude Test',
|
|
30
|
-
modelName: 'claude-3-5-sonnet-20241022',
|
|
31
|
-
provider: 'anthropic',
|
|
32
|
-
apiKey: 'test-key',
|
|
33
|
-
maxTokens: 4096,
|
|
34
|
-
contextLength: 200000,
|
|
35
|
-
isActive: true,
|
|
36
|
-
createdAt: Date.now()
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: 'O1 Test',
|
|
40
|
-
modelName: 'o1',
|
|
41
|
-
provider: 'openai',
|
|
42
|
-
apiKey: 'test-key',
|
|
43
|
-
maxTokens: 4096,
|
|
44
|
-
contextLength: 128000,
|
|
45
|
-
isActive: true,
|
|
46
|
-
createdAt: Date.now()
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: 'GLM-5 Test',
|
|
50
|
-
modelName: 'glm-5',
|
|
51
|
-
provider: 'custom',
|
|
52
|
-
apiKey: 'test-key',
|
|
53
|
-
maxTokens: 8192,
|
|
54
|
-
contextLength: 128000,
|
|
55
|
-
baseURL: 'https://api.glm.ai/v1',
|
|
56
|
-
isActive: true,
|
|
57
|
-
createdAt: Date.now()
|
|
58
|
-
}
|
|
59
|
-
]
|
|
60
|
-
|
|
61
|
-
console.log('🧪 Testing Model Adapter System\n')
|
|
62
|
-
console.log('=' .repeat(60))
|
|
63
|
-
|
|
64
|
-
testModels.forEach(model => {
|
|
65
|
-
console.log(`\n📊 Testing: ${model.name} (${model.modelName})`)
|
|
66
|
-
console.log('-'.repeat(40))
|
|
67
|
-
|
|
68
|
-
// Get capabilities
|
|
69
|
-
const capabilities = getModelCapabilities(model.modelName)
|
|
70
|
-
console.log(` ✓ API Architecture: ${capabilities.apiArchitecture.primary}`)
|
|
71
|
-
console.log(` ✓ Fallback: ${capabilities.apiArchitecture.fallback || 'none'}`)
|
|
72
|
-
console.log(` ✓ Max Tokens Field: ${capabilities.parameters.maxTokensField}`)
|
|
73
|
-
console.log(` ✓ Tool Calling Mode: ${capabilities.toolCalling.mode}`)
|
|
74
|
-
console.log(` ✓ Supports Freeform: ${capabilities.toolCalling.supportsFreeform}`)
|
|
75
|
-
console.log(` ✓ Supports Streaming: ${capabilities.streaming.supported}`)
|
|
76
|
-
|
|
77
|
-
// Test adapter creation
|
|
78
|
-
const adapter = ModelAdapterFactory.createAdapter(model)
|
|
79
|
-
console.log(` ✓ Adapter Type: ${adapter.constructor.name}`)
|
|
80
|
-
|
|
81
|
-
// Test shouldUseResponsesAPI
|
|
82
|
-
const shouldUseResponses = ModelAdapterFactory.shouldUseResponsesAPI(model)
|
|
83
|
-
console.log(` ✓ Should Use Responses API: ${shouldUseResponses}`)
|
|
84
|
-
|
|
85
|
-
// Test with custom endpoint
|
|
86
|
-
if (model.baseURL) {
|
|
87
|
-
const customModel = { ...model, baseURL: 'https://custom.api.com/v1' }
|
|
88
|
-
const customShouldUseResponses = ModelAdapterFactory.shouldUseResponsesAPI(customModel)
|
|
89
|
-
console.log(` ✓ With Custom Endpoint: ${customShouldUseResponses ? 'Responses API' : 'Chat Completions'}`)
|
|
90
|
-
}
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
console.log('\n' + '='.repeat(60))
|
|
94
|
-
console.log('✅ Adapter System Test Complete!')
|
|
95
|
-
console.log('\nTo enable the new system, set USE_NEW_ADAPTERS=true')
|
|
96
|
-
console.log('To use legacy system, set USE_NEW_ADAPTERS=false')
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import type { TextBlock } from '@anthropic-ai/sdk/resources/index.mjs'
|
|
2
|
-
import { Box } from 'ink'
|
|
3
|
-
import * as React from 'react'
|
|
4
|
-
import { z } from 'zod'
|
|
5
|
-
import type { Tool } from '../../Tool'
|
|
6
|
-
import { FallbackToolUseRejectedMessage } from '../../components/FallbackToolUseRejectedMessage'
|
|
7
|
-
import { HighlightedCode } from '../../components/HighlightedCode'
|
|
8
|
-
import { getContext } from '../../context'
|
|
9
|
-
import { Message, query } from '../../query'
|
|
10
|
-
import { lastX } from '../../utils/generators'
|
|
11
|
-
import { createUserMessage } from '../../utils/messages'
|
|
12
|
-
import { BashTool } from '../BashTool/BashTool'
|
|
13
|
-
import { FileReadTool } from '../FileReadTool/FileReadTool'
|
|
14
|
-
import { FileWriteTool } from '../FileWriteTool/FileWriteTool'
|
|
15
|
-
import { GlobTool } from '../GlobTool/GlobTool'
|
|
16
|
-
import { GrepTool } from '../GrepTool/GrepTool'
|
|
17
|
-
import { LSTool } from '../lsTool/lsTool'
|
|
18
|
-
import { ARCHITECT_SYSTEM_PROMPT, DESCRIPTION } from './prompt'
|
|
19
|
-
|
|
20
|
-
const FS_EXPLORATION_TOOLS: Tool[] = [
|
|
21
|
-
BashTool,
|
|
22
|
-
LSTool,
|
|
23
|
-
FileReadTool,
|
|
24
|
-
FileWriteTool,
|
|
25
|
-
GlobTool,
|
|
26
|
-
GrepTool,
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
const inputSchema = z.strictObject({
|
|
30
|
-
prompt: z
|
|
31
|
-
.string()
|
|
32
|
-
.describe('The technical request or coding task to analyze'),
|
|
33
|
-
context: z
|
|
34
|
-
.string()
|
|
35
|
-
.describe('Optional context from previous conversation or system state')
|
|
36
|
-
.optional(),
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
export const ArchitectTool = {
|
|
40
|
-
name: 'Architect',
|
|
41
|
-
async description() {
|
|
42
|
-
return DESCRIPTION
|
|
43
|
-
},
|
|
44
|
-
inputSchema,
|
|
45
|
-
isReadOnly() {
|
|
46
|
-
return true
|
|
47
|
-
},
|
|
48
|
-
isConcurrencySafe() {
|
|
49
|
-
return true // ArchitectTool is read-only, safe for concurrent execution
|
|
50
|
-
},
|
|
51
|
-
userFacingName() {
|
|
52
|
-
return 'Architect'
|
|
53
|
-
},
|
|
54
|
-
async isEnabled() {
|
|
55
|
-
return false
|
|
56
|
-
},
|
|
57
|
-
needsPermissions() {
|
|
58
|
-
return false
|
|
59
|
-
},
|
|
60
|
-
async *call({ prompt, context }, toolUseContext) {
|
|
61
|
-
const content = context
|
|
62
|
-
? `<context>${context}</context>\n\n${prompt}`
|
|
63
|
-
: prompt
|
|
64
|
-
|
|
65
|
-
const userMessage = createUserMessage(content)
|
|
66
|
-
|
|
67
|
-
const messages: Message[] = [userMessage]
|
|
68
|
-
|
|
69
|
-
// We only allow the file exploration tools to be used in the architect tool
|
|
70
|
-
const allowedTools = (toolUseContext.options?.tools ?? []).filter(_ =>
|
|
71
|
-
FS_EXPLORATION_TOOLS.map(_ => _.name).includes(_.name),
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
// Create a dummy canUseTool function since this tool controls its own tool usage
|
|
75
|
-
const canUseTool = async () => ({ result: true as const })
|
|
76
|
-
|
|
77
|
-
const lastResponse = await lastX(
|
|
78
|
-
query(
|
|
79
|
-
messages,
|
|
80
|
-
[ARCHITECT_SYSTEM_PROMPT],
|
|
81
|
-
await getContext(),
|
|
82
|
-
canUseTool,
|
|
83
|
-
{
|
|
84
|
-
...toolUseContext,
|
|
85
|
-
setToolJSX: () => {}, // Dummy function since ArchitectTool doesn't use UI
|
|
86
|
-
options: {
|
|
87
|
-
commands: toolUseContext.options?.commands || [],
|
|
88
|
-
forkNumber: toolUseContext.options?.forkNumber || 0,
|
|
89
|
-
messageLogName: toolUseContext.options?.messageLogName || 'default',
|
|
90
|
-
verbose: toolUseContext.options?.verbose || false,
|
|
91
|
-
safeMode: toolUseContext.options?.safeMode || false,
|
|
92
|
-
maxThinkingTokens: toolUseContext.options?.maxThinkingTokens || 0,
|
|
93
|
-
...toolUseContext.options,
|
|
94
|
-
tools: allowedTools
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
),
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
if (lastResponse.type !== 'assistant') {
|
|
101
|
-
throw new Error(`Invalid response from API`)
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
const data = lastResponse.message.content.filter(_ => _.type === 'text')
|
|
105
|
-
yield {
|
|
106
|
-
type: 'result',
|
|
107
|
-
data,
|
|
108
|
-
resultForAssistant: this.renderResultForAssistant(data),
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
async prompt() {
|
|
112
|
-
return DESCRIPTION
|
|
113
|
-
},
|
|
114
|
-
renderResultForAssistant(data: TextBlock[]): string {
|
|
115
|
-
return data.map(block => block.text).join('\n')
|
|
116
|
-
},
|
|
117
|
-
renderToolUseMessage(input) {
|
|
118
|
-
return Object.entries(input)
|
|
119
|
-
.map(([key, value]) => `${key}: ${JSON.stringify(value)}`)
|
|
120
|
-
.join(', ')
|
|
121
|
-
},
|
|
122
|
-
renderToolResultMessage(content) {
|
|
123
|
-
return (
|
|
124
|
-
<Box flexDirection="column" gap={1}>
|
|
125
|
-
<HighlightedCode
|
|
126
|
-
code={content.map(_ => _.text).join('\n')}
|
|
127
|
-
language="markdown"
|
|
128
|
-
/>
|
|
129
|
-
</Box>
|
|
130
|
-
)
|
|
131
|
-
},
|
|
132
|
-
renderToolUseRejectedMessage() {
|
|
133
|
-
return <FallbackToolUseRejectedMessage />
|
|
134
|
-
},
|
|
135
|
-
} satisfies Tool<typeof inputSchema, TextBlock[]>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const ARCHITECT_SYSTEM_PROMPT = `You are an expert software architect. Your role is to analyze technical requirements and produce clear, actionable implementation plans.
|
|
2
|
-
These plans will then be carried out by a junior software engineer so you need to be specific and detailed. However do not actually write the code, just explain the plan.
|
|
3
|
-
|
|
4
|
-
Follow these steps for each request:
|
|
5
|
-
1. Carefully analyze requirements to identify core functionality and constraints
|
|
6
|
-
2. Define clear technical approach with specific technologies and patterns
|
|
7
|
-
3. Break down implementation into concrete, actionable steps at the appropriate level of abstraction
|
|
8
|
-
|
|
9
|
-
Keep responses focused, specific and actionable.
|
|
10
|
-
|
|
11
|
-
IMPORTANT: Do not ask the user if you should implement the changes at the end. Just provide the plan as described above.
|
|
12
|
-
IMPORTANT: Do not attempt to write the code or use any string modification tools. Just provide the plan.`
|
|
13
|
-
|
|
14
|
-
export const DESCRIPTION =
|
|
15
|
-
'Your go-to tool for any technical or coding task. Analyzes requirements and breaks them down into clear, actionable implementation steps. Use this whenever you need help planning how to implement a feature, solve a technical problem, or structure your code.'
|