chore: SAVEPOINT
This commit is contained in:
@@ -16,7 +16,7 @@ from pathlib import Path
|
||||
from ...agent_provider import PROVIDER_TEMPLATES, agent_provision_plan, get_provider
|
||||
from ...backend import BottleSpec
|
||||
from ...env import resolve_env
|
||||
from ...workspace import workspace_plan as resolve_workspace_plan
|
||||
# from ...workspace import workspace_plan as resolve_workspace_plan
|
||||
from ..resolve_common import (
|
||||
merge_provision_env_vars,
|
||||
mint_slug,
|
||||
@@ -30,6 +30,8 @@ from ..resolve_common import (
|
||||
from .bottle_plan import SmolmachinesBottlePlan
|
||||
from .util import smolmachines_bundle_subnet, smolmachines_preflight
|
||||
|
||||
def preflight():
|
||||
smolmachines_preflight()
|
||||
|
||||
def resolve_plan(
|
||||
spec: BottleSpec, *, stage_dir: Path
|
||||
@@ -41,21 +43,19 @@ def resolve_plan(
|
||||
pull. Per-bottle guest env + the TSI allow_cidrs land on the
|
||||
plan for launch to pass straight through to
|
||||
`machine create` flags."""
|
||||
smolmachines_preflight()
|
||||
preflight()
|
||||
|
||||
|
||||
manifest = spec.manifest
|
||||
bottle = manifest.bottle_for(spec.agent_name)
|
||||
provider = bottle.agent_provider
|
||||
provider_obj = get_provider(provider.template)
|
||||
provider_runtime = provider_obj.runtime
|
||||
guest_home = "/home/node"
|
||||
workspace_plan = resolve_workspace_plan(spec, guest_home=guest_home)
|
||||
manifest_bottle = manifest.bottle_for(spec.agent_name)
|
||||
manfiest_agent_provider = manifest_bottle.agent_provider
|
||||
agent_provider = get_provider(manfiest_agent_provider.template)
|
||||
|
||||
slug = mint_slug(spec)
|
||||
write_launch_metadata(slug, spec, compose_project="", backend="smolmachines")
|
||||
|
||||
# ==== smolmachines specific setup ====
|
||||
subnet, gateway, bundle_ip = smolmachines_bundle_subnet(slug)
|
||||
|
||||
# Agent's env: resolve through resolve_env() so ?prompt entries
|
||||
# are prompted and ${HOST_VAR} entries are interpolated — matching
|
||||
# the Docker backend's contract. Forwarded (secret/interpolated)
|
||||
@@ -73,36 +73,30 @@ def resolve_plan(
|
||||
"SSL_CERT_FILE": "/etc/ssl/certs/ca-certificates.crt",
|
||||
"REQUESTS_CA_BUNDLE": "/etc/ssl/certs/ca-certificates.crt",
|
||||
}
|
||||
# ==============
|
||||
|
||||
agent_dockerfile_path = resolve_manifest_dockerfile(manfiest_agent_provider.dockerfile, spec)
|
||||
instance_name = f"bot-bottle-{slug}"
|
||||
|
||||
git_gate_plan = prepare_git_gate(bottle, slug)
|
||||
agent_dir, prompt_file = prepare_agent_state_dir(slug, spec)
|
||||
|
||||
machine_name = f"bot-bottle-{slug}"
|
||||
if provider.template in PROVIDER_TEMPLATES:
|
||||
agent_image_ref = provider_runtime.image
|
||||
else:
|
||||
agent_image_ref = f"bot-bottle-{provider.template}:{slug}"
|
||||
agent_dockerfile_path = str(provider_obj.dockerfile)
|
||||
if provider.dockerfile:
|
||||
agent_image_ref = f"bot-bottle-{provider.template}:{slug}"
|
||||
agent_dockerfile_path = resolve_manifest_dockerfile(provider.dockerfile, spec)
|
||||
agent_provision = agent_provision_plan(
|
||||
template=provider.template,
|
||||
template=manfiest_agent_provider.template,
|
||||
dockerfile=agent_dockerfile_path,
|
||||
state_dir=agent_dir,
|
||||
guest_home=guest_home,
|
||||
guest_home="/home/node", # FIXME: should be coming from the agent plan
|
||||
guest_env=guest_env,
|
||||
forward_host_credentials=provider.forward_host_credentials,
|
||||
auth_token=provider.auth_token,
|
||||
forward_host_credentials=manfiest_agent_provider.forward_host_credentials,
|
||||
auth_token=manfiest_agent_provider.auth_token,
|
||||
host_env=dict(os.environ),
|
||||
trusted_project_path=workspace_plan.workdir,
|
||||
# trusted_project_path=workspace_plan.workdir,
|
||||
label=spec.label,
|
||||
color=spec.color,
|
||||
)
|
||||
agent_provision = merge_provision_env_vars(agent_provision)
|
||||
|
||||
egress_plan = prepare_egress(bottle, slug, agent_provision)
|
||||
supervise_plan = prepare_supervise(bottle, slug)
|
||||
egress_plan = prepare_egress(manifest_bottle, slug, agent_provision)
|
||||
supervise_plan = prepare_supervise(manifest_bottle, slug)
|
||||
git_gate_plan = prepare_git_gate(manifest_bottle, slug)
|
||||
|
||||
return SmolmachinesBottlePlan(
|
||||
spec=spec,
|
||||
@@ -111,7 +105,7 @@ def resolve_plan(
|
||||
bundle_subnet=subnet,
|
||||
bundle_gateway=gateway,
|
||||
bundle_ip=bundle_ip,
|
||||
machine_name=machine_name,
|
||||
machine_name=instance_name,
|
||||
agent_image_ref=agent_image_ref,
|
||||
guest_env=agent_provision.guest_env,
|
||||
prompt_file=prompt_file,
|
||||
@@ -119,5 +113,5 @@ def resolve_plan(
|
||||
egress_plan=egress_plan,
|
||||
supervise_plan=supervise_plan,
|
||||
agent_provision=agent_provision,
|
||||
workspace_plan=workspace_plan,
|
||||
# workspace_plan=workspace_plan,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user