1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! Bootstrap types for [`super::mutations_local::LocalFsStore::ensure_local_environment`].
//!
//! These types are split out from `cli/bootstrap.rs` so the typed verb on
//! `LocalFsStore` can return them without pulling in CLI concerns.
use ;
use cratelocal_pack_bindings;
use StoreError;
/// Whether the bootstrap verb created the env, found it intact, or
/// repaired missing default bindings on an existing env.
///
/// `Healed` carries the slots that were missing and got the default binding
/// inserted. Slots already bound to a non-default descriptor are NOT
/// overwritten — bootstrap only fills *missing* slots, never replaces user
/// intent.
/// Payload for [`super::mutations_local::LocalFsStore::ensure_local_environment`].
///
/// `public_base_url`: when `Some`, persisted on the env's `host_config` ONLY
/// during creation. For `AlreadyExists` and `Healed` outcomes the existing URL
/// is preserved — passing `Some` when the env already exists is rejected with
/// [`StoreError::Conflict`].
/// Walks the five default capability slots and appends a default
/// [`greentic_deploy_spec::EnvPackBinding`] for any slot not already bound on
/// `env`. Slots already bound — regardless of descriptor — are left untouched
/// so user-customized bindings (e.g. an externally-provisioned secrets backend)
/// survive.
///
/// Returns the slots that were appended, in the canonical default order.
/// Empty return means the env already satisfied the A4 invariant.
pub