@opentabs-dev/opentabs-plugin-twitch 0.0.74

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 (73) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15103 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/index.d.ts +14 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +60 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/tools/get-channel-emotes.d.ts +10 -0
  9. package/dist/tools/get-channel-emotes.d.ts.map +1 -0
  10. package/dist/tools/get-channel-emotes.js +38 -0
  11. package/dist/tools/get-channel-emotes.js.map +1 -0
  12. package/dist/tools/get-current-user.d.ts +18 -0
  13. package/dist/tools/get-current-user.d.ts.map +1 -0
  14. package/dist/tools/get-current-user.js +27 -0
  15. package/dist/tools/get-current-user.js.map +1 -0
  16. package/dist/tools/get-game-clips.d.ts +31 -0
  17. package/dist/tools/get-game-clips.d.ts.map +1 -0
  18. package/dist/tools/get-game-clips.js +44 -0
  19. package/dist/tools/get-game-clips.js.map +1 -0
  20. package/dist/tools/get-game.d.ts +15 -0
  21. package/dist/tools/get-game.d.ts.map +1 -0
  22. package/dist/tools/get-game.js +32 -0
  23. package/dist/tools/get-game.js.map +1 -0
  24. package/dist/tools/get-stream.d.ts +24 -0
  25. package/dist/tools/get-stream.d.ts.map +1 -0
  26. package/dist/tools/get-stream.js +36 -0
  27. package/dist/tools/get-stream.js.map +1 -0
  28. package/dist/tools/get-streams-by-game.d.ts +25 -0
  29. package/dist/tools/get-streams-by-game.d.ts.map +1 -0
  30. package/dist/tools/get-streams-by-game.js +44 -0
  31. package/dist/tools/get-streams-by-game.js.map +1 -0
  32. package/dist/tools/get-top-games.d.ts +14 -0
  33. package/dist/tools/get-top-games.d.ts.map +1 -0
  34. package/dist/tools/get-top-games.js +30 -0
  35. package/dist/tools/get-top-games.js.map +1 -0
  36. package/dist/tools/get-top-streams.d.ts +23 -0
  37. package/dist/tools/get-top-streams.d.ts.map +1 -0
  38. package/dist/tools/get-top-streams.js +34 -0
  39. package/dist/tools/get-top-streams.js.map +1 -0
  40. package/dist/tools/get-user-clips.d.ts +31 -0
  41. package/dist/tools/get-user-clips.d.ts.map +1 -0
  42. package/dist/tools/get-user-clips.js +44 -0
  43. package/dist/tools/get-user-clips.js.map +1 -0
  44. package/dist/tools/get-user-profile.d.ts +20 -0
  45. package/dist/tools/get-user-profile.d.ts.map +1 -0
  46. package/dist/tools/get-user-profile.js +31 -0
  47. package/dist/tools/get-user-profile.js.map +1 -0
  48. package/dist/tools/get-user-videos.d.ts +30 -0
  49. package/dist/tools/get-user-videos.d.ts.map +1 -0
  50. package/dist/tools/get-user-videos.js +58 -0
  51. package/dist/tools/get-user-videos.js.map +1 -0
  52. package/dist/tools/get-video.d.ts +23 -0
  53. package/dist/tools/get-video.d.ts.map +1 -0
  54. package/dist/tools/get-video.js +50 -0
  55. package/dist/tools/get-video.js.map +1 -0
  56. package/dist/tools/schemas.d.ts +153 -0
  57. package/dist/tools/schemas.d.ts.map +1 -0
  58. package/dist/tools/schemas.js +160 -0
  59. package/dist/tools/schemas.js.map +1 -0
  60. package/dist/tools/search-categories.d.ts +14 -0
  61. package/dist/tools/search-categories.d.ts.map +1 -0
  62. package/dist/tools/search-categories.js +29 -0
  63. package/dist/tools/search-categories.js.map +1 -0
  64. package/dist/tools/search-channels.d.ts +31 -0
  65. package/dist/tools/search-channels.d.ts.map +1 -0
  66. package/dist/tools/search-channels.js +56 -0
  67. package/dist/tools/search-channels.js.map +1 -0
  68. package/dist/tools.json +1492 -0
  69. package/dist/twitch-api.d.ts +6 -0
  70. package/dist/twitch-api.d.ts.map +1 -0
  71. package/dist/twitch-api.js +90 -0
  72. package/dist/twitch-api.js.map +1 -0
  73. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const searchCategories: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ query: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ categories: z.ZodArray<z.ZodObject<{
6
+ id: z.ZodString;
7
+ name: z.ZodString;
8
+ displayName: z.ZodString;
9
+ viewersCount: z.ZodNumber;
10
+ broadcastersCount: z.ZodNumber;
11
+ boxArtURL: z.ZodString;
12
+ }, z.core.$strip>>;
13
+ }, z.core.$strip>>;
14
+ //# sourceMappingURL=search-categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-categories.d.ts","sourceRoot":"","sources":["../../src/tools/search-categories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;kBA0B3B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { gql } from '../twitch-api.js';
4
+ import { gameSchema, mapGame } from './schemas.js';
5
+ export const searchCategories = defineTool({
6
+ name: 'search_categories',
7
+ displayName: 'Search Categories',
8
+ description: 'Search for games and categories on Twitch by keyword. Returns matching games with viewer counts and box art.',
9
+ summary: 'Search for games and categories',
10
+ icon: 'search',
11
+ group: 'Search',
12
+ input: z.object({
13
+ query: z.string().describe('Search query text'),
14
+ }),
15
+ output: z.object({ categories: z.array(gameSchema) }),
16
+ handle: async (params) => {
17
+ const data = await gql(`{
18
+ searchFor(userQuery: "${params.query.replace(/"/g, '\\"')}", platform: "web", options: { targets: [{ index: GAME }] }) {
19
+ games {
20
+ items { id name displayName viewersCount broadcastersCount boxArtURL }
21
+ }
22
+ }
23
+ }`);
24
+ return {
25
+ categories: (data.searchFor?.games?.items ?? []).map(mapGame),
26
+ };
27
+ },
28
+ });
29
+ //# sourceMappingURL=search-categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-categories.js","sourceRoot":"","sources":["../../src/tools/search-categories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EACT,8GAA8G;IAChH,OAAO,EAAE,iCAAiC;IAC1C,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAChD,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;IACrD,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAEnB;8BACuB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;;MAKzD,CAAC,CAAC;QACJ,OAAO;YACL,UAAU,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;SAC9D,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ export declare const searchChannels: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ query: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ channels: z.ZodArray<z.ZodObject<{
6
+ id: z.ZodString;
7
+ login: z.ZodString;
8
+ displayName: z.ZodString;
9
+ profileImageURL: z.ZodString;
10
+ followerCount: z.ZodNumber;
11
+ isLive: z.ZodBoolean;
12
+ stream: z.ZodNullable<z.ZodObject<{
13
+ id: z.ZodString;
14
+ title: z.ZodString;
15
+ viewersCount: z.ZodNumber;
16
+ type: z.ZodString;
17
+ createdAt: z.ZodString;
18
+ broadcaster: z.ZodObject<{
19
+ id: z.ZodString;
20
+ login: z.ZodString;
21
+ displayName: z.ZodString;
22
+ profileImageURL: z.ZodString;
23
+ }, z.core.$strip>;
24
+ game: z.ZodObject<{
25
+ id: z.ZodString;
26
+ name: z.ZodString;
27
+ }, z.core.$strip>;
28
+ }, z.core.$strip>>;
29
+ }, z.core.$strip>>;
30
+ }, z.core.$strip>>;
31
+ //# sourceMappingURL=search-channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-channels.d.ts","sourceRoot":"","sources":["../../src/tools/search-channels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAsDzB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { gql } from '../twitch-api.js';
4
+ import { streamSchema, mapStream } from './schemas.js';
5
+ const channelResultSchema = z.object({
6
+ id: z.string().describe('Channel user ID'),
7
+ login: z.string().describe('Channel login name'),
8
+ displayName: z.string().describe('Channel display name'),
9
+ profileImageURL: z.string().describe('Profile image URL'),
10
+ followerCount: z.number().describe('Total number of followers'),
11
+ isLive: z.boolean().describe('Whether the channel is currently live'),
12
+ stream: streamSchema.nullable().describe('Current stream info if live, null otherwise'),
13
+ });
14
+ export const searchChannels = defineTool({
15
+ name: 'search_channels',
16
+ displayName: 'Search Channels',
17
+ description: 'Search for Twitch channels by keyword. Returns matching channels with their live status, follower count, and current stream info if live.',
18
+ summary: 'Search for Twitch channels',
19
+ icon: 'search',
20
+ group: 'Search',
21
+ input: z.object({
22
+ query: z.string().describe('Search query text'),
23
+ }),
24
+ output: z.object({ channels: z.array(channelResultSchema) }),
25
+ handle: async (params) => {
26
+ const data = await gql(`{
27
+ searchFor(userQuery: "${params.query.replace(/"/g, '\\"')}", platform: "web", options: { targets: [{ index: CHANNEL }] }) {
28
+ channels {
29
+ items {
30
+ id login displayName
31
+ profileImageURL(width: 70)
32
+ followers { totalCount }
33
+ stream {
34
+ id title viewersCount type createdAt
35
+ broadcaster { id login displayName profileImageURL(width: 70) }
36
+ game { id name }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }`);
42
+ const items = data.searchFor?.channels?.items ?? [];
43
+ return {
44
+ channels: items.map(c => ({
45
+ id: c.id ?? '',
46
+ login: c.login ?? '',
47
+ displayName: c.displayName ?? '',
48
+ profileImageURL: c.profileImageURL ?? '',
49
+ followerCount: c.followers?.totalCount ?? 0,
50
+ isLive: !!c.stream,
51
+ stream: c.stream ? mapStream(c.stream) : null,
52
+ })),
53
+ };
54
+ },
55
+ });
56
+ //# sourceMappingURL=search-channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-channels.js","sourceRoot":"","sources":["../../src/tools/search-channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACxD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACzD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC/D,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACrE,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CACxF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EACT,2IAA2I;IAC7I,OAAO,EAAE,4BAA4B;IACrC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAChD,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC5D,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QASrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAInB;8BACuB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;;;;;;;;;;;MAczD,CAAC,CAAC;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;gBAChC,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,EAAE;gBACxC,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC;gBAC3C,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;gBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;aAC9C,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}