fix(types): add BottleSpec.loaded_manifest to satisfy pyright on union type

BottleSpec.manifest is ManifestIndex | Manifest (pre/post _validate()).
Downstream code always runs post-validate so it needs Manifest, but
pyright flagged every .agent/.bottle access. The new loaded_manifest
property asserts isinstance and returns Manifest, giving pyright a
narrowed type without scattering type: ignore everywhere.

Also remove unused Manifest imports from test files and annotate the
_index() helper in test_manifest_agent_git_user.
This commit is contained in:
2026-06-23 02:08:27 +00:00
committed by didericis
parent 32f85256d3
commit a00e98d8d6
16 changed files with 31 additions and 22 deletions
+1 -1
View File
@@ -232,7 +232,7 @@ class PiAgentProvider(AgentProvider):
def provision_skills(self, plan: "BottlePlan", bottle: "Bottle") -> None:
from ...backend.util import host_skill_dir
agent = plan.spec.manifest.agent
agent = plan.spec.loaded_manifest.agent
if not agent.skills:
return
skills_dir = _skills_dir(plan.guest_home)