@intentius/behold 0.15.0 → 0.16.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 +27 -0
- package/dist/cli.js +939 -607
- 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 +64 -156
- package/example-carve/app/package-lock.json +9 -9
- 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 +64 -156
- package/example-k8s/package-lock.json +27 -27
- package/example-k8s/package.json +3 -3
- package/example-writes/package-lock.json +14 -14
- package/example-writes/package.json +3 -3
- package/package.json +3 -3
- package/web/app.js +134 -10
package/AGENTS.md
CHANGED
|
@@ -171,6 +171,33 @@ and nothing else about the run is behold's to decide: a stream that dies leaves
|
|
|
171
171
|
the playhead at the last settled step and says so, and a gate paints as pending
|
|
172
172
|
only when chant's `gateState` query named it.
|
|
173
173
|
|
|
174
|
+
### The executor contract (#165, #61)
|
|
175
|
+
|
|
176
|
+
`.behold.json` may designate which forge deploys an environment:
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{ "executor": { "prod": { "forge": "github", "workflow": "deploy-prod.yml" } } }
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
It designates the committed WORKFLOW, not just the forge: two environments'
|
|
183
|
+
generated pipelines carry identical job ids, so a picker cannot tell them
|
|
184
|
+
apart, and a contract that names prod must not sit on a guess. For a
|
|
185
|
+
designated env, `POST /api/apply` and a committed ApplyOp's `/api/ops/:name/run`
|
|
186
|
+
answer `409 {code: "executor-forge"}`, auto-sync declines out loud, and the
|
|
187
|
+
only deploy is `POST /api/ci/dispatch?env=<env>`, which runs the designated
|
|
188
|
+
workflow through the operator's own `gh` and follows it on the dial. Any
|
|
189
|
+
approval the workflow's environment requires is granted on the forge by a
|
|
190
|
+
GitHub identity behold does not have; the dial links the run's page and offers
|
|
191
|
+
nothing else. Fail-closed: a designation behold cannot honour (a typo'd forge,
|
|
192
|
+
a missing or non-dispatchable workflow, a forge with no trigger here) disables
|
|
193
|
+
Deploy for that env with the reason on `/api/project`'s `executor` block, and
|
|
194
|
+
never falls back to running it here. `/api/project` reports `{forge, workflow,
|
|
195
|
+
ok, reason?}` per designated env.
|
|
196
|
+
|
|
197
|
+
Without a designation, dispatch picks the committed workflow named for the env
|
|
198
|
+
(`chant-components-<env>`, chant ≥ 0.54.0) and refuses a tie on the older
|
|
199
|
+
job-overlap match rather than letting directory order choose.
|
|
200
|
+
|
|
174
201
|
## The operating loop (a strip, a timeline, and a gate that is not the run gate)
|
|
175
202
|
|
|
176
203
|
A project that declares a `ConvergeOp` gets an operator strip on the ops lens:
|