@opencode/server 0.0.0-dev-20670 → 0.0.0-dev-20677

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.
Files changed (103) hide show
  1. package/dist/api.js +5 -5
  2. package/dist/auth.js +1 -1
  3. package/dist/chunks/{pty-environment-rwwc81rq.js → handlers-060srtya.js} +1 -1
  4. package/dist/chunks/{pty-environment-nxdx74sv.js → handlers-0ecscp27.js} +1 -1
  5. package/dist/chunks/{pty-environment-0y03q8mn.js → handlers-16cmqpda.js} +2 -2
  6. package/dist/chunks/{pty-environment-zhympcbw.js → handlers-1fqejx75.js} +2 -2
  7. package/dist/chunks/{pty-environment-1kbkbftd.js → handlers-2zvpq8tw.js} +3 -3
  8. package/dist/chunks/{pty-environment-rhnwnf76.js → handlers-457g4xwd.js} +1 -1
  9. package/dist/chunks/{pty-environment-cm271yqe.js → handlers-4gv8dmwt.js} +2 -2
  10. package/dist/chunks/{pty-environment-99sfd1j8.js → handlers-54sczv30.js} +6 -6
  11. package/dist/chunks/{pty-environment-xsrtpxyd.js → handlers-5w24ch67.js} +4 -4
  12. package/dist/chunks/{pty-environment-1q557k81.js → handlers-65qdte8q.js} +8 -8
  13. package/dist/chunks/{pty-environment-dy0yben3.js → handlers-7egb8ksf.js} +1 -1
  14. package/dist/chunks/{pty-environment-bvp1r88z.js → handlers-7t5fpf2c.js} +2 -2
  15. package/dist/chunks/{pty-environment-c6kb7fmf.js → handlers-93wjydnn.js} +7 -7
  16. package/dist/chunks/{pty-environment-mjepr257.js → handlers-a0mxgf8z.js} +1 -1
  17. package/dist/chunks/{pty-environment-anm12x33.js → handlers-anm12x33.js} +1 -1
  18. package/dist/chunks/{pty-environment-agftk6b6.js → handlers-ct6j8k4q.js} +2 -2
  19. package/dist/chunks/{pty-environment-r5bb0n1s.js → handlers-cyyt3kqa.js} +1 -1
  20. package/dist/chunks/{pty-environment-48z6cw93.js → handlers-d1921aaj.js} +3 -3
  21. package/dist/chunks/{pty-environment-80mhd8t7.js → handlers-d1f2njwp.js} +2 -2
  22. package/dist/chunks/{pty-environment-w1fepcwh.js → handlers-ejv1yz41.js} +2 -2
  23. package/dist/chunks/handlers-es2fkh3t.js +106 -0
  24. package/dist/chunks/{pty-environment-eekrj6qv.js → handlers-fhsc782f.js} +1 -1
  25. package/dist/chunks/{pty-environment-wb43dd8f.js → handlers-gdwmkdcz.js} +2 -2
  26. package/dist/chunks/{pty-environment-gtkdacvk.js → handlers-gtkdacvk.js} +1 -1
  27. package/dist/chunks/{pty-environment-8c9kbrtm.js → handlers-gxmggy00.js} +1 -1
  28. package/dist/chunks/{pty-environment-3q3rk0h0.js → handlers-h1s215xd.js} +31 -31
  29. package/dist/chunks/{pty-environment-8mycc54y.js → handlers-hcz7vqkd.js} +19 -19
  30. package/dist/chunks/{pty-environment-4qyjttng.js → handlers-hz0cd1s4.js} +2 -2
  31. package/dist/chunks/{pty-environment-q92t5be2.js → handlers-k90hjrvz.js} +5 -5
  32. package/dist/chunks/{pty-environment-a7pkbba5.js → handlers-km405m0n.js} +4 -4
  33. package/dist/chunks/{pty-environment-j3pdvhe2.js → handlers-kx8p1w95.js} +2 -2
  34. package/dist/chunks/{pty-environment-jxc39wgw.js → handlers-m8mbkj90.js} +3 -3
  35. package/dist/chunks/{pty-environment-1w9kp1gg.js → handlers-mfpjbjd2.js} +2 -2
  36. package/dist/chunks/{pty-environment-06zrh5md.js → handlers-mjwexbc0.js} +2 -2
  37. package/dist/chunks/{pty-environment-d00srfh1.js → handlers-ra34escy.js} +1 -1
  38. package/dist/chunks/{pty-environment-sstsrjtg.js → handlers-rbn15j6z.js} +8 -8
  39. package/dist/chunks/{pty-environment-cy7y42ks.js → handlers-seaefwbv.js} +3 -3
  40. package/dist/chunks/{pty-environment-acgs9zzk.js → handlers-svzp39e6.js} +3 -3
  41. package/dist/chunks/{pty-environment-t70dy8sr.js → handlers-tawg2cre.js} +2 -2
  42. package/dist/chunks/{pty-environment-g9rgg5ys.js → handlers-v9z5c7vm.js} +2 -2
  43. package/dist/chunks/{pty-environment-hh8sn2n4.js → handlers-y99jf6a7.js} +6 -6
  44. package/dist/chunks/{pty-environment-m6xk774d.js → handlers-yptx5jm6.js} +2 -2
  45. package/dist/chunks/{pty-environment-s1rvn990.js → handlers-zj6jgztj.js} +6 -6
  46. package/dist/chunks/{pty-environment-gj6tv0s4.js → handlers-zy772eq6.js} +2 -2
  47. package/dist/cors.js +1 -1
  48. package/dist/event-feed.js +3 -3
  49. package/dist/fetch.js +49 -49
  50. package/dist/handlers/agent.js +6 -6
  51. package/dist/handlers/command.js +6 -6
  52. package/dist/handlers/config.js +6 -6
  53. package/dist/handlers/credential.js +6 -6
  54. package/dist/handlers/debug.js +6 -6
  55. package/dist/handlers/event.js +7 -7
  56. package/dist/handlers/form.js +6 -6
  57. package/dist/handlers/fs.js +6 -6
  58. package/dist/handlers/generate.js +6 -6
  59. package/dist/handlers/integration.js +6 -6
  60. package/dist/handlers/location.js +6 -6
  61. package/dist/handlers/mcp.js +6 -6
  62. package/dist/handlers/message.js +6 -6
  63. package/dist/handlers/migration.js +6 -6
  64. package/dist/handlers/model.js +6 -6
  65. package/dist/handlers/permission.js +6 -6
  66. package/dist/handlers/persistent-pty.js +8 -8
  67. package/dist/handlers/plugin.js +6 -6
  68. package/dist/handlers/project.js +6 -6
  69. package/dist/handlers/provider.js +6 -6
  70. package/dist/handlers/pty-socket.js +1 -1
  71. package/dist/handlers/pty.js +9 -9
  72. package/dist/handlers/reference.js +6 -6
  73. package/dist/handlers/rpc.js +6 -6
  74. package/dist/handlers/server.js +9 -9
  75. package/dist/handlers/session-error.js +1 -1
  76. package/dist/handlers/session.js +6 -6
  77. package/dist/handlers/shell.js +6 -6
  78. package/dist/handlers/skill.js +6 -6
  79. package/dist/handlers/vcs.js +6 -6
  80. package/dist/handlers/websearch.js +6 -6
  81. package/dist/handlers/worktree.js +6 -6
  82. package/dist/handlers.js +43 -43
  83. package/dist/location.js +4 -4
  84. package/dist/middleware/authorization.js +2 -2
  85. package/dist/middleware/form-location.js +3 -3
  86. package/dist/middleware/schema-error.js +1 -1
  87. package/dist/middleware/session-location.js +3 -3
  88. package/dist/pairing.js +5 -5
  89. package/dist/process.js +51 -51
  90. package/dist/pty-environment.js +5 -5
  91. package/dist/request-tracing.js +1 -1
  92. package/dist/routes.js +46 -46
  93. package/dist/server-info.js +5 -5
  94. package/dist/service-status.js +3 -3
  95. package/dist/workerd.js +50 -50
  96. package/package.json +8 -8
  97. package/dist/chunks/pty-environment-tyjvvckp.js +0 -34
  98. /package/dist/chunks/{pty-environment-9rqn6x4v.js → handlers-9rqn6x4v.js} +0 -0
  99. /package/dist/chunks/{pty-environment-hezj1jdf.js → handlers-hezj1jdf.js} +0 -0
  100. /package/dist/chunks/{pty-environment-q4bn6dy8.js → handlers-q4bn6dy8.js} +0 -0
  101. /package/dist/chunks/{pty-environment-smaf4a18.js → handlers-smaf4a18.js} +0 -0
  102. /package/dist/chunks/{pty-environment-t8yzmczr.js → handlers-t8yzmczr.js} +0 -0
  103. /package/dist/chunks/{pty-environment-yc7nft6q.js → handlers-yc7nft6q.js} +0 -0
