@agent-native/scheduling 0.1.51-nightly-20260828040116 → 0.1.52

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 (2) hide show
  1. package/docs/llms-full.txt +82 -82
  2. package/package.json +4 -4
@@ -4,6 +4,88 @@ Generated by scripts/build-llms-full.mjs. Includes every markdown doc
4
4
  and skill. For a curated index, see llms.txt.
5
5
 
6
6
 
7
+ ---
8
+ ## UI_UNIFICATION.md
9
+
10
+ # UI Unification — booking-link / event-type editor
11
+
12
+ As of 0.1.x the `@agent-native/scheduling` package ships a small set of
13
+ shared React components for calendar and scheduling surfaces so apps can
14
+ keep visual parity without duplicating logic.
15
+
16
+ Exported from `@agent-native/scheduling/react/components`:
17
+
18
+ | Component | Purpose |
19
+ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
20
+ | `ConferencingSelector` | 2x2 grid of "No conferencing / Google Meet / Zoom / Custom link"; includes a "Connect Zoom" affordance that starts real OAuth |
21
+ | `SlugEditor` | Inline-editable URL preview (`host/prefix/username/slug`) with click-to-edit segments |
22
+ | `CustomFieldsEditor` | Add / edit / reorder / remove custom booking-form fields, with presets (LinkedIn, Company, Phone, Website) |
23
+ | `DurationPicker` | Multi-select pills (15 / 30 / 45 / 60 + custom) for per-event-type durations |
24
+ | `BookingLinkCreateDialog` | Modal prompting for Title / URL / Duration / Description when creating a new event type |
25
+ | `AvailabilityEditor` | Weekly schedule grid with toggles + start/end time pickers; `summarizeAvailability(ws)` helper for list subtitles |
26
+
27
+ The existing `SlotPicker` and `TimezoneSelect` continue to live alongside
28
+ these.
29
+
30
+ ## Shadcn primitives required in the consumer
31
+
32
+ Every component in this package imports shadcn primitives via the
33
+ standard `@/components/ui/*` alias (resolved by the consumer's bundler).
34
+ The package ships type shims for them in
35
+ `react/components/_shadcn-shims.d.ts` so it compiles cleanly on its own.
36
+
37
+ Add these to your template's `app/components/ui/` before importing any
38
+ of the shared components:
39
+
40
+ | Component required | Used by |
41
+ | ------------------ | ----------------------------------------------------------------------------------------------------- |
42
+ | `button` | ConferencingSelector, BookingLinkCreateDialog, DurationPicker |
43
+ | `input` | ConferencingSelector, CustomFieldsEditor, DurationPicker, BookingLinkCreateDialog, AvailabilityEditor |
44
+ | `label` | ConferencingSelector, CustomFieldsEditor, SlugEditor, BookingLinkCreateDialog, AvailabilityEditor |
45
+ | `textarea` | CustomFieldsEditor, BookingLinkCreateDialog |
46
+ | `switch` | CustomFieldsEditor, AvailabilityEditor |
47
+ | `badge` | ConferencingSelector |
48
+ | `dialog` | BookingLinkCreateDialog |
49
+
50
+ Icons come from `@tabler/icons-react` (not bundled; each template already
51
+ depends on it).
52
+
53
+ ## What moved where
54
+
55
+ | Old home (calendar template) | New home |
56
+ | ---------------------------------------- | --------------------------------------------------------------------- |
57
+ | `ConferencingEditor` in BookingLinksPage | `ConferencingSelector` in `@agent-native/scheduling/react/components` |
58
+ | `EditableBookingUrl` in BookingLinksPage | `SlugEditor` in the package |
59
+ | `CustomFieldsEditor` in BookingLinksPage | `CustomFieldsEditor` in the package |
60
+
61
+ | Old home (removed scheduling app) | New home |
62
+ | ------------------------------------------ | --------------------------------------------------------------------------- |
63
+ | `DurationsEditor` in event-type editor | `DurationPicker` in the package |
64
+ | `LocationEditor` + `AppsGrid` (two places) | `ConferencingSelector` in the package (Apps tab removed — it was redundant) |
65
+ | Inline create dialog in `_index` | `BookingLinkCreateDialog` in the package |
66
+
67
+ ## Zoom became real OAuth
68
+
69
+ Previously the calendar template's Zoom option asked the user to paste a
70
+ personal meeting URL. The removed scheduling app had no OAuth-based Zoom at
71
+ all (only the `zoom_video` "app install" placeholder).
72
+
73
+ Both now use real Zoom OAuth via the provider's new optional
74
+ `startOAuth` / `completeOAuth` methods on `VideoProvider`. Consumers:
75
+
76
+ - **Custom scheduling surfaces** — can call the package's `connect-video`
77
+ action for `zoom_video`, route callbacks to their app, and store tokens via
78
+ `completeVideoOAuth()`.
79
+ - **Calendar template** — ships a lightweight `server/lib/zoom.ts` that
80
+ uses the package's `createZoomProvider` but stores tokens directly in
81
+ core's `oauth_tokens` keyed by Zoom user id + owner email. The
82
+ booking-create handler calls `createZoomMeeting()` when the booking
83
+ link's conferencing type is `zoom`.
84
+
85
+ Both flows auto-refresh the Zoom access token when it's within 60s of
86
+ expiry and mark credentials invalid if Zoom returns 401/403.
87
+
88
+
7
89
  ---
8
90
  ## actions.md
9
91
 
@@ -998,85 +1080,3 @@ polling.
998
1080
  | "Email attendees 24h before the meeting" | `create-workflow --trigger before-event --steps '[{action: email-attendee, offsetMinutes: 1440}]'` |
999
1081
  | "Text me when someone books" | `create-workflow --trigger new-booking --steps '[{action: sms-host, ...}]'` |
1000
1082
  | "Stop all reminders on an event type" | `toggle-workflow` to disable |
1001
-
1002
-
1003
- ---
1004
- ## UI_UNIFICATION.md
1005
-
1006
- # UI Unification — booking-link / event-type editor
1007
-
1008
- As of 0.1.x the `@agent-native/scheduling` package ships a small set of
1009
- shared React components for calendar and scheduling surfaces so apps can
1010
- keep visual parity without duplicating logic.
1011
-
1012
- Exported from `@agent-native/scheduling/react/components`:
1013
-
1014
- | Component | Purpose |
1015
- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
1016
- | `ConferencingSelector` | 2x2 grid of "No conferencing / Google Meet / Zoom / Custom link"; includes a "Connect Zoom" affordance that starts real OAuth |
1017
- | `SlugEditor` | Inline-editable URL preview (`host/prefix/username/slug`) with click-to-edit segments |
1018
- | `CustomFieldsEditor` | Add / edit / reorder / remove custom booking-form fields, with presets (LinkedIn, Company, Phone, Website) |
1019
- | `DurationPicker` | Multi-select pills (15 / 30 / 45 / 60 + custom) for per-event-type durations |
1020
- | `BookingLinkCreateDialog` | Modal prompting for Title / URL / Duration / Description when creating a new event type |
1021
- | `AvailabilityEditor` | Weekly schedule grid with toggles + start/end time pickers; `summarizeAvailability(ws)` helper for list subtitles |
1022
-
1023
- The existing `SlotPicker` and `TimezoneSelect` continue to live alongside
1024
- these.
1025
-
1026
- ## Shadcn primitives required in the consumer
1027
-
1028
- Every component in this package imports shadcn primitives via the
1029
- standard `@/components/ui/*` alias (resolved by the consumer's bundler).
1030
- The package ships type shims for them in
1031
- `react/components/_shadcn-shims.d.ts` so it compiles cleanly on its own.
1032
-
1033
- Add these to your template's `app/components/ui/` before importing any
1034
- of the shared components:
1035
-
1036
- | Component required | Used by |
1037
- | ------------------ | ----------------------------------------------------------------------------------------------------- |
1038
- | `button` | ConferencingSelector, BookingLinkCreateDialog, DurationPicker |
1039
- | `input` | ConferencingSelector, CustomFieldsEditor, DurationPicker, BookingLinkCreateDialog, AvailabilityEditor |
1040
- | `label` | ConferencingSelector, CustomFieldsEditor, SlugEditor, BookingLinkCreateDialog, AvailabilityEditor |
1041
- | `textarea` | CustomFieldsEditor, BookingLinkCreateDialog |
1042
- | `switch` | CustomFieldsEditor, AvailabilityEditor |
1043
- | `badge` | ConferencingSelector |
1044
- | `dialog` | BookingLinkCreateDialog |
1045
-
1046
- Icons come from `@tabler/icons-react` (not bundled; each template already
1047
- depends on it).
1048
-
1049
- ## What moved where
1050
-
1051
- | Old home (calendar template) | New home |
1052
- | ---------------------------------------- | --------------------------------------------------------------------- |
1053
- | `ConferencingEditor` in BookingLinksPage | `ConferencingSelector` in `@agent-native/scheduling/react/components` |
1054
- | `EditableBookingUrl` in BookingLinksPage | `SlugEditor` in the package |
1055
- | `CustomFieldsEditor` in BookingLinksPage | `CustomFieldsEditor` in the package |
1056
-
1057
- | Old home (removed scheduling app) | New home |
1058
- | ------------------------------------------ | --------------------------------------------------------------------------- |
1059
- | `DurationsEditor` in event-type editor | `DurationPicker` in the package |
1060
- | `LocationEditor` + `AppsGrid` (two places) | `ConferencingSelector` in the package (Apps tab removed — it was redundant) |
1061
- | Inline create dialog in `_index` | `BookingLinkCreateDialog` in the package |
1062
-
1063
- ## Zoom became real OAuth
1064
-
1065
- Previously the calendar template's Zoom option asked the user to paste a
1066
- personal meeting URL. The removed scheduling app had no OAuth-based Zoom at
1067
- all (only the `zoom_video` "app install" placeholder).
1068
-
1069
- Both now use real Zoom OAuth via the provider's new optional
1070
- `startOAuth` / `completeOAuth` methods on `VideoProvider`. Consumers:
1071
-
1072
- - **Custom scheduling surfaces** — can call the package's `connect-video`
1073
- action for `zoom_video`, route callbacks to their app, and store tokens via
1074
- `completeVideoOAuth()`.
1075
- - **Calendar template** — ships a lightweight `server/lib/zoom.ts` that
1076
- uses the package's `createZoomProvider` but stores tokens directly in
1077
- core's `oauth_tokens` keyed by Zoom user id + owner email. The
1078
- booking-create handler calls `createZoomMeeting()` when the booking
1079
- link's conferencing type is `zoom`.
1080
-
1081
- Both flows auto-refresh the Zoom access token when it's within 60s of
1082
- expiry and mark credentials invalid if Zoom returns 401/403.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/scheduling",
3
- "version": "0.1.51-nightly-20260828040116",
3
+ "version": "0.1.52",
4
4
  "description": "Scheduling primitives for agent-native apps — event types, availability, bookings, team scheduling, workflows, and routing forms.",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -56,7 +56,7 @@
56
56
  "nanoid": "^5.1.9",
57
57
  "rrule": "^2.8.1",
58
58
  "zod": "^4.3.6",
59
- "@agent-native/toolkit": "^0.17.5-nightly-20260828040116"
59
+ "@agent-native/toolkit": "^0.17.6"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@libsql/client": "^0.15.8",
@@ -67,10 +67,10 @@
67
67
  "react": "^19.2.5",
68
68
  "typescript-7": "npm:typescript@^7.0.2",
69
69
  "vitest": "^4.1.5",
70
- "@agent-native/core": "0.176.0-nightly-20260828040116"
70
+ "@agent-native/core": "0.176.1"
71
71
  },
72
72
  "peerDependencies": {
73
- "@agent-native/core": "0.176.0-nightly-20260828040116",
73
+ "@agent-native/core": ">=0.8.0",
74
74
  "@tabler/icons-react": "^3.41.1",
75
75
  "drizzle-orm": ">=0.45",
76
76
  "react": ">=18",