@revfleet/hscli 0.8.10 → 0.8.12

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 (63) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +31 -2
  3. package/dist/cli.js +27 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/auth/index.js +46 -11
  6. package/dist/commands/auth/index.js.map +1 -1
  7. package/dist/commands/crm/activities.d.ts +3 -0
  8. package/dist/commands/crm/activities.js +186 -0
  9. package/dist/commands/crm/activities.js.map +1 -0
  10. package/dist/commands/crm/index.js +4 -0
  11. package/dist/commands/crm/index.js.map +1 -1
  12. package/dist/commands/crm/migration.d.ts +3 -0
  13. package/dist/commands/crm/migration.js +155 -0
  14. package/dist/commands/crm/migration.js.map +1 -0
  15. package/dist/commands/crm/properties.js +105 -18
  16. package/dist/commands/crm/properties.js.map +1 -1
  17. package/dist/commands/crm/property-batch.d.ts +34 -0
  18. package/dist/commands/crm/property-batch.js +205 -0
  19. package/dist/commands/crm/property-batch.js.map +1 -0
  20. package/dist/commands/doctor/index.js +119 -1
  21. package/dist/commands/doctor/index.js.map +1 -1
  22. package/dist/commands/forms/index.js +47 -6
  23. package/dist/commands/forms/index.js.map +1 -1
  24. package/dist/commands/forms/legacy-v2.d.ts +6 -0
  25. package/dist/commands/forms/legacy-v2.js +350 -0
  26. package/dist/commands/forms/legacy-v2.js.map +1 -0
  27. package/dist/commands/forms/property-preflight.d.ts +20 -0
  28. package/dist/commands/forms/property-preflight.js +99 -0
  29. package/dist/commands/forms/property-preflight.js.map +1 -0
  30. package/dist/commands/guide/index.d.ts +6 -0
  31. package/dist/commands/guide/index.js +257 -0
  32. package/dist/commands/guide/index.js.map +1 -0
  33. package/dist/commands/settings/index.js +238 -2
  34. package/dist/commands/settings/index.js.map +1 -1
  35. package/dist/commands/ui/index.d.ts +3 -0
  36. package/dist/commands/ui/index.js +412 -0
  37. package/dist/commands/ui/index.js.map +1 -0
  38. package/dist/core/auth.d.ts +7 -1
  39. package/dist/core/auth.js +45 -7
  40. package/dist/core/auth.js.map +1 -1
  41. package/dist/core/http.d.ts +16 -0
  42. package/dist/core/http.js +141 -40
  43. package/dist/core/http.js.map +1 -1
  44. package/dist/core/output.d.ts +2 -0
  45. package/dist/core/output.js +1 -1
  46. package/dist/core/output.js.map +1 -1
  47. package/dist/core/scopes.d.ts +29 -0
  48. package/dist/core/scopes.js +415 -0
  49. package/dist/core/scopes.js.map +1 -0
  50. package/dist/mcp/ext-tools.d.ts +1 -1
  51. package/dist/mcp/ext-tools.js +52 -1
  52. package/dist/mcp/ext-tools.js.map +1 -1
  53. package/dist/mcp/server.js +90 -22
  54. package/dist/mcp/server.js.map +1 -1
  55. package/docs/CAPABILITY_LIBRARY.md +4 -3
  56. package/docs/COMMAND_TREE.md +23 -5
  57. package/docs/COOKBOOK.md +99 -0
  58. package/docs/MARKETING_SETUP.md +8 -2
  59. package/docs/MCP.md +1 -0
  60. package/docs/OPERATIONAL_PLAYBOOKS.md +1 -1
  61. package/docs/PORTAL_SETUP.md +3 -2
  62. package/docs/SAFETY_MODEL.md +3 -0
  63. package/package.json +1 -1
package/docs/MCP.md CHANGED
@@ -138,6 +138,7 @@ If your client accepts env vars, set:
138
138
  - `crm_properties_list`
139
139
  - `crm_properties_get`
140
140
  - `crm_properties_create` *(write, dry-run by default)*
141
+ - `crm_properties_batch_create` *(write, dry-run by default; supports custom object type IDs, reserved-name skips, option cleanup, empty-enum demotion/skip)*
141
142
  - `crm_properties_update` *(write, dry-run by default)*
142
143
 
143
144
  ### Associations
@@ -78,7 +78,7 @@ cat /tmp/ratelimit-check.jsonl
78
78
 
79
79
  ### Mitigation
80
80
  1. **Stop batch operations** immediately
81
- 2. **Wait for reset**: daily quota resets at UTC midnight
81
+ 2. **Wait for reset**: daily quota resets at midnight in the portal's time zone
82
82
  3. **Reduce batch sizes**: use `--limit 10` instead of `--limit 100`
83
83
  4. **Space out requests**: add delays between sync pull runs
84
84
 
@@ -153,7 +153,8 @@ Install the HubSpot tracking code on your website:
153
153
  3. Assign a permission set (determines what they can do)
154
154
  4. Users receive an email invitation and must accept
155
155
 
156
- > **API:** Yes — `settings.users.read/write` scopes. The User Provisioning API (`/settings/v3/users`) supports inviting and managing users.
156
+ > **API:** Yes — `settings.users.read/write` scopes. The User Provisioning API (`/settings/v3/users`) supports inviting and managing users. Permission sets are available through an internal HubSpot session-auth endpoint in hscli:
157
+ > `hscli settings permission-sets create --portal-id <id> --cookie-file cookies.txt --csrf <token> --data '{...}' --force`.
157
158
 
158
159
  ### 3.2 Create Teams
159
160
 
@@ -657,7 +658,7 @@ hscli crm deals search --data '{"filterGroups":[], "limit": 1}' --json 2>/dev/nu
657
658
  | Email auth | DKIM, SPF | None (DNS manual) | — |
658
659
  | Tracking code | JS snippet | Push events only | — |
659
660
  | Privacy/consent | GDPR, cookie banner | Partial | — |
660
- | Users | Invite, permissions | Full CRUD | |
661
+ | Users | Invite, permissions | Full CRUD; permission sets require session auth | `hscli settings users list`, `hscli settings permission-sets list` |
661
662
  | Owners | List portal owners | Read | `hscli crm owners list` |
662
663
  | Properties | Object fields | Full CRUD | `hscli crm properties list/create/update` |
663
664
  | Pipelines | Deal/ticket stages | Full CRUD | `hscli crm pipelines list/get` |
@@ -22,6 +22,9 @@
22
22
  - Retry on: `429`, `5xx`, and network errors.
23
23
  - Honor `Retry-After` header when present.
24
24
  - Use capped exponential backoff.
25
+ - Share observed HubSpot rate-limit state across clients in the same process by profile + API base URL.
26
+ - Enforce HubSpot `X-HubSpot-RateLimit-Secondly`, rolling interval, and daily remaining headers before the next request.
27
+ - Stop before daily quota exhaustion with `RATE_LIMIT_DAILY_EXHAUSTED`.
25
28
  - Enforce request timeout (`30s`) to prevent hung command invocations.
26
29
  - Surface retry exhaustion as `HTTP_RETRY_EXHAUSTED`.
27
30
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revfleet/hscli",
3
- "version": "0.8.10",
3
+ "version": "0.8.12",
4
4
  "description": "Agentic HubSpot CLI + MCP server. Covers ~all documented public endpoints (1180 across 55+ command domains). Reachability is tier/scope/auth-model gated — UI-only surfaces and deprecated APIs excluded. Enterprise safety rails, self-hosted.",
5
5
  "type": "module",
6
6
  "bin": {