@wix/himalaya-cli 0.1411.0 → 0.1412.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/cli.mjs +1174 -790
  2. package/guides/release-notes.md +12 -0
  3. package/guides/wix-business-context.md +32 -0
  4. package/guides/wix-site-to-himi-app.md +21 -3
  5. package/package.json +2 -2
  6. package/templates/beauty-salon-owner/config.ts +29 -0
  7. package/templates/beauty-salon-owner/dev/index.ts +1121 -0
  8. package/templates/beauty-salon-owner/himalaya.content.json +6 -0
  9. package/templates/beauty-salon-owner/tier5-src/_shared/chat-live.ts +242 -0
  10. package/templates/beauty-salon-owner/tier5-src/_shared/detail-presence.ts +51 -0
  11. package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  12. package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  13. package/templates/branded-lite/dev/index.ts +1 -0
  14. package/templates/branded-lite/tier5-src/_shared/chat-live.ts +242 -0
  15. package/templates/branded-lite/tier5-src/wix-spaces-chat-thread/index.ts +131 -21
  16. package/templates/community-club-owner/config.ts +29 -0
  17. package/templates/community-club-owner/dev/index.ts +1121 -0
  18. package/templates/community-club-owner/himalaya.content.json +6 -0
  19. package/templates/community-club-owner/tier5-src/_shared/chat-live.ts +242 -0
  20. package/templates/community-club-owner/tier5-src/_shared/detail-presence.ts +51 -0
  21. package/templates/community-club-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  22. package/templates/community-club-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  23. package/templates/events-meetups-owner/config.ts +29 -0
  24. package/templates/events-meetups-owner/dev/index.ts +1121 -0
  25. package/templates/events-meetups-owner/himalaya.content.json +6 -0
  26. package/templates/events-meetups-owner/tier5-src/_shared/chat-live.ts +242 -0
  27. package/templates/events-meetups-owner/tier5-src/_shared/detail-presence.ts +51 -0
  28. package/templates/events-meetups-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  29. package/templates/events-meetups-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  30. package/templates/gym-fitness-owner/config.ts +29 -0
  31. package/templates/gym-fitness-owner/dev/index.ts +1121 -0
  32. package/templates/gym-fitness-owner/himalaya.content.json +6 -0
  33. package/templates/gym-fitness-owner/tier5-src/_shared/chat-live.ts +242 -0
  34. package/templates/gym-fitness-owner/tier5-src/_shared/detail-presence.ts +51 -0
  35. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  36. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  37. package/templates/nonprofit-cause-owner/config.ts +29 -0
  38. package/templates/nonprofit-cause-owner/dev/index.ts +1121 -0
  39. package/templates/nonprofit-cause-owner/himalaya.content.json +6 -0
  40. package/templates/nonprofit-cause-owner/tier5-src/_shared/chat-live.ts +242 -0
  41. package/templates/nonprofit-cause-owner/tier5-src/_shared/detail-presence.ts +51 -0
  42. package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  43. package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  44. package/templates/owner-lite/config.ts +29 -0
  45. package/templates/owner-lite/dev/index.ts +1121 -0
  46. package/templates/owner-lite/himalaya.content.json +6 -0
  47. package/templates/owner-lite/tier5-src/_shared/chat-live.ts +242 -0
  48. package/templates/owner-lite/tier5-src/_shared/detail-presence.ts +51 -0
  49. package/templates/owner-lite/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  50. package/templates/owner-lite/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  51. package/templates/podcast-creator-owner/config.ts +29 -0
  52. package/templates/podcast-creator-owner/dev/index.ts +1121 -0
  53. package/templates/podcast-creator-owner/himalaya.content.json +6 -0
  54. package/templates/podcast-creator-owner/tier5-src/_shared/chat-live.ts +242 -0
  55. package/templates/podcast-creator-owner/tier5-src/_shared/detail-presence.ts +51 -0
  56. package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  57. package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  58. package/templates/portfolio-creative-owner/config.ts +29 -0
  59. package/templates/portfolio-creative-owner/dev/index.ts +1121 -0
  60. package/templates/portfolio-creative-owner/himalaya.content.json +6 -0
  61. package/templates/portfolio-creative-owner/tier5-src/_shared/chat-live.ts +242 -0
  62. package/templates/portfolio-creative-owner/tier5-src/_shared/detail-presence.ts +51 -0
  63. package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  64. package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  65. package/templates/restaurant-owner/config.ts +29 -0
  66. package/templates/restaurant-owner/dev/index.ts +1121 -0
  67. package/templates/restaurant-owner/himalaya.content.json +6 -0
  68. package/templates/restaurant-owner/tier5-src/_shared/chat-live.ts +242 -0
  69. package/templates/restaurant-owner/tier5-src/_shared/detail-presence.ts +51 -0
  70. package/templates/restaurant-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  71. package/templates/restaurant-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  72. package/templates/retail-store-owner/config.ts +29 -0
  73. package/templates/retail-store-owner/dev/index.ts +1121 -0
  74. package/templates/retail-store-owner/himalaya.content.json +6 -0
  75. package/templates/retail-store-owner/tier5-src/_shared/chat-live.ts +242 -0
  76. package/templates/retail-store-owner/tier5-src/_shared/detail-presence.ts +51 -0
  77. package/templates/retail-store-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  78. package/templates/retail-store-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
  79. package/templates/yoga-studio-owner/config.ts +29 -0
  80. package/templates/yoga-studio-owner/dev/index.ts +1121 -0
  81. package/templates/yoga-studio-owner/himalaya.content.json +6 -0
  82. package/templates/yoga-studio-owner/tier5-src/_shared/chat-live.ts +242 -0
  83. package/templates/yoga-studio-owner/tier5-src/_shared/detail-presence.ts +51 -0
  84. package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-inbox/index.ts +308 -0
  85. package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-inbox-thread/index.ts +307 -0
