efb3af4a93
- Add _load_user_plugin: loads AgentProvider subclass from ~/.bot-bottle/contrib/<name>/agent_provider.py; get_provider() checks there first before falling back to built-ins - Add Dockerfile cascade to docker prepare: per-bottle override → manifest dockerfile → user plugin Dockerfile → provider default - Move provision_ca and provision_git from backend-specific provision/ modules to AgentProvider ABC as overridable defaults; delete docker/provision/ca.py, docker/provision/git.py, smolmachines/provision/ca.py, smolmachines/provision/git.py - Add git_gate_insteadof_host/scheme properties to BottlePlan base; SmolmachinesBottlePlan overrides them to return agent_git_gate_host and "http" so provision_git works correctly on both backends - Move SIGKILL retry from smolmachines provision/ca.py into SmolmachinesBottle.exec via _exec_raw helper — all exec calls on smolmachines now transparently retry once on exit 137 - Relax manifest_agent template validation to allow user-defined template names; keep auth_token/forward_host_credentials guards for built-in-only features - Update tests: rewrite test_docker_provision_git_user and test_smolmachines_provision to call provider methods directly; add TestSmolmachinesBottleExec for SIGKILL retry coverage Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
14 lines
554 B
Python
14 lines
554 B
Python
"""Backend-infrastructure provisioners for the smolmachines backend.
|
|
|
|
Per PRD 0050 the per-provider provisioning steps (prompt, skills,
|
|
declarative provision-plan apply, supervise MCP registration) live on
|
|
the `AgentProvider` plugin under `bot_bottle/contrib/`. CA and git
|
|
provisioning also moved to the AgentProvider ABC (with Debian/node
|
|
defaults); user plugins override them for non-standard images.
|
|
|
|
The module left in this subpackage handles the remaining backend-
|
|
specific step:
|
|
|
|
- workspace.py — copy the operator workspace into the guest
|
|
"""
|