@hyperstar/mcp 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 (44) hide show
  1. package/README.md +186 -0
  2. package/dist/auth/cli-auth-client.d.ts +48 -0
  3. package/dist/auth/cli-auth-client.js +214 -0
  4. package/dist/auth/cli-auth-client.js.map +1 -0
  5. package/dist/auth/cli-auth-state.d.ts +26 -0
  6. package/dist/auth/cli-auth-state.js +176 -0
  7. package/dist/auth/cli-auth-state.js.map +1 -0
  8. package/dist/auth/local-callback.d.ts +18 -0
  9. package/dist/auth/local-callback.js +90 -0
  10. package/dist/auth/local-callback.js.map +1 -0
  11. package/dist/auth/pkce.d.ts +8 -0
  12. package/dist/auth/pkce.js +14 -0
  13. package/dist/auth/pkce.js.map +1 -0
  14. package/dist/cli.d.ts +18 -0
  15. package/dist/cli.js +326 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/config.d.ts +35 -0
  18. package/dist/config.js +101 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/http.d.ts +24 -0
  21. package/dist/http.js +131 -0
  22. package/dist/http.js.map +1 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +16 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/schemas.d.ts +61 -0
  27. package/dist/schemas.js +57 -0
  28. package/dist/schemas.js.map +1 -0
  29. package/dist/server.d.ts +4 -0
  30. package/dist/server.js +12 -0
  31. package/dist/server.js.map +1 -0
  32. package/dist/tool-inputs.d.ts +254 -0
  33. package/dist/tool-inputs.js +239 -0
  34. package/dist/tool-inputs.js.map +1 -0
  35. package/dist/tool-result.d.ts +4 -0
  36. package/dist/tool-result.js +23 -0
  37. package/dist/tool-result.js.map +1 -0
  38. package/dist/tools.d.ts +8 -0
  39. package/dist/tools.js +259 -0
  40. package/dist/tools.js.map +1 -0
  41. package/dist/workspaces.d.ts +11 -0
  42. package/dist/workspaces.js +77 -0
  43. package/dist/workspaces.js.map +1 -0
  44. package/package.json +41 -0
