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.
Files changed (410) hide show
  1. package/.miette/260321.md +1 -0
  2. package/.miette/260323.md +9 -0
  3. package/.miette/260331.md +2 -0
  4. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--d3417f2c-df12-4f0f-8a1b-d88e7968f822/d3417f2c-df12-4f0f-8a1b-d88e7968f822.md +63 -0
  5. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--e6c3fc5d-4a70-4523-ba7d-a3250da4c235/e6c3fc5d-4a70-4523-ba7d-a3250da4c235.md +72 -0
  6. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--efeb00a2-b17a-4d32-b1f0-b90c37a8d24e/efeb00a2-b17a-4d32-b1f0-b90c37a8d24e.md +62 -0
  7. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.json +302 -0
  8. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.md +149 -0
  9. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/AGENTS.md +31 -0
  10. package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/meta-decomposition-3-children.md +67 -0
  11. package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/61f9dd4d-7aa6-45e6-a58b-e480b1aa6737--from-mia-openclaw-workspace.md +125 -0
  12. package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/STATUS.md +1 -0
  13. package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.json +177 -0
  14. package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.md +77 -0
  15. package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.json +222 -0
  16. package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.md +99 -0
  17. package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.json +111 -0
  18. package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.md +67 -0
  19. package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.json +349 -0
  20. package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.md +147 -0
  21. package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.json +118 -0
  22. package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.md +64 -0
  23. package/GUILLAUME.md +8 -0
  24. package/KINSHIP.md +9 -0
  25. package/MIA_CODE_ARCHITECTURE_REPORT.md +718 -0
  26. package/contextual_research/260119-MIA-CODE--98090899-8aff-4e11-9dc3-8b99466d1.md +1101 -0
  27. package/contextual_research/MIA.md +38 -0
  28. package/contextual_research/MIAWAPASCONE.md +59 -0
  29. package/contextual_research/MIETTE.md +38 -0
  30. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2504.00218v2.pdf +7483 -12
  31. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2505.00212v3.pdf +0 -0
  32. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/CONTENT.md +1014 -0
  33. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/DESIGN.gemini.md +242 -0
  34. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/INDEX.md +45 -0
  35. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.md +2025 -0
  36. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.pdf +7483 -12
  37. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.md +1755 -0
  38. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.pdf +0 -0
  39. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_12_decomposed_prompting.pdf +0 -0
  40. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_19_hugginggpt_planning.pdf +0 -0
  41. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.md +766 -0
  42. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.pdf +3431 -4
  43. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.md +260 -0
  44. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.pdf +0 -0
  45. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.md +558 -0
  46. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.pdf +0 -0
  47. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_34_hierarchical_multi_agent.pdf +0 -0
  48. package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_5_open_intent_extraction.pdf +0 -0
  49. package/contextual_research/PODCAST.md +109 -0
  50. package/contextual_research/langchain-principles-roadmap.md +157 -0
  51. package/contextual_research/persona-to-narrative-character-inquiry_260201.md +50 -0
  52. package/dist/cli.js +35 -11
  53. package/dist/geminiHeadless.js +8 -2
  54. package/dist/index.js +2 -1
  55. package/dist/mcp/miaco-server.js +10 -1
  56. package/dist/mcp/miatel-server.js +10 -1
  57. package/dist/mcp/miawa-server.js +10 -1
  58. package/dist/mcp/utils.d.ts +6 -1
  59. package/dist/mcp/utils.js +24 -3
  60. package/dist/sessionStore.d.ts +8 -2
  61. package/dist/sessionStore.js +39 -3
  62. package/dist/types.d.ts +1 -0
  63. package/miaco/README.md +124 -0
  64. package/miaco/dist/commands/chart.d.ts +6 -0
  65. package/miaco/dist/commands/chart.d.ts.map +1 -0
  66. package/miaco/dist/commands/chart.js +222 -0
  67. package/miaco/dist/commands/chart.js.map +1 -0
  68. package/miaco/dist/commands/decompose.d.ts +6 -0
  69. package/miaco/dist/commands/decompose.d.ts.map +1 -0
  70. package/miaco/dist/commands/decompose.js +98 -0
  71. package/miaco/dist/commands/decompose.js.map +1 -0
  72. package/miaco/dist/commands/schema.d.ts +6 -0
  73. package/miaco/dist/commands/schema.d.ts.map +1 -0
  74. package/miaco/dist/commands/schema.js +66 -0
  75. package/miaco/dist/commands/schema.js.map +1 -0
  76. package/miaco/dist/commands/stc.d.ts +11 -0
  77. package/miaco/dist/commands/stc.d.ts.map +1 -0
  78. package/miaco/dist/commands/stc.js +590 -0
  79. package/miaco/dist/commands/stc.js.map +1 -0
  80. package/miaco/dist/commands/trace.d.ts +6 -0
  81. package/miaco/dist/commands/trace.d.ts.map +1 -0
  82. package/miaco/dist/commands/trace.js +83 -0
  83. package/miaco/dist/commands/trace.js.map +1 -0
  84. package/miaco/dist/commands/validate.d.ts +6 -0
  85. package/miaco/dist/commands/validate.d.ts.map +1 -0
  86. package/miaco/dist/commands/validate.js +58 -0
  87. package/miaco/dist/commands/validate.js.map +1 -0
  88. package/miaco/dist/decompose.d.ts +93 -0
  89. package/miaco/dist/decompose.d.ts.map +1 -0
  90. package/miaco/dist/decompose.js +562 -0
  91. package/miaco/dist/decompose.js.map +1 -0
  92. package/miaco/dist/index.d.ts +18 -0
  93. package/miaco/dist/index.d.ts.map +1 -0
  94. package/miaco/dist/index.js +83 -0
  95. package/miaco/dist/index.js.map +1 -0
  96. package/miaco/dist/storage.d.ts +60 -0
  97. package/miaco/dist/storage.d.ts.map +1 -0
  98. package/miaco/dist/storage.js +100 -0
  99. package/miaco/dist/storage.js.map +1 -0
  100. package/miaco/package-lock.json +4103 -0
  101. package/miaco/package.json +40 -0
  102. package/miaco/tsconfig.json +18 -0
  103. package/miaco/version-patch-commit-and-publish.sh +1 -0
  104. package/miatel/MISSION_251231.md +3 -0
  105. package/miatel/README.md +107 -0
  106. package/miatel/dist/commands/analyze.d.ts +6 -0
  107. package/miatel/dist/commands/analyze.d.ts.map +1 -0
  108. package/miatel/dist/commands/analyze.js +100 -0
  109. package/miatel/dist/commands/analyze.js.map +1 -0
  110. package/miatel/dist/commands/arc.d.ts +6 -0
  111. package/miatel/dist/commands/arc.d.ts.map +1 -0
  112. package/miatel/dist/commands/arc.js +71 -0
  113. package/miatel/dist/commands/arc.js.map +1 -0
  114. package/miatel/dist/commands/beat.d.ts +6 -0
  115. package/miatel/dist/commands/beat.d.ts.map +1 -0
  116. package/miatel/dist/commands/beat.js +165 -0
  117. package/miatel/dist/commands/beat.js.map +1 -0
  118. package/miatel/dist/commands/theme.d.ts +6 -0
  119. package/miatel/dist/commands/theme.d.ts.map +1 -0
  120. package/miatel/dist/commands/theme.js +54 -0
  121. package/miatel/dist/commands/theme.js.map +1 -0
  122. package/miatel/dist/index.d.ts +18 -0
  123. package/miatel/dist/index.d.ts.map +1 -0
  124. package/miatel/dist/index.js +80 -0
  125. package/miatel/dist/index.js.map +1 -0
  126. package/miatel/dist/storage.d.ts +55 -0
  127. package/miatel/dist/storage.d.ts.map +1 -0
  128. package/miatel/dist/storage.js +100 -0
  129. package/miatel/dist/storage.js.map +1 -0
  130. package/miatel/package-lock.json +4103 -0
  131. package/miatel/package.json +35 -0
  132. package/miatel/src/commands/analyze.ts +109 -0
  133. package/miatel/src/commands/arc.ts +78 -0
  134. package/miatel/src/commands/beat.ts +176 -0
  135. package/miatel/src/commands/theme.ts +60 -0
  136. package/miatel/src/index.ts +94 -0
  137. package/miatel/src/storage.ts +156 -0
  138. package/miatel/tsconfig.json +18 -0
  139. package/miawa/MISSION_251231.md +144 -0
  140. package/miawa/README.md +133 -0
  141. package/miawa/dist/commands/beat.d.ts +6 -0
  142. package/miawa/dist/commands/beat.d.ts.map +1 -0
  143. package/miawa/dist/commands/beat.js +69 -0
  144. package/miawa/dist/commands/beat.js.map +1 -0
  145. package/miawa/dist/commands/ceremony.d.ts +6 -0
  146. package/miawa/dist/commands/ceremony.d.ts.map +1 -0
  147. package/miawa/dist/commands/ceremony.js +239 -0
  148. package/miawa/dist/commands/ceremony.js.map +1 -0
  149. package/miawa/dist/commands/circle.d.ts +6 -0
  150. package/miawa/dist/commands/circle.d.ts.map +1 -0
  151. package/miawa/dist/commands/circle.js +75 -0
  152. package/miawa/dist/commands/circle.js.map +1 -0
  153. package/miawa/dist/commands/eva.d.ts +6 -0
  154. package/miawa/dist/commands/eva.d.ts.map +1 -0
  155. package/miawa/dist/commands/eva.js +73 -0
  156. package/miawa/dist/commands/eva.js.map +1 -0
  157. package/miawa/dist/commands/wound.d.ts +6 -0
  158. package/miawa/dist/commands/wound.d.ts.map +1 -0
  159. package/miawa/dist/commands/wound.js +74 -0
  160. package/miawa/dist/commands/wound.js.map +1 -0
  161. package/miawa/dist/index.d.ts +19 -0
  162. package/miawa/dist/index.d.ts.map +1 -0
  163. package/miawa/dist/index.js +91 -0
  164. package/miawa/dist/index.js.map +1 -0
  165. package/miawa/dist/storage.d.ts +73 -0
  166. package/miawa/dist/storage.d.ts.map +1 -0
  167. package/miawa/dist/storage.js +100 -0
  168. package/miawa/dist/storage.js.map +1 -0
  169. package/miawa/package-lock.json +4103 -0
  170. package/miawa/package.json +36 -0
  171. package/miawa/src/commands/beat.ts +74 -0
  172. package/miawa/src/commands/ceremony.ts +256 -0
  173. package/miawa/src/commands/circle.ts +83 -0
  174. package/miawa/src/commands/eva.ts +84 -0
  175. package/miawa/src/commands/wound.ts +79 -0
  176. package/miawa/src/index.ts +108 -0
  177. package/miawa/src/storage.ts +179 -0
  178. package/miawa/tsconfig.json +18 -0
  179. package/package.json +7 -5
  180. package/references/acp/CLAUDE.md +7 -0
  181. package/references/acp/agent-plan.md +84 -0
  182. package/references/acp/clients.md +31 -0
  183. package/references/acp/extensibility.md +137 -0
  184. package/references/acp/initialization.md +225 -0
  185. package/references/acp/prompt-turn.md +321 -0
  186. package/references/acp/proxy-chains.md +562 -0
  187. package/references/acp/schema.md +3171 -0
  188. package/references/acp/session-list.md +334 -0
  189. package/references/acp/session-modes.md +170 -0
  190. package/references/acp/slash-commands.md +99 -0
  191. package/references/acp/terminals.md +281 -0
  192. package/references/acp/tool-calls.md +311 -0
  193. package/references/acp/typescript.md +29 -0
  194. package/references/claude/agent-teams.md +399 -0
  195. package/references/claude/chrome.md +231 -0
  196. package/references/claude/headless.md +158 -0
  197. package/references/claude/hooks-guide.md +708 -0
  198. package/references/claude/output-styles.md +112 -0
  199. package/references/claude/plugins.md +432 -0
  200. package/references/claude/skills.md +693 -0
  201. package/references/claude/sub-agents.md +816 -0
  202. package/references/copilot/acp/agents.md +32 -0
  203. package/references/copilot/acp/architecture.md +37 -0
  204. package/references/copilot/acp/clients.md +31 -0
  205. package/references/copilot/acp/introduction.md +42 -0
  206. package/references/copilot/acp/registry.md +339 -0
  207. package/references/copilot/acp-server.md +117 -0
  208. package/references/copilot/create-copilot-instructions.md +840 -0
  209. package/references/langchain/llms.txt +833 -0
  210. package/references/langchain/python/agents.md +677 -0
  211. package/references/langchain/python/context-engineering.md +1195 -0
  212. package/references/langchain/python/human-in-the-loop.md +326 -0
  213. package/references/langchain/python/long-term-memory.md +168 -0
  214. package/references/langchain/python/mcp.md +949 -0
  215. package/references/langchain/python/multi-agents/custom-workflow.md +187 -0
  216. package/references/langchain/python/multi-agents/handoffs.md +436 -0
  217. package/references/langchain/python/multi-agents/overview.md +295 -0
  218. package/references/langchain/python/multi-agents/router.md +150 -0
  219. package/references/langchain/python/multi-agents/skills.md +92 -0
  220. package/references/langchain/python/multi-agents/subagents.md +486 -0
  221. package/references/langchain/python/retrieval.md +320 -0
  222. package/references/langchain/python/runtime.md +141 -0
  223. package/references/langchain/python/short-term-memory.md +658 -0
  224. package/references/langchain/python/structured-output.md +712 -0
  225. package/references/langfuse/llms.txt +148 -0
  226. package/references/langgraph/javascript/llms.txt +275 -0
  227. package/references/skills/home.md +259 -0
  228. package/references/skills/integrate-skills.md +103 -0
  229. package/references/skills/specification.md +254 -0
  230. package/references/skills/what-are-skills.md +74 -0
  231. package/rispecs/README.md +164 -0
  232. package/rispecs/_sync_/miadi-code/SPEC.md +313 -0
  233. package/rispecs/_sync_/miadi-code/STATUS.md +177 -0
  234. package/rispecs/_sync_/miadi-code/dashboard/SPEC.md +465 -0
  235. package/rispecs/_sync_/miadi-code/dashboard/STATUS.md +212 -0
  236. package/rispecs/_sync_/miadi-code/multiline-input/SPEC.md +232 -0
  237. package/rispecs/_sync_/miadi-code/multiline-input/STATUS.md +108 -0
  238. package/rispecs/_sync_/miadi-code/pde/SPEC.md +253 -0
  239. package/rispecs/_sync_/miadi-code/pde/STATUS.md +56 -0
  240. package/rispecs/_sync_/miadi-code/stc/SPEC.md +397 -0
  241. package/rispecs/_sync_/miadi-code/stc/STATUS.md +70 -0
  242. package/rispecs/ava-langstack/inquiry-routing-upgrade.spec.md +119 -0
  243. package/rispecs/borrowed_from_opencode/001-client-server-architecture.rispec.md +98 -0
  244. package/rispecs/borrowed_from_opencode/002-event-bus-system.rispec.md +125 -0
  245. package/rispecs/borrowed_from_opencode/003-instance-state-pattern.rispec.md +136 -0
  246. package/rispecs/borrowed_from_opencode/004-namespace-module-pattern.rispec.md +151 -0
  247. package/rispecs/borrowed_from_opencode/005-zod-schema-validation.rispec.md +139 -0
  248. package/rispecs/borrowed_from_opencode/006-named-error-system.rispec.md +155 -0
  249. package/rispecs/borrowed_from_opencode/007-structured-logging.rispec.md +138 -0
  250. package/rispecs/borrowed_from_opencode/008-lazy-initialization.rispec.md +127 -0
  251. package/rispecs/borrowed_from_opencode/009-multi-agent-system.rispec.md +97 -0
  252. package/rispecs/borrowed_from_opencode/010-agent-definition-config.rispec.md +135 -0
  253. package/rispecs/borrowed_from_opencode/011-agent-permission-rulesets.rispec.md +151 -0
  254. package/rispecs/borrowed_from_opencode/012-agent-prompt-templates.rispec.md +141 -0
  255. package/rispecs/borrowed_from_opencode/013-agent-generation.rispec.md +142 -0
  256. package/rispecs/borrowed_from_opencode/014-plan-build-mode-toggle.rispec.md +155 -0
  257. package/rispecs/borrowed_from_opencode/015-subagent-task-delegation.rispec.md +146 -0
  258. package/rispecs/borrowed_from_opencode/016-agent-model-selection.rispec.md +151 -0
  259. package/rispecs/borrowed_from_opencode/017-compaction-agent.rispec.md +150 -0
  260. package/rispecs/borrowed_from_opencode/018-session-persistence.rispec.md +125 -0
  261. package/rispecs/borrowed_from_opencode/019-session-compaction.rispec.md +132 -0
  262. package/rispecs/borrowed_from_opencode/020-session-forking.rispec.md +134 -0
  263. package/rispecs/borrowed_from_opencode/021-session-revert-snapshot.rispec.md +135 -0
  264. package/rispecs/borrowed_from_opencode/022-session-sharing.rispec.md +165 -0
  265. package/rispecs/borrowed_from_opencode/023-session-summary-diffs.rispec.md +165 -0
  266. package/rispecs/borrowed_from_opencode/024-child-sessions.rispec.md +164 -0
  267. package/rispecs/borrowed_from_opencode/025-session-title-generation.rispec.md +162 -0
  268. package/rispecs/borrowed_from_opencode/026-message-parts-model.rispec.md +201 -0
  269. package/rispecs/borrowed_from_opencode/027-streaming-message-deltas.rispec.md +212 -0
  270. package/rispecs/borrowed_from_opencode/028-multi-provider-architecture.rispec.md +184 -0
  271. package/rispecs/borrowed_from_opencode/029-provider-authentication.rispec.md +225 -0
  272. package/rispecs/borrowed_from_opencode/030-model-registry.rispec.md +222 -0
  273. package/rispecs/borrowed_from_opencode/031-cost-tracking.rispec.md +243 -0
  274. package/rispecs/borrowed_from_opencode/032-provider-transform-pipeline.rispec.md +282 -0
  275. package/rispecs/borrowed_from_opencode/033-provider-sdk-abstraction.rispec.md +338 -0
  276. package/rispecs/borrowed_from_opencode/034-tool-registry.rispec.md +110 -0
  277. package/rispecs/borrowed_from_opencode/035-tool-context-injection.rispec.md +155 -0
  278. package/rispecs/borrowed_from_opencode/036-tool-output-truncation.rispec.md +138 -0
  279. package/rispecs/borrowed_from_opencode/037-batch-tool.rispec.md +129 -0
  280. package/rispecs/borrowed_from_opencode/038-multi-edit-tool.rispec.md +167 -0
  281. package/rispecs/borrowed_from_opencode/039-apply-patch-tool.rispec.md +161 -0
  282. package/rispecs/borrowed_from_opencode/040-code-search-tool.rispec.md +143 -0
  283. package/rispecs/borrowed_from_opencode/041-web-fetch-tool.rispec.md +131 -0
  284. package/rispecs/borrowed_from_opencode/042-web-search-tool.rispec.md +159 -0
  285. package/rispecs/borrowed_from_opencode/043-todo-tool.rispec.md +156 -0
  286. package/rispecs/borrowed_from_opencode/044-plan-mode-tool.rispec.md +139 -0
  287. package/rispecs/borrowed_from_opencode/045-task-tool.rispec.md +146 -0
  288. package/rispecs/borrowed_from_opencode/046-question-tool.rispec.md +170 -0
  289. package/rispecs/borrowed_from_opencode/047-external-directory-tool.rispec.md +166 -0
  290. package/rispecs/borrowed_from_opencode/048-file-read-write-tools.rispec.md +205 -0
  291. package/rispecs/borrowed_from_opencode/049-lsp-server-management.rispec.md +104 -0
  292. package/rispecs/borrowed_from_opencode/050-lsp-hover-completion.rispec.md +102 -0
  293. package/rispecs/borrowed_from_opencode/051-lsp-diagnostics.rispec.md +86 -0
  294. package/rispecs/borrowed_from_opencode/052-lsp-root-detection.rispec.md +109 -0
  295. package/rispecs/borrowed_from_opencode/053-remote-mcp-servers.rispec.md +119 -0
  296. package/rispecs/borrowed_from_opencode/054-mcp-oauth-flow.rispec.md +107 -0
  297. package/rispecs/borrowed_from_opencode/055-mcp-tool-conversion.rispec.md +118 -0
  298. package/rispecs/borrowed_from_opencode/056-mcp-connection-monitoring.rispec.md +106 -0
  299. package/rispecs/borrowed_from_opencode/057-local-mcp-servers.rispec.md +116 -0
  300. package/rispecs/borrowed_from_opencode/058-rich-tui.rispec.md +108 -0
  301. package/rispecs/borrowed_from_opencode/059-streaming-display.rispec.md +116 -0
  302. package/rispecs/borrowed_from_opencode/060-permission-prompts.rispec.md +130 -0
  303. package/rispecs/borrowed_from_opencode/061-session-navigation.rispec.md +155 -0
  304. package/rispecs/borrowed_from_opencode/062-syntax-highlighting.rispec.md +151 -0
  305. package/rispecs/borrowed_from_opencode/063-keybinding-system.rispec.md +181 -0
  306. package/rispecs/borrowed_from_opencode/064-multi-level-config.rispec.md +155 -0
  307. package/rispecs/borrowed_from_opencode/065-jsonc-config.rispec.md +190 -0
  308. package/rispecs/borrowed_from_opencode/066-config-env-variables.rispec.md +153 -0
  309. package/rispecs/borrowed_from_opencode/067-config-deep-merging.rispec.md +178 -0
  310. package/rispecs/borrowed_from_opencode/068-remote-org-config.rispec.md +183 -0
  311. package/rispecs/borrowed_from_opencode/069-config-markdown-frontmatter.rispec.md +206 -0
  312. package/rispecs/borrowed_from_opencode/070-managed-config-directory.rispec.md +232 -0
  313. package/rispecs/borrowed_from_opencode/071-plugin-architecture.rispec.md +104 -0
  314. package/rispecs/borrowed_from_opencode/072-plugin-hooks.rispec.md +123 -0
  315. package/rispecs/borrowed_from_opencode/073-plugin-auto-install.rispec.md +115 -0
  316. package/rispecs/borrowed_from_opencode/074-permission-system.rispec.md +133 -0
  317. package/rispecs/borrowed_from_opencode/075-git-worktree-management.rispec.md +126 -0
  318. package/rispecs/borrowed_from_opencode/076-snapshot-system.rispec.md +124 -0
  319. package/rispecs/borrowed_from_opencode/077-snapshot-diff.rispec.md +117 -0
  320. package/rispecs/borrowed_from_opencode/078-snapshot-restore.rispec.md +128 -0
  321. package/rispecs/borrowed_from_opencode/079-worktree-branch-naming.rispec.md +122 -0
  322. package/rispecs/borrowed_from_opencode/080-sqlite-storage.rispec.md +134 -0
  323. package/rispecs/borrowed_from_opencode/081-database-migrations.rispec.md +148 -0
  324. package/rispecs/borrowed_from_opencode/082-database-transactions.rispec.md +138 -0
  325. package/rispecs/borrowed_from_opencode/083-deferred-effects.rispec.md +148 -0
  326. package/rispecs/borrowed_from_opencode/084-permission-rules.rispec.md +123 -0
  327. package/rispecs/borrowed_from_opencode/085-permission-glob-patterns.rispec.md +113 -0
  328. package/rispecs/borrowed_from_opencode/086-permission-merging.rispec.md +134 -0
  329. package/rispecs/borrowed_from_opencode/087-permission-modes.rispec.md +145 -0
  330. package/rispecs/borrowed_from_opencode/088-http-api-server.rispec.md +165 -0
  331. package/rispecs/borrowed_from_opencode/089-openapi-spec-generation.rispec.md +164 -0
  332. package/rispecs/borrowed_from_opencode/090-websocket-support.rispec.md +136 -0
  333. package/rispecs/borrowed_from_opencode/091-sse-streaming.rispec.md +168 -0
  334. package/rispecs/borrowed_from_opencode/092-mdns-discovery.rispec.md +145 -0
  335. package/rispecs/borrowed_from_opencode/093-javascript-sdk.rispec.md +200 -0
  336. package/rispecs/borrowed_from_opencode/094-skill-system.rispec.md +187 -0
  337. package/rispecs/borrowed_from_opencode/095-skill-discovery.rispec.md +182 -0
  338. package/rispecs/borrowed_from_opencode/096-desktop-remote-driving.rispec.md +175 -0
  339. package/rispecs/borrowed_from_opencode/INDEX.md +255 -0
  340. package/rispecs/core.rispecs.md +261 -0
  341. package/rispecs/engines.rispecs.md +241 -0
  342. package/rispecs/formatting.rispecs.md +252 -0
  343. package/rispecs/living-specifications.rispecs.md +361 -0
  344. package/rispecs/mcp.rispecs.md +197 -0
  345. package/rispecs/pde.rispecs.md +399 -0
  346. package/rispecs/pi-mono-envisionning/ENVISIONING.md +366 -0
  347. package/rispecs/pi-mono-envisionning/storytelling-horizon.rispecs.md +76 -0
  348. package/rispecs/pi-mono-envisionning/widget.rispecs.md +2 -0
  349. package/rispecs/relation-to-mcp-structural-thinking.kin.md +72 -0
  350. package/rispecs/research-for-better-framework/CLAUDE.md +7 -0
  351. package/rispecs/research-for-better-framework/survey-pi-openclaw-opencode-openhands.md +210 -0
  352. package/rispecs/session.rispecs.md +277 -0
  353. package/rispecs/stc.rispecs.md +138 -0
  354. package/rispecs/unifier.rispecs.md +317 -0
  355. package/scripts/LAUNCH--mcp-mia-code--testing--2603141315--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +2 -0
  356. package/scripts/RESUME--mia-code--mcps--260313--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +1 -0
  357. package/scripts/install-widget-in-home-pi-agent-extensions.sh +4 -0
  358. package/scripts/sample-decompose--2604011535-prompt.sh +1 -0
  359. package/skills/deep-search/AGENTS.md +17 -0
  360. package/skills/deep-search/SKILL.md +281 -0
  361. package/skills/deep-search/agent-templates.md +224 -0
  362. package/skills/deep-search/orchestration-patterns.md +95 -0
  363. package/skills/miaco-pde-inquiry-routing-deep-search/AGENTS.md +13 -0
  364. package/skills/miaco-pde-inquiry-routing-deep-search/SKILL.md +136 -0
  365. package/skills/miaco-pde-inquiry-routing-internal-external-relationship/AGENTS.md +4 -0
  366. package/skills/miaco-pde-inquiry-routing-internal-external-relationship/SKILL.md +157 -0
  367. package/skills/miaco-pde-inquiry-routing-local-qmd/AGENTS.md +42 -0
  368. package/skills/miaco-pde-inquiry-routing-local-qmd/SKILL.md +135 -0
  369. package/skills/qmd/AGENTS.md +3 -0
  370. package/skills/qmd/SKILL.md +144 -0
  371. package/skills/qmd/references/mcp-setup.md +102 -0
  372. package/skills/rise-pde-inquiry-session-multi-agents-v3/SKILL.md +234 -0
  373. package/skills/rise-pde-inquiry-session-multi-agents-v3/agent-templates.md +436 -0
  374. package/skills/rise-pde-inquiry-session-multi-agents-v3/orchestration-patterns.md +197 -0
  375. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/ceremonial-technology.md +102 -0
  376. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/creative-orientation.md +99 -0
  377. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/prompt-decomposition.md +73 -0
  378. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/rise-framework.md +74 -0
  379. package/skills/rise-pde-inquiry-session-multi-agents-v3/references/structural-tension.md +82 -0
  380. package/src/cli.ts +35 -11
  381. package/src/geminiHeadless.ts +7 -2
  382. package/src/index.ts +2 -1
  383. package/src/mcp/miaco-server.ts +13 -1
  384. package/src/mcp/miatel-server.ts +13 -1
  385. package/src/mcp/miawa-server.ts +13 -1
  386. package/src/mcp/utils.ts +41 -8
  387. package/src/sessionStore.ts +44 -4
  388. package/src/types.ts +2 -1
  389. package/widget/mia-ceremony/README.md +36 -0
  390. package/widget/mia-ceremony/index.ts +143 -0
  391. package/widget/mia-interceptor/README.md +39 -0
  392. package/widget/mia-interceptor/index.ts +221 -0
  393. package/widget/mia-tools/README.md +37 -0
  394. package/widget/mia-tools/index.ts +569 -0
  395. package/widget/miette-echo/README.md +44 -0
  396. package/widget/miette-echo/index.ts +164 -0
  397. package/.claude/settings.local.json +0 -9
  398. package/.hch/issue_.env +0 -4
  399. package/.hch/issue_add__2601211715.json +0 -77
  400. package/.hch/issue_add__2601211715.md +0 -4
  401. package/.hch/issue_add__2602242020.json +0 -78
  402. package/.hch/issue_add__2602242020.md +0 -7
  403. package/.hch/issues.json +0 -2312
  404. package/.hch/issues.md +0 -30
  405. package/WS__mia-code__260214__IAIP_PDE.code-workspace +0 -29
  406. package/WS__mia-code__src332__260122.code-workspace +0 -23
  407. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/checkpoints/index.md +0 -6
  408. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/events.jsonl +0 -213
  409. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/plan.md +0 -243
  410. package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/workspace.yaml +0 -5
