sema-core 1.0.13 → 2.0.0
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/README.md +22 -9
- package/dist/{constants → conf}/config.d.ts +0 -1
- package/dist/conf/config.d.ts.map +1 -0
- package/dist/{constants → conf}/config.js +1 -3
- package/dist/conf/config.js.map +1 -0
- package/dist/core/Conversation.d.ts +3 -14
- package/dist/core/Conversation.d.ts.map +1 -1
- package/dist/core/Conversation.js +53 -89
- package/dist/core/Conversation.js.map +1 -1
- package/dist/core/RunTools.d.ts +5 -5
- package/dist/core/RunTools.d.ts.map +1 -1
- package/dist/core/RunTools.js +22 -31
- package/dist/core/RunTools.js.map +1 -1
- package/dist/core/SemaCore.d.ts +21 -22
- package/dist/core/SemaCore.d.ts.map +1 -1
- package/dist/core/SemaCore.js +16 -24
- package/dist/core/SemaCore.js.map +1 -1
- package/dist/core/SemaEngine.d.ts +2 -2
- package/dist/core/SemaEngine.d.ts.map +1 -1
- package/dist/core/SemaEngine.js +30 -33
- package/dist/core/SemaEngine.js.map +1 -1
- package/dist/events/EventSystem.d.ts.map +1 -1
- package/dist/events/EventSystem.js +3 -2
- package/dist/events/EventSystem.js.map +1 -1
- package/dist/events/types.d.ts +75 -41
- package/dist/events/types.d.ts.map +1 -1
- package/dist/manager/ConfManager.d.ts +10 -3
- package/dist/manager/ConfManager.d.ts.map +1 -1
- package/dist/manager/ConfManager.js +30 -13
- package/dist/manager/ConfManager.js.map +1 -1
- package/dist/manager/CronManager.d.ts +3 -6
- package/dist/manager/CronManager.d.ts.map +1 -1
- package/dist/manager/CronManager.js +62 -74
- package/dist/manager/CronManager.js.map +1 -1
- package/dist/manager/ModelManager.d.ts +0 -3
- package/dist/manager/ModelManager.d.ts.map +1 -1
- package/dist/manager/ModelManager.js +2 -4
- package/dist/manager/ModelManager.js.map +1 -1
- package/dist/manager/PermissionManager.d.ts +4 -6
- package/dist/manager/PermissionManager.d.ts.map +1 -1
- package/dist/manager/PermissionManager.js +70 -65
- package/dist/manager/PermissionManager.js.map +1 -1
- package/dist/manager/StateManager.d.ts +40 -7
- package/dist/manager/StateManager.d.ts.map +1 -1
- package/dist/manager/StateManager.js +79 -22
- package/dist/manager/StateManager.js.map +1 -1
- package/dist/manager/TaskManager.d.ts +2 -9
- package/dist/manager/TaskManager.d.ts.map +1 -1
- package/dist/manager/TaskManager.js +64 -66
- package/dist/manager/TaskManager.js.map +1 -1
- package/dist/prompt/agents.d.ts +3 -0
- package/dist/prompt/agents.d.ts.map +1 -0
- package/dist/prompt/agents.js +52 -0
- package/dist/prompt/agents.js.map +1 -0
- package/dist/prompt/commands.d.ts +3 -0
- package/dist/prompt/commands.d.ts.map +1 -0
- package/dist/prompt/commands.js +19 -0
- package/dist/prompt/commands.js.map +1 -0
- package/dist/prompt/compact.d.ts +2 -0
- package/dist/prompt/compact.d.ts.map +1 -0
- package/dist/prompt/compact.js +22 -0
- package/dist/prompt/compact.js.map +1 -0
- package/dist/prompt/define.d.ts +5 -0
- package/dist/prompt/define.d.ts.map +1 -0
- package/dist/prompt/define.js +8 -0
- package/dist/prompt/define.js.map +1 -0
- package/dist/prompt/design/design.d.ts +47 -0
- package/dist/prompt/design/design.d.ts.map +1 -0
- package/dist/prompt/design/design.js +224 -0
- package/dist/prompt/design/design.js.map +1 -0
- package/dist/prompt/design/designPhilosophy.d.ts +2 -0
- package/dist/prompt/design/designPhilosophy.d.ts.map +1 -0
- package/dist/prompt/design/designPhilosophy.js +79 -0
- package/dist/prompt/design/designPhilosophy.js.map +1 -0
- package/dist/prompt/design/designSystemSpec.d.ts +2 -0
- package/dist/prompt/design/designSystemSpec.d.ts.map +1 -0
- package/dist/prompt/design/designSystemSpec.js +44 -0
- package/dist/prompt/design/designSystemSpec.js.map +1 -0
- package/dist/prompt/design/imgPlaceholder.d.ts +2 -0
- package/dist/prompt/design/imgPlaceholder.d.ts.map +1 -0
- package/dist/prompt/design/imgPlaceholder.js +56 -0
- package/dist/prompt/design/imgPlaceholder.js.map +1 -0
- package/dist/prompt/memory.d.ts +2 -0
- package/dist/prompt/memory.d.ts.map +1 -0
- package/dist/prompt/memory.js +23 -0
- package/dist/prompt/memory.js.map +1 -0
- package/dist/prompt/plan.d.ts +2 -0
- package/dist/prompt/plan.d.ts.map +1 -0
- package/dist/prompt/plan.js +30 -0
- package/dist/prompt/plan.js.map +1 -0
- package/dist/prompt/quickchat.d.ts +2 -0
- package/dist/prompt/quickchat.d.ts.map +1 -0
- package/dist/prompt/quickchat.js +16 -0
- package/dist/prompt/quickchat.js.map +1 -0
- package/dist/prompt/system.d.ts +3 -0
- package/dist/prompt/system.d.ts.map +1 -0
- package/dist/prompt/system.js +76 -0
- package/dist/prompt/system.js.map +1 -0
- package/dist/prompt/tool.d.ts +22 -0
- package/dist/prompt/tool.d.ts.map +1 -0
- package/dist/prompt/tool.js +25 -0
- package/dist/prompt/tool.js.map +1 -0
- package/dist/prompt/toolAliases.d.ts +16 -0
- package/dist/prompt/toolAliases.d.ts.map +1 -0
- package/dist/prompt/toolAliases.js +46 -0
- package/dist/prompt/toolAliases.js.map +1 -0
- package/dist/prompt/tools/createCron.d.ts +2 -0
- package/dist/prompt/tools/createCron.d.ts.map +1 -0
- package/dist/prompt/tools/createCron.js +29 -0
- package/dist/prompt/tools/createCron.js.map +1 -0
- package/dist/prompt/tools/createTodo.d.ts +2 -0
- package/dist/prompt/tools/createTodo.d.ts.map +1 -0
- package/dist/prompt/tools/createTodo.js +23 -0
- package/dist/prompt/tools/createTodo.js.map +1 -0
- package/dist/prompt/tools/fetchUrl.d.ts +3 -0
- package/dist/prompt/tools/fetchUrl.d.ts.map +1 -0
- package/dist/prompt/tools/fetchUrl.js +27 -0
- package/dist/prompt/tools/fetchUrl.js.map +1 -0
- package/dist/prompt/tools/planToAgent.d.ts +2 -0
- package/dist/prompt/tools/planToAgent.d.ts.map +1 -0
- package/dist/prompt/tools/planToAgent.js +24 -0
- package/dist/prompt/tools/planToAgent.js.map +1 -0
- package/dist/prompt/tools/runShell.d.ts +2 -0
- package/dist/prompt/tools/runShell.d.ts.map +1 -0
- package/dist/prompt/tools/runShell.js +31 -0
- package/dist/prompt/tools/runShell.js.map +1 -0
- package/dist/prompt/tools/searchContent.d.ts +2 -0
- package/dist/prompt/tools/searchContent.d.ts.map +1 -0
- package/dist/prompt/tools/searchContent.js +18 -0
- package/dist/prompt/tools/searchContent.js.map +1 -0
- package/dist/prompt/tools/skill.d.ts +2 -0
- package/dist/prompt/tools/skill.d.ts.map +1 -0
- package/dist/prompt/tools/skill.js +14 -0
- package/dist/prompt/tools/skill.js.map +1 -0
- package/dist/prompt/tools/subAgent.d.ts +2 -0
- package/dist/prompt/tools/subAgent.d.ts.map +1 -0
- package/dist/prompt/tools/subAgent.js +45 -0
- package/dist/prompt/tools/subAgent.js.map +1 -0
- package/dist/prompt/tools/viewFile.d.ts +4 -0
- package/dist/prompt/tools/viewFile.d.ts.map +1 -0
- package/dist/prompt/tools/viewFile.js +26 -0
- package/dist/prompt/tools/viewFile.js.map +1 -0
- package/dist/services/agents/agentsManager.d.ts +12 -15
- package/dist/services/agents/agentsManager.d.ts.map +1 -1
- package/dist/services/agents/agentsManager.js +67 -65
- package/dist/services/agents/agentsManager.js.map +1 -1
- package/dist/services/agents/genDesignSystemReminder.d.ts +3 -0
- package/dist/services/agents/genDesignSystemReminder.d.ts.map +1 -0
- package/dist/services/agents/genDesignSystemReminder.js +149 -0
- package/dist/services/agents/genDesignSystemReminder.js.map +1 -0
- package/dist/services/agents/genSystemPrompt.d.ts +11 -11
- package/dist/services/agents/genSystemPrompt.d.ts.map +1 -1
- package/dist/services/agents/genSystemPrompt.js +58 -121
- package/dist/services/agents/genSystemPrompt.js.map +1 -1
- package/dist/services/agents/{systemReminder.d.ts → genSystemReminder.d.ts} +2 -7
- package/dist/services/agents/genSystemReminder.d.ts.map +1 -0
- package/dist/services/agents/genSystemReminder.js +86 -0
- package/dist/services/agents/genSystemReminder.js.map +1 -0
- package/dist/services/api/adapt/anthropic.d.ts +3 -5
- package/dist/services/api/adapt/anthropic.d.ts.map +1 -1
- package/dist/services/api/adapt/anthropic.js +32 -18
- package/dist/services/api/adapt/anthropic.js.map +1 -1
- package/dist/services/api/adapt/openai.d.ts +3 -3
- package/dist/services/api/adapt/openai.d.ts.map +1 -1
- package/dist/services/api/adapt/openai.js +20 -23
- package/dist/services/api/adapt/openai.js.map +1 -1
- package/dist/services/api/adapt/util.d.ts +0 -1
- package/dist/services/api/adapt/util.d.ts.map +1 -1
- package/dist/services/api/adapt/util.js +3 -5
- package/dist/services/api/adapt/util.js.map +1 -1
- package/dist/services/api/apiUtil.d.ts +3 -0
- package/dist/services/api/apiUtil.d.ts.map +1 -1
- package/dist/services/api/apiUtil.js +32 -28
- package/dist/services/api/apiUtil.js.map +1 -1
- package/dist/services/api/cache.d.ts +5 -5
- package/dist/services/api/cache.d.ts.map +1 -1
- package/dist/services/api/cache.js +16 -20
- package/dist/services/api/cache.js.map +1 -1
- package/dist/services/api/queryLLM.d.ts +4 -5
- package/dist/services/api/queryLLM.d.ts.map +1 -1
- package/dist/services/api/queryLLM.js +2 -6
- package/dist/services/api/queryLLM.js.map +1 -1
- package/dist/services/commands/commandsManager.d.ts +11 -14
- package/dist/services/commands/commandsManager.d.ts.map +1 -1
- package/dist/services/commands/commandsManager.js +54 -64
- package/dist/services/commands/commandsManager.js.map +1 -1
- package/dist/services/commands/runCommand.d.ts.map +1 -1
- package/dist/services/commands/runCommand.js +3 -27
- package/dist/services/commands/runCommand.js.map +1 -1
- package/dist/services/design/designManager.d.ts +29 -0
- package/dist/services/design/designManager.d.ts.map +1 -0
- package/dist/services/design/designManager.js +365 -0
- package/dist/services/design/designManager.js.map +1 -0
- package/dist/services/mcp/MCPClient.d.ts.map +1 -1
- package/dist/services/mcp/MCPClient.js +9 -1
- package/dist/services/mcp/MCPClient.js.map +1 -1
- package/dist/services/mcp/MCPManager.d.ts +9 -29
- package/dist/services/mcp/MCPManager.d.ts.map +1 -1
- package/dist/services/mcp/MCPManager.js +53 -147
- package/dist/services/mcp/MCPManager.js.map +1 -1
- package/dist/services/mcp/MCPToolAdapter.js +4 -4
- package/dist/services/mcp/MCPToolAdapter.js.map +1 -1
- package/dist/services/memory/memManager.d.ts +6 -9
- package/dist/services/memory/memManager.d.ts.map +1 -1
- package/dist/services/memory/memManager.js +22 -42
- package/dist/services/memory/memManager.js.map +1 -1
- package/dist/services/plugins/pluginsManager.d.ts +9 -17
- package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
- package/dist/services/plugins/pluginsManager.js +33 -104
- package/dist/services/plugins/pluginsManager.js.map +1 -1
- package/dist/services/rules/rulesManager.d.ts +7 -9
- package/dist/services/rules/rulesManager.d.ts.map +1 -1
- package/dist/services/rules/rulesManager.js +19 -39
- package/dist/services/rules/rulesManager.js.map +1 -1
- package/dist/services/skills/skillsManager.d.ts +10 -13
- package/dist/services/skills/skillsManager.d.ts.map +1 -1
- package/dist/services/skills/skillsManager.js +41 -54
- package/dist/services/skills/skillsManager.js.map +1 -1
- package/dist/tools/CreateCron.d.ts +68 -0
- package/dist/tools/CreateCron.d.ts.map +1 -0
- package/dist/tools/CreateCron.js +76 -0
- package/dist/tools/CreateCron.js.map +1 -0
- package/dist/tools/CreateTodo.d.ts +48 -0
- package/dist/tools/CreateTodo.d.ts.map +1 -0
- package/dist/tools/CreateTodo.js +50 -0
- package/dist/tools/CreateTodo.js.map +1 -0
- package/dist/tools/{CronDelete/CronDelete.d.ts → DelCron.d.ts} +11 -11
- package/dist/tools/DelCron.d.ts.map +1 -0
- package/dist/tools/{CronDelete/CronDelete.js → DelCron.js} +12 -12
- package/dist/tools/DelCron.js.map +1 -0
- package/dist/tools/{NotebookEdit/NotebookEdit.d.ts → EditNotebook.d.ts} +37 -37
- package/dist/tools/EditNotebook.d.ts.map +1 -0
- package/dist/tools/EditNotebook.js +220 -0
- package/dist/tools/EditNotebook.js.map +1 -0
- package/dist/tools/{WebFetch/WebFetch.d.ts → FetchUrl.d.ts} +8 -8
- package/dist/tools/FetchUrl.d.ts.map +1 -0
- package/dist/tools/{WebFetch/WebFetch.js → FetchUrl.js} +30 -34
- package/dist/tools/FetchUrl.js.map +1 -0
- package/dist/tools/GetTodo.d.ts +34 -0
- package/dist/tools/GetTodo.d.ts.map +1 -0
- package/dist/tools/{TaskGet/TaskGet.js → GetTodo.js} +21 -20
- package/dist/tools/GetTodo.js.map +1 -0
- package/dist/tools/{CronList/CronList.d.ts → ListCrons.d.ts} +12 -13
- package/dist/tools/ListCrons.d.ts.map +1 -0
- package/dist/tools/{CronList/CronList.js → ListCrons.js} +20 -20
- package/dist/tools/ListCrons.js.map +1 -0
- package/dist/tools/ListTodos.d.ts +27 -0
- package/dist/tools/ListTodos.d.ts.map +1 -0
- package/dist/tools/{TaskList/TaskList.js → ListTodos.js} +20 -19
- package/dist/tools/ListTodos.js.map +1 -0
- package/dist/tools/{Edit/Edit.d.ts → PatchFile.d.ts} +39 -43
- package/dist/tools/PatchFile.d.ts.map +1 -0
- package/dist/tools/PatchFile.js +214 -0
- package/dist/tools/PatchFile.js.map +1 -0
- package/dist/tools/PeekBgJob.d.ts +58 -0
- package/dist/tools/PeekBgJob.d.ts.map +1 -0
- package/dist/tools/PeekBgJob.js +92 -0
- package/dist/tools/PeekBgJob.js.map +1 -0
- package/dist/tools/PickOption.d.ts +463 -0
- package/dist/tools/PickOption.d.ts.map +1 -0
- package/dist/tools/PickOption.js +226 -0
- package/dist/tools/PickOption.js.map +1 -0
- package/dist/tools/PlanToAgent.d.ts +42 -0
- package/dist/tools/PlanToAgent.d.ts.map +1 -0
- package/dist/tools/{ExitPlanMode/ExitPlanMode.js → PlanToAgent.js} +47 -43
- package/dist/tools/PlanToAgent.js.map +1 -0
- package/dist/tools/{Bash/Bash.d.ts → RunShell.d.ts} +23 -21
- package/dist/tools/RunShell.d.ts.map +1 -0
- package/dist/tools/{Bash/Bash.js → RunShell.js} +55 -58
- package/dist/tools/RunShell.js.map +1 -0
- package/dist/tools/SearchContent.d.ts +86 -0
- package/dist/tools/SearchContent.d.ts.map +1 -0
- package/dist/tools/SearchContent.js +237 -0
- package/dist/tools/SearchContent.js.map +1 -0
- package/dist/tools/{Glob/Glob.d.ts → SearchFiles.d.ts} +8 -8
- package/dist/tools/SearchFiles.d.ts.map +1 -0
- package/dist/tools/{Glob/Glob.js → SearchFiles.js} +24 -31
- package/dist/tools/SearchFiles.js.map +1 -0
- package/dist/tools/{Skill/Skill.d.ts → Skill.d.ts} +11 -11
- package/dist/tools/Skill.d.ts.map +1 -0
- package/dist/tools/{Skill/Skill.js → Skill.js} +21 -19
- package/dist/tools/Skill.js.map +1 -0
- package/dist/tools/{TaskStop/TaskStop.d.ts → StopBgJob.d.ts} +17 -17
- package/dist/tools/StopBgJob.d.ts.map +1 -0
- package/dist/tools/StopBgJob.js +69 -0
- package/dist/tools/StopBgJob.js.map +1 -0
- package/dist/tools/SubAgent.d.ts +67 -0
- package/dist/tools/SubAgent.d.ts.map +1 -0
- package/dist/tools/{Agent/Agent.js → SubAgent.js} +60 -58
- package/dist/tools/SubAgent.js.map +1 -0
- package/dist/tools/UpdateTodo.d.ts +76 -0
- package/dist/tools/UpdateTodo.d.ts.map +1 -0
- package/dist/tools/UpdateTodo.js +111 -0
- package/dist/tools/UpdateTodo.js.map +1 -0
- package/dist/tools/{Read/Read.d.ts → ViewFile.d.ts} +26 -64
- package/dist/tools/ViewFile.d.ts.map +1 -0
- package/dist/tools/ViewFile.js +365 -0
- package/dist/tools/ViewFile.js.map +1 -0
- package/dist/tools/{Write/Write.d.ts → WriteFile.d.ts} +12 -12
- package/dist/tools/WriteFile.d.ts.map +1 -0
- package/dist/tools/WriteFile.js +150 -0
- package/dist/tools/WriteFile.js.map +1 -0
- package/dist/tools/base/Tool.d.ts +2 -2
- package/dist/tools/base/Tool.d.ts.map +1 -1
- package/dist/tools/base/tools.d.ts +1 -0
- package/dist/tools/base/tools.d.ts.map +1 -1
- package/dist/tools/base/tools.js +56 -50
- package/dist/tools/base/tools.js.map +1 -1
- package/dist/types/agent.d.ts +0 -1
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/command.d.ts +0 -2
- package/dist/types/command.d.ts.map +1 -1
- package/dist/types/cron.d.ts +6 -6
- package/dist/types/cron.d.ts.map +1 -1
- package/dist/types/design.d.ts +24 -0
- package/dist/types/design.d.ts.map +1 -0
- package/dist/types/design.js +6 -0
- package/dist/types/design.js.map +1 -0
- package/dist/types/errors.d.ts +0 -2
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +0 -2
- package/dist/types/errors.js.map +1 -1
- package/dist/types/index.d.ts +16 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +28 -5
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp.d.ts +1 -3
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/message.d.ts +5 -4
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/model.d.ts +1 -1
- package/dist/types/model.d.ts.map +1 -1
- package/dist/types/plugin.d.ts +8 -11
- package/dist/types/plugin.d.ts.map +1 -1
- package/dist/types/skill.d.ts +0 -3
- package/dist/types/skill.d.ts.map +1 -1
- package/dist/types/skill.js +0 -2
- package/dist/types/skill.js.map +1 -1
- package/dist/types/task.d.ts +10 -10
- package/dist/types/task.d.ts.map +1 -1
- package/dist/types/todoTask.d.ts +4 -5
- package/dist/types/todoTask.d.ts.map +1 -1
- package/dist/util/adapter.d.ts +8 -3
- package/dist/util/adapter.d.ts.map +1 -1
- package/dist/util/adapter.js +22 -49
- package/dist/util/adapter.js.map +1 -1
- package/dist/util/agentStats.d.ts +1 -1
- package/dist/util/agentStats.d.ts.map +1 -1
- package/dist/util/agentStats.js +16 -24
- package/dist/util/agentStats.js.map +1 -1
- package/dist/util/cacheLLM.d.ts +5 -5
- package/dist/util/cacheLLM.d.ts.map +1 -1
- package/dist/util/cacheLLM.js.map +1 -1
- package/dist/util/color.d.ts +44 -0
- package/dist/util/color.d.ts.map +1 -0
- package/dist/util/color.js +247 -0
- package/dist/util/color.js.map +1 -0
- package/dist/util/commands.d.ts +4 -5
- package/dist/util/commands.d.ts.map +1 -1
- package/dist/util/commands.js +22 -112
- package/dist/util/commands.js.map +1 -1
- package/dist/util/compact.d.ts +6 -3
- package/dist/util/compact.d.ts.map +1 -1
- package/dist/util/compact.js +20 -149
- package/dist/util/compact.js.map +1 -1
- package/dist/util/cron.d.ts +1 -9
- package/dist/util/cron.d.ts.map +1 -1
- package/dist/util/cron.js +2 -29
- package/dist/util/cron.js.map +1 -1
- package/dist/util/cwd.d.ts +2 -35
- package/dist/util/cwd.d.ts.map +1 -1
- package/dist/util/cwd.js +7 -57
- package/dist/util/cwd.js.map +1 -1
- package/dist/util/diff.d.ts +6 -4
- package/dist/util/diff.d.ts.map +1 -1
- package/dist/util/diff.js +63 -104
- package/dist/util/diff.js.map +1 -1
- package/dist/{tools/Edit/utils.d.ts → util/edit.d.ts} +2 -5
- package/dist/util/edit.d.ts.map +1 -0
- package/dist/util/edit.js +44 -0
- package/dist/util/edit.js.map +1 -0
- package/dist/util/env.d.ts +1 -4
- package/dist/util/env.d.ts.map +1 -1
- package/dist/util/env.js +22 -15
- package/dist/util/env.js.map +1 -1
- package/dist/util/fetchUrl.d.ts +18 -0
- package/dist/util/fetchUrl.d.ts.map +1 -0
- package/dist/util/fetchUrl.js +101 -0
- package/dist/util/fetchUrl.js.map +1 -0
- package/dist/util/file.d.ts +32 -45
- package/dist/util/file.d.ts.map +1 -1
- package/dist/util/file.js +153 -236
- package/dist/util/file.js.map +1 -1
- package/dist/util/fileReference.d.ts +1 -9
- package/dist/util/fileReference.d.ts.map +1 -1
- package/dist/util/fileReference.js +45 -58
- package/dist/util/fileReference.js.map +1 -1
- package/dist/util/format.d.ts +1 -9
- package/dist/util/format.d.ts.map +1 -1
- package/dist/util/format.js +5 -46
- package/dist/util/format.js.map +1 -1
- package/dist/util/formatter.d.ts +5 -8
- package/dist/util/formatter.d.ts.map +1 -1
- package/dist/util/formatter.js +5 -15
- package/dist/util/formatter.js.map +1 -1
- package/dist/util/git.d.ts +2 -3
- package/dist/util/git.d.ts.map +1 -1
- package/dist/util/git.js +34 -39
- package/dist/util/git.js.map +1 -1
- package/dist/util/history.d.ts +0 -7
- package/dist/util/history.d.ts.map +1 -1
- package/dist/util/history.js +3 -50
- package/dist/util/history.js.map +1 -1
- package/dist/util/log.d.ts +0 -1
- package/dist/util/log.d.ts.map +1 -1
- package/dist/util/log.js +2 -7
- package/dist/util/log.js.map +1 -1
- package/dist/util/logLLM.d.ts +0 -4
- package/dist/util/logLLM.d.ts.map +1 -1
- package/dist/util/logLLM.js +6 -16
- package/dist/util/logLLM.js.map +1 -1
- package/dist/util/message.d.ts +12 -11
- package/dist/util/message.d.ts.map +1 -1
- package/dist/util/message.js +68 -89
- package/dist/util/message.js.map +1 -1
- package/dist/util/model.d.ts +0 -3
- package/dist/util/model.d.ts.map +1 -1
- package/dist/util/model.js +1 -5
- package/dist/util/model.js.map +1 -1
- package/dist/util/notebook.d.ts +1 -8
- package/dist/util/notebook.d.ts.map +1 -1
- package/dist/util/notebook.js +36 -63
- package/dist/util/notebook.js.map +1 -1
- package/dist/util/pdf.d.ts +14 -72
- package/dist/util/pdf.d.ts.map +1 -1
- package/dist/util/pdf.js +51 -460
- package/dist/util/pdf.js.map +1 -1
- package/dist/util/process.d.ts +1 -1
- package/dist/util/process.d.ts.map +1 -1
- package/dist/util/process.js +7 -11
- package/dist/util/process.js.map +1 -1
- package/dist/util/quickchat.d.ts +6 -0
- package/dist/util/quickchat.d.ts.map +1 -0
- package/dist/util/{btw.js → quickchat.js} +14 -32
- package/dist/util/quickchat.js.map +1 -0
- package/dist/util/ripgrep.d.ts +4 -2
- package/dist/util/ripgrep.d.ts.map +1 -1
- package/dist/util/ripgrep.js +40 -116
- package/dist/util/ripgrep.js.map +1 -1
- package/dist/util/savePath.d.ts +2 -18
- package/dist/util/savePath.d.ts.map +1 -1
- package/dist/util/savePath.js +7 -47
- package/dist/util/savePath.js.map +1 -1
- package/dist/util/secureFile.d.ts +13 -135
- package/dist/util/secureFile.d.ts.map +1 -1
- package/dist/util/secureFile.js +74 -478
- package/dist/util/secureFile.js.map +1 -1
- package/dist/util/session.d.ts +0 -21
- package/dist/util/session.d.ts.map +1 -1
- package/dist/util/session.js +0 -49
- package/dist/util/session.js.map +1 -1
- package/dist/util/shell.d.ts +23 -3
- package/dist/util/shell.d.ts.map +1 -1
- package/dist/util/shell.js +199 -290
- package/dist/util/shell.js.map +1 -1
- package/dist/util/time.d.ts +6 -5
- package/dist/util/time.d.ts.map +1 -1
- package/dist/util/time.js +10 -6
- package/dist/util/time.js.map +1 -1
- package/dist/util/tokens.d.ts +0 -1
- package/dist/util/tokens.d.ts.map +1 -1
- package/dist/util/tokens.js +12 -23
- package/dist/util/tokens.js.map +1 -1
- package/dist/util/topic.d.ts +1 -4
- package/dist/util/topic.d.ts.map +1 -1
- package/dist/util/topic.js +12 -11
- package/dist/util/topic.js.map +1 -1
- package/dist/util/writeFile.d.ts +12 -0
- package/dist/util/writeFile.d.ts.map +1 -0
- package/dist/util/writeFile.js +69 -0
- package/dist/util/writeFile.js.map +1 -0
- package/package.json +1 -1
- package/dist/constants/config.d.ts.map +0 -1
- package/dist/constants/config.js.map +0 -1
- package/dist/constants/message.d.ts +0 -10
- package/dist/constants/message.d.ts.map +0 -1
- package/dist/constants/message.js +0 -25
- package/dist/constants/message.js.map +0 -1
- package/dist/constants/product.d.ts +0 -4
- package/dist/constants/product.d.ts.map +0 -1
- package/dist/constants/product.js +0 -7
- package/dist/constants/product.js.map +0 -1
- package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts +0 -3
- package/dist/services/agents/defaultBuiltInAgentsConfs.d.ts.map +0 -1
- package/dist/services/agents/defaultBuiltInAgentsConfs.js +0 -125
- package/dist/services/agents/defaultBuiltInAgentsConfs.js.map +0 -1
- package/dist/services/agents/prompt.d.ts +0 -10
- package/dist/services/agents/prompt.d.ts.map +0 -1
- package/dist/services/agents/prompt.js +0 -144
- package/dist/services/agents/prompt.js.map +0 -1
- package/dist/services/agents/systemReminder.d.ts.map +0 -1
- package/dist/services/agents/systemReminder.js +0 -68
- package/dist/services/agents/systemReminder.js.map +0 -1
- package/dist/tools/Agent/Agent.d.ts +0 -67
- package/dist/tools/Agent/Agent.d.ts.map +0 -1
- package/dist/tools/Agent/Agent.js.map +0 -1
- package/dist/tools/Agent/prompt.d.ts +0 -6
- package/dist/tools/Agent/prompt.d.ts.map +0 -1
- package/dist/tools/Agent/prompt.js +0 -73
- package/dist/tools/Agent/prompt.js.map +0 -1
- package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts +0 -179
- package/dist/tools/AskUserQuestion/AskUserQuestion.d.ts.map +0 -1
- package/dist/tools/AskUserQuestion/AskUserQuestion.js +0 -165
- package/dist/tools/AskUserQuestion/AskUserQuestion.js.map +0 -1
- package/dist/tools/AskUserQuestion/prompt.d.ts +0 -3
- package/dist/tools/AskUserQuestion/prompt.d.ts.map +0 -1
- package/dist/tools/AskUserQuestion/prompt.js +0 -17
- package/dist/tools/AskUserQuestion/prompt.js.map +0 -1
- package/dist/tools/Bash/Bash.d.ts.map +0 -1
- package/dist/tools/Bash/Bash.js.map +0 -1
- package/dist/tools/Bash/prompt.d.ts +0 -5
- package/dist/tools/Bash/prompt.d.ts.map +0 -1
- package/dist/tools/Bash/prompt.js +0 -130
- package/dist/tools/Bash/prompt.js.map +0 -1
- package/dist/tools/Bash/utils.d.ts +0 -9
- package/dist/tools/Bash/utils.d.ts.map +0 -1
- package/dist/tools/Bash/utils.js +0 -41
- package/dist/tools/Bash/utils.js.map +0 -1
- package/dist/tools/CronCreate/CronCreate.d.ts +0 -68
- package/dist/tools/CronCreate/CronCreate.d.ts.map +0 -1
- package/dist/tools/CronCreate/CronCreate.js +0 -75
- package/dist/tools/CronCreate/CronCreate.js.map +0 -1
- package/dist/tools/CronCreate/prompt.d.ts +0 -3
- package/dist/tools/CronCreate/prompt.d.ts.map +0 -1
- package/dist/tools/CronCreate/prompt.js +0 -41
- package/dist/tools/CronCreate/prompt.js.map +0 -1
- package/dist/tools/CronDelete/CronDelete.d.ts.map +0 -1
- package/dist/tools/CronDelete/CronDelete.js.map +0 -1
- package/dist/tools/CronDelete/prompt.d.ts +0 -3
- package/dist/tools/CronDelete/prompt.d.ts.map +0 -1
- package/dist/tools/CronDelete/prompt.js +0 -6
- package/dist/tools/CronDelete/prompt.js.map +0 -1
- package/dist/tools/CronList/CronList.d.ts.map +0 -1
- package/dist/tools/CronList/CronList.js.map +0 -1
- package/dist/tools/CronList/prompt.d.ts +0 -3
- package/dist/tools/CronList/prompt.d.ts.map +0 -1
- package/dist/tools/CronList/prompt.js +0 -6
- package/dist/tools/CronList/prompt.js.map +0 -1
- package/dist/tools/Edit/Edit.d.ts.map +0 -1
- package/dist/tools/Edit/Edit.js +0 -225
- package/dist/tools/Edit/Edit.js.map +0 -1
- package/dist/tools/Edit/prompt.d.ts +0 -3
- package/dist/tools/Edit/prompt.d.ts.map +0 -1
- package/dist/tools/Edit/prompt.js +0 -15
- package/dist/tools/Edit/prompt.js.map +0 -1
- package/dist/tools/Edit/utils.d.ts.map +0 -1
- package/dist/tools/Edit/utils.js +0 -60
- package/dist/tools/Edit/utils.js.map +0 -1
- package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts +0 -42
- package/dist/tools/ExitPlanMode/ExitPlanMode.d.ts.map +0 -1
- package/dist/tools/ExitPlanMode/ExitPlanMode.js.map +0 -1
- package/dist/tools/ExitPlanMode/prompt.d.ts +0 -3
- package/dist/tools/ExitPlanMode/prompt.d.ts.map +0 -1
- package/dist/tools/ExitPlanMode/prompt.js +0 -28
- package/dist/tools/ExitPlanMode/prompt.js.map +0 -1
- package/dist/tools/Glob/Glob.d.ts.map +0 -1
- package/dist/tools/Glob/Glob.js.map +0 -1
- package/dist/tools/Glob/prompt.d.ts +0 -3
- package/dist/tools/Glob/prompt.d.ts.map +0 -1
- package/dist/tools/Glob/prompt.js +0 -11
- package/dist/tools/Glob/prompt.js.map +0 -1
- package/dist/tools/Grep/Grep.d.ts +0 -106
- package/dist/tools/Grep/Grep.d.ts.map +0 -1
- package/dist/tools/Grep/Grep.js +0 -301
- package/dist/tools/Grep/Grep.js.map +0 -1
- package/dist/tools/Grep/prompt.d.ts +0 -3
- package/dist/tools/Grep/prompt.d.ts.map +0 -1
- package/dist/tools/Grep/prompt.js +0 -17
- package/dist/tools/Grep/prompt.js.map +0 -1
- package/dist/tools/NotebookEdit/NotebookEdit.d.ts.map +0 -1
- package/dist/tools/NotebookEdit/NotebookEdit.js +0 -312
- package/dist/tools/NotebookEdit/NotebookEdit.js.map +0 -1
- package/dist/tools/NotebookEdit/prompt.d.ts +0 -3
- package/dist/tools/NotebookEdit/prompt.d.ts.map +0 -1
- package/dist/tools/NotebookEdit/prompt.js +0 -6
- package/dist/tools/NotebookEdit/prompt.js.map +0 -1
- package/dist/tools/Read/Read.d.ts.map +0 -1
- package/dist/tools/Read/Read.js +0 -472
- package/dist/tools/Read/Read.js.map +0 -1
- package/dist/tools/Read/prompt.d.ts +0 -4
- package/dist/tools/Read/prompt.d.ts.map +0 -1
- package/dist/tools/Read/prompt.js +0 -23
- package/dist/tools/Read/prompt.js.map +0 -1
- package/dist/tools/Skill/Skill.d.ts.map +0 -1
- package/dist/tools/Skill/Skill.js.map +0 -1
- package/dist/tools/Skill/prompt.d.ts +0 -3
- package/dist/tools/Skill/prompt.d.ts.map +0 -1
- package/dist/tools/Skill/prompt.js +0 -27
- package/dist/tools/Skill/prompt.js.map +0 -1
- package/dist/tools/TaskCreate/TaskCreate.d.ts +0 -54
- package/dist/tools/TaskCreate/TaskCreate.d.ts.map +0 -1
- package/dist/tools/TaskCreate/TaskCreate.js +0 -51
- package/dist/tools/TaskCreate/TaskCreate.js.map +0 -1
- package/dist/tools/TaskCreate/prompt.d.ts +0 -3
- package/dist/tools/TaskCreate/prompt.d.ts.map +0 -1
- package/dist/tools/TaskCreate/prompt.js +0 -45
- package/dist/tools/TaskCreate/prompt.js.map +0 -1
- package/dist/tools/TaskGet/TaskGet.d.ts +0 -34
- package/dist/tools/TaskGet/TaskGet.d.ts.map +0 -1
- package/dist/tools/TaskGet/TaskGet.js.map +0 -1
- package/dist/tools/TaskGet/prompt.d.ts +0 -3
- package/dist/tools/TaskGet/prompt.d.ts.map +0 -1
- package/dist/tools/TaskGet/prompt.js +0 -26
- package/dist/tools/TaskGet/prompt.js.map +0 -1
- package/dist/tools/TaskList/TaskList.d.ts +0 -27
- package/dist/tools/TaskList/TaskList.d.ts.map +0 -1
- package/dist/tools/TaskList/TaskList.js.map +0 -1
- package/dist/tools/TaskList/prompt.d.ts +0 -3
- package/dist/tools/TaskList/prompt.d.ts.map +0 -1
- package/dist/tools/TaskList/prompt.js +0 -25
- package/dist/tools/TaskList/prompt.js.map +0 -1
- package/dist/tools/TaskOutput/TaskOutput.d.ts +0 -58
- package/dist/tools/TaskOutput/TaskOutput.d.ts.map +0 -1
- package/dist/tools/TaskOutput/TaskOutput.js +0 -95
- package/dist/tools/TaskOutput/TaskOutput.js.map +0 -1
- package/dist/tools/TaskStop/TaskStop.d.ts.map +0 -1
- package/dist/tools/TaskStop/TaskStop.js +0 -69
- package/dist/tools/TaskStop/TaskStop.js.map +0 -1
- package/dist/tools/TaskUpdate/TaskUpdate.d.ts +0 -88
- package/dist/tools/TaskUpdate/TaskUpdate.d.ts.map +0 -1
- package/dist/tools/TaskUpdate/TaskUpdate.js +0 -115
- package/dist/tools/TaskUpdate/TaskUpdate.js.map +0 -1
- package/dist/tools/TaskUpdate/prompt.d.ts +0 -3
- package/dist/tools/TaskUpdate/prompt.d.ts.map +0 -1
- package/dist/tools/TaskUpdate/prompt.js +0 -80
- package/dist/tools/TaskUpdate/prompt.js.map +0 -1
- package/dist/tools/TodoWrite/TodoWrite.d.ts +0 -92
- package/dist/tools/TodoWrite/TodoWrite.d.ts.map +0 -1
- package/dist/tools/TodoWrite/TodoWrite.js +0 -101
- package/dist/tools/TodoWrite/TodoWrite.js.map +0 -1
- package/dist/tools/TodoWrite/prompt.d.ts +0 -3
- package/dist/tools/TodoWrite/prompt.d.ts.map +0 -1
- package/dist/tools/TodoWrite/prompt.js +0 -187
- package/dist/tools/TodoWrite/prompt.js.map +0 -1
- package/dist/tools/WebFetch/WebFetch.d.ts.map +0 -1
- package/dist/tools/WebFetch/WebFetch.js.map +0 -1
- package/dist/tools/WebFetch/prompt.d.ts +0 -4
- package/dist/tools/WebFetch/prompt.d.ts.map +0 -1
- package/dist/tools/WebFetch/prompt.js +0 -38
- package/dist/tools/WebFetch/prompt.js.map +0 -1
- package/dist/tools/WebFetch/utils.d.ts +0 -20
- package/dist/tools/WebFetch/utils.d.ts.map +0 -1
- package/dist/tools/WebFetch/utils.js +0 -223
- package/dist/tools/WebFetch/utils.js.map +0 -1
- package/dist/tools/Write/Write.d.ts.map +0 -1
- package/dist/tools/Write/Write.js +0 -197
- package/dist/tools/Write/Write.js.map +0 -1
- package/dist/tools/Write/prompt.d.ts +0 -3
- package/dist/tools/Write/prompt.d.ts.map +0 -1
- package/dist/tools/Write/prompt.js +0 -13
- package/dist/tools/Write/prompt.js.map +0 -1
- package/dist/util/assembleTools.d.ts +0 -6
- package/dist/util/assembleTools.d.ts.map +0 -1
- package/dist/util/assembleTools.js +0 -17
- package/dist/util/assembleTools.js.map +0 -1
- package/dist/util/btw.d.ts +0 -6
- package/dist/util/btw.d.ts.map +0 -1
- package/dist/util/btw.js.map +0 -1
- package/dist/util/directory.d.ts +0 -37
- package/dist/util/directory.d.ts.map +0 -1
- package/dist/util/directory.js +0 -137
- package/dist/util/directory.js.map +0 -1
- package/dist/util/exec.d.ts +0 -6
- package/dist/util/exec.d.ts.map +0 -1
- package/dist/util/exec.js +0 -43
- package/dist/util/exec.js.map +0 -1
- package/dist/util/filePermission.d.ts +0 -14
- package/dist/util/filePermission.d.ts.map +0 -1
- package/dist/util/filePermission.js +0 -47
- package/dist/util/filePermission.js.map +0 -1
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
declare const inputSchema: z.ZodObject<{
|
|
3
|
-
cron: z.ZodString;
|
|
4
|
-
prompt: z.ZodString;
|
|
5
|
-
recurring: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
-
durable: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
-
}, "strict", z.ZodTypeAny, {
|
|
8
|
-
cron: string;
|
|
9
|
-
prompt: string;
|
|
10
|
-
recurring?: boolean | undefined;
|
|
11
|
-
durable?: boolean | undefined;
|
|
12
|
-
}, {
|
|
13
|
-
cron: string;
|
|
14
|
-
prompt: string;
|
|
15
|
-
recurring?: boolean | undefined;
|
|
16
|
-
durable?: boolean | undefined;
|
|
17
|
-
}>;
|
|
18
|
-
type Out = {
|
|
19
|
-
id: string;
|
|
20
|
-
cron: string;
|
|
21
|
-
prompt: string;
|
|
22
|
-
humanSchedule: string;
|
|
23
|
-
recurring: boolean;
|
|
24
|
-
durable: boolean;
|
|
25
|
-
};
|
|
26
|
-
export declare const CronCreateTool: {
|
|
27
|
-
name: string;
|
|
28
|
-
description(): string;
|
|
29
|
-
inputSchema: z.ZodObject<{
|
|
30
|
-
cron: z.ZodString;
|
|
31
|
-
prompt: z.ZodString;
|
|
32
|
-
recurring: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
-
durable: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
-
}, "strict", z.ZodTypeAny, {
|
|
35
|
-
cron: string;
|
|
36
|
-
prompt: string;
|
|
37
|
-
recurring?: boolean | undefined;
|
|
38
|
-
durable?: boolean | undefined;
|
|
39
|
-
}, {
|
|
40
|
-
cron: string;
|
|
41
|
-
prompt: string;
|
|
42
|
-
recurring?: boolean | undefined;
|
|
43
|
-
durable?: boolean | undefined;
|
|
44
|
-
}>;
|
|
45
|
-
isReadOnly(): false;
|
|
46
|
-
canRunConcurrently(): true;
|
|
47
|
-
validateInput(input: z.infer<typeof inputSchema>, agentContext: any): Promise<{
|
|
48
|
-
result: false;
|
|
49
|
-
message: string;
|
|
50
|
-
} | {
|
|
51
|
-
result: true;
|
|
52
|
-
message?: undefined;
|
|
53
|
-
}>;
|
|
54
|
-
genResultForAssistant(data: Out): string;
|
|
55
|
-
genToolResultMessage(output: Out): {
|
|
56
|
-
title: string;
|
|
57
|
-
summary: string;
|
|
58
|
-
content: string;
|
|
59
|
-
};
|
|
60
|
-
getDisplayTitle(input: any): string;
|
|
61
|
-
call({ cron, prompt, recurring, durable }: z.infer<typeof inputSchema>, _agentContext: any): AsyncGenerator<{
|
|
62
|
-
type: "result";
|
|
63
|
-
data: Out;
|
|
64
|
-
resultForAssistant: string;
|
|
65
|
-
}, void, unknown>;
|
|
66
|
-
};
|
|
67
|
-
export {};
|
|
68
|
-
//# sourceMappingURL=CronCreate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CronCreate.d.ts","sourceRoot":"","sources":["../../../src/tools/CronCreate/CronCreate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;EAKf,CAAA;AAEF,KAAK,GAAG,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAEpH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;yBAchB,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,gBACpB,GAAG;;;;;;;gCAkBS,GAAG;iCAOF,GAAG;;;;;2BAST,GAAG;+CAK6B,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,iBACjE,GAAG;;;;;CAYmB,CAAA"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CronCreateTool = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const prompt_1 = require("./prompt");
|
|
6
|
-
const CronManager_1 = require("../../manager/CronManager");
|
|
7
|
-
const cron_1 = require("../../util/cron");
|
|
8
|
-
const StateManager_1 = require("../../manager/StateManager");
|
|
9
|
-
const inputSchema = zod_1.z.strictObject({
|
|
10
|
-
cron: zod_1.z.string().describe("Standard 5-field cron expression in local time: \"M H DoM Mon DoW\" (e.g. \"*/5 * * * *\" = every 5 minutes, \"30 14 28 2 *\" = Feb 28 at 2:30pm local once)."),
|
|
11
|
-
prompt: zod_1.z.string().describe("The prompt to enqueue at each fire time."),
|
|
12
|
-
recurring: zod_1.z.boolean().optional().describe("true (default) = fire on every cron match until deleted or auto-expired after 7 days. false = fire once at the next match, then auto-delete. Use false for \"remind me at X\" one-shot requests with pinned minute/hour/dom/month."),
|
|
13
|
-
durable: zod_1.z.boolean().optional().describe("true = persist to .sema/scheduled_tasks.json and survive restarts. false (default) = in-memory only, dies when this Claude session ends. Use true only when the user asks the task to survive across sessions."),
|
|
14
|
-
});
|
|
15
|
-
exports.CronCreateTool = {
|
|
16
|
-
name: prompt_1.TOOL_NAME_FOR_PROMPT,
|
|
17
|
-
description() {
|
|
18
|
-
return prompt_1.DESCRIPTION;
|
|
19
|
-
},
|
|
20
|
-
inputSchema,
|
|
21
|
-
isReadOnly() {
|
|
22
|
-
return false;
|
|
23
|
-
},
|
|
24
|
-
canRunConcurrently() {
|
|
25
|
-
return true;
|
|
26
|
-
},
|
|
27
|
-
async validateInput(input, agentContext) {
|
|
28
|
-
if (agentContext.agentId !== StateManager_1.MAIN_AGENT_ID) {
|
|
29
|
-
return { result: false, message: 'CronCreate can only be used by the main agent' };
|
|
30
|
-
}
|
|
31
|
-
if (!(0, cron_1.parseCronExpression)(input.cron)) {
|
|
32
|
-
return { result: false, message: `Invalid cron expression: "${input.cron}". Use 5-field format: "M H DoM Mon DoW"` };
|
|
33
|
-
}
|
|
34
|
-
const next = (0, cron_1.calcNextFireAt)(input.cron, Date.now());
|
|
35
|
-
if (next === null || next - Date.now() > 31 * 24 * 60 * 60 * 1000) {
|
|
36
|
-
return { result: false, message: 'Cron expression must have at least one match within 31 days' };
|
|
37
|
-
}
|
|
38
|
-
if ((0, CronManager_1.getCronManager)().listTasks().length >= CronManager_1.CronManager.MAX_TASKS) {
|
|
39
|
-
return { result: false, message: `Maximum number of cron tasks (${CronManager_1.CronManager.MAX_TASKS}) reached` };
|
|
40
|
-
}
|
|
41
|
-
return { result: true };
|
|
42
|
-
},
|
|
43
|
-
genResultForAssistant(data) {
|
|
44
|
-
const kind = data.recurring ? 'recurring' : 'one-shot';
|
|
45
|
-
const parts = [`Scheduled ${kind} job ${data.id} (${data.humanSchedule}).`];
|
|
46
|
-
if (data.durable)
|
|
47
|
-
parts.push('Persisted to .sema/scheduled_tasks.json.');
|
|
48
|
-
if (data.recurring)
|
|
49
|
-
parts.push('Auto-expires after 7 days. Use CronDelete to cancel sooner.');
|
|
50
|
-
return parts.join(' ');
|
|
51
|
-
},
|
|
52
|
-
genToolResultMessage(output) {
|
|
53
|
-
const raw = `${output.cron}: ${output.prompt}`;
|
|
54
|
-
const title = raw.length > 50 ? raw.slice(0, 49) + '…' : raw;
|
|
55
|
-
return {
|
|
56
|
-
title,
|
|
57
|
-
summary: `Scheduled ${output.id} (${output.humanSchedule})`,
|
|
58
|
-
content: '',
|
|
59
|
-
};
|
|
60
|
-
},
|
|
61
|
-
getDisplayTitle(input) {
|
|
62
|
-
return `CronCreate: ${input?.cron ?? ''}`;
|
|
63
|
-
},
|
|
64
|
-
async *call({ cron, prompt, recurring = true, durable = false }, _agentContext) {
|
|
65
|
-
const id = (0, CronManager_1.getCronManager)().createTask(cron, prompt, recurring, durable);
|
|
66
|
-
const humanSchedule = (0, cron_1.cronToHuman)(cron);
|
|
67
|
-
const data = { id, cron, prompt, humanSchedule, recurring, durable };
|
|
68
|
-
yield {
|
|
69
|
-
type: 'result',
|
|
70
|
-
data,
|
|
71
|
-
resultForAssistant: `Cron job ${id} created. Schedule: ${humanSchedule}. Recurring: ${recurring}. Durable: ${durable}.`,
|
|
72
|
-
};
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=CronCreate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CronCreate.js","sourceRoot":"","sources":["../../../src/tools/CronCreate/CronCreate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const TOOL_NAME_FOR_PROMPT = "CronCreate";
|
|
2
|
-
export declare const DESCRIPTION = "Schedule a prompt to be enqueued at a future time. Use for both recurring schedules and one-shot reminders.\n\nUses standard 5-field cron in the user's local timezone: minute hour day-of-month month day-of-week. \"0 9 * * *\" means 9am local \u2014 no timezone conversion needed.\n\n## One-shot tasks (recurring: false)\n\nFor \"remind me at X\" or \"at <time>, do Y\" requests \u2014 fire once then auto-delete.\nPin minute/hour/day-of-month/month to specific values:\n \"remind me at 2:30pm today to check the deploy\" \u2192 cron: \"30 14 <today_dom> <today_month> *\", recurring: false\n \"tomorrow morning, run the smoke test\" \u2192 cron: \"57 8 <tomorrow_dom> <tomorrow_month> *\", recurring: false\n\n## Recurring jobs (recurring: true, the default)\n\nFor \"every N minutes\" / \"every hour\" / \"weekdays at 9am\" requests:\n \"*/5 * * * *\" (every 5 min), \"0 * * * *\" (hourly), \"0 9 * * 1-5\" (weekdays at 9am local)\n\n## Avoid the :00 and :30 minute marks when the task allows it\n\nEvery user who asks for \"9am\" gets `0 9`, and every user who asks for \"hourly\" gets `0 *` \u2014 which means requests from across the planet land on the API at the same instant. When the user's request is approximate, pick a minute that is NOT 0 or 30:\n \"every morning around 9\" \u2192 \"57 8 * * *\" or \"3 9 * * *\" (not \"0 9 * * *\")\n \"hourly\" \u2192 \"7 * * * *\" (not \"0 * * * *\")\n \"in an hour or so, remind me to...\" \u2192 pick whatever minute you land on, don't round\n\nOnly use minute 0 or 30 when the user names that exact time and clearly means it (\"at 9:00 sharp\", \"at half past\", coordinating with a meeting). When in doubt, nudge a few minutes early or late \u2014 the user will not notice, and the fleet will.\n\n## Durability\n\nBy default (durable: false) the job lives only in this Sema session \u2014 nothing is written to disk, and the job is gone when Sema exits. Pass durable: true to write to .sema/scheduled_tasks.json so the job survives restarts. Only use durable: true when the user explicitly asks for the task to persist (\"keep doing this every day\", \"set this up permanently\"). Most \"remind me in 5 minutes\" / \"check back in an hour\" requests should stay session-only.\n\n## Runtime behavior\n\nDurable jobs persist to .sema/scheduled_tasks.json and survive session restarts \u2014 on next launch they resume automatically. Session-only jobs die with the process. \n\nRecurring tasks auto-expire after 7 days \u2014 they fire one final time, then are deleted. This bounds session lifetime. Tell the user about the 7-day limit when scheduling recurring jobs.\n\nReturns a job ID you can pass to CronDelete.";
|
|
3
|
-
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/CronCreate/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAEhD,eAAO,MAAM,WAAW,mnFAmCqB,CAAA"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DESCRIPTION = exports.TOOL_NAME_FOR_PROMPT = void 0;
|
|
4
|
-
exports.TOOL_NAME_FOR_PROMPT = 'CronCreate';
|
|
5
|
-
exports.DESCRIPTION = `Schedule a prompt to be enqueued at a future time. Use for both recurring schedules and one-shot reminders.
|
|
6
|
-
|
|
7
|
-
Uses standard 5-field cron in the user's local timezone: minute hour day-of-month month day-of-week. "0 9 * * *" means 9am local — no timezone conversion needed.
|
|
8
|
-
|
|
9
|
-
## One-shot tasks (recurring: false)
|
|
10
|
-
|
|
11
|
-
For "remind me at X" or "at <time>, do Y" requests — fire once then auto-delete.
|
|
12
|
-
Pin minute/hour/day-of-month/month to specific values:
|
|
13
|
-
"remind me at 2:30pm today to check the deploy" → cron: "30 14 <today_dom> <today_month> *", recurring: false
|
|
14
|
-
"tomorrow morning, run the smoke test" → cron: "57 8 <tomorrow_dom> <tomorrow_month> *", recurring: false
|
|
15
|
-
|
|
16
|
-
## Recurring jobs (recurring: true, the default)
|
|
17
|
-
|
|
18
|
-
For "every N minutes" / "every hour" / "weekdays at 9am" requests:
|
|
19
|
-
"*/5 * * * *" (every 5 min), "0 * * * *" (hourly), "0 9 * * 1-5" (weekdays at 9am local)
|
|
20
|
-
|
|
21
|
-
## Avoid the :00 and :30 minute marks when the task allows it
|
|
22
|
-
|
|
23
|
-
Every user who asks for "9am" gets \`0 9\`, and every user who asks for "hourly" gets \`0 *\` — which means requests from across the planet land on the API at the same instant. When the user's request is approximate, pick a minute that is NOT 0 or 30:
|
|
24
|
-
"every morning around 9" → "57 8 * * *" or "3 9 * * *" (not "0 9 * * *")
|
|
25
|
-
"hourly" → "7 * * * *" (not "0 * * * *")
|
|
26
|
-
"in an hour or so, remind me to..." → pick whatever minute you land on, don't round
|
|
27
|
-
|
|
28
|
-
Only use minute 0 or 30 when the user names that exact time and clearly means it ("at 9:00 sharp", "at half past", coordinating with a meeting). When in doubt, nudge a few minutes early or late — the user will not notice, and the fleet will.
|
|
29
|
-
|
|
30
|
-
## Durability
|
|
31
|
-
|
|
32
|
-
By default (durable: false) the job lives only in this Sema session — nothing is written to disk, and the job is gone when Sema exits. Pass durable: true to write to .sema/scheduled_tasks.json so the job survives restarts. Only use durable: true when the user explicitly asks for the task to persist ("keep doing this every day", "set this up permanently"). Most "remind me in 5 minutes" / "check back in an hour" requests should stay session-only.
|
|
33
|
-
|
|
34
|
-
## Runtime behavior
|
|
35
|
-
|
|
36
|
-
Durable jobs persist to .sema/scheduled_tasks.json and survive session restarts — on next launch they resume automatically. Session-only jobs die with the process.
|
|
37
|
-
|
|
38
|
-
Recurring tasks auto-expire after 7 days — they fire one final time, then are deleted. This bounds session lifetime. Tell the user about the 7-day limit when scheduling recurring jobs.
|
|
39
|
-
|
|
40
|
-
Returns a job ID you can pass to CronDelete.`;
|
|
41
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/CronCreate/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,YAAY,CAAA;AAEnC,QAAA,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAmCkB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CronDelete.d.ts","sourceRoot":"","sources":["../../../src/tools/CronDelete/CronDelete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,QAAA,MAAM,WAAW;;;;;;EAEf,CAAA;AAEF,KAAK,GAAG,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzB,eAAO,MAAM,cAAc;;;;;;;;;;;;yBAaE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;;;gCAO1B,GAAG;iCAGF,GAAG;;;;;2BAOT,GAAG;iBAIN,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;CAUR,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CronDelete.js","sourceRoot":"","sources":["../../../src/tools/CronDelete/CronDelete.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,qCAA4D;AAC5D,2DAA0D;AAE1D,MAAM,WAAW,GAAG,OAAC,CAAC,YAAY,CAAC;IACjC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CACzD,CAAC,CAAA;AAIW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,6BAAoB;IAC1B,WAAW;QACT,OAAO,oBAAW,CAAA;IACpB,CAAC;IACD,WAAW;IACX,UAAU;QACR,OAAO,KAAK,CAAA;IACd,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAkC;QACpD,IAAI,CAAC,IAAA,4BAAc,GAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,KAAK,CAAC,EAAE,EAAE,EAAE,CAAA;QACtE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACzB,CAAC;IAED,qBAAqB,CAAC,IAAS;QAC7B,OAAO,iBAAiB,IAAI,CAAC,EAAE,GAAG,CAAA;IACpC,CAAC;IACD,oBAAoB,CAAC,MAAW;QAC9B,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,EAAE;YAChB,OAAO,EAAE,cAAc,MAAM,CAAC,EAAE,EAAE;YAClC,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,OAAO,eAAe,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAA+B;QAC7C,IAAA,4BAAc,GAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAQ,EAAE,EAAE,EAAE,CAAA;QAExB,MAAM;YACJ,IAAI,EAAE,QAAiB;YACvB,IAAI;YACJ,kBAAkB,EAAE,YAAY,EAAE,sBAAsB;SACzD,CAAA;IACH,CAAC;CACsC,CAAA"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const TOOL_NAME_FOR_PROMPT = "CronDelete";
|
|
2
|
-
export declare const DESCRIPTION = "Cancel a cron job previously scheduled with CronCreate. Removes it from .sema/scheduled_tasks.json (durable jobs) or the in-memory session store (session-only jobs).";
|
|
3
|
-
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/CronDelete/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAEhD,eAAO,MAAM,WAAW,0KAA0K,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DESCRIPTION = exports.TOOL_NAME_FOR_PROMPT = void 0;
|
|
4
|
-
exports.TOOL_NAME_FOR_PROMPT = 'CronDelete';
|
|
5
|
-
exports.DESCRIPTION = `Cancel a cron job previously scheduled with CronCreate. Removes it from .sema/scheduled_tasks.json (durable jobs) or the in-memory session store (session-only jobs).`;
|
|
6
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/CronDelete/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,YAAY,CAAA;AAEnC,QAAA,WAAW,GAAG,uKAAuK,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CronList.d.ts","sourceRoot":"","sources":["../../../src/tools/CronList/CronList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AACD,KAAK,GAAG,GAAG;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAAA;AAE9B,eAAO,MAAM,YAAY;;;;;;gCAaK,GAAG;iCAOF,GAAG;;;;;;;;;;CA8BO,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CronList.js","sourceRoot":"","sources":["../../../src/tools/CronList/CronList.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,qCAA4D;AAC5D,2DAA0D;AAE1D,MAAM,WAAW,GAAG,OAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;AAazB,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,6BAAoB;IAC1B,WAAW;QACT,OAAO,oBAAW,CAAA;IACpB,CAAC;IACD,WAAW;IACX,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qBAAqB,CAAC,IAAS;QAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,sBAAsB,CAAA;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CACzB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,EAAE,CAC9H,CAAA;QACD,OAAO,qBAAqB,IAAI,CAAC,IAAI,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACvE,CAAC;IACD,oBAAoB,CAAC,MAAW;QAC9B,OAAO;YACL,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,gBAAgB;YAC9C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACvE,CAAA;IACH,CAAC;IACD,eAAe;QACb,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,CAAC,IAAI;QACT,MAAM,WAAW,GAAG,IAAA,4BAAc,GAAE,CAAA;QACpC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAA;QACrC,MAAM,IAAI,GAAc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,aAAa,EAAE,CAAC,CAAC,WAAW;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC,CAAC,CAAA;QAEH,MAAM,IAAI,GAAQ,EAAE,IAAI,EAAE,CAAA;QAC1B,MAAM;YACJ,IAAI,EAAE,QAAiB;YACvB,IAAI;SACL,CAAA;IACH,CAAC;CACsC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/CronList/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,aAAa,CAAA;AAE9C,eAAO,MAAM,WAAW,6GAA6G,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DESCRIPTION = exports.TOOL_NAME_FOR_PROMPT = void 0;
|
|
4
|
-
exports.TOOL_NAME_FOR_PROMPT = 'CronList';
|
|
5
|
-
exports.DESCRIPTION = `List all cron jobs scheduled via CronCreate, both durable (.sema/scheduled_tasks.json) and session-only.`;
|
|
6
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/CronList/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,UAAU,CAAA;AAEjC,QAAA,WAAW,GAAG,0GAA0G,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Edit.d.ts","sourceRoot":"","sources":["../../../src/tools/Edit/Edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAQ,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAiBrD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;EAKf,CAAA;AAEF,MAAM,MAAM,EAAE,GAAG,OAAO,WAAW,CAAA;AAcnC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyNX,MAAM;mBACL,MAAM;mBACN,MAAM;sBACH,MAAM;yBACH,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;qBA3KT,GAAG;;;;;;qBA2G2D,GAAG;;;;;;;;;;;;kBA4DrE,MAAM;mBACL,MAAM;mBACN,MAAM;sBACH,MAAM;yBACH,IAAI,EAAE;;CAE1B,CAAA;AAED,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAYxC"}
|
package/dist/tools/Edit/Edit.js
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FileEditTool = void 0;
|
|
4
|
-
exports.getSnippet = getSnippet;
|
|
5
|
-
const fs_1 = require("fs");
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
const file_1 = require("../../util/file");
|
|
9
|
-
const diff_1 = require("../../util/diff");
|
|
10
|
-
const cwd_1 = require("../../util/cwd");
|
|
11
|
-
const prompt_1 = require("./prompt");
|
|
12
|
-
const utils_1 = require("./utils");
|
|
13
|
-
const prompt_2 = require("../NotebookEdit/prompt");
|
|
14
|
-
const StateManager_1 = require("../../manager/StateManager");
|
|
15
|
-
const inputSchema = zod_1.z.strictObject({
|
|
16
|
-
file_path: zod_1.z.string().describe('The absolute path to the file to modify'),
|
|
17
|
-
old_string: zod_1.z.string().describe('The text to replace'),
|
|
18
|
-
new_string: zod_1.z.string().describe('The text to replace it with (must be different from old_string)'),
|
|
19
|
-
replace_all: zod_1.z.boolean().optional().default(false).describe('Replace all occurences of old_string (default false)')
|
|
20
|
-
});
|
|
21
|
-
// Number of lines of context to include before/after the change in our result message
|
|
22
|
-
const N_LINES_SNIPPET = 4;
|
|
23
|
-
// 辅助函数:生成显示标题
|
|
24
|
-
function getTitle(input) {
|
|
25
|
-
if (input?.file_path) {
|
|
26
|
-
const relativePath = (0, path_1.relative)((0, cwd_1.getCwd)(), input.file_path);
|
|
27
|
-
return `${relativePath}`;
|
|
28
|
-
}
|
|
29
|
-
return prompt_1.TOOL_NAME_FOR_PROMPT;
|
|
30
|
-
}
|
|
31
|
-
exports.FileEditTool = {
|
|
32
|
-
name: prompt_1.TOOL_NAME_FOR_PROMPT,
|
|
33
|
-
description() {
|
|
34
|
-
return prompt_1.DESCRIPTION;
|
|
35
|
-
},
|
|
36
|
-
inputSchema,
|
|
37
|
-
isReadOnly() {
|
|
38
|
-
return false;
|
|
39
|
-
},
|
|
40
|
-
genToolPermission(input) {
|
|
41
|
-
const title = getTitle(input);
|
|
42
|
-
// 读取原文件内容,生成diff预览(不应用编辑)
|
|
43
|
-
const fullFilePath = (0, file_1.normalizeFilePath)(input.file_path);
|
|
44
|
-
const enc = (0, file_1.detectFileEncoding)(fullFilePath);
|
|
45
|
-
const originalContent = (0, fs_1.readFileSync)(fullFilePath, enc);
|
|
46
|
-
const patch = (0, diff_1.getPatch)({
|
|
47
|
-
filePath: fullFilePath,
|
|
48
|
-
fileContents: originalContent,
|
|
49
|
-
oldStr: input.old_string,
|
|
50
|
-
newStr: input.new_string,
|
|
51
|
-
});
|
|
52
|
-
// 返回包含完整patch信息的JSON对象
|
|
53
|
-
const content = {
|
|
54
|
-
type: 'diff',
|
|
55
|
-
patch: patch,
|
|
56
|
-
diffText: ''
|
|
57
|
-
};
|
|
58
|
-
return { title, content };
|
|
59
|
-
},
|
|
60
|
-
genToolResultMessage({ filePath, structuredPatch }) {
|
|
61
|
-
const title = getTitle({ file_path: filePath });
|
|
62
|
-
const summary = (0, diff_1.getUpdateSummary)(filePath, structuredPatch);
|
|
63
|
-
const content = {
|
|
64
|
-
type: 'diff',
|
|
65
|
-
patch: structuredPatch,
|
|
66
|
-
diffText: ''
|
|
67
|
-
};
|
|
68
|
-
return { title, summary, content };
|
|
69
|
-
},
|
|
70
|
-
getDisplayTitle(input) {
|
|
71
|
-
return getTitle(input);
|
|
72
|
-
},
|
|
73
|
-
async validateInput({ file_path, old_string, new_string, replace_all }, agentContext) {
|
|
74
|
-
// 通过 agentContext 访问隔离状态
|
|
75
|
-
const stateManager = (0, StateManager_1.getStateManager)();
|
|
76
|
-
const agentState = stateManager.forAgent(agentContext.agentId);
|
|
77
|
-
const readFileTimestamps = agentState.getReadFileTimestamps();
|
|
78
|
-
if (old_string === new_string) {
|
|
79
|
-
return {
|
|
80
|
-
result: false,
|
|
81
|
-
message: 'No changes to make: old_string and new_string are exactly the same.',
|
|
82
|
-
meta: {
|
|
83
|
-
old_string,
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
const fullFilePath = (0, file_1.normalizeFilePath)(file_path);
|
|
88
|
-
if ((0, fs_1.existsSync)(fullFilePath) && old_string === '') {
|
|
89
|
-
return {
|
|
90
|
-
result: false,
|
|
91
|
-
message: 'Cannot create new file - file already exists.',
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
if (!(0, fs_1.existsSync)(fullFilePath) && old_string === '') {
|
|
95
|
-
return {
|
|
96
|
-
result: true,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
if (!(0, fs_1.existsSync)(fullFilePath)) {
|
|
100
|
-
// Try to find a similar file with a different extension
|
|
101
|
-
const similarFilename = (0, file_1.findSimilarFile)(fullFilePath);
|
|
102
|
-
let message = 'File does not exist.';
|
|
103
|
-
// If we found a similar file, suggest it to the assistant
|
|
104
|
-
if (similarFilename) {
|
|
105
|
-
message += ` Did you mean ${similarFilename}?`;
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
result: false,
|
|
109
|
-
message,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
if (fullFilePath.endsWith('.ipynb')) {
|
|
113
|
-
return {
|
|
114
|
-
result: false,
|
|
115
|
-
message: `File is a Jupyter Notebook. Use the ${prompt_2.TOOL_NAME_FOR_PROMPT} to edit this file.`,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
const readTimestamp = readFileTimestamps[fullFilePath];
|
|
119
|
-
if (!readTimestamp) {
|
|
120
|
-
return {
|
|
121
|
-
result: false,
|
|
122
|
-
message: 'File must be read first',
|
|
123
|
-
meta: {
|
|
124
|
-
isFilePathAbsolute: String((0, path_1.isAbsolute)(file_path)),
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
// Check if file exists and get its last modified time
|
|
129
|
-
const stats = (0, fs_1.statSync)(fullFilePath);
|
|
130
|
-
const lastWriteTime = stats.mtimeMs;
|
|
131
|
-
if (lastWriteTime > readTimestamp) {
|
|
132
|
-
return {
|
|
133
|
-
result: false,
|
|
134
|
-
message: 'File has been unexpectedly modified. Read it again before attempting to write it.',
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
const enc = (0, file_1.detectFileEncoding)(fullFilePath);
|
|
138
|
-
const file = (0, fs_1.readFileSync)(fullFilePath, enc);
|
|
139
|
-
const lineEndings = (0, file_1.detectLineEndings)(fullFilePath);
|
|
140
|
-
const normalizedOldString = lineEndings === 'CRLF'
|
|
141
|
-
? old_string.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n')
|
|
142
|
-
: old_string.replace(/\r\n/g, '\n');
|
|
143
|
-
if (!file.includes(normalizedOldString)) {
|
|
144
|
-
return {
|
|
145
|
-
result: false,
|
|
146
|
-
message: `String to replace not found in file.`,
|
|
147
|
-
meta: {
|
|
148
|
-
isFilePathAbsolute: String((0, path_1.isAbsolute)(file_path)),
|
|
149
|
-
},
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
const matches = file.split(normalizedOldString).length - 1;
|
|
153
|
-
if (matches > 1 && !replace_all) {
|
|
154
|
-
return {
|
|
155
|
-
result: false,
|
|
156
|
-
message: `Found ${matches} matches of the string to replace. For safety, this tool only supports replacing exactly one occurrence at a time. Add more lines of context to your edit, or set replace_all to true to replace all occurrences.`,
|
|
157
|
-
meta: {
|
|
158
|
-
isFilePathAbsolute: String((0, path_1.isAbsolute)(file_path)),
|
|
159
|
-
},
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
return { result: true };
|
|
163
|
-
},
|
|
164
|
-
async *call({ file_path, old_string, new_string, replace_all }, agentContext) {
|
|
165
|
-
const { patch, updatedFile } = (0, utils_1.applyEdit)(file_path, old_string, new_string, replace_all);
|
|
166
|
-
const stateManager = (0, StateManager_1.getStateManager)();
|
|
167
|
-
const agentState = stateManager.forAgent(agentContext.agentId);
|
|
168
|
-
const fullFilePath = (0, file_1.normalizeFilePath)(file_path);
|
|
169
|
-
const dir = (0, path_1.dirname)(fullFilePath);
|
|
170
|
-
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
171
|
-
const enc = (0, fs_1.existsSync)(fullFilePath)
|
|
172
|
-
? (0, file_1.detectFileEncoding)(fullFilePath)
|
|
173
|
-
: 'utf8';
|
|
174
|
-
const endings = (0, fs_1.existsSync)(fullFilePath)
|
|
175
|
-
? (0, file_1.detectLineEndings)(fullFilePath)
|
|
176
|
-
: 'LF';
|
|
177
|
-
const originalFile = (0, fs_1.existsSync)(fullFilePath)
|
|
178
|
-
? (0, fs_1.readFileSync)(fullFilePath, enc)
|
|
179
|
-
: '';
|
|
180
|
-
// 权限确认后二次校验时间戳,防止用户在权限对话框期间修改文件
|
|
181
|
-
if ((0, fs_1.existsSync)(fullFilePath)) {
|
|
182
|
-
const readTimestamp = agentState.getReadFileTimestamps()[fullFilePath];
|
|
183
|
-
const currentMtime = (0, fs_1.statSync)(fullFilePath).mtimeMs;
|
|
184
|
-
if (readTimestamp && currentMtime > readTimestamp) {
|
|
185
|
-
throw new Error('File has been modified since permission was granted. Read it again before attempting to edit it.');
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
(0, file_1.writeTextContent)(fullFilePath, updatedFile, enc, endings);
|
|
189
|
-
// Update read timestamp, to invalidate stale writes
|
|
190
|
-
agentState.setReadFileTimestamp(fullFilePath, (0, fs_1.statSync)(fullFilePath).mtimeMs);
|
|
191
|
-
const data = {
|
|
192
|
-
filePath: file_path,
|
|
193
|
-
oldString: old_string,
|
|
194
|
-
newString: new_string,
|
|
195
|
-
originalFile,
|
|
196
|
-
structuredPatch: patch,
|
|
197
|
-
};
|
|
198
|
-
yield {
|
|
199
|
-
type: 'result',
|
|
200
|
-
data,
|
|
201
|
-
resultForAssistant: this.genResultForAssistant(data),
|
|
202
|
-
};
|
|
203
|
-
},
|
|
204
|
-
genResultForAssistant({ filePath, originalFile, oldString, newString }) {
|
|
205
|
-
const { snippet, startLine } = getSnippet(originalFile || '', oldString, newString);
|
|
206
|
-
return `The file ${filePath} has been updated. Here's the result of running \`cat -n\` on a snippet of the edited file:
|
|
207
|
-
${(0, file_1.addLineNumbers)({
|
|
208
|
-
content: snippet,
|
|
209
|
-
startLine,
|
|
210
|
-
})}`;
|
|
211
|
-
},
|
|
212
|
-
};
|
|
213
|
-
function getSnippet(initialText, oldStr, newStr) {
|
|
214
|
-
const before = initialText.split(oldStr)[0] ?? '';
|
|
215
|
-
const replacementLine = before.split(/\r?\n/).length - 1;
|
|
216
|
-
const newFileLines = initialText.replace(oldStr, newStr).split(/\r?\n/);
|
|
217
|
-
// Calculate the start and end line numbers for the snippet
|
|
218
|
-
const startLine = Math.max(0, replacementLine - N_LINES_SNIPPET);
|
|
219
|
-
const endLine = replacementLine + N_LINES_SNIPPET + newStr.split(/\r?\n/).length;
|
|
220
|
-
// Get snippet
|
|
221
|
-
const snippetLines = newFileLines.slice(startLine, endLine + 1);
|
|
222
|
-
const snippet = snippetLines.join('\n');
|
|
223
|
-
return { snippet, startLine: startLine + 1 };
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=Edit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Edit.js","sourceRoot":"","sources":["../../../src/tools/Edit/Edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const TOOL_NAME_FOR_PROMPT = "Edit";
|
|
2
|
-
export declare const DESCRIPTION = "Performs exact string replacements in files. \n\nUsage:\n- You must use your `Read` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file. \n- When editing text from Read tool output, ensure you preserve the exact indentation (tabs/spaces) as it appears AFTER the line number prefix. The line number prefix format is: spaces + line number + tab. Everything after that tab is the actual file content to match. Never include any part of the line number prefix in the old_string or new_string.\n- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.\n- Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.\n- The edit will FAIL if `old_string` is not unique in the file. Either provide a larger string with more surrounding context to make it unique or use `replace_all` to change every instance of `old_string`. \n- Use `replace_all` for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.";
|
|
3
|
-
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/Edit/prompt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,SAAS,CAAA;AAE1C,eAAO,MAAM,WAAW,mmCAQ0H,CAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DESCRIPTION = exports.TOOL_NAME_FOR_PROMPT = void 0;
|
|
4
|
-
const prompt_1 = require("../Read/prompt");
|
|
5
|
-
exports.TOOL_NAME_FOR_PROMPT = 'Edit';
|
|
6
|
-
exports.DESCRIPTION = `Performs exact string replacements in files.
|
|
7
|
-
|
|
8
|
-
Usage:
|
|
9
|
-
- You must use your \`${prompt_1.TOOL_NAME_FOR_PROMPT}\` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file.
|
|
10
|
-
- When editing text from ${prompt_1.TOOL_NAME_FOR_PROMPT} tool output, ensure you preserve the exact indentation (tabs/spaces) as it appears AFTER the line number prefix. The line number prefix format is: spaces + line number + tab. Everything after that tab is the actual file content to match. Never include any part of the line number prefix in the old_string or new_string.
|
|
11
|
-
- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
|
|
12
|
-
- Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.
|
|
13
|
-
- The edit will FAIL if \`old_string\` is not unique in the file. Either provide a larger string with more surrounding context to make it unique or use \`replace_all\` to change every instance of \`old_string\`.
|
|
14
|
-
- Use \`replace_all\` for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.`;
|
|
15
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/Edit/prompt.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AAE1D,QAAA,oBAAoB,GAAG,MAAM,CAAA;AAE7B,QAAA,WAAW,GAAG;;;wBAGH,6BAAc;2BACX,6BAAc;;;;kJAIyG,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/Edit/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAA;AAGhC;;;GAGG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,OAAe,GAC3B;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAqDxC"}
|
package/dist/tools/Edit/utils.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyEdit = applyEdit;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const file_1 = require("../../util/file");
|
|
6
|
-
const diff_1 = require("../../util/diff");
|
|
7
|
-
/**
|
|
8
|
-
* Applies an edit to a file and returns the patch and updated file.
|
|
9
|
-
* Does not write the file to disk.
|
|
10
|
-
*/
|
|
11
|
-
function applyEdit(file_path, old_string, new_string, replace_all = false) {
|
|
12
|
-
const fullFilePath = (0, file_1.normalizeFilePath)(file_path);
|
|
13
|
-
let originalFile;
|
|
14
|
-
let updatedFile;
|
|
15
|
-
if (old_string === '') {
|
|
16
|
-
// Create new file
|
|
17
|
-
originalFile = '';
|
|
18
|
-
updatedFile = new_string;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
// Edit existing file
|
|
22
|
-
const enc = (0, file_1.detectFileEncoding)(fullFilePath);
|
|
23
|
-
originalFile = (0, fs_1.readFileSync)(fullFilePath, enc);
|
|
24
|
-
const lineEndings = (0, file_1.detectLineEndings)(fullFilePath);
|
|
25
|
-
const normalizedOldString = lineEndings === 'CRLF'
|
|
26
|
-
? old_string.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n')
|
|
27
|
-
: old_string.replace(/\r\n/g, '\n');
|
|
28
|
-
const normalizedNewString = lineEndings === 'CRLF'
|
|
29
|
-
? new_string.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n')
|
|
30
|
-
: new_string.replace(/\r\n/g, '\n');
|
|
31
|
-
const replaceFunc = replace_all
|
|
32
|
-
? (str, search, replacement) => str.replaceAll(search, replacement)
|
|
33
|
-
: (str, search, replacement) => str.replace(search, replacement);
|
|
34
|
-
if (new_string === '') {
|
|
35
|
-
if (!normalizedOldString.endsWith('\n') &&
|
|
36
|
-
!normalizedOldString.endsWith('\r\n') &&
|
|
37
|
-
(originalFile.includes(normalizedOldString + '\r\n') || originalFile.includes(normalizedOldString + '\n'))) {
|
|
38
|
-
const suffix = lineEndings === 'CRLF' ? '\r\n' : '\n';
|
|
39
|
-
updatedFile = replaceFunc(originalFile, normalizedOldString + suffix, new_string);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
updatedFile = replaceFunc(originalFile, normalizedOldString, new_string);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
updatedFile = replaceFunc(originalFile, normalizedOldString, normalizedNewString);
|
|
47
|
-
}
|
|
48
|
-
if (updatedFile === originalFile) {
|
|
49
|
-
throw new Error('Original and edited file match exactly. Failed to apply edit.');
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
const patch = (0, diff_1.getPatch)({
|
|
53
|
-
filePath: file_path,
|
|
54
|
-
fileContents: originalFile,
|
|
55
|
-
oldStr: originalFile,
|
|
56
|
-
newStr: updatedFile,
|
|
57
|
-
});
|
|
58
|
-
return { patch, updatedFile };
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/tools/Edit/utils.ts"],"names":[],"mappings":"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"}
|