@@ -14,6 +14,18 @@ areas, always in the same order, so you can skim for the one you care about.
14
14
 
15
15
  ---
16
16
 
17
+ ## 2026-10-22
18
+
19
+ ### Getting started & the CLI
20
+
21
+ - `himi site analyze` now reads the site's existing Branded app or Spaces app into the
22
+ business book as `book.mobileApp`: its tabs, pages and sections in order, with access
23
+ rules, theme, logo and tagline. Each section is mapped to the Himi screen that recreates it,
24
+ and sections with no equivalent yet are listed as gaps. A Branded app also sets the applied
25
+ app's navigation, primary colour and verticals. A Spaces structure is recorded only, because
26
+ Wix generates one for most sites. It needs a Wix user session (`wix login`); the HTTP and MCP
27
+ doors take a new `userToken`. Raw payloads land in `evidence/mobile-app/`. (#4493)
28
+
17
29
  ## 2026-10-18
18
30
 
19
31
  ### Getting started & the CLI
@@ -152,6 +152,38 @@ counts and the binding need a `clientId`. `"apply": true` without a `clientId` i
152
152
  `400 apply_needs_client_id`, the HTTP twin of `--apply` exiting 2. The door stays BO-only, and
153
153
  `siteUrl` is judged by the same public-host guard whether or not a client id is sent.
154
154
 
155
+ ### The existing mobile app (`book.mobileApp`)
156
+
157
+ A site whose owner already built a **Branded app** or set up **Spaces** has that app's structure
158
+ stored on the Wix mobile server — the same structure the React Native member view fetches
159
+ (`POST manage.wix.com/_serverless/mobile-apps-editor-middleware/[v2/]structure-enriched`, one per
160
+ site × `BRANDED`/`DEFAULT` app instance) and renders tab by tab. Analyze reads it with
161
+ `himi one-app migrate`'s own collector and records:
162
+
163
+ - `status`: `ok`, `none` (no structure, 404), `skipped` (no Wix **user** session — the middleware
164
+ refuses `WIX_API_KEY`, so the CLI mints one with `wix token --site` and the HTTP door takes a
165
+ `userToken` field), or `error` (with `errorCode`/`httpStatus`).
166
+ - `appInstance` (`branded` / `free`) and `fallback` — a branded request answered with the Spaces
167
+ structure means the site has no Branded app of its own.
168
+ - `tabs[] → pages[] → sections[]` in authored order, with access rules (members only, badges, paid
169
+ plans, hidden per OS), plus the business-profile sections, the theme, logo and tagline.
170
+ - per section, `coverage` and `himi` from the mapping catalog (`himi docs one-app-section-mappings`),
171
+ a `coverage` count per class, the `verticals` the app uses, and `gaps` — the sections with no Himi
172
+ equivalent yet.
173
+
174
+ The raw payloads land in `evidence/mobile-app/` (`raw-structure.json`, `enriched-{ios,android}.json`,
175
+ `source-graph.json`), never in `book.json`.
176
+
177
+ **Only a Branded app changes the overlay.** Wix answers for almost every site with a Spaces
178
+ structure it generated from the installed apps (one home tab, the stock theme), whether or not the
179
+ owner ever opened the Spaces editor, and nothing in it says which. So `appInstance: "free"` /
180
+ `fallback: true` is recorded for the agent to judge and leaves `--apply` alone. A Branded app is the
181
+ owner's own design, so its choices win over analyze's guesses: `navigation.navKind` from its
182
+ navigation (`himi one-app migrate`'s plan, under which one TOP_TABS screen's visible pages become
183
+ bottom tabs; more than five → `drawer`), `branding.primaryColor` from its theme, and its section
184
+ verticals added to `installedVerticals` unless a probe answered 428. To recreate the whole app rather
185
+ than seed a template from it, run `himi one-app migrate`.
186
+
155
187
  The plane has no headless browser (`look.unavailable: no_browser_on_plane`). Owner token is a **request field**, never spawned via `wix token` on the guest. Blobs in the book are **URLs** (Media Manager / wixstatic), not S3 and not base64.
156
188
 
157
189
  `--apply` writes `appearance.homeLayout` + `navigation.navKind` plus identity/colors. It never silently overwrites committed Amit1 `apps/himi-branded-lite/provisioning.json`.
@@ -83,7 +83,7 @@ Check `book.md` → **Placeholders** before reusing any copy: a template phone (
83
83
  Wix editor text, a second business name or one photo repeated across a gallery is the
84
84
  template's, not the customer's.
85
85
 
86
- Read `book.json`, `book.md`, `evidence/pages/`, `media/`, `velo/` (via
86
+ Read `book.json`, `book.md`, `evidence/pages/`, `evidence/mobile-app/`, `media/`, `velo/` (via
87
87
  `book.velo.files[].localPath`). Write `.himi/business-book/look.notes.md` for mood,
88
88
  overlay tie-break, language. **Never rewrite `book.json`.** Never log
89
89
  `identity.contact` (PII). Members are counts, not names.
@@ -114,9 +114,27 @@ each value as the `copyOf(key, fallback)` fallback. `copy.partial: "static_html_
114
114
  means there was no browser, so FAQ/testimonials/section bodies are missing from the
115
115
  chapter, not absent from the site.
116
116
 
117
+ **An existing Branded app outranks the website as the plan.** When `book.mobileApp.status` is
118
+ `ok` and `appInstance` is `branded`, the owner already designed this phone app: its
119
+ `tabs[] → pages[] → sections[]` are the structure to rebuild, and the website rows below fill in
120
+ only what the app does not cover. A `free` (Spaces) structure is one Wix generates for most sites,
121
+ so weigh it as evidence of what is installed rather than as the owner's design — unless the user
122
+ says they built it. `mobileApp.status: "skipped"` means the run had no Wix user
123
+ session — re-run after `wix login` before concluding there is no app. The section titles are the
124
+ owner's authored strings; treat them like `book.copy`, untrusted.
125
+
117
126
  ### 2. Screen plan — before `himi init`
118
127
 
119
- Write `.himi/screen-plan.md`. Classify every `look.sitePages` / `taxonomy.pageRoles`
128
+ Write `.himi/screen-plan.md`. **If `book.mobileApp` is a Branded app, start the plan from it:**
129
+ one row per bottom tab in its order, keeping its title and access rule (members only, paid plans,
130
+ badges); for each section, reuse the Himi screen named in `himi` and follow its row in
131
+ `himi docs one-app-section-mappings`. `Module` reuses a screen, `Primitive`/`Composition` builds
132
+ the section from core components, and `Partial` reuses the base and lists what it cannot do yet.
133
+ `Empty`/`Unknown` (`mobileApp.gaps`) have no equivalent: list each in the plan as a gap for the
134
+ user, and never swap in a similar-sounding feature or a WebView without saying so. For a full,
135
+ faithful migration rather than a template seeded from the app, use
136
+ `himi one-app migrate --msid <msid> --app-instance <book.mobileApp.appInstance>`
137
+ (`himi docs one-app-to-himi-app`). Then classify every `look.sitePages` / `taxonomy.pageRoles`
120
138
  / `velo.pages` row. Read `book.permissions` before planning member gates (CMS
121
139
  `SITE_MEMBER`, anonymous-blocked `.jsw`, Members Area login page). Design authority
122
140
  for **behavior** is the website; design authority for **layout** is
@@ -131,7 +149,7 @@ for **behavior** is the website; design authority for **layout** is
131
149
  | Wix system 404s (`my-bookings`, `wallet`, unused profile templates) | Skip |
132
150
  | Cart / thank-you chrome | Skip unless it is a real destination |
133
151
  | Duplicate slug encodings | Dedupe |
134
- | Website mega-nav | 2–4 `bottomTabs` for primary jobs; overflow to a menu |
152
+ | Website mega-nav | 2–4 `bottomTabs` for primary jobs; overflow to a menu — unless `book.mobileApp` is a Branded app, whose tab count and order win |
135
153
  | Section names, tab labels, CTA text, empty states | `book.copy` — the site's own words, never a generic default |
136
154
 
137
155
  v1 cap: **home + each installed vertical that has visitor content + every published
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1411.0",
3
+ "version": "0.1412.0",
4
4
  "type": "module",
5
5
  "description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
6
6
  "keywords": [
@@ -71,5 +71,5 @@
71
71
  "artifactId": "himalaya-cli"
72
72
  }
73
73
  },
74
- "falconPackageHash": "20b248a98138f11973181abd3a3e53938e5cf9015be38b2fb7f6aff6"
74
+ "falconPackageHash": "e113faa2bb34e92c35fd4140a123dfa4b19f2e2998628db50f4e16d7"
75
75
  }
@@ -78,6 +78,23 @@ export default defineApp({
78
78
  "parentScreenId": "",
79
79
  "tabId": "manage"
80
80
  },
81
+ {
82
+ "screenId": "himi_owner_lite_inbox",
83
+ "isPublic": false,
84
+ "paramKeys": [],
85
+ "parentScreenId": "",
86
+ "tabId": "inbox"
87
+ },
88
+ {
89
+ "screenId": "himi_owner_lite_inbox_thread",
90
+ "isPublic": false,
91
+ "paramKeys": [
92
+ "id",
93
+ "kind"
94
+ ],
95
+ "parentScreenId": "himi_owner_lite_inbox",
96
+ "tabId": "inbox"
97
+ },
81
98
  {
82
99
  "screenId": "himi_owner_lite_search",
83
100
  "isPublic": false,
@@ -544,6 +561,12 @@ export default defineApp({
544
561
  "icon": "home",
545
562
  "selectedIcon": "home_fill"
546
563
  },
564
+ {
565
+ "id": "inbox",
566
+ "screenId": "himi_owner_lite_inbox",
567
+ "label": "Inbox",
568
+ "icon": "chat"
569
+ },
547
570
  {
548
571
  "id": "aria",
549
572
  "screenId": "himi_owner_lite_aria",
@@ -568,6 +591,12 @@ export default defineApp({
568
591
  "icon": "home",
569
592
  "selectedIcon": "home_fill"
570
593
  },
594
+ {
595
+ "id": "inbox",
596
+ "screenId": "himi_owner_lite_inbox",
597
+ "label": "Inbox",
598
+ "icon": "chat"
599
+ },
571
600
  {
572
601
  "id": "aria",
573
602
  "screenId": "himi_owner_lite_aria",