@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.
Files changed (102) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/config/brand.json +1 -1
  3. package/payload/platform/plugins/admin/hooks/__tests__/pre-tool-use-memory-write-passthrough.test.sh +118 -0
  4. package/payload/platform/plugins/admin/hooks/pre-tool-use.sh +0 -102
  5. package/payload/platform/plugins/cloudflare/PLUGIN.md +1 -1
  6. package/payload/platform/plugins/cloudflare/scripts/setup-tunnel.sh +33 -217
  7. package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +9 -7
  8. package/payload/platform/plugins/docs/references/admin-session.md +1 -1
  9. package/payload/platform/plugins/docs/references/cloudflare.md +2 -2
  10. package/payload/platform/plugins/docs/references/deployment.md +1 -1
  11. package/payload/platform/plugins/docs/references/platform.md +1 -1
  12. package/payload/platform/plugins/docs/references/troubleshooting.md +1 -1
  13. package/payload/platform/plugins/memory/PLUGIN.md +2 -2
  14. package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -1
  15. package/payload/platform/services/claude-session-manager/dist/config.js +1 -8
  16. package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -1
  17. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  18. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +15 -15
  19. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  20. package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
  21. package/payload/server/public/assets/{brand-C_iHnsbT.css → ChatInput-CktRrxx1.css} +1 -1
  22. package/payload/server/public/assets/{brand-HqTMr1bV.js → ChatInput-D62NmYfJ.js} +5 -1
  23. package/payload/server/public/assets/Checkbox-D2XqbR29.js +1 -0
  24. package/payload/server/public/assets/admin-BK1F2LMD.js +217 -0
  25. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DQMCKDU2.js → architectureDiagram-Q4EWVU46-9F6y6ESU.js} +1 -1
  26. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CqJNtiQY.js → blockDiagram-DXYQGD6D-LjGbzg0M.js} +1 -1
  27. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-BVAa1YL3.js → c4Diagram-AHTNJAMY-Bxpn5T5R.js} +1 -1
  28. package/payload/server/public/assets/channel-CY_QocHj.js +1 -0
  29. package/payload/server/public/assets/{chunk-336JU56O-XIsdqKyD.js → chunk-336JU56O-Cc2kxWVN.js} +2 -2
  30. package/payload/server/public/assets/{chunk-426QAEUC-Dw4mcMYK.js → chunk-426QAEUC-DRzEhHvW.js} +1 -1
  31. package/payload/server/public/assets/{chunk-4TB4RGXK-BvrlG2FS.js → chunk-4TB4RGXK-C8zRzH9g.js} +1 -1
  32. package/payload/server/public/assets/{chunk-5FUZZQ4R-3-UZ9191.js → chunk-5FUZZQ4R-s8V7nzOd.js} +1 -1
  33. package/payload/server/public/assets/{chunk-5PVQY5BW-DOeY60Lp.js → chunk-5PVQY5BW-KNShBlaM.js} +1 -1
  34. package/payload/server/public/assets/{chunk-EDXVE4YY-BSbGSOxN.js → chunk-EDXVE4YY-C6GvGxn3.js} +1 -1
  35. package/payload/server/public/assets/{chunk-ENJZ2VHE-CszgAcWZ.js → chunk-ENJZ2VHE-XvXhU8ZS.js} +1 -1
  36. package/payload/server/public/assets/{chunk-ICPOFSXX-rgw1I6pt.js → chunk-ICPOFSXX-OSDYUb0H.js} +1 -1
  37. package/payload/server/public/assets/{chunk-OYMX7WX6-DL4v2Nx4.js → chunk-OYMX7WX6-km_4dA-E.js} +1 -1
  38. package/payload/server/public/assets/{chunk-U2HBQHQK-CwMCwyfq.js → chunk-U2HBQHQK-BGHqDvzJ.js} +1 -1
  39. package/payload/server/public/assets/{chunk-X2U36JSP-CvKfDVvq.js → chunk-X2U36JSP-BKKSYdFO.js} +1 -1
  40. package/payload/server/public/assets/{chunk-YZCP3GAM-D7vju2_U.js → chunk-YZCP3GAM-DT_yhfJM.js} +1 -1
  41. package/payload/server/public/assets/{chunk-ZZ45TVLE-sANOwJKn.js → chunk-ZZ45TVLE-CP2JuBPA.js} +1 -1
  42. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BtwH3Rsu.js +1 -0
  43. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-tCRstAZ-.js +1 -0
  44. package/payload/server/public/assets/clone-Bc-lmwcQ.js +1 -0
  45. package/payload/server/public/assets/{dagre-CplqWwSs.js → dagre-CUhFHAG8.js} +1 -1
  46. package/payload/server/public/assets/{dagre-KV5264BT-DNbl5g9o.js → dagre-KV5264BT-Dk7osC4w.js} +1 -1
  47. package/payload/server/public/assets/data-B3WPMQdR.js +1 -0
  48. package/payload/server/public/assets/{diagram-5BDNPKRD-BCdMaYnY.js → diagram-5BDNPKRD-CdOEJbjg.js} +1 -1
  49. package/payload/server/public/assets/{diagram-G4DWMVQ6-8XhDBU0o.js → diagram-G4DWMVQ6-Dyx0MQk6.js} +1 -1
  50. package/payload/server/public/assets/{diagram-MMDJMWI5-M-RMQgtx.js → diagram-MMDJMWI5-Dw6sxLh8.js} +1 -1
  51. package/payload/server/public/assets/{diagram-TYMM5635-BBHPIBvQ.js → diagram-TYMM5635-Bm3GRH-1.js} +1 -1
  52. package/payload/server/public/assets/{erDiagram-SMLLAGMA-D6jOL-9s.js → erDiagram-SMLLAGMA-CAJ3Z9uD.js} +1 -1
  53. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CiyTYRlU.js → flowDiagram-DWJPFMVM-NrVUcQ2d.js} +1 -1
  54. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DHSIpjfS.js → ganttDiagram-T4ZO3ILL-28YyrNXj.js} +1 -1
  55. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CEneVF3o.js → gitGraphDiagram-UUTBAWPF-D73FSDE8.js} +1 -1
  56. package/payload/server/public/assets/graph-B6c5nlBL.js +1 -0
  57. package/payload/server/public/assets/graph-labels-BMqBNCYc.js +1 -0
  58. package/payload/server/public/assets/{graphlib-CuF7rLfE.js → graphlib-n_bUAhub.js} +1 -1
  59. package/payload/server/public/assets/{infoDiagram-42DDH7IO-wGl-JoP7.js → infoDiagram-42DDH7IO-rFap2NoE.js} +1 -1
  60. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-B3TxFNi_.js → ishikawaDiagram-UXIWVN3A-KKAj626l.js} +1 -1
  61. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-B5n8No7p.js → journeyDiagram-VCZTEJTY-Do6hVThi.js} +1 -1
  62. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-ByGF39_h.js → kanban-definition-6JOO6SKY-C38qlZwy.js} +1 -1
  63. package/payload/server/public/assets/lib-D-jcbjd4.js +29 -0
  64. package/payload/server/public/assets/{line-Br0FyyFW.js → line-DsDSEpXU.js} +1 -1
  65. package/payload/server/public/assets/{mermaid-parser.core-BUcTjodx.js → mermaid-parser.core-Cvzc7ePL.js} +1 -1
  66. package/payload/server/public/assets/{mermaid.core-BKzdtZgG.js → mermaid.core-BSZExB1C.js} +3 -3
  67. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CobGMF9l.js → mindmap-definition-QFDTVHPH-CrS3b5u5.js} +1 -1
  68. package/payload/server/public/assets/page-C438DjPa.js +1 -0
  69. package/payload/server/public/assets/{page-Ba0BAfpu.js → page-fdrpcuv5.js} +2 -2
  70. package/payload/server/public/assets/{pieDiagram-DEJITSTG-DXFmGcNR.js → pieDiagram-DEJITSTG-Dk-6uOEj.js} +1 -1
  71. package/payload/server/public/assets/public-BK3eOHJs.js +8 -0
  72. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BnChStlO.js → quadrantDiagram-34T5L4WZ-CEMK5xQ0.js} +1 -1
  73. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DdiBKsyO.js → requirementDiagram-MS252O5E-vTyRxQOY.js} +1 -1
  74. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-16-np_56.js → sankeyDiagram-XADWPNL6-s2z8dMpM.js} +1 -1
  75. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-D67SCRpA.js → sequenceDiagram-FGHM5R23-locoOgnm.js} +1 -1
  76. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CvNJX0YC.js → stateDiagram-FHFEXIEX-m1d4aD0M.js} +1 -1
  77. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B7eWHz7x.js +1 -0
  78. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-BJE5YoBa.js → timeline-definition-GMOUNBTQ-HraDHuOp.js} +1 -1
  79. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-DF17ddXt.js → vennDiagram-DHZGUBPP-DkyF2rFo.js} +1 -1
  80. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-xn_2XUOo.js → wardleyDiagram-NUSXRM2D-BGScmzP0.js} +1 -1
  81. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DVF8zf3f.js → xychartDiagram-5P7HB3ND-CPJ1JLj2.js} +1 -1
  82. package/payload/server/public/brand-constants.json +1 -1
  83. package/payload/server/public/data.html +5 -5
  84. package/payload/server/public/graph.html +6 -6
  85. package/payload/server/public/index.html +8 -8
  86. package/payload/server/public/public.html +5 -5
  87. package/payload/server/server.js +2 -2
  88. package/payload/platform/plugins/admin/hooks/__tests__/pre-tool-use-memory-write-revoke.test.sh +0 -248
  89. package/payload/platform/plugins/cloudflare/scripts/__tests__/setup-tunnel-display-precedence.test.sh +0 -194
  90. package/payload/server/public/assets/Checkbox-B34vplI7.js +0 -1
  91. package/payload/server/public/assets/admin-BkTlPuP0.js +0 -217
  92. package/payload/server/public/assets/channel-CZG4mVkt.js +0 -1
  93. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BoqQ3pHg.js +0 -1
  94. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-FoKuBK7n.js +0 -1
  95. package/payload/server/public/assets/clone-CT8AM-bU.js +0 -1
  96. package/payload/server/public/assets/data-BIDM6J5V.js +0 -1
  97. package/payload/server/public/assets/device-url-actions-nxh9PmIH.js +0 -33
  98. package/payload/server/public/assets/graph-Cm-iWFqy.js +0 -1
  99. package/payload/server/public/assets/graph-labels-CFX6KkCz.js +0 -1
  100. package/payload/server/public/assets/page-B5NRnW0t.js +0 -1
  101. package/payload/server/public/assets/public-DWfBzf83.js +0 -8
  102. 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};