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.
- package/.miette/260321.md +1 -0
- package/.miette/260323.md +9 -0
- package/.miette/260331.md +2 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--d3417f2c-df12-4f0f-8a1b-d88e7968f822/d3417f2c-df12-4f0f-8a1b-d88e7968f822.md +63 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--e6c3fc5d-4a70-4523-ba7d-a3250da4c235/e6c3fc5d-4a70-4523-ba7d-a3250da4c235.md +72 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--efeb00a2-b17a-4d32-b1f0-b90c37a8d24e/efeb00a2-b17a-4d32-b1f0-b90c37a8d24e.md +62 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.json +302 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.md +149 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/AGENTS.md +31 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/meta-decomposition-3-children.md +67 -0
- package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/61f9dd4d-7aa6-45e6-a58b-e480b1aa6737--from-mia-openclaw-workspace.md +125 -0
- package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/STATUS.md +1 -0
- package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.json +177 -0
- package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.md +77 -0
- package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.json +222 -0
- package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.md +99 -0
- package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.json +111 -0
- package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.md +67 -0
- package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.json +349 -0
- package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.md +147 -0
- package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.json +118 -0
- package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.md +64 -0
- package/GUILLAUME.md +8 -0
- package/KINSHIP.md +9 -0
- package/MIA_CODE_ARCHITECTURE_REPORT.md +718 -0
- package/contextual_research/260119-MIA-CODE--98090899-8aff-4e11-9dc3-8b99466d1.md +1101 -0
- package/contextual_research/MIA.md +38 -0
- package/contextual_research/MIAWAPASCONE.md +59 -0
- package/contextual_research/MIETTE.md +38 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2504.00218v2.pdf +7483 -12
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2505.00212v3.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/CONTENT.md +1014 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/DESIGN.gemini.md +242 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/INDEX.md +45 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.md +2025 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.pdf +7483 -12
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.md +1755 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_12_decomposed_prompting.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_19_hugginggpt_planning.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.md +766 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.pdf +3431 -4
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.md +260 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.md +558 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_34_hierarchical_multi_agent.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_5_open_intent_extraction.pdf +0 -0
- package/contextual_research/PODCAST.md +109 -0
- package/contextual_research/langchain-principles-roadmap.md +157 -0
- package/contextual_research/persona-to-narrative-character-inquiry_260201.md +50 -0
- package/dist/cli.js +35 -11
- package/dist/geminiHeadless.js +8 -2
- package/dist/index.js +2 -1
- package/dist/mcp/miaco-server.js +10 -1
- package/dist/mcp/miatel-server.js +10 -1
- package/dist/mcp/miawa-server.js +10 -1
- package/dist/mcp/utils.d.ts +6 -1
- package/dist/mcp/utils.js +24 -3
- package/dist/sessionStore.d.ts +8 -2
- package/dist/sessionStore.js +39 -3
- package/dist/types.d.ts +1 -0
- package/miaco/README.md +124 -0
- package/miaco/dist/commands/chart.d.ts +6 -0
- package/miaco/dist/commands/chart.d.ts.map +1 -0
- package/miaco/dist/commands/chart.js +222 -0
- package/miaco/dist/commands/chart.js.map +1 -0
- package/miaco/dist/commands/decompose.d.ts +6 -0
- package/miaco/dist/commands/decompose.d.ts.map +1 -0
- package/miaco/dist/commands/decompose.js +98 -0
- package/miaco/dist/commands/decompose.js.map +1 -0
- package/miaco/dist/commands/schema.d.ts +6 -0
- package/miaco/dist/commands/schema.d.ts.map +1 -0
- package/miaco/dist/commands/schema.js +66 -0
- package/miaco/dist/commands/schema.js.map +1 -0
- package/miaco/dist/commands/stc.d.ts +11 -0
- package/miaco/dist/commands/stc.d.ts.map +1 -0
- package/miaco/dist/commands/stc.js +590 -0
- package/miaco/dist/commands/stc.js.map +1 -0
- package/miaco/dist/commands/trace.d.ts +6 -0
- package/miaco/dist/commands/trace.d.ts.map +1 -0
- package/miaco/dist/commands/trace.js +83 -0
- package/miaco/dist/commands/trace.js.map +1 -0
- package/miaco/dist/commands/validate.d.ts +6 -0
- package/miaco/dist/commands/validate.d.ts.map +1 -0
- package/miaco/dist/commands/validate.js +58 -0
- package/miaco/dist/commands/validate.js.map +1 -0
- package/miaco/dist/decompose.d.ts +93 -0
- package/miaco/dist/decompose.d.ts.map +1 -0
- package/miaco/dist/decompose.js +562 -0
- package/miaco/dist/decompose.js.map +1 -0
- package/miaco/dist/index.d.ts +18 -0
- package/miaco/dist/index.d.ts.map +1 -0
- package/miaco/dist/index.js +83 -0
- package/miaco/dist/index.js.map +1 -0
- package/miaco/dist/storage.d.ts +60 -0
- package/miaco/dist/storage.d.ts.map +1 -0
- package/miaco/dist/storage.js +100 -0
- package/miaco/dist/storage.js.map +1 -0
- package/miaco/package-lock.json +4103 -0
- package/miaco/package.json +40 -0
- package/miaco/tsconfig.json +18 -0
- package/miaco/version-patch-commit-and-publish.sh +1 -0
- package/miatel/MISSION_251231.md +3 -0
- package/miatel/README.md +107 -0
- package/miatel/dist/commands/analyze.d.ts +6 -0
- package/miatel/dist/commands/analyze.d.ts.map +1 -0
- package/miatel/dist/commands/analyze.js +100 -0
- package/miatel/dist/commands/analyze.js.map +1 -0
- package/miatel/dist/commands/arc.d.ts +6 -0
- package/miatel/dist/commands/arc.d.ts.map +1 -0
- package/miatel/dist/commands/arc.js +71 -0
- package/miatel/dist/commands/arc.js.map +1 -0
- package/miatel/dist/commands/beat.d.ts +6 -0
- package/miatel/dist/commands/beat.d.ts.map +1 -0
- package/miatel/dist/commands/beat.js +165 -0
- package/miatel/dist/commands/beat.js.map +1 -0
- package/miatel/dist/commands/theme.d.ts +6 -0
- package/miatel/dist/commands/theme.d.ts.map +1 -0
- package/miatel/dist/commands/theme.js +54 -0
- package/miatel/dist/commands/theme.js.map +1 -0
- package/miatel/dist/index.d.ts +18 -0
- package/miatel/dist/index.d.ts.map +1 -0
- package/miatel/dist/index.js +80 -0
- package/miatel/dist/index.js.map +1 -0
- package/miatel/dist/storage.d.ts +55 -0
- package/miatel/dist/storage.d.ts.map +1 -0
- package/miatel/dist/storage.js +100 -0
- package/miatel/dist/storage.js.map +1 -0
- package/miatel/package-lock.json +4103 -0
- package/miatel/package.json +35 -0
- package/miatel/src/commands/analyze.ts +109 -0
- package/miatel/src/commands/arc.ts +78 -0
- package/miatel/src/commands/beat.ts +176 -0
- package/miatel/src/commands/theme.ts +60 -0
- package/miatel/src/index.ts +94 -0
- package/miatel/src/storage.ts +156 -0
- package/miatel/tsconfig.json +18 -0
- package/miawa/MISSION_251231.md +144 -0
- package/miawa/README.md +133 -0
- package/miawa/dist/commands/beat.d.ts +6 -0
- package/miawa/dist/commands/beat.d.ts.map +1 -0
- package/miawa/dist/commands/beat.js +69 -0
- package/miawa/dist/commands/beat.js.map +1 -0
- package/miawa/dist/commands/ceremony.d.ts +6 -0
- package/miawa/dist/commands/ceremony.d.ts.map +1 -0
- package/miawa/dist/commands/ceremony.js +239 -0
- package/miawa/dist/commands/ceremony.js.map +1 -0
- package/miawa/dist/commands/circle.d.ts +6 -0
- package/miawa/dist/commands/circle.d.ts.map +1 -0
- package/miawa/dist/commands/circle.js +75 -0
- package/miawa/dist/commands/circle.js.map +1 -0
- package/miawa/dist/commands/eva.d.ts +6 -0
- package/miawa/dist/commands/eva.d.ts.map +1 -0
- package/miawa/dist/commands/eva.js +73 -0
- package/miawa/dist/commands/eva.js.map +1 -0
- package/miawa/dist/commands/wound.d.ts +6 -0
- package/miawa/dist/commands/wound.d.ts.map +1 -0
- package/miawa/dist/commands/wound.js +74 -0
- package/miawa/dist/commands/wound.js.map +1 -0
- package/miawa/dist/index.d.ts +19 -0
- package/miawa/dist/index.d.ts.map +1 -0
- package/miawa/dist/index.js +91 -0
- package/miawa/dist/index.js.map +1 -0
- package/miawa/dist/storage.d.ts +73 -0
- package/miawa/dist/storage.d.ts.map +1 -0
- package/miawa/dist/storage.js +100 -0
- package/miawa/dist/storage.js.map +1 -0
- package/miawa/package-lock.json +4103 -0
- package/miawa/package.json +36 -0
- package/miawa/src/commands/beat.ts +74 -0
- package/miawa/src/commands/ceremony.ts +256 -0
- package/miawa/src/commands/circle.ts +83 -0
- package/miawa/src/commands/eva.ts +84 -0
- package/miawa/src/commands/wound.ts +79 -0
- package/miawa/src/index.ts +108 -0
- package/miawa/src/storage.ts +179 -0
- package/miawa/tsconfig.json +18 -0
- package/package.json +7 -5
- package/references/acp/CLAUDE.md +7 -0
- package/references/acp/agent-plan.md +84 -0
- package/references/acp/clients.md +31 -0
- package/references/acp/extensibility.md +137 -0
- package/references/acp/initialization.md +225 -0
- package/references/acp/prompt-turn.md +321 -0
- package/references/acp/proxy-chains.md +562 -0
- package/references/acp/schema.md +3171 -0
- package/references/acp/session-list.md +334 -0
- package/references/acp/session-modes.md +170 -0
- package/references/acp/slash-commands.md +99 -0
- package/references/acp/terminals.md +281 -0
- package/references/acp/tool-calls.md +311 -0
- package/references/acp/typescript.md +29 -0
- package/references/claude/agent-teams.md +399 -0
- package/references/claude/chrome.md +231 -0
- package/references/claude/headless.md +158 -0
- package/references/claude/hooks-guide.md +708 -0
- package/references/claude/output-styles.md +112 -0
- package/references/claude/plugins.md +432 -0
- package/references/claude/skills.md +693 -0
- package/references/claude/sub-agents.md +816 -0
- package/references/copilot/acp/agents.md +32 -0
- package/references/copilot/acp/architecture.md +37 -0
- package/references/copilot/acp/clients.md +31 -0
- package/references/copilot/acp/introduction.md +42 -0
- package/references/copilot/acp/registry.md +339 -0
- package/references/copilot/acp-server.md +117 -0
- package/references/copilot/create-copilot-instructions.md +840 -0
- package/references/langchain/llms.txt +833 -0
- package/references/langchain/python/agents.md +677 -0
- package/references/langchain/python/context-engineering.md +1195 -0
- package/references/langchain/python/human-in-the-loop.md +326 -0
- package/references/langchain/python/long-term-memory.md +168 -0
- package/references/langchain/python/mcp.md +949 -0
- package/references/langchain/python/multi-agents/custom-workflow.md +187 -0
- package/references/langchain/python/multi-agents/handoffs.md +436 -0
- package/references/langchain/python/multi-agents/overview.md +295 -0
- package/references/langchain/python/multi-agents/router.md +150 -0
- package/references/langchain/python/multi-agents/skills.md +92 -0
- package/references/langchain/python/multi-agents/subagents.md +486 -0
- package/references/langchain/python/retrieval.md +320 -0
- package/references/langchain/python/runtime.md +141 -0
- package/references/langchain/python/short-term-memory.md +658 -0
- package/references/langchain/python/structured-output.md +712 -0
- package/references/langfuse/llms.txt +148 -0
- package/references/langgraph/javascript/llms.txt +275 -0
- package/references/skills/home.md +259 -0
- package/references/skills/integrate-skills.md +103 -0
- package/references/skills/specification.md +254 -0
- package/references/skills/what-are-skills.md +74 -0
- package/rispecs/README.md +164 -0
- package/rispecs/_sync_/miadi-code/SPEC.md +313 -0
- package/rispecs/_sync_/miadi-code/STATUS.md +177 -0
- package/rispecs/_sync_/miadi-code/dashboard/SPEC.md +465 -0
- package/rispecs/_sync_/miadi-code/dashboard/STATUS.md +212 -0
- package/rispecs/_sync_/miadi-code/multiline-input/SPEC.md +232 -0
- package/rispecs/_sync_/miadi-code/multiline-input/STATUS.md +108 -0
- package/rispecs/_sync_/miadi-code/pde/SPEC.md +253 -0
- package/rispecs/_sync_/miadi-code/pde/STATUS.md +56 -0
- package/rispecs/_sync_/miadi-code/stc/SPEC.md +397 -0
- package/rispecs/_sync_/miadi-code/stc/STATUS.md +70 -0
- package/rispecs/ava-langstack/inquiry-routing-upgrade.spec.md +119 -0
- package/rispecs/borrowed_from_opencode/001-client-server-architecture.rispec.md +98 -0
- package/rispecs/borrowed_from_opencode/002-event-bus-system.rispec.md +125 -0
- package/rispecs/borrowed_from_opencode/003-instance-state-pattern.rispec.md +136 -0
- package/rispecs/borrowed_from_opencode/004-namespace-module-pattern.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/005-zod-schema-validation.rispec.md +139 -0
- package/rispecs/borrowed_from_opencode/006-named-error-system.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/007-structured-logging.rispec.md +138 -0
- package/rispecs/borrowed_from_opencode/008-lazy-initialization.rispec.md +127 -0
- package/rispecs/borrowed_from_opencode/009-multi-agent-system.rispec.md +97 -0
- package/rispecs/borrowed_from_opencode/010-agent-definition-config.rispec.md +135 -0
- package/rispecs/borrowed_from_opencode/011-agent-permission-rulesets.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/012-agent-prompt-templates.rispec.md +141 -0
- package/rispecs/borrowed_from_opencode/013-agent-generation.rispec.md +142 -0
- package/rispecs/borrowed_from_opencode/014-plan-build-mode-toggle.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/015-subagent-task-delegation.rispec.md +146 -0
- package/rispecs/borrowed_from_opencode/016-agent-model-selection.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/017-compaction-agent.rispec.md +150 -0
- package/rispecs/borrowed_from_opencode/018-session-persistence.rispec.md +125 -0
- package/rispecs/borrowed_from_opencode/019-session-compaction.rispec.md +132 -0
- package/rispecs/borrowed_from_opencode/020-session-forking.rispec.md +134 -0
- package/rispecs/borrowed_from_opencode/021-session-revert-snapshot.rispec.md +135 -0
- package/rispecs/borrowed_from_opencode/022-session-sharing.rispec.md +165 -0
- package/rispecs/borrowed_from_opencode/023-session-summary-diffs.rispec.md +165 -0
- package/rispecs/borrowed_from_opencode/024-child-sessions.rispec.md +164 -0
- package/rispecs/borrowed_from_opencode/025-session-title-generation.rispec.md +162 -0
- package/rispecs/borrowed_from_opencode/026-message-parts-model.rispec.md +201 -0
- package/rispecs/borrowed_from_opencode/027-streaming-message-deltas.rispec.md +212 -0
- package/rispecs/borrowed_from_opencode/028-multi-provider-architecture.rispec.md +184 -0
- package/rispecs/borrowed_from_opencode/029-provider-authentication.rispec.md +225 -0
- package/rispecs/borrowed_from_opencode/030-model-registry.rispec.md +222 -0
- package/rispecs/borrowed_from_opencode/031-cost-tracking.rispec.md +243 -0
- package/rispecs/borrowed_from_opencode/032-provider-transform-pipeline.rispec.md +282 -0
- package/rispecs/borrowed_from_opencode/033-provider-sdk-abstraction.rispec.md +338 -0
- package/rispecs/borrowed_from_opencode/034-tool-registry.rispec.md +110 -0
- package/rispecs/borrowed_from_opencode/035-tool-context-injection.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/036-tool-output-truncation.rispec.md +138 -0
- package/rispecs/borrowed_from_opencode/037-batch-tool.rispec.md +129 -0
- package/rispecs/borrowed_from_opencode/038-multi-edit-tool.rispec.md +167 -0
- package/rispecs/borrowed_from_opencode/039-apply-patch-tool.rispec.md +161 -0
- package/rispecs/borrowed_from_opencode/040-code-search-tool.rispec.md +143 -0
- package/rispecs/borrowed_from_opencode/041-web-fetch-tool.rispec.md +131 -0
- package/rispecs/borrowed_from_opencode/042-web-search-tool.rispec.md +159 -0
- package/rispecs/borrowed_from_opencode/043-todo-tool.rispec.md +156 -0
- package/rispecs/borrowed_from_opencode/044-plan-mode-tool.rispec.md +139 -0
- package/rispecs/borrowed_from_opencode/045-task-tool.rispec.md +146 -0
- package/rispecs/borrowed_from_opencode/046-question-tool.rispec.md +170 -0
- package/rispecs/borrowed_from_opencode/047-external-directory-tool.rispec.md +166 -0
- package/rispecs/borrowed_from_opencode/048-file-read-write-tools.rispec.md +205 -0
- package/rispecs/borrowed_from_opencode/049-lsp-server-management.rispec.md +104 -0
- package/rispecs/borrowed_from_opencode/050-lsp-hover-completion.rispec.md +102 -0
- package/rispecs/borrowed_from_opencode/051-lsp-diagnostics.rispec.md +86 -0
- package/rispecs/borrowed_from_opencode/052-lsp-root-detection.rispec.md +109 -0
- package/rispecs/borrowed_from_opencode/053-remote-mcp-servers.rispec.md +119 -0
- package/rispecs/borrowed_from_opencode/054-mcp-oauth-flow.rispec.md +107 -0
- package/rispecs/borrowed_from_opencode/055-mcp-tool-conversion.rispec.md +118 -0
- package/rispecs/borrowed_from_opencode/056-mcp-connection-monitoring.rispec.md +106 -0
- package/rispecs/borrowed_from_opencode/057-local-mcp-servers.rispec.md +116 -0
- package/rispecs/borrowed_from_opencode/058-rich-tui.rispec.md +108 -0
- package/rispecs/borrowed_from_opencode/059-streaming-display.rispec.md +116 -0
- package/rispecs/borrowed_from_opencode/060-permission-prompts.rispec.md +130 -0
- package/rispecs/borrowed_from_opencode/061-session-navigation.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/062-syntax-highlighting.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/063-keybinding-system.rispec.md +181 -0
- package/rispecs/borrowed_from_opencode/064-multi-level-config.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/065-jsonc-config.rispec.md +190 -0
- package/rispecs/borrowed_from_opencode/066-config-env-variables.rispec.md +153 -0
- package/rispecs/borrowed_from_opencode/067-config-deep-merging.rispec.md +178 -0
- package/rispecs/borrowed_from_opencode/068-remote-org-config.rispec.md +183 -0
- package/rispecs/borrowed_from_opencode/069-config-markdown-frontmatter.rispec.md +206 -0
- package/rispecs/borrowed_from_opencode/070-managed-config-directory.rispec.md +232 -0
- package/rispecs/borrowed_from_opencode/071-plugin-architecture.rispec.md +104 -0
- package/rispecs/borrowed_from_opencode/072-plugin-hooks.rispec.md +123 -0
- package/rispecs/borrowed_from_opencode/073-plugin-auto-install.rispec.md +115 -0
- package/rispecs/borrowed_from_opencode/074-permission-system.rispec.md +133 -0
- package/rispecs/borrowed_from_opencode/075-git-worktree-management.rispec.md +126 -0
- package/rispecs/borrowed_from_opencode/076-snapshot-system.rispec.md +124 -0
- package/rispecs/borrowed_from_opencode/077-snapshot-diff.rispec.md +117 -0
- package/rispecs/borrowed_from_opencode/078-snapshot-restore.rispec.md +128 -0
- package/rispecs/borrowed_from_opencode/079-worktree-branch-naming.rispec.md +122 -0
- package/rispecs/borrowed_from_opencode/080-sqlite-storage.rispec.md +134 -0
- package/rispecs/borrowed_from_opencode/081-database-migrations.rispec.md +148 -0
- package/rispecs/borrowed_from_opencode/082-database-transactions.rispec.md +138 -0
- package/rispecs/borrowed_from_opencode/083-deferred-effects.rispec.md +148 -0
- package/rispecs/borrowed_from_opencode/084-permission-rules.rispec.md +123 -0
- package/rispecs/borrowed_from_opencode/085-permission-glob-patterns.rispec.md +113 -0
- package/rispecs/borrowed_from_opencode/086-permission-merging.rispec.md +134 -0
- package/rispecs/borrowed_from_opencode/087-permission-modes.rispec.md +145 -0
- package/rispecs/borrowed_from_opencode/088-http-api-server.rispec.md +165 -0
- package/rispecs/borrowed_from_opencode/089-openapi-spec-generation.rispec.md +164 -0
- package/rispecs/borrowed_from_opencode/090-websocket-support.rispec.md +136 -0
- package/rispecs/borrowed_from_opencode/091-sse-streaming.rispec.md +168 -0
- package/rispecs/borrowed_from_opencode/092-mdns-discovery.rispec.md +145 -0
- package/rispecs/borrowed_from_opencode/093-javascript-sdk.rispec.md +200 -0
- package/rispecs/borrowed_from_opencode/094-skill-system.rispec.md +187 -0
- package/rispecs/borrowed_from_opencode/095-skill-discovery.rispec.md +182 -0
- package/rispecs/borrowed_from_opencode/096-desktop-remote-driving.rispec.md +175 -0
- package/rispecs/borrowed_from_opencode/INDEX.md +255 -0
- package/rispecs/core.rispecs.md +261 -0
- package/rispecs/engines.rispecs.md +241 -0
- package/rispecs/formatting.rispecs.md +252 -0
- package/rispecs/living-specifications.rispecs.md +361 -0
- package/rispecs/mcp.rispecs.md +197 -0
- package/rispecs/pde.rispecs.md +399 -0
- package/rispecs/pi-mono-envisionning/ENVISIONING.md +366 -0
- package/rispecs/pi-mono-envisionning/storytelling-horizon.rispecs.md +76 -0
- package/rispecs/pi-mono-envisionning/widget.rispecs.md +2 -0
- package/rispecs/relation-to-mcp-structural-thinking.kin.md +72 -0
- package/rispecs/research-for-better-framework/CLAUDE.md +7 -0
- package/rispecs/research-for-better-framework/survey-pi-openclaw-opencode-openhands.md +210 -0
- package/rispecs/session.rispecs.md +277 -0
- package/rispecs/stc.rispecs.md +138 -0
- package/rispecs/unifier.rispecs.md +317 -0
- package/scripts/LAUNCH--mcp-mia-code--testing--2603141315--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +2 -0
- package/scripts/RESUME--mia-code--mcps--260313--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +1 -0
- package/scripts/install-widget-in-home-pi-agent-extensions.sh +4 -0
- package/scripts/sample-decompose--2604011535-prompt.sh +1 -0
- package/skills/deep-search/AGENTS.md +17 -0
- package/skills/deep-search/SKILL.md +281 -0
- package/skills/deep-search/agent-templates.md +224 -0
- package/skills/deep-search/orchestration-patterns.md +95 -0
- package/skills/miaco-pde-inquiry-routing-deep-search/AGENTS.md +13 -0
- package/skills/miaco-pde-inquiry-routing-deep-search/SKILL.md +136 -0
- package/skills/miaco-pde-inquiry-routing-internal-external-relationship/AGENTS.md +4 -0
- package/skills/miaco-pde-inquiry-routing-internal-external-relationship/SKILL.md +157 -0
- package/skills/miaco-pde-inquiry-routing-local-qmd/AGENTS.md +42 -0
- package/skills/miaco-pde-inquiry-routing-local-qmd/SKILL.md +135 -0
- package/skills/qmd/AGENTS.md +3 -0
- package/skills/qmd/SKILL.md +144 -0
- package/skills/qmd/references/mcp-setup.md +102 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/SKILL.md +234 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/agent-templates.md +436 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/orchestration-patterns.md +197 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/ceremonial-technology.md +102 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/creative-orientation.md +99 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/prompt-decomposition.md +73 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/rise-framework.md +74 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/structural-tension.md +82 -0
- package/src/cli.ts +35 -11
- package/src/geminiHeadless.ts +7 -2
- package/src/index.ts +2 -1
- package/src/mcp/miaco-server.ts +13 -1
- package/src/mcp/miatel-server.ts +13 -1
- package/src/mcp/miawa-server.ts +13 -1
- package/src/mcp/utils.ts +41 -8
- package/src/sessionStore.ts +44 -4
- package/src/types.ts +2 -1
- package/widget/mia-ceremony/README.md +36 -0
- package/widget/mia-ceremony/index.ts +143 -0
- package/widget/mia-interceptor/README.md +39 -0
- package/widget/mia-interceptor/index.ts +221 -0
- package/widget/mia-tools/README.md +37 -0
- package/widget/mia-tools/index.ts +569 -0
- package/widget/miette-echo/README.md +44 -0
- package/widget/miette-echo/index.ts +164 -0
- package/.claude/settings.local.json +0 -9
- package/.hch/issue_.env +0 -4
- package/.hch/issue_add__2601211715.json +0 -77
- package/.hch/issue_add__2601211715.md +0 -4
- package/.hch/issue_add__2602242020.json +0 -78
- package/.hch/issue_add__2602242020.md +0 -7
- package/.hch/issues.json +0 -2312
- package/.hch/issues.md +0 -30
- package/WS__mia-code__260214__IAIP_PDE.code-workspace +0 -29
- package/WS__mia-code__src332__260122.code-workspace +0 -23
- package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/checkpoints/index.md +0 -6
- package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/events.jsonl +0 -213
- package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/plan.md +0 -243
- 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.
|