@pdfvector/instance-contract 0.0.39 → 0.0.41

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.
@@ -3,5 +3,9 @@ import * as contract from "./router";
3
3
  export { contract };
4
4
  export type ContractInputs = InferContractRouterInputs<typeof contract>;
5
5
  export type ContractOutputs = InferContractRouterOutputs<typeof contract>;
6
+ import { createORPCClient, ORPCError, onError } from "@orpc/client";
7
+ import { RPCLink } from "@orpc/client/fetch";
8
+ export type { ContractRouterClient } from "@orpc/contract";
6
9
  export * from "./pdfvector-model";
7
10
  export * from "./pdfvector-model-schema";
11
+ export { createORPCClient, ORPCError, onError, RPCLink };
package/.tsc/lib/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  import * as contract from "./router";
2
2
  export { contract };
3
+ import { createORPCClient, ORPCError, onError } from "@orpc/client";
4
+ import { RPCLink } from "@orpc/client/fetch";
3
5
  export * from "./pdfvector-model";
4
6
  export * from "./pdfvector-model-schema";
7
+ export { createORPCClient, ORPCError, onError, RPCLink };
@@ -0,0 +1,2 @@
1
+ import { z } from "zod";
2
+ export declare const jsonSchemaInput: z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodPipe<z.ZodString, z.ZodTransform<Record<string, unknown>, string>>]>;
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ export const jsonSchemaInput = z.union([
3
+ z.record(z.string(), z.unknown()),
4
+ z.string().transform((str, ctx) => {
5
+ try {
6
+ const trimmed = str.startsWith('"') && str.endsWith('"') ? str.slice(1, -1) : str;
7
+ const parsed = JSON.parse(trimmed);
8
+ if (typeof parsed !== "object" || parsed === null) {
9
+ ctx.addIssue({
10
+ code: "custom",
11
+ message: "Schema must be a JSON object",
12
+ });
13
+ return z.NEVER;
14
+ }
15
+ return parsed;
16
+ }
17
+ catch {
18
+ ctx.addIssue({
19
+ code: "custom",
20
+ message: "Invalid JSON string for schema",
21
+ });
22
+ return z.NEVER;
23
+ }
24
+ }),
25
+ ]);
@@ -23,7 +23,16 @@ export declare const fetch: import("@orpc/contract").ContractProcedureBuilderWit
23
23
  }, z.core.$strip>, z.ZodObject<{
24
24
  results: z.ZodArray<z.ZodObject<{
25
25
  id: z.ZodString;
26
- detectedProvider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ detectedProvider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
27
+ "semantic-scholar": "semantic-scholar";
28
+ pubmed: "pubmed";
29
+ arxiv: "arxiv";
30
+ "google-scholar": "google-scholar";
31
+ eric: "eric";
32
+ "europe-pmc": "europe-pmc";
33
+ openalex: "openalex";
34
+ crossref: "crossref";
35
+ }>>>;
27
36
  doi: z.ZodOptional<z.ZodNullable<z.ZodString>>;
28
37
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
29
38
  url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -38,7 +47,16 @@ export declare const fetch: import("@orpc/contract").ContractProcedureBuilderWit
38
47
  totalReferences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
39
48
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
49
  pdfURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
- provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ provider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
51
+ "semantic-scholar": "semantic-scholar";
52
+ pubmed: "pubmed";
53
+ arxiv: "arxiv";
54
+ "google-scholar": "google-scholar";
55
+ eric: "eric";
56
+ "europe-pmc": "europe-pmc";
57
+ openalex: "openalex";
58
+ crossref: "crossref";
59
+ }>>>;
42
60
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
43
61
  }, z.core.$strip>>;
44
62
  errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
@@ -1,14 +1,14 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { academicCreditCosts } from "@pdfvector/util";
3
3
  import { z } from "zod";
4
+ import { providerSchema } from "./provider";
4
5
  const authorSchema = z.object({
5
6
  name: z.string(),
6
7
  url: z.string().nullish(),
7
8
  });
