@struktur/sdk 2.2.0 → 2.3.1
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/artifacts/fileToArtifact.d.ts +8 -0
- package/dist/artifacts/fileToArtifact.d.ts.map +1 -0
- package/dist/artifacts/input.d.ts +60 -0
- package/dist/artifacts/input.d.ts.map +1 -0
- package/dist/artifacts/providers.d.ts +5 -0
- package/dist/artifacts/providers.d.ts.map +1 -0
- package/dist/artifacts/urlToArtifact.d.ts +3 -0
- package/dist/artifacts/urlToArtifact.d.ts.map +1 -0
- package/dist/auth/config.d.ts +34 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/tokens.d.ts +18 -0
- package/dist/auth/tokens.d.ts.map +1 -0
- package/dist/chunking/ArtifactBatcher.d.ts +11 -0
- package/dist/chunking/ArtifactBatcher.d.ts.map +1 -0
- package/dist/chunking/ArtifactSplitter.d.ts +10 -0
- package/dist/chunking/ArtifactSplitter.d.ts.map +1 -0
- package/dist/debug/logger.d.ts +169 -0
- package/dist/debug/logger.d.ts.map +1 -0
- package/dist/extract.d.ts +3 -0
- package/dist/extract.d.ts.map +1 -0
- package/dist/fields.d.ts +75 -0
- package/dist/fields.d.ts.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1493 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/LLMClient.d.ts +40 -0
- package/dist/llm/LLMClient.d.ts.map +1 -0
- package/dist/llm/RetryingRunner.d.ts +37 -0
- package/dist/llm/RetryingRunner.d.ts.map +1 -0
- package/dist/llm/message.d.ts +12 -0
- package/dist/llm/message.d.ts.map +1 -0
- package/dist/llm/models.d.ts +13 -0
- package/dist/llm/models.d.ts.map +1 -0
- package/dist/llm/resolveModel.d.ts +3 -0
- package/dist/llm/resolveModel.d.ts.map +1 -0
- package/dist/merge/Deduplicator.d.ts +4 -0
- package/dist/merge/Deduplicator.d.ts.map +1 -0
- package/dist/merge/SmartDataMerger.d.ts +7 -0
- package/dist/merge/SmartDataMerger.d.ts.map +1 -0
- package/dist/parsers/collect.d.ts +7 -0
- package/dist/parsers/collect.d.ts.map +1 -0
- package/dist/parsers/index.d.ts +7 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/mime.d.ts +12 -0
- package/dist/parsers/mime.d.ts.map +1 -0
- package/dist/parsers/npm.d.ts +16 -0
- package/dist/parsers/npm.d.ts.map +1 -0
- package/dist/parsers/pdf.d.ts +36 -0
- package/dist/parsers/pdf.d.ts.map +1 -0
- package/dist/parsers/runner.d.ts +4 -0
- package/dist/parsers/runner.d.ts.map +1 -0
- package/dist/parsers/types.d.ts +27 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers.d.ts +1 -0
- package/dist/prompts/DeduplicationPrompt.d.ts +5 -0
- package/dist/prompts/DeduplicationPrompt.d.ts.map +1 -0
- package/dist/prompts/ExtractorPrompt.d.ts +6 -0
- package/dist/prompts/ExtractorPrompt.d.ts.map +1 -0
- package/dist/prompts/ParallelMergerPrompt.d.ts +5 -0
- package/dist/prompts/ParallelMergerPrompt.d.ts.map +1 -0
- package/dist/prompts/SequentialExtractorPrompt.d.ts +6 -0
- package/dist/prompts/SequentialExtractorPrompt.d.ts.map +1 -0
- package/dist/prompts/formatArtifacts.d.ts +3 -0
- package/dist/prompts/formatArtifacts.d.ts.map +1 -0
- package/dist/strategies/DoublePassAutoMergeStrategy.d.ts +23 -0
- package/dist/strategies/DoublePassAutoMergeStrategy.d.ts.map +1 -0
- package/dist/strategies/DoublePassStrategy.d.ts +22 -0
- package/dist/strategies/DoublePassStrategy.d.ts.map +1 -0
- package/dist/strategies/ParallelAutoMergeStrategy.d.ts +27 -0
- package/dist/strategies/ParallelAutoMergeStrategy.d.ts.map +1 -0
- package/dist/strategies/ParallelStrategy.d.ts +22 -0
- package/dist/strategies/ParallelStrategy.d.ts.map +1 -0
- package/dist/strategies/SequentialAutoMergeStrategy.d.ts +22 -0
- package/dist/strategies/SequentialAutoMergeStrategy.d.ts.map +1 -0
- package/dist/strategies/SequentialStrategy.d.ts +20 -0
- package/dist/strategies/SequentialStrategy.d.ts.map +1 -0
- package/dist/strategies/SimpleStrategy.d.ts +18 -0
- package/dist/strategies/SimpleStrategy.d.ts.map +1 -0
- package/dist/strategies/agent/AgentStrategy.d.ts +44 -0
- package/dist/strategies/agent/AgentStrategy.d.ts.map +1 -0
- package/dist/strategies/agent/AgentTools.d.ts +55 -0
- package/dist/strategies/agent/AgentTools.d.ts.map +1 -0
- package/dist/strategies/agent/ArtifactFilesystem.d.ts +51 -0
- package/dist/strategies/agent/ArtifactFilesystem.d.ts.map +1 -0
- package/dist/strategies/agent/index.d.ts +4 -0
- package/dist/strategies/agent/index.d.ts.map +1 -0
- package/dist/strategies/concurrency.d.ts +2 -0
- package/dist/strategies/concurrency.d.ts.map +1 -0
- package/dist/strategies/index.d.ts +9 -0
- package/dist/strategies/index.d.ts.map +1 -0
- package/dist/strategies/utils.d.ts +39 -0
- package/dist/strategies/utils.d.ts.map +1 -0
- package/dist/strategies.d.ts +1 -0
- package/dist/strategies.js +1495 -0
- package/dist/strategies.js.map +1 -1
- package/dist/tokenization.d.ts +11 -0
- package/dist/tokenization.d.ts.map +1 -0
- package/dist/types.d.ts +178 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/validation/validator.d.ts +20 -0
- package/dist/validation/validator.d.ts.map +1 -0
- package/package.json +14 -10
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Artifact, ArtifactContent, ArtifactImage } from "./types";
|
|
2
|
+
export type TokenCountOptions = {
|
|
3
|
+
textTokenRatio?: number;
|
|
4
|
+
defaultImageTokens?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const estimateTextTokens: (text: string, options?: TokenCountOptions) => number;
|
|
7
|
+
export declare const estimateImageTokens: (_image: ArtifactImage, options?: TokenCountOptions) => number;
|
|
8
|
+
export declare const countContentTokens: (content: ArtifactContent, options?: TokenCountOptions) => number;
|
|
9
|
+
export declare const countArtifactTokens: (artifact: Artifact, options?: TokenCountOptions) => number;
|
|
10
|
+
export declare const countArtifactImages: (artifact: Artifact) => number;
|
|
11
|
+
//# sourceMappingURL=tokenization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenization.d.ts","sourceRoot":"","sources":["../src/tokenization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAYF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,UAAU,iBAAiB,WAG3E,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,aAAa,EACrB,UAAU,iBAAiB,WAI5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,eAAe,EACxB,UAAU,iBAAiB,WAkB5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,QAAQ,EAClB,UAAU,iBAAiB,WAU5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,UAAU,QAAQ,WAIrD,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { JSONSchemaType } from "ajv";
|
|
2
|
+
import type { DebugLogger } from "./debug/logger";
|
|
3
|
+
export type ArtifactType = "text" | "image" | "pdf" | "file";
|
|
4
|
+
export type ImageType = "embedded" | "screenshot";
|
|
5
|
+
export type ArtifactImage = {
|
|
6
|
+
type: "image";
|
|
7
|
+
url?: string;
|
|
8
|
+
base64?: string;
|
|
9
|
+
contents?: Buffer;
|
|
10
|
+
text?: string;
|
|
11
|
+
x?: number;
|
|
12
|
+
y?: number;
|
|
13
|
+
width?: number;
|
|
14
|
+
height?: number;
|
|
15
|
+
imageType?: ImageType;
|
|
16
|
+
};
|
|
17
|
+
export type ArtifactContent = {
|
|
18
|
+
page?: number;
|
|
19
|
+
text?: string;
|
|
20
|
+
media?: ArtifactImage[];
|
|
21
|
+
};
|
|
22
|
+
export interface Artifact {
|
|
23
|
+
id: string;
|
|
24
|
+
type: ArtifactType;
|
|
25
|
+
raw: () => Promise<Buffer>;
|
|
26
|
+
contents: ArtifactContent[];
|
|
27
|
+
metadata?: Record<string, unknown>;
|
|
28
|
+
tokens?: number;
|
|
29
|
+
}
|
|
30
|
+
export type Usage = {
|
|
31
|
+
inputTokens: number;
|
|
32
|
+
outputTokens: number;
|
|
33
|
+
totalTokens: number;
|
|
34
|
+
};
|
|
35
|
+
export type ExtractionResult<T> = {
|
|
36
|
+
data: T;
|
|
37
|
+
usage: Usage;
|
|
38
|
+
error?: Error;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Telemetry adapter interface for tracing extraction operations.
|
|
42
|
+
* This is a minimal interface that matches the full TelemetryAdapter from @struktur/telemetry.
|
|
43
|
+
* SDK users should import adapters from @struktur/telemetry package.
|
|
44
|
+
*/
|
|
45
|
+
export interface TelemetryAdapter {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly version: string;
|
|
48
|
+
initialize(): Promise<void>;
|
|
49
|
+
shutdown(): Promise<void>;
|
|
50
|
+
startSpan(context: {
|
|
51
|
+
name: string;
|
|
52
|
+
kind: "CHAIN" | "LLM" | "TOOL" | "AGENT" | "RETRIEVER" | "EMBEDDING" | "RERANKER";
|
|
53
|
+
parentSpan?: {
|
|
54
|
+
id: string;
|
|
55
|
+
traceId: string;
|
|
56
|
+
};
|
|
57
|
+
attributes?: Record<string, unknown>;
|
|
58
|
+
startTime?: number;
|
|
59
|
+
}): {
|
|
60
|
+
id: string;
|
|
61
|
+
traceId: string;
|
|
62
|
+
name: string;
|
|
63
|
+
kind: string;
|
|
64
|
+
startTime: number;
|
|
65
|
+
parentId?: string;
|
|
66
|
+
};
|
|
67
|
+
endSpan(span: {
|
|
68
|
+
id: string;
|
|
69
|
+
}, result?: {
|
|
70
|
+
status: "ok" | "error";
|
|
71
|
+
error?: Error;
|
|
72
|
+
output?: unknown;
|
|
73
|
+
latencyMs?: number;
|
|
74
|
+
}): void;
|
|
75
|
+
recordEvent(span: {
|
|
76
|
+
id: string;
|
|
77
|
+
}, event: unknown): void;
|
|
78
|
+
setAttributes(span: {
|
|
79
|
+
id: string;
|
|
80
|
+
}, attributes: Record<string, unknown>): void;
|
|
81
|
+
setContext(context: {
|
|
82
|
+
sessionId?: string;
|
|
83
|
+
userId?: string;
|
|
84
|
+
metadata?: Record<string, unknown>;
|
|
85
|
+
tags?: string[];
|
|
86
|
+
}): void;
|
|
87
|
+
}
|
|
88
|
+
export type StepInfo = {
|
|
89
|
+
step: number;
|
|
90
|
+
total?: number;
|
|
91
|
+
label?: string;
|
|
92
|
+
detail?: string;
|
|
93
|
+
};
|
|
94
|
+
export type ProgressInfo = {
|
|
95
|
+
current: number;
|
|
96
|
+
total: number;
|
|
97
|
+
percent?: number;
|
|
98
|
+
};
|
|
99
|
+
export type MessageInfo = {
|
|
100
|
+
role: "system" | "user" | "assistant" | "tool";
|
|
101
|
+
content: unknown;
|
|
102
|
+
};
|
|
103
|
+
export type TokenUsageInfo = Usage & {
|
|
104
|
+
model?: string;
|
|
105
|
+
};
|
|
106
|
+
export type RetryInfo = {
|
|
107
|
+
attempt: number;
|
|
108
|
+
maxAttempts: number;
|
|
109
|
+
reason?: string;
|
|
110
|
+
};
|
|
111
|
+
export type AgentToolStartInfo = {
|
|
112
|
+
toolName: string;
|
|
113
|
+
toolCallId: string;
|
|
114
|
+
args: Record<string, unknown>;
|
|
115
|
+
};
|
|
116
|
+
export type AgentToolEndInfo = {
|
|
117
|
+
toolCallId: string;
|
|
118
|
+
result?: Record<string, unknown>;
|
|
119
|
+
error?: string;
|
|
120
|
+
};
|
|
121
|
+
export type AgentMessageInfo = {
|
|
122
|
+
content: string;
|
|
123
|
+
role?: "assistant" | "user";
|
|
124
|
+
};
|
|
125
|
+
export type AgentReasoningInfo = {
|
|
126
|
+
thought: string;
|
|
127
|
+
};
|
|
128
|
+
export type AgentEvents = {
|
|
129
|
+
onAgentToolStart?: (info: AgentToolStartInfo) => void | Promise<void>;
|
|
130
|
+
onAgentToolEnd?: (info: AgentToolEndInfo) => void | Promise<void>;
|
|
131
|
+
onAgentMessage?: (info: AgentMessageInfo) => void | Promise<void>;
|
|
132
|
+
onAgentReasoning?: (info: AgentReasoningInfo) => void | Promise<void>;
|
|
133
|
+
};
|
|
134
|
+
export type ExtractionEvents = {
|
|
135
|
+
onStep?: (info: StepInfo) => void | Promise<void>;
|
|
136
|
+
onMessage?: (info: MessageInfo) => void | Promise<void>;
|
|
137
|
+
onProgress?: (info: ProgressInfo) => void | Promise<void>;
|
|
138
|
+
onTokenUsage?: (info: TokenUsageInfo) => void | Promise<void>;
|
|
139
|
+
onRetry?: (info: RetryInfo) => void | Promise<void>;
|
|
140
|
+
} & AgentEvents;
|
|
141
|
+
export type AnyJSONSchema = Record<string, unknown>;
|
|
142
|
+
export type TypedJSONSchema<T> = JSONSchemaType<T>;
|
|
143
|
+
export type ProviderModelsResult = {
|
|
144
|
+
provider: string;
|
|
145
|
+
ok: boolean;
|
|
146
|
+
models?: string[];
|
|
147
|
+
error?: string;
|
|
148
|
+
};
|
|
149
|
+
export type ExtractionOptions<T> = {
|
|
150
|
+
artifacts: Artifact[];
|
|
151
|
+
/**
|
|
152
|
+
* JSON Schema for the extracted output.
|
|
153
|
+
* Exactly one of `schema`, `fields`, or an inline schema via the CLI must be provided.
|
|
154
|
+
*/
|
|
155
|
+
schema?: TypedJSONSchema<T> | AnyJSONSchema;
|
|
156
|
+
/**
|
|
157
|
+
* Shorthand schema definition as a comma-separated string of `name` or `name:type` tokens.
|
|
158
|
+
* E.g. `"title, price:number"`. Defaults to `string` when no type is specified.
|
|
159
|
+
* Mutually exclusive with `schema`.
|
|
160
|
+
*/
|
|
161
|
+
fields?: string;
|
|
162
|
+
strategy: ExtractionStrategy<T>;
|
|
163
|
+
events?: ExtractionEvents;
|
|
164
|
+
debug?: DebugLogger;
|
|
165
|
+
strict?: boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Telemetry adapter for tracing extraction operations.
|
|
168
|
+
* Supports Phoenix (Arize), Langfuse, and other OpenTelemetry-compatible providers.
|
|
169
|
+
* Import from `@struktur/telemetry` package and pass the adapter here.
|
|
170
|
+
*/
|
|
171
|
+
telemetry?: TelemetryAdapter | null;
|
|
172
|
+
};
|
|
173
|
+
export interface ExtractionStrategy<T> {
|
|
174
|
+
name: string;
|
|
175
|
+
run(options: ExtractionOptions<T>): Promise<ExtractionResult<T>>;
|
|
176
|
+
getEstimatedSteps?: (artifacts: Artifact[]) => number;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Ajv, { type AnySchema, type ErrorObject, type JSONSchemaType } from "ajv";
|
|
2
|
+
export type ValidationErrors = ErrorObject[];
|
|
3
|
+
export type ValidationMode = 'strict' | 'lenient';
|
|
4
|
+
export type ValidationResult<T> = {
|
|
5
|
+
valid: true;
|
|
6
|
+
data: T;
|
|
7
|
+
} | {
|
|
8
|
+
valid: false;
|
|
9
|
+
errors: ErrorObject[];
|
|
10
|
+
};
|
|
11
|
+
export declare class SchemaValidationError extends Error {
|
|
12
|
+
readonly errors: ValidationErrors;
|
|
13
|
+
constructor(message: string, errors: ValidationErrors);
|
|
14
|
+
}
|
|
15
|
+
export declare const createAjv: () => Ajv;
|
|
16
|
+
export type SchemaInput<T> = JSONSchemaType<T> | AnySchema;
|
|
17
|
+
export declare const validateOrThrow: <T>(ajv: Ajv, schema: SchemaInput<T>, data: unknown) => T;
|
|
18
|
+
export declare const isRequiredError: (error: ErrorObject) => boolean;
|
|
19
|
+
export declare const validateAllowingMissingRequired: <T>(ajv: Ajv, schema: SchemaInput<T>, data: unknown, isFinalAttempt?: boolean) => ValidationResult<T>;
|
|
20
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGjF,MAAM,MAAM,gBAAgB,GAAG,WAAW,EAAE,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACxB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE5C,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,MAAM,EAAE,gBAAgB,CAAC;gBAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;CAKtD;AAID,eAAO,MAAM,SAAS,WAcrB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAE3D,eAAO,MAAM,eAAe,GAAI,CAAC,EAC/B,KAAK,GAAG,EACR,QAAQ,WAAW,CAAC,CAAC,CAAC,EACtB,MAAM,OAAO,KACZ,CAWF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,KAAG,OAEpD,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,CAAC,EAC/C,KAAK,GAAG,EACR,QAAQ,WAAW,CAAC,CAAC,CAAC,EACtB,MAAM,OAAO,EACb,iBAAgB,OAAc,KAC7B,gBAAgB,CAAC,CAAC,CAsBpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,41 +1,45 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@struktur/sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"license": "FSL-1.1-MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
12
|
},
|
|
13
13
|
"./strategies": {
|
|
14
|
-
"
|
|
15
|
-
"
|
|
14
|
+
"types": "./dist/strategies.d.ts",
|
|
15
|
+
"import": "./dist/strategies.js"
|
|
16
16
|
},
|
|
17
17
|
"./parsers": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
18
|
+
"types": "./dist/parsers.d.ts",
|
|
19
|
+
"import": "./dist/parsers.js"
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"dist"
|
|
24
24
|
],
|
|
25
25
|
"scripts": {
|
|
26
|
-
"build": "tsup",
|
|
26
|
+
"build": "tsup && tsc --project tsconfig.build.json && node scripts/postbuild.mjs",
|
|
27
27
|
"prepublishOnly": "bun run build"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@ai-sdk/anthropic": "^3.0.0",
|
|
31
31
|
"@ai-sdk/google": "^3.0.0",
|
|
32
32
|
"@ai-sdk/openai": "^3.0.0",
|
|
33
|
+
"@ai-sdk/provider": "^3.0.8",
|
|
34
|
+
"@mariozechner/pi-coding-agent": "^0.57.1",
|
|
33
35
|
"@openrouter/ai-sdk-provider": "^2.0.0",
|
|
34
|
-
"@
|
|
36
|
+
"@sinclair/typebox": "^0.34.48",
|
|
35
37
|
"ai": "^6.0.97",
|
|
36
38
|
"ajv": "^8.17.1",
|
|
37
39
|
"ajv-formats": "^3.0.1",
|
|
38
|
-
"
|
|
40
|
+
"just-bash": "^2.11.15",
|
|
41
|
+
"pdf-parse": "^2.4.5",
|
|
42
|
+
"zod": "^3.25.76"
|
|
39
43
|
},
|
|
40
44
|
"peerDependencies": {
|
|
41
45
|
"typescript": "^5"
|