# phuire-research/stratimux architecture

> Architecture diagram of the GitHub repository phuire-research/stratimux, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/phuire-research/stratimux
- Repository: https://github.com/phuire-research/stratimux

## Overview

Stratimux is a TypeScript framework for composing stateful Concepts into an asynchronous action-driven runtime. Users create Concepts and Methods, combine them into a deck, then start a Muxium; it initializes loaded Concepts and routes actions through principles, selectors, and stage planning. Strategies compose actions into bounded workflows, while ownership arbitrates which pending actions may dispatch. The README also documents hot loading, prioritization, change detection, dialog output, and higher-order composition. The graph reflects the documented capabilities and sampled runtime paths; several internal connections are omitted where excerpts do not establish call ownership.

Main entry points: [`src/model/muxium/muxium.ts`](https://github.com/phuire-research/stratimux/blob/main/src/model/muxium/muxium.ts) (Muxium runtime), [`src/index.ts`](https://github.com/phuire-research/stratimux/blob/main/src/index.ts) (Public API), [`src/model/action/strategy/actionStrategy.ts`](https://github.com/phuire-research/stratimux/blob/main/src/model/action/strategy/actionStrategy.ts) (Action strategies), [`src/model/action/action.ts`](https://github.com/phuire-research/stratimux/blob/main/src/model/action/action.ts) (Action model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Public Composition"]
  node_exports["Public API<br/>[index.ts]"]
  node_concept["Concept model<br/>[concept.ts]"]
  node_composition["Concept composition<br/>[conceptAdvanced.ts]"]
  node_methods["Method factories<br/>[index.ts]"]
  node_deck["Concept deck<br/>[deck.ts]"]
end

subgraph group_runtime["Muxium Runtime"]
  node_muxium["Muxium runtime<br/>[muxium.ts]"]
  node_muxiumconcept["Muxium concept<br/>[muxium.concept.ts]"]
  node_muxiumprinciple["Concept loading"]
  node_state["Concept state<br/>[concept.type.ts]"]
end

subgraph group_execution["Action Execution"]
  node_actions["Action model<br/>[action.ts]"]
  node_controller["Async controller"]
  node_strategy["Action strategies<br/>[actionStrategy.ts]"]
  node_quality["Quality operations<br/>[quality.ts]"]
end

subgraph group_planning["Planning and Selection"]
  node_selectors["State selectors<br/>[selector.ts]"]
  node_stageplanner["Stage planner<br/>[stagePlanner.ts]"]
  node_plannerhandlers["Plan handlers"]
end

subgraph group_concepts["Built-in Concepts"]
  node_ownershipconcept["Ownership concept"]
  node_ownershipprinciple["Ownership arbitration"]
  node_ownershipmodel["Ownership ledger<br/>[ownership.ts]"]
  node_counter["Counter example<br/>[counter.concept.ts]"]
  node_experiment["Experiment concept"]
end

node_user(("Framework user"))

node_user -->|"uses"| node_exports
node_exports -->|"exports"| node_concept
node_exports -->|"exports"| node_muxium
node_exports -->|"exports"| node_methods
node_user -->|"defines"| node_concept
node_user -->|"creates"| node_methods
node_concept -->|"composes"| node_composition
node_composition -->|"builds"| node_deck
node_user -->|"starts"| node_muxium
node_muxium -->|"initializes"| node_muxiumconcept
node_muxium -->|"maintains"| node_state
node_muxiumprinciple -->|"updates"| node_deck
node_muxiumprinciple -->|"dispatches"| node_strategy
node_muxium -->|"creates"| node_selectors
node_muxium -->|"routes"| node_actions
node_methods -->|"controls async"| node_controller
node_controller -->|"fails expired"| node_strategy
node_strategy -->|"composes"| node_actions
node_quality -->|"handles"| node_actions
node_stageplanner -->|"delegates"| node_plannerhandlers
node_plannerhandlers -->|"maps selectors"| node_selectors
node_stageplanner -->|"dispatches stages"| node_actions
node_ownershipprinciple -->|"checks readiness"| node_ownershipmodel
node_ownershipprinciple -->|"dispatches ready"| node_strategy
node_ownershipprinciple -->|"reads state"| node_ownershipconcept
node_ownershipmodel -->|"updates ledger"| node_ownershipconcept
node_counter -->|"defines qualities"| node_quality
node_experiment -->|"defines qualities"| node_quality
node_muxiumprinciple -->|"subscribes methods"| node_controller

click node_exports "https://github.com/phuire-research/stratimux/blob/main/src/index.ts"
click node_concept "https://github.com/phuire-research/stratimux/blob/main/src/model/concept/concept.ts"
click node_composition "https://github.com/phuire-research/stratimux/blob/main/src/model/concept/conceptAdvanced.ts"
click node_methods "https://github.com/phuire-research/stratimux/blob/main/src/model/method/index.ts"
click node_muxium "https://github.com/phuire-research/stratimux/blob/main/src/model/muxium/muxium.ts"
click node_muxiumconcept "https://github.com/phuire-research/stratimux/blob/main/src/concepts/muxium/muxium.concept.ts"
click node_muxiumprinciple "https://github.com/phuire-research/stratimux/blob/main/src/concepts/muxium/muxium.principle.ts"
click node_actions "https://github.com/phuire-research/stratimux/blob/main/src/model/action/action.ts"
click node_controller "https://github.com/phuire-research/stratimux/blob/main/src/model/action/actionController.ts"
click node_strategy "https://github.com/phuire-research/stratimux/blob/main/src/model/action/strategy/actionStrategy.ts"
click node_quality "https://github.com/phuire-research/stratimux/blob/main/src/model/quality.ts"
click node_selectors "https://github.com/phuire-research/stratimux/blob/main/src/model/selector/selector.ts"
click node_stageplanner "https://github.com/phuire-research/stratimux/blob/main/src/model/stagePlanner/stagePlanner.ts"
click node_plannerhandlers "https://github.com/phuire-research/stratimux/blob/main/src/model/stagePlanner/stagePlannerHandlers.ts"
click node_ownershipconcept "https://github.com/phuire-research/stratimux/blob/main/src/concepts/ownership/ownership.concept.ts"
click node_ownershipprinciple "https://github.com/phuire-research/stratimux/blob/main/src/concepts/ownership/ownership.principle.ts"
click node_ownershipmodel "https://github.com/phuire-research/stratimux/blob/main/src/model/ownership.ts"
click node_counter "https://github.com/phuire-research/stratimux/blob/main/src/concepts/counter/counter.concept.ts"
click node_experiment "https://github.com/phuire-research/stratimux/blob/main/src/concepts/experiment/experiment.concept.ts"
click node_deck "https://github.com/phuire-research/stratimux/blob/main/src/model/deck.ts"
click node_state "https://github.com/phuire-research/stratimux/blob/main/src/model/concept/concept.type.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_exports,node_concept,node_composition,node_methods,node_deck,node_user toneBlue
class node_muxium,node_muxiumconcept,node_muxiumprinciple,node_state toneAmber
class node_actions,node_controller,node_strategy,node_quality toneMint
class node_selectors,node_stageplanner,node_plannerhandlers toneRose
class node_ownershipconcept,node_ownershipprinciple,node_ownershipmodel,node_counter,node_experiment toneIndigo
```

## Components

### Public Composition

- [Public API](https://github.com/phuire-research/stratimux/blob/main/src/index.ts): `src/index.ts`
- [Concept model](https://github.com/phuire-research/stratimux/blob/main/src/model/concept/concept.ts): `src/model/concept/concept.ts`
- [Concept composition](https://github.com/phuire-research/stratimux/blob/main/src/model/concept/conceptAdvanced.ts): `src/model/concept/conceptAdvanced.ts`
- [Method factories](https://github.com/phuire-research/stratimux/blob/main/src/model/method/index.ts): `src/model/method/index.ts`
- [Concept deck](https://github.com/phuire-research/stratimux/blob/main/src/model/deck.ts): `src/model/deck.ts`

### Muxium Runtime

- [Muxium runtime](https://github.com/phuire-research/stratimux/blob/main/src/model/muxium/muxium.ts): `src/model/muxium/muxium.ts`
- [Muxium concept](https://github.com/phuire-research/stratimux/blob/main/src/concepts/muxium/muxium.concept.ts): `src/concepts/muxium/muxium.concept.ts`
- [Concept loading](https://github.com/phuire-research/stratimux/blob/main/src/concepts/muxium/muxium.principle.ts): `src/concepts/muxium/muxium.principle.ts`
- [Concept state](https://github.com/phuire-research/stratimux/blob/main/src/model/concept/concept.type.ts): `src/model/concept/concept.type.ts`

### Action Execution

- [Action model](https://github.com/phuire-research/stratimux/blob/main/src/model/action/action.ts): `src/model/action/action.ts`
- [Async controller](https://github.com/phuire-research/stratimux/blob/main/src/model/action/actionController.ts): `src/model/action/actionController.ts`
- [Action strategies](https://github.com/phuire-research/stratimux/blob/main/src/model/action/strategy/actionStrategy.ts): `src/model/action/strategy/actionStrategy.ts`
- [Quality operations](https://github.com/phuire-research/stratimux/blob/main/src/model/quality.ts): `src/model/quality.ts`

### Planning and Selection

- [State selectors](https://github.com/phuire-research/stratimux/blob/main/src/model/selector/selector.ts): `src/model/selector/selector.ts`
- [Stage planner](https://github.com/phuire-research/stratimux/blob/main/src/model/stagePlanner/stagePlanner.ts): `src/model/stagePlanner/stagePlanner.ts`
- [Plan handlers](https://github.com/phuire-research/stratimux/blob/main/src/model/stagePlanner/stagePlannerHandlers.ts): `src/model/stagePlanner/stagePlannerHandlers.ts`

### Built-in Concepts

- [Ownership concept](https://github.com/phuire-research/stratimux/blob/main/src/concepts/ownership/ownership.concept.ts): `src/concepts/ownership/ownership.concept.ts`
- [Ownership arbitration](https://github.com/phuire-research/stratimux/blob/main/src/concepts/ownership/ownership.principle.ts): `src/concepts/ownership/ownership.principle.ts`
- [Ownership ledger](https://github.com/phuire-research/stratimux/blob/main/src/model/ownership.ts): `src/model/ownership.ts`
- [Counter example](https://github.com/phuire-research/stratimux/blob/main/src/concepts/counter/counter.concept.ts): `src/concepts/counter/counter.concept.ts`
- [Experiment concept](https://github.com/phuire-research/stratimux/blob/main/src/concepts/experiment/experiment.concept.ts): `src/concepts/experiment/experiment.concept.ts`

### Other components

- **Framework user**

## Connections

- Framework user → Public API: uses
- Public API → Concept model: exports
- Public API → Muxium runtime: exports
- Public API → Method factories: exports
- Framework user → Concept model: defines
- Framework user → Method factories: creates
- Concept model → Concept composition: composes
- Concept composition → Concept deck: builds
- Framework user → Muxium runtime: starts
- Muxium runtime → Muxium concept: initializes
- Muxium runtime → Concept state: maintains
- Concept loading → Concept deck: updates
- Concept loading → Action strategies: dispatches
- Muxium runtime → State selectors: creates
- Muxium runtime → Action model: routes
- Method factories → Async controller: controls async
- Async controller → Action strategies: fails expired
- Action strategies → Action model: composes
- Quality operations → Action model: handles
- Stage planner → Plan handlers: delegates
- Plan handlers → State selectors: maps selectors
- Stage planner → Action model: dispatches stages
- Ownership arbitration → Ownership ledger: checks readiness
- Ownership arbitration → Action strategies: dispatches ready
- Ownership arbitration → Ownership concept: reads state
- Ownership ledger → Ownership concept: updates ledger
- Counter example → Quality operations: defines qualities
- Experiment concept → Quality operations: defines qualities
- Concept loading → Async controller: subscribes methods