8
9
  const publicationSchema = z.object({
9
10
  id: z.string().describe("Original input identifier"),
10
- detectedProvider: z
11
- .string()
11
+ detectedProvider: providerSchema
12
12
  .nullish()
13
13
  .describe("Provider that returned this result"),
14
14
  doi: z.string().nullish(),
@@ -22,7 +22,7 @@ const publicationSchema = z.object({
22
22
  totalReferences: z.number().nullish(),
23
23
  abstract: z.string().nullish(),
24
24
  pdfURL: z.string().nullish(),
25
- provider: z.string().nullish(),
25
+ provider: providerSchema.nullish(),
26
26
  providerData: z.record(z.string(), z.unknown()).nullish(),
27
27
  });
28
28
  const fetchErrorSchema = z.object({
@@ -49,7 +49,16 @@ export declare const findCitations: import("@orpc/contract").ContractProcedureBu
49
49
  totalReferences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
50
50
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
51
  pdfURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
- provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
+ provider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
53
+ "semantic-scholar": "semantic-scholar";
54
+ pubmed: "pubmed";
55
+ arxiv: "arxiv";
56
+ "google-scholar": "google-scholar";
57
+ eric: "eric";
58
+ "europe-pmc": "europe-pmc";
59
+ openalex: "openalex";
60
+ crossref: "crossref";
61
+ }>>>;
53
62
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
54
63
  }, z.core.$strip>>;
55
64
  }, z.core.$strip>>;
@@ -1,18 +1,7 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { academicCreditCosts } from "@pdfvector/util";
3
3
  import { z } from "zod";
4
- const providerSchema = z.enum([
5
- "semantic-scholar",
6
- "pubmed",
7
- "arxiv",
8
- "google-scholar",
9
- "eric",
10
- "europe-pmc",
11
- "openalex",
12
- "crossref",
13
- ], {
14
- message: "Invalid provider. Must be one of: semantic-scholar, pubmed, arxiv, google-scholar, eric, europe-pmc, openalex, crossref",
15
- });
4
+ import { providerSchema } from "./provider";
16
5
  const authorSchema = z.object({
17
6
  name: z.string(),
18
7
  url: z.string().nullish(),
@@ -30,7 +19,7 @@ const scoredPublicationSchema = z.object({
30
19
  totalReferences: z.number().nullish(),
31
20
  abstract: z.string().nullish(),
32
21
  pdfURL: z.string().nullish(),
33
- provider: z.string().nullish(),
22
+ provider: providerSchema.nullish(),
34
23
  providerData: z.record(z.string(), z.unknown()).nullish(),
35
24
  });
36
25
  const sentenceCitationSchema = z.object({
@@ -40,7 +40,16 @@ export declare const paperGraph: import("@orpc/contract").ContractProcedureBuild
40
40
  totalReferences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
41
41
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
42
42
  pdfURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
- provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
+ provider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
44
+ "semantic-scholar": "semantic-scholar";
45
+ pubmed: "pubmed";
46
+ arxiv: "arxiv";
47
+ "google-scholar": "google-scholar";
48
+ eric: "eric";
49
+ "europe-pmc": "europe-pmc";
50
+ openalex: "openalex";
51
+ crossref: "crossref";
52
+ }>>>;
44
53
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
45
54
  }, z.core.$strip>;
46
55
  citations: z.ZodArray<z.ZodObject<{
@@ -58,7 +67,16 @@ export declare const paperGraph: import("@orpc/contract").ContractProcedureBuild
58
67
  totalReferences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
59
68
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
69
  pdfURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
61
- provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
70
+ provider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
71
+ "semantic-scholar": "semantic-scholar";
72
+ pubmed: "pubmed";
73
+ arxiv: "arxiv";
74
+ "google-scholar": "google-scholar";
75
+ eric: "eric";
76
+ "europe-pmc": "europe-pmc";
77
+ openalex: "openalex";
78
+ crossref: "crossref";
79
+ }>>>;
62
80
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
63
81
  }, z.core.$strip>>;
64
82
  references: z.ZodArray<z.ZodObject<{
@@ -76,7 +94,16 @@ export declare const paperGraph: import("@orpc/contract").ContractProcedureBuild
76
94
  totalReferences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
77
95
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
78
96
  pdfURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
- provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
+ provider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
98
+ "semantic-scholar": "semantic-scholar";
99
+ pubmed: "pubmed";
100
+ arxiv: "arxiv";
101
+ "google-scholar": "google-scholar";
102
+ eric: "eric";
103
+ "europe-pmc": "europe-pmc";
104
+ openalex: "openalex";
105
+ crossref: "crossref";
106
+ }>>>;
80
107
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
81
108
  }, z.core.$strip>>;
82
109
  totalCitations: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -1,6 +1,7 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { academicCreditCosts } from "@pdfvector/util";
3
3
  import { z } from "zod";
4
+ import { providerSchema } from "./provider";
4
5
  const authorSchema = z.object({
5
6
  name: z.string(),
6
7
  url: z.string().nullish(),
@@ -17,7 +18,7 @@ const publicationSchema = z.object({
17
18
  totalReferences: z.number().nullish(),
18
19
  abstract: z.string().nullish(),
19
20
  pdfURL: z.string().nullish(),
20
- provider: z.string().nullish(),
21
+ provider: providerSchema.nullish(),
21
22
  providerData: z.record(z.string(), z.unknown()).nullish(),
22
23
  });
23
24
  const requestExamples = {
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ export declare const providerSchema: z.ZodEnum<{
3
+ "semantic-scholar": "semantic-scholar";
4
+ pubmed: "pubmed";
5
+ arxiv: "arxiv";
6
+ "google-scholar": "google-scholar";
7
+ eric: "eric";
8
+ "europe-pmc": "europe-pmc";
9
+ openalex: "openalex";
10
+ crossref: "crossref";
11
+ }>;
12
+ export declare const grantProviderSchema: z.ZodEnum<{
13
+ "grants-gov": "grants-gov";
14
+ "nih-reporter": "nih-reporter";
15
+ cordis: "cordis";
16
+ ukri: "ukri";
17
+ }>;
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export const providerSchema = z.enum([
3
+ "semantic-scholar",
4
+ "pubmed",
5
+ "arxiv",
6
+ "google-scholar",
7
+ "eric",
8
+ "europe-pmc",
9
+ "openalex",
10
+ "crossref",
11
+ ], {
12
+ message: "Invalid provider. Must be one of: semantic-scholar, pubmed, arxiv, google-scholar, eric, europe-pmc, openalex, crossref",
13
+ });
14
+ export const grantProviderSchema = z.enum(["grants-gov", "nih-reporter", "cordis", "ukri"], {
15
+ message: "Invalid provider. Must be one of: grants-gov, nih-reporter, cordis, ukri",
16
+ });
@@ -69,7 +69,12 @@ export declare const searchGrants: import("@orpc/contract").ContractProcedureBui
69
69
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
70
70
  }, z.core.$strip>>;
71
71
  errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
72
- provider: z.ZodString;
72
+ provider: z.ZodEnum<{
73
+ "grants-gov": "grants-gov";
74
+ "nih-reporter": "nih-reporter";
75
+ cordis: "cordis";
76
+ ukri: "ukri";
77
+ }>;
73
78
  message: z.ZodString;
74
79
  code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
75
80
  details: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -1,9 +1,7 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { academicCreditCosts } from "@pdfvector/util";
3
3
  import { z } from "zod";
4
- const grantProviderSchema = z.enum(["grants-gov", "nih-reporter", "cordis", "ukri"], {
5
- message: "Invalid provider. Must be one of: grants-gov, nih-reporter, cordis, ukri",
6
- });
4
+ import { grantProviderSchema } from "./provider";
7
5
  const grantSchema = z.object({
8
6
  sourceId: z.string().nullish(),
9
7
  title: z.string().nullish(),
@@ -27,7 +25,7 @@ const grantSchema = z.object({
27
25
  providerData: z.record(z.string(), z.unknown()).nullish(),
28
26
  });
29
27
  const providerErrorSchema = z.object({
30
- provider: z.string(),
28
+ provider: grantProviderSchema,
31
29
  message: z.string(),
32
30
  code: z.string().nullish(),
33
31
  details: z.record(z.string(), z.unknown()).nullish(),
@@ -64,7 +64,16 @@ export declare const search: import("@orpc/contract").ContractProcedureBuilderWi
64
64
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
65
65
  }, z.core.$strip>>;
66
66
  errors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
67
- provider: z.ZodString;
67
+ provider: z.ZodEnum<{
68
+ "semantic-scholar": "semantic-scholar";
69
+ pubmed: "pubmed";
70
+ arxiv: "arxiv";
71
+ "google-scholar": "google-scholar";
72
+ eric: "eric";
73
+ "europe-pmc": "europe-pmc";
74
+ openalex: "openalex";
75
+ crossref: "crossref";
76
+ }>;
68
77
  message: z.ZodString;
69
78
  code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
70
79
  details: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -1,18 +1,7 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { academicCreditCosts } from "@pdfvector/util";
3
3
  import { z } from "zod";
4
- const providerSchema = z.enum([
5
- "semantic-scholar",
6
- "pubmed",
7
- "arxiv",
8
- "google-scholar",
9
- "eric",
10
- "europe-pmc",
11
- "openalex",
12
- "crossref",
13
- ], {
14
- message: "Invalid provider. Must be one of: semantic-scholar, pubmed, arxiv, google-scholar, eric, europe-pmc, openalex, crossref",
15
- });
4
+ import { providerSchema } from "./provider";
16
5
  const authorSchema = z.object({
17
6
  name: z.string(),
18
7
  url: z.string().nullish(),
@@ -33,7 +22,7 @@ const publicationSchema = z.object({
33
22
  providerData: z.record(z.string(), z.unknown()).nullish(),
34
23
  });
35
24
  const providerErrorSchema = z.object({
36
- provider: z.string(),
25
+ provider: providerSchema,
37
26
  message: z.string(),
38
27
  code: z.string().nullish(),
39
28
  details: z.record(z.string(), z.unknown()).nullish(),
@@ -38,7 +38,16 @@ export declare const similarPapers: import("@orpc/contract").ContractProcedureBu
38
38
  totalReferences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
39
39
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
40
  pdfURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
- provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
+ provider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
42
+ "semantic-scholar": "semantic-scholar";
43
+ pubmed: "pubmed";
44
+ arxiv: "arxiv";
45
+ "google-scholar": "google-scholar";
46
+ eric: "eric";
47
+ "europe-pmc": "europe-pmc";
48
+ openalex: "openalex";
49
+ crossref: "crossref";
50
+ }>>>;
42
51
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
43
52
  }, z.core.$strip>;
44
53
  results: z.ZodArray<z.ZodObject<{
@@ -57,7 +66,16 @@ export declare const similarPapers: import("@orpc/contract").ContractProcedureBu
57
66
  totalReferences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
58
67
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
68
  pdfURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
- provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
69
+ provider: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
70
+ "semantic-scholar": "semantic-scholar";
71
+ pubmed: "pubmed";
72
+ arxiv: "arxiv";
73
+ "google-scholar": "google-scholar";
74
+ eric: "eric";
75
+ "europe-pmc": "europe-pmc";
76
+ openalex: "openalex";
77
+ crossref: "crossref";
78
+ }>>>;
61
79
  providerData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
62
80
  }, z.core.$strip>;
63
81
  similarity: z.ZodNumber;
@@ -1,6 +1,7 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { academicCreditCosts } from "@pdfvector/util";
3
3
  import { z } from "zod";
4
+ import { providerSchema } from "./provider";
4
5
  const authorSchema = z.object({
5
6
  name: z.string(),
6
7
  url: z.string().nullish(),
@@ -17,7 +18,7 @@ const publicationSchema = z.object({
17
18
  totalReferences: z.number().nullish(),
18
19
  abstract: z.string().nullish(),
19
20
  pdfURL: z.string().nullish(),
20
- provider: z.string().nullish(),
21
+ provider: providerSchema.nullish(),
21
22
  providerData: z.record(z.string(), z.unknown()).nullish(),
22
23
  });
23
24
  const similarPaperSchema = z.object({
@@ -1,5 +1,6 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
+ import { jsonSchemaInput } from "../../json-schema-input";
3
4
  import { pdfvectorModelSchema } from "../../pdfvector-model-schema";
4
5
  import { outputExtractModelDescription, specializedExtractModelDescription, supportedFileFormatsDescription, supportedFileMimeErrorMessage, supportedFileMimes, supportedFileTypesLong, } from "../../supported-mimes";
5
6
  import { getDefaultSpec } from "./get-default-spec";
@@ -24,32 +25,7 @@ const extractInputSchema = z.object({
24
25
  .string()
25
26
  .min(4, "prompt must be at least 4 characters")
26
27
  .describe("The prompt instructing the AI how to extract data from the bank statement"),
27
- schema: z
28
- .union([
29
- z.record(z.string(), z.unknown()),
30
- z.string().transform((str, ctx) => {
31
- try {
32
- const trimmed = str.startsWith('"') && str.endsWith('"') ? str.slice(1, -1) : str;
33
- const parsed = JSON.parse(trimmed);
34
- if (typeof parsed !== "object" || parsed === null) {
35
- ctx.addIssue({
36
- code: "custom",
37
- message: "Schema must be a JSON object",
38
- });
39
- return z.NEVER;
40
- }
41
- return parsed;
42
- }
43
- catch {
44
- ctx.addIssue({
45
- code: "custom",
46
- message: "Invalid JSON string for schema",
47
- });
48
- return z.NEVER;
49
- }
50
- }),
51
- ])
52
- .describe("JSON Schema describing the structure of the data to extract from the bank statement. Can be a JSON object or a JSON string."),
28
+ schema: jsonSchemaInput.describe("JSON Schema describing the structure of the data to extract from the bank statement. Can be a JSON object or a JSON string."),
53
29
  model: specializedModelSchema.describe(specializedExtractModelDescription),
54
30
  callback: z
55
31
  .object({
@@ -1,5 +1,6 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
+ import { jsonSchemaInput } from "../../json-schema-input";
3
4
  import { pdfvectorModelSchema } from "../../pdfvector-model-schema";
4
5
  import { documentExtractModelDescription, outputExtractModelDescription, supportedFileFormatsDescription, supportedFileMimeErrorMessage, supportedFileMimes, supportedFileTypesLong, } from "../../supported-mimes";
5
6
  import { getDefaultSpec } from "./get-default-spec";
@@ -21,33 +22,7 @@ const extractInputSchema = z.object({
21
22
  .string()
22
23
  .min(4, "prompt must be at least 4 characters")
23
24
  .describe("The prompt instructing the AI how to extract data from the document"),
24
- schema: z
25
- .union([
26
- z.record(z.string(), z.unknown()),
27
- z.string().transform((str, ctx) => {
28
- try {
29
- // Strip surrounding quotes added by form-data clients
30
- const trimmed = str.startsWith('"') && str.endsWith('"') ? str.slice(1, -1) : str;
31
- const parsed = JSON.parse(trimmed);
32
- if (typeof parsed !== "object" || parsed === null) {
33
- ctx.addIssue({
34
- code: "custom",
35
- message: "Schema must be a JSON object",
36
- });
37
- return z.NEVER;
38
- }
39
- return parsed;
40
- }
41
- catch {
42
- ctx.addIssue({
43
- code: "custom",
44
- message: "Invalid JSON string for schema",
45
- });
46
- return z.NEVER;
47
- }
48
- }),
49
- ])
50
- .describe("JSON Schema describing the structure of the data to extract from the document. Can be a JSON object or a JSON string."),
25
+ schema: jsonSchemaInput.describe("JSON Schema describing the structure of the data to extract from the document. Can be a JSON object or a JSON string."),
51
26
  model: z
52
27
  .enum(["auto", ...pdfvectorModelSchema.options])
53
28
  .optional()
@@ -1,5 +1,6 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
+ import { jsonSchemaInput } from "../../json-schema-input";
3
4
  import { pdfvectorModelSchema } from "../../pdfvector-model-schema";
4
5
  import { outputExtractModelDescription, specializedExtractModelDescription, supportedFileFormatsDescription, supportedFileMimeErrorMessage, supportedFileMimes, supportedFileTypesLong, } from "../../supported-mimes";
5
6
  import { getDefaultSpec } from "./get-default-spec";
@@ -24,32 +25,7 @@ const extractInputSchema = z.object({
24
25
  .string()
25
26
  .min(4, "prompt must be at least 4 characters")
26
27
  .describe("The prompt instructing the AI how to extract data from the identity document"),
27
- schema: z
28
- .union([
29
- z.record(z.string(), z.unknown()),
30
- z.string().transform((str, ctx) => {
31
- try {
32
- const trimmed = str.startsWith('"') && str.endsWith('"') ? str.slice(1, -1) : str;
33
- const parsed = JSON.parse(trimmed);
34
- if (typeof parsed !== "object" || parsed === null) {
35
- ctx.addIssue({
36
- code: "custom",
37
- message: "Schema must be a JSON object",
38
- });
39
- return z.NEVER;
40
- }
41
- return parsed;
42
- }
43
- catch {
44
- ctx.addIssue({
45
- code: "custom",
46
- message: "Invalid JSON string for schema",
47
- });
48
- return z.NEVER;
49
- }
50
- }),
51
- ])
52
- .describe("JSON Schema describing the structure of the data to extract from the identity document. Can be a JSON object or a JSON string."),
28
+ schema: jsonSchemaInput.describe("JSON Schema describing the structure of the data to extract from the identity document. Can be a JSON object or a JSON string."),
53
29
  model: specializedModelSchema.describe(specializedExtractModelDescription),
54
30
  callback: z
55
31
  .object({
@@ -1,5 +1,6 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
+ import { jsonSchemaInput } from "../../json-schema-input";
3
4
  import { pdfvectorModelSchema } from "../../pdfvector-model-schema";
4
5
  import { outputExtractModelDescription, specializedExtractModelDescription, supportedFileFormatsDescription, supportedFileMimeErrorMessage, supportedFileMimes, supportedFileTypesLong, } from "../../supported-mimes";
5
6
  import { getDefaultSpec } from "./get-default-spec";
@@ -21,32 +22,7 @@ const extractInputSchema = z.object({
21
22
  .string()
22
23
  .min(4, "prompt must be at least 4 characters")
23
24
  .describe("The prompt instructing the AI how to extract data from the invoice"),
24
- schema: z
25
- .union([
26
- z.record(z.string(), z.unknown()),
27
- z.string().transform((str, ctx) => {
28
- try {
29
- const trimmed = str.startsWith('"') && str.endsWith('"') ? str.slice(1, -1) : str;
30
- const parsed = JSON.parse(trimmed);
31
- if (typeof parsed !== "object" || parsed === null) {
32
- ctx.addIssue({
33
- code: "custom",
34
- message: "Schema must be a JSON object",
35
- });
36
- return z.NEVER;
37
- }
38
- return parsed;
39
- }
40
- catch {
41
- ctx.addIssue({
42
- code: "custom",
43
- message: "Invalid JSON string for schema",
44
- });
45
- return z.NEVER;
46
- }
47
- }),
48
- ])
49
- .describe("JSON Schema describing the structure of the data to extract from the invoice. Can be a JSON object or a JSON string."),
25
+ schema: jsonSchemaInput.describe("JSON Schema describing the structure of the data to extract from the invoice. Can be a JSON object or a JSON string."),
50
26
  model: specializedModelSchema.describe(specializedExtractModelDescription),
51
27
  callback: z
52
28
  .object({
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @pdfvector/instance-contract
2
2
 
3
+ ## 0.0.41
4
+ ### Patch Changes
5
+
6
+
7
+
8
+ - [#214](https://github.com/phuctm97/pdfvector/pull/214) [`3a1c66b`](https://github.com/phuctm97/pdfvector/commit/3a1c66bcdfade057be5f1b9170f8ed64934bf2a9) Thanks [@khanhduyvt0101](https://github.com/khanhduyvt0101)! - Fix PDFVECTOR-INSTANCE-T and slim instance-client SDK
9
+
10
+ ## 0.0.40
11
+ ### Patch Changes
12
+
13
+
14
+
15
+ - [#205](https://github.com/phuctm97/pdfvector/pull/205) [`93b9624`](https://github.com/phuctm97/pdfvector/commit/93b9624333f643b143062e08c6af216eed5a859a) Thanks [@khanhduyvt0101](https://github.com/khanhduyvt0101)! - Improve SDK error handling and tighten academic provider types
16
+
3
17
  ## 0.0.39
4
18
  ### Patch Changes
5
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pdfvector/instance-contract",
3
- "version": "0.0.39",
3
+ "version": "0.0.41",
4
4
  "type": "module",
5
5
  "description": "API contract definitions for PDF Vector instance server",
6
6
  "license": "MIT",
@@ -20,8 +20,9 @@
20
20
  },
21
21
  "main": ".tsc/lib/index.js",
22
22
  "dependencies": {
23
- "@orpc/contract": "^1.13.14",
24
- "@pdfvector/util": "0.0.19"
23
+ "@orpc/client": "^1.14.0",
24
+ "@orpc/contract": "^1.14.0",
25
+ "@pdfvector/util": "0.0.20"
25
26
  },
26
27
  "peerDependencies": {
27
28
  "zod": "^4.3.6"