7b5a798186
test / run tests/run_tests.py (pull_request) Successful in 17s
Lift the file-copying-into-the-running-container step out of
DockerBottleBackend._provision_container into its own class. The
backend now holds a DockerBottleProvisioner instance and delegates
the post-launch provisioning to it.
- BottleProvisioner (abstract) in backend/__init__.py with a
`provision(plan, target) -> str | None` method.
- DockerBottleProvisioner (concrete) in backend/docker/provisioner.py
inheriting from the base, narrowing plan to DockerBottlePlan via
isinstance, and carrying the prompt/skills/SSH/.git copy logic
unchanged.
- DockerBottleBackend keeps a class-level DockerBottleProvisioner()
and calls self._provisioner.provision(plan, container) from launch.
_provision_container method removed.
No behavior change.
33 lines
964 B
Python
33 lines
964 B
Python
"""Docker bottle backend.
|
|
|
|
The bulk of the implementation lives in sibling modules:
|
|
|
|
- util: thin Docker subprocess wrappers
|
|
- network: Docker network plumbing
|
|
- bottle_plan: DockerBottlePlan
|
|
- bottle_cleanup_plan: DockerBottleCleanupPlan
|
|
- bottle: DockerBottle handle
|
|
- provisioner: DockerBottleProvisioner
|
|
- backend: DockerBottleBackend
|
|
|
|
This file only re-exports the public names so
|
|
`from claude_bottle.backend.docker import DockerBottleBackend` keeps
|
|
working.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from .backend import DockerBottleBackend
|
|
from .bottle import DockerBottle
|
|
from .bottle_cleanup_plan import DockerBottleCleanupPlan
|
|
from .bottle_plan import DockerBottlePlan
|
|
from .provisioner import DockerBottleProvisioner
|
|
|
|
__all__ = [
|
|
"DockerBottle",
|
|
"DockerBottleBackend",
|
|
"DockerBottleCleanupPlan",
|
|
"DockerBottlePlan",
|
|
"DockerBottleProvisioner",
|
|
]
|