@opencode/server 2.1.3 → 2.1.4
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/api.d.ts +846 -968
- package/dist/api.js +5 -5
- package/dist/auth.js +1 -1
- package/dist/chunks/{service-status-j3461ttv.js → pairing-0dncng21.js} +6 -9
- package/dist/chunks/{service-status-6tj91hdj.js → pairing-2b2wekgg.js} +3 -3
- package/dist/chunks/{service-status-6e6jjne7.js → pairing-2yr2dq97.js} +2 -2
- package/dist/chunks/{service-status-3154e7fk.js → pairing-3154e7fk.js} +1 -1
- package/dist/chunks/{service-status-1qc831kp.js → pairing-31acg4hb.js} +2 -2
- package/dist/chunks/{service-status-e6e4kz0w.js → pairing-39nnfjx1.js} +4 -4
- package/dist/chunks/{service-status-x2cwbfak.js → pairing-3te71694.js} +7 -7
- package/dist/chunks/{service-status-jwf0kwqx.js → pairing-49c878v9.js} +2 -2
- package/dist/chunks/{service-status-0znmasm1.js → pairing-4b0899hb.js} +2 -2
- package/dist/chunks/{service-status-q6jxy1hn.js → pairing-4qjw9nya.js} +15 -38
- package/dist/chunks/{service-status-2e16a9cc.js → pairing-5w10ccet.js} +1 -1
- package/dist/chunks/{service-status-11d378s5.js → pairing-6xea6nhh.js} +3 -3
- package/dist/chunks/{service-status-pf9k0dqe.js → pairing-72ygafj3.js} +2 -2
- package/dist/chunks/{service-status-6v4wsps6.js → pairing-7b9xm1qg.js} +3 -2
- package/dist/chunks/{service-status-5adf1am9.js → pairing-91mt6ewz.js} +2 -2
- package/dist/chunks/pairing-9me4q8wt.js +107 -0
- package/dist/chunks/{service-status-6tjqh8g4.js → pairing-a6kxe6a7.js} +3 -3
- package/dist/chunks/{service-status-7scj3y0h.js → pairing-aj1jc7g7.js} +8 -8
- package/dist/chunks/{service-status-krqg3gd2.js → pairing-cfhthk6z.js} +1 -1
- package/dist/chunks/{service-status-xcxwzp6z.js → pairing-e4x9285j.js} +2 -2
- package/dist/chunks/{service-status-c2hv5jmf.js → pairing-e7pctymn.js} +1 -1
- package/dist/chunks/{service-status-rj8tbp10.js → pairing-f4b2q3tn.js} +1 -1
- package/dist/chunks/{service-status-z554rpg5.js → pairing-ga3m49sz.js} +2 -2
- package/dist/chunks/{service-status-gymtz25n.js → pairing-gymtz25n.js} +1 -1
- package/dist/chunks/{service-status-j4at0y5c.js → pairing-j4at0y5c.js} +1 -1
- package/dist/chunks/{service-status-7qrtcnv4.js → pairing-j5aeaa16.js} +1 -1
- package/dist/chunks/{service-status-k6dz4enc.js → pairing-k6dz4enc.js} +1 -1
- package/dist/chunks/{service-status-crt28xe4.js → pairing-kaqtndqt.js} +2 -2
- package/dist/chunks/{service-status-y89d99mz.js → pairing-kcjd09wg.js} +2 -2
- package/dist/chunks/{service-status-10kexchg.js → pairing-kd6vzpgq.js} +2 -2
- package/dist/chunks/{service-status-vb61dkrm.js → pairing-kqr36gas.js} +8 -8
- package/dist/chunks/{service-status-0f489yfb.js → pairing-kyxm98pg.js} +32 -32
- package/dist/chunks/{service-status-79n3507d.js → pairing-mte34432.js} +6 -6
- package/dist/chunks/{service-status-53jj3zgg.js → pairing-nv8hzzrz.js} +3 -3
- package/dist/chunks/{service-status-z9g9xjb3.js → pairing-pmjbkszz.js} +2 -2
- package/dist/chunks/pairing-q69f22pd.js +38 -0
- package/dist/chunks/{service-status-rkmbbexc.js → pairing-qvy2s3nb.js} +2 -2
- package/dist/chunks/{service-status-5ewqf72w.js → pairing-swdgbzpj.js} +2 -2
- package/dist/chunks/{service-status-r82dtfrk.js → pairing-t3j5ftv1.js} +3 -3
- package/dist/chunks/{service-status-vg0x3zn0.js → pairing-x0608mvx.js} +1 -1
- package/dist/chunks/{service-status-5680j7c4.js → pairing-x2dckmx1.js} +15 -17
- package/dist/chunks/{service-status-x74w7e1f.js → pairing-x74w7e1f.js} +1 -1
- package/dist/chunks/{service-status-a30hykaf.js → pairing-x9vr2ttf.js} +2 -2
- package/dist/chunks/{service-status-yzwm8eeq.js → pairing-xmwystkq.js} +2 -2
- package/dist/cors.js +1 -1
- package/dist/event-feed.js +1 -1
- package/dist/fetch.js +49 -50
- package/dist/handlers/agent.js +6 -6
- package/dist/handlers/command.js +6 -6
- package/dist/handlers/config.js +6 -6
- package/dist/handlers/credential.js +6 -6
- package/dist/handlers/debug.d.ts +2 -1
- package/dist/handlers/debug.js +6 -6
- package/dist/handlers/event.js +7 -7
- package/dist/handlers/form.js +6 -6
- package/dist/handlers/fs.js +6 -6
- package/dist/handlers/generate.js +6 -6
- package/dist/handlers/integration.js +6 -6
- package/dist/handlers/location.js +6 -6
- package/dist/handlers/mcp.d.ts +3 -1
- package/dist/handlers/mcp.js +8 -6
- package/dist/handlers/message.js +6 -6
- package/dist/handlers/migration.js +6 -6
- package/dist/handlers/model.js +6 -6
- package/dist/handlers/permission.js +6 -6
- package/dist/handlers/persistent-pty.js +8 -8
- package/dist/handlers/plugin.js +6 -6
- package/dist/handlers/project.js +6 -6
- package/dist/handlers/provider.js +6 -6
- package/dist/handlers/pty-socket.js +1 -1
- package/dist/handlers/pty.d.ts +1 -2
- package/dist/handlers/pty.js +8 -9
- package/dist/handlers/reference.js +6 -6
- package/dist/handlers/rpc.js +6 -6
- package/dist/handlers/server.js +9 -9
- package/dist/handlers/session-error.js +1 -1
- package/dist/handlers/session.js +6 -6
- package/dist/handlers/shell.js +6 -6
- package/dist/handlers/skill.js +6 -6
- package/dist/handlers/vcs.js +6 -6
- package/dist/handlers/voice.js +6 -6
- package/dist/handlers/websearch.js +6 -6
- package/dist/handlers/worktree.js +6 -6
- package/dist/handlers.d.ts +1 -1
- package/dist/handlers.js +43 -44
- package/dist/location.js +2 -2
- package/dist/middleware/authorization.js +2 -2
- package/dist/middleware/form-location.js +3 -3
- package/dist/middleware/schema-error.js +1 -1
- package/dist/middleware/session-location.js +3 -3
- package/dist/pairing.js +5 -5
- package/dist/process.js +53 -53
- package/dist/request-tracing.js +1 -1
- package/dist/routes.d.ts +3 -3
- package/dist/routes.js +46 -47
- package/dist/server-info.js +5 -5
- package/dist/service-status.js +3 -3
- package/dist/workerd.js +50 -51
- package/package.json +11 -10
- package/dist/chunks/service-status-2f9g7rg2.js +0 -20
- package/dist/chunks/service-status-hwdnjend.js +0 -40
- package/dist/chunks/service-status-zy1wt1f8.js +0 -23
- package/dist/pty-environment.d.ts +0 -13
- package/dist/pty-environment.js +0 -12
- /package/dist/chunks/{service-status-9rqn6x4v.js → pairing-9rqn6x4v.js} +0 -0
- /package/dist/chunks/{service-status-erzfdgke.js → pairing-erzfdgke.js} +0 -0
- /package/dist/chunks/{service-status-h6rt5k9s.js → pairing-h6rt5k9s.js} +0 -0
- /package/dist/chunks/{service-status-q4bn6dy8.js → pairing-q4bn6dy8.js} +0 -0
- /package/dist/chunks/{service-status-smaf4a18.js → pairing-smaf4a18.js} +0 -0
- /package/dist/chunks/{service-status-yc7nft6q.js → pairing-yc7nft6q.js} +0 -0
package/dist/workerd.js
CHANGED
|
@@ -1,56 +1,55 @@
|
|
|
1
|
-
import"./chunks/
|
|
2
|
-
import"./chunks/
|
|
3
|
-
import"./chunks/
|
|
4
|
-
import"./chunks/
|
|
5
|
-
import"./chunks/
|
|
6
|
-
import"./chunks/
|
|
7
|
-
import"./chunks/
|
|
8
|
-
import"./chunks/
|
|
9
|
-
import"./chunks/
|
|
10
|
-
import"./chunks/
|
|
11
|
-
import"./chunks/
|
|
12
|
-
import"./chunks/
|
|
13
|
-
import"./chunks/
|
|
14
|
-
import"./chunks/
|
|
15
|
-
import"./chunks/
|
|
16
|
-
import"./chunks/
|
|
17
|
-
import"./chunks/
|
|
18
|
-
import"./chunks/
|
|
19
|
-
import"./chunks/
|
|
20
|
-
import"./chunks/
|
|
21
|
-
import"./chunks/
|
|
22
|
-
import"./chunks/
|
|
23
|
-
import"./chunks/
|
|
24
|
-
import"./chunks/
|
|
25
|
-
import"./chunks/
|
|
26
|
-
import"./chunks/
|
|
27
|
-
import"./chunks/
|
|
28
|
-
import"./chunks/
|
|
29
|
-
import"./chunks/
|
|
30
|
-
import"./chunks/
|
|
31
|
-
import"./chunks/
|
|
32
|
-
import"./chunks/
|
|
33
|
-
import"./chunks/
|
|
34
|
-
import"./chunks/
|
|
35
|
-
import"./chunks/
|
|
36
|
-
import"./chunks/
|
|
37
|
-
import"./chunks/
|
|
38
|
-
import"./chunks/
|
|
39
|
-
import"./chunks/
|
|
40
|
-
import"./chunks/
|
|
41
|
-
import"./chunks/
|
|
42
|
-
import"./chunks/
|
|
43
|
-
import"./chunks/
|
|
44
|
-
import"./chunks/
|
|
45
|
-
import"./chunks/
|
|
46
|
-
import"./chunks/
|
|
47
|
-
import"./chunks/service-status-5680j7c4.js";
|
|
1
|
+
import"./chunks/pairing-q4bn6dy8.js";
|
|
2
|
+
import"./chunks/pairing-smaf4a18.js";
|
|
3
|
+
import"./chunks/pairing-gymtz25n.js";
|
|
4
|
+
import"./chunks/pairing-3154e7fk.js";
|
|
5
|
+
import"./chunks/pairing-x74w7e1f.js";
|
|
6
|
+
import"./chunks/pairing-t3j5ftv1.js";
|
|
7
|
+
import"./chunks/pairing-j4at0y5c.js";
|
|
8
|
+
import"./chunks/pairing-pmjbkszz.js";
|
|
9
|
+
import"./chunks/pairing-kaqtndqt.js";
|
|
10
|
+
import"./chunks/pairing-0dncng21.js";
|
|
11
|
+
import"./chunks/pairing-e4x9285j.js";
|
|
12
|
+
import"./chunks/pairing-swdgbzpj.js";
|
|
13
|
+
import"./chunks/pairing-nv8hzzrz.js";
|
|
14
|
+
import"./chunks/pairing-6xea6nhh.js";
|
|
15
|
+
import"./chunks/pairing-x9vr2ttf.js";
|
|
16
|
+
import"./chunks/pairing-91mt6ewz.js";
|
|
17
|
+
import"./chunks/pairing-xmwystkq.js";
|
|
18
|
+
import"./chunks/pairing-4b0899hb.js";
|
|
19
|
+
import"./chunks/pairing-5w10ccet.js";
|
|
20
|
+
import"./chunks/pairing-k6dz4enc.js";
|
|
21
|
+
import"./chunks/pairing-qvy2s3nb.js";
|
|
22
|
+
import"./chunks/pairing-ga3m49sz.js";
|
|
23
|
+
import"./chunks/pairing-49c878v9.js";
|
|
24
|
+
import"./chunks/pairing-3te71694.js";
|
|
25
|
+
import"./chunks/pairing-kqr36gas.js";
|
|
26
|
+
import"./chunks/pairing-aj1jc7g7.js";
|
|
27
|
+
import"./chunks/pairing-q69f22pd.js";
|
|
28
|
+
import"./chunks/pairing-h6rt5k9s.js";
|
|
29
|
+
import"./chunks/pairing-4qjw9nya.js";
|
|
30
|
+
import"./chunks/pairing-a6kxe6a7.js";
|
|
31
|
+
import"./chunks/pairing-2yr2dq97.js";
|
|
32
|
+
import"./chunks/pairing-kd6vzpgq.js";
|
|
33
|
+
import"./chunks/pairing-cfhthk6z.js";
|
|
34
|
+
import"./chunks/pairing-72ygafj3.js";
|
|
35
|
+
import"./chunks/pairing-kcjd09wg.js";
|
|
36
|
+
import"./chunks/pairing-9me4q8wt.js";
|
|
37
|
+
import"./chunks/pairing-f4b2q3tn.js";
|
|
38
|
+
import"./chunks/pairing-j5aeaa16.js";
|
|
39
|
+
import"./chunks/pairing-2b2wekgg.js";
|
|
40
|
+
import"./chunks/pairing-31acg4hb.js";
|
|
41
|
+
import"./chunks/pairing-x0608mvx.js";
|
|
42
|
+
import"./chunks/pairing-e7pctymn.js";
|
|
43
|
+
import"./chunks/pairing-kyxm98pg.js";
|
|
44
|
+
import"./chunks/pairing-7b9xm1qg.js";
|
|
45
|
+
import"./chunks/pairing-erzfdgke.js";
|
|
46
|
+
import"./chunks/pairing-x2dckmx1.js";
|
|
48
47
|
import {
|
|
49
|
-
|
|
50
|
-
} from "./chunks/
|
|
48
|
+
make3
|
|
49
|
+
} from "./chunks/pairing-mte34432.js";
|
|
51
50
|
import {
|
|
52
51
|
__export
|
|
53
|
-
} from "./chunks/
|
|
52
|
+
} from "./chunks/pairing-9rqn6x4v.js";
|
|
54
53
|
|
|
55
54
|
// src/workerd.ts
|
|
56
55
|
var exports_workerd = {};
|
|
@@ -72,7 +71,7 @@ import { Snapshot } from "@opencode/core/snapshot";
|
|
|
72
71
|
import { Vcs } from "@opencode/core/vcs";
|
|
73
72
|
import { CrossSpawnSpawner } from "@opencode/util/cross-spawn-spawner";
|
|
74
73
|
function create(options) {
|
|
75
|
-
return
|
|
74
|
+
return make3(serverOptions(options), { overrides: replacements(options) });
|
|
76
75
|
}
|
|
77
76
|
function serverOptions(options) {
|
|
78
77
|
return {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@opencode/server",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -24,26 +24,27 @@
|
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "bun run script/build.ts",
|
|
26
26
|
"test": "bun test --only-failures",
|
|
27
|
-
"typecheck": "
|
|
27
|
+
"typecheck": "bun check --no-script -b",
|
|
28
|
+
"typecheck:tsc": "tsc -b",
|
|
28
29
|
"probe:workerd": "bun run script/workerd-probe.ts"
|
|
29
30
|
},
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"@effect/platform-node": "4.0.1",
|
|
32
33
|
"@effect/platform-node-shared": "4.0.1",
|
|
33
|
-
"@opencode/core": "2.1.
|
|
34
|
-
"@opencode/protocol": "2.1.
|
|
35
|
-
"@opencode/schema": "2.1.
|
|
36
|
-
"@opencode/simulation": "2.1.
|
|
37
|
-
"@opencode/util": "2.1.
|
|
34
|
+
"@opencode/core": "2.1.4",
|
|
35
|
+
"@opencode/protocol": "2.1.4",
|
|
36
|
+
"@opencode/schema": "2.1.4",
|
|
37
|
+
"@opencode/simulation": "2.1.4",
|
|
38
|
+
"@opencode/util": "2.1.4",
|
|
38
39
|
"effect": "4.0.1"
|
|
39
40
|
},
|
|
40
41
|
"devDependencies": {
|
|
41
42
|
"@opencode-ai/pty": "0.3.1",
|
|
42
|
-
"@opencode/client": "2.1.
|
|
43
|
-
"@opencode/plugin": "2.1.
|
|
43
|
+
"@opencode/client": "2.1.4",
|
|
44
|
+
"@opencode/plugin": "2.1.4",
|
|
44
45
|
"@tsconfig/bun": "1.0.9",
|
|
45
46
|
"@types/bun": "1.4.3",
|
|
46
|
-
"@typescript/native": "npm:typescript@7.0
|
|
47
|
+
"@typescript/native": "npm:typescript@7.1.0-beta",
|
|
47
48
|
"fast-check": "4.9.0"
|
|
48
49
|
}
|
|
49
50
|
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
requestRef2
|
|
3
|
-
} from "./service-status-gymtz25n.js";
|
|
4
|
-
import {
|
|
5
|
-
Api2
|
|
6
|
-
} from "./service-status-r82dtfrk.js";
|
|
7
|
-
|
|
8
|
-
// src/handlers/debug.ts
|
|
9
|
-
import { LocationServiceMap } from "@opencode/core/location-service-map";
|
|
10
|
-
import { Effect, Option, RcMap } from "effect";
|
|
11
|
-
import { HttpApiBuilder } from "effect/http-api";
|
|
12
|
-
var DebugHandler2 = HttpApiBuilder.group(Api2, "server.debug", (handlers) => handlers.handle("debug.location", Effect.fn(function* () {
|
|
13
|
-
const locations = Option.getOrThrow(yield* Effect.serviceOption(LocationServiceMap.Service));
|
|
14
|
-
return Array.from(yield* RcMap.keys(locations.rcMap));
|
|
15
|
-
})).handle("debug.location.evict", Effect.fn(function* (ctx) {
|
|
16
|
-
const locations = Option.getOrThrow(yield* Effect.serviceOption(LocationServiceMap.Service));
|
|
17
|
-
yield* locations.invalidate(requestRef2(ctx.request));
|
|
18
|
-
})));
|
|
19
|
-
|
|
20
|
-
export { DebugHandler2 };
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
response2
|
|
3
|
-
} from "./service-status-gymtz25n.js";
|
|
4
|
-
import {
|
|
5
|
-
Api2
|
|
6
|
-
} from "./service-status-r82dtfrk.js";
|
|
7
|
-
|
|
8
|
-
// src/handlers/mcp.ts
|
|
9
|
-
import { Mcp } from "@opencode/core/mcp/index";
|
|
10
|
-
import { McpServerNotFoundError } from "@opencode/protocol/errors";
|
|
11
|
-
import { Effect } from "effect";
|
|
12
|
-
import { HttpApiBuilder, HttpApiSchema } from "effect/http-api";
|
|
13
|
-
var notFound = (effect) => effect.pipe(Effect.mapError((error) => new McpServerNotFoundError({ server: error.server, message: error.message })));
|
|
14
|
-
var McpHandler2 = HttpApiBuilder.group(Api2, "server.mcp", (handlers) => Effect.gen(function* () {
|
|
15
|
-
return handlers.handle("mcp.list", Effect.fn(function* () {
|
|
16
|
-
const service = yield* Mcp.Service;
|
|
17
|
-
return yield* response2(service.servers().pipe(Effect.map((servers) => servers.map((info) => ({ name: info.name, status: info.status, integrationID: info.integrationID })))));
|
|
18
|
-
})).handle("mcp.add", Effect.fn(function* (ctx) {
|
|
19
|
-
const service = yield* Mcp.Service;
|
|
20
|
-
yield* service.add(ctx.params.server, ctx.payload.config);
|
|
21
|
-
return HttpApiSchema.NoContent.make();
|
|
22
|
-
})).handle("mcp.remove", Effect.fn(function* (ctx) {
|
|
23
|
-
const service = yield* Mcp.Service;
|
|
24
|
-
yield* notFound(service.remove(ctx.params.server));
|
|
25
|
-
return HttpApiSchema.NoContent.make();
|
|
26
|
-
})).handle("mcp.connect", Effect.fn(function* (ctx) {
|
|
27
|
-
const service = yield* Mcp.Service;
|
|
28
|
-
yield* notFound(service.connect(ctx.params.server));
|
|
29
|
-
return HttpApiSchema.NoContent.make();
|
|
30
|
-
})).handle("mcp.disconnect", Effect.fn(function* (ctx) {
|
|
31
|
-
const service = yield* Mcp.Service;
|
|
32
|
-
yield* notFound(service.disconnect(ctx.params.server));
|
|
33
|
-
return HttpApiSchema.NoContent.make();
|
|
34
|
-
})).handle("mcp.resource.catalog", Effect.fn(function* () {
|
|
35
|
-
const service = yield* Mcp.Service;
|
|
36
|
-
return yield* response2(service.resourceCatalog());
|
|
37
|
-
}));
|
|
38
|
-
}));
|
|
39
|
-
|
|
40
|
-
export { McpHandler2 };
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__export
|
|
3
|
-
} from "./service-status-9rqn6x4v.js";
|
|
4
|
-
|
|
5
|
-
// src/pty-environment.ts
|
|
6
|
-
var exports_pty_environment = {};
|
|
7
|
-
__export(exports_pty_environment, {
|
|
8
|
-
PtyEnvironment: () => exports_pty_environment,
|
|
9
|
-
Service: () => Service2,
|
|
10
|
-
layer: () => layer3,
|
|
11
|
-
node: () => node2
|
|
12
|
-
});
|
|
13
|
-
import { Context, Effect, Layer } from "effect";
|
|
14
|
-
import { makeGlobalNode } from "@opencode/util/effect/app-node";
|
|
15
|
-
|
|
16
|
-
class Service2 extends Context.Service()("@opencode/ServerPtyEnvironment") {
|
|
17
|
-
}
|
|
18
|
-
var layer3 = Layer.succeed(Service2, Service2.of({
|
|
19
|
-
get: () => Effect.succeed({})
|
|
20
|
-
}));
|
|
21
|
-
var node2 = makeGlobalNode({ service: Service2, layer: layer3, deps: [] });
|
|
22
|
-
|
|
23
|
-
export { Service2, layer3, node2, exports_pty_environment };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export * as PtyEnvironment from "./pty-environment";
|
|
2
|
-
import { Context, Effect, Layer } from "effect";
|
|
3
|
-
export interface Interface {
|
|
4
|
-
readonly get: (input: {
|
|
5
|
-
directory: string;
|
|
6
|
-
cwd: string;
|
|
7
|
-
}) => Effect.Effect<Record<string, string>>;
|
|
8
|
-
}
|
|
9
|
-
declare const Service_base: Context.ServiceClass<Service, "@opencode/ServerPtyEnvironment", Interface>;
|
|
10
|
-
export declare class Service extends Service_base {
|
|
11
|
-
}
|
|
12
|
-
export declare const layer: Layer.Layer<Service, never, never>;
|
|
13
|
-
export declare const node: import("@opencode/util/effect/layer-node").Provider<Service, never, import("@opencode/util/effect/layer-node").Tag<"global">>;
|
package/dist/pty-environment.js
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|