mia-code 0.2.0 ā 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.miette/260321.md +1 -0
- package/.miette/260323.md +9 -0
- package/.miette/260331.md +2 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--d3417f2c-df12-4f0f-8a1b-d88e7968f822/d3417f2c-df12-4f0f-8a1b-d88e7968f822.md +63 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--e6c3fc5d-4a70-4523-ba7d-a3250da4c235/e6c3fc5d-4a70-4523-ba7d-a3250da4c235.md +72 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/2604020008--efeb00a2-b17a-4d32-b1f0-b90c37a8d24e/efeb00a2-b17a-4d32-b1f0-b90c37a8d24e.md +62 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.json +302 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/83a2d7f9-24a5-4cf4-98d5-036c82f872e8.md +149 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/AGENTS.md +31 -0
- package/.pde/2604011511--83a2d7f9-24a5-4cf4-98d5-036c82f872e8/meta-decomposition-3-children.md +67 -0
- package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/61f9dd4d-7aa6-45e6-a58b-e480b1aa6737--from-mia-openclaw-workspace.md +125 -0
- package/.pde/2604040129--61f9dd4d-7aa6-45e6-a58b-e480b1aa6737/STATUS.md +1 -0
- package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.json +177 -0
- package/.pde/4f02ba94-9f52-422e-9389-b16f9b37f358.md +77 -0
- package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.json +222 -0
- package/.pde/6ad9244d-5340-490f-b76c-c86728b9de52.md +99 -0
- package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.json +111 -0
- package/.pde/8b566792-ed15-4606-96f9-2b6f593d7e6b.md +67 -0
- package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.json +349 -0
- package/.pde/c7f1e74b-05a5-40e2-9f01-4cc48d2528f7.md +147 -0
- package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.json +118 -0
- package/.pde/dfc00a78-1da0-4c09-8a16-c6982644051b.md +64 -0
- package/GUILLAUME.md +8 -0
- package/KINSHIP.md +9 -0
- package/MIA_CODE_ARCHITECTURE_REPORT.md +718 -0
- package/contextual_research/260119-MIA-CODE--98090899-8aff-4e11-9dc3-8b99466d1.md +1101 -0
- package/contextual_research/MIA.md +38 -0
- package/contextual_research/MIAWAPASCONE.md +59 -0
- package/contextual_research/MIETTE.md +38 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2504.00218v2.pdf +7483 -12
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/2505.00212v3.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/CONTENT.md +1014 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/DESIGN.gemini.md +242 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/INDEX.md +45 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.md +2025 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2504.00218v2.pdf +7483 -12
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.md +1755 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/2505.00212v3.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_12_decomposed_prompting.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_19_hugginggpt_planning.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.md +766 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_1_coordination_challenges.pdf +3431 -4
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.md +260 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_28_guardrails_multi_agent.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.md +558 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_2_navigating_complexity.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_34_hierarchical_multi_agent.pdf +0 -0
- package/contextual_research/PDE-generalization--caefee82-efb1-4dbb-8733-691b01581464--260130/sources/footnote_1_5_open_intent_extraction.pdf +0 -0
- package/contextual_research/PODCAST.md +109 -0
- package/contextual_research/langchain-principles-roadmap.md +157 -0
- package/contextual_research/persona-to-narrative-character-inquiry_260201.md +50 -0
- package/dist/cli.js +35 -11
- package/dist/geminiHeadless.js +8 -2
- package/dist/index.js +2 -1
- package/dist/mcp/miaco-server.js +10 -1
- package/dist/mcp/miatel-server.js +10 -1
- package/dist/mcp/miawa-server.js +10 -1
- package/dist/mcp/utils.d.ts +6 -1
- package/dist/mcp/utils.js +24 -3
- package/dist/sessionStore.d.ts +8 -2
- package/dist/sessionStore.js +39 -3
- package/dist/types.d.ts +1 -0
- package/miaco/README.md +124 -0
- package/miaco/dist/commands/chart.d.ts +6 -0
- package/miaco/dist/commands/chart.d.ts.map +1 -0
- package/miaco/dist/commands/chart.js +222 -0
- package/miaco/dist/commands/chart.js.map +1 -0
- package/miaco/dist/commands/decompose.d.ts +6 -0
- package/miaco/dist/commands/decompose.d.ts.map +1 -0
- package/miaco/dist/commands/decompose.js +98 -0
- package/miaco/dist/commands/decompose.js.map +1 -0
- package/miaco/dist/commands/schema.d.ts +6 -0
- package/miaco/dist/commands/schema.d.ts.map +1 -0
- package/miaco/dist/commands/schema.js +66 -0
- package/miaco/dist/commands/schema.js.map +1 -0
- package/miaco/dist/commands/stc.d.ts +11 -0
- package/miaco/dist/commands/stc.d.ts.map +1 -0
- package/miaco/dist/commands/stc.js +590 -0
- package/miaco/dist/commands/stc.js.map +1 -0
- package/miaco/dist/commands/trace.d.ts +6 -0
- package/miaco/dist/commands/trace.d.ts.map +1 -0
- package/miaco/dist/commands/trace.js +83 -0
- package/miaco/dist/commands/trace.js.map +1 -0
- package/miaco/dist/commands/validate.d.ts +6 -0
- package/miaco/dist/commands/validate.d.ts.map +1 -0
- package/miaco/dist/commands/validate.js +58 -0
- package/miaco/dist/commands/validate.js.map +1 -0
- package/miaco/dist/decompose.d.ts +93 -0
- package/miaco/dist/decompose.d.ts.map +1 -0
- package/miaco/dist/decompose.js +562 -0
- package/miaco/dist/decompose.js.map +1 -0
- package/miaco/dist/index.d.ts +18 -0
- package/miaco/dist/index.d.ts.map +1 -0
- package/miaco/dist/index.js +83 -0
- package/miaco/dist/index.js.map +1 -0
- package/miaco/dist/storage.d.ts +60 -0
- package/miaco/dist/storage.d.ts.map +1 -0
- package/miaco/dist/storage.js +100 -0
- package/miaco/dist/storage.js.map +1 -0
- package/miaco/package-lock.json +4103 -0
- package/miaco/package.json +40 -0
- package/miaco/tsconfig.json +18 -0
- package/miaco/version-patch-commit-and-publish.sh +1 -0
- package/miatel/MISSION_251231.md +3 -0
- package/miatel/README.md +107 -0
- package/miatel/dist/commands/analyze.d.ts +6 -0
- package/miatel/dist/commands/analyze.d.ts.map +1 -0
- package/miatel/dist/commands/analyze.js +100 -0
- package/miatel/dist/commands/analyze.js.map +1 -0
- package/miatel/dist/commands/arc.d.ts +6 -0
- package/miatel/dist/commands/arc.d.ts.map +1 -0
- package/miatel/dist/commands/arc.js +71 -0
- package/miatel/dist/commands/arc.js.map +1 -0
- package/miatel/dist/commands/beat.d.ts +6 -0
- package/miatel/dist/commands/beat.d.ts.map +1 -0
- package/miatel/dist/commands/beat.js +165 -0
- package/miatel/dist/commands/beat.js.map +1 -0
- package/miatel/dist/commands/theme.d.ts +6 -0
- package/miatel/dist/commands/theme.d.ts.map +1 -0
- package/miatel/dist/commands/theme.js +54 -0
- package/miatel/dist/commands/theme.js.map +1 -0
- package/miatel/dist/index.d.ts +18 -0
- package/miatel/dist/index.d.ts.map +1 -0
- package/miatel/dist/index.js +80 -0
- package/miatel/dist/index.js.map +1 -0
- package/miatel/dist/storage.d.ts +55 -0
- package/miatel/dist/storage.d.ts.map +1 -0
- package/miatel/dist/storage.js +100 -0
- package/miatel/dist/storage.js.map +1 -0
- package/miatel/package-lock.json +4103 -0
- package/miatel/package.json +35 -0
- package/miatel/src/commands/analyze.ts +109 -0
- package/miatel/src/commands/arc.ts +78 -0
- package/miatel/src/commands/beat.ts +176 -0
- package/miatel/src/commands/theme.ts +60 -0
- package/miatel/src/index.ts +94 -0
- package/miatel/src/storage.ts +156 -0
- package/miatel/tsconfig.json +18 -0
- package/miawa/MISSION_251231.md +144 -0
- package/miawa/README.md +133 -0
- package/miawa/dist/commands/beat.d.ts +6 -0
- package/miawa/dist/commands/beat.d.ts.map +1 -0
- package/miawa/dist/commands/beat.js +69 -0
- package/miawa/dist/commands/beat.js.map +1 -0
- package/miawa/dist/commands/ceremony.d.ts +6 -0
- package/miawa/dist/commands/ceremony.d.ts.map +1 -0
- package/miawa/dist/commands/ceremony.js +239 -0
- package/miawa/dist/commands/ceremony.js.map +1 -0
- package/miawa/dist/commands/circle.d.ts +6 -0
- package/miawa/dist/commands/circle.d.ts.map +1 -0
- package/miawa/dist/commands/circle.js +75 -0
- package/miawa/dist/commands/circle.js.map +1 -0
- package/miawa/dist/commands/eva.d.ts +6 -0
- package/miawa/dist/commands/eva.d.ts.map +1 -0
- package/miawa/dist/commands/eva.js +73 -0
- package/miawa/dist/commands/eva.js.map +1 -0
- package/miawa/dist/commands/wound.d.ts +6 -0
- package/miawa/dist/commands/wound.d.ts.map +1 -0
- package/miawa/dist/commands/wound.js +74 -0
- package/miawa/dist/commands/wound.js.map +1 -0
- package/miawa/dist/index.d.ts +19 -0
- package/miawa/dist/index.d.ts.map +1 -0
- package/miawa/dist/index.js +91 -0
- package/miawa/dist/index.js.map +1 -0
- package/miawa/dist/storage.d.ts +73 -0
- package/miawa/dist/storage.d.ts.map +1 -0
- package/miawa/dist/storage.js +100 -0
- package/miawa/dist/storage.js.map +1 -0
- package/miawa/package-lock.json +4103 -0
- package/miawa/package.json +36 -0
- package/miawa/src/commands/beat.ts +74 -0
- package/miawa/src/commands/ceremony.ts +256 -0
- package/miawa/src/commands/circle.ts +83 -0
- package/miawa/src/commands/eva.ts +84 -0
- package/miawa/src/commands/wound.ts +79 -0
- package/miawa/src/index.ts +108 -0
- package/miawa/src/storage.ts +179 -0
- package/miawa/tsconfig.json +18 -0
- package/package.json +7 -5
- package/references/acp/CLAUDE.md +7 -0
- package/references/acp/agent-plan.md +84 -0
- package/references/acp/clients.md +31 -0
- package/references/acp/extensibility.md +137 -0
- package/references/acp/initialization.md +225 -0
- package/references/acp/prompt-turn.md +321 -0
- package/references/acp/proxy-chains.md +562 -0
- package/references/acp/schema.md +3171 -0
- package/references/acp/session-list.md +334 -0
- package/references/acp/session-modes.md +170 -0
- package/references/acp/slash-commands.md +99 -0
- package/references/acp/terminals.md +281 -0
- package/references/acp/tool-calls.md +311 -0
- package/references/acp/typescript.md +29 -0
- package/references/claude/agent-teams.md +399 -0
- package/references/claude/chrome.md +231 -0
- package/references/claude/headless.md +158 -0
- package/references/claude/hooks-guide.md +708 -0
- package/references/claude/output-styles.md +112 -0
- package/references/claude/plugins.md +432 -0
- package/references/claude/skills.md +693 -0
- package/references/claude/sub-agents.md +816 -0
- package/references/copilot/acp/agents.md +32 -0
- package/references/copilot/acp/architecture.md +37 -0
- package/references/copilot/acp/clients.md +31 -0
- package/references/copilot/acp/introduction.md +42 -0
- package/references/copilot/acp/registry.md +339 -0
- package/references/copilot/acp-server.md +117 -0
- package/references/copilot/create-copilot-instructions.md +840 -0
- package/references/langchain/llms.txt +833 -0
- package/references/langchain/python/agents.md +677 -0
- package/references/langchain/python/context-engineering.md +1195 -0
- package/references/langchain/python/human-in-the-loop.md +326 -0
- package/references/langchain/python/long-term-memory.md +168 -0
- package/references/langchain/python/mcp.md +949 -0
- package/references/langchain/python/multi-agents/custom-workflow.md +187 -0
- package/references/langchain/python/multi-agents/handoffs.md +436 -0
- package/references/langchain/python/multi-agents/overview.md +295 -0
- package/references/langchain/python/multi-agents/router.md +150 -0
- package/references/langchain/python/multi-agents/skills.md +92 -0
- package/references/langchain/python/multi-agents/subagents.md +486 -0
- package/references/langchain/python/retrieval.md +320 -0
- package/references/langchain/python/runtime.md +141 -0
- package/references/langchain/python/short-term-memory.md +658 -0
- package/references/langchain/python/structured-output.md +712 -0
- package/references/langfuse/llms.txt +148 -0
- package/references/langgraph/javascript/llms.txt +275 -0
- package/references/skills/home.md +259 -0
- package/references/skills/integrate-skills.md +103 -0
- package/references/skills/specification.md +254 -0
- package/references/skills/what-are-skills.md +74 -0
- package/rispecs/README.md +164 -0
- package/rispecs/_sync_/miadi-code/SPEC.md +313 -0
- package/rispecs/_sync_/miadi-code/STATUS.md +177 -0
- package/rispecs/_sync_/miadi-code/dashboard/SPEC.md +465 -0
- package/rispecs/_sync_/miadi-code/dashboard/STATUS.md +212 -0
- package/rispecs/_sync_/miadi-code/multiline-input/SPEC.md +232 -0
- package/rispecs/_sync_/miadi-code/multiline-input/STATUS.md +108 -0
- package/rispecs/_sync_/miadi-code/pde/SPEC.md +253 -0
- package/rispecs/_sync_/miadi-code/pde/STATUS.md +56 -0
- package/rispecs/_sync_/miadi-code/stc/SPEC.md +397 -0
- package/rispecs/_sync_/miadi-code/stc/STATUS.md +70 -0
- package/rispecs/ava-langstack/inquiry-routing-upgrade.spec.md +119 -0
- package/rispecs/borrowed_from_opencode/001-client-server-architecture.rispec.md +98 -0
- package/rispecs/borrowed_from_opencode/002-event-bus-system.rispec.md +125 -0
- package/rispecs/borrowed_from_opencode/003-instance-state-pattern.rispec.md +136 -0
- package/rispecs/borrowed_from_opencode/004-namespace-module-pattern.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/005-zod-schema-validation.rispec.md +139 -0
- package/rispecs/borrowed_from_opencode/006-named-error-system.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/007-structured-logging.rispec.md +138 -0
- package/rispecs/borrowed_from_opencode/008-lazy-initialization.rispec.md +127 -0
- package/rispecs/borrowed_from_opencode/009-multi-agent-system.rispec.md +97 -0
- package/rispecs/borrowed_from_opencode/010-agent-definition-config.rispec.md +135 -0
- package/rispecs/borrowed_from_opencode/011-agent-permission-rulesets.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/012-agent-prompt-templates.rispec.md +141 -0
- package/rispecs/borrowed_from_opencode/013-agent-generation.rispec.md +142 -0
- package/rispecs/borrowed_from_opencode/014-plan-build-mode-toggle.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/015-subagent-task-delegation.rispec.md +146 -0
- package/rispecs/borrowed_from_opencode/016-agent-model-selection.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/017-compaction-agent.rispec.md +150 -0
- package/rispecs/borrowed_from_opencode/018-session-persistence.rispec.md +125 -0
- package/rispecs/borrowed_from_opencode/019-session-compaction.rispec.md +132 -0
- package/rispecs/borrowed_from_opencode/020-session-forking.rispec.md +134 -0
- package/rispecs/borrowed_from_opencode/021-session-revert-snapshot.rispec.md +135 -0
- package/rispecs/borrowed_from_opencode/022-session-sharing.rispec.md +165 -0
- package/rispecs/borrowed_from_opencode/023-session-summary-diffs.rispec.md +165 -0
- package/rispecs/borrowed_from_opencode/024-child-sessions.rispec.md +164 -0
- package/rispecs/borrowed_from_opencode/025-session-title-generation.rispec.md +162 -0
- package/rispecs/borrowed_from_opencode/026-message-parts-model.rispec.md +201 -0
- package/rispecs/borrowed_from_opencode/027-streaming-message-deltas.rispec.md +212 -0
- package/rispecs/borrowed_from_opencode/028-multi-provider-architecture.rispec.md +184 -0
- package/rispecs/borrowed_from_opencode/029-provider-authentication.rispec.md +225 -0
- package/rispecs/borrowed_from_opencode/030-model-registry.rispec.md +222 -0
- package/rispecs/borrowed_from_opencode/031-cost-tracking.rispec.md +243 -0
- package/rispecs/borrowed_from_opencode/032-provider-transform-pipeline.rispec.md +282 -0
- package/rispecs/borrowed_from_opencode/033-provider-sdk-abstraction.rispec.md +338 -0
- package/rispecs/borrowed_from_opencode/034-tool-registry.rispec.md +110 -0
- package/rispecs/borrowed_from_opencode/035-tool-context-injection.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/036-tool-output-truncation.rispec.md +138 -0
- package/rispecs/borrowed_from_opencode/037-batch-tool.rispec.md +129 -0
- package/rispecs/borrowed_from_opencode/038-multi-edit-tool.rispec.md +167 -0
- package/rispecs/borrowed_from_opencode/039-apply-patch-tool.rispec.md +161 -0
- package/rispecs/borrowed_from_opencode/040-code-search-tool.rispec.md +143 -0
- package/rispecs/borrowed_from_opencode/041-web-fetch-tool.rispec.md +131 -0
- package/rispecs/borrowed_from_opencode/042-web-search-tool.rispec.md +159 -0
- package/rispecs/borrowed_from_opencode/043-todo-tool.rispec.md +156 -0
- package/rispecs/borrowed_from_opencode/044-plan-mode-tool.rispec.md +139 -0
- package/rispecs/borrowed_from_opencode/045-task-tool.rispec.md +146 -0
- package/rispecs/borrowed_from_opencode/046-question-tool.rispec.md +170 -0
- package/rispecs/borrowed_from_opencode/047-external-directory-tool.rispec.md +166 -0
- package/rispecs/borrowed_from_opencode/048-file-read-write-tools.rispec.md +205 -0
- package/rispecs/borrowed_from_opencode/049-lsp-server-management.rispec.md +104 -0
- package/rispecs/borrowed_from_opencode/050-lsp-hover-completion.rispec.md +102 -0
- package/rispecs/borrowed_from_opencode/051-lsp-diagnostics.rispec.md +86 -0
- package/rispecs/borrowed_from_opencode/052-lsp-root-detection.rispec.md +109 -0
- package/rispecs/borrowed_from_opencode/053-remote-mcp-servers.rispec.md +119 -0
- package/rispecs/borrowed_from_opencode/054-mcp-oauth-flow.rispec.md +107 -0
- package/rispecs/borrowed_from_opencode/055-mcp-tool-conversion.rispec.md +118 -0
- package/rispecs/borrowed_from_opencode/056-mcp-connection-monitoring.rispec.md +106 -0
- package/rispecs/borrowed_from_opencode/057-local-mcp-servers.rispec.md +116 -0
- package/rispecs/borrowed_from_opencode/058-rich-tui.rispec.md +108 -0
- package/rispecs/borrowed_from_opencode/059-streaming-display.rispec.md +116 -0
- package/rispecs/borrowed_from_opencode/060-permission-prompts.rispec.md +130 -0
- package/rispecs/borrowed_from_opencode/061-session-navigation.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/062-syntax-highlighting.rispec.md +151 -0
- package/rispecs/borrowed_from_opencode/063-keybinding-system.rispec.md +181 -0
- package/rispecs/borrowed_from_opencode/064-multi-level-config.rispec.md +155 -0
- package/rispecs/borrowed_from_opencode/065-jsonc-config.rispec.md +190 -0
- package/rispecs/borrowed_from_opencode/066-config-env-variables.rispec.md +153 -0
- package/rispecs/borrowed_from_opencode/067-config-deep-merging.rispec.md +178 -0
- package/rispecs/borrowed_from_opencode/068-remote-org-config.rispec.md +183 -0
- package/rispecs/borrowed_from_opencode/069-config-markdown-frontmatter.rispec.md +206 -0
- package/rispecs/borrowed_from_opencode/070-managed-config-directory.rispec.md +232 -0
- package/rispecs/borrowed_from_opencode/071-plugin-architecture.rispec.md +104 -0
- package/rispecs/borrowed_from_opencode/072-plugin-hooks.rispec.md +123 -0
- package/rispecs/borrowed_from_opencode/073-plugin-auto-install.rispec.md +115 -0
- package/rispecs/borrowed_from_opencode/074-permission-system.rispec.md +133 -0
- package/rispecs/borrowed_from_opencode/075-git-worktree-management.rispec.md +126 -0
- package/rispecs/borrowed_from_opencode/076-snapshot-system.rispec.md +124 -0
- package/rispecs/borrowed_from_opencode/077-snapshot-diff.rispec.md +117 -0
- package/rispecs/borrowed_from_opencode/078-snapshot-restore.rispec.md +128 -0
- package/rispecs/borrowed_from_opencode/079-worktree-branch-naming.rispec.md +122 -0
- package/rispecs/borrowed_from_opencode/080-sqlite-storage.rispec.md +134 -0
- package/rispecs/borrowed_from_opencode/081-database-migrations.rispec.md +148 -0
- package/rispecs/borrowed_from_opencode/082-database-transactions.rispec.md +138 -0
- package/rispecs/borrowed_from_opencode/083-deferred-effects.rispec.md +148 -0
- package/rispecs/borrowed_from_opencode/084-permission-rules.rispec.md +123 -0
- package/rispecs/borrowed_from_opencode/085-permission-glob-patterns.rispec.md +113 -0
- package/rispecs/borrowed_from_opencode/086-permission-merging.rispec.md +134 -0
- package/rispecs/borrowed_from_opencode/087-permission-modes.rispec.md +145 -0
- package/rispecs/borrowed_from_opencode/088-http-api-server.rispec.md +165 -0
- package/rispecs/borrowed_from_opencode/089-openapi-spec-generation.rispec.md +164 -0
- package/rispecs/borrowed_from_opencode/090-websocket-support.rispec.md +136 -0
- package/rispecs/borrowed_from_opencode/091-sse-streaming.rispec.md +168 -0
- package/rispecs/borrowed_from_opencode/092-mdns-discovery.rispec.md +145 -0
- package/rispecs/borrowed_from_opencode/093-javascript-sdk.rispec.md +200 -0
- package/rispecs/borrowed_from_opencode/094-skill-system.rispec.md +187 -0
- package/rispecs/borrowed_from_opencode/095-skill-discovery.rispec.md +182 -0
- package/rispecs/borrowed_from_opencode/096-desktop-remote-driving.rispec.md +175 -0
- package/rispecs/borrowed_from_opencode/INDEX.md +255 -0
- package/rispecs/core.rispecs.md +261 -0
- package/rispecs/engines.rispecs.md +241 -0
- package/rispecs/formatting.rispecs.md +252 -0
- package/rispecs/living-specifications.rispecs.md +361 -0
- package/rispecs/mcp.rispecs.md +197 -0
- package/rispecs/pde.rispecs.md +399 -0
- package/rispecs/pi-mono-envisionning/ENVISIONING.md +366 -0
- package/rispecs/pi-mono-envisionning/storytelling-horizon.rispecs.md +76 -0
- package/rispecs/pi-mono-envisionning/widget.rispecs.md +2 -0
- package/rispecs/relation-to-mcp-structural-thinking.kin.md +72 -0
- package/rispecs/research-for-better-framework/CLAUDE.md +7 -0
- package/rispecs/research-for-better-framework/survey-pi-openclaw-opencode-openhands.md +210 -0
- package/rispecs/session.rispecs.md +277 -0
- package/rispecs/stc.rispecs.md +138 -0
- package/rispecs/unifier.rispecs.md +317 -0
- package/scripts/LAUNCH--mcp-mia-code--testing--2603141315--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +2 -0
- package/scripts/RESUME--mia-code--mcps--260313--ac705a66-2c15-4a1c-a26d-9491018c5ba8.sh +1 -0
- package/scripts/install-widget-in-home-pi-agent-extensions.sh +4 -0
- package/scripts/sample-decompose--2604011535-prompt.sh +1 -0
- package/skills/deep-search/AGENTS.md +17 -0
- package/skills/deep-search/SKILL.md +281 -0
- package/skills/deep-search/agent-templates.md +224 -0
- package/skills/deep-search/orchestration-patterns.md +95 -0
- package/skills/miaco-pde-inquiry-routing-deep-search/AGENTS.md +13 -0
- package/skills/miaco-pde-inquiry-routing-deep-search/SKILL.md +136 -0
- package/skills/miaco-pde-inquiry-routing-internal-external-relationship/AGENTS.md +4 -0
- package/skills/miaco-pde-inquiry-routing-internal-external-relationship/SKILL.md +157 -0
- package/skills/miaco-pde-inquiry-routing-local-qmd/AGENTS.md +42 -0
- package/skills/miaco-pde-inquiry-routing-local-qmd/SKILL.md +135 -0
- package/skills/qmd/AGENTS.md +3 -0
- package/skills/qmd/SKILL.md +144 -0
- package/skills/qmd/references/mcp-setup.md +102 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/SKILL.md +234 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/agent-templates.md +436 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/orchestration-patterns.md +197 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/ceremonial-technology.md +102 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/creative-orientation.md +99 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/prompt-decomposition.md +73 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/rise-framework.md +74 -0
- package/skills/rise-pde-inquiry-session-multi-agents-v3/references/structural-tension.md +82 -0
- package/src/cli.ts +35 -11
- package/src/geminiHeadless.ts +7 -2
- package/src/index.ts +2 -1
- package/src/mcp/miaco-server.ts +13 -1
- package/src/mcp/miatel-server.ts +13 -1
- package/src/mcp/miawa-server.ts +13 -1
- package/src/mcp/utils.ts +41 -8
- package/src/sessionStore.ts +44 -4
- package/src/types.ts +2 -1
- package/widget/mia-ceremony/README.md +36 -0
- package/widget/mia-ceremony/index.ts +143 -0
- package/widget/mia-interceptor/README.md +39 -0
- package/widget/mia-interceptor/index.ts +221 -0
- package/widget/mia-tools/README.md +37 -0
- package/widget/mia-tools/index.ts +569 -0
- package/widget/miette-echo/README.md +44 -0
- package/widget/miette-echo/index.ts +164 -0
- package/.claude/settings.local.json +0 -9
- package/.hch/issue_.env +0 -4
- package/.hch/issue_add__2601211715.json +0 -77
- package/.hch/issue_add__2601211715.md +0 -4
- package/.hch/issue_add__2602242020.json +0 -78
- package/.hch/issue_add__2602242020.md +0 -7
- package/.hch/issues.json +0 -2312
- package/.hch/issues.md +0 -30
- package/WS__mia-code__260214__IAIP_PDE.code-workspace +0 -29
- package/WS__mia-code__src332__260122.code-workspace +0 -23
- package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/checkpoints/index.md +0 -6
- package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/events.jsonl +0 -213
- package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/plan.md +0 -243
- package/samples/copilot/session-state/be76abaa-a27f-4725-b2a9-22fb45f7e0f7/workspace.yaml +0 -5
|
@@ -0,0 +1,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);
|