@rubytech/create-maxy 1.0.623 → 1.0.624

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 (22) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/mcp/dist/index.js +1 -1
  3. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  4. package/payload/platform/plugins/admin/skills/onboarding/SKILL.md +9 -12
  5. package/payload/platform/plugins/cloudflare/PLUGIN.md +31 -44
  6. package/payload/platform/plugins/cloudflare/mcp/dist/index.js +13 -875
  7. package/payload/platform/plugins/cloudflare/mcp/dist/index.js.map +1 -1
  8. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +1 -1
  9. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +1 -0
  10. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +1 -1
  11. package/payload/platform/plugins/cloudflare/references/dashboard-guide.md +108 -0
  12. package/payload/platform/plugins/cloudflare/references/manual-setup.md +445 -0
  13. package/payload/platform/plugins/cloudflare/references/reset-guide.md +118 -0
  14. package/payload/platform/plugins/cloudflare/scripts/reset-tunnel.sh +65 -0
  15. package/payload/platform/plugins/cloudflare/scripts/setup-tunnel.sh +244 -0
  16. package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +96 -5
  17. package/payload/platform/plugins/docs/references/cloudflare.md +91 -34
  18. package/payload/platform/templates/agents/admin/IDENTITY.md +10 -4
  19. package/payload/platform/templates/specialists/agents/personal-assistant.md +9 -9
  20. package/payload/server/server.js +187 -299
  21. package/payload/platform/config/cloudflared.yml +0 -17
  22. package/payload/platform/plugins/cloudflare/references/setup-guide.md +0 -132
@@ -1,31 +1,19 @@
1
1
  ---
2
2
  name: cloudflare
3
- description: Cloudflare Tunnel setup and management a deterministic orchestrator drives the full setup flow; raw tunnel-* tools are internal sub-steps
4
- tools:
5
- - cloudflare-setup-run
6
- - cloudflare-setup-status
7
- - tunnel-login
8
- - tunnel-status
9
- - tunnel-install
10
- - tunnel-create
11
- - tunnel-enable
12
- - tunnel-disable
13
- - tunnel-add-hostname
14
- - dns-lookup
3
+ description: Cloudflare Tunnel operations — setup, reset, dashboard guidance. Zero agent-facing MCP tools; every operation is a shell script or a dashboard click-path the operator performs themselves.
4
+ tools: []
15
5
  ---
16
6
 
17
- # Cloudflare Tunnel Setup
7
+ # Cloudflare Tunnel
18
8
 
19
- Each installation has its own Cloudflare account. The operator signs in with OAuth (`tunnel-login`) `cloudflared` writes `cert.pem` and the plugin records which Cloudflare account this laptop is signed into (`account-binding.json`). That binding is a drift detector only: if the operator later signs in under a different account, subsequent tool calls refuse and point the operator back to the browser.
20
-
21
- The Cloudflare dashboard is the single source of truth for which domains, addresses, and tunnels exist on the account. The plugin never reads or mutates account state via any API path — only `cloudflared` CLI shell-outs (which use the signed-in cert locally) and DNS + HTTPS probes against public surfaces. When something is wrong, the agent tells the operator where to click in the dashboard; the operator clicks; then the agent runs the next `cloudflared` command.
9
+ Each installation has its own Cloudflare account. The operator signs in with OAuth via `cloudflared tunnel login` (driven by `setup-tunnel.sh`); `cloudflared` writes `cert.pem` to the brand-scoped config directory. The Cloudflare dashboard is the single source of truth for which domains, addresses, and tunnels exist; the plugin never reads or mutates account state via any API path only `cloudflared` CLI shell-outs the scripts execute, and DNS + HTTPS probes against public surfaces.
22
10
 
23
11
  ## When to activate
24
12
 
25
13
  - Operator mentions Cloudflare, custom domain, public access, or internet access
26
14
  - Operator wants to expose the assistant publicly with a custom URL
27
15
  - Operator asks about setting up remote access with a custom domain
28
- - Operator says "set up Cloudflare" or similar
16
+ - Operator says "set up Cloudflare", "reset the tunnel", "my tunnel is broken", or similar
29
17
 
30
18
  ## What it unlocks
31
19
 
@@ -34,40 +22,39 @@ The Cloudflare dashboard is the single source of truth for which domains, addres
34
22
  - Custom-branded public chat URLs
35
23
  - Webhook endpoints on a stable domain
36
24
 
37
- ## Tools
38
-
39
- ### Operator-facing entry point
25
+ ## Operator-facing surface
40
26
 
41
- | Tool | Purpose |
42
- |------|---------|
43
- | `cloudflare-setup-run` | Run the full setup flow to completion. One call advances one deterministic step (the state machine is in `setup-orchestrator.ts`). The admin agent's only job is to relay the tool's structured output and pass the operator's literal next input through. |
44
- | `cloudflare-setup-status` | Read-only diagnostic — returns the current orchestrator phase without advancing. |
27
+ The plugin registers no agent-facing MCP tools (Task 554). Every Cloudflare operation is driven through one of four sanctioned surfaces — `setup-tunnel.sh`, `reset-tunnel.sh`, `references/manual-setup.md`, or `references/dashboard-guide.md`. See the skill below for the discipline rule that binds the agent to these four.
45
28
 
