@elitedcs/ghl-mcp 3.89.0-beta.4 → 3.89.0-beta.5

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.
@@ -98,7 +98,7 @@ For list-valued structure the brief can override:
98
98
  "users": { "fillFrom": "team.staff", "transform": "userList", "default": [] }
99
99
  ```
100
100
 
101
- - `stageList`: `["new lead","contacted",...]` → `[{ref: "stage.<slug>", name, position}]`. Workflows that point at `stage.*` refs resolve against whichever set won. The client's list is the whole pipeline: a referenced default stage the client did not name is mapped onto one of theirs through the default stage's `aliases` array (whole-word match on the slug; each client stage goes to at most one default stage, the one whose alias matches it most specifically, and the loser tries its next alias; a stage still working the lead is never mapped onto a terminal one such as lost, no show, no sale, closed, won, not a fit, disqualified, dead, cancelled, declined, DND, churned, lapsed or archived; the first default stage falls back to the client's first stage), and the mapping is noted. A workflow may carry `stagePreference: { "stage.contacted": ["no show", ...] }` to prefer a client stage for one ref in that workflow only (No-Show Rescue → the client's "No show" stage); it is stripped from the plan. Only when nothing maps is the default stage kept, placed in preset order right after the client stage the previous preset stage landed on (else before the one the next preset stage landed on, else before the first terminal stage), never after Lost. Never ship a dead ref.
101
+ - `stageList`: `["new lead","contacted",...]` → `[{ref: "stage.<slug>", name, position}]`. Workflows that point at `stage.*` refs resolve against whichever set won. The client's list is the whole pipeline: a referenced default stage the client did not name is mapped onto one of theirs through the default stage's `aliases` array (whole-word match on the slug; an alias written `"=consultation"` matches only a stage named exactly that; a client stage another default stage's alias names more specifically is left to that stage; each client stage goes to at most one default stage, the one whose alias matches it most specifically, and the loser tries its next alias; a stage still working the lead is never mapped onto a terminal one such as lost, no show, no sale, closed, won, not a fit, disqualified, dead, cancelled, declined, DND, churned, lapsed or archived; the first default stage falls back to the client's first stage), and the mapping is noted. A workflow may carry `stagePreference: { "stage.contacted": ["no show", ...] }` to prefer a client stage for one ref in that workflow only (No-Show Rescue → the client's "No show" stage); it is stripped from the plan. Only when nothing maps is the default stage kept, placed in preset order right after the client stage the previous preset stage landed on (else before the one the next preset stage landed on, else before the first terminal stage), never after Lost. Never ship a dead ref.
102
102
  - `userList` (v2): each `brief.team.staff[]` entry → `{ref: "user.<slug of name>", firstName, lastName, email, role, phone?}`. `role` is `admin` for the first person / anyone whose title says owner, admin or director; `user` otherwise. Emails must be unique.
103
103
 
104
104
  ### 4. `templates` and `templateRef` (v2) — every message lives once, complete