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,35 @@
1
+ {
2
+ "name": "@mia-code/miatel",
3
+ "version": "0.1.0",
4
+ "description": "Miatel: Story World terminal agent for narrative intelligence operations",
5
+ "bin": {
6
+ "miatel": "dist/index.js"
7
+ },
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "dev": "npx tsx src/index.ts",
11
+ "start": "node dist/index.js"
12
+ },
13
+ "author": "Guillaume D. Isabelle",
14
+ "license": "MIT",
15
+ "type": "module",
16
+ "dependencies": {
17
+ "chalk": "^5.3.0",
18
+ "coaiajs": "^0.1.0",
19
+ "commander": "^12.0.0",
20
+ "enquirer": "^2.4.1",
21
+ "ora": "^8.0.0"
22
+ },
23
+ "devDependencies": {
24
+ "@types/node": "^22.0.0",
25
+ "tsx": "^4.7.0",
26
+ "typescript": "^5.6.0"
27
+ },
28
+ "keywords": [
29
+ "narrative-intelligence",
30
+ "storytelling",
31
+ "story-world",
32
+ "mia-code",
33
+ "terminal-agent"
34
+ ]
35
+ }
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Analyze command - Story analysis operations
3
+ */
4
+
5
+ import { Command } from "commander";
6
+ import chalk from "chalk";
7
+
8
+ export const analyzeCommand = new Command("analyze")
9
+ .description("Story analysis operations (connects to narrative-intelligence)");
10
+
11
+ analyzeCommand
12
+ .command("coherence")
13
+ .description("Analyze narrative coherence across all dimensions")
14
+ .option("-s, --session <id>", "Session ID")
15
+ .option("--dimension <dim>", "Specific dimension (flow, character, pacing, theme, continuity)")
16
+ .action(async (opts) => {
17
+ console.log(chalk.bold("🌸 Coherence Analysis"));
18
+ console.log(chalk.dim(`Session: ${opts.session || "current"}`));
19
+ console.log(chalk.dim(`Dimension: ${opts.dimension || "all"}`));
20
+ console.log();
21
+
22
+ // Mock coherence output matching NarrativeCoherenceEngine
23
+ console.log(chalk.bold(" Coherence Scores:"));
24
+ console.log(chalk.dim(" Narrative Flow: -- /100"));
25
+ console.log(chalk.dim(" Character Consistency: -- /100"));
26
+ console.log(chalk.dim(" Pacing: -- /100"));
27
+ console.log(chalk.dim(" Theme Saturation: -- /100"));
28
+ console.log(chalk.dim(" Continuity: -- /100"));
29
+ console.log(chalk.dim(" ─────────────────────────"));
30
+ console.log(chalk.dim(" Overall: -- /100"));
31
+ console.log();
32
+ console.log(chalk.yellow("⚠ No story data to analyze. Add beats first."));
33
+ });
34
+
35
+ analyzeCommand
36
+ .command("gaps")
37
+ .description("Identify quality gaps in the narrative")
38
+ .option("-s, --session <id>", "Session ID")
39
+ .option("--severity <level>", "Filter by severity (critical, major, minor)")
40
+ .action(async (opts) => {
41
+ console.log(chalk.bold("🌸 Gap Analysis"));
42
+ console.log(chalk.dim(`Session: ${opts.session || "current"}`));
43
+ console.log(chalk.dim(`Severity filter: ${opts.severity || "all"}`));
44
+ console.log();
45
+ console.log(chalk.green("āœ“ No gaps identified (or no data to analyze)."));
46
+ });
47
+
48
+ analyzeCommand
49
+ .command("trinity")
50
+ .description("Get Trinity assessment (Mia/Miette/Ava8 perspectives)")
51
+ .option("-s, --session <id>", "Session ID")
52
+ .option("-b, --beat <id>", "Specific beat ID (optional)")
53
+ .action(async (opts) => {
54
+ console.log(chalk.bold("🌸 Trinity Assessment"));
55
+ console.log(chalk.dim(`Session: ${opts.session || "current"}`));
56
+ if (opts.beat) {
57
+ console.log(chalk.dim(`Beat: ${opts.beat}`));
58
+ }
59
+ console.log();
60
+
61
+ console.log(chalk.bold(" 🧠 Mia (Structure):"));
62
+ console.log(chalk.dim(" No structural analysis available yet."));
63
+ console.log();
64
+ console.log(chalk.bold(" 🌸 Miette (Resonance):"));
65
+ console.log(chalk.dim(" No emotional analysis available yet."));
66
+ console.log();
67
+ console.log(chalk.bold(" šŸŽØ Ava8 (Atmosphere):"));
68
+ console.log(chalk.dim(" No sensory analysis available yet."));
69
+ });
70
+
71
+ analyzeCommand
72
+ .command("three-universe")
73
+ .description("Analyze through three-universe lens")
74
+ .requiredOption("-b, --beat <id>", "Beat ID to analyze")
75
+ .action(async (opts) => {
76
+ console.log(chalk.bold("🌸 Three-Universe Analysis"));
77
+ console.log(chalk.dim(`Beat: ${opts.beat}`));
78
+ console.log();
79
+
80
+ console.log(chalk.bold(" šŸ”§ Engineer World:"));
81
+ console.log(chalk.dim(" Schema valid: --"));
82
+ console.log(chalk.dim(" Types correct: --"));
83
+ console.log();
84
+ console.log(chalk.bold(" šŸ™ Ceremony World:"));
85
+ console.log(chalk.dim(" K'Ć© honored: --"));
86
+ console.log(chalk.dim(" Sacred pause: --"));
87
+ console.log();
88
+ console.log(chalk.bold(" šŸ“– Story Engine World:"));
89
+ console.log(chalk.dim(" Arc coherent: --"));
90
+ console.log(chalk.dim(" Theme threads: --"));
91
+ console.log();
92
+ console.log(chalk.yellow("⚠ Beat not found. Check ID and try again."));
93
+ });
94
+
95
+ analyzeCommand
96
+ .command("arc-completeness")
97
+ .description("Check narrative arc completeness")
98
+ .option("-s, --session <id>", "Session ID")
99
+ .action(async (opts) => {
100
+ console.log(chalk.bold("🌸 Arc Completeness"));
101
+ console.log(chalk.dim(`Session: ${opts.session || "current"}`));
102
+ console.log();
103
+ console.log(chalk.dim(" Act 1 (Setup): 0%"));
104
+ console.log(chalk.dim(" Act 2 (Confrontation): 0%"));
105
+ console.log(chalk.dim(" Act 3 (Resolution): 0%"));
106
+ console.log();
107
+ console.log(chalk.dim(" Missing elements: --"));
108
+ console.log(chalk.dim(" Suggested next: Add initial beats"));
109
+ });
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Arc command - Character arc tracking operations
3
+ */
4
+
5
+ import { Command } from "commander";
6
+ import chalk from "chalk";
7
+
8
+ export const arcCommand = new Command("arc")
9
+ .description("Character arc tracking operations");
10
+
11
+ arcCommand
12
+ .command("init")
13
+ .description("Initialize tracking for a character")
14
+ .requiredOption("-n, --name <name>", "Character name")
15
+ .option("--wound <wound>", "Character's core wound")
16
+ .option("--desire <desire>", "Character's deep desire")
17
+ .option("--role <role>", "Role in story (protagonist, antagonist, mentor, etc.)")
18
+ .action(async (opts) => {
19
+ console.log(chalk.bold("🌸 Initializing Character Arc"));
20
+ console.log(chalk.dim(`Name: ${opts.name}`));
21
+ console.log(chalk.dim(`Wound: ${opts.wound || "undefined"}`));
22
+ console.log(chalk.dim(`Desire: ${opts.desire || "undefined"}`));
23
+ console.log(chalk.dim(`Role: ${opts.role || "supporting"}`));
24
+ console.log();
25
+
26
+ const charId = opts.name.toLowerCase().replace(/\s+/g, '_');
27
+ console.log(chalk.green(`āœ“ Character arc initialized: ${charId}`));
28
+ });
29
+
30
+ arcCommand
31
+ .command("list")
32
+ .description("List tracked character arcs")
33
+ .action(async () => {
34
+ console.log(chalk.bold("🌸 Character Arcs"));
35
+ console.log(chalk.dim("No characters tracked. Use `miatel arc init` to add one."));
36
+ });
37
+
38
+ arcCommand
39
+ .command("progress")
40
+ .description("Show character arc progress")
41
+ .argument("<characterId>", "Character ID")
42
+ .action(async (characterId) => {
43
+ console.log(chalk.bold(`🌸 Arc Progress: ${characterId}`));
44
+ console.log(chalk.dim("Position: 0% (beginning)"));
45
+ console.log(chalk.dim("Arc points: 0"));
46
+ console.log(chalk.dim("Direction: static"));
47
+ console.log();
48
+ console.log(chalk.yellow("⚠ Character not found. Use `miatel arc list` to see available."));
49
+ });
50
+
51
+ arcCommand
52
+ .command("record")
53
+ .description("Record a beat's impact on character arc")
54
+ .requiredOption("-c, --character <id>", "Character ID")
55
+ .requiredOption("-b, --beat <id>", "Beat ID")
56
+ .option("--direction <dir>", "Arc direction (ascending, descending, static)")
57
+ .option("--impact <n>", "Impact magnitude (0-1)", "0.3")
58
+ .action(async (opts) => {
59
+ console.log(chalk.bold("🌸 Recording Arc Impact"));
60
+ console.log(chalk.dim(`Character: ${opts.character}`));
61
+ console.log(chalk.dim(`Beat: ${opts.beat}`));
62
+ console.log(chalk.dim(`Direction: ${opts.direction || "auto-detect"}`));
63
+ console.log(chalk.dim(`Impact: ${opts.impact}`));
64
+ console.log();
65
+ console.log(chalk.yellow("⚠ Character or beat not found."));
66
+ });
67
+
68
+ arcCommand
69
+ .command("context")
70
+ .description("Get character arc context for prompts")
71
+ .argument("<characterId>", "Character ID")
72
+ .option("-d, --depth <n>", "Number of recent arc points", "3")
73
+ .action(async (characterId, opts) => {
74
+ console.log(chalk.bold(`🌸 Arc Context: ${characterId}`));
75
+ console.log(chalk.dim(`Depth: ${opts.depth} recent points`));
76
+ console.log();
77
+ console.log(chalk.yellow("⚠ Character not found."));
78
+ });
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Beat command - Story beat operations
3
+ */
4
+
5
+ import { Command } from "commander";
6
+ import chalk from "chalk";
7
+ import { SessionStorage, Beat } from "../storage.js";
8
+
9
+ const BEATS_FILE = "beats.jsonl";
10
+
11
+ export const beatCommand = new Command("beat")
12
+ .description("Story beat operations");
13
+
14
+ beatCommand
15
+ .command("create")
16
+ .description("Create a new story beat")
17
+ .requiredOption("-t, --text <text>", "Beat text/content")
18
+ .option("--character <id>", "Character ID for this beat")
19
+ .option("--tone <tone>", "Emotional tone (joy, fear, anticipation, etc.)")
20
+ .option("--phase <phase>", "Narrative phase (setup, confrontation, resolution)")
21
+ .option("--session <id>", "Session ID")
22
+ .option("--json", "Output JSON for programmatic parsing")
23
+ .action(async (opts) => {
24
+ const storage = new SessionStorage({ sessionId: opts.session });
25
+ const beatId = `beat_${Date.now().toString(36)}`;
26
+
27
+ const beat: Beat = {
28
+ id: beatId,
29
+ text: opts.text,
30
+ character: opts.character || "narrator",
31
+ tone: opts.tone || "neutral",
32
+ phase: opts.phase || "unspecified",
33
+ createdAt: Date.now()
34
+ };
35
+
36
+ storage.append(BEATS_FILE, beat);
37
+
38
+ if (opts.json) {
39
+ console.log(JSON.stringify({ success: true, beat }));
40
+ } else {
41
+ console.log(chalk.bold("🌸 Creating Story Beat"));
42
+ console.log(chalk.dim(`Text: ${opts.text.substring(0, 50)}...`));
43
+ console.log(chalk.dim(`Character: ${beat.character}`));
44
+ console.log(chalk.dim(`Tone: ${beat.tone}`));
45
+ console.log(chalk.dim(`Phase: ${beat.phase}`));
46
+ console.log();
47
+ console.log(chalk.green(`āœ“ Beat created: ${beatId}`));
48
+ console.log(chalk.dim(`Session: ${storage.getSessionId()}`));
49
+ }
50
+ });
51
+
52
+ beatCommand
53
+ .command("list")
54
+ .description("List story beats in current session")
55
+ .option("-n, --limit <n>", "Limit number of results", "10")
56
+ .option("--character <id>", "Filter by character")
57
+ .option("--session <id>", "Session ID")
58
+ .option("--json", "Output JSON for programmatic parsing")
59
+ .action(async (opts) => {
60
+ const storage = new SessionStorage({ sessionId: opts.session });
61
+ let beats = storage.readAll<Beat>(BEATS_FILE);
62
+
63
+ // Filter by character if specified
64
+ if (opts.character) {
65
+ beats = beats.filter(b => b.character === opts.character);
66
+ }
67
+
68
+ // Limit results
69
+ const limit = parseInt(opts.limit, 10);
70
+ beats = beats.slice(-limit);
71
+
72
+ if (opts.json) {
73
+ console.log(JSON.stringify({ beats }));
74
+ } else {
75
+ console.log(chalk.bold("🌸 Story Beats"));
76
+ console.log(chalk.dim(`Session: ${storage.getSessionId()}`));
77
+ console.log();
78
+
79
+ if (beats.length === 0) {
80
+ console.log(chalk.dim("No beats yet. Use `miatel beat create` to add one."));
81
+ } else {
82
+ beats.forEach((beat, i) => {
83
+ console.log(chalk.bold(`${i + 1}. ${beat.id}`));
84
+ console.log(chalk.dim(` ${beat.text.substring(0, 60)}...`));
85
+ console.log(chalk.dim(` Character: ${beat.character} | Tone: ${beat.tone} | Phase: ${beat.phase}`));
86
+ console.log();
87
+ });
88
+ }
89
+ }
90
+ });
91
+
92
+ beatCommand
93
+ .command("analyze")
94
+ .description("Analyze a specific beat")
95
+ .argument("<beatId>", "Beat ID to analyze")
96
+ .option("--universe <universe>", "Universe lens (engineer, ceremony, story_engine)")
97
+ .option("--session <id>", "Session ID")
98
+ .option("--json", "Output JSON for programmatic parsing")
99
+ .action(async (beatId, opts) => {
100
+ const storage = new SessionStorage({ sessionId: opts.session });
101
+ const beat = storage.findById<Beat>(BEATS_FILE, beatId);
102
+
103
+ if (!beat) {
104
+ if (opts.json) {
105
+ console.log(JSON.stringify({ success: false, error: "Beat not found" }));
106
+ } else {
107
+ console.log(chalk.yellow(`⚠ Beat not found: ${beatId}`));
108
+ }
109
+ return;
110
+ }
111
+
112
+ // Basic analysis (can be enhanced with narrative-intelligence package)
113
+ const analysis = {
114
+ beatId: beat.id,
115
+ text: beat.text,
116
+ character: beat.character,
117
+ tone: beat.tone,
118
+ phase: beat.phase,
119
+ universe: opts.universe || "all",
120
+ wordCount: beat.text.split(/\s+/).length,
121
+ emotionalIntensity: beat.tone === "neutral" ? "low" : "medium"
122
+ };
123
+
124
+ if (opts.json) {
125
+ console.log(JSON.stringify({ success: true, analysis }));
126
+ } else {
127
+ console.log(chalk.bold(`🌸 Analyzing Beat: ${beatId}`));
128
+ console.log(chalk.dim(`Universe: ${opts.universe || "all three"}`));
129
+ console.log();
130
+ console.log(chalk.dim(`Text: ${beat.text}`));
131
+ console.log(chalk.dim(`Character: ${beat.character}`));
132
+ console.log(chalk.dim(`Tone: ${beat.tone}`));
133
+ console.log(chalk.dim(`Phase: ${beat.phase}`));
134
+ console.log(chalk.dim(`Word count: ${analysis.wordCount}`));
135
+ }
136
+ });
137
+
138
+ beatCommand
139
+ .command("enrich")
140
+ .description("Apply emotional enrichment to a beat")
141
+ .argument("<beatId>", "Beat ID to enrich")
142
+ .option("--technique <technique>", "Enrichment technique (sensory, stakes, dialogue)")
143
+ .option("--session <id>", "Session ID")
144
+ .option("--json", "Output JSON for programmatic parsing")
145
+ .action(async (beatId, opts) => {
146
+ const storage = new SessionStorage({ sessionId: opts.session });
147
+ const beat = storage.findById<Beat>(BEATS_FILE, beatId);
148
+
149
+ if (!beat) {
150
+ if (opts.json) {
151
+ console.log(JSON.stringify({ success: false, error: "Beat not found" }));
152
+ } else {
153
+ console.log(chalk.yellow(`⚠ Beat not found: ${beatId}`));
154
+ }
155
+ return;
156
+ }
157
+
158
+ if (opts.json) {
159
+ console.log(JSON.stringify({
160
+ success: true,
161
+ beat,
162
+ enrichment: {
163
+ technique: opts.technique || "auto-detect",
164
+ suggestions: ["Add sensory details", "Increase emotional stakes"]
165
+ }
166
+ }));
167
+ } else {
168
+ console.log(chalk.bold(`🌸 Enriching Beat: ${beatId}`));
169
+ console.log(chalk.dim(`Technique: ${opts.technique || "auto-detect"}`));
170
+ console.log();
171
+ console.log(chalk.dim("Suggestions:"));
172
+ console.log(chalk.dim(" - Add sensory details to the scene"));
173
+ console.log(chalk.dim(" - Increase emotional stakes"));
174
+ console.log(chalk.dim(" - Consider character internal dialogue"));
175
+ }
176
+ });
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Theme command - Thematic thread management
3
+ */
4
+
5
+ import { Command } from "commander";
6
+ import chalk from "chalk";
7
+
8
+ export const themeCommand = new Command("theme")
9
+ .description("Thematic thread management");
10
+
11
+ themeCommand
12
+ .command("add")
13
+ .description("Add a thematic thread to the story")
14
+ .requiredOption("-n, --name <name>", "Theme name (e.g., redemption, sacrifice)")
15
+ .option("-d, --description <desc>", "Theme description")
16
+ .option("--weight <n>", "Theme importance weight (0-1)", "0.5")
17
+ .action(async (opts) => {
18
+ console.log(chalk.bold("🌸 Adding Thematic Thread"));
19
+ console.log(chalk.dim(`Name: ${opts.name}`));
20
+ console.log(chalk.dim(`Description: ${opts.description || "none"}`));
21
+ console.log(chalk.dim(`Weight: ${opts.weight}`));
22
+ console.log();
23
+
24
+ const themeId = opts.name.toLowerCase().replace(/\s+/g, '_');
25
+ console.log(chalk.green(`āœ“ Theme added: ${themeId}`));
26
+ });
27
+
28
+ themeCommand
29
+ .command("list")
30
+ .description("List thematic threads in current session")
31
+ .action(async () => {
32
+ console.log(chalk.bold("🌸 Thematic Threads"));
33
+ console.log(chalk.dim("No themes defined. Use `miatel theme add` to create one."));
34
+ });
35
+
36
+ themeCommand
37
+ .command("saturation")
38
+ .description("Check theme saturation across beats")
39
+ .argument("[themeName]", "Specific theme to check (all if omitted)")
40
+ .action(async (themeName) => {
41
+ console.log(chalk.bold("🌸 Theme Saturation Analysis"));
42
+ console.log(chalk.dim(`Theme: ${themeName || "all themes"}`));
43
+ console.log();
44
+ console.log(chalk.yellow("⚠ No beats or themes to analyze."));
45
+ });
46
+
47
+ themeCommand
48
+ .command("connect")
49
+ .description("Connect a beat to a theme")
50
+ .requiredOption("-t, --theme <name>", "Theme name")
51
+ .requiredOption("-b, --beat <id>", "Beat ID")
52
+ .option("--strength <n>", "Connection strength (0-1)", "0.5")
53
+ .action(async (opts) => {
54
+ console.log(chalk.bold("🌸 Connecting Beat to Theme"));
55
+ console.log(chalk.dim(`Theme: ${opts.theme}`));
56
+ console.log(chalk.dim(`Beat: ${opts.beat}`));
57
+ console.log(chalk.dim(`Strength: ${opts.strength}`));
58
+ console.log();
59
+ console.log(chalk.yellow("⚠ Theme or beat not found."));
60
+ });
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * miatel - Story World Terminal Agent
4
+ *
5
+ * Part of the mia-code family:
6
+ * - miaco: Engineering World CLI
7
+ * - miatel: Story World CLI (this one)
8
+ * - miawa: Ceremony World CLI
9
+ *
10
+ * Provides narrative intelligence operations:
11
+ * - Story beat generation and analysis
12
+ * - Character arc tracking
13
+ * - Thematic thread management
14
+ * - NCP state operations
15
+ * - Integration with storytelling package
16
+ */
17
+
18
+ import { Command } from "commander";
19
+ import chalk from "chalk";
20
+ import { beatCommand } from "./commands/beat.js";
21
+ import { arcCommand } from "./commands/arc.js";
22
+ import { themeCommand } from "./commands/theme.js";
23
+ import { analyzeCommand } from "./commands/analyze.js";
24
+
25
+ const program = new Command();
26
+
27
+ program
28
+ .name("miatel")
29
+ .description("🌸 miatel — Story World terminal agent for narrative intelligence")
30
+ .version("0.1.0");
31
+
32
+ // Story beat operations
33
+ program.addCommand(beatCommand);
34
+
35
+ // Character arc operations
36
+ program.addCommand(arcCommand);
37
+
38
+ // Theme operations
39
+ program.addCommand(themeCommand);
40
+
41
+ // Analysis operations
42
+ program.addCommand(analyzeCommand);
43
+
44
+ // Quick status command
45
+ program
46
+ .command("status")
47
+ .description("Show current story session status")
48
+ .option("-s, --session <id>", "Session ID")
49
+ .action(async (opts) => {
50
+ console.log(chalk.bold("🌸 miatel — Story World Status"));
51
+ console.log(chalk.dim("Session: " + (opts.session || "none active")));
52
+ console.log(chalk.dim("Beats: 0 | Characters: 0 | Themes: 0"));
53
+ console.log();
54
+ console.log(chalk.yellow("⚠ Story session not initialized. Run `miatel init` to begin."));
55
+ });
56
+
57
+ // Initialize session
58
+ program
59
+ .command("init")
60
+ .description("Initialize a new story session")
61
+ .option("-s, --story-id <id>", "Story identifier")
62
+ .option("-t, --title <title>", "Story title")
63
+ .action(async (opts) => {
64
+ console.log(chalk.bold("🌸 miatel — Initializing Story Session"));
65
+ console.log(chalk.dim(`Story ID: ${opts.storyId || "auto-generated"}`));
66
+ console.log(chalk.dim(`Title: ${opts.title || "Untitled Story"}`));
67
+ console.log();
68
+ console.log(chalk.green("āœ“ Story session initialized"));
69
+ console.log(chalk.dim("Use `miatel beat create` to add your first beat."));
70
+ });
71
+
72
+ // Help with examples
73
+ program
74
+ .command("examples")
75
+ .description("Show usage examples")
76
+ .action(() => {
77
+ console.log(chalk.bold("\n🌸 miatel Examples\n"));
78
+ console.log(chalk.dim("# Initialize a story session"));
79
+ console.log(" miatel init --title 'Hero\\'s Journey'\n");
80
+
81
+ console.log(chalk.dim("# Create a story beat"));
82
+ console.log(" miatel beat create --text 'The hero receives the call' --tone anticipation\n");
83
+
84
+ console.log(chalk.dim("# Track character arc"));
85
+ console.log(" miatel arc init --name 'Hero' --wound 'past failure' --desire 'redemption'\n");
86
+
87
+ console.log(chalk.dim("# Analyze story coherence"));
88
+ console.log(" miatel analyze coherence --session <id>\n");
89
+
90
+ console.log(chalk.dim("# Add thematic thread"));
91
+ console.log(" miatel theme add --name 'redemption' --description 'Finding worth again'\n");
92
+ });
93
+
94
+ program.parseAsync(process.argv);