46
- ### Internal sub-tools (orchestrator invokes; direct use supported for diagnostics)
29
+ ### Scripts
47
30
 
48
- | Tool | Purpose |
49
- |------|---------|
50
- | `tunnel-login` | Authenticate via `cloudflared tunnel login`. Sub-step of the orchestrator. |
51
- | `tunnel-create` | Create tunnel + route DNS for admin (+ optional public) hostname. Sub-step. |
52
- | `tunnel-enable` | Start the `cloudflared` daemon and verify edge reachability. Sub-step. |
53
- | `tunnel-status` | End-to-end probe (DNS + HTTPS); `healthy` / `unhealthyReason` enum output drives the orchestrator's next phase choice. |
54
- | `tunnel-add-hostname` | Add an additional address to the running tunnel. Not driven by the orchestrator. |
55
- | `tunnel-install` | Install the `cloudflared` binary when missing. |
56
- | `tunnel-disable` | Stop the `cloudflared` daemon; config preserved. |
57
- | `dns-lookup` | General-purpose DNS resolver (replaces `dig`/`nslookup`). |
31
+ | Script | Purpose |
32
+ |---|---|
33
+ | [`scripts/setup-tunnel.sh`](scripts/setup-tunnel.sh) | Autonomous end-to-end setup: OAuth login, tunnel create, DNS route, config + state, service restart, post-restart verification. Invocation: `~/setup-tunnel.sh <brand> <port> <admin-hostname> [<public-hostname>] [<apex-hostname>]`. Apex hostnames print an `ACTION REQUIRED` block for the dashboard record the CLI cannot create. |
34
+ | [`scripts/reset-tunnel.sh`](scripts/reset-tunnel.sh) | Deletes every tunnel on the brand's CF account and wipes `${CFG_DIR}`. Does not touch the platform service, stray CNAMEs, or token-mode connectors — those require dashboard cleanup or `pkill`. Invocation: `~/reset-tunnel.sh <brand>`. |
58
35
 
59
- While `cloudflare-setup-run` is mid-flow (phase ≠ idle/healthy/unhealthy), the admin agent's tool menu is filtered: the raw `tunnel-*` tools, Playwright / Chrome DevTools browser tools, and `Bash` / `Write` / `Edit` are removed. This is enforced in `platform/ui/app/lib/tool-surface-filter.ts` — see `.docs/agents.md` §"Tool-surface gates".
60
-
61
- ## Skills
36
+ ### Skills
62
37
 
63
38
  | Skill | Purpose |
64
- |-------|---------|
65
- | [setup-tunnel/SKILL.md](skills/setup-tunnel/SKILL.md) | One-paragraph instruction "call `cloudflare-setup-run`, relay verbatim, pass operator input through" |
39
+ |---|---|
40
+ | [setup-tunnel/SKILL.md](skills/setup-tunnel/SKILL.md) | Names the four sanctioned surfaces (autonomous / manual / reset / dashboard), the inputs to collect before invoking `setup-tunnel.sh`, and the tool-discipline rule that binds the agent. |
66
41
 
67
- ## References
42
+ ### References
68
43
 
69
44
  | Reference | Topics |
70
- |-----------|--------|
71
- | [setup-guide.md](references/setup-guide.md) | Prerequisites, domain setup in the dashboard, troubleshooting, tool reference |
45
+ |---|---|
46
+ | [manual-setup.md](references/manual-setup.md) | Step-by-step human runbook Steps 0–7 with isolated command blocks. Used when diagnosing a failing scripted step or working on a device where the scripts are not yet deployed. |
47
+ | [dashboard-guide.md](references/dashboard-guide.md) | Click-paths for the operations only the Cloudflare dashboard can perform — sign in, switch accounts, add a site, edit an apex CNAME, verify nameservers, delete a tunnel, manage CNAME records. |
48
+ | [reset-guide.md](references/reset-guide.md) | Decision tree for reset vs. patch, the exact `pkill` incantation for token-mode connectors, and the dashboard cleanup paths for stray records and rogue entries. |
49
+
50
+ The agent loads these references on demand via `plugin-read` as the conversation requires. They are not auto-injected into the system prompt.
51
+
52
+ ## Identity model
53
+
54
+ - **Product identity** (Maxy vs Real Agent) — known from `brand.json` (`productName`, `configDir`).
55
+ - **Cloudflare account identity** — `cert.pem` from OAuth. One account per brand per device.
56
+ - **Account binding drift** — `~/{configDir}/cloudflared/account-binding.json` is a historical drift marker. Reset via `reset-tunnel.sh` when switching accounts.
57
+
58
+ ## Discipline
72
59
 
73
- Load the relevant skill or reference based on the task.
60
+ Loaded into IDENTITY.md § Cloudflare operations at install time. The short form: the agent's permitted surfaces are the two scripts, the three reference files, and plain `curl` reachability checks — everything else (Playwright, WebSearch-for-CF-recipes, Cloudflare API / SDK, ad-hoc `cloudflared` flag invention, direct edits to cert.pem / tunnel.state / config.yml / alias-domains.json) is out of bounds. Sanctioned-surface failures are reported with evidence and cited against `reset-guide.md`, not improvised around.