@alpic-ai/api 0.0.0-staging.gc50af01 → 0.0.0-staging.gc61d87f

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.d.mts CHANGED
@@ -29,7 +29,7 @@ declare const createEnvironmentContractV1: _$_orpc_contract0.ContractProcedureBu
29
29
  id: z.ZodString;
30
30
  name: z.ZodString;
31
31
  sourceBranch: z.ZodNullable<z.ZodString>;
32
- urls: z.ZodArray<z.ZodString>;
32
+ urls: z.ZodArray<z.ZodURL>;
33
33
  createdAt: z.ZodCoercedDate<unknown>;
34
34
  projectId: z.ZodString;
35
35
  }, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
@@ -165,7 +165,10 @@ declare const contract: {
165
165
  uploadUrl: z.ZodURL;
166
166
  token: z.ZodString;
167
167
  expiresAt: z.ZodCoercedDate<unknown>;
168
- }, z.core.$strip>, Record<never, never>, Record<never, never>>;
168
+ }, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
169
+ NOT_FOUND: {};
170
+ BAD_REQUEST: {};
171
+ }>, Record<never, never>>;
169
172
  };
170
173
  getLogs: {
171
174
  v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
@@ -196,7 +199,7 @@ declare const contract: {
196
199
  id: z.ZodString;
197
200
  name: z.ZodString;
198
201
  sourceBranch: z.ZodNullable<z.ZodString>;
199
- urls: z.ZodArray<z.ZodString>;
202
+ urls: z.ZodArray<z.ZodURL>;
200
203
  createdAt: z.ZodCoercedDate<unknown>;
201
204
  projectId: z.ZodString;
202
205
  }, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
@@ -365,6 +368,7 @@ declare const contract: {
365
368
  success: z.ZodLiteral<true>;
366
369
  }, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
367
370
  NOT_FOUND: {};
371
+ BAD_REQUEST: {};
368
372
  }>, Record<never, never>>;
369
373
  };
370
374
  };
@@ -593,7 +597,10 @@ declare const contract: {
593
597
  completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
594
598
  }, z.core.$strip>>;
595
599
  }, z.core.$strip>>;
596
- }, z.core.$strip>>, Record<never, never>, Record<never, never>>;
600
+ }, z.core.$strip>>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
601
+ NOT_FOUND: {};
602
+ BAD_REQUEST: {};
603
+ }>, Record<never, never>>;
597
604
  };
598
605
  create: {
599
606
  v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
@@ -737,7 +744,9 @@ declare const contract: {
737
744
  subdomain: z.ZodString;
738
745
  ticket: z.ZodString;
739
746
  tunnelHost: z.ZodString;
740
- }, z.core.$strip>, Record<never, never>, Record<never, never>>;
747
+ }, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
748
+ FORBIDDEN: {};
749
+ }>, Record<never, never>>;
741
750
  };
742
751
  };
