@framers/agentos-ext-channel-tiktok 0.1.0

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 (39) hide show
  1. package/LICENSE +98 -0
  2. package/dist/TikTokChannelAdapter.d.ts +30 -0
  3. package/dist/TikTokChannelAdapter.d.ts.map +1 -0
  4. package/dist/TikTokChannelAdapter.js +112 -0
  5. package/dist/TikTokChannelAdapter.js.map +1 -0
  6. package/dist/TikTokService.d.ts +107 -0
  7. package/dist/TikTokService.d.ts.map +1 -0
  8. package/dist/TikTokService.js +241 -0
  9. package/dist/TikTokService.js.map +1 -0
  10. package/dist/index.d.ts +31 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +91 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/tools/analytics.d.ts +36 -0
  15. package/dist/tools/analytics.d.ts.map +1 -0
  16. package/dist/tools/analytics.js +48 -0
  17. package/dist/tools/analytics.js.map +1 -0
  18. package/dist/tools/discover.d.ts +30 -0
  19. package/dist/tools/discover.d.ts.map +1 -0
  20. package/dist/tools/discover.js +37 -0
  21. package/dist/tools/discover.js.map +1 -0
  22. package/dist/tools/engage.d.ts +41 -0
  23. package/dist/tools/engage.d.ts.map +1 -0
  24. package/dist/tools/engage.js +53 -0
  25. package/dist/tools/engage.js.map +1 -0
  26. package/dist/tools/search.d.ts +46 -0
  27. package/dist/tools/search.d.ts.map +1 -0
  28. package/dist/tools/search.js +53 -0
  29. package/dist/tools/search.js.map +1 -0
  30. package/dist/tools/trending.d.ts +36 -0
  31. package/dist/tools/trending.d.ts.map +1 -0
  32. package/dist/tools/trending.js +50 -0
  33. package/dist/tools/trending.js.map +1 -0
  34. package/dist/tools/upload.d.ts +69 -0
  35. package/dist/tools/upload.d.ts.map +1 -0
  36. package/dist/tools/upload.js +61 -0
  37. package/dist/tools/upload.js.map +1 -0
  38. package/manifest.json +30 -0
  39. package/package.json +38 -0
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @fileoverview ITool for uploading videos to TikTok.
3
+ */
4
+ import type { ITool, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
5
+ import type { TikTokService } from '../TikTokService';
6
+ export declare class TikTokUploadTool implements ITool {
7
+ private readonly service;
8
+ readonly id = "tiktokUpload";
9
+ readonly name = "tiktokUpload";
10
+ readonly displayName = "Upload Video";
11
+ readonly description = "Upload a video to TikTok with caption, hashtags, and privacy settings.";
12
+ readonly category = "social";
13
+ readonly version = "0.1.0";
14
+ readonly hasSideEffects = true;
15
+ readonly inputSchema: {
16
+ type: "object";
17
+ required: readonly ["videoUrl", "caption"];
18
+ properties: {
19
+ videoUrl: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ caption: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ hashtags: {
28
+ type: string;
29
+ items: {
30
+ type: string;
31
+ };
32
+ description: string;
33
+ };
34
+ privacyLevel: {
35
+ type: string;
36
+ enum: string[];
37
+ description: string;
38
+ };
39
+ disableComment: {
40
+ type: string;
41
+ description: string;
42
+ };
43
+ disableDuet: {
44
+ type: string;
45
+ description: string;
46
+ };
47
+ disableStitch: {
48
+ type: string;
49
+ description: string;
50
+ };
51
+ coverTimestampMs: {
52
+ type: string;
53
+ description: string;
54
+ };
55
+ };
56
+ };
57
+ constructor(service: TikTokService);
58
+ execute(args: {
59
+ videoUrl: string;
60
+ caption: string;
61
+ hashtags?: string[];
62
+ privacyLevel?: 'PUBLIC_TO_EVERYONE' | 'MUTUAL_FOLLOW_FRIENDS' | 'FOLLOWER_OF_CREATOR' | 'SELF_ONLY';
63
+ disableComment?: boolean;
64
+ disableDuet?: boolean;
65
+ disableStitch?: boolean;
66
+ coverTimestampMs?: number;
67
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult>;
68
+ }
69
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/tools/upload.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,gBAAiB,YAAW,KAAK;IAgChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IA/BpC,SAAgB,EAAE,kBAAkB;IACpC,SAAgB,IAAI,kBAAkB;IACtC,SAAgB,WAAW,kBAAkB;IAC7C,SAAgB,WAAW,4EAA4E;IACvG,SAAgB,QAAQ,YAAY;IACpC,SAAgB,OAAO,WAAW;IAClC,SAAgB,cAAc,QAAQ;IAEtC,SAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqBzB;gBAE2B,OAAO,EAAE,aAAa;IAE7C,OAAO,CACX,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,oBAAoB,GAAG,uBAAuB,GAAG,qBAAqB,GAAG,WAAW,CAAC;QACpG,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,EACD,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAkBhC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /**
4
+ * @fileoverview ITool for uploading videos to TikTok.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TikTokUploadTool = void 0;
8
+ class TikTokUploadTool {
9
+ constructor(service) {
10
+ this.service = service;
11
+ this.id = 'tiktokUpload';
12
+ this.name = 'tiktokUpload';
13
+ this.displayName = 'Upload Video';
14
+ this.description = 'Upload a video to TikTok with caption, hashtags, and privacy settings.';
15
+ this.category = 'social';
16
+ this.version = '0.1.0';
17
+ this.hasSideEffects = true;
18
+ this.inputSchema = {
19
+ type: 'object',
20
+ required: ['videoUrl', 'caption'],
21
+ properties: {
22
+ videoUrl: { type: 'string', description: 'URL of the video to upload' },
23
+ caption: { type: 'string', description: 'Video caption' },
24
+ hashtags: {
25
+ type: 'array',
26
+ items: { type: 'string' },
27
+ description: 'Hashtags to append to caption',
28
+ },
29
+ privacyLevel: {
30
+ type: 'string',
31
+ enum: ['PUBLIC_TO_EVERYONE', 'MUTUAL_FOLLOW_FRIENDS', 'FOLLOWER_OF_CREATOR', 'SELF_ONLY'],
32
+ description: 'Privacy level (default: PUBLIC_TO_EVERYONE)',
33
+ },
34
+ disableComment: { type: 'boolean', description: 'Disable comments on this video' },
35
+ disableDuet: { type: 'boolean', description: 'Disable duets for this video' },
36
+ disableStitch: { type: 'boolean', description: 'Disable stitches for this video' },
37
+ coverTimestampMs: { type: 'number', description: 'Timestamp in ms for cover image' },
38
+ },
39
+ };
40
+ }
41
+ async execute(args, _context) {
42
+ try {
43
+ const result = await this.service.uploadVideo({
44
+ videoUrl: args.videoUrl,
45
+ caption: args.caption,
46
+ hashtags: args.hashtags,
47
+ privacyLevel: args.privacyLevel,
48
+ disableComment: args.disableComment,
49
+ disableDuet: args.disableDuet,
50
+ disableStitch: args.disableStitch,
51
+ coverTimestampMs: args.coverTimestampMs,
52
+ });
53
+ return { success: true, data: result };
54
+ }
55
+ catch (error) {
56
+ return { success: false, error: error.message };
57
+ }
58
+ }
59
+ }
60
+ exports.TikTokUploadTool = TikTokUploadTool;
61
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/tools/upload.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;GAEG;;;AAKH,MAAa,gBAAgB;IAgC3B,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QA/BnC,OAAE,GAAG,cAAc,CAAC;QACpB,SAAI,GAAG,cAAc,CAAC;QACtB,gBAAW,GAAG,cAAc,CAAC;QAC7B,gBAAW,GAAG,wEAAwE,CAAC;QACvF,aAAQ,GAAG,QAAQ,CAAC;QACpB,YAAO,GAAG,OAAO,CAAC;QAClB,mBAAc,GAAG,IAAI,CAAC;QAEtB,gBAAW,GAAG;YAC5B,IAAI,EAAE,QAAiB;YACvB,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAU;YAC1C,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACvE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;gBACzD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,WAAW,CAAC;oBACzF,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBAClF,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBAC7E,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAClF,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;aACrF;SACF,CAAC;IAEoD,CAAC;IAEvD,KAAK,CAAC,OAAO,CACX,IASC,EACD,QAA8B;QAE9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAhED,4CAgEC"}
package/manifest.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://agentos.sh/schemas/extension-manifest-v1.json",
3
+ "id": "com.framers.channels.tiktok",
4
+ "name": "TikTok Channel Extension",
5
+ "version": "0.1.0",
6
+ "description": "TikTok integration — upload videos, discover trending sounds and hashtags, search content, track analytics, and engage with the community via TikTok API for Business.",
7
+ "categories": ["channel", "social"],
8
+ "platforms": ["tiktok"],
9
+ "sdk": "axios",
10
+ "extensions": [
11
+ { "kind": "tool", "id": "tiktokUpload", "displayName": "Upload Video" },
12
+ { "kind": "tool", "id": "tiktokTrending", "displayName": "Get Trending" },
13
+ { "kind": "tool", "id": "tiktokSearch", "displayName": "Search TikTok" },
14
+ { "kind": "tool", "id": "tiktokAnalytics", "displayName": "Video Analytics" },
15
+ { "kind": "tool", "id": "tiktokEngage", "displayName": "Engage" },
16
+ { "kind": "tool", "id": "tiktokDiscover", "displayName": "Discover Content" },
17
+ { "kind": "messaging-channel", "id": "tiktokChannel", "displayName": "TikTok Channel Adapter" }
18
+ ],
19
+ "requiredSecrets": ["tiktok.accessToken"],
20
+ "optionalSecrets": ["tiktok.username", "tiktok.password"],
21
+ "features": [
22
+ "Upload videos with captions and hashtags",
23
+ "Discover trending sounds and hashtags",
24
+ "Search videos and creators",
25
+ "Track video performance metrics",
26
+ "Like, comment, and share videos",
27
+ "Browse For You page content",
28
+ "Engagement metrics and audience insights"
29
+ ]
30
+ }
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@framers/agentos-ext-channel-tiktok",
3
+ "version": "0.1.0",
4
+ "description": "TikTok channel adapter for AgentOS — upload videos, discover trends, search content, track analytics, and engage via TikTok API for Business.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "manifest.json"
10
+ ],
11
+ "peerDependencies": {
12
+ "@framers/agentos": "^0.5.2"
13
+ },
14
+ "dependencies": {
15
+ "axios": "^1.6.0"
16
+ },
17
+ "devDependencies": {
18
+ "@framers/agentos": "^0.6.6",
19
+ "@types/node": "^20.0.0",
20
+ "typescript": "^5.0.0",
21
+ "vitest": "^1.0.0"
22
+ },
23
+ "engines": {
24
+ "node": ">=18.0.0"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/framersai/agentos-extensions",
29
+ "directory": "registry/curated/channels/tiktok"
30
+ },
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "dev": "tsc --watch",
34
+ "test": "vitest run",
35
+ "test:watch": "vitest watch",
36
+ "clean": "rm -rf dist"
37
+ }
38
+ }