package/dist/api.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Api2
3
- } from "./chunks/pty-environment-jxc39wgw.js";
4
- import"./chunks/pty-environment-nxdx74sv.js";
5
- import"./chunks/pty-environment-d00srfh1.js";
6
- import"./chunks/pty-environment-acgs9zzk.js";
7
- import"./chunks/pty-environment-smaf4a18.js";
3
+ } from "./chunks/handlers-m8mbkj90.js";
4
+ import"./chunks/handlers-ra34escy.js";
5
+ import"./chunks/handlers-0ecscp27.js";
6
+ import"./chunks/handlers-svzp39e6.js";
7
+ import"./chunks/handlers-smaf4a18.js";
8
8
  export {
9
9
  Api2 as Api
10
10
  };
package/dist/auth.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  verifySession2,
8
8
  sessionCookieName2,
9
9
  exports_auth
10
- } from "./chunks/pty-environment-anm12x33.js";
10
+ } from "./chunks/handlers-anm12x33.js";
11
11
  export {
12
12
  Config2 as Config,
13
13
  SESSION_TTL_SECONDS2 as SESSION_TTL_SECONDS,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
 
5
5
  // src/handlers/worktree.ts
6
6
  import { Git } from "@opencode/core/git";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  locationErrors2,
3
3
  sessionInfo2
4
- } from "./pty-environment-acgs9zzk.js";
4
+ } from "./handlers-svzp39e6.js";
5
5
 
