sema-core 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +150 -0
- package/dist/constants/config.d.ts +20 -0
- package/dist/constants/config.d.ts.map +1 -0
- package/dist/constants/config.js +31 -0
- package/dist/constants/config.js.map +1 -0
- package/dist/constants/message.d.ts +10 -0
- package/dist/constants/message.d.ts.map +1 -0
- package/dist/constants/message.js +25 -0
- package/dist/constants/message.js.map +1 -0
- package/dist/constants/product.d.ts +5 -0
- package/dist/constants/product.d.ts.map +1 -0
- package/dist/constants/product.js +8 -0
- package/dist/constants/product.js.map +1 -0
- package/dist/core/Conversation.d.ts +16 -0
- package/dist/core/Conversation.d.ts.map +1 -0
- package/dist/core/Conversation.js +226 -0
- package/dist/core/Conversation.js.map +1 -0
- package/dist/core/RunTools.d.ts +11 -0
- package/dist/core/RunTools.d.ts.map +1 -0
- package/dist/core/RunTools.js +244 -0
- package/dist/core/RunTools.js.map +1 -0
- package/dist/core/SemaCore.d.ts +49 -0
- package/dist/core/SemaCore.d.ts.map +1 -0
- package/dist/core/SemaCore.js +94 -0
- package/dist/core/SemaCore.js.map +1 -0
- package/dist/core/SemaEngine.d.ts +54 -0
- package/dist/core/SemaEngine.d.ts.map +1 -0
- package/dist/core/SemaEngine.js +335 -0
- package/dist/core/SemaEngine.js.map +1 -0
- package/dist/events/EventSystem.d.ts +42 -0
- package/dist/events/EventSystem.d.ts.map +1 -0
- package/dist/events/EventSystem.js +134 -0
- package/dist/events/EventSystem.js.map +1 -0
- package/dist/events/types.d.ts +300 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +4 -0
- package/dist/events/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/manager/ConfManager.d.ts +76 -0
- package/dist/manager/ConfManager.d.ts.map +1 -0
- package/dist/manager/ConfManager.js +329 -0
- package/dist/manager/ConfManager.js.map +1 -0
- package/dist/manager/ModelManager.d.ts +51 -0
- package/dist/manager/ModelManager.d.ts.map +1 -0
- package/dist/manager/ModelManager.js +291 -0
- package/dist/manager/ModelManager.js.map +1 -0
- package/dist/manager/PermissionManager.d.ts +16 -0
- package/dist/manager/PermissionManager.d.ts.map +1 -0
- package/dist/manager/PermissionManager.js +308 -0
- package/dist/manager/PermissionManager.js.map +1 -0
- package/dist/manager/StateManager.d.ts +164 -0
- package/dist/manager/StateManager.d.ts.map +1 -0
- package/dist/manager/StateManager.js +357 -0
- package/dist/manager/StateManager.js.map +1 -0
- package/dist/services/agents/agentsManager.d.ts +112 -0
- package/dist/services/agents/agentsManager.d.ts.map +1 -0
- package/dist/services/agents/agentsManager.js +394 -0
- package/dist/services/agents/agentsManager.js.map +1 -0
- package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts +3 -0
- package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts.map +1 -0
- package/dist/services/agents/defaultBuiltInAgentsConfs.js +102 -0
- package/dist/services/agents/defaultBuiltInAgentsConfs.js.map +1 -0
- package/dist/services/agents/genSystemPrompt.d.ts +23 -0
- package/dist/services/agents/genSystemPrompt.d.ts.map +1 -0
- package/dist/services/agents/genSystemPrompt.js +189 -0
- package/dist/services/agents/genSystemPrompt.js.map +1 -0
- package/dist/services/agents/prompt.d.ts +12 -0
- package/dist/services/agents/prompt.d.ts.map +1 -0
- package/dist/services/agents/prompt.js +162 -0
- package/dist/services/agents/prompt.js.map +1 -0
- package/dist/services/api/adapt/anthropic.d.ts +10 -0
- package/dist/services/api/adapt/anthropic.d.ts.map +1 -0
- package/dist/services/api/adapt/anthropic.js +233 -0
- package/dist/services/api/adapt/anthropic.js.map +1 -0
- package/dist/services/api/adapt/openai.d.ts +8 -0
- package/dist/services/api/adapt/openai.d.ts.map +1 -0
- package/dist/services/api/adapt/openai.js +412 -0
- package/dist/services/api/adapt/openai.js.map +1 -0
- package/dist/services/api/adapt/util.d.ts +7 -0
- package/dist/services/api/adapt/util.d.ts.map +1 -0
- package/dist/services/api/adapt/util.js +24 -0
- package/dist/services/api/adapt/util.js.map +1 -0
- package/dist/services/api/apiUtil.d.ts +10 -0
- package/dist/services/api/apiUtil.d.ts.map +1 -0
- package/dist/services/api/apiUtil.js +256 -0
- package/dist/services/api/apiUtil.js.map +1 -0
- package/dist/services/api/cache.d.ts +11 -0
- package/dist/services/api/cache.d.ts.map +1 -0
- package/dist/services/api/cache.js +128 -0
- package/dist/services/api/cache.js.map +1 -0
- package/dist/services/api/queryLLM.d.ts +18 -0
- package/dist/services/api/queryLLM.d.ts.map +1 -0
- package/dist/services/api/queryLLM.js +147 -0
- package/dist/services/api/queryLLM.js.map +1 -0
- package/dist/services/command/runCommand.d.ts +18 -0
- package/dist/services/command/runCommand.d.ts.map +1 -0
- package/dist/services/command/runCommand.js +149 -0
- package/dist/services/command/runCommand.js.map +1 -0
- package/dist/services/mcp/MCPClient.d.ts +35 -0
- package/dist/services/mcp/MCPClient.d.ts.map +1 -0
- package/dist/services/mcp/MCPClient.js +166 -0
- package/dist/services/mcp/MCPClient.js.map +1 -0
- package/dist/services/mcp/MCPManager.d.ts +140 -0
- package/dist/services/mcp/MCPManager.d.ts.map +1 -0
- package/dist/services/mcp/MCPManager.js +650 -0
- package/dist/services/mcp/MCPManager.js.map +1 -0
- package/dist/services/mcp/MCPToolAdapter.d.ts +22 -0
- package/dist/services/mcp/MCPToolAdapter.d.ts.map +1 -0
- package/dist/services/mcp/MCPToolAdapter.js +177 -0
- package/dist/services/mcp/MCPToolAdapter.js.map +1 -0
- package/dist/services/plugins/customCommands.d.ts +29 -0
- package/dist/services/plugins/customCommands.d.ts.map +1 -0
- package/dist/services/plugins/customCommands.js +227 -0
- package/dist/services/plugins/customCommands.js.map +1 -0
- package/dist/services/skill/skillLoader.d.ts +17 -0
- package/dist/services/skill/skillLoader.d.ts.map +1 -0
- package/dist/services/skill/skillLoader.js +122 -0
- package/dist/services/skill/skillLoader.js.map +1 -0
- package/dist/services/skill/skillParser.d.ts +15 -0
- package/dist/services/skill/skillParser.d.ts.map +1 -0
- package/dist/services/skill/skillParser.js +66 -0
- package/dist/services/skill/skillParser.js.map +1 -0
- package/dist/services/skill/skillRegistry.d.ts +34 -0
- package/dist/services/skill/skillRegistry.d.ts.map +1 -0
- package/dist/services/skill/skillRegistry.js +98 -0
- package/dist/services/skill/skillRegistry.js.map +1 -0
- package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts +179 -0
- package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts.map +1 -0
- package/dist/tools/AskUserQuestion/AskUserQuestion.js +165 -0
- package/dist/tools/AskUserQuestion/AskUserQuestion.js.map +1 -0
- package/dist/tools/AskUserQuestion/prompt.d.ts +3 -0
- package/dist/tools/AskUserQuestion/prompt.d.ts.map +1 -0
- package/dist/tools/AskUserQuestion/prompt.js +17 -0
- package/dist/tools/AskUserQuestion/prompt.js.map +1 -0
- package/dist/tools/Bash/Bash.d.ts +75 -0
- package/dist/tools/Bash/Bash.d.ts.map +1 -0
- package/dist/tools/Bash/Bash.js +200 -0
- package/dist/tools/Bash/Bash.js.map +1 -0
- package/dist/tools/Bash/prompt.d.ts +8 -0
- package/dist/tools/Bash/prompt.d.ts.map +1 -0
- package/dist/tools/Bash/prompt.js +167 -0
- package/dist/tools/Bash/prompt.js.map +1 -0
- package/dist/tools/Bash/utils.d.ts +5 -0
- package/dist/tools/Bash/utils.d.ts.map +1 -0
- package/dist/tools/Bash/utils.js +21 -0
- package/dist/tools/Bash/utils.js.map +1 -0
- package/dist/tools/Edit/Edit.d.ts +110 -0
- package/dist/tools/Edit/Edit.d.ts.map +1 -0
- package/dist/tools/Edit/Edit.js +213 -0
- package/dist/tools/Edit/Edit.js.map +1 -0
- package/dist/tools/Edit/prompt.d.ts +3 -0
- package/dist/tools/Edit/prompt.d.ts.map +1 -0
- package/dist/tools/Edit/prompt.js +15 -0
- package/dist/tools/Edit/prompt.js.map +1 -0
- package/dist/tools/Edit/utils.d.ts +10 -0
- package/dist/tools/Edit/utils.d.ts.map +1 -0
- package/dist/tools/Edit/utils.js +51 -0
- package/dist/tools/Edit/utils.js.map +1 -0
- package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts +42 -0
- package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts.map +1 -0
- package/dist/tools/ExitPlanMode/ExitPlanMode.js +157 -0
- package/dist/tools/ExitPlanMode/ExitPlanMode.js.map +1 -0
- package/dist/tools/ExitPlanMode/prompt.d.ts +3 -0
- package/dist/tools/ExitPlanMode/prompt.d.ts.map +1 -0
- package/dist/tools/ExitPlanMode/prompt.js +28 -0
- package/dist/tools/ExitPlanMode/prompt.js.map +1 -0
- package/dist/tools/Glob/Glob.d.ts +44 -0
- package/dist/tools/Glob/Glob.d.ts.map +1 -0
- package/dist/tools/Glob/Glob.js +113 -0
- package/dist/tools/Glob/Glob.js.map +1 -0
- package/dist/tools/Glob/prompt.d.ts +3 -0
- package/dist/tools/Glob/prompt.d.ts.map +1 -0
- package/dist/tools/Glob/prompt.js +11 -0
- package/dist/tools/Glob/prompt.js.map +1 -0
- package/dist/tools/Grep/Grep.d.ts +106 -0
- package/dist/tools/Grep/Grep.d.ts.map +1 -0
- package/dist/tools/Grep/Grep.js +301 -0
- package/dist/tools/Grep/Grep.js.map +1 -0
- package/dist/tools/Grep/prompt.d.ts +3 -0
- package/dist/tools/Grep/prompt.d.ts.map +1 -0
- package/dist/tools/Grep/prompt.js +17 -0
- package/dist/tools/Grep/prompt.js.map +1 -0
- package/dist/tools/NotebookEdit/NotebookEdit.d.ts +98 -0
- package/dist/tools/NotebookEdit/NotebookEdit.d.ts.map +1 -0
- package/dist/tools/NotebookEdit/NotebookEdit.js +228 -0
- package/dist/tools/NotebookEdit/NotebookEdit.js.map +1 -0
- package/dist/tools/NotebookEdit/prompt.d.ts +3 -0
- package/dist/tools/NotebookEdit/prompt.d.ts.map +1 -0
- package/dist/tools/NotebookEdit/prompt.js +6 -0
- package/dist/tools/NotebookEdit/prompt.js.map +1 -0
- package/dist/tools/Read/Read.d.ts +107 -0
- package/dist/tools/Read/Read.d.ts.map +1 -0
- package/dist/tools/Read/Read.js +175 -0
- package/dist/tools/Read/Read.js.map +1 -0
- package/dist/tools/Read/prompt.d.ts +4 -0
- package/dist/tools/Read/prompt.d.ts.map +1 -0
- package/dist/tools/Read/prompt.js +21 -0
- package/dist/tools/Read/prompt.js.map +1 -0
- package/dist/tools/Skill/Skill.d.ts +62 -0
- package/dist/tools/Skill/Skill.d.ts.map +1 -0
- package/dist/tools/Skill/Skill.js +142 -0
- package/dist/tools/Skill/Skill.js.map +1 -0
- package/dist/tools/Skill/prompt.d.ts +3 -0
- package/dist/tools/Skill/prompt.d.ts.map +1 -0
- package/dist/tools/Skill/prompt.js +58 -0
- package/dist/tools/Skill/prompt.js.map +1 -0
- package/dist/tools/Task/Task.d.ts +59 -0
- package/dist/tools/Task/Task.d.ts.map +1 -0
- package/dist/tools/Task/Task.js +213 -0
- package/dist/tools/Task/Task.js.map +1 -0
- package/dist/tools/Task/prompt.d.ts +6 -0
- package/dist/tools/Task/prompt.d.ts.map +1 -0
- package/dist/tools/Task/prompt.js +75 -0
- package/dist/tools/Task/prompt.js.map +1 -0
- package/dist/tools/TodoWrite/TodoWrite.d.ts +92 -0
- package/dist/tools/TodoWrite/TodoWrite.d.ts.map +1 -0
- package/dist/tools/TodoWrite/TodoWrite.js +101 -0
- package/dist/tools/TodoWrite/TodoWrite.js.map +1 -0
- package/dist/tools/TodoWrite/prompt.d.ts +3 -0
- package/dist/tools/TodoWrite/prompt.d.ts.map +1 -0
- package/dist/tools/TodoWrite/prompt.js +187 -0
- package/dist/tools/TodoWrite/prompt.js.map +1 -0
- package/dist/tools/Write/Write.d.ts +77 -0
- package/dist/tools/Write/Write.d.ts.map +1 -0
- package/dist/tools/Write/Write.js +189 -0
- package/dist/tools/Write/Write.js.map +1 -0
- package/dist/tools/Write/prompt.d.ts +3 -0
- package/dist/tools/Write/prompt.d.ts.map +1 -0
- package/dist/tools/Write/prompt.js +13 -0
- package/dist/tools/Write/prompt.js.map +1 -0
- package/dist/tools/base/Tool.d.ts +36 -0
- package/dist/tools/base/Tool.d.ts.map +1 -0
- package/dist/tools/base/Tool.js +3 -0
- package/dist/tools/base/Tool.js.map +1 -0
- package/dist/tools/base/tools.d.ts +9 -0
- package/dist/tools/base/tools.d.ts.map +1 -0
- package/dist/tools/base/tools.js +105 -0
- package/dist/tools/base/tools.js.map +1 -0
- package/dist/types/agent.d.ts +30 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +3 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/command.d.ts +44 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +6 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/config.d.ts +14 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +18 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +33 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +91 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +127 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +6 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/message.d.ts +31 -0
- package/dist/types/message.d.ts.map +1 -0
- package/dist/types/message.js +3 -0
- package/dist/types/message.js.map +1 -0
- package/dist/types/model.d.ts +21 -0
- package/dist/types/model.d.ts.map +1 -0
- package/dist/types/model.js +3 -0
- package/dist/types/model.js.map +1 -0
- package/dist/types/notebook.d.ts +57 -0
- package/dist/types/notebook.d.ts.map +1 -0
- package/dist/types/notebook.js +3 -0
- package/dist/types/notebook.js.map +1 -0
- package/dist/types/skill.d.ts +34 -0
- package/dist/types/skill.d.ts.map +1 -0
- package/dist/types/skill.js +8 -0
- package/dist/types/skill.js.map +1 -0
- package/dist/types/uuid.d.ts +2 -0
- package/dist/types/uuid.d.ts.map +1 -0
- package/dist/types/uuid.js +3 -0
- package/dist/types/uuid.js.map +1 -0
- package/dist/util/adapter.d.ts +11 -0
- package/dist/util/adapter.d.ts.map +1 -0
- package/dist/util/adapter.js +75 -0
- package/dist/util/adapter.js.map +1 -0
- package/dist/util/agentStats.d.ts +11 -0
- package/dist/util/agentStats.d.ts.map +1 -0
- package/dist/util/agentStats.js +60 -0
- package/dist/util/agentStats.js.map +1 -0
- package/dist/util/cacheLLM.d.ts +47 -0
- package/dist/util/cacheLLM.d.ts.map +1 -0
- package/dist/util/cacheLLM.js +154 -0
- package/dist/util/cacheLLM.js.map +1 -0
- package/dist/util/commands.d.ts +16 -0
- package/dist/util/commands.d.ts.map +1 -0
- package/dist/util/commands.js +216 -0
- package/dist/util/commands.js.map +1 -0
- package/dist/util/compact.d.ts +25 -0
- package/dist/util/compact.d.ts.map +1 -0
- package/dist/util/compact.js +451 -0
- package/dist/util/compact.js.map +1 -0
- package/dist/util/cwd.d.ts +44 -0
- package/dist/util/cwd.d.ts.map +1 -0
- package/dist/util/cwd.js +84 -0
- package/dist/util/cwd.js.map +1 -0
- package/dist/util/diff.d.ts +10 -0
- package/dist/util/diff.d.ts.map +1 -0
- package/dist/util/diff.js +127 -0
- package/dist/util/diff.js.map +1 -0
- package/dist/util/directory.d.ts +37 -0
- package/dist/util/directory.d.ts.map +1 -0
- package/dist/util/directory.js +137 -0
- package/dist/util/directory.js.map +1 -0
- package/dist/util/env.d.ts +5 -0
- package/dist/util/env.d.ts.map +1 -0
- package/dist/util/env.js +39 -0
- package/dist/util/env.js.map +1 -0
- package/dist/util/exec.d.ts +6 -0
- package/dist/util/exec.d.ts.map +1 -0
- package/dist/util/exec.js +43 -0
- package/dist/util/exec.js.map +1 -0
- package/dist/util/file.d.ts +61 -0
- package/dist/util/file.d.ts.map +1 -0
- package/dist/util/file.js +365 -0
- package/dist/util/file.js.map +1 -0
- package/dist/util/filePermission.d.ts +14 -0
- package/dist/util/filePermission.d.ts.map +1 -0
- package/dist/util/filePermission.js +45 -0
- package/dist/util/filePermission.js.map +1 -0
- package/dist/util/fileReference.d.ts +40 -0
- package/dist/util/fileReference.d.ts.map +1 -0
- package/dist/util/fileReference.js +343 -0
- package/dist/util/fileReference.js.map +1 -0
- package/dist/util/format.d.ts +9 -0
- package/dist/util/format.d.ts.map +1 -0
- package/dist/util/format.js +61 -0
- package/dist/util/format.js.map +1 -0
- package/dist/util/frontmatter.d.ts +35 -0
- package/dist/util/frontmatter.d.ts.map +1 -0
- package/dist/util/frontmatter.js +119 -0
- package/dist/util/frontmatter.js.map +1 -0
- package/dist/util/git.d.ts +4 -0
- package/dist/util/git.d.ts.map +1 -0
- package/dist/util/git.js +55 -0
- package/dist/util/git.js.map +1 -0
- package/dist/util/history.d.ts +27 -0
- package/dist/util/history.d.ts.map +1 -0
- package/dist/util/history.js +248 -0
- package/dist/util/history.js.map +1 -0
- package/dist/util/log.d.ts +23 -0
- package/dist/util/log.d.ts.map +1 -0
- package/dist/util/log.js +246 -0
- package/dist/util/log.js.map +1 -0
- package/dist/util/logLLM.d.ts +20 -0
- package/dist/util/logLLM.d.ts.map +1 -0
- package/dist/util/logLLM.js +414 -0
- package/dist/util/logLLM.js.map +1 -0
- package/dist/util/message.d.ts +12 -0
- package/dist/util/message.d.ts.map +1 -0
- package/dist/util/message.js +156 -0
- package/dist/util/message.js.map +1 -0
- package/dist/util/model.d.ts +22 -0
- package/dist/util/model.d.ts.map +1 -0
- package/dist/util/model.js +61 -0
- package/dist/util/model.js.map +1 -0
- package/dist/util/notebook.d.ts +14 -0
- package/dist/util/notebook.d.ts.map +1 -0
- package/dist/util/notebook.js +104 -0
- package/dist/util/notebook.js.map +1 -0
- package/dist/util/ripgrep.d.ts +3 -0
- package/dist/util/ripgrep.d.ts.map +1 -0
- package/dist/util/ripgrep.js +187 -0
- package/dist/util/ripgrep.js.map +1 -0
- package/dist/util/rules.d.ts +6 -0
- package/dist/util/rules.d.ts.map +1 -0
- package/dist/util/rules.js +111 -0
- package/dist/util/rules.js.map +1 -0
- package/dist/util/savePath.d.ts +73 -0
- package/dist/util/savePath.d.ts.map +1 -0
- package/dist/util/savePath.js +189 -0
- package/dist/util/savePath.js.map +1 -0
- package/dist/util/secureFile.d.ts +136 -0
- package/dist/util/secureFile.d.ts.map +1 -0
- package/dist/util/secureFile.js +496 -0
- package/dist/util/secureFile.js.map +1 -0
- package/dist/util/session.d.ts +37 -0
- package/dist/util/session.d.ts.map +1 -0
- package/dist/util/session.js +120 -0
- package/dist/util/session.js.map +1 -0
- package/dist/util/shell.d.ts +40 -0
- package/dist/util/shell.d.ts.map +1 -0
- package/dist/util/shell.js +876 -0
- package/dist/util/shell.js.map +1 -0
- package/dist/util/time.d.ts +24 -0
- package/dist/util/time.d.ts.map +1 -0
- package/dist/util/time.js +53 -0
- package/dist/util/time.js.map +1 -0
- package/dist/util/tokens.d.ts +9 -0
- package/dist/util/tokens.d.ts.map +1 -0
- package/dist/util/tokens.js +79 -0
- package/dist/util/tokens.js.map +1 -0
- package/dist/util/topic.d.ts +9 -0
- package/dist/util/topic.d.ts.map +1 -0
- package/dist/util/topic.js +52 -0
- package/dist/util/topic.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.glob = glob;
|
|
4
|
+
exports.readFileSafe = readFileSafe;
|
|
5
|
+
exports.isInDirectory = isInDirectory;
|
|
6
|
+
exports.readTextContent = readTextContent;
|
|
7
|
+
exports.writeTextContent = writeTextContent;
|
|
8
|
+
exports.detectRepoLineEndings = detectRepoLineEndings;
|
|
9
|
+
exports.detectRepoLineEndingsDirect = detectRepoLineEndingsDirect;
|
|
10
|
+
exports.detectFileEncoding = detectFileEncoding;
|
|
11
|
+
exports.detectFileEncodingDirect = detectFileEncodingDirect;
|
|
12
|
+
exports.detectLineEndings = detectLineEndings;
|
|
13
|
+
exports.detectLineEndingsDirect = detectLineEndingsDirect;
|
|
14
|
+
exports.quotePathForShell = quotePathForShell;
|
|
15
|
+
exports.normalizeFilePath = normalizeFilePath;
|
|
16
|
+
exports.normalizeSkillPath = normalizeSkillPath;
|
|
17
|
+
exports.getAbsolutePath = getAbsolutePath;
|
|
18
|
+
exports.getAbsoluteAndRelativePaths = getAbsoluteAndRelativePaths;
|
|
19
|
+
exports.findSimilarFile = findSimilarFile;
|
|
20
|
+
exports.addLineNumbers = addLineNumbers;
|
|
21
|
+
exports.isDirEmpty = isDirEmpty;
|
|
22
|
+
const fs_1 = require("fs");
|
|
23
|
+
const log_1 = require("./log");
|
|
24
|
+
const path_1 = require("path");
|
|
25
|
+
const glob_1 = require("glob");
|
|
26
|
+
const process_1 = require("process");
|
|
27
|
+
const ripgrep_1 = require("./ripgrep");
|
|
28
|
+
const lru_cache_1 = require("lru-cache");
|
|
29
|
+
const cwd_1 = require("./cwd");
|
|
30
|
+
async function glob(filePattern, cwd, { limit, offset }, abortSignal) {
|
|
31
|
+
// Windows 环境下,转换 Unix 风格的驱动器路径
|
|
32
|
+
let processedCwd = cwd;
|
|
33
|
+
if (process.platform === 'win32') {
|
|
34
|
+
const unixDrivePattern = /^\/([a-z])\//i;
|
|
35
|
+
const match = unixDrivePattern.exec(cwd);
|
|
36
|
+
if (match) {
|
|
37
|
+
const driveLetter = match[1].toUpperCase();
|
|
38
|
+
const rest = cwd.slice(3); // 去掉 /d/ 部分
|
|
39
|
+
processedCwd = `${driveLetter}:\\${rest.replace(/\//g, '\\')}`;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// TODO: Use worker threads
|
|
43
|
+
const paths = await (0, glob_1.glob)([filePattern], {
|
|
44
|
+
cwd: processedCwd,
|
|
45
|
+
nocase: true,
|
|
46
|
+
nodir: true,
|
|
47
|
+
signal: abortSignal,
|
|
48
|
+
stat: true,
|
|
49
|
+
withFileTypes: true,
|
|
50
|
+
});
|
|
51
|
+
const sortedPaths = paths.sort((a, b) => (a.mtimeMs ?? 0) - (b.mtimeMs ?? 0));
|
|
52
|
+
const truncated = sortedPaths.length > offset + limit;
|
|
53
|
+
return {
|
|
54
|
+
files: sortedPaths
|
|
55
|
+
.slice(offset, offset + limit)
|
|
56
|
+
.map(path => path.fullpath()),
|
|
57
|
+
truncated,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function readFileSafe(filepath) {
|
|
61
|
+
try {
|
|
62
|
+
return (0, fs_1.readFileSync)(filepath, 'utf-8');
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
(0, log_1.logError)(error);
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function isInDirectory(relativePath, relativeCwd) {
|
|
70
|
+
if (relativePath === '.') {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
// Reject paths starting with ~ (home directory)
|
|
74
|
+
if (relativePath.startsWith('~')) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
// Reject paths containing null bytes or other sneaky characters
|
|
78
|
+
if (relativePath.includes('\0') || relativeCwd.includes('\0')) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
// Normalize paths to resolve any '..' or '.' segments
|
|
82
|
+
// and add trailing slashes
|
|
83
|
+
let normalizedPath = (0, path_1.normalize)(relativePath);
|
|
84
|
+
let normalizedCwd = (0, path_1.normalize)(relativeCwd);
|
|
85
|
+
normalizedPath = normalizedPath.endsWith(path_1.sep)
|
|
86
|
+
? normalizedPath
|
|
87
|
+
: normalizedPath + path_1.sep;
|
|
88
|
+
normalizedCwd = normalizedCwd.endsWith(path_1.sep)
|
|
89
|
+
? normalizedCwd
|
|
90
|
+
: normalizedCwd + path_1.sep;
|
|
91
|
+
// Join with a base directory to make them absolute-like for comparison
|
|
92
|
+
const fullPath = (0, path_1.resolve)((0, process_1.cwd)(), normalizedCwd, normalizedPath);
|
|
93
|
+
const fullCwd = (0, path_1.resolve)((0, process_1.cwd)(), normalizedCwd);
|
|
94
|
+
// Robust subpath check using path.relative (case-insensitive on Windows)
|
|
95
|
+
const rel = (0, path_1.relative)(fullCwd, fullPath);
|
|
96
|
+
if (!rel || rel === '')
|
|
97
|
+
return true;
|
|
98
|
+
if (rel.startsWith('..'))
|
|
99
|
+
return false;
|
|
100
|
+
if ((0, path_1.isAbsolute)(rel))
|
|
101
|
+
return false;
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
function readTextContent(filePath, offset = 0, maxLines) {
|
|
105
|
+
const enc = detectFileEncoding(filePath);
|
|
106
|
+
const content = (0, fs_1.readFileSync)(filePath, enc);
|
|
107
|
+
const lines = content.split(/\r?\n/);
|
|
108
|
+
// Truncate number of lines if needed
|
|
109
|
+
const toReturn = maxLines !== undefined && lines.length - offset > maxLines
|
|
110
|
+
? lines.slice(offset, offset + maxLines)
|
|
111
|
+
: lines.slice(offset);
|
|
112
|
+
return {
|
|
113
|
+
content: toReturn.join('\n'), // TODO: This probably won't work for Windows
|
|
114
|
+
lineCount: toReturn.length,
|
|
115
|
+
totalLines: lines.length,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function writeTextContent(filePath, content, encoding, endings) {
|
|
119
|
+
let toWrite = content;
|
|
120
|
+
if (endings === 'CRLF') {
|
|
121
|
+
toWrite = content.split('\n').join('\r\n');
|
|
122
|
+
}
|
|
123
|
+
(0, fs_1.writeFileSync)(filePath, toWrite, { encoding, flush: true });
|
|
124
|
+
}
|
|
125
|
+
const repoEndingCache = new lru_cache_1.LRUCache({
|
|
126
|
+
fetchMethod: path => detectRepoLineEndingsDirect(path),
|
|
127
|
+
ttl: 5 * 60 * 1000,
|
|
128
|
+
ttlAutopurge: false,
|
|
129
|
+
max: 1000,
|
|
130
|
+
});
|
|
131
|
+
async function detectRepoLineEndings(filePath) {
|
|
132
|
+
return repoEndingCache.fetch((0, path_1.resolve)(filePath));
|
|
133
|
+
}
|
|
134
|
+
async function detectRepoLineEndingsDirect(cwd) {
|
|
135
|
+
const abortController = new AbortController();
|
|
136
|
+
setTimeout(() => {
|
|
137
|
+
abortController.abort();
|
|
138
|
+
}, 1_000);
|
|
139
|
+
const allFiles = await (0, ripgrep_1.listAllContentFiles)(cwd, abortController.signal, 15);
|
|
140
|
+
let crlfCount = 0;
|
|
141
|
+
for (const file of allFiles) {
|
|
142
|
+
const lineEnding = detectLineEndings(file);
|
|
143
|
+
if (lineEnding === 'CRLF') {
|
|
144
|
+
crlfCount++;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return crlfCount > 3 ? 'CRLF' : 'LF';
|
|
148
|
+
}
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
150
|
+
function fetch(cache, key, value) {
|
|
151
|
+
if (cache.has(key)) {
|
|
152
|
+
return cache.get(key);
|
|
153
|
+
}
|
|
154
|
+
const v = value();
|
|
155
|
+
cache.set(key, v);
|
|
156
|
+
return v;
|
|
157
|
+
}
|
|
158
|
+
const fileEncodingCache = new lru_cache_1.LRUCache({
|
|
159
|
+
fetchMethod: path => detectFileEncodingDirect(path),
|
|
160
|
+
ttl: 5 * 60 * 1000,
|
|
161
|
+
ttlAutopurge: false,
|
|
162
|
+
max: 1000,
|
|
163
|
+
});
|
|
164
|
+
function detectFileEncoding(filePath) {
|
|
165
|
+
const k = (0, path_1.resolve)(filePath);
|
|
166
|
+
return fetch(fileEncodingCache, k, () => detectFileEncodingDirect(k));
|
|
167
|
+
}
|
|
168
|
+
function detectFileEncodingDirect(filePath) {
|
|
169
|
+
const BUFFER_SIZE = 4096;
|
|
170
|
+
const buffer = Buffer.alloc(BUFFER_SIZE);
|
|
171
|
+
let fd = undefined;
|
|
172
|
+
try {
|
|
173
|
+
fd = (0, fs_1.openSync)(filePath, 'r');
|
|
174
|
+
const bytesRead = (0, fs_1.readSync)(fd, buffer, 0, BUFFER_SIZE, 0);
|
|
175
|
+
if (bytesRead >= 2) {
|
|
176
|
+
if (buffer[0] === 0xff && buffer[1] === 0xfe)
|
|
177
|
+
return 'utf16le';
|
|
178
|
+
}
|
|
179
|
+
if (bytesRead >= 3 &&
|
|
180
|
+
buffer[0] === 0xef &&
|
|
181
|
+
buffer[1] === 0xbb &&
|
|
182
|
+
buffer[2] === 0xbf) {
|
|
183
|
+
return 'utf8';
|
|
184
|
+
}
|
|
185
|
+
const isUtf8 = buffer.slice(0, bytesRead).toString('utf8').length > 0;
|
|
186
|
+
return isUtf8 ? 'utf8' : 'ascii';
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
(0, log_1.logError)(`Error detecting encoding for file ${filePath}: ${error}`);
|
|
190
|
+
return 'utf8';
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
if (fd)
|
|
194
|
+
(0, fs_1.closeSync)(fd);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
const lineEndingCache = new lru_cache_1.LRUCache({
|
|
198
|
+
fetchMethod: path => detectLineEndingsDirect(path),
|
|
199
|
+
ttl: 5 * 60 * 1000,
|
|
200
|
+
ttlAutopurge: false,
|
|
201
|
+
max: 1000,
|
|
202
|
+
});
|
|
203
|
+
function detectLineEndings(filePath) {
|
|
204
|
+
const k = (0, path_1.resolve)(filePath);
|
|
205
|
+
return fetch(lineEndingCache, k, () => detectLineEndingsDirect(k));
|
|
206
|
+
}
|
|
207
|
+
function detectLineEndingsDirect(filePath, encoding = 'utf8') {
|
|
208
|
+
try {
|
|
209
|
+
const buffer = Buffer.alloc(4096);
|
|
210
|
+
const fd = (0, fs_1.openSync)(filePath, 'r');
|
|
211
|
+
const bytesRead = (0, fs_1.readSync)(fd, buffer, 0, 4096, 0);
|
|
212
|
+
(0, fs_1.closeSync)(fd);
|
|
213
|
+
const content = buffer.toString(encoding, 0, bytesRead);
|
|
214
|
+
let crlfCount = 0;
|
|
215
|
+
let lfCount = 0;
|
|
216
|
+
for (let i = 0; i < content.length; i++) {
|
|
217
|
+
if (content[i] === '\n') {
|
|
218
|
+
if (i > 0 && content[i - 1] === '\r') {
|
|
219
|
+
crlfCount++;
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
lfCount++;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return crlfCount > lfCount ? 'CRLF' : 'LF';
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
(0, log_1.logError)(`Error detecting line endings for file ${filePath}: ${error}`);
|
|
230
|
+
return 'LF';
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* 为命令行执行包裹路径引号(仅 Windows 且路径包含空格时)
|
|
235
|
+
*/
|
|
236
|
+
function quotePathForShell(filePath) {
|
|
237
|
+
if (process.platform === 'win32' && filePath.includes(' ')) {
|
|
238
|
+
return `"${filePath}"`;
|
|
239
|
+
}
|
|
240
|
+
return filePath;
|
|
241
|
+
}
|
|
242
|
+
function normalizeFilePath(filePath) {
|
|
243
|
+
let processedPath = filePath;
|
|
244
|
+
// Windows 环境下,转换 Unix 风格的驱动器路径 (/d/, /c/ 等)
|
|
245
|
+
if (process.platform === 'win32') {
|
|
246
|
+
const unixDrivePattern = /^\/([a-z])\//i;
|
|
247
|
+
const match = unixDrivePattern.exec(filePath);
|
|
248
|
+
if (match) {
|
|
249
|
+
const driveLetter = match[1].toUpperCase();
|
|
250
|
+
const rest = filePath.slice(3); // 去掉 /d/ 部分
|
|
251
|
+
processedPath = `${driveLetter}:\\${rest.replace(/\//g, '\\')}`;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const absoluteFilePath = (0, path_1.isAbsolute)(processedPath)
|
|
255
|
+
? processedPath
|
|
256
|
+
: (0, path_1.resolve)((0, cwd_1.getCwd)(), processedPath);
|
|
257
|
+
// One weird trick for half-width space characters in MacOS screenshot filenames
|
|
258
|
+
if (absoluteFilePath.endsWith(' AM.png')) {
|
|
259
|
+
return absoluteFilePath.replace(' AM.png', `${String.fromCharCode(8239)}AM.png`);
|
|
260
|
+
}
|
|
261
|
+
// One weird trick for half-width space characters in MacOS screenshot filenames
|
|
262
|
+
if (absoluteFilePath.endsWith(' PM.png')) {
|
|
263
|
+
return absoluteFilePath.replace(' PM.png', `${String.fromCharCode(8239)}PM.png`);
|
|
264
|
+
}
|
|
265
|
+
return absoluteFilePath;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* 标准化 Skill 路径,处理 Windows 环境下的 Unix 风格路径,但不强制转换为绝对路径
|
|
269
|
+
* 用于 skill 系统中需要保持路径结构的场景
|
|
270
|
+
*/
|
|
271
|
+
function normalizeSkillPath(filePath) {
|
|
272
|
+
let processedPath = filePath;
|
|
273
|
+
// Windows 环境下,转换 Unix 风格的驱动器路径 (/d/, /c/ 等)
|
|
274
|
+
if (process.platform === 'win32') {
|
|
275
|
+
const unixDrivePattern = /^\/([a-z])\//i;
|
|
276
|
+
const match = unixDrivePattern.exec(filePath);
|
|
277
|
+
if (match) {
|
|
278
|
+
const driveLetter = match[1].toUpperCase();
|
|
279
|
+
const rest = filePath.slice(3); // 去掉 /d/ 部分
|
|
280
|
+
processedPath = `${driveLetter}:\\${rest.replace(/\//g, '\\')}`;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return (0, path_1.normalize)(processedPath);
|
|
284
|
+
}
|
|
285
|
+
function getAbsolutePath(path) {
|
|
286
|
+
return path ? ((0, path_1.isAbsolute)(path) ? path : (0, path_1.resolve)((0, cwd_1.getCwd)(), path)) : undefined;
|
|
287
|
+
}
|
|
288
|
+
function getAbsoluteAndRelativePaths(path) {
|
|
289
|
+
const absolutePath = getAbsolutePath(path);
|
|
290
|
+
const relativePath = absolutePath
|
|
291
|
+
? (0, path_1.relative)((0, cwd_1.getCwd)(), absolutePath)
|
|
292
|
+
: undefined;
|
|
293
|
+
return { absolutePath, relativePath };
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Find files with the same name but different extensions in the same directory
|
|
297
|
+
* @param filePath The path to the file that doesn't exist
|
|
298
|
+
* @returns The found file with a different extension, or undefined if none found
|
|
299
|
+
*/
|
|
300
|
+
function findSimilarFile(filePath) {
|
|
301
|
+
try {
|
|
302
|
+
const dir = (0, path_1.dirname)(filePath);
|
|
303
|
+
const fileBaseName = (0, path_1.basename)(filePath, (0, path_1.extname)(filePath));
|
|
304
|
+
// Check if directory exists
|
|
305
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
306
|
+
return undefined;
|
|
307
|
+
}
|
|
308
|
+
// Get all files in the directory
|
|
309
|
+
const files = (0, fs_1.readdirSync)(dir);
|
|
310
|
+
// Find files with the same base name but different extension
|
|
311
|
+
const similarFiles = files.filter(file => (0, path_1.basename)(file, (0, path_1.extname)(file)) === fileBaseName &&
|
|
312
|
+
(0, path_1.join)(dir, file) !== filePath);
|
|
313
|
+
// Return just the filename of the first match if found
|
|
314
|
+
const firstMatch = similarFiles[0];
|
|
315
|
+
if (firstMatch) {
|
|
316
|
+
return firstMatch;
|
|
317
|
+
}
|
|
318
|
+
return undefined;
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
// In case of any errors, return undefined
|
|
322
|
+
(0, log_1.logError)(`Error finding similar file for ${filePath}: ${error}`);
|
|
323
|
+
return undefined;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Adds cat -n style line numbers to the content
|
|
328
|
+
*/
|
|
329
|
+
function addLineNumbers({ content,
|
|
330
|
+
// 1-indexed
|
|
331
|
+
startLine, }) {
|
|
332
|
+
if (!content) {
|
|
333
|
+
return '';
|
|
334
|
+
}
|
|
335
|
+
return content
|
|
336
|
+
.split(/\r?\n/)
|
|
337
|
+
.map((line, index) => {
|
|
338
|
+
const lineNum = index + startLine;
|
|
339
|
+
const numStr = String(lineNum);
|
|
340
|
+
// Handle large numbers differently
|
|
341
|
+
if (numStr.length >= 6) {
|
|
342
|
+
return `${numStr}\t${line}`;
|
|
343
|
+
}
|
|
344
|
+
// Regular numbers get padding to 6 characters
|
|
345
|
+
const n = numStr.padStart(6, ' ');
|
|
346
|
+
return `${n}\t${line}`;
|
|
347
|
+
})
|
|
348
|
+
.join('\n'); // TODO: This probably won't work for Windows
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Checks if a directory is empty by efficiently reading just the first entry
|
|
352
|
+
* @param dirPath The path to the directory to check
|
|
353
|
+
* @returns true if the directory is empty, false otherwise
|
|
354
|
+
*/
|
|
355
|
+
function isDirEmpty(dirPath) {
|
|
356
|
+
try {
|
|
357
|
+
const entries = (0, fs_1.readdirSync)(dirPath);
|
|
358
|
+
return entries.length === 0;
|
|
359
|
+
}
|
|
360
|
+
catch (error) {
|
|
361
|
+
(0, log_1.logError)(`Error checking directory: ${error}`);
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文件权限相关工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 检查文件是否在授权范围内(项目根目录下)
|
|
6
|
+
*/
|
|
7
|
+
export declare function isFileInAuthorizedScope(filePath: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* 获取文件路径(从工具输入中)
|
|
10
|
+
*/
|
|
11
|
+
export declare function getFilePath(input: {
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}): string | undefined;
|
|
14
|
+
//# sourceMappingURL=filePermission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filePermission.d.ts","sourceRoot":"","sources":["../../src/util/filePermission.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAEjF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isFileInAuthorizedScope = isFileInAuthorizedScope;
|
|
4
|
+
exports.getFilePath = getFilePath;
|
|
5
|
+
const cwd_1 = require("./cwd");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
/**
|
|
8
|
+
* 文件权限相关工具函数
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* 检查文件是否在授权范围内(项目根目录下)
|
|
12
|
+
*/
|
|
13
|
+
function isFileInAuthorizedScope(filePath) {
|
|
14
|
+
const absolutePath = toAbsolutePath(filePath);
|
|
15
|
+
const normalizedRoot = normalize((0, cwd_1.getOriginalCwd)());
|
|
16
|
+
const normalizedFile = normalize(absolutePath);
|
|
17
|
+
return isSubpath(normalizedRoot, normalizedFile);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 获取文件路径(从工具输入中)
|
|
21
|
+
*/
|
|
22
|
+
function getFilePath(input) {
|
|
23
|
+
return input.file_path || input.notebook_path;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 转换为绝对路径
|
|
27
|
+
*/
|
|
28
|
+
function toAbsolutePath(path) {
|
|
29
|
+
return normalize((0, path_1.isAbsolute)(path) ? path : (0, path_1.resolve)((0, cwd_1.getCwd)(), path));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 规范化路径
|
|
33
|
+
*/
|
|
34
|
+
function normalize(p) {
|
|
35
|
+
const resolved = (0, path_1.resolve)(p);
|
|
36
|
+
return process.platform === 'win32' ? resolved.toLowerCase() : resolved;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 检查目标路径是否为基础路径的子路径
|
|
40
|
+
*/
|
|
41
|
+
function isSubpath(base, target) {
|
|
42
|
+
const rel = (0, path_1.relative)(base, target);
|
|
43
|
+
return !!rel && !rel.startsWith('..') && !(0, path_1.isAbsolute)(rel);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=filePermission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filePermission.js","sourceRoot":"","sources":["../../src/util/filePermission.ts"],"names":[],"mappings":";;AAUA,0DAKC;AAKD,kCAEC;AAtBD,+BAA+C;AAC/C,+BAAqD;AAErD;;GAEG;AAEH;;GAEG;AACH,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,IAAA,oBAAc,GAAE,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAiC;IAC3D,OAAQ,KAAa,CAAC,SAAS,IAAK,KAAa,CAAC,aAAa,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,SAAS,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAA,YAAM,GAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC7C,MAAM,GAAG,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,GAAG,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
2
|
+
import { FileReferenceInfo } from '../types/index';
|
|
3
|
+
/**
|
|
4
|
+
* 文件引用信息类型定义
|
|
5
|
+
*/
|
|
6
|
+
export interface ParsedFileReference {
|
|
7
|
+
fileName: string;
|
|
8
|
+
startLine?: number;
|
|
9
|
+
endLine?: number;
|
|
10
|
+
isDirectory?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 解析文件引用字符串
|
|
14
|
+
* 支持格式:
|
|
15
|
+
* - @filename - 读取整个文件
|
|
16
|
+
* - @filename:line - 读取指定行(如 @index.js:13)
|
|
17
|
+
* - @filename:start-end - 读取行号范围(如 @index.js:13-17)
|
|
18
|
+
* - @dirname - 列出目录内容(如果是目录)
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseFileReference(reference: string): ParsedFileReference;
|
|
21
|
+
/**
|
|
22
|
+
* 处理用户输入中的文件引用 (@filename 或 @filename:lines)
|
|
23
|
+
* read工具自动读取引用的文件并将内容注入为system-reminder
|
|
24
|
+
* bash工具调用 ls 命令列出目录内容
|
|
25
|
+
* 多文件目录均并行执行
|
|
26
|
+
* 结果顺序也保持原有顺序(按用户输入中引用出现的顺序)
|
|
27
|
+
*/
|
|
28
|
+
export declare function processFileReferences(userInput: string, agentContext: any): Promise<{
|
|
29
|
+
systemReminders: Anthropic.ContentBlockParam[];
|
|
30
|
+
supplementaryInfo: FileReferenceInfo[];
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* 检查文本中是否包含文件引用
|
|
34
|
+
*/
|
|
35
|
+
export declare function hasFileReferences(text: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* 提取文本中的所有文件引用
|
|
38
|
+
*/
|
|
39
|
+
export declare function extractFileReferences(text: string): string[];
|
|
40
|
+
//# sourceMappingURL=fileReference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileReference.d.ts","sourceRoot":"","sources":["../../src/util/fileReference.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAIzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAKlD;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CA0DzE;AAiOD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC;IACT,eAAe,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/C,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;CACxC,CAAC,CA2CD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D"}
|