@agent-native/scheduling 0.1.23 → 0.1.24

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 (40) hide show
  1. package/README.md +16 -0
  2. package/agent-native.package.json +154 -0
  3. package/dist/manifest.d.ts +5 -1
  4. package/dist/manifest.d.ts.map +1 -1
  5. package/dist/manifest.js +6 -1
  6. package/dist/manifest.js.map +1 -1
  7. package/dist/server/availability-engine.d.ts +20 -0
  8. package/dist/server/availability-engine.d.ts.map +1 -1
  9. package/dist/server/availability-engine.js +73 -23
  10. package/dist/server/availability-engine.js.map +1 -1
  11. package/dist/server/booking-service.d.ts.map +1 -1
  12. package/dist/server/booking-service.js +16 -5
  13. package/dist/server/booking-service.js.map +1 -1
  14. package/dist/server/bookings-repo.d.ts.map +1 -1
  15. package/dist/server/bookings-repo.js +50 -48
  16. package/dist/server/bookings-repo.js.map +1 -1
  17. package/dist/server/providers/index.d.ts +2 -0
  18. package/dist/server/providers/index.d.ts.map +1 -1
  19. package/dist/server/providers/index.js +1 -0
  20. package/dist/server/providers/index.js.map +1 -1
  21. package/dist/server/providers/teams.d.ts +22 -0
  22. package/dist/server/providers/teams.d.ts.map +1 -0
  23. package/dist/server/providers/teams.js +112 -0
  24. package/dist/server/providers/teams.js.map +1 -0
  25. package/docs/eject.md +11 -10
  26. package/docs/llms-full.txt +75 -14
  27. package/docs/llms.txt +15 -1
  28. package/docs/providers.md +30 -2
  29. package/docs/skills/integrations/SKILL.md +19 -1
  30. package/package.json +7 -6
  31. package/src/manifest.test.ts +19 -0
  32. package/src/manifest.ts +9 -7
  33. package/src/server/availability-engine.test.ts +344 -0
  34. package/src/server/availability-engine.ts +100 -22
  35. package/src/server/booking-service.spec.ts +557 -0
  36. package/src/server/booking-service.ts +17 -6
  37. package/src/server/bookings-repo.ts +54 -48
  38. package/src/server/providers/index.ts +2 -0
  39. package/src/server/providers/teams.test.ts +246 -0
  40. package/src/server/providers/teams.ts +183 -0
