frontpage-host 0.3.7 → 0.3.9

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/AGENTS.md CHANGED
@@ -280,7 +280,7 @@ AI Support Agent team guidance: administrators may set `guidanceEmail` through t
280
280
 
281
281
  ## Emails workspace workflows
282
282
 
283
- See [MAIL.md](./MAIL.md) for the complete save contract, reusable people picker directory, saved campaign recipients, Off-series enrollment and resume timing, all sender settings/null resets, suppression rules, Sent queries and details, and retry-safe examples. `frontpage mail save --file save.json` saves template and pending series together; it never sends. `frontpage mail people` reads the same site-scoped directory as the workspace. Use `frontpage help mail --json` for current commands and flags. No new CLI binary, API namespace or migration command is required. Hosted guides and article help must be updated through the Frontpage CLI.
283
+ See [MAIL.md](./MAIL.md) for the complete save contract, reusable people picker directory, saved campaign recipients, Off-series enrollment and resume timing, all sender settings/null resets, suppression rules, Sent queries and details, and retry-safe examples. `frontpage mail save --file save.json` saves template and pending series together; it never sends. New series default On; existing series retain their saved state. Save email steps before enrolling anyone. Check the returned series status before attaching it to a rule; an Off series holds enrollment until turned On. `frontpage mail people` reads the same site-scoped directory as the workspace. Use `frontpage help mail --json` for current commands and flags. No new CLI binary, API namespace or migration command is required. Hosted guides and article help must be updated through the Frontpage CLI.
284
284
 
285
285
  Rule placement: read a rule revision, then use `people workspace rules.place` with `id`, `owner` and `expectedRevision`. This only organizes the rule; it does not change its trigger or execution. New UI rules/attachments save paused. Generic attachment calls still need explicit `enabled:false` for paused creation. Saved optional conditions and exact duration minutes remain supported through CLI and agent calls.
286
286
 
package/CUSTOMER-INBOX.md CHANGED
@@ -198,7 +198,16 @@ Read the current settings version, then save this JSON as `website-settings.json
198
198
  frontpage customer-inbox put settings --site my-site --file website-settings.json --request-key website_search_off_001
199
199
  ```
200
200
 
201
- The support agent can call `website_search({query,cursor?})` and `website_read({path,cursor?})`. Both are bound to the active job's own public business website. They accept no other site ID, hostname, source path or credential. Searches reuse the existing text matcher and fetch at most four public pages per call. Results include matching URLs/excerpts, `scanned`, `discovered`, `unavailable`, `partial` and `nextCursor`.
201
+ The support agent can call `website_search({query,cursor?})` and `website_read({path,cursor?})`. Both are bound to the active job's own public business website. They accept no other site ID, hostname, source path or credential. Searches match focused keywords and fetch at most four public pages per call. Results include matching URLs/excerpts, `scanned`, `discovered`, `unavailable`, `partial` and `nextCursor`.
202
+
203
+ Use a focused query such as `repair pricing`. Follow a search `nextCursor` with the **same query**; start a changed query without a cursor. Read a promising result with `website_read({path:"/services"})`, using the returned site-relative path. Reads return up to 8,000 characters with `truncated` and `nextCursor`; continue with the **same path** to read more text. A changed page or expired cursor requires restarting without the cursor. Search previews are not complete evidence. An empty partial batch does not prove that the answer is absent.
204
+
205
+ Expected tool failures return `error`, `message`, `nextAction` and `retryable`. `website_cursor_invalid` explains how to restart the request. Page failures identify whether another result or a bounded retry is useful. `retryable` refers to a transient failure, not permission to repeat invalid input. The agent corrects recoverable inputs before escalating; revoked permissions and stale jobs still stop execution. No source files, private pages, credentials or external-site override become available.
206
+
207
+ `knowledge_read({query})` searches saved notes and enabled approved sources by keywords. Previews include matching passages and `hasMore:{notes,sources}`. When either flag is true, refine the subject to find the relevant item; do not treat the preview list as complete. Use `knowledge_read({id})` for a complete note or `knowledge_read({sourceId})` for a complete enabled source. Support source searches filter before bounding results, and direct source reads do not depend on the management list's page. Existing approval, freshness, locks and learning rules remain in force.
208
+
209
+ The widget shows sending/upload feedback and animated dots while an automatic response is queued or running. The existing chat session response adds `activity` with `processing`, `awaiting_team`, `paused` or `idle`; it exposes no private job details. Awaiting owner guidance replaces the dots with a team-wait message; paused work does not keep typing. These are customer-safe statuses, not private tool results. Private guidance requests include customer-visible conversation history, with a full Inbox link and a labeled recent excerpt for oversized threads. Reply privately with new guidance; quoted history is context, not new instructions. Recipients, takeover controls, verification and email delivery rules are unchanged.
210
+
202
211
 
