@intentius/behold 0.10.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +76 -1
- package/dist/cli.js +2613 -593
- package/example-argo-estate/app-a/package.json +2 -2
- package/example-argo-estate/app-b/package.json +2 -2
- package/example-argo-estate/control-plane/package.json +2 -2
- package/example-argo-estate/package-lock.json +225 -706
- package/example-carve/README.md +33 -10
- package/example-carve/app/package-lock.json +118 -575
- package/example-carve/app/package.json +2 -2
- package/example-flux-estate/app-a/package.json +2 -2
- package/example-flux-estate/app-b/package.json +2 -2
- package/example-flux-estate/control-plane/package.json +2 -2
- package/example-flux-estate/package-lock.json +225 -706
- package/example-k8s/package-lock.json +234 -715
- package/example-k8s/package.json +3 -3
- package/example-writes/package-lock.json +147 -604
- package/example-writes/package.json +3 -3
- package/package.json +4 -4
- package/web/app.js +682 -77
- package/web/carve-steps.js +132 -2
- package/web/carve-steps.test.js +98 -0
- package/web/index.html +61 -0
- package/web/layout-store.js +4 -4
- package/web/operator.js +236 -0
- package/web/operator.test.js +158 -0
- package/web/run-playhead.js +194 -0
- package/web/run-playhead.test.js +134 -0
- package/web/theme.test.js +35 -0
package/example-carve/README.md
CHANGED
|
@@ -49,7 +49,8 @@ end of the walkthrough has somewhere to land.
|
|
|
49
49
|
|
|
50
50
|
## Bands
|
|
51
51
|
|
|
52
|
-
Real output, from `chant carve advise` at chant 0.44.7
|
|
52
|
+
Real output, from `chant carve advise` (first cut at chant 0.44.7, verified
|
|
53
|
+
identical at 0.52.1). Reproduce it with:
|
|
53
54
|
|
|
54
55
|
```sh
|
|
55
56
|
npm install -D @cdktf/hcl2json # once, anywhere on your PATH resolution
|
|
@@ -119,8 +120,8 @@ chant carve advise --from example-carve/legacy-tf \
|
|
|
119
120
|
|
|
120
121
|
from the repository root, so the `from` field stays a relative path.
|
|
121
122
|
|
|
122
|
-
`app/` pins chant ^0.
|
|
123
|
-
two layers. The advisor only publishes a top-level `version: 1` and
|
|
123
|
+
`app/` pins chant ^0.52.1, and the 0.44.7 floor it grew from was load-bearing,
|
|
124
|
+
not housekeeping, in two layers. The advisor only publishes a top-level `version: 1` and
|
|
124
125
|
per-resource `boundary` edge lists from 0.44.6 (chant#1636) — run the same
|
|
125
126
|
command on 0.44.4 and every score is identical but no resource carries a
|
|
126
127
|
`boundary` field at all, so the Pick step falls back to naming inbound/outbound
|
|
@@ -131,8 +132,8 @@ bucket scores 84 instead of 88 and the report's `patchOnCarve` list names
|
|
|
131
132
|
fold is applied, not just reported (chant#1637), so the emitted bucket actually
|
|
132
133
|
carries `VersioningConfiguration` and `PublicAccessBlockConfiguration` instead
|
|
133
134
|
of leaving them in an "unmapped attributes" comment. The committed report above
|
|
134
|
-
is byte-identical to what 0.44.7 regenerates
|
|
135
|
-
path and its fresh-run path show the same picture.
|
|
135
|
+
is byte-identical to what 0.44.7 regenerates — re-verified at 0.52.1 — which is
|
|
136
|
+
why the demo's fallback path and its fresh-run path show the same picture.
|
|
136
137
|
|
|
137
138
|
## The six beats
|
|
138
139
|
|
|
@@ -162,6 +163,26 @@ Then the box slides out of the Terraform half and into `app/`, beside the log
|
|
|
162
163
|
group and the SSM parameter that made the same trip last month. Around two
|
|
163
164
|
minutes end to end.
|
|
164
165
|
|
|
166
|
+
## What the copy remembers
|
|
167
|
+
|
|
168
|
+
Every beat above writes to `app/carveout/aws_s3_bucket-assets.carve.json` —
|
|
169
|
+
chant's carve state manifest (chant ≥ 0.52.2). `carve emit` creates it, `carve
|
|
170
|
+
bridge` adds its record, `carve apply` adds the ownership marker, and behold
|
|
171
|
+
reads it back on every request without ever writing to it.
|
|
172
|
+
|
|
173
|
+
That is why the walkthrough survives a reload. After Emit, the bucket's card
|
|
174
|
+
stays in its band but repaints in the in-flight blue and reads `emitted — not
|
|
175
|
+
bridged`; after Bridge, `bridged — apply is yours`. Restart the server and it
|
|
176
|
+
still says so. Run `chant carve apply` yourself in the copy and the card leaves
|
|
177
|
+
the Terraform bands for the `app — chant` box, keeping its Terraform address,
|
|
178
|
+
and the panel counts `carved so far — 1 of 12 carved`.
|
|
179
|
+
|
|
180
|
+
`carve apply` is the one beat that has no button — not in the stepper, not on
|
|
181
|
+
the API. It resolves the marker that makes chant the owner of a live resource,
|
|
182
|
+
which is a decision that stays with the person at the terminal. The Handoff
|
|
183
|
+
step echoes the command beside the two `terraform` ones, for the same reason
|
|
184
|
+
and in the same shape.
|
|
185
|
+
|
|
165
186
|
## Two tiers
|
|
166
187
|
|
|
167
188
|
**Offline is the default.** The synthetic `terraform.tfstate` is committed, so
|
|
@@ -180,11 +201,13 @@ it the carved bucket is simply gone from Terraform's world — `0 to destroy`.
|
|
|
180
201
|
The line the tier exists for is "Terraform forgot it, chant adopted it, and it
|
|
181
202
|
never blinked."
|
|
182
203
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
physical-identity read path
|
|
204
|
+
The observe beat is footage now, not caption: after Emit, "▶ watch chant read
|
|
205
|
+
it live" runs `chant lifecycle diff prod --live` in the carveout with the
|
|
206
|
+
endpoint pointed at the scratch Floci, and the bucket reads OBSERVED —
|
|
207
|
+
`EXTERNAL`, ownership `foreign` — while Terraform still owns it. That is
|
|
208
|
+
chant#1647's physical-identity read path (chant ≥ 0.44.12): stack-absent no
|
|
209
|
+
longer means confirmed-absent when the declared `BucketName` names the
|
|
210
|
+
resource precisely.
|
|
188
211
|
|
|
189
212
|
The live tier needs `docker` and `terraform` on PATH, boots its own throwaway
|
|
190
213
|
Floci and deletes it after, and never touches an existing `floci*` container.
|