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,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDefaultConfig = createDefaultConfig;
|
|
4
|
+
exports.parseModelName = parseModelName;
|
|
5
|
+
exports.findModelProfile = findModelProfile;
|
|
6
|
+
exports.convertToModelProfile = convertToModelProfile;
|
|
7
|
+
const log_1 = require("./log");
|
|
8
|
+
const adapter_1 = require("./adapter");
|
|
9
|
+
/**
|
|
10
|
+
* 创建默认模型配置
|
|
11
|
+
*/
|
|
12
|
+
function createDefaultConfig() {
|
|
13
|
+
return {
|
|
14
|
+
modelProfiles: [],
|
|
15
|
+
modelPointers: {
|
|
16
|
+
main: '',
|
|
17
|
+
quick: ''
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function parseModelName(name) {
|
|
22
|
+
const match = name.match(/^(.+)\[([^\]]+)\]$/);
|
|
23
|
+
if (!match) {
|
|
24
|
+
(0, log_1.logWarn)(`Invalid model name format: ${name}. Expected format: "modelName[provider]"`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const [, modelName, provider] = match;
|
|
28
|
+
return { modelName, provider };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 查找模型配置
|
|
32
|
+
* @param name 模型标识字符串,格式为 "modelName[provider]",如 "claude-sonnet-4.5[anthropic]"
|
|
33
|
+
* @param profiles 模型配置列表
|
|
34
|
+
* @returns 匹配的模型配置,未找到则返回 null
|
|
35
|
+
*/
|
|
36
|
+
function findModelProfile(name, profiles) {
|
|
37
|
+
// 解析 modelName 和 provider
|
|
38
|
+
const parsed = parseModelName(name);
|
|
39
|
+
if (!parsed) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const { modelName, provider } = parsed;
|
|
43
|
+
// 查找匹配的模型配置
|
|
44
|
+
return profiles.find(profile => profile.provider === provider && profile.modelName === modelName) || null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 将 ModelConfig 转换为 ModelProfile
|
|
48
|
+
*/
|
|
49
|
+
function convertToModelProfile(config) {
|
|
50
|
+
return {
|
|
51
|
+
name: `${config.modelName}[${config.provider}]`,
|
|
52
|
+
provider: config.provider,
|
|
53
|
+
modelName: config.modelName,
|
|
54
|
+
baseURL: config.baseURL,
|
|
55
|
+
apiKey: config.apiKey,
|
|
56
|
+
maxTokens: config.maxTokens,
|
|
57
|
+
contextLength: config.contextLength,
|
|
58
|
+
adapt: (0, adapter_1.resolveAdapter)(config.provider, config.modelName)
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/util/model.ts"],"names":[],"mappings":";;AAWA,kDAQC;AAGD,wCASC;AAQD,4CAaC;AAKD,sDAWC;AAhED,+BAAgC;AAChC,uCAA2C;AAG3C;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE;YACb,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACV;KACF,CAAC;AACJ,CAAC;AAGD,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAA,aAAO,EAAC,8BAA8B,IAAI,0CAA0C,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IACtC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,QAAwB;IACrE,0BAA0B;IAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEvC,YAAY;IACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAC7B,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CACjE,IAAI,IAAI,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAmB;IACvD,OAAO;QACL,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG;QAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,IAAA,wBAAc,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;KACzD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { NotebookCellData } from '../types/notebook';
|
|
2
|
+
/**
|
|
3
|
+
* 读取并解析 Jupyter Notebook 文件
|
|
4
|
+
*/
|
|
5
|
+
export declare function readNotebook(filePath: string): {
|
|
6
|
+
cells: NotebookCellData[];
|
|
7
|
+
cellCount: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 将 notebook cells 格式化为字符串
|
|
11
|
+
* 格式: <cell id="1"><cell_type>markdown</cell_type>content</cell id="1">
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatNotebookCells(cells: NotebookCellData[]): string;
|
|
14
|
+
//# sourceMappingURL=notebook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/util/notebook.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAwE1B;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC9C,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,CAaA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAyBrE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readNotebook = readNotebook;
|
|
4
|
+
exports.formatNotebookCells = formatNotebookCells;
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const utils_1 = require("../tools/Bash/utils");
|
|
7
|
+
function processOutputText(text) {
|
|
8
|
+
if (!text)
|
|
9
|
+
return '';
|
|
10
|
+
const rawText = Array.isArray(text) ? text.join('') : text;
|
|
11
|
+
const { truncatedContent } = (0, utils_1.formatOutput)(rawText);
|
|
12
|
+
return truncatedContent;
|
|
13
|
+
}
|
|
14
|
+
function extractImage(data) {
|
|
15
|
+
if (typeof data['image/png'] === 'string') {
|
|
16
|
+
return {
|
|
17
|
+
image_data: data['image/png'],
|
|
18
|
+
media_type: 'image/png',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (typeof data['image/jpeg'] === 'string') {
|
|
22
|
+
return {
|
|
23
|
+
image_data: data['image/jpeg'],
|
|
24
|
+
media_type: 'image/jpeg',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
function processNotebookOutput(output) {
|
|
30
|
+
switch (output.output_type) {
|
|
31
|
+
case 'stream':
|
|
32
|
+
return {
|
|
33
|
+
output_type: output.output_type,
|
|
34
|
+
text: processOutputText(output.text),
|
|
35
|
+
};
|
|
36
|
+
case 'execute_result':
|
|
37
|
+
case 'display_data':
|
|
38
|
+
return {
|
|
39
|
+
output_type: output.output_type,
|
|
40
|
+
text: processOutputText(output.data?.['text/plain']),
|
|
41
|
+
image: output.data && extractImage(output.data),
|
|
42
|
+
};
|
|
43
|
+
case 'error':
|
|
44
|
+
return {
|
|
45
|
+
output_type: output.output_type,
|
|
46
|
+
text: processOutputText(`${output.ename}: ${output.evalue}\n${output.traceback?.join('\n') || ''}`),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function processNotebookCell(cell, index, language) {
|
|
51
|
+
const cellData = {
|
|
52
|
+
cell: index,
|
|
53
|
+
cellType: cell.cell_type,
|
|
54
|
+
source: Array.isArray(cell.source) ? cell.source.join('') : cell.source,
|
|
55
|
+
language,
|
|
56
|
+
execution_count: cell.execution_count,
|
|
57
|
+
};
|
|
58
|
+
if (cell.outputs?.length) {
|
|
59
|
+
cellData.outputs = cell.outputs.map(processNotebookOutput);
|
|
60
|
+
}
|
|
61
|
+
return cellData;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 读取并解析 Jupyter Notebook 文件
|
|
65
|
+
*/
|
|
66
|
+
function readNotebook(filePath) {
|
|
67
|
+
const fileContent = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
68
|
+
const notebook = JSON.parse(fileContent);
|
|
69
|
+
const language = notebook.metadata.language_info?.name ?? 'python';
|
|
70
|
+
const cells = notebook.cells.map((cell, index) => processNotebookCell(cell, index, language));
|
|
71
|
+
return {
|
|
72
|
+
cells,
|
|
73
|
+
cellCount: cells.length,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 将 notebook cells 格式化为字符串
|
|
78
|
+
* 格式: <cell id="1"><cell_type>markdown</cell_type>content</cell id="1">
|
|
79
|
+
*/
|
|
80
|
+
function formatNotebookCells(cells) {
|
|
81
|
+
return cells.map(cell => {
|
|
82
|
+
const cellId = String(cell.cell + 1);
|
|
83
|
+
let cellContent = '';
|
|
84
|
+
// 添加 cell type(仅用于 markdown)
|
|
85
|
+
if (cell.cellType === 'markdown') {
|
|
86
|
+
cellContent = `<cell_type>${cell.cellType}</cell_type>${cell.source}`;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
cellContent = cell.source;
|
|
90
|
+
}
|
|
91
|
+
// 添加输出(如果有)
|
|
92
|
+
if (cell.outputs && cell.outputs.length > 0) {
|
|
93
|
+
const outputText = cell.outputs
|
|
94
|
+
.map(output => output.text)
|
|
95
|
+
.filter(Boolean)
|
|
96
|
+
.join('\n');
|
|
97
|
+
if (outputText) {
|
|
98
|
+
cellContent += `\n\nOutput:\n${outputText}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return `<cell id="${cellId}">${cellContent}</cell id="${cellId}">`;
|
|
102
|
+
}).join('\n');
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=notebook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/util/notebook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripgrep.d.ts","sourceRoot":"","sources":["../../src/util/ripgrep.ts"],"names":[],"mappings":"AAUA,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAkDnB;AAkHD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAOnB"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ripGrep = ripGrep;
|
|
37
|
+
exports.listAllContentFiles = listAllContentFiles;
|
|
38
|
+
const spawn_rx_1 = require("spawn-rx");
|
|
39
|
+
const lodash_es_1 = require("lodash-es");
|
|
40
|
+
const log_1 = require("./log");
|
|
41
|
+
const exec_1 = require("./exec");
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const useBuiltinRipgrep = !!process.env.USE_BUILTIN_RIPGREP;
|
|
46
|
+
async function ripGrep(args, target, abortSignal) {
|
|
47
|
+
await codesignRipgrepIfNecessary();
|
|
48
|
+
const rg = ripgrepPath();
|
|
49
|
+
// Windows 环境下,转换 Unix 风格的驱动器路径
|
|
50
|
+
let processedTarget = target;
|
|
51
|
+
if (process.platform === 'win32') {
|
|
52
|
+
const unixDrivePattern = /^\/([a-z])\//i;
|
|
53
|
+
const match = unixDrivePattern.exec(target);
|
|
54
|
+
if (match) {
|
|
55
|
+
const driveLetter = match[1].toUpperCase();
|
|
56
|
+
const rest = target.slice(3); // 去掉 /d/ 部分
|
|
57
|
+
processedTarget = `${driveLetter}:\\${rest.replace(/\//g, '\\')}`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// NB: When running interactively, ripgrep does not require a path as its last
|
|
61
|
+
// argument, but when run non-interactively, it will hang unless a path or file
|
|
62
|
+
// pattern is provided
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
(0, child_process_1.execFile)(rg, [...args, processedTarget], {
|
|
65
|
+
maxBuffer: 1_000_000,
|
|
66
|
+
signal: abortSignal,
|
|
67
|
+
timeout: 10_000,
|
|
68
|
+
}, (error, stdout) => {
|
|
69
|
+
if (error) {
|
|
70
|
+
// Exit code 1 from ripgrep means "no matches found" - this is normal
|
|
71
|
+
const exitCode = typeof error.code === 'number' ? error.code :
|
|
72
|
+
typeof error.code === 'string' ? parseInt(error.code, 10) :
|
|
73
|
+
undefined;
|
|
74
|
+
if (exitCode === 1) {
|
|
75
|
+
// No matches found is normal, return empty array
|
|
76
|
+
resolve([]);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Log other errors for debugging
|
|
80
|
+
(0, log_1.logError)(`ripgrep error (code: ${exitCode}): ${error.message}`);
|
|
81
|
+
resolve([]); // Still resolve with empty array to avoid breaking the flow
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
resolve(stdout.trim().split('\n').filter(Boolean));
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
let alreadyDoneSignCheck = false;
|
|
91
|
+
async function codesignRipgrepIfNecessary() {
|
|
92
|
+
if (process.platform !== 'darwin' || alreadyDoneSignCheck) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
alreadyDoneSignCheck = true;
|
|
96
|
+
// First, check to see if ripgrep is already signed
|
|
97
|
+
const lines = (await (0, exec_1.execFileNoThrow)('codesign', ['-vv', '-d', ripgrepPath()], undefined, undefined, false)).stdout.split('\n');
|
|
98
|
+
// If we find "linker-signed", it means it's only linker-signed and needs proper signing
|
|
99
|
+
const needsSigned = lines.find(line => line.includes('linker-signed'));
|
|
100
|
+
if (!needsSigned) {
|
|
101
|
+
// Already properly signed or no signing info found
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
const signResult = await (0, exec_1.execFileNoThrow)('codesign', [
|
|
106
|
+
'--sign',
|
|
107
|
+
'-',
|
|
108
|
+
'--force',
|
|
109
|
+
'--preserve-metadata=entitlements,requirements,flags,runtime',
|
|
110
|
+
ripgrepPath(),
|
|
111
|
+
]);
|
|
112
|
+
if (signResult.code !== 0) {
|
|
113
|
+
(0, log_1.logError)(`Failed to sign ripgrep: ${signResult.stdout} ${signResult.stderr}`);
|
|
114
|
+
}
|
|
115
|
+
const quarantineResult = await (0, exec_1.execFileNoThrow)('xattr', [
|
|
116
|
+
'-d',
|
|
117
|
+
'com.apple.quarantine',
|
|
118
|
+
ripgrepPath(),
|
|
119
|
+
]);
|
|
120
|
+
if (quarantineResult.code !== 0) {
|
|
121
|
+
(0, log_1.logError)(`Failed to remove quarantine: ${quarantineResult.stdout} ${quarantineResult.stderr}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
(0, log_1.logError)(e);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// 运行时动态获取 @vscode/ripgrep 的路径,避免打包时路径被固化
|
|
129
|
+
function getVscodeRipgrepPath() {
|
|
130
|
+
// 关键:process.platform 在运行时求值,而不是打包时
|
|
131
|
+
const rgName = process.platform === 'win32' ? 'rg.exe' : 'rg';
|
|
132
|
+
try {
|
|
133
|
+
// 方法1:通过 require.resolve 找到模块位置
|
|
134
|
+
const ripgrepModulePath = require.resolve('@vscode/ripgrep');
|
|
135
|
+
const moduleBinPath = path.join(path.dirname(ripgrepModulePath), '..', 'bin', rgName);
|
|
136
|
+
if (fs.existsSync(moduleBinPath)) {
|
|
137
|
+
return moduleBinPath;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// require.resolve 失败,尝试其他方法
|
|
142
|
+
}
|
|
143
|
+
// 方法2:相对于当前模块的路径
|
|
144
|
+
const relativePath = path.resolve(__dirname, '../node_modules/@vscode/ripgrep/bin', rgName);
|
|
145
|
+
if (fs.existsSync(relativePath)) {
|
|
146
|
+
return relativePath;
|
|
147
|
+
}
|
|
148
|
+
// 方法3:相对于 __dirname 向上查找
|
|
149
|
+
const parentPath = path.resolve(__dirname, '../../node_modules/@vscode/ripgrep/bin', rgName);
|
|
150
|
+
if (fs.existsSync(parentPath)) {
|
|
151
|
+
return parentPath;
|
|
152
|
+
}
|
|
153
|
+
throw new Error(`@vscode/ripgrep binary not found: tried multiple paths for ${rgName}`);
|
|
154
|
+
}
|
|
155
|
+
const ripgrepPath = (0, lodash_es_1.memoize)(() => {
|
|
156
|
+
const { cmd } = (0, spawn_rx_1.findActualExecutable)('rg', []);
|
|
157
|
+
if (cmd !== 'rg' && !useBuiltinRipgrep) {
|
|
158
|
+
// NB: If we're able to find ripgrep in $PATH, cmd will be an absolute
|
|
159
|
+
// path rather than just returning 'rg'
|
|
160
|
+
return cmd;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
// Use @vscode/ripgrep which auto-downloads platform-specific binary
|
|
164
|
+
// 运行时动态计算路径,避免打包时路径被固化的问题
|
|
165
|
+
try {
|
|
166
|
+
const rgPath = getVscodeRipgrepPath();
|
|
167
|
+
return rgPath;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
(0, log_1.logError)(`Error finding ripgrep: ${error}`);
|
|
171
|
+
throw error;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
// NB: We do something tricky here. We know that ripgrep processes common
|
|
176
|
+
// ignore files for us, so we just ripgrep for any character, which matches
|
|
177
|
+
// all non-empty files
|
|
178
|
+
async function listAllContentFiles(path, abortSignal, limit) {
|
|
179
|
+
try {
|
|
180
|
+
return (await ripGrep(['-l', '.'], path, abortSignal)).slice(0, limit);
|
|
181
|
+
}
|
|
182
|
+
catch (e) {
|
|
183
|
+
(0, log_1.logError)(e);
|
|
184
|
+
return [];
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=ripgrep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripgrep.js","sourceRoot":"","sources":["../../src/util/ripgrep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/util/rules.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AA0DzC;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAwBtE"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.generateRulesReminders = generateRulesReminders;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const cwd_1 = require("./cwd");
|
|
40
|
+
const product_1 = require("../constants/product");
|
|
41
|
+
const savePath_1 = require("../util/savePath");
|
|
42
|
+
const ConfManager_1 = require("../manager/ConfManager");
|
|
43
|
+
/**
|
|
44
|
+
* 读取当前目录下的配置文件内容
|
|
45
|
+
* 优先读取 AGENT.md,如果不存在则读取 CLAUDE.md
|
|
46
|
+
*/
|
|
47
|
+
function readConfigFile() {
|
|
48
|
+
try {
|
|
49
|
+
const currentDir = (0, cwd_1.getOriginalCwd)();
|
|
50
|
+
const agentPath = path.join(currentDir, product_1.PROJECT_FILE);
|
|
51
|
+
const claudePath = path.join(currentDir, 'CLAUDE.md');
|
|
52
|
+
if (fs.existsSync(agentPath)) {
|
|
53
|
+
return fs.readFileSync(agentPath, 'utf8');
|
|
54
|
+
}
|
|
55
|
+
if (fs.existsSync(claudePath)) {
|
|
56
|
+
return fs.readFileSync(claudePath, 'utf8');
|
|
57
|
+
}
|
|
58
|
+
return '';
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return '';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 读取全局~/.sema/AGENT.md 加上customRules
|
|
66
|
+
*/
|
|
67
|
+
function readGlobalAgentFile() {
|
|
68
|
+
try {
|
|
69
|
+
const agentPath = (0, savePath_1.getGlobalAgentMdPath)();
|
|
70
|
+
let content = '';
|
|
71
|
+
if (fs.existsSync(agentPath)) {
|
|
72
|
+
content = fs.readFileSync(agentPath, 'utf8');
|
|
73
|
+
}
|
|
74
|
+
// 尝试从配置管理器中获取自定义的 customRules
|
|
75
|
+
const configManager = (0, ConfManager_1.getConfManager)();
|
|
76
|
+
const coreConfig = configManager.getCoreConfig();
|
|
77
|
+
if (coreConfig?.customRules) {
|
|
78
|
+
content = content ? `${content}\n\n${coreConfig.customRules}` : coreConfig.customRules;
|
|
79
|
+
}
|
|
80
|
+
return content;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return '';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 生成 rules 相关的系统提醒信息
|
|
88
|
+
*/
|
|
89
|
+
function generateRulesReminders() {
|
|
90
|
+
const globalContent = readGlobalAgentFile();
|
|
91
|
+
const projectContent = readConfigFile();
|
|
92
|
+
// 如果全局和项目配置都为空,直接返回空数组
|
|
93
|
+
if (!globalContent && !projectContent) {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
const rulesReminder = `<system-reminder>
|
|
97
|
+
As you answer the user's questions, you can use the following context:
|
|
98
|
+
# agentMd
|
|
99
|
+
Codebase and user instructions are shown below. Be sure to adhere to these instructions. IMPORTANT: These instructions OVERRIDE any default behavior and you MUST follow them exactly as written.
|
|
100
|
+
|
|
101
|
+
Contents of ${(0, savePath_1.getGlobalAgentMdPath)()} (user's private global instructions for all projects): ${globalContent}
|
|
102
|
+
|
|
103
|
+
${projectContent}
|
|
104
|
+
|
|
105
|
+
IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context unless it is highly relevant to your task.\n</system-reminder>`;
|
|
106
|
+
return [{
|
|
107
|
+
type: 'text',
|
|
108
|
+
text: rulesReminder
|
|
109
|
+
}];
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/util/rules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,wDAwBC;AApFD,uCAAwB;AACxB,2CAA4B;AAC5B,+BAAsC;AACtC,kDAAmD;AACnD,+CAAuD;AACvD,wDAAuD;AAEvD;;;GAGG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,oBAAc,GAAE,CAAA;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAY,CAAC,CAAA;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;QAErD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,+BAAoB,GAAE,CAAA;QACxC,IAAI,OAAO,GAAG,EAAE,CAAA;QAEhB,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC;QAED,8BAA8B;QAC9B,MAAM,aAAa,GAAG,IAAA,4BAAc,GAAE,CAAA;QACtC,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,EAAE,CAAA;QAEhD,IAAI,UAAU,EAAE,WAAW,EAAE,CAAC;YAC5B,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAA;QACxF,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAA;IAC3C,MAAM,cAAc,GAAG,cAAc,EAAE,CAAA;IAEvC,uBAAuB;IACvB,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,aAAa,GAAG;;;;;cAKV,IAAA,+BAAoB,GAAE,2DAA2D,aAAa;;EAE1G,cAAc;;8KAE8J,CAAA;IAE5K,OAAO,CAAC;YACN,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,aAAa;SACpB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 获取 Sema 根目录路径
|
|
3
|
+
* 默认为 ~/.sema,可通过环境变量 SEMA_ROOT 自定义
|
|
4
|
+
* 跨平台兼容:Windows、macOS、Linux
|
|
5
|
+
*/
|
|
6
|
+
export declare function getSemaRootDir(): string;
|
|
7
|
+
/**
|
|
8
|
+
* 获取模型配置文件路径
|
|
9
|
+
*/
|
|
10
|
+
export declare function getModelConfigFilePath(): string;
|
|
11
|
+
/**
|
|
12
|
+
* 获取项目配置文件路径
|
|
13
|
+
*/
|
|
14
|
+
export declare function getProjectConfigFilePath(): string;
|
|
15
|
+
/**
|
|
16
|
+
* 获取历史记录根目录路径
|
|
17
|
+
*/
|
|
18
|
+
export declare function getHistoryDir(): string;
|
|
19
|
+
/**
|
|
20
|
+
* 将项目绝对路径转换为目录名
|
|
21
|
+
* 规则:路径分隔符替换为 -,开头加 -,Windows盘符的冒号去掉
|
|
22
|
+
* 例如:
|
|
23
|
+
* /Users/xxx/project -> -Users-xxx-project
|
|
24
|
+
* C:\Users\xxx\project -> -C-Users-xxx-project
|
|
25
|
+
* @param projectPath 项目绝对路径
|
|
26
|
+
*/
|
|
27
|
+
export declare function projectPathToDirName(projectPath: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* 获取项目的历史记录目录路径
|
|
30
|
+
* @param projectPath 项目绝对路径
|
|
31
|
+
*/
|
|
32
|
+
export declare function getProjectHistoryDir(projectPath: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* 获取历史记录文件路径
|
|
35
|
+
* @param sessionId 会话ID
|
|
36
|
+
* @param projectPath 项目绝对路径(可选,如果不提供则使用旧的平铺存储方式)
|
|
37
|
+
*/
|
|
38
|
+
export declare function getHistoryFilePath(sessionId: string, projectPath?: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* 获取日志目录路径
|
|
41
|
+
*/
|
|
42
|
+
export declare function getLogsDir(): string;
|
|
43
|
+
/**
|
|
44
|
+
* 获取LLM日志目录路径
|
|
45
|
+
*/
|
|
46
|
+
export declare function getLLMLogsDir(): string;
|
|
47
|
+
/**
|
|
48
|
+
* 获取轨迹归档目录路径
|
|
49
|
+
*/
|
|
50
|
+
export declare function getTracksDir(): string;
|
|
51
|
+
/**
|
|
52
|
+
* 获取缓存目录路径
|
|
53
|
+
*/
|
|
54
|
+
export declare function getCacheDir(): string;
|
|
55
|
+
/**
|
|
56
|
+
* 获取LLM缓存文件路径
|
|
57
|
+
*/
|
|
58
|
+
export declare function getLLMCacheFilePath(): string;
|
|
59
|
+
/**
|
|
60
|
+
* 获取事件日志目录路径
|
|
61
|
+
*/
|
|
62
|
+
export declare function getEventDir(): string;
|
|
63
|
+
/**
|
|
64
|
+
* 获取全局 Agent.md 文件路径
|
|
65
|
+
* 位于根目录下的 /.sema/AGENT.md
|
|
66
|
+
*/
|
|
67
|
+
export declare function getGlobalAgentMdPath(): string;
|
|
68
|
+
/**
|
|
69
|
+
* 获取全局 MCP配置 文件路径
|
|
70
|
+
* 位于根目录下的 /.sema/mcp.json
|
|
71
|
+
*/
|
|
72
|
+
export declare function getGlobalMCPFilePath(): string;
|
|
73
|
+
//# sourceMappingURL=savePath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"savePath.d.ts","sourceRoot":"","sources":["../../src/util/savePath.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAgBvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBhE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAUlF;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|