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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 semacode
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
## 开发
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
# 1、安装
|
|
5
|
+
npm install
|
|
6
|
+
|
|
7
|
+
# 2、编译
|
|
8
|
+
npm run build
|
|
9
|
+
|
|
10
|
+
# 3、测试
|
|
11
|
+
node test/addModel.test.js
|
|
12
|
+
node test/miniCli.test.js
|
|
13
|
+
|
|
14
|
+
# 4、打包
|
|
15
|
+
npm pack
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
ripgrep mac/win 兼容打包说明:
|
|
19
|
+
```
|
|
20
|
+
// 首次打包之前,下载双平台ripgrep依赖文件
|
|
21
|
+
./download-ripgrep.sh
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 快速使用
|
|
25
|
+
|
|
26
|
+
### 创建实例
|
|
27
|
+
|
|
28
|
+
创建Sema Core实例
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
import { SemaCore } from 'sema-core';
|
|
32
|
+
const sema = new SemaCore({
|
|
33
|
+
workingDir: '/path/to/your/project',
|
|
34
|
+
logLevel: 'info',
|
|
35
|
+
thinking: false
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
构建参数:
|
|
40
|
+
```
|
|
41
|
+
interface SemaCoreConfig {
|
|
42
|
+
workingDir?: string; // 项目绝对路径
|
|
43
|
+
logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'none'; // 默认 'info'
|
|
44
|
+
stream?: boolean; // 流式输出ai响应,默认 是
|
|
45
|
+
thinking?: boolean; // 流式输出ai响应,默认 否
|
|
46
|
+
systemPrompt?: string; // 系统提示
|
|
47
|
+
customRules?: string; // 用户规则
|
|
48
|
+
skipFileEditPermission?: boolean; // 是否跳过文件编辑权限检查,默认 否
|
|
49
|
+
skipBashExecPermission?: boolean; // 是否跳过bash执行权限检查,默认 否
|
|
50
|
+
skipSkillPermission?: boolean; // 是否跳过Skill权限检查,默认 否
|
|
51
|
+
skipMCPToolPermission?: boolean; // 是否跳过MCP工具权限检查,默认 否
|
|
52
|
+
enableLLMCache?: boolean; // 是否开启LLM缓存,默认 否 只有测试时使用
|
|
53
|
+
useTools?: string[] | null; // 限定使用的工具 默认 null 使用所有工具
|
|
54
|
+
agentMode?: 'Agent' | 'Plan' ; // 默认 'Agent'
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 会话管理
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
// 创建新会话
|
|
62
|
+
await sema.createSession();
|
|
63
|
+
|
|
64
|
+
// 加载历史会话
|
|
65
|
+
await sema.createSession('session_123');
|
|
66
|
+
|
|
67
|
+
// 处理用户输入
|
|
68
|
+
await sema.processUserInput('帮我分析这个项目的结构');
|
|
69
|
+
|
|
70
|
+
// 中断当前处理
|
|
71
|
+
sema.interruptSession();
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 信息监听
|
|
75
|
+
创建Sema Core实例
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
// 监听处理过程中的各种事件
|
|
79
|
+
sema.on('message:chunk', (data) => {
|
|
80
|
+
if (data.type === 'text') {
|
|
81
|
+
console.log('AI回复片段:', data.delta);
|
|
82
|
+
} else if (data.type === 'thinking') {
|
|
83
|
+
console.log('AI思考:', data.delta);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
sema.on('tool:execution:complete', (data) => {
|
|
88
|
+
console.log(`工具 ${data.toolName} 执行完成:`, data.summary);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
sema.on('tool:permission:request', (data) => {
|
|
92
|
+
console.log(`工具权限请求:`, data);
|
|
93
|
+
const selected = 'agree';
|
|
94
|
+
core.respondToToolPermission({toolName: data.toolName, selected: selected});
|
|
95
|
+
});
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 项目结构
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
sema-core/src
|
|
102
|
+
├── index.ts # 项目主入口:导出SemaCore公共API
|
|
103
|
+
├── core
|
|
104
|
+
│ ├── SemaCore.ts # SemaCore 主类:核心API类 (公共接口)
|
|
105
|
+
│ ├── SemaEngine.ts # Sema 引擎:业务引擎 (核心逻辑)
|
|
106
|
+
│ ├── Conversation.ts # 对话管理模块:管理会话历史、上下文维护和消息处理
|
|
107
|
+
│ └── RunTools.ts # 工具执行器:调度和执行各类工具的核心逻辑
|
|
108
|
+
├── events/ # 事件系统:定义和处理系统级事件
|
|
109
|
+
├── manager
|
|
110
|
+
│ ├── ConfManager.ts # 配置管理器:加载和管理应用程序配置
|
|
111
|
+
│ ├── ModelManager.ts # 模型管理器:管理AI模型配置和切换
|
|
112
|
+
│ ├── PermissionManager.ts # 权限管理器:控制工具访问权限和用户授权
|
|
113
|
+
│ └── StateManager.ts # 状态管理器:管理会话状态和系统状态持久化
|
|
114
|
+
├── services
|
|
115
|
+
│ ├── api
|
|
116
|
+
│ │ ├── adapt # API适配器:各厂商LLM API流式的适配层
|
|
117
|
+
│ │ │ ├── anthropic.ts # Anthropic Claude API适配
|
|
118
|
+
│ │ │ ├── openai.ts # OpenAI API适配
|
|
119
|
+
│ │ │ └── util.ts # API适配通用工具
|
|
120
|
+
│ │ ├── queryLLM.ts # LLM查询主逻辑:统一调用不同模型
|
|
121
|
+
│ │ ├── cache.ts # API响应缓存
|
|
122
|
+
│ │ └── apiUtil.ts # API工具非流式
|
|
123
|
+
│ ├── agents/ # Agent服务:实现不同的AI智能体策略
|
|
124
|
+
│ ├── command/ # command服务:系统命令解析和处理
|
|
125
|
+
│ ├── mcp/ # Model Context Protocol服务
|
|
126
|
+
│ ├── plugins/ # 插件系统
|
|
127
|
+
│ └── skill/ # Skill服务
|
|
128
|
+
├── tools
|
|
129
|
+
│ ├── Bash # Bash工具:执行Shell命令和脚本
|
|
130
|
+
│ │ ├── Bash.ts # Bash工具主实现
|
|
131
|
+
│ │ ├── prompt.ts # Bash相关的提示词模板
|
|
132
|
+
│ │ └── utils.ts # Bash工具辅助函数
|
|
133
|
+
│ ├── AskUserQuestion/ # 用户询问工具:向用户提问并获取输入
|
|
134
|
+
│ ├── Edit/ # 文件编辑工具:创建、修改文件
|
|
135
|
+
│ ├── ExitPlanMode/ # 退出计划模式工具
|
|
136
|
+
│ ├── Glob/ # 文件通配工具:文件系统通配符搜索
|
|
137
|
+
│ ├── Grep/ # 文本搜索工具:在文件中搜索内容
|
|
138
|
+
│ ├── NotebookEdit/ # 笔记本编辑工具(可能用于特定格式)
|
|
139
|
+
│ ├── Read/ # 文件读取工具:读取文件内容
|
|
140
|
+
│ ├── Skill/ # 技能调用工具:执行特定技能
|
|
141
|
+
│ ├── Task/ # 任务管理工具:任务创建和追踪
|
|
142
|
+
│ ├── TodoWrite/ # Todo列表写入工具
|
|
143
|
+
│ ├── Write/ # 文件写入工具:写入内容到文件
|
|
144
|
+
│ └── base # 工具基类定义
|
|
145
|
+
│ ├── Tool.ts # 工具抽象基类接口
|
|
146
|
+
│ └── tools.ts # 工具注册和管理
|
|
147
|
+
├── types/ # 类型定义
|
|
148
|
+
├── constants/ # 常量
|
|
149
|
+
└── util/ # 工具
|
|
150
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const SEMA_ROOT = "~/.sema";
|
|
2
|
+
export declare const MODEL_CONF_FILE_PATH = "model.conf";
|
|
3
|
+
export declare const PROJECT_CONF_FILE_PATH = "projects.conf";
|
|
4
|
+
export declare const PROJECT_LENGTH_LIMIT = 20;
|
|
5
|
+
export declare const PROJECT_HISTORY_LENGTH_LIMIT = 10;
|
|
6
|
+
export declare const HISTORY_DIR_PATH = "history";
|
|
7
|
+
export declare const HISTORY_FILES_RETAIN_COUNT = 200;
|
|
8
|
+
export declare const PER_PROJECT_HISTORY_LENGTH_LIMIT = 50;
|
|
9
|
+
export declare const HISTORY_CLEANUP_INTERVAL: number;
|
|
10
|
+
export declare const LOG_DIR_PATH = "logs";
|
|
11
|
+
export declare const SERVICE_LOG_FILES_RETAIN_COUNT = 7;
|
|
12
|
+
export declare const LLM_LOG_DIR_PATH = "llm_logs";
|
|
13
|
+
export declare const LLM_LOG_FILES_RETAIN_COUNT = 10;
|
|
14
|
+
export declare const LLM_LOG_CLEANUP_INTERVAL: number;
|
|
15
|
+
export declare const TRACKS_DIR_PATH = "tracks";
|
|
16
|
+
export declare const TRACKS_FILES_RETAIN_COUNT = 30;
|
|
17
|
+
export declare const EVENT_DIR_PATH = "event";
|
|
18
|
+
export declare const EVENT_LOG_FILES_RETAIN_COUNT = 10;
|
|
19
|
+
export declare const EVENT_LOG_CLEANUP_INTERVAL: number;
|
|
20
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/constants/config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,YAAY,CAAA;AAGlC,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAGhD,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AACrD,eAAO,MAAM,oBAAoB,KAAK,CAAA;AACtC,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAG9C,eAAO,MAAM,gBAAgB,YAAY,CAAA;AACzC,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAC7C,eAAO,MAAM,gCAAgC,KAAK,CAAA;AAClD,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAGvD,eAAO,MAAM,YAAY,SAAS,CAAA;AAClC,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAG/C,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAC1C,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAC5C,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAGvD,eAAO,MAAM,eAAe,WAAW,CAAA;AACvC,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAG3C,eAAO,MAAM,cAAc,UAAU,CAAA;AACrC,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAC9C,eAAO,MAAM,0BAA0B,QAAiB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVENT_LOG_CLEANUP_INTERVAL = exports.EVENT_LOG_FILES_RETAIN_COUNT = exports.EVENT_DIR_PATH = exports.TRACKS_FILES_RETAIN_COUNT = exports.TRACKS_DIR_PATH = exports.LLM_LOG_CLEANUP_INTERVAL = exports.LLM_LOG_FILES_RETAIN_COUNT = exports.LLM_LOG_DIR_PATH = exports.SERVICE_LOG_FILES_RETAIN_COUNT = exports.LOG_DIR_PATH = exports.HISTORY_CLEANUP_INTERVAL = exports.PER_PROJECT_HISTORY_LENGTH_LIMIT = exports.HISTORY_FILES_RETAIN_COUNT = exports.HISTORY_DIR_PATH = exports.PROJECT_HISTORY_LENGTH_LIMIT = exports.PROJECT_LENGTH_LIMIT = exports.PROJECT_CONF_FILE_PATH = exports.MODEL_CONF_FILE_PATH = exports.SEMA_ROOT = void 0;
|
|
4
|
+
// sema数据存储目录
|
|
5
|
+
exports.SEMA_ROOT = '~/.sema';
|
|
6
|
+
// 模型配置文件
|
|
7
|
+
exports.MODEL_CONF_FILE_PATH = 'model.conf';
|
|
8
|
+
// 项目配置文件
|
|
9
|
+
exports.PROJECT_CONF_FILE_PATH = 'projects.conf';
|
|
10
|
+
exports.PROJECT_LENGTH_LIMIT = 20; // 项目数量限制
|
|
11
|
+
exports.PROJECT_HISTORY_LENGTH_LIMIT = 10; // 项目历史输入限制
|
|
12
|
+
// 会话历史记录
|
|
13
|
+
exports.HISTORY_DIR_PATH = 'history';
|
|
14
|
+
exports.HISTORY_FILES_RETAIN_COUNT = 200; // 会话历史记录文件保留数量
|
|
15
|
+
exports.PER_PROJECT_HISTORY_LENGTH_LIMIT = 50; // 每个项目历史记录文件保留数量
|
|
16
|
+
exports.HISTORY_CLEANUP_INTERVAL = 60 * 60 * 1000; // 清理会话历史记录文件的时间间隔(毫秒)
|
|
17
|
+
// 服务日志10
|
|
18
|
+
exports.LOG_DIR_PATH = 'logs';
|
|
19
|
+
exports.SERVICE_LOG_FILES_RETAIN_COUNT = 7; // 服务日志文件保留数量
|
|
20
|
+
// LLM调用日志
|
|
21
|
+
exports.LLM_LOG_DIR_PATH = 'llm_logs';
|
|
22
|
+
exports.LLM_LOG_FILES_RETAIN_COUNT = 10; // 大模型日志文件保留数量
|
|
23
|
+
exports.LLM_LOG_CLEANUP_INTERVAL = 60 * 60 * 1000; // 清理LLM日志文件的时间间隔(毫秒)
|
|
24
|
+
// LLM调用轨迹归档
|
|
25
|
+
exports.TRACKS_DIR_PATH = 'tracks';
|
|
26
|
+
exports.TRACKS_FILES_RETAIN_COUNT = 30; // 轨迹归档文件保留数量
|
|
27
|
+
// 事件日志
|
|
28
|
+
exports.EVENT_DIR_PATH = 'event';
|
|
29
|
+
exports.EVENT_LOG_FILES_RETAIN_COUNT = 10; // 事件日志文件保留数量
|
|
30
|
+
exports.EVENT_LOG_CLEANUP_INTERVAL = 60 * 60 * 1000; // 清理事件日志文件的时间间隔(毫秒)
|
|
31
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/constants/config.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACA,QAAA,SAAS,GAAG,SAAS,CAAA;AAElC,SAAS;AACI,QAAA,oBAAoB,GAAG,YAAY,CAAA;AAEhD,SAAS;AACI,QAAA,sBAAsB,GAAG,eAAe,CAAA;AACxC,QAAA,oBAAoB,GAAG,EAAE,CAAA,CAAE,SAAS;AACpC,QAAA,4BAA4B,GAAG,EAAE,CAAA,CAAE,WAAW;AAE3D,SAAS;AACI,QAAA,gBAAgB,GAAG,SAAS,CAAA;AAC5B,QAAA,0BAA0B,GAAG,GAAG,CAAA,CAAE,eAAe;AACjD,QAAA,gCAAgC,GAAG,EAAE,CAAA,CAAC,iBAAiB;AACvD,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,sBAAsB;AAE/E,SAAS;AACI,QAAA,YAAY,GAAG,MAAM,CAAA;AACrB,QAAA,8BAA8B,GAAG,CAAC,CAAA,CAAE,aAAa;AAE9D,UAAU;AACG,QAAA,gBAAgB,GAAG,UAAU,CAAA;AAC7B,QAAA,0BAA0B,GAAG,EAAE,CAAA,CAAE,cAAc;AAC/C,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,qBAAqB;AAE9E,YAAY;AACC,QAAA,eAAe,GAAG,QAAQ,CAAA;AAC1B,QAAA,yBAAyB,GAAG,EAAE,CAAA,CAAE,aAAa;AAE1D,OAAO;AACM,QAAA,cAAc,GAAG,OAAO,CAAA;AACxB,QAAA,4BAA4B,GAAG,EAAE,CAAA,CAAE,aAAa;AAChD,QAAA,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,oBAAoB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const INTERRUPT_MESSAGE = "[Request interrupted by user]";
|
|
2
|
+
export declare const INTERRUPT_MESSAGE_FOR_TOOL_USE = "[Request interrupted by user for tool use]";
|
|
3
|
+
export declare const CANCEL_MESSAGE = "The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.";
|
|
4
|
+
export declare const REJECT_MESSAGE = "The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.";
|
|
5
|
+
export declare function getCustomFeedbackMessage(userFeedback: string): string;
|
|
6
|
+
export declare const NO_RESPONSE_REQUESTED = "No response requested.";
|
|
7
|
+
export declare const SYNTHETIC_ASSISTANT_MESSAGES: Set<string>;
|
|
8
|
+
export declare const API_ERROR_MESSAGE_PREFIX = "API Error";
|
|
9
|
+
export declare const NO_CONTENT_MESSAGE = "(no content)";
|
|
10
|
+
//# sourceMappingURL=message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/constants/message.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,kCAAkC,CAAA;AAChE,eAAO,MAAM,8BAA8B,+CACG,CAAA;AAC9C,eAAO,MAAM,cAAc,mIACuG,CAAA;AAClI,eAAO,MAAM,cAAc,sOAC0M,CAAA;AAGrO,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,MAAM,qBAAqB,2BAA2B,CAAA;AAG7D,eAAO,MAAM,4BAA4B,aAMvC,CAAA;AAEF,eAAO,MAAM,wBAAwB,cAAc,CAAA;AAEnD,eAAO,MAAM,kBAAkB,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NO_CONTENT_MESSAGE = exports.API_ERROR_MESSAGE_PREFIX = exports.SYNTHETIC_ASSISTANT_MESSAGES = exports.NO_RESPONSE_REQUESTED = exports.REJECT_MESSAGE = exports.CANCEL_MESSAGE = exports.INTERRUPT_MESSAGE_FOR_TOOL_USE = exports.INTERRUPT_MESSAGE = void 0;
|
|
4
|
+
exports.getCustomFeedbackMessage = getCustomFeedbackMessage;
|
|
5
|
+
// 用户中断消息常量
|
|
6
|
+
exports.INTERRUPT_MESSAGE = '[Request interrupted by user]';
|
|
7
|
+
exports.INTERRUPT_MESSAGE_FOR_TOOL_USE = '[Request interrupted by user for tool use]';
|
|
8
|
+
exports.CANCEL_MESSAGE = "The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.";
|
|
9
|
+
exports.REJECT_MESSAGE = "The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.";
|
|
10
|
+
// 用户自定义反馈消息(不中断,继续对话)
|
|
11
|
+
function getCustomFeedbackMessage(userFeedback) {
|
|
12
|
+
return `The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). To tell you how to proceed, the user said:\n${userFeedback}`;
|
|
13
|
+
}
|
|
14
|
+
exports.NO_RESPONSE_REQUESTED = 'No response requested.';
|
|
15
|
+
// 合成助手消息集合
|
|
16
|
+
exports.SYNTHETIC_ASSISTANT_MESSAGES = new Set([
|
|
17
|
+
exports.INTERRUPT_MESSAGE,
|
|
18
|
+
exports.INTERRUPT_MESSAGE_FOR_TOOL_USE,
|
|
19
|
+
exports.CANCEL_MESSAGE,
|
|
20
|
+
exports.REJECT_MESSAGE,
|
|
21
|
+
exports.NO_RESPONSE_REQUESTED,
|
|
22
|
+
]);
|
|
23
|
+
exports.API_ERROR_MESSAGE_PREFIX = 'API Error';
|
|
24
|
+
exports.NO_CONTENT_MESSAGE = '(no content)';
|
|
25
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/constants/message.ts"],"names":[],"mappings":";;;AAUA,4DAEC;AAZD,WAAW;AACE,QAAA,iBAAiB,GAAG,+BAA+B,CAAA;AACnD,QAAA,8BAA8B,GACzC,4CAA4C,CAAA;AACjC,QAAA,cAAc,GACzB,gIAAgI,CAAA;AACrH,QAAA,cAAc,GACzB,mOAAmO,CAAA;AAErO,sBAAsB;AACtB,SAAgB,wBAAwB,CAAC,YAAoB;IAC3D,OAAO,uMAAuM,YAAY,EAAE,CAAA;AAC9N,CAAC;AAEY,QAAA,qBAAqB,GAAG,wBAAwB,CAAA;AAE7D,WAAW;AACE,QAAA,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAClD,yBAAiB;IACjB,sCAA8B;IAC9B,sBAAc;IACd,sBAAc;IACd,6BAAqB;CACtB,CAAC,CAAA;AAEW,QAAA,wBAAwB,GAAG,WAAW,CAAA;AAEtC,QAAA,kBAAkB,GAAG,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/constants/product.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,aAAa,CAAA;AACtC,eAAO,MAAM,YAAY,SAAS,CAAA;AAClC,eAAO,MAAM,KAAK,SAAS,CAAA;AAC3B,eAAO,MAAM,WAAW,KAAK,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PRODUCT_URL = exports.GROUP = exports.PRODUCT_NAME = exports.PROJECT_FILE = void 0;
|
|
4
|
+
exports.PROJECT_FILE = 'AGENT.md';
|
|
5
|
+
exports.PRODUCT_NAME = 'Sema';
|
|
6
|
+
exports.GROUP = 'AIRC';
|
|
7
|
+
exports.PRODUCT_URL = '';
|
|
8
|
+
//# sourceMappingURL=product.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/constants/product.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,UAAU,CAAA;AACzB,QAAA,YAAY,GAAG,MAAM,CAAA;AACrB,QAAA,KAAK,GAAG,MAAM,CAAA;AACd,QAAA,WAAW,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AgentContext } from '../types/agent';
|
|
2
|
+
import { Message } from '../types/message';
|
|
3
|
+
/**
|
|
4
|
+
* 核心查询函数实现
|
|
5
|
+
* 中断检查:
|
|
6
|
+
* 用户输入 → AI响应(包含3个工具调用) → 检查点1 →
|
|
7
|
+
* 工具1 → 检查点3 → 执行工具1 → 检查点4
|
|
8
|
+
* 工具2 → 检查点3 → 执行工具2 → 检查点4
|
|
9
|
+
* 工具3 → 检查点3 → 执行工具3 → 检查点4
|
|
10
|
+
* → 检查点2 → 递归查询...
|
|
11
|
+
*/
|
|
12
|
+
export declare function query(messages: Message[], systemPromptContent: Array<{
|
|
13
|
+
type: 'text';
|
|
14
|
+
text: string;
|
|
15
|
+
}>, agentContext: AgentContext): AsyncGenerator<Message, void>;
|
|
16
|
+
//# sourceMappingURL=Conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Conversation.d.ts","sourceRoot":"","sources":["../../src/core/Conversation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAiC,MAAM,kBAAkB,CAAA;AAqBzE;;;;;;;;GAQG;AACH,wBAAuB,KAAK,CAC1B,QAAQ,EAAE,OAAO,EAAE,EACnB,mBAAmB,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1D,YAAY,EAAE,YAAY,GACzB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAkM/B"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.query = query;
|
|
4
|
+
const queryLLM_1 = require("../services/api/queryLLM");
|
|
5
|
+
const message_1 = require("../util/message");
|
|
6
|
+
const log_1 = require("../util/log");
|
|
7
|
+
const compact_1 = require("../util/compact");
|
|
8
|
+
const tokens_1 = require("../util/tokens");
|
|
9
|
+
const message_2 = require("../constants/message");
|
|
10
|
+
const StateManager_1 = require("../manager/StateManager");
|
|
11
|
+
const EventSystem_1 = require("../events/EventSystem");
|
|
12
|
+
const tools_1 = require("../tools/base/tools");
|
|
13
|
+
const MCPManager_1 = require("../services/mcp/MCPManager");
|
|
14
|
+
const ConfManager_1 = require("../manager/ConfManager");
|
|
15
|
+
const genSystemPrompt_1 = require("../services/agents/genSystemPrompt");
|
|
16
|
+
const rules_1 = require("../util/rules");
|
|
17
|
+
const RunTools_1 = require("./RunTools");
|
|
18
|
+
/**
|
|
19
|
+
* 核心查询函数实现
|
|
20
|
+
* 中断检查:
|
|
21
|
+
* 用户输入 → AI响应(包含3个工具调用) → 检查点1 →
|
|
22
|
+
* 工具1 → 检查点3 → 执行工具1 → 检查点4
|
|
23
|
+
* 工具2 → 检查点3 → 执行工具2 → 检查点4
|
|
24
|
+
* 工具3 → 检查点3 → 执行工具3 → 检查点4
|
|
25
|
+
* → 检查点2 → 递归查询...
|
|
26
|
+
*/
|
|
27
|
+
async function* query(messages, systemPromptContent, agentContext) {
|
|
28
|
+
const { agentId, abortController, tools } = agentContext;
|
|
29
|
+
const stateManager = (0, StateManager_1.getStateManager)();
|
|
30
|
+
const agentState = stateManager.forAgent(agentId);
|
|
31
|
+
const isSubagent = agentId != StateManager_1.MAIN_AGENT_ID;
|
|
32
|
+
// 自动压缩检查(子代理不进行压缩)
|
|
33
|
+
// 在处理新消息前检查,如果需要压缩,会分离出最新的用户消息
|
|
34
|
+
if (!isSubagent) {
|
|
35
|
+
const { messages: processedMessages, wasCompacted } = await (0, compact_1.checkAutoCompact)(messages, abortController);
|
|
36
|
+
if (wasCompacted) {
|
|
37
|
+
(0, log_1.logDebug)(`[Compact] Before: ${messages.length} messages, After: ${processedMessages.length} messages`);
|
|
38
|
+
(0, log_1.logDebug)(`[Compact] Compacted messages structure: ${JSON.stringify(processedMessages.map(m => ({
|
|
39
|
+
type: m.type,
|
|
40
|
+
role: m.message.role,
|
|
41
|
+
contentType: Array.isArray(m.message.content)
|
|
42
|
+
? m.message.content.map((c) => c.type)
|
|
43
|
+
: typeof m.message.content
|
|
44
|
+
})), null, 2)}`);
|
|
45
|
+
messages = processedMessages;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// 获取助手响应
|
|
49
|
+
const assistantMessage = await (0, queryLLM_1.queryLLM)((0, message_1.normalizeMessagesForAPI)(messages), systemPromptContent, abortController.signal, tools, agentContext.model, isSubagent // 根据上下文决定是否发送 chunk 事件
|
|
50
|
+
);
|
|
51
|
+
// 检查点1: AI响应完成后工具执行前
|
|
52
|
+
if (abortController.signal.aborted) {
|
|
53
|
+
(0, log_1.logWarn)('检查点1: AI响应完成后工具执行前');
|
|
54
|
+
// 中断信息
|
|
55
|
+
(0, EventSystem_1.getEventBus)().emit('session:interrupted', { agentId, content: message_2.INTERRUPT_MESSAGE });
|
|
56
|
+
// 同步消息历史并更新状态(添加中断消息到历史)
|
|
57
|
+
const interruptMessage = (0, message_1.createUserMessage)([{ type: 'text', text: message_2.INTERRUPT_MESSAGE }]);
|
|
58
|
+
const updatedMessagesForInterrupt = [...messages, assistantMessage, interruptMessage];
|
|
59
|
+
agentState.finalizeMessages(updatedMessagesForInterrupt);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
yield assistantMessage; // 生成助手消息
|
|
63
|
+
// 过滤出工具使用消息
|
|
64
|
+
const toolUseMessages = assistantMessage.message.content.filter(_ => _.type === 'tool_use');
|
|
65
|
+
// 提取文本内容
|
|
66
|
+
const textContent = assistantMessage.message.content
|
|
67
|
+
.filter(block => block.type === 'text')
|
|
68
|
+
.map(block => block.type === 'text' ? block.text : '')
|
|
69
|
+
.join('\n');
|
|
70
|
+
// 提取 reasoning 内容(从 content 数组中的 thinking 类型块)
|
|
71
|
+
const reasoning = assistantMessage.message.content
|
|
72
|
+
.filter(block => block.type === 'thinking')
|
|
73
|
+
.map(block => block.thinking || '')
|
|
74
|
+
.join('\n');
|
|
75
|
+
const messageCompleteData = {
|
|
76
|
+
agentId,
|
|
77
|
+
reasoning: reasoning,
|
|
78
|
+
content: textContent,
|
|
79
|
+
hasToolCalls: toolUseMessages.length > 0,
|
|
80
|
+
toolCalls: toolUseMessages.map(tool => {
|
|
81
|
+
return {
|
|
82
|
+
name: tool.name,
|
|
83
|
+
args: tool.input
|
|
84
|
+
};
|
|
85
|
+
})
|
|
86
|
+
};
|
|
87
|
+
// 使用 EventBus 发送事件
|
|
88
|
+
(0, EventSystem_1.getEventBus)().emit('message:complete', messageCompleteData);
|
|
89
|
+
// 在每次 message:complete 事件后立即发送完整的 conversation:usage 事件(子代理不触发)
|
|
90
|
+
const updatedMessages = [...messages, assistantMessage];
|
|
91
|
+
if (!isSubagent) {
|
|
92
|
+
const usage = (0, tokens_1.getTokens)(updatedMessages);
|
|
93
|
+
(0, EventSystem_1.getEventBus)().emit('conversation:usage', { usage });
|
|
94
|
+
}
|
|
95
|
+
// 如果没有工具调用,直接结束对话
|
|
96
|
+
if (!toolUseMessages.length) {
|
|
97
|
+
// 同步消息历史并更新状态
|
|
98
|
+
agentState.finalizeMessages(updatedMessages);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const toolResults = []; // 存储工具执行结果
|
|
102
|
+
// 检查所有工具是否都可以并发运行(只读工具)
|
|
103
|
+
const canRunConcurrently = toolUseMessages.every(msg => tools.find(t => t.name === msg.name)?.isReadOnly?.() ?? false);
|
|
104
|
+
// 根据是否可以并发运行选择不同的执行策略
|
|
105
|
+
if (canRunConcurrently) {
|
|
106
|
+
for await (const message of (0, RunTools_1.runToolsConcurrently)(toolUseMessages, assistantMessage, agentContext)) {
|
|
107
|
+
yield message;
|
|
108
|
+
if (message.type === 'user') {
|
|
109
|
+
toolResults.push(message);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
for await (const message of (0, RunTools_1.runToolsSerially)(toolUseMessages, assistantMessage, agentContext)) {
|
|
115
|
+
yield message;
|
|
116
|
+
// 进度消息不发送到服务器,所以不需要为下一轮累积
|
|
117
|
+
if (message.type === 'user') {
|
|
118
|
+
toolResults.push(message);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// 检查点2: 所有工具执行完成后递归查询前
|
|
123
|
+
if (abortController.signal.aborted) {
|
|
124
|
+
(0, log_1.logWarn)('检查点2: 所有工具执行完成后递归查询前');
|
|
125
|
+
// 中断信息
|
|
126
|
+
(0, EventSystem_1.getEventBus)().emit('session:interrupted', { agentId, content: message_2.INTERRUPT_MESSAGE_FOR_TOOL_USE });
|
|
127
|
+
// 在最后一个工具结果消息中追加中断文本
|
|
128
|
+
if (toolResults.length > 0) {
|
|
129
|
+
const lastToolResult = toolResults[toolResults.length - 1];
|
|
130
|
+
if (Array.isArray(lastToolResult.message.content)) {
|
|
131
|
+
lastToolResult.message.content.push({ type: 'text', text: message_2.INTERRUPT_MESSAGE_FOR_TOOL_USE });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// 先发送完整对话的usage事件 (包含工具执行的token消耗),子代理不触发
|
|
135
|
+
const fullMessages = [...messages, assistantMessage, ...toolResults];
|
|
136
|
+
if (!isSubagent) {
|
|
137
|
+
const usage = (0, tokens_1.getTokens)(fullMessages);
|
|
138
|
+
(0, EventSystem_1.getEventBus)().emit('conversation:usage', { usage });
|
|
139
|
+
}
|
|
140
|
+
// 同步消息历史并更新状态
|
|
141
|
+
agentState.finalizeMessages(fullMessages);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// 对工具结果进行排序以匹配工具使用消息的顺序
|
|
145
|
+
const orderedToolResults = toolResults.sort((a, b) => {
|
|
146
|
+
const aIndex = toolUseMessages.findIndex(tu => tu.id === a.message.content[0].tool_use_id);
|
|
147
|
+
const bIndex = toolUseMessages.findIndex(tu => tu.id === b.message.content[0].tool_use_id);
|
|
148
|
+
return aIndex - bIndex;
|
|
149
|
+
});
|
|
150
|
+
// 处理控制信号,工具执行后可能重建上下文和消息历史
|
|
151
|
+
const { systemPromptContent: nextSystemPromptContent, agentContext: nextAgentContext, nextMessages, } = await handleControlSignalRebuild(orderedToolResults, messages, assistantMessage, systemPromptContent, agentContext);
|
|
152
|
+
// 递归查询 - 使用新的消息历史继续对话
|
|
153
|
+
try {
|
|
154
|
+
yield* query(nextMessages, nextSystemPromptContent, nextAgentContext);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
// 重新抛出错误以保持原始行为
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* 处理控制信号,重建上下文和消息历史
|
|
163
|
+
* 用于模式切换后重新获取工具集、系统提示和消息历史
|
|
164
|
+
*/
|
|
165
|
+
async function handleControlSignalRebuild(orderedToolResults, messages, assistantMessage, currentSystemPrompt, currentAgentContext) {
|
|
166
|
+
// 检测是否有需要重建上下文的控制信号
|
|
167
|
+
const rebuildSignal = orderedToolResults.find(result => result.controlSignal?.rebuildContext)?.controlSignal?.rebuildContext;
|
|
168
|
+
// 没有重建信号,返回原有上下文
|
|
169
|
+
if (!rebuildSignal) {
|
|
170
|
+
return {
|
|
171
|
+
systemPromptContent: currentSystemPrompt,
|
|
172
|
+
agentContext: currentAgentContext,
|
|
173
|
+
nextMessages: [...messages, assistantMessage, ...orderedToolResults],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
(0, log_1.logInfo)(`检测到模式切换信号,重建上下文: ${rebuildSignal.newMode}`);
|
|
177
|
+
// 重新获取工具集
|
|
178
|
+
const coreConfig = (0, ConfManager_1.getConfManager)().getCoreConfig();
|
|
179
|
+
const builtinTools = (0, tools_1.getTools)(coreConfig?.useTools);
|
|
180
|
+
const mcpTools = (0, MCPManager_1.getMCPManager)().getMCPTools();
|
|
181
|
+
let newTools = [...builtinTools, ...mcpTools];
|
|
182
|
+
// 根据新模式过滤工具
|
|
183
|
+
if (rebuildSignal.newMode === 'Plan') {
|
|
184
|
+
newTools = newTools.filter(tool => tool.name !== 'TodoWrite');
|
|
185
|
+
}
|
|
186
|
+
// 更新代理上下文
|
|
187
|
+
const newAgentContext = {
|
|
188
|
+
...currentAgentContext,
|
|
189
|
+
tools: newTools,
|
|
190
|
+
};
|
|
191
|
+
// 重新生成系统提示
|
|
192
|
+
const hasTodoWriteTool = newTools.some(tool => tool.name === 'TodoWrite');
|
|
193
|
+
const hasAskUserQuestionTool = newTools.some(tool => tool.name === 'AskUserQuestion');
|
|
194
|
+
const newSystemPromptContent = await (0, genSystemPrompt_1.formatSystemPrompt)({ hasTodoWriteTool, hasAskUserQuestionTool });
|
|
195
|
+
// 根据 rebuildMessage 决定消息历史
|
|
196
|
+
// 如果有 rebuildMessage,说明需要清理上下文,保留新的用户消息并添加首次查询的额外信息
|
|
197
|
+
let nextMessages;
|
|
198
|
+
if (rebuildSignal.rebuildMessage) {
|
|
199
|
+
// 构建首次查询的额外信息(todos 和 rules)
|
|
200
|
+
const additionalReminders = [];
|
|
201
|
+
// 添加 todos 信息
|
|
202
|
+
const hasTodoWriteTool = newTools.some(tool => tool.name === 'TodoWrite');
|
|
203
|
+
if (hasTodoWriteTool) {
|
|
204
|
+
const todosReminders = (0, genSystemPrompt_1.generateTodosReminders)();
|
|
205
|
+
additionalReminders.push(...todosReminders);
|
|
206
|
+
}
|
|
207
|
+
// 添加 rules 信息
|
|
208
|
+
const rulesReminders = (0, rules_1.generateRulesReminders)();
|
|
209
|
+
additionalReminders.push(...rulesReminders);
|
|
210
|
+
// 创建包含额外信息的用户消息
|
|
211
|
+
nextMessages = [(0, message_1.createUserMessage)([
|
|
212
|
+
...additionalReminders,
|
|
213
|
+
...rebuildSignal.rebuildMessage
|
|
214
|
+
])];
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
nextMessages = [...messages, assistantMessage, ...orderedToolResults];
|
|
218
|
+
}
|
|
219
|
+
(0, log_1.logInfo)(`上下文重建完成,工具数量: ${newTools.length}`);
|
|
220
|
+
return {
|
|
221
|
+
systemPromptContent: newSystemPromptContent,
|
|
222
|
+
agentContext: newAgentContext,
|
|
223
|
+
nextMessages,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=Conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Conversation.js","sourceRoot":"","sources":["../../src/core/Conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
2
|
+
import type { Tool } from '../tools/base/Tool';
|
|
3
|
+
import type { AgentContext } from '../types/agent';
|
|
4
|
+
import { Message, AssistantMessage, UserMessage } from '../types/message';
|
|
5
|
+
export declare function runToolsConcurrently(toolUseMessages: Anthropic.ToolUseBlock[], assistantMessage: AssistantMessage, agentContext: AgentContext): AsyncGenerator<Message, void>;
|
|
6
|
+
export declare function runToolsSerially(toolUseMessages: Anthropic.ToolUseBlock[], assistantMessage: AssistantMessage, agentContext: AgentContext): AsyncGenerator<Message, void>;
|
|
7
|
+
export declare function runToolUse(toolUse: Anthropic.ToolUseBlock, assistantMessage: AssistantMessage, agentContext: AgentContext): AsyncGenerator<Message, void>;
|
|
8
|
+
export declare function checkPermissionsAndCallTool(tool: Tool, toolUseID: string, input: {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}, agentContext: AgentContext, assistantMessage: AssistantMessage): AsyncGenerator<UserMessage, void>;
|
|
11
|
+
//# sourceMappingURL=RunTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunTools.d.ts","sourceRoot":"","sources":["../../src/core/RunTools.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AAa5F,wBAAuB,oBAAoB,CACzC,eAAe,EAAE,SAAS,CAAC,YAAY,EAAE,EACzC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,GACzB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAsB/B;AAGD,wBAAuB,gBAAgB,CACrC,eAAe,EAAE,SAAS,CAAC,YAAY,EAAE,EACzC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,GACzB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAS/B;AAGD,wBAAuB,UAAU,CAC/B,OAAO,EAAE,SAAS,CAAC,YAAY,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,GACzB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAuF/B;AAGD,wBAAuB,2BAA2B,CAChD,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,GACjC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CA+JnC"}
|