@jaypie/llm 1.3.4 → 1.3.5
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/cjs/index.cjs +166 -27
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +13 -1
- package/dist/cjs/{index.d.ts → src/index.d.ts} +1 -0
- package/dist/cjs/{util → src/util}/index.d.ts +1 -0
- package/dist/cjs/src/util/jsonSchema.d.ts +17 -0
- package/dist/esm/index.d.ts +13 -1
- package/dist/esm/index.js +191 -54
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/src/index.d.ts +17 -0
- package/dist/esm/{util → src/util}/index.d.ts +1 -0
- package/dist/esm/src/util/jsonSchema.d.ts +17 -0
- package/package.json +3 -2
- /package/dist/cjs/{Llm.d.ts → src/Llm.d.ts} +0 -0
- /package/dist/cjs/{constants.d.ts → src/constants.d.ts} +0 -0
- /package/dist/cjs/{observability → src/observability}/llmobs.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/OperateLoop.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/StreamLoop.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/AnthropicAdapter.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/BedrockAdapter.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/GoogleAdapter.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/OpenAiAdapter.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/OpenRouterAdapter.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/ProviderAdapter.interface.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/XaiAdapter.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/adapters/index.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/hooks/HookRunner.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/hooks/index.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/index.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/input/InputProcessor.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/input/index.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/response/ResponseBuilder.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/response/index.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/retry/RetryExecutor.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/retry/RetryPolicy.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/retry/createStaleRejectionGuard.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/retry/index.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/retry/isTransientNetworkError.d.ts +0 -0
- /package/dist/cjs/{operate → src/operate}/types.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/anthropic/AnthropicProvider.class.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/anthropic/client.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/anthropic/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/anthropic/types.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/anthropic/utils.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/bedrock/BedrockProvider.class.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/bedrock/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/bedrock/utils.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/google/GoogleProvider.class.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/google/client.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/google/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/google/types.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/google/utils.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openai/OpenAiProvider.class.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openai/client.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openai/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openai/responseFormat.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openai/types.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openai/utils.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openrouter/OpenRouterProvider.class.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openrouter/client.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openrouter/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/openrouter/utils.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/xai/XaiProvider.class.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/xai/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/xai/utils.d.ts +0 -0
- /package/dist/cjs/{tools → src/tools}/Toolkit.class.d.ts +0 -0
- /package/dist/cjs/{tools → src/tools}/index.d.ts +0 -0
- /package/dist/cjs/{tools → src/tools}/random.d.ts +0 -0
- /package/dist/cjs/{tools → src/tools}/roll.d.ts +0 -0
- /package/dist/cjs/{tools → src/tools}/time.d.ts +0 -0
- /package/dist/cjs/{tools → src/tools}/weather.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/LlmOperateInput.guards.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/LlmProvider.interface.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/LlmStreamChunk.interface.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/LlmTool.interface.d.ts +0 -0
- /package/dist/cjs/{upload → src/upload}/detectMimeType.d.ts +0 -0
- /package/dist/cjs/{upload → src/upload}/extractPdfPages.d.ts +0 -0
- /package/dist/cjs/{upload → src/upload}/index.d.ts +0 -0
- /package/dist/cjs/{upload → src/upload}/loadLocalFile.d.ts +0 -0
- /package/dist/cjs/{upload → src/upload}/loadS3File.d.ts +0 -0
- /package/dist/cjs/{upload → src/upload}/resolveOperateInput.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/determineModelProvider.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/extractReasoning.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/fillFormatArrays.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/formatOperateInput.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/formatOperateMessage.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/jsonSchemaToOpenApi3.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/logger.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/maxTurnsFromOptions.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/naturalZodSchema.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/random.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/repairFormatKeys.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/sse.d.ts +0 -0
- /package/dist/cjs/{util → src/util}/tryParseNumber.d.ts +0 -0
- /package/dist/esm/{Llm.d.ts → src/Llm.d.ts} +0 -0
- /package/dist/esm/{constants.d.ts → src/constants.d.ts} +0 -0
- /package/dist/esm/{observability → src/observability}/llmobs.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/OperateLoop.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/StreamLoop.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/AnthropicAdapter.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/BedrockAdapter.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/GoogleAdapter.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/OpenAiAdapter.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/OpenRouterAdapter.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/ProviderAdapter.interface.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/XaiAdapter.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/adapters/index.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/hooks/HookRunner.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/hooks/index.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/index.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/input/InputProcessor.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/input/index.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/response/ResponseBuilder.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/response/index.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/retry/RetryExecutor.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/retry/RetryPolicy.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/retry/createStaleRejectionGuard.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/retry/index.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/retry/isTransientNetworkError.d.ts +0 -0
- /package/dist/esm/{operate → src/operate}/types.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/anthropic/AnthropicProvider.class.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/anthropic/client.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/anthropic/index.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/anthropic/types.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/anthropic/utils.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/bedrock/BedrockProvider.class.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/bedrock/index.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/bedrock/utils.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/google/GoogleProvider.class.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/google/client.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/google/index.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/google/types.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/google/utils.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openai/OpenAiProvider.class.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openai/client.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openai/index.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openai/responseFormat.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openai/types.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openai/utils.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openrouter/OpenRouterProvider.class.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openrouter/client.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openrouter/index.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/openrouter/utils.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/xai/XaiProvider.class.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/xai/index.d.ts +0 -0
- /package/dist/esm/{providers → src/providers}/xai/utils.d.ts +0 -0
- /package/dist/esm/{tools → src/tools}/Toolkit.class.d.ts +0 -0
- /package/dist/esm/{tools → src/tools}/index.d.ts +0 -0
- /package/dist/esm/{tools → src/tools}/random.d.ts +0 -0
- /package/dist/esm/{tools → src/tools}/roll.d.ts +0 -0
- /package/dist/esm/{tools → src/tools}/time.d.ts +0 -0
- /package/dist/esm/{tools → src/tools}/weather.d.ts +0 -0
- /package/dist/esm/{types → src/types}/LlmOperateInput.guards.d.ts +0 -0
- /package/dist/esm/{types → src/types}/LlmProvider.interface.d.ts +0 -0
- /package/dist/esm/{types → src/types}/LlmStreamChunk.interface.d.ts +0 -0
- /package/dist/esm/{types → src/types}/LlmTool.interface.d.ts +0 -0
- /package/dist/esm/{upload → src/upload}/detectMimeType.d.ts +0 -0
- /package/dist/esm/{upload → src/upload}/extractPdfPages.d.ts +0 -0
- /package/dist/esm/{upload → src/upload}/index.d.ts +0 -0
- /package/dist/esm/{upload → src/upload}/loadLocalFile.d.ts +0 -0
- /package/dist/esm/{upload → src/upload}/loadS3File.d.ts +0 -0
- /package/dist/esm/{upload → src/upload}/resolveOperateInput.d.ts +0 -0
- /package/dist/esm/{util → src/util}/determineModelProvider.d.ts +0 -0
- /package/dist/esm/{util → src/util}/extractReasoning.d.ts +0 -0
- /package/dist/esm/{util → src/util}/fillFormatArrays.d.ts +0 -0
- /package/dist/esm/{util → src/util}/formatOperateInput.d.ts +0 -0
- /package/dist/esm/{util → src/util}/formatOperateMessage.d.ts +0 -0
- /package/dist/esm/{util → src/util}/jsonSchemaToOpenApi3.d.ts +0 -0
- /package/dist/esm/{util → src/util}/logger.d.ts +0 -0
- /package/dist/esm/{util → src/util}/maxTurnsFromOptions.d.ts +0 -0
- /package/dist/esm/{util → src/util}/naturalZodSchema.d.ts +0 -0
- /package/dist/esm/{util → src/util}/random.d.ts +0 -0
- /package/dist/esm/{util → src/util}/repairFormatKeys.d.ts +0 -0
- /package/dist/esm/{util → src/util}/sse.d.ts +0 -0
- /package/dist/esm/{util → src/util}/tryParseNumber.d.ts +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { default as Llm } from "./Llm.js";
|
|
2
|
+
export * as LLM from "./constants.js";
|
|
3
|
+
export type { LlmFallbackConfig, LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateInput, LlmOperateInputContent, LlmOperateInputFile, LlmOperateInputImage, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProvider, } from "./types/LlmProvider.interface.js";
|
|
4
|
+
export { LlmMessageRole, LlmMessageType, } from "./types/LlmProvider.interface.js";
|
|
5
|
+
export { isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, } from "./types/LlmOperateInput.guards.js";
|
|
6
|
+
export type { LlmTool } from "./types/LlmTool.interface.js";
|
|
7
|
+
export type { LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, } from "./types/LlmStreamChunk.interface.js";
|
|
8
|
+
export { LlmStreamChunkType } from "./types/LlmStreamChunk.interface.js";
|
|
9
|
+
export { JaypieToolkit, toolkit, Toolkit, tools } from "./tools/index.js";
|
|
10
|
+
export { extractReasoning } from "./util/extractReasoning.js";
|
|
11
|
+
export { jsonSchemaToNaturalSchema, naturalSchemaToJsonSchema, } from "./util/jsonSchema.js";
|
|
12
|
+
export { BedrockProvider } from "./providers/bedrock/index.js";
|
|
13
|
+
/** @deprecated Use GoogleProvider — "Google" is the provider; Gemini is the model family */
|
|
14
|
+
export { GoogleProvider as GeminiProvider } from "./providers/google/index.js";
|
|
15
|
+
export { GoogleProvider } from "./providers/google/index.js";
|
|
16
|
+
export { OpenRouterProvider } from "./providers/openrouter/index.js";
|
|
17
|
+
export { XaiProvider } from "./providers/xai/index.js";
|
|
@@ -3,6 +3,7 @@ export * from "./extractReasoning.js";
|
|
|
3
3
|
export * from "./fillFormatArrays.js";
|
|
4
4
|
export * from "./formatOperateInput.js";
|
|
5
5
|
export * from "./formatOperateMessage.js";
|
|
6
|
+
export * from "./jsonSchema.js";
|
|
6
7
|
export * from "./jsonSchemaToOpenApi3.js";
|
|
7
8
|
export * from "./logger.js";
|
|
8
9
|
export * from "./maxTurnsFromOptions.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
2
|
+
/**
|
|
3
|
+
* Duck-type check for a bare JSON Schema object node: `{ type: "object", properties: {...} }`.
|
|
4
|
+
* Does not require the OpenAI-style `{ type: "json_schema", ... }` envelope.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isJsonSchema(value: unknown): value is JsonObject;
|
|
7
|
+
/**
|
|
8
|
+
* Convert a Natural Schema to JSON Schema. Lossless: Natural Schema is a
|
|
9
|
+
* strict subset of what JSON Schema can express.
|
|
10
|
+
*/
|
|
11
|
+
export declare function naturalSchemaToJsonSchema(schema: NaturalSchema): JsonObject;
|
|
12
|
+
/**
|
|
13
|
+
* Convert a JSON Schema object node to Natural Schema. Lossy: constraints,
|
|
14
|
+
* descriptions, defaults, unions, and optionality have no Natural Schema
|
|
15
|
+
* representation. Dropped keywords are logged at debug level, never thrown.
|
|
16
|
+
*/
|
|
17
|
+
export declare function jsonSchemaToNaturalSchema(schema: JsonObject): NaturalSchema;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaypie/llm",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.5",
|
|
4
4
|
"description": "Large language model utilities",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -44,12 +44,13 @@
|
|
|
44
44
|
"openmeteo": "^1.2.1",
|
|
45
45
|
"pdf-lib": "^1.17.1",
|
|
46
46
|
"random": "^5.3.0",
|
|
47
|
-
"z-schema": "^6.0.2",
|
|
48
47
|
"zod": "^4.1.13"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
51
50
|
"@aws-sdk/client-bedrock-runtime": "^3.1045.0",
|
|
52
51
|
"@jaypie/types": "*",
|
|
52
|
+
"@types/node": "^22.13.1",
|
|
53
|
+
"dotenv": "^17.4.2",
|
|
53
54
|
"rollup-plugin-dts": "^6.1.1"
|
|
54
55
|
},
|
|
55
56
|
"peerDependencies": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|