mia-code 0.2.0 → 0.3.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.
Files changed (410) hide show
  1. package/.miette/260321.md +1 -0
  2. package/.miette/260323.md +9 -0
  3. package/.miette/260331.md +2 -0
  4. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--d3417f2c-df12-4f0f-8a1b-d88e7968f822/d3417f2c-df12-4f0f-8a1b-d88e7968f822.md +63 -0
  5. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--e6c3fc5d-4a70-4523-ba7d-a3250da4c235/e6c3fc5d-4a70-4523-ba7d-a3250da4c235.md +72 -0
  6. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--efeb00a2-b17a-4d32-b1f0-b90c37a8d24e/efeb00a2-b17a-4d32-b1f0-b90c37a8d24e.md +62 -0
  7. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.json +302 -0
  8. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.md +149 -0
  9. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/AGENTS.md +31 -0
  10. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/meta-decomposition-3-children.md +67 -0
  11. package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/61f9dd4d-7aa6-45e6-a58b-e480b1aa6737--from-mia-openclaw-workspace.md +125 -0
  12. package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/STATUS.md +1 -0
  13. package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.json +177 -0
  14. package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.md +77 -0
  15. package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.json +222 -0
  16. package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.md +99 -0
  17. package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.json +111 -0
  18. package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.md +67 -0
  19. package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.json +349 -0
  20. package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.md +147 -0
  21. package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.json +118 -0
  22. package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.md +64 -0
  23. package/GUILLAUME.md +8 -0
  24. package/KINSHIP.md +9 -0
  25. package/MIA_CODE_ARCHITECTURE_REPORT.md +718 -0
  26. package/contextual_research/260119-MIA-CODE--98090899-8aff-4e11-9dc3-8b99466d1.md +1101 -0
  27. package/contextual_research/MIA.md +38 -0
  28. package/contextual_research/MIAWAPASCONE.md +59 -0
  29. package/contextual_research/MIETTE.md +38 -0
  30. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2504.00218v2.pdf +7483 -12
  31. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2505.00212v3.pdf +0 -0
  32. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/CONTENT.md +1014 -0
  33. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/DESIGN.gemini.md +242 -0
  34. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/INDEX.md +45 -0
  35. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.md +2025 -0
  36. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.pdf +7483 -12
  37. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.md +1755 -0
  38. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.pdf +0 -0
  39. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_12_decomposed_prompting.pdf +0 -0
  40. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_19_hugginggpt_planning.pdf +0 -0
  41. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.md +766 -0
  42. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.pdf +3431 -4
  43. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.md +260 -0
  44. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.pdf +0 -0
  45. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.md +558 -0
  46. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.pdf +0 -0
  47. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_34_hierarchical_multi_agent.pdf +0 -0
  48. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_5_open_intent_extraction.pdf +0 -0
  49. package/contextual_research/PODCAST.md +109 -0
  50. package/contextual_research/langchain-principles-roadmap.md +157 -0
  51. package/contextual_research/persona-to-narrative-character-inquiry_260201.md +50 -0
  52. package/dist/cli.js +35 -11
  53. package/dist/geminiHeadless.js +8 -2
  54. package/dist/index.js +2 -1
  55. package/dist/mcp/miaco-server.js +10 -1
  56. package/dist/mcp/miatel-server.js +10 -1
  57. package/dist/mcp/miawa-server.js +10 -1
  58. package/dist/mcp/utils.d.ts +6 -1
  59. package/dist/mcp/utils.js +24 -3
  60. package/dist/sessionStore.d.ts +8 -2
  61. package/dist/sessionStore.js +39 -3
  62. package/dist/types.d.ts +1 -0
  63. package/miaco/README.md +124 -0
  64. package/miaco/dist/commands/chart.d.ts +6 -0
  65. package/miaco/dist/commands/chart.d.ts.map +1 -0
  66. package/miaco/dist/commands/chart.js +222 -0
  67. package/miaco/dist/commands/chart.js.map +1 -0
  68. package/miaco/dist/commands/decompose.d.ts +6 -0
  69. package/miaco/dist/commands/decompose.d.ts.map +1 -0
  70. package/miaco/dist/commands/decompose.js +98 -0
  71. package/miaco/dist/commands/decompose.js.map +1 -0
  72. package/miaco/dist/commands/schema.d.ts +6 -0
  73. package/miaco/dist/commands/schema.d.ts.map +1 -0
  74. package/miaco/dist/commands/schema.js +66 -0
  75. package/miaco/dist/commands/schema.js.map +1 -0
  76. package/miaco/dist/commands/stc.d.ts +11 -0
  77. package/miaco/dist/commands/stc.d.ts.map +1 -0
  78. package/miaco/dist/commands/stc.js +590 -0
  79. package/miaco/dist/commands/stc.js.map +1 -0
  80. package/miaco/dist/commands/trace.d.ts +6 -0
  81. package/miaco/dist/commands/trace.d.ts.map +1 -0
  82. package/miaco/dist/commands/trace.js +83 -0
  83. package/miaco/dist/commands/trace.js.map +1 -0
  84. package/miaco/dist/commands/validate.d.ts +6 -0
  85. package/miaco/dist/commands/validate.d.ts.map +1 -0
  86. package/miaco/dist/commands/validate.js +58 -0
  87. package/miaco/dist/commands/validate.js.map +1 -0
  88. package/miaco/dist/decompose.d.ts +93 -0
  89. package/miaco/dist/decompose.d.ts.map +1 -0
  90. package/miaco/dist/decompose.js +562 -0
  91. package/miaco/dist/decompose.js.map +1 -0
  92. package/miaco/dist/index.d.ts +18 -0
  93. package/miaco/dist/index.d.ts.map +1 -0
  94. package/miaco/dist/index.js +83 -0
  95. package/miaco/dist/index.js.map +1 -0
  96. package/miaco/dist/storage.d.ts +60 -0
  97. package/miaco/dist/storage.d.ts.map +1 -0
  98. package/miaco/dist/storage.js +100 -0
  99. package/miaco/dist/storage.js.map +1 -0
  100. package/miaco/package-lock.json +4103 -0
  101. package/miaco/package.json +40 -0
  102. package/miaco/tsconfig.json +18 -0
  103. package/miaco/version-patch-commit-and-publish.sh +1 -0
  104. package/miatel/MISSION_251231.md +3 -0
  105. package/miatel/README.md +107 -0
  106. package/miatel/dist/commands/analyze.d.ts +6 -0
  107. package/miatel/dist/commands/analyze.d.ts.map +1 -0
  108. package/miatel/dist/commands/analyze.js +100 -0
  109. package/miatel/dist/commands/analyze.js.map +1 -0
  110. package/miatel/dist/commands/arc.d.ts +6 -0
  111. package/miatel/dist/commands/arc.d.ts.map +1 -0
  112. package/miatel/dist/commands/arc.js +71 -0
  113. package/miatel/dist/commands/arc.js.map +1 -0
  114. package/miatel/dist/commands/beat.d.ts +6 -0
  115. package/miatel/dist/commands/beat.d.ts.map +1 -0
  116. package/miatel/dist/commands/beat.js +165 -0
  117. package/miatel/dist/commands/beat.js.map +1 -0
  118. package/miatel/dist/commands/theme.d.ts +6 -0
  119. package/miatel/dist/commands/theme.d.ts.map +1 -0
  120. package/miatel/dist/commands/theme.js +54 -0
  121. package/miatel/dist/commands/theme.js.map +1 -0
  122. package/miatel/dist/index.d.ts +18 -0
  123. package/miatel/dist/index.d.ts.map +1 -0
  124. package/miatel/dist/index.js +80 -0
  125. package/miatel/dist/index.js.map +1 -0
  126. package/miatel/dist/storage.d.ts +55 -0
  127. package/miatel/dist/storage.d.ts.map +1 -0
  128. package/miatel/dist/storage.js +100 -0
  129. package/miatel/dist/storage.js.map +1 -0
  130. package/miatel/package-lock.json +4103 -0
  131. package/miatel/package.json +35 -0
  132. package/miatel/src/commands/analyze.ts +109 -0
  133. package/miatel/src/commands/arc.ts +78 -0
  134. package/miatel/src/commands/beat.ts +176 -0
  135. package/miatel/src/commands/theme.ts +60 -0
  136. package/miatel/src/index.ts +94 -0
  137. package/miatel/src/storage.ts +156 -0
  138. package/miatel/tsconfig.json +18 -0
  139. package/miawa/MISSION_251231.md +144 -0
  140. package/miawa/README.md +133 -0
  141. package/miawa/dist/commands/beat.d.ts +6 -0
  142. package/miawa/dist/commands/beat.d.ts.map +1 -0
  143. package/miawa/dist/commands/beat.js +69 -0
  144. package/miawa/dist/commands/beat.js.map +1 -0
  145. package/miawa/dist/commands/ceremony.d.ts +6 -0
  146. package/miawa/dist/commands/ceremony.d.ts.map +1 -0
  147. package/miawa/dist/commands/ceremony.js +239 -0
  148. package/miawa/dist/commands/ceremony.js.map +1 -0
  149. package/miawa/dist/commands/circle.d.ts +6 -0
  150. package/miawa/dist/commands/circle.d.ts.map +1 -0
  151. package/miawa/dist/commands/circle.js +75 -0
  152. package/miawa/dist/commands/circle.js.map +1 -0
  153. package/miawa/dist/commands/eva.d.ts +6 -0
  154. package/miawa/dist/commands/eva.d.ts.map +1 -0
  155. package/miawa/dist/commands/eva.js +73 -0
  156. package/miawa/dist/commands/eva.js.map +1 -0
  157. package/miawa/dist/commands/wound.d.ts +6 -0
  158. package/miawa/dist/commands/wound.d.ts.map +1 -0
  159. package/miawa/dist/commands/wound.js +74 -0
  160. package/miawa/dist/commands/wound.js.map +1 -0
  161. package/miawa/dist/index.d.ts +19 -0
  162. package/miawa/dist/index.d.ts.map +1 -0
  163. package/miawa/dist/index.js +91 -0
  164. package/miawa/dist/index.js.map +1 -0
  165. package/miawa/dist/storage.d.ts +73 -0
  166. package/miawa/dist/storage.d.ts.map +1 -0
  167. package/miawa/dist/storage.js +100 -0
  168. package/miawa/dist/storage.js.map +1 -0
  169. package/miawa/package-lock.json +4103 -0
  170. package/miawa/package.json +36 -0
  171. package/miawa/src/commands/beat.ts +74 -0
  172. package/miawa/src/commands/ceremony.ts +256 -0
  173. package/miawa/src/commands/circle.ts +83 -0
  174. package/miawa/src/commands/eva.ts +84 -0
  175. package/miawa/src/commands/wound.ts +79 -0
  176. package/miawa/src/index.ts +108 -0
  177. package/miawa/src/storage.ts +179 -0
  178. package/miawa/tsconfig.json +18 -0
  179. package/package.json +7 -5
  180. package/references/acp/CLAUDE.md +7 -0
  181. package/references/acp/agent-plan.md +84 -0
  182. package/references/acp/clients.md +31 -0
  183. package/references/acp/extensibility.md +137 -0
  184. package/references/acp/initialization.md +225 -0
  185. package/references/acp/prompt-turn.md +321 -0
  186. package/references/acp/proxy-chains.md +562 -0
  187. package/references/acp/schema.md +3171 -0
  188. package/references/acp/session-list.md +334 -0
  189. package/references/acp/session-modes.md +170 -0
  190. package/references/acp/slash-commands.md +99 -0
  191. package/references/acp/terminals.md +281 -0
  192. package/references/acp/tool-calls.md +311 -0
  193. package/references/acp/typescript.md +29 -0
  194. package/references/claude/agent-teams.md +399 -0
  195. package/references/claude/chrome.md +231 -0
  196. package/references/claude/headless.md +158 -0
  197. package/references/claude/hooks-guide.md +708 -0
  198. package/references/claude/output-styles.md +112 -0
  199. package/references/claude/plugins.md +432 -0
  200. package/references/claude/skills.md +693 -0
  201. package/references/claude/sub-agents.md +816 -0
  202. package/references/copilot/acp/agents.md +32 -0
  203. package/references/copilot/acp/architecture.md +37 -0
  204. package/references/copilot/acp/clients.md +31 -0
  205. package/references/copilot/acp/introduction.md +42 -0
  206. package/references/copilot/acp/registry.md +339 -0
  207. package/references/copilot/acp-server.md +117 -0
  208. package/references/copilot/create-copilot-instructions.md +840 -0
  209. package/references/langchain/llms.txt +833 -0
  210. package/references/langchain/python/agents.md +677 -0
  211. package/references/langchain/python/context-engineering.md +1195 -0
  212. package/references/langchain/python/human-in-the-loop.md +326 -0
  213. package/references/langchain/python/long-term-memory.md +168 -0
  214. package/references/langchain/python/mcp.md +949 -0
  215. package/references/langchain/python/multi-agents/custom-workflow.md +187 -0
  216. package/references/langchain/python/multi-agents/handoffs.md +436 -0
  217. package/references/langchain/python/multi-agents/overview.md +295 -0
  218. package/references/langchain/python/multi-agents/router.md +150 -0
  219. package/references/langchain/python/multi-agents/skills.md +92 -0
  220. package/references/langchain/python/multi-agents/subagents.md +486 -0
  221. package/references/langchain/python/retrieval.md +320 -0
  222. package/references/langchain/python/runtime.md +141 -0
  223. package/references/langchain/python/short-term-memory.md +658 -0
  224. package/references/langchain/python/structured-output.md +712 -0
  225. package/references/langfuse/llms.txt +148 -0
  226. package/references/langgraph/javascript/llms.txt +275 -0
  227. package/references/skills/home.md +259 -0
  228. package/references/skills/integrate-skills.md +103 -0
  229. package/references/skills/specification.md +254 -0
  230. package/references/skills/what-are-skills.md +74 -0
  231. package/rispecs/README.md +164 -0
  232. package/rispecs/_sync_/miadi-code/SPEC.md +313 -0
  233. package/rispecs/_sync_/miadi-code/STATUS.md +177 -0
  234. package/rispecs/_sync_/miadi-code/dashboard/SPEC.md +465 -0
  235. package/rispecs/_sync_/miadi-code/dashboard/STATUS.md +212 -0
  236. package/rispecs/_sync_/miadi-code/multiline-input/SPEC.md +232 -0
  237. package/rispecs/_sync_/miadi-code/multiline-input/STATUS.md +108 -0
  238. package/rispecs/_sync_/miadi-code/pde/SPEC.md +253 -0
  239. package/rispecs/_sync_/miadi-code/pde/STATUS.md +56 -0
  240. package/rispecs/_sync_/miadi-code/stc/SPEC.md +397 -0
  241. package/rispecs/_sync_/miadi-code/stc/STATUS.md +70 -0
  242. package/rispecs/ava-langstack/inquiry-routing-upgrade.spec.md +119 -0
  243. package/rispecs/borrowed_from_opencode/001-client-server-architecture.rispec.md +98 -0
  244. package/rispecs/borrowed_from_opencode/002-event-bus-system.rispec.md +125 -0
  245. package/rispecs/borrowed_from_opencode/003-instance-state-pattern.rispec.md +136 -0
  246. package/rispecs/borrowed_from_opencode/004-namespace-module-pattern.rispec.md +151 -0
  247. package/rispecs/borrowed_from_opencode/005-zod-schema-validation.rispec.md +139 -0
  248. package/rispecs/borrowed_from_opencode/006-named-error-system.rispec.md +155 -0
  249. package/rispecs/borrowed_from_opencode/007-structured-logging.rispec.md +138 -0
  250. package/rispecs/borrowed_from_opencode/008-lazy-initialization.rispec.md +127 -0
  251. package/rispecs/borrowed_from_opencode/009-multi-agent-system.rispec.md +97 -0
  252. package/rispecs/borrowed_from_opencode/010-agent-definition-config.rispec.md +135 -0
  253. package/rispecs/borrowed_from_opencode/011-agent-permission-rulesets.rispec.md +151 -0
  254. package/rispecs/borrowed_from_opencode/012-agent-prompt-templates.rispec.md +141 -0
  255. package/rispecs/borrowed_from_opencode/013-agent-generation.rispec.md +142 -0
  256. package/rispecs/borrowed_from_opencode/014-plan-build-mode-toggle.rispec.md +155 -0
  257. package/rispecs/borrowed_from_opencode/015-subagent-task-delegation.rispec.md +146 -0
  258. package/rispecs/borrowed_from_opencode/016-agent-model-selection.rispec.md +151 -0
  259. package/rispecs/borrowed_from_opencode/017-compaction-agent.rispec.md +150 -0
  260. package/rispecs/borrowed_from_opencode/018-session-persistence.rispec.md +125 -0
  261. package/rispecs/borrowed_from_opencode/019-session-compaction.rispec.md +132 -0
  262. package/rispecs/borrowed_from_opencode/020-session-forking.rispec.md +134 -0
  263. package/rispecs/borrowed_from_opencode/021-session-revert-snapshot.rispec.md +135 -0
  264. package/rispecs/borrowed_from_opencode/022-session-sharing.rispec.md +165 -0
  265. package/rispecs/borrowed_from_opencode/023-session-summary-diffs.rispec.md +165 -0
  266. package/rispecs/borrowed_from_opencode/024-child-sessions.rispec.md +164 -0
  267. package/rispecs/borrowed_from_opencode/025-session-title-generation.rispec.md +162 -0
  268. package/rispecs/borrowed_from_opencode/026-message-parts-model.rispec.md +201 -0
  269. package/rispecs/borrowed_from_opencode/027-streaming-message-deltas.rispec.md +212 -0
  270. package/rispecs/borrowed_from_opencode/028-multi-provider-architecture.rispec.md +184 -0
  271. package/rispecs/borrowed_from_opencode/029-provider-authentication.rispec.md +225 -0
  272. package/rispecs/borrowed_from_opencode/030-model-registry.rispec.md +222 -0
  273. package/rispecs/borrowed_from_opencode/031-cost-tracking.rispec.md +243 -0
  274. package/rispecs/borrowed_from_opencode/032-provider-transform-pipeline.rispec.md +282 -0
  275. package/rispecs/borrowed_from_opencode/033-provider-sdk-abstraction.rispec.md +338 -0
  276. package/rispecs/borrowed_from_opencode/034-tool-registry.rispec.md +110 -0
  277. package/rispecs/borrowed_from_opencode/035-tool-context-injection.rispec.md +155 -0
  278. package/rispecs/borrowed_from_opencode/036-tool-output-truncation.rispec.md +138 -0
  279. package/rispecs/borrowed_from_opencode/037-batch-tool.rispec.md +129 -0
  280. package/rispecs/borrowed_from_opencode/038-multi-edit-tool.rispec.md +167 -0
  281. package/rispecs/borrowed_from_opencode/039-apply-patch-tool.rispec.md +161 -0
  282. package/rispecs/borrowed_from_opencode/040-code-search-tool.rispec.md +143 -0
  283. package/rispecs/borrowed_from_opencode/041-web-fetch-tool.rispec.md +131 -0
  284. package/rispecs/borrowed_from_opencode/042-web-search-tool.rispec.md +159 -0
  285. package/rispecs/borrowed_from_opencode/043-todo-tool.rispec.md +156 -0
  286. package/rispecs/borrowed_from_opencode/044-plan-mode-tool.rispec.md +139 -0
  287. package/rispecs/borrowed_from_opencode/045-task-tool.rispec.md +146 -0
  288. package/rispecs/borrowed_from_opencode/046-question-tool.rispec.md +170 -0
  289. package/rispecs/borrowed_from_opencode/047-external-directory-tool.rispec.md +166 -0
  290. package/rispecs/borrowed_from_opencode/048-file-read-write-tools.rispec.md +205 -0
  291. package/rispecs/borrowed_from_opencode/049-lsp-server-management.rispec.md +104 -0
  292. package/rispecs/borrowed_from_opencode/050-lsp-hover-completion.rispec.md +102 -0
  293. package/rispecs/borrowed_from_opencode/051-lsp-diagnostics.rispec.md +86 -0
  294. package/rispecs/borrowed_from_opencode/052-lsp-root-detection.rispec.md +109 -0
  295. package/rispecs/borrowed_from_opencode/053-remote-mcp-servers.rispec.md +119 -0
  296. package/rispecs/borrowed_from_opencode/054-mcp-oauth-flow.rispec.md +107 -0
  297. package/rispecs/borrowed_from_opencode/055-mcp-tool-conversion.rispec.md +118 -0
  298. package/rispecs/borrowed_from_opencode/056-mcp-connection-monitoring.rispec.md +106 -0
  299. package/rispecs/borrowed_from_opencode/057-local-mcp-servers.rispec.md +116 -0
  300. package/rispecs/borrowed_from_opencode/058-rich-tui.rispec.md +108 -0
  301. package/rispecs/borrowed_from_opencode/059-streaming-display.rispec.md +116 -0
  302. package/rispecs/borrowed_from_opencode/060-permission-prompts.rispec.md +130 -0
  303. package/rispecs/borrowed_from_opencode/061-session-navigation.rispec.md +155 -0
  304. package/rispecs/borrowed_from_opencode/062-syntax-highlighting.rispec.md +151 -0
  305. package/rispecs/borrowed_from_opencode/063-keybinding-system.rispec.md +181 -0
  306. package/rispecs/borrowed_from_opencode/064-multi-level-config.rispec.md +155 -0
  307. package/rispecs/borrowed_from_opencode/065-jsonc-config.rispec.md +190 -0
  308. package/rispecs/borrowed_from_opencode/066-config-env-variables.rispec.md +153 -0
  309. package/rispecs/borrowed_from_opencode/067-config-deep-merging.rispec.md +178 -0
  310. package/rispecs/borrowed_from_opencode/068-remote-org-config.rispec.md +183 -0
  311. package/rispecs/borrowed_from_opencode/069-config-markdown-frontmatter.rispec.md +206 -0
  312. package/rispecs/borrowed_from_opencode/070-managed-config-directory.rispec.md +232 -0
  313. package/rispecs/borrowed_from_opencode/071-plugin-architecture.rispec.md +104 -0
  314. package/rispecs/borrowed_from_opencode/072-plugin-hooks.rispec.md +123 -0
  315. package/rispecs/borrowed_from_opencode/073-plugin-auto-install.rispec.md +115 -0
  316. package/rispecs/borrowed_from_opencode/074-permission-system.rispec.md +133 -0
  317. package/rispecs/borrowed_from_opencode/075-git-worktree-management.rispec.md +126 -0
  318. package/rispecs/borrowed_from_opencode/076-snapshot-system.rispec.md +124 -0
  319. package/rispecs/borrowed_from_opencode/077-snapshot-diff.rispec.md +117 -0
  320. package/rispecs/borrowed_from_opencode/078-snapshot-restore.rispec.md +128 -0
  321. package/rispecs/borrowed_from_opencode/079-worktree-branch-naming.rispec.md +122 -0
  322. package/rispecs/borrowed_from_opencode/080-sqlite-storage.rispec.md +134 -0
  323. package/rispecs/borrowed_from_opencode/081-database-migrations.rispec.md +148 -0
  324. package/rispecs/borrowed_from_opencode/082-database-transactions.rispec.md +138 -0
  325. package/rispecs/borrowed_from_opencode/083-deferred-effects.rispec.md +148 -0
  326. package/rispecs/borrowed_from_opencode/084-permission-rules.rispec.md +123 -0
  327. package/rispecs/borrowed_from_opencode/085-permission-glob-patterns.rispec.md +113 -0
  328. package/rispecs/borrowed_from_opencode/086-permission-merging.rispec.md +134 -0
  329. package/rispecs/borrowed_from_opencode/087-permission-modes.rispec.md +145 -0
  330. package/rispecs/borrowed_from_opencode/088-http-api-server.rispec.md +165 -0
  331. package/rispecs/borrowed_from_opencode/089-openapi-spec-generation.rispec.md +164 -0
  332. package/rispecs/borrowed_from_opencode/090-websocket-support.rispec.md +136 -0
  333. package/rispecs/borrowed_from_opencode/091-sse-streaming.rispec.md +168 -0
  334. package/rispecs/borrowed_from_opencode/092-mdns-discovery.rispec.md +145 -0
  335. package/rispecs/borrowed_from_opencode/093-javascript-sdk.rispec.md +200 -0
  336. package/rispecs/borrowed_from_opencode/094-skill-system.rispec.md +187 -0
  337. package/rispecs/borrowed_from_opencode/095-skill-discovery.rispec.md +182 -0
  338. package/rispecs/borrowed_from_opencode/096-desktop-remote-driving.rispec.md +175 -0
  339. package/rispecs/borrowed_from_opencode/INDEX.md +255 -0
  340. package/rispecs/core.rispecs.md +261 -0
  341. package/rispecs/engines.rispecs.md +241 -0
  342. package/rispecs/formatting.rispecs.md +252 -0
  343. package/rispecs/living-specifications.rispecs.md +361 -0
  344. package/rispecs/mcp.rispecs.md +197 -0
  345. package/rispecs/pde.rispecs.md +399 -0
  346. package/rispecs/pi-mono-envisionning/ENVISIONING.md +366 -0
  347. package/rispecs/pi-mono-envisionning/storytelling-horizon.rispecs.md +76 -0
  348. package/rispecs/pi-mono-envisionning/widget.rispecs.md +2 -0
  349. package/rispecs/relation-to-mcp-structural-thinking.kin.md +72 -0
  350. package/rispecs/research-for-better-framework/CLAUDE.md +7 -0
  351. package/rispecs/research-for-better-framework/survey-pi-openclaw-opencode-openhands.md +210 -0
  352. package/rispecs/session.rispecs.md +277 -0
  353. package/rispecs/stc.rispecs.md +138 -0
  354. package/rispecs/unifier.rispecs.md +317 -0
  355. package/scripts/LAUNCH--mcp-mia-code--testing--2603141315--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +2 -0
  356. package/scripts/RESUME--mia-code--mcps--260313--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +1 -0
  357. package/scripts/install-widget-in-home-pi-agent-extensions.sh +4 -0
  358. package/scripts/sample-decompose--2604011535-prompt.sh +1 -0
  359. package/skills/deep-search/AGENTS.md +17 -0
  360. package/skills/deep-search/SKILL.md +281 -0
  361. package/skills/deep-search/agent-templates.md +224 -0
  362. package/skills/deep-search/orchestration-patterns.md +95 -0
  363. package/skills/miaco-pde-inquiry-routing-deep-search/AGENTS.md +13 -0
  364. package/skills/miaco-pde-inquiry-routing-deep-search/SKILL.md +136 -0
  365. package/skills/miaco-pde-inquiry-routing-internal-external-relationship/AGENTS.md +4 -0
  366. package/skills/miaco-pde-inquiry-routing-internal-external-relationship/SKILL.md +157 -0
  367. package/skills/miaco-pde-inquiry-routing-local-qmd/AGENTS.md +42 -0
  368. package/skills/miaco-pde-inquiry-routing-local-qmd/SKILL.md +135 -0
  369. package/skills/qmd/AGENTS.md +3 -0
  370. package/skills/qmd/SKILL.md +144 -0
  371. package/skills/qmd/references/mcp-setup.md +102 -0
  372. package/skills/rise-pde-inquiry-session-multi-agents-v3/SKILL.md +234 -0
  373. package/skills/rise-pde-inquiry-session-multi-agents-v3/agent-templates.md +436 -0
  374. package/skills/rise-pde-inquiry-session-multi-agents-v3/orchestration-patterns.md +197 -0
  375. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/ceremonial-technology.md +102 -0
  376. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/creative-orientation.md +99 -0
  377. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/prompt-decomposition.md +73 -0
  378. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/rise-framework.md +74 -0
  379. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/structural-tension.md +82 -0
  380. package/src/cli.ts +35 -11
  381. package/src/geminiHeadless.ts +7 -2
  382. package/src/index.ts +2 -1
  383. package/src/mcp/miaco-server.ts +13 -1
  384. package/src/mcp/miatel-server.ts +13 -1
  385. package/src/mcp/miawa-server.ts +13 -1
  386. package/src/mcp/utils.ts +41 -8
  387. package/src/sessionStore.ts +44 -4
  388. package/src/types.ts +2 -1
  389. package/widget/mia-ceremony/README.md +36 -0
  390. package/widget/mia-ceremony/index.ts +143 -0
  391. package/widget/mia-interceptor/README.md +39 -0
  392. package/widget/mia-interceptor/index.ts +221 -0
  393. package/widget/mia-tools/README.md +37 -0
  394. package/widget/mia-tools/index.ts +569 -0
  395. package/widget/miette-echo/README.md +44 -0
  396. package/widget/miette-echo/index.ts +164 -0
  397. package/.claude/settings.local.json +0 -9
  398. package/.hch/issue_.env +0 -4
  399. package/.hch/issue_add__2601211715.json +0 -77
  400. package/.hch/issue_add__2601211715.md +0 -4
  401. package/.hch/issue_add__2602242020.json +0 -78
  402. package/.hch/issue_add__2602242020.md +0 -7
  403. package/.hch/issues.json +0 -2312
  404. package/.hch/issues.md +0 -30
  405. package/WS__mia-code__260214__IAIP_PDE.code-workspace +0 -29
  406. package/WS__mia-code__src332__260122.code-workspace +0 -23
  407. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/checkpoints/index.md +0 -6
  408. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/events.jsonl +0 -213
  409. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/plan.md +0 -243
  410. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/workspace.yaml +0 -5
