@liorium/youtube-omni-mcp 0.2.0 → 0.2.3
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/.env.example +3 -2
- package/CHANGELOG.md +17 -0
- package/README.md +28 -3
- package/dist/src/config.d.ts +1 -0
- package/dist/src/config.js +2 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/providers/mongo-cache-provider.d.ts +82 -0
- package/dist/src/providers/mongo-cache-provider.js +118 -0
- package/dist/src/providers/mongo-cache-provider.js.map +1 -0
- package/dist/src/providers/transcript-provider.d.ts +24 -0
- package/dist/src/providers/transcript-provider.js +9 -1
- package/dist/src/providers/transcript-provider.js.map +1 -1
- package/dist/src/providers/youtube-data-api.d.ts +65 -1
- package/dist/src/providers/youtube-data-api.js +108 -1
- package/dist/src/providers/youtube-data-api.js.map +1 -1
- package/dist/src/schemas/channel.d.ts +1 -1
- package/dist/src/schemas/common.d.ts +1 -1
- package/dist/src/schemas/discovery.d.ts +2 -2
- package/dist/src/schemas/video.d.ts +1 -1
- package/dist/src/server.d.ts +3 -1
- package/dist/src/server.js +14 -2
- package/dist/src/server.js.map +1 -1
- package/dist/src/tools/safety.js +1 -1
- package/dist/src/tools/safety.js.map +1 -1
- package/package.json +3 -2
package/.env.example
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# Optional for public YouTube Data API reads
|
|
2
2
|
YOUTUBE_API_KEY=
|
|
3
3
|
|
|
4
|
-
# Optional cache/outlier provider,
|
|
4
|
+
# Optional cache/outlier provider. When enabled with MongoDB URI, public YouTube API responses are cached.
|
|
5
5
|
YOUTUBE_OMNI_ENABLE_OUTLIER=false
|
|
6
|
-
YOUTUBE_OMNI_MONGO_URI=
|
|
6
|
+
YOUTUBE_OMNI_MONGO_URI=mongodb://127.0.0.1:27018/youtube_omni_mcp
|
|
7
|
+
YOUTUBE_OMNI_CACHE_TTL_SECONDS=21600
|
|
7
8
|
|
|
8
9
|
# Safety defaults
|
|
9
10
|
YOUTUBE_OMNI_MAX_RESULTS=50
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.3 - 2026-05-14
|
|
4
|
+
|
|
5
|
+
- Ensure the published `youtube-omni-mcp` CLI bin is executable after build so `npx -y @liorium/youtube-omni-mcp` can launch the MCP stdio server.
|
|
6
|
+
|
|
7
|
+
## 0.2.2 - 2026-05-14
|
|
8
|
+
|
|
9
|
+
- Document the dedicated local MongoDB backing-service names under the `youtube-omni-mcp` package prefix.
|
|
10
|
+
- Standardize local Docker resources as `youtube-omni-mcp-mongo:7`, `youtube-omni-mcp-mongo`, and `youtube-omni-mcp-mongo-data`.
|
|
11
|
+
- Keep the dedicated MongoDB connection on `127.0.0.1:27018/youtube_omni_mcp` with cache collection `youtube_omni_cache`.
|
|
12
|
+
|
|
13
|
+
## 0.2.1 - 2026-05-14
|
|
14
|
+
|
|
15
|
+
- Use the live YouTube Data API provider when `YOUTUBE_API_KEY` is configured instead of always using mock data.
|
|
16
|
+
- Add MongoDB cache provider activated by `YOUTUBE_OMNI_ENABLE_OUTLIER=true` plus `YOUTUBE_OMNI_MONGO_URI`.
|
|
17
|
+
- Add cache TTL configuration via `YOUTUBE_OMNI_CACHE_TTL_SECONDS` and document new-environment MCP setup.
|
|
18
|
+
- Keep mock provider fallback for safe schema/smoke testing when no API key is present.
|
|
19
|
+
|
|
3
20
|
## 0.2.0 - 2026-05-14
|
|
4
21
|
|
|
5
22
|
- Add five Creator Research tools: outlier video discovery, hook comparison, topic angle extraction, comment pain-point summarization, and video angle matrix generation.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
`youtube-omni` is a full-scope YouTube Creator Intelligence + Operations + Analytics + Production MCP project.
|
|
4
4
|
|
|
5
|
-
Current implementation phase: **v0.2
|
|
5
|
+
Current implementation phase: **v0.2.1 live YouTube Data API + MongoDB cache foundation**.
|
|
6
6
|
|
|
7
7
|
## v0.2 default boundary
|
|
8
8
|
|
|
@@ -57,7 +57,9 @@ Use this shape in an `mcp.json`-style client configuration:
|
|
|
57
57
|
"env": {
|
|
58
58
|
"YOUTUBE_API_KEY": "YOUR_YOUTUBE_DATA_API_KEY",
|
|
59
59
|
"YOUTUBE_OMNI_MAX_RESULTS": "50",
|
|
60
|
-
"YOUTUBE_OMNI_ENABLE_OUTLIER": "
|
|
60
|
+
"YOUTUBE_OMNI_ENABLE_OUTLIER": "true",
|
|
61
|
+
"YOUTUBE_OMNI_MONGO_URI": "mongodb://127.0.0.1:27018/youtube_omni_mcp",
|
|
62
|
+
"YOUTUBE_OMNI_CACHE_TTL_SECONDS": "21600",
|
|
61
63
|
"YOUTUBE_OMNI_ENABLE_WRITE_TOOLS": "false",
|
|
62
64
|
"YOUTUBE_OMNI_DRY_RUN_WRITES": "false",
|
|
63
65
|
"YOUTUBE_OMNI_ENABLE_DOWNLOAD_TOOLS": "false",
|
|
@@ -72,7 +74,30 @@ For local development before publishing, use a packed tarball:
|
|
|
72
74
|
|
|
73
75
|
```bash
|
|
74
76
|
npm pack
|
|
75
|
-
npx -y ./liorium-youtube-omni-mcp-0.2.
|
|
77
|
+
npx -y ./liorium-youtube-omni-mcp-0.2.1.tgz
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## MongoDB cache mode
|
|
81
|
+
|
|
82
|
+
For a new Hermes/MCP environment, set both the flag and the URI:
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
YOUTUBE_OMNI_ENABLE_OUTLIER: 'true'
|
|
86
|
+
YOUTUBE_OMNI_MONGO_URI: mongodb://127.0.0.1:27018/youtube_omni_mcp
|
|
87
|
+
YOUTUBE_OMNI_CACHE_TTL_SECONDS: '21600'
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
When `YOUTUBE_API_KEY` is present, youtube-omni uses the live YouTube Data API provider. When Mongo cache mode is also enabled, public Data API reads are wrapped by a MongoDB cache (`youtube_omni_cache` collection) so repeated research/planning calls reuse previous results instead of spending quota again. Without `YOUTUBE_API_KEY`, the server falls back to the mock provider for safe schema/smoke testing.
|
|
91
|
+
|
|
92
|
+
For local Docker-backed deployments, keep resource names under the package prefix:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
image: youtube-omni-mcp-mongo:7
|
|
96
|
+
container: youtube-omni-mcp-mongo
|
|
97
|
+
volume: youtube-omni-mcp-mongo-data
|
|
98
|
+
port: 127.0.0.1:27018 -> 27017
|
|
99
|
+
db: youtube_omni_mcp
|
|
100
|
+
collection: youtube_omni_cache
|
|
76
101
|
```
|
|
77
102
|
|
|
78
103
|
## Development
|
package/dist/src/config.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface YoutubeOmniConfig {
|
|
|
7
7
|
dryRunWrites: boolean;
|
|
8
8
|
approvalAuditPath?: string;
|
|
9
9
|
enableDownloadTools: boolean;
|
|
10
|
+
cacheTtlSeconds: number;
|
|
10
11
|
}
|
|
11
12
|
export declare function loadConfig(env?: NodeJS.ProcessEnv): YoutubeOmniConfig;
|
|
12
13
|
export declare function redactedConfig(config: YoutubeOmniConfig): Record<string, unknown>;
|
package/dist/src/config.js
CHANGED
|
@@ -8,7 +8,8 @@ export function loadConfig(env = process.env) {
|
|
|
8
8
|
enableWriteTools: env.YOUTUBE_OMNI_ENABLE_WRITE_TOOLS === 'true',
|
|
9
9
|
dryRunWrites: env.YOUTUBE_OMNI_DRY_RUN_WRITES === 'true',
|
|
10
10
|
approvalAuditPath: env.YOUTUBE_OMNI_APPROVAL_AUDIT_PATH,
|
|
11
|
-
enableDownloadTools: env.YOUTUBE_OMNI_ENABLE_DOWNLOAD_TOOLS === 'true'
|
|
11
|
+
enableDownloadTools: env.YOUTUBE_OMNI_ENABLE_DOWNLOAD_TOOLS === 'true',
|
|
12
|
+
cacheTtlSeconds: Number(env.YOUTUBE_OMNI_CACHE_TTL_SECONDS ?? 21600)
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
15
|
export function redactedConfig(config) {
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAcpD,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,aAAa,EAAE,GAAG,CAAC,2BAA2B,KAAK,MAAM;QACzD,QAAQ,EAAE,GAAG,CAAC,sBAAsB;QACpC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;QACtD,gBAAgB,EAAE,GAAG,CAAC,+BAA+B,KAAK,MAAM;QAChE,YAAY,EAAE,GAAG,CAAC,2BAA2B,KAAK,MAAM;QACxD,iBAAiB,EAAE,GAAG,CAAC,gCAAgC;QACvD,mBAAmB,EAAE,GAAG,CAAC,kCAAkC,KAAK,MAAM;QACtE,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,IAAI,KAAK,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -21,7 +21,7 @@ rl.on('line', async (line) => {
|
|
|
21
21
|
try {
|
|
22
22
|
const request = JSON.parse(line);
|
|
23
23
|
if (request.method === 'initialize') {
|
|
24
|
-
respond(request.id, { protocolVersion: '2024-11-05', capabilities: { tools: {} }, serverInfo: { name: 'youtube-omni-mcp', version: '0.
|
|
24
|
+
respond(request.id, { protocolVersion: '2024-11-05', capabilities: { tools: {} }, serverInfo: { name: 'youtube-omni-mcp', version: '0.2.3' } });
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
if (request.method === 'tools/list') {
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ProviderHealth, YoutubeOmniProvider } from './types.js';
|
|
2
|
+
export interface CacheStore {
|
|
3
|
+
get<T>(key: string): Promise<T | undefined>;
|
|
4
|
+
set<T>(key: string, value: T, ttlSeconds?: number): Promise<void>;
|
|
5
|
+
close?(): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare class MongoCacheProvider implements YoutubeOmniProvider {
|
|
8
|
+
readonly upstream: YoutubeOmniProvider;
|
|
9
|
+
private readonly store;
|
|
10
|
+
private readonly ttlSeconds;
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
authTier: import("../core/envelope.js").AuthTier;
|
|
14
|
+
capabilities: string[];
|
|
15
|
+
constructor(upstream: YoutubeOmniProvider, store: CacheStore, ttlSeconds?: number);
|
|
16
|
+
isConfigured(): boolean;
|
|
17
|
+
healthCheck(): Promise<ProviderHealth>;
|
|
18
|
+
private cached;
|
|
19
|
+
searchVideos(input: {
|
|
20
|
+
query: string;
|
|
21
|
+
maxResults: number;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
videos: any[];
|
|
24
|
+
}>;
|
|
25
|
+
searchChannels(input: {
|
|
26
|
+
query: string;
|
|
27
|
+
maxResults: number;
|
|
28
|
+
}): Promise<{
|
|
29
|
+
channels: any[];
|
|
30
|
+
}>;
|
|
31
|
+
getTrendingVideos(input: {
|
|
32
|
+
regionCode: string;
|
|
33
|
+
categoryId?: string;
|
|
34
|
+
maxResults: number;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
videos: any[];
|
|
37
|
+
}>;
|
|
38
|
+
getVideoCategories(input: {
|
|
39
|
+
regionCode: string;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
regionCode: string;
|
|
42
|
+
categories: any[];
|
|
43
|
+
}>;
|
|
44
|
+
getVideoDetails(input: {
|
|
45
|
+
videoIds: string[];
|
|
46
|
+
includeTags?: boolean;
|
|
47
|
+
descriptionDetail?: string;
|
|
48
|
+
}): Promise<{
|
|
49
|
+
videos: any[];
|
|
50
|
+
}>;
|
|
51
|
+
getChannelStatistics(input: {
|
|
52
|
+
channelIds: string[];
|
|
53
|
+
}): Promise<{
|
|
54
|
+
channels: any[];
|
|
55
|
+
}>;
|
|
56
|
+
getChannelTopVideos(input: {
|
|
57
|
+
channelId: string;
|
|
58
|
+
maxResults: number;
|
|
59
|
+
}): Promise<{
|
|
60
|
+
channelId: string;
|
|
61
|
+
videos: any[];
|
|
62
|
+
}>;
|
|
63
|
+
getVideoComments(input: {
|
|
64
|
+
videoId: string;
|
|
65
|
+
maxResults: number;
|
|
66
|
+
maxReplies: number;
|
|
67
|
+
}): Promise<{
|
|
68
|
+
videoId: string;
|
|
69
|
+
comments: any[];
|
|
70
|
+
}>;
|
|
71
|
+
}
|
|
72
|
+
export declare class MongoCacheStore implements CacheStore {
|
|
73
|
+
private readonly uri;
|
|
74
|
+
private readonly dbName;
|
|
75
|
+
private readonly collectionName;
|
|
76
|
+
private clientPromise?;
|
|
77
|
+
constructor(uri: string, dbName?: string, collectionName?: string);
|
|
78
|
+
private collection;
|
|
79
|
+
get<T>(key: string): Promise<T | undefined>;
|
|
80
|
+
set<T>(key: string, value: T, ttlSeconds?: number): Promise<void>;
|
|
81
|
+
close(): Promise<void>;
|
|
82
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
function stableStringify(value) {
|
|
2
|
+
if (Array.isArray(value))
|
|
3
|
+
return `[${value.map(stableStringify).join(',')}]`;
|
|
4
|
+
if (value && typeof value === 'object') {
|
|
5
|
+
return `{${Object.entries(value)
|
|
6
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
7
|
+
.map(([key, val]) => `${JSON.stringify(key)}:${stableStringify(val)}`)
|
|
8
|
+
.join(',')}}`;
|
|
9
|
+
}
|
|
10
|
+
return JSON.stringify(value);
|
|
11
|
+
}
|
|
12
|
+
function cacheKey(providerId, method, input) {
|
|
13
|
+
return `youtube-omni:v1:${providerId}:${method}:${stableStringify(input)}`;
|
|
14
|
+
}
|
|
15
|
+
export class MongoCacheProvider {
|
|
16
|
+
upstream;
|
|
17
|
+
store;
|
|
18
|
+
ttlSeconds;
|
|
19
|
+
id = 'mongo_cache';
|
|
20
|
+
name = 'MongoDB cached YouTube provider';
|
|
21
|
+
authTier;
|
|
22
|
+
capabilities;
|
|
23
|
+
constructor(upstream, store, ttlSeconds = 6 * 60 * 60) {
|
|
24
|
+
this.upstream = upstream;
|
|
25
|
+
this.store = store;
|
|
26
|
+
this.ttlSeconds = ttlSeconds;
|
|
27
|
+
this.authTier = upstream.authTier;
|
|
28
|
+
this.capabilities = [...upstream.capabilities];
|
|
29
|
+
}
|
|
30
|
+
isConfigured() { return this.upstream.isConfigured(); }
|
|
31
|
+
async healthCheck() {
|
|
32
|
+
const upstream = await this.upstream.healthCheck();
|
|
33
|
+
return {
|
|
34
|
+
provider: this.id,
|
|
35
|
+
configured: this.isConfigured(),
|
|
36
|
+
authTier: this.authTier,
|
|
37
|
+
capabilities: this.capabilities,
|
|
38
|
+
warnings: [`Caching upstream provider: ${upstream.provider}`, ...upstream.warnings]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
async cached(method, input, fetcher) {
|
|
42
|
+
const key = cacheKey(this.upstream.id, method, input);
|
|
43
|
+
const cached = await this.store.get(key);
|
|
44
|
+
if (cached !== undefined)
|
|
45
|
+
return cached;
|
|
46
|
+
const fresh = await fetcher();
|
|
47
|
+
await this.store.set(key, fresh, this.ttlSeconds);
|
|
48
|
+
return fresh;
|
|
49
|
+
}
|
|
50
|
+
async searchVideos(input) {
|
|
51
|
+
return this.cached('searchVideos', input, () => this.upstream.searchVideos(input));
|
|
52
|
+
}
|
|
53
|
+
async searchChannels(input) {
|
|
54
|
+
return this.cached('searchChannels', input, () => this.upstream.searchChannels(input));
|
|
55
|
+
}
|
|
56
|
+
async getTrendingVideos(input) {
|
|
57
|
+
return this.cached('getTrendingVideos', input, () => this.upstream.getTrendingVideos(input));
|
|
58
|
+
}
|
|
59
|
+
async getVideoCategories(input) {
|
|
60
|
+
return this.cached('getVideoCategories', input, () => this.upstream.getVideoCategories(input));
|
|
61
|
+
}
|
|
62
|
+
async getVideoDetails(input) {
|
|
63
|
+
return this.cached('getVideoDetails', input, () => this.upstream.getVideoDetails(input));
|
|
64
|
+
}
|
|
65
|
+
async getChannelStatistics(input) {
|
|
66
|
+
return this.cached('getChannelStatistics', input, () => this.upstream.getChannelStatistics(input));
|
|
67
|
+
}
|
|
68
|
+
async getChannelTopVideos(input) {
|
|
69
|
+
return this.cached('getChannelTopVideos', input, () => this.upstream.getChannelTopVideos(input));
|
|
70
|
+
}
|
|
71
|
+
async getVideoComments(input) {
|
|
72
|
+
return this.cached('getVideoComments', input, () => this.upstream.getVideoComments(input));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export class MongoCacheStore {
|
|
76
|
+
uri;
|
|
77
|
+
dbName;
|
|
78
|
+
collectionName;
|
|
79
|
+
clientPromise;
|
|
80
|
+
constructor(uri, dbName = databaseNameFromUri(uri), collectionName = 'youtube_omni_cache') {
|
|
81
|
+
this.uri = uri;
|
|
82
|
+
this.dbName = dbName;
|
|
83
|
+
this.collectionName = collectionName;
|
|
84
|
+
}
|
|
85
|
+
async collection() {
|
|
86
|
+
if (!this.clientPromise) {
|
|
87
|
+
const { MongoClient } = await import('mongodb');
|
|
88
|
+
const client = new MongoClient(this.uri, { serverSelectionTimeoutMS: 5000 });
|
|
89
|
+
this.clientPromise = client.connect().then(() => client);
|
|
90
|
+
}
|
|
91
|
+
const client = await this.clientPromise;
|
|
92
|
+
const collection = client.db(this.dbName).collection(this.collectionName);
|
|
93
|
+
await collection.createIndex({ expiresAt: 1 }, { expireAfterSeconds: 0 });
|
|
94
|
+
return collection;
|
|
95
|
+
}
|
|
96
|
+
async get(key) {
|
|
97
|
+
const hit = await (await this.collection()).findOne({ _id: key, $or: [{ expiresAt: { $exists: false } }, { expiresAt: { $gt: new Date() } }] });
|
|
98
|
+
return hit?.value;
|
|
99
|
+
}
|
|
100
|
+
async set(key, value, ttlSeconds = 6 * 60 * 60) {
|
|
101
|
+
const expiresAt = new Date(Date.now() + ttlSeconds * 1000);
|
|
102
|
+
await (await this.collection()).updateOne({ _id: key }, { $set: { value, expiresAt, updatedAt: new Date() }, $setOnInsert: { createdAt: new Date() } }, { upsert: true });
|
|
103
|
+
}
|
|
104
|
+
async close() {
|
|
105
|
+
const client = await this.clientPromise;
|
|
106
|
+
await client?.close();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function databaseNameFromUri(uri) {
|
|
110
|
+
try {
|
|
111
|
+
const parsed = new URL(uri);
|
|
112
|
+
return parsed.pathname.replace(/^\//, '') || 'youtube_mcp';
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return 'youtube_mcp';
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=mongo-cache-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo-cache-provider.js","sourceRoot":"","sources":["../../../src/providers/mongo-cache-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,4 +6,28 @@ export declare class TranscriptProvider implements YoutubeOmniProvider {
|
|
|
6
6
|
capabilities: string[];
|
|
7
7
|
isConfigured(): boolean;
|
|
8
8
|
healthCheck(): Promise<ProviderHealth>;
|
|
9
|
+
getTranscriptSegments(input: {
|
|
10
|
+
videoIds: string[];
|
|
11
|
+
lang: string;
|
|
12
|
+
format: 'key_segments';
|
|
13
|
+
}): Promise<{
|
|
14
|
+
transcripts: {
|
|
15
|
+
videoId: string;
|
|
16
|
+
language: string;
|
|
17
|
+
format: "key_segments";
|
|
18
|
+
intro: string;
|
|
19
|
+
outro: string;
|
|
20
|
+
availability: string;
|
|
21
|
+
}[];
|
|
22
|
+
}>;
|
|
23
|
+
getTranscriptFullText(input: {
|
|
24
|
+
videoId: string;
|
|
25
|
+
lang: string;
|
|
26
|
+
maxChars: number;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
videoId: string;
|
|
29
|
+
language: string;
|
|
30
|
+
text: string;
|
|
31
|
+
truncated: boolean;
|
|
32
|
+
}>;
|
|
9
33
|
}
|
|
@@ -4,6 +4,14 @@ export class TranscriptProvider {
|
|
|
4
4
|
authTier = 'none';
|
|
5
5
|
capabilities = ['transcript'];
|
|
6
6
|
isConfigured() { return true; }
|
|
7
|
-
async healthCheck() {
|
|
7
|
+
async healthCheck() {
|
|
8
|
+
return { provider: this.id, configured: true, authTier: this.authTier, capabilities: this.capabilities, warnings: ['Transcript provider returns unavailable placeholders until a real transcript adapter is configured'] };
|
|
9
|
+
}
|
|
10
|
+
async getTranscriptSegments(input) {
|
|
11
|
+
return { transcripts: input.videoIds.map((videoId) => ({ videoId, language: input.lang, format: input.format, intro: '', outro: '', availability: 'unavailable' })) };
|
|
12
|
+
}
|
|
13
|
+
async getTranscriptFullText(input) {
|
|
14
|
+
return { videoId: input.videoId, language: input.lang, text: '', truncated: false };
|
|
15
|
+
}
|
|
8
16
|
}
|
|
9
17
|
//# sourceMappingURL=transcript-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-provider.js","sourceRoot":"","sources":["../../../src/providers/transcript-provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IAC7B,EAAE,GAAG,wBAAwB,CAAC;IAC9B,IAAI,GAAG,iCAAiC,CAAC;IACzC,QAAQ,GAAG,MAAe,CAAC;IAC3B,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"transcript-provider.js","sourceRoot":"","sources":["../../../src/providers/transcript-provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IAC7B,EAAE,GAAG,wBAAwB,CAAC;IAC9B,IAAI,GAAG,iCAAiC,CAAC;IACzC,QAAQ,GAAG,MAAe,CAAC;IAC3B,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC;IAE9B,YAAY,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAExC,KAAK,CAAC,WAAW;QACf,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,oGAAoG,CAAC,EAAE,CAAC;IAC7N,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,KAAmE;QAC7F,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC;IACxK,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,KAA0D;QACpF,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACtF,CAAC;CACF"}
|
|
@@ -1,11 +1,75 @@
|
|
|
1
1
|
import type { ProviderHealth, YoutubeOmniProvider } from './types.js';
|
|
2
|
+
type FetchLike = typeof fetch;
|
|
2
3
|
export declare class YoutubeDataApiProvider implements YoutubeOmniProvider {
|
|
3
4
|
id: string;
|
|
4
5
|
name: string;
|
|
5
6
|
authTier: "api_key";
|
|
6
7
|
capabilities: string[];
|
|
7
8
|
private readonly apiKey?;
|
|
8
|
-
|
|
9
|
+
private readonly fetchImpl;
|
|
10
|
+
constructor(apiKey?: string, fetchImpl?: FetchLike);
|
|
9
11
|
isConfigured(): boolean;
|
|
10
12
|
healthCheck(): Promise<ProviderHealth>;
|
|
13
|
+
private get;
|
|
14
|
+
searchVideos(input: {
|
|
15
|
+
query: string;
|
|
16
|
+
maxResults: number;
|
|
17
|
+
order?: string;
|
|
18
|
+
videoDuration?: string;
|
|
19
|
+
recency?: string;
|
|
20
|
+
regionCode?: string;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
videos: any;
|
|
23
|
+
}>;
|
|
24
|
+
searchChannels(input: {
|
|
25
|
+
query: string;
|
|
26
|
+
maxResults: number;
|
|
27
|
+
regionCode?: string;
|
|
28
|
+
}): Promise<{
|
|
29
|
+
channels: any;
|
|
30
|
+
}>;
|
|
31
|
+
getTrendingVideos(input: {
|
|
32
|
+
regionCode: string;
|
|
33
|
+
categoryId?: string;
|
|
34
|
+
maxResults: number;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
videos: any;
|
|
37
|
+
}>;
|
|
38
|
+
getVideoCategories(input: {
|
|
39
|
+
regionCode: string;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
regionCode: string;
|
|
42
|
+
categories: any;
|
|
43
|
+
}>;
|
|
44
|
+
getVideoDetails(input: {
|
|
45
|
+
videoIds: string[];
|
|
46
|
+
includeTags?: boolean;
|
|
47
|
+
descriptionDetail?: string;
|
|
48
|
+
}): Promise<{
|
|
49
|
+
videos: any;
|
|
50
|
+
}>;
|
|
51
|
+
getChannelStatistics(input: {
|
|
52
|
+
channelIds: string[];
|
|
53
|
+
}): Promise<{
|
|
54
|
+
channels: any;
|
|
55
|
+
}>;
|
|
56
|
+
getChannelTopVideos(input: {
|
|
57
|
+
channelId: string;
|
|
58
|
+
maxResults: number;
|
|
59
|
+
includeTags?: boolean;
|
|
60
|
+
descriptionDetail?: string;
|
|
61
|
+
}): Promise<{
|
|
62
|
+
channelId: string;
|
|
63
|
+
videos: any;
|
|
64
|
+
}>;
|
|
65
|
+
getVideoComments(input: {
|
|
66
|
+
videoId: string;
|
|
67
|
+
maxResults: number;
|
|
68
|
+
maxReplies: number;
|
|
69
|
+
order?: string;
|
|
70
|
+
}): Promise<{
|
|
71
|
+
videoId: string;
|
|
72
|
+
comments: any;
|
|
73
|
+
}>;
|
|
11
74
|
}
|
|
75
|
+
export {};
|
|
@@ -1,13 +1,120 @@
|
|
|
1
|
+
const BASE = 'https://www.googleapis.com/youtube/v3';
|
|
2
|
+
function defined(params) {
|
|
3
|
+
const search = new URLSearchParams();
|
|
4
|
+
for (const [key, value] of Object.entries(params)) {
|
|
5
|
+
if (value !== undefined && value !== '')
|
|
6
|
+
search.set(key, String(value));
|
|
7
|
+
}
|
|
8
|
+
return search.toString();
|
|
9
|
+
}
|
|
10
|
+
function descriptionFor(snippet, detail) {
|
|
11
|
+
const text = snippet?.description ?? '';
|
|
12
|
+
if (detail === 'long')
|
|
13
|
+
return text.slice(0, 500);
|
|
14
|
+
if (detail === 'snippet')
|
|
15
|
+
return text.slice(0, 160);
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
function toVideo(item, detail, includeTags = false) {
|
|
19
|
+
const id = typeof item.id === 'string' ? item.id : item.id?.videoId;
|
|
20
|
+
const snippet = item.snippet ?? {};
|
|
21
|
+
return {
|
|
22
|
+
videoId: id,
|
|
23
|
+
title: snippet.title,
|
|
24
|
+
channelId: snippet.channelId,
|
|
25
|
+
channelTitle: snippet.channelTitle,
|
|
26
|
+
publishedAt: snippet.publishedAt,
|
|
27
|
+
descriptionSnippet: snippet.description?.slice?.(0, 160),
|
|
28
|
+
description: descriptionFor(snippet, detail),
|
|
29
|
+
duration: item.contentDetails?.duration,
|
|
30
|
+
categoryId: snippet.categoryId,
|
|
31
|
+
statistics: item.statistics,
|
|
32
|
+
tags: includeTags ? (snippet.tags ?? []) : undefined,
|
|
33
|
+
url: id ? `https://www.youtube.com/watch?v=${id}` : undefined
|
|
34
|
+
};
|
|
35
|
+
}
|
|
1
36
|
export class YoutubeDataApiProvider {
|
|
2
37
|
id = 'youtube_data_api';
|
|
3
38
|
name = 'YouTube Data API Provider';
|
|
4
39
|
authTier = 'api_key';
|
|
5
40
|
capabilities = ['search', 'categories', 'video_details', 'channel_stats', 'channel_top_videos', 'comments'];
|
|
6
41
|
apiKey;
|
|
7
|
-
|
|
42
|
+
fetchImpl;
|
|
43
|
+
constructor(apiKey, fetchImpl = fetch) {
|
|
44
|
+
this.apiKey = apiKey;
|
|
45
|
+
this.fetchImpl = fetchImpl;
|
|
46
|
+
}
|
|
8
47
|
isConfigured() { return Boolean(this.apiKey); }
|
|
9
48
|
async healthCheck() {
|
|
10
49
|
return { provider: this.id, configured: this.isConfigured(), authTier: this.authTier, capabilities: this.capabilities, warnings: this.isConfigured() ? [] : ['YOUTUBE_API_KEY is not configured'] };
|
|
11
50
|
}
|
|
51
|
+
async get(path, params) {
|
|
52
|
+
const url = `${BASE}/${path}?${defined({ ...params, key: this.apiKey })}`;
|
|
53
|
+
const response = await this.fetchImpl(url);
|
|
54
|
+
if (!response.ok)
|
|
55
|
+
throw new Error(`YouTube Data API request failed: ${response.status} ${await response.text()}`);
|
|
56
|
+
return response.json();
|
|
57
|
+
}
|
|
58
|
+
async searchVideos(input) {
|
|
59
|
+
const data = await this.get('search', {
|
|
60
|
+
part: 'snippet',
|
|
61
|
+
type: 'video',
|
|
62
|
+
q: input.query,
|
|
63
|
+
maxResults: input.maxResults,
|
|
64
|
+
order: input.order,
|
|
65
|
+
videoDuration: input.videoDuration === 'any' ? undefined : input.videoDuration,
|
|
66
|
+
regionCode: input.regionCode
|
|
67
|
+
});
|
|
68
|
+
return { videos: (data.items ?? []).map((item) => toVideo(item)) };
|
|
69
|
+
}
|
|
70
|
+
async searchChannels(input) {
|
|
71
|
+
const data = await this.get('search', { part: 'snippet', type: 'channel', q: input.query, maxResults: input.maxResults, regionCode: input.regionCode });
|
|
72
|
+
return { channels: (data.items ?? []).map((item) => ({
|
|
73
|
+
channelId: item.id?.channelId,
|
|
74
|
+
title: item.snippet?.title,
|
|
75
|
+
descriptionSnippet: item.snippet?.description?.slice?.(0, 160),
|
|
76
|
+
url: item.id?.channelId ? `https://www.youtube.com/channel/${item.id.channelId}` : undefined
|
|
77
|
+
})) };
|
|
78
|
+
}
|
|
79
|
+
async getTrendingVideos(input) {
|
|
80
|
+
const data = await this.get('videos', { part: 'snippet,contentDetails,statistics', chart: 'mostPopular', regionCode: input.regionCode, videoCategoryId: input.categoryId, maxResults: input.maxResults });
|
|
81
|
+
return { videos: (data.items ?? []).map((item) => toVideo(item)) };
|
|
82
|
+
}
|
|
83
|
+
async getVideoCategories(input) {
|
|
84
|
+
const data = await this.get('videoCategories', { part: 'snippet', regionCode: input.regionCode });
|
|
85
|
+
return { regionCode: input.regionCode, categories: (data.items ?? []).map((item) => ({ id: item.id, title: item.snippet?.title, assignable: item.snippet?.assignable })) };
|
|
86
|
+
}
|
|
87
|
+
async getVideoDetails(input) {
|
|
88
|
+
const data = await this.get('videos', { part: 'snippet,contentDetails,statistics', id: input.videoIds.join(','), maxResults: input.videoIds.length });
|
|
89
|
+
return { videos: (data.items ?? []).map((item) => toVideo(item, input.descriptionDetail, input.includeTags)) };
|
|
90
|
+
}
|
|
91
|
+
async getChannelStatistics(input) {
|
|
92
|
+
const data = await this.get('channels', { part: 'snippet,statistics', id: input.channelIds.join(','), maxResults: input.channelIds.length });
|
|
93
|
+
return { channels: (data.items ?? []).map((item) => ({
|
|
94
|
+
channelId: item.id,
|
|
95
|
+
title: item.snippet?.title,
|
|
96
|
+
subscriberCount: item.statistics?.subscriberCount,
|
|
97
|
+
viewCount: item.statistics?.viewCount,
|
|
98
|
+
videoCount: item.statistics?.videoCount,
|
|
99
|
+
publishedAt: item.snippet?.publishedAt
|
|
100
|
+
})) };
|
|
101
|
+
}
|
|
102
|
+
async getChannelTopVideos(input) {
|
|
103
|
+
const search = await this.get('search', { part: 'snippet', channelId: input.channelId, type: 'video', order: 'viewCount', maxResults: input.maxResults });
|
|
104
|
+
const ids = (search.items ?? []).map((item) => item.id?.videoId).filter(Boolean);
|
|
105
|
+
const details = ids.length ? await this.getVideoDetails({ videoIds: ids, includeTags: input.includeTags, descriptionDetail: input.descriptionDetail }) : { videos: [] };
|
|
106
|
+
return { channelId: input.channelId, videos: details.videos };
|
|
107
|
+
}
|
|
108
|
+
async getVideoComments(input) {
|
|
109
|
+
const data = await this.get('commentThreads', { part: input.maxReplies > 0 ? 'snippet,replies' : 'snippet', videoId: input.videoId, maxResults: input.maxResults, order: input.order });
|
|
110
|
+
return { videoId: input.videoId, comments: (data.items ?? []).map((item) => ({
|
|
111
|
+
commentId: item.id,
|
|
112
|
+
text: item.snippet?.topLevelComment?.snippet?.textDisplay,
|
|
113
|
+
likeCount: item.snippet?.topLevelComment?.snippet?.likeCount,
|
|
114
|
+
publishedAt: item.snippet?.topLevelComment?.snippet?.publishedAt,
|
|
115
|
+
replyCount: item.snippet?.totalReplyCount,
|
|
116
|
+
replies: input.maxReplies > 0 ? (item.replies?.comments ?? []).slice(0, input.maxReplies).map((reply) => ({ commentId: reply.id, text: reply.snippet?.textDisplay, likeCount: reply.snippet?.likeCount, publishedAt: reply.snippet?.publishedAt })) : undefined
|
|
117
|
+
})) };
|
|
118
|
+
}
|
|
12
119
|
}
|
|
13
120
|
//# sourceMappingURL=youtube-data-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube-data-api.js","sourceRoot":"","sources":["../../../src/providers/youtube-data-api.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IACjC,EAAE,GAAG,kBAAkB,CAAC;IACxB,IAAI,GAAG,2BAA2B,CAAC;IACnC,QAAQ,GAAG,SAAkB,CAAC;IAC9B,YAAY,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAC3F,MAAM,CAAU;
|
|
1
|
+
{"version":3,"file":"youtube-data-api.js","sourceRoot":"","sources":["../../../src/providers/youtube-data-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ export declare const channelTopVideosSchema: z.ZodObject<{
|
|
|
8
8
|
includeTags: z.ZodDefault<z.ZodBoolean>;
|
|
9
9
|
descriptionDetail: z.ZodDefault<z.ZodEnum<{
|
|
10
10
|
none: "none";
|
|
11
|
-
snippet: "snippet";
|
|
12
11
|
long: "long";
|
|
12
|
+
snippet: "snippet";
|
|
13
13
|
}>>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
export declare const channelPositioningSchema: z.ZodObject<{
|
|
@@ -3,8 +3,8 @@ export declare const regionCodeSchema: z.ZodDefault<z.ZodString>;
|
|
|
3
3
|
export declare const langCodeSchema: z.ZodDefault<z.ZodString>;
|
|
4
4
|
export declare const maxResultsSchema: z.ZodDefault<z.ZodNumber>;
|
|
5
5
|
export declare const detailLevelSchema: z.ZodDefault<z.ZodEnum<{
|
|
6
|
-
compact: "compact";
|
|
7
6
|
snippet: "snippet";
|
|
7
|
+
compact: "compact";
|
|
8
8
|
full: "full";
|
|
9
9
|
}>>;
|
|
10
10
|
export declare const videoIdSchema: z.ZodString;
|
|
@@ -3,15 +3,15 @@ export declare const searchVideosSchema: z.ZodObject<{
|
|
|
3
3
|
query: z.ZodString;
|
|
4
4
|
maxResults: z.ZodDefault<z.ZodNumber>;
|
|
5
5
|
order: z.ZodDefault<z.ZodEnum<{
|
|
6
|
+
viewCount: "viewCount";
|
|
6
7
|
relevance: "relevance";
|
|
7
8
|
date: "date";
|
|
8
|
-
viewCount: "viewCount";
|
|
9
9
|
}>>;
|
|
10
10
|
videoDuration: z.ZodDefault<z.ZodEnum<{
|
|
11
|
+
long: "long";
|
|
11
12
|
any: "any";
|
|
12
13
|
short: "short";
|
|
13
14
|
medium: "medium";
|
|
14
|
-
long: "long";
|
|
15
15
|
}>>;
|
|
16
16
|
recency: z.ZodDefault<z.ZodEnum<{
|
|
17
17
|
any: "any";
|
|
@@ -4,8 +4,8 @@ export declare const videoDetailsSchema: z.ZodObject<{
|
|
|
4
4
|
includeTags: z.ZodDefault<z.ZodBoolean>;
|
|
5
5
|
descriptionDetail: z.ZodDefault<z.ZodEnum<{
|
|
6
6
|
none: "none";
|
|
7
|
-
snippet: "snippet";
|
|
8
7
|
long: "long";
|
|
8
|
+
snippet: "snippet";
|
|
9
9
|
}>>;
|
|
10
10
|
}, z.core.$strip>;
|
|
11
11
|
export declare const compareVideosSchema: z.ZodObject<{
|
package/dist/src/server.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type YoutubeOmniConfig } from './config.js';
|
|
2
2
|
import { ProviderRegistry } from './core/provider-registry.js';
|
|
3
|
+
import type { YoutubeOmniProvider } from './providers/types.js';
|
|
3
4
|
export declare const V0_TOOL_NAMES: readonly ["youtube.discovery.search_videos", "youtube.discovery.get_video_categories", "youtube.video.get_details", "youtube.video.compare", "youtube.channel.get_statistics", "youtube.channel.get_top_videos", "youtube.transcript.get_segments", "youtube.transcript.get_full_text", "youtube.transcript.analyze_structure", "youtube.comments.get", "youtube.comments.summarize", "youtube.planning.generate_research_brief", "youtube.research.find_outlier_videos", "youtube.research.compare_hooks", "youtube.research.extract_topic_angles", "youtube.research.summarize_comment_pain_points", "youtube.research.generate_video_angle_matrix", "youtube.safety.classify_action_risk", "youtube.safety.list_capabilities"];
|
|
4
5
|
export declare const OPERATION_TOOL_NAMES: readonly ["youtube.operations.update_video_metadata", "youtube.operations.schedule_upload", "youtube.operations.update_thumbnail", "youtube.operations.update_playlist", "youtube.operations.moderate_comment", "youtube.operations.create_community_post"];
|
|
5
6
|
export type V0ToolName = typeof V0_TOOL_NAMES[number];
|
|
@@ -14,6 +15,7 @@ type ToolDefinition = {
|
|
|
14
15
|
export declare const V0_TOOL_INPUT_SCHEMAS: Record<string, JsonSchema>;
|
|
15
16
|
export declare function getToolNames(config?: Pick<YoutubeOmniConfig, 'enableWriteTools' | 'dryRunWrites'>): ToolName[];
|
|
16
17
|
export declare function getToolDefinitions(config?: Pick<YoutubeOmniConfig, 'enableWriteTools' | 'dryRunWrites'>): ToolDefinition[];
|
|
17
|
-
export declare function
|
|
18
|
+
export declare function createProviders(config?: YoutubeOmniConfig): YoutubeOmniProvider[];
|
|
19
|
+
export declare function createDefaultRegistry(config?: YoutubeOmniConfig): ProviderRegistry;
|
|
18
20
|
export declare function createToolHandlers(registry?: ProviderRegistry, config?: Pick<YoutubeOmniConfig, 'enableWriteTools' | 'dryRunWrites'>): Record<string, (input: unknown) => Promise<any>>;
|
|
19
21
|
export {};
|
package/dist/src/server.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { loadConfig } from './config.js';
|
|
2
2
|
import { ProviderRegistry } from './core/provider-registry.js';
|
|
3
3
|
import { MockYoutubeProvider } from './providers/mock-provider.js';
|
|
4
|
+
import { YoutubeDataApiProvider } from './providers/youtube-data-api.js';
|
|
5
|
+
import { MongoCacheProvider, MongoCacheStore } from './providers/mongo-cache-provider.js';
|
|
6
|
+
import { TranscriptProvider } from './providers/transcript-provider.js';
|
|
4
7
|
import { searchVideos, getVideoCategories } from './tools/discovery.js';
|
|
5
8
|
import { getVideoDetails, compareVideos } from './tools/video.js';
|
|
6
9
|
import { getChannelStatistics, getChannelTopVideos } from './tools/channel.js';
|
|
@@ -217,8 +220,17 @@ export function getToolDefinitions(config = loadConfig()) {
|
|
|
217
220
|
inputSchema: V0_TOOL_INPUT_SCHEMAS[name]
|
|
218
221
|
}));
|
|
219
222
|
}
|
|
220
|
-
export function
|
|
221
|
-
|
|
223
|
+
export function createProviders(config = loadConfig()) {
|
|
224
|
+
if (!config.youtubeApiKey)
|
|
225
|
+
return [new MockYoutubeProvider()];
|
|
226
|
+
let liveProvider = new YoutubeDataApiProvider(config.youtubeApiKey);
|
|
227
|
+
if (config.enableOutlier && config.mongoUri) {
|
|
228
|
+
liveProvider = new MongoCacheProvider(liveProvider, new MongoCacheStore(config.mongoUri), config.cacheTtlSeconds);
|
|
229
|
+
}
|
|
230
|
+
return [liveProvider, new TranscriptProvider()];
|
|
231
|
+
}
|
|
232
|
+
export function createDefaultRegistry(config = loadConfig()) {
|
|
233
|
+
return new ProviderRegistry(createProviders(config));
|
|
222
234
|
}
|
|
223
235
|
export function createToolHandlers(registry = createDefaultRegistry(), config = loadConfig()) {
|
|
224
236
|
const handlers = {
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,iCAAiC;IACjC,wCAAwC;IACxC,2BAA2B;IAC3B,uBAAuB;IACvB,gCAAgC;IAChC,gCAAgC;IAChC,iCAAiC;IACjC,kCAAkC;IAClC,sCAAsC;IACtC,sBAAsB;IACtB,4BAA4B;IAC5B,0CAA0C;IAC1C,sCAAsC;IACtC,gCAAgC;IAChC,uCAAuC;IACvC,gDAAgD;IAChD,8CAA8C;IAC9C,qCAAqC;IACrC,kCAAkC;CAC1B,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,0CAA0C;IAC1C,oCAAoC;IACpC,qCAAqC;IACrC,oCAAoC;IACpC,qCAAqC;IACrC,0CAA0C;CAClC,CAAC;AAcX,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,QAAoB,EAAE,EAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAC9H,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,OAAe,EAAE,YAAoB,EAAc,EAAE,CAAC,CAAC;IACjH,IAAI,EAAE,QAAQ;IACd,WAAW;IACX,OAAO;IACP,OAAO;IACP,OAAO,EAAE,YAAY;CACtB,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,YAAqB,EAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;AAC5I,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,QAAgB,EAAc,EAAE,CAAC,CAAC;IAClG,IAAI,EAAE,OAAO;IACb,WAAW;IACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;IACvC,QAAQ;IACR,QAAQ;CACT,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,MAAgB,EAAE,YAAqB,EAAc,EAAE,CAAC,CAAC;IAChG,IAAI,EAAE,QAAQ;IACd,WAAW;IACX,IAAI,EAAE,MAAM;IACZ,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACnD,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,CAAC,UAAsC,EAAE,WAAqB,EAAE,EAAc,EAAE,CAAC,CAAC;IACrG,IAAI,EAAE,QAAQ;IACd,UAAU;IACV,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,oBAAoB,EAAE,KAAK;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAA+B;IAC/D,iCAAiC,EAAE,YAAY,CAAC;QAC9C,KAAK,EAAE,YAAY,CAAC,qCAAqC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5E,UAAU,EAAE,YAAY,CAAC,sCAAsC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3E,KAAK,EAAE,UAAU,CAAC,yBAAyB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAC7F,aAAa,EAAE,UAAU,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC;QACjG,OAAO,EAAE,UAAU,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC;QACpI,UAAU,EAAE,YAAY,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC/F,EAAE,CAAC,OAAO,CAAC,CAAC;IACb,wCAAwC,EAAE,YAAY,CAAC;QACrD,UAAU,EAAE,YAAY,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC/F,CAAC;IACF,2BAA2B,EAAE,YAAY,CAAC;QACxC,QAAQ,EAAE,iBAAiB,CAAC,+BAA+B,EAAE,CAAC,EAAE,EAAE,CAAC;QACnE,WAAW,EAAE,aAAa,CAAC,8BAA8B,EAAE,KAAK,CAAC;QACjE,iBAAiB,EAAE,UAAU,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;KAChG,EAAE,CAAC,UAAU,CAAC,CAAC;IAChB,uBAAuB,EAAE,YAAY,CAAC;QACpC,QAAQ,EAAE,iBAAiB,CAAC,+BAA+B,EAAE,CAAC,EAAE,EAAE,CAAC;QACnE,WAAW,EAAE,aAAa,CAAC,8BAA8B,EAAE,KAAK,CAAC;KAClE,EAAE,CAAC,UAAU,CAAC,CAAC;IAChB,gCAAgC,EAAE,YAAY,CAAC;QAC7C,UAAU,EAAE,iBAAiB,CAAC,iCAAiC,EAAE,CAAC,EAAE,EAAE,CAAC;KACxE,EAAE,CAAC,YAAY,CAAC,CAAC;IAClB,gCAAgC,EAAE,YAAY,CAAC;QAC7C,SAAS,EAAE,YAAY,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAChE,UAAU,EAAE,YAAY,CAAC,qCAAqC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAC1E,WAAW,EAAE,aAAa,CAAC,8BAA8B,EAAE,KAAK,CAAC;QACjE,iBAAiB,EAAE,UAAU,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;KAChG,EAAE,CAAC,WAAW,CAAC,CAAC;IACjB,iCAAiC,EAAE,YAAY,CAAC;QAC9C,QAAQ,EAAE,iBAAiB,CAAC,qDAAqD,EAAE,CAAC,EAAE,EAAE,CAAC;QACzF,IAAI,EAAE,YAAY,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrG,MAAM,EAAE,UAAU,CAAC,4BAA4B,EAAE,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;KACnF,EAAE,CAAC,UAAU,CAAC,CAAC;IAChB,kCAAkC,EAAE,YAAY,CAAC;QAC/C,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,IAAI,EAAE,YAAY,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrG,QAAQ,EAAE,YAAY,CAAC,0CAA0C,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;KACvF,EAAE,CAAC,SAAS,CAAC,CAAC;IACf,sCAAsC,EAAE,YAAY,CAAC;QACnD,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,IAAI,EAAE,YAAY,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrG,aAAa,EAAE,aAAa,CAAC,6CAA6C,EAAE,IAAI,CAAC;KAClF,EAAE,CAAC,SAAS,CAAC,CAAC;IACf,sBAAsB,EAAE,YAAY,CAAC;QACnC,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,UAAU,EAAE,YAAY,CAAC,uCAAuC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7E,KAAK,EAAE,UAAU,CAAC,qBAAqB,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAC5E,UAAU,EAAE,YAAY,CAAC,8BAA8B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,aAAa,EAAE,UAAU,CAAC,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC;KAClF,EAAE,CAAC,SAAS,CAAC,CAAC;IACf,4BAA4B,EAAE,YAAY,CAAC;QACzC,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,WAAW,EAAE,YAAY,CAAC,gCAAgC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QACvE,gBAAgB,EAAE,aAAa,CAAC,6BAA6B,EAAE,IAAI,CAAC;QACpE,eAAe,EAAE,aAAa,CAAC,4BAA4B,EAAE,IAAI,CAAC;KACnE,EAAE,CAAC,SAAS,CAAC,CAAC;IACf,0CAA0C,EAAE,YAAY,CAAC;QACvD,KAAK,EAAE,YAAY,CAAC,wCAAwC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC/E,UAAU,EAAE,YAAY,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC9F,eAAe,EAAE,YAAY,CAAC,qCAAqC,CAAC;QACpE,UAAU,EAAE,YAAY,CAAC,6BAA6B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAClE,kBAAkB,EAAE,aAAa,CAAC,6CAA6C,EAAE,IAAI,CAAC;QACtF,eAAe,EAAE,aAAa,CAAC,0CAA0C,EAAE,IAAI,CAAC;KACjF,EAAE,CAAC,OAAO,CAAC,CAAC;IACb,sCAAsC,EAAE,YAAY,CAAC;QACnD,KAAK,EAAE,YAAY,CAAC,gDAAgD,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACvF,UAAU,EAAE,YAAY,CAAC,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QACjE,UAAU,EAAE,YAAY,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC9F,qBAAqB,EAAE,YAAY,CAAC,uDAAuD,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvG,OAAO,EAAE,UAAU,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;KAC1H,EAAE,CAAC,OAAO,CAAC,CAAC;IACb,gCAAgC,EAAE,YAAY,CAAC;QAC7C,QAAQ,EAAE,iBAAiB,CAAC,mDAAmD,EAAE,CAAC,EAAE,EAAE,CAAC;QACvF,IAAI,EAAE,YAAY,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KACnE,EAAE,CAAC,UAAU,CAAC,CAAC;IAChB,uCAAuC,EAAE,YAAY,CAAC;QACpD,KAAK,EAAE,YAAY,CAAC,+CAA+C,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACtF,UAAU,EAAE,YAAY,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC9F,UAAU,EAAE,YAAY,CAAC,6BAA6B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;KACnE,EAAE,CAAC,OAAO,CAAC,CAAC;IACb,gDAAgD,EAAE,YAAY,CAAC;QAC7D,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,WAAW,EAAE,YAAY,CAAC,8BAA8B,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;KACtE,EAAE,CAAC,SAAS,CAAC,CAAC;IACf,8CAA8C,EAAE,YAAY,CAAC;QAC3D,KAAK,EAAE,YAAY,CAAC,6CAA6C,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACpF,IAAI,EAAE,YAAY,CAAC,oCAAoC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QACnE,UAAU,EAAE,YAAY,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC/F,EAAE,CAAC,OAAO,CAAC,CAAC;IACb,0CAA0C,EAAE,YAAY,CAAC;QACvD,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,KAAK,EAAE,YAAY,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACpF,WAAW,EAAE,YAAY,CAAC,mCAAmC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACnF,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzH,UAAU,EAAE,YAAY,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,EAAE,aAAa,CAAC,oDAAoD,EAAE,IAAI,CAAC;KAClF,EAAE,CAAC,SAAS,CAAC,CAAC;IACf,oCAAoC,EAAE,YAAY,CAAC;QACjD,QAAQ,EAAE,YAAY,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACzE,KAAK,EAAE,YAAY,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACtE,WAAW,EAAE,YAAY,CAAC,uCAAuC,CAAC;QAClE,UAAU,EAAE,YAAY,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,EAAE,aAAa,CAAC,oDAAoD,EAAE,IAAI,CAAC;KAClF,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzB,qCAAqC,EAAE,YAAY,CAAC;QAClD,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,SAAS,EAAE,YAAY,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACxE,UAAU,EAAE,YAAY,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,EAAE,aAAa,CAAC,oDAAoD,EAAE,IAAI,CAAC;KAClF,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5B,oCAAoC,EAAE,YAAY,CAAC;QACjD,UAAU,EAAE,YAAY,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,EAAE,UAAU,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC;QACpF,UAAU,EAAE,YAAY,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,EAAE,aAAa,CAAC,oDAAoD,EAAE,IAAI,CAAC;KAClF,EAAE,CAAC,YAAY,CAAC,CAAC;IAClB,qCAAqC,EAAE,YAAY,CAAC;QAClD,SAAS,EAAE,YAAY,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,UAAU,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzF,UAAU,EAAE,YAAY,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,EAAE,aAAa,CAAC,oDAAoD,EAAE,IAAI,CAAC;KAClF,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3B,0CAA0C,EAAE,YAAY,CAAC;QACvD,SAAS,EAAE,YAAY,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAChE,IAAI,EAAE,YAAY,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7E,UAAU,EAAE,YAAY,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,EAAE,aAAa,CAAC,oDAAoD,EAAE,IAAI,CAAC;KAClF,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzB,qCAAqC,EAAE,YAAY,CAAC;QAClD,MAAM,EAAE,YAAY,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,IAAI,EAAE;KACnG,EAAE,CAAC,QAAQ,CAAC,CAAC;IACd,kCAAkC,EAAE,YAAY,CAAC,EAAE,CAAC;CACrD,CAAC;AAEF,SAAS,qBAAqB,CAAC,MAAoE;IACjG,OAAO,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAuE,UAAU,EAAE;IAC9G,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;AAC1G,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAuE,UAAU,EAAE;IACpH,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI;QACJ,WAAW,EAAE,mCAAmC,IAAI,EAAE;QACtD,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC;KACzC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA4B,UAAU,EAAE;IACtE,IAAI,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAE9D,IAAI,YAAY,GAAwB,IAAI,sBAAsB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACzF,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5C,YAAY,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACpH,CAAC;IAED,OAAO,CAAC,YAAY,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,SAA4B,UAAU,EAAE;IAC5E,OAAO,IAAI,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAA6B,qBAAqB,EAAE,EAAE,SAAuE,UAAU,EAAE;IAC1K,MAAM,QAAQ,GAAqD;QACjE,iCAAiC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;QACpF,wCAAwC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACjG,2BAA2B,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;QACjF,uBAAuB,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC3E,gCAAgC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC3F,gCAAgC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC1F,iCAAiC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC7F,kCAAkC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC9F,sCAAsC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC;QACvG,sBAAsB,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC7E,4BAA4B,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACpF,0CAA0C,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACtG,sCAAsC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC9F,gCAAgC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;QACnF,uCAAuC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAChG,gDAAgD,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC;QACjH,8CAA8C,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC7G,qCAAqC,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAA6D,CAAC;QAChJ,kCAAkC,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;KAC9E,CAAC;IAEF,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,QAAQ,CAAC,0CAA0C,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtG,QAAQ,CAAC,oCAAoC,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3F,QAAQ,CAAC,qCAAqC,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7F,QAAQ,CAAC,oCAAoC,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3F,QAAQ,CAAC,qCAAqC,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7F,QAAQ,CAAC,0CAA0C,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxG,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/src/tools/safety.js
CHANGED
|
@@ -5,6 +5,6 @@ export async function classifyActionRiskTool(input) {
|
|
|
5
5
|
return makeEnvelope({ tool: 'youtube.safety.classify_action_risk', provider: 'core', authTier: 'none', data: risk, warnings: risk.allowedInV0 ? [] : ['This action is part of the full scope but locked in v0.'] });
|
|
6
6
|
}
|
|
7
7
|
export async function listCapabilities(_input) {
|
|
8
|
-
return makeEnvelope({ tool: 'youtube.safety.list_capabilities', provider: 'core', authTier: 'none', data: { version: '0.2.
|
|
8
|
+
return makeEnvelope({ tool: 'youtube.safety.list_capabilities', provider: 'core', authTier: 'none', data: { version: '0.2.3', phase: 'v0.2.3-executable-bin', enabledNamespaces: ['discovery', 'video', 'channel', 'transcript', 'comments', 'planning', 'research', 'safety'], lockedNamespaces: ['operations', 'community-write', 'analytics-oauth', 'reporting', 'media-download', 'shorts-render', 'music-private'] }, warnings: [] });
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=safety.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../../src/tools/safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAA2D;IACtG,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,qCAAqC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,EAAE,CAAC,CAAC;AACtN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA6B;IAClE,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../../src/tools/safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAA2D;IACtG,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,qCAAqC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,EAAE,CAAC,CAAC;AACtN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA6B;IAClE,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7a,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liorium/youtube-omni-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "YouTube Creator Intelligence, Analytics, Operations, and Production MCP server.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
".env.example"
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
|
-
"build": "tsc -p tsconfig.json",
|
|
20
|
+
"build": "tsc -p tsconfig.json && chmod +x dist/src/index.js",
|
|
21
21
|
"test": "vitest run",
|
|
22
22
|
"test:watch": "vitest",
|
|
23
23
|
"validate:v0": "tsx scripts/validate-v0-surface.ts",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@modelcontextprotocol/sdk": "latest",
|
|
44
|
+
"mongodb": "latest",
|
|
44
45
|
"zod": "latest"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|