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,334 @@
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
+ # Session List
6
+
7
+ * Author(s): [@ahmedhesham6](https://github.com/ahmedhesham6)
8
+ * Champion: [@benbrandt](https://github.com/benbrandt)
9
+
10
+ ## Elevator pitch
11
+
12
+ Add a `session/list` endpoint to the ACP protocol that allows clients to query and enumerate existing sessions from an agent, enabling session management features like session history, session switching, and session cleanup.
13
+
14
+ ## Status quo
15
+
16
+ Currently, the ACP protocol provides session management through `session/new` and `session/load` endpoints. However, there is no way for clients to:
17
+
18
+ 1. **Discover existing sessions** - Clients cannot query what sessions exist on an agent
19
+ 2. **Display session history** - Users cannot see a list of their past conversations
20
+ 3. **Manage multiple sessions** - Switching between sessions requires clients to track session IDs themselves
21
+ 4. **Clean up old sessions** - No way to discover stale or abandoned sessions for cleanup
22
+
23
+ This creates several problems:
24
+
25
+ * **Poor user experience** - Users cannot browse their conversation history or resume previous sessions easily
26
+ * **Client-side complexity** - Each client must implement its own session tracking and persistence
27
+ * **Inconsistent behavior** - Different clients handle session management differently, leading to fragmented experiences
28
+
29
+ The current workaround is for clients to maintain their own session registry, but this:
30
+
31
+ * Requires persistent storage on the client side
32
+ * Can get out of sync if sessions are created/destroyed outside the client
33
+ * Doesn't work across different client instances or devices
34
+ * Cannot leverage agent-side session metadata or state
35
+
36
+ ## What we propose to do about it
37
+
38
+ Add a new `session/list` JSON-RPC method to the protocol that returns metadata about sessions known to the agent. This endpoint would:
39
+
40
+ 1. **Return a list of sessions** with essential metadata:
41
+ * `sessionId` - Unique identifier
42
+ * `cwd` - Working directory for the session
43
+ * `title` - Optional human-readable title (could be auto-generated from first prompt)
44
+ * `updatedAt` - Timestamp of last update to the session
45
+ * `_meta` - Optional agent-specific metadata
46
+ 2. **Support filtering and pagination**:
47
+ * Filter by working directory
48
+ * Agent provides an optional cursor for retrieving the next page of results
49
+ 3. **Be an optional capability**:
50
+ * Agents advertise `sessionCapabilities: { list: {} }` in initialization if they support this feature
51
+ * Clients check for this capability before attempting to call `session/list`
52
+ * Agents without persistent session storage don't need to implement this
53
+
54
+ ### JSON-RPC Request
55
+
56
+ The client calls `session/list` with optional filtering and pagination parameters:
57
+
58
+ ```json theme={null}
59
+ {
60
+ "jsonrpc": "2.0",
61
+ "id": 2,
62
+ "method": "session/list",
63
+ "params": {
64
+ "cwd": "/home/user/project",
65
+ "cursor": "eyJwYWdlIjogMn0="
66
+ }
67
+ }
68
+ ```
69
+
70
+ #### Request Parameters
71
+
72
+ All parameters are optional:
73
+
74
+ * `cwd` (string) - Filter sessions by working directory
75
+ * `cursor` (string) - Opaque cursor token from a previous response's `nextCursor` field for cursor-based pagination
76
+
77
+ #### Minimal Request Example
78
+
79
+ A request with no filters returns all sessions with default sorting:
80
+
81
+ ```json theme={null}
82
+ {
83
+ "jsonrpc": "2.0",
84
+ "id": 2,
85
+ "method": "session/list",
86
+ "params": {}
87
+ }
88
+ ```
89
+
90
+ ### JSON-RPC Response
91
+
92
+ The agent responds with a list of sessions and cursor pagination metadata:
93
+
94
+ ```json theme={null}
95
+ {
96
+ "jsonrpc": "2.0",
97
+ "id": 2,
98
+ "result": {
99
+ "sessions": [
100
+ {
101
+ "sessionId": "sess_abc123def456",
102
+ "updatedAt": "2025-10-29T14:22:15Z",
103
+ "cwd": "/home/user/project",
104
+ "title": "Implement session list API",
105
+ "_meta": {
106
+ "messageCount": 12,
107
+ "hasErrors": false
108
+ }
109
+ },
110
+ {
111
+ "sessionId": "sess_xyz789ghi012",
112
+ "updatedAt": "2025-10-28T16:45:30Z",
113
+ "cwd": "/home/user/another-project",
114
+ "title": "Debug authentication flow"
115
+ },
116
+ {
117
+ "sessionId": "sess_uvw345rst678",
118
+ "updatedAt": "2025-10-27T15:30:00Z",
119
+ "cwd": "/home/user/project"
120
+ }
121
+ ],
122
+ "nextCursor": "eyJwYWdlIjogM30="
123
+ }
124
+ }
125
+ ```
126
+
127
+ #### Response Fields
128
+
129
+ **Response object:**
130
+
131
+ * `sessions` (array) - Array of session information objects
132
+ * `nextCursor` (string, optional) - Opaque cursor token. If present, pass this in the next request's `cursor` parameter to fetch the next page. If absent, there are no more results.
133
+
134
+ **SessionInfo object:**
135
+
136
+ * `sessionId` (string, required) - Unique identifier for the session
137
+ * `cwd` (string, required) - Working directory for the session
138
+ * `title` (string, optional) - Human-readable title (may be auto-generated from first prompt)
139
+ * `updatedAt` (string, optional) - ISO 8601 timestamp of last activity
140
+ * `_meta` (object, optional) - Agent-specific metadata (e.g., message count, error status, tags)
141
+
142
+ #### Empty Result Example
143
+
144
+ When no sessions match the criteria:
145
+
146
+ ```json theme={null}
147
+ {
148
+ "jsonrpc": "2.0",
149
+ "id": 2,
150
+ "result": {
151
+ "sessions": []
152
+ }
153
+ }
154
+ ```
155
+
156
+ ## Shiny future
157
+
158
+ Once this feature exists:
159
+
160
+ 1. **Clients can build session browsers** - Users can view a list of all their conversations, sorted by recency or relevance
161
+ 2. **Session switching becomes seamless** - Users can easily switch between ongoing conversations
162
+ 3. **Better resource management** - Clients can identify and clean up old or inactive sessions
163
+ 4. **Cross-device continuity** - Users could potentially access their sessions from different devices (if agent supports it)
164
+ 5. **Improved UX patterns**:
165
+ * "Recent conversations" sidebar
166
+ * Search through past sessions
167
+ * Archive/delete old sessions
168
+ * Resume interrupted work easily
169
+
170
+ Agents that implement this feature gain:
171
+
172
+ * Better visibility into active sessions
173
+ * Opportunity to implement session lifecycle policies
174
+ * Foundation for future features like session sharing or collaboration
175
+
176
+ ## Implementation details and plan
177
+
178
+ ### Phase 1: Core Protocol Changes
179
+
180
+ 1. **Update schema.json** to add:
181
+ * `session/list` method definition
182
+ * `ListSessionsRequest` and `ListSessionsResponse` types
183
+ * `SessionInfo` type
184
+ * `sessionCapabilities/list` capability flag
185
+
186
+ 2. **Update protocol documentation** in `/docs/protocol/session-setup.mdx`:
187
+ * Document the new endpoint
188
+ * Explain when to use it vs. maintaining client-side session tracking
189
+ * Provide examples of common use cases
190
+
191
+ ### Phase 2: Reference Implementation
192
+
193
+ 3. **Implement in Rust SDK** (`src/agent.rs` and `src/client.rs`):
194
+ * Add `list_sessions` method to agent trait
195
+ * Provide default implementation (empty list) for agents without persistence
196
+ * Add client method to call `session/list`
197
+
198
+ 4. **Add to TypeScript SDKs** (if applicable):
199
+ * Update TypeScript types
200
+ * Add client methods
201
+
202
+ ### Phase 3: Example Implementation
203
+
204
+ 5. **Create example agent** that demonstrates:
205
+ * In-memory session registry
206
+ * Automatic title generation from first prompt
207
+ * Session lifecycle management (cleanup after N days)
208
+ * Pagination and filtering
209
+
210
+ ### Compatibility Considerations
211
+
212
+ * **Backward compatible**: Existing agents continue working without implementing this
213
+ * **Capability-based**: Clients check for `listSessions` capability before using
214
+ * **No breaking changes**: No modifications to existing endpoints
215
+
216
+ ### Security Considerations
217
+
218
+ * **Session isolation**: Agents must ensure sessions are only listed for the authenticated client
219
+ * **Resource limits**: Agents should enforce reasonable page sizes internally to prevent abuse
220
+
221
+ ## Frequently asked questions
222
+
223
+ ### What alternative approaches did you consider, and why did you settle on this one?
224
+
225
+ Several alternatives were considered:
226
+
227
+ 1. **Client-side session tracking only** - This is the current approach, but it has limitations:
228
+ * Doesn't work across devices
229
+ * Can get out of sync
230
+ * Adds complexity to every client implementation
231
+
232
+ 2. **Session events/notifications** - Push notifications when sessions are created/destroyed:
233
+ * More complex to implement
234
+ * Requires long-lived connections
235
+ * Still requires client-side state management
236
+ * Better suited as a future enhancement, not a replacement
237
+
238
+ 3. **File-based session manifest** - Agent writes session list to a file that clients read:
239
+ * Couples agent and client file system access
240
+ * Doesn't work for remote agents
241
+ * No standard format
242
+
243
+ The proposed RPC approach is:
244
+
245
+ * **Consistent with existing protocol design** - Uses same RPC patterns as other endpoints
246
+ * **Flexible** - Supports filtering, pagination, and agent-specific metadata
247
+ * **Optional** - Agents can opt-in based on their architecture
248
+ * **Simple** - Single request/response pattern, easy to implement and use
249
+
250
+ ### Why not make this mandatory for all agents?
251
+
252
+ Many agents may not have persistent storage or multi-session capabilities. Making this optional:
253
+
254
+ * Allows simple, stateless agents to remain compliant
255
+ * Reduces implementation burden
256
+ * Lets agents evolve session management over time
257
+
258
+ ### How does this interact with `session/load`?
259
+
260
+ `session/load` remains the mechanism to actually restore a session. `session/list` is for discovery only:
261
+
262
+ 1. Client calls `session/list` to get available sessions
263
+ 2. User selects a session
264
+ 3. Client calls `session/load` with the chosen `sessionId`
265
+
266
+ Agents may support `session/list` without supporting `session/load` (e.g., for read-only session browsing).
267
+
268
+ ### Should we include session content in the list response?
269
+
270
+ No, for several reasons:
271
+
272
+ * **Performance** - Full conversation history could be large
273
+ * **Privacy** - Listing sessions might be less sensitive than exposing full content
274
+ * **Separation of concerns** - Use `session/load` to get full session content
275
+
276
+ ### What about session deletion?
277
+
278
+ Session deletion is intentionally left out of this RFD to keep scope focused. A future `session/delete` endpoint could be proposed separately. For now, agents can implement their own lifecycle policies.
279
+
280
+ ### How should pagination work for large session lists?
281
+
282
+ We use cursor-based pagination:
283
+
284
+ * Request includes an optional `cursor`
285
+ * Response includes `nextCursor` when more results are available
286
+ * Clients should treat a missing `nextCursor` as the end of results
287
+ * Clients MUST treat cursors as opaque tokens: don't parse, modify, or persist them across sessions
288
+ * The cursor MUST be a string; never send a raw JSON object as the cursor
289
+ * Servers SHOULD provide stable cursors and handle invalid cursors gracefully
290
+
291
+ Good request example:
292
+
293
+ ```json theme={null}
294
+ {
295
+ "jsonrpc": "2.0",
296
+ "id": 2,
297
+ "method": "session/list",
298
+ "params": {
299
+ "cwd": "/home/user/project",
300
+ "createdAfter": "2025-10-20T00:00:00Z",
301
+ "cursor": "eyJwYWdlIjogMn0=",
302
+ "search": "auth"
303
+ }
304
+ }
305
+ ```
306
+
307
+ Corresponding response example:
308
+
309
+ ```json theme={null}
310
+ {
311
+ "jsonrpc": "2.0",
312
+ "id": 2,
313
+ "result": {
314
+ "sessions": [
315
+ /* ... */
316
+ ],
317
+ "nextCursor": "eyJwYWdlIjogM30="
318
+ }
319
+ }
320
+ ```
321
+
322
+ ## Revision history
323
+
324
+ * **2025-10-29**: Initial draft proposal
325
+ * **2025-10-30**: Update to use `_meta` field for agent-specific metadata
326
+ * **2025-10-30**: Switch from offset-based to cursor-based pagination using continuation tokens
327
+ * **2025-10-30**: Rename `lastAccessedAt` to `updatedAt` for consistency
328
+ * **2025-10-30**: Remove `preview` field from SessionInfo (out of scope)
329
+ * **2025-10-30**: Remove session orphaning from problem statement
330
+ * **2025-10-30**: Replace `sortBy`/`sortOrder` with `search` parameter; remove `total` count from response
331
+ * **2025-10-31**: Update pagination: `continuationToken` → `cursor`, `nextContinuationToken` → `nextCursor`, remove `hasMore`
332
+ * **2025-11-11**: Remove `createdAt`, `updatedAt`, and `search` filters from the request parameters
333
+ * **2025-11-23**: Remove `limit` parameter from request; make `createdAt` and `updatedAt` optional in SessionInfo
334
+ * **2025-11-24**: Update capabilities schema, consolidate to single `updatedAt` timestamp
@@ -0,0 +1,170 @@
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
+ # Session Modes
6
+
7
+ > Switch between different agent operating modes
8
+
9
+ Agents can provide a set of modes they can operate in. Modes often affect the system prompts used, the availability of tools, and whether they request permission before running.
10
+
11
+ ## Initial state
12
+
13
+ During [Session Setup](./session-setup) the Agent **MAY** return a list of modes it can operate in and the currently active mode:
14
+
15
+ ```json theme={null}
16
+ {
17
+ "jsonrpc": "2.0",
18
+ "id": 1,
19
+ "result": {
20
+ "sessionId": "sess_abc123def456",
21
+ "modes": {
22
+ "currentModeId": "ask",
23
+ "availableModes": [
24
+ {
25
+ "id": "ask",
26
+ "name": "Ask",
27
+ "description": "Request permission before making any changes"
28
+ },
29
+ {
30
+ "id": "architect",
31
+ "name": "Architect",
32
+ "description": "Design and plan software systems without implementation"
33
+ },
34
+ {
35
+ "id": "code",
36
+ "name": "Code",
37
+ "description": "Write and modify code with full tool access"
38
+ }
39
+ ]
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ <ResponseField name="modes" type="SessionModeState">
46
+ The current mode state for the session
47
+ </ResponseField>
48
+
49
+ ### SessionModeState
50
+
51
+ <ResponseField name="currentModeId" type="SessionModeId" required>
52
+ The ID of the mode that is currently active
53
+ </ResponseField>
54
+
55
+ <ResponseField name="availableModes" type="SessionMode[]" required>
56
+ The set of modes that the Agent can operate in
57
+ </ResponseField>
58
+
59
+ ### SessionMode
60
+
61
+ <ResponseField name="id" type="SessionModeId" required>
62
+ Unique identifier for this mode
63
+ </ResponseField>
64
+
65
+ <ResponseField name="name" type="string" required>
66
+ Human-readable name of the mode
67
+ </ResponseField>
68
+
69
+ <ResponseField name="description" type="string">
70
+ Optional description providing more details about what this mode does
71
+ </ResponseField>
72
+
73
+ ## Setting the current mode
74
+
75
+ The current mode can be changed at any point during a session, whether the Agent is idle or generating a response.
76
+
77
+ ### From the Client
78
+
79
+ Typically, Clients display the available modes to the user and allow them to change the current one, which they can do by calling the [`session/set_mode`](./schema#session%2Fset-mode) method.
80
+
81
+ ```json theme={null}
82
+ {
83
+ "jsonrpc": "2.0",
84
+ "id": 2,
85
+ "method": "session/set_mode",
86
+ "params": {
87
+ "sessionId": "sess_abc123def456",
88
+ "modeId": "code"
89
+ }
90
+ }
91
+ ```
92
+
93
+ <ParamField path="sessionId" type="SessionId" required>
94
+ The ID of the session to set the mode for
95
+ </ParamField>
96
+
97
+ <ParamField path="modeId" type="SessionModeId" required>
98
+ The ID of the mode to switch to. Must be one of the modes listed in
99
+ `availableModes`
100
+ </ParamField>
101
+
102
+ ### From the Agent
103
+
104
+ The Agent can also change its own mode and let the Client know by sending the `current_mode_update` session notification:
105
+
106
+ ```json theme={null}
107
+ {
108
+ "jsonrpc": "2.0",
109
+ "method": "session/update",
110
+ "params": {
111
+ "sessionId": "sess_abc123def456",
112
+ "update": {
113
+ "sessionUpdate": "current_mode_update",
114
+ "modeId": "code"
115
+ }
116
+ }
117
+ }
118
+ ```
119
+
120
+ #### Exiting plan modes
121
+
122
+ A common case where an Agent might switch modes is from within a special "exit mode" tool that can be provided to the language model during plan/architect modes. The language model can call this tool when it determines it's ready to start implementing a solution.
123
+
124
+ This "switch mode" tool will usually request permission before running, which it can do just like any other tool:
125
+
126
+ ```json theme={null}
127
+ {
128
+ "jsonrpc": "2.0",
129
+ "id": 3,
130
+ "method": "session/request_permission",
131
+ "params": {
132
+ "sessionId": "sess_abc123def456",
133
+ "toolCall": {
134
+ "toolCallId": "call_switch_mode_001",
135
+ "title": "Ready for implementation",
136
+ "kind": "switch_mode",
137
+ "status": "pending",
138
+ "content": [
139
+ {
140
+ "type": "text",
141
+ "text": "## Implementation Plan..."
142
+ }
143
+ ]
144
+ },
145
+ "options": [
146
+ {
147
+ "optionId": "code",
148
+ "name": "Yes, and auto-accept all actions",
149
+ "kind": "allow_always"
150
+ },
151
+ {
152
+ "optionId": "ask",
153
+ "name": "Yes, and manually accept actions",
154
+ "kind": "allow_once"
155
+ },
156
+ {
157
+ "optionId": "reject",
158
+ "name": "No, stay in architect mode",
159
+ "kind": "reject_once"
160
+ }
161
+ ]
162
+ }
163
+ }
164
+ ```
165
+
166
+ When an option is chosen, the tool runs, setting the mode and sending the `current_mode_update` notification mentioned above.
167
+
168
+ <Card icon="shield-check" horizontal href="./tool-calls#requesting-permission">
169
+ Learn more about permission requests
170
+ </Card>
@@ -0,0 +1,99 @@
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
+ # Slash Commands
6
+
7
+ > Advertise available slash commands to clients
8
+
9
+ Agents can advertise a set of slash commands that users can invoke. These commands provide quick access to specific agent capabilities and workflows. Commands are run as part of regular [prompt](./prompt-turn) requests where the Client includes the command text in the prompt.
10
+
11
+ ## Advertising commands
12
+
13
+ After creating a session, the Agent **MAY** send a list of available commands via the `available_commands_update` session notification:
14
+
15
+ ```json theme={null}
16
+ {
17
+ "jsonrpc": "2.0",
18
+ "method": "session/update",
19
+ "params": {
20
+ "sessionId": "sess_abc123def456",
21
+ "update": {
22
+ "sessionUpdate": "available_commands_update",
23
+ "availableCommands": [
24
+ {
25
+ "name": "web",
26
+ "description": "Search the web for information",
27
+ "input": {
28
+ "hint": "query to search for"
29
+ }
30
+ },
31
+ {
32
+ "name": "test",
33
+ "description": "Run tests for the current project"
34
+ },
35
+ {
36
+ "name": "plan",
37
+ "description": "Create a detailed implementation plan",
38
+ "input": {
39
+ "hint": "description of what to plan"
40
+ }
41
+ }
42
+ ]
43
+ }
44
+ }
45
+ }
46
+ ```
47
+
48
+ <ResponseField name="availableCommands" type="AvailableCommand[]">
49
+ The list of commands available in this session
50
+ </ResponseField>
51
+
52
+ ### AvailableCommand
53
+
54
+ <ResponseField name="name" type="string" required>
55
+ The command name (e.g., "web", "test", "plan")
56
+ </ResponseField>
57
+
58
+ <ResponseField name="description" type="string" required>
59
+ Human-readable description of what the command does
60
+ </ResponseField>
61
+
62
+ <ResponseField name="input" type="AvailableCommandInput">
63
+ Optional input specification for the command
64
+ </ResponseField>
65
+
66
+ ### AvailableCommandInput
67
+
68
+ Currently supports unstructured text input:
69
+
70
+ <ResponseField name="hint" type="string" required>
71
+ A hint to display when the input hasn't been provided yet
72
+ </ResponseField>
73
+
74
+ ## Dynamic updates
75
+
76
+ The Agent can update the list of available commands at any time during a session by sending another `available_commands_update` notification. This allows commands to be added based on context, removed when no longer relevant, or modified with updated descriptions.
77
+
78
+ ## Running commands
79
+
80
+ Commands are included as regular user messages in prompt requests:
81
+
82
+ ```json theme={null}
83
+ {
84
+ "jsonrpc": "2.0",
85
+ "id": 3,
86
+ "method": "session/prompt",
87
+ "params": {
88
+ "sessionId": "sess_abc123def456",
89
+ "prompt": [
90
+ {
91
+ "type": "text",
92
+ "text": "/web agent client protocol"
93
+ }
94
+ ]
95
+ }
96
+ }
97
+ ```
98
+
99
+ The Agent recognizes the command prefix and processes it accordingly. Commands may be accompanied by any other user message content types (images, audio, etc.) in the same prompt array.