social-mcp 2.6.0 → 2.7.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.
- package/README.md +46 -28
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/services/bluesky-service.d.ts +7 -1
- package/dist/services/bluesky-service.js +17 -2
- package/dist/services/bluesky-service.js.map +1 -1
- package/dist/services/facebook-service.d.ts +17 -1
- package/dist/services/facebook-service.js +63 -5
- package/dist/services/facebook-service.js.map +1 -1
- package/dist/services/ghost-service.d.ts +4 -1
- package/dist/services/ghost-service.js +55 -9
- package/dist/services/ghost-service.js.map +1 -1
- package/dist/services/instagram-service.d.ts +6 -1
- package/dist/services/instagram-service.js +40 -3
- package/dist/services/instagram-service.js.map +1 -1
- package/dist/services/linkedin-service.d.ts +9 -1
- package/dist/services/linkedin-service.js +65 -8
- package/dist/services/linkedin-service.js.map +1 -1
- package/dist/services/mastodon-service.d.ts +10 -1
- package/dist/services/mastodon-service.js +35 -6
- package/dist/services/mastodon-service.js.map +1 -1
- package/dist/services/pinterest-service.d.ts +28 -2
- package/dist/services/pinterest-service.js +32 -8
- package/dist/services/pinterest-service.js.map +1 -1
- package/dist/services/reddit-service.d.ts +10 -1
- package/dist/services/reddit-service.js +62 -5
- package/dist/services/reddit-service.js.map +1 -1
- package/dist/services/threads-service.d.ts +8 -1
- package/dist/services/threads-service.js +46 -7
- package/dist/services/threads-service.js.map +1 -1
- package/dist/services/tumblr-service.d.ts +25 -5
- package/dist/services/tumblr-service.js +51 -8
- package/dist/services/tumblr-service.js.map +1 -1
- package/dist/services/twitter-service.d.ts +13 -5
- package/dist/services/twitter-service.js +24 -3
- package/dist/services/twitter-service.js.map +1 -1
- package/dist/services/whatsapp-service.d.ts +10 -1
- package/dist/services/whatsapp-service.js +60 -9
- package/dist/services/whatsapp-service.js.map +1 -1
- package/dist/services/youtube-service.d.ts +21 -0
- package/dist/services/youtube-service.js +57 -7
- package/dist/services/youtube-service.js.map +1 -1
- package/dist/tools/bluesky-tools/create-post.d.ts +11 -1
- package/dist/tools/bluesky-tools/create-post.js +11 -2
- package/dist/tools/bluesky-tools/create-post.js.map +1 -1
- package/dist/tools/facebook-tools/create-post.d.ts +5 -1
- package/dist/tools/facebook-tools/create-post.js +12 -2
- package/dist/tools/facebook-tools/create-post.js.map +1 -1
- package/dist/tools/facebook-tools/create-video-post.d.ts +20 -0
- package/dist/tools/facebook-tools/create-video-post.js +31 -0
- package/dist/tools/facebook-tools/create-video-post.js.map +1 -0
- package/dist/tools/ghost-tools/create-post.d.ts +4 -0
- package/dist/tools/ghost-tools/create-post.js +27 -4
- package/dist/tools/ghost-tools/create-post.js.map +1 -1
- package/dist/tools/instagram-tools/create-post.d.ts +11 -1
- package/dist/tools/instagram-tools/create-post.js +8 -3
- package/dist/tools/instagram-tools/create-post.js.map +1 -1
- package/dist/tools/linkedin-tools/create-post.d.ts +5 -1
- package/dist/tools/linkedin-tools/create-post.js +9 -2
- package/dist/tools/linkedin-tools/create-post.js.map +1 -1
- package/dist/tools/mastodon-tools/create-post.d.ts +11 -1
- package/dist/tools/mastodon-tools/create-post.js +18 -2
- package/dist/tools/mastodon-tools/create-post.js.map +1 -1
- package/dist/tools/pinterest-tools/create-pin.d.ts +4 -2
- package/dist/tools/pinterest-tools/create-pin.js +8 -2
- package/dist/tools/pinterest-tools/create-pin.js.map +1 -1
- package/dist/tools/reddit-tools/submit-post.d.ts +9 -1
- package/dist/tools/reddit-tools/submit-post.js +19 -4
- package/dist/tools/reddit-tools/submit-post.js.map +1 -1
- package/dist/tools/threads-tools/create-post.d.ts +13 -1
- package/dist/tools/threads-tools/create-post.js +14 -2
- package/dist/tools/threads-tools/create-post.js.map +1 -1
- package/dist/tools/tumblr-tools/create-post.d.ts +4 -0
- package/dist/tools/tumblr-tools/create-post.js +39 -8
- package/dist/tools/tumblr-tools/create-post.js.map +1 -1
- package/dist/tools/twitter-tools/send-tweet.d.ts +9 -1
- package/dist/tools/twitter-tools/send-tweet.js +10 -2
- package/dist/tools/twitter-tools/send-tweet.js.map +1 -1
- package/dist/tools/whatsapp-tools/send-message.d.ts +19 -3
- package/dist/tools/whatsapp-tools/send-message.js +29 -3
- package/dist/tools/whatsapp-tools/send-message.js.map +1 -1
- package/dist/tools/youtube-tools/upload-video.d.ts +34 -0
- package/dist/tools/youtube-tools/upload-video.js +39 -0
- package/dist/tools/youtube-tools/upload-video.js.map +1 -0
- package/package.json +1 -1
|
@@ -7,14 +7,23 @@ const createPostParams = z.object({
|
|
|
7
7
|
.min(1)
|
|
8
8
|
.max(300)
|
|
9
9
|
.describe("The text content of the Bluesky post (max 300 characters)"),
|
|
10
|
+
images: z
|
|
11
|
+
.array(z.object({
|
|
12
|
+
content: z.string().describe("Base64-encoded image bytes."),
|
|
13
|
+
mimeType: z.string().describe("MIME type, e.g. image/png."),
|
|
14
|
+
alt: z.string().optional().describe("Alt text for accessibility."),
|
|
15
|
+
}))
|
|
16
|
+
.max(4)
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("Image attachments (up to 4)."),
|
|
10
19
|
});
|
|
11
20
|
export const createPostTool = {
|
|
12
21
|
name: "BLUESKY_CREATE_POST",
|
|
13
|
-
description: "Create a new post on Bluesky",
|
|
22
|
+
description: "Create a new post on Bluesky, optionally with up to 4 images",
|
|
14
23
|
parameters: createPostParams,
|
|
15
24
|
execute: async (params) => {
|
|
16
25
|
try {
|
|
17
|
-
const result = await getBlueskyService().createPost(params.text);
|
|
26
|
+
const result = await getBlueskyService().createPost(params.text, params.images);
|
|
18
27
|
return `Post created successfully on Bluesky!\n\nPost URI: ${result.uri}\nCID: ${result.cid}`;
|
|
19
28
|
}
|
|
20
29
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/bluesky-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/bluesky-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,2DAA2D,CAAC;IACvE,MAAM,EAAE,CAAC;SACP,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC3D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAClE,CAAC,CACF;SACA,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;CAC1C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,8DAA8D;IAC3E,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,UAAU,CAClD,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,CACb,CAAC;YACF,OAAO,sDAAsD,MAAM,CAAC,GAAG,UAAU,MAAM,CAAC,GAAG,EAAE,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACnG,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -2,14 +2,18 @@ import { z } from "zod";
|
|
|
2
2
|
declare const createPostParams: z.ZodObject<{
|
|
3
3
|
pageId: z.ZodString;
|
|
4
4
|
message: z.ZodString;
|
|
5
|
+
image: z.ZodOptional<z.ZodString>;
|
|
6
|
+
imageFilename: z.ZodOptional<z.ZodString>;
|
|
5
7
|
}, z.core.$strip>;
|
|
6
8
|
type CreatePostParams = z.infer<typeof createPostParams>;
|
|
7
9
|
export declare const createPostTool: {
|
|
8
10
|
readonly name: "CREATE_FACEBOOK_POST";
|
|
9
|
-
readonly description: "Create a post on a Facebook page";
|
|
11
|
+
readonly description: "Create a post on a Facebook page, optionally with a photo";
|
|
10
12
|
readonly parameters: z.ZodObject<{
|
|
11
13
|
pageId: z.ZodString;
|
|
12
14
|
message: z.ZodString;
|
|
15
|
+
image: z.ZodOptional<z.ZodString>;
|
|
16
|
+
imageFilename: z.ZodOptional<z.ZodString>;
|
|
13
17
|
}, z.core.$strip>;
|
|
14
18
|
readonly execute: (params: CreatePostParams) => Promise<string>;
|
|
15
19
|
};
|
|
@@ -4,14 +4,24 @@ import { getFacebookService } from "../../services/facebook-service.js";
|
|
|
4
4
|
const createPostParams = z.object({
|
|
5
5
|
pageId: z.string().describe("The ID of the Facebook page"),
|
|
6
6
|
message: z.string().min(1).describe("The text of the post"),
|
|
7
|
+
image: z
|
|
8
|
+
.string()
|
|
9
|
+
.optional()
|
|
10
|
+
.describe("A public image URL, or base64-encoded image bytes."),
|
|
11
|
+
imageFilename: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Filename to use when `image` is base64-encoded bytes."),
|
|
7
15
|
});
|
|
8
16
|
export const createPostTool = {
|
|
9
17
|
name: "CREATE_FACEBOOK_POST",
|
|
10
|
-
description: "Create a post on a Facebook page",
|
|
18
|
+
description: "Create a post on a Facebook page, optionally with a photo",
|
|
11
19
|
parameters: createPostParams,
|
|
12
20
|
execute: async (params) => {
|
|
13
21
|
try {
|
|
14
|
-
const post = await getFacebookService().createPost(params.pageId, params.message
|
|
22
|
+
const post = await getFacebookService().createPost(params.pageId, params.message, params.image
|
|
23
|
+
? { image: params.image, filename: params.imageFilename }
|
|
24
|
+
: undefined);
|
|
15
25
|
return `Post created successfully on Facebook!\n\nPost ID: ${post.post_id ?? post.id}\nPage Post ID: ${post.id}`;
|
|
16
26
|
}
|
|
17
27
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/facebook-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/facebook-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC3D,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IAChE,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;CACnE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,2DAA2D;IACxE,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CACjD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK;gBACX,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE;gBACzD,CAAC,CAAC,SAAS,CACZ,CAAC;YACF,OAAO,sDAAsD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC;QAClH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAC3F,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const createVideoPostParams: z.ZodObject<{
|
|
3
|
+
pageId: z.ZodString;
|
|
4
|
+
description: z.ZodString;
|
|
5
|
+
video: z.ZodString;
|
|
6
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
type CreateVideoPostParams = z.infer<typeof createVideoPostParams>;
|
|
9
|
+
export declare const createVideoPostTool: {
|
|
10
|
+
readonly name: "CREATE_FACEBOOK_VIDEO_POST";
|
|
11
|
+
readonly description: "Upload and publish a video on a Facebook page";
|
|
12
|
+
readonly parameters: z.ZodObject<{
|
|
13
|
+
pageId: z.ZodString;
|
|
14
|
+
description: z.ZodString;
|
|
15
|
+
video: z.ZodString;
|
|
16
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
readonly execute: (params: CreateVideoPostParams) => Promise<string>;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CredentialsError } from "../../lib/errors.js";
|
|
3
|
+
import { getFacebookService } from "../../services/facebook-service.js";
|
|
4
|
+
const createVideoPostParams = z.object({
|
|
5
|
+
pageId: z.string().describe("The ID of the Facebook page"),
|
|
6
|
+
description: z.string().describe("The caption/description for the video"),
|
|
7
|
+
video: z
|
|
8
|
+
.string()
|
|
9
|
+
.describe("A public video URL, or base64-encoded video bytes"),
|
|
10
|
+
filename: z
|
|
11
|
+
.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe("Filename to use when `video` is base64-encoded bytes."),
|
|
14
|
+
});
|
|
15
|
+
export const createVideoPostTool = {
|
|
16
|
+
name: "CREATE_FACEBOOK_VIDEO_POST",
|
|
17
|
+
description: "Upload and publish a video on a Facebook page",
|
|
18
|
+
parameters: createVideoPostParams,
|
|
19
|
+
execute: async (params) => {
|
|
20
|
+
try {
|
|
21
|
+
const post = await getFacebookService().createVideoPost(params.pageId, params.description, { video: params.video, filename: params.filename });
|
|
22
|
+
return `Video posted successfully on Facebook!\n\nPost ID: ${post.post_id ?? post.id}`;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (error instanceof CredentialsError)
|
|
26
|
+
return `Error: ${error.message}`;
|
|
27
|
+
return `Error posting video: ${error instanceof Error ? error.message : "Unknown error"}`;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=create-video-post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-video-post.js","sourceRoot":"","sources":["../../../src/tools/facebook-tools/create-video-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACzE,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,mDAAmD,CAAC;IAC/D,QAAQ,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;CACnE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,+CAA+C;IAC5D,UAAU,EAAE,qBAAqB;IACjC,OAAO,EAAE,KAAK,EAAE,MAA6B,EAAE,EAAE;QAChD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC,eAAe,CACtD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,EAClB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAClD,CAAC;YACF,OAAO,sDAAsD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACxF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAC3F,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -10,6 +10,8 @@ declare const params: z.ZodObject<{
|
|
|
10
10
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
11
11
|
excerpt: z.ZodOptional<z.ZodString>;
|
|
12
12
|
publishedAt: z.ZodOptional<z.ZodString>;
|
|
13
|
+
featureImage: z.ZodOptional<z.ZodString>;
|
|
14
|
+
featureImageFilename: z.ZodOptional<z.ZodString>;
|
|
13
15
|
siteUrl: z.ZodOptional<z.ZodString>;
|
|
14
16
|
adminApiKey: z.ZodOptional<z.ZodString>;
|
|
15
17
|
}, z.core.$strip>;
|
|
@@ -28,6 +30,8 @@ export declare const createPostTool: {
|
|
|
28
30
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
29
31
|
excerpt: z.ZodOptional<z.ZodString>;
|
|
30
32
|
publishedAt: z.ZodOptional<z.ZodString>;
|
|
33
|
+
featureImage: z.ZodOptional<z.ZodString>;
|
|
34
|
+
featureImageFilename: z.ZodOptional<z.ZodString>;
|
|
31
35
|
siteUrl: z.ZodOptional<z.ZodString>;
|
|
32
36
|
adminApiKey: z.ZodOptional<z.ZodString>;
|
|
33
37
|
}, z.core.$strip>;
|
|
@@ -9,14 +9,31 @@ const params = z.object({
|
|
|
9
9
|
.optional()
|
|
10
10
|
.default("draft")
|
|
11
11
|
.describe("Post status (default: draft)"),
|
|
12
|
-
tags: z
|
|
12
|
+
tags: z
|
|
13
|
+
.array(z.string())
|
|
14
|
+
.optional()
|
|
15
|
+
.describe("Tag names to assign to the post"),
|
|
13
16
|
excerpt: z.string().optional().describe("Custom excerpt shown in listings"),
|
|
14
17
|
publishedAt: z
|
|
15
18
|
.string()
|
|
16
19
|
.optional()
|
|
17
20
|
.describe("ISO 8601 date for scheduling, e.g. '2024-12-25T09:00:00.000Z'"),
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
featureImage: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Feature image: a public URL, or base64-encoded image bytes to upload."),
|
|
25
|
+
featureImageFilename: z
|
|
26
|
+
.string()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Filename to use when `featureImage` is base64-encoded bytes."),
|
|
29
|
+
siteUrl: z
|
|
30
|
+
.string()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Ghost site URL (overrides GHOST_SITE_URL env var)"),
|
|
33
|
+
adminApiKey: z
|
|
34
|
+
.string()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Ghost Admin API key id:secret (overrides GHOST_ADMIN_API_KEY env var)"),
|
|
20
37
|
});
|
|
21
38
|
export const createPostTool = {
|
|
22
39
|
name: "GHOST_CREATE_POST",
|
|
@@ -27,7 +44,13 @@ export const createPostTool = {
|
|
|
27
44
|
const service = p.siteUrl && p.adminApiKey
|
|
28
45
|
? new GhostService({ siteUrl: p.siteUrl, adminApiKey: p.adminApiKey })
|
|
29
46
|
: getGhostService();
|
|
30
|
-
const
|
|
47
|
+
const featureImage = p.featureImage
|
|
48
|
+
? p.featureImage.startsWith("http://") ||
|
|
49
|
+
p.featureImage.startsWith("https://")
|
|
50
|
+
? p.featureImage
|
|
51
|
+
: await service.uploadImage(p.featureImage, p.featureImageFilename)
|
|
52
|
+
: undefined;
|
|
53
|
+
const result = await service.createPost(p.title, p.html, undefined, p.status ?? "draft", p.tags ?? [], p.excerpt, p.publishedAt, featureImage);
|
|
31
54
|
const post = result.posts[0];
|
|
32
55
|
if (!post)
|
|
33
56
|
return "Post may have been created but no data was returned.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/ghost-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACzD,MAAM,EAAE,CAAC;SACP,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;SACzC,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,8BAA8B,CAAC;IAC1C,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/ghost-tools/create-post.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,15 +3,25 @@ declare const createPostParams: z.ZodObject<{
|
|
|
3
3
|
userId: z.ZodString;
|
|
4
4
|
imageUrl: z.ZodString;
|
|
5
5
|
caption: z.ZodString;
|
|
6
|
+
mediaType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
7
|
+
IMAGE: "IMAGE";
|
|
8
|
+
VIDEO: "VIDEO";
|
|
9
|
+
REELS: "REELS";
|
|
10
|
+
}>>>;
|
|
6
11
|
}, z.core.$strip>;
|
|
7
12
|
type CreatePostParams = z.infer<typeof createPostParams>;
|
|
8
13
|
export declare const createPostTool: {
|
|
9
14
|
readonly name: "CREATE_INSTAGRAM_POST";
|
|
10
|
-
readonly description: "Publish an image post on Instagram";
|
|
15
|
+
readonly description: "Publish an image, video, or Reels post on Instagram";
|
|
11
16
|
readonly parameters: z.ZodObject<{
|
|
12
17
|
userId: z.ZodString;
|
|
13
18
|
imageUrl: z.ZodString;
|
|
14
19
|
caption: z.ZodString;
|
|
20
|
+
mediaType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
21
|
+
IMAGE: "IMAGE";
|
|
22
|
+
VIDEO: "VIDEO";
|
|
23
|
+
REELS: "REELS";
|
|
24
|
+
}>>>;
|
|
15
25
|
}, z.core.$strip>;
|
|
16
26
|
readonly execute: (params: CreatePostParams) => Promise<string>;
|
|
17
27
|
};
|
|
@@ -3,16 +3,21 @@ import { CredentialsError } from "../../lib/errors.js";
|
|
|
3
3
|
import { getInstagramService } from "../../services/instagram-service.js";
|
|
4
4
|
const createPostParams = z.object({
|
|
5
5
|
userId: z.string().describe("The Instagram user ID"),
|
|
6
|
-
imageUrl: z.string().url().describe("The URL of the image to post"),
|
|
6
|
+
imageUrl: z.string().url().describe("The URL of the image/video to post"),
|
|
7
7
|
caption: z.string().min(1).describe("The caption for the Instagram post"),
|
|
8
|
+
mediaType: z
|
|
9
|
+
.enum(["IMAGE", "VIDEO", "REELS"])
|
|
10
|
+
.optional()
|
|
11
|
+
.default("IMAGE")
|
|
12
|
+
.describe("Media type. VIDEO/REELS use `imageUrl` as the video URL."),
|
|
8
13
|
});
|
|
9
14
|
export const createPostTool = {
|
|
10
15
|
name: "CREATE_INSTAGRAM_POST",
|
|
11
|
-
description: "Publish an image post on Instagram",
|
|
16
|
+
description: "Publish an image, video, or Reels post on Instagram",
|
|
12
17
|
parameters: createPostParams,
|
|
13
18
|
execute: async (params) => {
|
|
14
19
|
try {
|
|
15
|
-
const post = await getInstagramService().createPost(params.userId, params.imageUrl, params.caption);
|
|
20
|
+
const post = await getInstagramService().createPost(params.userId, params.imageUrl, params.caption, params.mediaType);
|
|
16
21
|
return `Post created successfully on Instagram!\n\nPost ID: ${post.id}`;
|
|
17
22
|
}
|
|
18
23
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/instagram-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/instagram-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACzE,SAAS,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACjC,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,0DAA0D,CAAC;CACtE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,qDAAqD;IAClE,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,mBAAmB,EAAE,CAAC,UAAU,CAClD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,CAChB,CAAC;YACF,OAAO,uDAAuD,IAAI,CAAC,EAAE,EAAE,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACrG,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -7,11 +7,13 @@ declare const createPostParams: z.ZodObject<{
|
|
|
7
7
|
CONNECTIONS: "CONNECTIONS";
|
|
8
8
|
LOGGED_IN: "LOGGED_IN";
|
|
9
9
|
}>>;
|
|
10
|
+
image: z.ZodOptional<z.ZodString>;
|
|
11
|
+
imageTitle: z.ZodOptional<z.ZodString>;
|
|
10
12
|
}, z.core.$strip>;
|
|
11
13
|
type CreatePostParams = z.infer<typeof createPostParams>;
|
|
12
14
|
export declare const createPostTool: {
|
|
13
15
|
readonly name: "CREATE_LINKEDIN_POST";
|
|
14
|
-
readonly description: "Create a LinkedIn UGC post on behalf of a member or organization";
|
|
16
|
+
readonly description: "Create a LinkedIn UGC post on behalf of a member or organization, optionally with an image";
|
|
15
17
|
readonly parameters: z.ZodObject<{
|
|
16
18
|
authorUrn: z.ZodString;
|
|
17
19
|
text: z.ZodString;
|
|
@@ -20,6 +22,8 @@ export declare const createPostTool: {
|
|
|
20
22
|
CONNECTIONS: "CONNECTIONS";
|
|
21
23
|
LOGGED_IN: "LOGGED_IN";
|
|
22
24
|
}>>;
|
|
25
|
+
image: z.ZodOptional<z.ZodString>;
|
|
26
|
+
imageTitle: z.ZodOptional<z.ZodString>;
|
|
23
27
|
}, z.core.$strip>;
|
|
24
28
|
readonly execute: (params: CreatePostParams) => Promise<string>;
|
|
25
29
|
};
|
|
@@ -11,14 +11,21 @@ const createPostParams = z.object({
|
|
|
11
11
|
.enum(["PUBLIC", "CONNECTIONS", "LOGGED_IN"])
|
|
12
12
|
.default("PUBLIC")
|
|
13
13
|
.describe("Who can see the post"),
|
|
14
|
+
image: z
|
|
15
|
+
.string()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe("Base64-encoded image bytes to attach."),
|
|
18
|
+
imageTitle: z.string().optional().describe("Title/alt text for the image."),
|
|
14
19
|
});
|
|
15
20
|
export const createPostTool = {
|
|
16
21
|
name: "CREATE_LINKEDIN_POST",
|
|
17
|
-
description: "Create a LinkedIn UGC post on behalf of a member or organization",
|
|
22
|
+
description: "Create a LinkedIn UGC post on behalf of a member or organization, optionally with an image",
|
|
18
23
|
parameters: createPostParams,
|
|
19
24
|
execute: async (params) => {
|
|
20
25
|
try {
|
|
21
|
-
const post = await getLinkedInService().createPost(params.authorUrn, params.text, params.visibility
|
|
26
|
+
const post = await getLinkedInService().createPost(params.authorUrn, params.text, params.visibility, params.image
|
|
27
|
+
? { content: params.image, title: params.imageTitle }
|
|
28
|
+
: undefined);
|
|
22
29
|
return `Post created successfully on LinkedIn!\n\nPost ID: ${post.id}`;
|
|
23
30
|
}
|
|
24
31
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/linkedin-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACR,qFAAqF,CACrF;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC1E,UAAU,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;SAC5C,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/linkedin-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACR,qFAAqF,CACrF;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC1E,UAAU,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;SAC5C,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,sBAAsB,CAAC;IAClC,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAC3E,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACV,4FAA4F;IAC7F,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CACjD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,KAAK;gBACX,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;gBACrD,CAAC,CAAC,SAAS,CACZ,CAAC;YACF,OAAO,sDAAsD,IAAI,CAAC,EAAE,EAAE,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpG,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -7,11 +7,16 @@ declare const createPostParams: z.ZodObject<{
|
|
|
7
7
|
private: "private";
|
|
8
8
|
direct: "direct";
|
|
9
9
|
}>>;
|
|
10
|
+
media: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
11
|
+
content: z.ZodString;
|
|
12
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
13
|
+
description: z.ZodOptional<z.ZodString>;
|
|
14
|
+
}, z.core.$strip>>>;
|
|
10
15
|
}, z.core.$strip>;
|
|
11
16
|
type CreatePostParams = z.infer<typeof createPostParams>;
|
|
12
17
|
export declare const createPostTool: {
|
|
13
18
|
readonly name: "MASTODON_CREATE_POST";
|
|
14
|
-
readonly description: "Create a new post (toot) on Mastodon";
|
|
19
|
+
readonly description: "Create a new post (toot) on Mastodon, optionally with media attachments";
|
|
15
20
|
readonly parameters: z.ZodObject<{
|
|
16
21
|
status: z.ZodString;
|
|
17
22
|
visibility: z.ZodDefault<z.ZodEnum<{
|
|
@@ -20,6 +25,11 @@ export declare const createPostTool: {
|
|
|
20
25
|
private: "private";
|
|
21
26
|
direct: "direct";
|
|
22
27
|
}>>;
|
|
28
|
+
media: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
29
|
+
content: z.ZodString;
|
|
30
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
31
|
+
description: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>>>;
|
|
23
33
|
}, z.core.$strip>;
|
|
24
34
|
readonly execute: (params: CreatePostParams) => Promise<string>;
|
|
25
35
|
};
|
|
@@ -11,14 +11,30 @@ const createPostParams = z.object({
|
|
|
11
11
|
.enum(["public", "unlisted", "private", "direct"])
|
|
12
12
|
.default("public")
|
|
13
13
|
.describe("Visibility of the post: public, unlisted, private, or direct"),
|
|
14
|
+
media: z
|
|
15
|
+
.array(z.object({
|
|
16
|
+
content: z.string().describe("Base64-encoded file bytes."),
|
|
17
|
+
filename: z.string().optional(),
|
|
18
|
+
description: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Alt text for accessibility."),
|
|
22
|
+
}))
|
|
23
|
+
.max(4)
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Media attachments (up to 4)."),
|
|
14
26
|
});
|
|
15
27
|
export const createPostTool = {
|
|
16
28
|
name: "MASTODON_CREATE_POST",
|
|
17
|
-
description: "Create a new post (toot) on Mastodon",
|
|
29
|
+
description: "Create a new post (toot) on Mastodon, optionally with media attachments",
|
|
18
30
|
parameters: createPostParams,
|
|
19
31
|
execute: async (params) => {
|
|
20
32
|
try {
|
|
21
|
-
const
|
|
33
|
+
const service = getMastodonService();
|
|
34
|
+
const mediaIds = params.media?.length
|
|
35
|
+
? await Promise.all(params.media.map((m) => service.uploadMedia(m)))
|
|
36
|
+
: undefined;
|
|
37
|
+
const result = await service.createPost(params.status, params.visibility, mediaIds);
|
|
22
38
|
return `Post created successfully on Mastodon!\n\nPost ID: ${result.id}\nURL: ${result.url ?? "N/A"}`;
|
|
23
39
|
}
|
|
24
40
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/mastodon-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,qCAAqC,CAAC;IACjD,UAAU,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SACjD,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,8DAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/tools/mastodon-tools/create-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,qCAAqC,CAAC;IACjD,UAAU,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SACjD,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,8DAA8D,CAAC;IAC1E,KAAK,EAAE,CAAC;SACN,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,WAAW,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6BAA6B,CAAC;KACzC,CAAC,CACF;SACA,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;CAC1C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACV,yEAAyE;IAC1E,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM;gBACpC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,QAAQ,CACR,CAAC;YACF,OAAO,sDAAsD,MAAM,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;QACvG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpG,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -3,7 +3,8 @@ declare const createPinParams: z.ZodObject<{
|
|
|
3
3
|
boardId: z.ZodString;
|
|
4
4
|
title: z.ZodString;
|
|
5
5
|
description: z.ZodString;
|
|
6
|
-
|
|
6
|
+
image: z.ZodString;
|
|
7
|
+
imageContentType: z.ZodOptional<z.ZodString>;
|
|
7
8
|
link: z.ZodOptional<z.ZodString>;
|
|
8
9
|
}, z.core.$strip>;
|
|
9
10
|
type CreatePinParams = z.infer<typeof createPinParams>;
|
|
@@ -14,7 +15,8 @@ export declare const createPinTool: {
|
|
|
14
15
|
boardId: z.ZodString;
|
|
15
16
|
title: z.ZodString;
|
|
16
17
|
description: z.ZodString;
|
|
17
|
-
|
|
18
|
+
image: z.ZodString;
|
|
19
|
+
imageContentType: z.ZodOptional<z.ZodString>;
|
|
18
20
|
link: z.ZodOptional<z.ZodString>;
|
|
19
21
|
}, z.core.$strip>;
|
|
20
22
|
readonly execute: (params: CreatePinParams) => Promise<string>;
|
|
@@ -5,7 +5,13 @@ const createPinParams = z.object({
|
|
|
5
5
|
boardId: z.string().min(1).describe("The ID of the board to pin to"),
|
|
6
6
|
title: z.string().min(1).describe("The title of the pin"),
|
|
7
7
|
description: z.string().describe("The description of the pin"),
|
|
8
|
-
|
|
8
|
+
image: z
|
|
9
|
+
.string()
|
|
10
|
+
.describe("A publicly accessible image URL, or base64-encoded image bytes"),
|
|
11
|
+
imageContentType: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("MIME type, required when `image` is base64-encoded bytes, e.g. image/jpeg"),
|
|
9
15
|
link: z
|
|
10
16
|
.string()
|
|
11
17
|
.url()
|
|
@@ -18,7 +24,7 @@ export const createPinTool = {
|
|
|
18
24
|
parameters: createPinParams,
|
|
19
25
|
execute: async (params) => {
|
|
20
26
|
try {
|
|
21
|
-
const pin = await getPinterestService().createPin(params.boardId, params.title, params.description, params.link ?? "", params.
|
|
27
|
+
const pin = await getPinterestService().createPin(params.boardId, params.title, params.description, params.link ?? "", { image: params.image, contentType: params.imageContentType });
|
|
22
28
|
return `Pin created successfully!\n\nPin ID: ${pin.id}\nTitle: ${pin.title ?? params.title}${pin.link ? `\nLink: ${pin.link}` : ""}`;
|
|
23
29
|
}
|
|
24
30
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-pin.js","sourceRoot":"","sources":["../../../src/tools/pinterest-tools/create-pin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC9D,
|
|
1
|
+
{"version":3,"file":"create-pin.js","sourceRoot":"","sources":["../../../src/tools/pinterest-tools/create-pin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC9D,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,gEAAgE,CAAC;IAC5E,gBAAgB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACR,2EAA2E,CAC3E;IACF,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;CACrD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,uCAAuC;IACpD,UAAU,EAAE,eAAe;IAC3B,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,EAAE;QAC1C,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC,SAAS,CAChD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,IAAI,IAAI,EAAE,EACjB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAC7D,CAAC;YACF,OAAO,wCAAwC,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtI,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpG,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -4,24 +4,32 @@ declare const submitPostParams: z.ZodObject<{
|
|
|
4
4
|
title: z.ZodString;
|
|
5
5
|
kind: z.ZodDefault<z.ZodEnum<{
|
|
6
6
|
link: "link";
|
|
7
|
+
image: "image";
|
|
7
8
|
self: "self";
|
|
8
9
|
}>>;
|
|
9
10
|
text: z.ZodOptional<z.ZodString>;
|
|
10
11
|
url: z.ZodOptional<z.ZodString>;
|
|
12
|
+
image: z.ZodOptional<z.ZodString>;
|
|
13
|
+
imageFilename: z.ZodOptional<z.ZodString>;
|
|
14
|
+
imageMimeType: z.ZodOptional<z.ZodString>;
|
|
11
15
|
}, z.core.$strip>;
|
|
12
16
|
type SubmitPostParams = z.infer<typeof submitPostParams>;
|
|
13
17
|
export declare const submitPostTool: {
|
|
14
18
|
readonly name: "REDDIT_SUBMIT_POST";
|
|
15
|
-
readonly description: "Submit a post to a Reddit subreddit (text or
|
|
19
|
+
readonly description: "Submit a post to a Reddit subreddit (text, link, or image)";
|
|
16
20
|
readonly parameters: z.ZodObject<{
|
|
17
21
|
subreddit: z.ZodString;
|
|
18
22
|
title: z.ZodString;
|
|
19
23
|
kind: z.ZodDefault<z.ZodEnum<{
|
|
20
24
|
link: "link";
|
|
25
|
+
image: "image";
|
|
21
26
|
self: "self";
|
|
22
27
|
}>>;
|
|
23
28
|
text: z.ZodOptional<z.ZodString>;
|
|
24
29
|
url: z.ZodOptional<z.ZodString>;
|
|
30
|
+
image: z.ZodOptional<z.ZodString>;
|
|
31
|
+
imageFilename: z.ZodOptional<z.ZodString>;
|
|
32
|
+
imageMimeType: z.ZodOptional<z.ZodString>;
|
|
25
33
|
}, z.core.$strip>;
|
|
26
34
|
readonly execute: (params: SubmitPostParams) => Promise<string>;
|
|
27
35
|
};
|
|
@@ -8,19 +8,34 @@ const submitPostParams = z.object({
|
|
|
8
8
|
.describe("The subreddit to post to (without r/ prefix)"),
|
|
9
9
|
title: z.string().min(1).max(300).describe("Title of the post"),
|
|
10
10
|
kind: z
|
|
11
|
-
.enum(["self", "link"])
|
|
11
|
+
.enum(["self", "link", "image"])
|
|
12
12
|
.default("self")
|
|
13
|
-
.describe("Post type: 'self' for text
|
|
13
|
+
.describe("Post type: 'self' for text, 'link' for a URL, 'image' for a photo"),
|
|
14
14
|
text: z.string().optional().describe("Text content for self posts"),
|
|
15
15
|
url: z.string().url().optional().describe("URL for link posts"),
|
|
16
|
+
image: z
|
|
17
|
+
.string()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("Base64-encoded image/video bytes, for kind='image'."),
|
|
20
|
+
imageFilename: z.string().optional().describe("Filename for the image."),
|
|
21
|
+
imageMimeType: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("MIME type for the image, e.g. image/png."),
|
|
16
25
|
});
|
|
17
26
|
export const submitPostTool = {
|
|
18
27
|
name: "REDDIT_SUBMIT_POST",
|
|
19
|
-
description: "Submit a post to a Reddit subreddit (text or
|
|
28
|
+
description: "Submit a post to a Reddit subreddit (text, link, or image)",
|
|
20
29
|
parameters: submitPostParams,
|
|
21
30
|
execute: async (params) => {
|
|
22
31
|
try {
|
|
23
|
-
const result = await getRedditService().submitPost(params.subreddit, params.title, params.kind, params.text, params.url
|
|
32
|
+
const result = await getRedditService().submitPost(params.subreddit, params.title, params.kind, params.text, params.url, params.image
|
|
33
|
+
? {
|
|
34
|
+
content: params.image,
|
|
35
|
+
filename: params.imageFilename ?? "image.jpg",
|
|
36
|
+
mimeType: params.imageMimeType ?? "image/jpeg",
|
|
37
|
+
}
|
|
38
|
+
: undefined);
|
|
24
39
|
if (result.json.errors.length > 0) {
|
|
25
40
|
return `Reddit post errors: ${JSON.stringify(result.json.errors)}`;
|
|
26
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit-post.js","sourceRoot":"","sources":["../../../src/tools/reddit-tools/submit-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,8CAA8C,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC/D,IAAI,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"submit-post.js","sourceRoot":"","sources":["../../../src/tools/reddit-tools/submit-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,8CAA8C,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC/D,IAAI,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CACR,mEAAmE,CACnE;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACnE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC/D,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IACjE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACxE,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;CACtD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,4DAA4D;IACzE,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,UAAU,CACjD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,KAAK;gBACX,CAAC,CAAC;oBACA,OAAO,EAAE,MAAM,CAAC,KAAK;oBACrB,QAAQ,EAAE,MAAM,CAAC,aAAa,IAAI,WAAW;oBAC7C,QAAQ,EAAE,MAAM,CAAC,aAAa,IAAI,YAAY;iBAC9C;gBACF,CAAC,CAAC,SAAS,CACZ,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,OAAO,oCAAoC,MAAM,CAAC,SAAS,iBAAiB,IAAI,EAAE,IAAI,IAAI,SAAS,UAAU,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QACvI,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpG,CAAC;IACF,CAAC;CACQ,CAAC"}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
declare const createPostParams: z.ZodObject<{
|
|
3
3
|
text: z.ZodString;
|
|
4
|
+
replyToId: z.ZodOptional<z.ZodString>;
|
|
5
|
+
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
6
|
+
mediaType: z.ZodOptional<z.ZodEnum<{
|
|
7
|
+
IMAGE: "IMAGE";
|
|
8
|
+
VIDEO: "VIDEO";
|
|
9
|
+
}>>;
|
|
4
10
|
}, z.core.$strip>;
|
|
5
11
|
type CreatePostParams = z.infer<typeof createPostParams>;
|
|
6
12
|
export declare const createPostTool: {
|
|
7
13
|
readonly name: "THREADS_CREATE_POST";
|
|
8
|
-
readonly description: "Create a new
|
|
14
|
+
readonly description: "Create a new post on Threads, optionally with an image or video";
|
|
9
15
|
readonly parameters: z.ZodObject<{
|
|
10
16
|
text: z.ZodString;
|
|
17
|
+
replyToId: z.ZodOptional<z.ZodString>;
|
|
18
|
+
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
19
|
+
mediaType: z.ZodOptional<z.ZodEnum<{
|
|
20
|
+
IMAGE: "IMAGE";
|
|
21
|
+
VIDEO: "VIDEO";
|
|
22
|
+
}>>;
|
|
11
23
|
}, z.core.$strip>;
|
|
12
24
|
readonly execute: (params: CreatePostParams) => Promise<string>;
|
|
13
25
|
};
|