@@ -1 +1 @@
1
- {"version":3,"file":"bookings-repo.js","sourceRoot":"","sources":["../../src/server/bookings-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bookings-repo.js","sourceRoot":"","sources":["../../src/server/bookings-repo.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export * from "./registry.js";
3
3
  export { createGoogleCalendarProvider } from "./google-calendar.js";
4
4
  export { createOffice365Provider } from "./office365.js";
5
5
  export { createZoomProvider } from "./zoom.js";
6
+ export { createTeamsProvider } from "./teams.js";
7
+ export type { TeamsProviderConfig } from "./teams.js";
6
8
  export { createDailyVideoProvider } from "./builtin-video.js";
7
9
  export { googleMeetProvider } from "./google-meet.js";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -3,6 +3,7 @@ export * from "./registry.js";
3
3
  export { createGoogleCalendarProvider } from "./google-calendar.js";
4
4
  export { createOffice365Provider } from "./office365.js";
5
5
  export { createZoomProvider } from "./zoom.js";
6
+ export { createTeamsProvider } from "./teams.js";
6
7
  export { createDailyVideoProvider } from "./builtin-video.js";
7
8
  export { googleMeetProvider } from "./google-meet.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Microsoft Teams provider — delegated Microsoft OAuth with Graph-backed
3
+ * standalone online meetings.
4
+ */
5
+ import type { VideoProvider } from "./types.js";
6
+ export interface TeamsProviderConfig {
7
+ clientId: string;
8
+ clientSecret: string;
9
+ /** Microsoft tenant id/domain; defaults to work-or-school accounts. */
10
+ tenant?: string;
11
+ getAccessToken: (credentialId: string) => Promise<string>;
12
+ updateTokens?: (credentialId: string, tokens: {
13
+ accessToken: string;
14
+ refreshToken?: string;
15
+ expiresAt?: Date;
16
+ rawResponse?: Record<string, unknown>;
17
+ }) => Promise<void>;
18
+ /** Called when Graph returns 401/403; mark the credential invalid in UI. */
19
+ markInvalid?: (credentialId: string) => Promise<void>;
20
+ }
21
+ export declare function createTeamsProvider(config: TeamsProviderConfig): VideoProvider;
22
+ //# sourceMappingURL=teams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../src/server/providers/teams.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,CACb,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAKD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,GAC1B,aAAa,CAwJf"}
@@ -0,0 +1,112 @@
1
+ const SCOPES = ["offline_access", "OnlineMeetings.ReadWrite", "User.Read"];
2
+ const GRAPH_BASE_URL = "https://graph.microsoft.com/v1.0";
3
+ export function createTeamsProvider(config) {
4
+ const tenant = config.tenant ?? "organizations";
5
+ const oauthBaseUrl = `https://login.microsoftonline.com/${encodeURIComponent(tenant)}/oauth2/v2.0`;
6
+ async function graphRequest(credentialId, path, init) {
7
+ const token = await config.getAccessToken(credentialId);
8
+ const response = await fetch(`${GRAPH_BASE_URL}${path}`, {
9
+ ...init,
10
+ headers: {
11
+ ...(init?.headers ?? {}),
12
+ authorization: `Bearer ${token}`,
13
+ "content-type": "application/json",
14
+ },
15
+ });
16
+ if (response.status === 401 || response.status === 403) {
17
+ await config.markInvalid?.(credentialId);
18
+ }
19
+ return response;
20
+ }
21
+ return {
22
+ kind: "teams_video",
23
+ label: "Microsoft Teams",
24
+ async startOAuth({ redirectUri, state }) {
25
+ const params = new URLSearchParams({
26
+ client_id: config.clientId,
27
+ redirect_uri: redirectUri,
28
+ response_type: "code",
29
+ response_mode: "query",
30
+ scope: SCOPES.join(" "),
31
+ prompt: "consent",
32
+ state,
33
+ });
34
+ return { authUrl: `${oauthBaseUrl}/authorize?${params}` };
35
+ },
36
+ async completeOAuth({ code, redirectUri, credentialId, userEmail }) {
37
+ const requestBody = new URLSearchParams({
38
+ client_id: config.clientId,
39
+ client_secret: config.clientSecret,
40
+ code,
41
+ redirect_uri: redirectUri,
42
+ grant_type: "authorization_code",
43
+ scope: SCOPES.join(" "),
44
+ });
45
+ const tokenResponse = await fetch(`${oauthBaseUrl}/token`, {
46
+ method: "POST",
47
+ headers: { "content-type": "application/x-www-form-urlencoded" },
48
+ body: requestBody,
49
+ });
50
+ if (!tokenResponse.ok) {
51
+ throw new Error(`Microsoft Teams token exchange failed (${tokenResponse.status})`);
52
+ }
53
+ const tokens = (await tokenResponse.json());
54
+ if (!tokens.access_token) {
55
+ throw new Error("Microsoft Teams token exchange returned no access token");
56
+ }
57
+ await config.updateTokens?.(credentialId, {
58
+ accessToken: tokens.access_token,
59
+ refreshToken: tokens.refresh_token,
60
+ expiresAt: new Date(Date.now() + (tokens.expires_in ?? 3600) * 1000),
61
+ rawResponse: tokens,
62
+ });
63
+ // Use the token from this exchange directly. The consumer's token store
64
+ // may not be observable through getAccessToken until after this callback.
65
+ const identityResponse = await fetch(`${GRAPH_BASE_URL}/me?$select=id,mail,userPrincipalName,displayName`, { headers: { authorization: `Bearer ${tokens.access_token}` } });
66
+ if (!identityResponse.ok) {
67
+ throw new Error(`Microsoft Teams identity lookup failed (${identityResponse.status})`);
68
+ }
69
+ const identity = (await identityResponse.json());
70
+ if (!identity.id) {
71
+ throw new Error("Microsoft Teams identity lookup returned no account id");
72
+ }
73
+ return {
74
+ externalAccountId: identity.id,
75
+ externalEmail: identity.mail ?? identity.userPrincipalName ?? userEmail,
76
+ displayName: identity.displayName,
77
+ };
78
+ },
79
+ async createMeeting({ credentialId, booking }) {
80
+ if (!credentialId) {
81
+ throw new Error("Microsoft Teams requires credentialId");
82
+ }
83
+ const response = await graphRequest(credentialId, "/me/onlineMeetings", {
84
+ method: "POST",
85
+ body: JSON.stringify({
86
+ subject: booking.title,
87
+ startDateTime: booking.startTime,
88
+ endDateTime: booking.endTime,
89
+ }),
90
+ });
91
+ if (!response.ok) {
92
+ throw new Error(`Microsoft Teams meeting creation failed (${response.status})`);
93
+ }
94
+ const meeting = (await response.json());
95
+ if (!meeting.id || !meeting.joinWebUrl) {
96
+ throw new Error("Microsoft Teams meeting response is missing id or joinWebUrl");
97
+ }
98
+ return { meetingId: meeting.id, meetingUrl: meeting.joinWebUrl };
99
+ },
100
+ async deleteMeeting({ credentialId, meetingId }) {
101
+ if (!credentialId)
102
+ return;
103
+ const response = await graphRequest(credentialId, `/me/onlineMeetings/${encodeURIComponent(meetingId)}`, { method: "DELETE" });
104
+ if (response.status === 204 || response.status === 404)
105
+ return;
106
+ if (!response.ok) {
107
+ throw new Error(`Microsoft Teams meeting deletion failed (${response.status})`);
108
+ }
109
+ },
110
+ };
111
+ }
112
+ //# sourceMappingURL=teams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/server/providers/teams.ts"],"names":[],"mappings":"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"}
package/docs/eject.md CHANGED
@@ -2,17 +2,18 @@
2
2
 
3
3
  For full customization, you can move the package source into your own repo.
4
4
 
5
- **Planned for v0.2:** `agent-native eject @agent-native/scheduling`.
5
+ Preview the complete change report, then apply it explicitly:
6
6
 
7
- **Today (v0.1)** — do it manually:
7
+ ```bash
8
+ agent-native package eject @agent-native/scheduling
9
+ agent-native package eject @agent-native/scheduling --apply
10
+ ```
8
11
 
9
- 1. `cp -r node_modules/@agent-native/scheduling/src packages/scheduling-local/src`
10
- 2. Add `packages/scheduling-local/` to your workspaces.
11
- 3. Replace `"@agent-native/scheduling": "^0.1"` in dependencies with
12
- `"@local/scheduling": "workspace:*"` (or similar).
13
- 4. Run a find/replace across your repo from `@agent-native/scheduling` to
14
- `@local/scheduling`.
15
- 5. Install: `pnpm install`.
12
+ The command copies the published source into `packages/scheduling`, updates the
13
+ consumer dependency to `workspace:*`, preserves canonical
14
+ `@agent-native/scheduling` imports, and runs the detected package manager. It
15
+ refuses an existing target, unsupported workspace layout, or other collision.
16
+ All writes and lockfiles roll back if installation fails.
16
17
 
17
- Now you own the code and can modify freely. Upstream updates are available via
18
+ Now you own the code and can modify it freely. Upstream updates are available via
18
19
  `npm view @agent-native/scheduling versions` — you can selectively port changes.
@@ -162,19 +162,20 @@ owned by or shared with the current user, read/write actions throw.
162
162
 
163
163
  For full customization, you can move the package source into your own repo.
164
164
 
165
- **Planned for v0.2:** `agent-native eject @agent-native/scheduling`.
165
+ Preview the complete change report, then apply it explicitly:
166
166
 
167
- **Today (v0.1)** — do it manually:
167
+ ```bash
168
+ agent-native package eject @agent-native/scheduling
169
+ agent-native package eject @agent-native/scheduling --apply
170
+ ```
168
171
 
169
- 1. `cp -r node_modules/@agent-native/scheduling/src packages/scheduling-local/src`
170
- 2. Add `packages/scheduling-local/` to your workspaces.
171
- 3. Replace `"@agent-native/scheduling": "^0.1"` in dependencies with
172
- `"@local/scheduling": "workspace:*"` (or similar).
173
- 4. Run a find/replace across your repo from `@agent-native/scheduling` to
174
- `@local/scheduling`.
175
- 5. Install: `pnpm install`.
172
+ The command copies the published source into `packages/scheduling`, updates the
173
+ consumer dependency to `workspace:*`, preserves canonical
174
+ `@agent-native/scheduling` imports, and runs the detected package manager. It
175
+ refuses an existing target, unsupported workspace layout, or other collision.
176
+ All writes and lockfiles roll back if installation fails.
176
177
 
177
- Now you own the code and can modify freely. Upstream updates are available via
178
+ Now you own the code and can modify it freely. Upstream updates are available via
178
179
  `npm view @agent-native/scheduling versions` — you can selectively port changes.
179
180
 
180
181
 
@@ -200,7 +201,7 @@ locally-owned scheduling stack, not an API wrapper.
200
201
  application, booking-limit bucketing, recurring-event expansion.
201
202
  - **Server layer** (`/server`) — DB repos, availability engine, booking
202
203
  service, pluggable calendar + video providers (Google Calendar, Outlook,
203
- Zoom, Google Meet, built-in video), iCal generator, lifecycle hooks →
204
+ Zoom, Microsoft Teams, Google Meet, built-in video), iCal generator, lifecycle hooks →
204
205
  workflows.
205
206
  - **Actions** (`/actions/*`) — ~55 `defineAction` modules covering every
206
207
  operation in the product (event type CRUD, availability edit, booking
@@ -228,6 +229,7 @@ import {
228
229
  registerVideoProvider,
229
230
  createGoogleCalendarProvider,
230
231
  createDailyVideoProvider,
232
+ createTeamsProvider,
231
233
  } from "@agent-native/scheduling/server/providers";
232
234
  import { getDb, schema } from "./db/index.js";
233
235
 
@@ -248,6 +250,12 @@ registerCalendarProvider(createGoogleCalendarProvider({
248
250
  registerVideoProvider(createDailyVideoProvider({
249
251
  apiKey: process.env.DAILY_API_KEY!,
250
252
  }));
253
+
254
+ registerVideoProvider(createTeamsProvider({
255
+ clientId: process.env.MICROSOFT_CLIENT_ID!,
256
+ clientSecret: process.env.MICROSOFT_CLIENT_SECRET!,
257
+ getAccessToken: fetchMicrosoftToken, // your refresh-aware implementation
258
+ }));
251
259
  ```
252
260
 
253
261
  ## Full documentation
@@ -255,6 +263,13 @@ registerVideoProvider(createDailyVideoProvider({
255
263
  For the full bundled docs (every .md file concatenated), see
256
264
  `llms-full.txt` in this folder.
257
265
 
266
+ ## Package lifecycle
267
+
268
+ The published static `agent-native.package.json` drives safe package lifecycle
269
+ commands. Use `agent-native package inspect @agent-native/scheduling --json`
270
+ for contribution metadata, and preview `package add` or `package eject` before
271
+ re-running with `--apply`. Inspection never executes package code.
272
+
258
273
  ## Individual skills
259
274
 
260
275
  - skills/scheduling-basics/SKILL.md — Core concepts, terminology.
@@ -282,8 +297,8 @@ Scheduling needs two kinds of providers:
282
297
  - **CalendarProvider** — reads busy intervals + writes events.
283
298
  - **VideoProvider** — creates meeting rooms when a booking is confirmed.
284
299
 
285
- Built-ins: Google Calendar, Office 365, Zoom, built-in video (Daily.co), Google
286
- Meet (piggy-backs on Google Calendar).
300
+ Built-ins: Google Calendar, Office 365, Zoom, Microsoft Teams, built-in video
301
+ (Daily.co), and Google Meet (piggy-backs on Google Calendar).
287
302
 
288
303
  ## CalendarProvider
289
304
 
@@ -344,6 +359,34 @@ Video providers are invoked by the booking service when a booking's location
344
359
  is `builtin-video`, `zoom`, `google-meet`, or `teams`. Meeting URLs land in
345
360
  `booking_references`.
346
361
 
362
+ ### Microsoft Teams
363
+
364
+ Teams uses delegated Microsoft OAuth for work or school accounts. Register the
365
+ provider with consumer-owned token storage and refresh callbacks:
366
+
367
+ ```ts
368
+ import {
369
+ createTeamsProvider,
370
+ registerVideoProvider,
371
+ } from "@agent-native/scheduling/server/providers";
372
+
373
+ registerVideoProvider(
374
+ createTeamsProvider({
375
+ clientId: process.env.MICROSOFT_CLIENT_ID!,
376
+ clientSecret: process.env.MICROSOFT_CLIENT_SECRET!,
377
+ tenant: process.env.MICROSOFT_TENANT_ID,
378
+ getAccessToken: resolveMicrosoftAccessToken,
379
+ updateTokens: saveMicrosoftTokens,
380
+ markInvalid: markSchedulingCredentialInvalid,
381
+ }),
382
+ );
383
+ ```
384
+
385
+ The provider requests `offline_access`, `OnlineMeetings.ReadWrite`, and
386
+ `User.Read`. Start the grant with `connect-video --kind teams_video` and finish
387
+ the callback with `completeVideoOAuth()`. `getAccessToken` must refresh expired
388
+ tokens; the package never reads a token store or environment directly.
389
+
347
390
 
348
391
  ---
349
392
  ## schema.md
@@ -710,7 +753,8 @@ description: Calendar + video provider integrations — Google Calendar, Office
710
753
  - **builtin_video** — Daily.co-backed; zero OAuth; server-to-server API key.
711
754
  - **zoom_video** — OAuth; create meetings via Zoom REST API.
712
755
  - **google_meet** — piggy-backs on Google Calendar credential.
713
- - **teams_video** (planned) — Microsoft Teams.
756
+ - **teams_video** — delegated Microsoft OAuth for work or school accounts;
757
+ creates and cancels standalone meetings through Microsoft Graph.
714
758
 
715
759
  ## Credential lifecycle
716
760
 
@@ -742,8 +786,25 @@ See `docs/providers.md` for the full interface.
742
786
  | "Connect Google Calendar" | `connect-calendar --kind google_calendar --redirectUri ...` → redirect to returned `authUrl` |
743
787
  | "Stop checking my vacation calendar" | `toggle-selected-calendar --include false` for that externalId |
744
788
  | "Default to Zoom for new bookings" | `set-default-conferencing-app --credentialId <zoom-cred>` |
789
+ | "Connect Microsoft Teams" | `connect-video --kind teams_video --redirectUri ...` → complete the callback with `completeVideoOAuth()` |
790
+ | "Default to Teams for new bookings" | `set-default-conferencing-app --credentialId <teams-cred>` |
745
791
  | "Refresh calendar cache" | `refresh-busy-times` |
746
792
 
793
+ ## Microsoft Teams setup
794
+
795
+ Register `createTeamsProvider()` as a video provider with the deployment's
796
+ Microsoft client id and secret plus consumer-owned `getAccessToken`,
797
+ `updateTokens`, and `markInvalid` callbacks. The provider defaults to the
798
+ `organizations` tenant because Graph's delegated online-meeting API supports
799
+ work or school accounts, not personal Microsoft accounts. It requests only
800
+ `offline_access`, `OnlineMeetings.ReadWrite`, and `User.Read`.
801
+
802
+ Use `connect-video` to start OAuth and `completeVideoOAuth()` in the callback;
803
+ inserting a `teams_video` row with `install-conferencing-app` alone does not
804
+ grant Microsoft access. Token refresh remains the consumer's responsibility in
805
+ `getAccessToken`. The booking service stores the returned meeting id and join
806
+ URL in `booking_references` and calls the provider again on cancellation.
807
+
747
808
 
748
809
  ---
749
810
  ## skills/routing-forms/SKILL.md
package/docs/llms.txt CHANGED
@@ -17,7 +17,7 @@ locally-owned scheduling stack, not an API wrapper.
17
17
  application, booking-limit bucketing, recurring-event expansion.
18
18
  - **Server layer** (`/server`) — DB repos, availability engine, booking
19
19
  service, pluggable calendar + video providers (Google Calendar, Outlook,
20
- Zoom, Google Meet, built-in video), iCal generator, lifecycle hooks →
20
+ Zoom, Microsoft Teams, Google Meet, built-in video), iCal generator, lifecycle hooks →
21
21
  workflows.
22
22
  - **Actions** (`/actions/*`) — ~55 `defineAction` modules covering every
23
23
  operation in the product (event type CRUD, availability edit, booking
@@ -45,6 +45,7 @@ import {
45
45
  registerVideoProvider,
46
46
  createGoogleCalendarProvider,
47
47
  createDailyVideoProvider,
48
+ createTeamsProvider,
48
49
  } from "@agent-native/scheduling/server/providers";
49
50
  import { getDb, schema } from "./db/index.js";
50
51
 
@@ -65,6 +66,12 @@ registerCalendarProvider(createGoogleCalendarProvider({
65
66
  registerVideoProvider(createDailyVideoProvider({
66
67
  apiKey: process.env.DAILY_API_KEY!,
67
68
  }));
69
+
70
+ registerVideoProvider(createTeamsProvider({
71
+ clientId: process.env.MICROSOFT_CLIENT_ID!,
72
+ clientSecret: process.env.MICROSOFT_CLIENT_SECRET!,
73
+ getAccessToken: fetchMicrosoftToken, // your refresh-aware implementation
74
+ }));
68
75
  ```
69
76
 
70
77
  ## Full documentation
@@ -72,6 +79,13 @@ registerVideoProvider(createDailyVideoProvider({
72
79
  For the full bundled docs (every .md file concatenated), see
73
80
  `llms-full.txt` in this folder.
74
81
 
82
+ ## Package lifecycle
83
+
84
+ The published static `agent-native.package.json` drives safe package lifecycle
85
+ commands. Use `agent-native package inspect @agent-native/scheduling --json`
86
+ for contribution metadata, and preview `package add` or `package eject` before
87
+ re-running with `--apply`. Inspection never executes package code.
88
+
75
89
  ## Individual skills
76
90
 
77
91
  - skills/scheduling-basics/SKILL.md — Core concepts, terminology.
package/docs/providers.md CHANGED
@@ -5,8 +5,8 @@ Scheduling needs two kinds of providers:
5
5
  - **CalendarProvider** — reads busy intervals + writes events.
6
6
  - **VideoProvider** — creates meeting rooms when a booking is confirmed.
7
7
 
8
- Built-ins: Google Calendar, Office 365, Zoom, built-in video (Daily.co), Google
9
- Meet (piggy-backs on Google Calendar).
8
+ Built-ins: Google Calendar, Office 365, Zoom, Microsoft Teams, built-in video
9
+ (Daily.co), and Google Meet (piggy-backs on Google Calendar).
10
10
 
11
11
  ## CalendarProvider
12
12
 
@@ -66,3 +66,31 @@ registerVideoProvider({
66
66
  Video providers are invoked by the booking service when a booking's location
67
67
  is `builtin-video`, `zoom`, `google-meet`, or `teams`. Meeting URLs land in
68
68
  `booking_references`.
69
+
70
+ ### Microsoft Teams
71
+
72
+ Teams uses delegated Microsoft OAuth for work or school accounts. Register the
73
+ provider with consumer-owned token storage and refresh callbacks:
74
+
75
+ ```ts
76
+ import {
77
+ createTeamsProvider,
78
+ registerVideoProvider,
79
+ } from "@agent-native/scheduling/server/providers";
80
+
81
+ registerVideoProvider(
82
+ createTeamsProvider({
83
+ clientId: process.env.MICROSOFT_CLIENT_ID!,
84
+ clientSecret: process.env.MICROSOFT_CLIENT_SECRET!,
85
+ tenant: process.env.MICROSOFT_TENANT_ID,
86
+ getAccessToken: resolveMicrosoftAccessToken,
87
+ updateTokens: saveMicrosoftTokens,
88
+ markInvalid: markSchedulingCredentialInvalid,
89
+ }),
90
+ );
91
+ ```
92
+
93
+ The provider requests `offline_access`, `OnlineMeetings.ReadWrite`, and
94
+ `User.Read`. Start the grant with `connect-video --kind teams_video` and finish
95
+ the callback with `completeVideoOAuth()`. `getAccessToken` must refresh expired
96
+ tokens; the package never reads a token store or environment directly.
@@ -17,7 +17,8 @@ description: Calendar + video provider integrations — Google Calendar, Office
17
17
  - **builtin_video** — Daily.co-backed; zero OAuth; server-to-server API key.
18
18
  - **zoom_video** — OAuth; create meetings via Zoom REST API.
19
19
  - **google_meet** — piggy-backs on Google Calendar credential.
20
- - **teams_video** (planned) — Microsoft Teams.
20
+ - **teams_video** — delegated Microsoft OAuth for work or school accounts;
21
+ creates and cancels standalone meetings through Microsoft Graph.
21
22
 
22
23
  ## Credential lifecycle
23
24
 
@@ -49,4 +50,21 @@ See `docs/providers.md` for the full interface.
49
50
  | "Connect Google Calendar" | `connect-calendar --kind google_calendar --redirectUri ...` → redirect to returned `authUrl` |
50
51
  | "Stop checking my vacation calendar" | `toggle-selected-calendar --include false` for that externalId |
51
52
  | "Default to Zoom for new bookings" | `set-default-conferencing-app --credentialId <zoom-cred>` |
53
+ | "Connect Microsoft Teams" | `connect-video --kind teams_video --redirectUri ...` → complete the callback with `completeVideoOAuth()` |
54
+ | "Default to Teams for new bookings" | `set-default-conferencing-app --credentialId <teams-cred>` |
52
55
  | "Refresh calendar cache" | `refresh-busy-times` |
56
+
57
+ ## Microsoft Teams setup
58
+
59
+ Register `createTeamsProvider()` as a video provider with the deployment's
60
+ Microsoft client id and secret plus consumer-owned `getAccessToken`,
61
+ `updateTokens`, and `markInvalid` callbacks. The provider defaults to the
62
+ `organizations` tenant because Graph's delegated online-meeting API supports
63
+ work or school accounts, not personal Microsoft accounts. It requests only
64
+ `offline_access`, `OnlineMeetings.ReadWrite`, and `User.Read`.
65
+
66
+ Use `connect-video` to start OAuth and `completeVideoOAuth()` in the callback;
67
+ inserting a `teams_video` row with `install-conferencing-app` alone does not
68
+ grant Microsoft access. Token refresh remains the consumer's responsibility in
69
+ `getAccessToken`. The booking service stores the returned meeting id and join
70
+ URL in `booking_references` and calls the provider again on cancellation.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/scheduling",
3
- "version": "0.1.23",
3
+ "version": "0.1.24",
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": {
@@ -13,6 +13,7 @@
13
13
  "directory": "packages/scheduling"
14
14
  },
15
15
  "files": [
16
+ "agent-native.package.json",
16
17
  "dist",
17
18
  "docs",
18
19
  "src"
@@ -52,23 +53,22 @@
52
53
  "nanoid": "^5.1.9",
53
54
  "rrule": "^2.8.1",
54
55
  "zod": "^4.3.6",
55
- "@agent-native/toolkit": "^0.4.4"
56
+ "@agent-native/toolkit": "^0.4.6"
56
57
  },
57
58
  "devDependencies": {
58
59
  "@libsql/client": "^0.15.8",
59
- "@tabler/icons-react": "^3.0.0",
60
+ "@tabler/icons-react": "^3.41.1",
60
61
  "@types/node": "^24.2.1",
61
62
  "@types/react": "^19.2.14",
62
63
  "drizzle-orm": "^0.45.2",
63
64
  "react": "^19.2.5",
64
- "typescript": "npm:@typescript/typescript6@^6.0.2",
65
65
  "typescript-7": "npm:typescript@^7.0.2",
66
66
  "vitest": "^4.1.5",
67
- "@agent-native/core": "0.92.4"
67
+ "@agent-native/core": "0.97.0"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "@agent-native/core": ">=0.8.0",
71
- "@tabler/icons-react": ">=3",
71
+ "@tabler/icons-react": "^3.41.1",
72
72
  "drizzle-orm": ">=0.45",
73
73
  "react": ">=18",
74
74
  "react-dom": ">=18"
@@ -84,6 +84,7 @@
84
84
  "optional": true
85
85
  }
86
86
  },
87
+ "agentNativeManifest": "agent-native.package.json",
87
88
  "scripts": {
88
89
  "build": "tsc && node scripts/build-llms-full.mjs",
89
90
  "dev": "tsc --watch",
@@ -0,0 +1,19 @@
1
+ import fs from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+
4
+ import { describe, expect, it } from "vitest";
5
+
6
+ import { assertAgentNativePackageManifest } from "../../core/src/package-lifecycle/manifest.js";
7
+ import { MANIFEST } from "./manifest.js";
8
+
9
+ describe("scheduling package manifest", () => {
10
+ it("keeps the published static manifest in parity with the typed manifest", () => {
11
+ const file = fileURLToPath(
12
+ new URL("../agent-native.package.json", import.meta.url),
13
+ );
14
+ const published = JSON.parse(fs.readFileSync(file, "utf8"));
15
+ assertAgentNativePackageManifest(published);
16
+ expect(published).toEqual(MANIFEST);
17
+ expect(published.peerProviders).toContain("teams");
18
+ });
19
+ });
package/src/manifest.ts CHANGED
@@ -9,22 +9,19 @@
9
9
  */
10
10
 
11
11
  export interface SchedulingManifest {
12
+ manifestVersion: 1;
12
13
  name: string;
13
- version: string;
14
14
  actions: string[];
15
15
  schemaEntryPoint: string;
16
- docs: {
17
- llms: string;
18
- llmsFull: string;
19
- skills: string[];
20
- };
16
+ docs: { llms: string; llmsFull: string; skills: string[] };
21
17
  requiredSecrets: { key: string; label: string; optional?: boolean }[];
22
18
  peerProviders: string[];
19
+ eject?: { sourceRoot: string; targetDirectory: string };
23
20
  }
24
21
 
25
22
  export const MANIFEST: SchedulingManifest = {
23
+ manifestVersion: 1,
26
24
  name: "@agent-native/scheduling",
27
- version: "0.1.0",
28
25
  actions: [
29
26
  // Event types
30
27
  "list-event-types",
@@ -168,7 +165,12 @@ export const MANIFEST: SchedulingManifest = {
168
165
  "google-calendar",
169
166
  "office365",
170
167
  "zoom",
168
+ "teams",
171
169
  "google-meet",
172
170
  "builtin-video",
173
171
  ],
172
+ eject: {
173
+ sourceRoot: "src",
174
+ targetDirectory: "packages/scheduling",
175
+ },
174
176
  };