@okostream/mcp 0.9.0 → 0.9.1

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.
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export const telegramChannelSchema = z.object({
3
+ chatId: z.number().int(),
4
+ title: z.string().max(200).optional(),
5
+ username: z.string().max(120).nullable().optional(),
6
+ }).strict();
7
+ export const canonicalTelegramChannelSchema = telegramChannelSchema.extend({
8
+ workspaceIds: z.array(z.string()).max(50),
9
+ owned: z.boolean(),
10
+ subscriberCount: z.number().int().nonnegative().nullable().optional(),
11
+ health: z.enum(["connected", "needs_attention", "unknown"]).optional(),
12
+ healthCheckedAt: z.number().int().nonnegative().nullable().optional(),
13
+ }).strict();
package/dist/tools.js CHANGED
@@ -13,6 +13,7 @@ import { env } from "./env.js";
13
13
  import { ipLiteralFamily, isPublicUnicastAddress, normalizeIpLiteralHostname, } from "./networkPolicy.js";
14
14
  import { chatRtdb, firestore, functions, rtdb } from "./firebase.js";
15
15
  import { OKO_CONNECTION_STATUSES } from "./onboarding.js";
16
+ import { canonicalTelegramChannelSchema, telegramChannelSchema, } from "./telegramChannelSchema.js";
16
17
  import { csvCell, requireConfirm, safeString, serialize, textResult } from "./utils.js";
17
18
  import { detectAndNormalize, extractIframeSrc } from "./videoUrl.js";
18
19
  const boolOrNull = z.boolean().nullable();
@@ -206,7 +207,7 @@ const workspaceAccessOutputSchema = z.object({
206
207
  invites: z.array(unknownRecordSchema),
207
208
  }).passthrough();
208
209
  const telegramChannelsOutputSchema = z.object({
209
- channels: z.array(unknownRecordSchema),
210
+ channels: z.array(canonicalTelegramChannelSchema),
210
211
  count: z.number().int().nonnegative(),
211
212
  }).passthrough();
212
213
  const telegramPostsOutputSchema = z.object({
@@ -273,15 +274,6 @@ const cardItemInputSchema = z.object({
273
274
  buttonUrl: z.string().max(MAX_CARD_BUTTON_URL_LENGTH).nullable().optional(),
274
275
  formId: cardIdSchema.nullable().optional(),
275
276
  }).strict();
276
- const telegramChannelSchema = z.object({
277
- chatId: z.number().int(),
278
- title: z.string().max(200).optional(),
279
- username: z.string().max(120).nullable().optional(),
280
- }).strict();
281
- const canonicalTelegramChannelSchema = telegramChannelSchema.extend({
282
- workspaceIds: z.array(z.string()).max(50),
283
- owned: z.boolean(),
284
- }).strict();
285
277
  const profileDisplayNameSchema = z.string().max(40).nullable();
286
278
  const timezoneSchema = z.string()
287
279
  .min(1)
@@ -2937,7 +2929,7 @@ export function registerTools(server) {
2937
2929
  "eventId: optional event; when provided, include channels explicitly shared to that event's workspace.",
2938
2930
  "includeWorkspaceChannels: deprecated compatibility field; eventId is required to resolve workspace sharing safely.",
2939
2931
  ],
2940
- returns: "canonical channels with chatId, title, username, workspaceIds, and owned flag.",
2932
+ returns: "canonical channels with identity, workspace sharing, ownership, subscriber count, and connection health.",
2941
2933
  examples: ["Use before oko_publish_telegram_post so the user can choose a channel by title instead of numeric id."],
2942
2934
  }),
2943
2935
  inputSchema: {
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const OKO_MCP_VERSION = "0.9.0";
1
+ export const OKO_MCP_VERSION = "0.9.1";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@okostream/mcp",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "Control OKO Stream webinars from Claude, Codex, and other MCP clients.",
5
5
  "license": "UNLICENSED",
6
6
  "author": {