@rubytech/create-maxy-code 0.1.101 → 0.1.103
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/plugins/admin/hooks/pre-tool-use.sh +1 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +12 -8
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/skills/file-presentation/SKILL.md +14 -4
- package/payload/platform/plugins/admin/skills/unzip-attachment/SKILL.md +1 -1
- package/payload/platform/plugins/docs/PLUGIN.md +2 -0
- package/payload/platform/plugins/docs/references/admin-ui.md +233 -0
- package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/index.js +2 -2
- package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
- package/payload/platform/templates/specialists/agents/content-producer.md +1 -1
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/make-brochure/SKILL.md +1 -1
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/index.html +8 -0
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/template.html +8 -0
- package/payload/server/public/assets/{ChatInput-u7hSrC3q.css → ChatInput-DeBN_eCm.css} +1 -1
- package/payload/server/public/assets/{Checkbox-CfiWjuMH.js → Checkbox-Dd6lh79E.js} +1 -1
- package/payload/server/public/assets/{admin-CvfKXjVx.js → admin-B_-v60En.js} +1 -1
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CSAyzBIK.js → architectureDiagram-Q4EWVU46-Nnicj9Oi.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-l_AoJo_I.js → blockDiagram-DXYQGD6D-NuGXhtpA.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-Dsjc59iO.js → c4Diagram-AHTNJAMY-DusOs1B8.js} +1 -1
- package/payload/server/public/assets/channel-sqt9QaiU.js +1 -0
- package/payload/server/public/assets/{chunk-336JU56O-BgAz-EJ4.js → chunk-336JU56O-L4okIbRn.js} +2 -2
- package/payload/server/public/assets/{chunk-426QAEUC-DHF9zZlS.js → chunk-426QAEUC-WhvqbTM0.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-Cqb1TREv.js → chunk-4TB4RGXK-Bby5RW_e.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-CV4WMN8u.js → chunk-5FUZZQ4R-veZxFPER.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-CL0bAr0t.js → chunk-5PVQY5BW-BwG8uJC1.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-WY3Sg1Fq.js → chunk-EDXVE4YY-DgQhTM1z.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-BIVdDrD2.js → chunk-ENJZ2VHE-DpBKyLeu.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-CUHDQxso.js → chunk-ICPOFSXX-Bb8kEMah.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-D1sj6R4f.js → chunk-OYMX7WX6-BUrpyQuA.js} +1 -1
- package/payload/server/public/assets/{chunk-U2HBQHQK-BGso49fW.js → chunk-U2HBQHQK-D0mOjNKD.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-C2tUGTcL.js → chunk-X2U36JSP-CQ7VnONI.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-CLvYLDvo.js → chunk-YZCP3GAM-BWgvd9aw.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-yHQe8STh.js → chunk-ZZ45TVLE-UFB_t9gw.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-rYq1YLUo.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Cc4tKtqG.js +1 -0
- package/payload/server/public/assets/clone-SdNqIUjS.js +1 -0
- package/payload/server/public/assets/{dagre-KV5264BT-Df1MO_DJ.js → dagre-KV5264BT-w7RChnHk.js} +1 -1
- package/payload/server/public/assets/{dagre-fQyUaxmN.js → dagre-VrERS_-G.js} +1 -1
- package/payload/server/public/assets/data-DQafmlMy.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-E3qTf9lX.js → diagram-5BDNPKRD-DDdrN3bf.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-DCV-gR0I.js → diagram-G4DWMVQ6-B_lLNyeb.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-CZKwrxSp.js → diagram-MMDJMWI5-Da0x1Yf0.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-ClXOl5De.js → diagram-TYMM5635-DoFKKnVr.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-v2-MNn-e.js → erDiagram-SMLLAGMA-DBPmAPTe.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CDFzDH-2.js → flowDiagram-DWJPFMVM-CnkJzYU4.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DEA-33qn.js → ganttDiagram-T4ZO3ILL-BM9c9VN5.js} +1 -1
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-lLy_eZzu.js → gitGraphDiagram-UUTBAWPF-C-1OqQDw.js} +1 -1
- package/payload/server/public/assets/graph-CTM-V4lS.js +1 -0
- package/payload/server/public/assets/graph-labels-BkDqelbQ.js +1 -0
- package/payload/server/public/assets/{graphlib-B6Y7yD4A.js → graphlib-Be3_mRCh.js} +1 -1
- package/payload/server/public/assets/{infoDiagram-42DDH7IO-D-Pm-tYB.js → infoDiagram-42DDH7IO-o4FB6Zjb.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-DVHkDPv1.js → ishikawaDiagram-UXIWVN3A-BlnRfx6Z.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CsxM47ah.js → journeyDiagram-VCZTEJTY-Da26YPBj.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-C7EYwNjH.js → kanban-definition-6JOO6SKY-C1jVbsV0.js} +1 -1
- package/payload/server/public/assets/{lib-iH6Mg9EP.js → lib-CKcXekKF.js} +1 -1
- package/payload/server/public/assets/{line-CvBly01q.js → line-BS0h3YlR.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-D32akjeh.js → mermaid-parser.core-4FY7A26h.js} +1 -1
- package/payload/server/public/assets/{mermaid.core-B3O4X8ja.js → mermaid.core-CD1JRYmG.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-yreoqnSK.js → mindmap-definition-QFDTVHPH-BmCJ5q81.js} +1 -1
- package/payload/server/public/assets/{page-CJOpTjue.js → page-1atlhFFT.js} +1 -1
- package/payload/server/public/assets/{page-CBKMOwaH.js → page-D6QVxITy.js} +1 -1
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-DEYXlFD5.js → pieDiagram-DEJITSTG-ClXRAXST.js} +1 -1
- package/payload/server/public/assets/{public-DknvBIqv.js → public-7fuvQJwF.js} +3 -3
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-CVTVYl5c.js → quadrantDiagram-34T5L4WZ-D17aBgPP.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-D438ZRqW.js → requirementDiagram-MS252O5E-CUpkUJlh.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-B2Hs1q9K.js → sankeyDiagram-XADWPNL6-DnrrGp2c.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-BqRHtAoK.js → sequenceDiagram-FGHM5R23-CMprmJg9.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-ILOj6_TV.js → stateDiagram-FHFEXIEX-BdpBUtXc.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DPekwBDP.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-D-uskEEs.js → timeline-definition-GMOUNBTQ-u7JucCMs.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-DJjaoR79.js → vennDiagram-DHZGUBPP-CP1Q9zf2.js} +1 -1
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-B1EO_5jp.js → wardleyDiagram-NUSXRM2D-BOVxInz5.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CQnz0KUb.js → xychartDiagram-5P7HB3ND-Dcx1f04K.js} +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 +201 -79
- package/payload/server/public/assets/channel-BlwH4wTf.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-DuEhfP67.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-zSqemF--.js +0 -1
- package/payload/server/public/assets/clone-DUSqJbTD.js +0 -1
- package/payload/server/public/assets/data-DPx0BO-i.js +0 -1
- package/payload/server/public/assets/graph-FRecl_Yt.js +0 -1
- package/payload/server/public/assets/graph-labels-IY4_aDc-.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B2cQBKI1.js +0 -1
- /package/payload/server/public/assets/{ChatInput-BmmxQOhM.js → ChatInput-DBdyKbiU.js} +0 -0
|
@@ -5,7 +5,7 @@ description: "Deliver a file or document to the owner inside chat for review and
|
|
|
5
5
|
|
|
6
6
|
# File presentation
|
|
7
7
|
|
|
8
|
-
This skill makes a file visible and downloadable inside chat
|
|
8
|
+
This skill makes a file visible and downloadable inside chat. Two delivery paths cover every case: a fenced markdown block for editable text content, and a downloadable-file path whose tool is chosen by inventory.
|
|
9
9
|
|
|
10
10
|
## The trigger
|
|
11
11
|
|
|
@@ -34,7 +34,15 @@ When the operator approves and the document should land on disk or in the graph,
|
|
|
34
34
|
|
|
35
35
|
## How to deliver a downloadable file
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Tool selection is by inventory, not by surface name. The rule is binary:
|
|
38
|
+
|
|
39
|
+
- **If `SendUserFile` is in the tool inventory**, call `SendUserFile` with the absolute path. This is the native Claude Code PTY surface; `SendUserFile` is the only path that renders a download chip on this surface and returns a `file_uuid` as evidence of delivery.
|
|
40
|
+
- **Otherwise** (web chat, WhatsApp, any non-PTY surface mediated by the platform UI), call `admin: file-attach` with the absolute path. The platform UI subscribes to the attachment store and renders the chip from the returned metadata.
|
|
41
|
+
|
|
42
|
+
The 30 MiB ceiling and oversize workaround apply to both paths:
|
|
43
|
+
|
|
44
|
+
- `SendUserFile` accepts files up to 30 MiB each. The `<attachment-ceiling>` sentinel in the spawn system prompt (`system-prompt.ts:267`) carries the same limit.
|
|
45
|
+
- If `du -h <file>` reports over 30 MiB, **do not** call `SendUserFile` on it. Write the file under `<spawn-cwd>/output/` and send the operator the public URL at `<tunnel-url>/files/<relative-path>` — the `output/` tree is served through the tunnel for exactly this case.
|
|
38
46
|
|
|
39
47
|
## For static-site delivery
|
|
40
48
|
|
|
@@ -42,8 +50,10 @@ When the owner has uploaded a `.zip` containing HTML and assets and wants it hos
|
|
|
42
50
|
|
|
43
51
|
## Failure modes
|
|
44
52
|
|
|
45
|
-
- **Content is too large for one chat block** (typically over 50,000 characters of markdown). Surface the size and offer to split into sections, save as a `.md` file and
|
|
46
|
-
- **`file-attach` returns an
|
|
53
|
+
- **Content is too large for one chat block** (typically over 50,000 characters of markdown). Surface the size and offer to split into sections, save as a `.md` file and deliver it via the inventory rule above, or present only the first section with a follow-up for the rest.
|
|
54
|
+
- **`admin: file-attach` returns an `attachmentId` envelope on a PTY surface where `SendUserFile` was also available.** The envelope looks like success but renders no chip on the native Claude Code surface — only `SendUserFile` does. Reaching for `file-attach` first when `SendUserFile` is in inventory is the wasted-first-turn defect; check inventory before choosing.
|
|
55
|
+
- **`SendUserFile` returns "N files delivered to user" without a `file_uuid`.** Per the spawn-prompt `<attachment-ceiling>` warning, the response is not evidence of delivery — the byte upload can silently fail. Treat the operator's visible download chip as the only evidence; if they don't see it, the next retry uses the oversize-fallback path (write under `<spawn-cwd>/output/` and send the `<tunnel-url>/files/…` URL).
|
|
56
|
+
- **The delivery tool returns an error.** Surface the error literally. Do not paste binary contents or a base64 dump into chat as a fallback; the owner asked for a download, not a wall of bytes.
|
|
47
57
|
|
|
48
58
|
## What this skill does not do
|
|
49
59
|
|
|
@@ -49,7 +49,7 @@ See [references/safety.md](references/safety.md) for the precise shell commands,
|
|
|
49
49
|
6. **Emit the done log line** — `[skill:unzip] done attachmentId=<uuid> entries=<n> uncompressed=<bytes>`.
|
|
50
50
|
7. **Inventory + propose.** Reply to the operator with: top-level entries (first-level subdirectories and top-level files, up to ~20), total file count, total uncompressed bytes. For each entry class, propose **one** concrete follow-up:
|
|
51
51
|
- `.md`, `.txt` → "ingest into memory via `memory-ingest`?"
|
|
52
|
-
- `.png`, `.jpg`, `.pdf` → "re-attach via `file-
|
|
52
|
+
- `.png`, `.jpg`, `.pdf` → "re-attach via the `file-presentation` skill so the user sees the file?"
|
|
53
53
|
- unknown / binary / source → list only. No proposal.
|
|
54
54
|
|
|
55
55
|
On any refusal step the operator gets the refusal message verbatim, no re-try, no silent substitution — per the loud-failure protocol in IDENTITY.md.
|
|
@@ -31,6 +31,7 @@ Load these when performing admin tasks or diagnosing platform behaviour:
|
|
|
31
31
|
|
|
32
32
|
- **Platform architecture** → `references/platform.md` — how the platform works, agent types, the plugin model
|
|
33
33
|
- **Platform internals** → `references/internals.md` — retrieval pipeline, embedding infrastructure, guard layers, query classification, memory-rank, graph expansion, keyword subscriptions, context assembly, inbound message screening, tool call audit trail, programmatic spawn entry point and recorder auto-archive lifecycle. Load when answering architecture questions, assessing whether a capability exists, diagnosing retrieval behaviour, or reviewing security and privacy features.
|
|
34
|
+
- **Admin UI** → `references/admin-ui.md` — compact map of every `/api/admin/*` mount, every sidebar surface, the system-stats widget (CPU/RAM thresholds), the artefact pane, and the health-vs-version split. Load when diagnosing an admin route, explaining the CPU/RAM widget, or onboarding a new admin endpoint.
|
|
34
35
|
- **Admin session** → `references/admin-session.md` — signed sessionKey + PIN-rebind survival contract, SDK-resume across `systemctl restart`, and the single-entry `POST /api/admin/claude-sessions` wrapper that owns every programmatic admin spawn-with-initialMessage. Load when diagnosing admin session continuity, designing a programmatic admin spawn, or reviewing the turn-recorder lifecycle.
|
|
35
36
|
- **Cloudflare** → `references/cloudflare.md` — dashboard-first tunnel setup, the `cloudflared`-CLI-only tool surface, single-recovery-path (re-login) for every wrong-account failure.
|
|
36
37
|
- **Deployment** → `references/deployment.md` — Pi setup, Cloudflare tunnel, start script
|
|
@@ -49,6 +50,7 @@ Load these when performing admin tasks or diagnosing platform behaviour:
|
|
|
49
50
|
- references/troubleshooting.md
|
|
50
51
|
- references/platform.md
|
|
51
52
|
- references/internals.md
|
|
53
|
+
- references/admin-ui.md
|
|
52
54
|
- references/admin-session.md
|
|
53
55
|
- references/cloudflare.md
|
|
54
56
|
- references/deployment.md
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# Admin UI reference
|
|
2
|
+
|
|
3
|
+
A compact map of the admin web app: every `/api/admin/*` mount, every
|
|
4
|
+
sidebar surface, and the operator-facing widgets that read host or session
|
|
5
|
+
state. The deep architecture lives in [`platform.md`](platform.md) (UI
|
|
6
|
+
layout, session reconcile, route lifecycle) and
|
|
7
|
+
[`admin-session.md`](admin-session.md) (the session-cookie / PIN-rebind /
|
|
8
|
+
SDK-resume contract). This file is the index that points at them.
|
|
9
|
+
|
|
10
|
+
## Scope and tree decision
|
|
11
|
+
|
|
12
|
+
The `maxy-code/` tree does **not** ship a `.docs/platform.md` developer
|
|
13
|
+
doc. The legacy root tree (`getmaxy/`) carries one at
|
|
14
|
+
`.docs/platform.md` for the original Maxy installer; the Maxy Code tree
|
|
15
|
+
keeps its architecture surface in two places:
|
|
16
|
+
|
|
17
|
+
- `maxy-code-prd.md` at the repo root — product requirements and the
|
|
18
|
+
source of truth for every task in `.tasks/`.
|
|
19
|
+
- `platform/plugins/docs/references/platform.md` — operator-facing
|
|
20
|
+
architecture, loaded by the docs plugin at session start.
|
|
21
|
+
|
|
22
|
+
Anything that would have gone into `maxy-code/.docs/platform.md` belongs
|
|
23
|
+
in one of those two files instead. `maxy-code/.docs/` itself is
|
|
24
|
+
reserved for vertical / integration notes (LinkedIn extension,
|
|
25
|
+
PropertyData, Real Agent standalone, MCP server inventory) — not for
|
|
26
|
+
core-platform docs.
|
|
27
|
+
|
|
28
|
+
## Admin Hono routes
|
|
29
|
+
|
|
30
|
+
Every admin sub-app is mounted by
|
|
31
|
+
[`platform/ui/server/routes/admin/index.ts`](../../../ui/server/routes/admin/index.ts)
|
|
32
|
+
under a per-area prefix. The outer `requireAdminSession` middleware
|
|
33
|
+
runs in `server/index.ts` before the aggregator; individual handlers
|
|
34
|
+
re-apply `requireAdminSession` where they need a resolved `senderId`.
|
|
35
|
+
|
|
36
|
+
`/actions` and `/version` are **not** mounted here — they live on
|
|
37
|
+
`maxy-edge.service` via `server/edge-admin.ts` so the upgrade view
|
|
38
|
+
survives the mid-run restart of the brand service. Double-mounting
|
|
39
|
+
either is a regression.
|
|
40
|
+
|
|
41
|
+
### Sessions and chat
|
|
42
|
+
|
|
43
|
+
| Mount | Purpose | Key methods |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `/session` | Admin cookie session: PIN-gated mint, validate, rotate. | `GET /`, `POST /` |
|
|
46
|
+
| `/sessions` | Legacy conversation list and lifecycle (kept for the ConversationsModal styling class and the post-action reconcile). | `GET /`, `POST /new`, `POST /switch`, `DELETE /:id`, `POST /:id/resume` |
|
|
47
|
+
| `/claude-sessions` | Canonical Claude Code PTY surface: spawn-with-`initialMessage`, SSE row feed, resume, stop, rename, archive, delete, JSONL stream + download. | `POST /`, `GET /events`, `GET /`, `POST /resume`, `POST /:id/stop`, `POST /:id/rename`, `POST /:id/archive`, `DELETE /:id`, `GET /:id/meta`, `POST /:id/input`, `GET /:id/log` |
|
|
48
|
+
| `/session-defaults` | Per-`(accountId, userId)` SpawnPreference row (sidebar mode trigger and persisted model default). | `GET /` |
|
|
49
|
+
| `/new-session-failure` | Spawn-failure surface used by the New Session modal. | `POST /` |
|
|
50
|
+
| `/new-session-submit` | Modal submit handler. | `POST /` |
|
|
51
|
+
|
|
52
|
+
### Graph
|
|
53
|
+
|
|
54
|
+
| Mount | Purpose |
|
|
55
|
+
|---|---|
|
|
56
|
+
| `/graph-search` | Filtered node search backing the `/graph` page filter chips. |
|
|
57
|
+
| `/graph-subgraph` | Neighbourhood expansion around a focal node. |
|
|
58
|
+
| `/graph-delete` | Soft-trash a node (sets `_trashed:true`). |
|
|
59
|
+
| `/graph-restore` | Undo trash. |
|
|
60
|
+
| `/graph-labels-in-graph` | Distinct label list for the filter dropdown. |
|
|
61
|
+
| `/graph-default-view` | Account-scoped saved view (zoom, focal id, filters). |
|
|
62
|
+
|
|
63
|
+
### Artefacts and files
|
|
64
|
+
|
|
65
|
+
| Mount | Purpose |
|
|
66
|
+
|---|---|
|
|
67
|
+
| `/sidebar-artefacts` | Lists every editable artefact for the sidebar Artefacts view (KnowledgeDocuments + this account's IDENTITY / SOUL / KNOWLEDGE / specialist templates). |
|
|
68
|
+
| `/sidebar-artefact-content` | Reads a single artefact's bytes for the artefact pane. |
|
|
69
|
+
| `/sidebar-artefact-save` | Persists an artefact edit. |
|
|
70
|
+
| `/attachment` | Per-attachment binary fetch (images, PDFs, etc.). |
|
|
71
|
+
| `/files` | File browser CRUD (list, download, upload, delete). |
|
|
72
|
+
| `/file-attach` | Attaches an uploaded file to the active conversation. |
|
|
73
|
+
|
|
74
|
+
### Browser / device-browser
|
|
75
|
+
|
|
76
|
+
| Mount | Purpose |
|
|
77
|
+
|---|---|
|
|
78
|
+
| `/browser` | Programmatic Chromium launcher used by `personal-assistant` browser-automation flows. |
|
|
79
|
+
| `/browser-iframe` | Browser-iframe event ingest from the in-app preview surface. |
|
|
80
|
+
| `/device-browser` | Drives the device's own browser tab (VNC Chromium on Pi). |
|
|
81
|
+
|
|
82
|
+
### Diagnostics
|
|
83
|
+
|
|
84
|
+
| Mount | Purpose |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `/logs` | Server log tail with `type=stream\|error\|sse` and `conversationId` filters; powers the in-chat **View logs** popover (see [`internals.md`](internals.md) "Conversations modal — View logs"). |
|
|
87
|
+
| `/events` | Generic SSE event ingest from the UI client. |
|
|
88
|
+
| `/log-ingest` | Loopback-only structured log ingest for MCP and PTY-spawn observability lines (see [`admin-session.md`](admin-session.md) "Memory MCP write-path outcome lines"). |
|
|
89
|
+
| `/claude-info` | Returns Claude CLI binary path, version, and OAuth status. |
|
|
90
|
+
| `/claude-capabilities` | Returns the resolved capability matrix the UI uses to gate features. |
|
|
91
|
+
| `/agents` | Lists every installed agent template; supports `DELETE /:slug` for user-created public agents and `POST /:slug/project` for project assignment. |
|
|
92
|
+
| `/cloudflare` | Tunnel setup surface — see [`cloudflare.md`](cloudflare.md) for the OAuth flow. |
|
|
93
|
+
| `/linkedin-ingest` | LinkedIn Basic Data Export ingest entry point (see [`linkedin-extension.md`](linkedin-extension.md)). |
|
|
94
|
+
| `/health-brand` | Brand-process liveness + 1 s Neo4j probe. Returns `{ok, processStartedAt, version, conversationDb: 'ok'\|'error', uptimeMs}`. The `processStartedAt` is captured at module load, so a stale value after an armed restart means the brand process never came back. |
|
|
95
|
+
| `/system-stats` | Host CPU / RAM / load probe. See next section. |
|
|
96
|
+
|
|
97
|
+
The companion `/api/admin/version` and `/api/admin/actions` routes are
|
|
98
|
+
served by `maxy-edge.service`, not this aggregator. The edge process
|
|
99
|
+
keeps the upgrade view alive while the brand service restarts.
|
|
100
|
+
|
|
101
|
+
## System-stats widget
|
|
102
|
+
|
|
103
|
+
Source:
|
|
104
|
+
[`server/routes/admin/system-stats.ts`](../../../ui/server/routes/admin/system-stats.ts)
|
|
105
|
+
(route) and `SystemStatsWidget` in
|
|
106
|
+
[`platform/ui/app/Sidebar.tsx`](../../../ui/app/Sidebar.tsx)
|
|
107
|
+
(consumer). CSS lives under `.system-stats*` in
|
|
108
|
+
[`platform/ui/app/globals.css`](../../../ui/app/globals.css).
|
|
109
|
+
|
|
110
|
+
**What the widget shows.** A compact two-line block at the foot of the
|
|
111
|
+
sidebar reading `CPU 73% · RAM 71%` plus a thin saturation bar tracking
|
|
112
|
+
the larger of the two figures. Hidden when the sidebar is collapsed to
|
|
113
|
+
its 56 px icon rail.
|
|
114
|
+
|
|
115
|
+
**Where the numbers come from.** `GET /api/admin/system-stats` returns a
|
|
116
|
+
snapshot for the host. On Linux the route reads `/proc/stat` twice 100 ms
|
|
117
|
+
apart and computes `cpuPct = 1 - idleDelta / totalDelta`; `memUsedPct`
|
|
118
|
+
comes from `(MemTotal - MemAvailable) / MemTotal` in `/proc/meminfo`; the
|
|
119
|
+
three load averages come from `/proc/loadavg`. A single-flight module
|
|
120
|
+
cache means concurrent callers share one in-flight pair of `/proc/stat`
|
|
121
|
+
reads. On darwin and other non-Linux platforms the route falls back to
|
|
122
|
+
`os.totalmem() / os.freemem() / os.loadavg()` and returns `cpuPct: null`
|
|
123
|
+
— the widget renders a dash rather than fake a value.
|
|
124
|
+
|
|
125
|
+
**Refresh cadence.** The widget polls every 5 s
|
|
126
|
+
(`SYSTEM_STATS_POLL_MS`). Polling pauses while `document.hidden` is true
|
|
127
|
+
(tab in background) and resumes on `visibilitychange`. On unmount the
|
|
128
|
+
interval is torn down and the visibility listener removed.
|
|
129
|
+
|
|
130
|
+
**Thresholds.**
|
|
131
|
+
|
|
132
|
+
| Class | Trigger | Visual |
|
|
133
|
+
|---|---|---|
|
|
134
|
+
| `.system-stats--warn` | `cpuPct >= 0.9` **or** `memUsedPct >= 0.9` | Block text + bar fill turn `--danger` red. |
|
|
135
|
+
| `.system-stats--crit` | `cpuPct >= 0.98` **or** `memUsedPct >= 0.98` | Adds a 1.2 s pulsing background animation (`@keyframes system-stats-crit-pulse`) on top of the warn colour. |
|
|
136
|
+
| `.system-stats__fig--warn` | Per-figure: applied to the specific CPU or RAM span that breached `0.9`. | Same red colour, lets the operator see which of the two figures crossed first. |
|
|
137
|
+
|
|
138
|
+
The warn threshold matches the threshold the operator most commonly
|
|
139
|
+
cares about (a fully-loaded 4-core Pi at 16 GiB RAM crosses 0.9 long
|
|
140
|
+
before anything else on the host notices). The crit threshold pulses
|
|
141
|
+
because it is the band where a swap-thrash episode becomes likely.
|
|
142
|
+
|
|
143
|
+
**Failure handling.** Any read or parse error inside the route returns
|
|
144
|
+
HTTP 200 with `{degraded: true, reason, sampledAtMs}` so the widget
|
|
145
|
+
keeps showing its last-known value instead of flashing zeros. Failed
|
|
146
|
+
fetches log `[admin-ui] system-stats-fetch-failed status=<code>` (or
|
|
147
|
+
`reason=<message>`) to the browser console; successful polls are silent
|
|
148
|
+
client-side. Server-side every poll logs one
|
|
149
|
+
`[system-stats] poll cpuPct=<f3> memUsedPct=<f3> loadAvg1=<f2> swapUsedPct=<f3> platform=<linux|darwin|other> ms=<n>`
|
|
150
|
+
line; errors emit
|
|
151
|
+
`[system-stats] error file=<path|parse> reason=<message>`.
|
|
152
|
+
|
|
153
|
+
**Diagnostic grep.**
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
grep '\[system-stats\] poll' ~/.${brand}/logs/server.log | tail -20
|
|
157
|
+
grep '\[system-stats\] error' ~/.${brand}/logs/server.log | tail
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
A 0.000 reading that persists across many polls while `top` shows load
|
|
161
|
+
is the delta-cache regression signature (the single-flight promise was
|
|
162
|
+
not released).
|
|
163
|
+
|
|
164
|
+
## Sidebar surfaces
|
|
165
|
+
|
|
166
|
+
The sidebar is the entire left column of the admin UI. Its full layout,
|
|
167
|
+
responsive breakpoints, drag-resize behaviour, and the
|
|
168
|
+
new-session strip / nav rows / sessions list / footer ordering are
|
|
169
|
+
documented in
|
|
170
|
+
[`platform.md`](platform.md) "The Web Interface" — that paragraph is
|
|
171
|
+
authoritative. This section names the surfaces and what backs each.
|
|
172
|
+
|
|
173
|
+
| Surface | What it does | Backed by |
|
|
174
|
+
|---|---|---|
|
|
175
|
+
| `+ New session` button | Opens `NewSessionModal`, which POSTs `{channel, permissionMode, model, initialMessage}` to `/api/admin/claude-sessions`. | `claude-sessions.ts` |
|
|
176
|
+
| Mode trigger | Per-`(accountId, userId)` `SpawnPreference` for `permissionMode` and `model`; persists across reload, tab, device. | `session-defaults.ts` |
|
|
177
|
+
| Nav rows (Chat / People / Agents / Projects / Tasks / Artefacts) | People, Agents, Tasks open the artefact-pane Graph filtered to the matching label. Chat selects the active conversation. Artefacts swaps the list to editable documents. | `graph-search.ts`, `graph-subgraph.ts`, `sidebar-artefacts.ts` |
|
|
178
|
+
| Sessions list (Active / Archived / All) | Live row store driven by SSE; manual reconcile button on the segmented control re-fetches the full id set. | `/claude-sessions/events`, `/claude-sessions` |
|
|
179
|
+
| Conversations row hover actions | Inline rename, archive, delete, JSONL view / download per row. The historical `.conversations-modal` CSS block exists in `globals.css` but is no longer mounted from any TSX — Sidebar.tsx now owns every per-row affordance directly. | `claude-sessions.ts` |
|
|
180
|
+
| Artefacts list | Lists every KnowledgeDocument plus this account's IDENTITY / SOUL / KNOWLEDGE / specialist templates. Click opens the artefact pane. | `sidebar-artefacts.ts`, `sidebar-artefact-content.ts`, `sidebar-artefact-save.ts` |
|
|
181
|
+
| System-stats widget | CPU / RAM widget at the foot of the sidebar. | `system-stats.ts` (see above) |
|
|
182
|
+
| Footer | Operator avatar, name, role, and the actions popover. | `session.ts` |
|
|
183
|
+
|
|
184
|
+
## Artefact pane
|
|
185
|
+
|
|
186
|
+
The right-hand pane that opens when the operator selects an artefact,
|
|
187
|
+
clicks a project (Graph view), or opens Browser / Data / Graph from the
|
|
188
|
+
menu. It holds the surface side-by-side with the conversation so the
|
|
189
|
+
chat stays live.
|
|
190
|
+
|
|
191
|
+
- Editable artefacts (KnowledgeDocuments + the account's own IDENTITY /
|
|
192
|
+
SOUL / KNOWLEDGE) auto-save on type via
|
|
193
|
+
`POST /api/admin/sidebar-artefact-save`.
|
|
194
|
+
- Read-only artefacts (specialist agent templates) cannot be edited
|
|
195
|
+
because they ship with Maxy and would be overwritten on the next
|
|
196
|
+
install.
|
|
197
|
+
- PDF artefacts render inline; non-PDF binaries fall back to a Download
|
|
198
|
+
button when the browser has no native viewer.
|
|
199
|
+
- Orphan rows (no readable file on disk, unsupported content type) show
|
|
200
|
+
a one-line banner explaining the skip instead of opening to a blank
|
|
201
|
+
pane.
|
|
202
|
+
|
|
203
|
+
Below 1080 px the pane hides and Browser / Data / Graph open as
|
|
204
|
+
full-window pages instead. The chat-and-pane divider is drag-resizable
|
|
205
|
+
on every admin page; double-click resets to half the available width
|
|
206
|
+
(viewport minus sidebar), clamped to the per-pane min-width floors. The
|
|
207
|
+
chosen width is remembered across reloads.
|
|
208
|
+
|
|
209
|
+
## Health vs version
|
|
210
|
+
|
|
211
|
+
Two endpoints, two surfaces, two restart-survival roles:
|
|
212
|
+
|
|
213
|
+
- `GET /api/admin/health-brand` (this aggregator) — brand-process
|
|
214
|
+
liveness. `processStartedAt` resets on every brand-service restart;
|
|
215
|
+
Neo4j probe is bounded to 1 s and reports
|
|
216
|
+
`conversationDb: 'ok' | 'error'`. Use this to confirm the brand
|
|
217
|
+
process came back after `setup-tunnel.sh`'s armed restart.
|
|
218
|
+
- `GET /api/admin/version` (maxy-edge) — installer / brand version
|
|
219
|
+
string. Hosted on `maxy-edge.service` so the Software Update modal
|
|
220
|
+
can read it while the brand service is mid-restart.
|
|
221
|
+
|
|
222
|
+
## Related references
|
|
223
|
+
|
|
224
|
+
- [`platform.md`](platform.md) — UI layout, session reconcile model,
|
|
225
|
+
artefact pane behaviour in full detail, breakpoints.
|
|
226
|
+
- [`admin-session.md`](admin-session.md) — admin session token, PIN-
|
|
227
|
+
rebind, SDK-resume, turn-recorder lifecycle, structured log lines.
|
|
228
|
+
- [`internals.md`](internals.md) — retrieval pipeline, recorder
|
|
229
|
+
auto-archive, graph-prune-denylist surface, conversation logs.
|
|
230
|
+
- [`cloudflare.md`](cloudflare.md) — tunnel setup OAuth flow that
|
|
231
|
+
`/api/admin/cloudflare/setup` drives.
|
|
232
|
+
- [`deployment.md`](deployment.md) — Pi setup; the brand-service / edge-
|
|
233
|
+
service split that the health-vs-version table above relies on.
|
|
@@ -124,7 +124,7 @@ The `sessionKey` parameter on `schedule-event` automatically creates the `PART_O
|
|
|
124
124
|
|
|
125
125
|
## ICS calendar files
|
|
126
126
|
|
|
127
|
-
Export events as `.ics` files so users can add them to Apple Calendar, Google Calendar, or Outlook. Use `schedule-export-ics` with the event IDs, then
|
|
127
|
+
Export events as `.ics` files so users can add them to Apple Calendar, Google Calendar, or Outlook. Use `schedule-export-ics` with the event IDs, then deliver the returned path via the `file-presentation` skill (the skill picks `SendUserFile` or `file-attach` by inventory).
|
|
128
128
|
|
|
129
129
|
Import `.ics` files uploaded by the user. Use `schedule-import-ics` with the attachment path. Present the extracted events for confirmation before creating them via `schedule-event`.
|
|
130
130
|
|
|
@@ -263,7 +263,7 @@ eagerTool(server, "time-resolve", "Any activity involving time (date, timestamp,
|
|
|
263
263
|
// ---------------------------------------------------------------------------
|
|
264
264
|
// schedule-export-ics
|
|
265
265
|
// ---------------------------------------------------------------------------
|
|
266
|
-
eagerTool(server, "schedule-export-ics", "Export one or more scheduled events as an .ics (iCalendar) file. Returns the file path
|
|
266
|
+
eagerTool(server, "schedule-export-ics", "Export one or more scheduled events as an .ics (iCalendar) file. Returns the file path; deliver it to the user via the `file-presentation` skill (the skill picks SendUserFile or file-attach by inventory). Recurring events with daily/weekly/monthly cron patterns produce RRULE; unmappable cron patterns produce individual VEVENTs per occurrence.", {
|
|
267
267
|
eventIds: z.array(z.string()).min(1).describe("Array of event IDs (UUIDs) to export"),
|
|
268
268
|
}, async ({ eventIds }) => {
|
|
269
269
|
if (!accountId)
|
|
@@ -279,7 +279,7 @@ eagerTool(server, "schedule-export-ics", "Export one or more scheduled events as
|
|
|
279
279
|
parts.push(`${result.rruleFallback} recurring event(s) expanded to individual occurrences`);
|
|
280
280
|
if (result.notFound.length > 0)
|
|
281
281
|
parts.push(`Not found: ${result.notFound.join(", ")}`);
|
|
282
|
-
parts.push(`\
|
|
282
|
+
parts.push(`\nDeliver the .ics file to the user via the file-presentation skill; path: ${result.outputPath}`);
|
|
283
283
|
return { content: [{ type: "text", text: parts.join("\n") }] };
|
|
284
284
|
}
|
|
285
285
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,aAAa,CAAC,YAAY,CAAC,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,4EAA4E;AAC5E,wEAAwE;AACxE,uEAAuE;AACvE,8DAA8D;AAC9D,MAAM,MAAM,GAAQ,IAAI,SAAS,CAAC;IAChC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,+CAA+C;AAC/C,0EAA0E;AAC1E,0EAA0E;AAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC;AACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,SAAS,IAAI,MAAM,IAAI,CAAC,CAAC;AAE7E,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,QAAQ,qCAAqC,CACnE,CAAC;IACF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,QAAQ,6JAA6J;aAC/K;SACF;QACD,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC;AACD,gEAAgE;AAChE,+DAA+D;AAC/D,uEAAuE;AACvE,mEAAmE;AACnE,0EAA0E;AAC1E,+CAA+C;AAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;AACzC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;AACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;AAEtD,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG,CAAC;KACxB,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACpD,QAAQ,EAAE;KACV,QAAQ,CAAC,cAAc,CAAC,CAAC;AAI5B,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,gBAAgB,EAChB,gTAAgT,EAChT;IACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACtE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;IAC7I,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAC7G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACxG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;QACjG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACtF,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iHAAiH,CAAC;CAC1I,EACD,KAAK,EAAE,MAUN,EAAE,EAAE;IACH,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,GAAG,MAAM;YACT,SAAS;YACT,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;YAC1C,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE;SAC5E,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,mBAAmB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,WAAW,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxF,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACzH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,eAAe,EACf,oGAAoG,EACpG;IACE,MAAM,EAAE,iBAAiB;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC7F,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IAC5F,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACtG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAClE,EACD,KAAK,EAAE,MAAgG,EAAE,EAAE;IACzG,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,EAAE,CAAC;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;QACrI,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC9G,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,cAAc,EACd,yFAAyF,EACzF;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CAChD,EACD,KAAK,EAAE,EAAE,OAAO,EAAuB,EAAE,EAAE;IACzC,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAC,aAAa;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAC9E,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,UAAU,CAAC;QAEf,MAAM,KAAK,GAAG;YACZ,UAAU,KAAK,CAAC,IAAI,EAAE;YACtB,OAAO,KAAK,CAAC,OAAO,EAAE;YACtB,WAAW,KAAK,CAAC,WAAW,EAAE;YAC9B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;YAC9D,WAAW,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;YACtD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YACzE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YACrD,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;YAC3D,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YACrD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YAC7E,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YAC/F,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;YACxC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;YAC/C,EAAE;YACF,mBAAmB,QAAQ,EAAE;YAC7B,EAAE;YACF,YAAY,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,eAAe,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;SAChH,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAElD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC7G,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,iBAAiB,EACjB,6NAA6N,EAC7N;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACxD,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IAC1F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACrF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACvE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACtF,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CAChG,EACD,KAAK,EAAE,MAaN,EAAE,EAAE;IACH,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qCAAqC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/G,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,iBAAiB,EACjB,gJAAgJ,EAChJ;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAC5D,EACD,KAAK,EAAE,MAA0C,EAAE,EAAE;IACnD,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,cAAc,EACd,2OAA2O,EAC3O;IACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;CACzG,EACD,KAAK,EAAE,EAAE,UAAU,EAA0B,EAAE,EAAE;IAC/C,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,kBAAkB,UAAU,MAAM,MAAM,KAAK,QAAQ,GAAG,CAAC,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACtH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,qBAAqB,EACrB,0VAA0V,EAC1V;IACE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CACtF,EACD,KAAK,EAAE,EAAE,QAAQ,EAA0B,EAAE,EAAE;IAC7C,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG;YACZ,YAAY,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,UAAU,EAAE;SAClE,CAAC;QACF,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,qCAAqC,CAAC,CAAC;QACnG,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,wDAAwD,CAAC,CAAC;QAC1H,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,8EAA8E,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9G,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,qBAAqB,EACrB,qNAAqN,EACrN;IACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CAC5F,EACD,KAAK,EAAE,EAAE,QAAQ,EAAwB,EAAE,EAAE;IAC3C,IAAI,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC7F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAkB,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;QAC/F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,CAAC,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,CAAC,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACrF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;QAEpH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,WAAW,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAO,MAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -40,7 +40,7 @@ Confirm the slug with the operator before publishing. The slug is one or more `/
|
|
|
40
40
|
|
|
41
41
|
## File delivery
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
See the `file-presentation` skill for how to deliver a generated file to the operator. The skill picks the right tool by inventory (`SendUserFile` on the native Claude Code surface, `file-attach` on web chat and WhatsApp), so this prompt does not name a tool.
|
|
44
44
|
|
|
45
45
|
## Optional capabilities
|
|
46
46
|
|
|
@@ -342,7 +342,7 @@ Report `DONE` only after:
|
|
|
342
342
|
- The **web bundle** exists at `output/web/` and as a zipped `output/<slug>-web.zip` — see `property-brochure → Web bundle` for what it contains. The bundle includes both `brochure.html` and the companion `index.html` (see `property-brochure → Page`), plus a copy of the web PDF named simply `<property_slug>-brochure.pdf` to match the in-page Download links. Smoke-test was performed: an isolated HTTP server returned 200 for every referenced asset (HTML, web-tier images, jpg snapshots, the bundled PDF), and **both** `brochure.html` and `index.html` rendered correctly. Typical zip is 30–50 MB for a 16-page folio.
|
|
343
343
|
- **Back-page QR codes are clickable.** Each QR is wrapped in an `<a target="_blank">` tag and accompanied by a visible underlined URL beneath the label, so a digital reader can click instead of scan. See `property-brochure → Back-page QR codes`.
|
|
344
344
|
- The user-facing report names which steps ran and which were reused, **and the chosen orientation**, **and the path to both the canonical print archive and the web zip**.
|
|
345
|
-
- **The web PDF and the web zip are delivered to the user via
|
|
345
|
+
- **The web PDF and the web zip are delivered to the user via the `file-presentation` skill** (which picks `SendUserFile` or `file-attach` by inventory and carries the 30 MiB ceiling and oversize public-URL workaround — see the skill). **Brochure-specific oversize note:** the web PDF is well within the ceiling (~7–15 MB at JPEG-embedded); the web zip can exceed 30 MiB when the bundle carries many photos. If `du -h <slug>-web.zip` reports > 30 MiB, follow the skill's oversize path for the zip (public URL at `<tunnel-url>/files/output/<slug>-web.zip` — the bundle already lives under `output/` which the tunnel serves) while the web PDF still goes via the inventory path.
|
|
346
346
|
- No image was read in violation of the 2000px rule (verifiable: every image read should have been preceded by a `sips`/`identify` measurement, and any over-threshold image was previewed via `/tmp/`).
|
|
347
347
|
|
|
348
348
|
If any condition is unmet, report `DONE_WITH_CONCERNS` and list the gap.
|
|
@@ -82,6 +82,14 @@
|
|
|
82
82
|
--serif: 'Cormorant Garamond', 'EB Garamond', Garamond, serif;
|
|
83
83
|
--body-serif: 'Lora', 'Source Serif Pro', Georgia, serif;
|
|
84
84
|
--sans: 'Inter', system-ui, -apple-system, sans-serif;
|
|
85
|
+
|
|
86
|
+
/* BRAND_TOKENS_OVERRIDE_SLOT — branded register MUST emit a `<style id="brand-tokens">`
|
|
87
|
+
block here, AFTER the template defaults, so cascade ordering selects the brand
|
|
88
|
+
values. The block replaces --paper, --paper-2, --ink, --ink-2, --gold,
|
|
89
|
+
--gold-soft, --serif, --body-serif, --sans (plus the template.html-vocabulary
|
|
90
|
+
twins per build.md → Brand-token override emission). Without this slot the agent
|
|
91
|
+
has nowhere to inject and the landing page ships in Premium register even when
|
|
92
|
+
register=branded. */
|
|
85
93
|
}
|
|
86
94
|
|
|
87
95
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
@@ -64,6 +64,14 @@
|
|
|
64
64
|
--serif: 'Cormorant Garamond', 'EB Garamond', 'Garamond', 'Times New Roman', serif;
|
|
65
65
|
--body-serif: 'Lora', 'Source Serif Pro', 'Georgia', serif;
|
|
66
66
|
--sans: 'Inter', 'Söhne', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
67
|
+
|
|
68
|
+
/* BRAND_TOKENS_OVERRIDE_SLOT — branded register MUST emit a `<style id="brand-tokens">`
|
|
69
|
+
block here, AFTER the template defaults, so cascade ordering selects the brand
|
|
70
|
+
values. The block replaces --paper-25, --paper-50, --paper-100, --gold-700,
|
|
71
|
+
--gold-500, --gold-300, --ink, --serif, --body-serif, --sans (plus the
|
|
72
|
+
index.html-vocabulary twins per build.md → Brand-token override emission). Without
|
|
73
|
+
this slot the agent has nowhere to inject and the brochure ships in Premium
|
|
74
|
+
register even when register=branded. */
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|