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,210 @@
|
|
|
1
|
+
# Platform Survey: Fork Candidates for mia-code Next Generation
|
|
2
|
+
|
|
3
|
+
**Date**: 2026-03-20
|
|
4
|
+
**Purpose**: Evaluate Pi, OpenClaw, OpenCode, and OpenHands as fork/foundation candidates for mia-code's major refactoring.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Executive Summary
|
|
9
|
+
|
|
10
|
+
| Candidate | Language | License | Fork Exists | Best For | Adaptation Cost |
|
|
11
|
+
|---|---|---|---|---|---|
|
|
12
|
+
| **Pi** (`badlogic/pi-mono`) | TypeScript | MIT | `miadisabelle/mia-pi-mono` | Session trees, multi-provider AI SDK, extension hot-reload | LOW (use as npm dep) |
|
|
13
|
+
| **OpenClaw** (`openclaw/openclaw`) | TypeScript | MIT | `miadisabelle/mia-openclaw` | Multi-channel gateway, plugin system, Slack, messaging surfaces | MEDIUM-HIGH |
|
|
14
|
+
| **OpenCode** (`anomalyco/opencode`) | TypeScript/Bun | MIT | `miadisabelle/mia-opencode` | Client-server split, LSP, web+desktop+TUI, 20+ providers | MEDIUM |
|
|
15
|
+
| **OpenHands** (`OpenHands/OpenHands`) | Python+TS | MIT | None | Sandbox isolation, SWE-bench SOTA, event-sourced state | HIGH (language mismatch) |
|
|
16
|
+
|
|
17
|
+
**Recommendation**: Hybrid approach — **Pi's AI SDK + session model** as the core engine, **OpenClaw's gateway + channel system** for messaging surfaces, cherry-pick **OpenCode's client-server pattern** for web/desktop delivery.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Candidate Deep Dives
|
|
22
|
+
|
|
23
|
+
### 1. Pi (`badlogic/pi-mono`) — Mario Zechner
|
|
24
|
+
|
|
25
|
+
**7-package TypeScript monorepo:**
|
|
26
|
+
- `pi-ai` — Unified multi-provider LLM API (10 API backends, 22+ providers)
|
|
27
|
+
- `pi-agent-core` — Stateful agent loop with tool execution
|
|
28
|
+
- `pi-coding-agent` — CLI with session trees, extensions, skills, compaction
|
|
29
|
+
- `pi-tui` — Terminal UI with differential rendering
|
|
30
|
+
- `pi-web-ui` — Web components (mini-lit + Tailwind): ChatPanel, ArtifactsPanel
|
|
31
|
+
- `pi-mom` — Slack bot with per-channel Docker-sandboxed sessions
|
|
32
|
+
- `pi-pods` — vLLM GPU deployment manager
|
|
33
|
+
|
|
34
|
+
**Killer features for mia-code:**
|
|
35
|
+
1. **Session trees in JSONL** — branch, fork, rewind, compact. Full history preserved.
|
|
36
|
+
2. **Extension hot-reload** — agent writes code, `/reload`, tests, iterates. No restart.
|
|
37
|
+
3. **Custom messages** — extensions persist state in sessions via `custom` entries
|
|
38
|
+
4. **Cross-provider handoff** — switch models mid-conversation transparently
|
|
39
|
+
5. **Event middleware** — 30+ lifecycle events extensions can intercept/block/modify
|
|
40
|
+
6. **Minimal core** — 4 built-in tools, everything else additive via extensions
|
|
41
|
+
|
|
42
|
+
**MCP stance**: Deliberately excluded. Skills (markdown) preferred. MCP possible via extension.
|
|
43
|
+
|
|
44
|
+
**Fork strategy**: Don't fork — **depend on `pi-ai` and `pi-agent-core` as npm packages**. Build mia-code's session/extension layer on top. The coding-agent layer is where Pi's opinions diverge from our needs.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### 2. OpenClaw (`openclaw/openclaw`)
|
|
49
|
+
|
|
50
|
+
**Multi-channel AI gateway**, TypeScript ESM, pnpm monorepo. Version 2026.3.14.
|
|
51
|
+
|
|
52
|
+
**Architecture**: Gateway-centric WebSocket+HTTP server on port 18789. 65+ RPC handlers. Multi-lane concurrency.
|
|
53
|
+
|
|
54
|
+
**Key strengths:**
|
|
55
|
+
- **70 extensions** — 20+ messaging channels (Slack, Discord, Telegram, Matrix, Teams, Signal, iMessage, WhatsApp...)
|
|
56
|
+
- **Plugin API** — typed manifests, SDK, tools, hooks, CLI extensions
|
|
57
|
+
- **55 bundled skills** — mcporter (MCP bridge), coding-agent, GitHub, Notion, etc.
|
|
58
|
+
- **Memory system** — file-backed + LanceDB vector search
|
|
59
|
+
- **Subagent registry** — spawn/steer/announce pattern
|
|
60
|
+
- **ACP bridge** — Agent Client Protocol for IDE integration
|
|
61
|
+
- **Native apps** — macOS, iOS, Android companions
|
|
62
|
+
|
|
63
|
+
**Internally uses Pi**: The `agents/` module wraps `@mariozechner/pi-agent-core`, `pi-ai`, `pi-coding-agent`. OpenClaw IS a Pi consumer.
|
|
64
|
+
|
|
65
|
+
**Gaps for mia-code**: No narrative/story layer, no creative orientation, no embodiment system, no rispecs workflow, MCP delegated to external mcporter.
|
|
66
|
+
|
|
67
|
+
**Already have rispecs**: 4 specs at `miadisabelle/mia-openclaw/rispecs/` covering foundation, delegation, human consultation, messaging.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### 3. OpenCode (`anomalyco/opencode`)
|
|
72
|
+
|
|
73
|
+
**AI-powered dev tool**, Bun+Turborepo, 17 packages.
|
|
74
|
+
|
|
75
|
+
**Key differentiator**: True **client-server architecture** — engine runs as Hono HTTP+SSE server (port 4096), all UIs are replaceable HTTP clients.
|
|
76
|
+
|
|
77
|
+
**Key strengths:**
|
|
78
|
+
- **4 client surfaces** — Terminal TUI (Ink/React), Web app (SolidJS), Desktop (Tauri), ACP (Zed)
|
|
79
|
+
- **First-class LSP integration** — language server diagnostics fed to AI
|
|
80
|
+
- **20+ provider SDKs** — via Vercel AI SDK v5
|
|
81
|
+
- **Full MCP client** — stdio, SSE, StreamableHTTP + OAuth transports
|
|
82
|
+
- **Git worktrees** — parallel sessions on isolated branches
|
|
83
|
+
- **Snapshot/revert** — separate git repo tracks per-session file states
|
|
84
|
+
- **Plugin system** — npm-distributed, hooks for auth/tools/prompts
|
|
85
|
+
|
|
86
|
+
**Risks**: Deep Bun dependency (`Bun.file()`, `Bun.Glob`, `Bun.$`), SST/Cloudflare coupling for SaaS infra, Zen monetization code paths.
|
|
87
|
+
|
|
88
|
+
**Fork strategy**: Strip SaaS packages (console, enterprise, function). Keep core + app + sdk + plugin. Customize agents/tools/skills via `.opencode/` convention.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### 4. OpenHands (formerly OpenDevin)
|
|
93
|
+
|
|
94
|
+
**Python-heavy** (73.5%) coding agent platform. 69.5k GitHub stars. SOTA on SWE-Bench (60.6%).
|
|
95
|
+
|
|
96
|
+
**Key strengths:**
|
|
97
|
+
- **Production-grade Docker sandboxing** — each agent gets isolated container
|
|
98
|
+
- **Event-sourced state** — immutable event log, deterministic replay
|
|
99
|
+
- **4-package SDK** — composable (sdk, tools, workspace, agent_server)
|
|
100
|
+
- **Plugin system** — skills, hooks, MCP, commands, slash menus
|
|
101
|
+
- **LiteLLM** — any provider supported
|
|
102
|
+
- **Web-first** — React SPA with embedded VSCode, VNC, Chromium
|
|
103
|
+
|
|
104
|
+
**Disqualifier for mia-code**: Python backend creates language mismatch with our TypeScript ecosystem. Optimized for SWE-bench task completion, not creative development.
|
|
105
|
+
|
|
106
|
+
**Possible extraction**: Use sandbox/execution layer as a subprocess service, not as fork base.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Comparative Matrix
|
|
111
|
+
|
|
112
|
+
| Dimension | Pi | OpenClaw | OpenCode | OpenHands |
|
|
113
|
+
|---|---|---|---|---|
|
|
114
|
+
| **Session trees** | ★★★★★ | ★★ (via Pi) | ★★★ (worktrees) | ★★ (event log) |
|
|
115
|
+
| **Multi-provider** | ★★★★★ (22+) | ★★★★ (via Pi) | ★★★★★ (20+ via AI SDK) | ★★★★★ (LiteLLM) |
|
|
116
|
+
| **Extension system** | ★★★★★ (hot-reload) | ★★★★★ (70 plugins) | ★★★★ (npm plugins) | ★★★★ (plugin registry) |
|
|
117
|
+
| **Messaging channels** | ★★ (Slack only) | ★★★★★ (20+ channels) | ★★ (Slack pkg) | ★★ (Slack/Jira) |
|
|
118
|
+
| **Web UI** | ★★★ (components) | ★★★ (dashboard) | ★★★★★ (SolidJS app) | ★★★★★ (React SPA) |
|
|
119
|
+
| **Desktop** | ✗ | ★★★ (native apps) | ★★★★ (Tauri) | ✗ |
|
|
120
|
+
| **MCP support** | ✗ (by design) | ★★ (mcporter) | ★★★★★ (native client) | ★★★ (via plugins) |
|
|
121
|
+
| **Sandbox** | ★★ (Docker via mom) | ★★★ (Docker sandbox) | ★★ (git snapshots) | ★★★★★ (production Docker) |
|
|
122
|
+
| **LSP** | ✗ | ✗ | ★★★★ (native) | ✗ |
|
|
123
|
+
| **TypeScript native** | ★★★★★ | ★★★★★ | ★★★★ (Bun-coupled) | ★★ (Python primary) |
|
|
124
|
+
| **Forkability** | ★★★★★ | ★★★ | ★★★★ | ★★ |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Proposed Hybrid Architecture for mia-code v2
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
┌─────────────────────────────────────────────────────────┐
|
|
132
|
+
│ mia-code v2 │
|
|
133
|
+
│ │
|
|
134
|
+
│ ┌──────────────────────────────────────────────┐ │
|
|
135
|
+
│ │ DOMAIN LAYER (mia-code original) │ │
|
|
136
|
+
│ │ • Mia/Miette embodiment │ │
|
|
137
|
+
│ │ • RISE framework / rispecs │ │
|
|
138
|
+
│ │ • Narrative memory / structural tension │ │
|
|
139
|
+
│ │ • Two-Eyed Seeing / ceremony │ │
|
|
140
|
+
│ │ • PDE decomposition │ │
|
|
141
|
+
│ │ • Creative orientation state machine │ │
|
|
142
|
+
│ └──────────────────┬───────────────────────────┘ │
|
|
143
|
+
│ │ │
|
|
144
|
+
│ ┌──────────────────▼───────────────────────────┐ │
|
|
145
|
+
│ │ ORCHESTRATION (from OpenClaw patterns) │ │
|
|
146
|
+
│ │ • Gateway pattern (WebSocket+HTTP) │ │
|
|
147
|
+
│ │ • Channel adapters (Slack, Discord, etc.) │ │
|
|
148
|
+
│ │ • Plugin registry + typed manifests │ │
|
|
149
|
+
│ │ • Subagent spawn/steer/announce │ │
|
|
150
|
+
│ │ • Skill marketplace │ │
|
|
151
|
+
│ └──────────────────┬───────────────────────────┘ │
|
|
152
|
+
│ │ │
|
|
153
|
+
│ ┌──────────────────▼───────────────────────────┐ │
|
|
154
|
+
│ │ CLIENT DELIVERY (from OpenCode patterns) │ │
|
|
155
|
+
│ │ • HTTP+SSE server (engine as service) │ │
|
|
156
|
+
│ │ • Web app (SolidJS or similar) │ │
|
|
157
|
+
│ │ • Desktop app (Tauri) │ │
|
|
158
|
+
│ │ • Terminal TUI │ │
|
|
159
|
+
│ │ • ACP for IDE integration │ │
|
|
160
|
+
│ └──────────────────┬───────────────────────────┘ │
|
|
161
|
+
│ │ │
|
|
162
|
+
│ ┌──────────────────▼───────────────────────────┐ │
|
|
163
|
+
│ │ ENGINE (from Pi — npm dependencies) │ │
|
|
164
|
+
│ │ • @mariozechner/pi-ai (multi-provider LLM) │ │
|
|
165
|
+
│ │ • @mariozechner/pi-agent-core (agent loop) │ │
|
|
166
|
+
│ │ • Session trees (JSONL, branch, fork, compact) │ │
|
|
167
|
+
│ │ • Extension hot-reload │ │
|
|
168
|
+
│ │ • Custom messages for state persistence │ │
|
|
169
|
+
│ │ • Cross-provider handoff │ │
|
|
170
|
+
│ └──────────────────────────────────────────────┘ │
|
|
171
|
+
│ │
|
|
172
|
+
│ ┌──────────────────────────────────────────────┐ │
|
|
173
|
+
│ │ OPTIONAL: OpenHands sandbox (subprocess) │ │
|
|
174
|
+
│ │ • Docker isolation for untrusted execution │ │
|
|
175
|
+
│ └──────────────────────────────────────────────┘ │
|
|
176
|
+
└─────────────────────────────────────────────────────────┘
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Action Steps for Next Phase
|
|
182
|
+
|
|
183
|
+
1. **Validate Pi npm dependency approach** — test `npm install @mariozechner/pi-ai @mariozechner/pi-agent-core` and build a minimal agent session
|
|
184
|
+
2. **Extract OpenClaw gateway pattern** — isolate the gateway+channel architecture from the Pi-agent coupling
|
|
185
|
+
3. **Prototype client-server split** — implement OpenCode's HTTP+SSE pattern with Pi engine underneath
|
|
186
|
+
4. **Draft revised rispecs** for `/workspace/rispecs/` incorporating:
|
|
187
|
+
- Session tree spec (from Pi)
|
|
188
|
+
- Multi-provider portability spec (from Pi)
|
|
189
|
+
- Gateway + channel spec (from OpenClaw)
|
|
190
|
+
- Client-server delivery spec (from OpenCode)
|
|
191
|
+
- Extension hot-reload spec (from Pi)
|
|
192
|
+
5. **Decide fork vs. compose** — full fork of one codebase, or compose from npm packages
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Sources
|
|
197
|
+
|
|
198
|
+
### Local Repos Examined
|
|
199
|
+
- `/workspace/repos/badlogic/pi-mono/` (upstream Pi)
|
|
200
|
+
- `/workspace/repos/miadisabelle/mia-pi-mono/` (our fork)
|
|
201
|
+
- `/workspace/repos/miadisabelle/mia-openclaw/` (our fork)
|
|
202
|
+
- `/workspace/repos/miadisabelle/mia-opencode/` (our fork)
|
|
203
|
+
|
|
204
|
+
### Key Files (50+ per candidate — see individual agent reports)
|
|
205
|
+
|
|
206
|
+
### External
|
|
207
|
+
- Armin Ronacher's Pi blog post: `lucumr.pocoo.org/2026/1/31/pi/`
|
|
208
|
+
- OpenHands GitHub: `github.com/OpenHands/OpenHands` (69.5k stars)
|
|
209
|
+
- OpenHands SDK: `github.com/OpenHands/software-agent-sdk`
|
|
210
|
+
- SWE-Bench results: 60.6% verified (OpenHands SOTA Nov 2025)
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
# mia-code Session Management Specification
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification v1.0
|
|
4
|
+
> Document: mia-code/rispecs/session.rispecs.md
|
|
5
|
+
|
|
6
|
+
## Creative Intent
|
|
7
|
+
|
|
8
|
+
mia-code enables developers to create seamless conversation continuity across project contexts. Users achieve uninterrupted workflow by having session state automatically persist and resume, eliminating manual tracking of conversation history.
|
|
9
|
+
|
|
10
|
+
## Structural Tension Analysis
|
|
11
|
+
|
|
12
|
+
**Current Structural Reality:**
|
|
13
|
+
- Agent CLIs use session IDs to maintain conversation context
|
|
14
|
+
- Session IDs are transient, displayed but not persisted by agent CLIs
|
|
15
|
+
- Developers must manually track and specify session IDs to resume
|
|
16
|
+
- No association between project directories and sessions exists
|
|
17
|
+
|
|
18
|
+
**Desired Structural State:**
|
|
19
|
+
- Sessions automatically persist with project directory association
|
|
20
|
+
- Returning to a project directory auto-resumes last conversation
|
|
21
|
+
- Interactive session picker available when multiple sessions exist
|
|
22
|
+
- Users focus on work; system handles session orchestration
|
|
23
|
+
|
|
24
|
+
## Session Architecture
|
|
25
|
+
|
|
26
|
+
### Session Lifecycle
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
First Prompt in Project
|
|
30
|
+
↓
|
|
31
|
+
Agent CLI generates new session_id
|
|
32
|
+
↓
|
|
33
|
+
Session ID captured from event stream
|
|
34
|
+
↓
|
|
35
|
+
MiaCodeSessionMeta created with project root
|
|
36
|
+
↓
|
|
37
|
+
Persisted to ~/.mia-code-sessions.json
|
|
38
|
+
↓
|
|
39
|
+
Subsequent prompts include --resume <sessionId>
|
|
40
|
+
↓
|
|
41
|
+
Agent CLI restores conversation context
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Session Index Structure
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
interface SessionIndex {
|
|
48
|
+
byProjectRoot: Record<string, MiaCodeSessionMeta>; // path → session
|
|
49
|
+
byId: Record<string, MiaCodeSessionMeta>; // id → session
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Storage Location:** `~/.mia-code-sessions.json`
|
|
54
|
+
|
|
55
|
+
**Index Strategy:**
|
|
56
|
+
- `byProjectRoot`: Quick lookup for auto-resume (most common path)
|
|
57
|
+
- `byId`: Quick lookup for explicit `--resume <id>` scenarios
|
|
58
|
+
|
|
59
|
+
## Components
|
|
60
|
+
|
|
61
|
+
### Session Remembering
|
|
62
|
+
|
|
63
|
+
**Description:** Persist new sessions with project association.
|
|
64
|
+
|
|
65
|
+
**Behavior:**
|
|
66
|
+
- Called after agent CLI returns new session ID
|
|
67
|
+
- Creates `MiaCodeSessionMeta` with id, timestamp, model, projectRoot
|
|
68
|
+
- Updates both `byProjectRoot` and `byId` indexes
|
|
69
|
+
- Overwrites existing session for same project (latest wins)
|
|
70
|
+
|
|
71
|
+
**Implementation:**
|
|
72
|
+
```typescript
|
|
73
|
+
function rememberSession(meta: MiaCodeSessionMeta): void {
|
|
74
|
+
const idx = loadIndex();
|
|
75
|
+
if (meta.projectRoot) {
|
|
76
|
+
idx.byProjectRoot[meta.projectRoot] = meta;
|
|
77
|
+
}
|
|
78
|
+
idx.byId[meta.id] = meta;
|
|
79
|
+
saveIndex(idx);
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Session Auto-Resume
|
|
84
|
+
|
|
85
|
+
**Description:** Automatically retrieve last session for current project.
|
|
86
|
+
|
|
87
|
+
**Behavior:**
|
|
88
|
+
- Lookup `projectRoot` in `byProjectRoot` index
|
|
89
|
+
- Return session meta if found, null otherwise
|
|
90
|
+
- Called during CLI initialization when no explicit resume specified
|
|
91
|
+
|
|
92
|
+
**Implementation:**
|
|
93
|
+
```typescript
|
|
94
|
+
function getLastSessionForProject(projectRoot: string): MiaCodeSessionMeta | null {
|
|
95
|
+
const idx = loadIndex();
|
|
96
|
+
return idx.byProjectRoot[projectRoot] ?? null;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Session Listing
|
|
101
|
+
|
|
102
|
+
**Description:** Enumerate all saved sessions for user visibility.
|
|
103
|
+
|
|
104
|
+
**Behavior:**
|
|
105
|
+
- Returns array of all `MiaCodeSessionMeta` from `byId` index
|
|
106
|
+
- Used by `/sessions` command and interactive picker
|
|
107
|
+
- Sorted by `startedAt` timestamp (implicit from insertion order)
|
|
108
|
+
|
|
109
|
+
**Implementation:**
|
|
110
|
+
```typescript
|
|
111
|
+
function listSessions(): MiaCodeSessionMeta[] {
|
|
112
|
+
const idx = loadIndex();
|
|
113
|
+
return Object.values(idx.byId);
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Interactive Session Picker
|
|
118
|
+
|
|
119
|
+
**Description:** User selects from available sessions for current project.
|
|
120
|
+
|
|
121
|
+
**Behavior:**
|
|
122
|
+
- Filters sessions to those matching current projectRoot
|
|
123
|
+
- Displays numbered list with truncated IDs and timestamps
|
|
124
|
+
- Option 0 starts new session
|
|
125
|
+
- Invalid input falls back to new session
|
|
126
|
+
|
|
127
|
+
**Implementation:**
|
|
128
|
+
```typescript
|
|
129
|
+
async function pickSession(projectRoot: string): Promise<string | undefined> {
|
|
130
|
+
const sessions = listSessions().filter(s => s.projectRoot === projectRoot);
|
|
131
|
+
|
|
132
|
+
if (sessions.length === 0) {
|
|
133
|
+
console.log(chalk.yellow("No saved sessions for this project."));
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
console.log(chalk.bold("\nAvailable sessions:"));
|
|
138
|
+
sessions.forEach((s, idx) => {
|
|
139
|
+
console.log(chalk.dim(` ${idx + 1}. ${s.id.slice(0, 12)}... (${s.startedAt})`));
|
|
140
|
+
});
|
|
141
|
+
console.log(chalk.dim(` 0. Start new session`));
|
|
142
|
+
|
|
143
|
+
// Readline prompt for selection...
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Session Clearing
|
|
148
|
+
|
|
149
|
+
**Description:** Remove all saved sessions.
|
|
150
|
+
|
|
151
|
+
**Behavior:**
|
|
152
|
+
- Resets both indexes to empty objects
|
|
153
|
+
- Writes empty index to storage file
|
|
154
|
+
- Invoked via `--clear` flag or `/clear` command
|
|
155
|
+
|
|
156
|
+
**Implementation:**
|
|
157
|
+
```typescript
|
|
158
|
+
function clearSessions(): void {
|
|
159
|
+
saveIndex({ byProjectRoot: {}, byId: {} });
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Data
|
|
164
|
+
|
|
165
|
+
### MiaCodeSessionMeta
|
|
166
|
+
|
|
167
|
+
**Description:** Session tracking metadata.
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
interface MiaCodeSessionMeta {
|
|
171
|
+
id: string; // Session UUID from agent CLI
|
|
172
|
+
startedAt: string; // ISO 8601 timestamp
|
|
173
|
+
model: string; // Model used (e.g., "gemini-2.5-pro")
|
|
174
|
+
projectRoot: string | null; // Absolute path to project directory
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Resume Modes
|
|
179
|
+
|
|
180
|
+
| Mode | Trigger | Behavior |
|
|
181
|
+
|------|---------|----------|
|
|
182
|
+
| Auto-resume | No `--resume` flag | Lookup session by projectRoot |
|
|
183
|
+
| Explicit ID | `--resume abc123` | Use provided session ID |
|
|
184
|
+
| Interactive | `--resume` (no ID) | Display picker for project sessions |
|
|
185
|
+
| New session | No existing session | Generate new session on first prompt |
|
|
186
|
+
|
|
187
|
+
## Creative Advancement Scenarios
|
|
188
|
+
|
|
189
|
+
### Creative Advancement Scenario: Project Return
|
|
190
|
+
|
|
191
|
+
**Desired Outcome:** Developer resumes prior conversation context instantly
|
|
192
|
+
|
|
193
|
+
**Current Structural Reality:** Session exists from yesterday's work in project
|
|
194
|
+
|
|
195
|
+
**Natural Progression:**
|
|
196
|
+
1. User invokes `mia-code` in project directory
|
|
197
|
+
2. `getLastSessionForProject(projectRoot)` returns saved session
|
|
198
|
+
3. Session ID displayed in header: `session: abc123...`
|
|
199
|
+
4. First prompt includes `--resume abc123`
|
|
200
|
+
5. Agent CLI restores conversation history
|
|
201
|
+
|
|
202
|
+
**Achieved Outcome:** Developer continues where they left off without any manual tracking
|
|
203
|
+
|
|
204
|
+
### Creative Advancement Scenario: Session Discovery
|
|
205
|
+
|
|
206
|
+
**Desired Outcome:** Developer explores available sessions for project
|
|
207
|
+
|
|
208
|
+
**Current Structural Reality:** Multiple sessions exist from different work contexts
|
|
209
|
+
|
|
210
|
+
**Natural Progression:**
|
|
211
|
+
1. User invokes `mia-code --resume` (no ID)
|
|
212
|
+
2. Interactive picker displays project sessions
|
|
213
|
+
3. User selects desired session (or 0 for new)
|
|
214
|
+
4. Selected session ID used for resume
|
|
215
|
+
|
|
216
|
+
**Achieved Outcome:** Developer chooses optimal conversation context for current task
|
|
217
|
+
|
|
218
|
+
### Creative Advancement Scenario: Fresh Start
|
|
219
|
+
|
|
220
|
+
**Desired Outcome:** Developer starts new conversation despite existing session
|
|
221
|
+
|
|
222
|
+
**Current Structural Reality:** Previous session exists but context is stale
|
|
223
|
+
|
|
224
|
+
**Natural Progression:**
|
|
225
|
+
1. User invokes `mia-code --resume` (interactive mode)
|
|
226
|
+
2. Selects option 0: Start new session
|
|
227
|
+
3. First prompt generates new session ID
|
|
228
|
+
4. New session persists, overwriting old project association
|
|
229
|
+
|
|
230
|
+
**Achieved Outcome:** Developer begins fresh while new session auto-persists
|
|
231
|
+
|
|
232
|
+
## CLI Integration
|
|
233
|
+
|
|
234
|
+
### Resume Flag Semantics
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# Auto-resume (default): use last session for project
|
|
238
|
+
mia-code chat
|
|
239
|
+
|
|
240
|
+
# Explicit resume: use specific session ID
|
|
241
|
+
mia-code chat --resume abc123def456
|
|
242
|
+
|
|
243
|
+
# Interactive picker: choose from project sessions
|
|
244
|
+
mia-code chat --resume
|
|
245
|
+
|
|
246
|
+
# Single prompt: explicit only (no auto-resume)
|
|
247
|
+
mia-code prompt "query" --resume abc123
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Session Commands
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# List all sessions
|
|
254
|
+
mia-code sessions
|
|
255
|
+
|
|
256
|
+
# Clear all sessions
|
|
257
|
+
mia-code sessions --clear
|
|
258
|
+
|
|
259
|
+
# Interactive slash commands
|
|
260
|
+
/session # Show current session info
|
|
261
|
+
/sessions # List all sessions (last 10)
|
|
262
|
+
/clear # Clear all sessions
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Advancing Patterns
|
|
266
|
+
|
|
267
|
+
1. **Project Association:** Sessions naturally bind to project directories
|
|
268
|
+
2. **Implicit Resume:** Auto-resume requires zero user action
|
|
269
|
+
3. **Explicit Override:** Interactive picker and ID flags provide control
|
|
270
|
+
4. **Single Source of Truth:** One index file tracks all sessions
|
|
271
|
+
|
|
272
|
+
## Implementation Reference
|
|
273
|
+
|
|
274
|
+
- **Session Store:** `src/sessionStore.ts` - All persistence functions
|
|
275
|
+
- **Auto-Resume Logic:** `src/cli.ts` - `runInteractiveCli()` session resolution
|
|
276
|
+
- **CLI Commands:** `src/index.ts` - `sessions` command
|
|
277
|
+
- **Slash Commands:** `src/cli.ts` - `handleSlashCommand()`
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# miaco STC — PDE to Structural Tension Chart Specification
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification v1.0
|
|
4
|
+
> Document: mia-code/rispecs/stc.rispecs.md
|
|
5
|
+
> Status: IMPLEMENTED
|
|
6
|
+
> Lineage: mcp-pde → coaia-pde/stc-mapper → miaco/stc
|
|
7
|
+
|
|
8
|
+
## Creative Intent
|
|
9
|
+
|
|
10
|
+
miaco stc enables developers to transform any Prompt Decomposition Engine (PDE) result into a coaia-narrative compatible Structural Tension Chart — JSONL files consumable by coaia-visualizer, coaia-narrative MCP, and the broader STC ecosystem. The conversion bridges EAST practice (prompt decomposition) with strategic action planning.
|
|
11
|
+
|
|
12
|
+
## Structural Tension Analysis
|
|
13
|
+
|
|
14
|
+
**Current Structural Reality:**
|
|
15
|
+
- PDE decompositions produce .pde/*.json files with DecompositionResult schema
|
|
16
|
+
- coaia-narrative expects JSONL with Entity/Relation records using type discriminators
|
|
17
|
+
- No CLI tool existed to bridge PDE output → STC JSONL in the miaco ecosystem
|
|
18
|
+
- Conversion required manual mapping or separate MCP server calls
|
|
19
|
+
|
|
20
|
+
**Desired Structural State:**
|
|
21
|
+
- `miaco stc convert <pde-file>` produces valid coaia-narrative JSONL in one command
|
|
22
|
+
- Both deterministic (zero-LLM) and LLM-assisted conversion modes available
|
|
23
|
+
- Output validated against coaia-narrative schema before writing
|
|
24
|
+
- Charts viewable immediately via `coaia-visualizer --memory-path <output>`
|
|
25
|
+
|
|
26
|
+
## Architecture
|
|
27
|
+
|
|
28
|
+
### Conversion Pipeline
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
.pde/<uuid>.json (StoredDecomposition)
|
|
32
|
+
→ extract .result (DecompositionResult)
|
|
33
|
+
→ mode selection:
|
|
34
|
+
├─ deterministic: direct mapping with hardcoded rules
|
|
35
|
+
└─ llm-assisted: schema-embedded prompt → engine call → JSONL parse
|
|
36
|
+
→ validate JSONL lines (type, required fields, reference integrity)
|
|
37
|
+
→ write .stc.jsonl
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Entity Mapping
|
|
41
|
+
|
|
42
|
+
| PDE Field | STC Entity | entityType |
|
|
43
|
+
|-----------|-----------|------------|
|
|
44
|
+
| primary.action + primary.target | Desired Outcome | desired_outcome |
|
|
45
|
+
| context + ambiguities | Current Reality | current_reality |
|
|
46
|
+
| secondary intents | Action Steps | action_step |
|
|
47
|
+
| actionStack items | Action Steps (merged) | action_step |
|
|
48
|
+
| directions (east/south/west/north) | Chart metadata.fourDirections | structural_tension_chart |
|
|
49
|
+
|
|
50
|
+
### Relation Mapping
|
|
51
|
+
|
|
52
|
+
| Pattern | relationType |
|
|
53
|
+
|---------|-------------|
|
|
54
|
+
| chart → components | contains |
|
|
55
|
+
| current_reality → desired_outcome | creates_tension_with |
|
|
56
|
+
| action_step → desired_outcome | advances_toward |
|
|
57
|
+
| action_step → action_step (via dependency) | depends_on |
|
|
58
|
+
|
|
59
|
+
### Naming Convention
|
|
60
|
+
|
|
61
|
+
Entity names follow `chart_{8-char-uuid}_{component}`:
|
|
62
|
+
- `chart_1c08669f` — root chart
|
|
63
|
+
- `chart_1c08669f_desired_outcome` — desired outcome
|
|
64
|
+
- `chart_1c08669f_current_reality` — current reality
|
|
65
|
+
- `chart_1c08669f_action_1` through `_action_N` — action steps
|
|
66
|
+
|
|
67
|
+
## CLI Interface
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Convert PDE to STC (deterministic, no LLM needed)
|
|
71
|
+
miaco stc convert <pde-path-or-uuid> -d
|
|
72
|
+
|
|
73
|
+
# Convert via LLM for richer narrative
|
|
74
|
+
miaco stc convert <pde-path-or-uuid> -e copilot -m gpt-4.1
|
|
75
|
+
|
|
76
|
+
# List available PDE files and their STC status
|
|
77
|
+
miaco stc list
|
|
78
|
+
|
|
79
|
+
# Validate a JSONL file
|
|
80
|
+
miaco stc validate ./chart.jsonl
|
|
81
|
+
|
|
82
|
+
# Full pipeline: convert + visualize
|
|
83
|
+
miaco stc convert <pde> -o ./chart.jsonl && coaia-visualizer --memory-path ./chart.jsonl
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Options
|
|
87
|
+
|
|
88
|
+
| Flag | Description | Default |
|
|
89
|
+
|------|-------------|---------|
|
|
90
|
+
| `-d, --deterministic` | Skip LLM, use rule-based mapping | false |
|
|
91
|
+
| `-e, --engine <engine>` | LLM engine: copilot, claude, gemini | copilot |
|
|
92
|
+
| `-m, --model <model>` | Model override | gpt-4.1 (copilot) |
|
|
93
|
+
| `-o, --output <path>` | Output JSONL file path | .pde/{uuid}.stc.jsonl |
|
|
94
|
+
| `-w, --workdir <path>` | Working directory for .pde/ lookup | cwd |
|
|
95
|
+
| `--json` | Output summary as JSON | false |
|
|
96
|
+
|
|
97
|
+
## Deterministic vs LLM-Assisted Mode
|
|
98
|
+
|
|
99
|
+
**Deterministic (-d):**
|
|
100
|
+
- Zero external dependencies (no LLM call)
|
|
101
|
+
- Produces structurally complete charts every time
|
|
102
|
+
- Observations are direct extracts from PDE fields
|
|
103
|
+
- Best for CI/CD pipelines and automated workflows
|
|
104
|
+
|
|
105
|
+
**LLM-Assisted (default):**
|
|
106
|
+
- Richer narrative observations and descriptions
|
|
107
|
+
- Better synthesis of secondary intents into coherent action steps
|
|
108
|
+
- Falls back to deterministic if LLM call fails
|
|
109
|
+
- Best for interactive use and presentation-quality charts
|
|
110
|
+
|
|
111
|
+
## Validation Criteria
|
|
112
|
+
|
|
113
|
+
The `validate` subcommand checks:
|
|
114
|
+
1. Each line is valid JSON
|
|
115
|
+
2. Each line has `type: "entity"` or `type: "relation"`
|
|
116
|
+
3. Entities have required fields: `name`, `entityType`, `observations`
|
|
117
|
+
4. Relations have required fields: `from`, `to`, `relationType`
|
|
118
|
+
5. No dangling references (relation.from and relation.to must match entity names)
|
|
119
|
+
|
|
120
|
+
## Creative Advancement Scenario
|
|
121
|
+
|
|
122
|
+
**Desired Outcome:** Developer has decomposed a complex multi-agent task and wants to visualize it as a structural tension chart.
|
|
123
|
+
|
|
124
|
+
**Natural Progression:**
|
|
125
|
+
1. `miaco decompose run -e copilot -p "Complex multi-part task..."`
|
|
126
|
+
2. `miaco stc convert .pde/<uuid>.json -d`
|
|
127
|
+
3. `coaia-visualizer --memory-path .pde/<uuid>.stc.jsonl`
|
|
128
|
+
4. Developer sees chart with desired outcome, current reality, action steps, and relations
|
|
129
|
+
5. Can be loaded into coaia-narrative MCP for ongoing tracking
|
|
130
|
+
|
|
131
|
+
**Achieved Outcome:** Complete pipeline from raw prompt → decomposed intent → visual strategic plan
|
|
132
|
+
|
|
133
|
+
## Implementation Status
|
|
134
|
+
|
|
135
|
+
**Current:** IMPLEMENTED v1.0
|
|
136
|
+
**Files:** `mia-code/miaco/src/commands/stc.ts`
|
|
137
|
+
**Tests:** 6 deterministic conversions validated (15-31 entities, 29-65 relations each)
|
|
138
|
+
**Dependencies:** commander, chalk, child_process (Node.js built-in)
|