tools.json 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  1. [
  2. {
  3. "type": "function",
  4. "function": {
  5. "name": "message_notify_user",
  6. "description": "Send a message to user without requiring a response. Use for acknowledging receipt of messages, providing progress updates, reporting task completion, or explaining changes in approach.",
  7. "parameters": {
  8. "type": "object",
  9. "properties": {
  10. "text": {
  11. "type": "string",
  12. "description": "Message text to display to user"
  13. },
  14. "attachments": {
  15. "anyOf": [
  16. {"type": "string"},
  17. {"items": {"type": "string"}, "type": "array"}
  18. ],
  19. "description": "(Optional) List of attachments to show to user, can be file paths or URLs"
  20. }
  21. },
  22. "required": ["text"]
  23. }
  24. }
  25. },
  26. {
  27. "type": "function",
  28. "function": {
  29. "name": "message_ask_user",
  30. "description": "Ask user a question and wait for response. Use for requesting clarification, asking for confirmation, or gathering additional information.",
  31. "parameters": {
  32. "type": "object",
  33. "properties": {
  34. "text": {
  35. "type": "string",
  36. "description": "Question text to present to user"
  37. },
  38. "attachments": {
  39. "anyOf": [
  40. {"type": "string"},
  41. {"items": {"type": "string"}, "type": "array"}
  42. ],
  43. "description": "(Optional) List of question-related files or reference materials"
  44. },
  45. "suggest_user_takeover": {
  46. "type": "string",
  47. "enum": ["none", "browser"],
  48. "description": "(Optional) Suggested operation for user takeover"
  49. }
  50. },
  51. "required": ["text"]
  52. }
  53. }
  54. },
  55. {
  56. "type": "function",
  57. "function": {
  58. "name": "file_read",
  59. "description": "Read file content. Use for checking file contents, analyzing logs, or reading configuration files.",
  60. "parameters": {
  61. "type": "object",
  62. "properties": {
  63. "file": {
  64. "type": "string",
  65. "description": "Absolute path of the file to read"
  66. },
  67. "start_line": {
  68. "type": "integer",
  69. "description": "(Optional) Starting line to read from, 0-based"
  70. },
  71. "end_line": {
  72. "type": "integer",
  73. "description": "(Optional) Ending line number (exclusive)"
  74. },
  75. "sudo": {
  76. "type": "boolean",
  77. "description": "(Optional) Whether to use sudo privileges"
  78. }
  79. },
  80. "required": ["file"]
  81. }
  82. }
  83. },
  84. {
  85. "type": "function",
  86. "function": {
  87. "name": "file_write",
  88. "description": "Overwrite or append content to a file. Use for creating new files, appending content, or modifying existing files.",
  89. "parameters": {
  90. "type": "object",
  91. "properties": {
  92. "file": {
  93. "type": "string",
  94. "description": "Absolute path of the file to write to"
  95. },
  96. "content": {
  97. "type": "string",
  98. "description": "Text content to write"
  99. },
  100. "append": {
  101. "type": "boolean",
  102. "description": "(Optional) Whether to use append mode"
  103. },
  104. "leading_newline": {
  105. "type": "boolean",
  106. "description": "(Optional) Whether to add a leading newline"
  107. },
  108. "trailing_newline": {
  109. "type": "boolean",
  110. "description": "(Optional) Whether to add a trailing newline"
  111. },
  112. "sudo": {
  113. "type": "boolean",
  114. "description": "(Optional) Whether to use sudo privileges"
  115. }
  116. },
  117. "required": ["file", "content"]
  118. }
  119. }
  120. },
  121. {
  122. "type": "function",
  123. "function": {
  124. "name": "file_str_replace",
  125. "description": "Replace specified string in a file. Use for updating specific content in files or fixing errors in code.",
  126. "parameters": {
  127. "type": "object",
  128. "properties": {
  129. "file": {
  130. "type": "string",
  131. "description": "Absolute path of the file to perform replacement on"
  132. },
  133. "old_str": {
  134. "type": "string",
  135. "description": "Original string to be replaced"
  136. },
  137. "new_str": {
  138. "type": "string",
  139. "description": "New string to replace with"
  140. },
  141. "sudo": {
  142. "type": "boolean",
  143. "description": "(Optional) Whether to use sudo privileges"
  144. }
  145. },
  146. "required": ["file", "old_str", "new_str"]
  147. }
  148. }
  149. },
  150. {
  151. "type": "function",
  152. "function": {
  153. "name": "file_find_in_content",
  154. "description": "Search for matching text within file content. Use for finding specific content or patterns in files.",
  155. "parameters": {
  156. "type": "object",
  157. "properties": {
  158. "file": {
  159. "type": "string",
  160. "description": "Absolute path of the file to search within"
  161. },
  162. "regex": {
  163. "type": "string",
  164. "description": "Regular expression pattern to match"
  165. },
  166. "sudo": {
  167. "type": "boolean",
  168. "description": "(Optional) Whether to use sudo privileges"
  169. }
  170. },
  171. "required": ["file", "regex"]
  172. }
  173. }
  174. },
  175. {
  176. "type": "function",
  177. "function": {
  178. "name": "file_find_by_name",
  179. "description": "Find files by name pattern in specified directory. Use for locating files with specific naming patterns.",
  180. "parameters": {
  181. "type": "object",
  182. "properties": {
  183. "path": {
  184. "type": "string",
  185. "description": "Absolute path of directory to search"
  186. },
  187. "glob": {
  188. "type": "string",
  189. "description": "Filename pattern using glob syntax wildcards"
  190. }
  191. },
  192. "required": ["path", "glob"]
  193. }
  194. }
  195. },
  196. {
  197. "type": "function",
  198. "function": {
  199. "name": "shell_exec",
  200. "description": "Execute commands in a specified shell session. Use for running code, installing packages, or managing files.",
  201. "parameters": {
  202. "type": "object",
  203. "properties": {
  204. "id": {
  205. "type": "string",
  206. "description": "Unique identifier of the target shell session"
  207. },
  208. "exec_dir": {
  209. "type": "string",
  210. "description": "Working directory for command execution (must use absolute path)"
  211. },
  212. "command": {
  213. "type": "string",
  214. "description": "Shell command to execute"
  215. }
  216. },
  217. "required": ["id", "exec_dir", "command"]
  218. }
  219. }
  220. },
  221. {
  222. "type": "function",
  223. "function": {
  224. "name": "shell_view",
  225. "description": "View the content of a specified shell session. Use for checking command execution results or monitoring output.",
  226. "parameters": {
  227. "type": "object",
  228. "properties": {
  229. "id": {
  230. "type": "string",
  231. "description": "Unique identifier of the target shell session"
  232. }
  233. },
  234. "required": ["id"]
  235. }
  236. }
  237. },
  238. {
  239. "type": "function",
  240. "function": {
  241. "name": "shell_wait",
  242. "description": "Wait for the running process in a specified shell session to return. Use after running commands that require longer runtime.",
  243. "parameters": {
  244. "type": "object",
  245. "properties": {
  246. "id": {
  247. "type": "string",
  248. "description": "Unique identifier of the target shell session"
  249. },
  250. "seconds": {
  251. "type": "integer",
  252. "description": "Wait duration in seconds"
  253. }
  254. },
  255. "required": ["id"]
  256. }
  257. }
  258. },
  259. {
  260. "type": "function",
  261. "function": {
  262. "name": "shell_write_to_process",
  263. "description": "Write input to a running process in a specified shell session. Use for responding to interactive command prompts.",
  264. "parameters": {
  265. "type": "object",
  266. "properties": {
  267. "id": {
  268. "type": "string",
  269. "description": "Unique identifier of the target shell session"
  270. },
  271. "input": {
  272. "type": "string",
  273. "description": "Input content to write to the process"
  274. },
  275. "press_enter": {
  276. "type": "boolean",
  277. "description": "Whether to press Enter key after input"
  278. }
  279. },
  280. "required": ["id", "input", "press_enter"]
  281. }
  282. }
  283. },
  284. {
  285. "type": "function",
  286. "function": {
  287. "name": "shell_kill_process",
  288. "description": "Terminate a running process in a specified shell session. Use for stopping long-running processes or handling frozen commands.",
  289. "parameters": {
  290. "type": "object",
  291. "properties": {
  292. "id": {
  293. "type": "string",
  294. "description": "Unique identifier of the target shell session"
  295. }
  296. },
  297. "required": ["id"]
  298. }
  299. }
  300. },
  301. {
  302. "type": "function",
  303. "function": {
  304. "name": "browser_view",
  305. "description": "View content of the current browser page. Use for checking the latest state of previously opened pages.",
  306. "parameters": {
  307. "type": "object"
  308. }
  309. }
  310. },
  311. {
  312. "type": "function",
  313. "function": {
  314. "name": "browser_navigate",
  315. "description": "Navigate browser to specified URL. Use when accessing new pages is needed.",
  316. "parameters": {
  317. "type": "object",
  318. "properties": {
  319. "url": {
  320. "type": "string",
  321. "description": "Complete URL to visit. Must include protocol prefix."
  322. }
  323. },
  324. "required": ["url"]
  325. }
  326. }
  327. },
  328. {
  329. "type": "function",
  330. "function": {
  331. "name": "browser_restart",
  332. "description": "Restart browser and navigate to specified URL. Use when browser state needs to be reset.",
  333. "parameters": {
  334. "type": "object",
  335. "properties": {
  336. "url": {
  337. "type": "string",
  338. "description": "Complete URL to visit after restart. Must include protocol prefix."
  339. }
  340. },
  341. "required": ["url"]
  342. }
  343. }
  344. },
  345. {
  346. "type": "function",
  347. "function": {
  348. "name": "browser_click",
  349. "description": "Click on elements in the current browser page. Use when clicking page elements is needed.",
  350. "parameters": {
  351. "type": "object",
  352. "properties": {
  353. "index": {
  354. "type": "integer",
  355. "description": "(Optional) Index number of the element to click"
  356. },
  357. "coordinate_x": {
  358. "type": "number",
  359. "description": "(Optional) X coordinate of click position"
  360. },
  361. "coordinate_y": {
  362. "type": "number",
  363. "description": "(Optional) Y coordinate of click position"
  364. }
  365. }
  366. }
  367. }
  368. },
  369. {
  370. "type": "function",
  371. "function": {
  372. "name": "browser_input",
  373. "description": "Overwrite text in editable elements on the current browser page. Use when filling content in input fields.",
  374. "parameters": {
  375. "type": "object",
  376. "properties": {
  377. "index": {
  378. "type": "integer",
  379. "description": "(Optional) Index number of the element to overwrite text"
  380. },
  381. "coordinate_x": {
  382. "type": "number",
  383. "description": "(Optional) X coordinate of the element to overwrite text"
  384. },
  385. "coordinate_y": {
  386. "type": "number",
  387. "description": "(Optional) Y coordinate of the element to overwrite text"
  388. },
  389. "text": {
  390. "type": "string",
  391. "description": "Complete text content to overwrite"
  392. },
  393. "press_enter": {
  394. "type": "boolean",
  395. "description": "Whether to press Enter key after input"
  396. }
  397. },
  398. "required": ["text", "press_enter"]
  399. }
  400. }
  401. },
  402. {
  403. "type": "function",
  404. "function": {
  405. "name": "browser_move_mouse",
  406. "description": "Move cursor to specified position on the current browser page. Use when simulating user mouse movement.",
  407. "parameters": {
  408. "type": "object",
  409. "properties": {
  410. "coordinate_x": {
  411. "type": "number",
  412. "description": "X coordinate of target cursor position"
  413. },
  414. "coordinate_y": {
  415. "type": "number",
  416. "description": "Y coordinate of target cursor position"
  417. }
  418. },
  419. "required": ["coordinate_x", "coordinate_y"]
  420. }
  421. }
  422. },
  423. {
  424. "type": "function",
  425. "function": {
  426. "name": "browser_press_key",
  427. "description": "Simulate key press in the current browser page. Use when specific keyboard operations are needed.",
  428. "parameters": {
  429. "type": "object",
  430. "properties": {
  431. "key": {
  432. "type": "string",
  433. "description": "Key name to simulate (e.g., Enter, Tab, ArrowUp), supports key combinations (e.g., Control+Enter)."
  434. }
  435. },
  436. "required": ["key"]
  437. }
  438. }
  439. },
  440. {
  441. "type": "function",
  442. "function": {
  443. "name": "browser_select_option",
  444. "description": "Select specified option from dropdown list element in the current browser page. Use when selecting dropdown menu options.",
  445. "parameters": {
  446. "type": "object",
  447. "properties": {
  448. "index": {
  449. "type": "integer",
  450. "description": "Index number of the dropdown list element"
  451. },
  452. "option": {
  453. "type": "integer",
  454. "description": "Option number to select, starting from 0."
  455. }
  456. },
  457. "required": ["index", "option"]
  458. }
  459. }
  460. },
  461. {
  462. "type": "function",
  463. "function": {
  464. "name": "browser_scroll_up",
  465. "description": "Scroll up the current browser page. Use when viewing content above or returning to page top.",
  466. "parameters": {
  467. "type": "object",
  468. "properties": {
  469. "to_top": {
  470. "type": "boolean",
  471. "description": "(Optional) Whether to scroll directly to page top instead of one viewport up."
  472. }
  473. }
  474. }
  475. }
  476. },
  477. {
  478. "type": "function",
  479. "function": {
  480. "name": "browser_scroll_down",
  481. "description": "Scroll down the current browser page. Use when viewing content below or jumping to page bottom.",
  482. "parameters": {
  483. "type": "object",
  484. "properties": {
  485. "to_bottom": {
  486. "type": "boolean",
  487. "description": "(Optional) Whether to scroll directly to page bottom instead of one viewport down."
  488. }
  489. }
  490. }
  491. }
  492. },
  493. {
  494. "type": "function",
  495. "function": {
  496. "name": "browser_console_exec",
  497. "description": "Execute JavaScript code in browser console. Use when custom scripts need to be executed.",
  498. "parameters": {
  499. "type": "object",
  500. "properties": {
  501. "javascript": {
  502. "type": "string",
  503. "description": "JavaScript code to execute. Note that the runtime environment is browser console."
  504. }
  505. },
  506. "required": ["javascript"]
  507. }
  508. }
  509. },
  510. {
  511. "type": "function",
  512. "function": {
  513. "name": "browser_console_view",
  514. "description": "View browser console output. Use when checking JavaScript logs or debugging page errors.",
  515. "parameters": {
  516. "type": "object",
  517. "properties": {
  518. "max_lines": {
  519. "type": "integer",
  520. "description": "(Optional) Maximum number of log lines to return."
  521. }
  522. }
  523. }
  524. }
  525. },
  526. {
  527. "type": "function",
  528. "function": {
  529. "name": "info_search_web",
  530. "description": "Search web pages using search engine. Use for obtaining latest information or finding references.",
  531. "parameters": {
  532. "type": "object",
  533. "properties": {
  534. "query": {
  535. "type": "string",
  536. "description": "Search query in Google search style, using 3-5 keywords."
  537. },
  538. "date_range": {
  539. "type": "string",
  540. "enum": ["all", "past_hour", "past_day", "past_week", "past_month", "past_year"],
  541. "description": "(Optional) Time range filter for search results."
  542. }
  543. },
  544. "required": ["query"]
  545. }
  546. }
  547. },
  548. {
  549. "type": "function",
  550. "function": {
  551. "name": "deploy_expose_port",
  552. "description": "Expose specified local port for temporary public access. Use when providing temporary public access for services.",
  553. "parameters": {
  554. "type": "object",
  555. "properties": {
  556. "port": {
  557. "type": "integer",
  558. "description": "Local port number to expose"
  559. }
  560. },
  561. "required": ["port"]
  562. }
  563. }
  564. },
  565. {
  566. "type": "function",
  567. "function": {
  568. "name": "deploy_apply_deployment",
  569. "description": "Deploy website or application to public production environment. Use when deploying or updating static websites or applications.",
  570. "parameters": {
  571. "type": "object",
  572. "properties": {
  573. "type": {
  574. "type": "string",
  575. "enum": ["static", "nextjs"],
  576. "description": "Type of website or application to deploy."
  577. },
  578. "local_dir": {
  579. "type": "string",
  580. "description": "Absolute path of local directory to deploy."
  581. }
  582. },
  583. "required": ["type", "local_dir"]
  584. }
  585. }
  586. },
  587. {
  588. "type": "function",
  589. "function": {
  590. "name": "make_manus_page",
  591. "description": "Make a Manus Page from a local MDX file.",
  592. "parameters": {
  593. "type": "object",
  594. "properties": {
  595. "mdx_file_path": {
  596. "type": "string",
  597. "description": "Absolute path of the source MDX file"
  598. }
  599. },
  600. "required": ["mdx_file_path"]
  601. }
  602. }
  603. },
  604. {
  605. "type": "function",
  606. "function": {
  607. "name": "idle",
  608. "description": "A special tool to indicate you have completed all tasks and are about to enter idle state.",
  609. "parameters": {
  610. "type": "object"
  611. }
  612. }
  613. }
  614. ]