From 70c63423ce0280e5ee64f27fe4ee9d67a50095d4 Mon Sep 17 00:00:00 2001 From: Bailey Pumfleet Date: Thu, 5 Nov 2026 06:54:15 -0600 Subject: [PATCH] Version packages --- .changeset/agent-dx-mcp.md | 7 ---- .changeset/agent-surface.md | 7 ---- .changeset/calendar-delegation.md | 6 --- .changeset/cli-management-commands.md | 5 --- .changeset/credit-limit.md | 5 --- .changeset/email-data-meters.md | 5 --- .changeset/hipaa-mode.md | 6 --- .changeset/hooks-billing.md | 5 --- .changeset/hosted-mcp.md | 5 --- .changeset/mcp-empty-toolsets.md | 5 --- .changeset/per-host-locations.md | 5 --- .changeset/risk-billing.md | 5 --- .changeset/scheduling-attendee-limit.md | 5 --- .changeset/scheduling-booking-history.md | 7 ---- .../scheduling-event-type-description.md | 5 --- .changeset/scheduling-explain-slot.md | 7 ---- .../scheduling-guests-calendar-details.md | 6 --- .changeset/scheduling-hosts-meter.md | 5 --- .../scheduling-localized-notifications.md | 5 --- .changeset/scheduling-logo.md | 5 --- .changeset/scheduling-reminders.md | 7 ---- .changeset/scheduling-routing.md | 5 --- .changeset/scheduling-zoom.md | 5 --- .changeset/security-findings.md | 6 --- bun.lock | 6 +-- packages/cli/CHANGELOG.md | 37 +++++++++++++++++ packages/cli/package.json | 4 +- packages/mcp/CHANGELOG.md | 40 +++++++++++++++++++ packages/mcp/package.json | 4 +- packages/mcp/server.json | 4 +- packages/sdk/CHANGELOG.md | 29 ++++++++++++++ packages/sdk/package.json | 2 +- packages/sdk/src/version.ts | 2 +- 33 files changed, 117 insertions(+), 145 deletions(-) delete mode 100644 .changeset/agent-dx-mcp.md delete mode 100644 .changeset/agent-surface.md delete mode 100644 .changeset/calendar-delegation.md delete mode 100644 .changeset/cli-management-commands.md delete mode 100644 .changeset/credit-limit.md delete mode 100644 .changeset/email-data-meters.md delete mode 100644 .changeset/hipaa-mode.md delete mode 100644 .changeset/hooks-billing.md delete mode 100644 .changeset/hosted-mcp.md delete mode 100644 .changeset/mcp-empty-toolsets.md delete mode 100644 .changeset/per-host-locations.md delete mode 100644 .changeset/risk-billing.md delete mode 100644 .changeset/scheduling-attendee-limit.md delete mode 100644 .changeset/scheduling-booking-history.md delete mode 100644 .changeset/scheduling-event-type-description.md delete mode 100644 .changeset/scheduling-explain-slot.md delete mode 100644 .changeset/scheduling-guests-calendar-details.md delete mode 100644 .changeset/scheduling-hosts-meter.md delete mode 100644 .changeset/scheduling-localized-notifications.md delete mode 100644 .changeset/scheduling-logo.md delete mode 100644 .changeset/scheduling-reminders.md delete mode 100644 .changeset/scheduling-routing.md delete mode 100644 .changeset/scheduling-zoom.md delete mode 100644 .changeset/security-findings.md diff --git a/.changeset/agent-dx-mcp.md b/.changeset/agent-dx-mcp.md deleted file mode 100644 index 12a401a8f..000000000 --- a/.changeset/agent-dx-mcp.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"coss": minor -"coss-mcp": minor -"coss-cli": minor ---- - -Setup and diagnosis know every product. `fetchSetupReport(coss, { product })`, the MCP server's `get_setup` and `coss init --product` say what a product still needs or how to try it in a sandbox, and report `products` and `products_in_use` next to the fields they had. `coss/diagnose` adds SMS, Verify, Sign, Forms, Hooks and Scheduling, as MCP tools (`diagnose_verification`, `diagnose_sign_request`, `diagnose_form_submission`, `diagnose_hook_delivery`, `diagnose_scheduling_slots`) and CLI commands (`coss sms diagnose`, `coss verify diagnose`, `coss sign diagnose`, `coss forms diagnose`, `coss hooks diagnose`, `coss scheduling diagnose`). The MCP server also gets `list_email_templates`, log drain and sub-account tools, `api_get` (a read-only fallback for any `/v1/` path), output schemas on `get_setup` and the diagnose tools, and its first prompts and resources. diff --git a/.changeset/agent-surface.md b/.changeset/agent-surface.md deleted file mode 100644 index 3d6c4bf7a..000000000 --- a/.changeset/agent-surface.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"coss": minor -"coss-mcp": minor -"coss-cli": minor ---- - -Verify's settings have an API: `coss.verify.settings.get()` and `.update()`. The MCP server gets tools for marketing (contacts, audiences, segments, topics, broadcasts), Verify and Sign, and more for Forms, Scheduling, Hooks and Risk, plus `COSS_MCP_TOOLSETS` to offer fewer of them. The CLI gets `coss verify`, `coss contacts`, `coss broadcasts` and `coss sign`, and more of `coss sms`, `coss forms` and `coss scheduling`. diff --git a/.changeset/calendar-delegation.md b/.changeset/calendar-delegation.md deleted file mode 100644 index 4a0900f8f..000000000 --- a/.changeset/calendar-delegation.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"coss": minor -"coss-cli": patch ---- - -Scheduling's calendar delegations: `coss.scheduling.calendarDelegations` lets an admin authorize a Google Workspace or Microsoft 365 domain once, so every host on it gets their calendar with no consent screen. Hosts gain `calendar_account`, calendar connections gain `delegation`, and there are `scheduling.calendar_delegation.failing` and `.restored` webhooks. `coss open scheduling-calendar-delegation` opens its dashboard page. diff --git a/.changeset/cli-management-commands.md b/.changeset/cli-management-commands.md deleted file mode 100644 index 51880f5bc..000000000 --- a/.changeset/cli-management-commands.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss-cli": minor ---- - -The CLI manages what it could only read. New: `coss suppressions`, `coss subaccounts`, `coss log-drains`, `coss audiences`, `coss segments`, `coss topics`, `coss marketing settings`, `coss risk rules`, `coss risk check`, `coss risk classify`, `coss risk settings`, `coss sign settings` and `coss scheduling schedules`; `coss emails cancel` and `reschedule`, `coss sms cancel`, `coss sms suppressions check`, `coss contacts update`, `import` and `export`, `coss broadcasts update`, `remove`, `pause` and `resume`, `coss forms update` and `remove`, `coss sign templates create`, and `coss scheduling hosts create`, `update` and `remove`, `event-types create` and `update`, `book`, `reschedule`, `approve` and `decline`. `coss open` knows every page of the dashboard, and unknown commands point at `coss api`. diff --git a/.changeset/credit-limit.md b/.changeset/credit-limit.md deleted file mode 100644 index 509079527..000000000 --- a/.changeset/credit-limit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Billing has a credit limit: `coss.billing.get()` returns `credit_limit` (`limit`, `used`, `charge_threshold`), holds can have the reason `credit_limit`, invoices the kind `threshold` (usage charged early) and credits the source `threshold`. diff --git a/.changeset/email-data-meters.md b/.changeset/email-data-meters.md deleted file mode 100644 index 4cde9ad36..000000000 --- a/.changeset/email-data-meters.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -`BillingMeter` adds `email.attachment_data` and `email.received_data`: attachments and received messages past an email's first MB, billed by the MB. diff --git a/.changeset/hipaa-mode.md b/.changeset/hipaa-mode.md deleted file mode 100644 index 6553084f2..000000000 --- a/.changeset/hipaa-mode.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"coss": minor -"coss-mcp": minor ---- - -`coss.environment.get()` and the MCP server's `get_account_status` say whether the organization is in HIPAA mode (`organization.hipaa_mode`). The MCP server explains `hipaa_mode_restriction` refusals. diff --git a/.changeset/hooks-billing.md b/.changeset/hooks-billing.md deleted file mode 100644 index 1114074dc..000000000 --- a/.changeset/hooks-billing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": patch ---- - -Billing's meter type includes `hooks.messages`: live Hooks messages are now billed. diff --git a/.changeset/hosted-mcp.md b/.changeset/hosted-mcp.md deleted file mode 100644 index c1aefa138..000000000 --- a/.changeset/hosted-mcp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss-mcp": minor ---- - -The server is also hosted at `https://api.coss.com/mcp` (Streamable HTTP, stateless, authenticated with `Authorization: Bearer `), for clients that can't start a local process. `coss-mcp/http` is its handler, and `createCossMcpServer` takes `transport: "hosted"`, which offers no tool that touches files. `server.json` describes both for the MCP registry. diff --git a/.changeset/mcp-empty-toolsets.md b/.changeset/mcp-empty-toolsets.md deleted file mode 100644 index 130a34314..000000000 --- a/.changeset/mcp-empty-toolsets.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss-mcp": patch ---- - -An empty or whitespace `COSS_MCP_TOOLSETS` now means every tool, as an unset one does, instead of only the core tools. The Claude Code plugin's new optional `toolsets` setting passes it through, and is empty unless someone picks toolsets. diff --git a/.changeset/per-host-locations.md b/.changeset/per-host-locations.md deleted file mode 100644 index 6172c0f1d..000000000 --- a/.changeset/per-host-locations.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Scheduling hosts have `locations`: their own office, meeting link and phone number. An event type's location that leaves its value blank uses the booked host's. diff --git a/.changeset/risk-billing.md b/.changeset/risk-billing.md deleted file mode 100644 index 789be015c..000000000 --- a/.changeset/risk-billing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": patch ---- - -Risk: the `Meter` type gains `risk.assessments` and `risk.content_checks`, and `RiskDegradedSignal` gains `usage_limit` (an assessment that ran without velocity, memory or content because the plan's included assessments are used up, or a billing hold or budget applies). `coss.risk.classify()` is billed now, so it is no longer retried automatically. diff --git a/.changeset/scheduling-attendee-limit.md b/.changeset/scheduling-attendee-limit.md deleted file mode 100644 index f906d01a8..000000000 --- a/.changeset/scheduling-attendee-limit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Scheduling event types take `max_active_bookings_per_attendee`, which caps how many upcoming bookings one person can have at a time. Booking past it answers `attendee_limit_reached`. diff --git a/.changeset/scheduling-booking-history.md b/.changeset/scheduling-booking-history.md deleted file mode 100644 index c27eb2ae6..000000000 --- a/.changeset/scheduling-booking-history.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"coss": minor -"coss-mcp": minor -"coss-cli": minor ---- - -Scheduling bookings have a readable history: `coss.scheduling.bookings.events(id)`, the MCP server's `list_scheduling_booking_events` and `coss scheduling booking-events`. A cancelled booking says who cancelled it in `cancelled_by`, and `bookings.cancel` takes an optional `reason`, which only retrieving that booking returns. `bookings.cancel`'s second argument is now its parameters, and request options moved to the third, as on `series.cancel`. diff --git a/.changeset/scheduling-event-type-description.md b/.changeset/scheduling-event-type-description.md deleted file mode 100644 index 58e2c90a1..000000000 --- a/.changeset/scheduling-event-type-description.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Scheduling event types take a `description`, shown on hosted booking pages and never in emails. Its links must be on your organization's verified domains and use `https`. diff --git a/.changeset/scheduling-explain-slot.md b/.changeset/scheduling-explain-slot.md deleted file mode 100644 index 0f5adb24f..000000000 --- a/.changeset/scheduling-explain-slot.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"coss": minor -"coss-mcp": minor -"coss-cli": minor ---- - -Scheduling slots explain themselves. `coss.scheduling.slots.explain(eventType, { start })`, the MCP server's `explain_scheduling_slot` and `coss scheduling slots explain` say whether one start can be booked right now and, host by host, why not. Slots also carry `seats_left` for group event types. diff --git a/.changeset/scheduling-guests-calendar-details.md b/.changeset/scheduling-guests-calendar-details.md deleted file mode 100644 index ab25b0017..000000000 --- a/.changeset/scheduling-guests-calendar-details.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"coss": minor -"coss-mcp": minor ---- - -Scheduling bookings can have guests: set an event type's `max_guests`, then pass `guests` when booking. They're emailed about it, and `coss.scheduling.attendees.eraseByEmail()` erases someone known only by their address. An event type's `host_calendar_details: "full"` puts its title and who's coming on hosts' calendars instead of a neutral "Appointment". The MCP server's `create_scheduling_booking` takes `guests`. diff --git a/.changeset/scheduling-hosts-meter.md b/.changeset/scheduling-hosts-meter.md deleted file mode 100644 index b67fcd1a9..000000000 --- a/.changeset/scheduling-hosts-meter.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": patch ---- - -Billing: the `scheduling.hosts` meter is new, and the unreleased `video.participant_minutes` is gone. diff --git a/.changeset/scheduling-localized-notifications.md b/.changeset/scheduling-localized-notifications.md deleted file mode 100644 index 506397402..000000000 --- a/.changeset/scheduling-localized-notifications.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Scheduling hosts take a `locale`, which their notifications are written in. Emails and texts about a booking are now written in the attendee's or host's locale when coss.com has it, and in English otherwise. diff --git a/.changeset/scheduling-logo.md b/.changeset/scheduling-logo.md deleted file mode 100644 index f8028284d..000000000 --- a/.changeset/scheduling-logo.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Scheduling settings take a `logo`, shown on the hosted pages and on emails sent from your own address. diff --git a/.changeset/scheduling-reminders.md b/.changeset/scheduling-reminders.md deleted file mode 100644 index 5bd08dd64..000000000 --- a/.changeset/scheduling-reminders.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"coss": minor -"coss-mcp": minor -"coss-cli": minor ---- - -Scheduling reminders: `reminders` on `coss.scheduling.settings` and event types say what goes out around a booking, timed from its start, end or any change to it, to attendees, hosts, fixed addresses or a webhook, in your own words if you like. `coss.scheduling.bookings.notifications()` lists what was queued and why anything wasn't sent. New webhooks: `scheduling.booking.started`, `scheduling.booking.ended` and `scheduling.booking.reminder`. Hosts take a `phone`, event types take `notifications`, and settings take `email_reply_to`. The MCP server gets `get_scheduling_reminders`, `save_scheduling_reminders`, `list_scheduling_booking_notifications` and `mark_scheduling_no_show`, and the CLI `coss scheduling reminders`, `notifications` and `no-show`. diff --git a/.changeset/scheduling-routing.md b/.changeset/scheduling-routing.md deleted file mode 100644 index 626535904..000000000 --- a/.changeset/scheduling-routing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Scheduling: a booker session can take `attributes`, so hosted and embedded bookers can route to a specialist. diff --git a/.changeset/scheduling-zoom.md b/.changeset/scheduling-zoom.md deleted file mode 100644 index f6ea3f995..000000000 --- a/.changeset/scheduling-zoom.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"coss": minor ---- - -Scheduling: `zoom` as a location, and `provider: "zoom"` when authorizing a host's connection. diff --git a/.changeset/security-findings.md b/.changeset/security-findings.md deleted file mode 100644 index 1b96a99d6..000000000 --- a/.changeset/security-findings.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"coss": patch -"coss-mcp": patch ---- - -Avoid regular expressions that slow down on unusual input when trimming base URLs and reading From headers. diff --git a/bun.lock b/bun.lock index 6c48eb020..45935f851 100644 --- a/bun.lock +++ b/bun.lock @@ -480,7 +480,7 @@ }, "packages/cli": { "name": "coss-cli", - "version": "0.6.0", + "version": "0.7.0", "bin": { "coss": "dist/cli.js", }, @@ -706,7 +706,7 @@ }, "packages/mcp": { "name": "coss-mcp", - "version": "0.6.0", + "version": "0.7.0", "bin": { "coss-mcp": "dist/cli.js", }, @@ -913,7 +913,7 @@ }, "packages/sdk": { "name": "coss", - "version": "0.11.0", + "version": "0.12.0", "devDependencies": { "@arethetypeswrong/core": "0.18.5", "@auth/core": "0.41.3", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 6bd8fc9e6..8e5cb053d 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,42 @@ # coss-cli +## 0.7.0 + +### Minor Changes + +- 2012767: Setup and diagnosis know every product. `fetchSetupReport(coss, { product })`, the MCP server's `get_setup` and `coss init --product` say what a product still needs or how to try it in a sandbox, and report `products` and `products_in_use` next to the fields they had. `coss/diagnose` adds SMS, Verify, Sign, Forms, Hooks and Scheduling, as MCP tools (`diagnose_verification`, `diagnose_sign_request`, `diagnose_form_submission`, `diagnose_hook_delivery`, `diagnose_scheduling_slots`) and CLI commands (`coss sms diagnose`, `coss verify diagnose`, `coss sign diagnose`, `coss forms diagnose`, `coss hooks diagnose`, `coss scheduling diagnose`). The MCP server also gets `list_email_templates`, log drain and sub-account tools, `api_get` (a read-only fallback for any `/v1/` path), output schemas on `get_setup` and the diagnose tools, and its first prompts and resources. +- a7ff535: Verify's settings have an API: `coss.verify.settings.get()` and `.update()`. The MCP server gets tools for marketing (contacts, audiences, segments, topics, broadcasts), Verify and Sign, and more for Forms, Scheduling, Hooks and Risk, plus `COSS_MCP_TOOLSETS` to offer fewer of them. The CLI gets `coss verify`, `coss contacts`, `coss broadcasts` and `coss sign`, and more of `coss sms`, `coss forms` and `coss scheduling`. +- 1d11cf9: The CLI manages what it could only read. New: `coss suppressions`, `coss subaccounts`, `coss log-drains`, `coss audiences`, `coss segments`, `coss topics`, `coss marketing settings`, `coss risk rules`, `coss risk check`, `coss risk classify`, `coss risk settings`, `coss sign settings` and `coss scheduling schedules`; `coss emails cancel` and `reschedule`, `coss sms cancel`, `coss sms suppressions check`, `coss contacts update`, `import` and `export`, `coss broadcasts update`, `remove`, `pause` and `resume`, `coss forms update` and `remove`, `coss sign templates create`, and `coss scheduling hosts create`, `update` and `remove`, `event-types create` and `update`, `book`, `reschedule`, `approve` and `decline`. `coss open` knows every page of the dashboard, and unknown commands point at `coss api`. +- 17ac7bc: Scheduling bookings have a readable history: `coss.scheduling.bookings.events(id)`, the MCP server's `list_scheduling_booking_events` and `coss scheduling booking-events`. A cancelled booking says who cancelled it in `cancelled_by`, and `bookings.cancel` takes an optional `reason`, which only retrieving that booking returns. `bookings.cancel`'s second argument is now its parameters, and request options moved to the third, as on `series.cancel`. +- 4168d9e: Scheduling slots explain themselves. `coss.scheduling.slots.explain(eventType, { start })`, the MCP server's `explain_scheduling_slot` and `coss scheduling slots explain` say whether one start can be booked right now and, host by host, why not. Slots also carry `seats_left` for group event types. +- 6d31dd3: Scheduling reminders: `reminders` on `coss.scheduling.settings` and event types say what goes out around a booking, timed from its start, end or any change to it, to attendees, hosts, fixed addresses or a webhook, in your own words if you like. `coss.scheduling.bookings.notifications()` lists what was queued and why anything wasn't sent. New webhooks: `scheduling.booking.started`, `scheduling.booking.ended` and `scheduling.booking.reminder`. Hosts take a `phone`, event types take `notifications`, and settings take `email_reply_to`. The MCP server gets `get_scheduling_reminders`, `save_scheduling_reminders`, `list_scheduling_booking_notifications` and `mark_scheduling_no_show`, and the CLI `coss scheduling reminders`, `notifications` and `no-show`. + +### Patch Changes + +- 05dd81b: Scheduling's calendar delegations: `coss.scheduling.calendarDelegations` lets an admin authorize a Google Workspace or Microsoft 365 domain once, so every host on it gets their calendar with no consent screen. Hosts gain `calendar_account`, calendar connections gain `delegation`, and there are `scheduling.calendar_delegation.failing` and `.restored` webhooks. `coss open scheduling-calendar-delegation` opens its dashboard page. +- Updated dependencies [2012767] +- Updated dependencies [a7ff535] +- Updated dependencies [05dd81b] +- Updated dependencies [9e79d10] +- Updated dependencies [8dacd0f] +- Updated dependencies [411767c] +- Updated dependencies [fb681ad] +- Updated dependencies [97e84b2] +- Updated dependencies [cbed6ab] +- Updated dependencies [56a7443] +- Updated dependencies [17ac7bc] +- Updated dependencies [346c63f] +- Updated dependencies [4168d9e] +- Updated dependencies [f099789] +- Updated dependencies [895ef91] +- Updated dependencies [cee7e38] +- Updated dependencies [11286f6] +- Updated dependencies [6d31dd3] +- Updated dependencies [0101bab] +- Updated dependencies [ddf6142] +- Updated dependencies [7452381] + - coss@0.12.0 + ## 0.6.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 8c08c23ab..60438b931 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "coss-cli", - "version": "0.6.0", + "version": "0.7.0", "description": "The coss.com command line: sign in, tail your log, forward webhooks to localhost with `coss listen`, and use email, marketing, inboxes, SMS, Verify, Sign, Forms, Scheduling, Hooks and Risk.", "license": "MIT", "homepage": "https://coss.com/docs/cli", @@ -51,7 +51,7 @@ "test": "bun test" }, "dependencies": { - "coss": "^0.11.0" + "coss": "^0.12.0" }, "devDependencies": { "@arethetypeswrong/core": "0.18.5", diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index 262cca690..2e7d77b51 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,45 @@ # coss-mcp +## 0.7.0 + +### Minor Changes + +- 2012767: Setup and diagnosis know every product. `fetchSetupReport(coss, { product })`, the MCP server's `get_setup` and `coss init --product` say what a product still needs or how to try it in a sandbox, and report `products` and `products_in_use` next to the fields they had. `coss/diagnose` adds SMS, Verify, Sign, Forms, Hooks and Scheduling, as MCP tools (`diagnose_verification`, `diagnose_sign_request`, `diagnose_form_submission`, `diagnose_hook_delivery`, `diagnose_scheduling_slots`) and CLI commands (`coss sms diagnose`, `coss verify diagnose`, `coss sign diagnose`, `coss forms diagnose`, `coss hooks diagnose`, `coss scheduling diagnose`). The MCP server also gets `list_email_templates`, log drain and sub-account tools, `api_get` (a read-only fallback for any `/v1/` path), output schemas on `get_setup` and the diagnose tools, and its first prompts and resources. +- a7ff535: Verify's settings have an API: `coss.verify.settings.get()` and `.update()`. The MCP server gets tools for marketing (contacts, audiences, segments, topics, broadcasts), Verify and Sign, and more for Forms, Scheduling, Hooks and Risk, plus `COSS_MCP_TOOLSETS` to offer fewer of them. The CLI gets `coss verify`, `coss contacts`, `coss broadcasts` and `coss sign`, and more of `coss sms`, `coss forms` and `coss scheduling`. +- 411767c: `coss.environment.get()` and the MCP server's `get_account_status` say whether the organization is in HIPAA mode (`organization.hipaa_mode`). The MCP server explains `hipaa_mode_restriction` refusals. +- cdec0a9: The server is also hosted at `https://api.coss.com/mcp` (Streamable HTTP, stateless, authenticated with `Authorization: Bearer `), for clients that can't start a local process. `coss-mcp/http` is its handler, and `createCossMcpServer` takes `transport: "hosted"`, which offers no tool that touches files. `server.json` describes both for the MCP registry. +- 17ac7bc: Scheduling bookings have a readable history: `coss.scheduling.bookings.events(id)`, the MCP server's `list_scheduling_booking_events` and `coss scheduling booking-events`. A cancelled booking says who cancelled it in `cancelled_by`, and `bookings.cancel` takes an optional `reason`, which only retrieving that booking returns. `bookings.cancel`'s second argument is now its parameters, and request options moved to the third, as on `series.cancel`. +- 4168d9e: Scheduling slots explain themselves. `coss.scheduling.slots.explain(eventType, { start })`, the MCP server's `explain_scheduling_slot` and `coss scheduling slots explain` say whether one start can be booked right now and, host by host, why not. Slots also carry `seats_left` for group event types. +- f099789: Scheduling bookings can have guests: set an event type's `max_guests`, then pass `guests` when booking. They're emailed about it, and `coss.scheduling.attendees.eraseByEmail()` erases someone known only by their address. An event type's `host_calendar_details: "full"` puts its title and who's coming on hosts' calendars instead of a neutral "Appointment". The MCP server's `create_scheduling_booking` takes `guests`. +- 6d31dd3: Scheduling reminders: `reminders` on `coss.scheduling.settings` and event types say what goes out around a booking, timed from its start, end or any change to it, to attendees, hosts, fixed addresses or a webhook, in your own words if you like. `coss.scheduling.bookings.notifications()` lists what was queued and why anything wasn't sent. New webhooks: `scheduling.booking.started`, `scheduling.booking.ended` and `scheduling.booking.reminder`. Hosts take a `phone`, event types take `notifications`, and settings take `email_reply_to`. The MCP server gets `get_scheduling_reminders`, `save_scheduling_reminders`, `list_scheduling_booking_notifications` and `mark_scheduling_no_show`, and the CLI `coss scheduling reminders`, `notifications` and `no-show`. + +### Patch Changes + +- 476ed3c: An empty or whitespace `COSS_MCP_TOOLSETS` now means every tool, as an unset one does, instead of only the core tools. The Claude Code plugin's new optional `toolsets` setting passes it through, and is empty unless someone picks toolsets. +- 7452381: Avoid regular expressions that slow down on unusual input when trimming base URLs and reading From headers. +- Updated dependencies [2012767] +- Updated dependencies [a7ff535] +- Updated dependencies [05dd81b] +- Updated dependencies [9e79d10] +- Updated dependencies [8dacd0f] +- Updated dependencies [411767c] +- Updated dependencies [fb681ad] +- Updated dependencies [97e84b2] +- Updated dependencies [cbed6ab] +- Updated dependencies [56a7443] +- Updated dependencies [17ac7bc] +- Updated dependencies [346c63f] +- Updated dependencies [4168d9e] +- Updated dependencies [f099789] +- Updated dependencies [895ef91] +- Updated dependencies [cee7e38] +- Updated dependencies [11286f6] +- Updated dependencies [6d31dd3] +- Updated dependencies [0101bab] +- Updated dependencies [ddf6142] +- Updated dependencies [7452381] + - coss@0.12.0 + ## 0.6.0 ### Minor Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 2cb4a4bfe..28fd12d97 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "coss-mcp", - "version": "0.6.0", + "version": "0.7.0", "mcpName": "com.coss/mcp", "description": "MCP server for coss.com: lets coding agents search the docs, diagnose delivery and use email, marketing, inboxes, SMS, Verify, Sign, Forms, Scheduling, Hooks and Risk.", "license": "MIT", @@ -54,7 +54,7 @@ }, "dependencies": { "@modelcontextprotocol/server": "2.3.1", - "coss": "^0.11.0", + "coss": "^0.12.0", "zod": "^4.6.5" }, "devDependencies": { diff --git a/packages/mcp/server.json b/packages/mcp/server.json index 4af15dfa6..a051f9840 100644 --- a/packages/mcp/server.json +++ b/packages/mcp/server.json @@ -9,12 +9,12 @@ "source": "github", "subfolder": "packages/mcp" }, - "version": "0.6.0", + "version": "0.7.0", "packages": [ { "registryType": "npm", "identifier": "coss-mcp", - "version": "0.6.0", + "version": "0.7.0", "transport": { "type": "stdio" }, diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index 92987b6f0..9b79ce303 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -1,5 +1,34 @@ # coss +## 0.12.0 + +### Minor Changes + +- 2012767: Setup and diagnosis know every product. `fetchSetupReport(coss, { product })`, the MCP server's `get_setup` and `coss init --product` say what a product still needs or how to try it in a sandbox, and report `products` and `products_in_use` next to the fields they had. `coss/diagnose` adds SMS, Verify, Sign, Forms, Hooks and Scheduling, as MCP tools (`diagnose_verification`, `diagnose_sign_request`, `diagnose_form_submission`, `diagnose_hook_delivery`, `diagnose_scheduling_slots`) and CLI commands (`coss sms diagnose`, `coss verify diagnose`, `coss sign diagnose`, `coss forms diagnose`, `coss hooks diagnose`, `coss scheduling diagnose`). The MCP server also gets `list_email_templates`, log drain and sub-account tools, `api_get` (a read-only fallback for any `/v1/` path), output schemas on `get_setup` and the diagnose tools, and its first prompts and resources. +- a7ff535: Verify's settings have an API: `coss.verify.settings.get()` and `.update()`. The MCP server gets tools for marketing (contacts, audiences, segments, topics, broadcasts), Verify and Sign, and more for Forms, Scheduling, Hooks and Risk, plus `COSS_MCP_TOOLSETS` to offer fewer of them. The CLI gets `coss verify`, `coss contacts`, `coss broadcasts` and `coss sign`, and more of `coss sms`, `coss forms` and `coss scheduling`. +- 05dd81b: Scheduling's calendar delegations: `coss.scheduling.calendarDelegations` lets an admin authorize a Google Workspace or Microsoft 365 domain once, so every host on it gets their calendar with no consent screen. Hosts gain `calendar_account`, calendar connections gain `delegation`, and there are `scheduling.calendar_delegation.failing` and `.restored` webhooks. `coss open scheduling-calendar-delegation` opens its dashboard page. +- 9e79d10: Billing has a credit limit: `coss.billing.get()` returns `credit_limit` (`limit`, `used`, `charge_threshold`), holds can have the reason `credit_limit`, invoices the kind `threshold` (usage charged early) and credits the source `threshold`. +- 8dacd0f: `BillingMeter` adds `email.attachment_data` and `email.received_data`: attachments and received messages past an email's first MB, billed by the MB. +- 411767c: `coss.environment.get()` and the MCP server's `get_account_status` say whether the organization is in HIPAA mode (`organization.hipaa_mode`). The MCP server explains `hipaa_mode_restriction` refusals. +- 97e84b2: Scheduling hosts have `locations`: their own office, meeting link and phone number. An event type's location that leaves its value blank uses the booked host's. +- 56a7443: Scheduling event types take `max_active_bookings_per_attendee`, which caps how many upcoming bookings one person can have at a time. Booking past it answers `attendee_limit_reached`. +- 17ac7bc: Scheduling bookings have a readable history: `coss.scheduling.bookings.events(id)`, the MCP server's `list_scheduling_booking_events` and `coss scheduling booking-events`. A cancelled booking says who cancelled it in `cancelled_by`, and `bookings.cancel` takes an optional `reason`, which only retrieving that booking returns. `bookings.cancel`'s second argument is now its parameters, and request options moved to the third, as on `series.cancel`. +- 346c63f: Scheduling event types take a `description`, shown on hosted booking pages and never in emails. Its links must be on your organization's verified domains and use `https`. +- 4168d9e: Scheduling slots explain themselves. `coss.scheduling.slots.explain(eventType, { start })`, the MCP server's `explain_scheduling_slot` and `coss scheduling slots explain` say whether one start can be booked right now and, host by host, why not. Slots also carry `seats_left` for group event types. +- f099789: Scheduling bookings can have guests: set an event type's `max_guests`, then pass `guests` when booking. They're emailed about it, and `coss.scheduling.attendees.eraseByEmail()` erases someone known only by their address. An event type's `host_calendar_details: "full"` puts its title and who's coming on hosts' calendars instead of a neutral "Appointment". The MCP server's `create_scheduling_booking` takes `guests`. +- cee7e38: Scheduling hosts take a `locale`, which their notifications are written in. Emails and texts about a booking are now written in the attendee's or host's locale when coss.com has it, and in English otherwise. +- 11286f6: Scheduling settings take a `logo`, shown on the hosted pages and on emails sent from your own address. +- 6d31dd3: Scheduling reminders: `reminders` on `coss.scheduling.settings` and event types say what goes out around a booking, timed from its start, end or any change to it, to attendees, hosts, fixed addresses or a webhook, in your own words if you like. `coss.scheduling.bookings.notifications()` lists what was queued and why anything wasn't sent. New webhooks: `scheduling.booking.started`, `scheduling.booking.ended` and `scheduling.booking.reminder`. Hosts take a `phone`, event types take `notifications`, and settings take `email_reply_to`. The MCP server gets `get_scheduling_reminders`, `save_scheduling_reminders`, `list_scheduling_booking_notifications` and `mark_scheduling_no_show`, and the CLI `coss scheduling reminders`, `notifications` and `no-show`. +- 0101bab: Scheduling: a booker session can take `attributes`, so hosted and embedded bookers can route to a specialist. +- ddf6142: Scheduling: `zoom` as a location, and `provider: "zoom"` when authorizing a host's connection. + +### Patch Changes + +- fb681ad: Billing's meter type includes `hooks.messages`: live Hooks messages are now billed. +- cbed6ab: Risk: the `Meter` type gains `risk.assessments` and `risk.content_checks`, and `RiskDegradedSignal` gains `usage_limit` (an assessment that ran without velocity, memory or content because the plan's included assessments are used up, or a billing hold or budget applies). `coss.risk.classify()` is billed now, so it is no longer retried automatically. +- 895ef91: Billing: the `scheduling.hosts` meter is new, and the unreleased `video.participant_minutes` is gone. +- 7452381: Avoid regular expressions that slow down on unusual input when trimming base URLs and reading From headers. + ## 0.11.0 ### Minor Changes diff --git a/packages/sdk/package.json b/packages/sdk/package.json index b3adce63c..5d354996b 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "coss", - "version": "0.11.0", + "version": "0.12.0", "description": "The official TypeScript SDK for coss.com: email, marketing, inboxes, SMS, Verify, Sign, Forms, Scheduling, Hooks and Risk behind one API key.", "keywords": [ "coss", diff --git a/packages/sdk/src/version.ts b/packages/sdk/src/version.ts index d4c8d73ad..4a78c1e57 100644 --- a/packages/sdk/src/version.ts +++ b/packages/sdk/src/version.ts @@ -1,2 +1,2 @@ /** SDK version, sent in the User-Agent. A test keeps it equal to package.json's `version`. */ -export const VERSION = "0.11.0"; +export const VERSION = "0.12.0";