@intentius/behold 0.5.0 → 0.7.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/demos.json +9 -0
- package/dist/cli.js +24 -9
- package/example-flux-estate/README.md +41 -0
- package/example-flux-estate/app-a/chant.config.ts +18 -0
- package/example-flux-estate/app-a/manifests/app.yaml +56 -0
- package/example-flux-estate/app-a/package.json +13 -0
- package/example-flux-estate/app-a/src/app.ts +35 -0
- package/example-flux-estate/app-a/tsconfig.json +1 -0
- package/example-flux-estate/app-b/chant.config.ts +20 -0
- package/example-flux-estate/app-b/manifests/app.yaml +54 -0
- package/example-flux-estate/app-b/package.json +13 -0
- package/example-flux-estate/app-b/src/app.ts +37 -0
- package/example-flux-estate/app-b/tsconfig.json +1 -0
- package/example-flux-estate/control-plane/chant.config.ts +19 -0
- package/example-flux-estate/control-plane/package.json +13 -0
- package/example-flux-estate/control-plane/src/flux.ts +51 -0
- package/example-flux-estate/control-plane/tsconfig.json +1 -0
- package/example-flux-estate/package-lock.json +1949 -0
- package/example-flux-estate/package.json +10 -0
- package/example-flux-estate/scripts/estate-down.sh +19 -0
- package/example-flux-estate/scripts/estate-up.sh +61 -0
- package/example-k8s/package-lock.json +43 -40
- package/example-k8s/package.json +4 -4
- package/example-writes/package-lock.json +18 -16
- package/example-writes/package.json +3 -3
- package/package.json +2 -1
- package/web/app.js +10 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Tear the flux-estate demo down: delete the uniquely-named cluster and
|
|
3
|
+
# restore whatever kubectl context was current before estate-up.sh switched it.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
cd "$(dirname "$0")/.."
|
|
6
|
+
|
|
7
|
+
CLUSTER=behold-flux-demo
|
|
8
|
+
STATE="scripts/.prev-context"
|
|
9
|
+
|
|
10
|
+
k3d cluster delete "$CLUSTER" 2>/dev/null || echo "flux-estate demo: no ${CLUSTER} cluster to remove."
|
|
11
|
+
if [ -f "$STATE" ]; then
|
|
12
|
+
prev="$(cat "$STATE")"
|
|
13
|
+
if [ -n "$prev" ] && kubectl config get-contexts -o name 2>/dev/null | grep -qx "$prev"; then
|
|
14
|
+
kubectl config use-context "$prev" >/dev/null
|
|
15
|
+
echo "flux-estate demo: restored kubectl context \"$prev\"."
|
|
16
|
+
fi
|
|
17
|
+
rm -f "$STATE"
|
|
18
|
+
fi
|
|
19
|
+
echo "flux-estate demo: cluster removed."
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Stand up the flux-estate demo (#211): a throwaway single-node k3d cluster,
|
|
3
|
+
# Flux's controllers (applied straight from the pinned release manifest — no
|
|
4
|
+
# flux CLI needed), and the control plane's CRs. From there the reconcilers
|
|
5
|
+
# deploy the app projects out of behold's public repo.
|
|
6
|
+
#
|
|
7
|
+
# Safety, same contract as example-k8s: never touches any OTHER kubeconfig
|
|
8
|
+
# context. Whatever context is current is saved to .prev-context and restored
|
|
9
|
+
# by estate-down.sh; the cluster and its context are uniquely named
|
|
10
|
+
# (behold-flux-demo / k3d-behold-flux-demo).
|
|
11
|
+
#
|
|
12
|
+
# BEHOLD_FLUX_REF (optional): patch the LIVE GitRepository to sync a branch
|
|
13
|
+
# other than main — how a not-yet-merged manifests change is verified. The
|
|
14
|
+
# declared source always says main.
|
|
15
|
+
set -euo pipefail
|
|
16
|
+
cd "$(dirname "$0")/.."
|
|
17
|
+
|
|
18
|
+
CLUSTER=behold-flux-demo
|
|
19
|
+
CONTEXT="k3d-${CLUSTER}"
|
|
20
|
+
STATE="scripts/.prev-context"
|
|
21
|
+
FLUX_MANIFEST="https://github.com/fluxcd/flux2/releases/download/v2.4.0/install.yaml"
|
|
22
|
+
|
|
23
|
+
if ! docker info >/dev/null 2>&1; then
|
|
24
|
+
echo "flux-estate demo: Docker is not running — start Docker and re-run." >&2
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
for bin in k3d kubectl; do
|
|
28
|
+
if ! command -v "$bin" >/dev/null 2>&1; then
|
|
29
|
+
echo "flux-estate demo: $bin is not installed." >&2
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
done
|
|
33
|
+
|
|
34
|
+
if ! k3d cluster list 2>/dev/null | grep -q "^${CLUSTER} "; then
|
|
35
|
+
kubectl config current-context > "$STATE" 2>/dev/null || true
|
|
36
|
+
k3d cluster create "$CLUSTER" --wait
|
|
37
|
+
else
|
|
38
|
+
echo "flux-estate demo: cluster ${CLUSTER} already up — reusing."
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
echo "flux-estate demo: installing Flux controllers (${FLUX_MANIFEST##*/download/})…"
|
|
42
|
+
kubectl --context "$CONTEXT" apply -f "$FLUX_MANIFEST" > /dev/null
|
|
43
|
+
kubectl --context "$CONTEXT" -n flux-system rollout status deploy/source-controller --timeout=180s
|
|
44
|
+
kubectl --context "$CONTEXT" -n flux-system rollout status deploy/kustomize-controller --timeout=180s
|
|
45
|
+
|
|
46
|
+
echo "flux-estate demo: building + applying the control plane's CRs…"
|
|
47
|
+
(cd control-plane && npx chant build src -o dist/control-plane.yaml --format yaml)
|
|
48
|
+
kubectl --context "$CONTEXT" apply -f control-plane/dist/control-plane.yaml
|
|
49
|
+
|
|
50
|
+
if [ -n "${BEHOLD_FLUX_REF:-}" ]; then
|
|
51
|
+
echo "flux-estate demo: syncing branch ${BEHOLD_FLUX_REF} instead of main (BEHOLD_FLUX_REF)"
|
|
52
|
+
kubectl --context "$CONTEXT" -n flux-system patch gitrepository behold --type merge \
|
|
53
|
+
-p "{\"spec\":{\"ref\":{\"branch\":\"${BEHOLD_FLUX_REF}\"}}}"
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
echo "flux-estate demo: waiting for the reconcilers to deploy the apps…"
|
|
57
|
+
kubectl --context "$CONTEXT" -n flux-system wait --for=condition=Ready --timeout=180s gitrepository/behold
|
|
58
|
+
kubectl --context "$CONTEXT" -n flux-system wait --for=condition=Ready --timeout=180s kustomization/app-a kustomization/app-b
|
|
59
|
+
kubectl --context "$CONTEXT" -n app-a rollout status deploy/app-a --timeout=180s
|
|
60
|
+
kubectl --context "$CONTEXT" -n app-b rollout status deploy/app-b --timeout=180s
|
|
61
|
+
echo "flux-estate demo: up — Flux deployed both apps from the repo."
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"": {
|
|
7
7
|
"name": "behold-example-k8s",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@intentius/chant": "^0.
|
|
10
|
-
"@intentius/chant-lexicon-k8s": "^0.
|
|
11
|
-
"@intentius/chant-lexicon-temporal": "^0.
|
|
9
|
+
"@intentius/chant": "^0.44.2",
|
|
10
|
+
"@intentius/chant-lexicon-k8s": "^0.44.2",
|
|
11
|
+
"@intentius/chant-lexicon-temporal": "^0.44.2"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"node_modules/@dagrejs/dagre": {
|
|
@@ -443,9 +443,9 @@
|
|
|
443
443
|
}
|
|
444
444
|
},
|
|
445
445
|
"node_modules/@intentius/chant": {
|
|
446
|
-
"version": "0.
|
|
447
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.
|
|
448
|
-
"integrity": "sha512-
|
|
446
|
+
"version": "0.44.2",
|
|
447
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.2.tgz",
|
|
448
|
+
"integrity": "sha512-qGt/eAteVO6R6UGDEo7QdlRL48lOiTnjYc58OLrxMfDJ1nxzQaDa68H7UnGytApQ1mOdLcEsK60lX8vnYYg0Nw==",
|
|
449
449
|
"license": "Apache-2.0",
|
|
450
450
|
"dependencies": {
|
|
451
451
|
"@dagrejs/dagre": "^3.0.0",
|
|
@@ -461,9 +461,9 @@
|
|
|
461
461
|
}
|
|
462
462
|
},
|
|
463
463
|
"node_modules/@intentius/chant-k8s-client": {
|
|
464
|
-
"version": "0.
|
|
465
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-k8s-client/-/chant-k8s-client-0.
|
|
466
|
-
"integrity": "sha512-
|
|
464
|
+
"version": "0.44.2",
|
|
465
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-k8s-client/-/chant-k8s-client-0.44.2.tgz",
|
|
466
|
+
"integrity": "sha512-97r6hXTwnSw2f2CDFCaBoKOs6J1VHj2l59vTvQ5Q+HFq1XPADilmRAcAq5vbcFFkIZbfbAe4JiRbMls0ATDW2w==",
|
|
467
467
|
"license": "Apache-2.0",
|
|
468
468
|
"optional": true,
|
|
469
469
|
"dependencies": {
|
|
@@ -471,33 +471,36 @@
|
|
|
471
471
|
}
|
|
472
472
|
},
|
|
473
473
|
"node_modules/@intentius/chant-lexicon-k8s": {
|
|
474
|
-
"version": "0.
|
|
475
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-k8s/-/chant-lexicon-k8s-0.
|
|
476
|
-
"integrity": "sha512-
|
|
474
|
+
"version": "0.44.2",
|
|
475
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-k8s/-/chant-lexicon-k8s-0.44.2.tgz",
|
|
476
|
+
"integrity": "sha512-w3OycY5D/dez3J+7L0NjxcEA4AjAVhfZHC9jeawei+vWo2cbN74H8RKRqS3WHdyqiaBWlyiJRuI+8lJxEVSzUA==",
|
|
477
477
|
"license": "Apache-2.0",
|
|
478
478
|
"dependencies": {
|
|
479
479
|
"@types/js-yaml": "^4.0.9",
|
|
480
480
|
"js-yaml": "^4.1.1"
|
|
481
481
|
},
|
|
482
482
|
"optionalDependencies": {
|
|
483
|
-
"@intentius/chant-k8s-client": "^0.
|
|
483
|
+
"@intentius/chant-k8s-client": "^0.44.2"
|
|
484
484
|
},
|
|
485
485
|
"peerDependencies": {
|
|
486
|
-
"@intentius/chant": "^0.
|
|
487
|
-
"typescript": "^5.9.3"
|
|
486
|
+
"@intentius/chant": "^0.44.2",
|
|
487
|
+
"typescript": "^5.9.3",
|
|
488
|
+
"zod": "^4.3.6"
|
|
488
489
|
}
|
|
489
490
|
},
|
|
490
491
|
"node_modules/@intentius/chant-lexicon-temporal": {
|
|
491
|
-
"version": "0.
|
|
492
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.
|
|
493
|
-
"integrity": "sha512-
|
|
492
|
+
"version": "0.44.2",
|
|
493
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.44.2.tgz",
|
|
494
|
+
"integrity": "sha512-0sHR116Z7mDRgJZudNGgITJs4GDwU5fLgOM6ruJ2u1uIehCd1CYGJ1P7nWtetr4FHfM9vn022iLuO194rvkwcA==",
|
|
494
495
|
"license": "Apache-2.0",
|
|
495
496
|
"dependencies": {
|
|
496
|
-
"@temporalio/common": "^1.17.2"
|
|
497
|
+
"@temporalio/common": "^1.17.2",
|
|
498
|
+
"js-yaml": "^4.1.1"
|
|
497
499
|
},
|
|
498
500
|
"peerDependencies": {
|
|
499
|
-
"@intentius/chant": "^0.
|
|
500
|
-
"typescript": "^5.9.3"
|
|
501
|
+
"@intentius/chant": "^0.44.2",
|
|
502
|
+
"typescript": "^5.9.3",
|
|
503
|
+
"zod": "^4.3.6"
|
|
501
504
|
}
|
|
502
505
|
},
|
|
503
506
|
"node_modules/@jsep-plugin/assignment": {
|
|
@@ -727,9 +730,9 @@
|
|
|
727
730
|
}
|
|
728
731
|
},
|
|
729
732
|
"node_modules/bare-fs": {
|
|
730
|
-
"version": "4.
|
|
731
|
-
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.
|
|
732
|
-
"integrity": "sha512-
|
|
733
|
+
"version": "4.8.0",
|
|
734
|
+
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.8.0.tgz",
|
|
735
|
+
"integrity": "sha512-fM+MhCvdQhZ7NV6S95a07gPSqjIYKn6mFaXfx266wN3ajZGl/+1AzH+ubkXQ0fFZvOe2nk9VHkzdYkQE5zMV3Q==",
|
|
733
736
|
"license": "Apache-2.0",
|
|
734
737
|
"optional": true,
|
|
735
738
|
"dependencies": {
|
|
@@ -740,7 +743,7 @@
|
|
|
740
743
|
"fast-fifo": "^1.3.2"
|
|
741
744
|
},
|
|
742
745
|
"engines": {
|
|
743
|
-
"bare": ">=1.
|
|
746
|
+
"bare": ">=1.28.0"
|
|
744
747
|
},
|
|
745
748
|
"peerDependencies": {
|
|
746
749
|
"bare-buffer": "*"
|
|
@@ -787,9 +790,9 @@
|
|
|
787
790
|
}
|
|
788
791
|
},
|
|
789
792
|
"node_modules/bare-url": {
|
|
790
|
-
"version": "2.
|
|
791
|
-
"resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.
|
|
792
|
-
"integrity": "sha512-
|
|
793
|
+
"version": "2.5.1",
|
|
794
|
+
"resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.5.1.tgz",
|
|
795
|
+
"integrity": "sha512-cD5ciQuKlx+eumTCfqbfiL+fhQm+dHbVNB/cX4+d+I/nx4JsVop9VoFEPAs5RJ6I84QR6bZIBjpd2kjDOYeWcg==",
|
|
793
796
|
"license": "Apache-2.0",
|
|
794
797
|
"optional": true,
|
|
795
798
|
"dependencies": {
|
|
@@ -1142,9 +1145,9 @@
|
|
|
1142
1145
|
}
|
|
1143
1146
|
},
|
|
1144
1147
|
"node_modules/ip-address": {
|
|
1145
|
-
"version": "10.
|
|
1146
|
-
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.
|
|
1147
|
-
"integrity": "sha512-
|
|
1148
|
+
"version": "10.4.0",
|
|
1149
|
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz",
|
|
1150
|
+
"integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==",
|
|
1148
1151
|
"license": "MIT",
|
|
1149
1152
|
"optional": true,
|
|
1150
1153
|
"engines": {
|
|
@@ -1162,9 +1165,9 @@
|
|
|
1162
1165
|
}
|
|
1163
1166
|
},
|
|
1164
1167
|
"node_modules/jose": {
|
|
1165
|
-
"version": "6.2.
|
|
1166
|
-
"resolved": "https://registry.npmjs.org/jose/-/jose-6.2.
|
|
1167
|
-
"integrity": "sha512-
|
|
1168
|
+
"version": "6.2.8",
|
|
1169
|
+
"resolved": "https://registry.npmjs.org/jose/-/jose-6.2.8.tgz",
|
|
1170
|
+
"integrity": "sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ==",
|
|
1168
1171
|
"license": "MIT",
|
|
1169
1172
|
"optional": true,
|
|
1170
1173
|
"funding": {
|
|
@@ -1172,9 +1175,9 @@
|
|
|
1172
1175
|
}
|
|
1173
1176
|
},
|
|
1174
1177
|
"node_modules/js-yaml": {
|
|
1175
|
-
"version": "4.3.
|
|
1176
|
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.
|
|
1177
|
-
"integrity": "sha512-
|
|
1178
|
+
"version": "4.3.1",
|
|
1179
|
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz",
|
|
1180
|
+
"integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==",
|
|
1178
1181
|
"funding": [
|
|
1179
1182
|
{
|
|
1180
1183
|
"type": "github",
|
|
@@ -2037,9 +2040,9 @@
|
|
|
2037
2040
|
"optional": true
|
|
2038
2041
|
},
|
|
2039
2042
|
"node_modules/ws": {
|
|
2040
|
-
"version": "8.21.
|
|
2041
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.
|
|
2042
|
-
"integrity": "sha512
|
|
2043
|
+
"version": "8.21.3",
|
|
2044
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
|
|
2045
|
+
"integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
|
|
2043
2046
|
"license": "MIT",
|
|
2044
2047
|
"optional": true,
|
|
2045
2048
|
"engines": {
|
package/example-k8s/package.json
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"name": "behold-example-k8s",
|
|
3
3
|
"private": true,
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "A small nginx Deployment+Service on k3d
|
|
5
|
+
"description": "A small nginx Deployment+Service on k3d \u2014 behold's k3d turnkey demo (#88), the Kubernetes counterpart to Loom-on-Floci.",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "./node_modules/.bin/chant build src --lexicon k8s -o app.yaml"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@intentius/chant": "^0.
|
|
11
|
-
"@intentius/chant-lexicon-k8s": "^0.
|
|
12
|
-
"@intentius/chant-lexicon-temporal": "^0.
|
|
10
|
+
"@intentius/chant": "^0.44.2",
|
|
11
|
+
"@intentius/chant-lexicon-k8s": "^0.44.2",
|
|
12
|
+
"@intentius/chant-lexicon-temporal": "^0.44.2"
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"": {
|
|
7
7
|
"name": "behold-example-writes",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@intentius/chant": "^0.
|
|
10
|
-
"@intentius/chant-lexicon-aws": "^0.
|
|
11
|
-
"@intentius/chant-lexicon-temporal": "^0.
|
|
9
|
+
"@intentius/chant": "^0.44.2",
|
|
10
|
+
"@intentius/chant-lexicon-aws": "^0.44.2",
|
|
11
|
+
"@intentius/chant-lexicon-temporal": "^0.44.2"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"node_modules/@dagrejs/dagre": {
|
|
@@ -443,9 +443,9 @@
|
|
|
443
443
|
}
|
|
444
444
|
},
|
|
445
445
|
"node_modules/@intentius/chant": {
|
|
446
|
-
"version": "0.
|
|
447
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.
|
|
448
|
-
"integrity": "sha512-
|
|
446
|
+
"version": "0.44.2",
|
|
447
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.2.tgz",
|
|
448
|
+
"integrity": "sha512-qGt/eAteVO6R6UGDEo7QdlRL48lOiTnjYc58OLrxMfDJ1nxzQaDa68H7UnGytApQ1mOdLcEsK60lX8vnYYg0Nw==",
|
|
449
449
|
"license": "Apache-2.0",
|
|
450
450
|
"dependencies": {
|
|
451
451
|
"@dagrejs/dagre": "^3.0.0",
|
|
@@ -461,30 +461,32 @@
|
|
|
461
461
|
}
|
|
462
462
|
},
|
|
463
463
|
"node_modules/@intentius/chant-lexicon-aws": {
|
|
464
|
-
"version": "0.
|
|
465
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-aws/-/chant-lexicon-aws-0.
|
|
466
|
-
"integrity": "sha512
|
|
464
|
+
"version": "0.44.2",
|
|
465
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-aws/-/chant-lexicon-aws-0.44.2.tgz",
|
|
466
|
+
"integrity": "sha512-TPlq70LqLB8KRYLup8njKJeLbQyjofVTvQy892HI2RkacyAohhWj65hxIDH7zbEbnONbfJpolxyaicAzDXmnuw==",
|
|
467
467
|
"license": "Apache-2.0",
|
|
468
468
|
"dependencies": {
|
|
469
469
|
"fflate": "^0.8.2",
|
|
470
470
|
"js-yaml": "^4.1.0"
|
|
471
471
|
},
|
|
472
472
|
"peerDependencies": {
|
|
473
|
-
"@intentius/chant": "^0.
|
|
473
|
+
"@intentius/chant": "^0.44.2",
|
|
474
474
|
"typescript": "^5.9.3"
|
|
475
475
|
}
|
|
476
476
|
},
|
|
477
477
|
"node_modules/@intentius/chant-lexicon-temporal": {
|
|
478
|
-
"version": "0.
|
|
479
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.
|
|
480
|
-
"integrity": "sha512-
|
|
478
|
+
"version": "0.44.2",
|
|
479
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.44.2.tgz",
|
|
480
|
+
"integrity": "sha512-0sHR116Z7mDRgJZudNGgITJs4GDwU5fLgOM6ruJ2u1uIehCd1CYGJ1P7nWtetr4FHfM9vn022iLuO194rvkwcA==",
|
|
481
481
|
"license": "Apache-2.0",
|
|
482
482
|
"dependencies": {
|
|
483
|
-
"@temporalio/common": "^1.17.2"
|
|
483
|
+
"@temporalio/common": "^1.17.2",
|
|
484
|
+
"js-yaml": "^4.1.1"
|
|
484
485
|
},
|
|
485
486
|
"peerDependencies": {
|
|
486
|
-
"@intentius/chant": "^0.
|
|
487
|
-
"typescript": "^5.9.3"
|
|
487
|
+
"@intentius/chant": "^0.44.2",
|
|
488
|
+
"typescript": "^5.9.3",
|
|
489
|
+
"zod": "^4.3.6"
|
|
488
490
|
}
|
|
489
491
|
},
|
|
490
492
|
"node_modules/@protobufjs/aspromise": {
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"build": "./node_modules/.bin/chant build src --lexicon aws -o template.json"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@intentius/chant": "^0.
|
|
11
|
-
"@intentius/chant-lexicon-aws": "^0.
|
|
12
|
-
"@intentius/chant-lexicon-temporal": "^0.
|
|
10
|
+
"@intentius/chant": "^0.44.2",
|
|
11
|
+
"@intentius/chant-lexicon-aws": "^0.44.2",
|
|
12
|
+
"@intentius/chant-lexicon-temporal": "^0.44.2"
|
|
13
13
|
}
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/behold",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "behold — a live control plane on chant. See your whole estate (every substrate in one graph), coloured by drift; act through delegated, gated Ops.",
|
|
6
6
|
"bin": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"web",
|
|
13
13
|
"example-writes",
|
|
14
14
|
"example-k8s",
|
|
15
|
+
"example-flux-estate",
|
|
15
16
|
"demos.json",
|
|
16
17
|
"AGENTS.md"
|
|
17
18
|
],
|
package/web/app.js
CHANGED
|
@@ -460,6 +460,16 @@ function renderDiff(panel, diff) {
|
|
|
460
460
|
const cat = document.createElement("p");
|
|
461
461
|
cat.textContent = DIFF_LABEL[diff.category] || diff.category;
|
|
462
462
|
panel.appendChild(cat);
|
|
463
|
+
// chant#1620 (#192): where the live read actually looked — the line that
|
|
464
|
+
// separates "not there" from "looked in the wrong place" (a declared k8s
|
|
465
|
+
// object with no namespace reads from the DEFAULTED namespace, and only
|
|
466
|
+
// this address makes that visible). Monospace so a request path scans.
|
|
467
|
+
if (diff.queried) {
|
|
468
|
+
const q = document.createElement("p");
|
|
469
|
+
q.style.cssText = "color:var(--muted);font:11px/1.4 ui-monospace,monospace;overflow-wrap:anywhere;margin-top:2px";
|
|
470
|
+
q.textContent = `queried: ${diff.queried} → ${diff.category === "missing" ? "not found" : "read failed"}`;
|
|
471
|
+
panel.appendChild(q);
|
|
472
|
+
}
|
|
463
473
|
// chant#1168 (#1089): show WHY chant couldn't look, instead of the
|
|
464
474
|
// "no field changes" text below — that phrasing implies a comparison ran
|
|
465
475
|
// and found nothing, which is exactly the wrong read for a hole in the
|