actoviq-agent-sdk 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-zh.md +19 -3
- package/README.md +19 -3
- package/bin/actoviq-interactive-agent.js +5 -0
- package/bin/actoviq-link-runtime.js +74 -0
- package/bin/actoviq-react.js +5 -0
- package/dist/src/cli/actoviq-react.d.ts +3 -0
- package/dist/src/cli/actoviq-react.d.ts.map +1 -0
- package/dist/src/cli/actoviq-react.js +286 -0
- package/dist/src/cli/actoviq-react.js.map +1 -0
- package/dist/src/cli/bridge-interactive-agent.d.ts +2 -0
- package/dist/src/cli/bridge-interactive-agent.d.ts.map +1 -0
- package/dist/src/cli/bridge-interactive-agent.js +147 -0
- package/dist/src/cli/bridge-interactive-agent.js.map +1 -0
- package/dist/src/config/anthropicEnvMapping.d.ts +18 -0
- package/dist/src/config/anthropicEnvMapping.d.ts.map +1 -0
- package/dist/src/config/anthropicEnvMapping.js +40 -0
- package/dist/src/config/anthropicEnvMapping.js.map +1 -0
- package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -1
- package/dist/src/config/resolveRuntimeConfig.js +44 -23
- package/dist/src/config/resolveRuntimeConfig.js.map +1 -1
- package/dist/src/errors.d.ts +9 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +9 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +23 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/memory/actoviqMemory.d.ts.map +1 -1
- package/dist/src/memory/actoviqMemory.js +10 -6
- package/dist/src/memory/actoviqMemory.js.map +1 -1
- package/dist/src/memory/actoviqTranscriptLogger.d.ts.map +1 -1
- package/dist/src/memory/actoviqTranscriptLogger.js +2 -2
- package/dist/src/memory/actoviqTranscriptLogger.js.map +1 -1
- package/dist/src/parity/actoviqBridgeEvents.d.ts +7 -0
- package/dist/src/parity/actoviqBridgeEvents.d.ts.map +1 -0
- package/dist/src/parity/actoviqBridgeEvents.js +135 -0
- package/dist/src/parity/actoviqBridgeEvents.js.map +1 -0
- package/dist/src/parity/actoviqBridgeSdk.d.ts +179 -0
- package/dist/src/parity/actoviqBridgeSdk.d.ts.map +1 -0
- package/dist/src/parity/actoviqBridgeSdk.js +1275 -0
- package/dist/src/parity/actoviqBridgeSdk.js.map +1 -0
- package/dist/src/parity/actoviqCleanBridgeCompatSdk.d.ts +277 -0
- package/dist/src/parity/actoviqCleanBridgeCompatSdk.d.ts.map +1 -0
- package/dist/src/parity/actoviqCleanBridgeCompatSdk.js +1391 -0
- package/dist/src/parity/actoviqCleanBridgeCompatSdk.js.map +1 -0
- package/dist/src/parity/actoviqTranscripts.d.ts +44 -0
- package/dist/src/parity/actoviqTranscripts.d.ts.map +1 -0
- package/dist/src/parity/actoviqTranscripts.js +282 -0
- package/dist/src/parity/actoviqTranscripts.js.map +1 -0
- package/dist/src/parity/portableSessions.d.ts +35 -0
- package/dist/src/parity/portableSessions.d.ts.map +1 -0
- package/dist/src/parity/portableSessions.js +237 -0
- package/dist/src/parity/portableSessions.js.map +1 -0
- package/dist/src/prompts/systemPrompt.d.ts +15 -0
- package/dist/src/prompts/systemPrompt.d.ts.map +1 -0
- package/dist/src/prompts/systemPrompt.js +73 -0
- package/dist/src/prompts/systemPrompt.js.map +1 -0
- package/dist/src/provider/client.d.ts +4 -0
- package/dist/src/provider/client.d.ts.map +1 -1
- package/dist/src/provider/client.js +82 -10
- package/dist/src/provider/client.js.map +1 -1
- package/dist/src/provider/json-parse.d.ts +7 -0
- package/dist/src/provider/json-parse.d.ts.map +1 -0
- package/dist/src/provider/json-parse.js +69 -0
- package/dist/src/provider/json-parse.js.map +1 -0
- package/dist/src/provider/openai-client.d.ts.map +1 -1
- package/dist/src/provider/openai-client.js +45 -5
- package/dist/src/provider/openai-client.js.map +1 -1
- package/dist/src/provider/openai-model-api.d.ts.map +1 -1
- package/dist/src/provider/openai-model-api.js +2 -7
- package/dist/src/provider/openai-model-api.js.map +1 -1
- package/dist/src/runtime/actoviqAgents.d.ts +6 -0
- package/dist/src/runtime/actoviqAgents.d.ts.map +1 -1
- package/dist/src/runtime/actoviqAgents.js +110 -14
- package/dist/src/runtime/actoviqAgents.js.map +1 -1
- package/dist/src/runtime/actoviqApiMicrocompact.d.ts +14 -0
- package/dist/src/runtime/actoviqApiMicrocompact.d.ts.map +1 -1
- package/dist/src/runtime/actoviqApiMicrocompact.js +111 -16
- package/dist/src/runtime/actoviqApiMicrocompact.js.map +1 -1
- package/dist/src/runtime/actoviqBackgroundTasks.d.ts +1 -0
- package/dist/src/runtime/actoviqBackgroundTasks.d.ts.map +1 -1
- package/dist/src/runtime/actoviqBackgroundTasks.js +1 -0
- package/dist/src/runtime/actoviqBackgroundTasks.js.map +1 -1
- package/dist/src/runtime/actoviqCompact.d.ts +43 -0
- package/dist/src/runtime/actoviqCompact.d.ts.map +1 -1
- package/dist/src/runtime/actoviqCompact.js +290 -8
- package/dist/src/runtime/actoviqCompact.js.map +1 -1
- package/dist/src/runtime/actoviqPermissions.d.ts.map +1 -1
- package/dist/src/runtime/actoviqPermissions.js +121 -55
- package/dist/src/runtime/actoviqPermissions.js.map +1 -1
- package/dist/src/runtime/agentClient.d.ts +11 -0
- package/dist/src/runtime/agentClient.d.ts.map +1 -1
- package/dist/src/runtime/agentClient.js +332 -6
- package/dist/src/runtime/agentClient.js.map +1 -1
- package/dist/src/runtime/conversationEngine.d.ts.map +1 -1
- package/dist/src/runtime/conversationEngine.js +585 -33
- package/dist/src/runtime/conversationEngine.js.map +1 -1
- package/dist/src/runtime/defaultActoviqAgents.d.ts +3 -0
- package/dist/src/runtime/defaultActoviqAgents.d.ts.map +1 -0
- package/dist/src/runtime/defaultActoviqAgents.js +44 -0
- package/dist/src/runtime/defaultActoviqAgents.js.map +1 -0
- package/dist/src/runtime/denialTracking.d.ts +10 -0
- package/dist/src/runtime/denialTracking.d.ts.map +1 -0
- package/dist/src/runtime/denialTracking.js +27 -0
- package/dist/src/runtime/denialTracking.js.map +1 -0
- package/dist/src/runtime/safetyChecks.d.ts +12 -0
- package/dist/src/runtime/safetyChecks.d.ts.map +1 -0
- package/dist/src/runtime/safetyChecks.js +68 -0
- package/dist/src/runtime/safetyChecks.js.map +1 -0
- package/dist/src/runtime/sessionManager.d.ts.map +1 -1
- package/dist/src/runtime/sessionManager.js +10 -5
- package/dist/src/runtime/sessionManager.js.map +1 -1
- package/dist/src/runtime/tools.d.ts.map +1 -1
- package/dist/src/runtime/tools.js +62 -3
- package/dist/src/runtime/tools.js.map +1 -1
- package/dist/src/scheduling/cron.d.ts +14 -0
- package/dist/src/scheduling/cron.d.ts.map +1 -0
- package/dist/src/scheduling/cron.js +159 -0
- package/dist/src/scheduling/cron.js.map +1 -0
- package/dist/src/scheduling/index.d.ts +3 -0
- package/dist/src/scheduling/index.d.ts.map +1 -0
- package/dist/src/scheduling/index.js +3 -0
- package/dist/src/scheduling/index.js.map +1 -0
- package/dist/src/scheduling/scheduler.d.ts +32 -0
- package/dist/src/scheduling/scheduler.d.ts.map +1 -0
- package/dist/src/scheduling/scheduler.js +196 -0
- package/dist/src/scheduling/scheduler.js.map +1 -0
- package/dist/src/storage/backgroundTaskStore.d.ts.map +1 -1
- package/dist/src/storage/backgroundTaskStore.js +3 -2
- package/dist/src/storage/backgroundTaskStore.js.map +1 -1
- package/dist/src/storage/mailboxStore.d.ts.map +1 -1
- package/dist/src/storage/mailboxStore.js +3 -3
- package/dist/src/storage/mailboxStore.js.map +1 -1
- package/dist/src/storage/pathSafety.d.ts +4 -0
- package/dist/src/storage/pathSafety.d.ts.map +1 -0
- package/dist/src/storage/pathSafety.js +28 -0
- package/dist/src/storage/pathSafety.js.map +1 -0
- package/dist/src/storage/sessionStore.d.ts +2 -2
- package/dist/src/storage/sessionStore.d.ts.map +1 -1
- package/dist/src/storage/sessionStore.js +23 -8
- package/dist/src/storage/sessionStore.js.map +1 -1
- package/dist/src/storage/teammateStore.d.ts.map +1 -1
- package/dist/src/storage/teammateStore.js +3 -2
- package/dist/src/storage/teammateStore.js.map +1 -1
- package/dist/src/tools/actoviqCoreTools.d.ts +28 -0
- package/dist/src/tools/actoviqCoreTools.d.ts.map +1 -0
- package/dist/src/tools/actoviqCoreTools.js +32 -0
- package/dist/src/tools/actoviqCoreTools.js.map +1 -0
- package/dist/src/tools/actoviqFileTools.d.ts.map +1 -1
- package/dist/src/tools/actoviqFileTools.js +349 -373
- package/dist/src/tools/actoviqFileTools.js.map +1 -1
- package/dist/src/tools/actoviqMiscTools.d.ts +11 -0
- package/dist/src/tools/actoviqMiscTools.d.ts.map +1 -0
- package/dist/src/tools/actoviqMiscTools.js +89 -0
- package/dist/src/tools/actoviqMiscTools.js.map +1 -0
- package/dist/src/tools/actoviqNotebookEdit.d.ts +4 -0
- package/dist/src/tools/actoviqNotebookEdit.d.ts.map +1 -0
- package/dist/src/tools/actoviqNotebookEdit.js +140 -0
- package/dist/src/tools/actoviqNotebookEdit.js.map +1 -0
- package/dist/src/tools/actoviqShellTools.d.ts +5 -0
- package/dist/src/tools/actoviqShellTools.d.ts.map +1 -0
- package/dist/src/tools/actoviqShellTools.js +64 -0
- package/dist/src/tools/actoviqShellTools.js.map +1 -0
- package/dist/src/tools/actoviqTaskTools.d.ts +12 -0
- package/dist/src/tools/actoviqTaskTools.d.ts.map +1 -0
- package/dist/src/tools/actoviqTaskTools.js +108 -0
- package/dist/src/tools/actoviqTaskTools.js.map +1 -0
- package/dist/src/tools/actoviqWebTools.d.ts +15 -0
- package/dist/src/tools/actoviqWebTools.d.ts.map +1 -0
- package/dist/src/tools/actoviqWebTools.js +427 -0
- package/dist/src/tools/actoviqWebTools.js.map +1 -0
- package/dist/src/tools/askUserQuestion/AskUserQuestionTool.d.ts +6 -0
- package/dist/src/tools/askUserQuestion/AskUserQuestionTool.d.ts.map +1 -0
- package/dist/src/tools/askUserQuestion/AskUserQuestionTool.js +43 -0
- package/dist/src/tools/askUserQuestion/AskUserQuestionTool.js.map +1 -0
- package/dist/src/tools/bash/BashTool.d.ts +14 -0
- package/dist/src/tools/bash/BashTool.d.ts.map +1 -0
- package/dist/src/tools/bash/BashTool.js +60 -0
- package/dist/src/tools/bash/BashTool.js.map +1 -0
- package/dist/src/tools/bash/prompt.d.ts +3 -0
- package/dist/src/tools/bash/prompt.d.ts.map +1 -0
- package/dist/src/tools/bash/prompt.js +63 -0
- package/dist/src/tools/bash/prompt.js.map +1 -0
- package/dist/src/tools/prompts/fileEditPrompt.d.ts +3 -0
- package/dist/src/tools/prompts/fileEditPrompt.d.ts.map +1 -0
- package/dist/src/tools/prompts/fileEditPrompt.js +14 -0
- package/dist/src/tools/prompts/fileEditPrompt.js.map +1 -0
- package/dist/src/tools/prompts/fileReadPrompt.d.ts +3 -0
- package/dist/src/tools/prompts/fileReadPrompt.d.ts.map +1 -0
- package/dist/src/tools/prompts/fileReadPrompt.js +18 -0
- package/dist/src/tools/prompts/fileReadPrompt.js.map +1 -0
- package/dist/src/tools/prompts/fileSearchPrompt.d.ts +2 -0
- package/dist/src/tools/prompts/fileSearchPrompt.d.ts.map +1 -0
- package/dist/src/tools/prompts/fileSearchPrompt.js +21 -0
- package/dist/src/tools/prompts/fileSearchPrompt.js.map +1 -0
- package/dist/src/tools/prompts/fileWritePrompt.d.ts +3 -0
- package/dist/src/tools/prompts/fileWritePrompt.d.ts.map +1 -0
- package/dist/src/tools/prompts/fileWritePrompt.js +13 -0
- package/dist/src/tools/prompts/fileWritePrompt.js.map +1 -0
- package/dist/src/tools/prompts/webFetchPrompt.d.ts +3 -0
- package/dist/src/tools/prompts/webFetchPrompt.d.ts.map +1 -0
- package/dist/src/tools/prompts/webFetchPrompt.js +13 -0
- package/dist/src/tools/prompts/webFetchPrompt.js.map +1 -0
- package/dist/src/tools/prompts/webSearchPrompt.d.ts +3 -0
- package/dist/src/tools/prompts/webSearchPrompt.d.ts.map +1 -0
- package/dist/src/tools/prompts/webSearchPrompt.js +17 -0
- package/dist/src/tools/prompts/webSearchPrompt.js.map +1 -0
- package/dist/src/tools/todo/TodoWriteTool.d.ts +20 -0
- package/dist/src/tools/todo/TodoWriteTool.d.ts.map +1 -0
- package/dist/src/tools/todo/TodoWriteTool.js +105 -0
- package/dist/src/tools/todo/TodoWriteTool.js.map +1 -0
- package/dist/src/types.d.ts +425 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/workflow/workflowEngine.js +26 -3
- package/dist/src/workflow/workflowEngine.js.map +1 -1
- package/dist/src/workspace/actoviqWorkspace.d.ts.map +1 -1
- package/dist/src/workspace/actoviqWorkspace.js +25 -2
- package/dist/src/workspace/actoviqWorkspace.js.map +1 -1
- package/package.json +59 -11
- package/vendor/actoviq-runtime/cli.js +54 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const BASH_TOOL_NAME = 'Bash';
|
|
2
|
+
export const BASH_DESCRIPTION = `Executes a given bash command and returns its output.
|
|
3
|
+
|
|
4
|
+
The working directory persists between commands, but shell state does not. The shell environment is initialized from the user's profile (bash or zsh).
|
|
5
|
+
|
|
6
|
+
IMPORTANT: Avoid using this tool to run \`find\`, \`grep\`, \`cat\`, \`head\`, \`tail\`, \`sed\`, \`awk\`, or \`echo\` commands, unless explicitly instructed or after you have verified that a dedicated tool cannot accomplish your task. Instead, use the appropriate dedicated tool as this will provide a much better experience for the user:
|
|
7
|
+
|
|
8
|
+
- File search: Use Glob (NOT find or ls)
|
|
9
|
+
- Content search: Use Grep (NOT grep or rg)
|
|
10
|
+
- Read files: Use Read (NOT cat/head/tail)
|
|
11
|
+
- Edit files: Use Edit (NOT sed/awk)
|
|
12
|
+
- Write files: Use Write (NOT echo >/cat <<EOF)
|
|
13
|
+
- Communication: Output text directly (NOT echo/printf)
|
|
14
|
+
|
|
15
|
+
While the Bash tool can do similar things, it's better to use the built-in tools as they provide a better user experience and make it easier to review tool calls and give permission.
|
|
16
|
+
|
|
17
|
+
# Instructions
|
|
18
|
+
|
|
19
|
+
- If your command will create new directories or files, first use this tool to run \`ls\` to verify the parent directory exists and is the correct location.
|
|
20
|
+
- Always quote file paths that contain spaces with double quotes in your command (e.g., cd "path with spaces/file.txt")
|
|
21
|
+
- Try to maintain your current working directory throughout the session by using absolute paths and avoiding usage of \`cd\`. You may use \`cd\` if the User explicitly requests it.
|
|
22
|
+
- You may specify an optional timeout in milliseconds (up to 600000ms / 10 minutes). By default, your command will timeout after 120000ms (2 minutes).
|
|
23
|
+
- You can use the \`run_in_background\` parameter to run the command in the background. Only use this if you don't need the result immediately and are OK being notified when the command completes later. You do not need to check the output right away - you'll be notified when it finishes. You do not need to use '&' at the end of the command when using this parameter.
|
|
24
|
+
- When issuing multiple commands:
|
|
25
|
+
- If the commands are independent and can run in parallel, make multiple Bash tool calls in a single message. Example: if you need to run "git status" and "git diff", send a single message with two Bash tool calls in parallel.
|
|
26
|
+
- If the commands depend on each other and must run sequentially, use a single Bash call with '&&' to chain them together.
|
|
27
|
+
- Use ';' only when you need to run commands sequentially but don't care if earlier commands fail.
|
|
28
|
+
- DO NOT use newlines to separate commands (newlines are ok in quoted strings).
|
|
29
|
+
- For git commands:
|
|
30
|
+
- Prefer to create a new commit rather than amending an existing commit.
|
|
31
|
+
- Before running destructive operations (e.g., git reset --hard, git push --force, git checkout --), consider whether there is a safer alternative that achieves the same goal. Only use destructive operations when they are truly the best approach.
|
|
32
|
+
- Never skip hooks (--no-verify) or bypass signing (--no-gpg-sign, -c commit.gpgsign=false) unless the user has explicitly asked for it. If a hook fails, investigate and fix the underlying issue.
|
|
33
|
+
- Avoid unnecessary \`sleep\` commands:
|
|
34
|
+
- Do not sleep between commands that can run immediately — just run them.
|
|
35
|
+
- If your command is long running and you would like to be notified when it finishes — use \`run_in_background\`. No sleep needed.
|
|
36
|
+
- Do not retry failing commands in a sleep loop — diagnose the root cause.
|
|
37
|
+
- If waiting for a background task you started with \`run_in_background\`, you will be notified when it completes — do not poll.
|
|
38
|
+
- If you must poll an external process, use a check command rather than sleeping first.
|
|
39
|
+
- If you must sleep, keep the duration short to avoid blocking the user.
|
|
40
|
+
|
|
41
|
+
# Committing changes with git
|
|
42
|
+
|
|
43
|
+
Only create commits when requested by the user. If unclear, ask first. When the user asks you to create a new git commit, follow these steps carefully:
|
|
44
|
+
|
|
45
|
+
Git Safety Protocol:
|
|
46
|
+
- NEVER update the git config
|
|
47
|
+
- NEVER run destructive git commands (push --force, reset --hard, checkout ., restore ., clean -f, branch -D) unless the user explicitly requests these actions.
|
|
48
|
+
- NEVER skip hooks (--no-verify, --no-gpg-sign, etc) unless the user explicitly requests it
|
|
49
|
+
- NEVER run force push to main/master, warn the user if they request it
|
|
50
|
+
- CRITICAL: Always create NEW commits rather than amending, unless the user explicitly requests a git amend.
|
|
51
|
+
- When staging files, prefer adding specific files by name rather than using "git add -A" or "git add ."
|
|
52
|
+
- NEVER commit changes unless the user explicitly asks you to.
|
|
53
|
+
|
|
54
|
+
1. Run the following bash commands in parallel:
|
|
55
|
+
- git status to see all untracked files (never use -uall flag)
|
|
56
|
+
- git diff to see both staged and unstaged changes
|
|
57
|
+
- git log to see recent commit messages
|
|
58
|
+
2. Draft a commit message (1-2 sentences) focusing on "why" rather than "what"
|
|
59
|
+
3. Create the commit and run git status to verify.
|
|
60
|
+
4. If the commit fails due to pre-commit hook: fix the issue and create a NEW commit
|
|
61
|
+
|
|
62
|
+
Important: NEVER use git commands with the -i flag since they require interactive input. If there are no changes to commit, do not create an empty commit. ALWAYS pass the commit message via a HEREDOC.`;
|
|
63
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/tools/bash/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yMA4DyK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileEditPrompt.d.ts","sourceRoot":"","sources":["../../../../src/tools/prompts/fileEditPrompt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,CAUrD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FILE_READ_TOOL_NAME } from './fileReadPrompt.js';
|
|
2
|
+
export const FILE_EDIT_TOOL_NAME = 'Edit';
|
|
3
|
+
export function fileEditPrompt(_options) {
|
|
4
|
+
return `Performs exact string replacements in files.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
- You must use your \`${FILE_READ_TOOL_NAME}\` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file.
|
|
8
|
+
- 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: line number + tab. Everything after that is the actual file content to match. Never include any part of the line number prefix in the old_string or new_string.
|
|
9
|
+
- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
|
|
10
|
+
- Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.
|
|
11
|
+
- 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\`.
|
|
12
|
+
- Use \`replace_all\` for replacing and renaming strings across the file.`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=fileEditPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileEditPrompt.js","sourceRoot":"","sources":["../../../../src/tools/prompts/fileEditPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,QAAc;IAC3C,OAAO;;;wBAGe,mBAAmB;;;;;0EAK+B,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileReadPrompt.d.ts","sourceRoot":"","sources":["../../../../src/tools/prompts/fileReadPrompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,CAerD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const FILE_READ_TOOL_NAME = 'Read';
|
|
2
|
+
export function fileReadPrompt(_options) {
|
|
3
|
+
return `Reads a file from the local filesystem. You can access any file directly by using this tool.
|
|
4
|
+
Assume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
- The file_path parameter must be an absolute path, not a relative path
|
|
8
|
+
- By default, it reads up to 2000 lines starting from the beginning of the file
|
|
9
|
+
- When you already know which part of the file you need, only read that part. This can be important for larger files.
|
|
10
|
+
- Results are returned using cat -n format, with line numbers starting at 1
|
|
11
|
+
- This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.
|
|
12
|
+
- This tool can read PDF files (.pdf). For large PDFs (more than 10 pages), you MUST provide the pages parameter to read specific page ranges (e.g., pages: "1-5"). Maximum 20 pages per request.
|
|
13
|
+
- This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs.
|
|
14
|
+
- This tool can only read files, not directories. To read a directory, use an ls command via the Bash tool.
|
|
15
|
+
- If the user provides a path to a screenshot, ALWAYS use this tool to view the file at the path.
|
|
16
|
+
- If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.`;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=fileReadPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileReadPrompt.js","sourceRoot":"","sources":["../../../../src/tools/prompts/fileReadPrompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,QAAc;IAC3C,OAAO;;;;;;;;;;;;;8HAaqH,CAAC;AAC/H,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileSearchPrompt.d.ts","sourceRoot":"","sources":["../../../../src/tools/prompts/fileSearchPrompt.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,CAmBvD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function fileSearchPrompt(_options) {
|
|
2
|
+
return `## File Search Tools (Glob & Grep)
|
|
3
|
+
|
|
4
|
+
### Glob
|
|
5
|
+
- Fast file pattern matching tool for finding files by name patterns.
|
|
6
|
+
- Supports glob patterns like \`**/*.js\` or \`src/**/*.ts\`.
|
|
7
|
+
- Returns matching file paths sorted by modification time.
|
|
8
|
+
- Use this tool when you need to find files by name patterns.
|
|
9
|
+
|
|
10
|
+
### Grep
|
|
11
|
+
- A powerful search tool built on regular expressions for searching file contents.
|
|
12
|
+
- Usage:
|
|
13
|
+
- ALWAYS use Grep for search tasks. NEVER invoke \`grep\` or \`rg\` as a Bash command.
|
|
14
|
+
- Supports full regex syntax with \`pattern\` parameter.
|
|
15
|
+
- Filter files with \`glob\` parameter (e.g., \`"*.js"\`, \`"**/*.tsx"\`).
|
|
16
|
+
- Output modes: \`"content"\` shows matching lines, \`"files_with_matches"\` shows only file paths (default), \`"count"\` shows match counts.
|
|
17
|
+
- Use \`head_limit\` to limit output. Pass 0 for unlimited.
|
|
18
|
+
- Supports context lines (\`-A\`, \`-B\`, \`-C\`) and multiline mode.
|
|
19
|
+
- If you are searching for a keyword or file and are not confident that you will find the right match in the first few tries, keep searching with different patterns.`;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=fileSearchPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileSearchPrompt.js","sourceRoot":"","sources":["../../../../src/tools/prompts/fileSearchPrompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,QAAc;IAC7C,OAAO;;;;;;;;;;;;;;;;;sKAiB6J,CAAC;AACvK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileWritePrompt.d.ts","sourceRoot":"","sources":["../../../../src/tools/prompts/fileWritePrompt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,CAStD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FILE_READ_TOOL_NAME } from './fileReadPrompt.js';
|
|
2
|
+
export const FILE_WRITE_TOOL_NAME = 'Write';
|
|
3
|
+
export function fileWritePrompt(_options) {
|
|
4
|
+
return `Writes a file to the local filesystem.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
- This tool will overwrite the existing file if there is one at the provided path.
|
|
8
|
+
- If this is an existing file, you MUST use the \`${FILE_READ_TOOL_NAME}\` tool first to read the file's contents. This tool will fail if you did not read the file first.
|
|
9
|
+
- Prefer the Edit tool for modifying existing files — it only sends the diff. Only use this tool to create new files or for complete rewrites.
|
|
10
|
+
- NEVER create documentation files (*.md) or README files unless explicitly requested by the User.
|
|
11
|
+
- Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=fileWritePrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileWritePrompt.js","sourceRoot":"","sources":["../../../../src/tools/prompts/fileWritePrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,QAAc;IAC5C,OAAO;;;;oDAI2C,mBAAmB;;;kGAG2B,CAAC;AACnG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webFetchPrompt.d.ts","sourceRoot":"","sources":["../../../../src/tools/prompts/webFetchPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAWlE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function webFetchPrompt(_options) {
|
|
2
|
+
return `## WebFetch Tool
|
|
3
|
+
- Fetches content from a specified URL and processes it.
|
|
4
|
+
- Usage:
|
|
5
|
+
- The URL must be a fully-formed valid URL.
|
|
6
|
+
- HTTP URLs will be automatically upgraded to HTTPS.
|
|
7
|
+
- The \`prompt\` parameter describes what information to extract from the page.
|
|
8
|
+
- This tool is read-only and does not modify any files.
|
|
9
|
+
- Results may be summarized if the content is very large (max ~50KB).
|
|
10
|
+
- IMPORTANT: You MUST never generate or guess URLs. Only use URLs provided by the user or found in previous tool results.
|
|
11
|
+
- For GitHub URLs, prefer using the gh CLI tool instead when available.`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=webFetchPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webFetchPrompt.js","sourceRoot":"","sources":["../../../../src/tools/prompts/webFetchPrompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,QAA2B;IACxD,OAAO;;;;;;;;;wEAS+D,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSearchPrompt.d.ts","sourceRoot":"","sources":["../../../../src/tools/prompts/webSearchPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAenE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function webSearchPrompt(_options) {
|
|
2
|
+
return `## WebSearch Tool
|
|
3
|
+
- Searches the web and returns results with titles, URLs, and snippets.
|
|
4
|
+
- Uses DuckDuckGo for zero-configuration searching.
|
|
5
|
+
- Usage:
|
|
6
|
+
- The \`query\` parameter must be at least 2 characters.
|
|
7
|
+
- Use \`limit\` to control the number of results (default: 5, max recommended: 10).
|
|
8
|
+
- Domain filtering is supported to include or block specific websites.
|
|
9
|
+
|
|
10
|
+
CRITICAL REQUIREMENT - You MUST follow this:
|
|
11
|
+
- After answering the user's question, you MUST include a "Sources:" section at the end of your response
|
|
12
|
+
- In the Sources section, list all relevant URLs from the search results as markdown hyperlinks: [Title](URL)
|
|
13
|
+
- This is MANDATORY - never skip including sources in your response
|
|
14
|
+
|
|
15
|
+
IMPORTANT: If you need up-to-date information or information beyond your knowledge cutoff, use this tool.`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=webSearchPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSearchPrompt.js","sourceRoot":"","sources":["../../../../src/tools/prompts/webSearchPrompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,QAA2B;IACzD,OAAO;;;;;;;;;;;;;0GAaiG,CAAC;AAC3G,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { AgentToolDefinition } from '../../types.js';
|
|
3
|
+
export declare const TODO_WRITE_TOOL_NAME = "TodoWrite";
|
|
4
|
+
declare const TodoItemSchema: z.ZodObject<{
|
|
5
|
+
content: z.ZodString;
|
|
6
|
+
status: z.ZodEnum<{
|
|
7
|
+
completed: "completed";
|
|
8
|
+
pending: "pending";
|
|
9
|
+
in_progress: "in_progress";
|
|
10
|
+
}>;
|
|
11
|
+
activeForm: z.ZodString;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export declare const TODO_PROMPT = "Use this tool to create and manage a structured task list for your current coding session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.\n\n## When to Use This Tool\nUse proactively in these scenarios:\n\n1. Complex multi-step tasks - 3 or more distinct steps\n2. Non-trivial tasks requiring careful planning\n3. User explicitly requests todo list\n4. User provides multiple tasks (numbered or comma-separated)\n5. After receiving new instructions - capture requirements as todos\n6. When starting a task - mark it in_progress BEFORE beginning (limit ONE at a time)\n7. After completing a task - mark completed, add follow-up tasks discovered\n\n## When NOT to Use\nSkip when: single straightforward task, trivial task, purely conversational/informational request.\n\n## Task States and Management\n\n1. Task States: pending, in_progress, completed\n - content: imperative form describing what to do (e.g., \"Run tests\")\n - activeForm: present continuous form shown during execution (e.g., \"Running tests\")\n\n2. Task Management:\n - Update status in real-time, mark complete IMMEDIATELY after finishing\n - Exactly ONE task in_progress at any time\n - Complete current tasks before starting new ones\n - Remove irrelevant tasks from the list\n\n3. Task Completion Requirements:\n - ONLY mark completed when FULLY accomplished\n - If you encounter errors or cannot finish, keep in_progress\n - When blocked, create a new task describing the issue\n\nWhen in doubt, use this tool. Proactive task management demonstrates attentiveness.";
|
|
14
|
+
export declare const TODO_DESCRIPTION = "Update the todo list for the current session. To be used proactively to track progress and pending tasks. At least one task should be in_progress at all times. Always provide both content (imperative) and activeForm (present continuous) for each task.";
|
|
15
|
+
type TodoItem = z.infer<typeof TodoItemSchema>;
|
|
16
|
+
export declare function getActoviqTodoSnapshot(scopeKey: string): TodoItem[];
|
|
17
|
+
export declare function formatActoviqTodoListLines(todos: TodoItem[]): string;
|
|
18
|
+
export declare function createTodoWriteTool(): AgentToolDefinition;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=TodoWriteTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodoWriteTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/todo/TodoWriteTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAIhD,QAAA,MAAM,cAAc;;;;;;;;iBAIlB,CAAC;AAIH,eAAO,MAAM,WAAW,2kDAiC4D,CAAC;AAErF,eAAO,MAAM,gBAAgB,gQACkO,CAAC;AAEhQ,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAqB/C,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEnE;AAQD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAEpE;AAeD,wBAAgB,mBAAmB,IAAI,mBAAmB,CAqBzD"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { tool } from '../../runtime/tools.js';
|
|
3
|
+
export const TODO_WRITE_TOOL_NAME = 'TodoWrite';
|
|
4
|
+
const TodoStatusSchema = z.enum(['pending', 'in_progress', 'completed']);
|
|
5
|
+
const TodoItemSchema = z.object({
|
|
6
|
+
content: z.string().min(1, 'Content cannot be empty'),
|
|
7
|
+
status: TodoStatusSchema,
|
|
8
|
+
activeForm: z.string().min(1, 'Active form cannot be empty'),
|
|
9
|
+
});
|
|
10
|
+
const TodoListSchema = z.array(TodoItemSchema);
|
|
11
|
+
export const TODO_PROMPT = `Use this tool to create and manage a structured task list for your current coding session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.
|
|
12
|
+
|
|
13
|
+
## When to Use This Tool
|
|
14
|
+
Use proactively in these scenarios:
|
|
15
|
+
|
|
16
|
+
1. Complex multi-step tasks - 3 or more distinct steps
|
|
17
|
+
2. Non-trivial tasks requiring careful planning
|
|
18
|
+
3. User explicitly requests todo list
|
|
19
|
+
4. User provides multiple tasks (numbered or comma-separated)
|
|
20
|
+
5. After receiving new instructions - capture requirements as todos
|
|
21
|
+
6. When starting a task - mark it in_progress BEFORE beginning (limit ONE at a time)
|
|
22
|
+
7. After completing a task - mark completed, add follow-up tasks discovered
|
|
23
|
+
|
|
24
|
+
## When NOT to Use
|
|
25
|
+
Skip when: single straightforward task, trivial task, purely conversational/informational request.
|
|
26
|
+
|
|
27
|
+
## Task States and Management
|
|
28
|
+
|
|
29
|
+
1. Task States: pending, in_progress, completed
|
|
30
|
+
- content: imperative form describing what to do (e.g., "Run tests")
|
|
31
|
+
- activeForm: present continuous form shown during execution (e.g., "Running tests")
|
|
32
|
+
|
|
33
|
+
2. Task Management:
|
|
34
|
+
- Update status in real-time, mark complete IMMEDIATELY after finishing
|
|
35
|
+
- Exactly ONE task in_progress at any time
|
|
36
|
+
- Complete current tasks before starting new ones
|
|
37
|
+
- Remove irrelevant tasks from the list
|
|
38
|
+
|
|
39
|
+
3. Task Completion Requirements:
|
|
40
|
+
- ONLY mark completed when FULLY accomplished
|
|
41
|
+
- If you encounter errors or cannot finish, keep in_progress
|
|
42
|
+
- When blocked, create a new task describing the issue
|
|
43
|
+
|
|
44
|
+
When in doubt, use this tool. Proactive task management demonstrates attentiveness.`;
|
|
45
|
+
export const TODO_DESCRIPTION = 'Update the todo list for the current session. To be used proactively to track progress and pending tasks. At least one task should be in_progress at all times. Always provide both content (imperative) and activeForm (present continuous) for each task.';
|
|
46
|
+
// Todo state is scoped per session (falling back to run) so long sessions can
|
|
47
|
+
// re-read prior state and the result snapshot stays accurate across turns.
|
|
48
|
+
const MAX_TRACKED_TODO_SCOPES = 256;
|
|
49
|
+
const todoStateByScope = new Map();
|
|
50
|
+
function rememberTodos(scopeKey, todos) {
|
|
51
|
+
const previous = todoStateByScope.get(scopeKey) ?? [];
|
|
52
|
+
// Refresh insertion order so the eviction below drops the stalest scope.
|
|
53
|
+
todoStateByScope.delete(scopeKey);
|
|
54
|
+
todoStateByScope.set(scopeKey, todos);
|
|
55
|
+
if (todoStateByScope.size > MAX_TRACKED_TODO_SCOPES) {
|
|
56
|
+
const oldest = todoStateByScope.keys().next().value;
|
|
57
|
+
if (oldest !== undefined) {
|
|
58
|
+
todoStateByScope.delete(oldest);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return previous;
|
|
62
|
+
}
|
|
63
|
+
export function getActoviqTodoSnapshot(scopeKey) {
|
|
64
|
+
return todoStateByScope.get(scopeKey) ?? [];
|
|
65
|
+
}
|
|
66
|
+
function formatTodoLine(todo) {
|
|
67
|
+
const marker = todo.status === 'completed' ? '[x]' : todo.status === 'in_progress' ? '[~]' : '[ ]';
|
|
68
|
+
const suffix = todo.status === 'in_progress' ? ` (in progress: ${todo.activeForm})` : '';
|
|
69
|
+
return `${marker} ${todo.content}${suffix}`;
|
|
70
|
+
}
|
|
71
|
+
export function formatActoviqTodoListLines(todos) {
|
|
72
|
+
return todos.map(formatTodoLine).join('\n');
|
|
73
|
+
}
|
|
74
|
+
function buildTodoResultText(todos) {
|
|
75
|
+
const lines = formatActoviqTodoListLines(todos);
|
|
76
|
+
return [
|
|
77
|
+
'Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable.',
|
|
78
|
+
'',
|
|
79
|
+
'<system-reminder>',
|
|
80
|
+
'Current todo list state:',
|
|
81
|
+
lines || '(empty)',
|
|
82
|
+
'Continue working through pending items; keep exactly one task in_progress.',
|
|
83
|
+
'</system-reminder>',
|
|
84
|
+
].join('\n');
|
|
85
|
+
}
|
|
86
|
+
export function createTodoWriteTool() {
|
|
87
|
+
return tool({
|
|
88
|
+
name: TODO_WRITE_TOOL_NAME,
|
|
89
|
+
description: TODO_DESCRIPTION,
|
|
90
|
+
inputSchema: z.strictObject({
|
|
91
|
+
todos: TodoListSchema.describe('The updated todo list'),
|
|
92
|
+
}),
|
|
93
|
+
isReadOnly: () => true,
|
|
94
|
+
prompt: () => TODO_PROMPT,
|
|
95
|
+
serialize: (output) => buildTodoResultText(output.newTodos),
|
|
96
|
+
}, async ({ todos }, context) => {
|
|
97
|
+
const scopeKey = context.sessionId ?? context.runId;
|
|
98
|
+
const oldTodos = rememberTodos(scopeKey, todos);
|
|
99
|
+
return {
|
|
100
|
+
oldTodos,
|
|
101
|
+
newTodos: todos,
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=TodoWriteTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodoWriteTool.js","sourceRoot":"","sources":["../../../../src/tools/todo/TodoWriteTool.ts"],"names":[],"mappings":"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"}
|