@alpic-ai/api 0.0.0-dev.gf638a1b → 0.0.0-dev.gf754aa0

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
@@ -1,6 +1,5 @@
1
1
  import { z } from "zod";
2
2
  import { InferContractRouterInputs, InferContractRouterOutputs } from "@orpc/contract";
3
-
4
3
  //#region src/api.contract.d.ts
5
4
  type ApiContext = {
6
5
  request: Request & {
@@ -225,6 +224,17 @@ declare const contract: {
225
224
  v1: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
226
225
  environmentId: z.ZodString;
227
226
  token: z.ZodOptional<z.ZodString>;
227
+ settings: z.ZodOptional<z.ZodObject<{
228
+ installCommand: z.ZodOptional<z.ZodString>;
229
+ buildCommand: z.ZodOptional<z.ZodString>;
230
+ buildOutputDir: z.ZodOptional<z.ZodString>;
231
+ startCommand: z.ZodOptional<z.ZodString>;
232
+ transport: z.ZodEnum<{
233
+ stdio: "stdio";
234
+ sse: "sse";
235
+ streamablehttp: "streamablehttp";
236
+ }>;
237
+ }, z.core.$strip>>;
228
238
  }, z.core.$strip>, z.ZodObject<{
229
239
  id: z.ZodString;
230
240
  status: z.ZodEnum<{
package/dist/index.mjs CHANGED
@@ -600,8 +600,9 @@ const positiveTestCaseSchema = z.object({
600
600
  }).partial().describe("Each case: Scenario, User prompt, Tool triggered, Expected output.");
601
601
  const screenshotEntrySchema = z.object({
602
602
  prompt: z.string(),
603
- url: z.url().or(z.literal(""))
603
+ url: z.url()
604
604
  }).describe("Each screenshot: the user prompt that produced it + the image URL.");
605
+ const screenshotDraftEntrySchema = screenshotEntrySchema.extend({ url: z.string() });
605
606
  /** Accepts either a valid email or URL. */
606
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" });
607
608
  /** A URL field whose error spells out that the scheme is required. */
@@ -960,6 +961,17 @@ const chatgptSubmissionFormDataSchema = z.object({
960
961
  allowedCountries: chatgptAllowedCountriesSchema.describe("Availability: all supported countries, or an allow-list / block-list of specific ones (ISO alpha-2)."),
961
962
  releaseNotes: z.string().describe("Publicly displayed on the app details page.")
962
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
+ });
963
975
  chatgptSubmissionFormDataSchema.pick({
964
976
  appName: true,
965
977
  developerName: true,
@@ -1086,6 +1098,21 @@ fully populated account.`),
1086
1098
  submission. Each is an attestation you are legally agreeing to by submitting.`),
1087
1099
  additionalNotes: z.string().optional().describe("Anything else the review team should know about your connector. Optional.")
1088
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
+ });
1089
1116
  claudeSubmissionFormDataSchema.pick({
1090
1117
  serverUrl: true,
1091
1118
  name: true,
@@ -1126,14 +1153,14 @@ const submissionMetaFieldsSchema = z.object({
1126
1153
  });
1127
1154
  const claudeSubmissionSchemaInternal = submissionMetaFieldsSchema.extend({
1128
1155
  platform: z.literal("claudeai"),
1129
- formData: claudeSubmissionFormDataSchema.partial()
1156
+ formData: claudeSubmissionDraftSchema
1130
1157
  });
1131
1158
  const chatgptSubmissionSchemaInternal = submissionMetaFieldsSchema.extend({
1132
1159
  platform: z.literal("chatgpt"),
1133
- formData: chatgptSubmissionFormDataSchema.partial()
1160
+ formData: chatgptSubmissionDraftSchema
1134
1161
  });
1135
1162
  z.discriminatedUnion("platform", [claudeSubmissionSchemaInternal, chatgptSubmissionSchemaInternal]);
1136
- z.union([claudeSubmissionFormDataSchema.partial(), chatgptSubmissionFormDataSchema.partial()]);
1163
+ z.union([claudeSubmissionDraftSchema, chatgptSubmissionDraftSchema]);
1137
1164
  const subscriptionPlanSchema = z.enum([
1138
1165
  "pro",
1139
1166
  "business",
@@ -1517,7 +1544,8 @@ const deployEnvironmentContractV1 = oc.route({
1517
1544
  BAD_REQUEST: {}
1518
1545
  }).input(z.object({
1519
1546
  environmentId: z.string().describe("The ID of the environment to deploy"),
1520
- token: z.string().describe("The token to identify the source archive").optional()
1547
+ token: z.string().describe("The token to identify the source archive").optional(),
1548
+ settings: buildSettingsSchema.extend({ transport: transportSchema }).optional().describe("Project settings detected by the client from the source. When provided, the server skips downloading and extracting the source archive to detect them.")
1521
1549
  })).output(deploymentSchema);
1522
1550
  const uploadDeploymentArtifactContractV1 = oc.route({
1523
1551
  path: "/v1/deployments/upload",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alpic-ai/api",
3
- "version": "0.0.0-dev.gf638a1b",
3
+ "version": "0.0.0-dev.gf754aa0",
4
4
  "description": "Contract for the Alpic API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",
@@ -14,22 +14,38 @@
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": {
20
- "@orpc/contract": "^1.14.6",
36
+ "@orpc/contract": "^1.14.7",
21
37
  "ms": "^2.1.3",
22
38
  "zod": "^4.4.3"
23
39
  },
24
40
  "devDependencies": {
25
- "@orpc/openapi": "^1.14.6",
26
- "@orpc/zod": "^1.14.6",
41
+ "@orpc/openapi": "^1.14.7",
42
+ "@orpc/zod": "^1.14.7",
27
43
  "@total-typescript/tsconfig": "^1.0.4",
28
44
  "@types/ms": "^2.1.0",
29
45
  "shx": "^0.4.0",
30
- "tsdown": "^0.22.3",
46
+ "tsdown": "^0.22.5",
31
47
  "typescript": "^6.0.3",
32
- "vitest": "^4.1.9",
48
+ "vitest": "^4.1.10",
33
49
  "@alpic-ai/domains": "0.0.0"
34
50
  },
35
51
  "scripts": {
@@ -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": "tsc --noEmit",
57
+ "test:type": "tsgo --noEmit",
42
58
  "publish:npm": "pnpm publish --tag \"${NPM_TAG}\" --access public --no-git-checks"
43
59
  }
44
60
  }