743
752
  distribution: {
package/dist/index.mjs CHANGED
@@ -595,6 +595,71 @@ const chatgptCategorySchema = z.enum([
595
595
  ]);
596
596
  const chatgptAuthenticationSchema = z.enum(["No auth needed", "OAuth 2.0"]);
597
597
  const chatgptAllowedCountriesSchema = z.enum(["Allow all", "Restrict to specific countries"]);
598
+ const chatgptTranslationLocaleSchema = z.enum([
599
+ "am",
600
+ "ar",
601
+ "bg-BG",
602
+ "bn-BD",
603
+ "bs-BA",
604
+ "ca-ES",
605
+ "cs-CZ",
606
+ "da-DK",
607
+ "de-DE",
608
+ "el-GR",
609
+ "es-419",
610
+ "es-ES",
611
+ "et-EE",
612
+ "fi-FI",
613
+ "fr-CA",
614
+ "fr-FR",
615
+ "gu-IN",
616
+ "hi-IN",
617
+ "hr-HR",
618
+ "hu-HU",
619
+ "hy-AM",
620
+ "id-ID",
621
+ "is-IS",
622
+ "it-IT",
623
+ "ja-JP",
624
+ "ka-GE",
625
+ "kk",
626
+ "kn-IN",
627
+ "ko-KR",
628
+ "lt",
629
+ "lv-LV",
630
+ "mk-MK",
631
+ "ml",
632
+ "mn",
633
+ "mr-IN",
634
+ "ms-MY",
635
+ "my-MM",
636
+ "nb-NO",
637
+ "nl-NL",
638
+ "pa",
639
+ "pl-PL",
640
+ "pt-BR",
641
+ "pt-PT",
642
+ "ro-RO",
643
+ "ru-RU",
644
+ "sk-SK",
645
+ "sl-SI",
646
+ "so-SO",
647
+ "sq-AL",
648
+ "sr-RS",
649
+ "sv-SE",
650
+ "sw-TZ",
651
+ "ta-IN",
652
+ "te-IN",
653
+ "th-TH",
654
+ "tl",
655
+ "tr-TR",
656
+ "uk-UA",
657
+ "ur",
658
+ "vi-VN",
659
+ "zh-CN",
660
+ "zh-HK",
661
+ "zh-TW"
662
+ ]);
598
663
  const negativeTestCaseSchema = z.object({
599
664
  scenario: z.string(),
600
665
  userPrompt: z.string()
@@ -605,11 +670,19 @@ const chatgptToolJustificationSchema = z.object({
605
670
  openWorldJustification: z.string(),
606
671
  destructiveJustification: z.string()
607
672
  }).describe("Per-tool justification of each MCP annotation value (one sentence per hint).");
673
+ /**
674
+ * Base copy fields, defined once and reused by both the submission form and per-locale
675
+ * translations so the constraints (tagline ≤ 30 chars) never drift. The translation generation
676
+ * path wraps these in {@link clampStringField} since the LLM tends to overshoot the limit.
677
+ */
678
+ const chatgptTaglineSchema = z.string().max(30);
679
+ const chatgptDescriptionSchema = z.string();
608
680
  const chatgptTranslationSchema = z.object({
609
- locale: z.string(),
610
- tagline: z.string().optional(),
611
- description: z.string().optional()
681
+ locale: chatgptTranslationLocaleSchema,
682
+ tagline: chatgptTaglineSchema,
683
+ description: chatgptDescriptionSchema
612
684
  }).describe("Locale-scoped override for tagline + description. English (US) is the default.");
685
+ chatgptTranslationSchema.extend({ tagline: clampStringField(chatgptTaglineSchema) });
613
686
  /**
614
687
  * Field order mirrors the ChatGPT (OpenAI) submission spreadsheet, grouped by section.
615
688
  * When adding/removing/reordering fields, keep this in sync with the sheet.
@@ -618,8 +691,8 @@ const chatgptSubmissionFormDataSchema = z.object({
618
691
  logoLight: z.string().describe("Logo icon for light mode. Square PNG, no borders or rounded corners (clients apply circular cropping)."),
619
692
  logoDark: z.string().optional().describe("Optional dark-mode logo icon. Square PNG, same specs as the light icon. Leave empty if the light icon also works on dark backgrounds."),
620
693
  appName: z.string().describe("The name users will see in ChatGPT and in the Apps Directory."),
621
- tagline: z.string().max(30).describe("Plain-language phrase focused on function and user value. 30 chars max."),
622
- description: z.string().describe("Clear, engaging description highlighting what the app does and why people will love it. Appears publicly on the directory page."),
694
+ tagline: chatgptTaglineSchema.describe("Plain-language phrase focused on function and user value. 30 chars max."),
695
+ description: chatgptDescriptionSchema.describe("Clear, engaging description highlighting what the app does and why people will love it. Appears publicly on the directory page."),
623
696
  category: chatgptCategorySchema.describe("Category from the OpenAI taxonomy."),
624
697
  developerName: z.string().describe("Developer name shown publicly on the app's directory page."),
625
698
  companyUrl: z.url().describe("Your company's main website URL."),
@@ -1040,7 +1113,7 @@ const createEnvironmentContractV1 = oc.route({
1040
1113
  id: z.string(),
1041
1114
  name: z.string(),
1042
1115
  sourceBranch: z.string().nullable().describe("The branch used to build the environment"),
1043
- urls: z.array(z.string().url()).describe("The URLs of the MCP server"),
1116
+ urls: z.array(z.url()).describe("The URLs of the MCP server"),
1044
1117
  createdAt: z.coerce.date(),
1045
1118
  projectId: z.string().describe("The ID of the project the environment belongs to")
1046
1119
  }));
@@ -1116,6 +1189,9 @@ const listProjectsContractV1 = oc.route({
1116
1189
  description: "List all projects for a team",
1117
1190
  tags: ["projects"],
1118
1191
  successDescription: "The list of projects"
1192
+ }).errors({
1193
+ NOT_FOUND: {},
1194
+ BAD_REQUEST: {}
1119
1195
  }).input(z.object({ teamId: z.string().optional() }).optional()).output(z.array(projectOutputSchema));
1120
1196
  const createProjectContractV1 = oc.route({
1121
1197
  path: "/v1/projects",
@@ -1211,7 +1287,10 @@ const deleteEnvironmentVariableContractV1 = oc.route({
1211
1287
  description: "Delete an environment variable by ID",
1212
1288
  tags: ["environments"],
1213
1289
  successDescription: "The environment variable has been deleted successfully"
1214
- }).errors({ NOT_FOUND: {} }).input(z.object({ environmentVariableId: z.string().describe("The ID of the environment variable") })).output(z.object({ success: z.literal(true) }));
1290
+ }).errors({
1291
+ NOT_FOUND: {},
1292
+ BAD_REQUEST: {}
1293
+ }).input(z.object({ environmentVariableId: z.string().describe("The ID of the environment variable") })).output(z.object({ success: z.literal(true) }));
1215
1294
  const deleteProjectContractV1 = oc.route({
1216
1295
  path: "/v1/projects/{projectId}",
1217
1296
  method: "DELETE",
@@ -1256,6 +1335,9 @@ const uploadDeploymentArtifactContractV1 = oc.route({
1256
1335
  description: "Return a presigned S3 URL to upload a deployment artifact",
1257
1336
  tags: ["deployments"],
1258
1337
  successDescription: "The presigned upload URL has been generated successfully"
1338
+ }).errors({
1339
+ NOT_FOUND: {},
1340
+ BAD_REQUEST: {}
1259
1341
  }).input(z.object({ teamId: z.string().optional() }).optional()).output(z.object({
1260
1342
  uploadUrl: z.url().describe("Presigned S3 URL to upload the source archive with HTTP PUT"),
1261
1343
  token: z.string().describe("Token to identify the source archive"),
@@ -1429,7 +1511,7 @@ const getTunnelTicketContractV1 = oc.route({
1429
1511
  description: "Get a signed ticket for establishing a tunnel connection. Requires user authentication (API keys are not supported).",
1430
1512
  tags: ["tunnels"],
1431
1513
  successDescription: "The tunnel ticket"
1432
- }).output(z.object({
1514
+ }).errors({ FORBIDDEN: {} }).output(z.object({
1433
1515
  subdomain: z.string().describe("The subdomain assigned to the user"),
1434
1516
  ticket: z.string().describe("The signed tunnel ticket"),
1435
1517
  tunnelHost: z.string().describe("The tunnel host to connect to")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alpic-ai/api",
3
- "version": "0.0.0-staging.gc50af01",
3
+ "version": "0.0.0-staging.gc61d87f",
4
4
  "description": "Contract for the Alpic API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",