6
6
  // src/middleware/session-location.ts
7
7
  import { Instance } from "@opencode/core/instance/service";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./pty-environment-acgs9zzk.js";
3
+ } from "./handlers-svzp39e6.js";
4
4
  import {
5
5
  Api2
6
- } from "./pty-environment-jxc39wgw.js";
6
+ } from "./handlers-m8mbkj90.js";
7
7
 
8
8
  // src/handlers/command.ts
9
9
  import { Command } from "@opencode/core/command";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./pty-environment-acgs9zzk.js";
3
+ } from "./handlers-svzp39e6.js";
4
4
  import {
5
5
  Api2
6
- } from "./pty-environment-jxc39wgw.js";
6
+ } from "./handlers-m8mbkj90.js";
7
7
 
8
8
  // src/handlers/shell.ts
9
9
  import { Shell } from "@opencode/core/shell";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  missingSession2
3
- } from "./pty-environment-smaf4a18.js";
3
+ } from "./handlers-smaf4a18.js";
4
4
  import {
5
5
  locationErrors2,
6
6
  response2,
7
7
  sessionInfo2
8
- } from "./pty-environment-acgs9zzk.js";
8
+ } from "./handlers-svzp39e6.js";
9
9
  import {
10
10
  Api2
11
- } from "./pty-environment-jxc39wgw.js";
11
+ } from "./handlers-m8mbkj90.js";
12
12
 
13
13
  // src/handlers/permission.ts
14
14
  import { Instance } from "@opencode/core/instance/service";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
 
5
5
  // src/handlers/migration.ts
6
6
  import { V1Migration } from "@opencode/core/database/v1-migration";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./pty-environment-acgs9zzk.js";
3
+ } from "./handlers-svzp39e6.js";
4
4
  import {
5
5
  Api2
6
- } from "./pty-environment-jxc39wgw.js";
6
+ } from "./handlers-m8mbkj90.js";
7
7
 
8
8
  // src/handlers/skill.ts
9
9
  import { Skill } from "@opencode/core/skill";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  __export
3
- } from "./pty-environment-9rqn6x4v.js";
3
+ } from "./handlers-9rqn6x4v.js";
4
4
 
5
5
  // src/event-feed.ts
6
6
  var exports_event_feed = {};
