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,187 @@
|
|
|
1
|
+
# RISE-094: Skill System
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification — Borrowed from OpenCode for mia-code
|
|
4
|
+
> Document: rispecs/borrowed_from_opencode/094-skill-system.rispec.md
|
|
5
|
+
|
|
6
|
+
## Creative Intent
|
|
7
|
+
|
|
8
|
+
mia-code enables developers to define custom reusable skills as simple markdown files. A skill is a prompt template — structured instructions that inject specialized knowledge into the agent's context for a specific task. A "code-review" skill teaches the agent a team's review checklist. A "commit-message" skill enforces a commit format. A "test-writer" skill carries testing patterns. Skills are the mechanism by which teams encode their craft knowledge into something an AI agent can follow consistently. They are not code — they are written wisdom.
|
|
9
|
+
|
|
10
|
+
## Structural Tension Analysis
|
|
11
|
+
|
|
12
|
+
**Current Reality:**
|
|
13
|
+
- mia-code has no mechanism for users to define reusable specialized instructions
|
|
14
|
+
- The agent's behavior is governed by the system prompt and CLAUDE.md — both are monolithic
|
|
15
|
+
- Developers repeat the same instructions across sessions: "use this commit format," "follow this review checklist"
|
|
16
|
+
- No way to share specialized instructions across projects or team members
|
|
17
|
+
- Agent behavior cannot be customized per-task without rewriting the entire system prompt
|
|
18
|
+
|
|
19
|
+
**Desired State:**
|
|
20
|
+
- Skills are markdown files with YAML frontmatter (name, description) and a markdown body (instructions)
|
|
21
|
+
- Skills live in `.mia-code/skills/` (project-local) or `~/.mia-code/skills/` (global)
|
|
22
|
+
- The agent invokes a skill by name, receiving its content as additional context
|
|
23
|
+
- Skills are prompt templates — they inject structured instructions, not executable code
|
|
24
|
+
- Skills are discoverable via `/skills` command listing all available skills
|
|
25
|
+
- Skills are composable — one skill can reference others for layered instructions
|
|
26
|
+
|
|
27
|
+
## Desired Outcome Definition
|
|
28
|
+
|
|
29
|
+
A developer creates a markdown file in `.mia-code/skills/code-review.md` with a name, description, and review instructions. When the agent needs to perform a code review, it invokes the "code-review" skill and receives those instructions as context. The skill shapes the agent's behavior for that specific task without altering its general capabilities.
|
|
30
|
+
|
|
31
|
+
## Natural Language Functional Description
|
|
32
|
+
|
|
33
|
+
### Skill File Format
|
|
34
|
+
|
|
35
|
+
A skill is a markdown file with YAML frontmatter:
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
---
|
|
39
|
+
name: code-review
|
|
40
|
+
description: Perform a thorough code review following team standards
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# Code Review Skill
|
|
44
|
+
|
|
45
|
+
When reviewing code, follow these steps:
|
|
46
|
+
|
|
47
|
+
## 1. Security Check
|
|
48
|
+
- Look for SQL injection, XSS, and CSRF vulnerabilities
|
|
49
|
+
- Check that user input is validated and sanitized
|
|
50
|
+
- Verify authentication and authorization on all endpoints
|
|
51
|
+
|
|
52
|
+
## 2. Logic Review
|
|
53
|
+
- Verify edge cases are handled (null, empty, overflow)
|
|
54
|
+
- Check error handling is comprehensive
|
|
55
|
+
- Ensure no infinite loops or unbounded recursion
|
|
56
|
+
|
|
57
|
+
## 3. Style Compliance
|
|
58
|
+
- Verify naming conventions match the project
|
|
59
|
+
- Check for consistent formatting
|
|
60
|
+
- Ensure comments explain "why" not "what"
|
|
61
|
+
|
|
62
|
+
## 4. Output Format
|
|
63
|
+
Provide your review as a list of findings:
|
|
64
|
+
- 🔴 Critical: must fix before merge
|
|
65
|
+
- 🟡 Warning: should fix, not blocking
|
|
66
|
+
- 🟢 Suggestion: optional improvement
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Frontmatter Fields
|
|
70
|
+
|
|
71
|
+
| Field | Required | Description |
|
|
72
|
+
|---------------|----------|------------------------------------------|
|
|
73
|
+
| `name` | Yes | Unique skill identifier (kebab-case) |
|
|
74
|
+
| `description` | Yes | One-line description shown in skill list |
|
|
75
|
+
| `tags` | No | Categorization tags for filtering |
|
|
76
|
+
| `author` | No | Skill author for attribution |
|
|
77
|
+
| `version` | No | Skill version for tracking changes |
|
|
78
|
+
|
|
79
|
+
### Skill Storage Locations
|
|
80
|
+
|
|
81
|
+
- **Project skills**: `.mia-code/skills/` — available only in this project
|
|
82
|
+
- **Global skills**: `~/.mia-code/skills/` — available in all projects
|
|
83
|
+
- Project skills override global skills with the same name
|
|
84
|
+
|
|
85
|
+
### Skill Invocation
|
|
86
|
+
|
|
87
|
+
The agent invokes a skill through the skill tool:
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// Agent calls the skill tool
|
|
91
|
+
const skillContent = await tools.skill({ name: "code-review" })
|
|
92
|
+
// skillContent contains the full markdown body of the skill
|
|
93
|
+
// Agent uses this content as additional instructions for the current task
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The skill content is injected into the agent's context as a system-level instruction. The agent follows the skill's instructions while processing the current task.
|
|
97
|
+
|
|
98
|
+
### Skill Listing
|
|
99
|
+
|
|
100
|
+
The `/skills` command lists all available skills:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Available Skills:
|
|
104
|
+
code-review Perform a thorough code review following team standards [project]
|
|
105
|
+
commit-message Write commit messages in conventional format [project]
|
|
106
|
+
test-writer Generate unit tests with coverage targets [global]
|
|
107
|
+
refactor Refactor code following SOLID principles [global]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Skill Composability
|
|
111
|
+
|
|
112
|
+
A skill can reference other skills in its instructions:
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
---
|
|
116
|
+
name: pr-review
|
|
117
|
+
description: Complete PR review combining code review and test verification
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
# PR Review
|
|
121
|
+
|
|
122
|
+
1. First, invoke the `code-review` skill and apply it to all changed files
|
|
123
|
+
2. Then, invoke the `test-writer` skill to verify test coverage for changes
|
|
124
|
+
3. Finally, summarize findings in a PR comment format
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The agent interprets these references and invokes the referenced skills as needed.
|
|
128
|
+
|
|
129
|
+
### Example Skills
|
|
130
|
+
|
|
131
|
+
**commit-message.md:**
|
|
132
|
+
```markdown
|
|
133
|
+
---
|
|
134
|
+
name: commit-message
|
|
135
|
+
description: Write commit messages in conventional format
|
|
136
|
+
---
|
|
137
|
+
Format: <type>(<scope>): <description>
|
|
138
|
+
Types: feat, fix, docs, style, refactor, test, chore
|
|
139
|
+
Scope: optional, describes the area of change
|
|
140
|
+
Description: imperative mood, lowercase, no period
|
|
141
|
+
Body: explain what and why, not how
|
|
142
|
+
Footer: reference issues with "Closes #123"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**test-writer.md:**
|
|
146
|
+
```markdown
|
|
147
|
+
---
|
|
148
|
+
name: test-writer
|
|
149
|
+
description: Generate unit tests following project patterns
|
|
150
|
+
---
|
|
151
|
+
Use the existing test files as examples for style and structure.
|
|
152
|
+
Each test should: describe behavior, not implementation.
|
|
153
|
+
Coverage targets: branches > 80%, lines > 90%.
|
|
154
|
+
Use describe/it blocks with clear names.
|
|
155
|
+
Mock external dependencies, never mock the unit under test.
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Skills Are Not Code
|
|
159
|
+
|
|
160
|
+
Skills do not execute. They are text — structured instructions that guide the agent's behavior. This distinction matters:
|
|
161
|
+
|
|
162
|
+
- Skills cannot access the filesystem directly
|
|
163
|
+
- Skills cannot call APIs or run commands
|
|
164
|
+
- Skills cannot modify the agent's capabilities
|
|
165
|
+
- Skills only influence what the agent does through natural language guidance
|
|
166
|
+
- The agent interprets and follows skill instructions using its own judgment
|
|
167
|
+
|
|
168
|
+
## Supporting Structures
|
|
169
|
+
|
|
170
|
+
- **Skill Discovery (RISE-095)** defines how skills are found across multiple locations
|
|
171
|
+
- **Agent Prompt Templates (RISE-012)** provides the template system skills extend
|
|
172
|
+
- **Agent Definition Config (RISE-010)** can reference default skills for an agent
|
|
173
|
+
- **Namespace Module Pattern (RISE-004)** organizes skill loading under a skills namespace
|
|
174
|
+
|
|
175
|
+
## Creative Advancement Scenarios
|
|
176
|
+
|
|
177
|
+
**Scenario 1 — Team Review Standards:**
|
|
178
|
+
A tech lead creates `code-review.md` in the project's `.mia-code/skills/`. Every developer on the team gets consistent code reviews from the agent — same checklist, same severity levels, same output format. The skill encodes the team's review culture.
|
|
179
|
+
|
|
180
|
+
**Scenario 2 — Personal Workflow:**
|
|
181
|
+
A developer creates global skills for their personal habits: `commit-message.md` with their preferred format, `documentation.md` with their JSDoc style, `refactor.md` with their preferred patterns. These skills follow them across all projects.
|
|
182
|
+
|
|
183
|
+
**Scenario 3 — Onboarding Acceleration:**
|
|
184
|
+
A new team member clones the project and finds skills for every common task: code review, testing, deployment, documentation. The agent follows these skills and produces output that matches team standards from day one. The skills are living onboarding documents.
|
|
185
|
+
|
|
186
|
+
**Scenario 4 — Skill Sharing:**
|
|
187
|
+
A developer publishes their best skills as a GitHub repository. Other developers copy them into their global skills directory. The community builds a library of reusable agent instructions — crowd-sourced craft wisdom.
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# RISE-095: Skill Discovery
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification — Borrowed from OpenCode for mia-code
|
|
4
|
+
> Document: rispecs/borrowed_from_opencode/095-skill-discovery.rispec.md
|
|
5
|
+
|
|
6
|
+
## Creative Intent
|
|
7
|
+
|
|
8
|
+
mia-code automatically discovers and loads skills from multiple sources — project directories, global user directories, custom paths, and remote URLs. Discovery is the mechanism that makes skills composable across contexts. A developer drops a skill file into `.mia-code/skills/` and it is immediately available. A team publishes skills at a URL and every developer's agent fetches them. Discovery runs at startup and can be refreshed on demand, ensuring the agent always knows what skills are available without manual registration.
|
|
9
|
+
|
|
10
|
+
## Structural Tension Analysis
|
|
11
|
+
|
|
12
|
+
**Current Reality:**
|
|
13
|
+
- mia-code has no skill system — there is nothing to discover
|
|
14
|
+
- Configuration is loaded from fixed locations (`.mia-code/config.json`, `~/.mia-code/config.json`)
|
|
15
|
+
- No mechanism exists to load content from remote URLs with caching
|
|
16
|
+
- No file-type validation ensures discovered files meet a required format
|
|
17
|
+
- No precedence rules govern conflicts between files with the same name from different sources
|
|
18
|
+
|
|
19
|
+
**Desired State:**
|
|
20
|
+
- Skills are discovered from five sources in a defined precedence order
|
|
21
|
+
- Project skills override global skills — local customization wins
|
|
22
|
+
- Remote skills are downloaded, cached, and refreshed on a configurable TTL
|
|
23
|
+
- Duplicate skill names trigger a warning with source attribution
|
|
24
|
+
- Skill format is validated: frontmatter must include `name` and `description`
|
|
25
|
+
- Discovery runs at startup and on-demand via `/skills refresh`
|
|
26
|
+
- The agent's system prompt includes the count of available skills
|
|
27
|
+
|
|
28
|
+
## Desired Outcome Definition
|
|
29
|
+
|
|
30
|
+
When mia-code starts, it scans multiple directories and remote URLs for skill files. Valid skills are loaded into a registry keyed by name. The agent is informed of available skills and can invoke any of them by name. Discovery is fast, cached, and conflict-aware.
|
|
31
|
+
|
|
32
|
+
## Natural Language Functional Description
|
|
33
|
+
|
|
34
|
+
### Discovery Sources (Precedence Order)
|
|
35
|
+
|
|
36
|
+
Skills are discovered from five sources, listed from highest to lowest precedence:
|
|
37
|
+
|
|
38
|
+
| Priority | Source | Location |
|
|
39
|
+
|----------|------------------------------------|-------------------------------------|
|
|
40
|
+
| 1 | Project `.mia-code/skills/` | `{projectRoot}/.mia-code/skills/` |
|
|
41
|
+
| 2 | Project `.agents/skills/` | `{projectRoot}/.agents/skills/` |
|
|
42
|
+
| 3 | Global `~/.mia-code/skills/` | `~/.mia-code/skills/` |
|
|
43
|
+
| 4 | Custom paths from config | `{"skill": {"paths": ["./my-skills"]}}` |
|
|
44
|
+
| 5 | Remote URLs from config | `{"skill": {"urls": ["https://..."]}}` |
|
|
45
|
+
|
|
46
|
+
Source 2 (`.agents/skills/`) exists for compatibility with other tools that use the `.agents` convention.
|
|
47
|
+
|
|
48
|
+
### Discovery Algorithm
|
|
49
|
+
|
|
50
|
+
1. **Scan directories**: for each source (1-4), glob for `*.md` files in the directory
|
|
51
|
+
2. **Fetch remote**: for each URL in source 5, download the markdown file
|
|
52
|
+
3. **Parse frontmatter**: extract YAML frontmatter from each file
|
|
53
|
+
4. **Validate format**: ensure `name` and `description` fields exist
|
|
54
|
+
5. **Register skills**: add to registry keyed by `name`
|
|
55
|
+
6. **Handle duplicates**: higher-precedence source wins; log warning for conflicts
|
|
56
|
+
7. **Report**: log total skill count and any warnings
|
|
57
|
+
|
|
58
|
+
### File Discovery Pattern
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
.mia-code/skills/
|
|
62
|
+
├── code-review.md → skill "code-review"
|
|
63
|
+
├── commit-message.md → skill "commit-message"
|
|
64
|
+
├── testing/
|
|
65
|
+
│ ├── unit-test.md → skill "unit-test"
|
|
66
|
+
│ └── e2e-test.md → skill "e2e-test"
|
|
67
|
+
└── README.md → skipped (no valid frontmatter)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Subdirectories are scanned recursively. Files without valid YAML frontmatter containing `name` and `description` are silently skipped.
|
|
71
|
+
|
|
72
|
+
### Remote Skills
|
|
73
|
+
|
|
74
|
+
Remote skills are fetched from URLs specified in configuration:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"skill": {
|
|
79
|
+
"urls": [
|
|
80
|
+
"https://raw.githubusercontent.com/team/skills/main/code-review.md",
|
|
81
|
+
"https://example.com/skills/testing.md"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Caching**: remote skills are cached in `~/.mia-code/cache/skills/` after first download.
|
|
88
|
+
|
|
89
|
+
**TTL (Time-To-Live)**: cached skills are refreshed after 7 days by default. Configure:
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"skill": {
|
|
93
|
+
"cacheTTL": 604800 // seconds (7 days)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Offline**: if a remote URL is unreachable, the cached version is used. If no cache exists, the skill is skipped with a warning.
|
|
99
|
+
|
|
100
|
+
**Security**: remote skills are markdown only — they cannot execute code. The agent interprets them as instructions, not as executable content.
|
|
101
|
+
|
|
102
|
+
### Duplicate Handling
|
|
103
|
+
|
|
104
|
+
When multiple sources provide a skill with the same name:
|
|
105
|
+
|
|
106
|
+
1. The highest-precedence source wins (project > global > custom > remote)
|
|
107
|
+
2. A warning is logged: `Skill "code-review" from ~/.mia-code/skills/ overridden by .mia-code/skills/`
|
|
108
|
+
3. The overridden skill is not loaded — only the winning source is registered
|
|
109
|
+
4. `/skills` command shows the active source for each skill
|
|
110
|
+
|
|
111
|
+
### Format Validation
|
|
112
|
+
|
|
113
|
+
A valid skill file must have:
|
|
114
|
+
|
|
115
|
+
1. YAML frontmatter delimited by `---` markers
|
|
116
|
+
2. A `name` field (string, kebab-case, 1-50 characters)
|
|
117
|
+
3. A `description` field (string, 1-200 characters)
|
|
118
|
+
4. A non-empty markdown body after the frontmatter
|
|
119
|
+
|
|
120
|
+
Invalid files are skipped with a warning:
|
|
121
|
+
```
|
|
122
|
+
Warning: skills/bad-skill.md skipped — missing required "description" in frontmatter
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Refresh Mechanism
|
|
126
|
+
|
|
127
|
+
`/skills refresh` triggers a full re-discovery:
|
|
128
|
+
|
|
129
|
+
1. Clear the current skill registry
|
|
130
|
+
2. Re-scan all directory sources for new, changed, or removed files
|
|
131
|
+
3. Re-fetch remote skills (ignoring cache TTL)
|
|
132
|
+
4. Re-validate and re-register all skills
|
|
133
|
+
5. Report changes: "2 skills added, 1 updated, 0 removed"
|
|
134
|
+
|
|
135
|
+
### System Prompt Integration
|
|
136
|
+
|
|
137
|
+
After discovery, the agent's system prompt includes:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
You have X skills available. Use the skill tool to invoke them by name.
|
|
141
|
+
Available skills: code-review, commit-message, test-writer, ...
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
This ensures the agent knows skills exist and can proactively use them when relevant.
|
|
145
|
+
|
|
146
|
+
### Configuration
|
|
147
|
+
|
|
148
|
+
Full skill configuration:
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"skill": {
|
|
153
|
+
"paths": ["./custom-skills", "../shared-skills"],
|
|
154
|
+
"urls": ["https://example.com/skills/review.md"],
|
|
155
|
+
"cacheTTL": 604800,
|
|
156
|
+
"enabled": true
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Setting `"enabled": false` disables skill discovery entirely.
|
|
162
|
+
|
|
163
|
+
## Supporting Structures
|
|
164
|
+
|
|
165
|
+
- **Skill System (RISE-094)** defines what skills are and how they work
|
|
166
|
+
- **Agent Definition Config (RISE-010)** can specify default skills for an agent type
|
|
167
|
+
- **Structured Logging (RISE-007)** logs discovery events, warnings, and conflicts
|
|
168
|
+
- **Lazy Initialization (RISE-008)** defers skill loading until first access if startup time is critical
|
|
169
|
+
|
|
170
|
+
## Creative Advancement Scenarios
|
|
171
|
+
|
|
172
|
+
**Scenario 1 — Drop-In Customization:**
|
|
173
|
+
A developer creates `.mia-code/skills/code-review.md` in their project. On the next `mia-code` start, the skill appears in `/skills`. The agent uses it automatically when asked to review code. No configuration needed — just drop the file and it works.
|
|
174
|
+
|
|
175
|
+
**Scenario 2 — Team Skill Repository:**
|
|
176
|
+
A team maintains a GitHub repo of shared skills. Each developer adds the raw URLs to their config. On startup, mia-code fetches and caches the skills. When the team updates a skill, everyone gets the new version within 7 days (or immediately via `/skills refresh`).
|
|
177
|
+
|
|
178
|
+
**Scenario 3 — Project-Specific Override:**
|
|
179
|
+
The global `code-review.md` skill has generic review criteria. A project adds its own `code-review.md` in `.mia-code/skills/` with project-specific rules. The project version wins by precedence. When the developer works on other projects, the global version applies.
|
|
180
|
+
|
|
181
|
+
**Scenario 4 — Skill Inventory Audit:**
|
|
182
|
+
A tech lead runs `/skills` across multiple projects to audit what skills are in use. They find inconsistencies — some projects have outdated review skills. They update the shared URL and run `/skills refresh` everywhere. Consistency restored in minutes.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# RISE-096: Desktop Remote Driving
|
|
2
|
+
|
|
3
|
+
> RISE Framework Specification — Borrowed from OpenCode for mia-code
|
|
4
|
+
> Document: rispecs/borrowed_from_opencode/096-desktop-remote-driving.rispec.md
|
|
5
|
+
|
|
6
|
+
## Creative Intent
|
|
7
|
+
|
|
8
|
+
mia-code delivers a desktop application and remote driving capability that untethers the developer from the terminal. The desktop app wraps mia-code's web interface in a native window with system tray presence, global keyboard shortcuts, and OS integration. Remote driving separates where computation happens from where interaction happens — the agent runs on a powerful workstation while the developer drives from a phone, a tablet, or a lightweight laptop on a different network. Computation and interface become independent dimensions.
|
|
9
|
+
|
|
10
|
+
## Structural Tension Analysis
|
|
11
|
+
|
|
12
|
+
**Current Reality:**
|
|
13
|
+
- mia-code runs only in a terminal — no native desktop presence, no system tray, no global shortcuts
|
|
14
|
+
- Interacting with mia-code requires an active terminal window in focus
|
|
15
|
+
- Using mia-code from a mobile device requires SSH and a terminal emulator
|
|
16
|
+
- The agent's computation is bound to the device running the interface
|
|
17
|
+
- No auto-update mechanism exists — users manually update via npm
|
|
18
|
+
- Terminal rendering limits the richness of the interface (no images, no rich formatting, no drag-and-drop)
|
|
19
|
+
|
|
20
|
+
**Desired State:**
|
|
21
|
+
- A desktop app provides a native window with system tray icon and global keyboard shortcuts
|
|
22
|
+
- The app wraps a web-based UI connected to the HTTP API server (RISE-088)
|
|
23
|
+
- Remote driving: the server runs on a workstation, clients connect from any device on any network
|
|
24
|
+
- mDNS (RISE-092) enables auto-discovery of local servers; URL/password for remote servers
|
|
25
|
+
- The desktop app auto-updates: checks on launch, downloads delta updates
|
|
26
|
+
- Native OS integration: file drag-and-drop, notifications, open-in-editor
|
|
27
|
+
|
|
28
|
+
## Desired Outcome Definition
|
|
29
|
+
|
|
30
|
+
A developer installs the mia-code desktop app. It launches a native window with the mia-code web interface, a system tray icon for background access, and a global keyboard shortcut for instant activation. The app connects to a local or remote mia-code server, enabling the developer to drive an agent running on any machine from any client device.
|
|
31
|
+
|
|
32
|
+
## Natural Language Functional Description
|
|
33
|
+
|
|
34
|
+
### Desktop Application
|
|
35
|
+
|
|
36
|
+
**Framework**: Tauri (preferred for small binary size and Rust security) or Electron (if web technology integration demands it).
|
|
37
|
+
|
|
38
|
+
**Window Features:**
|
|
39
|
+
- Native window with title bar, minimize, maximize, close
|
|
40
|
+
- System tray icon with menu: Show/Hide, Active Sessions, Quit
|
|
41
|
+
- Global keyboard shortcut to toggle window visibility (configurable, default: `Cmd+Shift+M` / `Ctrl+Shift+M`)
|
|
42
|
+
- Window position and size remembered across launches
|
|
43
|
+
- Dark/light theme following OS preference
|
|
44
|
+
- Multiple windows for multiple sessions (optional)
|
|
45
|
+
|
|
46
|
+
**System Tray:**
|
|
47
|
+
- Tray icon shows agent status: idle (gray), thinking (animated), error (red)
|
|
48
|
+
- Right-click menu: Show Window, Active Sessions (submenu), Preferences, Quit
|
|
49
|
+
- Left-click: toggle window visibility
|
|
50
|
+
- Badge/notification dot when agent completes a task in the background
|
|
51
|
+
|
|
52
|
+
**Native Notifications:**
|
|
53
|
+
- Notify when agent completes a response (if window is not focused)
|
|
54
|
+
- Notify on permission requests requiring attention
|
|
55
|
+
- Notify on errors during agent execution
|
|
56
|
+
- Notification preferences configurable: all, errors-only, none
|
|
57
|
+
|
|
58
|
+
### Web UI
|
|
59
|
+
|
|
60
|
+
The desktop app renders a web-based UI that communicates with the mia-code server:
|
|
61
|
+
|
|
62
|
+
- Built with a modern framework (React, Svelte, or Solid)
|
|
63
|
+
- Connects to the HTTP API (RISE-088) for operations
|
|
64
|
+
- Uses WebSocket (RISE-090) or SSE (RISE-091) for real-time streaming
|
|
65
|
+
- Renders markdown responses with syntax highlighting
|
|
66
|
+
- Shows tool executions in collapsible panels
|
|
67
|
+
- Displays permission prompts as modal dialogs
|
|
68
|
+
- File drag-and-drop: drop files onto the window to attach as context
|
|
69
|
+
|
|
70
|
+
### Remote Driving
|
|
71
|
+
|
|
72
|
+
Remote driving separates the server (where the agent runs) from the client (where the developer interacts):
|
|
73
|
+
|
|
74
|
+
**Setup Flow:**
|
|
75
|
+
1. Start the server on the workstation: `mia-code serve --host 0.0.0.0 --port 4096 --password secret`
|
|
76
|
+
2. Note the workstation's IP or hostname
|
|
77
|
+
3. From the client device: open the desktop app or web browser
|
|
78
|
+
4. Connect: enter `http://workstation:4096` and the password
|
|
79
|
+
5. Drive the agent from the client — all computation happens on the workstation
|
|
80
|
+
|
|
81
|
+
**Local Discovery:**
|
|
82
|
+
- On the same network, mDNS (RISE-092) auto-discovers the workstation
|
|
83
|
+
- The desktop app shows a "Connect" screen listing discovered instances
|
|
84
|
+
- One click connects to the local server
|
|
85
|
+
|
|
86
|
+
**Remote Access:**
|
|
87
|
+
- For different networks, use SSH tunnel: `ssh -L 4096:localhost:4096 workstation`
|
|
88
|
+
- Or use a reverse proxy (Cloudflare Tunnel, ngrok, tailscale) for public access
|
|
89
|
+
- The desktop app stores recent connections for quick reconnection
|
|
90
|
+
|
|
91
|
+
### Device-Specific Features
|
|
92
|
+
|
|
93
|
+
**From Desktop (macOS/Windows/Linux):**
|
|
94
|
+
- Full keyboard input with shortcuts
|
|
95
|
+
- File drag-and-drop from Finder/Explorer
|
|
96
|
+
- "Open in Editor" button for files the agent references
|
|
97
|
+
- Copy code blocks to clipboard with one click
|
|
98
|
+
|
|
99
|
+
**From Mobile (phone/tablet via web browser):**
|
|
100
|
+
- Responsive web UI adapts to small screens
|
|
101
|
+
- Touch-friendly message input and permission buttons
|
|
102
|
+
- Swipe gestures for navigation (session list ↔ chat)
|
|
103
|
+
- Permission prompts as native-feeling bottom sheets
|
|
104
|
+
|
|
105
|
+
**From Terminal (fallback):**
|
|
106
|
+
- `mia-code connect --url http://workstation:4096 --password secret`
|
|
107
|
+
- Same TUI experience as local mia-code, but driving a remote server
|
|
108
|
+
|
|
109
|
+
### Auto-Updates
|
|
110
|
+
|
|
111
|
+
The desktop app checks for updates on launch:
|
|
112
|
+
|
|
113
|
+
1. Query update server for latest version
|
|
114
|
+
2. Compare with current version
|
|
115
|
+
3. If update available, download delta update in background
|
|
116
|
+
4. Prompt user to restart to apply (or auto-apply on next launch)
|
|
117
|
+
5. Update mechanism: Tauri's built-in updater or Electron's autoUpdater
|
|
118
|
+
|
|
119
|
+
### Desktop Configuration
|
|
120
|
+
|
|
121
|
+
Desktop-specific config (separate from CLI config):
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"desktop": {
|
|
126
|
+
"globalShortcut": "CommandOrControl+Shift+M",
|
|
127
|
+
"startMinimized": false,
|
|
128
|
+
"showInTray": true,
|
|
129
|
+
"notifications": "all",
|
|
130
|
+
"theme": "system",
|
|
131
|
+
"window": {
|
|
132
|
+
"width": 1200,
|
|
133
|
+
"height": 800,
|
|
134
|
+
"x": 100,
|
|
135
|
+
"y": 100
|
|
136
|
+
},
|
|
137
|
+
"recentConnections": [
|
|
138
|
+
{"url": "http://workstation:4096", "name": "Work Desktop"}
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Session Continuity
|
|
145
|
+
|
|
146
|
+
Remote driving enables seamless session continuity across devices:
|
|
147
|
+
|
|
148
|
+
1. Start a session on the workstation terminal
|
|
149
|
+
2. Switch to the desktop app — same session, same history
|
|
150
|
+
3. Walk away and connect from phone — continue the conversation
|
|
151
|
+
4. Return to the workstation — the session is still there
|
|
152
|
+
5. The server is the source of truth; clients are interchangeable views
|
|
153
|
+
|
|
154
|
+
## Supporting Structures
|
|
155
|
+
|
|
156
|
+
- **HTTP API Server (RISE-088)** provides the API the desktop app connects to
|
|
157
|
+
- **WebSocket Support (RISE-090)** provides real-time streaming to the app
|
|
158
|
+
- **SSE Streaming (RISE-091)** provides an alternative streaming transport
|
|
159
|
+
- **mDNS Discovery (RISE-092)** enables auto-discovery of local servers
|
|
160
|
+
- **JavaScript SDK (RISE-093)** powers the web UI's API communication
|
|
161
|
+
- **Client-Server Architecture (RISE-001)** defines the separation this feature realizes
|
|
162
|
+
|
|
163
|
+
## Creative Advancement Scenarios
|
|
164
|
+
|
|
165
|
+
**Scenario 1 — Couch-Driven Development:**
|
|
166
|
+
A developer starts `mia-code serve` on their workstation with 64GB RAM and a fast GPU. They move to the couch, open the mobile web UI on their phone, and continue their refactoring session. The agent runs with full workstation power while the developer types on a phone keyboard.
|
|
167
|
+
|
|
168
|
+
**Scenario 2 — Notification-Driven Workflow:**
|
|
169
|
+
A developer sends a long-running prompt (refactor an entire module) and minimizes the desktop app. Five minutes later, a native notification appears: "Refactoring complete — 12 files modified." They click the notification, review the changes, and approve. The agent worked in the background while they did other things.
|
|
170
|
+
|
|
171
|
+
**Scenario 3 — Multi-Device Session:**
|
|
172
|
+
Morning: the developer starts a session on their workstation terminal. Commute: they connect from their phone and continue the conversation on the train. Office: they open the desktop app on their work laptop and pick up where they left off. The session follows the developer, not the device.
|
|
173
|
+
|
|
174
|
+
**Scenario 4 — Team Demo:**
|
|
175
|
+
A developer presents a live demo of mia-code. They share their screen showing the desktop app. They type a prompt and the team watches the agent stream its response, execute tools, and produce code — all rendered in a rich web UI that is more presentable than a terminal. The demo sells the tool to the entire team.
|