# Muse — Type Contracts Reference > Auto-generated: 2026-04-12 > Source: `scripts/gen_type_contracts.py (repo: muse)` > Check for drift: `python scripts/gen_type_contracts.py --check` > > **Do not edit this file manually.** It is regenerated from source on every > commit. To update, change the source types and re-run the generator. --- ## Table of Contents - [Enums](#enums) (1) - [TypedDicts](#typeddicts) (454) - [Protocols](#protocols) (11) --- ## Enums ### `ExitCode` — [`muse/core/errors.py`](muse/core/errors.py) Standardised CLI exit codes. **Bases:** `IntEnum` | Member | Value | |--------|-------| | `SUCCESS` | `0` | | `USER_ERROR` | `1` | | `REPO_NOT_FOUND` | `2` | | `INTERNAL_ERROR` | `3` | | `NOT_FOUND` | `4` | | `REMOTE_ERROR` | `5` | ## TypedDicts ### `_AgeRecord` — [`muse/cli/commands/age.py`](muse/cli/commands/age.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `born_commit` | `str` | ✓ | `—` | | `born_date` | `str` | ✓ | `—` | | `last_impl_commit` | `str` | ✓ | `—` | | `last_impl_date` | `str` | ✓ | `—` | | `last_change_commit` | `str` | ✓ | `—` | | `last_change_date` | `str` | ✓ | `—` | | `calendar_age_days` | `int` | ✓ | `—` | | `genetic_age_days` | `int` | ✓ | `—` | | `impl_changes` | `int` | ✓ | `—` | | `sig_changes` | `int` | ✓ | `—` | | `renames` | `int` | ✓ | `—` | | `est_survival_pct` | `int` | ✓ | `—` | ### `BarAttribution` — [`muse/cli/commands/agent_map.py`](muse/cli/commands/agent_map.py) Attribution record for one bar. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bar` | `int` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_AnnotateJson` — [`muse/cli/commands/annotate.py`](muse/cli/commands/annotate.py) JSON output of ``muse annotate [--json]``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `reviewed_by` | `list[str]` | ✓ | `—` | | `test_runs` | `int` | ✓ | `—` | | `changed` | `bool` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_PublicSymbolDict` — [`muse/cli/commands/api_surface.py`](muse/cli/commands/api_surface.py) JSON-serialisable form of a :class:`_PublicSymbol`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `qualified_name` | `str` | ✓ | `—` | | `language` | `str` | ✓ | `—` | | `content_id` | `str` | ✓ | `—` | | `signature_id` | `str` | ✓ | `—` | | `body_hash` | `str` | ✓ | `—` | ### `_ArchiveJson` — [`muse/cli/commands/archive.py`](muse/cli/commands/archive.py) Machine-readable output of ``muse archive --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `format` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `bytes` | `int` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `ref` | `str | None` | ✓ | `—` | ### `_CheckJson` — [`muse/cli/commands/attributes.py`](muse/cli/commands/attributes.py) JSON output of ``muse attributes check``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `results` | `list[_CheckResultJson]` | ✓ | `—` | ### `_CheckResultJson` — [`muse/cli/commands/attributes.py`](muse/cli/commands/attributes.py) JSON result for a single path resolution. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `dimension` | `str` | ✓ | `—` | | `strategy` | `str` | ✓ | `—` | | `rule_index` | `int` | ✓ | `—` | ### `_ListJson` — [`muse/cli/commands/attributes.py`](muse/cli/commands/attributes.py) JSON output of ``muse attributes list``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `str` | ✓ | `—` | | `rules` | `list[_RuleJson]` | ✓ | `—` | ### `_RuleJson` — [`muse/cli/commands/attributes.py`](muse/cli/commands/attributes.py) JSON representation of a single ``.museattributes`` rule. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path_pattern` | `str` | ✓ | `—` | | `dimension` | `str` | ✓ | `—` | | `strategy` | `str` | ✓ | `—` | | `comment` | `str` | ✓ | `—` | | `priority` | `int` | ✓ | `—` | | `source_index` | `int` | ✓ | `—` | ### `_ValidateErrorJson` — [`muse/cli/commands/attributes.py`](muse/cli/commands/attributes.py) A single validation error entry. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_ValidateJson` — [`muse/cli/commands/attributes.py`](muse/cli/commands/attributes.py) JSON output of ``muse attributes validate``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `valid` | `bool` | ✓ | `—` | | `errors` | `list[_ValidateErrorJson]` | ✓ | `—` | ### `_ChallengeResp` — [`muse/cli/commands/auth.py`](muse/cli/commands/auth.py) Parsed response from the hub challenge endpoint. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `challengeToken` | `str` | ✓ | `—` | | `challenge_token` | `str` | ✓ | `—` | | `isNewKey` | `bool` | ✓ | `—` | | `is_new_key` | `bool` | ✓ | `—` | ### `_JsonPayload` — [`muse/cli/commands/auth.py`](muse/cli/commands/auth.py) Generic JSON request payload for hub auth endpoints (all fields optional str). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `fingerprint` | `str` | ✓ | `—` | | `algorithm` | `str` | ✓ | `—` | | `challenge_token` | `str` | ✓ | `—` | | `public_key_b64` | `str` | ✓ | `—` | | `signature_b64` | `str` | ✓ | `—` | | `handle` | `str` | ✓ | `—` | | `label` | `str` | ✓ | `—` | ### `_KeygenJson` — [`muse/cli/commands/auth.py`](muse/cli/commands/auth.py) JSON schema for ``muse auth keygen --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `hub` | `str` | ✓ | `—` | | `hostname` | `str` | ✓ | `—` | | `hd_path` | `str` | ✓ | `—` | | `public_key_b64` | `str` | ✓ | `—` | | `fingerprint` | `str` | ✓ | `—` | ### `_LogoutJson` — [`muse/cli/commands/auth.py`](muse/cli/commands/auth.py) JSON schema for ``muse auth logout --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `hubs` | `list[str]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | ### `_RegisterJson` — [`muse/cli/commands/auth.py`](muse/cli/commands/auth.py) JSON schema for ``muse auth register --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `hub` | `str` | ✓ | `—` | | `handle` | `str` | ✓ | `—` | | `identity_id` | `str` | ✓ | `—` | | `identity_type` | `str` | ✓ | `—` | | `fingerprint` | `str` | ✓ | `—` | | `token_stored` | `bool` | ✓ | `—` | | `identity_path` | `str` | ✓ | `—` | ### `_VerifyResp` — [`muse/cli/commands/auth.py`](muse/cli/commands/auth.py) Parsed response from the hub verify endpoint. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `handle` | `str` | ✓ | `—` | | `identityId` | `str` | ✓ | `—` | | `identity_id` | `str` | ✓ | `—` | | `isNewIdentity` | `bool` | ✓ | `—` | | `is_new_identity` | `bool` | ✓ | `—` | ### `_WhoamiJson` — [`muse/cli/commands/auth.py`](muse/cli/commands/auth.py) JSON schema for ``muse auth whoami --json`` (per-identity entry). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `hub` | `str` | ✓ | `—` | | `type` | `str` | ✓ | `—` | | `handle` | `str` | ✓ | `—` | | `fingerprint` | `str` | ✓ | `—` | | `key_set` | `bool` | ✓ | `—` | | `capabilities` | `list[str]` | ✓ | `—` | ### `_BisectLogJson` — [`muse/cli/commands/bisect.py`](muse/cli/commands/bisect.py) JSON output for ``muse bisect log --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `active` | `bool` | ✓ | `—` | | `entries` | `list[str]` | ✓ | `—` | ### `_BisectResetJson` — [`muse/cli/commands/bisect.py`](muse/cli/commands/bisect.py) JSON output for ``muse bisect reset --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `reset` | `bool` | ✓ | `—` | ### `_BisectRunDoneJson` — [`muse/cli/commands/bisect.py`](muse/cli/commands/bisect.py) Final NDJSON line emitted by ``muse bisect run --json`` when complete. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `done` | `bool` | ✓ | `—` | | `first_bad` | `str | None` | ✓ | `—` | | `steps_taken` | `int` | ✓ | `—` | ### `_BisectRunStepJson` — [`muse/cli/commands/bisect.py`](muse/cli/commands/bisect.py) One NDJSON line emitted by ``muse bisect run --json`` per step. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `step` | `int` | ✓ | `—` | | `testing` | `str` | ✓ | `—` | | `verdict` | `str` | ✓ | `—` | | `remaining_count` | `int` | ✓ | `—` | | `done` | `bool` | ✓ | `—` | ### `_BisectStepJson` — [`muse/cli/commands/bisect.py`](muse/cli/commands/bisect.py) JSON output for start / bad / good / skip subcommands. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `done` | `bool` | ✓ | `—` | | `first_bad` | `str | None` | ✓ | `—` | | `next_to_test` | `str | None` | ✓ | `—` | | `remaining_count` | `int` | ✓ | `—` | | `steps_remaining` | `int` | ✓ | `—` | | `verdict` | `str` | ✓ | `—` | | `symbol_changes` | `list[str]` | ✓ | `—` | ### `_BlameEventJson` — [`muse/cli/commands/blame.py`](muse/cli/commands/blame.py) One event in the blame history of a symbol. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `event` | `SymbolEventKind` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `address` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | | `new_address` | `str | None` | ✓ | `—` | ### `_BlameResultJson` — [`muse/cli/commands/blame.py`](muse/cli/commands/blame.py) Top-level JSON output of ``muse code blame --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `start_ref` | `str` | ✓ | `—` | | `total_commits_scanned` | `int` | ✓ | `—` | | `truncated` | `bool` | ✓ | `—` | | `events` | `list[_BlameEventJson]` | ✓ | `—` | ### `_BlastRiskFilters` — [`muse/cli/commands/blast_risk.py`](muse/cli/commands/blast_risk.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str | None` | ✓ | `—` | | `file` | `str | None` | ✓ | `—` | | `min_risk` | `int` | ✓ | `—` | | `since` | `str | None` | ✓ | `—` | | `top` | `int` | ✓ | `—` | | `max_commits` | `int` | ✓ | `—` | ### `_BlastRiskOutput` — [`muse/cli/commands/blast_risk.py`](muse/cli/commands/blast_risk.py) JSON payload for ``muse code blast-risk`` output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `commits_analysed` | `int` | ✓ | `—` | | `truncated` | `bool` | ✓ | `—` | | `filters` | `_BlastRiskFilters` | ✓ | `—` | | `weights` | `_BlastRiskWeights` | ✓ | `—` | | `symbols` | `list[_SymbolRiskJson]` | ✓ | `—` | ### `_BlastRiskWeights` — [`muse/cli/commands/blast_risk.py`](muse/cli/commands/blast_risk.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `impact` | `float` | ✓ | `—` | | `churn` | `float` | ✓ | `—` | | `test_gap` | `float` | ✓ | `—` | | `coupling` | `float` | ✓ | `—` | ### `_SymbolRisk` — [`muse/cli/commands/blast_risk.py`](muse/cli/commands/blast_risk.py) Fully-scored risk record for one symbol. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `risk` | `int` | ✓ | `—` | | `impact_raw` | `int` | ✓ | `—` | | `churn_raw` | `int` | ✓ | `—` | | `test_gap_raw` | `float` | ✓ | `—` | | `coupling_raw` | `int` | ✓ | `—` | | `impact_score` | `int` | ✓ | `—` | | `churn_score` | `int` | ✓ | `—` | | `test_gap_score` | `int` | ✓ | `—` | | `coupling_score` | `int` | ✓ | `—` | | `production_callers` | `list[str]` | ✓ | `—` | | `test_callers` | `list[str]` | ✓ | `—` | ### `_SymbolRiskJson` — [`muse/cli/commands/blast_risk.py`](muse/cli/commands/blast_risk.py) JSON-serialisable risk record — ``production_callers``/``test_callers`` excluded. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `risk` | `int` | ✓ | `—` | | `impact_raw` | `int` | ✓ | `—` | | `churn_raw` | `int` | ✓ | `—` | | `test_gap_raw` | `float` | ✓ | `—` | | `coupling_raw` | `int` | ✓ | `—` | | `impact_score` | `int` | ✓ | `—` | | `churn_score` | `int` | ✓ | `—` | | `test_gap_score` | `int` | ✓ | `—` | | `coupling_score` | `int` | ✓ | `—` | ### `_BreakageIssue` — [`muse/cli/commands/breakage.py`](muse/cli/commands/breakage.py) One breakage finding, serialisable to JSON. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `issue_type` | `str` | ✓ | `—` | | `file_path` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `severity` | `str` | ✓ | `—` | ### `_BundleCreateJson` — [`muse/cli/commands/bundle.py`](muse/cli/commands/bundle.py) JSON output for ``muse bundle create --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `commits` | `int` | ✓ | `—` | | `objects` | `int` | ✓ | `—` | | `size_bytes` | `int` | ✓ | `—` | | `branches` | `list[str]` | ✓ | `—` | ### `_BundleUnbundleJson` — [`muse/cli/commands/bundle.py`](muse/cli/commands/bundle.py) JSON output for ``muse bundle unbundle --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commits_written` | `int` | ✓ | `—` | | `snapshots_written` | `int` | ✓ | `—` | | `objects_written` | `int` | ✓ | `—` | | `objects_skipped` | `int` | ✓ | `—` | | `refs_updated` | `list[str]` | ✓ | `—` | ### `_BundleVerifyJson` — [`muse/cli/commands/bundle.py`](muse/cli/commands/bundle.py) JSON output for ``muse bundle verify --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `objects_checked` | `int` | ✓ | `—` | | `snapshots_checked` | `int` | ✓ | `—` | | `all_ok` | `bool` | ✓ | `—` | | `failures` | `list[str]` | ✓ | `—` | ### `CatError` — [`muse/cli/commands/cat.py`](muse/cli/commands/cat.py) A failed lookup returned in --json mode. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `error` | `str` | ✓ | `—` | | `error_code` | `str` | ✓ | `—` | | `hint` | `str` | ✓ | `—` | ### `CatResult` — [`muse/cli/commands/cat.py`](muse/cli/commands/cat.py) One resolved symbol returned in --json mode. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `file_path` | `str` | ✓ | `—` | | `symbol` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `lineno` | `int` | ✓ | `—` | | `end_lineno` | `int` | ✓ | `—` | | `source` | `str` | ✓ | `—` | | `source_ref` | `str` | ✓ | `—` | ### `_CheckJson` — [`muse/cli/commands/check.py`](muse/cli/commands/check.py) Machine-readable output of ``muse check --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `rules_checked` | `int` | ✓ | `—` | | `has_errors` | `bool` | ✓ | `—` | | `has_warnings` | `bool` | ✓ | `—` | | `error_count` | `int` | ✓ | `—` | | `warning_count` | `int` | ✓ | `—` | | `info_count` | `int` | ✓ | `—` | | `total_violations` | `int` | ✓ | `—` | | `violations` | `list[dict]` | ✓ | `—` | | `base_commit_id` | `str | None` | ✓ | `—` | | `elapsed_seconds` | `float` | ✓ | `—` | ### `_CleanResultJson` — [`muse/cli/commands/clean.py`](muse/cli/commands/clean.py) JSON output for ``muse clean``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `removed` | `list[str]` | ✓ | `—` | | `dirs_removed` | `list[str]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_CloneJson` — [`muse/cli/commands/clone.py`](muse/cli/commands/clone.py) Stable JSON schema emitted by ``muse clone --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `directory` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `commits_received` | `int` | ✓ | `—` | | `objects_written` | `int` | ✓ | `—` | | `head` | `str | None` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_ClusterDict` — [`muse/cli/commands/clones.py`](muse/cli/commands/clones.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `tier` | `str` | ✓ | `—` | | `hash` | `str` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `members` | `list[_MemberDict]` | ✓ | `—` | ### `_FileHotspot` — [`muse/cli/commands/clones.py`](muse/cli/commands/clones.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `clone_symbols` | `int` | ✓ | `—` | ### `_MemberDict` — [`muse/cli/commands/clones.py`](muse/cli/commands/clones.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `language` | `str` | ✓ | `—` | | `body_hash` | `str` | ✓ | `—` | | `signature_id` | `str` | ✓ | `—` | | `content_id` | `str` | ✓ | `—` | ### `_CommitRef` — [`muse/cli/commands/compare.py`](muse/cli/commands/compare.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_CompareFilters` — [`muse/cli/commands/compare.py`](muse/cli/commands/compare.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str | None` | ✓ | `—` | | `file` | `str | None` | ✓ | `—` | | `language` | `str | None` | ✓ | `—` | ### `_CompareStat` — [`muse/cli/commands/compare.py`](muse/cli/commands/compare.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `files_changed` | `int` | ✓ | `—` | | `symbols_added` | `int` | ✓ | `—` | | `symbols_removed` | `int` | ✓ | `—` | | `symbols_modified` | `int` | ✓ | `—` | | `semver_impact` | `str` | ✓ | `—` | ### `_OpSummary` — [`muse/cli/commands/compare.py`](muse/cli/commands/compare.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `str` | ✓ | `—` | | `address` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | ### `_GetJson` — [`muse/cli/commands/config_cmd.py`](muse/cli/commands/config_cmd.py) JSON schema for ``muse config get --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `key` | `str` | ✓ | `—` | | `value` | `str` | ✓ | `—` | ### `_SetJson` — [`muse/cli/commands/config_cmd.py`](muse/cli/commands/config_cmd.py) JSON schema for ``muse config set --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `key` | `str` | ✓ | `—` | | `value` | `str` | ✓ | `—` | ### `GrepFileResult` — [`muse/cli/commands/content_grep.py`](muse/cli/commands/content_grep.py) All matches within a single file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `object_id` | `str | None` | ✓ | `—` | | `match_count` | `int` | ✓ | `—` | | `matches` | `list[GrepMatch]` | ✓ | `—` | ### `GrepMatch` — [`muse/cli/commands/content_grep.py`](muse/cli/commands/content_grep.py) A single matching line within a file, with optional surrounding context. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `line_number` | `int` | ✓ | `—` | | `text` | `str` | ✓ | `—` | | `context_before` | `list[str]` | ✓ | `—` | | `context_after` | `list[str]` | ✓ | `—` | ### `_ContentGrepJson` — [`muse/cli/commands/content_grep.py`](muse/cli/commands/content_grep.py) Top-level JSON envelope for ``muse content-grep --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `source` | `str` | ✓ | `—` | | `commit_id` | `str | None` | ✓ | `—` | | `snapshot_id` | `str | None` | ✓ | `—` | | `pattern` | `str` | ✓ | `—` | | `total_files_matched` | `int` | ✓ | `—` | | `total_matches` | `int` | ✓ | `—` | | `results` | `list[GrepFileResult]` | ✓ | `—` | ### `_ArgObs` — [`muse/cli/commands/contract.py`](muse/cli/commands/contract.py) Observed argument patterns at call sites for one positional slot. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `param_index` | `int` | ✓ | `—` | | `categories` | `_CounterMap` | ✓ | `—` | | `none_count` | `int` | ✓ | `—` | | `always_provided` | `bool` | ✓ | `—` | | `omit_count` | `int` | ✓ | `—` | ### `_CommitSignal` — [`muse/cli/commands/contract.py`](muse/cli/commands/contract.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bump` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `date` | `str` | ✓ | `—` | ### `_ContractJson` — [`muse/cli/commands/contract.py`](muse/cli/commands/contract.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `signature` | `str` | ✓ | `—` | | `parameters` | `list[_ParamInfo]` | ✓ | `—` | | `return_annotation` | `str | None` | ✓ | `—` | | `call_sites` | `int` | ✓ | `—` | | `caller_files` | `int` | ✓ | `—` | | `return_dispositions` | `_CounterMap` | ✓ | `—` | | `arg_observations` | `list[_ArgObs]` | ✓ | `—` | | `test_assertions` | `list[str]` | ✓ | `—` | | `commit_signals` | `list[_CommitSignal]` | ✓ | `—` | | `history` | `_HistorySummary` | ✓ | `—` | | `preconditions` | `list[str]` | ✓ | `—` | | `postconditions` | `list[str]` | ✓ | `—` | | `warnings` | `list[str]` | ✓ | `—` | | `stability` | `str` | ✓ | `—` | ### `_HistorySummary` — [`muse/cli/commands/contract.py`](muse/cli/commands/contract.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commits_analysed` | `int` | ✓ | `—` | | `truncated` | `bool` | ✓ | `—` | | `major_bumps` | `int` | ✓ | `—` | | `minor_bumps` | `int` | ✓ | `—` | | `patch_bumps` | `int` | ✓ | `—` | | `sig_changes` | `int` | ✓ | `—` | | `impl_changes` | `int` | ✓ | `—` | | `est_survival_pct` | `int` | ✓ | `—` | ### `_ParamInfo` — [`muse/cli/commands/contract.py`](muse/cli/commands/contract.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `annotation` | `str | None` | ✓ | `—` | | `has_default` | `bool` | ✓ | `—` | | `default_str` | `str | None` | ✓ | `—` | ### `_CoverageFilters` — [`muse/cli/commands/coverage.py`](muse/cli/commands/coverage.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `exclude_dunder` | `bool` | ✓ | `—` | | `exclude_private` | `bool` | ✓ | `—` | | `min_callers` | `int` | ✓ | `—` | | `exclude_self` | `bool` | ✓ | `—` | ### `_CoveragePayload` — [`muse/cli/commands/coverage.py`](muse/cli/commands/coverage.py) JSON payload for ``muse code coverage`` output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `total_methods` | `int` | ✓ | `—` | | `covered` | `int` | ✓ | `—` | | `percent` | `float` | ✓ | `—` | | `filters` | `_CoverageFilters` | ✓ | `—` | | `methods` | `list[_MethodJson]` | ✓ | `—` | | `compare_commit_id` | `str` | ✓ | `—` | | `newly_covered` | `list[str]` | ✓ | `—` | | `newly_uncovered` | `list[str]` | ✓ | `—` | | `percent_change` | `float` | ✓ | `—` | ### `_MethodJson` — [`muse/cli/commands/coverage.py`](muse/cli/commands/coverage.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `called` | `bool` | ✓ | `—` | | `callers` | `list[str]` | ✓ | `—` | ### `_DeadCandidateJson` — [`muse/cli/commands/dead.py`](muse/cli/commands/dead.py) JSON-serialisable representation of one dead-code candidate. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `file_path` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `referenced` | `bool` | ✓ | `—` | | `module_imported` | `bool` | ✓ | `—` | | `confidence` | `str` | ✓ | `—` | | `reason` | `str` | ✓ | `—` | ### `_DeadPayload` — [`muse/cli/commands/dead.py`](muse/cli/commands/dead.py) JSON payload for ``muse code dead`` output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `source` | `str` | ✓ | `—` | | `total_files_scanned` | `int` | ✓ | `—` | | `total_symbols_scanned` | `int` | ✓ | `—` | | `elapsed_seconds` | `float` | ✓ | `—` | | `high_confidence_count` | `int` | ✓ | `—` | | `medium_confidence_count` | `int` | ✓ | `—` | | `results` | `list[_DeadCandidateJson]` | ✓ | `—` | | `compare_commit_id` | `str` | ✓ | `—` | | `new_dead` | `list[_DeadCandidateJson]` | ✓ | `—` | | `recovered` | `list[_DeadCandidateJson]` | ✓ | `—` | | `net_change` | `int` | ✓ | `—` | ### `_ScanKwargs` — [`muse/cli/commands/dead.py`](muse/cli/commands/dead.py) Keyword arguments forwarded to every :func:`_scan_file_bytes` call. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind_filter` | `str | None` | ✓ | `—` | | `max_file_bytes` | `int` | ✓ | `—` | | `workers` | `int` | ✓ | `—` | | `language_filter` | `str | None` | ✓ | `—` | | `path_filter` | `str | None` | ✓ | `—` | | `exclude_tests` | `bool` | ✓ | `—` | | `exclude_private` | `bool` | ✓ | `—` | | `high_confidence_only` | `bool` | ✓ | `—` | | `allowlist` | `frozenset[str]` | ✓ | `—` | ### `_DescribeJson` — [`muse/cli/commands/describe.py`](muse/cli/commands/describe.py) JSON output for ``muse describe``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `tag` | `str | None` | ✓ | `—` | | `distance` | `int` | ✓ | `—` | | `short_sha` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `exact` | `bool` | ✓ | `—` | | `repo_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `DocCiConfig` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) Configuration for the documentation quality CI gate. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `min_avg_health` | `float` | ✓ | `—` | | `max_undocumented` | `int` | ✓ | `—` | | `max_stale` | `int` | ✓ | `—` | | `fail_on_breaking_undocumented` | `bool` | ✓ | `—` | ### `DocCiGateResult` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) Result of a single documentation CI gate check. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `passed` | `bool` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `DocCiResult` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) Overall result of the documentation CI gate. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `passed` | `bool` | ✓ | `—` | | `gates` | `list[DocCiGateResult]` | ✓ | `—` | | `summary` | `DocSummary` | ✓ | `—` | ### `_ChangelogJson` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) JSON representation of a :class:`ChangelogReport`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `from_ref` | `str` | ✓ | `—` | | `to_ref` | `str` | ✓ | `—` | | `added` | `list[str]` | ✓ | `—` | | `removed` | `list[str]` | ✓ | `—` | | `changed` | `list[str]` | ✓ | `—` | | `breaking` | `list[str]` | ✓ | `—` | ### `_DocCiGateJson` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `passed` | `bool` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_DocCiJson` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `passed` | `bool` | ✓ | `—` | | `gates` | `list[_DocCiGateJson]` | ✓ | `—` | | `summary` | `DocSummary` | ✓ | `—` | ### `_HistoryEventJson` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) JSON representation of one symbol version event. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `op` | `str` | ✓ | `—` | | `version` | `str | None` | ✓ | `—` | | `sem_ver_bump` | `str | None` | ✓ | `—` | | `breaking` | `bool` | ✓ | `—` | ### `_SymbolHistoryJson` — [`muse/cli/commands/docs_cmd.py`](muse/cli/commands/docs_cmd.py) JSON representation of a symbol's full history. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `events` | `list[_HistoryEventJson]` | ✓ | `—` | ### `_Capabilities` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Capability manifest sent to MuseHub on domain publish. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `dimensions` | `list[_DimensionDef]` | ✓ | `—` | | `artifact_types` | `list[str]` | ✓ | `—` | | `merge_semantics` | `str` | ✓ | `—` | | `supported_commands` | `list[str]` | ✓ | `—` | ### `_DimensionDef` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) One semantic dimension exported by a domain plugin. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | ### `_DomainEntryJsonBase` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Required keys present on every domain JSON entry. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `str` | ✓ | `—` | | `module_path` | `str` | ✓ | `—` | | `capabilities` | `list[str]` | ✓ | `—` | | `active` | `bool` | ✓ | `—` | ### `_PublishPayload` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Wire payload for ``POST /api/v1/domains`` on MuseHub. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `author_slug` | `str` | ✓ | `—` | | `slug` | `str` | ✓ | `—` | | `display_name` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `capabilities` | `_Capabilities` | ✓ | `—` | | `viewer_type` | `str` | ✓ | `—` | | `version` | `str` | ✓ | `—` | ### `_PublishResponse` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Parsed response body from ``POST /api/v1/domains``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain_id` | `str` | ✓ | `—` | | `scoped_id` | `str` | ✓ | `—` | | `manifest_hash` | `str` | ✓ | `—` | ### `_ScaffoldJson` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Structured result from ``muse domains --new --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `class_name` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | ### `_SchemaInfoJson` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Schema block embedded in a domain's JSON entry. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `merge_mode` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `dimensions` | `list[_DimensionDef]` | ✓ | `—` | ### `_UseJson` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Result from ``muse domains use --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `str` | ✓ | `—` | | `repo` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | ### `_ValidateCheckJson` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) One protocol compliance check from ``muse domains validate``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `ok` | `bool` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | ### `_ValidateJson` — [`muse/cli/commands/domains.py`](muse/cli/commands/domains.py) Full result from ``muse domains validate [] --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `str` | ✓ | `—` | | `ok` | `bool` | ✓ | `—` | | `checks` | `list[_ValidateCheckJson]` | ✓ | `—` | ### `_EntangledPair` — [`muse/cli/commands/entangle.py`](muse/cli/commands/entangle.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `symbol_a` | `str` | ✓ | `—` | | `symbol_b` | `str` | ✓ | `—` | | `file_a` | `str` | ✓ | `—` | | `file_b` | `str` | ✓ | `—` | | `same_file` | `bool` | ✓ | `—` | | `structurally_linked` | `bool` | ✓ | `—` | | `co_changes` | `int` | ✓ | `—` | | `commits_both_active` | `int` | ✓ | `—` | | `co_change_rate` | `float` | ✓ | `—` | | `a_in_test` | `bool` | ✓ | `—` | | `b_in_test` | `bool` | ✓ | `—` | ### `_FetchJson` — [`muse/cli/commands/fetch.py`](muse/cli/commands/fetch.py) Top-level JSON object emitted by ``muse fetch --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `results` | `list[_RemoteResultJson]` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_RemoteResultJson` — [`muse/cli/commands/fetch.py`](muse/cli/commands/fetch.py) Per-remote/branch result inside a ``muse fetch --json`` response. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `remote` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `commits_received` | `int` | ✓ | `—` | | `objects_written` | `int` | ✓ | `—` | | `head` | `str | None` | ✓ | `—` | | `pruned` | `list[str]` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `PhraseMatch` — [`muse/cli/commands/find_phrase.py`](muse/cli/commands/find_phrase.py) A commit that contains the searched phrase. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `score` | `float` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_GcJson` — [`muse/cli/commands/gc.py`](muse/cli/commands/gc.py) Machine-readable output of ``muse gc --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `collected_count` | `int` | ✓ | `—` | | `collected_bytes` | `int` | ✓ | `—` | | `reachable_count` | `int` | ✓ | `—` | | `commits_reachable` | `int` | ✓ | `—` | | `commits_collected` | `int` | ✓ | `—` | | `commits_collected_bytes` | `int` | ✓ | `—` | | `snapshots_reachable` | `int` | ✓ | `—` | | `snapshots_collected` | `int` | ✓ | `—` | | `snapshots_collected_bytes` | `int` | ✓ | `—` | | `elapsed_seconds` | `float` | ✓ | `—` | | `grace_period_seconds` | `int` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `full` | `bool` | ✓ | `—` | | `collected_ids` | `list[str]` | ✓ | `—` | ### `_FilterSpec` — [`muse/cli/commands/gravity.py`](muse/cli/commands/gravity.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str | None` | ✓ | `—` | | `file` | `str | None` | ✓ | `—` | | `min_gravity` | `float` | ✓ | `—` | | `top` | `int` | ✓ | `—` | ### `_JsonOut` — [`muse/cli/commands/gravity.py`](muse/cli/commands/gravity.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `total_production_symbols` | `int` | ✓ | `—` | | `max_depth` | `int` | ✓ | `—` | | `include_tests` | `bool` | ✓ | `—` | | `filters` | `_FilterSpec` | ✓ | `—` | | `symbols` | `list[_SymbolGravity]` | ✓ | `—` | ### `_SymbolGravity` — [`muse/cli/commands/gravity.py`](muse/cli/commands/gravity.py) Gravity record for a single production symbol. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `gravity_pct` | `float` | ✓ | `—` | | `direct_dependents` | `int` | ✓ | `—` | | `transitive_dependents` | `int` | ✓ | `—` | | `max_depth` | `int` | ✓ | `—` | | `depth_distribution` | `_CounterMap` | ✓ | `—` | ### `_ConnectJson` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) JSON schema for ``muse hub connect --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `hub_url` | `str` | ✓ | `—` | | `hostname` | `str` | ✓ | `—` | | `authenticated` | `bool` | ✓ | `—` | | `identity_name` | `str` | ✓ | `—` | | `identity_type` | `str` | ✓ | `—` | ### `_DisconnectJson` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) JSON schema for ``muse hub disconnect --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `hub_url` | `str` | ✓ | `—` | | `hostname` | `str` | ✓ | `—` | ### `_HubApiResponse` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) Generic MuseHub API response envelope (all keys optional). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `repos` | `list[_RepoEntry]` | ✓ | `—` | | `proposals` | `list[_ProposalEntry]` | ✓ | `—` | ### `_LabelEntry` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) One label row returned by the MuseHub labels API. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `label_id` | `str` | ✓ | `—` | | `repo_id` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `color` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | ### `_PingJson` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) JSON schema for ``muse hub ping --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `hub_url` | `str` | ✓ | `—` | | `hostname` | `str` | ✓ | `—` | | `reachable` | `bool` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_ProposalEntry` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) A single proposal entry returned by the MuseHub proposals API. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `proposalId` | `str` | ✓ | `—` | | `title` | `str` | ✓ | `—` | | `state` | `str` | ✓ | `—` | | `fromBranch` | `str` | ✓ | `—` | | `toBranch` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `createdAt` | `str` | ✓ | `—` | ### `_RepoEntry` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) A single repo entry returned by the MuseHub search/list API. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `owner` | `str` | ✓ | `—` | | `slug` | `str` | ✓ | `—` | | `repoId` | `str` | ✓ | `—` | ### `_RepoJson` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) JSON schema for ``muse hub repo create --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `owner` | `str` | ✓ | `—` | | `slug` | `str` | ✓ | `—` | | `visibility` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `clone_url` | `str` | ✓ | `—` | | `tags` | `list[str]` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `_StatusJson` — [`muse/cli/commands/hub.py`](muse/cli/commands/hub.py) JSON schema for ``muse hub status --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `hub_url` | `str` | ✓ | `—` | | `hostname` | `str` | ✓ | `—` | | `authenticated` | `bool` | ✓ | `—` | | `identity_type` | `str` | ✓ | `—` | | `identity_name` | `str` | ✓ | `—` | | `identity_id` | `str` | ✓ | `—` | | `capabilities` | `list[str]` | ✓ | `—` | ### `_EntryPointJson` — [`muse/cli/commands/impact.py`](muse/cli/commands/impact.py) One framework entry-point edge in JSON output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `framework_id` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `metadata` | `_StrMeta` | ✓ | `—` | ### `_ImpactJson` — [`muse/cli/commands/impact.py`](muse/cli/commands/impact.py) JSON payload for ``muse code impact`` output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `mode` | `str` | ✓ | `—` | | `address` | `str` | ✓ | `—` | | `target_name` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `depth_limit` | `int` | ✓ | `—` | | `file_filter` | `str | None` | ✓ | `—` | | `blast_radius` | `_BlastRadius` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `entry_points` | `list[_EntryPointJson]` | ✓ | `—` | | `compare_commit_id` | `str` | ✓ | `—` | | `added_callers` | `list[str]` | ✓ | `—` | | `removed_callers` | `list[str]` | ✓ | `—` | | `net_change` | `int` | ✓ | `—` | ### `_RebuildResult` — [`muse/cli/commands/index_rebuild.py`](muse/cli/commands/index_rebuild.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `rebuilt` | `list[str]` | ✓ | `—` | | `symbol_history_addresses` | `int` | ✓ | `—` | | `symbol_history_events` | `int` | ✓ | `—` | | `hash_occurrence_clusters` | `int` | ✓ | `—` | | `hash_occurrence_addresses` | `int` | ✓ | `—` | ### `ChannelInfo` — [`muse/cli/commands/instrumentation.py`](muse/cli/commands/instrumentation.py) Statistics for one MIDI channel. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `channel` | `int` | ✓ | `—` | | `note_count` | `int` | ✓ | `—` | | `pitch_min` | `int` | ✓ | `—` | | `pitch_max` | `int` | ✓ | `—` | | `pitch_min_name` | `str` | ✓ | `—` | | `pitch_max_name` | `str` | ✓ | `—` | | `register` | `str` | ✓ | `—` | | `mean_velocity` | `float` | ✓ | `—` | ### `_DiffEntry` — [`muse/cli/commands/languages.py`](muse/cli/commands/languages.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `language` | `str` | ✓ | `—` | | `delta_files` | `int` | ✓ | `—` | | `delta_symbols` | `int` | ✓ | `—` | | `files_before` | `int` | ✓ | `—` | | `files_after` | `int` | ✓ | `—` | | `symbols_before` | `int` | ✓ | `—` | | `symbols_after` | `int` | ✓ | `—` | | `status` | `str` | ✓ | `—` | ### `_LangEntry` — [`muse/cli/commands/languages.py`](muse/cli/commands/languages.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `language` | `str` | ✓ | `—` | | `files` | `int` | ✓ | `—` | | `symbols` | `int` | ✓ | `—` | | `kinds` | `LangCount` | ✓ | `—` | ### `_FiltersEntry` — [`muse/cli/commands/list_coord.py`](muse/cli/commands/list_coord.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `run_id` | `str | None` | ✓ | `—` | | `branch` | `str | None` | ✓ | `—` | | `address_glob` | `str | None` | ✓ | `—` | | `operation` | `str | None` | ✓ | `—` | | `include_expired` | `bool` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `limit` | `int | None` | ✓ | `—` | ### `_IntentEntry` — [`muse/cli/commands/list_coord.py`](muse/cli/commands/list_coord.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `intent_id` | `str` | ✓ | `—` | | `reservation_id` | `str` | ✓ | `—` | | `run_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `addresses` | `list[str]` | ✓ | `—` | | `operation` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | ### `_ListJson` — [`muse/cli/commands/list_coord.py`](muse/cli/commands/list_coord.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `active_reservations` | `int` | ✓ | `—` | | `expired_reservations` | `int` | ✓ | `—` | | `released_reservations` | `int` | ✓ | `—` | | `total_reservations_shown` | `int` | ✓ | `—` | | `total_intents_shown` | `int` | ✓ | `—` | | `has_conflicts` | `bool` | ✓ | `—` | | `filters` | `_FiltersEntry` | ✓ | `—` | | `reservations` | `list[_ReservationEntry]` | ✓ | `—` | | `intents` | `list[_IntentEntry]` | ✓ | `—` | | `elapsed_seconds` | `float` | ✓ | `—` | ### `_ReservationEntry` — [`muse/cli/commands/list_coord.py`](muse/cli/commands/list_coord.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `reservation_id` | `str` | ✓ | `—` | | `run_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `addresses` | `list[str]` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `expires_at` | `str` | ✓ | `—` | | `effective_expires_at` | `str` | ✓ | `—` | | `ttl_remaining_seconds` | `float` | ✓ | `—` | | `operation` | `str | None` | ✓ | `—` | | `is_active` | `bool` | ✓ | `—` | | `released` | `bool` | ✓ | `—` | | `conflict_count` | `int` | ✓ | `—` | ### `_CommitJson` — [`muse/cli/commands/log.py`](muse/cli/commands/log.py) Stable JSON wire format for a single commit in ``muse log --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `agent_id` | `str` | ✓ | `—` | | `model_id` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `parent_commit_id` | `str | None` | ✓ | `—` | | `parent2_commit_id` | `str | None` | ✓ | `—` | | `snapshot_id` | `str | None` | ✓ | `—` | | `sem_ver_bump` | `str | None` | ✓ | `—` | | `breaking_changes` | `list[str]` | ✓ | `—` | | `metadata` | `Metadata` | ✓ | `—` | | `files_added` | `list[str]` | ✓ | `—` | | `files_removed` | `list[str]` | ✓ | `—` | | `files_modified` | `list[str]` | ✓ | `—` | | `structured_delta` | `dict | None` | ✓ | `—` | ### `_EventRecord` — [`muse/cli/commands/narrative.py`](muse/cli/commands/narrative.py) A single event in a symbol's life. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `date` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `commit_msg` | `str` | ✓ | `—` | | `event_type` | `str` | ✓ | `—` | | `sem_ver_bump` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | ### `_NarrativeJson` — [`muse/cli/commands/narrative.py`](muse/cli/commands/narrative.py) Top-level JSON output structure. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `born_date` | `str` | ✓ | `—` | | `born_commit` | `str` | ✓ | `—` | | `last_change_date` | `str` | ✓ | `—` | | `last_change_commit` | `str` | ✓ | `—` | | `last_impl_date` | `str` | ✓ | `—` | | `last_impl_commit` | `str` | ✓ | `—` | | `calendar_age_days` | `int` | ✓ | `—` | | `genetic_age_days` | `int` | ✓ | `—` | | `impl_changes` | `int` | ✓ | `—` | | `sig_changes` | `int` | ✓ | `—` | | `renames` | `int` | ✓ | `—` | | `est_survival_pct` | `int` | ✓ | `—` | | `commits_analysed` | `int` | ✓ | `—` | | `truncated` | `bool` | ✓ | `—` | | `events` | `list[_EventRecord]` | ✓ | `—` | ### `_MergeItemDict` — [`muse/cli/commands/plan_merge.py`](muse/cli/commands/plan_merge.py) JSON-serialisable form of a :class:`_MergeItem`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `conflict_type` | `str` | ✓ | `—` | | `ours_change` | `str` | ✓ | `—` | | `theirs_change` | `str` | ✓ | `—` | | `recommendation` | `str` | ✓ | `—` | ### `_PathResult` — [`muse/cli/commands/plumbing/check_attr.py`](muse/cli/commands/plumbing/check_attr.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `dimension` | `str` | ✓ | `—` | | `strategy` | `str` | ✓ | `—` | | `rule` | `_RuleDict | None` | ✓ | `—` | ### `_RuleDict` — [`muse/cli/commands/plumbing/check_attr.py`](muse/cli/commands/plumbing/check_attr.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path_pattern` | `str` | ✓ | `—` | | `dimension` | `str` | ✓ | `—` | | `strategy` | `str` | ✓ | `—` | | `comment` | `str` | ✓ | `—` | | `priority` | `int` | ✓ | `—` | | `source_index` | `int` | ✓ | `—` | ### `_PathResult` — [`muse/cli/commands/plumbing/check_ignore.py`](muse/cli/commands/plumbing/check_ignore.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `ignored` | `bool` | ✓ | `—` | | `matching_pattern` | `str | None` | ✓ | `—` | ### `_CheckRefFormatResult` — [`muse/cli/commands/plumbing/check_ref_format.py`](muse/cli/commands/plumbing/check_ref_format.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `results` | `list[_CheckResult]` | ✓ | `—` | | `all_valid` | `bool` | ✓ | `—` | | `valid_count` | `int` | ✓ | `—` | | `invalid_count` | `int` | ✓ | `—` | ### `_CheckResult` — [`muse/cli/commands/plumbing/check_ref_format.py`](muse/cli/commands/plumbing/check_ref_format.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `valid` | `bool` | ✓ | `—` | | `error` | `str | None` | ✓ | `—` | ### `_RulesDict` — [`muse/cli/commands/plumbing/check_ref_format.py`](muse/cli/commands/plumbing/check_ref_format.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `max_length` | `int` | ✓ | `—` | | `forbidden_chars` | `list[str]` | ✓ | `—` | | `forbidden_patterns` | `list[str]` | ✓ | `—` | | `notes` | `str` | ✓ | `—` | ### `_CommitNode` — [`muse/cli/commands/plumbing/commit_graph.py`](muse/cli/commands/plumbing/commit_graph.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `parent_commit_id` | `str | None` | ✓ | `—` | | `parent2_commit_id` | `str | None` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | ### `_CapabilitiesDict` — [`muse/cli/commands/plumbing/domain_info.py`](muse/cli/commands/plumbing/domain_info.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `structured_merge` | `bool` | ✓ | `—` | | `crdt` | `bool` | ✓ | `—` | ### `_ForEachRefResult` — [`muse/cli/commands/plumbing/for_each_ref.py`](muse/cli/commands/plumbing/for_each_ref.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `refs` | `list[_RefDetail]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | ### `_RefDetail` — [`muse/cli/commands/plumbing/for_each_ref.py`](muse/cli/commands/plumbing/for_each_ref.py) One ref entry. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | ### `_NameRevEntry` — [`muse/cli/commands/plumbing/name_rev.py`](muse/cli/commands/plumbing/name_rev.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str | None` | ✓ | `—` | | `input` | `str` | ✓ | `—` | | `name` | `str | None` | ✓ | `—` | | `branch` | `str | None` | ✓ | `—` | | `distance` | `int | None` | ✓ | `—` | | `undefined` | `bool` | ✓ | `—` | | `ambiguous` | `bool` | ✓ | `—` | ### `_SnapshotOutput` — [`muse/cli/commands/plumbing/read_snapshot.py`](muse/cli/commands/plumbing/read_snapshot.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `manifest` | `Manifest` | ✓ | `—` | ### `_HeadInfo` — [`muse/cli/commands/plumbing/show_ref.py`](muse/cli/commands/plumbing/show_ref.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | ### `_RefEntry` — [`muse/cli/commands/plumbing/show_ref.py`](muse/cli/commands/plumbing/show_ref.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | ### `_ShowRefResult` — [`muse/cli/commands/plumbing/show_ref.py`](muse/cli/commands/plumbing/show_ref.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `refs` | `list[_RefEntry]` | ✓ | `—` | | `head` | `_HeadInfo | None` | ✓ | `—` | | `count` | `int` | ✓ | `—` | ### `_AddedEntry` — [`muse/cli/commands/plumbing/snapshot_diff.py`](muse/cli/commands/plumbing/snapshot_diff.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `object_id` | `str` | ✓ | `—` | ### `_DeletedEntry` — [`muse/cli/commands/plumbing/snapshot_diff.py`](muse/cli/commands/plumbing/snapshot_diff.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `object_id` | `str` | ✓ | `—` | ### `_DiffResult` — [`muse/cli/commands/plumbing/snapshot_diff.py`](muse/cli/commands/plumbing/snapshot_diff.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_a` | `str` | ✓ | `—` | | `snapshot_b` | `str` | ✓ | `—` | | `added` | `list[_AddedEntry]` | ✓ | `—` | | `modified` | `list[_ModifiedEntry]` | ✓ | `—` | | `deleted` | `list[_DeletedEntry]` | ✓ | `—` | | `total_changes` | `int` | ✓ | `—` | ### `_ModifiedEntry` — [`muse/cli/commands/plumbing/snapshot_diff.py`](muse/cli/commands/plumbing/snapshot_diff.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `object_id_a` | `str` | ✓ | `—` | | `object_id_b` | `str` | ✓ | `—` | ### `_SymbolicRefResult` — [`muse/cli/commands/plumbing/symbolic_ref.py`](muse/cli/commands/plumbing/symbolic_ref.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `symbolic_target` | `str | None` | ✓ | `—` | | `branch` | `str | None` | ✓ | `—` | | `commit_id` | `str | None` | ✓ | `—` | | `detached` | `bool` | ✓ | `—` | ### `_ObjectResult` — [`muse/cli/commands/plumbing/verify_object.py`](muse/cli/commands/plumbing/verify_object.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `object_id` | `str` | ✓ | `—` | | `ok` | `bool` | ✓ | `—` | | `size_bytes` | `int | None` | ✓ | `—` | | `error` | `str | None` | ✓ | `—` | ### `_Failure` — [`muse/cli/commands/plumbing/verify_pack.py`](muse/cli/commands/plumbing/verify_pack.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str` | ✓ | `—` | | `id` | `str` | ✓ | `—` | | `error` | `str` | ✓ | `—` | ### `_StatResult` — [`muse/cli/commands/plumbing/verify_pack.py`](muse/cli/commands/plumbing/verify_pack.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `objects` | `int` | ✓ | `—` | | `snapshots` | `int` | ✓ | `—` | | `commits` | `int` | ✓ | `—` | ### `_VerifyPackResult` — [`muse/cli/commands/plumbing/verify_pack.py`](muse/cli/commands/plumbing/verify_pack.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `objects_checked` | `int` | ✓ | `—` | | `snapshots_checked` | `int` | ✓ | `—` | | `commits_checked` | `int` | ✓ | `—` | | `all_ok` | `bool` | ✓ | `—` | | `failures` | `list[_Failure]` | ✓ | `—` | ### `_PartnerRecord` — [`muse/cli/commands/predict.py`](muse/cli/commands/predict.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `co_change_rate` | `float` | ✓ | `—` | | `co_change_commits` | `int` | ✓ | `—` | ### `_PredictJson` — [`muse/cli/commands/predict.py`](muse/cli/commands/predict.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `generated_at` | `str` | ✓ | `—` | | `horizon_commits` | `int` | ✓ | `—` | | `max_commits` | `int` | ✓ | `—` | | `commits_analysed` | `int` | ✓ | `—` | | `truncated` | `bool` | ✓ | `—` | | `predictions` | `list[_PredictionRecord]` | ✓ | `—` | ### `_PredictionRecord` — [`muse/cli/commands/predict.py`](muse/cli/commands/predict.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `score` | `float` | ✓ | `—` | | `confidence` | `str` | ✓ | `—` | | `reasons` | `list[str]` | ✓ | `—` | | `signals` | `_SignalSet` | ✓ | `—` | | `last_changed_commit` | `str` | ✓ | `—` | | `last_changed_date` | `str` | ✓ | `—` | | `top_partners` | `list[_PartnerRecord]` | ✓ | `—` | ### `_SignalSet` — [`muse/cli/commands/predict.py`](muse/cli/commands/predict.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `recency` | `float` | ✓ | `—` | | `frequency` | `float` | ✓ | `—` | | `co_change` | `float` | ✓ | `—` | | `sig_instability` | `float` | ✓ | `—` | | `module_velocity` | `float` | ✓ | `—` | ### `_PullJson` — [`muse/cli/commands/pull.py`](muse/cli/commands/pull.py) Stable JSON schema emitted by ``muse pull --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `remote` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `local_branch` | `str` | ✓ | `—` | | `commits_received` | `int` | ✓ | `—` | | `objects_written` | `int` | ✓ | `—` | | `head` | `str | None` | ✓ | `—` | | `conflict_paths` | `list[str]` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_PushJson` — [`muse/cli/commands/push.py`](muse/cli/commands/push.py) Stable JSON schema for push output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `remote` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `head` | `str | None` | ✓ | `—` | | `commits_sent` | `int` | ✓ | `—` | | `objects_sent` | `int` | ✓ | `—` | | `force` | `bool` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_RebaseDryRunCommitJson` — [`muse/cli/commands/rebase.py`](muse/cli/commands/rebase.py) One entry in the ``--dry-run`` commits list. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_RebaseDryRunJson` — [`muse/cli/commands/rebase.py`](muse/cli/commands/rebase.py) JSON output for ``muse rebase --dry-run``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `branch` | `str` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `commits` | `list[_RebaseDryRunCommitJson]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | ### `_RebaseResultJson` — [`muse/cli/commands/rebase.py`](muse/cli/commands/rebase.py) JSON output for a completed rebase (normal or squash). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `new_head` | `str | None` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | | `replayed` | `int` | ✓ | `—` | | `conflicts` | `list[str]` | ✓ | `—` | ### `_RebaseStatusJson` — [`muse/cli/commands/rebase.py`](muse/cli/commands/rebase.py) JSON output for ``muse rebase --status``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `active` | `bool` | ✓ | `—` | | `original_branch` | `str` | ✓ | `—` | | `original_head` | `str` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `done` | `int` | ✓ | `—` | | `remaining` | `int` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | ### `_ReflogAllJson` — [`muse/cli/commands/reflog.py`](muse/cli/commands/reflog.py) JSON object returned by ``muse reflog --all --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `refs` | `list[str]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | ### `_ReflogEntryJson` — [`muse/cli/commands/reflog.py`](muse/cli/commands/reflog.py) One entry in the JSON reflog output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `index` | `int` | ✓ | `—` | | `new_id` | `str` | ✓ | `—` | | `old_id` | `str` | ✓ | `—` | | `timestamp` | `str` | ✓ | `—` | | `operation` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | ### `_ReflogResultJson` — [`muse/cli/commands/reflog.py`](muse/cli/commands/reflog.py) Top-level JSON object returned by ``muse reflog --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `limit` | `int` | ✓ | `—` | | `entries` | `list[_ReflogEntryJson]` | ✓ | `—` | ### `_ReleaseDeleteJson` — [`muse/cli/commands/release.py`](muse/cli/commands/release.py) JSON output for ``muse release delete``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `was_draft` | `bool` | ✓ | `—` | | `remote_retracted` | `bool` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_ReleasePushJson` — [`muse/cli/commands/release.py`](muse/cli/commands/release.py) JSON output for ``muse release push``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `remote` | `str` | ✓ | `—` | | `release_id` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_RemoteEntryJson` — [`muse/cli/commands/remote.py`](muse/cli/commands/remote.py) Single remote entry in ``muse remote --json`` list output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `tracking` | `str` | ✓ | `—` | | `head` | `str` | ✓ | `—` | ### `_RemoteGetUrlJson` — [`muse/cli/commands/remote.py`](muse/cli/commands/remote.py) JSON schema for ``muse remote get-url``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | ### `_RemoteListJson` — [`muse/cli/commands/remote.py`](muse/cli/commands/remote.py) JSON schema for ``muse remote [--json]``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `remotes` | `list[_RemoteEntryJson]` | ✓ | `—` | ### `_RemoteMutationJson` — [`muse/cli/commands/remote.py`](muse/cli/commands/remote.py) JSON schema for add / remove / rename / set-url subcommands. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `url` | `str | None` | ✓ | `—` | | `old_url` | `str | None` | ✓ | `—` | | `old_name` | `str | None` | ✓ | `—` | | `new_name` | `str | None` | ✓ | `—` | ### `_RemoteStatusJson` — [`muse/cli/commands/remote.py`](muse/cli/commands/remote.py) JSON schema for ``muse remote status``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `remote` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `server_root` | `str` | ✓ | `—` | | `reachable` | `bool` | ✓ | `—` | | `http_status` | `int | None` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `tracked_refs` | `_RefMap` | ✓ | `—` | ### `_EditSite` — [`muse/cli/commands/rename.py`](muse/cli/commands/rename.py) A single token replacement site. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `line` | `int` | ✓ | `—` | | `col_start` | `int` | ✓ | `—` | | `col_end` | `int` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `context` | `str` | ✓ | `—` | ### `_RenameResult` — [`muse/cli/commands/rename.py`](muse/cli/commands/rename.py) Machine-readable summary of a rename operation. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `from_address` | `str` | ✓ | `—` | | `to_address` | `str` | ✓ | `—` | | `from_name` | `str` | ✓ | `—` | | `to_name` | `str` | ✓ | `—` | | `scope` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `files_to_modify` | `list[str]` | ✓ | `—` | | `total_edit_sites` | `int` | ✓ | `—` | | `edit_sites` | `list[_EditSite]` | ✓ | `—` | | `warnings` | `list[str]` | ✓ | `—` | ### `_RmResultJson` — [`muse/cli/commands/rm.py`](muse/cli/commands/rm.py) JSON output for ``muse rm``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `removed` | `list[str]` | ✓ | `—` | | `cached` | `bool` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `count` | `int` | ✓ | `—` | ### `_PickResultDict` — [`muse/cli/commands/semantic_cherry_pick.py`](muse/cli/commands/semantic_cherry_pick.py) JSON schema for one cherry-pick result. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | | `old_lines` | `int` | ✓ | `—` | | `new_lines` | `int` | ✓ | `—` | | `diff_lines` | `list[str]` | ✓ | `—` | | `verified` | `bool` | ✓ | `—` | ### `_FileCov` — [`muse/cli/commands/semantic_test_coverage.py`](muse/cli/commands/semantic_test_coverage.py) Aggregated coverage record for one production file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `total_symbols` | `int` | ✓ | `—` | | `covered_symbols` | `int` | ✓ | `—` | | `uncovered_symbols` | `int` | ✓ | `—` | | `coverage_pct` | `float` | ✓ | `—` | | `symbols` | `list[_SymbolCov]` | ✓ | `—` | ### `_FilterSpec` — [`muse/cli/commands/semantic_test_coverage.py`](muse/cli/commands/semantic_test_coverage.py) Filters applied to this analysis run. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str | None` | ✓ | `—` | | `kind` | `str | None` | ✓ | `—` | | `min_coverage` | `int | None` | ✓ | `—` | | `uncovered_only` | `bool` | ✓ | `—` | ### `_JsonOut` — [`muse/cli/commands/semantic_test_coverage.py`](muse/cli/commands/semantic_test_coverage.py) Top-level JSON output structure. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ref` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `depth` | `int` | ✓ | `—` | | `transitive` | `bool` | ✓ | `—` | | `filters` | `_FilterSpec` | ✓ | `—` | | `summary` | `_SummarySpec` | ✓ | `—` | | `files` | `list[_FileCov]` | ✓ | `—` | ### `_SummarySpec` — [`muse/cli/commands/semantic_test_coverage.py`](muse/cli/commands/semantic_test_coverage.py) Aggregate statistics across all production files. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `total_symbols` | `int` | ✓ | `—` | | `covered_symbols` | `int` | ✓ | `—` | | `uncovered_symbols` | `int` | ✓ | `—` | | `coverage_pct` | `float` | ✓ | `—` | | `total_test_functions` | `int` | ✓ | `—` | | `total_production_files` | `int` | ✓ | `—` | ### `_SymbolCov` — [`muse/cli/commands/semantic_test_coverage.py`](muse/cli/commands/semantic_test_coverage.py) Coverage record for a single production symbol. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `covered` | `bool` | ✓ | `—` | | `test_functions` | `list[str]` | ✓ | `—` | ### `_CommitEntryJson` — [`muse/cli/commands/shortlog.py`](muse/cli/commands/shortlog.py) Per-commit entry inside a shortlog group. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `author` | `str | None` | ✓ | `—` | | `agent_id` | `str | None` | ✓ | `—` | | `model_id` | `str | None` | ✓ | `—` | ### `_GroupJson` — [`muse/cli/commands/shortlog.py`](muse/cli/commands/shortlog.py) One group (author / agent / model / branch) in the shortlog JSON. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `key` | `str` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `commits` | `list[_CommitEntryJson]` | ✓ | `—` | ### `_ShortlogJson` — [`muse/cli/commands/shortlog.py`](muse/cli/commands/shortlog.py) Top-level JSON output for ``muse shortlog --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `groups` | `list[_GroupJson]` | ✓ | `—` | ### `_SnapshotCreateJson` — [`muse/cli/commands/snapshot_cmd.py`](muse/cli/commands/snapshot_cmd.py) JSON output for ``muse snapshot create --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `note` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `_SnapshotExportJson` — [`muse/cli/commands/snapshot_cmd.py`](muse/cli/commands/snapshot_cmd.py) JSON output for ``muse snapshot export --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `output` | `str` | ✓ | `—` | | `format` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `size_bytes` | `int` | ✓ | `—` | ### `_SnapshotListItemJson` — [`muse/cli/commands/snapshot_cmd.py`](muse/cli/commands/snapshot_cmd.py) One entry in the ``muse snapshot list --json`` array. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `note` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `_SnapshotShowJson` — [`muse/cli/commands/snapshot_cmd.py`](muse/cli/commands/snapshot_cmd.py) JSON output for ``muse snapshot show --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `note` | `str` | ✓ | `—` | | `manifest` | `Manifest` | ✓ | `—` | ### `ShelfEntry` — [`muse/cli/commands/shelf.py`](muse/cli/commands/shelf.py) A single entry on the shelf. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `delta` | `Manifest` | ✓ | `—` | | `deleted` | `list[str]` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `message` | `str | None` | ✓ | `—` | ### `_BranchOnlyJson` — [`muse/cli/commands/status.py`](muse/cli/commands/status.py) JSON payload for ``--branch-only`` output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `branch` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `upstream` | `str | None` | ✓ | `—` | | `ahead` | `int | None` | ✓ | `—` | | `behind` | `int | None` | ✓ | `—` | | `merge_in_progress` | `bool` | ✓ | `—` | | `merge_from` | `str | None` | ✓ | `—` | | `conflict_count` | `int` | ✓ | `—` | ### `_StagedStatusJson` — [`muse/cli/commands/status.py`](muse/cli/commands/status.py) JSON payload for staged-status (code-domain) output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `branch` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `clean` | `bool` | ✓ | `—` | | `dirty` | `bool` | ✓ | `—` | | `staged` | `_StageEntryMap` | ✓ | `—` | | `unstaged` | `Manifest` | ✓ | `—` | | `untracked` | `list[str]` | ✓ | `—` | | `conflict_paths` | `list[str]` | ✓ | `—` | | `merge_in_progress` | `bool` | ✓ | `—` | | `merge_from` | `str | None` | ✓ | `—` | | `conflict_count` | `int` | ✓ | `—` | | `checkout_interrupted` | `bool` | ✓ | `—` | | `checkout_target` | `str | None` | ✓ | `—` | ### `_StatusJson` — [`muse/cli/commands/status.py`](muse/cli/commands/status.py) JSON payload for full ``muse status --json`` output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `branch` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `upstream` | `str | None` | ✓ | `—` | | `clean` | `bool` | ✓ | `—` | | `dirty` | `bool` | ✓ | `—` | | `ahead` | `int | None` | ✓ | `—` | | `behind` | `int | None` | ✓ | `—` | | `total_changes` | `int` | ✓ | `—` | | `added` | `list[str]` | ✓ | `—` | | `modified` | `list[str]` | ✓ | `—` | | `deleted` | `list[str]` | ✓ | `—` | | `renamed` | `Manifest` | ✓ | `—` | | `conflict_paths` | `list[str]` | ✓ | `—` | | `merge_in_progress` | `bool` | ✓ | `—` | | `merge_from` | `str | None` | ✓ | `—` | | `conflict_count` | `int` | ✓ | `—` | | `checkout_interrupted` | `bool` | ✓ | `—` | | `checkout_target` | `str | None` | ✓ | `—` | ### `_UpstreamInfo` — [`muse/cli/commands/status.py`](muse/cli/commands/status.py) Computed ahead/behind counts for the current branch vs its upstream. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `tracking_ref` | `str` | ✓ | `—` | | `ahead` | `int | None` | ✓ | `—` | | `behind` | `int | None` | ✓ | `—` | | `line` | `str` | ✓ | `—` | ### `_TagJson` — [`muse/cli/commands/tag.py`](muse/cli/commands/tag.py) Stable JSON schema for a single tag entry (list output). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `tag_id` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `namespace` | `str | None` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `_CiGateJson` — [`muse/cli/commands/test_cmd.py`](muse/cli/commands/test_cmd.py) JSON representation of a single CI gate result. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `command` | `list[str]` | ✓ | `—` | | `exit_code` | `int` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `required` | `bool` | ✓ | `—` | | `passed` | `bool` | ✓ | `—` | | `timed_out` | `bool` | ✓ | `—` | | `stdout` | `str` | ✓ | `—` | | `stderr` | `str` | ✓ | `—` | | `warning` | `NotRequired[str]` | ✓ | `—` | ### `_CiJson` — [`muse/cli/commands/test_cmd.py`](muse/cli/commands/test_cmd.py) JSON representation of a full CI run. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `passed` | `bool` | ✓ | `—` | | `timestamp` | `str` | ✓ | `—` | | `total_duration_ms` | `float` | ✓ | `—` | | `gates` | `list[_CiGateJson]` | ✓ | `—` | ### `_FullJson` — [`muse/cli/commands/test_cmd.py`](muse/cli/commands/test_cmd.py) Top-level JSON output for ``muse code test``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `mode` | `str` | ✓ | `—` | | `selection` | `NotRequired[_SelectionJson]` | ✓ | `—` | | `run` | `NotRequired[_RunJson]` | ✓ | `—` | | `results` | `NotRequired[list[_TestResultJson]]` | ✓ | `—` | | `history` | `NotRequired[list[_HistoryJson]]` | ✓ | `—` | | `ci` | `NotRequired[_CiJson]` | ✓ | `—` | | `error` | `NotRequired[str]` | ✓ | `—` | ### `_HistoryJson` — [`muse/cli/commands/test_cmd.py`](muse/cli/commands/test_cmd.py) JSON representation of a HistorySummary. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `total_runs` | `int` | ✓ | `—` | | `pass_count` | `int` | ✓ | `—` | | `fail_count` | `int` | ✓ | `—` | | `skip_count` | `int` | ✓ | `—` | | `flaky` | `bool` | ✓ | `—` | | `avg_duration_ms` | `float` | ✓ | `—` | | `last_outcome` | `str | None` | ✓ | `—` | | `last_run_timestamp` | `str | None` | ✓ | `—` | | `fail_streak` | `int` | ✓ | `—` | ### `_RunJson` — [`muse/cli/commands/test_cmd.py`](muse/cli/commands/test_cmd.py) JSON representation of the test execution phase. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `run_id` | `str` | ✓ | `—` | | `exit_code` | `int` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `passed` | `int` | ✓ | `—` | | `failed` | `int` | ✓ | `—` | | `errored` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | | `timed_out` | `bool` | ✓ | `—` | | `json_report_available` | `bool` | ✓ | `—` | ### `_SelectionJson` — [`muse/cli/commands/test_cmd.py`](muse/cli/commands/test_cmd.py) JSON representation of the test-selection phase. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `changed_addresses` | `list[str]` | ✓ | `—` | | `covered_addresses` | `list[str]` | ✓ | `—` | | `uncovered_addresses` | `list[str]` | ✓ | `—` | | `coverage_fraction` | `float` | ✓ | `—` | | `fallback_used` | `bool` | ✓ | `—` | | `targets` | `list[str]` | ✓ | `—` | ### `_TestResultJson` — [`muse/cli/commands/test_cmd.py`](muse/cli/commands/test_cmd.py) Per-test result in JSON output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `outcome` | `str` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `longrepr` | `NotRequired[str]` | ✓ | `—` | ### `_ModuleOut` — [`muse/cli/commands/velocity.py`](muse/cli/commands/velocity.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `module` | `str` | ✓ | `—` | | `current` | `_CounterMap` | ✓ | `—` | | `prior` | `_CounterMap` | ✓ | `—` | | `acceleration` | `int` | ✓ | `—` | | `stagnant_commits` | `int` | ✓ | `—` | ### `_PredictionOut` — [`muse/cli/commands/velocity.py`](muse/cli/commands/velocity.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `module` | `str` | ✓ | `—` | | `score` | `float` | ✓ | `—` | | `frequency` | `int` | ✓ | `—` | | `last_commit_rank` | `int` | ✓ | `—` | ### `_VerifyJson` — [`muse/cli/commands/verify.py`](muse/cli/commands/verify.py) JSON wire format for ``muse verify --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `refs_checked` | `int` | ✓ | `—` | | `commits_checked` | `int` | ✓ | `—` | | `snapshots_checked` | `int` | ✓ | `—` | | `objects_checked` | `int` | ✓ | `—` | | `signatures_checked` | `int` | ✓ | `—` | | `all_ok` | `bool` | ✓ | `—` | | `check_objects` | `bool` | ✓ | `—` | | `branch` | `str | None` | ✓ | `—` | | `fail_fast` | `bool` | ✓ | `—` | | `failures` | `list[VerifyFailure]` | ✓ | `—` | ### `_WorkspaceAddJson` — [`muse/cli/commands/workspace.py`](muse/cli/commands/workspace.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `_WorkspaceMemberJson` — [`muse/cli/commands/workspace.py`](muse/cli/commands/workspace.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `present` | `bool` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `dirty` | `bool` | ✓ | `—` | | `actual_branch` | `str | None` | ✓ | `—` | | `shelf_count` | `int` | ✓ | `—` | | `feature_branches` | `list[str]` | ✓ | `—` | ### `_WorkspaceRemoveJson` — [`muse/cli/commands/workspace.py`](muse/cli/commands/workspace.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `removed` | `bool` | ✓ | `—` | ### `_WorkspaceSyncJson` — [`muse/cli/commands/workspace.py`](muse/cli/commands/workspace.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `dry_run` | `bool` | ✓ | `—` | | `workers` | `int` | ✓ | `—` | | `results` | `list[_WorkspaceSyncResultJson]` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `ok_count` | `int` | ✓ | `—` | | `error_count` | `int` | ✓ | `—` | ### `_WorkspaceSyncResultJson` — [`muse/cli/commands/workspace.py`](muse/cli/commands/workspace.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `ok` | `bool` | ✓ | `—` | ### `_WorkspaceUpdateJson` — [`muse/cli/commands/workspace.py`](muse/cli/commands/workspace.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `_WorktreeAddJson` — [`muse/cli/commands/worktree.py`](muse/cli/commands/worktree.py) JSON output of ``muse worktree add --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | ### `_WorktreeListEntryJson` — [`muse/cli/commands/worktree.py`](muse/cli/commands/worktree.py) One entry in the JSON array from ``muse worktree list --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `is_main` | `bool` | ✓ | `—` | ### `_WorktreePruneJson` — [`muse/cli/commands/worktree.py`](muse/cli/commands/worktree.py) JSON output of ``muse worktree prune --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `pruned` | `list[str]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_WorktreeRemoveJson` — [`muse/cli/commands/worktree.py`](muse/cli/commands/worktree.py) JSON output of ``muse worktree remove --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | ### `HubConfig` — [`muse/cli/config.py`](muse/cli/config.py) ``[hub]`` section in ``.muse/config.toml``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `url` | `str` | ✓ | `—` | ### `LimitsConfig` — [`muse/cli/config.py`](muse/cli/config.py) ``[limits]`` section in ``.muse/config.toml``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `max_walk_commits` | `int` | ✓ | `—` | | `max_ancestors` | `int` | ✓ | `—` | | `max_graph_commits` | `int` | ✓ | `—` | | `shard_prefix_length` | `int` | ✓ | `—` | ### `MuseConfig` — [`muse/cli/config.py`](muse/cli/config.py) Structured view of the entire ``.muse/config.toml`` file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `user` | `UserConfig` | ✓ | `—` | | `hub` | `HubConfig` | ✓ | `—` | | `remotes` | `RemotesMap` | ✓ | `—` | | `domain` | `DomainConfig` | ✓ | `—` | | `limits` | `LimitsConfig` | ✓ | `—` | ### `RemoteConfig` — [`muse/cli/config.py`](muse/cli/config.py) Public-facing remote descriptor returned by :func:`list_remotes`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | ### `RemoteEntry` — [`muse/cli/config.py`](muse/cli/config.py) ``[remotes.]`` section in ``.muse/config.toml``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `url` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `UserConfig` — [`muse/cli/config.py`](muse/cli/config.py) ``[user]`` section in ``.muse/config.toml``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `email` | `str` | ✓ | `—` | | `type` | `str` | ✓ | `—` | ### `AttributesMeta` — [`muse/core/attributes.py`](muse/core/attributes.py) Typed representation of the ``[meta]`` section in ``.museattributes``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `str` | ✓ | `—` | ### `AttributesRuleDict` — [`muse/core/attributes.py`](muse/core/attributes.py) Typed representation of a single ``[[rules]]`` entry. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `dimension` | `str` | ✓ | `—` | | `strategy` | `str` | ✓ | `—` | | `comment` | `str` | ✓ | `—` | | `priority` | `int` | ✓ | `—` | ### `MuseAttributesFile` — [`muse/core/attributes.py`](muse/core/attributes.py) Typed representation of the complete ``.museattributes`` file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `meta` | `AttributesMeta` | ✓ | `—` | | `rules` | `list[AttributesRuleDict]` | ✓ | `—` | ### `BisectStateDict` — [`muse/core/bisect.py`](muse/core/bisect.py) On-disk shape of the bisect state. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bad_id` | `str` | ✓ | `—` | | `good_ids` | `list[str]` | ✓ | `—` | | `skipped_ids` | `list[str]` | ✓ | `—` | | `remaining` | `list[str]` | ✓ | `—` | | `log` | `list[str]` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `symbol_filter` | `str` | ✓ | `—` | ### `CiConfig` — [`muse/core/ci.py`](muse/core/ci.py) Parsed ``.muse/ci.toml`` configuration. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `version` | `int` | ✓ | `—` | | `settings` | `CiSettings` | ✓ | `—` | | `gates` | `list[CiGate]` | ✓ | `—` | ### `CiGate` — [`muse/core/ci.py`](muse/core/ci.py) A single CI gate (one external command). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `command` | `list[str]` | ✓ | `—` | | `timeout_s` | `float` | ✓ | `—` | | `required` | `bool` | ✓ | `—` | ### `CiRunResult` — [`muse/core/ci.py`](muse/core/ci.py) Aggregated result of a full CI run. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `passed` | `bool` | ✓ | `—` | | `gates` | `list[GateResult]` | ✓ | `—` | | `total_duration_ms` | `float` | ✓ | `—` | | `timestamp` | `str` | ✓ | `—` | ### `CiSettings` — [`muse/core/ci.py`](muse/core/ci.py) Global settings section of ``.muse/ci.toml``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `test_budget_s` | `float` | ✓ | `—` | | `workers` | `int` | ✓ | `—` | | `env_allowlist` | `list[str]` | ✓ | `—` | ### `GateResult` — [`muse/core/ci.py`](muse/core/ci.py) Outcome for a single CI gate. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `command` | `list[str]` | ✓ | `—` | | `exit_code` | `int` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `stdout` | `str` | ✓ | `—` | | `stderr` | `str` | ✓ | `—` | | `required` | `bool` | ✓ | `—` | | `passed` | `bool` | ✓ | `—` | | `timed_out` | `bool` | ✓ | `—` | | `warning` | `NotRequired[str]` | ✓ | `—` | ### `_HeartbeatDict` — [`muse/core/coordination.py`](muse/core/coordination.py) JSON-serialisable form of a :class:`Heartbeat`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `reservation_id` | `str` | ✓ | `—` | | `run_id` | `str` | ✓ | `—` | | `last_beat_at` | `str` | ✓ | `—` | | `agent_id` | `str` | ✓ | `—` | ### `_ReleaseDict` — [`muse/core/coordination.py`](muse/core/coordination.py) JSON-serialisable form of a :class:`Release`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `reservation_id` | `str` | ✓ | `—` | | `run_id` | `str` | ✓ | `—` | | `released_at` | `str` | ✓ | `—` | | `reason` | `str` | ✓ | `—` | ### `AWMapDict` — [`muse/core/crdts/aw_map.py`](muse/core/crdts/aw_map.py) Wire format for a complete :class:`AWMap`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `entries` | `list[AWMapEntry]` | ✓ | `—` | | `tombstones` | `list[str]` | ✓ | `—` | ### `AWMapEntry` — [`muse/core/crdts/aw_map.py`](muse/core/crdts/aw_map.py) A single (key, value, token) triple in an :class:`AWMap`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `key` | `str` | ✓ | `—` | | `value` | `str` | ✓ | `—` | | `token` | `str` | ✓ | `—` | ### `GCounterDict` — [`muse/core/crdts/g_counter.py`](muse/core/crdts/g_counter.py) Wire format for a :class:`GCounter` — ``{agent_id: count}``. **Bases:** `TypedDict` _No annotated fields._ ### `LWWValue` — [`muse/core/crdts/lww_register.py`](muse/core/crdts/lww_register.py) Wire format for a :class:`LWWRegister`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `value` | `str` | ✓ | `—` | | `timestamp` | `float` | ✓ | `—` | | `author` | `str` | ✓ | `—` | ### `ORSetDict` — [`muse/core/crdts/or_set.py`](muse/core/crdts/or_set.py) Wire format for a complete :class:`ORSet`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `entries` | `list[ORSetEntry]` | ✓ | `—` | | `tombstones` | `list[str]` | ✓ | `—` | ### `ORSetEntry` — [`muse/core/crdts/or_set.py`](muse/core/crdts/or_set.py) A single (element, token) pair in the OR-Set payload. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `element` | `str` | ✓ | `—` | | `token` | `str` | ✓ | `—` | ### `RGAElement` — [`muse/core/crdts/rga.py`](muse/core/crdts/rga.py) A single element in an :class:`RGA`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `id` | `str` | ✓ | `—` | | `value` | `str` | ✓ | `—` | | `deleted` | `bool` | ✓ | `—` | | `parent_id` | `str | None` | ✓ | `—` | ### `VClockDict` — [`muse/core/crdts/vclock.py`](muse/core/crdts/vclock.py) Wire format for a vector clock — ``{agent_id: event_count}``. **Bases:** `TypedDict` _No annotated fields._ ### `DescribeResult` — [`muse/core/describe.py`](muse/core/describe.py) Result of describing a commit by its nearest tag. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `tag` | `str | None` | ✓ | `—` | | `distance` | `int` | ✓ | `—` | | `short_sha` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `exact` | `bool` | ✓ | `—` | ### `MapInput` — [`muse/core/diff_algorithms/__init__.py`](muse/core/diff_algorithms/__init__.py) Key → content-ID map. Pairs with ``MapSchema``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['map']` | ✓ | `—` | | `entries` | `Manifest` | ✓ | `—` | ### `SequenceInput` — [`muse/core/diff_algorithms/__init__.py`](muse/core/diff_algorithms/__init__.py) Ordered sequence of content IDs. Pairs with ``SequenceSchema``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['sequence']` | ✓ | `—` | | `items` | `list[str]` | ✓ | `—` | ### `SetInput` — [`muse/core/diff_algorithms/__init__.py`](muse/core/diff_algorithms/__init__.py) Unordered set of content IDs. Pairs with ``SetSchema``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['set']` | ✓ | `—` | | `items` | `frozenset[str]` | ✓ | `—` | ### `TensorInput` — [`muse/core/diff_algorithms/__init__.py`](muse/core/diff_algorithms/__init__.py) Flat 1-D numerical array. Pairs with ``TensorSchema``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['tensor']` | ✓ | `—` | | `values` | `list[float]` | ✓ | `—` | ### `TreeInput` — [`muse/core/diff_algorithms/__init__.py`](muse/core/diff_algorithms/__init__.py) Labeled ordered tree. Pairs with ``TreeSchema``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['tree']` | ✓ | `—` | | `root` | `TreeNode` | ✓ | `—` | ### `DocReport` — [`muse/core/doc_extractor.py`](muse/core/doc_extractor.py) Complete documentation report for a set of symbols. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `generated_at` | `str` | ✓ | `—` | | `symbols` | `list[SymbolDoc]` | ✓ | `—` | | `missing` | `list[MissingDocEntry]` | ✓ | `—` | | `stale` | `list[StaleDocEntry]` | ✓ | `—` | | `summary` | `DocSummary` | ✓ | `—` | ### `DocSummary` — [`muse/core/doc_extractor.py`](muse/core/doc_extractor.py) Aggregate documentation health metrics for a :class:`DocReport`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `total_symbols` | `int` | ✓ | `—` | | `public_symbols` | `int` | ✓ | `—` | | `documented` | `int` | ✓ | `—` | | `undocumented` | `int` | ✓ | `—` | | `stale_count` | `int` | ✓ | `—` | | `avg_health` | `float` | ✓ | `—` | | `doc_debt_score` | `float` | ✓ | `—` | ### `MissingDocEntry` — [`muse/core/doc_extractor.py`](muse/core/doc_extractor.py) Summary entry for a public symbol that lacks a docstring. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `SymbolKind` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `caller_count` | `int` | ✓ | `—` | ### `StaleDocEntry` — [`muse/core/doc_extractor.py`](muse/core/doc_extractor.py) Summary entry for a symbol whose docstring may be out of date. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `SymbolKind` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `last_doc_commit` | `str | None` | ✓ | `—` | | `last_impl_commit` | `str | None` | ✓ | `—` | | `signature_changed` | `bool` | ✓ | `—` | | `body_changed` | `bool` | ✓ | `—` | ### `SymbolDoc` — [`muse/core/doc_extractor.py`](muse/core/doc_extractor.py) Fully-assembled documentation record for one symbol. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `qualified_name` | `str` | ✓ | `—` | | `kind` | `SymbolKind` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `lineno` | `int` | ✓ | `—` | | `end_lineno` | `int` | ✓ | `—` | | `signature` | `str` | ✓ | `—` | | `docstring` | `str | None` | ✓ | `—` | | `callers` | `list[str]` | ✓ | `—` | | `callees` | `list[str]` | ✓ | `—` | | `since_commit` | `str | None` | ✓ | `—` | | `since_version` | `str | None` | ✓ | `—` | | `last_changed_commit` | `str | None` | ✓ | `—` | | `last_changed_version` | `str | None` | ✓ | `—` | | `breaking_changes` | `list[str]` | ✓ | `—` | | `linked_tests` | `list[str]` | ✓ | `—` | | `doc_health` | `float` | ✓ | `—` | | `doc_health_reasons` | `list[DocHealthReason]` | ✓ | `—` | ### `ChangelogEntry` — [`muse/core/doc_history.py`](muse/core/doc_history.py) One symbol's entry in a documentation changelog. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `kind` | `SymbolKind` | ✓ | `—` | | `file` | `str` | ✓ | `—` | ### `ChangelogReport` — [`muse/core/doc_history.py`](muse/core/doc_history.py) Structured changelog between two commits or version tags. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `from_ref` | `str` | ✓ | `—` | | `to_ref` | `str` | ✓ | `—` | | `added` | `list[ChangelogEntry]` | ✓ | `—` | | `removed` | `list[ChangelogEntry]` | ✓ | `—` | | `changed` | `list[ChangelogEntry]` | ✓ | `—` | | `breaking` | `list[ChangelogEntry]` | ✓ | `—` | ### `StaleInfo` — [`muse/core/doc_history.py`](muse/core/doc_history.py) Docstring staleness assessment for one symbol. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `is_stale` | `bool` | ✓ | `—` | | `last_doc_commit` | `str | None` | ✓ | `—` | | `last_impl_commit` | `str | None` | ✓ | `—` | | `signature_changed` | `bool` | ✓ | `—` | | `body_changed` | `bool` | ✓ | `—` | ### `SymbolVersionEvent` — [`muse/core/doc_history.py`](muse/core/doc_history.py) One entry in a symbol's version history timeline. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `op` | `str` | ✓ | `—` | | `version` | `str | None` | ✓ | `—` | | `sem_ver_bump` | `str | None` | ✓ | `—` | | `breaking` | `bool` | ✓ | `—` | ### `HubTrustRecord` — [`muse/core/hub_trust.py`](muse/core/hub_trust.py) A single pinned hub entry in ``~/.muse/hub_trust.toml``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `hub_url` | `str` | ✓ | `—` | | `fingerprint` | `str` | ✓ | `—` | | `first_seen` | `str` | ✓ | `—` | | `verified_count` | `int` | ✓ | `—` | ### `IdentityEntry` — [`muse/core/identity.py`](muse/core/identity.py) One authenticated identity, keyed by hub hostname in identity.toml. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `type` | `str` | ✓ | `—` | | `handle` | `str` | ✓ | `—` | | `algorithm` | `str` | ✓ | `—` | | `fingerprint` | `str` | ✓ | `—` | | `hd_path` | `str` | ✓ | `—` | | `capabilities` | `list[str]` | ✓ | `—` | | `provisioned_by` | `str` | ✓ | `—` | ### `DomainSection` — [`muse/core/ignore.py`](muse/core/ignore.py) Patterns for one ignore section (global or a named domain). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `patterns` | `list[str]` | ✓ | `—` | ### `IndexInfoEntry` — [`muse/core/indices.py`](muse/core/indices.py) Status information for one local index — returned by :func:`index_info`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `entries` | `int` | ✓ | `—` | | `updated_at` | `str | None` | ✓ | `—` | ### `_HashOccurrenceDoc` — [`muse/core/indices.py`](muse/core/indices.py) Msgpack document layout for the ``hash_occurrence`` index file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `index` | `str` | ✓ | `—` | | `updated_at` | `str` | ✓ | `—` | | `entries` | `_StringListMap` | ✓ | `—` | ### `_SymbolHistoryDoc` — [`muse/core/indices.py`](muse/core/indices.py) Msgpack document layout for the ``symbol_history`` index file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `index` | `str` | ✓ | `—` | | `updated_at` | `str` | ✓ | `—` | | `entries` | `_EntryMap` | ✓ | `—` | ### `BaseReport` — [`muse/core/invariants.py`](muse/core/invariants.py) Full invariant check report for one commit, domain-agnostic. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `violations` | `list[BaseViolation]` | ✓ | `—` | | `rules_checked` | `int` | ✓ | `—` | | `has_errors` | `bool` | ✓ | `—` | | `has_warnings` | `bool` | ✓ | `—` | ### `BaseViolation` — [`muse/core/invariants.py`](muse/core/invariants.py) A single invariant violation, domain-agnostic. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `rule_name` | `str` | ✓ | `—` | | `severity` | `InvariantSeverity` | ✓ | `—` | | `address` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | ### `MergeStatePayload` — [`muse/core/merge_engine.py`](muse/core/merge_engine.py) JSON-serialisable form of an in-progress merge state. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `base_commit` | `str` | ✓ | `—` | | `ours_commit` | `str` | ✓ | `—` | | `theirs_commit` | `str` | ✓ | `—` | | `conflict_paths` | `list[str]` | ✓ | `—` | | `other_branch` | `str` | ✓ | `—` | ### `OpEntry` — [`muse/core/op_log.py`](muse/core/op_log.py) A single operation in the append-only op log. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op_id` | `str` | ✓ | `—` | | `actor_id` | `str` | ✓ | `—` | | `lamport_ts` | `int` | ✓ | `—` | | `parent_op_ids` | `list[str]` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `domain_op` | `DomainOp` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `intent_id` | `str` | ✓ | `—` | | `reservation_id` | `str` | ✓ | `—` | ### `OpLogCheckpoint` — [`muse/core/op_log.py`](muse/core/op_log.py) A snapshot of the op log state at commit time. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `session_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `lamport_ts` | `int` | ✓ | `—` | | `op_count` | `int` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `ApplyResult` — [`muse/core/mpack.py`](muse/core/mpack.py) Counts returned by :func:`apply_mpack` describing what was written. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commits_written` | `int` | ✓ | `—` | | `snapshots_written` | `int` | ✓ | `—` | | `objects_written` | `int` | ✓ | `—` | | `objects_skipped` | `int` | ✓ | `—` | ### `FetchRequest` — [`muse/core/mpack.py`](muse/core/mpack.py) Body of ``POST {url}/fetch`` — negotiates which commits to transfer. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `want` | `list[str]` | ✓ | `—` | | `have` | `list[str]` | ✓ | `—` | ### `ObjectsChunkResponse` — [`muse/core/mpack.py`](muse/core/mpack.py) Response from ``POST {url}/push/objects`` — one chunk of a chunked push. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `stored` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | ### `MPack` — [`muse/core/mpack.py`](muse/core/mpack.py) The unit of exchange between the Muse CLI and a remote. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commits` | `list[CommitDict]` | ✓ | `—` | | `snapshots` | `list[SnapshotDict]` | ✓ | `—` | | `objects` | `list[ObjectPayload]` | ✓ | `—` | | `tags` | `list[WireTag]` | ✓ | `—` | | `branch_heads` | `BranchHeads` | ✓ | `—` | ### `PushResult` — [`muse/core/mpack.py`](muse/core/mpack.py) Server response after a push attempt. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ok` | `bool` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `branch_heads` | `BranchHeads` | ✓ | `—` | ### `RemoteInfo` — [`muse/core/mpack.py`](muse/core/mpack.py) Repository metadata returned by ``GET {url}/refs``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `branch_heads` | `BranchHeads` | ✓ | `—` | | `default_branch` | `str` | ✓ | `—` | ### `WireTag` — [`muse/core/mpack.py`](muse/core/mpack.py) A tag record serialised for wire transfer inside a :class:`MPack`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `tag_id` | `str` | ✓ | `—` | | `repo_id` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `_ObjectPayloadBase` — [`muse/core/mpack.py`](muse/core/mpack.py) Required fields for every object payload transmitted over MWP. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `object_id` | `str` | ✓ | `—` | | `content` | `bytes` | ✓ | `—` | ### `_WalkResult` — [`muse/core/mpack.py`](muse/core/mpack.py) Cached result of a BFS commit-graph walk. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commits` | `list[CommitRecord]` | ✓ | `—` | | `snapshot_ids` | `set[str]` | ✓ | `—` | | `all_object_ids` | `list[str]` | ✓ | `—` | | `oid_to_path` | `dict[str, str]` | ✓ | `—` | | `missing_snapshots` | `set[str]` | ✓ | `—` | ### `AgentIdentity` — [`muse/core/provenance.py`](muse/core/provenance.py) Structured identity record for a human or AI agent. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `agent_id` | `str` | ✓ | `—` | | `model_id` | `str` | ✓ | `—` | | `toolchain_id` | `str` | ✓ | `—` | | `prompt_hash` | `str` | ✓ | `—` | | `execution_context_hash` | `str` | ✓ | `—` | ### `QueryMatch` — [`muse/core/query_engine.py`](muse/core/query_engine.py) One match returned by a predicate evaluator. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | | `extra` | `Manifest` | ✓ | `—` | | `agent_id` | `str` | ✓ | `—` | | `model_id` | `str` | ✓ | `—` | ### `RebaseProgress` — [`muse/core/rebase.py`](muse/core/rebase.py) Snapshot of rebase progress for ``--status`` output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `active` | `bool` | ✓ | `—` | | `original_branch` | `str` | ✓ | `—` | | `original_head` | `str` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `done` | `int` | ✓ | `—` | | `remaining` | `int` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | ### `RebaseState` — [`muse/core/rebase.py`](muse/core/rebase.py) Serialisable state for an in-progress rebase session. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `original_branch` | `str` | ✓ | `—` | | `original_head` | `str` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `remaining` | `list[str]` | ✓ | `—` | | `completed` | `list[str]` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | ### `CRDTDimensionSpec` — [`muse/core/schema.py`](muse/core/schema.py) Schema for a single dimension that uses CRDT convergent merge semantics. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `crdt_type` | `CRDTPrimitive` | ✓ | `—` | | `independent_merge` | `bool` | ✓ | `—` | ### `DimensionSpec` — [`muse/core/schema.py`](muse/core/schema.py) A named semantic sub-dimension of the domain's state. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `schema` | `ElementSchema` | ✓ | `—` | | `independent_merge` | `bool` | ✓ | `—` | ### `DomainSchema` — [`muse/core/schema.py`](muse/core/schema.py) Complete structural declaration for a domain plugin. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `dimensions` | `list[DimensionSpec]` | ✓ | `—` | | `top_level` | `ElementSchema` | ✓ | `—` | | `merge_mode` | `Literal['three_way', 'crdt']` | ✓ | `—` | | `schema_version` | `str` | ✓ | `—` | ### `MapSchema` — [`muse/core/schema.py`](muse/core/schema.py) Key-value map with known or dynamic keys. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['map']` | ✓ | `—` | | `key_type` | `str` | ✓ | `—` | | `value_schema` | `ElementSchema` | ✓ | `—` | | `identity` | `Literal['by_key']` | ✓ | `—` | ### `SequenceSchema` — [`muse/core/schema.py`](muse/core/schema.py) Ordered sequence of homogeneous elements (LCS-diffable). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['sequence']` | ✓ | `—` | | `element_type` | `str` | ✓ | `—` | | `identity` | `Literal['by_id', 'by_position', 'by_content']` | ✓ | `—` | | `diff_algorithm` | `Literal['lcs', 'myers', 'patience']` | ✓ | `—` | | `alphabet` | `list[str] | None` | ✓ | `—` | ### `SetSchema` — [`muse/core/schema.py`](muse/core/schema.py) Unordered collection of unique elements (set-algebra-diffable). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['set']` | ✓ | `—` | | `element_type` | `str` | ✓ | `—` | | `identity` | `Literal['by_content', 'by_id']` | ✓ | `—` | ### `TensorSchema` — [`muse/core/schema.py`](muse/core/schema.py) N-dimensional numerical array (sparse-numerical-diffable). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['tensor']` | ✓ | `—` | | `dtype` | `Literal['float32', 'float64', 'int8', 'int16', 'int32', 'int64']` | ✓ | `—` | | `rank` | `int` | ✓ | `—` | | `epsilon` | `float` | ✓ | `—` | | `diff_mode` | `Literal['sparse', 'block', 'full']` | ✓ | `—` | ### `TreeSchema` — [`muse/core/schema.py`](muse/core/schema.py) Hierarchical labeled ordered tree (tree-edit-diffable). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['tree']` | ✓ | `—` | | `node_type` | `str` | ✓ | `—` | | `diff_algorithm` | `Literal['zhang_shasha', 'gumtree']` | ✓ | `—` | ### `ApiChangeSummary` — [`muse/core/semver.py`](muse/core/semver.py) A single public-API symbol that was added, removed, or modified. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `language` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `change` | `str` | ✓ | `—` | ### `ChangelogEntry` — [`muse/core/semver.py`](muse/core/semver.py) One commit's contribution to a release changelog. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `sem_ver_bump` | `SemVerBump` | ✓ | `—` | | `breaking_changes` | `list[str]` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `agent_id` | `str` | ✓ | `—` | | `model_id` | `str` | ✓ | `—` | ### `FileHotspot` — [`muse/core/semver.py`](muse/core/semver.py) A file and the number of times it was touched across the release's commits. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file_path` | `str` | ✓ | `—` | | `change_count` | `int` | ✓ | `—` | | `language` | `str` | ✓ | `—` | ### `LanguageStat` — [`muse/core/semver.py`](muse/core/semver.py) File and symbol counts for a single programming language in a snapshot. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `language` | `str` | ✓ | `—` | | `files` | `int` | ✓ | `—` | | `symbols` | `int` | ✓ | `—` | ### `RefactorEventSummary` — [`muse/core/semver.py`](muse/core/semver.py) A single structural refactoring event detected across the release's commits. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str` | ✓ | `—` | | `address` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | ### `SemVerTag` — [`muse/core/semver.py`](muse/core/semver.py) Parsed semantic version components. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `major` | `int` | ✓ | `—` | | `minor` | `int` | ✓ | `—` | | `patch` | `int` | ✓ | `—` | | `pre` | `str` | ✓ | `—` | | `build` | `str` | ✓ | `—` | ### `SemanticReleaseReport` — [`muse/core/semver.py`](muse/core/semver.py) Semantic analysis of a release, computed at push time from the object store. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `languages` | `list[LanguageStat]` | ✓ | `—` | | `total_files` | `int` | ✓ | `—` | | `semantic_files` | `int` | ✓ | `—` | | `total_symbols` | `int` | ✓ | `—` | | `symbols_by_kind` | `list[SymbolKindCount]` | ✓ | `—` | | `files_changed` | `int` | ✓ | `—` | | `api_added` | `list[ApiChangeSummary]` | ✓ | `—` | | `api_removed` | `list[ApiChangeSummary]` | ✓ | `—` | | `api_modified` | `list[ApiChangeSummary]` | ✓ | `—` | | `file_hotspots` | `list[FileHotspot]` | ✓ | `—` | | `refactor_events` | `list[RefactorEventSummary]` | ✓ | `—` | | `breaking_changes` | `list[str]` | ✓ | `—` | | `human_commits` | `int` | ✓ | `—` | | `agent_commits` | `int` | ✓ | `—` | | `unique_agents` | `list[str]` | ✓ | `—` | | `unique_models` | `list[str]` | ✓ | `—` | | `reviewers` | `list[str]` | ✓ | `—` | ### `SymbolKindCount` — [`muse/core/semver.py`](muse/core/semver.py) Count of symbols of a specific kind in a snapshot. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str` | ✓ | `—` | | `count` | `int` | ✓ | `—` | ### `FileCacheEntry` — [`muse/core/stat_cache.py`](muse/core/stat_cache.py) Persisted metadata for a single workspace file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `mtime` | `float` | ✓ | `—` | | `size` | `int` | ✓ | `—` | | `ino` | `int` | ✓ | `—` | | `object_hash` | `str` | ✓ | `—` | | `dimensions` | `_DimensionMap` | ✓ | `—` | ### `_CacheDoc` — [`muse/core/stat_cache.py`](muse/core/stat_cache.py) On-disk msgpack document shape. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `version` | `int` | ✓ | `—` | | `entries` | `_EntryMap` | ✓ | `—` | ### `CommitDict` — [`muse/core/commits.py`](muse/core/commits.py) JSON-serialisable representation of a CommitRecord. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `parent_commit_id` | `str | None` | ✓ | `—` | | `parent2_commit_id` | `str | None` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `metadata` | `Metadata` | ✓ | `—` | | `structured_delta` | `StructuredDelta | None` | ✓ | `—` | | `sem_ver_bump` | `SemVerBump` | ✓ | `—` | | `breaking_changes` | `list[str]` | ✓ | `—` | | `agent_id` | `str` | ✓ | `—` | | `model_id` | `str` | ✓ | `—` | | `toolchain_id` | `str` | ✓ | `—` | | `prompt_hash` | `str` | ✓ | `—` | | `signature` | `str` | ✓ | `—` | | `signer_public_key` | `str` | ✓ | `—` | | `signer_key_id` | `str` | ✓ | `—` | | `reviewed_by` | `list[str]` | ✓ | `—` | | `test_runs` | `int` | ✓ | `—` | ### `CommitReadCorrupt` — [`muse/core/commits.py`](muse/core/commits.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `error` | `str` | ✓ | `—` | ### `CommitReadNotFound` — [`muse/core/commits.py`](muse/core/commits.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | ### `CommitReadOk` — [`muse/core/commits.py`](muse/core/commits.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `commit` | `CommitRecord` | ✓ | `—` | ### `DetachedHead` — [`muse/core/refs.py`](muse/core/refs.py) HEAD points directly to a commit (detached HEAD state). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['commit']` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | ### `ReleaseDict` — [`muse/core/releases.py`](muse/core/releases.py) JSON-serialisable representation of a ReleaseRecord. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `release_id` | `str` | ✓ | `—` | | `repo_id` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `semver` | `SemVerTag` | ✓ | `—` | | `channel` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `title` | `str` | ✓ | `—` | | `body` | `str` | ✓ | `—` | | `changelog` | `list[ChangelogEntry]` | ✓ | `—` | | `agent_id` | `str` | ✓ | `—` | | `model_id` | `str` | ✓ | `—` | | `is_draft` | `bool` | ✓ | `—` | | `gpg_signature` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `SnapshotDict` — [`muse/core/snapshots.py`](muse/core/snapshots.py) JSON-serialisable representation of a SnapshotRecord. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `manifest` | `Manifest` | ✓ | `—` | | `directories` | `list[str]` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `note` | `str` | ✓ | `—` | ### `SnapshotReadCorrupt` — [`muse/core/snapshots.py`](muse/core/snapshots.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `error` | `str` | ✓ | `—` | ### `SnapshotReadNotFound` — [`muse/core/snapshots.py`](muse/core/snapshots.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | ### `SnapshotReadOk` — [`muse/core/snapshots.py`](muse/core/snapshots.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `snapshot` | `SnapshotRecord` | ✓ | `—` | ### `SymbolicHead` — [`muse/core/refs.py`](muse/core/refs.py) HEAD points to a named branch. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['branch']` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `TagDict` — [`muse/core/tags.py`](muse/core/tags.py) JSON-serialisable representation of a TagRecord. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `tag_id` | `str` | ✓ | `—` | | `repo_id` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `WalkResult` — [`muse/core/commits.py`](muse/core/commits.py) Result of a bounded history walk. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commits` | `list[CommitRecord]` | ✓ | `—` | | `truncated` | `bool` | ✓ | `—` | | `count` | `int` | ✓ | `—` | ### `CaseRecord` — [`muse/core/test_history.py`](muse/core/test_history.py) Result of a single test function within a run. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `outcome` | `Outcome` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `symbol_addresses` | `list[str]` | ✓ | `—` | | `longrepr` | `NotRequired[str]` | ✓ | `—` | ### `HistorySummary` — [`muse/core/test_history.py`](muse/core/test_history.py) Per-test-function aggregated history summary. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `total_runs` | `int` | ✓ | `—` | | `pass_count` | `int` | ✓ | `—` | | `fail_count` | `int` | ✓ | `—` | | `skip_count` | `int` | ✓ | `—` | | `flaky` | `bool` | ✓ | `—` | | `avg_duration_ms` | `float` | ✓ | `—` | | `last_outcome` | `Outcome | None` | ✓ | `—` | | `last_run_timestamp` | `str | None` | ✓ | `—` | | `fail_streak` | `int` | ✓ | `—` | ### `RunRecord` — [`muse/core/test_history.py`](muse/core/test_history.py) A single ``muse code test`` invocation. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `run_id` | `str` | ✓ | `—` | | `timestamp` | `str` | ✓ | `—` | | `commit_id` | `str | None` | ✓ | `—` | | `branch` | `str | None` | ✓ | `—` | | `results` | `list[CaseRecord]` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `passed` | `int` | ✓ | `—` | | `failed` | `int` | ✓ | `—` | | `errored` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | ### `_HistoryDoc` — [`muse/core/test_history.py`](muse/core/test_history.py) Top-level msgpack document shape for the history file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `version` | `int` | ✓ | `—` | | `runs` | `list[_RunDoc]` | ✓ | `—` | ### `_MutableSummary` — [`muse/core/test_history.py`](muse/core/test_history.py) Temporary accumulator used inside :func:`summarize`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `outcomes` | `list[Outcome]` | ✓ | `—` | | `durations` | `list[float]` | ✓ | `—` | | `timestamps` | `list[str]` | ✓ | `—` | ### `_RunDoc` — [`muse/core/test_history.py`](muse/core/test_history.py) Msgpack document shape for a single run record. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `run_id` | `str` | ✓ | `—` | | `timestamp` | `str` | ✓ | `—` | | `commit_id` | `str | None` | ✓ | `—` | | `branch` | `str | None` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `passed` | `int` | ✓ | `—` | | `failed` | `int` | ✓ | `—` | | `errored` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | | `results` | `list[_TestCaseDoc]` | ✓ | `—` | ### `_TestCaseDoc` — [`muse/core/test_history.py`](muse/core/test_history.py) Msgpack document shape for a single test-case result. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `outcome` | `str` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `symbol_addresses` | `list[str]` | ✓ | `—` | | `longrepr` | `str` | ✓ | `—` | ### `CaseResult` — [`muse/core/test_runner.py`](muse/core/test_runner.py) Outcome for a single pytest test function. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `outcome` | `Outcome` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `stdout` | `str` | ✓ | `—` | | `stderr` | `str` | ✓ | `—` | | `longrepr` | `NotRequired[str]` | ✓ | `—` | ### `RunConfig` — [`muse/core/test_runner.py`](muse/core/test_runner.py) Configuration for a single ``run_tests`` invocation. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `targets` | `list[str]` | ✓ | `—` | | `workers` | `int` | ✓ | `—` | | `timeout_s` | `float` | ✓ | `—` | | `extra_args` | `list[str]` | ✓ | `—` | | `env_allowlist` | `list[str]` | ✓ | `—` | | `cwd` | `pathlib.Path | None` | ✓ | `—` | | `stream_output` | `bool` | ✓ | `—` | ### `RunResult` — [`muse/core/test_runner.py`](muse/core/test_runner.py) Structured result of a ``run_tests`` call. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `run_id` | `str` | ✓ | `—` | | `targets` | `list[str]` | ✓ | `—` | | `exit_code` | `int` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `results` | `list[CaseResult]` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `passed` | `int` | ✓ | `—` | | `failed` | `int` | ✓ | `—` | | `errored` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | | `timed_out` | `bool` | ✓ | `—` | | `json_report_available` | `bool` | ✓ | `—` | | `stdout` | `str` | ✓ | `—` | | `stderr` | `str` | ✓ | `—` | ### `_FallbackCounts` — [`muse/core/test_runner.py`](muse/core/test_runner.py) Counts parsed from pytest text output when JSON report is unavailable. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `total` | `int` | ✓ | `—` | | `passed` | `int` | ✓ | `—` | | `failed` | `int` | ✓ | `—` | | `errored` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | ### `_ParsedReport` — [`muse/core/test_runner.py`](muse/core/test_runner.py) Parsed content from a pytest JSON report file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `results` | `list[CaseResult]` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `passed` | `int` | ✓ | `—` | | `failed` | `int` | ✓ | `—` | | `errored` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | ### `_PartitionResult` — [`muse/core/test_runner.py`](muse/core/test_runner.py) Result from executing one subprocess partition. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `exit_code` | `int` | ✓ | `—` | | `duration_ms` | `float` | ✓ | `—` | | `timed_out` | `bool` | ✓ | `—` | | `report` | `_ParsedReport | None` | ✓ | `—` | | `stdout` | `str` | ✓ | `—` | | `stderr` | `str` | ✓ | `—` | | `fallback_counts` | `_FallbackCounts | None` | ✓ | `—` | ### `ChangedSymbol` — [`muse/core/test_selection.py`](muse/core/test_selection.py) A symbol that changed between two snapshots or in the working tree. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `change_kind` | `Literal['modified', 'added', 'deleted']` | ✓ | `—` | ### `SelectionResult` — [`muse/core/test_selection.py`](muse/core/test_selection.py) Result of a test-selection pass. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `changed_addresses` | `list[str]` | ✓ | `—` | | `test_targets` | `list[SelectionTarget]` | ✓ | `—` | | `covered_addresses` | `list[str]` | ✓ | `—` | | `uncovered_addresses` | `list[str]` | ✓ | `—` | | `coverage_fraction` | `float` | ✓ | `—` | | `fallback_used` | `bool` | ✓ | `—` | ### `SelectionTarget` — [`muse/core/test_selection.py`](muse/core/test_selection.py) A single pytest-addressable test target to execute. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `node_id` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `reason` | `str` | ✓ | `—` | | `confidence` | `float` | ✓ | `—` | ### `ConfirmObjectsResponse` — [`muse/core/transport.py`](muse/core/transport.py) Response from ``POST {url}/push/objects/confirm`` — MWP Phase 3b. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `registered` | `int` | ✓ | `—` | | `skipped` | `int` | ✓ | `—` | ### `FilterObjectsResult` — [`muse/core/transport.py`](muse/core/transport.py) Structured result from MWP Phase 1 (``POST /filter-objects``). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `missing` | `list[str]` | ✓ | `—` | | `bases` | `dict[str, str]` | ✓ | `—` | ### `NegotiateResponse` — [`muse/core/transport.py`](muse/core/transport.py) Response from ``POST {url}/negotiate`` — MWP Phase 5. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `ack` | `list[str]` | ✓ | `—` | | `common_base` | `str | None` | ✓ | `—` | | `ready` | `bool` | ✓ | `—` | ### `PresignResponse` — [`muse/core/transport.py`](muse/core/transport.py) Response from ``POST {url}/presign`` — MWP Phase 3. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `presigned` | `Manifest` | ✓ | `—` | | `inline` | `list[str]` | ✓ | `—` | ### `_PushPayload` — [`muse/core/transport.py`](muse/core/transport.py) Msgpack-encoded body for ``POST {url}/push``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `mpack` | `MPack` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `force` | `bool` | ✓ | `—` | | `local_head` | `str` | ✓ | `—` | ### `AnnotationSummary` — [`muse/core/type_analysis.py`](muse/core/type_analysis.py) Type-annotation state for one callable symbol. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `return_annotation` | `str` | ✓ | `—` | | `return_is_any` | `bool` | ✓ | `—` | | `params_total` | `int` | ✓ | `—` | | `params_annotated` | `int` | ✓ | `—` | | `params_with_any` | `int` | ✓ | `—` | | `type_score` | `float` | ✓ | `—` | ### `AnyBlastNode` — [`muse/core/type_analysis.py`](muse/core/type_analysis.py) One node in the Any-propagation call graph. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `depth` | `int` | ✓ | `—` | | `any_reason` | `str` | ✓ | `—` | ### `MigrationTarget` — [`muse/core/type_analysis.py`](muse/core/type_analysis.py) A symbol worth typing next, ranked by call-graph ROI. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `caller_count` | `int` | ✓ | `—` | | `type_score` | `float` | ✓ | `—` | | `priority_score` | `float` | ✓ | `—` | ### `TypeConflict` — [`muse/core/type_analysis.py`](muse/core/type_analysis.py) A type-signature mismatch between two snapshots. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `signature_a` | `str` | ✓ | `—` | | `signature_b` | `str` | ✓ | `—` | | `change_kind` | `str` | ✓ | `—` | ### `TypeDriftPoint` — [`muse/core/type_analysis.py`](muse/core/type_analysis.py) Type-health snapshot at one commit. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `coverage_fraction` | `float` | ✓ | `—` | | `any_count` | `int` | ✓ | `—` | | `delta_coverage` | `float` | ✓ | `—` | ### `TypeHealthReport` — [`muse/core/type_analysis.py`](muse/core/type_analysis.py) Aggregate type health for a snapshot. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `total_symbols` | `int` | ✓ | `—` | | `fully_typed` | `int` | ✓ | `—` | | `partially_typed` | `int` | ✓ | `—` | | `untyped` | `int` | ✓ | `—` | | `any_count` | `int` | ✓ | `—` | | `coverage_fraction` | `float` | ✓ | `—` | | `symbols` | `list[AnnotationSummary]` | ✓ | `—` | ### `VerifyFailure` — [`muse/core/verify.py`](muse/core/verify.py) A single integrity failure detected during ``muse verify``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `Literal['ref', 'commit', 'snapshot', 'object', 'signature', 'key_missing']` | ✓ | `—` | | `id` | `str` | ✓ | `—` | | `error` | `str` | ✓ | `—` | ### `VerifyResult` — [`muse/core/verify.py`](muse/core/verify.py) Aggregate result of a full repository integrity walk. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `refs_checked` | `int` | ✓ | `—` | | `commits_checked` | `int` | ✓ | `—` | | `snapshots_checked` | `int` | ✓ | `—` | | `objects_checked` | `int` | ✓ | `—` | | `signatures_checked` | `int` | ✓ | `—` | | `all_ok` | `bool` | ✓ | `—` | | `failures` | `list[VerifyFailure]` | ✓ | `—` | ### `WorkspaceManifestDict` — [`muse/core/workspace.py`](muse/core/workspace.py) Top-level workspace manifest. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `members` | `list[WorkspaceMemberDict]` | ✓ | `—` | ### `WorkspaceMemberDict` — [`muse/core/workspace.py`](muse/core/workspace.py) One entry in the workspace manifest. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `WorkspaceSyncResult` — [`muse/core/workspace.py`](muse/core/workspace.py) Result of syncing one workspace member. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | ### `WorktreeRecord` — [`muse/core/worktree.py`](muse/core/worktree.py) Persisted metadata for a linked worktree. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | ### `WorktreeStatusResult` — [`muse/core/worktree.py`](muse/core/worktree.py) Machine-readable status of a single worktree. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `present` | `bool` | ✓ | `—` | | `is_main` | `bool` | ✓ | `—` | ### `CRDTSnapshotManifest` — [`muse/domain.py`](muse/domain.py) Extended snapshot manifest for CRDT-mode plugins. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `files` | `Manifest` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `vclock` | `VectorClock` | ✓ | `—` | | `crdt_state` | `CRDTState` | ✓ | `—` | | `schema_version` | `str` | ✓ | `—` | ### `ConflictDict` — [`muse/domain.py`](muse/domain.py) Serialised form of a :class:`ConflictRecord`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `conflict_type` | `str` | ✓ | `—` | | `ours_summary` | `str` | ✓ | `—` | | `theirs_summary` | `str` | ✓ | `—` | | `addresses` | `list[str]` | ✓ | `—` | ### `DeleteOp` — [`muse/domain.py`](muse/domain.py) An element was removed from a collection. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `Literal['delete']` | ✓ | `—` | | `address` | `DomainAddress` | ✓ | `—` | | `position` | `int | None` | ✓ | `—` | | `content_id` | `str` | ✓ | `—` | | `content_summary` | `str` | ✓ | `—` | ### `RenameOp` — [`muse/domain.py`](muse/domain.py) An entity (directory, file, or symbol) was renamed. `address` is the new address; `from_address` is the old address. Rename and content modification are orthogonal: a moved+edited file emits a `RenameOp` followed by a `PatchOp` — two distinct events. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `Literal['rename']` | ✓ | `—` | | `address` | `DomainAddress` | ✓ | `—` | | `from_address` | `DomainAddress` | ✓ | `—` | ### `EntityProvenance` — [`muse/domain.py`](muse/domain.py) Causal metadata attached to ops that create or modify tracked entities. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `entity_id` | `str` | ✓ | `—` | | `origin_op_id` | `str` | ✓ | `—` | | `last_modified_op_id` | `str` | ✓ | `—` | | `created_at_commit` | `str` | ✓ | `—` | | `actor_id` | `str` | ✓ | `—` | ### `FieldMutation` — [`muse/domain.py`](muse/domain.py) The string-serialised before/after of a single field in a :class:`MutateOp`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `old` | `str` | ✓ | `—` | | `new` | `str` | ✓ | `—` | ### `InsertOp` — [`muse/domain.py`](muse/domain.py) An element was inserted into a collection. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `Literal['insert']` | ✓ | `—` | | `address` | `DomainAddress` | ✓ | `—` | | `position` | `int | None` | ✓ | `—` | | `content_id` | `str` | ✓ | `—` | | `content_summary` | `str` | ✓ | `—` | ### `MoveOp` — [`muse/domain.py`](muse/domain.py) An element was repositioned within an ordered sequence. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `Literal['move']` | ✓ | `—` | | `address` | `DomainAddress` | ✓ | `—` | | `from_position` | `int` | ✓ | `—` | | `to_position` | `int` | ✓ | `—` | | `content_id` | `str` | ✓ | `—` | ### `MutateOp` — [`muse/domain.py`](muse/domain.py) A named entity's specific fields were updated. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `Literal['mutate']` | ✓ | `—` | | `address` | `DomainAddress` | ✓ | `—` | | `entity_id` | `str` | ✓ | `—` | | `old_content_id` | `str` | ✓ | `—` | | `new_content_id` | `str` | ✓ | `—` | | `fields` | `FieldMutationMap` | ✓ | `—` | | `old_summary` | `str` | ✓ | `—` | | `new_summary` | `str` | ✓ | `—` | | `position` | `int | None` | ✓ | `—` | ### `PatchOp` — [`muse/domain.py`](muse/domain.py) A container element was internally modified. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `Literal['patch']` | ✓ | `—` | | `address` | `DomainAddress` | ✓ | `—` | | `child_ops` | `list[DomainOp]` | ✓ | `—` | | `child_domain` | `str` | ✓ | `—` | | `child_summary` | `str` | ✓ | `—` | ### `ReplaceOp` — [`muse/domain.py`](muse/domain.py) An element's value changed (atomic, leaf-level replacement). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op` | `Literal['replace']` | ✓ | `—` | | `address` | `DomainAddress` | ✓ | `—` | | `position` | `int | None` | ✓ | `—` | | `old_content_id` | `str` | ✓ | `—` | | `new_content_id` | `str` | ✓ | `—` | | `old_summary` | `str` | ✓ | `—` | | `new_summary` | `str` | ✓ | `—` | ### `SnapshotManifest` — [`muse/domain.py`](muse/domain.py) Content-addressed snapshot of domain state. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `files` | `Manifest` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `directories` | `list[str]` | ✓ | `—` | ### `StageStatus` — [`muse/domain.py`](muse/domain.py) Three-bucket view of working-tree state when a stage is active. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `staged` | `StageIndex` | ✓ | `—` | | `unstaged` | `Manifest` | ✓ | `—` | | `untracked` | `list[str]` | ✓ | `—` | ### `StagedEntry` — [`muse/domain.py`](muse/domain.py) One file's staging record inside the code-domain stage index. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `object_id` | `str` | ✓ | `—` | | `mode` | `Literal['A', 'M', 'D']` | ✓ | `—` | | `staged_at` | `str` | ✓ | `—` | ### `StructuredDelta` — [`muse/domain.py`](muse/domain.py) Rich, composable delta between two domain snapshots. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `str` | ✓ | `—` | | `ops` | `list[DomainOp]` | ✓ | `—` | | `summary` | `str` | ✓ | `—` | | `sem_ver_bump` | `SemVerBump` | ✓ | `—` | | `breaking_changes` | `list[str]` | ✓ | `—` | ### `CodeViolation` — [`muse/plugins/code/_invariants.py`](muse/plugins/code/_invariants.py) A code invariant violation with precise source location. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `rule_name` | `str` | ✓ | `—` | | `severity` | `InvariantSeverity` | ✓ | `—` | | `address` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `symbol` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | ### `_FileData` — [`muse/plugins/code/_invariants.py`](muse/plugins/code/_invariants.py) All AST-derived data for one Python file, derived from a single parse. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `raw_module_imports` | `list[str]` | ✓ | `—` | | `from_module` | `list[str]` | ✓ | `—` | | `from_name` | `list[str]` | ✓ | `—` | | `top_level_fns` | `list[str]` | ✓ | `—` | | `top_level_classes` | `list[str]` | ✓ | `—` | | `has_all` | `bool` | ✓ | `—` | | `complexity` | `ComplexityMap` | ✓ | `—` | ### `_InvariantCacheDoc` — [`muse/plugins/code/_invariants.py`](muse/plugins/code/_invariants.py) On-disk document shape for the invariant file cache (msgpack). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `version` | `int` | ✓ | `—` | | `entries` | `FileDataMap` | ✓ | `—` | ### `_RuleRequired` — [`muse/plugins/code/_invariants.py`](muse/plugins/code/_invariants.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `severity` | `InvariantSeverity` | ✓ | `—` | | `scope` | `Literal['function', 'file', 'repo', 'global']` | ✓ | `—` | | `rule_type` | `str` | ✓ | `—` | ### `LangSpec` — [`muse/plugins/code/ast_parser.py`](muse/plugins/code/ast_parser.py) Per-language tree-sitter configuration consumed by :class:`TreeSitterAdapter`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `extensions` | `frozenset[str]` | ✓ | `—` | | `module_name` | `str` | ✓ | `—` | | `lang_func` | `str` | ✓ | `—` | | `query_str` | `str` | ✓ | `—` | | `kind_map` | `_KindMap` | ✓ | `—` | | `class_node_types` | `frozenset[str]` | ✓ | `—` | | `class_name_field` | `str` | ✓ | `—` | | `receiver_capture` | `str` | ✓ | `—` | | `async_node_child` | `str` | ✓ | `—` | ### `SymbolRecord` — [`muse/plugins/code/ast_parser.py`](muse/plugins/code/ast_parser.py) Content-addressed record for a single named symbol in source code. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `SymbolKind` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `qualified_name` | `str` | ✓ | `—` | | `content_id` | `str` | ✓ | `—` | | `body_hash` | `str` | ✓ | `—` | | `signature_id` | `str` | ✓ | `—` | | `metadata_id` | `str` | ✓ | `—` | | `canonical_key` | `str` | ✓ | `—` | | `lineno` | `int` | ✓ | `—` | | `end_lineno` | `int` | ✓ | `—` | ### `CodeManifest` — [`muse/plugins/code/manifest.py`](muse/plugins/code/manifest.py) Complete hierarchical manifest for one code snapshot. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `manifest_hash` | `str` | ✓ | `—` | | `packages` | `list[PackageManifest]` | ✓ | `—` | | `total_files` | `int` | ✓ | `—` | | `semantic_files` | `int` | ✓ | `—` | | `total_symbols` | `int` | ✓ | `—` | ### `FileEntry` — [`muse/plugins/code/manifest.py`](muse/plugins/code/manifest.py) Metadata for a single source file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `content_hash` | `str` | ✓ | `—` | | `ast_hash` | `str` | ✓ | `—` | | `language` | `str` | ✓ | `—` | | `symbol_count` | `int` | ✓ | `—` | | `size_bytes` | `int` | ✓ | `—` | ### `ManifestFileDiff` — [`muse/plugins/code/manifest.py`](muse/plugins/code/manifest.py) Change record from :func:`diff_manifests` for one file. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `change` | `str` | ✓ | `—` | | `old_hash` | `str` | ✓ | `—` | | `new_hash` | `str` | ✓ | `—` | | `old_ast_hash` | `str` | ✓ | `—` | | `new_ast_hash` | `str` | ✓ | `—` | | `semantic_change` | `bool` | ✓ | `—` | ### `ModuleManifest` — [`muse/plugins/code/manifest.py`](muse/plugins/code/manifest.py) Manifest for one source file (module). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `module_path` | `str` | ✓ | `—` | | `content_hash` | `str` | ✓ | `—` | | `ast_hash` | `str` | ✓ | `—` | | `language` | `str` | ✓ | `—` | | `symbol_count` | `int` | ✓ | `—` | ### `PackageManifest` — [`muse/plugins/code/manifest.py`](muse/plugins/code/manifest.py) Directory-level grouping of modules. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `package` | `str` | ✓ | `—` | | `package_hash` | `str` | ✓ | `—` | | `modules` | `list[ModuleManifest]` | ✓ | `—` | | `total_files` | `int` | ✓ | `—` | | `semantic_files` | `int` | ✓ | `—` | ### `StageIndex` — [`muse/plugins/code/stage.py`](muse/plugins/code/stage.py) Full contents of the stage index (msgpack-encoded on disk). **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `version` | `int` | ✓ | `—` | | `entries` | `StagedFileMap` | ✓ | `—` | ### `StagedEntry` — [`muse/plugins/code/stage.py`](muse/plugins/code/stage.py) One file's staging record. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `object_id` | `str` | ✓ | `—` | | `mode` | `Literal['A', 'M', 'D']` | ✓ | `—` | | `staged_at` | `str` | ✓ | `—` | ### `BarDensity` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) Note density for one bar. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bar` | `int` | ✓ | `—` | | `note_count` | `int` | ✓ | `—` | | `notes_per_beat` | `float` | ✓ | `—` | ### `BarTension` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) Harmonic tension for one bar. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bar` | `int` | ✓ | `—` | | `tension` | `float` | ✓ | `—` | | `label` | `str` | ✓ | `—` | ### `Cadence` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) A detected cadence at a phrase boundary. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bar` | `int` | ✓ | `—` | | `cadence_type` | `str` | ✓ | `—` | | `from_chord` | `str` | ✓ | `—` | | `to_chord` | `str` | ✓ | `—` | ### `ContourAnalysis` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) Melodic contour shape and statistics. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `shape` | `str` | ✓ | `—` | | `intervals` | `list[int]` | ✓ | `—` | | `range_semitones` | `int` | ✓ | `—` | | `direction_changes` | `int` | ✓ | `—` | | `avg_interval_size` | `float` | ✓ | `—` | | `highest_pitch` | `str` | ✓ | `—` | | `lowest_pitch` | `str` | ✓ | `—` | ### `Motif` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) A recurring melodic interval pattern. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `id` | `int` | ✓ | `—` | | `interval_pattern` | `list[int]` | ✓ | `—` | | `occurrences` | `int` | ✓ | `—` | | `bars` | `list[int]` | ✓ | `—` | | `first_pitch` | `str` | ✓ | `—` | ### `RhythmAnalysis` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) Summary of rhythmic properties. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `total_notes` | `int` | ✓ | `—` | | `bars` | `int` | ✓ | `—` | | `notes_per_bar_avg` | `float` | ✓ | `—` | | `syncopation_score` | `float` | ✓ | `—` | | `quantization_score` | `float` | ✓ | `—` | | `swing_ratio` | `float` | ✓ | `—` | | `dominant_subdivision` | `str` | ✓ | `—` | ### `ScaleMatch` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) Best-fit scale result. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `root` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `confidence` | `float` | ✓ | `—` | | `out_of_scale_notes` | `int` | ✓ | `—` | ### `TempoEstimate` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) Estimated tempo from note onset spacing. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `estimated_bpm` | `float` | ✓ | `—` | | `ticks_per_beat` | `int` | ✓ | `—` | | `confidence` | `str` | ✓ | `—` | | `method` | `str` | ✓ | `—` | ### `VoiceLeadingIssue` — [`muse/plugins/midi/_analysis.py`](muse/plugins/midi/_analysis.py) A detected voice-leading problem. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bar` | `int` | ✓ | `—` | | `issue_type` | `str` | ✓ | `—` | | `description` | `str` | ✓ | `—` | ### `RGANoteEntry` — [`muse/plugins/midi/_crdt_notes.py`](muse/plugins/midi/_crdt_notes.py) One element in the :class:`MidiRGA` linked list. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `op_id` | `str` | ✓ | `—` | | `actor_id` | `str` | ✓ | `—` | | `note` | `NoteKey` | ✓ | `—` | | `position` | `NotePosition` | ✓ | `—` | | `parent_op_id` | `str | None` | ✓ | `—` | | `tombstone` | `bool` | ✓ | `—` | ### `InvariantReport` — [`muse/plugins/midi/_invariants.py`](muse/plugins/midi/_invariants.py) Full invariant check report for one commit. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `violations` | `list[InvariantViolation]` | ✓ | `—` | | `rules_checked` | `int` | ✓ | `—` | | `has_errors` | `bool` | ✓ | `—` | | `has_warnings` | `bool` | ✓ | `—` | ### `InvariantViolation` — [`muse/plugins/midi/_invariants.py`](muse/plugins/midi/_invariants.py) A single invariant violation record. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `rule_name` | `str` | ✓ | `—` | | `severity` | `Literal['info', 'warning', 'error']` | ✓ | `—` | | `track` | `str` | ✓ | `—` | | `bar` | `int` | ✓ | `—` | | `description` | `str` | ✓ | `—` | | `addresses` | `list[str]` | ✓ | `—` | ### `_InvariantRuleRequired` — [`muse/plugins/midi/_invariants.py`](muse/plugins/midi/_invariants.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `severity` | `Literal['info', 'warning', 'error']` | ✓ | `—` | | `scope` | `Literal['track', 'bar', 'voice_pair', 'global']` | ✓ | `—` | | `rule_type` | `str` | ✓ | `—` | ### `NoteDict` — [`muse/plugins/midi/_midi_query.py`](muse/plugins/midi/_midi_query.py) Serialisable representation of a note for query results. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `pitch` | `int` | ✓ | `—` | | `pitch_class` | `str` | ✓ | `—` | | `velocity` | `int` | ✓ | `—` | | `channel` | `int` | ✓ | `—` | | `beat` | `float` | ✓ | `—` | | `duration_beats` | `float` | ✓ | `—` | ### `QueryMatch` — [`muse/plugins/midi/_midi_query.py`](muse/plugins/midi/_midi_query.py) A single match returned by :func:`run_query`. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `commit_short` | `str` | ✓ | `—` | | `commit_message` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `agent_id` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `track` | `str` | ✓ | `—` | | `bar` | `int` | ✓ | `—` | | `notes` | `list[NoteDict]` | ✓ | `—` | | `chord` | `str` | ✓ | `—` | | `matched_on` | `str` | ✓ | `—` | ### `EntityIndex` — [`muse/plugins/midi/entity.py`](muse/plugins/midi/entity.py) Complete entity index for one track at one commit. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `track_path` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `entities` | `_EntityMap` | ✓ | `—` | ### `EntityIndexEntry` — [`muse/plugins/midi/entity.py`](muse/plugins/midi/entity.py) One entity's record in the per-track entity index. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `content_id` | `str` | ✓ | `—` | | `origin_commit_id` | `str` | ✓ | `—` | | `voice_id` | `str` | ✓ | `—` | ### `_NoteEntityRequired` — [`muse/plugins/midi/entity.py`](muse/plugins/midi/entity.py) Required fields shared with NoteKey. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `pitch` | `int` | ✓ | `—` | | `velocity` | `int` | ✓ | `—` | | `start_tick` | `int` | ✓ | `—` | | `duration_ticks` | `int` | ✓ | `—` | | `channel` | `int` | ✓ | `—` | ### `BarChunk` — [`muse/plugins/midi/manifest.py`](muse/plugins/midi/manifest.py) Descriptor for one bar's worth of note events in a MIDI track. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `bar` | `int` | ✓ | `—` | | `chunk_hash` | `str` | ✓ | `—` | | `note_count` | `int` | ✓ | `—` | | `chord` | `str` | ✓ | `—` | | `pitch_range` | `list[int]` | ✓ | `—` | ### `MusicManifest` — [`muse/plugins/midi/manifest.py`](muse/plugins/midi/manifest.py) Top-level hierarchical manifest for a music snapshot. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `domain` | `Literal['midi']` | ✓ | `—` | | `schema_version` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `files` | `Manifest` | ✓ | `—` | | `tracks` | `_TrackMap` | ✓ | `—` | ### `TrackManifest` — [`muse/plugins/midi/manifest.py`](muse/plugins/midi/manifest.py) Rich metadata descriptor for one MIDI track at a specific snapshot. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `track_id` | `str` | ✓ | `—` | | `file_path` | `str` | ✓ | `—` | | `content_hash` | `str` | ✓ | `—` | | `bars` | `_BarMap` | ✓ | `—` | | `ticks_per_beat` | `int` | ✓ | `—` | | `note_count` | `int` | ✓ | `—` | | `key_guess` | `str` | ✓ | `—` | | `bar_count` | `int` | ✓ | `—` | ### `NoteKey` — [`muse/plugins/midi/midi_diff.py`](muse/plugins/midi/midi_diff.py) Fully-specified MIDI note used as the LCS comparison unit. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `pitch` | `int` | ✓ | `—` | | `velocity` | `int` | ✓ | `—` | | `start_tick` | `int` | ✓ | `—` | | `duration_ticks` | `int` | ✓ | `—` | | `channel` | `int` | ✓ | `—` | ### `_ArchiveJson` — [`tests/test_cmd_archive_hardening.py`](tests/test_cmd_archive_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `format` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `bytes` | `int` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `ref` | `str | None` | ✓ | `—` | ### `_ChallengeResp` — [`tests/test_cmd_auth_keygen_register.py`](tests/test_cmd_auth_keygen_register.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `challengeToken` | `str` | ✓ | `—` | | `isNewKey` | `bool` | ✓ | `—` | | `algorithm` | `str` | ✓ | `—` | ### `_VerifyResp` — [`tests/test_cmd_auth_keygen_register.py`](tests/test_cmd_auth_keygen_register.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `token` | `str` | ✓ | `—` | | `handle` | `str` | ✓ | `—` | | `identityId` | `str` | ✓ | `—` | | `isNewIdentity` | `bool` | ✓ | `—` | | `authMethod` | `str` | ✓ | `—` | ### `_LogJson` — [`tests/test_cmd_bisect_hardening.py`](tests/test_cmd_bisect_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `active` | `bool` | ✓ | `—` | | `entries` | `list[str]` | ✓ | `—` | ### `_ResetJson` — [`tests/test_cmd_bisect_hardening.py`](tests/test_cmd_bisect_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `reset` | `bool` | ✓ | `—` | ### `_RunDoneJson` — [`tests/test_cmd_bisect_hardening.py`](tests/test_cmd_bisect_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `done` | `bool` | ✓ | `—` | | `first_bad` | `str | None` | ✓ | `—` | | `steps_taken` | `int` | ✓ | `—` | ### `_RunStepJson` — [`tests/test_cmd_bisect_hardening.py`](tests/test_cmd_bisect_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `step` | `int` | ✓ | `—` | | `testing` | `str` | ✓ | `—` | | `verdict` | `str` | ✓ | `—` | | `remaining_count` | `int` | ✓ | `—` | | `done` | `bool` | ✓ | `—` | ### `_StepJson` — [`tests/test_cmd_bisect_hardening.py`](tests/test_cmd_bisect_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `done` | `bool` | ✓ | `—` | | `first_bad` | `str | None` | ✓ | `—` | | `next_to_test` | `str | None` | ✓ | `—` | | `remaining_count` | `int` | ✓ | `—` | | `steps_remaining` | `int` | ✓ | `—` | | `verdict` | `str` | ✓ | `—` | | `symbol_changes` | `list[str]` | ✓ | `—` | ### `_BreakageJson` — [`tests/test_cmd_breakage.py`](tests/test_cmd_breakage.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `commit` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `language_filter` | `str | None` | ✓ | `—` | | `path_filter` | `str | None` | ✓ | `—` | | `strict` | `bool` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `issues` | `list[_BreakageIssue]` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `errors` | `int` | ✓ | `—` | | `warnings` | `int` | ✓ | `—` | ### `_CreateOut` — [`tests/test_cmd_bundle_hardening.py`](tests/test_cmd_bundle_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `commits` | `int` | ✓ | `—` | | `objects` | `int` | ✓ | `—` | | `size_bytes` | `int` | ✓ | `—` | | `branches` | `list[str]` | ✓ | `—` | ### `_UnbundleOut` — [`tests/test_cmd_bundle_hardening.py`](tests/test_cmd_bundle_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commits_written` | `int` | ✓ | `—` | | `snapshots_written` | `int` | ✓ | `—` | | `objects_written` | `int` | ✓ | `—` | | `objects_skipped` | `int` | ✓ | `—` | | `refs_updated` | `list[str]` | ✓ | `—` | ### `_VerifyOut` — [`tests/test_cmd_bundle_hardening.py`](tests/test_cmd_bundle_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `objects_checked` | `int` | ✓ | `—` | | `snapshots_checked` | `int` | ✓ | `—` | | `all_ok` | `bool` | ✓ | `—` | | `failures` | `list[str]` | ✓ | `—` | ### `_CheckoutPayload` — [`tests/test_cmd_checkout_symbol.py`](tests/test_cmd_checkout_symbol.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `address` | `str` | ✓ | `—` | | `file` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `restored_from` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `changed` | `bool` | ✓ | `—` | | `appended` | `bool` | ✓ | `—` | | `current_start` | `int` | ✓ | `—` | | `current_end` | `int` | ✓ | `—` | | `historical_line_count` | `int` | ✓ | `—` | | `diff_lines` | `list[str]` | ✓ | `—` | | `verified` | `bool` | ✓ | `—` | | `verified_preview` | `bool` | ✓ | `—` | ### `_CleanOut` — [`tests/test_cmd_clean_hardening.py`](tests/test_cmd_clean_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `removed` | `list[str]` | ✓ | `—` | | `dirs_removed` | `list[str]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_ClonesPayload` — [`tests/test_cmd_clones.py`](tests/test_cmd_clones.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `commit` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `tier` | `str` | ✓ | `—` | | `min_cluster` | `int` | ✓ | `—` | | `kind_filter` | `str | None` | ✓ | `—` | | `language_filter` | `str | None` | ✓ | `—` | | `file_filter` | `str | None` | ✓ | `—` | | `exclude_same_file` | `bool` | ✓ | `—` | | `exact_clone_clusters` | `int` | ✓ | `—` | | `near_clone_clusters` | `int` | ✓ | `—` | | `total_symbols_involved` | `int` | ✓ | `—` | | `file_hotspots` | `list[_HotspotEntry]` | ✓ | `—` | | `clusters` | `list[_ClusterEntry]` | ✓ | `—` | ### `_ClusterEntry` — [`tests/test_cmd_clones.py`](tests/test_cmd_clones.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `tier` | `str` | ✓ | `—` | | `hash` | `str` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `members` | `list[_MemberEntry]` | ✓ | `—` | ### `_HotspotEntry` — [`tests/test_cmd_clones.py`](tests/test_cmd_clones.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `clone_symbols` | `int` | ✓ | `—` | ### `_MemberEntry` — [`tests/test_cmd_clones.py`](tests/test_cmd_clones.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `kind` | `str` | ✓ | `—` | | `language` | `str` | ✓ | `—` | | `body_hash` | `str` | ✓ | `—` | | `signature_id` | `str` | ✓ | `—` | | `content_id` | `str` | ✓ | `—` | ### `_BoundaryEntry` — [`tests/test_cmd_codemap.py`](tests/test_cmd_codemap.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `fan_out` | `int` | ✓ | `—` | | `fan_in` | `int` | ✓ | `—` | ### `_CentralityEntry` — [`tests/test_cmd_codemap.py`](tests/test_cmd_codemap.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `callers` | `int` | ✓ | `—` | ### `_CodemapPayload` — [`tests/test_cmd_codemap.py`](tests/test_cmd_codemap.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `commit` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `language_filter` | `str | None` | ✓ | `—` | | `modules` | `list[_ModuleEntry]` | ✓ | `—` | | `import_cycles` | `list[list[str]]` | ✓ | `—` | | `high_centrality` | `list[_CentralityEntry]` | ✓ | `—` | | `boundary_files` | `list[_BoundaryEntry]` | ✓ | `—` | | `agent_safe_zones` | `list[str]` | ✓ | `—` | ### `_ModuleEntry` — [`tests/test_cmd_codemap.py`](tests/test_cmd_codemap.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `file` | `str` | ✓ | `—` | | `symbol_count` | `int` | ✓ | `—` | | `importers` | `int` | ✓ | `—` | | `imports` | `int` | ✓ | `—` | ### `_GrepMatchOut` — [`tests/test_cmd_content_grep_hardening.py`](tests/test_cmd_content_grep_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `line_number` | `int` | ✓ | `—` | | `text` | `str` | ✓ | `—` | | `context_before` | `list[str]` | ✓ | `—` | | `context_after` | `list[str]` | ✓ | `—` | ### `_GrepOut` — [`tests/test_cmd_content_grep_hardening.py`](tests/test_cmd_content_grep_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `pattern` | `str` | ✓ | `—` | | `total_files_matched` | `int` | ✓ | `—` | | `total_matches` | `int` | ✓ | `—` | | `results` | `list[_GrepResultOut]` | ✓ | `—` | ### `_GrepResultOut` — [`tests/test_cmd_content_grep_hardening.py`](tests/test_cmd_content_grep_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `path` | `str` | ✓ | `—` | | `object_id` | `str` | ✓ | `—` | | `match_count` | `int` | ✓ | `—` | | `matches` | `list[_GrepMatchOut]` | ✓ | `—` | ### `_DescribeOut` — [`tests/test_cmd_describe_hardening.py`](tests/test_cmd_describe_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `tag` | `str | None` | ✓ | `—` | | `distance` | `int` | ✓ | `—` | | `short_sha` | `str` | ✓ | `—` | | `name` | `str` | ✓ | `—` | | `exact` | `bool` | ✓ | `—` | | `repo_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `_GcJson` — [`tests/test_cmd_gc_hardening.py`](tests/test_cmd_gc_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `collected_count` | `int` | ✓ | `—` | | `collected_bytes` | `int` | ✓ | `—` | | `reachable_count` | `int` | ✓ | `—` | | `elapsed_seconds` | `float` | ✓ | `—` | | `grace_period_seconds` | `int` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `collected_ids` | `list[str]` | ✓ | `—` | ### `_PurgePayload` — [`tests/test_cmd_index.py`](tests/test_cmd_index.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `purged` | `list[str]` | ✓ | `—` | | `skipped` | `list[str]` | ✓ | `—` | ### `_RebuildPayload` — [`tests/test_cmd_index.py`](tests/test_cmd_index.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `rebuilt` | `list[str]` | ✓ | `—` | | `symbol_history_addresses` | `int` | ✓ | `—` | | `symbol_history_events` | `int` | ✓ | `—` | | `hash_occurrence_clusters` | `int` | ✓ | `—` | | `hash_occurrence_addresses` | `int` | ✓ | `—` | ### `_StatusEntry` — [`tests/test_cmd_index.py`](tests/test_cmd_index.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `entries` | `int` | ✓ | `—` | | `updated_at` | `str | None` | ✓ | `—` | ### `_InvariantsCliJson` — [`tests/test_cmd_invariants.py`](tests/test_cmd_invariants.py) Shape of the JSON output from ``muse code invariants --json``. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `domain` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `ref` | `str` | ✓ | `—` | | `using_defaults` | `bool` | ✓ | `—` | | `rule_filter` | `str | None` | ✓ | `—` | | `strict` | `bool` | ✓ | `—` | | `rules_checked` | `int` | ✓ | `—` | | `violations_total` | `int` | ✓ | `—` | | `errors` | `int` | ✓ | `—` | | `warnings` | `int` | ✓ | `—` | | `violations` | `list[BaseViolation]` | ✓ | `—` | ### `_DryRunCommitJson` — [`tests/test_cmd_rebase_hardening.py`](tests/test_cmd_rebase_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | ### `_DryRunJson` — [`tests/test_cmd_rebase_hardening.py`](tests/test_cmd_rebase_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `branch` | `str` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `commits` | `list[_DryRunCommitJson]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | ### `_ResultJson` — [`tests/test_cmd_rebase_hardening.py`](tests/test_cmd_rebase_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `new_head` | `str | None` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | | `replayed` | `int` | ✓ | `—` | | `conflicts` | `list[str]` | ✓ | `—` | ### `_StatusJson` — [`tests/test_cmd_rebase_hardening.py`](tests/test_cmd_rebase_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `active` | `bool` | ✓ | `—` | | `original_branch` | `str` | ✓ | `—` | | `original_head` | `str` | ✓ | `—` | | `onto` | `str` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `done` | `int` | ✓ | `—` | | `remaining` | `int` | ✓ | `—` | | `squash` | `bool` | ✓ | `—` | ### `_DeleteJson` — [`tests/test_cmd_release_hardening.py`](tests/test_cmd_release_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `was_draft` | `bool` | ✓ | `—` | | `remote_retracted` | `bool` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_PushJson` — [`tests/test_cmd_release_hardening.py`](tests/test_cmd_release_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `status` | `str` | ✓ | `—` | | `tag` | `str` | ✓ | `—` | | `remote` | `str` | ✓ | `—` | | `release_id` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_ShowJson` — [`tests/test_cmd_release_hardening.py`](tests/test_cmd_release_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `tag` | `str` | ✓ | `—` | | `channel` | `str` | ✓ | `—` | | `commit_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `release_id` | `str` | ✓ | `—` | | `is_draft` | `bool` | ✓ | `—` | ### `_CherryPickPayload` — [`tests/test_cmd_semantic_cherry_pick.py`](tests/test_cmd_semantic_cherry_pick.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `schema_version` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `from_commit` | `str` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | | `results` | `list[_ResultEntry]` | ✓ | `—` | | `applied` | `int` | ✓ | `—` | | `already_current` | `int` | ✓ | `—` | | `failed` | `int` | ✓ | `—` | | `unverified` | `list[str]` | ✓ | `—` | ### `_ResultEntry` — [`tests/test_cmd_semantic_cherry_pick.py`](tests/test_cmd_semantic_cherry_pick.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `address` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `detail` | `str` | ✓ | `—` | | `old_lines` | `int` | ✓ | `—` | | `new_lines` | `int` | ✓ | `—` | | `diff_lines` | `list[str]` | ✓ | `—` | | `verified` | `bool` | ✓ | `—` | ### `_GroupOut` — [`tests/test_cmd_shortlog_hardening.py`](tests/test_cmd_shortlog_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `key` | `str` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `commits` | `list[dict[str, str | None]]` | ✓ | `—` | ### `_ShortlogOut` — [`tests/test_cmd_shortlog_hardening.py`](tests/test_cmd_shortlog_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `groups` | `list[_GroupOut]` | ✓ | `—` | ### `_CreateOut` — [`tests/test_cmd_snapshot_hardening.py`](tests/test_cmd_snapshot_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `note` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `_ExportOut` — [`tests/test_cmd_snapshot_hardening.py`](tests/test_cmd_snapshot_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `output` | `str` | ✓ | `—` | | `format` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `size_bytes` | `int` | ✓ | `—` | ### `_ListItemOut` — [`tests/test_cmd_snapshot_hardening.py`](tests/test_cmd_snapshot_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `note` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | ### `_ShowOut` — [`tests/test_cmd_snapshot_hardening.py`](tests/test_cmd_snapshot_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `created_at` | `str` | ✓ | `—` | | `file_count` | `int` | ✓ | `—` | | `note` | `str` | ✓ | `—` | | `manifest` | `Manifest` | ✓ | `—` | ### `_FailureOut` — [`tests/test_cmd_verify_hardening.py`](tests/test_cmd_verify_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `kind` | `str` | ✓ | `—` | | `id` | `str` | ✓ | `—` | | `error` | `str` | ✓ | `—` | ### `_VerifyOut` — [`tests/test_cmd_verify_hardening.py`](tests/test_cmd_verify_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `repo_id` | `str` | ✓ | `—` | | `refs_checked` | `int` | ✓ | `—` | | `commits_checked` | `int` | ✓ | `—` | | `snapshots_checked` | `int` | ✓ | `—` | | `objects_checked` | `int` | ✓ | `—` | | `signatures_checked` | `int` | ✓ | `—` | | `all_ok` | `bool` | ✓ | `—` | | `check_objects` | `bool` | ✓ | `—` | | `branch` | `str | None` | ✓ | `—` | | `fail_fast` | `bool` | ✓ | `—` | | `failures` | `list[_FailureOut]` | ✓ | `—` | ### `_AddJson` — [`tests/test_cmd_workspace_hardening.py`](tests/test_cmd_workspace_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `_ListMemberJson` — [`tests/test_cmd_workspace_hardening.py`](tests/test_cmd_workspace_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `present` | `bool` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `dirty` | `bool` | ✓ | `—` | | `actual_branch` | `str | None` | ✓ | `—` | | `shelf_count` | `int` | ✓ | `—` | | `feature_branches` | `list[str]` | ✓ | `—` | ### `_RemoveJson` — [`tests/test_cmd_workspace_hardening.py`](tests/test_cmd_workspace_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `removed` | `bool` | ✓ | `—` | ### `_SyncJson` — [`tests/test_cmd_workspace_hardening.py`](tests/test_cmd_workspace_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `dry_run` | `bool` | ✓ | `—` | | `workers` | `int` | ✓ | `—` | | `results` | `list[_SyncResultItemJson]` | ✓ | `—` | | `total` | `int` | ✓ | `—` | | `ok_count` | `int` | ✓ | `—` | | `error_count` | `int` | ✓ | `—` | ### `_SyncResultItemJson` — [`tests/test_cmd_workspace_hardening.py`](tests/test_cmd_workspace_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | | `ok` | `bool` | ✓ | `—` | ### `_UpdateJson` — [`tests/test_cmd_workspace_hardening.py`](tests/test_cmd_workspace_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `url` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | ### `_AddJson` — [`tests/test_cmd_worktree_hardening.py`](tests/test_cmd_worktree_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | ### `_ListEntryJson` — [`tests/test_cmd_worktree_hardening.py`](tests/test_cmd_worktree_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `is_main` | `bool` | ✓ | `—` | ### `_PruneJson` — [`tests/test_cmd_worktree_hardening.py`](tests/test_cmd_worktree_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `pruned` | `list[str]` | ✓ | `—` | | `count` | `int` | ✓ | `—` | | `dry_run` | `bool` | ✓ | `—` | ### `_RemoveJson` — [`tests/test_cmd_worktree_hardening.py`](tests/test_cmd_worktree_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `status` | `str` | ✓ | `—` | ### `_StatusJson` — [`tests/test_cmd_worktree_hardening.py`](tests/test_cmd_worktree_hardening.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `name` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `path` | `str` | ✓ | `—` | | `head_commit` | `str | None` | ✓ | `—` | | `present` | `bool` | ✓ | `—` | | `is_main` | `bool` | ✓ | `—` | ### `_LangEntry` — [`tests/test_code_commands.py`](tests/test_code_commands.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `language` | `str` | ✓ | `—` | | `files` | `int` | ✓ | `—` | | `symbols` | `int` | ✓ | `—` | | `kinds` | `_KindsMap` | ✓ | `—` | ### `_LangsJson` — [`tests/test_code_commands.py`](tests/test_code_commands.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `languages` | `list[_LangEntry]` | ✓ | `—` | ### `_BundleDict` — [`tests/test_integrity_I1_read_verify.py`](tests/test_integrity_I1_read_verify.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `objects` | `list[dict[str, str | bytes]]` | ✓ | `—` | | `snapshots` | `list[_BundleSnapEntry]` | ✓ | `—` | | `commits` | `list[dict[str, str]]` | ✓ | `—` | ### `_BundleSnapEntry` — [`tests/test_integrity_I1_read_verify.py`](tests/test_integrity_I1_read_verify.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `manifest` | `Manifest` | ✓ | `—` | ### `_CommitJson` — [`tests/test_integrity_I7_history_walk.py`](tests/test_integrity_I7_history_walk.py) Shape of a single commit entry in muse log --json. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `branch` | `str` | ✓ | `—` | | `message` | `str` | ✓ | `—` | | `author` | `str` | ✓ | `—` | | `committed_at` | `str` | ✓ | `—` | | `parent_commit_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | | `metadata` | `Manifest` | ✓ | `—` | | `sem_ver_bump` | `str` | ✓ | `—` | ### `_LogOutput` — [`tests/test_integrity_I7_history_walk.py`](tests/test_integrity_I7_history_walk.py) Shape of muse log --json output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `truncated` | `bool` | ✓ | `—` | | `commits` | `list[dict[str, str]]` | ✓ | `—` | ### `_CommitEntry` — [`tests/test_plumbing_verify_pack.py`](tests/test_plumbing_verify_pack.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `commit_id` | `str` | ✓ | `—` | | `snapshot_id` | `str` | ✓ | `—` | ### `_ObjectEntry` — [`tests/test_plumbing_verify_pack.py`](tests/test_plumbing_verify_pack.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `object_id` | `str` | ✓ | `—` | | `content` | `bytes` | ✓ | `—` | ### `_SnapshotEntry` — [`tests/test_plumbing_verify_pack.py`](tests/test_plumbing_verify_pack.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `snapshot_id` | `str` | ✓ | `—` | | `manifest` | `Manifest` | ✓ | `—` | ### `_CheckRefFormatResult` — [`tests/test_security_branch_ref_injection.py`](tests/test_security_branch_ref_injection.py) Shape of muse plumbing check-ref-format --json output. **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `all_valid` | `bool` | ✓ | `—` | | `valid_count` | `int` | ✓ | `—` | | `invalid_count` | `int` | ✓ | `—` | | `results` | `list[dict[str, str | bool | None]]` | ✓ | `—` | | `max_length` | `int` | ✓ | `—` | | `forbidden_chars` | `list[str]` | ✓ | `—` | | `forbidden_patterns` | `list[str]` | ✓ | `—` | | `notes` | `str` | ✓ | `—` | ### `MidiKwargs` — [`tests/test_stress_midi_all_dims.py`](tests/test_stress_midi_all_dims.py) **Bases:** `TypedDict` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `notes` | `list[tuple[int, int, int]]` | ✓ | `—` | | `pitchwheel` | `list[tuple[int, int]]` | ✓ | `—` | | `control_change` | `list[tuple[int, int, int]]` | ✓ | `—` | | `channel_pressure` | `list[tuple[int, int]]` | ✓ | `—` | | `poly_aftertouch` | `list[tuple[int, int, int]]` | ✓ | `—` | | `program_change` | `list[tuple[int, int]]` | ✓ | `—` | | `set_tempo` | `int` | ✓ | `—` | | `time_sig` | `tuple[int, int]` | ✓ | `—` | | `key_sig` | `str` | ✓ | `—` | | `marker` | `str` | ✓ | `—` | | `track_name` | `str` | ✓ | `—` | | `ticks_per_beat` | `int` | ✓ | `—` | ## Protocols ### `InvariantChecker` — [`muse/core/invariants.py`](muse/core/invariants.py) Protocol every domain invariant checker must satisfy. **Bases:** `Protocol` _No annotated fields._ ### `MuseTransport` — [`muse/core/transport.py`](muse/core/transport.py) Protocol for Muse remote transport implementations. **Bases:** `Protocol` _No annotated fields._ ### `_HttpHeaders` — [`muse/core/transport.py`](muse/core/transport.py) Minimal interface for HTTP response headers. **Bases:** `Protocol` _No annotated fields._ ### `_HttpResponse` — [`muse/core/transport.py`](muse/core/transport.py) Structural interface for urllib HTTP response objects. **Bases:** `Protocol` | Field | Type | Required | Default | |-------|------|:--------:|---------| | `headers` | `_HttpHeaders` | ✓ | `—` | ### `CRDTPlugin` — [`muse/domain.py`](muse/domain.py) Optional extension for plugins that want convergent CRDT merge semantics. **Bases:** `MuseDomainPlugin`, `Protocol` _No annotated fields._ ### `MuseDomainPlugin` — [`muse/domain.py`](muse/domain.py) The six interfaces a domain plugin must implement. **Bases:** `Protocol` _No annotated fields._ ### `StagePlugin` — [`muse/domain.py`](muse/domain.py) Optional extension for plugins that support selective commit staging. **Bases:** `MuseDomainPlugin`, `Protocol` _No annotated fields._ ### `StructuredMergePlugin` — [`muse/domain.py`](muse/domain.py) Optional extension for plugins that support operation-level merging. **Bases:** `MuseDomainPlugin`, `Protocol` _No annotated fields._ ### `FrameworkPlugin` — [`muse/plugins/code/_framework.py`](muse/plugins/code/_framework.py) Protocol every framework entry-point plugin must satisfy. **Bases:** `Protocol` _No annotated fields._ ### `LanguageAdapter` — [`muse/plugins/code/ast_parser.py`](muse/plugins/code/ast_parser.py) Protocol every language adapter must implement. **Bases:** `Protocol` _No annotated fields._