203
212
  Example search result for `{"query":"repairs"}`:
204
213
 
@@ -305,7 +314,7 @@ A new direct email to the public agent address can receive general business answ
305
314
 
306
315
  Unverified visitors can ask general business questions in their provisional chat. They cannot read or update an existing People contact, notes, orders or customer history. The same gate protects automatic People capture and every customer-data tool. After proof, People receives the customer and subsequent factual updates; the existing customer notes receipt remains idempotent. Public support and identity-protected support are distinct permissions.
307
316
 
308
- Browser access lasts 30 days from creation or successful email verification/recovery. Verification links last one hour and work once; confirming rotates the credential. The widget retains access in that browser's storage and keeps it through temporary network failures. Returning browsers with valid access reopen their history automatically. When access is missing, ordinary **Continue** and email confirmation select the verified customer's continuous public-support conversation for that site. Both empty and nonempty provisional chats join only after proof; approved public origins can share the customer history through their own verified sessions. Typed email never restores history. Revoked credentials remain revoked; fresh proof does not reactivate an old token. Signed app identities remain separate by site, origin and subject. The recovery endpoint remains available, but customers need no separate Recover workflow. An empty unverified saved session with an email requests confirmation automatically; a receipt prevents duplicate requests during the link's one-hour lifetime, then rotates so an expired link cannot block a fresh confirmation.
317
+ Browser access lasts 30 days from creation or successful email verification/recovery. Verification links last one hour and work once; confirming rotates the credential. The widget retains access in that browser's storage and keeps it through temporary network failures. Returning browsers with valid access reopen their history automatically. When access is missing, ordinary **Continue** and email confirmation select the verified customer's continuous public-support conversation for that site. Both empty and nonempty provisional chats join only after proof; approved public origins can share the customer history through their own verified sessions. Typed email never restores history. Revoked credentials remain revoked; fresh proof does not reactivate an old token. Signed app identities remain separate by site, origin and subject. Open confirmation links in the same browser and on the same device where you want to continue chatting. If confirmation elsewhere replaces the loaded chat's access, the widget offers **Send a new link** to its original email through the existing recovery endpoint. This recovery action has no email-change field and grants no history before fresh proof. An empty unverified saved session with an email requests confirmation automatically; a receipt prevents duplicate requests during the link's one-hour lifetime, then rotates so an expired link cannot block a fresh confirmation.
309
318
 
310
319
  The same conversation's customer-visible email and chat messages load together, including owner replies relayed through Inbox. They stay stored after browser access expires. Private guidance, internal notes and system notices never enter that public history. Recovery restores access to the saved conversation rather than starting its history over.
311
320
 
package/MAIL.md CHANGED
@@ -23,7 +23,7 @@ Use `frontpage help mail --json` for command discovery. The existing CLI binary
23
23
  }