7
7
  __export(exports_event_feed, {
8
8
  EncodingError: () => EncodingError2,
9
9
  EventFeed: () => exports_event_feed,
10
- Service: () => Service4,
10
+ Service: () => Service5,
11
11
  SubscriberCapacity: () => SubscriberCapacity2,
12
12
  SubscriberOverflowError: () => SubscriberOverflowError2,
13
13
  frame: () => frame2,
@@ -30,7 +30,7 @@ class EncodingError2 extends Schema.TaggedError()("EventFeed.EncodingError", {
30
30
  }) {
31
31
  }
32
32
 
33
- class Service4 extends Context.Service()("@opencode/server/EventFeed") {
33
+ class Service5 extends Context.Service()("@opencode/server/EventFeed") {
34
34
  }
35
35
  function frame2(event) {
36
36
  return `data: ${JSON.stringify(event)}
@@ -71,13 +71,13 @@ var make4 = Effect.fn("EventFeed.make")(function* (observe, options) {
71
71
  });
72
72
  const unsubscribe = yield* observe(publish);
73
73
  yield* Effect.addFinalizer(() => unsubscribe);
74
- return Service4.of({
74
+ return Service5.of({
75
75
  subscribe: Effect.acquireRelease(Queue.dropping(capacity).pipe(Effect.tap((queue) => Effect.sync(() => subscribers.add(queue)))), (queue) => Effect.sync(() => subscribers.delete(queue)).pipe(Effect.andThen(Queue.shutdown(queue)), Effect.asVoid)).pipe(Effect.map(Stream.fromQueue))
76
76
  });
77
77
  });
78
- var layer5 = Layer.effect(Service4, Effect.gen(function* () {
78
+ var layer5 = Layer.effect(Service5, Effect.gen(function* () {
79
79
  const bus = yield* Bus.Service;
80
80
  return yield* make4(bus.listen);
81
81
  }));
82
82
 
83
- export { SubscriberCapacity2, SubscriberOverflowError2, EncodingError2, Service4, frame2, make4, layer5, exports_event_feed };
83
+ export { SubscriberCapacity2, SubscriberOverflowError2, EncodingError2, Service5, frame2, make4, layer5, exports_event_feed };
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  __export
3
- } from "./pty-environment-9rqn6x4v.js";
3
+ } from "./handlers-9rqn6x4v.js";
4
4
 
5
5
  // src/service-status.ts
6
6
  var exports_service_status = {};
7
7
  __export(exports_service_status, {
8
8
  Status: () => exports_service_status,
9
- make: () => make2
9
+ make: () => make3
10
10
  });
11
11
  import { Effect, Ref } from "effect";
12
- var make2 = Effect.fnUntraced(function* (options = {}) {
12
+ var make3 = Effect.fnUntraced(function* (options = {}) {
13
13
  const current = yield* Ref.make(options.initial ?? { type: "starting" });
14
14
  const beginStopping = Ref.update(current, (status) => status.type === "stopping" ? status : { type: "stopping" });
15
15
  return {
@@ -20,4 +20,4 @@ var make2 = Effect.fnUntraced(function* (options = {}) {
20
20
  };
21
21
  });
22
22
 
23
- export { make2, exports_service_status };
23
+ export { make3, exports_service_status };
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
  import {
5
5
  SESSION_TTL_SECONDS2,
6
6
  Config2,
7
7
  issueSession2,
8
8
  sessionCookieName2
9
- } from "./pty-environment-anm12x33.js";
9
+ } from "./handlers-anm12x33.js";
10
10
  import {
11
- Service2
12
- } from "./pty-environment-c6kb7fmf.js";
11
+ Service4
12
+ } from "./handlers-93wjydnn.js";
13
13
  import {
14
- Service5
15
- } from "./pty-environment-sstsrjtg.js";
14
+ Service2
15
+ } from "./handlers-rbn15j6z.js";
16
16
 
17
17
  // src/handlers/server.ts
18
18
  import { Duration, Effect } from "effect";
@@ -21,10 +21,10 @@ import { HttpApiBuilder } from "effect/unstable/httpapi";
21
21
  import { PersistentPty } from "@opencode/core/persistent-pty";
22
22
  import { UnauthorizedError } from "@opencode/protocol/errors";
23
23
  var ServerHandler2 = HttpApiBuilder.group(Api2, "server.server", (handlers) => Effect.gen(function* () {
24
- const pairing = yield* Service5;
24
+ const pairing = yield* Service2;
25
25
  const auth = yield* Config2;
26
26
  return handlers.handle("server.info", () => Effect.gen(function* () {
27
- const info = yield* Service2;
27
+ const info = yield* Service4;
28
28
  return {
29
29
  version: info.app.version ?? "unknown",
30
30
  pid: process.pid ?? 0,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
 
5
5
  // src/handlers/project.ts
6
6
  import { Project } from "@opencode/core/project";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  missingSession2,
3
3
  failedMessageDecode2
4
- } from "./pty-environment-smaf4a18.js";
4
+ } from "./handlers-smaf4a18.js";
5
5
  import {
6
6
  Api2
7
- } from "./pty-environment-jxc39wgw.js";
7
+ } from "./handlers-m8mbkj90.js";
8
8
 
9
9
  // src/handlers/message.ts
10
10
  import { SessionMessage } from "@opencode/core/session/message";
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  __export
3
- } from "./pty-environment-9rqn6x4v.js";
3
+ } from "./handlers-9rqn6x4v.js";
4
4
 
5
5
  // src/server-info.ts
6
6
  var exports_server_info = {};
7
7
  __export(exports_server_info, {
8
8
  ServerInfo: () => exports_server_info,
9
- Service: () => Service2,
9
+ Service: () => Service4,
10
10
  connectionURLs: () => connectionURLs2,
11
- layer: () => layer2
11
+ layer: () => layer4
12
12
  });
13
13
  import { Context, Layer } from "effect";
14
14
  import { networkInterfaces } from "node:os";
15
15
 
16
- class Service2 extends Context.Service()("@opencode/server/ServerInfo") {
16
+ class Service4 extends Context.Service()("@opencode/server/ServerInfo") {
17
17
  }
18
- function layer2(urls, tmp, app = {}) {
19
- return Layer.succeed(Service2, Service2.of({ urls, app, paths: { tmp } }));
18
+ function layer4(urls, tmp, app = {}) {
19
+ return Layer.succeed(Service4, Service4.of({ urls, app, paths: { tmp } }));
20
20
  }
21
21
  function connectionURLs2(value, requestedHostname) {
22
22
  const url = new URL(value);
@@ -38,4 +38,4 @@ function connectionURLs2(value, requestedHostname) {
38
38
  ];
39
39
  }
40
40
 
41
- export { Service2, layer2, connectionURLs2, exports_server_info };
41
+ export { Service4, layer4, connectionURLs2, exports_server_info };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
 
5
5
  // src/handlers/location.ts
6
6
  import { Location } from "@opencode/core/location";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./pty-environment-9rqn6x4v.js";
3
+ } from "./handlers-9rqn6x4v.js";
4
4
 
5
5
  // src/auth.ts
6
6
  var exports_auth = {};
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./pty-environment-acgs9zzk.js";
3
+ } from "./handlers-svzp39e6.js";
4
4
  import {
5
5
  Api2
6
- } from "./pty-environment-jxc39wgw.js";
6
+ } from "./handlers-m8mbkj90.js";
7
7
 
8
8
  // src/handlers/form.ts
9
9
  import { Form } from "@opencode/core/form";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
 
5
5
  // src/handlers/config.ts
6
6
  import { Config } from "@opencode/core/config";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
  import {
5
5
  CorsConfig2,
6
6
  isAllowedRequestOrigin2
7
- } from "./pty-environment-q4bn6dy8.js";
7
+ } from "./handlers-q4bn6dy8.js";
8
8
  import {
9
9
  runPtySocket2
10
- } from "./pty-environment-hezj1jdf.js";
10
+ } from "./handlers-hezj1jdf.js";
11
11
 
12
12
  // src/handlers/persistent-pty.ts
13
13
  import { PersistentPty } from "@opencode/core/persistent-pty";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./pty-environment-acgs9zzk.js";
3
+ } from "./handlers-svzp39e6.js";
4
4
  import {
5
5
  Api2
6
- } from "./pty-environment-jxc39wgw.js";
6
+ } from "./handlers-m8mbkj90.js";
7
7
 
8
8
  // src/handlers/websearch.ts
9
9
  import { WebSearch } from "@opencode/core/websearch";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./pty-environment-acgs9zzk.js";
3
+ } from "./handlers-svzp39e6.js";
4
4
  import {
5
5
  Api2
6
- } from "./pty-environment-jxc39wgw.js";
6
+ } from "./handlers-m8mbkj90.js";
7
7
 
8
8
  // src/handlers/plugin.ts
9
9
  import { Plugin } from "@opencode/core/plugin";
@@ -0,0 +1,106 @@
1
+ import {
2
+ response2
3
+ } from "./handlers-svzp39e6.js";
4
+ import {
5
+ Api2
6
+ } from "./handlers-m8mbkj90.js";
7
+
8
+ // src/handlers/fs.ts
9
+ import { FileSystem } from "@opencode/core/filesystem";
10
+ import { RelativePath } from "@opencode/core/schema";
11
+ import { FileNotFoundError } from "@opencode/protocol/errors";
12
+ import { Effect, Option, Stream } from "effect";
13
+ import { HttpServerResponse } from "effect/unstable/http";
14
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
15
+ var FileSystemHandler2 = HttpApiBuilder.group(Api2, "server.fs", (handlers) => Effect.gen(function* () {
16
+ return handlers.handleRaw("fs.read", (ctx) => Effect.gen(function* () {
17
+ const path = yield* decodeRequestPath(ctx.request.url);
18
+ const fs = yield* FileSystem.Service;
19
+ const file = yield* fs.read({ path }).pipe(Effect.mapError((error) => new FileNotFoundError({ path: error.path, message: `File not found: ${error.path}` })));
20
+ return serveFile(ctx.request, file);
21
+ })).handle("fs.list", (ctx) => response2(Effect.gen(function* () {
22
+ const fs = yield* FileSystem.Service;
23
+ return yield* fs.list(ctx.query);
24
+ }))).handle("fs.find", (ctx) => response2(Effect.gen(function* () {
25
+ const fs = yield* FileSystem.Service;
26
+ return yield* fs.find(ctx.query);
27
+ }))).handle("fs.write", (ctx) => response2(Effect.gen(function* () {
28
+ const fs = yield* FileSystem.Service;
29
+ return yield* fs.write({ path: ctx.query.path, data: ctx.payload });
30
+ })));
31
+ }));
32
+ function decodeRequestPath(url) {
33
+ const raw = new URL(url, "http://localhost").pathname.slice(13);
34
+ return Effect.try({
35
+ try: () => RelativePath.make(decodeURIComponent(raw)),
36
+ catch: () => new FileNotFoundError({ path: raw, message: `File not found: ${raw}` })
37
+ });
38
+ }
39
+ function serveFile(request, file) {
40
+ const etag = `W/"${file.size.toString(16)}-${Option.match(file.mtime, {
41
+ onNone: () => "0",
42
+ onSome: (mtime) => mtime.getTime().toString(16)
43
+ })}"`;
44
+ const lastModified = Option.getOrUndefined(Option.map(file.mtime, (mtime) => mtime.toUTCString()));
45
+ const validators = {
46
+ "cache-control": "no-cache, no-transform",
47
+ etag,
48
+ ...lastModified === undefined ? {} : { "last-modified": lastModified }
49
+ };
50
+ if (isNotModified(request, etag, lastModified))
51
+ return HttpServerResponse.empty({ status: 304, headers: validators });
52
+ const rangeHeader = request.method === "GET" ? request.headers["range"] : undefined;
53
+ const range = rangeHeader !== undefined && matchesIfRange(request.headers["if-range"], etag, lastModified) ? parseRange(rangeHeader, file.size) : undefined;
54
+ if (range === "unsatisfiable")
55
+ return HttpServerResponse.empty({
56
+ status: 416,
57
+ headers: { "accept-ranges": "bytes", "content-range": `bytes */${file.size}` }
58
+ });
59
+ const offset = range?.start ?? 0;
60
+ const length = range === undefined ? file.size : range.end - range.start + 1;
61
+ return HttpServerResponse.stream(length === 0 ? Stream.empty : file.stream({ offset, bytesToRead: length }), {
62
+ status: range === undefined ? 200 : 206,
63
+ contentLength: length,
64
+ headers: {
65
+ ...validators,
66
+ "accept-ranges": "bytes",
67
+ "content-type": file.mime,
68
+ ...range === undefined ? {} : { "content-range": `bytes ${range.start}-${range.end}/${file.size}` }
69
+ }
70
+ });
71
+ }
72
+ function isNotModified(request, etag, lastModified) {
73
+ const ifNoneMatch = request.headers["if-none-match"];
74
+ if (ifNoneMatch !== undefined)
75
+ return ifNoneMatch.split(",").some((tag) => tag.trim() === "*" || stripWeak(tag) === stripWeak(etag));
76
+ const ifModifiedSince = request.headers["if-modified-since"];
77
+ return ifModifiedSince !== undefined && lastModified !== undefined && Date.parse(lastModified) <= Date.parse(ifModifiedSince);
78
+ }
79
+ function matchesIfRange(ifRange, etag, lastModified) {
80
+ if (ifRange === undefined)
81
+ return true;
82
+ if (/^\s*(w\/)?"/i.test(ifRange))
83
+ return stripWeak(ifRange) === stripWeak(etag);
84
+ return lastModified !== undefined && Date.parse(ifRange) === Date.parse(lastModified);
85
+ }
86
+ function stripWeak(etag) {
87
+ return etag.trim().replace(/^w\//i, "");
88
+ }
89
+ function parseRange(header, size) {
90
+ const match = /^bytes=\s*(\d*)\s*-\s*(\d*)\s*$/i.exec(header.trim());
91
+ if (match === null || match[1] === "" && match[2] === "")
92
+ return;
93
+ if (match[1] === "") {
94
+ const suffix = Number(match[2]);
95
+ if (suffix === 0 || size === 0)
96
+ return "unsatisfiable";
97
+ return { start: Math.max(size - suffix, 0), end: size - 1 };
98
+ }
99
+ const start = Number(match[1]);
100
+ const end = match[2] === "" ? size - 1 : Number(match[2]);
101
+ if (start > end || start >= size)
102
+ return "unsatisfiable";
103
+ return { start, end: Math.min(end, size - 1) };
104
+ }
105
+
106
+ export { FileSystemHandler2 };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
 
5
5
  // src/handlers/credential.ts
6
6
  import { Credential } from "@opencode/core/credential";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  locationErrors2
3
- } from "./pty-environment-acgs9zzk.js";
3
+ } from "./handlers-svzp39e6.js";
4
4
  import {
5
5
  Api2
6
- } from "./pty-environment-jxc39wgw.js";
6
+ } from "./handlers-m8mbkj90.js";
7
7
 
