@rubytech/create-maxy-code 0.1.85 → 0.1.87
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/package.json +1 -1
- package/payload/platform/config/brand.json +1 -1
- package/payload/platform/plugins/admin/hooks/__tests__/pre-tool-use-memory-write-passthrough.test.sh +118 -0
- package/payload/platform/plugins/admin/hooks/pre-tool-use.sh +0 -102
- package/payload/platform/plugins/cloudflare/PLUGIN.md +1 -1
- package/payload/platform/plugins/cloudflare/scripts/setup-tunnel.sh +33 -217
- package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +9 -7
- package/payload/platform/plugins/docs/references/admin-session.md +1 -1
- package/payload/platform/plugins/docs/references/cloudflare.md +2 -2
- package/payload/platform/plugins/docs/references/deployment.md +1 -1
- package/payload/platform/plugins/docs/references/platform.md +1 -1
- package/payload/platform/plugins/docs/references/troubleshooting.md +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +2 -2
- package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/config.js +1 -8
- package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +15 -15
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
- package/payload/server/public/assets/{brand-C_iHnsbT.css → ChatInput-CktRrxx1.css} +1 -1
- package/payload/server/public/assets/{brand-HqTMr1bV.js → ChatInput-D62NmYfJ.js} +5 -1
- package/payload/server/public/assets/Checkbox-D2XqbR29.js +1 -0
- package/payload/server/public/assets/admin-BK1F2LMD.js +217 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DQMCKDU2.js → architectureDiagram-Q4EWVU46-9F6y6ESU.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CqJNtiQY.js → blockDiagram-DXYQGD6D-LjGbzg0M.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-BVAa1YL3.js → c4Diagram-AHTNJAMY-Bxpn5T5R.js} +1 -1
- package/payload/server/public/assets/channel-CY_QocHj.js +1 -0
- package/payload/server/public/assets/{chunk-336JU56O-XIsdqKyD.js → chunk-336JU56O-Cc2kxWVN.js} +2 -2
- package/payload/server/public/assets/{chunk-426QAEUC-Dw4mcMYK.js → chunk-426QAEUC-DRzEhHvW.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-BvrlG2FS.js → chunk-4TB4RGXK-C8zRzH9g.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-3-UZ9191.js → chunk-5FUZZQ4R-s8V7nzOd.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-DOeY60Lp.js → chunk-5PVQY5BW-KNShBlaM.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-BSbGSOxN.js → chunk-EDXVE4YY-C6GvGxn3.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-CszgAcWZ.js → chunk-ENJZ2VHE-XvXhU8ZS.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-rgw1I6pt.js → chunk-ICPOFSXX-OSDYUb0H.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-DL4v2Nx4.js → chunk-OYMX7WX6-km_4dA-E.js} +1 -1
- package/payload/server/public/assets/{chunk-U2HBQHQK-CwMCwyfq.js → chunk-U2HBQHQK-BGHqDvzJ.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-CvKfDVvq.js → chunk-X2U36JSP-BKKSYdFO.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-D7vju2_U.js → chunk-YZCP3GAM-DT_yhfJM.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-sANOwJKn.js → chunk-ZZ45TVLE-CP2JuBPA.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BtwH3Rsu.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-tCRstAZ-.js +1 -0
- package/payload/server/public/assets/clone-Bc-lmwcQ.js +1 -0
- package/payload/server/public/assets/{dagre-CplqWwSs.js → dagre-CUhFHAG8.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-DNbl5g9o.js → dagre-KV5264BT-Dk7osC4w.js} +1 -1
- package/payload/server/public/assets/data-B3WPMQdR.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-BCdMaYnY.js → diagram-5BDNPKRD-CdOEJbjg.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-8XhDBU0o.js → diagram-G4DWMVQ6-Dyx0MQk6.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-M-RMQgtx.js → diagram-MMDJMWI5-Dw6sxLh8.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-BBHPIBvQ.js → diagram-TYMM5635-Bm3GRH-1.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-D6jOL-9s.js → erDiagram-SMLLAGMA-CAJ3Z9uD.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CiyTYRlU.js → flowDiagram-DWJPFMVM-NrVUcQ2d.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DHSIpjfS.js → ganttDiagram-T4ZO3ILL-28YyrNXj.js} +1 -1
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CEneVF3o.js → gitGraphDiagram-UUTBAWPF-D73FSDE8.js} +1 -1
- package/payload/server/public/assets/graph-B6c5nlBL.js +1 -0
- package/payload/server/public/assets/graph-labels-BMqBNCYc.js +1 -0
- package/payload/server/public/assets/{graphlib-CuF7rLfE.js → graphlib-n_bUAhub.js} +1 -1
- package/payload/server/public/assets/{infoDiagram-42DDH7IO-wGl-JoP7.js → infoDiagram-42DDH7IO-rFap2NoE.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-B3TxFNi_.js → ishikawaDiagram-UXIWVN3A-KKAj626l.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-B5n8No7p.js → journeyDiagram-VCZTEJTY-Do6hVThi.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-ByGF39_h.js → kanban-definition-6JOO6SKY-C38qlZwy.js} +1 -1
- package/payload/server/public/assets/lib-D-jcbjd4.js +29 -0
- package/payload/server/public/assets/{line-Br0FyyFW.js → line-DsDSEpXU.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-BUcTjodx.js → mermaid-parser.core-Cvzc7ePL.js} +1 -1
- package/payload/server/public/assets/{mermaid.core-BKzdtZgG.js → mermaid.core-BSZExB1C.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CobGMF9l.js → mindmap-definition-QFDTVHPH-CrS3b5u5.js} +1 -1
- package/payload/server/public/assets/page-C438DjPa.js +1 -0
- package/payload/server/public/assets/{page-Ba0BAfpu.js → page-fdrpcuv5.js} +2 -2
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-DXFmGcNR.js → pieDiagram-DEJITSTG-Dk-6uOEj.js} +1 -1
- package/payload/server/public/assets/public-BK3eOHJs.js +8 -0
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BnChStlO.js → quadrantDiagram-34T5L4WZ-CEMK5xQ0.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-DdiBKsyO.js → requirementDiagram-MS252O5E-vTyRxQOY.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-16-np_56.js → sankeyDiagram-XADWPNL6-s2z8dMpM.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-D67SCRpA.js → sequenceDiagram-FGHM5R23-locoOgnm.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CvNJX0YC.js → stateDiagram-FHFEXIEX-m1d4aD0M.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B7eWHz7x.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-BJE5YoBa.js → timeline-definition-GMOUNBTQ-HraDHuOp.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-DF17ddXt.js → vennDiagram-DHZGUBPP-DkyF2rFo.js} +1 -1
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-xn_2XUOo.js → wardleyDiagram-NUSXRM2D-BGScmzP0.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DVF8zf3f.js → xychartDiagram-5P7HB3ND-CPJ1JLj2.js} +1 -1
- package/payload/server/public/brand-constants.json +1 -1
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +8 -8
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +2 -2
- package/payload/platform/plugins/admin/hooks/__tests__/pre-tool-use-memory-write-revoke.test.sh +0 -248
- package/payload/platform/plugins/cloudflare/scripts/__tests__/setup-tunnel-display-precedence.test.sh +0 -194
- package/payload/server/public/assets/Checkbox-B34vplI7.js +0 -1
- package/payload/server/public/assets/admin-BkTlPuP0.js +0 -217
- package/payload/server/public/assets/channel-CZG4mVkt.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BoqQ3pHg.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-FoKuBK7n.js +0 -1
- package/payload/server/public/assets/clone-CT8AM-bU.js +0 -1
- package/payload/server/public/assets/data-BIDM6J5V.js +0 -1
- package/payload/server/public/assets/device-url-actions-nxh9PmIH.js +0 -33
- package/payload/server/public/assets/graph-Cm-iWFqy.js +0 -1
- package/payload/server/public/assets/graph-labels-CFX6KkCz.js +0 -1
- package/payload/server/public/assets/page-B5NRnW0t.js +0 -1
- package/payload/server/public/assets/public-DWfBzf83.js +0 -8
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CFw2U4iL.js +0 -1
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# setup-tunnel.sh OAuth display precedence — three-case test.
|
|
3
|
-
#
|
|
4
|
-
# Verifies that the chromium spawn in Step 1 (OAuth login) ALWAYS uses the
|
|
5
|
-
# brand-declared VNC display from brand.json, never the PTY-inherited
|
|
6
|
-
# DISPLAY env var. Covers the regression filed as task 221: PTY admin
|
|
7
|
-
# agent inherits DISPLAY=:0 from systemd, which would route the OAuth
|
|
8
|
-
# Authorize page onto the system display rather than the operator-visible
|
|
9
|
-
# brand VNC.
|
|
10
|
-
#
|
|
11
|
-
# Cases:
|
|
12
|
-
# 1. Positive — brand.json vncDisplay=100, DISPLAY=:0 in env
|
|
13
|
-
# → stream log shows `step=browser-spawn result=ok display=:100`.
|
|
14
|
-
# 2. Negative — brand.json missing vncDisplay field, DISPLAY=:0 in env
|
|
15
|
-
# → exit non-zero with `result=error reason=brand-vnc-display-unresolved`.
|
|
16
|
-
# 3. Negative — brand.json file absent (MAXY_PLATFORM_ROOT set, file missing)
|
|
17
|
-
# → exit non-zero with same reason.
|
|
18
|
-
#
|
|
19
|
-
# Mocks cloudflared (echo URL + sleep), systemd-run (no-op success), and
|
|
20
|
-
# the brand chromium binary via PATH override. SETUP_TUNNEL_LOGIN_TIMEOUT=1
|
|
21
|
-
# short-circuits the cert-poll so the positive case exits in ~1 s.
|
|
22
|
-
#
|
|
23
|
-
# Run: bash setup-tunnel-display-precedence.test.sh
|
|
24
|
-
|
|
25
|
-
set -uo pipefail
|
|
26
|
-
|
|
27
|
-
TEST_DIR="$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" && pwd)"
|
|
28
|
-
SCRIPT_PATH="$(dirname "${TEST_DIR}")/setup-tunnel.sh"
|
|
29
|
-
|
|
30
|
-
if [ ! -x "${SCRIPT_PATH}" ] && [ ! -r "${SCRIPT_PATH}" ]; then
|
|
31
|
-
echo "FAIL: setup-tunnel.sh not found at ${SCRIPT_PATH}"
|
|
32
|
-
exit 1
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
if ! command -v jq >/dev/null 2>&1; then
|
|
36
|
-
echo "SKIP: jq is required for brand.json vncDisplay parsing in setup-tunnel.sh"
|
|
37
|
-
exit 0
|
|
38
|
-
fi
|
|
39
|
-
|
|
40
|
-
PASS=0
|
|
41
|
-
FAIL=0
|
|
42
|
-
|
|
43
|
-
run_case() {
|
|
44
|
-
local case_name="$1"
|
|
45
|
-
local brand_json_content="$2" # empty means "do not write the file"
|
|
46
|
-
local expected_exit="$3" # "nonzero" or a specific code; we only check non-zero vs result via grep
|
|
47
|
-
local expected_grep="$4" # pattern to grep in stream log
|
|
48
|
-
|
|
49
|
-
WORK="$(mktemp -d -t maxy-display-test.XXXXXX)"
|
|
50
|
-
trap 'rm -rf "$WORK"' RETURN
|
|
51
|
-
|
|
52
|
-
# Fake $HOME for ${CFG_DIR}=${HOME}/.${BRAND}/cloudflared paths
|
|
53
|
-
export HOME="${WORK}/home"
|
|
54
|
-
mkdir -p "${HOME}/.testbrand/cloudflared"
|
|
55
|
-
# Ensure default OAuth cert path also empty so pre-flight cert-promotion is skipped
|
|
56
|
-
mkdir -p "${HOME}/.cloudflared"
|
|
57
|
-
|
|
58
|
-
# MAXY_PLATFORM_ROOT layout
|
|
59
|
-
export MAXY_PLATFORM_ROOT="${WORK}/platform"
|
|
60
|
-
mkdir -p "${MAXY_PLATFORM_ROOT}/config"
|
|
61
|
-
# Path INSIDE the file is the chromium binary; the file itself does not
|
|
62
|
-
# need to be executable. The script's check is `[ -x "${path}" ]` which
|
|
63
|
-
# requires an absolute path — `command -v true` returns the shell
|
|
64
|
-
# builtin name, not a path. Pick the first existing absolute file.
|
|
65
|
-
if [ -x /usr/bin/true ]; then TRUE_BIN=/usr/bin/true
|
|
66
|
-
elif [ -x /bin/true ]; then TRUE_BIN=/bin/true
|
|
67
|
-
else
|
|
68
|
-
echo "SKIP: no /usr/bin/true or /bin/true available for chromium-binary mock"
|
|
69
|
-
return 0
|
|
70
|
-
fi
|
|
71
|
-
printf '%s\n' "${TRUE_BIN}" > "${MAXY_PLATFORM_ROOT}/config/chromium-binary.path"
|
|
72
|
-
|
|
73
|
-
if [ -n "${brand_json_content}" ]; then
|
|
74
|
-
printf '%s' "${brand_json_content}" > "${MAXY_PLATFORM_ROOT}/config/brand.json"
|
|
75
|
-
fi
|
|
76
|
-
|
|
77
|
-
export STREAM_LOG_PATH="${WORK}/stream.log"
|
|
78
|
-
: > "${STREAM_LOG_PATH}"
|
|
79
|
-
|
|
80
|
-
# PATH-override mocks
|
|
81
|
-
PATH_DIR="${WORK}/bin"
|
|
82
|
-
mkdir -p "${PATH_DIR}"
|
|
83
|
-
|
|
84
|
-
cat > "${PATH_DIR}/cloudflared" <<'MOCK'
|
|
85
|
-
#!/usr/bin/env bash
|
|
86
|
-
# Mock cloudflared: emit a URL once, then sleep long enough that the
|
|
87
|
-
# parent's cert-poll timeout fires.
|
|
88
|
-
echo "Please open the following URL in your browser:"
|
|
89
|
-
echo "https://dash.cloudflare.com/argotunnel?aud=test&callback=https%3A%2F%2Flogin.cloudflareaccess.org%2F"
|
|
90
|
-
sleep 30
|
|
91
|
-
MOCK
|
|
92
|
-
chmod +x "${PATH_DIR}/cloudflared"
|
|
93
|
-
|
|
94
|
-
cat > "${PATH_DIR}/systemd-run" <<'MOCK'
|
|
95
|
-
#!/usr/bin/env bash
|
|
96
|
-
# Mock systemd-run: succeed without launching anything.
|
|
97
|
-
exit 0
|
|
98
|
-
MOCK
|
|
99
|
-
chmod +x "${PATH_DIR}/systemd-run"
|
|
100
|
-
|
|
101
|
-
cat > "${PATH_DIR}/systemctl" <<'MOCK'
|
|
102
|
-
#!/usr/bin/env bash
|
|
103
|
-
# Mock systemctl: stop returns 5 (unit auto-collected) on the happy
|
|
104
|
-
# `--user stop` path; list-unit-files prints nothing.
|
|
105
|
-
case "${*}" in
|
|
106
|
-
*"stop"*) exit 5 ;;
|
|
107
|
-
*) exit 0 ;;
|
|
108
|
-
esac
|
|
109
|
-
MOCK
|
|
110
|
-
chmod +x "${PATH_DIR}/systemctl"
|
|
111
|
-
|
|
112
|
-
# stdbuf shim — macOS lacks GNU coreutils stdbuf. The script invokes
|
|
113
|
-
# `stdbuf -oL -eL cloudflared ...` purely for line-buffering of the
|
|
114
|
-
# cloudflared output; in this test the output is one short URL line so
|
|
115
|
-
# buffering doesn't matter. The shim strips the -o/-e flags and execs
|
|
116
|
-
# the rest of argv directly.
|
|
117
|
-
cat > "${PATH_DIR}/stdbuf" <<'MOCK'
|
|
118
|
-
#!/usr/bin/env bash
|
|
119
|
-
while [ $# -gt 0 ]; do
|
|
120
|
-
case "$1" in
|
|
121
|
-
-i*|-o*|-e*) shift ;;
|
|
122
|
-
--) shift; break ;;
|
|
123
|
-
*) break ;;
|
|
124
|
-
esac
|
|
125
|
-
done
|
|
126
|
-
exec "$@"
|
|
127
|
-
MOCK
|
|
128
|
-
chmod +x "${PATH_DIR}/stdbuf"
|
|
129
|
-
|
|
130
|
-
# Force DISPLAY=:0 to simulate PTY admin agent inheriting from systemd.
|
|
131
|
-
export DISPLAY=":0"
|
|
132
|
-
# Short-circuit cert-poll so positive case finishes in ~1 s.
|
|
133
|
-
export SETUP_TUNNEL_LOGIN_TIMEOUT=1
|
|
134
|
-
# Required by Step 2+3, but Step 1 cert-poll timeout exits before we
|
|
135
|
-
# get there; still set them so any drift surfaces a different failure.
|
|
136
|
-
export TUNNEL_NAME="setup-tunnel-display-test"
|
|
137
|
-
|
|
138
|
-
PATH="${PATH_DIR}:${PATH}" "${SCRIPT_PATH}" \
|
|
139
|
-
testbrand 19200 admin.test.bot \
|
|
140
|
-
> "${WORK}/stdout.log" 2> "${WORK}/stderr.log" &
|
|
141
|
-
SCRIPT_PID=$!
|
|
142
|
-
|
|
143
|
-
# Bound the wait — kill after 30 s as a safety net.
|
|
144
|
-
for _ in $(seq 1 60); do
|
|
145
|
-
if ! kill -0 "${SCRIPT_PID}" 2>/dev/null; then break; fi
|
|
146
|
-
sleep 0.5
|
|
147
|
-
done
|
|
148
|
-
if kill -0 "${SCRIPT_PID}" 2>/dev/null; then
|
|
149
|
-
kill -TERM "${SCRIPT_PID}" 2>/dev/null || true
|
|
150
|
-
sleep 1
|
|
151
|
-
kill -KILL "${SCRIPT_PID}" 2>/dev/null || true
|
|
152
|
-
fi
|
|
153
|
-
wait "${SCRIPT_PID}" 2>/dev/null
|
|
154
|
-
ACTUAL_EXIT=$?
|
|
155
|
-
|
|
156
|
-
if grep -qE "${expected_grep}" "${STREAM_LOG_PATH}"; then
|
|
157
|
-
echo "PASS: ${case_name}"
|
|
158
|
-
PASS=$((PASS + 1))
|
|
159
|
-
else
|
|
160
|
-
echo "FAIL: ${case_name}"
|
|
161
|
-
echo " expected stream log to match: ${expected_grep}"
|
|
162
|
-
echo " exit=${ACTUAL_EXIT}"
|
|
163
|
-
echo " --- stream log ---"
|
|
164
|
-
sed 's/^/ /' "${STREAM_LOG_PATH}" || true
|
|
165
|
-
echo " --- stderr ---"
|
|
166
|
-
sed 's/^/ /' "${WORK}/stderr.log" || true
|
|
167
|
-
FAIL=$((FAIL + 1))
|
|
168
|
-
fi
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
# Case 1 — Positive. vncDisplay=100, DISPLAY=:0 inherited.
|
|
172
|
-
# Expect: chromium-spawn phase line carries display=:100, NOT :0.
|
|
173
|
-
run_case "positive — brand.json vncDisplay=100 overrides inherited DISPLAY=:0" \
|
|
174
|
-
'{"vncDisplay": 100}' \
|
|
175
|
-
"nonzero" \
|
|
176
|
-
'step=browser-spawn result=ok.*display=:100'
|
|
177
|
-
|
|
178
|
-
# Case 2 — Negative. brand.json present but no vncDisplay field.
|
|
179
|
-
# Expect: hard-fail with reason=brand-vnc-display-unresolved.
|
|
180
|
-
run_case "negative — brand.json missing vncDisplay → hard-fail" \
|
|
181
|
-
'{"port": 19200}' \
|
|
182
|
-
"nonzero" \
|
|
183
|
-
'step=browser-spawn result=error reason=brand-vnc-display-unresolved'
|
|
184
|
-
|
|
185
|
-
# Case 3 — Negative. brand.json file absent altogether.
|
|
186
|
-
# Expect: same hard-fail.
|
|
187
|
-
run_case "negative — brand.json file absent → hard-fail" \
|
|
188
|
-
'' \
|
|
189
|
-
"nonzero" \
|
|
190
|
-
'step=browser-spawn result=error reason=brand-vnc-display-unresolved'
|
|
191
|
-
|
|
192
|
-
echo ""
|
|
193
|
-
echo "Summary: ${PASS} passed, ${FAIL} failed"
|
|
194
|
-
[ "${FAIL}" -eq 0 ]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./brand-HqTMr1bV.js";var t=e();function n({checked:e,onChange:n,label:r,disabled:i}){return(0,t.jsxs)(`label`,{className:`maxy-checkbox${i?` maxy-checkbox--disabled`:``}`,children:[(0,t.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>n(e.target.checked),disabled:i}),(0,t.jsx)(`span`,{className:`maxy-checkbox__box`,children:`✱`}),r&&(0,t.jsx)(`span`,{className:`maxy-checkbox__label`,children:r})]})}export{n as t};
|