24
24
  ```
25
25
 
26
- This creates a shared template and an Off series with one step. It sends nothing and enrolls no one. The first step always has zero delay. Later step delays accept integer minutes from 0 through 525600; a series has at most 12 steps.
26
+ This creates a shared template and an On series with one step. It sends nothing and enrolls no one. The first step always has zero delay. Later step delays accept integer minutes from 0 through 525600; a series has at most 12 steps.
27
27
 
28
28
  For an existing record, supply `id` and `expectedUpdatedAt` from `mail template get` / `mail email get` / `mail series get`. To edit an existing shared template from a series, send both the complete `document` and complete pending `series` in one save, omitting `append`. **Save & return saves both**, including pending names, steps, removals and waits. To add a new step, send a new template plus the source series and `append:true`.
29
29
 
@@ -94,7 +94,9 @@ Use existing `frontpage people workspace series.preview --file preview.json` the
94
94
  - **Turning Off:** pending series messages stop before provider handoff. A message already accepted by the provider cannot be recalled.
95
95
  - **Turning On again:** new waiting people begin at step 1. Started people resume their next unsent step with its saved due date; an overdue step can send on the next pass. Each later wait starts after successful provider acceptance. Off time never skips a new person's first email or causes all later steps to send at once.
96
96
 
97
- `mail series activate SERIES_ID` sets status active (On); `mail series pause SERIES_ID` sets paused (Off). Stored draft and paused both display Off. `mail series get/list` includes enrolledCount (waiting + current in progress/paused; excludes completed/cancelled) and waitingCount. `mail enrolments list` shows progress; cancel remains available while Off. The direct `mail send series` command also enrolls while Off and returns accepted enrollment IDs with no sends. Empty sends is not a delivery claim.
97
+ New series start **On** (`active`), including those created through `mail save`. Creating a series saves its definition; it does not enroll anyone or send email. Save at least one valid email step before enrolling people. Existing series keep their saved On/Off state when edited. Pause a new series explicitly if it should wait.
98
+
99
+ `mail series activate SERIES_ID` sets status active (On); `mail series pause SERIES_ID` sets paused (Off). Stored draft and paused both display Off. The series editor and progress view show an Off warning, even with no people enrolled. `mail series get/list` includes enrolledCount (waiting + current in progress/paused; excludes completed/cancelled) and waitingCount. `mail enrolments list` shows progress; cancel remains available while Off. The direct `mail send series` command also enrolls while Off and returns accepted enrollment IDs with no sends. Empty sends is not a delivery claim.
98
100
 
99
101
  Selections with IDs use a read-only `POST /api/v1/sites/YOUR_SITE/mail/people` body to avoid URL limits. Ordinary directory queries use GET. Both call the same scoped query; neither writes CRM records.
100
102
 
package/PEOPLE.md CHANGED
@@ -351,7 +351,7 @@ Timed rules use minutes: 2880 is two days. They run through the worker, not a br
351
351
 
352
352
  ## Attach an email to a group or stage
353
353
 
354
- Use one action, **Attach an email**, then choose a saved email template or a series with saved steps. An Off series enrolls people waiting at step 1; turning it On starts them. An attachment creates a normal editable rule on group entry or stage entry. Campaigns are one-off emails and cannot be selected for automation.
354
+ Use one action, **Attach an email**, then choose a saved email template or a series with saved steps. An Off series enrolls people waiting at step 1; turning it On starts them. New series start On; existing Off series stay Off. The group Email section, group/stage rule cards, rule editor and attachment picker warn when a linked series is Off and offer **Open series**. A rule can be Active while its series is Off: enrollment waits, and other rule actions keep working. Activating a rule or attaching a series never turns the series On. An attachment creates a normal editable rule on group entry or stage entry. Campaigns are one-off emails and cannot be selected for automation.
355
355
 
356
356
  Save a reusable template as `welcome.json`:
357
357
 
package/llms.txt CHANGED
@@ -52,7 +52,7 @@ AI Support Agent: Frontpage website chat uses one settings toggle, no website ed
52
52
 
53
53
  ## Emails workspace workflows
54
54
 
55
- See [MAIL.md](./MAIL.md) for the complete save contract, reusable people picker directory, saved campaign recipients, Off-series enrollment and resume timing, all sender settings/null resets, suppression rules, Sent queries and details, and retry-safe examples. `frontpage mail save --file save.json` saves template and pending series together; it never sends. `frontpage mail people` reads the same site-scoped directory as the workspace. Use `frontpage help mail --json` for current commands and flags. No new CLI binary, API namespace or migration command is required. Hosted guides and article help must be updated through the Frontpage CLI.
55
+ See [MAIL.md](./MAIL.md) for the complete save contract, reusable people picker directory, saved campaign recipients, Off-series enrollment and resume timing, all sender settings/null resets, suppression rules, Sent queries and details, and retry-safe examples. `frontpage mail save --file save.json` saves template and pending series together; it never sends. New series default On; existing series retain their saved state. Save email steps before enrolling anyone. Check the returned series status before attaching it to a rule; an Off series holds enrollment until turned On. `frontpage mail people` reads the same site-scoped directory as the workspace. Use `frontpage help mail --json` for current commands and flags. No new CLI binary, API namespace or migration command is required. Hosted guides and article help must be updated through the Frontpage CLI.
56
56
 
57
57
  The workspace validates and saves unfinished group settings before opening email setup. CLI and agent callers use `groups.create` / `groups.update` with a stable `requestKey` before attaching; `groups.count` reads the full visible match count. Group details Email and stage email tasks use the existing `frontpage mail save` / `save_mail_editor` completion. `attachment` checks saved group/stage emailVersion, creates paused rules, supports shared-template edits with rule revisions, and recovers identical retries. Read MAIL.md, Group and stage email tasks. Template get includes ruleUsage; deletion protects paused and active rule dependencies. Creating or saving never activates, enrolls or sends.
58
58
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "frontpage-host",
3
- "version": "0.3.7",
4
- "description": "Frontpage CLI \u2014 manage your site from the terminal",
3
+ "version": "0.3.9",
4
+ "description": "Frontpage CLI — manage your site from the terminal",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "frontpage": "dist/bin.js"