@@ -0,0 +1,210 @@
1
+ # Platform Survey: Fork Candidates for mia-code Next Generation
2
+
3
+ **Date**: 2026-03-20
4
+ **Purpose**: Evaluate Pi, OpenClaw, OpenCode, and OpenHands as fork/foundation candidates for mia-code's major refactoring.
5
+
6
+ ---
7
+
8
+ ## Executive Summary
9
+
10
+ | Candidate | Language | License | Fork Exists | Best For | Adaptation Cost |
11
+ |---|---|---|---|---|---|
12
+ | **Pi** (`badlogic/pi-mono`) | TypeScript | MIT | `miadisabelle/mia-pi-mono` | Session trees, multi-provider AI SDK, extension hot-reload | LOW (use as npm dep) |
13
+ | **OpenClaw** (`openclaw/openclaw`) | TypeScript | MIT | `miadisabelle/mia-openclaw` | Multi-channel gateway, plugin system, Slack, messaging surfaces | MEDIUM-HIGH |
14
+ | **OpenCode** (`anomalyco/opencode`) | TypeScript/Bun | MIT | `miadisabelle/mia-opencode` | Client-server split, LSP, web+desktop+TUI, 20+ providers | MEDIUM |
15
+ | **OpenHands** (`OpenHands/OpenHands`) | Python+TS | MIT | None | Sandbox isolation, SWE-bench SOTA, event-sourced state | HIGH (language mismatch) |
16
+
17
+ **Recommendation**: Hybrid approach — **Pi's AI SDK + session model** as the core engine, **OpenClaw's gateway + channel system** for messaging surfaces, cherry-pick **OpenCode's client-server pattern** for web/desktop delivery.
18
+
19
+ ---
20
+
21
+ ## Candidate Deep Dives
22
+
23
+ ### 1. Pi (`badlogic/pi-mono`) — Mario Zechner
24
+
25
+ **7-package TypeScript monorepo:**
26
+ - `pi-ai` — Unified multi-provider LLM API (10 API backends, 22+ providers)
27
+ - `pi-agent-core` — Stateful agent loop with tool execution
28
+ - `pi-coding-agent` — CLI with session trees, extensions, skills, compaction
29
+ - `pi-tui` — Terminal UI with differential rendering
30
+ - `pi-web-ui` — Web components (mini-lit + Tailwind): ChatPanel, ArtifactsPanel
31
+ - `pi-mom` — Slack bot with per-channel Docker-sandboxed sessions
32
+ - `pi-pods` — vLLM GPU deployment manager
33
+
34
+ **Killer features for mia-code:**
35
+ 1. **Session trees in JSONL** — branch, fork, rewind, compact. Full history preserved.
36
+ 2. **Extension hot-reload** — agent writes code, `/reload`, tests, iterates. No restart.
37
+ 3. **Custom messages** — extensions persist state in sessions via `custom` entries
38
+ 4. **Cross-provider handoff** — switch models mid-conversation transparently
39
+ 5. **Event middleware** — 30+ lifecycle events extensions can intercept/block/modify
40
+ 6. **Minimal core** — 4 built-in tools, everything else additive via extensions
41
+
42
+ **MCP stance**: Deliberately excluded. Skills (markdown) preferred. MCP possible via extension.
43
+
44
+ **Fork strategy**: Don't fork — **depend on `pi-ai` and `pi-agent-core` as npm packages**. Build mia-code's session/extension layer on top. The coding-agent layer is where Pi's opinions diverge from our needs.
45
+
46
+ ---
47
+
48
+ ### 2. OpenClaw (`openclaw/openclaw`)
49
+
50
+ **Multi-channel AI gateway**, TypeScript ESM, pnpm monorepo. Version 2026.3.14.
51
+
52
+ **Architecture**: Gateway-centric WebSocket+HTTP server on port 18789. 65+ RPC handlers. Multi-lane concurrency.
53
+
54
+ **Key strengths:**
55
+ - **70 extensions** — 20+ messaging channels (Slack, Discord, Telegram, Matrix, Teams, Signal, iMessage, WhatsApp...)
56
+ - **Plugin API** — typed manifests, SDK, tools, hooks, CLI extensions
57
+ - **55 bundled skills** — mcporter (MCP bridge), coding-agent, GitHub, Notion, etc.
58
+ - **Memory system** — file-backed + LanceDB vector search
59
+ - **Subagent registry** — spawn/steer/announce pattern
60
+ - **ACP bridge** — Agent Client Protocol for IDE integration
61
+ - **Native apps** — macOS, iOS, Android companions
62
+
63
+ **Internally uses Pi**: The `agents/` module wraps `@mariozechner/pi-agent-core`, `pi-ai`, `pi-coding-agent`. OpenClaw IS a Pi consumer.
64
+
65
+ **Gaps for mia-code**: No narrative/story layer, no creative orientation, no embodiment system, no rispecs workflow, MCP delegated to external mcporter.
66
+
67
+ **Already have rispecs**: 4 specs at `miadisabelle/mia-openclaw/rispecs/` covering foundation, delegation, human consultation, messaging.
68
+
69
+ ---
70
+
71
+ ### 3. OpenCode (`anomalyco/opencode`)
72
+
73
+ **AI-powered dev tool**, Bun+Turborepo, 17 packages.
74
+
75
+ **Key differentiator**: True **client-server architecture** — engine runs as Hono HTTP+SSE server (port 4096), all UIs are replaceable HTTP clients.
76
+
77
+ **Key strengths:**
78
+ - **4 client surfaces** — Terminal TUI (Ink/React), Web app (SolidJS), Desktop (Tauri), ACP (Zed)
79
+ - **First-class LSP integration** — language server diagnostics fed to AI
80
+ - **20+ provider SDKs** — via Vercel AI SDK v5
81
+ - **Full MCP client** — stdio, SSE, StreamableHTTP + OAuth transports
82
+ - **Git worktrees** — parallel sessions on isolated branches
83
+ - **Snapshot/revert** — separate git repo tracks per-session file states
84
+ - **Plugin system** — npm-distributed, hooks for auth/tools/prompts
85
+
86
+ **Risks**: Deep Bun dependency (`Bun.file()`, `Bun.Glob`, `Bun.$`), SST/Cloudflare coupling for SaaS infra, Zen monetization code paths.
87
+
88
+ **Fork strategy**: Strip SaaS packages (console, enterprise, function). Keep core + app + sdk + plugin. Customize agents/tools/skills via `.opencode/` convention.
89
+
90
+ ---
91
+
92
+ ### 4. OpenHands (formerly OpenDevin)
93
+
94
+ **Python-heavy** (73.5%) coding agent platform. 69.5k GitHub stars. SOTA on SWE-Bench (60.6%).
95
+
96
+ **Key strengths:**
97
+ - **Production-grade Docker sandboxing** — each agent gets isolated container
98
+ - **Event-sourced state** — immutable event log, deterministic replay
99
+ - **4-package SDK** — composable (sdk, tools, workspace, agent_server)
100
+ - **Plugin system** — skills, hooks, MCP, commands, slash menus
101
+ - **LiteLLM** — any provider supported
102
+ - **Web-first** — React SPA with embedded VSCode, VNC, Chromium
103
+
104
+ **Disqualifier for mia-code**: Python backend creates language mismatch with our TypeScript ecosystem. Optimized for SWE-bench task completion, not creative development.
105
+
106
+ **Possible extraction**: Use sandbox/execution layer as a subprocess service, not as fork base.
107
+
108
+ ---
109
+
110
+ ## Comparative Matrix
111
+
112
+ | Dimension | Pi | OpenClaw | OpenCode | OpenHands |
113
+ |---|---|---|---|---|
114
+ | **Session trees** | ★★★★★ | ★★ (via Pi) | ★★★ (worktrees) | ★★ (event log) |
115
+ | **Multi-provider** | ★★★★★ (22+) | ★★★★ (via Pi) | ★★★★★ (20+ via AI SDK) | ★★★★★ (LiteLLM) |
116
+ | **Extension system** | ★★★★★ (hot-reload) | ★★★★★ (70 plugins) | ★★★★ (npm plugins) | ★★★★ (plugin registry) |
117
+ | **Messaging channels** | ★★ (Slack only) | ★★★★★ (20+ channels) | ★★ (Slack pkg) | ★★ (Slack/Jira) |
118
+ | **Web UI** | ★★★ (components) | ★★★ (dashboard) | ★★★★★ (SolidJS app) | ★★★★★ (React SPA) |
119
+ | **Desktop** | ✗ | ★★★ (native apps) | ★★★★ (Tauri) | ✗ |
120
+ | **MCP support** | ✗ (by design) | ★★ (mcporter) | ★★★★★ (native client) | ★★★ (via plugins) |
121
+ | **Sandbox** | ★★ (Docker via mom) | ★★★ (Docker sandbox) | ★★ (git snapshots) | ★★★★★ (production Docker) |
122
+ | **LSP** | ✗ | ✗ | ★★★★ (native) | ✗ |
123
+ | **TypeScript native** | ★★★★★ | ★★★★★ | ★★★★ (Bun-coupled) | ★★ (Python primary) |
124
+ | **Forkability** | ★★★★★ | ★★★ | ★★★★ | ★★ |
125
+
126
+ ---
127
+
128
+ ## Proposed Hybrid Architecture for mia-code v2
129
+
130
+ ```
131
+ ┌─────────────────────────────────────────────────────────┐
132
+ │ mia-code v2 │
133
+ │ │
134
+ │ ┌──────────────────────────────────────────────┐ │
135
+ │ │ DOMAIN LAYER (mia-code original) │ │
136
+ │ │ • Mia/Miette embodiment │ │
137
+ │ │ • RISE framework / rispecs │ │
138
+ │ │ • Narrative memory / structural tension │ │
139
+ │ │ • Two-Eyed Seeing / ceremony │ │
140
+ │ │ • PDE decomposition │ │
141
+ │ │ • Creative orientation state machine │ │
142
+ │ └──────────────────┬───────────────────────────┘ │
143
+ │ │ │
144
+ │ ┌──────────────────▼───────────────────────────┐ │
145
+ │ │ ORCHESTRATION (from OpenClaw patterns) │ │
146
+ │ │ • Gateway pattern (WebSocket+HTTP) │ │
147
+ │ │ • Channel adapters (Slack, Discord, etc.) │ │
148
+ │ │ • Plugin registry + typed manifests │ │
149
+ │ │ • Subagent spawn/steer/announce │ │
150
+ │ │ • Skill marketplace │ │
151
+ │ └──────────────────┬───────────────────────────┘ │
152
+ │ │ │
153
+ │ ┌──────────────────▼───────────────────────────┐ │
154
+ │ │ CLIENT DELIVERY (from OpenCode patterns) │ │
155
+ │ │ • HTTP+SSE server (engine as service) │ │
156
+ │ │ • Web app (SolidJS or similar) │ │
157
+ │ │ • Desktop app (Tauri) │ │
158
+ │ │ • Terminal TUI │ │
159
+ │ │ • ACP for IDE integration │ │
160
+ │ └──────────────────┬───────────────────────────┘ │
161
+ │ │ │
162
+ │ ┌──────────────────▼───────────────────────────┐ │
163
+ │ │ ENGINE (from Pi — npm dependencies) │ │
164
+ │ │ • @mariozechner/pi-ai (multi-provider LLM) │ │
165
+ │ │ • @mariozechner/pi-agent-core (agent loop) │ │
166
+ │ │ • Session trees (JSONL, branch, fork, compact) │ │
167
+ │ │ • Extension hot-reload │ │
168
+ │ │ • Custom messages for state persistence │ │
169
+ │ │ • Cross-provider handoff │ │
170
+ │ └──────────────────────────────────────────────┘ │
171
+ │ │
172
+ │ ┌──────────────────────────────────────────────┐ │
173
+ │ │ OPTIONAL: OpenHands sandbox (subprocess) │ │
174
+ │ │ • Docker isolation for untrusted execution │ │
175
+ │ └──────────────────────────────────────────────┘ │
176
+ └─────────────────────────────────────────────────────────┘
177
+ ```
178
+
179
+ ---
180
+
181
+ ## Action Steps for Next Phase
182
+
183
+ 1. **Validate Pi npm dependency approach** — test `npm install @mariozechner/pi-ai @mariozechner/pi-agent-core` and build a minimal agent session
184
+ 2. **Extract OpenClaw gateway pattern** — isolate the gateway+channel architecture from the Pi-agent coupling
185
+ 3. **Prototype client-server split** — implement OpenCode's HTTP+SSE pattern with Pi engine underneath
186
+ 4. **Draft revised rispecs** for `/workspace/rispecs/` incorporating:
187
+ - Session tree spec (from Pi)
188
+ - Multi-provider portability spec (from Pi)
189
+ - Gateway + channel spec (from OpenClaw)
190
+ - Client-server delivery spec (from OpenCode)
191
+ - Extension hot-reload spec (from Pi)
192
+ 5. **Decide fork vs. compose** — full fork of one codebase, or compose from npm packages
193
+
194
+ ---
195
+
196
+ ## Sources
197
+
198
+ ### Local Repos Examined
199
+ - `/workspace/repos/badlogic/pi-mono/` (upstream Pi)
200
+ - `/workspace/repos/miadisabelle/mia-pi-mono/` (our fork)
201
+ - `/workspace/repos/miadisabelle/mia-openclaw/` (our fork)
202
+ - `/workspace/repos/miadisabelle/mia-opencode/` (our fork)
203
+
204
+ ### Key Files (50+ per candidate — see individual agent reports)
205
+
206
+ ### External
207
+ - Armin Ronacher's Pi blog post: `lucumr.pocoo.org/2026/1/31/pi/`
208
+ - OpenHands GitHub: `github.com/OpenHands/OpenHands` (69.5k stars)
209
+ - OpenHands SDK: `github.com/OpenHands/software-agent-sdk`
210
+ - SWE-Bench results: 60.6% verified (OpenHands SOTA Nov 2025)
@@ -0,0 +1,277 @@
1
+ # mia-code Session Management Specification
2
+
3
+ > RISE Framework Specification v1.0
4
+ > Document: mia-code/rispecs/session.rispecs.md
5
+
6
+ ## Creative Intent
7
+
8
+ mia-code enables developers to create seamless conversation continuity across project contexts. Users achieve uninterrupted workflow by having session state automatically persist and resume, eliminating manual tracking of conversation history.
9
+
10
+ ## Structural Tension Analysis
11
+
12
+ **Current Structural Reality:**
13
+ - Agent CLIs use session IDs to maintain conversation context
14
+ - Session IDs are transient, displayed but not persisted by agent CLIs
15
+ - Developers must manually track and specify session IDs to resume
16
+ - No association between project directories and sessions exists
17
+
18
+ **Desired Structural State:**
19
+ - Sessions automatically persist with project directory association
20
+ - Returning to a project directory auto-resumes last conversation
21
+ - Interactive session picker available when multiple sessions exist
22
+ - Users focus on work; system handles session orchestration
23
+
24
+ ## Session Architecture
25
+
26
+ ### Session Lifecycle
27
+
28
+ ```
29
+ First Prompt in Project
30
+
31
+ Agent CLI generates new session_id
32
+
33
+ Session ID captured from event stream
34
+
35
+ MiaCodeSessionMeta created with project root
36
+
37
+ Persisted to ~/.mia-code-sessions.json
38
+
39
+ Subsequent prompts include --resume <sessionId>
40
+
41
+ Agent CLI restores conversation context
42
+ ```
43
+
44
+ ### Session Index Structure
45
+
46
+ ```typescript
47
+ interface SessionIndex {
48
+ byProjectRoot: Record<string, MiaCodeSessionMeta>; // path → session
49
+ byId: Record<string, MiaCodeSessionMeta>; // id → session
50
+ }
51
+ ```
52
+
53
+ **Storage Location:** `~/.mia-code-sessions.json`
54
+
55
+ **Index Strategy:**
56
+ - `byProjectRoot`: Quick lookup for auto-resume (most common path)
57
+ - `byId`: Quick lookup for explicit `--resume <id>` scenarios
58
+
59
+ ## Components
60
+
61
+ ### Session Remembering
62
+
63
+ **Description:** Persist new sessions with project association.
64
+
65
+ **Behavior:**
66
+ - Called after agent CLI returns new session ID
67
+ - Creates `MiaCodeSessionMeta` with id, timestamp, model, projectRoot
68
+ - Updates both `byProjectRoot` and `byId` indexes
69
+ - Overwrites existing session for same project (latest wins)
70
+
71
+ **Implementation:**
72
+ ```typescript
73
+ function rememberSession(meta: MiaCodeSessionMeta): void {
74
+ const idx = loadIndex();
75
+ if (meta.projectRoot) {
76
+ idx.byProjectRoot[meta.projectRoot] = meta;
77
+ }
78
+ idx.byId[meta.id] = meta;
79
+ saveIndex(idx);
80
+ }
81
+ ```
82
+
83
+ ### Session Auto-Resume
84
+
85
+ **Description:** Automatically retrieve last session for current project.
86
+
87
+ **Behavior:**
88
+ - Lookup `projectRoot` in `byProjectRoot` index
89
+ - Return session meta if found, null otherwise
90
+ - Called during CLI initialization when no explicit resume specified
91
+
92
+ **Implementation:**
93
+ ```typescript
94
+ function getLastSessionForProject(projectRoot: string): MiaCodeSessionMeta | null {
95
+ const idx = loadIndex();
96
+ return idx.byProjectRoot[projectRoot] ?? null;
97
+ }
98
+ ```
99
+
100
+ ### Session Listing
101
+
102
+ **Description:** Enumerate all saved sessions for user visibility.
103
+
104
+ **Behavior:**
105
+ - Returns array of all `MiaCodeSessionMeta` from `byId` index
106
+ - Used by `/sessions` command and interactive picker
107
+ - Sorted by `startedAt` timestamp (implicit from insertion order)
108
+
109
+ **Implementation:**
110
+ ```typescript
111
+ function listSessions(): MiaCodeSessionMeta[] {
112
+ const idx = loadIndex();
113
+ return Object.values(idx.byId);
114
+ }
115
+ ```
116
+
117
+ ### Interactive Session Picker
118
+
119
+ **Description:** User selects from available sessions for current project.
120
+
121
+ **Behavior:**
122
+ - Filters sessions to those matching current projectRoot
123
+ - Displays numbered list with truncated IDs and timestamps
124
+ - Option 0 starts new session
125
+ - Invalid input falls back to new session
126
+
127
+ **Implementation:**
128
+ ```typescript
129
+ async function pickSession(projectRoot: string): Promise<string | undefined> {
130
+ const sessions = listSessions().filter(s => s.projectRoot === projectRoot);
131
+
132
+ if (sessions.length === 0) {
133
+ console.log(chalk.yellow("No saved sessions for this project."));
134
+ return undefined;
135
+ }
136
+
137
+ console.log(chalk.bold("\nAvailable sessions:"));
138
+ sessions.forEach((s, idx) => {
139
+ console.log(chalk.dim(` ${idx + 1}. ${s.id.slice(0, 12)}... (${s.startedAt})`));
140
+ });
141
+ console.log(chalk.dim(` 0. Start new session`));
142
+
143
+ // Readline prompt for selection...
144
+ }
145
+ ```
146
+
147
+ ### Session Clearing
148
+
149
+ **Description:** Remove all saved sessions.
150
+
151
+ **Behavior:**
152
+ - Resets both indexes to empty objects
153
+ - Writes empty index to storage file
154
+ - Invoked via `--clear` flag or `/clear` command
155
+
156
+ **Implementation:**
157
+ ```typescript
158
+ function clearSessions(): void {
159
+ saveIndex({ byProjectRoot: {}, byId: {} });
160
+ }
161
+ ```
162
+
163
+ ## Data
164
+
165
+ ### MiaCodeSessionMeta
166
+
167
+ **Description:** Session tracking metadata.
168
+
169
+ ```typescript
170
+ interface MiaCodeSessionMeta {
171
+ id: string; // Session UUID from agent CLI
172
+ startedAt: string; // ISO 8601 timestamp
173
+ model: string; // Model used (e.g., "gemini-2.5-pro")
174
+ projectRoot: string | null; // Absolute path to project directory
175
+ }
176
+ ```
177
+
178
+ ### Resume Modes
179
+
180
+ | Mode | Trigger | Behavior |
181
+ |------|---------|----------|
182
+ | Auto-resume | No `--resume` flag | Lookup session by projectRoot |
183
+ | Explicit ID | `--resume abc123` | Use provided session ID |
184
+ | Interactive | `--resume` (no ID) | Display picker for project sessions |
185
+ | New session | No existing session | Generate new session on first prompt |
186
+
187
+ ## Creative Advancement Scenarios
188
+
189
+ ### Creative Advancement Scenario: Project Return
190
+
191
+ **Desired Outcome:** Developer resumes prior conversation context instantly
192
+
193
+ **Current Structural Reality:** Session exists from yesterday's work in project
194
+
195
+ **Natural Progression:**
196
+ 1. User invokes `mia-code` in project directory
197
+ 2. `getLastSessionForProject(projectRoot)` returns saved session
198
+ 3. Session ID displayed in header: `session: abc123...`
199
+ 4. First prompt includes `--resume abc123`
200
+ 5. Agent CLI restores conversation history
201
+
202
+ **Achieved Outcome:** Developer continues where they left off without any manual tracking
203
+
204
+ ### Creative Advancement Scenario: Session Discovery
205
+
206
+ **Desired Outcome:** Developer explores available sessions for project
207
+
208
+ **Current Structural Reality:** Multiple sessions exist from different work contexts
209
+
210
+ **Natural Progression:**
211
+ 1. User invokes `mia-code --resume` (no ID)
212
+ 2. Interactive picker displays project sessions
213
+ 3. User selects desired session (or 0 for new)
214
+ 4. Selected session ID used for resume
215
+
216
+ **Achieved Outcome:** Developer chooses optimal conversation context for current task
217
+
218
+ ### Creative Advancement Scenario: Fresh Start
219
+
220
+ **Desired Outcome:** Developer starts new conversation despite existing session
221
+
222
+ **Current Structural Reality:** Previous session exists but context is stale
223
+
224
+ **Natural Progression:**
225
+ 1. User invokes `mia-code --resume` (interactive mode)
226
+ 2. Selects option 0: Start new session
227
+ 3. First prompt generates new session ID
228
+ 4. New session persists, overwriting old project association
229
+
230
+ **Achieved Outcome:** Developer begins fresh while new session auto-persists
231
+
232
+ ## CLI Integration
233
+
234
+ ### Resume Flag Semantics
235
+
236
+ ```bash
237
+ # Auto-resume (default): use last session for project
238
+ mia-code chat
239
+
240
+ # Explicit resume: use specific session ID
241
+ mia-code chat --resume abc123def456
242
+
243
+ # Interactive picker: choose from project sessions
244
+ mia-code chat --resume
245
+
246
+ # Single prompt: explicit only (no auto-resume)
247
+ mia-code prompt "query" --resume abc123
248
+ ```
249
+
250
+ ### Session Commands
251
+
252
+ ```bash
253
+ # List all sessions
254
+ mia-code sessions
255
+
256
+ # Clear all sessions
257
+ mia-code sessions --clear
258
+
259
+ # Interactive slash commands
260
+ /session # Show current session info
261
+ /sessions # List all sessions (last 10)
262
+ /clear # Clear all sessions
263
+ ```
264
+
265
+ ## Advancing Patterns
266
+
267
+ 1. **Project Association:** Sessions naturally bind to project directories
268
+ 2. **Implicit Resume:** Auto-resume requires zero user action
269
+ 3. **Explicit Override:** Interactive picker and ID flags provide control
270
+ 4. **Single Source of Truth:** One index file tracks all sessions
271
+
272
+ ## Implementation Reference
273
+
274
+ - **Session Store:** `src/sessionStore.ts` - All persistence functions
275
+ - **Auto-Resume Logic:** `src/cli.ts` - `runInteractiveCli()` session resolution
276
+ - **CLI Commands:** `src/index.ts` - `sessions` command
277
+ - **Slash Commands:** `src/cli.ts` - `handleSlashCommand()`
@@ -0,0 +1,138 @@
1
+ # miaco STC — PDE to Structural Tension Chart Specification
2
+
3
+ > RISE Framework Specification v1.0
4
+ > Document: mia-code/rispecs/stc.rispecs.md
5
+ > Status: IMPLEMENTED
6
+ > Lineage: mcp-pde → coaia-pde/stc-mapper → miaco/stc
7
+
8
+ ## Creative Intent
9
+
10
+ miaco stc enables developers to transform any Prompt Decomposition Engine (PDE) result into a coaia-narrative compatible Structural Tension Chart — JSONL files consumable by coaia-visualizer, coaia-narrative MCP, and the broader STC ecosystem. The conversion bridges EAST practice (prompt decomposition) with strategic action planning.
11
+
12
+ ## Structural Tension Analysis
13
+
14
+ **Current Structural Reality:**
15
+ - PDE decompositions produce .pde/*.json files with DecompositionResult schema
16
+ - coaia-narrative expects JSONL with Entity/Relation records using type discriminators
17
+ - No CLI tool existed to bridge PDE output → STC JSONL in the miaco ecosystem
18
+ - Conversion required manual mapping or separate MCP server calls
19
+
20
+ **Desired Structural State:**
21
+ - `miaco stc convert <pde-file>` produces valid coaia-narrative JSONL in one command
22
+ - Both deterministic (zero-LLM) and LLM-assisted conversion modes available
23
+ - Output validated against coaia-narrative schema before writing
24
+ - Charts viewable immediately via `coaia-visualizer --memory-path <output>`
25
+
26
+ ## Architecture
27
+
28
+ ### Conversion Pipeline
29
+
30
+ ```
31
+ .pde/<uuid>.json (StoredDecomposition)
32
+ → extract .result (DecompositionResult)
33
+ → mode selection:
34
+ ├─ deterministic: direct mapping with hardcoded rules
35
+ └─ llm-assisted: schema-embedded prompt → engine call → JSONL parse
36
+ → validate JSONL lines (type, required fields, reference integrity)
37
+ → write .stc.jsonl
38
+ ```
39
+
40
+ ### Entity Mapping
41
+
42
+ | PDE Field | STC Entity | entityType |
43
+ |-----------|-----------|------------|
44
+ | primary.action + primary.target | Desired Outcome | desired_outcome |
45
+ | context + ambiguities | Current Reality | current_reality |
46
+ | secondary intents | Action Steps | action_step |
47
+ | actionStack items | Action Steps (merged) | action_step |
48
+ | directions (east/south/west/north) | Chart metadata.fourDirections | structural_tension_chart |
49
+
50
+ ### Relation Mapping
51
+
52
+ | Pattern | relationType |
53
+ |---------|-------------|
54
+ | chart → components | contains |
55
+ | current_reality → desired_outcome | creates_tension_with |
56
+ | action_step → desired_outcome | advances_toward |
57
+ | action_step → action_step (via dependency) | depends_on |
58
+
59
+ ### Naming Convention
60
+
61
+ Entity names follow `chart_{8-char-uuid}_{component}`:
62
+ - `chart_1c08669f` — root chart
63
+ - `chart_1c08669f_desired_outcome` — desired outcome
64
+ - `chart_1c08669f_current_reality` — current reality
65
+ - `chart_1c08669f_action_1` through `_action_N` — action steps
66
+
67
+ ## CLI Interface
68
+
69
+ ```bash
70
+ # Convert PDE to STC (deterministic, no LLM needed)
71
+ miaco stc convert <pde-path-or-uuid> -d
72
+
73
+ # Convert via LLM for richer narrative
74
+ miaco stc convert <pde-path-or-uuid> -e copilot -m gpt-4.1
75
+
76
+ # List available PDE files and their STC status
77
+ miaco stc list
78
+
79
+ # Validate a JSONL file
80
+ miaco stc validate ./chart.jsonl
81
+
82
+ # Full pipeline: convert + visualize
83
+ miaco stc convert <pde> -o ./chart.jsonl && coaia-visualizer --memory-path ./chart.jsonl
84
+ ```
85
+
86
+ ### Options
87
+
88
+ | Flag | Description | Default |
89
+ |------|-------------|---------|
90
+ | `-d, --deterministic` | Skip LLM, use rule-based mapping | false |
91
+ | `-e, --engine <engine>` | LLM engine: copilot, claude, gemini | copilot |
92
+ | `-m, --model <model>` | Model override | gpt-4.1 (copilot) |
93
+ | `-o, --output <path>` | Output JSONL file path | .pde/{uuid}.stc.jsonl |
94
+ | `-w, --workdir <path>` | Working directory for .pde/ lookup | cwd |
95
+ | `--json` | Output summary as JSON | false |
96
+
97
+ ## Deterministic vs LLM-Assisted Mode
98
+
99
+ **Deterministic (-d):**
100
+ - Zero external dependencies (no LLM call)
101
+ - Produces structurally complete charts every time
102
+ - Observations are direct extracts from PDE fields
103
+ - Best for CI/CD pipelines and automated workflows
104
+
105
+ **LLM-Assisted (default):**
106
+ - Richer narrative observations and descriptions
107
+ - Better synthesis of secondary intents into coherent action steps
108
+ - Falls back to deterministic if LLM call fails
109
+ - Best for interactive use and presentation-quality charts
110
+
111
+ ## Validation Criteria
112
+
113
+ The `validate` subcommand checks:
114
+ 1. Each line is valid JSON
115
+ 2. Each line has `type: "entity"` or `type: "relation"`
116
+ 3. Entities have required fields: `name`, `entityType`, `observations`
117
+ 4. Relations have required fields: `from`, `to`, `relationType`
118
+ 5. No dangling references (relation.from and relation.to must match entity names)
119
+
120
+ ## Creative Advancement Scenario
121
+
122
+ **Desired Outcome:** Developer has decomposed a complex multi-agent task and wants to visualize it as a structural tension chart.
123
+
124
+ **Natural Progression:**
125
+ 1. `miaco decompose run -e copilot -p "Complex multi-part task..."`
126
+ 2. `miaco stc convert .pde/<uuid>.json -d`
127
+ 3. `coaia-visualizer --memory-path .pde/<uuid>.stc.jsonl`
128
+ 4. Developer sees chart with desired outcome, current reality, action steps, and relations
129
+ 5. Can be loaded into coaia-narrative MCP for ongoing tracking
130
+
131
+ **Achieved Outcome:** Complete pipeline from raw prompt → decomposed intent → visual strategic plan
132
+
133
+ ## Implementation Status
134
+
135
+ **Current:** IMPLEMENTED v1.0
136
+ **Files:** `mia-code/miaco/src/commands/stc.ts`
137
+ **Tests:** 6 deterministic conversions validated (15-31 entities, 29-65 relations each)
138
+ **Dependencies:** commander, chalk, child_process (Node.js built-in)