@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.
- package/README.md +159 -0
- package/dist/adapter.iife.js +15103 -0
- package/dist/adapter.iife.js.map +7 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/get-channel-emotes.d.ts +10 -0
- package/dist/tools/get-channel-emotes.d.ts.map +1 -0
- package/dist/tools/get-channel-emotes.js +38 -0
- package/dist/tools/get-channel-emotes.js.map +1 -0
- package/dist/tools/get-current-user.d.ts +18 -0
- package/dist/tools/get-current-user.d.ts.map +1 -0
- package/dist/tools/get-current-user.js +27 -0
- package/dist/tools/get-current-user.js.map +1 -0
- package/dist/tools/get-game-clips.d.ts +31 -0
- package/dist/tools/get-game-clips.d.ts.map +1 -0
- package/dist/tools/get-game-clips.js +44 -0
- package/dist/tools/get-game-clips.js.map +1 -0
- package/dist/tools/get-game.d.ts +15 -0
- package/dist/tools/get-game.d.ts.map +1 -0
- package/dist/tools/get-game.js +32 -0
- package/dist/tools/get-game.js.map +1 -0
- package/dist/tools/get-stream.d.ts +24 -0
- package/dist/tools/get-stream.d.ts.map +1 -0
- package/dist/tools/get-stream.js +36 -0
- package/dist/tools/get-stream.js.map +1 -0
- package/dist/tools/get-streams-by-game.d.ts +25 -0
- package/dist/tools/get-streams-by-game.d.ts.map +1 -0
- package/dist/tools/get-streams-by-game.js +44 -0
- package/dist/tools/get-streams-by-game.js.map +1 -0
- package/dist/tools/get-top-games.d.ts +14 -0
- package/dist/tools/get-top-games.d.ts.map +1 -0
- package/dist/tools/get-top-games.js +30 -0
- package/dist/tools/get-top-games.js.map +1 -0
- package/dist/tools/get-top-streams.d.ts +23 -0
- package/dist/tools/get-top-streams.d.ts.map +1 -0
- package/dist/tools/get-top-streams.js +34 -0
- package/dist/tools/get-top-streams.js.map +1 -0
- package/dist/tools/get-user-clips.d.ts +31 -0
- package/dist/tools/get-user-clips.d.ts.map +1 -0
- package/dist/tools/get-user-clips.js +44 -0
- package/dist/tools/get-user-clips.js.map +1 -0
- package/dist/tools/get-user-profile.d.ts +20 -0
- package/dist/tools/get-user-profile.d.ts.map +1 -0
- package/dist/tools/get-user-profile.js +31 -0
- package/dist/tools/get-user-profile.js.map +1 -0
- package/dist/tools/get-user-videos.d.ts +30 -0
- package/dist/tools/get-user-videos.d.ts.map +1 -0
- package/dist/tools/get-user-videos.js +58 -0
- package/dist/tools/get-user-videos.js.map +1 -0
- package/dist/tools/get-video.d.ts +23 -0
- package/dist/tools/get-video.d.ts.map +1 -0
- package/dist/tools/get-video.js +50 -0
- package/dist/tools/get-video.js.map +1 -0
- package/dist/tools/schemas.d.ts +153 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +160 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/search-categories.d.ts +14 -0
- package/dist/tools/search-categories.d.ts.map +1 -0
- package/dist/tools/search-categories.js +29 -0
- package/dist/tools/search-categories.js.map +1 -0
- package/dist/tools/search-channels.d.ts +31 -0
- package/dist/tools/search-channels.d.ts.map +1 -0
- package/dist/tools/search-channels.js +56 -0
- package/dist/tools/search-channels.js.map +1 -0
- package/dist/tools.json +1492 -0
- package/dist/twitch-api.d.ts +6 -0
- package/dist/twitch-api.d.ts.map +1 -0
- package/dist/twitch-api.js +90 -0
- package/dist/twitch-api.js.map +1 -0
- 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"}
|