@@ -0,0 +1,239 @@
1
+ import { z } from "zod";
2
+ import { JsonObjectSchema } from "./schemas.js";
3
+ const PositivePageLimitSchema = z.number().int().min(1);
4
+ const SearchPlatformSchema = z.enum(["tiktok", "instagram"]);
5
+ const InboxPlatformSchema = z.enum(["tiktok", "instagram", "buyer"]);
6
+ const SearchIdSchema = z.uuid();
7
+ // Backend workspace identifiers are organization IDs such as "org_123", not UUIDs.
8
+ const WorkspaceOrganizationIdSchema = z.string().trim().min(1);
9
+ const SearchRegionSchema = z
10
+ .string()
11
+ .trim()
12
+ .transform((value) => value.toUpperCase())
13
+ .pipe(z.string().regex(/^[A-Z]{2}$/));
14
+ const SearchCreateLimitSchema = PositivePageLimitSchema.max(10000);
15
+ const SearchResultLimitSchema = PositivePageLimitSchema.max(100);
16
+ const SearchSortBySchema = z.enum([
17
+ "relevance",
18
+ "matchScore",
19
+ "follower_count",
20
+ "engagement_rate",
21
+ "avg_views",
22
+ "views_growth_rate",
23
+ "gmv",
24
+ "gpm",
25
+ ]);
26
+ const EmailSubjectSchema = z.string().trim().min(1).max(500);
27
+ const HeaderValueSchema = z
28
+ .string()
29
+ .trim()
30
+ .regex(/^[\x21-\x7e]+$/, {
31
+ message: "value contains unsupported header characters",
32
+ });
33
+ const IdempotencyKeySchema = HeaderValueSchema.min(1);
34
+ const PositiveIdListSchema = z.array(z.number().int().positive()).optional();
35
+ const CampaignCreatorSelectionSchema = z
36
+ .object({
37
+ workflow_filter: z
38
+ .enum([
39
+ "all",
40
+ "email",
41
+ "email_not_sent",
42
+ "email_sent",
43
+ "replied",
44
+ "negotiating",
45
+ "rejected_hold",
46
+ "rejected",
47
+ "hold",
48
+ "contract",
49
+ "contracted",
50
+ "content",
51
+ "draft",
52
+ "final_approved",
53
+ "posted",
54
+ ])
55
+ .optional(),
56
+ outreach_stage: z.string().trim().min(1).optional(),
57
+ platform: SearchPlatformSchema.optional(),
58
+ country: z.string().trim().min(1).optional(),
59
+ has_video: z.boolean().optional(),
60
+ source_type: z
61
+ .enum([
62
+ "saved_list",
63
+ "file_upload",
64
+ "manual_add",
65
+ "form_submission",
66
+ "discovery_search",
67
+ ])
68
+ .optional(),
69
+ search: z.string().trim().min(1).optional(),
70
+ excluded_ids: z.array(z.number().int().positive()).optional(),
71
+ })
72
+ .strict();
73
+ function validateRecipientSelection(value, context) {
74
+ if (value.campaign_creator_ids !== undefined &&
75
+ value.campaign_creator_ids.length > 0 &&
76
+ value.campaign_creator_selection !== undefined) {
77
+ context.addIssue({
78
+ code: "custom",
79
+ message: "campaign_creator_ids and campaign_creator_selection are mutually exclusive",
80
+ path: ["campaign_creator_selection"],
81
+ });
82
+ }
83
+ }
84
+ function validateFormLanguage(value, context) {
85
+ if (value.form_language !== undefined && value.form_id === undefined) {
86
+ context.addIssue({
87
+ code: "custom",
88
+ message: "form_id is required when form_language is provided",
89
+ path: ["form_id"],
90
+ });
91
+ }
92
+ }
93
+ export const SearchCreatorsInputSchema = z
94
+ .object({
95
+ kind: z.enum(["semantic", "reference"]),
96
+ platform: SearchPlatformSchema,
97
+ region: SearchRegionSchema,
98
+ query: z.string().trim().min(1).optional(),
99
+ filters: JsonObjectSchema.optional(),
100
+ limit: SearchCreateLimitSchema.optional(),
101
+ reference: JsonObjectSchema.optional(),
102
+ sort_by: SearchSortBySchema.optional(),
103
+ sort_order: z.enum(["asc", "desc"]).optional(),
104
+ })
105
+ .strict()
106
+ .superRefine((value, context) => {
107
+ if (value.kind === "semantic" && value.query === undefined) {
108
+ context.addIssue({
109
+ code: "custom",
110
+ message: "semantic searches require query",
111
+ path: ["query"],
112
+ });
113
+ }
114
+ if (value.kind === "reference" && value.reference === undefined) {
115
+ context.addIssue({
116
+ code: "custom",
117
+ message: "reference searches require reference",
118
+ path: ["reference"],
119
+ });
120
+ }
121
+ if (value.platform !== "tiktok" &&
122
+ (value.sort_by === "gmv" || value.sort_by === "gpm")) {
123
+ context.addIssue({
124
+ code: "custom",
125
+ message: "gmv and gpm sorting are only available for TikTok searches",
126
+ path: ["sort_by"],
127
+ });
128
+ }
129
+ });
130
+ export const WhoamiInputSchema = z.object({}).strict();
131
+ export const ListWorkspacesInputSchema = z.object({}).strict();
132
+ export const SelectWorkspaceInputSchema = z
133
+ .object({
134
+ organization_id: WorkspaceOrganizationIdSchema,
135
+ })
136
+ .strict();
137
+ export const WorkflowGuideInputSchema = z.object({}).strict();
138
+ export const GetSearchResultsInputSchema = z
139
+ .object({
140
+ search_id: SearchIdSchema,
141
+ limit: SearchResultLimitSchema.optional(),
142
+ offset: z.number().int().min(0).optional(),
143
+ })
144
+ .strict();
145
+ export const SaveSearchResultsToCampaignInputSchema = z
146
+ .object({
147
+ campaign_id: z.number().int().positive(),
148
+ search_id: SearchIdSchema,
149
+ excluded_origin_ids: z.array(z.string().min(1)).optional(),
150
+ limit: PositivePageLimitSchema.max(10000).optional(),
151
+ reference_id: z.string().trim().min(1).max(100).optional(),
152
+ })
153
+ .strict();
154
+ export const CampaignCreatorsInputSchema = z
155
+ .object({
156
+ campaign_id: z.number().int().positive(),
157
+ limit: PositivePageLimitSchema.max(2000).optional(),
158
+ offset: z.number().int().min(0).optional(),
159
+ })
160
+ .strict();
161
+ export const CheckBulkEmailReadinessInputSchema = z
162
+ .object({
163
+ campaign_id: z.number().int().positive(),
164
+ campaign_creator_ids: PositiveIdListSchema,
165
+ campaign_creator_selection: CampaignCreatorSelectionSchema.optional(),
166
+ })
167
+ .strict()
168
+ .superRefine(validateRecipientSelection);
169
+ export const StartBulkEmailInputSchema = z
170
+ .object({
171
+ campaign_id: z.number().int().positive(),
172
+ subject: EmailSubjectSchema,
173
+ body_text: z.string().trim().min(1),
174
+ from_email: z.string().trim().min(1).optional(),
175
+ attachments: z.array(z.string().trim().min(1)).optional(),
176
+ campaign_creator_ids: PositiveIdListSchema,
177
+ campaign_creator_selection: CampaignCreatorSelectionSchema.optional(),
178
+ form_id: z.number().int().positive().optional(),
179
+ form_language: z.enum(["en", "ko", "jp"]).optional(),
180
+ idempotency_key: IdempotencyKeySchema,
181
+ })
182
+ .strict()
183
+ .superRefine((value, context) => {
184
+ validateRecipientSelection(value, context);
185
+ validateFormLanguage(value, context);
186
+ });
187
+ export const BulkEmailJobInputSchema = z
188
+ .object({
189
+ job_id: z.string().trim().min(1),
190
+ })
191
+ .strict();
192
+ export const InboxFiltersInputSchema = z
193
+ .object({
194
+ platforms: z.array(InboxPlatformSchema).optional(),
195
+ campaign_ids: z.array(z.number().int().positive()).optional(),
196
+ outreach_stages: z.array(z.string().trim().min(1)).optional(),
197
+ label_ids: z.array(z.number().int().positive()).optional(),
198
+ bulk_job_ids: z.array(z.uuid()).optional(),
199
+ unread_only: z.boolean().optional(),
200
+ actionable_only: z.boolean().optional(),
201
+ attention: z.boolean().optional(),
202
+ archived: z.boolean().optional(),
203
+ snoozed: z.boolean().optional(),
204
+ has_attachments: z.boolean().optional(),
205
+ search: z.string().trim().min(1).optional(),
206
+ last_message_at_from: z.iso.datetime().optional(),
207
+ last_message_at_to: z.iso.datetime().optional(),
208
+ })
209
+ .strict();
210
+ export const ListInboxThreadsInputSchema = InboxFiltersInputSchema.extend({
211
+ sort_field: z.enum(["last_message_at"]).optional(),
212
+ sort_descending: z.boolean().optional(),
213
+ limit: PositivePageLimitSchema.max(500).optional(),
214
+ offset: z.number().int().min(0).optional(),
215
+ });
216
+ export const UpdateInboxThreadStateInputSchema = z
217
+ .object({
218
+ platform: InboxPlatformSchema,
219
+ thread_id: z.number().int().positive(),
220
+ archived: z.boolean().optional(),
221
+ snoozed_until: z.iso.datetime().optional(),
222
+ clear_snooze: z.boolean().optional(),
223
+ starred: z.boolean().optional(),
224
+ read_state: z.enum(["read", "unread"]).optional(),
225
+ clear_read_state: z.boolean().optional(),
226
+ })
227
+ .strict();
228
+ export const SendInboxReplyInputSchema = z
229
+ .object({
230
+ platform: InboxPlatformSchema,
231
+ thread_id: z.number().int().positive(),
232
+ subject: EmailSubjectSchema,
233
+ body_text: z.string().trim().min(1),
234
+ attachments: z.array(z.string().trim().min(1)).optional(),
235
+ campaign_creator_id: z.number().int().positive().optional(),
236
+ idempotency_key: IdempotencyKeySchema,
237
+ })
238
+ .strict();
239
+ //# sourceMappingURL=tool-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-inputs.js","sourceRoot":"","sources":["../src/tool-inputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { JsonValue } from "./http.js";
3
+ /** Render a tool result as JSON text and MCP structured content. */
4
+ export declare function toolResult(output: JsonValue): CallToolResult;
@@ -0,0 +1,23 @@
1
+ /** Render a tool result as JSON text and MCP structured content. */
2
+ export function toolResult(output) {
3
+ return {
4
+ content: [
5
+ {
6
+ type: "text",
7
+ text: JSON.stringify(output, null, 2),
8
+ },
9
+ ],
10
+ structuredContent: structuredContentFrom(output),
11
+ };
12
+ }
13
+ function structuredContentFrom(output) {
14
+ if (isJsonObject(output)) {
15
+ return output;
16
+ }
17
+ return { result: output };
18
+ }
19
+ /** Narrow a JSON value to an object record. */
20
+ function isJsonObject(value) {
21
+ return value !== null && typeof value === "object" && !Array.isArray(value);
22
+ }
23
+ //# sourceMappingURL=tool-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-result.js","sourceRoot":"","sources":["../src/tool-result.ts"],"names":[],"mappings":"AAIA,oEAAoE;AACpE,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC1C,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;QACD,iBAAiB,EAAE,qBAAqB,CAAC,MAAM,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAiB;IAC9C,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,MAAiC,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,+CAA+C;AAC/C,SAAS,YAAY,CAAC,KAAgB;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { HyperstarClient } from "./http.js";
3
+ import { type HyperstarToolHandlers } from "./tool-inputs.js";
4
+ import { type WorkspaceToolOptions } from "./workspaces.js";
5
+ /** Build workflow handlers around a Hyperstar HTTP client. */
6
+ export declare function createToolHandlers(client: HyperstarClient, options?: WorkspaceToolOptions): HyperstarToolHandlers;
7
+ /** Register all Hyperstar workflow tools on an MCP server. */
8
+ export declare function registerHyperstarTools(server: McpServer, client: HyperstarClient, options?: WorkspaceToolOptions): void;
package/dist/tools.js ADDED
@@ -0,0 +1,259 @@
1
+ import { toolResult } from "./tool-result.js";
2
+ import { BulkEmailJobResponseSchema, BulkEmailReadinessResponseSchema, CampaignCreatorsResponseSchema, CampaignImportResponseSchema, InboxAggregatesResponseSchema, InboxThreadPageResponseSchema, InboxWorkspaceStateResponseSchema, JsonObjectSchema, SearchCreatedResponseSchema, SearchResultsResponseSchema, WhoamiResponseSchema, } from "./schemas.js";
3
+ import { BulkEmailJobInputSchema, CampaignCreatorsInputSchema, CheckBulkEmailReadinessInputSchema, GetSearchResultsInputSchema, InboxFiltersInputSchema, ListInboxThreadsInputSchema, ListWorkspacesInputSchema, SaveSearchResultsToCampaignInputSchema, SearchCreatorsInputSchema, SelectWorkspaceInputSchema, SendInboxReplyInputSchema, StartBulkEmailInputSchema, UpdateInboxThreadStateInputSchema, WorkflowGuideInputSchema, WhoamiInputSchema, } from "./tool-inputs.js";
4
+ import { getHyperstarWorkflowGuide, listAvailableWorkspaces, selectAvailableWorkspace, } from "./workspaces.js";
5
+ /** Build workflow handlers around a Hyperstar HTTP client. */
6
+ export function createToolHandlers(client, options = {}) {
7
+ return {
8
+ hyperstarWhoami: async () => WhoamiResponseSchema.parse(await client.get("/v1/whoami")),
9
+ listWorkspaces: async (input = {}) => {
10
+ ListWorkspacesInputSchema.parse(input);
11
+ return listAvailableWorkspaces(client);
12
+ },
13
+ selectWorkspace: async (input) => {
14
+ const parsedInput = SelectWorkspaceInputSchema.parse(input);
15
+ return selectAvailableWorkspace(client, parsedInput.organization_id, options);
16
+ },
17
+ getHyperstarWorkflowGuide: async (input = {}) => {
18
+ WorkflowGuideInputSchema.parse(input);
19
+ return getHyperstarWorkflowGuide(options);
20
+ },
21
+ searchCreators: async (input) => {
22
+ const parsedInput = SearchCreatorsInputSchema.parse(input);
23
+ const body = compactJsonObject([
24
+ ["kind", parsedInput.kind],
25
+ ["platform", parsedInput.platform],
26
+ ["region", parsedInput.region],
27
+ ["query", parsedInput.query],
28
+ ["filters", parsedInput.filters],
29
+ ["limit", parsedInput.limit],
30
+ ["reference", parsedInput.reference],
31
+ ["sort_by", parsedInput.sort_by],
32
+ ["sort_order", parsedInput.sort_order],
33
+ ]);
34
+ const created = SearchCreatedResponseSchema.parse(await client.post("/v1/searches", body));
35
+ const limit = Math.min(parsedInput.limit ?? 25, 100);
36
+ const results = SearchResultsResponseSchema.parse(await client.get(`/v1/searches/${pathSegment(created.search_id)}/results`, queryFrom({ limit, offset: 0 })));
37
+ return { search_id: created.search_id, ...results };
38
+ },
39
+ getSearchResults: async (input) => {
40
+ const parsedInput = GetSearchResultsInputSchema.parse(input);
41
+ return SearchResultsResponseSchema.parse(await client.get(`/v1/searches/${pathSegment(parsedInput.search_id)}/results`, queryFrom({
42
+ limit: parsedInput.limit ?? 25,
43
+ offset: parsedInput.offset ?? 0,
44
+ })));
45
+ },
46
+ saveSearchResultsToCampaign: async (input) => {
47
+ const parsedInput = SaveSearchResultsToCampaignInputSchema.parse(input);
48
+ return CampaignImportResponseSchema.parse(await client.post(`/v1/campaigns/${pathSegment(parsedInput.campaign_id)}/creators:import`, {
49
+ mode: "search_selection",
50
+ search_id: parsedInput.search_id,
51
+ limit: parsedInput.limit ?? 100,
52
+ ...(parsedInput.excluded_origin_ids === undefined
53
+ ? {}
54
+ : { excluded_origin_ids: parsedInput.excluded_origin_ids }),
55
+ ...(parsedInput.reference_id === undefined
56
+ ? {}
57
+ : { reference_id: parsedInput.reference_id }),
58
+ }));
59
+ },
60
+ listCampaignCreators: async (input) => {
61
+ const parsedInput = CampaignCreatorsInputSchema.parse(input);
62
+ return CampaignCreatorsResponseSchema.parse(await client.get(`/v1/campaigns/${pathSegment(parsedInput.campaign_id)}/creators`, queryFrom({
63
+ limit: parsedInput.limit ?? 50,
64
+ offset: parsedInput.offset ?? 0,
65
+ })));
66
+ },
67
+ checkBulkEmailReadiness: async (input) => {
68
+ const parsedInput = CheckBulkEmailReadinessInputSchema.parse(input);
69
+ return BulkEmailReadinessResponseSchema.parse(await client.post(`/v1/campaigns/${pathSegment(parsedInput.campaign_id)}/bulk-email/readiness`, compactJsonObject([
70
+ ["campaign_creator_ids", parsedInput.campaign_creator_ids],
71
+ [
72
+ "campaign_creator_selection",
73
+ campaignCreatorSelectionBody(parsedInput.campaign_creator_selection),
74
+ ],
75
+ ])));
76
+ },
77
+ startBulkEmail: async (input) => {
78
+ const parsedInput = StartBulkEmailInputSchema.parse(input);
79
+ return BulkEmailJobResponseSchema.parse(await client.post(`/v1/campaigns/${pathSegment(parsedInput.campaign_id)}/bulk-email/jobs`, compactJsonObject([
80
+ ["subject", parsedInput.subject],
81
+ ["body_text", parsedInput.body_text],
82
+ ["from_email", parsedInput.from_email],
83
+ ["attachments", parsedInput.attachments],
84
+ ["campaign_creator_ids", parsedInput.campaign_creator_ids],
85
+ [
86
+ "campaign_creator_selection",
87
+ campaignCreatorSelectionBody(parsedInput.campaign_creator_selection),
88
+ ],
89
+ ["form_id", parsedInput.form_id],
90
+ ["form_language", parsedInput.form_language],
91
+ ["idempotency_key", parsedInput.idempotency_key],
92
+ ]), { "Idempotency-Key": parsedInput.idempotency_key }));
93
+ },
94
+ getBulkEmailJob: async (input) => {
95
+ const parsedInput = BulkEmailJobInputSchema.parse(input);
96
+ return BulkEmailJobResponseSchema.parse(await client.get(`/v1/bulk-email/jobs/${pathSegment(parsedInput.job_id)}`));
97
+ },
98
+ listInboxThreads: async (input) => {
99
+ const parsedInput = ListInboxThreadsInputSchema.parse(input);
100
+ return InboxThreadPageResponseSchema.parse(await client.get("/v1/inbox/threads", queryFrom(parsedInput)));
101
+ },
102
+ getInboxAggregates: async (input) => {
103
+ const parsedInput = InboxFiltersInputSchema.parse(input);
104
+ return InboxAggregatesResponseSchema.parse(await client.get("/v1/inbox/threads/aggregates", queryFrom(parsedInput)));
105
+ },
106
+ updateInboxThreadState: async (input) => {
107
+ const parsedInput = UpdateInboxThreadStateInputSchema.parse(input);
108
+ return InboxWorkspaceStateResponseSchema.parse(await client.patch(`/v1/inbox/threads/${pathSegment(parsedInput.platform)}/${pathSegment(parsedInput.thread_id)}/state`, compactJsonObject([
109
+ ["archived", parsedInput.archived],
110
+ ["snoozed_until", parsedInput.snoozed_until],
111
+ ["clear_snooze", parsedInput.clear_snooze],
112
+ ["starred", parsedInput.starred],
113
+ ["read_state", parsedInput.read_state],
114
+ ["clear_read_state", parsedInput.clear_read_state],
115
+ ])));
116
+ },
117
+ sendInboxReply: async (input) => {
118
+ const parsedInput = SendInboxReplyInputSchema.parse(input);
119
+ return JsonObjectSchema.parse(await client.post(`/v1/inbox/threads/${pathSegment(parsedInput.platform)}/${pathSegment(parsedInput.thread_id)}/replies`, compactJsonObject([
120
+ ["subject", parsedInput.subject],
121
+ ["body_text", parsedInput.body_text],
122
+ ["attachments", parsedInput.attachments],
123
+ ["campaign_creator_id", parsedInput.campaign_creator_id],
124
+ ["idempotency_key", parsedInput.idempotency_key],
125
+ ])));
126
+ },
127
+ };
128
+ }
129
+ /** Register all Hyperstar workflow tools on an MCP server. */
130
+ export function registerHyperstarTools(server, client, options = {}) {
131
+ const handlers = createToolHandlers(client, options);
132
+ server.registerTool("hyperstar_whoami", {
133
+ title: "Hyperstar Whoami",
134
+ description: "Inspect the authenticated Hyperstar workspace and scopes.",
135
+ inputSchema: WhoamiInputSchema,
136
+ }, async () => toolResult(await handlers.hyperstarWhoami()));
137
+ server.registerTool("list_workspaces", {
138
+ title: "List Workspaces",
139
+ description: "List Hyperstar workspaces available to the CLI session.",
140
+ inputSchema: ListWorkspacesInputSchema,
141
+ }, async (input) => toolResult(await handlers.listWorkspaces(input)));
142
+ server.registerTool("select_workspace", {
143
+ title: "Select Workspace",
144
+ description: "Persist the Hyperstar workspace selected for CLI-authenticated tools.",
145
+ inputSchema: SelectWorkspaceInputSchema,
146
+ }, async (input) => toolResult(await handlers.selectWorkspace(input)));
147
+ server.registerTool("get_hyperstar_workflow_guide", {
148
+ title: "Get Hyperstar Workflow Guide",
149
+ description: "Return the recommended agent workflow sequence and send-safety notes.",
150
+ inputSchema: WorkflowGuideInputSchema,
151
+ }, async (input) => toolResult(await handlers.getHyperstarWorkflowGuide(input)));
152
+ server.registerTool("search_creators", {
153
+ title: "Search Creators",
154
+ description: "Create a creator search and return the first result page.",
155
+ inputSchema: SearchCreatorsInputSchema,
156
+ }, async (input) => toolResult(await handlers.searchCreators(input)));
157
+ server.registerTool("get_search_results", {
158
+ title: "Get Search Results",
159
+ description: "Page through results for an existing creator search.",
160
+ inputSchema: GetSearchResultsInputSchema,
161
+ }, async (input) => toolResult(await handlers.getSearchResults(input)));
162
+ server.registerTool("save_search_results_to_campaign", {
163
+ title: "Save Search Results To Campaign",
164
+ description: "Save selected or top-ranked creator search results to a campaign roster.",
165
+ inputSchema: SaveSearchResultsToCampaignInputSchema,
166
+ }, async (input) => toolResult(await handlers.saveSearchResultsToCampaign(input)));
167
+ server.registerTool("list_campaign_creators", {
168
+ title: "List Campaign Creators",
169
+ description: "List creators currently saved on a campaign roster.",
170
+ inputSchema: CampaignCreatorsInputSchema,
171
+ }, async (input) => toolResult(await handlers.listCampaignCreators(input)));
172
+ server.registerTool("check_bulk_email_readiness", {
173
+ title: "Check Bulk Email Readiness",
174
+ description: "Check campaign recipient readiness before bulk email.",
175
+ inputSchema: CheckBulkEmailReadinessInputSchema,
176
+ }, async (input) => toolResult(await handlers.checkBulkEmailReadiness(input)));
177
+ server.registerTool("start_bulk_email", {
178
+ title: "Start Bulk Email",
179
+ description: "REAL SEND: start a campaign bulk-email job with an explicit idempotency key.",
180
+ inputSchema: StartBulkEmailInputSchema,
181
+ }, async (input) => toolResult(await handlers.startBulkEmail(input)));
182
+ server.registerTool("get_bulk_email_job", {
183
+ title: "Get Bulk Email Job",
184
+ description: "Read campaign bulk-email job status.",
185
+ inputSchema: BulkEmailJobInputSchema,
186
+ }, async (input) => toolResult(await handlers.getBulkEmailJob(input)));
187
+ server.registerTool("list_inbox_threads", {
188
+ title: "List Inbox Threads",
189
+ description: "List Hyperstar inbox threads with common filters.",
190
+ inputSchema: ListInboxThreadsInputSchema,
191
+ }, async (input) => toolResult(await handlers.listInboxThreads(input)));
192
+ server.registerTool("get_inbox_aggregates", {
193
+ title: "Get Inbox Aggregates",
194
+ description: "Read aggregate counts for Hyperstar inbox filters.",
195
+ inputSchema: InboxFiltersInputSchema,
196
+ }, async (input) => toolResult(await handlers.getInboxAggregates(input)));
197
+ server.registerTool("update_inbox_thread_state", {
198
+ title: "Update Inbox Thread State",
199
+ description: "Archive, snooze, star, or set read state for one thread.",
200
+ inputSchema: UpdateInboxThreadStateInputSchema,
201
+ }, async (input) => toolResult(await handlers.updateInboxThreadState(input)));
202
+ server.registerTool("send_inbox_reply", {
203
+ title: "Send Inbox Reply",
204
+ description: "REAL SEND: send one reply to a Hyperstar inbox thread.",
205
+ inputSchema: SendInboxReplyInputSchema,
206
+ }, async (input) => toolResult(await handlers.sendInboxReply(input)));
207
+ }
208
+ /** Encode one dynamic route segment before interpolating it into a path. */
209
+ function pathSegment(value) {
210
+ const raw = String(value).trim();
211
+ if (raw.length === 0 || raw === "." || raw === "..") {
212
+ throw new Error("Hyperstar API path segment must be non-empty and safe");
213
+ }
214
+ return encodeURIComponent(raw);
215
+ }
216
+ /** Convert defined scalar and array inputs into URL query parameters. */
217
+ function queryFrom(input) {
218
+ const query = new URLSearchParams();
219
+ for (const [key, value] of Object.entries(input)) {
220
+ if (value === undefined) {
221
+ continue;
222
+ }
223
+ if (Array.isArray(value)) {
224
+ for (const item of value) {
225
+ query.append(key, String(item));
226
+ }
227
+ continue;
228
+ }
229
+ query.set(key, String(value));
230
+ }
231
+ return query;
232
+ }
233
+ /** Serialize campaign recipient selection without optional undefined fields. */
234
+ function campaignCreatorSelectionBody(selection) {
235
+ if (selection === undefined) {
236
+ return undefined;
237
+ }
238
+ return compactJsonObject([
239
+ ["workflow_filter", selection.workflow_filter],
240
+ ["outreach_stage", selection.outreach_stage],
241
+ ["platform", selection.platform],
242
+ ["country", selection.country],
243
+ ["has_video", selection.has_video],
244
+ ["source_type", selection.source_type],
245
+ ["search", selection.search],
246
+ ["excluded_ids", selection.excluded_ids],
247
+ ]);
248
+ }
249
+ /** Build a JSON object without retaining omitted optional fields. */
250
+ function compactJsonObject(entries) {
251
+ const output = {};
252
+ for (const [key, value] of entries) {
253
+ if (value !== undefined) {
254
+ output[key] = value;
255
+ }
256
+ }
257
+ return output;
258
+ }
259
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { CliWorkspaceSelection } from "./config.js";
2
+ import type { HyperstarClient, JsonObject } from "./http.js";
3
+ export type WorkspaceToolOptions = {
4
+ readonly workspaceSelection?: CliWorkspaceSelection;
5
+ };
6
+ /** List workspaces through the Product API workspace route. */
7
+ export declare function listAvailableWorkspaces(client: HyperstarClient): Promise<JsonObject>;
8
+ /** Persist a selected workspace after verifying the Product API lists it. */
9
+ export declare function selectAvailableWorkspace(client: HyperstarClient, organizationId: string, options?: WorkspaceToolOptions): Promise<JsonObject>;
10
+ /** Return the recommended Hyperstar agent workflow and send-safety notes. */
11
+ export declare function getHyperstarWorkflowGuide(options?: WorkspaceToolOptions): JsonObject;