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,361 @@
|
|
|
1
|
+
# Living Specifications Engine (RispecsEngine)
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification v1.0
|
|
4
|
+
> Document: mia-code/rispecs/living-specifications.rispecs.md
|
|
5
|
+
> Status: mia-code Enhancement
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Creative Intent
|
|
10
|
+
|
|
11
|
+
The RispecsEngine empowers developers to create specifications that evolve with the codebase. Users achieve "living documentation" where rispecs files automatically update from git history, maintaining structural accuracy as code changes without manual synchronization effort.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Structural Tension Analysis
|
|
16
|
+
|
|
17
|
+
**Current Structural Reality:**
|
|
18
|
+
- mia-code has 7 rispecs files defining behavior (`core.rispecs.md`, `engines.rispecs.md`, etc.)
|
|
19
|
+
- Specifications are manually written and updated
|
|
20
|
+
- Git commit messages contain valuable specification-relevant information (e.g., `feat(memory): Operationalize Structural Dynamics`)
|
|
21
|
+
- No automated connection between code changes and specification updates
|
|
22
|
+
- Documentation drift occurs as implementation evolves
|
|
23
|
+
- Existing specs: `core.rispecs.md`, `engines.rispecs.md`, `formatting.rispecs.md`, `pde.rispecs.md`, `session.rispecs.md`, `unifier.rispecs.md`
|
|
24
|
+
|
|
25
|
+
**Desired Structural State:**
|
|
26
|
+
- RispecsEngine watches git commits affecting spec-related files
|
|
27
|
+
- Conventional commits automatically suggest spec updates
|
|
28
|
+
- Breaking changes trigger mandatory spec review
|
|
29
|
+
- Spec sections reference source files with auto-refresh
|
|
30
|
+
- Change log generated from git history integrated into specs
|
|
31
|
+
- LLM-assisted spec refinement based on implementation diffs
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Core Components
|
|
36
|
+
|
|
37
|
+
### RispecsEngine
|
|
38
|
+
|
|
39
|
+
**Purpose:** Orchestrate living specification lifecycle.
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
interface RispecsEngine {
|
|
43
|
+
// Initialization
|
|
44
|
+
init(projectRoot: string): Promise<void>;
|
|
45
|
+
|
|
46
|
+
// Watching
|
|
47
|
+
watchGitCommits(options: WatchOptions): void;
|
|
48
|
+
|
|
49
|
+
// Analysis
|
|
50
|
+
analyzeCommit(commit: GitCommit): SpecImpact[];
|
|
51
|
+
suggestSpecUpdates(impacts: SpecImpact[]): SpecUpdate[];
|
|
52
|
+
|
|
53
|
+
// Updating
|
|
54
|
+
applyUpdate(update: SpecUpdate, mode: 'auto' | 'interactive'): Promise<void>;
|
|
55
|
+
|
|
56
|
+
// Validation
|
|
57
|
+
validateSpecCoverage(): CoverageReport;
|
|
58
|
+
detectDrift(): DriftReport;
|
|
59
|
+
|
|
60
|
+
// Generation
|
|
61
|
+
generateChangeLog(since: string): string;
|
|
62
|
+
refreshSourceReferences(): Promise<void>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
interface WatchOptions {
|
|
66
|
+
branches: string[]; // e.g., ['main', 'develop']
|
|
67
|
+
filePatterns: string[]; // e.g., ['src/**/*.ts']
|
|
68
|
+
specDirectory: string; // e.g., 'rispecs'
|
|
69
|
+
autoUpdate: boolean;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
interface SpecImpact {
|
|
73
|
+
commit: GitCommit;
|
|
74
|
+
affectedSpecs: string[]; // Spec file paths
|
|
75
|
+
impactType: 'additive' | 'modifying' | 'breaking';
|
|
76
|
+
suggestedSections: string[]; // Sections to update
|
|
77
|
+
confidence: number; // 0-1
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
interface SpecUpdate {
|
|
81
|
+
specFile: string;
|
|
82
|
+
section: string;
|
|
83
|
+
currentContent: string;
|
|
84
|
+
proposedContent: string;
|
|
85
|
+
reason: string;
|
|
86
|
+
sourceCommits: string[]; // SHA references
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### ConventionalCommitParser
|
|
91
|
+
|
|
92
|
+
**Purpose:** Extract specification-relevant information from commits.
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
interface ConventionalCommitParser {
|
|
96
|
+
parse(commitMessage: string): ParsedCommit;
|
|
97
|
+
|
|
98
|
+
mapToSpecImpact(parsed: ParsedCommit, diff: GitDiff): SpecImpact;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
interface ParsedCommit {
|
|
102
|
+
type: 'feat' | 'fix' | 'refactor' | 'docs' | 'chore' | 'breaking';
|
|
103
|
+
scope?: string; // e.g., 'memory', 'engines', 'session'
|
|
104
|
+
description: string;
|
|
105
|
+
body?: string;
|
|
106
|
+
footers?: Record<string, string>;
|
|
107
|
+
breaking: boolean;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Mapping conventional commit scopes to spec files
|
|
111
|
+
const SCOPE_TO_SPEC: Record<string, string> = {
|
|
112
|
+
'memory': 'session.rispecs.md',
|
|
113
|
+
'engines': 'engines.rispecs.md',
|
|
114
|
+
'unifier': 'unifier.rispecs.md',
|
|
115
|
+
'formatting': 'formatting.rispecs.md',
|
|
116
|
+
'cli': 'core.rispecs.md',
|
|
117
|
+
'config': 'core.rispecs.md',
|
|
118
|
+
};
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### SourceReferenceManager
|
|
122
|
+
|
|
123
|
+
**Purpose:** Maintain links between spec sections and source files.
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
interface SourceReferenceManager {
|
|
127
|
+
// Extract references from spec markdown
|
|
128
|
+
parseReferences(specContent: string): SourceReference[];
|
|
129
|
+
|
|
130
|
+
// Validate references still exist
|
|
131
|
+
validateReferences(refs: SourceReference[]): ValidationResult;
|
|
132
|
+
|
|
133
|
+
// Update line numbers after code changes
|
|
134
|
+
refreshLineNumbers(refs: SourceReference[], diff: GitDiff): SourceReference[];
|
|
135
|
+
|
|
136
|
+
// Inject fresh code snippets
|
|
137
|
+
refreshCodeBlocks(specContent: string): string;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
interface SourceReference {
|
|
141
|
+
specFile: string;
|
|
142
|
+
specSection: string;
|
|
143
|
+
sourceFile: string;
|
|
144
|
+
lineRange?: [number, number];
|
|
145
|
+
symbol?: string; // e.g., 'runGeminiHeadless'
|
|
146
|
+
type: 'implementation' | 'interface' | 'example';
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### DriftDetector
|
|
151
|
+
|
|
152
|
+
**Purpose:** Identify when specifications diverge from implementation.
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
interface DriftDetector {
|
|
156
|
+
// Compare spec assertions to actual code
|
|
157
|
+
detectDrift(specFile: string): DriftReport;
|
|
158
|
+
|
|
159
|
+
// Batch check all specs
|
|
160
|
+
fullScan(): DriftReport[];
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
interface DriftReport {
|
|
164
|
+
specFile: string;
|
|
165
|
+
driftItems: DriftItem[];
|
|
166
|
+
overallHealth: 'healthy' | 'warning' | 'critical';
|
|
167
|
+
lastValidated: string;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
interface DriftItem {
|
|
171
|
+
section: string;
|
|
172
|
+
claim: string; // What the spec says
|
|
173
|
+
reality: string; // What the code does
|
|
174
|
+
severity: 'minor' | 'moderate' | 'major';
|
|
175
|
+
suggestedAction: 'update_spec' | 'update_code' | 'investigate';
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Integration with mia-code
|
|
182
|
+
|
|
183
|
+
### Workflow Integration
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
// In mia-code CLI
|
|
187
|
+
import { RispecsEngine } from './rispecs/engine';
|
|
188
|
+
|
|
189
|
+
// Post-session hook
|
|
190
|
+
async function onSessionEnd(sessionSummary: SessionSummary) {
|
|
191
|
+
const engine = new RispecsEngine();
|
|
192
|
+
|
|
193
|
+
// Check for spec-relevant changes
|
|
194
|
+
const recentCommits = await git.log({ since: session.startedAt });
|
|
195
|
+
const impacts = recentCommits.map(c => engine.analyzeCommit(c)).flat();
|
|
196
|
+
|
|
197
|
+
if (impacts.length > 0) {
|
|
198
|
+
const updates = engine.suggestSpecUpdates(impacts);
|
|
199
|
+
|
|
200
|
+
// Present to user via Miette interpretation
|
|
201
|
+
console.log('🌸 miette: These specifications may need attention:');
|
|
202
|
+
for (const update of updates) {
|
|
203
|
+
console.log(` - ${update.specFile} / ${update.section}`);
|
|
204
|
+
console.log(` Reason: ${update.reason}`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Ceremonial Integration
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
// Log spec updates as ceremonies
|
|
214
|
+
const ceremony: Ceremony = {
|
|
215
|
+
type: 'spec_updated',
|
|
216
|
+
participants: ['rispec_engine', 'developer'],
|
|
217
|
+
intentions: ['Maintain living documentation'],
|
|
218
|
+
observations: [
|
|
219
|
+
`Updated ${update.specFile} section "${update.section}"`,
|
|
220
|
+
`Based on commits: ${update.sourceCommits.join(', ')}`
|
|
221
|
+
],
|
|
222
|
+
timestamp: new Date().toISOString()
|
|
223
|
+
};
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Git Hooks Integration
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# .git/hooks/post-commit
|
|
230
|
+
#!/bin/bash
|
|
231
|
+
npx mia-code rispecs check-drift --quiet
|
|
232
|
+
if [ $? -ne 0 ]; then
|
|
233
|
+
echo "⚠️ Specification drift detected. Run 'mia-code rispecs validate' for details."
|
|
234
|
+
fi
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Spec File Enhancements
|
|
240
|
+
|
|
241
|
+
### Source Reference Syntax
|
|
242
|
+
|
|
243
|
+
```markdown
|
|
244
|
+
<!-- In rispecs file -->
|
|
245
|
+
|
|
246
|
+
## Implementation Reference
|
|
247
|
+
|
|
248
|
+
<!-- @source-ref: src/geminiHeadless.ts#runGeminiHeadless -->
|
|
249
|
+
```typescript
|
|
250
|
+
export async function runGeminiHeadless(
|
|
251
|
+
prompt: string,
|
|
252
|
+
config: MiaCodeConfig,
|
|
253
|
+
sessionId?: string
|
|
254
|
+
): Promise<GeminiJsonEvent[]>
|
|
255
|
+
```
|
|
256
|
+
<!-- @source-ref-end -->
|
|
257
|
+
|
|
258
|
+
Last synced: 2026-01-30 from commit abc1234
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Change Log Section
|
|
262
|
+
|
|
263
|
+
```markdown
|
|
264
|
+
## Specification Change Log
|
|
265
|
+
|
|
266
|
+
<!-- @changelog-since: 2026-01-01 -->
|
|
267
|
+
| Date | Commit | Section | Change |
|
|
268
|
+
|------|--------|---------|--------|
|
|
269
|
+
| 2026-01-28 | def5678 | Engine Selection | Added Ollama support |
|
|
270
|
+
| 2026-01-15 | abc1234 | Session Resume | Fixed project path matching |
|
|
271
|
+
<!-- @changelog-end -->
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## CLI Commands
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Validate all specs against current implementation
|
|
280
|
+
mia-code rispecs validate
|
|
281
|
+
|
|
282
|
+
# Check for drift since last validation
|
|
283
|
+
mia-code rispecs check-drift
|
|
284
|
+
|
|
285
|
+
# Suggest updates based on recent commits
|
|
286
|
+
mia-code rispecs suggest-updates --since="1 week ago"
|
|
287
|
+
|
|
288
|
+
# Apply suggested update interactively
|
|
289
|
+
mia-code rispecs apply-update --interactive
|
|
290
|
+
|
|
291
|
+
# Refresh source references and code blocks
|
|
292
|
+
mia-code rispecs refresh-sources
|
|
293
|
+
|
|
294
|
+
# Generate change log
|
|
295
|
+
mia-code rispecs changelog --since="2026-01-01" --output=CHANGELOG.md
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## API Surface
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
export class RispecsEngine {
|
|
304
|
+
// Lifecycle
|
|
305
|
+
static create(projectRoot: string): Promise<RispecsEngine>;
|
|
306
|
+
|
|
307
|
+
// Analysis
|
|
308
|
+
analyzeCommits(since: string): Promise<SpecImpact[]>;
|
|
309
|
+
detectDrift(): Promise<DriftReport[]>;
|
|
310
|
+
validateCoverage(): Promise<CoverageReport>;
|
|
311
|
+
|
|
312
|
+
// Updates
|
|
313
|
+
suggestUpdates(): Promise<SpecUpdate[]>;
|
|
314
|
+
applyUpdate(update: SpecUpdate): Promise<void>;
|
|
315
|
+
|
|
316
|
+
// References
|
|
317
|
+
refreshReferences(): Promise<void>;
|
|
318
|
+
validateReferences(): Promise<ValidationResult>;
|
|
319
|
+
|
|
320
|
+
// Generation
|
|
321
|
+
generateChangelog(options: ChangelogOptions): string;
|
|
322
|
+
|
|
323
|
+
// Watching
|
|
324
|
+
watch(options: WatchOptions): Disposable;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
interface CoverageReport {
|
|
328
|
+
totalSourceFiles: number;
|
|
329
|
+
referencedFiles: number;
|
|
330
|
+
unreferencedFiles: string[];
|
|
331
|
+
specFiles: string[];
|
|
332
|
+
coveragePercent: number;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
interface ChangelogOptions {
|
|
336
|
+
since: string;
|
|
337
|
+
groupBy: 'commit' | 'spec' | 'date';
|
|
338
|
+
format: 'markdown' | 'json';
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Success Criteria
|
|
345
|
+
|
|
346
|
+
✅ RispecsEngine detects spec-relevant commits automatically
|
|
347
|
+
✅ Conventional commit scopes map to spec files
|
|
348
|
+
✅ Source references update line numbers on code change
|
|
349
|
+
✅ Drift detection identifies spec/code divergence
|
|
350
|
+
✅ Change logs generated from git history
|
|
351
|
+
✅ CLI commands integrate into mia-code workflow
|
|
352
|
+
✅ Ceremonial logging for spec updates
|
|
353
|
+
✅ Git hooks available for continuous validation
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## References
|
|
358
|
+
|
|
359
|
+
- mia-code existing rispecs: `/a/src/mia-code/rispecs/`
|
|
360
|
+
- Conventional Commits: https://www.conventionalcommits.org/
|
|
361
|
+
- Git commit analysis: `/a/src/memories/gist_research__coaia_memory_to_narrative_beats_251214.jsonl`
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# MCP Server Architecture Specification
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification v1.0
|
|
4
|
+
> Document: mia-code/rispecs/mcp.rispecs.md
|
|
5
|
+
> Status: IMPLEMENTED
|
|
6
|
+
|
|
7
|
+
## Creative Intent
|
|
8
|
+
|
|
9
|
+
mia-code exposes its sub-CLI capabilities (miaco, miatel, miawa) as MCP (Model Context Protocol) servers, enabling external LLMs like Claude Code to invoke engineering, story, and ceremony tools directly. This transforms mia-code from a standalone agent into a composable toolset that any MCP-compatible host can orchestrate.
|
|
10
|
+
|
|
11
|
+
## Structural Tension Analysis
|
|
12
|
+
|
|
13
|
+
**Current Structural Reality:**
|
|
14
|
+
- Three sub-CLIs (miaco, miatel, miawa) exist as standalone Commander.js programs
|
|
15
|
+
- Each has structured commands for its domain (charts, beats, ceremonies)
|
|
16
|
+
- External agents cannot invoke these tools without shell spawning and output parsing
|
|
17
|
+
- Claude Code's MCP integration expects JSON-RPC 2.0 over stdio
|
|
18
|
+
|
|
19
|
+
**Desired Structural State:**
|
|
20
|
+
- Each sub-CLI is accessible as a named MCP server (miaco, miatel, miawa)
|
|
21
|
+
- Servers implement the MCP protocol: `initialize` → `tools/list` → `tools/call`
|
|
22
|
+
- Tool schemas expose full inputSchema with properties, types, and required fields
|
|
23
|
+
- External hosts connect via stdio transport and call tools by name
|
|
24
|
+
- Tool handlers delegate to sub-CLI commands with `--json` output parsing
|
|
25
|
+
|
|
26
|
+
## Architecture
|
|
27
|
+
|
|
28
|
+
### Protocol Layer
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Claude Code (or any MCP host)
|
|
32
|
+
│
|
|
33
|
+
├── stdio ──→ miaco-server.js (Engineering World)
|
|
34
|
+
├── stdio ──→ miatel-server.js (Story World)
|
|
35
|
+
└── stdio ──→ miawa-server.js (Ceremony World)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Each server is a standalone Node.js process that:
|
|
39
|
+
1. Reads JSON-RPC 2.0 messages from stdin
|
|
40
|
+
2. Handles `initialize`, `tools/list`, `tools/call` methods
|
|
41
|
+
3. Writes JSON-RPC 2.0 responses to stdout
|
|
42
|
+
4. Delegates tool execution to sub-CLI via `child_process.spawn`
|
|
43
|
+
|
|
44
|
+
### Module Structure
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
src/mcp/
|
|
48
|
+
├── utils.ts # Shared: MCPTool/MCPToolResult types, runCLI,
|
|
49
|
+
│ # parseJSONOutput, createToolResult, buildArgs,
|
|
50
|
+
│ # bootstrapMCPServer (protocol handler)
|
|
51
|
+
├── miaco-server.ts # Tool definitions + handler + server startup
|
|
52
|
+
├── miatel-server.ts # Tool definitions + handler + server startup
|
|
53
|
+
├── miawa-server.ts # Tool definitions + handler + server startup
|
|
54
|
+
├── config-generator.ts # Generates MCP config JSON for host setup
|
|
55
|
+
└── index.ts # Registry: re-exports all servers + routing
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Each `*-server.ts` file serves dual purpose:
|
|
59
|
+
- **Library mode:** Exports tools array, handler function, and config for use by `index.ts` and `config-generator.ts`
|
|
60
|
+
- **Server mode:** When run directly (`node miaco-server.js`), starts the MCP protocol handler via `bootstrapMCPServer()`
|
|
61
|
+
|
|
62
|
+
### Server Startup Detection
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
const isMain = process.argv[1] && (
|
|
66
|
+
process.argv[1].endsWith("miaco-server.js") ||
|
|
67
|
+
process.argv[1].endsWith("miaco-server.ts")
|
|
68
|
+
);
|
|
69
|
+
if (isMain) {
|
|
70
|
+
bootstrapMCPServer(config, handler);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Protocol Bootstrap
|
|
75
|
+
|
|
76
|
+
`bootstrapMCPServer()` in `utils.ts` uses `@modelcontextprotocol/sdk`:
|
|
77
|
+
- `Server` class (low-level) for direct JSON schema passthrough
|
|
78
|
+
- `StdioServerTransport` for stdio communication
|
|
79
|
+
- `ListToolsRequestSchema` handler returns tool definitions with full inputSchema
|
|
80
|
+
- `CallToolRequestSchema` handler routes to the appropriate tool handler
|
|
81
|
+
|
|
82
|
+
### Tool Execution Flow
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
MCP Host sends: tools/call { name: "miaco_chart_create", arguments: {...} }
|
|
86
|
+
↓
|
|
87
|
+
CallToolRequestSchema handler
|
|
88
|
+
↓
|
|
89
|
+
handleMiacoTool("miaco_chart_create", args)
|
|
90
|
+
↓
|
|
91
|
+
buildArgs(["chart", "create"], args, { outcome: "--outcome", ... })
|
|
92
|
+
↓
|
|
93
|
+
runCLI(CLI_PATH, [...cliArgs, "--json"])
|
|
94
|
+
→ spawn("node", ["/path/to/miaco/dist/index.js", "chart", "create", ...])
|
|
95
|
+
↓
|
|
96
|
+
parseJSONOutput(stdout)
|
|
97
|
+
↓
|
|
98
|
+
createToolResult(parsed) → { content: [{ type: "text", text: "..." }] }
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Configuration
|
|
102
|
+
|
|
103
|
+
### Host Configuration (`.mcp.mia-code.json`)
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"mcpServers": {
|
|
108
|
+
"miatel": {
|
|
109
|
+
"command": "node",
|
|
110
|
+
"args": ["/a/src/mia-code/dist/mcp/miatel-server.js"],
|
|
111
|
+
"env": {}
|
|
112
|
+
},
|
|
113
|
+
"miawa": {
|
|
114
|
+
"command": "node",
|
|
115
|
+
"args": ["/a/src/mia-code/dist/mcp/miawa-server.js"],
|
|
116
|
+
"env": {}
|
|
117
|
+
},
|
|
118
|
+
"miaco": {
|
|
119
|
+
"command": "node",
|
|
120
|
+
"args": ["/a/src/mia-code/dist/mcp/miaco-server.js"],
|
|
121
|
+
"env": {}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Place this file in the project root or parent directory (e.g., `/a/src/.mcp.mia-code.json`).
|
|
128
|
+
|
|
129
|
+
### Programmatic Config Generation
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
mia-code mcp-config # JSON config for Claude Code
|
|
133
|
+
mia-code mcp-config --tools # Tool manifest (all tools with schemas)
|
|
134
|
+
mia-code mcp-config --info # Server metadata + tools
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Tool Catalog
|
|
138
|
+
|
|
139
|
+
### miaco (Engineering World) — 8 tools
|
|
140
|
+
|
|
141
|
+
| Tool | Purpose | Required Args |
|
|
142
|
+
|------|---------|---------------|
|
|
143
|
+
| `miaco_chart_create` | Create structural tension chart | outcome, reality |
|
|
144
|
+
| `miaco_chart_list` | List active charts | — |
|
|
145
|
+
| `miaco_chart_add_step` | Add action step to chart | chart, title, reality |
|
|
146
|
+
| `miaco_chart_complete` | Mark step complete | step |
|
|
147
|
+
| `miaco_chart_review` | Review with Creator Moment | chart |
|
|
148
|
+
| `miaco_decompose` | PDE prompt decomposition | prompt |
|
|
149
|
+
| `miaco_decompose_list` | List stored decompositions | — |
|
|
150
|
+
| `miaco_decompose_get` | Get specific decomposition | id |
|
|
151
|
+
|
|
152
|
+
### miatel (Story World) — 4 tools
|
|
153
|
+
|
|
154
|
+
| Tool | Purpose | Required Args |
|
|
155
|
+
|------|---------|---------------|
|
|
156
|
+
| `miatel_beat_create` | Create story beat | text |
|
|
157
|
+
| `miatel_beat_list` | List beats in session | — |
|
|
158
|
+
| `miatel_beat_analyze` | Analyze beat with lens | beatId |
|
|
159
|
+
| `miatel_beat_enrich` | Apply emotional enrichment | beatId |
|
|
160
|
+
|
|
161
|
+
### miawa (Ceremony World) — 6 tools
|
|
162
|
+
|
|
163
|
+
| Tool | Purpose | Required Args |
|
|
164
|
+
|------|---------|---------------|
|
|
165
|
+
| `miawa_ceremony_init` | Initiate ceremony | title, type |
|
|
166
|
+
| `miawa_ceremony_list` | List ceremonies | — |
|
|
167
|
+
| `miawa_ceremony_advance` | Advance to next movement | ceremony |
|
|
168
|
+
| `miawa_ceremony_close` | Close with wisdom archiving | — |
|
|
169
|
+
| `miawa_ceremony_wisdom` | Retrieve archived wisdom | — |
|
|
170
|
+
| `miawa_ceremony_stage` | Check Four Movements stage | — |
|
|
171
|
+
|
|
172
|
+
## Dependencies
|
|
173
|
+
|
|
174
|
+
- `@modelcontextprotocol/sdk` — MCP protocol implementation (Server, StdioServerTransport)
|
|
175
|
+
- Sub-CLI builds must be present at `miaco/dist/`, `miatel/dist/`, `miawa/dist/`
|
|
176
|
+
- Node.js `child_process` for CLI delegation
|
|
177
|
+
|
|
178
|
+
## Known Constraints
|
|
179
|
+
|
|
180
|
+
- Tool handlers spawn sub-CLI processes — each tool call incurs process creation overhead
|
|
181
|
+
- Sub-CLI `--json` output support is required for all commands exposed as tools
|
|
182
|
+
- Session ID can be passed via tool args or `MIA_SESSION_ID` environment variable
|
|
183
|
+
- Error handling: CLI failures return `{ isError: true, content: [{ type: "text", text: error }] }`
|
|
184
|
+
|
|
185
|
+
## Creative Advancement Scenario
|
|
186
|
+
|
|
187
|
+
**Desired Outcome:** Claude Code agent uses mia-code tools to create a structural tension chart during a coding session.
|
|
188
|
+
|
|
189
|
+
**Natural Progression:**
|
|
190
|
+
1. Developer launches Claude Code in project with `.mcp.mia-code.json`
|
|
191
|
+
2. Claude Code connects to miaco MCP server via stdio
|
|
192
|
+
3. Agent calls `miaco_chart_create` with outcome and reality
|
|
193
|
+
4. Server delegates to `miaco chart create --outcome "..." --reality "..." --json`
|
|
194
|
+
5. JSON response flows back through MCP protocol
|
|
195
|
+
6. Agent uses chart ID to add steps, track progress, review
|
|
196
|
+
|
|
197
|
+
**Achieved Outcome:** External agent seamlessly uses mia-code's engineering tools without shell scripting or output parsing.
|