@alpic-ai/api 0.0.0-dev.gdd3ad6d → 0.0.0-dev.gdda900d
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/dist/index.mjs +59 -10
- package/package.json +18 -2
package/dist/index.mjs
CHANGED
|
@@ -342,8 +342,14 @@ z.union([
|
|
|
342
342
|
protectedWithoutDiscoveryEnvironmentSchema
|
|
343
343
|
]);
|
|
344
344
|
const allowedPlatformSchema = platformSchema;
|
|
345
|
+
const playgroundModelSchema = z.enum([
|
|
346
|
+
"global.anthropic.claude-haiku-4-5-20251001-v1:0",
|
|
347
|
+
"global.anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
348
|
+
"openai.gpt-5.4",
|
|
349
|
+
"openai.gpt-5.5"
|
|
350
|
+
]);
|
|
345
351
|
const environmentDomainSchema = z.object({
|
|
346
|
-
|
|
352
|
+
name: z.string(),
|
|
347
353
|
status: z.enum([
|
|
348
354
|
"ongoing",
|
|
349
355
|
"deployed",
|
|
@@ -361,6 +367,7 @@ const environmentSchema$1 = z.object({
|
|
|
361
367
|
latestDeployment: deploymentSummarySchema.optional(),
|
|
362
368
|
openaiAppsChallenge: z.string().nullable().optional(),
|
|
363
369
|
isPlaygroundEnabled: z.boolean(),
|
|
370
|
+
playgroundModel: playgroundModelSchema,
|
|
364
371
|
isIpWhitelistEnabled: z.boolean(),
|
|
365
372
|
ipAllowlist: z.array(z.string()).nullable(),
|
|
366
373
|
allowedPlatforms: z.array(allowedPlatformSchema),
|
|
@@ -373,7 +380,8 @@ z.object({
|
|
|
373
380
|
sessionReplayEnabled: z.boolean(),
|
|
374
381
|
collectRequestPayload: z.boolean(),
|
|
375
382
|
collectResponsePayload: z.boolean(),
|
|
376
|
-
collectErrorMessage: z.boolean()
|
|
383
|
+
collectErrorMessage: z.boolean(),
|
|
384
|
+
collectUserData: z.boolean()
|
|
377
385
|
});
|
|
378
386
|
z.object({
|
|
379
387
|
id: z.string(),
|
|
@@ -508,15 +516,27 @@ z.object({
|
|
|
508
516
|
environments: z.array(environmentWithDomainsSchema),
|
|
509
517
|
productionEnvironment: environmentWithDomainsSchema.nullable()
|
|
510
518
|
});
|
|
519
|
+
const domainFailureReasonSchema = z.enum([
|
|
520
|
+
"caa",
|
|
521
|
+
"dns",
|
|
522
|
+
"invalid_domain",
|
|
523
|
+
"other"
|
|
524
|
+
]);
|
|
525
|
+
const projectDomainMappingSchema = z.object({
|
|
526
|
+
pathPrefix: z.string(),
|
|
527
|
+
environment: environmentSchema$1
|
|
528
|
+
});
|
|
511
529
|
z.object({
|
|
512
|
-
|
|
530
|
+
name: z.string(),
|
|
513
531
|
createdAt: z.coerce.date(),
|
|
514
532
|
status: z.enum([
|
|
515
533
|
"ongoing",
|
|
516
534
|
"deployed",
|
|
517
535
|
"failed"
|
|
518
536
|
]),
|
|
519
|
-
|
|
537
|
+
failureReason: domainFailureReasonSchema.nullable(),
|
|
538
|
+
environment: environmentSchema$1,
|
|
539
|
+
mappings: z.array(projectDomainMappingSchema)
|
|
520
540
|
});
|
|
521
541
|
const serverFieldsSchema$1 = z.object({
|
|
522
542
|
$schema: z.string(),
|
|
@@ -580,8 +600,9 @@ const positiveTestCaseSchema = z.object({
|
|
|
580
600
|
}).partial().describe("Each case: Scenario, User prompt, Tool triggered, Expected output.");
|
|
581
601
|
const screenshotEntrySchema = z.object({
|
|
582
602
|
prompt: z.string(),
|
|
583
|
-
url: z.url()
|
|
603
|
+
url: z.url()
|
|
584
604
|
}).describe("Each screenshot: the user prompt that produced it + the image URL.");
|
|
605
|
+
const screenshotDraftEntrySchema = screenshotEntrySchema.extend({ url: z.string() });
|
|
585
606
|
/** Accepts either a valid email or URL. */
|
|
586
607
|
const supportChannelSchema = z.string().refine((value) => z.email().safeParse(value).success || z.url().safeParse(value).success, { error: "Must be a valid email or URL" });
|
|
587
608
|
/** A URL field whose error spells out that the scheme is required. */
|
|
@@ -940,6 +961,17 @@ const chatgptSubmissionFormDataSchema = z.object({
|
|
|
940
961
|
allowedCountries: chatgptAllowedCountriesSchema.describe("Availability: all supported countries, or an allow-list / block-list of specific ones (ISO alpha-2)."),
|
|
941
962
|
releaseNotes: z.string().describe("Publicly displayed on the app details page.")
|
|
942
963
|
});
|
|
964
|
+
const chatgptSubmissionDraftSchema = chatgptSubmissionFormDataSchema.partial().extend({
|
|
965
|
+
tagline: z.string().optional(),
|
|
966
|
+
companyUrl: z.string().optional(),
|
|
967
|
+
supportChannel: z.string().optional(),
|
|
968
|
+
privacyPolicyUrl: z.string().optional(),
|
|
969
|
+
termsOfServiceUrl: z.string().optional(),
|
|
970
|
+
demoRecordingUrl: z.string().optional(),
|
|
971
|
+
serverUrl: z.string().optional(),
|
|
972
|
+
screenshots: z.array(screenshotDraftEntrySchema).optional(),
|
|
973
|
+
translations: z.array(chatgptTranslationSchema.extend({ tagline: z.string() })).optional()
|
|
974
|
+
});
|
|
943
975
|
chatgptSubmissionFormDataSchema.pick({
|
|
944
976
|
appName: true,
|
|
945
977
|
developerName: true,
|
|
@@ -1018,8 +1050,8 @@ phrases like 'The best MCP server for...'. Example: 'Manage tasks and projects i
|
|
|
1018
1050
|
description: z.string().max(2e3).describe(`A description of what your connector does and its key features, shown on the connector's detail page in
|
|
1019
1051
|
claude.ai. Write it from a user perspective and be specific. Max 2000 characters.`),
|
|
1020
1052
|
categories: z.array(claudeCategorySchema).max(5).describe(claudeCategoryDescription),
|
|
1021
|
-
iconUrl: z.url().optional().describe(`Optional custom icon
|
|
1022
|
-
|
|
1053
|
+
iconUrl: z.url().optional().describe(`Optional custom icon for the directory listing — a square SVG. By default the favicon from your MCP URL is used
|
|
1054
|
+
(recommended); upload a custom icon only to override it.`),
|
|
1023
1055
|
documentation: z.url().describe(`A public URL pointing to documentation that helps users understand and use your connector. Must be publicly
|
|
1024
1056
|
accessible without login. IT admins often review these when deciding whether to approve a server. Required to be live
|
|
1025
1057
|
by your publish date.`),
|
|
@@ -1027,6 +1059,8 @@ by your publish date.`),
|
|
|
1027
1059
|
used to notify you of security or compliance issues, so make sure it's actively monitored.`),
|
|
1028
1060
|
privacyPolicy: z.url().describe(`URL to your privacy policy. Mandatory and displayed in the directory listing. Must be publicly accessible and cover
|
|
1029
1061
|
what data you collect, how you use and store it, and whether you share it with third parties.`),
|
|
1062
|
+
screenshots: z.array(screenshotEntrySchema).optional().describe(`Carousel images shown on your connector's directory page (PNG). Each is paired with the user prompt that produced
|
|
1063
|
+
it. This is editable on the directory page only after the connector is submitted — optional here so you can prepare it.`),
|
|
1030
1064
|
primaryUseCases: z.string().describe(`Describe the main tasks users will accomplish with this connector, and include a few example prompts a user might
|
|
1031
1065
|
type. These may be shown publicly but are primarily used for internal review — reviewers test your server using them.`),
|
|
1032
1066
|
connectionRequirements: z.string().describe(`What accounts, permissions, or setup a user needs before connecting (e.g. 'Requires a paid Acme account with admin
|
|
@@ -1064,6 +1098,21 @@ fully populated account.`),
|
|
|
1064
1098
|
submission. Each is an attestation you are legally agreeing to by submitting.`),
|
|
1065
1099
|
additionalNotes: z.string().optional().describe("Anything else the review team should know about your connector. Optional.")
|
|
1066
1100
|
});
|
|
1101
|
+
const claudeSubmissionDraftSchema = claudeSubmissionFormDataSchema.partial().extend({
|
|
1102
|
+
serverUrl: z.string().optional(),
|
|
1103
|
+
name: z.string().optional(),
|
|
1104
|
+
slug: z.string().optional(),
|
|
1105
|
+
oneLiner: z.string().optional(),
|
|
1106
|
+
description: z.string().optional(),
|
|
1107
|
+
iconUrl: z.string().optional(),
|
|
1108
|
+
documentation: z.string().optional(),
|
|
1109
|
+
support: z.string().optional(),
|
|
1110
|
+
privacyPolicy: z.string().optional(),
|
|
1111
|
+
companyWebsite: z.string().optional(),
|
|
1112
|
+
primaryContactEmail: z.string().optional(),
|
|
1113
|
+
categories: z.array(claudeCategorySchema).optional(),
|
|
1114
|
+
screenshots: z.array(screenshotDraftEntrySchema).optional()
|
|
1115
|
+
});
|
|
1067
1116
|
claudeSubmissionFormDataSchema.pick({
|
|
1068
1117
|
serverUrl: true,
|
|
1069
1118
|
name: true,
|
|
@@ -1104,14 +1153,14 @@ const submissionMetaFieldsSchema = z.object({
|
|
|
1104
1153
|
});
|
|
1105
1154
|
const claudeSubmissionSchemaInternal = submissionMetaFieldsSchema.extend({
|
|
1106
1155
|
platform: z.literal("claudeai"),
|
|
1107
|
-
formData:
|
|
1156
|
+
formData: claudeSubmissionDraftSchema
|
|
1108
1157
|
});
|
|
1109
1158
|
const chatgptSubmissionSchemaInternal = submissionMetaFieldsSchema.extend({
|
|
1110
1159
|
platform: z.literal("chatgpt"),
|
|
1111
|
-
formData:
|
|
1160
|
+
formData: chatgptSubmissionDraftSchema
|
|
1112
1161
|
});
|
|
1113
1162
|
z.discriminatedUnion("platform", [claudeSubmissionSchemaInternal, chatgptSubmissionSchemaInternal]);
|
|
1114
|
-
z.union([
|
|
1163
|
+
z.union([claudeSubmissionDraftSchema, chatgptSubmissionDraftSchema]);
|
|
1115
1164
|
const subscriptionPlanSchema = z.enum([
|
|
1116
1165
|
"pro",
|
|
1117
1166
|
"business",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alpic-ai/api",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.gdda900d",
|
|
4
4
|
"description": "Contract for the Alpic API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -14,6 +14,22 @@
|
|
|
14
14
|
"files": [
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
|
+
"nx": {
|
|
18
|
+
"targets": {
|
|
19
|
+
"build": {
|
|
20
|
+
"cache": true,
|
|
21
|
+
"inputs": [
|
|
22
|
+
"{projectRoot}/src/**/*",
|
|
23
|
+
"{projectRoot}/tsdown.config.ts",
|
|
24
|
+
"{projectRoot}/tsconfig.json",
|
|
25
|
+
"^default"
|
|
26
|
+
],
|
|
27
|
+
"outputs": [
|
|
28
|
+
"{projectRoot}/dist"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
17
33
|
"author": "Alpic",
|
|
18
34
|
"license": "ISC",
|
|
19
35
|
"dependencies": {
|
|
@@ -38,7 +54,7 @@
|
|
|
38
54
|
"test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format",
|
|
39
55
|
"test:unit": "vitest run",
|
|
40
56
|
"test:format": "biome check --error-on-warnings .",
|
|
41
|
-
"test:type": "
|
|
57
|
+
"test:type": "tsgo --noEmit",
|
|
42
58
|
"publish:npm": "pnpm publish --tag \"${NPM_TAG}\" --access public --no-git-checks"
|
|
43
59
|
}
|
|
44
60
|
}
|