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,397 @@
|
|
|
1
|
+
# Hierarchical Charting (MultiChartContextManager)
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification v1.0
|
|
4
|
+
> Document: miadi-code/rispecs/hierarchical-charting.rispecs.md
|
|
5
|
+
> Status: miadi-code Enhancement
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Creative Intent
|
|
10
|
+
|
|
11
|
+
The MultiChartContextManager empowers users to create complex, nested structural tension charts for orchestrating hierarchical projects. Users achieve clear visibility into multi-level goal structures where master charts telescope into sub-charts, maintaining both overview clarity and actionable detail.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Structural Tension Analysis
|
|
16
|
+
|
|
17
|
+
**Current Reality:**
|
|
18
|
+
- miadi-code has ChartRegistry for tracking active charts (`src/registry/`)
|
|
19
|
+
- coaia-narrative MCP supports chart creation and telescoping
|
|
20
|
+
- Charts can have parent/child relationships via `parentChart` and `parentActionStep` metadata
|
|
21
|
+
- Current implementation handles one active chart at a time
|
|
22
|
+
- No unified context manager for multi-chart navigation
|
|
23
|
+
- Three-universe analysis applies to single charts, not chart hierarchies
|
|
24
|
+
- STC workspace integration pending (per SPEC.md)
|
|
25
|
+
|
|
26
|
+
**Desired Structural State:**
|
|
27
|
+
- MultiChartContextManager maintains awareness of entire chart hierarchy
|
|
28
|
+
- Users can zoom in/out of chart levels seamlessly
|
|
29
|
+
- Three-universe analysis can operate at any hierarchy level
|
|
30
|
+
- Cross-chart dependencies tracked and honored
|
|
31
|
+
- Ceremonies cascade through hierarchy (parent completion triggers child review)
|
|
32
|
+
- Visual representation available via coaia-visualizer integration
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Core Components
|
|
37
|
+
|
|
38
|
+
### MultiChartContextManager
|
|
39
|
+
|
|
40
|
+
**Purpose:** Orchestrate navigation and operations across chart hierarchies.
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
interface MultiChartContextManager {
|
|
44
|
+
// Hierarchy Management
|
|
45
|
+
loadHierarchy(rootChartId: string): Promise<ChartHierarchy>;
|
|
46
|
+
createSubChart(parentChartId: string, actionStepId: string): Promise<StructuralTensionChart>;
|
|
47
|
+
|
|
48
|
+
// Navigation
|
|
49
|
+
getCurrentChart(): StructuralTensionChart | null;
|
|
50
|
+
setCurrentChart(chartId: string): void;
|
|
51
|
+
zoomIn(actionStepId: string): Promise<void>;
|
|
52
|
+
zoomOut(): Promise<void>;
|
|
53
|
+
|
|
54
|
+
// Context Awareness
|
|
55
|
+
getHierarchyPath(): ChartPathNode[];
|
|
56
|
+
getRelatedCharts(): RelatedChart[];
|
|
57
|
+
|
|
58
|
+
// Operations
|
|
59
|
+
cascadeProgress(chartId: string): Promise<void>;
|
|
60
|
+
checkHierarchyObligations(): ObligationReport;
|
|
61
|
+
|
|
62
|
+
// Three-Universe Integration
|
|
63
|
+
analyzeAtLevel(level: 'master' | 'current' | 'detail'): UniverseAnalysis;
|
|
64
|
+
|
|
65
|
+
// Persistence
|
|
66
|
+
saveState(): Promise<void>;
|
|
67
|
+
restoreState(stateId: string): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
interface ChartHierarchy {
|
|
71
|
+
root: StructuralTensionChart;
|
|
72
|
+
children: Map<string, ChartHierarchy>; // chartId -> subtree
|
|
73
|
+
totalDepth: number;
|
|
74
|
+
totalCharts: number;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
interface ChartPathNode {
|
|
78
|
+
chartId: string;
|
|
79
|
+
desiredOutcome: string;
|
|
80
|
+
level: number;
|
|
81
|
+
isActive: boolean;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
interface RelatedChart {
|
|
85
|
+
chartId: string;
|
|
86
|
+
relationship: 'parent' | 'sibling' | 'child' | 'dependency';
|
|
87
|
+
desiredOutcome: string;
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### HierarchyRenderer
|
|
92
|
+
|
|
93
|
+
**Purpose:** Generate visual representations of chart hierarchies.
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
interface HierarchyRenderer {
|
|
97
|
+
// Terminal rendering
|
|
98
|
+
renderTree(hierarchy: ChartHierarchy): string;
|
|
99
|
+
renderBreadcrumb(path: ChartPathNode[]): string;
|
|
100
|
+
renderProgressRollup(hierarchy: ChartHierarchy): string;
|
|
101
|
+
|
|
102
|
+
// JSON for visualizer
|
|
103
|
+
toVisualizerFormat(hierarchy: ChartHierarchy): VisualizerData;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Terminal tree output example:
|
|
107
|
+
// ┌─ 📊 Mastery of Terminal Agent Workflows [52%]
|
|
108
|
+
// │ ├── 📋 Engine Abstraction Layer [80%]
|
|
109
|
+
// │ │ ├── ✅ Gemini CLI Integration
|
|
110
|
+
// │ │ └── 🔄 Claude CLI Integration [60%]
|
|
111
|
+
// │ ├── 🔄 Session Persistence [45%]
|
|
112
|
+
// │ └── ⏳ Ceremonial Output Layer [30%]
|
|
113
|
+
// └──────────────────────────────────────────
|
|
114
|
+
|
|
115
|
+
interface VisualizerData {
|
|
116
|
+
nodes: VisualizerNode[];
|
|
117
|
+
edges: VisualizerEdge[];
|
|
118
|
+
metadata: {
|
|
119
|
+
rootId: string;
|
|
120
|
+
levels: number;
|
|
121
|
+
totalProgress: number;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### CrossChartDependencyTracker
|
|
127
|
+
|
|
128
|
+
**Purpose:** Track and enforce dependencies between charts.
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
interface CrossChartDependencyTracker {
|
|
132
|
+
// Define dependency
|
|
133
|
+
addDependency(fromChart: string, toChart: string, type: DependencyType): void;
|
|
134
|
+
|
|
135
|
+
// Query
|
|
136
|
+
getDependencies(chartId: string): Dependency[];
|
|
137
|
+
getDependents(chartId: string): Dependency[];
|
|
138
|
+
|
|
139
|
+
// Validation
|
|
140
|
+
checkDependenciesMet(chartId: string): DependencyCheck;
|
|
141
|
+
detectCircularDependencies(): CircularDependency[];
|
|
142
|
+
|
|
143
|
+
// Cascade
|
|
144
|
+
notifyCompletion(chartId: string): CascadeResult;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
type DependencyType =
|
|
148
|
+
| 'blocks' // This chart blocks another
|
|
149
|
+
| 'requires' // This chart requires another
|
|
150
|
+
| 'informs' // Completion of this informs another
|
|
151
|
+
| 'parallel'; // These can proceed in parallel
|
|
152
|
+
|
|
153
|
+
interface Dependency {
|
|
154
|
+
fromChartId: string;
|
|
155
|
+
toChartId: string;
|
|
156
|
+
type: DependencyType;
|
|
157
|
+
description?: string;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
interface CascadeResult {
|
|
161
|
+
triggeredCharts: string[];
|
|
162
|
+
updatedProgress: Map<string, number>;
|
|
163
|
+
ceremonies: Ceremony[];
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Three-Universe Hierarchical Analysis
|
|
170
|
+
|
|
171
|
+
### Level-Aware Analysis
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
interface HierarchicalUniverseAnalysis {
|
|
175
|
+
// Engineer Universe at hierarchy level
|
|
176
|
+
engineer: {
|
|
177
|
+
atMaster: string; // "Project requires X components"
|
|
178
|
+
atCurrent: string; // "Current task needs Y implementation"
|
|
179
|
+
atDetail: string; // "Specific step involves Z"
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
// Ceremony Universe at hierarchy level
|
|
183
|
+
ceremony: {
|
|
184
|
+
atMaster: string; // "Project honors these relationships"
|
|
185
|
+
atCurrent: string; // "Current phase maintains these obligations"
|
|
186
|
+
atDetail: string; // "Step fulfills this specific ceremony"
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
// Story Engine at hierarchy level
|
|
190
|
+
storyEngine: {
|
|
191
|
+
atMaster: string; // "The narrative arc of this project"
|
|
192
|
+
atCurrent: string; // "Current chapter in the story"
|
|
193
|
+
atDetail: string; // "This beat advances the narrative"
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Usage in prompt processing
|
|
198
|
+
function analyzePromptHierarchically(
|
|
199
|
+
prompt: string,
|
|
200
|
+
manager: MultiChartContextManager
|
|
201
|
+
): HierarchicalUniverseAnalysis {
|
|
202
|
+
const path = manager.getHierarchyPath();
|
|
203
|
+
|
|
204
|
+
return {
|
|
205
|
+
engineer: {
|
|
206
|
+
atMaster: analyzeEngineer(prompt, path[0]),
|
|
207
|
+
atCurrent: analyzeEngineer(prompt, manager.getCurrentChart()),
|
|
208
|
+
atDetail: path.length > 2 ? analyzeEngineer(prompt, path[path.length - 1]) : null
|
|
209
|
+
},
|
|
210
|
+
// ... ceremony and storyEngine
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Integration with miadi-code
|
|
218
|
+
|
|
219
|
+
### CLI Commands
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# View chart hierarchy
|
|
223
|
+
/charts tree
|
|
224
|
+
|
|
225
|
+
# Navigate hierarchy
|
|
226
|
+
/charts zoom-in <actionStepId>
|
|
227
|
+
/charts zoom-out
|
|
228
|
+
/charts goto <chartId>
|
|
229
|
+
|
|
230
|
+
# Show current position
|
|
231
|
+
/charts where
|
|
232
|
+
|
|
233
|
+
# Progress rollup
|
|
234
|
+
/charts progress
|
|
235
|
+
|
|
236
|
+
# Dependency management
|
|
237
|
+
/charts depend <fromChart> blocks <toChart>
|
|
238
|
+
/charts check-deps
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Interactive Navigation
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
// In cli.ts
|
|
245
|
+
async function handleChartsCommand(args: string[], manager: MultiChartContextManager) {
|
|
246
|
+
switch (args[0]) {
|
|
247
|
+
case 'tree':
|
|
248
|
+
const hierarchy = await manager.loadHierarchy(manager.getCurrentChart().chartId);
|
|
249
|
+
console.log(renderer.renderTree(hierarchy));
|
|
250
|
+
break;
|
|
251
|
+
|
|
252
|
+
case 'zoom-in':
|
|
253
|
+
await manager.zoomIn(args[1]);
|
|
254
|
+
console.log(renderer.renderBreadcrumb(manager.getHierarchyPath()));
|
|
255
|
+
break;
|
|
256
|
+
|
|
257
|
+
case 'where':
|
|
258
|
+
const path = manager.getHierarchyPath();
|
|
259
|
+
console.log('📍 Current position:');
|
|
260
|
+
path.forEach((node, i) => {
|
|
261
|
+
const indent = ' '.repeat(i);
|
|
262
|
+
const marker = node.isActive ? '→' : ' ';
|
|
263
|
+
console.log(`${indent}${marker} ${node.desiredOutcome}`);
|
|
264
|
+
});
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### coaia-visualizer Integration
|
|
271
|
+
|
|
272
|
+
```typescript
|
|
273
|
+
// Launch visualizer with hierarchy context
|
|
274
|
+
async function launchVisualizerWithHierarchy(manager: MultiChartContextManager) {
|
|
275
|
+
const hierarchy = await manager.loadHierarchy(manager.getCurrentChart().chartId);
|
|
276
|
+
const visualizerData = renderer.toVisualizerFormat(hierarchy);
|
|
277
|
+
|
|
278
|
+
// POST to coaia-visualizer API
|
|
279
|
+
await fetch('http://localhost:3336/api/charts/hierarchy', {
|
|
280
|
+
method: 'POST',
|
|
281
|
+
body: JSON.stringify(visualizerData)
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
// Open in browser
|
|
285
|
+
exec(`open http://localhost:3336/hierarchy/${hierarchy.root.chartId}`);
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## Ceremonies for Hierarchy Operations
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
// When creating a sub-chart
|
|
295
|
+
const telescopeCeremony: Ceremony = {
|
|
296
|
+
type: 'telescoped',
|
|
297
|
+
participants: ['miadi', 'user'],
|
|
298
|
+
intentions: [
|
|
299
|
+
'Expand action step into detailed chart',
|
|
300
|
+
'Maintain hierarchy coherence'
|
|
301
|
+
],
|
|
302
|
+
observations: [
|
|
303
|
+
`Created sub-chart for "${actionStep.description}"`,
|
|
304
|
+
`Depth level: ${parentChart.level + 1}`,
|
|
305
|
+
`Parent: ${parentChart.desiredOutcome}`
|
|
306
|
+
],
|
|
307
|
+
timestamp: new Date().toISOString()
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
// When cascading completion
|
|
311
|
+
const cascadeCeremony: Ceremony = {
|
|
312
|
+
type: 'hierarchy_cascade',
|
|
313
|
+
participants: ['multi_chart_manager', 'charts'],
|
|
314
|
+
intentions: ['Propagate completion through hierarchy'],
|
|
315
|
+
observations: [
|
|
316
|
+
`Completed: ${completedChart.desiredOutcome}`,
|
|
317
|
+
`Updated parent progress: ${parentProgress}%`,
|
|
318
|
+
`Triggered charts: ${triggeredCharts.join(', ')}`
|
|
319
|
+
],
|
|
320
|
+
timestamp: new Date().toISOString()
|
|
321
|
+
};
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## API Surface
|
|
327
|
+
|
|
328
|
+
```typescript
|
|
329
|
+
export class MultiChartContextManager {
|
|
330
|
+
// Lifecycle
|
|
331
|
+
static create(mcpClient: MCPClient, chartPath: string): MultiChartContextManager;
|
|
332
|
+
|
|
333
|
+
// Hierarchy
|
|
334
|
+
loadHierarchy(rootChartId: string): Promise<ChartHierarchy>;
|
|
335
|
+
getHierarchy(): ChartHierarchy;
|
|
336
|
+
getHierarchyPath(): ChartPathNode[];
|
|
337
|
+
|
|
338
|
+
// Navigation
|
|
339
|
+
getCurrentChart(): StructuralTensionChart | null;
|
|
340
|
+
zoomIn(actionStepId: string): Promise<void>;
|
|
341
|
+
zoomOut(): Promise<void>;
|
|
342
|
+
gotoChart(chartId: string): Promise<void>;
|
|
343
|
+
|
|
344
|
+
// Operations
|
|
345
|
+
createSubChart(actionStepId: string, currentReality: string): Promise<StructuralTensionChart>;
|
|
346
|
+
updateProgress(chartId: string, progress: number): Promise<void>;
|
|
347
|
+
markComplete(chartId: string): Promise<CascadeResult>;
|
|
348
|
+
|
|
349
|
+
// Dependencies
|
|
350
|
+
addDependency(from: string, to: string, type: DependencyType): void;
|
|
351
|
+
checkDependencies(): ObligationReport;
|
|
352
|
+
|
|
353
|
+
// Visualization
|
|
354
|
+
renderTree(): string;
|
|
355
|
+
renderBreadcrumb(): string;
|
|
356
|
+
toVisualizerFormat(): VisualizerData;
|
|
357
|
+
|
|
358
|
+
// Events
|
|
359
|
+
onChartChanged(handler: (chart: StructuralTensionChart) => void): Disposable;
|
|
360
|
+
onHierarchyUpdated(handler: (hierarchy: ChartHierarchy) => void): Disposable;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
interface ObligationReport {
|
|
364
|
+
met: Obligation[];
|
|
365
|
+
unmet: Obligation[];
|
|
366
|
+
blocked: string[]; // Charts blocked by unmet obligations
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
interface Obligation {
|
|
370
|
+
chartId: string;
|
|
371
|
+
description: string;
|
|
372
|
+
type: 'dependency' | 'ceremony' | 'phase_gate';
|
|
373
|
+
}
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## Success Criteria
|
|
379
|
+
|
|
380
|
+
✅ MultiChartContextManager tracks entire chart hierarchies
|
|
381
|
+
✅ Navigation (zoom-in, zoom-out, goto) works seamlessly
|
|
382
|
+
✅ Breadcrumb rendering shows current position in hierarchy
|
|
383
|
+
✅ Tree rendering displays full hierarchy with progress
|
|
384
|
+
✅ Dependencies enforced across charts
|
|
385
|
+
✅ Ceremonies cascade through hierarchy on completion
|
|
386
|
+
✅ Three-universe analysis operates at configurable levels
|
|
387
|
+
✅ coaia-visualizer integration for visual hierarchy navigation
|
|
388
|
+
✅ State persistence across sessions
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## References
|
|
393
|
+
|
|
394
|
+
- miadi-code registry: `/a/src/Miadi/miadi-code/src/registry/`
|
|
395
|
+
- coaia-narrative chart structure: `/a/src/llms/llms-structural-tension-charts.txt`
|
|
396
|
+
- coaia-visualizer API: `/a/src/coaia-visualizer/`
|
|
397
|
+
- miadi-code SPEC.md: `/a/src/Miadi/miadi-code/rispecs/SPEC.md`
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# STC (Structural Tension Charting) - Implementation Status
|
|
2
|
+
|
|
3
|
+
**Module**: `miadi-code/src/stc/`
|
|
4
|
+
**Version**: 1.1.0
|
|
5
|
+
**Last Updated**: 2026-01-31
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Implementation Status: OPERATIONAL ✅
|
|
10
|
+
|
|
11
|
+
### Core Components
|
|
12
|
+
|
|
13
|
+
| Component | Status | Location |
|
|
14
|
+
|-----------|--------|----------|
|
|
15
|
+
| Workspace Client | ✅ Complete | `stc/workspace-client.ts` |
|
|
16
|
+
| File Operations | ✅ Complete | `stc/file-operations.ts` |
|
|
17
|
+
| Workspace Config | ✅ Complete | `stc/workspace-config.ts` |
|
|
18
|
+
| Chart Types | ✅ Complete | `stc/types.ts` |
|
|
19
|
+
| Dashboard TUI | ✅ Enhanced | `dashboard.ts` |
|
|
20
|
+
|
|
21
|
+
### Command Support
|
|
22
|
+
|
|
23
|
+
| Command | Status | Notes |
|
|
24
|
+
|---------|--------|-------|
|
|
25
|
+
| `/stc config add` | ✅ Working | Maps repo to local path |
|
|
26
|
+
| `/stc config list` | ✅ Working | Shows workspace mappings |
|
|
27
|
+
| `/stc load` | ✅ Working | Loads from STC files |
|
|
28
|
+
| `/stc observe` | ✅ Working | Adds observations to chart |
|
|
29
|
+
| `/stc action` | ✅ Working | Adds action steps |
|
|
30
|
+
| `/dashboard` | ✅ Enhanced | Improved error feedback |
|
|
31
|
+
|
|
32
|
+
### Dashboard Improvements (v1.1.0)
|
|
33
|
+
|
|
34
|
+
1. **Prerequisite Checks**: Dashboard now checks for loaded chart before prompting
|
|
35
|
+
2. **Dynamic Menu Hints**: Menu shows availability status for each operation
|
|
36
|
+
3. **Clear Error Messages**: When no chart is loaded, user gets actionable guidance
|
|
37
|
+
|
|
38
|
+
### Prerequisites for Dashboard Operations
|
|
39
|
+
|
|
40
|
+
For observation/action features to work:
|
|
41
|
+
|
|
42
|
+
1. **Workspace must be configured**: Run `/stc config add <owner/repo> <local_path>`
|
|
43
|
+
2. **Miadi Platform must be running**: API server on port 3335
|
|
44
|
+
3. **Chart must be initialized**: Run `/stc sync` or the dashboard will create one
|
|
45
|
+
|
|
46
|
+
### Test Coverage
|
|
47
|
+
|
|
48
|
+
- Unit tests: 119 tests passing
|
|
49
|
+
- Dashboard data adapter tests: Comprehensive coverage
|
|
50
|
+
- Integration tests: API workflow validated
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Architecture Notes
|
|
55
|
+
|
|
56
|
+
The STC system uses a layered architecture:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Dashboard TUI (dashboard.ts)
|
|
60
|
+
↓
|
|
61
|
+
Workspace Client (stc/workspace-client.ts)
|
|
62
|
+
↓ HTTP
|
|
63
|
+
Miadi Platform API (/api/stc/*)
|
|
64
|
+
↓
|
|
65
|
+
Chart Manager (lib/stc/chart-manager.ts)
|
|
66
|
+
↓
|
|
67
|
+
Local Filesystem (.coaia/*.jsonl)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Charts are stored in `.coaia/` directory as JSONL files with entity/relation records.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# SPEC — mia-code Inquiry Routing Upgrade
|
|
2
|
+
|
|
3
|
+
> Consumer: mia-code (`/a/src/mia-code`)
|
|
4
|
+
> Upstream: `ava-langchain-inquiry-routing@0.1.0`, `ava-langgraph-inquiry-routing-engine@0.1.0`
|
|
5
|
+
> Related: `/a/src/mia-code/KINSHIP.md` (LangGraph/LangChain integration section)
|
|
6
|
+
|
|
7
|
+
## Desired Outcome
|
|
8
|
+
|
|
9
|
+
mia-code's PDE workflow gains structured inquiry routing: after `pde_decompose` produces a `DecompositionResult`, the result flows through the `InquiryRoutingGraph` to produce classified, relationally-grounded inquiries before agent execution. The `miaco decompose` command outputs both the PDE decomposition and the inquiry routing report. `ceremony_hold` pauses the agent when relational accountability requires human presence.
|
|
10
|
+
|
|
11
|
+
## Current Reality
|
|
12
|
+
|
|
13
|
+
- mia-code calls `pde_decompose` → gets `DecompositionResult` → works through action stack manually
|
|
14
|
+
- No structured inquiry generation from PDE output
|
|
15
|
+
- No routing classification — the agent decides per-turn where to search
|
|
16
|
+
- `KINSHIP.md` documents the intent to integrate ava-langchainjs/ava-langgraphjs libraries but inquiry routing is not yet wired
|
|
17
|
+
|
|
18
|
+
### Existing PDE Types (from `@iaip/mcp-pde`)
|
|
19
|
+
```typescript
|
|
20
|
+
import type { DecompositionResult, StoredDecomposition } from '@iaip/mcp-pde';
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Integration Points (from KINSHIP.md)
|
|
24
|
+
- `src/commands.ts` — `decompose` command (wraps PDE MCP tools)
|
|
25
|
+
- `src/mcp/` — MCP tool generation
|
|
26
|
+
- `src/sessionStore.ts` — session metadata linking
|
|
27
|
+
|
|
28
|
+
## Structural Tension
|
|
29
|
+
|
|
30
|
+
mia-code has PDE *decomposition* but not PDE *inquiry routing*. The agent decomposes prompts into structure but then executes without systematic inquiry classification or relational validation. The tension between structured decomposition and ad-hoc execution resolves through the inquiry-routing pipeline.
|
|
31
|
+
|
|
32
|
+
## Type Mapping: PDE → Inquiry
|
|
33
|
+
|
|
34
|
+
| PDE Type (`@iaip/mcp-pde`) | Inquiry Type (`ava-langchain-inquiry-routing`) |
|
|
35
|
+
|----|-----|
|
|
36
|
+
| `DecompositionResult` | Input to `InquiryGenerator.generate()` |
|
|
37
|
+
| `DecompositionResult.directions` | Maps to `InquiryBatch.{east,south,west,north}` |
|
|
38
|
+
| `DecompositionResult.ambiguities` | Each `AmbiguityFlag` → `Inquiry` in WEST bucket |
|
|
39
|
+
| `DecompositionResult.context.assumptions` | Each assumption string → `Inquiry` in SOUTH bucket |
|
|
40
|
+
| `StoredDecomposition` | Parallel: `StoredInquiryRoutingSession` |
|
|
41
|
+
| `DecompositionResult.id` | → `Inquiry.pde_id` (traceability link) |
|
|
42
|
+
|
|
43
|
+
## Architecture
|
|
44
|
+
|
|
45
|
+
### 1. Add Dependencies
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"ava-langchain-inquiry-routing": ">=0.1.0",
|
|
51
|
+
"ava-langgraph-inquiry-routing-engine": ">=0.1.0"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 2. Extend `decompose` Command
|
|
57
|
+
|
|
58
|
+
In `src/commands.ts`, after PDE decomposition:
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { InquiryRoutingGraph } from "ava-langgraph-inquiry-routing-engine";
|
|
62
|
+
|
|
63
|
+
// After: const pde = await decompose(prompt);
|
|
64
|
+
const routingGraph = new InquiryRoutingGraph({ enforceCeremony: true });
|
|
65
|
+
const routingState = await routingGraph.invoke(pde.decomposition);
|
|
66
|
+
|
|
67
|
+
if (routingState.status === "ceremony_hold") {
|
|
68
|
+
// Surface to user: relational review required
|
|
69
|
+
presentCeremonyHold(routingState.relationalValidation);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Use dispatch payloads for directed search
|
|
74
|
+
for (const payload of routingState.dispatchPayloads ?? []) {
|
|
75
|
+
await executeDispatch(payload);
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3. Session Store Integration
|
|
80
|
+
|
|
81
|
+
Link inquiry routing sessions to PDE sessions in `src/sessionStore.ts`:
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
import type { StoredInquiryRoutingSession } from "ava-langgraph-inquiry-routing-engine";
|
|
85
|
+
|
|
86
|
+
interface SessionMetadata {
|
|
87
|
+
// ... existing fields
|
|
88
|
+
inquiryRoutingSession?: StoredInquiryRoutingSession;
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 4. MCP Tool Extension
|
|
93
|
+
|
|
94
|
+
In `src/mcp/`, expose inquiry routing as MCP tools:
|
|
95
|
+
- `inquiry_route` — run inquiry routing on an existing PDE decomposition
|
|
96
|
+
- `inquiry_status` — check routing state for a session
|
|
97
|
+
|
|
98
|
+
### 5. `.mw/` Architecture Integration
|
|
99
|
+
|
|
100
|
+
Per KINSHIP.md convergence role:
|
|
101
|
+
- `miaco decompose` → writes PDE to `.mw/east/`
|
|
102
|
+
- **New:** inquiry routing results write to `.mw/south/` (routed inquiries as JSONL)
|
|
103
|
+
- Dispatch payloads flow to `.mw/north/` (action-ready queries)
|
|
104
|
+
|
|
105
|
+
## Implementation Notes
|
|
106
|
+
|
|
107
|
+
- `enforceCeremony: true` is mandatory in mia-code context — the agent must not bypass relational gates
|
|
108
|
+
- Inquiry routing runs synchronously via `InquiryRoutingGraph` (no LangGraph runtime needed)
|
|
109
|
+
- For LangGraph integration: use `createInquiryRoutingStateGraph()` as subgraph in larger pipelines
|
|
110
|
+
- Markdown report from `InquiryFormatter.toMarkdown()` can be written to `.pde/<uuid>-inquiries.md` alongside existing PDE markdown
|
|
111
|
+
|
|
112
|
+
## RISE Compliance
|
|
113
|
+
|
|
114
|
+
| Phase | Status | Notes |
|
|
115
|
+
|-------|--------|-------|
|
|
116
|
+
| **R**everse-engineer | ✅ Done | mia-code PDE flow analyzed, KINSHIP.md integration points identified |
|
|
117
|
+
| **I**ntent-extract | ✅ Done | Intent: add structured inquiry routing to mia-code's PDE workflow with ceremony gating |
|
|
118
|
+
| **S**pecify | ✅ This document | Type mapping, command extension, session store integration, MCP tools |
|
|
119
|
+
| **E**xport | ⏳ Not started | Requires implementation in mia-code |
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# RISE-001: Client-Server Architecture
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification — Borrowed from OpenCode for mia-code
|
|
4
|
+
> Document: rispecs/borrowed_from_opencode/001-client-server-architecture.rispec.md
|
|
5
|
+
|
|
6
|
+
## Creative Intent
|
|
7
|
+
|
|
8
|
+
mia-code enables developers to separate agent execution from user interface rendering. Users achieve location-independent agent driving by connecting lightweight clients to a persistent server that manages sessions, tool execution, and agent orchestration. A developer runs the agent on a powerful workstation and drives it from a phone, a tablet, or a second terminal — the interface becomes a window, not a cage.
|
|
9
|
+
|
|
10
|
+
## Structural Tension Analysis
|
|
11
|
+
|
|
12
|
+
**Current Reality:**
|
|
13
|
+
- mia-code runs as a monolithic CLI process — UI rendering, agent execution, session management, and I/O all share one process
|
|
14
|
+
- The TUI (Commander.js + enquirer + ora + chalk) is tightly coupled to the agent loop in `cli.ts` and `commands.ts`
|
|
15
|
+
- Closing the terminal kills the agent mid-operation; there is no way to reconnect
|
|
16
|
+
- Remote access requires SSH into the machine and attaching to a tmux/screen session
|
|
17
|
+
- Only one view into a running session is possible at a time
|
|
18
|
+
- Session state lives in `~/.mia-code-sessions.json`, readable only from the local filesystem
|
|
19
|
+
|
|
20
|
+
**Desired State:**
|
|
21
|
+
- The mia-code server runs as a long-lived process that accepts connections from any client
|
|
22
|
+
- Agent logic (Gemini/Claude headless execution, unifier interpretation, session persistence) lives entirely server-side
|
|
23
|
+
- Clients are thin renderers: they display events, capture input, and send it to the server
|
|
24
|
+
- Multiple clients can observe the same session simultaneously (pair programming, monitoring)
|
|
25
|
+
- The server survives client disconnection — work continues, and a new client reconnects to live output
|
|
26
|
+
- Headless operation (no client at all) is a natural subset — the server executes prompts from scripts or CI
|
|
27
|
+
|
|
28
|
+
## Desired Outcome Definition
|
|
29
|
+
|
|
30
|
+
A running `mia-code serve` process exposes an HTTP API on localhost. A `mia-code connect` client (or any HTTP-capable program) attaches to it. The server manages the full agent lifecycle. Clients come and go without disrupting agent work.
|
|
31
|
+
|
|
32
|
+
## Natural Language Functional Description
|
|
33
|
+
|
|
34
|
+
### Server Component
|
|
35
|
+
|
|
36
|
+
The server starts via `mia-code serve [--port PORT] [--password SECRET]`. It binds to `127.0.0.1` on the specified port (default: `7880`). If a password is provided, every client request must include it as a Bearer token in the Authorization header.
|
|
37
|
+
|
|
38
|
+
The server exposes these REST endpoints:
|
|
39
|
+
|
|
40
|
+
- `GET /sessions` — list all sessions with metadata (id, project root, timestamps, model)
|
|
41
|
+
- `POST /sessions` — create a new session, returns session ID
|
|
42
|
+
- `GET /sessions/:id` — get session details including message history
|
|
43
|
+
- `DELETE /sessions/:id` — archive or remove a session
|
|
44
|
+
- `POST /sessions/:id/messages` — send a user prompt to the agent; returns immediately with a message ID
|
|
45
|
+
- `GET /sessions/:id/messages` — retrieve message history with pagination
|
|
46
|
+
- `GET /sessions/:id/events` — SSE (Server-Sent Events) stream for real-time updates
|
|
47
|
+
- `GET /config` — current configuration
|
|
48
|
+
- `PUT /config` — update configuration values
|
|
49
|
+
- `GET /health` — server status, uptime, active sessions count
|
|
50
|
+
|
|
51
|
+
The SSE event stream (`/sessions/:id/events`) emits typed events:
|
|
52
|
+
- `message.start` — agent begins processing
|
|
53
|
+
- `message.chunk` — streaming text chunk from agent
|
|
54
|
+
- `message.complete` — agent finished, includes full response
|
|
55
|
+
- `tool.start` — tool execution begins (name, parameters)
|
|
56
|
+
- `tool.complete` — tool finished (result, duration)
|
|
57
|
+
- `ceremonial.output` — the 🧠 Mia / 🌸 Miette dual-perspective interpretation
|
|
58
|
+
- `error` — any error during processing
|
|
59
|
+
|
|
60
|
+
Each event is a JSON object with `type`, `timestamp`, `sessionId`, and a typed `payload`.
|
|
61
|
+
|
|
62
|
+
### Client Component
|
|
63
|
+
|
|
64
|
+
The default TUI client starts via `mia-code connect [--server URL] [--password SECRET]`. It renders the same chalk/ora interface users already know, but sources data from the server instead of running agents locally. The client:
|
|
65
|
+
|
|
66
|
+
1. Connects to the server's SSE endpoint for the active session
|
|
67
|
+
2. Renders incoming events using existing `formatting.ts` logic
|
|
68
|
+
3. Captures user input via `multiline-input.ts` and POSTs to `/sessions/:id/messages`
|
|
69
|
+
4. Handles reconnection automatically if the connection drops
|
|
70
|
+
|
|
71
|
+
### Session Ownership
|
|
72
|
+
|
|
73
|
+
The server owns session state. The `sessionStore.ts` module moves from file I/O to an internal server-side store. Clients never read `~/.mia-code-sessions.json` directly — they query the API.
|
|
74
|
+
|
|
75
|
+
### Authentication
|
|
76
|
+
|
|
77
|
+
When `--password` is set, the server validates every request. Unauthorized requests receive `401`. This is lightweight security for localhost use — not intended for public exposure.
|
|
78
|
+
|
|
79
|
+
## Supporting Structures
|
|
80
|
+
|
|
81
|
+
- **Event Bus (RISE-002)** provides the internal pub/sub that the SSE stream exposes externally
|
|
82
|
+
- **Instance State (RISE-003)** ensures server-side state is scoped per project directory
|
|
83
|
+
- **Structured Logging (RISE-007)** gives the server observable request/response logging
|
|
84
|
+
- **Lazy Initialization (RISE-008)** defers agent process spawning until the first prompt arrives
|
|
85
|
+
|
|
86
|
+
## Creative Advancement Scenarios
|
|
87
|
+
|
|
88
|
+
**Scenario 1 — Remote Driving from Mobile:**
|
|
89
|
+
A developer starts `mia-code serve --port 7880 --password hunter2` on their workstation. They SSH-tunnel port 7880 to their phone. A simple web client (or curl) sends prompts and receives SSE events. The agent runs with full CPU/memory of the workstation while the developer lounges on the couch.
|
|
90
|
+
|
|
91
|
+
**Scenario 2 — Headless CI Integration:**
|
|
92
|
+
A CI pipeline calls `curl -X POST http://localhost:7880/sessions -d '{"projectRoot":"/app"}'` to create a session, then sends a prompt asking the agent to review a PR diff. The response streams back as SSE events. No TUI, no terminal, no human in the loop.
|
|
93
|
+
|
|
94
|
+
**Scenario 3 — Pair Programming Observer:**
|
|
95
|
+
Two developers connect to the same session. Developer A types prompts. Developer B watches the SSE stream in their own terminal. Both see the same agent output in real-time. Developer B can also send messages — the server queues them.
|
|
96
|
+
|
|
97
|
+
**Scenario 4 — Surviving Disconnection:**
|
|
98
|
+
A developer starts a long refactoring prompt, then their laptop sleeps. The server continues executing. When the laptop wakes, `mia-code connect` reconnects and replays missed events from the message history endpoint.
|