This pass rewrites comment-only ANT-ONLY markers to neutral internal-only language across the source tree without changing runtime strings, flags, commands, or protocol identifiers. The goal is to lower obvious internal prose leakage while keeping the diff mechanically safe and easy to review. Constraint: Phase B is limited to comments/prose only; runtime strings and user-facing labels remain deferred Rejected: Broad search-and-replace across strings and command descriptions | too risky for a prose-only pass Confidence: high Scope-risk: narrow Reversibility: clean Directive: Remaining ANT-ONLY hits are mostly runtime/user-facing strings and should be handled separately from comment cleanup Tested: bun run build Tested: bun run smoke Tested: bun run verify:privacy Tested: bun run test:provider Tested: bun run test:provider-recommendation Not-tested: Full repo typecheck (upstream baseline remains noisy) Co-authored-by: anandh8x <test@example.com>
113 lines
4.6 KiB
TypeScript
113 lines
4.6 KiB
TypeScript
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
|
import { feature } from 'bun:bundle'
|
|
import { TASK_OUTPUT_TOOL_NAME } from '../tools/TaskOutputTool/constants.js'
|
|
import { EXIT_PLAN_MODE_V2_TOOL_NAME } from '../tools/ExitPlanModeTool/constants.js'
|
|
import { ENTER_PLAN_MODE_TOOL_NAME } from '../tools/EnterPlanModeTool/constants.js'
|
|
import { AGENT_TOOL_NAME } from '../tools/AgentTool/constants.js'
|
|
import { ASK_USER_QUESTION_TOOL_NAME } from '../tools/AskUserQuestionTool/prompt.js'
|
|
import { TASK_STOP_TOOL_NAME } from '../tools/TaskStopTool/prompt.js'
|
|
import { FILE_READ_TOOL_NAME } from '../tools/FileReadTool/prompt.js'
|
|
import { WEB_SEARCH_TOOL_NAME } from '../tools/WebSearchTool/prompt.js'
|
|
import { TODO_WRITE_TOOL_NAME } from '../tools/TodoWriteTool/constants.js'
|
|
import { GREP_TOOL_NAME } from '../tools/GrepTool/prompt.js'
|
|
import { WEB_FETCH_TOOL_NAME } from '../tools/WebFetchTool/prompt.js'
|
|
import { GLOB_TOOL_NAME } from '../tools/GlobTool/prompt.js'
|
|
import { SHELL_TOOL_NAMES } from '../utils/shell/shellToolUtils.js'
|
|
import { FILE_EDIT_TOOL_NAME } from '../tools/FileEditTool/constants.js'
|
|
import { FILE_WRITE_TOOL_NAME } from '../tools/FileWriteTool/prompt.js'
|
|
import { NOTEBOOK_EDIT_TOOL_NAME } from '../tools/NotebookEditTool/constants.js'
|
|
import { SKILL_TOOL_NAME } from '../tools/SkillTool/constants.js'
|
|
import { SEND_MESSAGE_TOOL_NAME } from '../tools/SendMessageTool/constants.js'
|
|
import { TASK_CREATE_TOOL_NAME } from '../tools/TaskCreateTool/constants.js'
|
|
import { TASK_GET_TOOL_NAME } from '../tools/TaskGetTool/constants.js'
|
|
import { TASK_LIST_TOOL_NAME } from '../tools/TaskListTool/constants.js'
|
|
import { TASK_UPDATE_TOOL_NAME } from '../tools/TaskUpdateTool/constants.js'
|
|
import { TOOL_SEARCH_TOOL_NAME } from '../tools/ToolSearchTool/prompt.js'
|
|
import { SYNTHETIC_OUTPUT_TOOL_NAME } from '../tools/SyntheticOutputTool/SyntheticOutputTool.js'
|
|
import { ENTER_WORKTREE_TOOL_NAME } from '../tools/EnterWorktreeTool/constants.js'
|
|
import { EXIT_WORKTREE_TOOL_NAME } from '../tools/ExitWorktreeTool/constants.js'
|
|
import { WORKFLOW_TOOL_NAME } from '../tools/WorkflowTool/constants.js'
|
|
import {
|
|
CRON_CREATE_TOOL_NAME,
|
|
CRON_DELETE_TOOL_NAME,
|
|
CRON_LIST_TOOL_NAME,
|
|
} from '../tools/ScheduleCronTool/prompt.js'
|
|
|
|
export const ALL_AGENT_DISALLOWED_TOOLS = new Set([
|
|
TASK_OUTPUT_TOOL_NAME,
|
|
EXIT_PLAN_MODE_V2_TOOL_NAME,
|
|
ENTER_PLAN_MODE_TOOL_NAME,
|
|
// Allow Agent tool for agents when user is ant (enables nested agents)
|
|
...(process.env.USER_TYPE === 'ant' ? [] : [AGENT_TOOL_NAME]),
|
|
ASK_USER_QUESTION_TOOL_NAME,
|
|
TASK_STOP_TOOL_NAME,
|
|
// Prevent recursive workflow execution inside subagents.
|
|
...(feature('WORKFLOW_SCRIPTS') ? [WORKFLOW_TOOL_NAME] : []),
|
|
])
|
|
|
|
export const CUSTOM_AGENT_DISALLOWED_TOOLS = new Set([
|
|
...ALL_AGENT_DISALLOWED_TOOLS,
|
|
])
|
|
|
|
/*
|
|
* Async Agent Tool Availability Status (Source of Truth)
|
|
*/
|
|
export const ASYNC_AGENT_ALLOWED_TOOLS = new Set([
|
|
FILE_READ_TOOL_NAME,
|
|
WEB_SEARCH_TOOL_NAME,
|
|
TODO_WRITE_TOOL_NAME,
|
|
GREP_TOOL_NAME,
|
|
WEB_FETCH_TOOL_NAME,
|
|
GLOB_TOOL_NAME,
|
|
...SHELL_TOOL_NAMES,
|
|
FILE_EDIT_TOOL_NAME,
|
|
FILE_WRITE_TOOL_NAME,
|
|
NOTEBOOK_EDIT_TOOL_NAME,
|
|
SKILL_TOOL_NAME,
|
|
SYNTHETIC_OUTPUT_TOOL_NAME,
|
|
TOOL_SEARCH_TOOL_NAME,
|
|
ENTER_WORKTREE_TOOL_NAME,
|
|
EXIT_WORKTREE_TOOL_NAME,
|
|
])
|
|
/**
|
|
* Tools allowed only for in-process teammates (not general async agents).
|
|
* These are injected by inProcessRunner.ts and allowed through filterToolsForAgent
|
|
* via isInProcessTeammate() check.
|
|
*/
|
|
export const IN_PROCESS_TEAMMATE_ALLOWED_TOOLS = new Set([
|
|
TASK_CREATE_TOOL_NAME,
|
|
TASK_GET_TOOL_NAME,
|
|
TASK_LIST_TOOL_NAME,
|
|
TASK_UPDATE_TOOL_NAME,
|
|
SEND_MESSAGE_TOOL_NAME,
|
|
// Teammate-created crons are tagged with the creating agentId and routed to
|
|
// that teammate's pendingUserMessages queue (see useScheduledTasks.ts).
|
|
...(feature('AGENT_TRIGGERS')
|
|
? [CRON_CREATE_TOOL_NAME, CRON_DELETE_TOOL_NAME, CRON_LIST_TOOL_NAME]
|
|
: []),
|
|
])
|
|
|
|
/*
|
|
* BLOCKED FOR ASYNC AGENTS:
|
|
* - AgentTool: Blocked to prevent recursion
|
|
* - TaskOutputTool: Blocked to prevent recursion
|
|
* - ExitPlanModeTool: Plan mode is a main thread abstraction.
|
|
* - TaskStopTool: Requires access to main thread task state.
|
|
* - TungstenTool: Uses singleton virtual terminal abstraction that conflicts between agents.
|
|
*
|
|
* ENABLE LATER (NEED WORK):
|
|
* - MCPTool: TBD
|
|
* - ListMcpResourcesTool: TBD
|
|
* - ReadMcpResourceTool: TBD
|
|
*/
|
|
|
|
/**
|
|
* Tools allowed in coordinator mode - only output and agent management tools for the coordinator
|
|
*/
|
|
export const COORDINATOR_MODE_ALLOWED_TOOLS = new Set([
|
|
AGENT_TOOL_NAME,
|
|
TASK_STOP_TOOL_NAME,
|
|
SEND_MESSAGE_TOOL_NAME,
|
|
SYNTHETIC_OUTPUT_TOOL_NAME,
|
|
])
|