@slopus/rig 0.0.1
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 +129 -0
- package/dist/agent/Agent.d.ts +73 -0
- package/dist/agent/Agent.d.ts.map +1 -0
- package/dist/agent/Agent.js +247 -0
- package/dist/agent/agentMessageToText.d.ts +3 -0
- package/dist/agent/agentMessageToText.d.ts.map +1 -0
- package/dist/agent/agentMessageToText.js +20 -0
- package/dist/agent/agentsMdProjectDocMaxBytes.d.ts +2 -0
- package/dist/agent/agentsMdProjectDocMaxBytes.d.ts.map +1 -0
- package/dist/agent/agentsMdProjectDocMaxBytes.js +1 -0
- package/dist/agent/assistantMessageToAgentMessage.d.ts +4 -0
- package/dist/agent/assistantMessageToAgentMessage.d.ts.map +1 -0
- package/dist/agent/assistantMessageToAgentMessage.js +32 -0
- package/dist/agent/buildAncestorDirs.d.ts +2 -0
- package/dist/agent/buildAncestorDirs.d.ts.map +1 -0
- package/dist/agent/buildAncestorDirs.js +16 -0
- package/dist/agent/contentBlockToText.d.ts +3 -0
- package/dist/agent/contentBlockToText.d.ts.map +1 -0
- package/dist/agent/contentBlockToText.js +6 -0
- package/dist/agent/context/AgentContext.d.ts +9 -0
- package/dist/agent/context/AgentContext.d.ts.map +1 -0
- package/dist/agent/context/AgentContext.js +1 -0
- package/dist/agent/context/BashContext.d.ts +18 -0
- package/dist/agent/context/BashContext.d.ts.map +1 -0
- package/dist/agent/context/BashContext.js +1 -0
- package/dist/agent/context/FileSystemContext.d.ts +25 -0
- package/dist/agent/context/FileSystemContext.d.ts.map +1 -0
- package/dist/agent/context/FileSystemContext.js +1 -0
- package/dist/agent/context/SubagentContext.d.ts +18 -0
- package/dist/agent/context/SubagentContext.d.ts.map +1 -0
- package/dist/agent/context/SubagentContext.js +1 -0
- package/dist/agent/context/capOutput.d.ts +2 -0
- package/dist/agent/context/capOutput.d.ts.map +1 -0
- package/dist/agent/context/capOutput.js +7 -0
- package/dist/agent/context/createJustBashAgentContext.d.ts +4 -0
- package/dist/agent/context/createJustBashAgentContext.d.ts.map +1 -0
- package/dist/agent/context/createJustBashAgentContext.js +8 -0
- package/dist/agent/context/createJustBashBashContext.d.ts +4 -0
- package/dist/agent/context/createJustBashBashContext.d.ts.map +1 -0
- package/dist/agent/context/createJustBashBashContext.js +31 -0
- package/dist/agent/context/createJustBashFileSystemContext.d.ts +4 -0
- package/dist/agent/context/createJustBashFileSystemContext.d.ts.map +1 -0
- package/dist/agent/context/createJustBashFileSystemContext.js +31 -0
- package/dist/agent/context/createNodeAgentContext.d.ts +8 -0
- package/dist/agent/context/createNodeAgentContext.d.ts.map +1 -0
- package/dist/agent/context/createNodeAgentContext.js +11 -0
- package/dist/agent/context/createNodeBashContext.d.ts +8 -0
- package/dist/agent/context/createNodeBashContext.d.ts.map +1 -0
- package/dist/agent/context/createNodeBashContext.js +23 -0
- package/dist/agent/context/createNodeFileSystemContext.d.ts +6 -0
- package/dist/agent/context/createNodeFileSystemContext.d.ts.map +1 -0
- package/dist/agent/context/createNodeFileSystemContext.js +43 -0
- package/dist/agent/context/toFileSystemStat.d.ts +9 -0
- package/dist/agent/context/toFileSystemStat.d.ts.map +1 -0
- package/dist/agent/context/toFileSystemStat.js +9 -0
- package/dist/agent/createSubagentInstructions.d.ts +2 -0
- package/dist/agent/createSubagentInstructions.d.ts.map +1 -0
- package/dist/agent/createSubagentInstructions.js +16 -0
- package/dist/agent/createSystemPrompt.d.ts +12 -0
- package/dist/agent/createSystemPrompt.d.ts.map +1 -0
- package/dist/agent/createSystemPrompt.js +28 -0
- package/dist/agent/findAgentsMdPaths.d.ts +3 -0
- package/dist/agent/findAgentsMdPaths.d.ts.map +1 -0
- package/dist/agent/findAgentsMdPaths.js +18 -0
- package/dist/agent/findLastAgentResponseText.d.ts +3 -0
- package/dist/agent/findLastAgentResponseText.d.ts.map +1 -0
- package/dist/agent/findLastAgentResponseText.js +17 -0
- package/dist/agent/findProjectRoot.d.ts +3 -0
- package/dist/agent/findProjectRoot.d.ts.map +1 -0
- package/dist/agent/findProjectRoot.js +17 -0
- package/dist/agent/formatAgentsMdInstructions.d.ts +2 -0
- package/dist/agent/formatAgentsMdInstructions.d.ts.map +1 -0
- package/dist/agent/formatAgentsMdInstructions.js +7 -0
- package/dist/agent/index.d.ts +32 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +20 -0
- package/dist/agent/isFileAtPath.d.ts +3 -0
- package/dist/agent/isFileAtPath.d.ts.map +1 -0
- package/dist/agent/isFileAtPath.js +8 -0
- package/dist/agent/isInvalidImageRequestError.d.ts +2 -0
- package/dist/agent/isInvalidImageRequestError.d.ts.map +1 -0
- package/dist/agent/isInvalidImageRequestError.js +36 -0
- package/dist/agent/loadAgentsMdInstructions.d.ts +3 -0
- package/dist/agent/loadAgentsMdInstructions.d.ts.map +1 -0
- package/dist/agent/loadAgentsMdInstructions.js +22 -0
- package/dist/agent/loop.d.ts +28 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +369 -0
- package/dist/agent/prepareProviderImageContent.d.ts +4 -0
- package/dist/agent/prepareProviderImageContent.d.ts.map +1 -0
- package/dist/agent/prepareProviderImageContent.js +27 -0
- package/dist/agent/prepareProviderMessageImages.d.ts +4 -0
- package/dist/agent/prepareProviderMessageImages.d.ts.map +1 -0
- package/dist/agent/prepareProviderMessageImages.js +21 -0
- package/dist/agent/printAgentMessageToConsole.d.ts +6 -0
- package/dist/agent/printAgentMessageToConsole.d.ts.map +1 -0
- package/dist/agent/printAgentMessageToConsole.js +11 -0
- package/dist/agent/prompts/claudeCodeSystemPrompt.d.ts +2 -0
- package/dist/agent/prompts/claudeCodeSystemPrompt.d.ts.map +1 -0
- package/dist/agent/prompts/claudeCodeSystemPrompt.js +1 -0
- package/dist/agent/prompts/gpt54SystemPrompt.d.ts +2 -0
- package/dist/agent/prompts/gpt54SystemPrompt.d.ts.map +1 -0
- package/dist/agent/prompts/gpt54SystemPrompt.js +1 -0
- package/dist/agent/prompts/gpt55SystemPrompt.d.ts +2 -0
- package/dist/agent/prompts/gpt55SystemPrompt.d.ts.map +1 -0
- package/dist/agent/prompts/gpt55SystemPrompt.js +1 -0
- package/dist/agent/prompts/kimiSystemPrompt.d.ts +2 -0
- package/dist/agent/prompts/kimiSystemPrompt.d.ts.map +1 -0
- package/dist/agent/prompts/kimiSystemPrompt.js +1 -0
- package/dist/agent/readAgentsMdFile.d.ts +3 -0
- package/dist/agent/readAgentsMdFile.d.ts.map +1 -0
- package/dist/agent/readAgentsMdFile.js +8 -0
- package/dist/agent/replaceLastTurnToolResultImages.d.ts +3 -0
- package/dist/agent/replaceLastTurnToolResultImages.d.ts.map +1 -0
- package/dist/agent/replaceLastTurnToolResultImages.js +33 -0
- package/dist/agent/selectSystemPromptForModel.d.ts +3 -0
- package/dist/agent/selectSystemPromptForModel.d.ts.map +1 -0
- package/dist/agent/selectSystemPromptForModel.js +35 -0
- package/dist/agent/selectToolsForModel.d.ts +8 -0
- package/dist/agent/selectToolsForModel.d.ts.map +1 -0
- package/dist/agent/selectToolsForModel.js +19 -0
- package/dist/agent/skills/Skill.d.ts +8 -0
- package/dist/agent/skills/Skill.d.ts.map +1 -0
- package/dist/agent/skills/Skill.js +1 -0
- package/dist/agent/skills/SkillFrontmatter.d.ts +6 -0
- package/dist/agent/skills/SkillFrontmatter.d.ts.map +1 -0
- package/dist/agent/skills/SkillFrontmatter.js +1 -0
- package/dist/agent/skills/escapeXml.d.ts +2 -0
- package/dist/agent/skills/escapeXml.d.ts.map +1 -0
- package/dist/agent/skills/escapeXml.js +8 -0
- package/dist/agent/skills/findSkillFilePaths.d.ts +3 -0
- package/dist/agent/skills/findSkillFilePaths.d.ts.map +1 -0
- package/dist/agent/skills/findSkillFilePaths.js +44 -0
- package/dist/agent/skills/findSkillRootPaths.d.ts +3 -0
- package/dist/agent/skills/findSkillRootPaths.d.ts.map +1 -0
- package/dist/agent/skills/findSkillRootPaths.js +30 -0
- package/dist/agent/skills/formatSkillInvocation.d.ts +3 -0
- package/dist/agent/skills/formatSkillInvocation.d.ts.map +1 -0
- package/dist/agent/skills/formatSkillInvocation.js +12 -0
- package/dist/agent/skills/formatSkillsForPrompt.d.ts +3 -0
- package/dist/agent/skills/formatSkillsForPrompt.d.ts.map +1 -0
- package/dist/agent/skills/formatSkillsForPrompt.js +25 -0
- package/dist/agent/skills/isDirectoryAtPath.d.ts +3 -0
- package/dist/agent/skills/isDirectoryAtPath.d.ts.map +1 -0
- package/dist/agent/skills/isDirectoryAtPath.js +8 -0
- package/dist/agent/skills/isFileAtPath.d.ts +3 -0
- package/dist/agent/skills/isFileAtPath.d.ts.map +1 -0
- package/dist/agent/skills/isFileAtPath.js +8 -0
- package/dist/agent/skills/isValidSkillDescription.d.ts +2 -0
- package/dist/agent/skills/isValidSkillDescription.d.ts.map +1 -0
- package/dist/agent/skills/isValidSkillDescription.js +7 -0
- package/dist/agent/skills/isValidSkillName.d.ts +2 -0
- package/dist/agent/skills/isValidSkillName.d.ts.map +1 -0
- package/dist/agent/skills/isValidSkillName.js +9 -0
- package/dist/agent/skills/loadSkillFromFile.d.ts +4 -0
- package/dist/agent/skills/loadSkillFromFile.d.ts.map +1 -0
- package/dist/agent/skills/loadSkillFromFile.js +36 -0
- package/dist/agent/skills/loadSkillInstructions.d.ts +3 -0
- package/dist/agent/skills/loadSkillInstructions.d.ts.map +1 -0
- package/dist/agent/skills/loadSkillInstructions.js +5 -0
- package/dist/agent/skills/loadSkills.d.ts +4 -0
- package/dist/agent/skills/loadSkills.d.ts.map +1 -0
- package/dist/agent/skills/loadSkills.js +15 -0
- package/dist/agent/skills/parseSkillFrontmatter.d.ts +7 -0
- package/dist/agent/skills/parseSkillFrontmatter.d.ts.map +1 -0
- package/dist/agent/skills/parseSkillFrontmatter.js +26 -0
- package/dist/agent/systemContentBlockToText.d.ts +3 -0
- package/dist/agent/systemContentBlockToText.d.ts.map +1 -0
- package/dist/agent/systemContentBlockToText.js +6 -0
- package/dist/agent/systemMessageToText.d.ts +3 -0
- package/dist/agent/systemMessageToText.d.ts.map +1 -0
- package/dist/agent/systemMessageToText.js +4 -0
- package/dist/agent/types.d.ts +111 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +7 -0
- package/dist/app/AppTranscriptEntry.d.ts +9 -0
- package/dist/app/AppTranscriptEntry.d.ts.map +1 -0
- package/dist/app/AppTranscriptEntry.js +1 -0
- package/dist/app/CodingAssistantAgentBackend.d.ts +20 -0
- package/dist/app/CodingAssistantAgentBackend.d.ts.map +1 -0
- package/dist/app/CodingAssistantAgentBackend.js +1 -0
- package/dist/app/CodingAssistantApp.d.ts +47 -0
- package/dist/app/CodingAssistantApp.d.ts.map +1 -0
- package/dist/app/CodingAssistantApp.js +1895 -0
- package/dist/app/CodingAssistantRuntime.d.ts +11 -0
- package/dist/app/CodingAssistantRuntime.d.ts.map +1 -0
- package/dist/app/CodingAssistantRuntime.js +1 -0
- package/dist/app/StartupStatusApp.d.ts +17 -0
- package/dist/app/StartupStatusApp.d.ts.map +1 -0
- package/dist/app/StartupStatusApp.js +101 -0
- package/dist/app/createAgentMarkdownTheme.d.ts +3 -0
- package/dist/app/createAgentMarkdownTheme.d.ts.map +1 -0
- package/dist/app/createAgentMarkdownTheme.js +39 -0
- package/dist/app/createCodingAssistantAgent.d.ts +19 -0
- package/dist/app/createCodingAssistantAgent.d.ts.map +1 -0
- package/dist/app/createCodingAssistantAgent.js +77 -0
- package/dist/app/createDefaultInstructions.d.ts +2 -0
- package/dist/app/createDefaultInstructions.d.ts.map +1 -0
- package/dist/app/createDefaultInstructions.js +8 -0
- package/dist/app/createSelectionPanel.d.ts +11 -0
- package/dist/app/createSelectionPanel.d.ts.map +1 -0
- package/dist/app/createSelectionPanel.js +64 -0
- package/dist/app/createSlashCommands.d.ts +6 -0
- package/dist/app/createSlashCommands.d.ts.map +1 -0
- package/dist/app/createSlashCommands.js +46 -0
- package/dist/app/createStopOnceHandler.d.ts +2 -0
- package/dist/app/createStopOnceHandler.d.ts.map +1 -0
- package/dist/app/createStopOnceHandler.js +9 -0
- package/dist/app/describeModelChoice.d.ts +5 -0
- package/dist/app/describeModelChoice.d.ts.map +1 -0
- package/dist/app/describeModelChoice.js +13 -0
- package/dist/app/describeReasoningLevel.d.ts +5 -0
- package/dist/app/describeReasoningLevel.d.ts.map +1 -0
- package/dist/app/describeReasoningLevel.js +21 -0
- package/dist/app/encodeModelChoice.d.ts +2 -0
- package/dist/app/encodeModelChoice.d.ts.map +1 -0
- package/dist/app/encodeModelChoice.js +3 -0
- package/dist/app/ensureSessionCanResume.d.ts +3 -0
- package/dist/app/ensureSessionCanResume.d.ts.map +1 -0
- package/dist/app/ensureSessionCanResume.js +5 -0
- package/dist/app/formatActivityElapsedTime.d.ts +2 -0
- package/dist/app/formatActivityElapsedTime.d.ts.map +1 -0
- package/dist/app/formatActivityElapsedTime.js +15 -0
- package/dist/app/formatSessionSummaries.d.ts +6 -0
- package/dist/app/formatSessionSummaries.d.ts.map +1 -0
- package/dist/app/formatSessionSummaries.js +73 -0
- package/dist/app/highlightAgentCode.d.ts +2 -0
- package/dist/app/highlightAgentCode.d.ts.map +1 -0
- package/dist/app/highlightAgentCode.js +82 -0
- package/dist/app/humanizeProviderId.d.ts +2 -0
- package/dist/app/humanizeProviderId.d.ts.map +1 -0
- package/dist/app/humanizeProviderId.js +22 -0
- package/dist/app/humanizeReasoningLevel.d.ts +2 -0
- package/dist/app/humanizeReasoningLevel.d.ts.map +1 -0
- package/dist/app/humanizeReasoningLevel.js +28 -0
- package/dist/app/index.d.ts +17 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +8 -0
- package/dist/app/isMainModule.d.ts +2 -0
- package/dist/app/isMainModule.d.ts.map +1 -0
- package/dist/app/isMainModule.js +6 -0
- package/dist/app/main.d.ts +2 -0
- package/dist/app/main.d.ts.map +1 -0
- package/dist/app/main.js +64 -0
- package/dist/app/readClipboardImage.d.ts +10 -0
- package/dist/app/readClipboardImage.d.ts.map +1 -0
- package/dist/app/readClipboardImage.js +134 -0
- package/dist/app/readPackageVersion.d.ts +2 -0
- package/dist/app/readPackageVersion.d.ts.map +1 -0
- package/dist/app/readPackageVersion.js +11 -0
- package/dist/app/renderActivityWave.d.ts +3 -0
- package/dist/app/renderActivityWave.d.ts.map +1 -0
- package/dist/app/renderActivityWave.js +28 -0
- package/dist/app/renderAgentMarkdown.d.ts +7 -0
- package/dist/app/renderAgentMarkdown.d.ts.map +1 -0
- package/dist/app/renderAgentMarkdown.js +23 -0
- package/dist/app/resolvePortlessCliPath.d.ts +2 -0
- package/dist/app/resolvePortlessCliPath.d.ts.map +1 -0
- package/dist/app/resolvePortlessCliPath.js +31 -0
- package/dist/app/runApp.d.ts +12 -0
- package/dist/app/runApp.d.ts.map +1 -0
- package/dist/app/runApp.js +157 -0
- package/dist/app/runDaemonCommand.d.ts +3 -0
- package/dist/app/runDaemonCommand.d.ts.map +1 -0
- package/dist/app/runDaemonCommand.js +50 -0
- package/dist/app/runMonit.d.ts +6 -0
- package/dist/app/runMonit.d.ts.map +1 -0
- package/dist/app/runMonit.js +13 -0
- package/dist/app/runWebCommand.d.ts +2 -0
- package/dist/app/runWebCommand.d.ts.map +1 -0
- package/dist/app/runWebCommand.js +52 -0
- package/dist/app/web/createWebHttpServer.d.ts +8 -0
- package/dist/app/web/createWebHttpServer.d.ts.map +1 -0
- package/dist/app/web/createWebHttpServer.js +150 -0
- package/dist/app/web/runWebServer.d.ts +2 -0
- package/dist/app/web/runWebServer.d.ts.map +1 -0
- package/dist/app/web/runWebServer.js +63 -0
- package/dist/app/web/webPortlessRoute.d.ts +3 -0
- package/dist/app/web/webPortlessRoute.d.ts.map +1 -0
- package/dist/app/web/webPortlessRoute.js +2 -0
- package/dist/client/ProtocolHttpClient.d.ts +42 -0
- package/dist/client/ProtocolHttpClient.d.ts.map +1 -0
- package/dist/client/ProtocolHttpClient.js +181 -0
- package/dist/client/RemoteAgent.d.ts +28 -0
- package/dist/client/RemoteAgent.d.ts.map +1 -0
- package/dist/client/RemoteAgent.js +270 -0
- package/dist/client/ensureLocalProtocolServer.d.ts +13 -0
- package/dist/client/ensureLocalProtocolServer.d.ts.map +1 -0
- package/dist/client/ensureLocalProtocolServer.js +112 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/config/createConfigFile.d.ts +3 -0
- package/dist/config/createConfigFile.d.ts.map +1 -0
- package/dist/config/createConfigFile.js +22 -0
- package/dist/config/defaultConfig.d.ts +3 -0
- package/dist/config/defaultConfig.d.ts.map +1 -0
- package/dist/config/defaultConfig.js +8 -0
- package/dist/config/getDefaultGlobalConfigPath.d.ts +2 -0
- package/dist/config/getDefaultGlobalConfigPath.d.ts.map +1 -0
- package/dist/config/getDefaultGlobalConfigPath.js +6 -0
- package/dist/config/getDefaultLocalConfigPath.d.ts +2 -0
- package/dist/config/getDefaultLocalConfigPath.d.ts.map +1 -0
- package/dist/config/getDefaultLocalConfigPath.js +4 -0
- package/dist/config/getDefaultRuntimeConfigPath.d.ts +2 -0
- package/dist/config/getDefaultRuntimeConfigPath.d.ts.map +1 -0
- package/dist/config/getDefaultRuntimeConfigPath.js +6 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +11 -0
- package/dist/config/loadConfig.d.ts +3 -0
- package/dist/config/loadConfig.d.ts.map +1 -0
- package/dist/config/loadConfig.js +20 -0
- package/dist/config/mergeConfigValues.d.ts +3 -0
- package/dist/config/mergeConfigValues.d.ts.map +1 -0
- package/dist/config/mergeConfigValues.js +22 -0
- package/dist/config/parseConfigToml.d.ts +3 -0
- package/dist/config/parseConfigToml.d.ts.map +1 -0
- package/dist/config/parseConfigToml.js +50 -0
- package/dist/config/readConfigFile.d.ts +3 -0
- package/dist/config/readConfigFile.d.ts.map +1 -0
- package/dist/config/readConfigFile.js +25 -0
- package/dist/config/resolveConfigPaths.d.ts +3 -0
- package/dist/config/resolveConfigPaths.d.ts.map +1 -0
- package/dist/config/resolveConfigPaths.js +10 -0
- package/dist/config/types.d.ts +51 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +1 -0
- package/dist/config/writeRuntimeConfig.d.ts +3 -0
- package/dist/config/writeRuntimeConfig.d.ts.map +1 -0
- package/dist/config/writeRuntimeConfig.js +31 -0
- package/dist/config/writeRuntimeConfigDefaults.d.ts +3 -0
- package/dist/config/writeRuntimeConfigDefaults.d.ts.map +1 -0
- package/dist/config/writeRuntimeConfigDefaults.js +4 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +10 -0
- package/dist/processes/NativeProxessManager.d.ts +27 -0
- package/dist/processes/NativeProxessManager.d.ts.map +1 -0
- package/dist/processes/NativeProxessManager.js +330 -0
- package/dist/processes/index.d.ts +4 -0
- package/dist/processes/index.d.ts.map +1 -0
- package/dist/processes/index.js +2 -0
- package/dist/processes/killProcessTree.d.ts +2 -0
- package/dist/processes/killProcessTree.d.ts.map +1 -0
- package/dist/processes/killProcessTree.js +31 -0
- package/dist/processes/types.d.ts +34 -0
- package/dist/processes/types.d.ts.map +1 -0
- package/dist/processes/types.js +1 -0
- package/dist/protocol/EventId.d.ts +2 -0
- package/dist/protocol/EventId.d.ts.map +1 -0
- package/dist/protocol/EventId.js +1 -0
- package/dist/protocol/SessionProtocol.d.ts +191 -0
- package/dist/protocol/SessionProtocol.d.ts.map +1 -0
- package/dist/protocol/SessionProtocol.js +1 -0
- package/dist/protocol/createEventIdFactory.d.ts +6 -0
- package/dist/protocol/createEventIdFactory.d.ts.map +1 -0
- package/dist/protocol/createEventIdFactory.js +36 -0
- package/dist/protocol/index.d.ts +4 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +1 -0
- package/dist/providers/applyBedrockAdaptiveThinking.d.ts +2 -0
- package/dist/providers/applyBedrockAdaptiveThinking.d.ts.map +1 -0
- package/dist/providers/applyBedrockAdaptiveThinking.js +17 -0
- package/dist/providers/applyBedrockGlmThinking.d.ts +2 -0
- package/dist/providers/applyBedrockGlmThinking.d.ts.map +1 -0
- package/dist/providers/applyBedrockGlmThinking.js +19 -0
- package/dist/providers/applyBedrockKimiThinking.d.ts +2 -0
- package/dist/providers/applyBedrockKimiThinking.d.ts.map +1 -0
- package/dist/providers/applyBedrockKimiThinking.js +15 -0
- package/dist/providers/applyBedrockOpenAIResponse.d.ts +4 -0
- package/dist/providers/applyBedrockOpenAIResponse.d.ts.map +1 -0
- package/dist/providers/applyBedrockOpenAIResponse.js +25 -0
- package/dist/providers/applyCodexImageDetailsToPayload.d.ts +2 -0
- package/dist/providers/applyCodexImageDetailsToPayload.d.ts.map +1 -0
- package/dist/providers/applyCodexImageDetailsToPayload.js +34 -0
- package/dist/providers/bedrock-model-routes.d.ts +29 -0
- package/dist/providers/bedrock-model-routes.d.ts.map +1 -0
- package/dist/providers/bedrock-model-routes.js +301 -0
- package/dist/providers/bedrock-openai-types.d.ts +6 -0
- package/dist/providers/bedrock-openai-types.d.ts.map +1 -0
- package/dist/providers/bedrock-openai-types.js +1 -0
- package/dist/providers/bedrock.d.ts +14 -0
- package/dist/providers/bedrock.d.ts.map +1 -0
- package/dist/providers/bedrock.js +49 -0
- package/dist/providers/classifyCodexErrorCode.d.ts +3 -0
- package/dist/providers/classifyCodexErrorCode.d.ts.map +1 -0
- package/dist/providers/classifyCodexErrorCode.js +11 -0
- package/dist/providers/claude-sdk.d.ts +12 -0
- package/dist/providers/claude-sdk.d.ts.map +1 -0
- package/dist/providers/claude-sdk.js +814 -0
- package/dist/providers/codex.d.ts +12 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +76 -0
- package/dist/providers/collectImageDetails.d.ts +3 -0
- package/dist/providers/collectImageDetails.d.ts.map +1 -0
- package/dist/providers/collectImageDetails.js +14 -0
- package/dist/providers/createBedrockMantleStream.d.ts +13 -0
- package/dist/providers/createBedrockMantleStream.d.ts.map +1 -0
- package/dist/providers/createBedrockMantleStream.js +234 -0
- package/dist/providers/createBedrockOpenAIClient.d.ts +7 -0
- package/dist/providers/createBedrockOpenAIClient.d.ts.map +1 -0
- package/dist/providers/createBedrockOpenAIClient.js +7 -0
- package/dist/providers/createBedrockOpenAIRequest.d.ts +9 -0
- package/dist/providers/createBedrockOpenAIRequest.d.ts.map +1 -0
- package/dist/providers/createBedrockOpenAIRequest.js +30 -0
- package/dist/providers/createBedrockRuntimeStream.d.ts +14 -0
- package/dist/providers/createBedrockRuntimeStream.d.ts.map +1 -0
- package/dist/providers/createBedrockRuntimeStream.js +41 -0
- package/dist/providers/createInferenceStream.d.ts +3 -0
- package/dist/providers/createInferenceStream.d.ts.map +1 -0
- package/dist/providers/createInferenceStream.js +45 -0
- package/dist/providers/createPiBedrockRuntimeModel.d.ts +4 -0
- package/dist/providers/createPiBedrockRuntimeModel.d.ts.map +1 -0
- package/dist/providers/createPiBedrockRuntimeModel.js +20 -0
- package/dist/providers/finishBedrockOpenAIOutputItem.d.ts +5 -0
- package/dist/providers/finishBedrockOpenAIOutputItem.d.ts.map +1 -0
- package/dist/providers/finishBedrockOpenAIOutputItem.js +53 -0
- package/dist/providers/getBedrockModelRoute.d.ts +3 -0
- package/dist/providers/getBedrockModelRoute.d.ts.map +1 -0
- package/dist/providers/getBedrockModelRoute.js +4 -0
- package/dist/providers/isBedrockModelAvailableInRegion.d.ts +3 -0
- package/dist/providers/isBedrockModelAvailableInRegion.d.ts.map +1 -0
- package/dist/providers/isBedrockModelAvailableInRegion.js +3 -0
- package/dist/providers/models.d.ts +21 -0
- package/dist/providers/models.d.ts.map +1 -0
- package/dist/providers/models.js +96 -0
- package/dist/providers/parseOpenAIToolArguments.d.ts +2 -0
- package/dist/providers/parseOpenAIToolArguments.d.ts.map +1 -0
- package/dist/providers/parseOpenAIToolArguments.js +11 -0
- package/dist/providers/pi-bridge.d.ts +8 -0
- package/dist/providers/pi-bridge.d.ts.map +1 -0
- package/dist/providers/pi-bridge.js +246 -0
- package/dist/providers/readBedrockBearerToken.d.ts +2 -0
- package/dist/providers/readBedrockBearerToken.d.ts.map +1 -0
- package/dist/providers/readBedrockBearerToken.js +4 -0
- package/dist/providers/readClaudeCodeOAuthToken.d.ts +2 -0
- package/dist/providers/readClaudeCodeOAuthToken.d.ts.map +1 -0
- package/dist/providers/readClaudeCodeOAuthToken.js +51 -0
- package/dist/providers/replaceAssistantContent.d.ts +3 -0
- package/dist/providers/replaceAssistantContent.d.ts.map +1 -0
- package/dist/providers/replaceAssistantContent.js +5 -0
- package/dist/providers/requestAnthropicMessage.d.ts +6 -0
- package/dist/providers/requestAnthropicMessage.d.ts.map +1 -0
- package/dist/providers/requestAnthropicMessage.js +36 -0
- package/dist/providers/resolveBedrockRegion.d.ts +2 -0
- package/dist/providers/resolveBedrockRegion.d.ts.map +1 -0
- package/dist/providers/resolveBedrockRegion.js +3 -0
- package/dist/providers/resolveBedrockRuntimeModelId.d.ts +3 -0
- package/dist/providers/resolveBedrockRuntimeModelId.d.ts.map +1 -0
- package/dist/providers/resolveBedrockRuntimeModelId.js +8 -0
- package/dist/providers/resolveClaudeCodeExecutablePath.d.ts +2 -0
- package/dist/providers/resolveClaudeCodeExecutablePath.d.ts.map +1 -0
- package/dist/providers/resolveClaudeCodeExecutablePath.js +28 -0
- package/dist/providers/toBedrockAssistantContent.d.ts +4 -0
- package/dist/providers/toBedrockAssistantContent.d.ts.map +1 -0
- package/dist/providers/toBedrockAssistantContent.js +18 -0
- package/dist/providers/toOpenAIReasoningEffort.d.ts +3 -0
- package/dist/providers/toOpenAIReasoningEffort.d.ts.map +1 -0
- package/dist/providers/toOpenAIReasoningEffort.js +14 -0
- package/dist/providers/toOpenAIResponseInput.d.ts +4 -0
- package/dist/providers/toOpenAIResponseInput.d.ts.map +1 -0
- package/dist/providers/toOpenAIResponseInput.js +81 -0
- package/dist/providers/toOpenAIResponseTools.d.ts +4 -0
- package/dist/providers/toOpenAIResponseTools.d.ts.map +1 -0
- package/dist/providers/toOpenAIResponseTools.js +9 -0
- package/dist/providers/toPiReasoningLevel.d.ts +3 -0
- package/dist/providers/toPiReasoningLevel.d.ts.map +1 -0
- package/dist/providers/toPiReasoningLevel.js +16 -0
- package/dist/providers/types.d.ts +187 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +18 -0
- package/dist/server/AgentSessionManager.d.ts +19 -0
- package/dist/server/AgentSessionManager.d.ts.map +1 -0
- package/dist/server/AgentSessionManager.js +65 -0
- package/dist/server/InMemorySession.d.ts +88 -0
- package/dist/server/InMemorySession.d.ts.map +1 -0
- package/dist/server/InMemorySession.js +676 -0
- package/dist/server/InMemorySessionStore.d.ts +19 -0
- package/dist/server/InMemorySessionStore.d.ts.map +1 -0
- package/dist/server/InMemorySessionStore.js +69 -0
- package/dist/server/LocalServerPaths.d.ts +10 -0
- package/dist/server/LocalServerPaths.d.ts.map +1 -0
- package/dist/server/LocalServerPaths.js +14 -0
- package/dist/server/PersistentSessionStore.d.ts +28 -0
- package/dist/server/PersistentSessionStore.d.ts.map +1 -0
- package/dist/server/PersistentSessionStore.js +619 -0
- package/dist/server/SessionEventLog.d.ts +17 -0
- package/dist/server/SessionEventLog.d.ts.map +1 -0
- package/dist/server/SessionEventLog.js +42 -0
- package/dist/server/SessionStore.d.ts +13 -0
- package/dist/server/SessionStore.d.ts.map +1 -0
- package/dist/server/SessionStore.js +1 -0
- package/dist/server/createModelCatalog.d.ts +7 -0
- package/dist/server/createModelCatalog.d.ts.map +1 -0
- package/dist/server/createModelCatalog.js +40 -0
- package/dist/server/createProtocolHttpServer.d.ts +12 -0
- package/dist/server/createProtocolHttpServer.d.ts.map +1 -0
- package/dist/server/createProtocolHttpServer.js +280 -0
- package/dist/server/generateSessionTitle.d.ts +8 -0
- package/dist/server/generateSessionTitle.d.ts.map +1 -0
- package/dist/server/generateSessionTitle.js +59 -0
- package/dist/server/getDefaultSessionDatabasePath.d.ts +2 -0
- package/dist/server/getDefaultSessionDatabasePath.d.ts.map +1 -0
- package/dist/server/getDefaultSessionDatabasePath.js +6 -0
- package/dist/server/getProviderIdForModel.d.ts +3 -0
- package/dist/server/getProviderIdForModel.d.ts.map +1 -0
- package/dist/server/getProviderIdForModel.js +4 -0
- package/dist/server/index.d.ts +15 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +14 -0
- package/dist/server/prepareLocalServerDirectory.d.ts +2 -0
- package/dist/server/prepareLocalServerDirectory.d.ts.map +1 -0
- package/dist/server/prepareLocalServerDirectory.js +5 -0
- package/dist/server/readLocalServerToken.d.ts +2 -0
- package/dist/server/readLocalServerToken.d.ts.map +1 -0
- package/dist/server/readLocalServerToken.js +4 -0
- package/dist/server/removeStaleSocket.d.ts +2 -0
- package/dist/server/removeStaleSocket.d.ts.map +1 -0
- package/dist/server/removeStaleSocket.js +19 -0
- package/dist/server/resolveInitialModelSelection.d.ts +8 -0
- package/dist/server/resolveInitialModelSelection.d.ts.map +1 -0
- package/dist/server/resolveInitialModelSelection.js +31 -0
- package/dist/server/runLocalProtocolServer.d.ts +6 -0
- package/dist/server/runLocalProtocolServer.d.ts.map +1 -0
- package/dist/server/runLocalProtocolServer.js +82 -0
- package/dist/server/uniqueModelsById.d.ts +3 -0
- package/dist/server/uniqueModelsById.d.ts.map +1 -0
- package/dist/server/uniqueModelsById.js +3 -0
- package/dist/server/writeLocalServerToken.d.ts +2 -0
- package/dist/server/writeLocalServerToken.d.ts.map +1 -0
- package/dist/server/writeLocalServerToken.js +11 -0
- package/dist/tools/Agent.d.ts +9 -0
- package/dist/tools/Agent.d.ts.map +1 -0
- package/dist/tools/Agent.js +49 -0
- package/dist/tools/claude/Bash.d.ts +12 -0
- package/dist/tools/claude/Bash.d.ts.map +1 -0
- package/dist/tools/claude/Bash.js +30 -0
- package/dist/tools/claude/Edit.d.ts +13 -0
- package/dist/tools/claude/Edit.d.ts.map +1 -0
- package/dist/tools/claude/Edit.js +44 -0
- package/dist/tools/claude/Glob.d.ts +7 -0
- package/dist/tools/claude/Glob.d.ts.map +1 -0
- package/dist/tools/claude/Glob.js +36 -0
- package/dist/tools/claude/Grep.d.ts +19 -0
- package/dist/tools/claude/Grep.d.ts.map +1 -0
- package/dist/tools/claude/Grep.js +103 -0
- package/dist/tools/claude/Read.d.ts +18 -0
- package/dist/tools/claude/Read.d.ts.map +1 -0
- package/dist/tools/claude/Read.js +84 -0
- package/dist/tools/claude/TodoWrite.d.ts +10 -0
- package/dist/tools/claude/TodoWrite.d.ts.map +1 -0
- package/dist/tools/claude/TodoWrite.js +27 -0
- package/dist/tools/claude/WebFetch.d.ts +29 -0
- package/dist/tools/claude/WebFetch.d.ts.map +1 -0
- package/dist/tools/claude/WebFetch.js +114 -0
- package/dist/tools/claude/WebSearch.d.ts +35 -0
- package/dist/tools/claude/WebSearch.d.ts.map +1 -0
- package/dist/tools/claude/WebSearch.js +83 -0
- package/dist/tools/claude/Write.d.ts +7 -0
- package/dist/tools/claude/Write.d.ts.map +1 -0
- package/dist/tools/claude/Write.js +32 -0
- package/dist/tools/claude/index.d.ts +107 -0
- package/dist/tools/claude/index.d.ts.map +1 -0
- package/dist/tools/claude/index.js +29 -0
- package/dist/tools/claude/webFetch/applyPromptToMarkdown.d.ts +3 -0
- package/dist/tools/claude/webFetch/applyPromptToMarkdown.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/applyPromptToMarkdown.js +21 -0
- package/dist/tools/claude/webFetch/cache.d.ts +6 -0
- package/dist/tools/claude/webFetch/cache.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/cache.js +15 -0
- package/dist/tools/claude/webFetch/checkWebFetchDomain.d.ts +2 -0
- package/dist/tools/claude/webFetch/checkWebFetchDomain.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/checkWebFetchDomain.js +29 -0
- package/dist/tools/claude/webFetch/createTimedSignal.d.ts +6 -0
- package/dist/tools/claude/webFetch/createTimedSignal.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/createTimedSignal.js +18 -0
- package/dist/tools/claude/webFetch/getTurndownService.d.ts +3 -0
- package/dist/tools/claude/webFetch/getTurndownService.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/getTurndownService.js +5 -0
- package/dist/tools/claude/webFetch/getUrlMarkdownContent.d.ts +3 -0
- package/dist/tools/claude/webFetch/getUrlMarkdownContent.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/getUrlMarkdownContent.js +46 -0
- package/dist/tools/claude/webFetch/getWithPermittedRedirects.d.ts +7 -0
- package/dist/tools/claude/webFetch/getWithPermittedRedirects.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/getWithPermittedRedirects.js +50 -0
- package/dist/tools/claude/webFetch/isBinaryContentType.d.ts +2 -0
- package/dist/tools/claude/webFetch/isBinaryContentType.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/isBinaryContentType.js +15 -0
- package/dist/tools/claude/webFetch/isPermittedWebFetchRedirect.d.ts +2 -0
- package/dist/tools/claude/webFetch/isPermittedWebFetchRedirect.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/isPermittedWebFetchRedirect.js +18 -0
- package/dist/tools/claude/webFetch/isPreapprovedWebFetchUrl.d.ts +2 -0
- package/dist/tools/claude/webFetch/isPreapprovedWebFetchUrl.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/isPreapprovedWebFetchUrl.js +111 -0
- package/dist/tools/claude/webFetch/makeWebFetchModelPrompt.d.ts +2 -0
- package/dist/tools/claude/webFetch/makeWebFetchModelPrompt.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/makeWebFetchModelPrompt.js +17 -0
- package/dist/tools/claude/webFetch/persistWebFetchBinary.d.ts +2 -0
- package/dist/tools/claude/webFetch/persistWebFetchBinary.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/persistWebFetchBinary.js +29 -0
- package/dist/tools/claude/webFetch/readWebFetchResponse.d.ts +2 -0
- package/dist/tools/claude/webFetch/readWebFetchResponse.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/readWebFetchResponse.js +26 -0
- package/dist/tools/claude/webFetch/types.d.ts +17 -0
- package/dist/tools/claude/webFetch/types.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/types.js +1 -0
- package/dist/tools/claude/webFetch/validateWebFetchUrl.d.ts +2 -0
- package/dist/tools/claude/webFetch/validateWebFetchUrl.d.ts.map +1 -0
- package/dist/tools/claude/webFetch/validateWebFetchUrl.js +19 -0
- package/dist/tools/claude/webSearch/formatWebSearchOutput.d.ts +3 -0
- package/dist/tools/claude/webSearch/formatWebSearchOutput.d.ts.map +1 -0
- package/dist/tools/claude/webSearch/formatWebSearchOutput.js +17 -0
- package/dist/tools/claude/webSearch/makeWebSearchOutput.d.ts +4 -0
- package/dist/tools/claude/webSearch/makeWebSearchOutput.d.ts.map +1 -0
- package/dist/tools/claude/webSearch/makeWebSearchOutput.js +40 -0
- package/dist/tools/claude/webSearch/performWebSearch.d.ts +3 -0
- package/dist/tools/claude/webSearch/performWebSearch.d.ts.map +1 -0
- package/dist/tools/claude/webSearch/performWebSearch.js +32 -0
- package/dist/tools/claude/webSearch/types.d.ts +19 -0
- package/dist/tools/claude/webSearch/types.d.ts.map +1 -0
- package/dist/tools/claude/webSearch/types.js +1 -0
- package/dist/tools/codex/apply_patch.d.ts +7 -0
- package/dist/tools/codex/apply_patch.d.ts.map +1 -0
- package/dist/tools/codex/apply_patch.js +24 -0
- package/dist/tools/codex/exec_command.d.ts +15 -0
- package/dist/tools/codex/exec_command.d.ts.map +1 -0
- package/dist/tools/codex/exec_command.js +45 -0
- package/dist/tools/codex/index.d.ts +37 -0
- package/dist/tools/codex/index.d.ts.map +1 -0
- package/dist/tools/codex/index.js +14 -0
- package/dist/tools/codex/view_image.d.ts +8 -0
- package/dist/tools/codex/view_image.d.ts.map +1 -0
- package/dist/tools/codex/view_image.js +64 -0
- package/dist/tools/codex/write_stdin.d.ts +9 -0
- package/dist/tools/codex/write_stdin.d.ts.map +1 -0
- package/dist/tools/codex/write_stdin.js +29 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/pi/bash.d.ts +7 -0
- package/dist/tools/pi/bash.d.ts.map +1 -0
- package/dist/tools/pi/bash.js +31 -0
- package/dist/tools/pi/edit.d.ts +14 -0
- package/dist/tools/pi/edit.d.ts.map +1 -0
- package/dist/tools/pi/edit.js +73 -0
- package/dist/tools/pi/find.d.ts +8 -0
- package/dist/tools/pi/find.d.ts.map +1 -0
- package/dist/tools/pi/find.js +32 -0
- package/dist/tools/pi/grep.d.ts +12 -0
- package/dist/tools/pi/grep.d.ts.map +1 -0
- package/dist/tools/pi/grep.js +55 -0
- package/dist/tools/pi/index.d.ts +65 -0
- package/dist/tools/pi/index.d.ts.map +1 -0
- package/dist/tools/pi/index.js +23 -0
- package/dist/tools/pi/ls.d.ts +7 -0
- package/dist/tools/pi/ls.d.ts.map +1 -0
- package/dist/tools/pi/ls.js +31 -0
- package/dist/tools/pi/read.d.ts +13 -0
- package/dist/tools/pi/read.d.ts.map +1 -0
- package/dist/tools/pi/read.js +32 -0
- package/dist/tools/pi/write.d.ts +9 -0
- package/dist/tools/pi/write.d.ts.map +1 -0
- package/dist/tools/pi/write.js +22 -0
- package/dist/tools/testing/createJustBashToolHarness.d.ts +18 -0
- package/dist/tools/testing/createJustBashToolHarness.d.ts.map +1 -0
- package/dist/tools/testing/createJustBashToolHarness.js +33 -0
- package/dist/tools/testing/validImageFixtures.d.ts +7 -0
- package/dist/tools/testing/validImageFixtures.d.ts.map +1 -0
- package/dist/tools/testing/validImageFixtures.js +6 -0
- package/dist/tools/utils/ImageProcessingError.d.ts +4 -0
- package/dist/tools/utils/ImageProcessingError.d.ts.map +1 -0
- package/dist/tools/utils/ImageProcessingError.js +6 -0
- package/dist/tools/utils/content.d.ts +11 -0
- package/dist/tools/utils/content.d.ts.map +1 -0
- package/dist/tools/utils/content.js +24 -0
- package/dist/tools/utils/countTextLines.d.ts +2 -0
- package/dist/tools/utils/countTextLines.d.ts.map +1 -0
- package/dist/tools/utils/countTextLines.js +6 -0
- package/dist/tools/utils/file.d.ts +90 -0
- package/dist/tools/utils/file.d.ts.map +1 -0
- package/dist/tools/utils/file.js +331 -0
- package/dist/tools/utils/getImageProcessor.d.ts +3 -0
- package/dist/tools/utils/getImageProcessor.d.ts.map +1 -0
- package/dist/tools/utils/getImageProcessor.js +9 -0
- package/dist/tools/utils/image.d.ts +2 -0
- package/dist/tools/utils/image.d.ts.map +1 -0
- package/dist/tools/utils/image.js +15 -0
- package/dist/tools/utils/index.d.ts +17 -0
- package/dist/tools/utils/index.d.ts.map +1 -0
- package/dist/tools/utils/index.js +16 -0
- package/dist/tools/utils/patch.d.ts +7 -0
- package/dist/tools/utils/patch.d.ts.map +1 -0
- package/dist/tools/utils/patch.js +107 -0
- package/dist/tools/utils/path.d.ts +4 -0
- package/dist/tools/utils/path.d.ts.map +1 -0
- package/dist/tools/utils/path.js +17 -0
- package/dist/tools/utils/prepareImageForClaude.d.ts +7 -0
- package/dist/tools/utils/prepareImageForClaude.d.ts.map +1 -0
- package/dist/tools/utils/prepareImageForClaude.js +195 -0
- package/dist/tools/utils/prepareImageForPrompt.d.ts +12 -0
- package/dist/tools/utils/prepareImageForPrompt.d.ts.map +1 -0
- package/dist/tools/utils/prepareImageForPrompt.js +100 -0
- package/dist/tools/utils/promptImageOutputDimensions.d.ts +10 -0
- package/dist/tools/utils/promptImageOutputDimensions.d.ts.map +1 -0
- package/dist/tools/utils/promptImageOutputDimensions.js +26 -0
- package/dist/tools/utils/search.d.ts +34 -0
- package/dist/tools/utils/search.d.ts.map +1 -0
- package/dist/tools/utils/search.js +133 -0
- package/dist/tools/utils/shell.d.ts +27 -0
- package/dist/tools/utils/shell.d.ts.map +1 -0
- package/dist/tools/utils/shell.js +48 -0
- package/dist/tools/utils/singleLineText.d.ts +2 -0
- package/dist/tools/utils/singleLineText.d.ts.map +1 -0
- package/dist/tools/utils/singleLineText.js +3 -0
- package/dist/tools/utils/summarizeShellOutput.d.ts +4 -0
- package/dist/tools/utils/summarizeShellOutput.d.ts.map +1 -0
- package/dist/tools/utils/summarizeShellOutput.js +11 -0
- package/dist/tools/utils/summarizeTextOutput.d.ts +2 -0
- package/dist/tools/utils/summarizeTextOutput.d.ts.map +1 -0
- package/dist/tools/utils/summarizeTextOutput.js +12 -0
- package/dist/web/assets/abap-BdImnpbu.js +1 -0
- package/dist/web/assets/actionscript-3-CoDkCxhg.js +1 -0
- package/dist/web/assets/ada-bCR0ucgS.js +1 -0
- package/dist/web/assets/andromeeda-C4gqWexZ.js +1 -0
- package/dist/web/assets/angular-html-DA-rfuFy.js +1 -0
- package/dist/web/assets/angular-ts-BrjP3tb8.js +1 -0
- package/dist/web/assets/apache-Pmp26Uib.js +1 -0
- package/dist/web/assets/apex-Dqspr-GT.js +1 -0
- package/dist/web/assets/apl-CORt7UWP.js +1 -0
- package/dist/web/assets/applescript-Co6uUVPk.js +1 -0
- package/dist/web/assets/ara-BRHolxvo.js +1 -0
- package/dist/web/assets/asciidoc-Ve4PFQV2.js +1 -0
- package/dist/web/assets/asm-D_Q5rh1f.js +1 -0
- package/dist/web/assets/astro-HNnZUWAn.js +1 -0
- package/dist/web/assets/aurora-x-D-2ljcwZ.js +1 -0
- package/dist/web/assets/awk-DMzUqQB5.js +1 -0
- package/dist/web/assets/ayu-dark-DYE7WIF3.js +1 -0
- package/dist/web/assets/ayu-light-BA47KaF1.js +1 -0
- package/dist/web/assets/ayu-mirage-32ctXXKs.js +1 -0
- package/dist/web/assets/ballerina-BFfxhgS-.js +1 -0
- package/dist/web/assets/bat-BkioyH1T.js +1 -0
- package/dist/web/assets/beancount-k_qm7-4y.js +1 -0
- package/dist/web/assets/berry-uYugtg8r.js +1 -0
- package/dist/web/assets/bibtex-CHM0blh-.js +1 -0
- package/dist/web/assets/bicep-Bmn6On1c.js +1 -0
- package/dist/web/assets/bird2-BIv1doCn.js +1 -0
- package/dist/web/assets/blade-2xfisSek.js +1 -0
- package/dist/web/assets/bsl-BO_Y6i37.js +1 -0
- package/dist/web/assets/c-BIGW1oBm.js +1 -0
- package/dist/web/assets/c3-MRO5bC_T.js +1 -0
- package/dist/web/assets/cadence-Bv_4Rxtq.js +1 -0
- package/dist/web/assets/cairo-KRGpt6FW.js +1 -0
- package/dist/web/assets/catppuccin-frappe-DFWUc33u.js +1 -0
- package/dist/web/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
- package/dist/web/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
- package/dist/web/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
- package/dist/web/assets/clarity-D53aC0YG.js +1 -0
- package/dist/web/assets/clojure-P80f7IUj.js +1 -0
- package/dist/web/assets/cmake-D1j8_8rp.js +1 -0
- package/dist/web/assets/cobol-nBiQ_Alo.js +1 -0
- package/dist/web/assets/codeowners-Bp6g37R7.js +1 -0
- package/dist/web/assets/codeql-DsOJ9woJ.js +1 -0
- package/dist/web/assets/coffee-Ch7k5sss.js +1 -0
- package/dist/web/assets/common-lisp-Cg-RD9OK.js +1 -0
- package/dist/web/assets/coq-DkFqJrB1.js +1 -0
- package/dist/web/assets/cpp-UfJy6YNI.js +1 -0
- package/dist/web/assets/crystal-DGywbUpC.js +1 -0
- package/dist/web/assets/csharp-DSvCPggb.js +1 -0
- package/dist/web/assets/css-CLj8gQPS.js +1 -0
- package/dist/web/assets/csv-fuZLfV_i.js +1 -0
- package/dist/web/assets/cue-D82EKSYY.js +1 -0
- package/dist/web/assets/cypher-COkxafJQ.js +1 -0
- package/dist/web/assets/d-85-TOEBH.js +1 -0
- package/dist/web/assets/dark-plus-C3mMm8J8.js +1 -0
- package/dist/web/assets/dart-bE4Kk8sk.js +1 -0
- package/dist/web/assets/dax-CEL-wOlO.js +1 -0
- package/dist/web/assets/desktop-BmXAJ9_W.js +1 -0
- package/dist/web/assets/diff-D97Zzqfu.js +1 -0
- package/dist/web/assets/docker-BcOcwvcX.js +1 -0
- package/dist/web/assets/dotenv-Da5cRb03.js +1 -0
- package/dist/web/assets/dracula-BzJJZx-M.js +1 -0
- package/dist/web/assets/dracula-soft-BXkSAIEj.js +1 -0
- package/dist/web/assets/dream-maker-BtqSS_iP.js +1 -0
- package/dist/web/assets/edge-FbVlp4U3.js +1 -0
- package/dist/web/assets/elixir-CkH2-t6x.js +1 -0
- package/dist/web/assets/elm-DbKCFpqz.js +1 -0
- package/dist/web/assets/emacs-lisp-CXvaQtF9.js +1 -0
- package/dist/web/assets/erb-Dm6A9KJ5.js +1 -0
- package/dist/web/assets/erlang-DsQrWhSR.js +1 -0
- package/dist/web/assets/everforest-dark-BgDCqdQA.js +1 -0
- package/dist/web/assets/everforest-light-C8M2exoo.js +1 -0
- package/dist/web/assets/fennel-BYunw83y.js +1 -0
- package/dist/web/assets/fish-BvzEVeQv.js +1 -0
- package/dist/web/assets/fluent-C4IJs8-o.js +1 -0
- package/dist/web/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
- package/dist/web/assets/fortran-free-form-BxgE0vQu.js +1 -0
- package/dist/web/assets/fsharp-CXgrBDvD.js +1 -0
- package/dist/web/assets/gdresource-BOOCDP_w.js +1 -0
- package/dist/web/assets/gdscript-C5YyOfLZ.js +1 -0
- package/dist/web/assets/gdshader-DkwncUOv.js +1 -0
- package/dist/web/assets/genie-D0YGMca9.js +1 -0
- package/dist/web/assets/gherkin-DyxjwDmM.js +1 -0
- package/dist/web/assets/git-commit-F4YmCXRG.js +1 -0
- package/dist/web/assets/git-rebase-r7XF79zn.js +1 -0
- package/dist/web/assets/github-dark-DHJKELXO.js +1 -0
- package/dist/web/assets/github-dark-default-Cuk6v7N8.js +1 -0
- package/dist/web/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
- package/dist/web/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
- package/dist/web/assets/github-light-DAi9KRSo.js +1 -0
- package/dist/web/assets/github-light-default-D7oLnXFd.js +1 -0
- package/dist/web/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
- package/dist/web/assets/gleam-BspZqrRM.js +1 -0
- package/dist/web/assets/glimmer-js-ByusRIyA.js +1 -0
- package/dist/web/assets/glimmer-ts-BfAWNZQY.js +1 -0
- package/dist/web/assets/glsl-DplSGwfg.js +1 -0
- package/dist/web/assets/gn-n2N0HUVH.js +1 -0
- package/dist/web/assets/gnuplot-DdkO51Og.js +1 -0
- package/dist/web/assets/go-C27-OAKa.js +1 -0
- package/dist/web/assets/graphql-ChdNCCLP.js +1 -0
- package/dist/web/assets/groovy-gcz8RCvz.js +1 -0
- package/dist/web/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
- package/dist/web/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
- package/dist/web/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
- package/dist/web/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
- package/dist/web/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
- package/dist/web/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
- package/dist/web/assets/hack-DbPARsA_.js +1 -0
- package/dist/web/assets/haml-D5jkg6IW.js +1 -0
- package/dist/web/assets/handlebars-BpdQsYii.js +1 -0
- package/dist/web/assets/haskell-Df6bDoY_.js +1 -0
- package/dist/web/assets/haxe-CzTSHFRz.js +1 -0
- package/dist/web/assets/hcl-BWvSN4gD.js +1 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-CyimQElG.js +1 -0
- package/dist/web/assets/hjson-D5-asLiD.js +1 -0
- package/dist/web/assets/hlsl-D3lLCCz7.js +1 -0
- package/dist/web/assets/horizon-BUw7H-hv.js +1 -0
- package/dist/web/assets/horizon-bright-CUuTKBJd.js +1 -0
- package/dist/web/assets/houston-DnULxvSX.js +1 -0
- package/dist/web/assets/html-derivative-DlHx6ybY.js +1 -0
- package/dist/web/assets/html-pp8916En.js +1 -0
- package/dist/web/assets/http-jrhK8wxY.js +1 -0
- package/dist/web/assets/hurl-irOxFIW8.js +1 -0
- package/dist/web/assets/hxml-Bvhsp5Yf.js +1 -0
- package/dist/web/assets/hy-DFXneXwc.js +1 -0
- package/dist/web/assets/imba-DGztddWO.js +1 -0
- package/dist/web/assets/index-D5rSlaXz.js +341 -0
- package/dist/web/assets/index-YIUxhOuk.css +1 -0
- package/dist/web/assets/ini-BEwlwnbL.js +1 -0
- package/dist/web/assets/java-CylS5w8V.js +1 -0
- package/dist/web/assets/javascript-wDzz0qaB.js +1 -0
- package/dist/web/assets/jinja-f2NsQr07.js +1 -0
- package/dist/web/assets/jison-wvAkD_A8.js +1 -0
- package/dist/web/assets/json-Cp-IABpG.js +1 -0
- package/dist/web/assets/json5-C9tS-k6U.js +1 -0
- package/dist/web/assets/jsonc-Des-eS-w.js +1 -0
- package/dist/web/assets/jsonl-DcaNXYhu.js +1 -0
- package/dist/web/assets/jsonnet-DFQXde-d.js +1 -0
- package/dist/web/assets/jssm-C2t-YnRu.js +1 -0
- package/dist/web/assets/jsx-g9-lgVsj.js +1 -0
- package/dist/web/assets/julia-D7OTSIA_.js +1 -0
- package/dist/web/assets/just-CUsbIsdP.js +1 -0
- package/dist/web/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
- package/dist/web/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
- package/dist/web/assets/kanagawa-wave-DWedfzmr.js +1 -0
- package/dist/web/assets/kdl-DV7GczEv.js +1 -0
- package/dist/web/assets/kotlin-BdnUsdx6.js +1 -0
- package/dist/web/assets/kusto-wEQ09or8.js +1 -0
- package/dist/web/assets/laserwave-DUszq2jm.js +1 -0
- package/dist/web/assets/latex-CaSxy8MP.js +1 -0
- package/dist/web/assets/lean-BZvkOJ9d.js +1 -0
- package/dist/web/assets/less-B1dDrJ26.js +1 -0
- package/dist/web/assets/light-plus-B7mTdjB0.js +1 -0
- package/dist/web/assets/liquid-C0sCDyMI.js +1 -0
- package/dist/web/assets/llvm-DjAJT7YJ.js +1 -0
- package/dist/web/assets/log-2UxHyX5q.js +1 -0
- package/dist/web/assets/logo-BtOb2qkB.js +1 -0
- package/dist/web/assets/lua-BaeVxFsk.js +1 -0
- package/dist/web/assets/luau-KW6xsasC.js +1 -0
- package/dist/web/assets/make-CHLpvVh8.js +1 -0
- package/dist/web/assets/markdown-Cvjx9yec.js +1 -0
- package/dist/web/assets/marko-DjSrsDqO.js +1 -0
- package/dist/web/assets/material-theme-D5KoaKCx.js +1 -0
- package/dist/web/assets/material-theme-darker-BfHTSMKl.js +1 -0
- package/dist/web/assets/material-theme-lighter-B0m2ddpp.js +1 -0
- package/dist/web/assets/material-theme-ocean-CyktbL80.js +1 -0
- package/dist/web/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
- package/dist/web/assets/matlab-D7o27uSR.js +1 -0
- package/dist/web/assets/mdc-DTYItulj.js +1 -0
- package/dist/web/assets/mdx-Cmh6b_Ma.js +1 -0
- package/dist/web/assets/mermaid-mWjccvbQ.js +1 -0
- package/dist/web/assets/min-dark-CafNBF8u.js +1 -0
- package/dist/web/assets/min-light-CTRr51gU.js +1 -0
- package/dist/web/assets/mipsasm-CKIfxQSi.js +1 -0
- package/dist/web/assets/mojo-rZm6bMo-.js +1 -0
- package/dist/web/assets/monokai-D4h5O-jR.js +1 -0
- package/dist/web/assets/moonbit-_H4v1dQx.js +1 -0
- package/dist/web/assets/move-IF9eRakj.js +1 -0
- package/dist/web/assets/narrat-DRg8JJMk.js +1 -0
- package/dist/web/assets/nextflow-C-mBbutL.js +1 -0
- package/dist/web/assets/nextflow-groovy-vE_lwT2v.js +1 -0
- package/dist/web/assets/nginx-BpAMiNFr.js +1 -0
- package/dist/web/assets/night-owl-C39BiMTA.js +1 -0
- package/dist/web/assets/night-owl-light-CMTm3GFP.js +1 -0
- package/dist/web/assets/nim-BIad80T-.js +1 -0
- package/dist/web/assets/nix-CwoSXNpI.js +1 -0
- package/dist/web/assets/nord-Ddv68eIx.js +1 -0
- package/dist/web/assets/nushell-Cz2AlsmD.js +1 -0
- package/dist/web/assets/objective-c-DXmwc3jG.js +1 -0
- package/dist/web/assets/objective-cpp-CLxacb5B.js +1 -0
- package/dist/web/assets/ocaml-C0hk2d4L.js +1 -0
- package/dist/web/assets/odin-BBf5iR-q.js +1 -0
- package/dist/web/assets/one-dark-pro-DVMEJ2y_.js +1 -0
- package/dist/web/assets/one-light-C3Wv6jpd.js +1 -0
- package/dist/web/assets/openscad-C4EeE6gA.js +1 -0
- package/dist/web/assets/pascal-D93ZcfNL.js +1 -0
- package/dist/web/assets/perl-B9cMNwum.js +1 -0
- package/dist/web/assets/php-Csjmro_R.js +1 -0
- package/dist/web/assets/pkl-u5AG7uiY.js +1 -0
- package/dist/web/assets/plastic-3e1v2bzS.js +1 -0
- package/dist/web/assets/plsql-ChMvpjG-.js +1 -0
- package/dist/web/assets/po-BTJTHyun.js +1 -0
- package/dist/web/assets/poimandres-CS3Unz2-.js +1 -0
- package/dist/web/assets/polar-C0HS_06l.js +1 -0
- package/dist/web/assets/postcss-CXtECtnM.js +1 -0
- package/dist/web/assets/powerquery-CEu0bR-o.js +1 -0
- package/dist/web/assets/powershell-Dpen1YoG.js +1 -0
- package/dist/web/assets/prisma-Dd19v3D-.js +1 -0
- package/dist/web/assets/prolog-CbFg5uaA.js +1 -0
- package/dist/web/assets/proto-C7zT0LnQ.js +1 -0
- package/dist/web/assets/pug-DKIMFp6K.js +1 -0
- package/dist/web/assets/puppet-BMWR74SV.js +1 -0
- package/dist/web/assets/purescript-CklMAg4u.js +1 -0
- package/dist/web/assets/python-B6aJPvgy.js +1 -0
- package/dist/web/assets/qml-3beO22l8.js +1 -0
- package/dist/web/assets/qmldir-C8lEn-DE.js +1 -0
- package/dist/web/assets/qss-IeuSbFQv.js +1 -0
- package/dist/web/assets/r-Dspwwk_N.js +1 -0
- package/dist/web/assets/racket-BqYA7rlc.js +1 -0
- package/dist/web/assets/raku-DXvB9xmW.js +1 -0
- package/dist/web/assets/razor-BjBPvh-w.js +1 -0
- package/dist/web/assets/red-bN70gL4F.js +1 -0
- package/dist/web/assets/reg-C-SQnVFl.js +1 -0
- package/dist/web/assets/regexp-CDVJQ6XC.js +1 -0
- package/dist/web/assets/rel-C3B-1QV4.js +1 -0
- package/dist/web/assets/riscv-BM1_JUlF.js +1 -0
- package/dist/web/assets/ron-D8l8udqQ.js +1 -0
- package/dist/web/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
- package/dist/web/assets/rose-pine-moon-D4_iv3hh.js +1 -0
- package/dist/web/assets/rose-pine-qdsjHGoJ.js +1 -0
- package/dist/web/assets/rosmsg-BJDFO7_C.js +1 -0
- package/dist/web/assets/rst-CpCqk9r5.js +1 -0
- package/dist/web/assets/ruby-DyJCeAvU.js +1 -0
- package/dist/web/assets/rust-B1yitclQ.js +1 -0
- package/dist/web/assets/sas-DEy46yEz.js +1 -0
- package/dist/web/assets/sass-Cj5Yp3dK.js +1 -0
- package/dist/web/assets/scala-C151Ov-r.js +1 -0
- package/dist/web/assets/scheme-C98Dy4si.js +1 -0
- package/dist/web/assets/scss-D5BDwBP9.js +1 -0
- package/dist/web/assets/sdbl-DVxCFoDh.js +1 -0
- package/dist/web/assets/shaderlab-Dg9Lc6iA.js +1 -0
- package/dist/web/assets/shellscript-Yzrsuije.js +1 -0
- package/dist/web/assets/shellsession-BADoaaVG.js +1 -0
- package/dist/web/assets/slack-dark-BthQWCQV.js +1 -0
- package/dist/web/assets/slack-ochin-DqwNpetd.js +1 -0
- package/dist/web/assets/smalltalk-BERRCDM3.js +1 -0
- package/dist/web/assets/snazzy-light-Bw305WKR.js +1 -0
- package/dist/web/assets/solarized-dark-DXbdFlpD.js +1 -0
- package/dist/web/assets/solarized-light-L9t79GZl.js +1 -0
- package/dist/web/assets/solidity-rGO070M0.js +1 -0
- package/dist/web/assets/soy-8wufbnw4.js +1 -0
- package/dist/web/assets/sparql-rVzFXLq3.js +1 -0
- package/dist/web/assets/splunk-BtCnVYZw.js +1 -0
- package/dist/web/assets/sql-CRqJ_cUM.js +1 -0
- package/dist/web/assets/ssh-config-_ykCGR6B.js +1 -0
- package/dist/web/assets/stata-DI20mbqo.js +1 -0
- package/dist/web/assets/stylus-BEDo0Tqx.js +1 -0
- package/dist/web/assets/surrealql-Bq5Q-fJD.js +1 -0
- package/dist/web/assets/svelte-Cy7k_4gC.js +1 -0
- package/dist/web/assets/swift-D82vCrfD.js +1 -0
- package/dist/web/assets/synthwave-84-CbfX1IO0.js +1 -0
- package/dist/web/assets/system-verilog-CnnmHF94.js +1 -0
- package/dist/web/assets/systemd-4A_iFExJ.js +1 -0
- package/dist/web/assets/talonscript-CkByrt1z.js +1 -0
- package/dist/web/assets/tasl-QIJgUcNo.js +1 -0
- package/dist/web/assets/tcl-dwOrl1Do.js +1 -0
- package/dist/web/assets/templ-DhtptRzy.js +1 -0
- package/dist/web/assets/terraform-BETggiCN.js +1 -0
- package/dist/web/assets/tex-idrVyKtj.js +1 -0
- package/dist/web/assets/tokyo-night-hegEt444.js +1 -0
- package/dist/web/assets/toml-vGWfd6FD.js +1 -0
- package/dist/web/assets/ts-tags-D351s5mN.js +1 -0
- package/dist/web/assets/tsv-B_m7g4N7.js +1 -0
- package/dist/web/assets/tsx-COt5Ahok.js +1 -0
- package/dist/web/assets/turtle-BsS91CYL.js +1 -0
- package/dist/web/assets/twig-CW1WmMYd.js +1 -0
- package/dist/web/assets/typescript-BPQ3VLAy.js +1 -0
- package/dist/web/assets/typespec-CAFt9gP4.js +1 -0
- package/dist/web/assets/typst-DHCkPAjA.js +1 -0
- package/dist/web/assets/v-BcVCzyr7.js +1 -0
- package/dist/web/assets/vala-CsfeWuGM.js +1 -0
- package/dist/web/assets/vb-D17OF-Vu.js +1 -0
- package/dist/web/assets/verilog-BQ8w6xss.js +1 -0
- package/dist/web/assets/vesper-DRje8inN.js +1 -0
- package/dist/web/assets/vhdl-CeAyd5Ju.js +1 -0
- package/dist/web/assets/viml-CJc9bBzg.js +1 -0
- package/dist/web/assets/vitesse-black-Bkuqu6BP.js +1 -0
- package/dist/web/assets/vitesse-dark-D0r3Knsf.js +1 -0
- package/dist/web/assets/vitesse-light-CVO1_9PV.js +1 -0
- package/dist/web/assets/vue-D2xRrEX4.js +1 -0
- package/dist/web/assets/vue-html-AaS7Mt5G.js +1 -0
- package/dist/web/assets/vue-vine-BoDAl6tE.js +1 -0
- package/dist/web/assets/vyper-CDx5xZoG.js +1 -0
- package/dist/web/assets/wasm-CG6Dc4jp.js +1 -0
- package/dist/web/assets/wasm-MzD3tlZU.js +1 -0
- package/dist/web/assets/wenyan-BV7otONQ.js +1 -0
- package/dist/web/assets/wgsl-Dx-B1_4e.js +1 -0
- package/dist/web/assets/wikitext-BhOHFoWU.js +1 -0
- package/dist/web/assets/wit-5i3qLPDT.js +1 -0
- package/dist/web/assets/wolfram-lXgVvXCa.js +1 -0
- package/dist/web/assets/xml-sdJ4AIDG.js +1 -0
- package/dist/web/assets/xsl-CtQFsRM5.js +1 -0
- package/dist/web/assets/yaml-Buea-lGh.js +1 -0
- package/dist/web/assets/zenscript-DVFEvuxE.js +1 -0
- package/dist/web/assets/zig-VOosw3JB.js +1 -0
- package/dist/web/index.html +13 -0
- package/package.json +99 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { LRUCache } from "lru-cache";
|
|
3
|
+
import { getImageProcessor } from "./getImageProcessor.js";
|
|
4
|
+
import { ImageProcessingError } from "./ImageProcessingError.js";
|
|
5
|
+
import { MAX_PROMPT_IMAGE_INPUT_BYTES, } from "./prepareImageForPrompt.js";
|
|
6
|
+
export const CLAUDE_IMAGE_MAX_BASE64_BYTES = 5 * 1024 * 1024;
|
|
7
|
+
export const CLAUDE_IMAGE_MAX_RAW_BYTES = (CLAUDE_IMAGE_MAX_BASE64_BYTES * 3) / 4;
|
|
8
|
+
export const CLAUDE_IMAGE_MAX_DIMENSION = 2000;
|
|
9
|
+
const JPEG_QUALITIES = [80, 60, 40, 20];
|
|
10
|
+
const IMAGE_CACHE = new LRUCache({
|
|
11
|
+
max: 32,
|
|
12
|
+
maxSize: 64 * 1024 * 1024,
|
|
13
|
+
sizeCalculation: (image) => image.bytes.length,
|
|
14
|
+
});
|
|
15
|
+
/** Prepare an image using the same size and dimension policy as Claude Code. */
|
|
16
|
+
export async function prepareImageForClaude(bytes) {
|
|
17
|
+
const input = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
18
|
+
if (input.length === 0) {
|
|
19
|
+
throw new ImageProcessingError("Image file is empty.");
|
|
20
|
+
}
|
|
21
|
+
if (input.length > MAX_PROMPT_IMAGE_INPUT_BYTES) {
|
|
22
|
+
throw new ImageProcessingError("Image exceeds the supported size limit.");
|
|
23
|
+
}
|
|
24
|
+
const cacheKey = createHash("sha1").update(input).update("claude").digest("hex");
|
|
25
|
+
const cached = IMAGE_CACHE.get(cacheKey);
|
|
26
|
+
if (cached !== undefined) {
|
|
27
|
+
return cached;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const sharp = await getImageProcessor();
|
|
31
|
+
const metadata = await sharp(input, { failOn: "error" }).metadata();
|
|
32
|
+
const width = metadata.width;
|
|
33
|
+
const height = metadata.height;
|
|
34
|
+
if (width === undefined || height === undefined || width < 1 || height < 1) {
|
|
35
|
+
throw new ImageProcessingError("Image dimensions could not be determined.");
|
|
36
|
+
}
|
|
37
|
+
// Metadata alone does not prove the complete image is decodable.
|
|
38
|
+
await sharp(input, { failOn: "error" }).stats();
|
|
39
|
+
const sourceMediaType = metadata.format === "jpeg"
|
|
40
|
+
? "image/jpeg"
|
|
41
|
+
: metadata.format === "png"
|
|
42
|
+
? "image/png"
|
|
43
|
+
: metadata.format === "gif"
|
|
44
|
+
? "image/gif"
|
|
45
|
+
: metadata.format === "webp"
|
|
46
|
+
? "image/webp"
|
|
47
|
+
: undefined;
|
|
48
|
+
const scale = Math.min(1, CLAUDE_IMAGE_MAX_DIMENSION / width, CLAUDE_IMAGE_MAX_DIMENSION / height);
|
|
49
|
+
const targetWidth = Math.max(1, Math.round(width * scale));
|
|
50
|
+
const targetHeight = Math.max(1, Math.round(height * scale));
|
|
51
|
+
const shouldResize = targetWidth !== width || targetHeight !== height;
|
|
52
|
+
if (!shouldResize &&
|
|
53
|
+
input.length <= CLAUDE_IMAGE_MAX_RAW_BYTES &&
|
|
54
|
+
sourceMediaType !== undefined) {
|
|
55
|
+
const prepared = {
|
|
56
|
+
bytes: input,
|
|
57
|
+
height,
|
|
58
|
+
mediaType: sourceMediaType,
|
|
59
|
+
width,
|
|
60
|
+
};
|
|
61
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
62
|
+
return prepared;
|
|
63
|
+
}
|
|
64
|
+
if (!shouldResize && metadata.format === "png") {
|
|
65
|
+
const compressed = await sharp(input, { failOn: "error" })
|
|
66
|
+
.png({ compressionLevel: 9, palette: true })
|
|
67
|
+
.toBuffer();
|
|
68
|
+
if (compressed.length <= CLAUDE_IMAGE_MAX_RAW_BYTES) {
|
|
69
|
+
const prepared = {
|
|
70
|
+
bytes: compressed,
|
|
71
|
+
height,
|
|
72
|
+
mediaType: "image/png",
|
|
73
|
+
width,
|
|
74
|
+
};
|
|
75
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
76
|
+
return prepared;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (!shouldResize && input.length > CLAUDE_IMAGE_MAX_RAW_BYTES) {
|
|
80
|
+
for (const quality of JPEG_QUALITIES) {
|
|
81
|
+
const compressed = await sharp(input, { failOn: "error" })
|
|
82
|
+
.jpeg({ quality })
|
|
83
|
+
.toBuffer();
|
|
84
|
+
if (compressed.length <= CLAUDE_IMAGE_MAX_RAW_BYTES) {
|
|
85
|
+
const prepared = {
|
|
86
|
+
bytes: compressed,
|
|
87
|
+
height,
|
|
88
|
+
mediaType: "image/jpeg",
|
|
89
|
+
width,
|
|
90
|
+
};
|
|
91
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
92
|
+
return prepared;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
let resizedPipeline = sharp(input, { failOn: "error" }).resize(targetWidth, targetHeight, {
|
|
97
|
+
fit: "inside",
|
|
98
|
+
withoutEnlargement: true,
|
|
99
|
+
});
|
|
100
|
+
let resizedMediaType;
|
|
101
|
+
if (metadata.format === "jpeg") {
|
|
102
|
+
resizedPipeline = resizedPipeline.jpeg({ quality: 85 });
|
|
103
|
+
resizedMediaType = "image/jpeg";
|
|
104
|
+
}
|
|
105
|
+
else if (metadata.format === "webp") {
|
|
106
|
+
resizedPipeline = resizedPipeline.webp({ quality: 85 });
|
|
107
|
+
resizedMediaType = "image/webp";
|
|
108
|
+
}
|
|
109
|
+
else if (metadata.format === "gif") {
|
|
110
|
+
resizedPipeline = resizedPipeline.gif();
|
|
111
|
+
resizedMediaType = "image/gif";
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
resizedPipeline = resizedPipeline.png();
|
|
115
|
+
resizedMediaType = "image/png";
|
|
116
|
+
}
|
|
117
|
+
const resized = await resizedPipeline.toBuffer();
|
|
118
|
+
if (resized.length <= CLAUDE_IMAGE_MAX_RAW_BYTES) {
|
|
119
|
+
const prepared = {
|
|
120
|
+
bytes: resized,
|
|
121
|
+
height: targetHeight,
|
|
122
|
+
mediaType: resizedMediaType,
|
|
123
|
+
width: targetWidth,
|
|
124
|
+
};
|
|
125
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
126
|
+
return prepared;
|
|
127
|
+
}
|
|
128
|
+
if (metadata.format === "png") {
|
|
129
|
+
const compressed = await sharp(input, { failOn: "error" })
|
|
130
|
+
.resize(targetWidth, targetHeight, {
|
|
131
|
+
fit: "inside",
|
|
132
|
+
withoutEnlargement: true,
|
|
133
|
+
})
|
|
134
|
+
.png({ compressionLevel: 9, palette: true })
|
|
135
|
+
.toBuffer();
|
|
136
|
+
if (compressed.length <= CLAUDE_IMAGE_MAX_RAW_BYTES) {
|
|
137
|
+
const prepared = {
|
|
138
|
+
bytes: compressed,
|
|
139
|
+
height: targetHeight,
|
|
140
|
+
mediaType: "image/png",
|
|
141
|
+
width: targetWidth,
|
|
142
|
+
};
|
|
143
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
144
|
+
return prepared;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
for (const quality of JPEG_QUALITIES) {
|
|
148
|
+
const compressed = await sharp(input, { failOn: "error" })
|
|
149
|
+
.resize(targetWidth, targetHeight, {
|
|
150
|
+
fit: "inside",
|
|
151
|
+
withoutEnlargement: true,
|
|
152
|
+
})
|
|
153
|
+
.jpeg({ quality })
|
|
154
|
+
.toBuffer();
|
|
155
|
+
if (compressed.length <= CLAUDE_IMAGE_MAX_RAW_BYTES) {
|
|
156
|
+
const prepared = {
|
|
157
|
+
bytes: compressed,
|
|
158
|
+
height: targetHeight,
|
|
159
|
+
mediaType: "image/jpeg",
|
|
160
|
+
width: targetWidth,
|
|
161
|
+
};
|
|
162
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
163
|
+
return prepared;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const fallbackWidth = Math.min(targetWidth, 1000);
|
|
167
|
+
const fallbackHeight = Math.max(1, Math.round((targetHeight * fallbackWidth) / targetWidth));
|
|
168
|
+
const fallback = await sharp(input, { failOn: "error" })
|
|
169
|
+
.resize(fallbackWidth, fallbackHeight, {
|
|
170
|
+
fit: "inside",
|
|
171
|
+
withoutEnlargement: true,
|
|
172
|
+
})
|
|
173
|
+
.jpeg({ quality: 20 })
|
|
174
|
+
.toBuffer();
|
|
175
|
+
if (fallback.length > CLAUDE_IMAGE_MAX_RAW_BYTES) {
|
|
176
|
+
throw new ImageProcessingError("Image could not be compressed to Claude's size limit.");
|
|
177
|
+
}
|
|
178
|
+
const prepared = {
|
|
179
|
+
bytes: fallback,
|
|
180
|
+
height: fallbackHeight,
|
|
181
|
+
mediaType: "image/jpeg",
|
|
182
|
+
width: fallbackWidth,
|
|
183
|
+
};
|
|
184
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
185
|
+
return prepared;
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
if (error instanceof ImageProcessingError) {
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
throw new ImageProcessingError("Image could not be decoded or normalized for Claude.", {
|
|
192
|
+
cause: error,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const IMAGE_PROCESSING_ERROR_PLACEHOLDER = "image content omitted because it could not be processed";
|
|
2
|
+
export declare const MAX_PROMPT_IMAGE_INPUT_BYTES: number;
|
|
3
|
+
export type PromptImageDetail = "high" | "original";
|
|
4
|
+
export type PromptImageMediaType = "image/gif" | "image/jpeg" | "image/png" | "image/webp";
|
|
5
|
+
export interface PreparedPromptImage {
|
|
6
|
+
bytes: Buffer;
|
|
7
|
+
height: number;
|
|
8
|
+
mediaType: PromptImageMediaType;
|
|
9
|
+
width: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function prepareImageForPrompt(bytes: Uint8Array, detail: PromptImageDetail): Promise<PreparedPromptImage>;
|
|
12
|
+
//# sourceMappingURL=prepareImageForPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareImageForPrompt.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/prepareImageForPrompt.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,kCAAkC,4DACc,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAgB7D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAE3F,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,qBAAqB,CACvC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAoF9B"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { LRUCache } from "lru-cache";
|
|
3
|
+
import { getImageProcessor } from "./getImageProcessor.js";
|
|
4
|
+
import { ImageProcessingError } from "./ImageProcessingError.js";
|
|
5
|
+
import { promptImageOutputDimensions, } from "./promptImageOutputDimensions.js";
|
|
6
|
+
export const IMAGE_PROCESSING_ERROR_PLACEHOLDER = "image content omitted because it could not be processed";
|
|
7
|
+
export const MAX_PROMPT_IMAGE_INPUT_BYTES = 32 * 1024 * 1024;
|
|
8
|
+
const HIGH_DETAIL_LIMITS = {
|
|
9
|
+
maxDimension: 2048,
|
|
10
|
+
maxPatches: 2_500,
|
|
11
|
+
};
|
|
12
|
+
const ORIGINAL_DETAIL_LIMITS = {
|
|
13
|
+
maxDimension: 6000,
|
|
14
|
+
maxPatches: 10_000,
|
|
15
|
+
};
|
|
16
|
+
const IMAGE_CACHE = new LRUCache({
|
|
17
|
+
max: 32,
|
|
18
|
+
maxSize: 64 * 1024 * 1024,
|
|
19
|
+
sizeCalculation: (image) => image.bytes.length,
|
|
20
|
+
});
|
|
21
|
+
export async function prepareImageForPrompt(bytes, detail) {
|
|
22
|
+
const input = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
23
|
+
if (input.length === 0) {
|
|
24
|
+
throw new ImageProcessingError("Image file is empty.");
|
|
25
|
+
}
|
|
26
|
+
if (input.length > MAX_PROMPT_IMAGE_INPUT_BYTES) {
|
|
27
|
+
throw new ImageProcessingError("Image exceeds the supported size limit.");
|
|
28
|
+
}
|
|
29
|
+
const cacheKey = createHash("sha1").update(input).update(detail).digest("hex");
|
|
30
|
+
const cached = IMAGE_CACHE.get(cacheKey);
|
|
31
|
+
if (cached !== undefined) {
|
|
32
|
+
return cached;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const sharp = await getImageProcessor();
|
|
36
|
+
const metadata = await sharp(input, { failOn: "error" }).metadata();
|
|
37
|
+
const width = metadata.width;
|
|
38
|
+
const height = metadata.height;
|
|
39
|
+
if (width === undefined || height === undefined || width < 1 || height < 1) {
|
|
40
|
+
throw new ImageProcessingError("Image dimensions could not be determined.");
|
|
41
|
+
}
|
|
42
|
+
const sourceFormat = metadata.format;
|
|
43
|
+
const preservableMediaType = sourceFormat === "jpeg"
|
|
44
|
+
? "image/jpeg"
|
|
45
|
+
: sourceFormat === "png"
|
|
46
|
+
? "image/png"
|
|
47
|
+
: sourceFormat === "webp"
|
|
48
|
+
? "image/webp"
|
|
49
|
+
: undefined;
|
|
50
|
+
const limits = detail === "original" ? ORIGINAL_DETAIL_LIMITS : HIGH_DETAIL_LIMITS;
|
|
51
|
+
const target = promptImageOutputDimensions(width, height, limits);
|
|
52
|
+
const shouldResize = target.width !== width || target.height !== height;
|
|
53
|
+
if (!shouldResize && preservableMediaType !== undefined) {
|
|
54
|
+
await sharp(input, { failOn: "error" }).stats();
|
|
55
|
+
const prepared = {
|
|
56
|
+
bytes: input,
|
|
57
|
+
height,
|
|
58
|
+
mediaType: preservableMediaType,
|
|
59
|
+
width,
|
|
60
|
+
};
|
|
61
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
62
|
+
return prepared;
|
|
63
|
+
}
|
|
64
|
+
let pipeline = sharp(input, { failOn: "error" });
|
|
65
|
+
if (shouldResize) {
|
|
66
|
+
pipeline = pipeline.resize(target.width, target.height, {
|
|
67
|
+
fit: "fill",
|
|
68
|
+
kernel: sharp.kernel.linear,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// Match Codex: keep EXIF orientation paired with unrotated pixels instead of baking it in.
|
|
72
|
+
pipeline = pipeline.keepMetadata();
|
|
73
|
+
const outputMediaType = preservableMediaType ?? "image/png";
|
|
74
|
+
if (outputMediaType === "image/jpeg") {
|
|
75
|
+
pipeline = pipeline.jpeg({ quality: 85 });
|
|
76
|
+
}
|
|
77
|
+
else if (outputMediaType === "image/webp") {
|
|
78
|
+
pipeline = pipeline.webp({ lossless: true });
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
pipeline = pipeline.png();
|
|
82
|
+
}
|
|
83
|
+
const prepared = {
|
|
84
|
+
bytes: await pipeline.toBuffer(),
|
|
85
|
+
height: target.height,
|
|
86
|
+
mediaType: outputMediaType,
|
|
87
|
+
width: target.width,
|
|
88
|
+
};
|
|
89
|
+
IMAGE_CACHE.set(cacheKey, prepared);
|
|
90
|
+
return prepared;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (error instanceof ImageProcessingError) {
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
throw new ImageProcessingError("Image could not be decoded or normalized.", {
|
|
97
|
+
cause: error,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface PromptImageResizeLimits {
|
|
2
|
+
maxDimension: number;
|
|
3
|
+
maxPatches: number;
|
|
4
|
+
}
|
|
5
|
+
export interface PromptImageDimensions {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function promptImageOutputDimensions(inputWidth: number, inputHeight: number, limits: PromptImageResizeLimits): PromptImageDimensions;
|
|
10
|
+
//# sourceMappingURL=promptImageOutputDimensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptImageOutputDimensions.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/promptImageOutputDimensions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,uBAAuB,GAChC,qBAAqB,CAmCvB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const PATCH_SIZE = 32;
|
|
2
|
+
export function promptImageOutputDimensions(inputWidth, inputHeight, limits) {
|
|
3
|
+
const width = Math.max(1, inputWidth);
|
|
4
|
+
const height = Math.max(1, inputHeight);
|
|
5
|
+
const initialPatchCount = Math.ceil(width / PATCH_SIZE) * Math.ceil(height / PATCH_SIZE);
|
|
6
|
+
if (width <= limits.maxDimension &&
|
|
7
|
+
height <= limits.maxDimension &&
|
|
8
|
+
initialPatchCount <= limits.maxPatches) {
|
|
9
|
+
return { width, height };
|
|
10
|
+
}
|
|
11
|
+
const dimensionScale = Math.min(limits.maxDimension / Math.max(width, height), 1);
|
|
12
|
+
const dimensionWidth = Math.max(1, Math.round(width * dimensionScale));
|
|
13
|
+
const dimensionHeight = Math.max(1, Math.round(height * dimensionScale));
|
|
14
|
+
const dimensionPatchCount = Math.ceil(dimensionWidth / PATCH_SIZE) * Math.ceil(dimensionHeight / PATCH_SIZE);
|
|
15
|
+
if (dimensionPatchCount <= limits.maxPatches) {
|
|
16
|
+
return { width: dimensionWidth, height: dimensionHeight };
|
|
17
|
+
}
|
|
18
|
+
let patchScale = Math.sqrt((PATCH_SIZE * PATCH_SIZE * limits.maxPatches) / dimensionWidth / dimensionHeight);
|
|
19
|
+
const scaledPatchesWide = (dimensionWidth * patchScale) / PATCH_SIZE;
|
|
20
|
+
const scaledPatchesHigh = (dimensionHeight * patchScale) / PATCH_SIZE;
|
|
21
|
+
patchScale *= Math.min(Math.floor(scaledPatchesWide) / scaledPatchesWide, Math.floor(scaledPatchesHigh) / scaledPatchesHigh);
|
|
22
|
+
return {
|
|
23
|
+
width: Math.max(1, Math.floor(dimensionWidth * patchScale)),
|
|
24
|
+
height: Math.max(1, Math.floor(dimensionHeight * patchScale)),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AgentContext } from "../../agent/context/AgentContext.js";
|
|
2
|
+
export interface GrepOptions {
|
|
3
|
+
pattern: string;
|
|
4
|
+
path?: string;
|
|
5
|
+
glob?: string;
|
|
6
|
+
outputMode?: "content" | "files_with_matches" | "count";
|
|
7
|
+
before?: number;
|
|
8
|
+
after?: number;
|
|
9
|
+
context?: number;
|
|
10
|
+
lineNumbers?: boolean;
|
|
11
|
+
ignoreCase?: boolean;
|
|
12
|
+
literal?: boolean;
|
|
13
|
+
type?: string;
|
|
14
|
+
headLimit?: number;
|
|
15
|
+
offset?: number;
|
|
16
|
+
multiline?: boolean;
|
|
17
|
+
cwd?: string;
|
|
18
|
+
signal?: AbortSignal;
|
|
19
|
+
}
|
|
20
|
+
export interface GrepResult {
|
|
21
|
+
text: string;
|
|
22
|
+
matches: number;
|
|
23
|
+
truncated: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function runRipgrep(options: GrepOptions, context: AgentContext): Promise<GrepResult>;
|
|
26
|
+
export interface GlobOptions {
|
|
27
|
+
pattern: string;
|
|
28
|
+
path?: string;
|
|
29
|
+
cwd?: string;
|
|
30
|
+
limit?: number;
|
|
31
|
+
signal?: AbortSignal;
|
|
32
|
+
}
|
|
33
|
+
export declare function globFiles(options: GlobOptions, context: AgentContext): Promise<readonly string[]>;
|
|
34
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,SAAS,GAAG,oBAAoB,GAAG,OAAO,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAmDjG;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,wBAAsB,SAAS,CAC3B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAe5B"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { join, relative, sep } from "node:path";
|
|
2
|
+
import { resolveToolPath } from "./path.js";
|
|
3
|
+
import { runCommand } from "./shell.js";
|
|
4
|
+
export async function runRipgrep(options, context) {
|
|
5
|
+
const cwd = options.cwd ?? context.bash.cwd;
|
|
6
|
+
const target = options.path ? resolveToolPath(options.path, cwd) : cwd;
|
|
7
|
+
const args = [];
|
|
8
|
+
const outputMode = options.outputMode ?? "files_with_matches";
|
|
9
|
+
if (outputMode === "files_with_matches") {
|
|
10
|
+
args.push("--files-with-matches");
|
|
11
|
+
}
|
|
12
|
+
else if (outputMode === "count") {
|
|
13
|
+
args.push("--count");
|
|
14
|
+
}
|
|
15
|
+
else if (options.lineNumbers !== false) {
|
|
16
|
+
args.push("--line-number");
|
|
17
|
+
}
|
|
18
|
+
if (options.ignoreCase)
|
|
19
|
+
args.push("--ignore-case");
|
|
20
|
+
if (options.literal)
|
|
21
|
+
args.push("--fixed-strings");
|
|
22
|
+
if (options.glob)
|
|
23
|
+
args.push("--glob", options.glob);
|
|
24
|
+
if (options.type)
|
|
25
|
+
args.push("--type", options.type);
|
|
26
|
+
if (options.multiline)
|
|
27
|
+
args.push("--multiline", "--multiline-dotall");
|
|
28
|
+
if (options.context !== undefined)
|
|
29
|
+
args.push("--context", String(options.context));
|
|
30
|
+
if (options.before !== undefined)
|
|
31
|
+
args.push("--before-context", String(options.before));
|
|
32
|
+
if (options.after !== undefined)
|
|
33
|
+
args.push("--after-context", String(options.after));
|
|
34
|
+
args.push(options.pattern, target);
|
|
35
|
+
const commandOptions = {
|
|
36
|
+
command: "rg",
|
|
37
|
+
args,
|
|
38
|
+
cwd,
|
|
39
|
+
timeoutMs: 30_000,
|
|
40
|
+
maxOutputBytes: 512_000,
|
|
41
|
+
};
|
|
42
|
+
if (options.signal !== undefined) {
|
|
43
|
+
commandOptions.signal = options.signal;
|
|
44
|
+
}
|
|
45
|
+
const command = await runCommand(commandOptions, context);
|
|
46
|
+
if (command.exitCode !== 0 && command.exitCode !== 1) {
|
|
47
|
+
throw new Error(command.stderr || command.stdout || `rg exited ${command.exitCode}`);
|
|
48
|
+
}
|
|
49
|
+
const lines = command.stdout.length === 0 ? [] : command.stdout.replace(/\n$/, "").split("\n");
|
|
50
|
+
const offset = Math.max(0, options.offset ?? 0);
|
|
51
|
+
const headLimit = options.headLimit ?? 250;
|
|
52
|
+
const limited = headLimit === 0 ? lines.slice(offset) : lines.slice(offset, offset + headLimit);
|
|
53
|
+
const truncated = headLimit !== 0 && offset + limited.length < lines.length;
|
|
54
|
+
return {
|
|
55
|
+
text: limited.join("\n"),
|
|
56
|
+
matches: lines.length,
|
|
57
|
+
truncated,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export async function globFiles(options, context) {
|
|
61
|
+
const cwd = options.cwd ?? context.fs.cwd;
|
|
62
|
+
const root = options.path ? resolveToolPath(options.path, cwd) : cwd;
|
|
63
|
+
const regex = globToRegExp(options.pattern);
|
|
64
|
+
const files = [];
|
|
65
|
+
await walkFiles(root, context, options.signal, async (filePath, mtimeMs) => {
|
|
66
|
+
const rel = relative(root, filePath).split(sep).join("/");
|
|
67
|
+
if (regex.test(rel) || regex.test(filePath.split(sep).join("/"))) {
|
|
68
|
+
files.push({ path: filePath, mtimeMs });
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
files.sort((left, right) => right.mtimeMs - left.mtimeMs || left.path.localeCompare(right.path));
|
|
72
|
+
return files.slice(0, options.limit ?? 100).map((file) => file.path);
|
|
73
|
+
}
|
|
74
|
+
async function walkFiles(root, context, signal, onFile) {
|
|
75
|
+
if (signal?.aborted) {
|
|
76
|
+
throw new Error("Search aborted.");
|
|
77
|
+
}
|
|
78
|
+
const entries = await context.fs.readdir(root);
|
|
79
|
+
for (const name of entries) {
|
|
80
|
+
if (signal?.aborted) {
|
|
81
|
+
throw new Error("Search aborted.");
|
|
82
|
+
}
|
|
83
|
+
if (name === ".git" || name === "node_modules") {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const full = join(root, name);
|
|
87
|
+
const stats = await context.fs.stat(full);
|
|
88
|
+
if (stats.isDirectory) {
|
|
89
|
+
await walkFiles(full, context, signal, onFile);
|
|
90
|
+
}
|
|
91
|
+
else if (stats.isFile) {
|
|
92
|
+
await onFile(full, stats.mtimeMs);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function globToRegExp(pattern) {
|
|
97
|
+
let source = "";
|
|
98
|
+
for (let i = 0; i < pattern.length; i++) {
|
|
99
|
+
const char = pattern[i];
|
|
100
|
+
const next = pattern[i + 1];
|
|
101
|
+
if (char === "*" && next === "*") {
|
|
102
|
+
source += ".*";
|
|
103
|
+
i++;
|
|
104
|
+
}
|
|
105
|
+
else if (char === "*") {
|
|
106
|
+
source += "[^/]*";
|
|
107
|
+
}
|
|
108
|
+
else if (char === "?") {
|
|
109
|
+
source += "[^/]";
|
|
110
|
+
}
|
|
111
|
+
else if (char === "{") {
|
|
112
|
+
const end = pattern.indexOf("}", i);
|
|
113
|
+
if (end !== -1) {
|
|
114
|
+
source += `(${pattern
|
|
115
|
+
.slice(i + 1, end)
|
|
116
|
+
.split(",")
|
|
117
|
+
.map(escapeRegExp)
|
|
118
|
+
.join("|")})`;
|
|
119
|
+
i = end;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
source += "\\{";
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
source += escapeRegExp(char ?? "");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return new RegExp(`^${source}$`);
|
|
130
|
+
}
|
|
131
|
+
function escapeRegExp(value) {
|
|
132
|
+
return value.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
|
|
133
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Static } from "@sinclair/typebox";
|
|
2
|
+
import type { AgentContext } from "../../agent/context/AgentContext.js";
|
|
3
|
+
import type { ContentBlock } from "../../agent/types.js";
|
|
4
|
+
export declare const shellToolOutputSchema: import("@sinclair/typebox").TObject<{
|
|
5
|
+
stdout: import("@sinclair/typebox").TString;
|
|
6
|
+
stderr: import("@sinclair/typebox").TString;
|
|
7
|
+
exitCode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
|
|
8
|
+
timedOut: import("@sinclair/typebox").TBoolean;
|
|
9
|
+
}>;
|
|
10
|
+
export interface RunCommandOptions {
|
|
11
|
+
command: string;
|
|
12
|
+
args?: readonly string[];
|
|
13
|
+
cwd?: string;
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
maxOutputBytes?: number;
|
|
16
|
+
signal?: AbortSignal;
|
|
17
|
+
}
|
|
18
|
+
export interface RunCommandResult {
|
|
19
|
+
stdout: string;
|
|
20
|
+
stderr: string;
|
|
21
|
+
exitCode: number | null;
|
|
22
|
+
timedOut: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function runShellCommand(command: string, options: Omit<RunCommandOptions, "command" | "args"> | undefined, context: AgentContext): Promise<RunCommandResult>;
|
|
25
|
+
export declare function runCommand(options: RunCommandOptions, context: AgentContext): Promise<RunCommandResult>;
|
|
26
|
+
export declare function shellOutputToText(result: Static<typeof shellToolOutputSchema>): readonly ContentBlock[];
|
|
27
|
+
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,qBAAqB;;;;;EAKhC,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,MAAM,CAAC,YAAK,EACzD,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED,wBAAsB,UAAU,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAUD,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,CAAC,OAAO,qBAAqB,CAAC,GAC7C,SAAS,YAAY,EAAE,CAQzB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
export const shellToolOutputSchema = Type.Object({
|
|
3
|
+
stdout: Type.String(),
|
|
4
|
+
stderr: Type.String(),
|
|
5
|
+
exitCode: Type.Union([Type.Number(), Type.Null()]),
|
|
6
|
+
timedOut: Type.Boolean(),
|
|
7
|
+
});
|
|
8
|
+
export async function runShellCommand(command, options = {}, context) {
|
|
9
|
+
const runOptions = {
|
|
10
|
+
command,
|
|
11
|
+
cwd: options.cwd ?? context.bash.cwd,
|
|
12
|
+
};
|
|
13
|
+
if (options.timeoutMs !== undefined)
|
|
14
|
+
runOptions.timeoutMs = options.timeoutMs;
|
|
15
|
+
if (options.maxOutputBytes !== undefined)
|
|
16
|
+
runOptions.maxOutputBytes = options.maxOutputBytes;
|
|
17
|
+
if (options.signal !== undefined)
|
|
18
|
+
runOptions.signal = options.signal;
|
|
19
|
+
return context.bash.run(runOptions);
|
|
20
|
+
}
|
|
21
|
+
export async function runCommand(options, context) {
|
|
22
|
+
const runOptions = {
|
|
23
|
+
command: [options.command, ...(options.args ?? []).map(shellQuote)].join(" "),
|
|
24
|
+
cwd: options.cwd ?? context.bash.cwd,
|
|
25
|
+
};
|
|
26
|
+
if (options.timeoutMs !== undefined)
|
|
27
|
+
runOptions.timeoutMs = options.timeoutMs;
|
|
28
|
+
if (options.maxOutputBytes !== undefined)
|
|
29
|
+
runOptions.maxOutputBytes = options.maxOutputBytes;
|
|
30
|
+
if (options.signal !== undefined)
|
|
31
|
+
runOptions.signal = options.signal;
|
|
32
|
+
return context.bash.run(runOptions);
|
|
33
|
+
}
|
|
34
|
+
function shellQuote(value) {
|
|
35
|
+
if (/^[A-Za-z0-9_./:=@%+-]+$/.test(value)) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
39
|
+
}
|
|
40
|
+
export function shellOutputToText(result) {
|
|
41
|
+
const chunks = [
|
|
42
|
+
result.stdout ? `stdout:\n${result.stdout}` : "",
|
|
43
|
+
result.stderr ? `stderr:\n${result.stderr}` : "",
|
|
44
|
+
`exit_code: ${result.exitCode ?? "null"}`,
|
|
45
|
+
result.timedOut ? "timed_out: true" : "",
|
|
46
|
+
].filter((chunk) => chunk.length > 0);
|
|
47
|
+
return [{ type: "text", text: chunks.join("\n\n") }];
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singleLineText.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/singleLineText.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarizeShellOutput.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/summarizeShellOutput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,qBAAqB,CAAC,GAAG,MAAM,CAQzF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { singleLineText } from "./singleLineText.js";
|
|
2
|
+
import { summarizeTextOutput } from "./summarizeTextOutput.js";
|
|
3
|
+
export function summarizeShellOutput(result) {
|
|
4
|
+
const suffix = result.timedOut
|
|
5
|
+
? " (timed out)"
|
|
6
|
+
: result.exitCode !== null && result.exitCode !== 0
|
|
7
|
+
? ` (exit ${result.exitCode})`
|
|
8
|
+
: "";
|
|
9
|
+
const output = summarizeTextOutput([result.stdout, result.stderr].filter(Boolean).join("\n"));
|
|
10
|
+
return singleLineText(`${output}${suffix}`);
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarizeTextOutput.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/summarizeTextOutput.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAgB,GAAG,MAAM,CAU/E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { countTextLines } from "./countTextLines.js";
|
|
2
|
+
import { singleLineText } from "./singleLineText.js";
|
|
3
|
+
export function summarizeTextOutput(text, empty = "(no output)") {
|
|
4
|
+
const lines = text.split(/\r?\n/u);
|
|
5
|
+
const firstLine = lines.find((line) => line.trim().length > 0);
|
|
6
|
+
if (firstLine === undefined) {
|
|
7
|
+
return empty;
|
|
8
|
+
}
|
|
9
|
+
const lineCount = countTextLines(text);
|
|
10
|
+
const suffix = lineCount > 1 ? ` (+${lineCount - 1} lines)` : "";
|
|
11
|
+
return singleLineText(`${firstLine}${suffix}`);
|
|
12
|
+
}
|