8
8
  // src/handlers/generate.ts
9
9
  import { Generate } from "@opencode/core/generate";
@@ -4,7 +4,7 @@ import {
4
4
  authorized2,
5
5
  verifySession2,
6
6
  sessionCookieName2
7
- } from "./pty-environment-anm12x33.js";
7
+ } from "./handlers-anm12x33.js";
8
8
 
9
9
  // src/middleware/authorization.ts
10
10
  import { UnauthorizedError } from "@opencode/protocol/errors";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./pty-environment-jxc39wgw.js";
3
+ } from "./handlers-m8mbkj90.js";
4
4
 
5
5
  // src/handlers/rpc.ts
6
6
  import { Rpc } from "@opencode/core/rpc";
@@ -1,96 +1,96 @@
1
1
  import {
2
2
  GenerateHandler2
3
- } from "./pty-environment-wb43dd8f.js";
3
+ } from "./handlers-gdwmkdcz.js";
4
4
  import {
5
5
  MessageHandler2
6
- } from "./pty-environment-bvp1r88z.js";
6
+ } from "./handlers-7t5fpf2c.js";
7
7
  import {
8
8
  ModelHandler2
9
- } from "./pty-environment-gj6tv0s4.js";
9
+ } from "./handlers-zy772eq6.js";
10
10
  import {
11
11
  ProviderHandler2
12
- } from "./pty-environment-4qyjttng.js";
12
+ } from "./handlers-hz0cd1s4.js";
13
13
  import {
14
14
  SessionHandler2
15
- } from "./pty-environment-cy7y42ks.js";
15
+ } from "./handlers-seaefwbv.js";
16
16
  import {
17
17
  PermissionHandler2
18
- } from "./pty-environment-1kbkbftd.js";
18
+ } from "./handlers-2zvpq8tw.js";
19
19
  import {
20
20
  FileSystemHandler2
21
- } from "./pty-environment-tyjvvckp.js";
21
+ } from "./handlers-es2fkh3t.js";
22
22
  import {
23
23
  FormHandler2
24
- } from "./pty-environment-agftk6b6.js";
24
+ } from "./handlers-ct6j8k4q.js";
25
25
  import {
26
26
  CommandHandler2
27
- } from "./pty-environment-0y03q8mn.js";
27
+ } from "./handlers-16cmqpda.js";
28
28
  import {
29
29
  SkillHandler2
30
- } from "./pty-environment-cm271yqe.js";
30
+ } from "./handlers-4gv8dmwt.js";
31
31
  import {
32
32
  RpcHandler2
33
- } from "./pty-environment-8c9kbrtm.js";
33
+ } from "./handlers-gxmggy00.js";
34
34
  import {
35
35
  layer5
36
- } from "./pty-environment-99sfd1j8.js";
36
+ } from "./handlers-54sczv30.js";
37
37
  import {
38
38
  EventHandler2
39
- } from "./pty-environment-a7pkbba5.js";
39
+ } from "./handlers-km405m0n.js";
40
40
  import {
41
41
  AgentHandler2
42
- } from "./pty-environment-1w9kp1gg.js";
42
+ } from "./handlers-mfpjbjd2.js";
43
43
  import {
44
44
  PluginHandler2
45
- } from "./pty-environment-w1fepcwh.js";
45
+ } from "./handlers-ejv1yz41.js";
46
46
  import {
47
47
  ServerHandler2
48
- } from "./pty-environment-1q557k81.js";
48
+ } from "./handlers-65qdte8q.js";
49
49
  import {
50
50
  DebugHandler2
51
- } from "./pty-environment-m6xk774d.js";
51
+ } from "./handlers-yptx5jm6.js";
52
52
  import {
53
53
  PtyHandler2
54
- } from "./pty-environment-q92t5be2.js";
54
+ } from "./handlers-k90hjrvz.js";
55
55
  import {
56
56
  PersistentPtyHandler2
57
- } from "./pty-environment-48z6cw93.js";
57
+ } from "./handlers-d1921aaj.js";
58
58
  import {
59
59
  ShellHandler2
60
- } from "./pty-environment-zhympcbw.js";
60
+ } from "./handlers-1fqejx75.js";
61
61
  import {
62
62
  ReferenceHandler2
63
- } from "./pty-environment-t70dy8sr.js";
63
+ } from "./handlers-tawg2cre.js";
64
64
  import {
65
65
  LocationHandler2
66
- } from "./pty-environment-mjepr257.js";
66
+ } from "./handlers-a0mxgf8z.js";
67
67
  import {
68
68
  IntegrationHandler2
69
- } from "./pty-environment-06zrh5md.js";
69
+ } from "./handlers-mjwexbc0.js";
70
70
  import {
71
71
  WebSearchHandler2
72
- } from "./pty-environment-80mhd8t7.js";
72
+ } from "./handlers-d1f2njwp.js";
73
73
  import {
74
74
  McpHandler2
75
- } from "./pty-environment-j3pdvhe2.js";
75
+ } from "./handlers-kx8p1w95.js";
76
76
  import {
77
77
  CredentialHandler2
78
- } from "./pty-environment-eekrj6qv.js";
78
+ } from "./handlers-fhsc782f.js";
79
79
  import {
80
80
  ProjectHandler2
81
- } from "./pty-environment-dy0yben3.js";
81
+ } from "./handlers-7egb8ksf.js";
82
82
  import {
83
83
  WorktreeHandler2
84
- } from "./pty-environment-rwwc81rq.js";
84
+ } from "./handlers-060srtya.js";
85
85
  import {
86
86
  VcsHandler2
87
- } from "./pty-environment-g9rgg5ys.js";
87
+ } from "./handlers-v9z5c7vm.js";
88
88
  import {
89
89
  MigrationHandler2
90
- } from "./pty-environment-rhnwnf76.js";
90
+ } from "./handlers-457g4xwd.js";
91
91
  import {
92
92
  ConfigHandler2
93
- } from "./pty-environment-r5bb0n1s.js";
93
+ } from "./handlers-cyyt3kqa.js";
94
94
 
95
95
  // src/handlers.ts
96
96
  import { Layer } from "effect";