@@ -0,0 +1,3171 @@
1
+ > ## Documentation Index
2
+ > Fetch the complete documentation index at: https://agentclientprotocol.com/llms.txt
3
+ > Use this file to discover all available pages before exploring further.
4
+
5
+ # Schema
6
+
7
+ > Schema definitions for the Agent Client Protocol
8
+
9
+ ## Agent
10
+
11
+ Defines the interface that all ACP-compliant agents must implement.
12
+
13
+ Agents are programs that use generative AI to autonomously modify code. They handle
14
+ requests from clients and execute tasks using language models and tools.
15
+
16
+ ### <span class="font-mono">authenticate</span>
17
+
18
+ Authenticates the client using the specified authentication method.
19
+
20
+ Called when the agent requires authentication before allowing session creation.
21
+ The client provides the authentication method ID that was advertised during initialization.
22
+
23
+ After successful authentication, the client can proceed to create sessions with
24
+ `new_session` without receiving an `auth_required` error.
25
+
26
+ See protocol docs: [Initialization](https://agentclientprotocol.com/protocol/initialization)
27
+
28
+ #### <span class="font-mono">AuthenticateRequest</span>
29
+
30
+ Request parameters for the authenticate method.
31
+
32
+ Specifies which authentication method to use.
33
+
34
+ **Type:** Object
35
+
36
+ **Properties:**
37
+
38
+ <ResponseField name="_meta" type={"object | null"}>
39
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
40
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
41
+ these keys.
42
+
43
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
44
+ </ResponseField>
45
+
46
+ <ResponseField name="methodId" type={"string"} required>
47
+ The ID of the authentication method to use.
48
+ Must be one of the methods advertised in the initialize response.
49
+ </ResponseField>
50
+
51
+ #### <span class="font-mono">AuthenticateResponse</span>
52
+
53
+ Response to the `authenticate` method.
54
+
55
+ **Type:** Object
56
+
57
+ **Properties:**
58
+
59
+ <ResponseField name="_meta" type={"object | null"}>
60
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
61
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
62
+ these keys.
63
+
64
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
65
+ </ResponseField>
66
+
67
+ ### <span class="font-mono">initialize</span>
68
+
69
+ Establishes the connection with a client and negotiates protocol capabilities.
70
+
71
+ This method is called once at the beginning of the connection to:
72
+
73
+ * Negotiate the protocol version to use
74
+ * Exchange capability information between client and agent
75
+ * Determine available authentication methods
76
+
77
+ The agent should respond with its supported protocol version and capabilities.
78
+
79
+ See protocol docs: [Initialization](https://agentclientprotocol.com/protocol/initialization)
80
+
81
+ #### <span class="font-mono">InitializeRequest</span>
82
+
83
+ Request parameters for the initialize method.
84
+
85
+ Sent by the client to establish connection and negotiate capabilities.
86
+
87
+ See protocol docs: [Initialization](https://agentclientprotocol.com/protocol/initialization)
88
+
89
+ **Type:** Object
90
+
91
+ **Properties:**
92
+
93
+ <ResponseField name="_meta" type={"object | null"}>
94
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
95
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
96
+ these keys.
97
+
98
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
99
+ </ResponseField>
100
+
101
+ <ResponseField name="clientCapabilities" type={<a href="#clientcapabilities">ClientCapabilities</a>}>
102
+ Capabilities supported by the client.
103
+
104
+ * Default: `{"fs":{"readTextFile":false,"writeTextFile":false},"terminal":false}`
105
+ </ResponseField>
106
+
107
+ <ResponseField name="clientInfo" type={<><span><a href="#implementation">Implementation</a></span><span> | null</span></>}>
108
+ Information about the Client name and version sent to the Agent.
109
+
110
+ Note: in future versions of the protocol, this will be required.
111
+ </ResponseField>
112
+
113
+ <ResponseField name="protocolVersion" type={<a href="#protocolversion">ProtocolVersion</a>} required>
114
+ The latest protocol version supported by the client.
115
+ </ResponseField>
116
+
117
+ #### <span class="font-mono">InitializeResponse</span>
118
+
119
+ Response to the `initialize` method.
120
+
121
+ Contains the negotiated protocol version and agent capabilities.
122
+
123
+ See protocol docs: [Initialization](https://agentclientprotocol.com/protocol/initialization)
124
+
125
+ **Type:** Object
126
+
127
+ **Properties:**
128
+
129
+ <ResponseField name="_meta" type={"object | null"}>
130
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
131
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
132
+ these keys.
133
+
134
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
135
+ </ResponseField>
136
+
137
+ <ResponseField name="agentCapabilities" type={<a href="#agentcapabilities">AgentCapabilities</a>}>
138
+ Capabilities supported by the agent.
139
+
140
+ * Default: `{"loadSession":false,"mcpCapabilities":{"http":false,"sse":false},"promptCapabilities":{"audio":false,"embeddedContext":false,"image":false},"sessionCapabilities":{}}`
141
+ </ResponseField>
142
+
143
+ <ResponseField name="agentInfo" type={<><span><a href="#implementation">Implementation</a></span><span> | null</span></>}>
144
+ Information about the Agent name and version sent to the Client.
145
+
146
+ Note: in future versions of the protocol, this will be required.
147
+ </ResponseField>
148
+
149
+ <ResponseField name="authMethods" type={<a href="#authmethod">AuthMethod[]</a>}>
150
+ Authentication methods supported by the agent.
151
+
152
+ * Default: `[]`
153
+ </ResponseField>
154
+
155
+ <ResponseField name="protocolVersion" type={<a href="#protocolversion">ProtocolVersion</a>} required>
156
+ The protocol version the client specified if supported by the agent,
157
+ or the latest protocol version supported by the agent.
158
+
159
+ The client should disconnect, if it doesn't support this version.
160
+ </ResponseField>
161
+
162
+ <a id="session-cancel" />
163
+
164
+ ### <span class="font-mono">session/cancel</span>
165
+
166
+ Cancels ongoing operations for a session.
167
+
168
+ This is a notification sent by the client to cancel an ongoing prompt turn.
169
+
170
+ Upon receiving this notification, the Agent SHOULD:
171
+
172
+ * Stop all language model requests as soon as possible
173
+ * Abort all tool call invocations in progress
174
+ * Send any pending `session/update` notifications
175
+ * Respond to the original `session/prompt` request with `StopReason::Cancelled`
176
+
177
+ See protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/prompt-turn#cancellation)
178
+
179
+ #### <span class="font-mono">CancelNotification</span>
180
+
181
+ Notification to cancel ongoing operations for a session.
182
+
183
+ See protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/prompt-turn#cancellation)
184
+
185
+ **Type:** Object
186
+
187
+ **Properties:**
188
+
189
+ <ResponseField name="_meta" type={"object | null"}>
190
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
191
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
192
+ these keys.
193
+
194
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
195
+ </ResponseField>
196
+
197
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
198
+ The ID of the session to cancel operations for.
199
+ </ResponseField>
200
+
201
+ <a id="session-load" />
202
+
203
+ ### <span class="font-mono">session/load</span>
204
+
205
+ Loads an existing session to resume a previous conversation.
206
+
207
+ This method is only available if the agent advertises the `loadSession` capability.
208
+
209
+ The agent should:
210
+
211
+ * Restore the session context and conversation history
212
+ * Connect to the specified MCP servers
213
+ * Stream the entire conversation history back to the client via notifications
214
+
215
+ See protocol docs: [Loading Sessions](https://agentclientprotocol.com/protocol/session-setup#loading-sessions)
216
+
217
+ #### <span class="font-mono">LoadSessionRequest</span>
218
+
219
+ Request parameters for loading an existing session.
220
+
221
+ Only available if the Agent supports the `loadSession` capability.
222
+
223
+ See protocol docs: [Loading Sessions](https://agentclientprotocol.com/protocol/session-setup#loading-sessions)
224
+
225
+ **Type:** Object
226
+
227
+ **Properties:**
228
+
229
+ <ResponseField name="_meta" type={"object | null"}>
230
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
231
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
232
+ these keys.
233
+
234
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
235
+ </ResponseField>
236
+
237
+ <ResponseField name="cwd" type={"string"} required>
238
+ The working directory for this session.
239
+ </ResponseField>
240
+
241
+ <ResponseField name="mcpServers" type={<a href="#mcpserver">McpServer[]</a>} required>
242
+ List of MCP servers to connect to for this session.
243
+ </ResponseField>
244
+
245
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
246
+ The ID of the session to load.
247
+ </ResponseField>
248
+
249
+ #### <span class="font-mono">LoadSessionResponse</span>
250
+
251
+ Response from loading an existing session.
252
+
253
+ **Type:** Object
254
+
255
+ **Properties:**
256
+
257
+ <ResponseField name="_meta" type={"object | null"}>
258
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
259
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
260
+ these keys.
261
+
262
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
263
+ </ResponseField>
264
+
265
+ <ResponseField name="modes" type={<><span><a href="#sessionmodestate">SessionModeState</a></span><span> | null</span></>}>
266
+ Initial mode state if supported by the Agent
267
+
268
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
269
+ </ResponseField>
270
+
271
+ <a id="session-new" />
272
+
273
+ ### <span class="font-mono">session/new</span>
274
+
275
+ Creates a new conversation session with the agent.
276
+
277
+ Sessions represent independent conversation contexts with their own history and state.
278
+
279
+ The agent should:
280
+
281
+ * Create a new session context
282
+ * Connect to any specified MCP servers
283
+ * Return a unique session ID for future requests
284
+
285
+ May return an `auth_required` error if the agent requires authentication.
286
+
287
+ See protocol docs: [Session Setup](https://agentclientprotocol.com/protocol/session-setup)
288
+
289
+ #### <span class="font-mono">NewSessionRequest</span>
290
+
291
+ Request parameters for creating a new session.
292
+
293
+ See protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/session-setup#creating-a-session)
294
+
295
+ **Type:** Object
296
+
297
+ **Properties:**
298
+
299
+ <ResponseField name="_meta" type={"object | null"}>
300
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
301
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
302
+ these keys.
303
+
304
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
305
+ </ResponseField>
306
+
307
+ <ResponseField name="cwd" type={"string"} required>
308
+ The working directory for this session. Must be an absolute path.
309
+ </ResponseField>
310
+
311
+ <ResponseField name="mcpServers" type={<a href="#mcpserver">McpServer[]</a>} required>
312
+ List of MCP (Model Context Protocol) servers the agent should connect to.
313
+ </ResponseField>
314
+
315
+ #### <span class="font-mono">NewSessionResponse</span>
316
+
317
+ Response from creating a new session.
318
+
319
+ See protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/session-setup#creating-a-session)
320
+
321
+ **Type:** Object
322
+
323
+ **Properties:**
324
+
325
+ <ResponseField name="_meta" type={"object | null"}>
326
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
327
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
328
+ these keys.
329
+
330
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
331
+ </ResponseField>
332
+
333
+ <ResponseField name="modes" type={<><span><a href="#sessionmodestate">SessionModeState</a></span><span> | null</span></>}>
334
+ Initial mode state if supported by the Agent
335
+
336
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
337
+ </ResponseField>
338
+
339
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
340
+ Unique identifier for the created session.
341
+
342
+ Used in all subsequent requests for this conversation.
343
+ </ResponseField>
344
+
345
+ <a id="session-prompt" />
346
+
347
+ ### <span class="font-mono">session/prompt</span>
348
+
349
+ Processes a user prompt within a session.
350
+
351
+ This method handles the whole lifecycle of a prompt:
352
+
353
+ * Receives user messages with optional context (files, images, etc.)
354
+ * Processes the prompt using language models
355
+ * Reports language model content and tool calls to the Clients
356
+ * Requests permission to run tools
357
+ * Executes any requested tool calls
358
+ * Returns when the turn is complete with a stop reason
359
+
360
+ See protocol docs: [Prompt Turn](https://agentclientprotocol.com/protocol/prompt-turn)
361
+
362
+ #### <span class="font-mono">PromptRequest</span>
363
+
364
+ Request parameters for sending a user prompt to the agent.
365
+
366
+ Contains the user's message and any additional context.
367
+
368
+ See protocol docs: [User Message](https://agentclientprotocol.com/protocol/prompt-turn#1-user-message)
369
+
370
+ **Type:** Object
371
+
372
+ **Properties:**
373
+
374
+ <ResponseField name="_meta" type={"object | null"}>
375
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
376
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
377
+ these keys.
378
+
379
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
380
+ </ResponseField>
381
+
382
+ <ResponseField name="prompt" type={<a href="#contentblock">ContentBlock[]</a>} required>
383
+ The blocks of content that compose the user's message.
384
+
385
+ As a baseline, the Agent MUST support `ContentBlock::Text` and `ContentBlock::ResourceLink`,
386
+ while other variants are optionally enabled via `PromptCapabilities`.
387
+
388
+ The Client MUST adapt its interface according to `PromptCapabilities`.
389
+
390
+ The client MAY include referenced pieces of context as either
391
+ `ContentBlock::Resource` or `ContentBlock::ResourceLink`.
392
+
393
+ When available, `ContentBlock::Resource` is preferred
394
+ as it avoids extra round-trips and allows the message to include
395
+ pieces of context from sources the agent may not have access to.
396
+ </ResponseField>
397
+
398
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
399
+ The ID of the session to send this user message to
400
+ </ResponseField>
401
+
402
+ #### <span class="font-mono">PromptResponse</span>
403
+
404
+ Response from processing a user prompt.
405
+
406
+ See protocol docs: [Check for Completion](https://agentclientprotocol.com/protocol/prompt-turn#4-check-for-completion)
407
+
408
+ **Type:** Object
409
+
410
+ **Properties:**
411
+
412
+ <ResponseField name="_meta" type={"object | null"}>
413
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
414
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
415
+ these keys.
416
+
417
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
418
+ </ResponseField>
419
+
420
+ <ResponseField name="stopReason" type={<a href="#stopreason">StopReason</a>} required>
421
+ Indicates why the agent stopped processing the turn.
422
+ </ResponseField>
423
+
424
+ <a id="session-set_mode" />
425
+
426
+ ### <span class="font-mono">session/set\_mode</span>
427
+
428
+ Sets the current mode for a session.
429
+
430
+ Allows switching between different agent modes (e.g., "ask", "architect", "code")
431
+ that affect system prompts, tool availability, and permission behaviors.
432
+
433
+ The mode must be one of the modes advertised in `availableModes` during session
434
+ creation or loading. Agents may also change modes autonomously and notify the
435
+ client via `current_mode_update` notifications.
436
+
437
+ This method can be called at any time during a session, whether the Agent is
438
+ idle or actively generating a response.
439
+
440
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
441
+
442
+ #### <span class="font-mono">SetSessionModeRequest</span>
443
+
444
+ Request parameters for setting a session mode.
445
+
446
+ **Type:** Object
447
+
448
+ **Properties:**
449
+
450
+ <ResponseField name="_meta" type={"object | null"}>
451
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
452
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
453
+ these keys.
454
+
455
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
456
+ </ResponseField>
457
+
458
+ <ResponseField name="modeId" type={<a href="#sessionmodeid">SessionModeId</a>} required>
459
+ The ID of the mode to set.
460
+ </ResponseField>
461
+
462
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
463
+ The ID of the session to set the mode for.
464
+ </ResponseField>
465
+
466
+ #### <span class="font-mono">SetSessionModeResponse</span>
467
+
468
+ Response to `session/set_mode` method.
469
+
470
+ **Type:** Object
471
+
472
+ **Properties:**
473
+
474
+ <ResponseField name="_meta" type={"object | null"} />
475
+
476
+ ## Client
477
+
478
+ Defines the interface that ACP-compliant clients must implement.
479
+
480
+ Clients are typically code editors (IDEs, text editors) that provide the interface
481
+ between users and AI agents. They manage the environment, handle user interactions,
482
+ and control access to resources.
483
+
484
+ <a id="fs-read_text_file" />
485
+
486
+ ### <span class="font-mono">fs/read\_text\_file</span>
487
+
488
+ Reads content from a text file in the client's file system.
489
+
490
+ Only available if the client advertises the `fs.readTextFile` capability.
491
+ Allows the agent to access file contents within the client's environment.
492
+
493
+ See protocol docs: [Client](https://agentclientprotocol.com/protocol/overview#client)
494
+
495
+ #### <span class="font-mono">ReadTextFileRequest</span>
496
+
497
+ Request to read content from a text file.
498
+
499
+ Only available if the client supports the `fs.readTextFile` capability.
500
+
501
+ **Type:** Object
502
+
503
+ **Properties:**
504
+
505
+ <ResponseField name="_meta" type={"object | null"}>
506
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
507
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
508
+ these keys.
509
+
510
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
511
+ </ResponseField>
512
+
513
+ <ResponseField name="limit" type={"integer | null"}>
514
+ Maximum number of lines to read.
515
+
516
+ * Minimum: `0`
517
+ </ResponseField>
518
+
519
+ <ResponseField name="line" type={"integer | null"}>
520
+ Line number to start reading from (1-based).
521
+
522
+ * Minimum: `0`
523
+ </ResponseField>
524
+
525
+ <ResponseField name="path" type={"string"} required>
526
+ Absolute path to the file to read.
527
+ </ResponseField>
528
+
529
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
530
+ The session ID for this request.
531
+ </ResponseField>
532
+
533
+ #### <span class="font-mono">ReadTextFileResponse</span>
534
+
535
+ Response containing the contents of a text file.
536
+
537
+ **Type:** Object
538
+
539
+ **Properties:**
540
+
541
+ <ResponseField name="_meta" type={"object | null"}>
542
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
543
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
544
+ these keys.
545
+
546
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
547
+ </ResponseField>
548
+
549
+ <ResponseField name="content" type={"string"} required />
550
+
551
+ <a id="fs-write_text_file" />
552
+
553
+ ### <span class="font-mono">fs/write\_text\_file</span>
554
+
555
+ Writes content to a text file in the client's file system.
556
+
557
+ Only available if the client advertises the `fs.writeTextFile` capability.
558
+ Allows the agent to create or modify files within the client's environment.
559
+
560
+ See protocol docs: [Client](https://agentclientprotocol.com/protocol/overview#client)
561
+
562
+ #### <span class="font-mono">WriteTextFileRequest</span>
563
+
564
+ Request to write content to a text file.
565
+
566
+ Only available if the client supports the `fs.writeTextFile` capability.
567
+
568
+ **Type:** Object
569
+
570
+ **Properties:**
571
+
572
+ <ResponseField name="_meta" type={"object | null"}>
573
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
574
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
575
+ these keys.
576
+
577
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
578
+ </ResponseField>
579
+
580
+ <ResponseField name="content" type={"string"} required>
581
+ The text content to write to the file.
582
+ </ResponseField>
583
+
584
+ <ResponseField name="path" type={"string"} required>
585
+ Absolute path to the file to write.
586
+ </ResponseField>
587
+
588
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
589
+ The session ID for this request.
590
+ </ResponseField>
591
+
592
+ #### <span class="font-mono">WriteTextFileResponse</span>
593
+
594
+ Response to `fs/write_text_file`
595
+
596
+ **Type:** Object
597
+
598
+ **Properties:**
599
+
600
+ <ResponseField name="_meta" type={"object | null"}>
601
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
602
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
603
+ these keys.
604
+
605
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
606
+ </ResponseField>
607
+
608
+ <a id="session-request_permission" />
609
+
610
+ ### <span class="font-mono">session/request\_permission</span>
611
+
612
+ Requests permission from the user for a tool call operation.
613
+
614
+ Called by the agent when it needs user authorization before executing
615
+ a potentially sensitive operation. The client should present the options
616
+ to the user and return their decision.
617
+
618
+ If the client cancels the prompt turn via `session/cancel`, it MUST
619
+ respond to this request with `RequestPermissionOutcome::Cancelled`.
620
+
621
+ See protocol docs: [Requesting Permission](https://agentclientprotocol.com/protocol/tool-calls#requesting-permission)
622
+
623
+ #### <span class="font-mono">RequestPermissionRequest</span>
624
+
625
+ Request for user permission to execute a tool call.
626
+
627
+ Sent when the agent needs authorization before performing a sensitive operation.
628
+
629
+ See protocol docs: [Requesting Permission](https://agentclientprotocol.com/protocol/tool-calls#requesting-permission)
630
+
631
+ **Type:** Object
632
+
633
+ **Properties:**
634
+
635
+ <ResponseField name="_meta" type={"object | null"}>
636
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
637
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
638
+ these keys.
639
+
640
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
641
+ </ResponseField>
642
+
643
+ <ResponseField name="options" type={<a href="#permissionoption">PermissionOption[]</a>} required>
644
+ Available permission options for the user to choose from.
645
+ </ResponseField>
646
+
647
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
648
+ The session ID for this request.
649
+ </ResponseField>
650
+
651
+ <ResponseField name="toolCall" type={<a href="#toolcallupdate">ToolCallUpdate</a>} required>
652
+ Details about the tool call requiring permission.
653
+ </ResponseField>
654
+
655
+ #### <span class="font-mono">RequestPermissionResponse</span>
656
+
657
+ Response to a permission request.
658
+
659
+ **Type:** Object
660
+
661
+ **Properties:**
662
+
663
+ <ResponseField name="_meta" type={"object | null"}>
664
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
665
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
666
+ these keys.
667
+
668
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
669
+ </ResponseField>
670
+
671
+ <ResponseField name="outcome" type={<a href="#requestpermissionoutcome">RequestPermissionOutcome</a>} required>
672
+ The user's decision on the permission request.
673
+ </ResponseField>
674
+
675
+ <a id="session-update" />
676
+
677
+ ### <span class="font-mono">session/update</span>
678
+
679
+ Handles session update notifications from the agent.
680
+
681
+ This is a notification endpoint (no response expected) that receives
682
+ real-time updates about session progress, including message chunks,
683
+ tool calls, and execution plans.
684
+
685
+ Note: Clients SHOULD continue accepting tool call updates even after
686
+ sending a `session/cancel` notification, as the agent may send final
687
+ updates before responding with the cancelled stop reason.
688
+
689
+ See protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/prompt-turn#3-agent-reports-output)
690
+
691
+ #### <span class="font-mono">SessionNotification</span>
692
+
693
+ Notification containing a session update from the agent.
694
+
695
+ Used to stream real-time progress and results during prompt processing.
696
+
697
+ See protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/prompt-turn#3-agent-reports-output)
698
+
699
+ **Type:** Object
700
+
701
+ **Properties:**
702
+
703
+ <ResponseField name="_meta" type={"object | null"}>
704
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
705
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
706
+ these keys.
707
+
708
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
709
+ </ResponseField>
710
+
711
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
712
+ The ID of the session this update pertains to.
713
+ </ResponseField>
714
+
715
+ <ResponseField name="update" type={<a href="#sessionupdate">SessionUpdate</a>} required>
716
+ The actual update content.
717
+ </ResponseField>
718
+
719
+ <a id="terminal-create" />
720
+
721
+ ### <span class="font-mono">terminal/create</span>
722
+
723
+ Executes a command in a new terminal
724
+
725
+ Only available if the `terminal` Client capability is set to `true`.
726
+
727
+ Returns a `TerminalId` that can be used with other terminal methods
728
+ to get the current output, wait for exit, and kill the command.
729
+
730
+ The `TerminalId` can also be used to embed the terminal in a tool call
731
+ by using the `ToolCallContent::Terminal` variant.
732
+
733
+ The Agent is responsible for releasing the terminal by using the `terminal/release`
734
+ method.
735
+
736
+ See protocol docs: [Terminals](https://agentclientprotocol.com/protocol/terminals)
737
+
738
+ #### <span class="font-mono">CreateTerminalRequest</span>
739
+
740
+ Request to create a new terminal and execute a command.
741
+
742
+ **Type:** Object
743
+
744
+ **Properties:**
745
+
746
+ <ResponseField name="_meta" type={"object | null"}>
747
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
748
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
749
+ these keys.
750
+
751
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
752
+ </ResponseField>
753
+
754
+ <ResponseField name="args" type={<><span>"string"</span><span>[]</span></>}>
755
+ Array of command arguments.
756
+ </ResponseField>
757
+
758
+ <ResponseField name="command" type={"string"} required>
759
+ The command to execute.
760
+ </ResponseField>
761
+
762
+ <ResponseField name="cwd" type={"string | null"}>
763
+ Working directory for the command (absolute path).
764
+ </ResponseField>
765
+
766
+ <ResponseField name="env" type={<a href="#envvariable">EnvVariable[]</a>}>
767
+ Environment variables for the command.
768
+ </ResponseField>
769
+
770
+ <ResponseField name="outputByteLimit" type={"integer | null"}>
771
+ Maximum number of output bytes to retain.
772
+
773
+ When the limit is exceeded, the Client truncates from the beginning of the output
774
+ to stay within the limit.
775
+
776
+ The Client MUST ensure truncation happens at a character boundary to maintain valid
777
+ string output, even if this means the retained output is slightly less than the
778
+ specified limit.
779
+
780
+ * Minimum: `0`
781
+ </ResponseField>
782
+
783
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
784
+ The session ID for this request.
785
+ </ResponseField>
786
+
787
+ #### <span class="font-mono">CreateTerminalResponse</span>
788
+
789
+ Response containing the ID of the created terminal.
790
+
791
+ **Type:** Object
792
+
793
+ **Properties:**
794
+
795
+ <ResponseField name="_meta" type={"object | null"}>
796
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
797
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
798
+ these keys.
799
+
800
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
801
+ </ResponseField>
802
+
803
+ <ResponseField name="terminalId" type={"string"} required>
804
+ The unique identifier for the created terminal.
805
+ </ResponseField>
806
+
807
+ <a id="terminal-kill" />
808
+
809
+ ### <span class="font-mono">terminal/kill</span>
810
+
811
+ Kills the terminal command without releasing the terminal
812
+
813
+ While `terminal/release` will also kill the command, this method will keep
814
+ the `TerminalId` valid so it can be used with other methods.
815
+
816
+ This method can be helpful when implementing command timeouts which terminate
817
+ the command as soon as elapsed, and then get the final output so it can be sent
818
+ to the model.
819
+
820
+ Note: `terminal/release` when `TerminalId` is no longer needed.
821
+
822
+ See protocol docs: [Terminals](https://agentclientprotocol.com/protocol/terminals)
823
+
824
+ #### <span class="font-mono">KillTerminalCommandRequest</span>
825
+
826
+ Request to kill a terminal command without releasing the terminal.
827
+
828
+ **Type:** Object
829
+
830
+ **Properties:**
831
+
832
+ <ResponseField name="_meta" type={"object | null"}>
833
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
834
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
835
+ these keys.
836
+
837
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
838
+ </ResponseField>
839
+
840
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
841
+ The session ID for this request.
842
+ </ResponseField>
843
+
844
+ <ResponseField name="terminalId" type={"string"} required>
845
+ The ID of the terminal to kill.
846
+ </ResponseField>
847
+
848
+ #### <span class="font-mono">KillTerminalCommandResponse</span>
849
+
850
+ Response to terminal/kill command method
851
+
852
+ **Type:** Object
853
+
854
+ **Properties:**
855
+
856
+ <ResponseField name="_meta" type={"object | null"}>
857
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
858
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
859
+ these keys.
860
+
861
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
862
+ </ResponseField>
863
+
864
+ <a id="terminal-output" />
865
+
866
+ ### <span class="font-mono">terminal/output</span>
867
+
868
+ Gets the terminal output and exit status
869
+
870
+ Returns the current content in the terminal without waiting for the command to exit.
871
+ If the command has already exited, the exit status is included.
872
+
873
+ See protocol docs: [Terminals](https://agentclientprotocol.com/protocol/terminals)
874
+
875
+ #### <span class="font-mono">TerminalOutputRequest</span>
876
+
877
+ Request to get the current output and status of a terminal.
878
+
879
+ **Type:** Object
880
+
881
+ **Properties:**
882
+
883
+ <ResponseField name="_meta" type={"object | null"}>
884
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
885
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
886
+ these keys.
887
+
888
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
889
+ </ResponseField>
890
+
891
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
892
+ The session ID for this request.
893
+ </ResponseField>
894
+
895
+ <ResponseField name="terminalId" type={"string"} required>
896
+ The ID of the terminal to get output from.
897
+ </ResponseField>
898
+
899
+ #### <span class="font-mono">TerminalOutputResponse</span>
900
+
901
+ Response containing the terminal output and exit status.
902
+
903
+ **Type:** Object
904
+
905
+ **Properties:**
906
+
907
+ <ResponseField name="_meta" type={"object | null"}>
908
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
909
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
910
+ these keys.
911
+
912
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
913
+ </ResponseField>
914
+
915
+ <ResponseField name="exitStatus" type={<><span><a href="#terminalexitstatus">TerminalExitStatus</a></span><span> | null</span></>}>
916
+ Exit status if the command has completed.
917
+ </ResponseField>
918
+
919
+ <ResponseField name="output" type={"string"} required>
920
+ The terminal output captured so far.
921
+ </ResponseField>
922
+
923
+ <ResponseField name="truncated" type={"boolean"} required>
924
+ Whether the output was truncated due to byte limits.
925
+ </ResponseField>
926
+
927
+ <a id="terminal-release" />
928
+
929
+ ### <span class="font-mono">terminal/release</span>
930
+
931
+ Releases a terminal
932
+
933
+ The command is killed if it hasn't exited yet. Use `terminal/wait_for_exit`
934
+ to wait for the command to exit before releasing the terminal.
935
+
936
+ After release, the `TerminalId` can no longer be used with other `terminal/*` methods,
937
+ but tool calls that already contain it, continue to display its output.
938
+
939
+ The `terminal/kill` method can be used to terminate the command without releasing
940
+ the terminal, allowing the Agent to call `terminal/output` and other methods.
941
+
942
+ See protocol docs: [Terminals](https://agentclientprotocol.com/protocol/terminals)
943
+
944
+ #### <span class="font-mono">ReleaseTerminalRequest</span>
945
+
946
+ Request to release a terminal and free its resources.
947
+
948
+ **Type:** Object
949
+
950
+ **Properties:**
951
+
952
+ <ResponseField name="_meta" type={"object | null"}>
953
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
954
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
955
+ these keys.
956
+
957
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
958
+ </ResponseField>
959
+
960
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
961
+ The session ID for this request.
962
+ </ResponseField>
963
+
964
+ <ResponseField name="terminalId" type={"string"} required>
965
+ The ID of the terminal to release.
966
+ </ResponseField>
967
+
968
+ #### <span class="font-mono">ReleaseTerminalResponse</span>
969
+
970
+ Response to terminal/release method
971
+
972
+ **Type:** Object
973
+
974
+ **Properties:**
975
+
976
+ <ResponseField name="_meta" type={"object | null"}>
977
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
978
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
979
+ these keys.
980
+
981
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
982
+ </ResponseField>
983
+
984
+ <a id="terminal-wait_for_exit" />
985
+
986
+ ### <span class="font-mono">terminal/wait\_for\_exit</span>
987
+
988
+ Waits for the terminal command to exit and return its exit status
989
+
990
+ See protocol docs: [Terminals](https://agentclientprotocol.com/protocol/terminals)
991
+
992
+ #### <span class="font-mono">WaitForTerminalExitRequest</span>
993
+
994
+ Request to wait for a terminal command to exit.
995
+
996
+ **Type:** Object
997
+
998
+ **Properties:**
999
+
1000
+ <ResponseField name="_meta" type={"object | null"}>
1001
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1002
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1003
+ these keys.
1004
+
1005
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1006
+ </ResponseField>
1007
+
1008
+ <ResponseField name="sessionId" type={<a href="#sessionid">SessionId</a>} required>
1009
+ The session ID for this request.
1010
+ </ResponseField>
1011
+
1012
+ <ResponseField name="terminalId" type={"string"} required>
1013
+ The ID of the terminal to wait for.
1014
+ </ResponseField>
1015
+
1016
+ #### <span class="font-mono">WaitForTerminalExitResponse</span>
1017
+
1018
+ Response containing the exit status of a terminal command.
1019
+
1020
+ **Type:** Object
1021
+
1022
+ **Properties:**
1023
+
1024
+ <ResponseField name="_meta" type={"object | null"}>
1025
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1026
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1027
+ these keys.
1028
+
1029
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1030
+ </ResponseField>
1031
+
1032
+ <ResponseField name="exitCode" type={"integer | null"}>
1033
+ The process exit code (may be null if terminated by signal).
1034
+
1035
+ * Minimum: `0`
1036
+ </ResponseField>
1037
+
1038
+ <ResponseField name="signal" type={"string | null"}>
1039
+ The signal that terminated the process (may be null if exited normally).
1040
+ </ResponseField>
1041
+
1042
+ ## <span class="font-mono">AgentCapabilities</span>
1043
+
1044
+ Capabilities supported by the agent.
1045
+
1046
+ Advertised during initialization to inform the client about
1047
+ available features and content types.
1048
+
1049
+ See protocol docs: [Agent Capabilities](https://agentclientprotocol.com/protocol/initialization#agent-capabilities)
1050
+
1051
+ **Type:** Object
1052
+
1053
+ **Properties:**
1054
+
1055
+ <ResponseField name="_meta" type={"object | null"}>
1056
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1057
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1058
+ these keys.
1059
+
1060
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1061
+ </ResponseField>
1062
+
1063
+ <ResponseField name="loadSession" type={"boolean"}>
1064
+ Whether the agent supports `session/load`.
1065
+
1066
+ * Default: `false`
1067
+ </ResponseField>
1068
+
1069
+ <ResponseField name="mcpCapabilities" type={<a href="#mcpcapabilities">McpCapabilities</a>}>
1070
+ MCP capabilities supported by the agent.
1071
+
1072
+ * Default: `{"http":false,"sse":false}`
1073
+ </ResponseField>
1074
+
1075
+ <ResponseField name="promptCapabilities" type={<a href="#promptcapabilities">PromptCapabilities</a>}>
1076
+ Prompt capabilities supported by the agent.
1077
+
1078
+ * Default: `{"audio":false,"embeddedContext":false,"image":false}`
1079
+ </ResponseField>
1080
+
1081
+ <ResponseField name="sessionCapabilities" type={<a href="#sessioncapabilities">SessionCapabilities</a>}>
1082
+ * Default: `{}`
1083
+ </ResponseField>
1084
+
1085
+ ## <span class="font-mono">Annotations</span>
1086
+
1087
+ Optional annotations for the client. The client can use annotations to inform how objects are used or displayed
1088
+
1089
+ **Type:** Object
1090
+
1091
+ **Properties:**
1092
+
1093
+ <ResponseField name="_meta" type={"object | null"}>
1094
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1095
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1096
+ these keys.
1097
+
1098
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1099
+ </ResponseField>
1100
+
1101
+ <ResponseField name="audience" type={<><span><a href="#role">Role[]</a></span><span> | null</span></>} />
1102
+
1103
+ <ResponseField name="lastModified" type={"string | null"} />
1104
+
1105
+ <ResponseField name="priority" type={"number | null"} />
1106
+
1107
+ ## <span class="font-mono">AudioContent</span>
1108
+
1109
+ Audio provided to or from an LLM.
1110
+
1111
+ **Type:** Object
1112
+
1113
+ **Properties:**
1114
+
1115
+ <ResponseField name="_meta" type={"object | null"}>
1116
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1117
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1118
+ these keys.
1119
+
1120
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1121
+ </ResponseField>
1122
+
1123
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1124
+
1125
+ <ResponseField name="data" type={"string"} required />
1126
+
1127
+ <ResponseField name="mimeType" type={"string"} required />
1128
+
1129
+ ## <span class="font-mono">AuthMethod</span>
1130
+
1131
+ Describes an available authentication method.
1132
+
1133
+ **Type:** Object
1134
+
1135
+ **Properties:**
1136
+
1137
+ <ResponseField name="_meta" type={"object | null"}>
1138
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1139
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1140
+ these keys.
1141
+
1142
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1143
+ </ResponseField>
1144
+
1145
+ <ResponseField name="description" type={"string | null"}>
1146
+ Optional description providing more details about this authentication method.
1147
+ </ResponseField>
1148
+
1149
+ <ResponseField name="id" type={"string"} required>
1150
+ Unique identifier for this authentication method.
1151
+ </ResponseField>
1152
+
1153
+ <ResponseField name="name" type={"string"} required>
1154
+ Human-readable name of the authentication method.
1155
+ </ResponseField>
1156
+
1157
+ ## <span class="font-mono">AvailableCommand</span>
1158
+
1159
+ Information about a command.
1160
+
1161
+ **Type:** Object
1162
+
1163
+ **Properties:**
1164
+
1165
+ <ResponseField name="_meta" type={"object | null"}>
1166
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1167
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1168
+ these keys.
1169
+
1170
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1171
+ </ResponseField>
1172
+
1173
+ <ResponseField name="description" type={"string"} required>
1174
+ Human-readable description of what the command does.
1175
+ </ResponseField>
1176
+
1177
+ <ResponseField name="input" type={<><span><a href="#availablecommandinput">AvailableCommandInput</a></span><span> | null</span></>}>
1178
+ Input for the command if required
1179
+ </ResponseField>
1180
+
1181
+ <ResponseField name="name" type={"string"} required>
1182
+ Command name (e.g., `create_plan`, `research_codebase`).
1183
+ </ResponseField>
1184
+
1185
+ ## <span class="font-mono">AvailableCommandInput</span>
1186
+
1187
+ The input specification for a command.
1188
+
1189
+ **Type:** Union
1190
+
1191
+ <ResponseField name="unstructured">
1192
+ All text that was typed after the command name is provided as input.
1193
+
1194
+ <Expandable title="Properties">
1195
+ <ResponseField name="_meta" type={"object | null"}>
1196
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1197
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1198
+ these keys.
1199
+
1200
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1201
+ </ResponseField>
1202
+
1203
+ <ResponseField name="hint" type={"string"} required>
1204
+ A hint to display when the input hasn't been provided yet
1205
+ </ResponseField>
1206
+ </Expandable>
1207
+ </ResponseField>
1208
+
1209
+ ## <span class="font-mono">AvailableCommandsUpdate</span>
1210
+
1211
+ Available commands are ready or have changed
1212
+
1213
+ **Type:** Object
1214
+
1215
+ **Properties:**
1216
+
1217
+ <ResponseField name="_meta" type={"object | null"}>
1218
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1219
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1220
+ these keys.
1221
+
1222
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1223
+ </ResponseField>
1224
+
1225
+ <ResponseField name="availableCommands" type={<a href="#availablecommand">AvailableCommand[]</a>} required>
1226
+ Commands the agent can execute
1227
+ </ResponseField>
1228
+
1229
+ ## <span class="font-mono">BlobResourceContents</span>
1230
+
1231
+ Binary resource contents.
1232
+
1233
+ **Type:** Object
1234
+
1235
+ **Properties:**
1236
+
1237
+ <ResponseField name="_meta" type={"object | null"}>
1238
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1239
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1240
+ these keys.
1241
+
1242
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1243
+ </ResponseField>
1244
+
1245
+ <ResponseField name="blob" type={"string"} required />
1246
+
1247
+ <ResponseField name="mimeType" type={"string | null"} />
1248
+
1249
+ <ResponseField name="uri" type={"string"} required />
1250
+
1251
+ ## <span class="font-mono">ClientCapabilities</span>
1252
+
1253
+ Capabilities supported by the client.
1254
+
1255
+ Advertised during initialization to inform the agent about
1256
+ available features and methods.
1257
+
1258
+ See protocol docs: [Client Capabilities](https://agentclientprotocol.com/protocol/initialization#client-capabilities)
1259
+
1260
+ **Type:** Object
1261
+
1262
+ **Properties:**
1263
+
1264
+ <ResponseField name="_meta" type={"object | null"}>
1265
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1266
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1267
+ these keys.
1268
+
1269
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1270
+ </ResponseField>
1271
+
1272
+ <ResponseField name="fs" type={<a href="#filesystemcapability">FileSystemCapability</a>}>
1273
+ File system capabilities supported by the client.
1274
+ Determines which file operations the agent can request.
1275
+
1276
+ * Default: `{"readTextFile":false,"writeTextFile":false}`
1277
+ </ResponseField>
1278
+
1279
+ <ResponseField name="terminal" type={"boolean"}>
1280
+ Whether the Client support all `terminal/*` methods.
1281
+
1282
+ * Default: `false`
1283
+ </ResponseField>
1284
+
1285
+ ## <span class="font-mono">Content</span>
1286
+
1287
+ Standard content block (text, images, resources).
1288
+
1289
+ **Type:** Object
1290
+
1291
+ **Properties:**
1292
+
1293
+ <ResponseField name="_meta" type={"object | null"}>
1294
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1295
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1296
+ these keys.
1297
+
1298
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1299
+ </ResponseField>
1300
+
1301
+ <ResponseField name="content" type={<a href="#contentblock">ContentBlock</a>} required>
1302
+ The actual content block.
1303
+ </ResponseField>
1304
+
1305
+ ## <span class="font-mono">ContentBlock</span>
1306
+
1307
+ Content blocks represent displayable information in the Agent Client Protocol.
1308
+
1309
+ They provide a structured way to handle various types of user-facing content—whether
1310
+ it's text from language models, images for analysis, or embedded resources for context.
1311
+
1312
+ Content blocks appear in:
1313
+
1314
+ * User prompts sent via `session/prompt`
1315
+ * Language model output streamed through `session/update` notifications
1316
+ * Progress updates and results from tool calls
1317
+
1318
+ This structure is compatible with the Model Context Protocol (MCP), enabling
1319
+ agents to seamlessly forward content from MCP tool outputs without transformation.
1320
+
1321
+ See protocol docs: [Content](https://agentclientprotocol.com/protocol/content)
1322
+
1323
+ **Type:** Union
1324
+
1325
+ <ResponseField name="text" type="object">
1326
+ Text content. May be plain text or formatted with Markdown.
1327
+
1328
+ All agents MUST support text content blocks in prompts.
1329
+ Clients SHOULD render this text as Markdown.
1330
+
1331
+ <Expandable title="Properties">
1332
+ <ResponseField name="_meta" type={"object | null"}>
1333
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1334
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1335
+ these keys.
1336
+
1337
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1338
+ </ResponseField>
1339
+
1340
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1341
+
1342
+ <ResponseField name="text" type={"string"} required />
1343
+
1344
+ <ResponseField name="type" type={"string"} required />
1345
+ </Expandable>
1346
+ </ResponseField>
1347
+
1348
+ <ResponseField name="image" type="object">
1349
+ Images for visual context or analysis.
1350
+
1351
+ Requires the `image` prompt capability when included in prompts.
1352
+
1353
+ <Expandable title="Properties">
1354
+ <ResponseField name="_meta" type={"object | null"}>
1355
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1356
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1357
+ these keys.
1358
+
1359
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1360
+ </ResponseField>
1361
+
1362
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1363
+
1364
+ <ResponseField name="data" type={"string"} required />
1365
+
1366
+ <ResponseField name="mimeType" type={"string"} required />
1367
+
1368
+ <ResponseField name="type" type={"string"} required />
1369
+
1370
+ <ResponseField name="uri" type={"string | null"} />
1371
+ </Expandable>
1372
+ </ResponseField>
1373
+
1374
+ <ResponseField name="audio" type="object">
1375
+ Audio data for transcription or analysis.
1376
+
1377
+ Requires the `audio` prompt capability when included in prompts.
1378
+
1379
+ <Expandable title="Properties">
1380
+ <ResponseField name="_meta" type={"object | null"}>
1381
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1382
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1383
+ these keys.
1384
+
1385
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1386
+ </ResponseField>
1387
+
1388
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1389
+
1390
+ <ResponseField name="data" type={"string"} required />
1391
+
1392
+ <ResponseField name="mimeType" type={"string"} required />
1393
+
1394
+ <ResponseField name="type" type={"string"} required />
1395
+ </Expandable>
1396
+ </ResponseField>
1397
+
1398
+ <ResponseField name="resource_link" type="object">
1399
+ References to resources that the agent can access.
1400
+
1401
+ All agents MUST support resource links in prompts.
1402
+
1403
+ <Expandable title="Properties">
1404
+ <ResponseField name="_meta" type={"object | null"}>
1405
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1406
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1407
+ these keys.
1408
+
1409
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1410
+ </ResponseField>
1411
+
1412
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1413
+
1414
+ <ResponseField name="description" type={"string | null"} />
1415
+
1416
+ <ResponseField name="mimeType" type={"string | null"} />
1417
+
1418
+ <ResponseField name="name" type={"string"} required />
1419
+
1420
+ <ResponseField name="size" type={"integer | null"} />
1421
+
1422
+ <ResponseField name="title" type={"string | null"} />
1423
+
1424
+ <ResponseField name="type" type={"string"} required />
1425
+
1426
+ <ResponseField name="uri" type={"string"} required />
1427
+ </Expandable>
1428
+ </ResponseField>
1429
+
1430
+ <ResponseField name="resource" type="object">
1431
+ Complete resource contents embedded directly in the message.
1432
+
1433
+ Preferred for including context as it avoids extra round-trips.
1434
+
1435
+ Requires the `embeddedContext` prompt capability when included in prompts.
1436
+
1437
+ <Expandable title="Properties">
1438
+ <ResponseField name="_meta" type={"object | null"}>
1439
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1440
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1441
+ these keys.
1442
+
1443
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1444
+ </ResponseField>
1445
+
1446
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1447
+
1448
+ <ResponseField name="resource" type={<a href="#embeddedresourceresource">EmbeddedResourceResource</a>} required />
1449
+
1450
+ <ResponseField name="type" type={"string"} required />
1451
+ </Expandable>
1452
+ </ResponseField>
1453
+
1454
+ ## <span class="font-mono">ContentChunk</span>
1455
+
1456
+ A streamed item of content
1457
+
1458
+ **Type:** Object
1459
+
1460
+ **Properties:**
1461
+
1462
+ <ResponseField name="_meta" type={"object | null"}>
1463
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1464
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1465
+ these keys.
1466
+
1467
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1468
+ </ResponseField>
1469
+
1470
+ <ResponseField name="content" type={<a href="#contentblock">ContentBlock</a>} required>
1471
+ A single item of content
1472
+ </ResponseField>
1473
+
1474
+ ## <span class="font-mono">CurrentModeUpdate</span>
1475
+
1476
+ The current mode of the session has changed
1477
+
1478
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
1479
+
1480
+ **Type:** Object
1481
+
1482
+ **Properties:**
1483
+
1484
+ <ResponseField name="_meta" type={"object | null"}>
1485
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1486
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1487
+ these keys.
1488
+
1489
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1490
+ </ResponseField>
1491
+
1492
+ <ResponseField name="currentModeId" type={<a href="#sessionmodeid">SessionModeId</a>} required>
1493
+ The ID of the current mode
1494
+ </ResponseField>
1495
+
1496
+ ## <span class="font-mono">Diff</span>
1497
+
1498
+ A diff representing file modifications.
1499
+
1500
+ Shows changes to files in a format suitable for display in the client UI.
1501
+
1502
+ See protocol docs: [Content](https://agentclientprotocol.com/protocol/tool-calls#content)
1503
+
1504
+ **Type:** Object
1505
+
1506
+ **Properties:**
1507
+
1508
+ <ResponseField name="_meta" type={"object | null"}>
1509
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1510
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1511
+ these keys.
1512
+
1513
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1514
+ </ResponseField>
1515
+
1516
+ <ResponseField name="newText" type={"string"} required>
1517
+ The new content after modification.
1518
+ </ResponseField>
1519
+
1520
+ <ResponseField name="oldText" type={"string | null"}>
1521
+ The original content (None for new files).
1522
+ </ResponseField>
1523
+
1524
+ <ResponseField name="path" type={"string"} required>
1525
+ The file path being modified.
1526
+ </ResponseField>
1527
+
1528
+ ## <span class="font-mono">EmbeddedResource</span>
1529
+
1530
+ The contents of a resource, embedded into a prompt or tool call result.
1531
+
1532
+ **Type:** Object
1533
+
1534
+ **Properties:**
1535
+
1536
+ <ResponseField name="_meta" type={"object | null"}>
1537
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1538
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1539
+ these keys.
1540
+
1541
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1542
+ </ResponseField>
1543
+
1544
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1545
+
1546
+ <ResponseField name="resource" type={<a href="#embeddedresourceresource">EmbeddedResourceResource</a>} required />
1547
+
1548
+ ## <span class="font-mono">EmbeddedResourceResource</span>
1549
+
1550
+ Resource content that can be embedded in a message.
1551
+
1552
+ **Type:** Union
1553
+
1554
+ <ResponseField name="TextResourceContents">
1555
+ {""}
1556
+
1557
+ <Expandable title="Properties">
1558
+ <ResponseField name="_meta" type={"object | null"}>
1559
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1560
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1561
+ these keys.
1562
+
1563
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1564
+ </ResponseField>
1565
+
1566
+ <ResponseField name="mimeType" type={"string | null"} />
1567
+
1568
+ <ResponseField name="text" type={"string"} required />
1569
+
1570
+ <ResponseField name="uri" type={"string"} required />
1571
+ </Expandable>
1572
+ </ResponseField>
1573
+
1574
+ <ResponseField name="BlobResourceContents">
1575
+ {""}
1576
+
1577
+ <Expandable title="Properties">
1578
+ <ResponseField name="_meta" type={"object | null"}>
1579
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1580
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1581
+ these keys.
1582
+
1583
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1584
+ </ResponseField>
1585
+
1586
+ <ResponseField name="blob" type={"string"} required />
1587
+
1588
+ <ResponseField name="mimeType" type={"string | null"} />
1589
+
1590
+ <ResponseField name="uri" type={"string"} required />
1591
+ </Expandable>
1592
+ </ResponseField>
1593
+
1594
+ ## <span class="font-mono">EnvVariable</span>
1595
+
1596
+ An environment variable to set when launching an MCP server.
1597
+
1598
+ **Type:** Object
1599
+
1600
+ **Properties:**
1601
+
1602
+ <ResponseField name="_meta" type={"object | null"}>
1603
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1604
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1605
+ these keys.
1606
+
1607
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1608
+ </ResponseField>
1609
+
1610
+ <ResponseField name="name" type={"string"} required>
1611
+ The name of the environment variable.
1612
+ </ResponseField>
1613
+
1614
+ <ResponseField name="value" type={"string"} required>
1615
+ The value to set for the environment variable.
1616
+ </ResponseField>
1617
+
1618
+ ## <span class="font-mono">Error</span>
1619
+
1620
+ JSON-RPC error object.
1621
+
1622
+ Represents an error that occurred during method execution, following the
1623
+ JSON-RPC 2.0 error object specification with optional additional data.
1624
+
1625
+ See protocol docs: [JSON-RPC Error Object](https://www.jsonrpc.org/specification#error_object)
1626
+
1627
+ **Type:** Object
1628
+
1629
+ **Properties:**
1630
+
1631
+ <ResponseField name="code" type={<a href="#errorcode">ErrorCode</a>} required>
1632
+ A number indicating the error type that occurred. This must be an integer as
1633
+ defined in the JSON-RPC specification.
1634
+ </ResponseField>
1635
+
1636
+ <ResponseField name="data" type={"object"}>
1637
+ Optional primitive or structured value that contains additional information
1638
+ about the error. This may include debugging information or context-specific
1639
+ details.
1640
+ </ResponseField>
1641
+
1642
+ <ResponseField name="message" type={"string"} required>
1643
+ A string providing a short description of the error. The message should be
1644
+ limited to a concise single sentence.
1645
+ </ResponseField>
1646
+
1647
+ ## <span class="font-mono">ErrorCode</span>
1648
+
1649
+ Predefined error codes for common JSON-RPC and ACP-specific errors.
1650
+
1651
+ These codes follow the JSON-RPC 2.0 specification for standard errors
1652
+ and use the reserved range (-32000 to -32099) for protocol-specific errors.
1653
+
1654
+ **Type:** Union
1655
+
1656
+ <ResponseField name="-32700" type="int32">
1657
+ **Parse error**: Invalid JSON was received by the server. An error occurred on
1658
+ the server while parsing the JSON text.
1659
+ </ResponseField>
1660
+
1661
+ <ResponseField name="-32600" type="int32">
1662
+ **Invalid request**: The JSON sent is not a valid Request object.
1663
+ </ResponseField>
1664
+
1665
+ <ResponseField name="-32601" type="int32">
1666
+ **Method not found**: The method does not exist or is not available.
1667
+ </ResponseField>
1668
+
1669
+ <ResponseField name="-32602" type="int32">
1670
+ **Invalid params**: Invalid method parameter(s).
1671
+ </ResponseField>
1672
+
1673
+ <ResponseField name="-32603" type="int32">
1674
+ **Internal error**: Internal JSON-RPC error. Reserved for
1675
+ implementation-defined server errors.
1676
+ </ResponseField>
1677
+
1678
+ <ResponseField name="-32000" type="int32">
1679
+ **Authentication required**: Authentication is required before this operation
1680
+ can be performed.
1681
+ </ResponseField>
1682
+
1683
+ <ResponseField name="-32002" type="int32">
1684
+ **Resource not found**: A given resource, such as a file, was not found.
1685
+ </ResponseField>
1686
+
1687
+ <ResponseField name="Other" type="int32">
1688
+ Other undefined error code.
1689
+ </ResponseField>
1690
+
1691
+ ## <span class="font-mono">ExtNotification</span>
1692
+
1693
+ Allows the Agent to send an arbitrary notification that is not part of the ACP spec.
1694
+ Extension notifications provide a way to send one-way messages for custom functionality
1695
+ while maintaining protocol compatibility.
1696
+
1697
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1698
+
1699
+ ## <span class="font-mono">ExtRequest</span>
1700
+
1701
+ Allows for sending an arbitrary request that is not part of the ACP spec.
1702
+ Extension methods provide a way to add custom functionality while maintaining
1703
+ protocol compatibility.
1704
+
1705
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1706
+
1707
+ ## <span class="font-mono">ExtResponse</span>
1708
+
1709
+ Allows for sending an arbitrary response to an `ExtRequest` that is not part of the ACP spec.
1710
+ Extension methods provide a way to add custom functionality while maintaining
1711
+ protocol compatibility.
1712
+
1713
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1714
+
1715
+ ## <span class="font-mono">FileSystemCapability</span>
1716
+
1717
+ Filesystem capabilities supported by the client.
1718
+ File system capabilities that a client may support.
1719
+
1720
+ See protocol docs: [FileSystem](https://agentclientprotocol.com/protocol/initialization#filesystem)
1721
+
1722
+ **Type:** Object
1723
+
1724
+ **Properties:**
1725
+
1726
+ <ResponseField name="_meta" type={"object | null"}>
1727
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1728
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1729
+ these keys.
1730
+
1731
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1732
+ </ResponseField>
1733
+
1734
+ <ResponseField name="readTextFile" type={"boolean"}>
1735
+ Whether the Client supports `fs/read_text_file` requests.
1736
+
1737
+ * Default: `false`
1738
+ </ResponseField>
1739
+
1740
+ <ResponseField name="writeTextFile" type={"boolean"}>
1741
+ Whether the Client supports `fs/write_text_file` requests.
1742
+
1743
+ * Default: `false`
1744
+ </ResponseField>
1745
+
1746
+ ## <span class="font-mono">HttpHeader</span>
1747
+
1748
+ An HTTP header to set when making requests to the MCP server.
1749
+
1750
+ **Type:** Object
1751
+
1752
+ **Properties:**
1753
+
1754
+ <ResponseField name="_meta" type={"object | null"}>
1755
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1756
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1757
+ these keys.
1758
+
1759
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1760
+ </ResponseField>
1761
+
1762
+ <ResponseField name="name" type={"string"} required>
1763
+ The name of the HTTP header.
1764
+ </ResponseField>
1765
+
1766
+ <ResponseField name="value" type={"string"} required>
1767
+ The value to set for the HTTP header.
1768
+ </ResponseField>
1769
+
1770
+ ## <span class="font-mono">ImageContent</span>
1771
+
1772
+ An image provided to or from an LLM.
1773
+
1774
+ **Type:** Object
1775
+
1776
+ **Properties:**
1777
+
1778
+ <ResponseField name="_meta" type={"object | null"}>
1779
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1780
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1781
+ these keys.
1782
+
1783
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1784
+ </ResponseField>
1785
+
1786
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
1787
+
1788
+ <ResponseField name="data" type={"string"} required />
1789
+
1790
+ <ResponseField name="mimeType" type={"string"} required />
1791
+
1792
+ <ResponseField name="uri" type={"string | null"} />
1793
+
1794
+ ## <span class="font-mono">Implementation</span>
1795
+
1796
+ Metadata about the implementation of the client or agent.
1797
+ Describes the name and version of an MCP implementation, with an optional
1798
+ title for UI representation.
1799
+
1800
+ **Type:** Object
1801
+
1802
+ **Properties:**
1803
+
1804
+ <ResponseField name="_meta" type={"object | null"}>
1805
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1806
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1807
+ these keys.
1808
+
1809
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1810
+ </ResponseField>
1811
+
1812
+ <ResponseField name="name" type={"string"} required>
1813
+ Intended for programmatic or logical use, but can be used as a display
1814
+ name fallback if title isn’t present.
1815
+ </ResponseField>
1816
+
1817
+ <ResponseField name="title" type={"string | null"}>
1818
+ Intended for UI and end-user contexts — optimized to be human-readable
1819
+ and easily understood.
1820
+
1821
+ If not provided, the name should be used for display.
1822
+ </ResponseField>
1823
+
1824
+ <ResponseField name="version" type={"string"} required>
1825
+ Version of the implementation. Can be displayed to the user or used
1826
+ for debugging or metrics purposes. (e.g. "1.0.0").
1827
+ </ResponseField>
1828
+
1829
+ ## <span class="font-mono">McpCapabilities</span>
1830
+
1831
+ MCP capabilities supported by the agent
1832
+
1833
+ **Type:** Object
1834
+
1835
+ **Properties:**
1836
+
1837
+ <ResponseField name="_meta" type={"object | null"}>
1838
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1839
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1840
+ these keys.
1841
+
1842
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1843
+ </ResponseField>
1844
+
1845
+ <ResponseField name="http" type={"boolean"}>
1846
+ Agent supports `McpServer::Http`.
1847
+
1848
+ * Default: `false`
1849
+ </ResponseField>
1850
+
1851
+ <ResponseField name="sse" type={"boolean"}>
1852
+ Agent supports `McpServer::Sse`.
1853
+
1854
+ * Default: `false`
1855
+ </ResponseField>
1856
+
1857
+ ## <span class="font-mono">McpServer</span>
1858
+
1859
+ Configuration for connecting to an MCP (Model Context Protocol) server.
1860
+
1861
+ MCP servers provide tools and context that the agent can use when
1862
+ processing prompts.
1863
+
1864
+ See protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)
1865
+
1866
+ **Type:** Union
1867
+
1868
+ <ResponseField name="http" type="object">
1869
+ HTTP transport configuration
1870
+
1871
+ Only available when the Agent capabilities indicate `mcp_capabilities.http` is `true`.
1872
+
1873
+ <Expandable title="Properties">
1874
+ <ResponseField name="_meta" type={"object | null"}>
1875
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1876
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1877
+ these keys.
1878
+
1879
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1880
+ </ResponseField>
1881
+
1882
+ <ResponseField name="headers" type={<a href="#httpheader">HttpHeader[]</a>} required>
1883
+ HTTP headers to set when making requests to the MCP server.
1884
+ </ResponseField>
1885
+
1886
+ <ResponseField name="name" type={"string"} required>
1887
+ Human-readable name identifying this MCP server.
1888
+ </ResponseField>
1889
+
1890
+ <ResponseField name="type" type={"string"} required />
1891
+
1892
+ <ResponseField name="url" type={"string"} required>
1893
+ URL to the MCP server.
1894
+ </ResponseField>
1895
+ </Expandable>
1896
+ </ResponseField>
1897
+
1898
+ <ResponseField name="sse" type="object">
1899
+ SSE transport configuration
1900
+
1901
+ Only available when the Agent capabilities indicate `mcp_capabilities.sse` is `true`.
1902
+
1903
+ <Expandable title="Properties">
1904
+ <ResponseField name="_meta" type={"object | null"}>
1905
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1906
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1907
+ these keys.
1908
+
1909
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1910
+ </ResponseField>
1911
+
1912
+ <ResponseField name="headers" type={<a href="#httpheader">HttpHeader[]</a>} required>
1913
+ HTTP headers to set when making requests to the MCP server.
1914
+ </ResponseField>
1915
+
1916
+ <ResponseField name="name" type={"string"} required>
1917
+ Human-readable name identifying this MCP server.
1918
+ </ResponseField>
1919
+
1920
+ <ResponseField name="type" type={"string"} required />
1921
+
1922
+ <ResponseField name="url" type={"string"} required>
1923
+ URL to the MCP server.
1924
+ </ResponseField>
1925
+ </Expandable>
1926
+ </ResponseField>
1927
+
1928
+ <ResponseField name="stdio">
1929
+ Stdio transport configuration
1930
+
1931
+ All Agents MUST support this transport.
1932
+
1933
+ <Expandable title="Properties">
1934
+ <ResponseField name="_meta" type={"object | null"}>
1935
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1936
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1937
+ these keys.
1938
+
1939
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1940
+ </ResponseField>
1941
+
1942
+ <ResponseField name="args" type={<><span>"string"</span><span>[]</span></>} required>
1943
+ Command-line arguments to pass to the MCP server.
1944
+ </ResponseField>
1945
+
1946
+ <ResponseField name="command" type={"string"} required>
1947
+ Path to the MCP server executable.
1948
+ </ResponseField>
1949
+
1950
+ <ResponseField name="env" type={<a href="#envvariable">EnvVariable[]</a>} required>
1951
+ Environment variables to set when launching the MCP server.
1952
+ </ResponseField>
1953
+
1954
+ <ResponseField name="name" type={"string"} required>
1955
+ Human-readable name identifying this MCP server.
1956
+ </ResponseField>
1957
+ </Expandable>
1958
+ </ResponseField>
1959
+
1960
+ ## <span class="font-mono">McpServerHttp</span>
1961
+
1962
+ HTTP transport configuration for MCP.
1963
+
1964
+ **Type:** Object
1965
+
1966
+ **Properties:**
1967
+
1968
+ <ResponseField name="_meta" type={"object | null"}>
1969
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1970
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1971
+ these keys.
1972
+
1973
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
1974
+ </ResponseField>
1975
+
1976
+ <ResponseField name="headers" type={<a href="#httpheader">HttpHeader[]</a>} required>
1977
+ HTTP headers to set when making requests to the MCP server.
1978
+ </ResponseField>
1979
+
1980
+ <ResponseField name="name" type={"string"} required>
1981
+ Human-readable name identifying this MCP server.
1982
+ </ResponseField>
1983
+
1984
+ <ResponseField name="url" type={"string"} required>
1985
+ URL to the MCP server.
1986
+ </ResponseField>
1987
+
1988
+ ## <span class="font-mono">McpServerSse</span>
1989
+
1990
+ SSE transport configuration for MCP.
1991
+
1992
+ **Type:** Object
1993
+
1994
+ **Properties:**
1995
+
1996
+ <ResponseField name="_meta" type={"object | null"}>
1997
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
1998
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
1999
+ these keys.
2000
+
2001
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2002
+ </ResponseField>
2003
+
2004
+ <ResponseField name="headers" type={<a href="#httpheader">HttpHeader[]</a>} required>
2005
+ HTTP headers to set when making requests to the MCP server.
2006
+ </ResponseField>
2007
+
2008
+ <ResponseField name="name" type={"string"} required>
2009
+ Human-readable name identifying this MCP server.
2010
+ </ResponseField>
2011
+
2012
+ <ResponseField name="url" type={"string"} required>
2013
+ URL to the MCP server.
2014
+ </ResponseField>
2015
+
2016
+ ## <span class="font-mono">McpServerStdio</span>
2017
+
2018
+ Stdio transport configuration for MCP.
2019
+
2020
+ **Type:** Object
2021
+
2022
+ **Properties:**
2023
+
2024
+ <ResponseField name="_meta" type={"object | null"}>
2025
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2026
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2027
+ these keys.
2028
+
2029
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2030
+ </ResponseField>
2031
+
2032
+ <ResponseField name="args" type={<><span>"string"</span><span>[]</span></>} required>
2033
+ Command-line arguments to pass to the MCP server.
2034
+ </ResponseField>
2035
+
2036
+ <ResponseField name="command" type={"string"} required>
2037
+ Path to the MCP server executable.
2038
+ </ResponseField>
2039
+
2040
+ <ResponseField name="env" type={<a href="#envvariable">EnvVariable[]</a>} required>
2041
+ Environment variables to set when launching the MCP server.
2042
+ </ResponseField>
2043
+
2044
+ <ResponseField name="name" type={"string"} required>
2045
+ Human-readable name identifying this MCP server.
2046
+ </ResponseField>
2047
+
2048
+ ## <span class="font-mono">PermissionOption</span>
2049
+
2050
+ An option presented to the user when requesting permission.
2051
+
2052
+ **Type:** Object
2053
+
2054
+ **Properties:**
2055
+
2056
+ <ResponseField name="_meta" type={"object | null"}>
2057
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2058
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2059
+ these keys.
2060
+
2061
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2062
+ </ResponseField>
2063
+
2064
+ <ResponseField name="kind" type={<a href="#permissionoptionkind">PermissionOptionKind</a>} required>
2065
+ Hint about the nature of this permission option.
2066
+ </ResponseField>
2067
+
2068
+ <ResponseField name="name" type={"string"} required>
2069
+ Human-readable label to display to the user.
2070
+ </ResponseField>
2071
+
2072
+ <ResponseField name="optionId" type={<a href="#permissionoptionid">PermissionOptionId</a>} required>
2073
+ Unique identifier for this permission option.
2074
+ </ResponseField>
2075
+
2076
+ ## <span class="font-mono">PermissionOptionId</span>
2077
+
2078
+ Unique identifier for a permission option.
2079
+
2080
+ **Type:** `string`
2081
+
2082
+ ## <span class="font-mono">PermissionOptionKind</span>
2083
+
2084
+ The type of permission option being presented to the user.
2085
+
2086
+ Helps clients choose appropriate icons and UI treatment.
2087
+
2088
+ **Type:** Union
2089
+
2090
+ <ResponseField name="allow_once" type="string">
2091
+ Allow this operation only this time.
2092
+ </ResponseField>
2093
+
2094
+ <ResponseField name="allow_always" type="string">
2095
+ Allow this operation and remember the choice.
2096
+ </ResponseField>
2097
+
2098
+ <ResponseField name="reject_once" type="string">
2099
+ Reject this operation only this time.
2100
+ </ResponseField>
2101
+
2102
+ <ResponseField name="reject_always" type="string">
2103
+ Reject this operation and remember the choice.
2104
+ </ResponseField>
2105
+
2106
+ ## <span class="font-mono">Plan</span>
2107
+
2108
+ An execution plan for accomplishing complex tasks.
2109
+
2110
+ Plans consist of multiple entries representing individual tasks or goals.
2111
+ Agents report plans to clients to provide visibility into their execution strategy.
2112
+ Plans can evolve during execution as the agent discovers new requirements or completes tasks.
2113
+
2114
+ See protocol docs: [Agent Plan](https://agentclientprotocol.com/protocol/agent-plan)
2115
+
2116
+ **Type:** Object
2117
+
2118
+ **Properties:**
2119
+
2120
+ <ResponseField name="_meta" type={"object | null"}>
2121
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2122
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2123
+ these keys.
2124
+
2125
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2126
+ </ResponseField>
2127
+
2128
+ <ResponseField name="entries" type={<a href="#planentry">PlanEntry[]</a>} required>
2129
+ The list of tasks to be accomplished.
2130
+
2131
+ When updating a plan, the agent must send a complete list of all entries
2132
+ with their current status. The client replaces the entire plan with each update.
2133
+ </ResponseField>
2134
+
2135
+ ## <span class="font-mono">PlanEntry</span>
2136
+
2137
+ A single entry in the execution plan.
2138
+
2139
+ Represents a task or goal that the assistant intends to accomplish
2140
+ as part of fulfilling the user's request.
2141
+ See protocol docs: [Plan Entries](https://agentclientprotocol.com/protocol/agent-plan#plan-entries)
2142
+
2143
+ **Type:** Object
2144
+
2145
+ **Properties:**
2146
+
2147
+ <ResponseField name="_meta" type={"object | null"}>
2148
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2149
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2150
+ these keys.
2151
+
2152
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2153
+ </ResponseField>
2154
+
2155
+ <ResponseField name="content" type={"string"} required>
2156
+ Human-readable description of what this task aims to accomplish.
2157
+ </ResponseField>
2158
+
2159
+ <ResponseField name="priority" type={<a href="#planentrypriority">PlanEntryPriority</a>} required>
2160
+ The relative importance of this task.
2161
+ Used to indicate which tasks are most critical to the overall goal.
2162
+ </ResponseField>
2163
+
2164
+ <ResponseField name="status" type={<a href="#planentrystatus">PlanEntryStatus</a>} required>
2165
+ Current execution status of this task.
2166
+ </ResponseField>
2167
+
2168
+ ## <span class="font-mono">PlanEntryPriority</span>
2169
+
2170
+ Priority levels for plan entries.
2171
+
2172
+ Used to indicate the relative importance or urgency of different
2173
+ tasks in the execution plan.
2174
+ See protocol docs: [Plan Entries](https://agentclientprotocol.com/protocol/agent-plan#plan-entries)
2175
+
2176
+ **Type:** Union
2177
+
2178
+ <ResponseField name="high" type="string">
2179
+ High priority task - critical to the overall goal.
2180
+ </ResponseField>
2181
+
2182
+ <ResponseField name="medium" type="string">
2183
+ Medium priority task - important but not critical.
2184
+ </ResponseField>
2185
+
2186
+ <ResponseField name="low" type="string">
2187
+ Low priority task - nice to have but not essential.
2188
+ </ResponseField>
2189
+
2190
+ ## <span class="font-mono">PlanEntryStatus</span>
2191
+
2192
+ Status of a plan entry in the execution flow.
2193
+
2194
+ Tracks the lifecycle of each task from planning through completion.
2195
+ See protocol docs: [Plan Entries](https://agentclientprotocol.com/protocol/agent-plan#plan-entries)
2196
+
2197
+ **Type:** Union
2198
+
2199
+ <ResponseField name="pending" type="string">
2200
+ The task has not started yet.
2201
+ </ResponseField>
2202
+
2203
+ <ResponseField name="in_progress" type="string">
2204
+ The task is currently being worked on.
2205
+ </ResponseField>
2206
+
2207
+ <ResponseField name="completed" type="string">
2208
+ The task has been successfully completed.
2209
+ </ResponseField>
2210
+
2211
+ ## <span class="font-mono">PromptCapabilities</span>
2212
+
2213
+ Prompt capabilities supported by the agent in `session/prompt` requests.
2214
+
2215
+ Baseline agent functionality requires support for `ContentBlock::Text`
2216
+ and `ContentBlock::ResourceLink` in prompt requests.
2217
+
2218
+ Other variants must be explicitly opted in to.
2219
+ Capabilities for different types of content in prompt requests.
2220
+
2221
+ Indicates which content types beyond the baseline (text and resource links)
2222
+ the agent can process.
2223
+
2224
+ See protocol docs: [Prompt Capabilities](https://agentclientprotocol.com/protocol/initialization#prompt-capabilities)
2225
+
2226
+ **Type:** Object
2227
+
2228
+ **Properties:**
2229
+
2230
+ <ResponseField name="_meta" type={"object | null"}>
2231
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2232
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2233
+ these keys.
2234
+
2235
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2236
+ </ResponseField>
2237
+
2238
+ <ResponseField name="audio" type={"boolean"}>
2239
+ Agent supports `ContentBlock::Audio`.
2240
+
2241
+ * Default: `false`
2242
+ </ResponseField>
2243
+
2244
+ <ResponseField name="embeddedContext" type={"boolean"}>
2245
+ Agent supports embedded context in `session/prompt` requests.
2246
+
2247
+ When enabled, the Client is allowed to include `ContentBlock::Resource`
2248
+ in prompt requests for pieces of context that are referenced in the message.
2249
+
2250
+ * Default: `false`
2251
+ </ResponseField>
2252
+
2253
+ <ResponseField name="image" type={"boolean"}>
2254
+ Agent supports `ContentBlock::Image`.
2255
+
2256
+ * Default: `false`
2257
+ </ResponseField>
2258
+
2259
+ ## <span class="font-mono">ProtocolVersion</span>
2260
+
2261
+ Protocol version identifier.
2262
+
2263
+ This version is only bumped for breaking changes.
2264
+ Non-breaking changes should be introduced via capabilities.
2265
+
2266
+ **Type:** `integer (uint16)`
2267
+
2268
+ | Constraint | Value |
2269
+ | ---------- | ------- |
2270
+ | Minimum | `0` |
2271
+ | Maximum | `65535` |
2272
+
2273
+ ## <span class="font-mono">RequestId</span>
2274
+
2275
+ JSON RPC Request Id
2276
+
2277
+ An identifier established by the Client that MUST contain a String, Number, or NULL value if included. If it is not included it is assumed to be a notification. The value SHOULD normally not be Null \[1] and Numbers SHOULD NOT contain fractional parts \[2]
2278
+
2279
+ The Server MUST reply with the same value in the Response object if included. This member is used to correlate the context between the two objects.
2280
+
2281
+ \[1] The use of Null as a value for the id member in a Request object is discouraged, because this specification uses a value of Null for Responses with an unknown id. Also, because JSON-RPC 1.0 uses an id value of Null for Notifications this could cause confusion in handling.
2282
+
2283
+ \[2] Fractional parts may be problematic, since many decimal fractions cannot be represented exactly as binary fractions.
2284
+
2285
+ **Type:** Union
2286
+
2287
+ <ResponseField name="null" type="null">
2288
+ {""}
2289
+ </ResponseField>
2290
+
2291
+ <ResponseField name="Number" type="int64">
2292
+ {""}
2293
+ </ResponseField>
2294
+
2295
+ <ResponseField name="Str" type="string">
2296
+ {""}
2297
+ </ResponseField>
2298
+
2299
+ ## <span class="font-mono">RequestPermissionOutcome</span>
2300
+
2301
+ The outcome of a permission request.
2302
+
2303
+ **Type:** Union
2304
+
2305
+ <ResponseField name="cancelled" type="object">
2306
+ The prompt turn was cancelled before the user responded.
2307
+
2308
+ When a client sends a `session/cancel` notification to cancel an ongoing
2309
+ prompt turn, it MUST respond to all pending `session/request_permission`
2310
+ requests with this `Cancelled` outcome.
2311
+
2312
+ See protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/prompt-turn#cancellation)
2313
+
2314
+ <Expandable title="Properties">
2315
+ <ResponseField name="outcome" type={"string"} required />
2316
+ </Expandable>
2317
+ </ResponseField>
2318
+
2319
+ <ResponseField name="selected" type="object">
2320
+ The user selected one of the provided options.
2321
+
2322
+ <Expandable title="Properties">
2323
+ <ResponseField name="_meta" type={"object | null"}>
2324
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2325
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2326
+ these keys.
2327
+
2328
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2329
+ </ResponseField>
2330
+
2331
+ <ResponseField name="optionId" type={<a href="#permissionoptionid">PermissionOptionId</a>} required>
2332
+ The ID of the option the user selected.
2333
+ </ResponseField>
2334
+
2335
+ <ResponseField name="outcome" type={"string"} required />
2336
+ </Expandable>
2337
+ </ResponseField>
2338
+
2339
+ ## <span class="font-mono">ResourceLink</span>
2340
+
2341
+ A resource that the server is capable of reading, included in a prompt or tool call result.
2342
+
2343
+ **Type:** Object
2344
+
2345
+ **Properties:**
2346
+
2347
+ <ResponseField name="_meta" type={"object | null"}>
2348
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2349
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2350
+ these keys.
2351
+
2352
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2353
+ </ResponseField>
2354
+
2355
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
2356
+
2357
+ <ResponseField name="description" type={"string | null"} />
2358
+
2359
+ <ResponseField name="mimeType" type={"string | null"} />
2360
+
2361
+ <ResponseField name="name" type={"string"} required />
2362
+
2363
+ <ResponseField name="size" type={"integer | null"} />
2364
+
2365
+ <ResponseField name="title" type={"string | null"} />
2366
+
2367
+ <ResponseField name="uri" type={"string"} required />
2368
+
2369
+ ## <span class="font-mono">Role</span>
2370
+
2371
+ The sender or recipient of messages and data in a conversation.
2372
+
2373
+ **Type:** Enumeration
2374
+
2375
+ | Value |
2376
+ | ------------- |
2377
+ | `"assistant"` |
2378
+ | `"user"` |
2379
+
2380
+ ## <span class="font-mono">SelectedPermissionOutcome</span>
2381
+
2382
+ The user selected one of the provided options.
2383
+
2384
+ **Type:** Object
2385
+
2386
+ **Properties:**
2387
+
2388
+ <ResponseField name="_meta" type={"object | null"}>
2389
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2390
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2391
+ these keys.
2392
+
2393
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2394
+ </ResponseField>
2395
+
2396
+ <ResponseField name="optionId" type={<a href="#permissionoptionid">PermissionOptionId</a>} required>
2397
+ The ID of the option the user selected.
2398
+ </ResponseField>
2399
+
2400
+ ## <span class="font-mono">SessionCapabilities</span>
2401
+
2402
+ Session capabilities supported by the agent.
2403
+
2404
+ As a baseline, all Agents **MUST** support `session/new`, `session/prompt`, `session/cancel`, and `session/update`.
2405
+
2406
+ Optionally, they **MAY** support other session methods and notifications by specifying additional capabilities.
2407
+
2408
+ Note: `session/load` is still handled by the top-level `load_session` capability. This will be unified in future versions of the protocol.
2409
+
2410
+ See protocol docs: [Session Capabilities](https://agentclientprotocol.com/protocol/initialization#session-capabilities)
2411
+
2412
+ **Type:** Object
2413
+
2414
+ **Properties:**
2415
+
2416
+ <ResponseField name="_meta" type={"object | null"}>
2417
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2418
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2419
+ these keys.
2420
+
2421
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2422
+ </ResponseField>
2423
+
2424
+ ## <span class="font-mono">SessionId</span>
2425
+
2426
+ A unique identifier for a conversation session between a client and agent.
2427
+
2428
+ Sessions maintain their own context, conversation history, and state,
2429
+ allowing multiple independent interactions with the same agent.
2430
+
2431
+ See protocol docs: [Session ID](https://agentclientprotocol.com/protocol/session-setup#session-id)
2432
+
2433
+ **Type:** `string`
2434
+
2435
+ ## <span class="font-mono">SessionMode</span>
2436
+
2437
+ A mode the agent can operate in.
2438
+
2439
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
2440
+
2441
+ **Type:** Object
2442
+
2443
+ **Properties:**
2444
+
2445
+ <ResponseField name="_meta" type={"object | null"}>
2446
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2447
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2448
+ these keys.
2449
+
2450
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2451
+ </ResponseField>
2452
+
2453
+ <ResponseField name="description" type={"string | null"} />
2454
+
2455
+ <ResponseField name="id" type={<a href="#sessionmodeid">SessionModeId</a>} required />
2456
+
2457
+ <ResponseField name="name" type={"string"} required />
2458
+
2459
+ ## <span class="font-mono">SessionModeId</span>
2460
+
2461
+ Unique identifier for a Session Mode.
2462
+
2463
+ **Type:** `string`
2464
+
2465
+ ## <span class="font-mono">SessionModeState</span>
2466
+
2467
+ The set of modes and the one currently active.
2468
+
2469
+ **Type:** Object
2470
+
2471
+ **Properties:**
2472
+
2473
+ <ResponseField name="_meta" type={"object | null"}>
2474
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2475
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2476
+ these keys.
2477
+
2478
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2479
+ </ResponseField>
2480
+
2481
+ <ResponseField name="availableModes" type={<a href="#sessionmode">SessionMode[]</a>} required>
2482
+ The set of modes that the Agent can operate in
2483
+ </ResponseField>
2484
+
2485
+ <ResponseField name="currentModeId" type={<a href="#sessionmodeid">SessionModeId</a>} required>
2486
+ The current mode the Agent is in.
2487
+ </ResponseField>
2488
+
2489
+ ## <span class="font-mono">SessionUpdate</span>
2490
+
2491
+ Different types of updates that can be sent during session processing.
2492
+
2493
+ These updates provide real-time feedback about the agent's progress.
2494
+
2495
+ See protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/prompt-turn#3-agent-reports-output)
2496
+
2497
+ **Type:** Union
2498
+
2499
+ <ResponseField name="user_message_chunk" type="object">
2500
+ A chunk of the user's message being streamed.
2501
+
2502
+ <Expandable title="Properties">
2503
+ <ResponseField name="_meta" type={"object | null"}>
2504
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2505
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2506
+ these keys.
2507
+
2508
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2509
+ </ResponseField>
2510
+
2511
+ <ResponseField name="content" type={<a href="#contentblock">ContentBlock</a>} required>
2512
+ A single item of content
2513
+ </ResponseField>
2514
+
2515
+ <ResponseField name="sessionUpdate" type={"string"} required />
2516
+ </Expandable>
2517
+ </ResponseField>
2518
+
2519
+ <ResponseField name="agent_message_chunk" type="object">
2520
+ A chunk of the agent's response being streamed.
2521
+
2522
+ <Expandable title="Properties">
2523
+ <ResponseField name="_meta" type={"object | null"}>
2524
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2525
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2526
+ these keys.
2527
+
2528
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2529
+ </ResponseField>
2530
+
2531
+ <ResponseField name="content" type={<a href="#contentblock">ContentBlock</a>} required>
2532
+ A single item of content
2533
+ </ResponseField>
2534
+
2535
+ <ResponseField name="sessionUpdate" type={"string"} required />
2536
+ </Expandable>
2537
+ </ResponseField>
2538
+
2539
+ <ResponseField name="agent_thought_chunk" type="object">
2540
+ A chunk of the agent's internal reasoning being streamed.
2541
+
2542
+ <Expandable title="Properties">
2543
+ <ResponseField name="_meta" type={"object | null"}>
2544
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2545
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2546
+ these keys.
2547
+
2548
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2549
+ </ResponseField>
2550
+
2551
+ <ResponseField name="content" type={<a href="#contentblock">ContentBlock</a>} required>
2552
+ A single item of content
2553
+ </ResponseField>
2554
+
2555
+ <ResponseField name="sessionUpdate" type={"string"} required />
2556
+ </Expandable>
2557
+ </ResponseField>
2558
+
2559
+ <ResponseField name="tool_call" type="object">
2560
+ Notification that a new tool call has been initiated.
2561
+
2562
+ <Expandable title="Properties">
2563
+ <ResponseField name="_meta" type={"object | null"}>
2564
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2565
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2566
+ these keys.
2567
+
2568
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2569
+ </ResponseField>
2570
+
2571
+ <ResponseField name="content" type={<a href="#toolcallcontent">ToolCallContent[]</a>}>
2572
+ Content produced by the tool call.
2573
+ </ResponseField>
2574
+
2575
+ <ResponseField name="kind" type={<a href="#toolkind">ToolKind</a>}>
2576
+ The category of tool being invoked.
2577
+ Helps clients choose appropriate icons and UI treatment.
2578
+ </ResponseField>
2579
+
2580
+ <ResponseField name="locations" type={<a href="#toolcalllocation">ToolCallLocation[]</a>}>
2581
+ File locations affected by this tool call.
2582
+ Enables "follow-along" features in clients.
2583
+ </ResponseField>
2584
+
2585
+ <ResponseField name="rawInput" type={"object"}>
2586
+ Raw input parameters sent to the tool.
2587
+ </ResponseField>
2588
+
2589
+ <ResponseField name="rawOutput" type={"object"}>
2590
+ Raw output returned by the tool.
2591
+ </ResponseField>
2592
+
2593
+ <ResponseField name="sessionUpdate" type={"string"} required />
2594
+
2595
+ <ResponseField name="status" type={<a href="#toolcallstatus">ToolCallStatus</a>}>
2596
+ Current execution status of the tool call.
2597
+ </ResponseField>
2598
+
2599
+ <ResponseField name="title" type={"string"} required>
2600
+ Human-readable title describing what the tool is doing.
2601
+ </ResponseField>
2602
+
2603
+ <ResponseField name="toolCallId" type={<a href="#toolcallid">ToolCallId</a>} required>
2604
+ Unique identifier for this tool call within the session.
2605
+ </ResponseField>
2606
+ </Expandable>
2607
+ </ResponseField>
2608
+
2609
+ <ResponseField name="tool_call_update" type="object">
2610
+ Update on the status or results of a tool call.
2611
+
2612
+ <Expandable title="Properties">
2613
+ <ResponseField name="_meta" type={"object | null"}>
2614
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2615
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2616
+ these keys.
2617
+
2618
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2619
+ </ResponseField>
2620
+
2621
+ <ResponseField name="content" type={<><span><a href="#toolcallcontent">ToolCallContent[]</a></span><span> | null</span></>}>
2622
+ Replace the content collection.
2623
+ </ResponseField>
2624
+
2625
+ <ResponseField name="kind" type={<><span><a href="#toolkind">ToolKind</a></span><span> | null</span></>}>
2626
+ Update the tool kind.
2627
+ </ResponseField>
2628
+
2629
+ <ResponseField name="locations" type={<><span><a href="#toolcalllocation">ToolCallLocation[]</a></span><span> | null</span></>}>
2630
+ Replace the locations collection.
2631
+ </ResponseField>
2632
+
2633
+ <ResponseField name="rawInput" type={"object"}>
2634
+ Update the raw input.
2635
+ </ResponseField>
2636
+
2637
+ <ResponseField name="rawOutput" type={"object"}>
2638
+ Update the raw output.
2639
+ </ResponseField>
2640
+
2641
+ <ResponseField name="sessionUpdate" type={"string"} required />
2642
+
2643
+ <ResponseField name="status" type={<><span><a href="#toolcallstatus">ToolCallStatus</a></span><span> | null</span></>}>
2644
+ Update the execution status.
2645
+ </ResponseField>
2646
+
2647
+ <ResponseField name="title" type={"string | null"}>
2648
+ Update the human-readable title.
2649
+ </ResponseField>
2650
+
2651
+ <ResponseField name="toolCallId" type={<a href="#toolcallid">ToolCallId</a>} required>
2652
+ The ID of the tool call being updated.
2653
+ </ResponseField>
2654
+ </Expandable>
2655
+ </ResponseField>
2656
+
2657
+ <ResponseField name="plan" type="object">
2658
+ The agent's execution plan for complex tasks.
2659
+ See protocol docs: [Agent Plan](https://agentclientprotocol.com/protocol/agent-plan)
2660
+
2661
+ <Expandable title="Properties">
2662
+ <ResponseField name="_meta" type={"object | null"}>
2663
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2664
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2665
+ these keys.
2666
+
2667
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2668
+ </ResponseField>
2669
+
2670
+ <ResponseField name="entries" type={<a href="#planentry">PlanEntry[]</a>} required>
2671
+ The list of tasks to be accomplished.
2672
+
2673
+ When updating a plan, the agent must send a complete list of all entries
2674
+ with their current status. The client replaces the entire plan with each update.
2675
+ </ResponseField>
2676
+
2677
+ <ResponseField name="sessionUpdate" type={"string"} required />
2678
+ </Expandable>
2679
+ </ResponseField>
2680
+
2681
+ <ResponseField name="available_commands_update" type="object">
2682
+ Available commands are ready or have changed
2683
+
2684
+ <Expandable title="Properties">
2685
+ <ResponseField name="_meta" type={"object | null"}>
2686
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2687
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2688
+ these keys.
2689
+
2690
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2691
+ </ResponseField>
2692
+
2693
+ <ResponseField name="availableCommands" type={<a href="#availablecommand">AvailableCommand[]</a>} required>
2694
+ Commands the agent can execute
2695
+ </ResponseField>
2696
+
2697
+ <ResponseField name="sessionUpdate" type={"string"} required />
2698
+ </Expandable>
2699
+ </ResponseField>
2700
+
2701
+ <ResponseField name="current_mode_update" type="object">
2702
+ The current mode of the session has changed
2703
+
2704
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
2705
+
2706
+ <Expandable title="Properties">
2707
+ <ResponseField name="_meta" type={"object | null"}>
2708
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2709
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2710
+ these keys.
2711
+
2712
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2713
+ </ResponseField>
2714
+
2715
+ <ResponseField name="currentModeId" type={<a href="#sessionmodeid">SessionModeId</a>} required>
2716
+ The ID of the current mode
2717
+ </ResponseField>
2718
+
2719
+ <ResponseField name="sessionUpdate" type={"string"} required />
2720
+ </Expandable>
2721
+ </ResponseField>
2722
+
2723
+ ## <span class="font-mono">StopReason</span>
2724
+
2725
+ Reasons why an agent stops processing a prompt turn.
2726
+
2727
+ See protocol docs: [Stop Reasons](https://agentclientprotocol.com/protocol/prompt-turn#stop-reasons)
2728
+
2729
+ **Type:** Union
2730
+
2731
+ <ResponseField name="end_turn" type="string">
2732
+ The turn ended successfully.
2733
+ </ResponseField>
2734
+
2735
+ <ResponseField name="max_tokens" type="string">
2736
+ The turn ended because the agent reached the maximum number of tokens.
2737
+ </ResponseField>
2738
+
2739
+ <ResponseField name="max_turn_requests" type="string">
2740
+ The turn ended because the agent reached the maximum number of allowed agent
2741
+ requests between user turns.
2742
+ </ResponseField>
2743
+
2744
+ <ResponseField name="refusal" type="string">
2745
+ The turn ended because the agent refused to continue. The user prompt and
2746
+ everything that comes after it won't be included in the next prompt, so this
2747
+ should be reflected in the UI.
2748
+ </ResponseField>
2749
+
2750
+ <ResponseField name="cancelled" type="string">
2751
+ The turn was cancelled by the client via `session/cancel`.
2752
+
2753
+ This stop reason MUST be returned when the client sends a `session/cancel`
2754
+ notification, even if the cancellation causes exceptions in underlying operations.
2755
+ Agents should catch these exceptions and return this semantically meaningful
2756
+ response to confirm successful cancellation.
2757
+ </ResponseField>
2758
+
2759
+ ## <span class="font-mono">Terminal</span>
2760
+
2761
+ Embed a terminal created with `terminal/create` by its id.
2762
+
2763
+ The terminal must be added before calling `terminal/release`.
2764
+
2765
+ See protocol docs: [Terminal](https://agentclientprotocol.com/protocol/terminals)
2766
+
2767
+ **Type:** Object
2768
+
2769
+ **Properties:**
2770
+
2771
+ <ResponseField name="_meta" type={"object | null"}>
2772
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2773
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2774
+ these keys.
2775
+
2776
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2777
+ </ResponseField>
2778
+
2779
+ <ResponseField name="terminalId" type={"string"} required />
2780
+
2781
+ ## <span class="font-mono">TerminalExitStatus</span>
2782
+
2783
+ Exit status of a terminal command.
2784
+
2785
+ **Type:** Object
2786
+
2787
+ **Properties:**
2788
+
2789
+ <ResponseField name="_meta" type={"object | null"}>
2790
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2791
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2792
+ these keys.
2793
+
2794
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2795
+ </ResponseField>
2796
+
2797
+ <ResponseField name="exitCode" type={"integer | null"}>
2798
+ The process exit code (may be null if terminated by signal).
2799
+
2800
+ * Minimum: `0`
2801
+ </ResponseField>
2802
+
2803
+ <ResponseField name="signal" type={"string | null"}>
2804
+ The signal that terminated the process (may be null if exited normally).
2805
+ </ResponseField>
2806
+
2807
+ ## <span class="font-mono">TextContent</span>
2808
+
2809
+ Text provided to or from an LLM.
2810
+
2811
+ **Type:** Object
2812
+
2813
+ **Properties:**
2814
+
2815
+ <ResponseField name="_meta" type={"object | null"}>
2816
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2817
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2818
+ these keys.
2819
+
2820
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2821
+ </ResponseField>
2822
+
2823
+ <ResponseField name="annotations" type={<><span><a href="#annotations">Annotations</a></span><span> | null</span></>} />
2824
+
2825
+ <ResponseField name="text" type={"string"} required />
2826
+
2827
+ ## <span class="font-mono">TextResourceContents</span>
2828
+
2829
+ Text-based resource contents.
2830
+
2831
+ **Type:** Object
2832
+
2833
+ **Properties:**
2834
+
2835
+ <ResponseField name="_meta" type={"object | null"}>
2836
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2837
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2838
+ these keys.
2839
+
2840
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2841
+ </ResponseField>
2842
+
2843
+ <ResponseField name="mimeType" type={"string | null"} />
2844
+
2845
+ <ResponseField name="text" type={"string"} required />
2846
+
2847
+ <ResponseField name="uri" type={"string"} required />
2848
+
2849
+ ## <span class="font-mono">ToolCall</span>
2850
+
2851
+ Represents a tool call that the language model has requested.
2852
+
2853
+ Tool calls are actions that the agent executes on behalf of the language model,
2854
+ such as reading files, executing code, or fetching data from external sources.
2855
+
2856
+ See protocol docs: [Tool Calls](https://agentclientprotocol.com/protocol/tool-calls)
2857
+
2858
+ **Type:** Object
2859
+
2860
+ **Properties:**
2861
+
2862
+ <ResponseField name="_meta" type={"object | null"}>
2863
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2864
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2865
+ these keys.
2866
+
2867
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2868
+ </ResponseField>
2869
+
2870
+ <ResponseField name="content" type={<a href="#toolcallcontent">ToolCallContent[]</a>}>
2871
+ Content produced by the tool call.
2872
+ </ResponseField>
2873
+
2874
+ <ResponseField name="kind" type={<a href="#toolkind">ToolKind</a>}>
2875
+ The category of tool being invoked.
2876
+ Helps clients choose appropriate icons and UI treatment.
2877
+ </ResponseField>
2878
+
2879
+ <ResponseField name="locations" type={<a href="#toolcalllocation">ToolCallLocation[]</a>}>
2880
+ File locations affected by this tool call.
2881
+ Enables "follow-along" features in clients.
2882
+ </ResponseField>
2883
+
2884
+ <ResponseField name="rawInput" type={"object"}>
2885
+ Raw input parameters sent to the tool.
2886
+ </ResponseField>
2887
+
2888
+ <ResponseField name="rawOutput" type={"object"}>
2889
+ Raw output returned by the tool.
2890
+ </ResponseField>
2891
+
2892
+ <ResponseField name="status" type={<a href="#toolcallstatus">ToolCallStatus</a>}>
2893
+ Current execution status of the tool call.
2894
+ </ResponseField>
2895
+
2896
+ <ResponseField name="title" type={"string"} required>
2897
+ Human-readable title describing what the tool is doing.
2898
+ </ResponseField>
2899
+
2900
+ <ResponseField name="toolCallId" type={<a href="#toolcallid">ToolCallId</a>} required>
2901
+ Unique identifier for this tool call within the session.
2902
+ </ResponseField>
2903
+
2904
+ ## <span class="font-mono">ToolCallContent</span>
2905
+
2906
+ Content produced by a tool call.
2907
+
2908
+ Tool calls can produce different types of content including
2909
+ standard content blocks (text, images) or file diffs.
2910
+
2911
+ See protocol docs: [Content](https://agentclientprotocol.com/protocol/tool-calls#content)
2912
+
2913
+ **Type:** Union
2914
+
2915
+ <ResponseField name="content" type="object">
2916
+ Standard content block (text, images, resources).
2917
+
2918
+ <Expandable title="Properties">
2919
+ <ResponseField name="_meta" type={"object | null"}>
2920
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2921
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2922
+ these keys.
2923
+
2924
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2925
+ </ResponseField>
2926
+
2927
+ <ResponseField name="content" type={<a href="#contentblock">ContentBlock</a>} required>
2928
+ The actual content block.
2929
+ </ResponseField>
2930
+
2931
+ <ResponseField name="type" type={"string"} required />
2932
+ </Expandable>
2933
+ </ResponseField>
2934
+
2935
+ <ResponseField name="diff" type="object">
2936
+ File modification shown as a diff.
2937
+
2938
+ <Expandable title="Properties">
2939
+ <ResponseField name="_meta" type={"object | null"}>
2940
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2941
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2942
+ these keys.
2943
+
2944
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2945
+ </ResponseField>
2946
+
2947
+ <ResponseField name="newText" type={"string"} required>
2948
+ The new content after modification.
2949
+ </ResponseField>
2950
+
2951
+ <ResponseField name="oldText" type={"string | null"}>
2952
+ The original content (None for new files).
2953
+ </ResponseField>
2954
+
2955
+ <ResponseField name="path" type={"string"} required>
2956
+ The file path being modified.
2957
+ </ResponseField>
2958
+
2959
+ <ResponseField name="type" type={"string"} required />
2960
+ </Expandable>
2961
+ </ResponseField>
2962
+
2963
+ <ResponseField name="terminal" type="object">
2964
+ Embed a terminal created with `terminal/create` by its id.
2965
+
2966
+ The terminal must be added before calling `terminal/release`.
2967
+
2968
+ See protocol docs: [Terminal](https://agentclientprotocol.com/protocol/terminals)
2969
+
2970
+ <Expandable title="Properties">
2971
+ <ResponseField name="_meta" type={"object | null"}>
2972
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
2973
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
2974
+ these keys.
2975
+
2976
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
2977
+ </ResponseField>
2978
+
2979
+ <ResponseField name="terminalId" type={"string"} required />
2980
+
2981
+ <ResponseField name="type" type={"string"} required />
2982
+ </Expandable>
2983
+ </ResponseField>
2984
+
2985
+ ## <span class="font-mono">ToolCallId</span>
2986
+
2987
+ Unique identifier for a tool call within a session.
2988
+
2989
+ **Type:** `string`
2990
+
2991
+ ## <span class="font-mono">ToolCallLocation</span>
2992
+
2993
+ A file location being accessed or modified by a tool.
2994
+
2995
+ Enables clients to implement "follow-along" features that track
2996
+ which files the agent is working with in real-time.
2997
+
2998
+ See protocol docs: [Following the Agent](https://agentclientprotocol.com/protocol/tool-calls#following-the-agent)
2999
+
3000
+ **Type:** Object
3001
+
3002
+ **Properties:**
3003
+
3004
+ <ResponseField name="_meta" type={"object | null"}>
3005
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
3006
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
3007
+ these keys.
3008
+
3009
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
3010
+ </ResponseField>
3011
+
3012
+ <ResponseField name="line" type={"integer | null"}>
3013
+ Optional line number within the file.
3014
+
3015
+ * Minimum: `0`
3016
+ </ResponseField>
3017
+
3018
+ <ResponseField name="path" type={"string"} required>
3019
+ The file path being accessed or modified.
3020
+ </ResponseField>
3021
+
3022
+ ## <span class="font-mono">ToolCallStatus</span>
3023
+
3024
+ Execution status of a tool call.
3025
+
3026
+ Tool calls progress through different statuses during their lifecycle.
3027
+
3028
+ See protocol docs: [Status](https://agentclientprotocol.com/protocol/tool-calls#status)
3029
+
3030
+ **Type:** Union
3031
+
3032
+ <ResponseField name="pending" type="string">
3033
+ The tool call hasn't started running yet because the input is either streaming
3034
+ or we're awaiting approval.
3035
+ </ResponseField>
3036
+
3037
+ <ResponseField name="in_progress" type="string">
3038
+ The tool call is currently running.
3039
+ </ResponseField>
3040
+
3041
+ <ResponseField name="completed" type="string">
3042
+ The tool call completed successfully.
3043
+ </ResponseField>
3044
+
3045
+ <ResponseField name="failed" type="string">
3046
+ The tool call failed with an error.
3047
+ </ResponseField>
3048
+
3049
+ ## <span class="font-mono">ToolCallUpdate</span>
3050
+
3051
+ An update to an existing tool call.
3052
+
3053
+ Used to report progress and results as tools execute. All fields except
3054
+ the tool call ID are optional - only changed fields need to be included.
3055
+
3056
+ See protocol docs: [Updating](https://agentclientprotocol.com/protocol/tool-calls#updating)
3057
+
3058
+ **Type:** Object
3059
+
3060
+ **Properties:**
3061
+
3062
+ <ResponseField name="_meta" type={"object | null"}>
3063
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
3064
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
3065
+ these keys.
3066
+
3067
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
3068
+ </ResponseField>
3069
+
3070
+ <ResponseField name="content" type={<><span><a href="#toolcallcontent">ToolCallContent[]</a></span><span> | null</span></>}>
3071
+ Replace the content collection.
3072
+ </ResponseField>
3073
+
3074
+ <ResponseField name="kind" type={<><span><a href="#toolkind">ToolKind</a></span><span> | null</span></>}>
3075
+ Update the tool kind.
3076
+ </ResponseField>
3077
+
3078
+ <ResponseField name="locations" type={<><span><a href="#toolcalllocation">ToolCallLocation[]</a></span><span> | null</span></>}>
3079
+ Replace the locations collection.
3080
+ </ResponseField>
3081
+
3082
+ <ResponseField name="rawInput" type={"object"}>
3083
+ Update the raw input.
3084
+ </ResponseField>
3085
+
3086
+ <ResponseField name="rawOutput" type={"object"}>
3087
+ Update the raw output.
3088
+ </ResponseField>
3089
+
3090
+ <ResponseField name="status" type={<><span><a href="#toolcallstatus">ToolCallStatus</a></span><span> | null</span></>}>
3091
+ Update the execution status.
3092
+ </ResponseField>
3093
+
3094
+ <ResponseField name="title" type={"string | null"}>
3095
+ Update the human-readable title.
3096
+ </ResponseField>
3097
+
3098
+ <ResponseField name="toolCallId" type={<a href="#toolcallid">ToolCallId</a>} required>
3099
+ The ID of the tool call being updated.
3100
+ </ResponseField>
3101
+
3102
+ ## <span class="font-mono">ToolKind</span>
3103
+
3104
+ Categories of tools that can be invoked.
3105
+
3106
+ Tool kinds help clients choose appropriate icons and optimize how they
3107
+ display tool execution progress.
3108
+
3109
+ See protocol docs: [Creating](https://agentclientprotocol.com/protocol/tool-calls#creating)
3110
+
3111
+ **Type:** Union
3112
+
3113
+ <ResponseField name="read" type="string">
3114
+ Reading files or data.
3115
+ </ResponseField>
3116
+
3117
+ <ResponseField name="edit" type="string">
3118
+ Modifying files or content.
3119
+ </ResponseField>
3120
+
3121
+ <ResponseField name="delete" type="string">
3122
+ Removing files or data.
3123
+ </ResponseField>
3124
+
3125
+ <ResponseField name="move" type="string">
3126
+ Moving or renaming files.
3127
+ </ResponseField>
3128
+
3129
+ <ResponseField name="search" type="string">
3130
+ Searching for information.
3131
+ </ResponseField>
3132
+
3133
+ <ResponseField name="execute" type="string">
3134
+ Running commands or code.
3135
+ </ResponseField>
3136
+
3137
+ <ResponseField name="think" type="string">
3138
+ Internal reasoning or planning.
3139
+ </ResponseField>
3140
+
3141
+ <ResponseField name="fetch" type="string">
3142
+ Retrieving external data.
3143
+ </ResponseField>
3144
+
3145
+ <ResponseField name="switch_mode" type="string">
3146
+ Switching the current session mode.
3147
+ </ResponseField>
3148
+
3149
+ <ResponseField name="other" type="string">
3150
+ Other tool types (default).
3151
+ </ResponseField>
3152
+
3153
+ ## <span class="font-mono">UnstructuredCommandInput</span>
3154
+
3155
+ All text that was typed after the command name is provided as input.
3156
+
3157
+ **Type:** Object
3158
+
3159
+ **Properties:**
3160
+
3161
+ <ResponseField name="_meta" type={"object | null"}>
3162
+ The \_meta property is reserved by ACP to allow clients and agents to attach additional
3163
+ metadata to their interactions. Implementations MUST NOT make assumptions about values at
3164
+ these keys.
3165
+
3166
+ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
3167
+ </ResponseField>
3168
+
3169
+ <ResponseField name="hint" type={"string"} required>
3170
+ A hint to display when the input hasn't been provided yet
3171
+ </ResponseField>