@opencode/server 2.0.26 → 2.0.28

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 (144) hide show
  1. package/dist/api.d.ts +17 -14
  2. package/dist/api.js +5 -5
  3. package/dist/auth.js +1 -1
  4. package/dist/chunks/{fetch-6fr0a7bp.js → server-info-1fx5fmdj.js} +22 -21
  5. package/dist/chunks/{fetch-80mhd8t7.js → server-info-2nsepnqy.js} +3 -3
  6. package/dist/chunks/{fetch-zhympcbw.js → server-info-2yr2dq97.js} +3 -3
  7. package/dist/chunks/{fetch-d00srfh1.js → server-info-3154e7fk.js} +3 -3
  8. package/dist/chunks/{fetch-g9rgg5ys.js → server-info-31acg4hb.js} +3 -3
  9. package/dist/chunks/{fetch-w1fepcwh.js → server-info-49c878v9.js} +3 -3
  10. package/dist/chunks/{fetch-cm271yqe.js → server-info-4b0899hb.js} +3 -3
  11. package/dist/chunks/{fetch-8c9kbrtm.js → server-info-5w10ccet.js} +2 -2
  12. package/dist/chunks/{fetch-gtkdacvk.js → server-info-5ytyqf1q.js} +5 -4
  13. package/dist/chunks/{fetch-hajt4q09.js → server-info-72ygafj3.js} +3 -3
  14. package/dist/chunks/{fetch-n1svm92q.js → server-info-75c938bc.js} +6 -6
  15. package/dist/chunks/{fetch-agftk6b6.js → server-info-91mt6ewz.js} +3 -3
  16. package/dist/chunks/{fetch-t1n0m4wb.js → server-info-a6kxe6a7.js} +30 -34
  17. package/dist/chunks/{fetch-1kbkbftd.js → server-info-agw55v2c.js} +4 -4
  18. package/dist/chunks/{fetch-anm12x33.js → server-info-anm12x33.js} +1 -1
  19. package/dist/chunks/{fetch-mjepr257.js → server-info-cfhthk6z.js} +2 -2
  20. package/dist/chunks/{fetch-j3pdvhe2.js → server-info-cx1d1bht.js} +3 -3
  21. package/dist/chunks/{fetch-gj6tv0s4.js → server-info-e4x9285j.js} +6 -3
  22. package/dist/chunks/{fetch-r5bb0n1s.js → server-info-e7pctymn.js} +2 -2
  23. package/dist/chunks/{fetch-t8yzmczr.js → server-info-erzfdgke.js} +1 -1
  24. package/dist/chunks/{fetch-eekrj6qv.js → server-info-f4b2q3tn.js} +2 -2
  25. package/dist/chunks/{fetch-cy7y42ks.js → server-info-f6n7ws9b.js} +4 -4
  26. package/dist/chunks/{fetch-78n975k2.js → server-info-fzcjf2mc.js} +10 -10
  27. package/dist/chunks/{fetch-1w9kp1gg.js → server-info-ga3m49sz.js} +3 -3
  28. package/dist/chunks/{fetch-kzj5eept.js → server-info-gat934pw.js} +33 -33
  29. package/dist/chunks/{fetch-acgs9zzk.js → server-info-gymtz25n.js} +14 -6
  30. package/dist/chunks/server-info-h6rt5k9s.js +24 -0
  31. package/dist/chunks/{fetch-54sczv30.js → server-info-hg93khqa.js} +7 -7
  32. package/dist/chunks/server-info-j5aeaa16.js +15 -0
  33. package/dist/chunks/{fetch-bvp1r88z.js → server-info-jabz3c4v.js} +3 -3
  34. package/dist/chunks/{fetch-t70dy8sr.js → server-info-kd6vzpgq.js} +3 -3
  35. package/dist/chunks/{fetch-rwwc81rq.js → server-info-pf9p09ew.js} +2 -2
  36. package/dist/chunks/{fetch-wb43dd8f.js → server-info-pmjbkszz.js} +6 -4
  37. package/dist/chunks/{fetch-c6kb7fmf.js → server-info-s07e4y6n.js} +7 -7
  38. package/dist/chunks/{fetch-0chp8crd.js → server-info-sstsrjtg.js} +8 -8
  39. package/dist/chunks/{fetch-4qyjttng.js → server-info-swdgbzpj.js} +3 -3
  40. package/dist/chunks/{fetch-jxc39wgw.js → server-info-t3j5ftv1.js} +3 -3
  41. package/dist/chunks/{fetch-053p7hbt.js → server-info-v1czxanb.js} +7 -7
  42. package/dist/chunks/{fetch-b44t4qeg.js → server-info-wys7phx0.js} +30 -29
  43. package/dist/chunks/{fetch-rhnwnf76.js → server-info-x0608mvx.js} +2 -2
  44. package/dist/chunks/{fetch-nxdx74sv.js → server-info-x74w7e1f.js} +3 -3
  45. package/dist/chunks/{fetch-q9rkrfm7.js → server-info-x9vr2ttf.js} +5 -5
  46. package/dist/chunks/{fetch-0y03q8mn.js → server-info-xmwystkq.js} +3 -3
  47. package/dist/chunks/{fetch-5w24ch67.js → server-info-xsrtpxyd.js} +4 -4
  48. package/dist/chunks/{fetch-m4fq9qce.js → server-info-y9mzegx1.js} +6 -6
  49. package/dist/chunks/{fetch-m6xk774d.js → server-info-zs542hzz.js} +3 -3
  50. package/dist/cors.js +1 -1
  51. package/dist/event-feed.js +5 -5
  52. package/dist/fetch.d.ts +5 -5
  53. package/dist/fetch.js +49 -49
  54. package/dist/handlers/agent.d.ts +1 -1
  55. package/dist/handlers/agent.js +6 -6
  56. package/dist/handlers/command.d.ts +1 -1
  57. package/dist/handlers/command.js +6 -6
  58. package/dist/handlers/config.d.ts +1 -1
  59. package/dist/handlers/config.js +6 -6
  60. package/dist/handlers/credential.d.ts +1 -1
  61. package/dist/handlers/credential.js +6 -6
  62. package/dist/handlers/debug.d.ts +1 -1
  63. package/dist/handlers/debug.js +6 -6
  64. package/dist/handlers/event.d.ts +1 -1
  65. package/dist/handlers/event.js +7 -7
  66. package/dist/handlers/form.d.ts +1 -1
  67. package/dist/handlers/form.js +6 -6
  68. package/dist/handlers/fs.d.ts +1 -1
  69. package/dist/handlers/fs.js +6 -6
  70. package/dist/handlers/generate.d.ts +1 -1
  71. package/dist/handlers/generate.js +6 -6
  72. package/dist/handlers/integration.d.ts +1 -1
  73. package/dist/handlers/integration.js +6 -6
  74. package/dist/handlers/location.d.ts +1 -1
  75. package/dist/handlers/location.js +6 -6
  76. package/dist/handlers/mcp.d.ts +1 -1
  77. package/dist/handlers/mcp.js +6 -6
  78. package/dist/handlers/message.d.ts +1 -1
  79. package/dist/handlers/message.js +6 -6
  80. package/dist/handlers/migration.d.ts +1 -1
  81. package/dist/handlers/migration.js +6 -6
  82. package/dist/handlers/model.d.ts +1 -1
  83. package/dist/handlers/model.js +6 -6
  84. package/dist/handlers/permission.d.ts +1 -1
  85. package/dist/handlers/permission.js +6 -6
  86. package/dist/handlers/persistent-pty.d.ts +1 -1
  87. package/dist/handlers/persistent-pty.js +8 -8
  88. package/dist/handlers/plugin.d.ts +1 -1
  89. package/dist/handlers/plugin.js +6 -6
  90. package/dist/handlers/project.d.ts +1 -1
  91. package/dist/handlers/project.js +6 -6
  92. package/dist/handlers/provider.d.ts +1 -1
  93. package/dist/handlers/provider.js +6 -6
  94. package/dist/handlers/pty-socket.d.ts +10 -2
  95. package/dist/handlers/pty-socket.js +1 -1
  96. package/dist/handlers/pty.d.ts +1 -1
  97. package/dist/handlers/pty.js +9 -9
  98. package/dist/handlers/reference.d.ts +1 -1
  99. package/dist/handlers/reference.js +6 -6
  100. package/dist/handlers/rpc.d.ts +1 -1
  101. package/dist/handlers/rpc.js +6 -6
  102. package/dist/handlers/server.d.ts +1 -1
  103. package/dist/handlers/server.js +9 -9
  104. package/dist/handlers/session-error.js +1 -1
  105. package/dist/handlers/session.d.ts +1 -1
  106. package/dist/handlers/session.js +6 -6
  107. package/dist/handlers/shell.d.ts +1 -1
  108. package/dist/handlers/shell.js +6 -6
  109. package/dist/handlers/skill.d.ts +1 -1
  110. package/dist/handlers/skill.js +6 -6
  111. package/dist/handlers/vcs.d.ts +1 -1
  112. package/dist/handlers/vcs.js +6 -6
  113. package/dist/handlers/websearch.d.ts +1 -1
  114. package/dist/handlers/websearch.js +6 -6
  115. package/dist/handlers/worktree.d.ts +1 -1
  116. package/dist/handlers/worktree.js +6 -6
  117. package/dist/handlers.d.ts +1 -1
  118. package/dist/handlers.js +43 -43
  119. package/dist/location.d.ts +5 -3
  120. package/dist/location.js +6 -4
  121. package/dist/middleware/authorization.d.ts +1 -1
  122. package/dist/middleware/authorization.js +2 -2
  123. package/dist/middleware/form-location.d.ts +2 -2
  124. package/dist/middleware/form-location.js +3 -3
  125. package/dist/middleware/schema-error.js +1 -1
  126. package/dist/middleware/session-location.d.ts +1 -1
  127. package/dist/middleware/session-location.js +3 -3
  128. package/dist/pairing.js +5 -5
  129. package/dist/process.d.ts +9 -8
  130. package/dist/process.js +52 -52
  131. package/dist/pty-environment.js +5 -5
  132. package/dist/request-tracing.js +1 -1
  133. package/dist/routes.d.ts +3 -3
  134. package/dist/routes.js +46 -46
  135. package/dist/server-info.js +5 -5
  136. package/dist/service-status.js +3 -3
  137. package/dist/workerd.js +50 -50
  138. package/package.json +14 -12
  139. package/dist/chunks/fetch-dy0yben3.js +0 -15
  140. package/dist/chunks/fetch-hezj1jdf.js +0 -7
  141. /package/dist/chunks/{fetch-9rqn6x4v.js → server-info-9rqn6x4v.js} +0 -0
  142. /package/dist/chunks/{fetch-q4bn6dy8.js → server-info-q4bn6dy8.js} +0 -0
  143. /package/dist/chunks/{fetch-smaf4a18.js → server-info-smaf4a18.js} +0 -0
  144. /package/dist/chunks/{fetch-yc7nft6q.js → server-info-yc7nft6q.js} +0 -0
package/dist/api.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LocationMiddleware } from "./location";
2
2
  import { FormLocationMiddleware } from "./middleware/form-location";
3
3
  import { SessionLocationMiddleware } from "./middleware/session-location";
4
- export declare const Api: import("@opencode/protocol/api").Api<LocationMiddleware, import("effect/unstable/httpapi/HttpApiMiddleware").HttpApiMiddleware<import("@opencode/core/instance").Services, readonly [typeof import("@opencode/protocol/errors").LocationNotFoundError], never>, FormLocationMiddleware, import("effect/unstable/httpapi/HttpApiMiddleware").HttpApiMiddleware<import("@opencode/core/instance").Services, readonly [typeof import("@opencode/protocol/errors").InvalidRequestError, typeof import("@opencode/protocol/errors").SessionNotFoundError, typeof import("@opencode/protocol/errors").LocationNotFoundError], never>, SessionLocationMiddleware, import("effect/unstable/httpapi/HttpApiMiddleware").HttpApiMiddleware<import("@opencode/core/instance").Services, readonly [typeof import("@opencode/protocol/errors").InvalidRequestError, typeof import("@opencode/protocol/errors").SessionNotFoundError, typeof import("@opencode/protocol/errors").LocationNotFoundError], never>, import("effect/unstable/httpapi/HttpApiGroup").HttpApiGroup<"server.event", import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"event.subscribe", "GET", "/api/event", never, never, never, never, import("effect/unstable/httpapi/HttpApiSchema").StreamSse<import("effect/unstable/httpapi/HttpApiSchema").SseEventFromData<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
4
+ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddleware, import("effect/http-api/HttpApiMiddleware").HttpApiMiddleware<import("@opencode/core/instance").Services, readonly [typeof import("@opencode/protocol/errors").LocationNotFoundError], never>, FormLocationMiddleware, import("effect/http-api/HttpApiMiddleware").HttpApiMiddleware<import("@opencode/core/instance").Services, readonly [typeof import("@opencode/protocol/errors").InvalidRequestError, typeof import("@opencode/protocol/errors").SessionNotFoundError, typeof import("@opencode/protocol/errors").LocationNotFoundError], never>, SessionLocationMiddleware, import("effect/http-api/HttpApiMiddleware").HttpApiMiddleware<import("@opencode/core/instance").Services, readonly [typeof import("@opencode/protocol/errors").InvalidRequestError, typeof import("@opencode/protocol/errors").SessionNotFoundError, typeof import("@opencode/protocol/errors").LocationNotFoundError], never>, import("effect/http-api/HttpApiGroup").HttpApiGroup<"server.event", import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"event.subscribe", "GET", "/api/event", never, never, never, never, import("effect/http-api/HttpApiSchema").StreamSse<import("effect/http-api/HttpApiSchema").SseEventFromData<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
5
5
  readonly id: import("effect/Schema").brand<import("effect/Schema").String, "Event.ID"> & {
6
6
  create: () => string & import("effect/Brand").Brand<"Event.ID">;
7
7
  };
@@ -4714,6 +4714,7 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
4714
4714
  readonly created: import("effect/Schema").Int;
4715
4715
  readonly updated: import("effect/Schema").Int;
4716
4716
  readonly active: import("effect/Schema").Int;
4717
+ readonly archived: import("effect/Schema").decodeTo<import("effect/Schema").optional<import("effect/Schema").toType<import("effect/Schema").Int>>, import("effect/Schema").optionalKey<import("effect/Schema").Int>, never, never>;
4717
4718
  }>;
4718
4719
  readonly sandboxes: import("effect/Schema").$Array<import("effect/Schema").String>;
4719
4720
  }>;
@@ -4746,6 +4747,7 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
4746
4747
  readonly created: import("effect/Schema").Int;
4747
4748
  readonly updated: import("effect/Schema").Int;
4748
4749
  readonly active: import("effect/Schema").Int;
4750
+ readonly archived: import("effect/Schema").decodeTo<import("effect/Schema").optional<import("effect/Schema").toType<import("effect/Schema").Int>>, import("effect/Schema").optionalKey<import("effect/Schema").Int>, never, never>;
4749
4751
  }>;
4750
4752
  readonly sandboxes: import("effect/Schema").$Array<import("effect/Schema").String>;
4751
4753
  }>;
@@ -6373,6 +6375,11 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
6373
6375
  readonly type: "string";
6374
6376
  readonly key: string;
6375
6377
  readonly required?: boolean | undefined;
6378
+ readonly options?: readonly {
6379
+ readonly value: string;
6380
+ readonly label: string;
6381
+ readonly description?: string | undefined;
6382
+ }[] | undefined;
6376
6383
  readonly description?: string | undefined;
6377
6384
  readonly format?: "email" | "uri" | "date" | "date-time" | undefined;
6378
6385
  readonly minLength?: number | undefined;
@@ -6380,11 +6387,6 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
6380
6387
  readonly pattern?: string | undefined;
6381
6388
  readonly placeholder?: string | undefined;
6382
6389
  readonly default?: string | undefined;
6383
- readonly options?: readonly {
6384
- readonly value: string;
6385
- readonly label: string;
6386
- readonly description?: string | undefined;
6387
- }[] | undefined;
6388
6390
  readonly custom?: boolean | undefined;
6389
6391
  readonly title?: string | undefined;
6390
6392
  readonly hidden?: boolean | undefined;
@@ -6438,12 +6440,12 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
6438
6440
  }[] | undefined;
6439
6441
  } | {
6440
6442
  readonly type: "multiselect";
6441
- readonly key: string;
6442
6443
  readonly options: readonly {
6443
6444
  readonly value: string;
6444
6445
  readonly label: string;
6445
6446
  readonly description?: string | undefined;
6446
6447
  }[];
6448
+ readonly key: string;
6447
6449
  readonly required?: boolean | undefined;
6448
6450
  readonly description?: string | undefined;
6449
6451
  readonly default?: readonly string[] | undefined;
@@ -6467,6 +6469,11 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
6467
6469
  readonly type: "string";
6468
6470
  readonly key: string;
6469
6471
  readonly required?: boolean | undefined;
6472
+ readonly options?: readonly {
6473
+ readonly value: string;
6474
+ readonly label: string;
6475
+ readonly description?: string | undefined;
6476
+ }[] | undefined;
6470
6477
  readonly description?: string | undefined;
6471
6478
  readonly format?: "email" | "uri" | "date" | "date-time" | undefined;
6472
6479
  readonly minLength?: number | undefined;
@@ -6474,11 +6481,6 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
6474
6481
  readonly pattern?: string | undefined;
6475
6482
  readonly placeholder?: string | undefined;
6476
6483
  readonly default?: string | undefined;
6477
- readonly options?: readonly {
6478
- readonly value: string;
6479
- readonly label: string;
6480
- readonly description?: string | undefined;
6481
- }[] | undefined;
6482
6484
  readonly custom?: boolean | undefined;
6483
6485
  readonly title?: string | undefined;
6484
6486
  readonly hidden?: boolean | undefined;
@@ -6532,12 +6534,12 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
6532
6534
  }[] | undefined;
6533
6535
  } | {
6534
6536
  readonly type: "multiselect";
6535
- readonly key: string;
6536
6537
  readonly options: readonly {
6537
6538
  readonly value: string;
6538
6539
  readonly label: string;
6539
6540
  readonly description?: string | undefined;
6540
6541
  }[];
6542
+ readonly key: string;
6541
6543
  readonly required?: boolean | undefined;
6542
6544
  readonly description?: string | undefined;
6543
6545
  readonly default?: readonly string[] | undefined;
@@ -6732,8 +6734,9 @@ export declare const Api: import("@opencode/protocol/api").Api<LocationMiddlewar
6732
6734
  readonly canonical: string & import("effect/Brand").Brand<"AbsolutePath">;
6733
6735
  readonly time: {
6734
6736
  readonly created: number;
6735
- readonly updated: number;
6736
6737
  readonly active: number;
6738
+ readonly updated: number;
6739
+ readonly archived?: number | undefined;
6737
6740
  };
6738
6741
  readonly sandboxes: readonly string[];
6739
6742
  readonly name?: string | undefined;
package/dist/api.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Api2
3
- } from "./chunks/fetch-jxc39wgw.js";
4
- import"./chunks/fetch-nxdx74sv.js";
5
- import"./chunks/fetch-d00srfh1.js";
6
- import"./chunks/fetch-acgs9zzk.js";
7
- import"./chunks/fetch-smaf4a18.js";
3
+ } from "./chunks/server-info-t3j5ftv1.js";
4
+ import"./chunks/server-info-3154e7fk.js";
5
+ import"./chunks/server-info-x74w7e1f.js";
6
+ import"./chunks/server-info-gymtz25n.js";
7
+ import"./chunks/server-info-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/fetch-anm12x33.js";
10
+ } from "./chunks/server-info-anm12x33.js";
11
11
  export {
12
12
  Config2 as Config,
13
13
  SESSION_TTL_SECONDS2 as SESSION_TTL_SECONDS,
@@ -1,39 +1,39 @@
1
1
  import {
2
- layer3
3
- } from "./fetch-acgs9zzk.js";
2
+ layer2
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  formLocationLayer2
6
- } from "./fetch-d00srfh1.js";
6
+ } from "./server-info-3154e7fk.js";
7
7
  import {
8
8
  sessionLocationLayer2
9
- } from "./fetch-nxdx74sv.js";
9
+ } from "./server-info-x74w7e1f.js";
10
10
  import {
11
11
  Api2
12
- } from "./fetch-jxc39wgw.js";
12
+ } from "./server-info-t3j5ftv1.js";
13
13
  import {
14
14
  Config2
15
- } from "./fetch-anm12x33.js";
15
+ } from "./server-info-anm12x33.js";
16
16
  import {
17
17
  CorsConfig2
18
- } from "./fetch-q4bn6dy8.js";
19
- import {
20
- layer2
21
- } from "./fetch-c6kb7fmf.js";
18
+ } from "./server-info-q4bn6dy8.js";
22
19
  import {
23
- node2
24
- } from "./fetch-0chp8crd.js";
20
+ layer4
21
+ } from "./server-info-s07e4y6n.js";
25
22
  import {
26
23
  node3
27
- } from "./fetch-n1svm92q.js";
24
+ } from "./server-info-sstsrjtg.js";
25
+ import {
26
+ node2
27
+ } from "./server-info-75c938bc.js";
28
28
  import {
29
29
  handlers2
30
- } from "./fetch-kzj5eept.js";
30
+ } from "./server-info-gat934pw.js";
31
31
  import {
32
32
  authorizationLayer2
33
- } from "./fetch-gtkdacvk.js";
33
+ } from "./server-info-5ytyqf1q.js";
34
34
  import {
35
35
  schemaErrorLayer2
36
- } from "./fetch-t8yzmczr.js";
36
+ } from "./server-info-erzfdgke.js";
37
37
 
38
38
  // src/routes.ts
39
39
  import { Database } from "@opencode/core/database/database";
@@ -69,8 +69,8 @@ import { SdkPlugins } from "@opencode/core/plugin/sdk";
69
69
  import { WellKnown } from "@opencode/core/wellknown";
70
70
  import { Workspace } from "@opencode/core/workspace";
71
71
  import { Watcher } from "@opencode/core/filesystem/watcher";
72
- import { HttpRouter } from "effect/unstable/http";
73
- import { HttpApiBuilder } from "effect/unstable/httpapi";
72
+ import { HttpRouter } from "effect/http";
73
+ import { HttpApiBuilder } from "effect/http-api";
74
74
  import { Context, Effect, Layer, Option } from "effect";
75
75
  var applicationServiceNodes = [
76
76
  Global.node,
@@ -80,6 +80,7 @@ var applicationServiceNodes = [
80
80
  httpClient,
81
81
  Job.node,
82
82
  Project.node,
83
+ Project.sweepNode,
83
84
  Worktree.node,
84
85
  Session.node,
85
86
  Instance.node,
@@ -91,8 +92,8 @@ var applicationServiceNodes = [
91
92
  PersistentPty.node,
92
93
  Credential.node,
93
94
  WellKnown.node,
94
- node3,
95
95
  node2,
96
+ node3,
96
97
  LocationServiceMap.node,
97
98
  LocationActivity.node,
98
99
  SessionRestart.node,
@@ -144,8 +145,8 @@ function makeRoutes(auth, options, serviceURLs, overrides, instances) {
144
145
  })) : build(overrides);
145
146
  return serviceLayer.pipe(Layer.flatMap((context) => {
146
147
  const services = Layer.succeedContext(context);
147
- const requestServices = Layer.merge(Layer.succeedContext(Context.pick(Database.Service, Credential.Service, PermissionSaved.Service, PluginUpdate.Service, Project.Service, WellKnown.Service)(context)), layer2(serviceURLs, Context.get(context, Global.Service).tmp, options.app));
148
- const api = HttpApiBuilder.layer(Api2, { openapiPath: "/openapi.json" }).pipe(Layer.provide(handlers2.pipe(Layer.provide(services), Layer.provide(Layer.succeed(CorsConfig2, options)))), Layer.provide(formLocationLayer2), Layer.provide(sessionLocationLayer2), Layer.provide(layer3), Layer.provide(authorizationLayer2), Layer.provide(schemaErrorLayer2), Layer.provide(auth), HttpRouter.provideRequest(requestServices), Layer.provideMerge(services), Layer.provideMerge(HttpRouter.layer));
148
+ const requestServices = Layer.merge(Layer.succeedContext(Context.pick(Database.Service, Credential.Service, PermissionSaved.Service, PluginUpdate.Service, Project.Service, WellKnown.Service)(context)), layer4(serviceURLs, Context.get(context, Global.Service).tmp, options.app));
149
+ const api = HttpApiBuilder.layer(Api2, { openapiPath: "/openapi.json" }).pipe(Layer.provide(handlers2.pipe(Layer.provide(services), Layer.provide(Layer.succeed(CorsConfig2, options)))), Layer.provide(formLocationLayer2), Layer.provide(sessionLocationLayer2), Layer.provide(layer2), Layer.provide(authorizationLayer2), Layer.provide(schemaErrorLayer2), Layer.provide(auth), HttpRouter.provideRequest(requestServices), Layer.provideMerge(services), Layer.provideMerge(HttpRouter.layer));
149
150
  return Layer.merge(api, V1Migration.layer.pipe(Layer.provide(services)));
150
151
  }));
151
152
  }
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  response2
3
- } from "./fetch-acgs9zzk.js";
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  Api2
6
- } from "./fetch-jxc39wgw.js";
6
+ } from "./server-info-t3j5ftv1.js";
7
7
 
8
8
  // src/handlers/websearch.ts
9
9
  import { WebSearch } from "@opencode/core/websearch";
10
10
  import { InvalidRequestError, ServiceUnavailableError } from "@opencode/protocol/errors";
11
11
  import { Effect } from "effect";
12
- import { HttpApiBuilder } from "effect/unstable/httpapi";
12
+ import { HttpApiBuilder } from "effect/http-api";
13
13
  var WebSearchHandler2 = HttpApiBuilder.group(Api2, "server.websearch", (handlers) => Effect.gen(function* () {
14
14
  return handlers.handle("websearch.providers", Effect.fn("server.websearch.providers")(function* () {
15
15
  const websearch = yield* WebSearch.Service;
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  response2
3
- } from "./fetch-acgs9zzk.js";
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  Api2
6
- } from "./fetch-jxc39wgw.js";
6
+ } from "./server-info-t3j5ftv1.js";
7
7
 
8
8
  // src/handlers/shell.ts
9
9
  import { Shell } from "@opencode/core/shell";
10
10
  import { Location } from "@opencode/core/location";
11
11
  import { Effect } from "effect";
12
- import { HttpApiBuilder, HttpApiSchema } from "effect/unstable/httpapi";
12
+ import { HttpApiBuilder, HttpApiSchema } from "effect/http-api";
13
13
  import { ShellNotFoundError } from "@opencode/protocol/errors";
14
14
  var ShellHandler2 = HttpApiBuilder.group(Api2, "server.shell", (handlers) => Effect.gen(function* () {
15
15
  return handlers.handle("shell.list", Effect.fn(function* () {
@@ -2,7 +2,7 @@ import {
2
2
  locationErrors2,
3
3
  sessionInfo2,
4
4
  requestRef2
5
- } from "./fetch-acgs9zzk.js";
5
+ } from "./server-info-gymtz25n.js";
6
6
 
7
7
  // src/middleware/form-location.ts
8
8
  import { Instance } from "@opencode/core/instance/service";
@@ -10,8 +10,8 @@ import { LocationServiceMap } from "@opencode/core/location-services";
10
10
  import { Session } from "@opencode/core/session";
11
11
  import { LocationNotFoundError, InvalidRequestError, SessionNotFoundError } from "@opencode/protocol/errors";
12
12
  import { Effect, Layer } from "effect";
13
- import { HttpRouter, HttpServerRequest } from "effect/unstable/http";
14
- import { HttpApiMiddleware } from "effect/unstable/httpapi";
13
+ import { HttpRouter, HttpServerRequest } from "effect/http";
14
+ import { HttpApiMiddleware } from "effect/http-api";
15
15
  class FormLocationMiddleware2 extends HttpApiMiddleware.Service()("@opencode/HttpApiFormLocation", {
16
16
  error: [InvalidRequestError, SessionNotFoundError, LocationNotFoundError]
17
17
  }) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./fetch-acgs9zzk.js";
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  Api2
6
- } from "./fetch-jxc39wgw.js";
6
+ } from "./server-info-t3j5ftv1.js";
7
7
 
8
8
  // src/handlers/vcs.ts
9
9
  import { Vcs } from "@opencode/core/vcs";
@@ -16,7 +16,7 @@ import { LocationServiceMap } from "@opencode/core/location-services";
16
16
  import { ConflictError, InvalidRequestError, ServiceUnavailableError } from "@opencode/protocol/errors";
17
17
  import { VcsInitNotSupportedError } from "@opencode/protocol/groups/vcs";
18
18
  import { Effect } from "effect";
19
- import { HttpApiBuilder, HttpApiSchema } from "effect/unstable/httpapi";
19
+ import { HttpApiBuilder, HttpApiSchema } from "effect/http-api";
20
20
  var VcsHandler2 = HttpApiBuilder.group(Api2, "server.vcs", (handlers) => Effect.gen(function* () {
21
21
  const project = yield* Project.Service;
22
22
  const bus = yield* Bus.Service;
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  response2
3
- } from "./fetch-acgs9zzk.js";
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  Api2
6
- } from "./fetch-jxc39wgw.js";
6
+ } from "./server-info-t3j5ftv1.js";
7
7
 
8
8
  // src/handlers/plugin.ts
9
9
  import { Plugin } from "@opencode/core/plugin";
10
10
  import { PluginUpdate } from "@opencode/core/plugin/update";
11
11
  import { InvalidRequestError, ServiceUnavailableError } from "@opencode/protocol/errors";
12
12
  import { Cause, Effect, Exit } from "effect";
13
- import { HttpApiBuilder } from "effect/unstable/httpapi";
13
+ import { HttpApiBuilder } from "effect/http-api";
14
14
  var PluginHandler2 = HttpApiBuilder.group(Api2, "server.plugin", (handlers) => handlers.handle("plugin.list", () => Effect.gen(function* () {
15
15
  return yield* response2(Plugin.Service.use((plugin) => plugin.list()));
16
16
  })).handle("plugin.check", (ctx) => Effect.gen(function* () {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  response2
3
- } from "./fetch-acgs9zzk.js";
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  Api2
6
- } from "./fetch-jxc39wgw.js";
6
+ } from "./server-info-t3j5ftv1.js";
7
7
 
8
8
  // src/handlers/skill.ts
9
9
  import { Skill } from "@opencode/core/skill";
10
- import { HttpApiBuilder } from "effect/unstable/httpapi";
10
+ import { HttpApiBuilder } from "effect/http-api";
11
11
  var SkillHandler2 = HttpApiBuilder.group(Api2, "server.skill", (handlers) => handlers.handle("skill.list", () => response2(Skill.Service.use((skill) => skill.list()))));
12
12
 
13
13
  export { SkillHandler2 };
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Api2
3
- } from "./fetch-jxc39wgw.js";
3
+ } from "./server-info-t3j5ftv1.js";
4
4
 
5
5
  // src/handlers/rpc.ts
6
6
  import { Rpc } from "@opencode/core/rpc";
7
7
  import { Plugin } from "@opencode/core/plugin";
8
8
  import { RpcError, RpcInternalError } from "@opencode/protocol/errors";
9
9
  import { Effect } from "effect";
10
- import { HttpApiBuilder } from "effect/unstable/httpapi";
10
+ import { HttpApiBuilder } from "effect/http-api";
11
11
  var RpcHandler2 = HttpApiBuilder.group(Api2, "server.rpc", (handlers) => handlers.handle("rpc.call", ({ params, payload }) => Effect.gen(function* () {
12
12
  yield* Plugin.awaitActivation;
13
13
  const rpc = yield* Rpc.Service;
@@ -4,7 +4,7 @@ import {
4
4
  authorized2,
5
5
  verifySession2,
6
6
  sessionCookieName2
7
- } from "./fetch-anm12x33.js";
7
+ } from "./server-info-anm12x33.js";
8
8
 
9
9
  // src/middleware/authorization.ts
10
10
  import { UnauthorizedError } from "@opencode/protocol/errors";
@@ -13,15 +13,16 @@ import { Authorization as Authorization2 } from "@opencode/protocol/middleware/a
13
13
  import { hasPtyConnectTicketURL } from "@opencode/protocol/groups/pty";
14
14
  import { hasPersistentPtyConnectTicketURL } from "@opencode/protocol/groups/persistent-pty";
15
15
  import { isPairingConnectURL } from "@opencode/protocol/groups/server";
16
- import { Effect, Encoding, Layer, Redacted } from "effect";
17
- import { HttpEffect, HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
16
+ import { Effect, Layer, Redacted } from "effect";
17
+ import { Base64 } from "effect/encoding";
18
+ import { HttpEffect, HttpServerRequest, HttpServerResponse } from "effect/http";
18
19
  var AUTH_TOKEN_QUERY = "auth_token";
19
20
  var WWW_AUTHENTICATE = 'Basic realm="Secure Area"';
20
21
  function emptyCredential() {
21
22
  return { username: "", password: Redacted.make("") };
22
23
  }
23
24
  function decodeCredential(input) {
24
- return Effect.fromResult(Encoding.decodeBase64String(input)).pipe(Effect.match({
25
+ return Effect.fromResult(Base64.decodeString(input)).pipe(Effect.match({
25
26
  onFailure: emptyCredential,
26
27
  onSuccess: (header) => {
27
28
  const separator = header.indexOf(":");
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  response2
3
- } from "./fetch-acgs9zzk.js";
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  Api2
6
- } from "./fetch-jxc39wgw.js";
6
+ } from "./server-info-t3j5ftv1.js";
7
7
 
8
8
  // src/handlers/integration.ts
9
9
  import { Integration } from "@opencode/core/integration";
10
10
  import { Plugin } from "@opencode/core/plugin";
11
11
  import { Effect } from "effect";
12
- import { HttpApiBuilder, HttpApiSchema } from "effect/unstable/httpapi";
12
+ import { HttpApiBuilder, HttpApiSchema } from "effect/http-api";
13
13
  import {
14
14
  IntegrationAttemptNotFoundError,
15
15
  IntegrationMethodNotFoundError,
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  __export
3
- } from "./fetch-9rqn6x4v.js";
3
+ } from "./server-info-9rqn6x4v.js";
4
4
 
5
5
  // src/pty-environment.ts
6
6
  var exports_pty_environment = {};
7
7
  __export(exports_pty_environment, {
8
8
  PtyEnvironment: () => exports_pty_environment,
9
9
  Service: () => Service4,
10
- layer: () => layer4,
11
- node: () => node3
10
+ layer: () => layer5,
11
+ node: () => node2
12
12
  });
13
13
  import { Context, Effect, Layer } from "effect";
14
14
  import { makeGlobalNode } from "@opencode/util/effect/app-node";
15
15
 
16
16
  class Service4 extends Context.Service()("@opencode/ServerPtyEnvironment") {
17
17
  }
18
- var layer4 = Layer.succeed(Service4, Service4.of({
18
+ var layer5 = Layer.succeed(Service4, Service4.of({
19
19
  get: () => Effect.succeed({})
20
20
  }));
21
- var node3 = makeGlobalNode({ service: Service4, layer: layer4, deps: [] });
21
+ var node2 = makeGlobalNode({ service: Service4, layer: layer5, deps: [] });
22
22
 
23
- export { Service4, layer4, node3, exports_pty_environment };
23
+ export { Service4, layer5, node2, exports_pty_environment };
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  response2
3
- } from "./fetch-acgs9zzk.js";
3
+ } from "./server-info-gymtz25n.js";
4
4
  import {
5
5
  Api2
6
- } from "./fetch-jxc39wgw.js";
6
+ } from "./server-info-t3j5ftv1.js";
7
7
 
8
8
  // src/handlers/form.ts
9
9
  import { Form } from "@opencode/core/form";
10
10
  import { Effect } from "effect";
11
- import { HttpApiBuilder } from "effect/unstable/httpapi";
11
+ import { HttpApiBuilder } from "effect/http-api";
12
12
  var FormHandler2 = HttpApiBuilder.group(Api2, "server.form", (handlers) => handlers.handle("form.list", Effect.fn(function* () {
13
13
  const form = yield* Form.Service;
14
14
  return yield* response2(form.list());
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Api2
3
- } from "./fetch-jxc39wgw.js";
3
+ } from "./server-info-t3j5ftv1.js";
4
4
  import {
5
5
  CorsConfig2,
6
6
  isAllowedRequestOrigin2
7
- } from "./fetch-q4bn6dy8.js";
7
+ } from "./server-info-q4bn6dy8.js";
8
8
  import {
9
9
  runPtySocket2
10
- } from "./fetch-hezj1jdf.js";
10
+ } from "./server-info-h6rt5k9s.js";
11
11
 
12
12
  // src/handlers/persistent-pty.ts
13
13
  import { PersistentPty } from "@opencode/core/persistent-pty";
@@ -18,10 +18,10 @@ import {
18
18
  PTY_CONNECT_TOKEN_HEADER,
19
19
  PTY_CONNECT_TOKEN_HEADER_VALUE
20
20
  } from "@opencode/protocol/groups/persistent-pty";
21
- import { Effect, Queue, Semaphore } from "effect";
22
- import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
23
- import { HttpApiBuilder, HttpApiSchema } from "effect/unstable/httpapi";
24
- import { Socket } from "effect/unstable/socket";
21
+ import { Effect, Queue } from "effect";
22
+ import { HttpServerRequest, HttpServerResponse } from "effect/http";
23
+ import { HttpApiBuilder, HttpApiSchema } from "effect/http-api";
24
+ import { Socket } from "effect/socket";
25
25
  var PersistentPtyHandler2 = HttpApiBuilder.group(Api2, "server.experimental", (handlers) => Effect.gen(function* () {
26
26
  const tickets = yield* PtyTicket.Service;
27
27
  const cors = yield* CorsConfig2;
@@ -77,9 +77,7 @@ var PersistentPtyHandler2 = HttpApiBuilder.group(Api2, "server.experimental", (h
77
77
  if (!Number.isSafeInteger(cursor) || cursor < 0)
78
78
  return HttpServerResponse.empty({ status: 400 });
79
79
  const socket = yield* Effect.orDie(ctx.request.upgrade);
80
- const write = yield* socket.writer;
81
80
  const outbox = yield* Queue.unbounded();
82
- const input = yield* Semaphore.make(1);
83
81
  let attachment;
84
82
  const onOpen = Effect.gen(function* () {
85
83
  attachment = yield* pty.attach(ctx.params.ptyID, {
@@ -123,32 +121,30 @@ var PersistentPtyHandler2 = HttpApiBuilder.group(Api2, "server.experimental", (h
123
121
  Queue.offerUnsafe(outbox, JSON.stringify({ type: "replay_complete", endOffset: attachment.replay.endOffset }));
124
122
  attachment.activate();
125
123
  });
126
- const drain = Effect.gen(function* () {
127
- while (true) {
128
- const item = yield* Queue.take(outbox);
129
- yield* write(item);
130
- if (item instanceof Socket.CloseEvent)
131
- return;
132
- }
124
+ yield* runPtySocket2({
125
+ socket,
126
+ outbox,
127
+ onOpen,
128
+ onMessage: (message) => {
129
+ if (!attachment)
130
+ return Effect.void;
131
+ const data = typeof message === "string" ? Buffer.from(message) : message;
132
+ if (!framedInput)
133
+ return pty.input(ctx.params.ptyID, attachmentID, attachment.info.size.cols, attachment.info.size.rows, data).pipe(Effect.ignore);
134
+ if (data.byteLength < 5)
135
+ return Effect.void;
136
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
137
+ const type = data[0];
138
+ const cols = view.getUint16(1);
139
+ const rows = view.getUint16(3);
140
+ if (type !== 0 && type !== 1 || cols === 0 || rows === 0)
141
+ return Effect.void;
142
+ if (type === 0)
143
+ return pty.control(ctx.params.ptyID, attachmentID, cols, rows).pipe(Effect.ignore);
144
+ return pty.input(ctx.params.ptyID, attachmentID, cols, rows, data.subarray(5)).pipe(Effect.ignore);
145
+ },
146
+ detach: () => attachment?.detach()
133
147
  });
134
- yield* runPtySocket2(drain, socket.runRaw((message) => input.withPermit(Effect.suspend(() => {
135
- if (!attachment)
136
- return Effect.void;
137
- const data = typeof message === "string" ? Buffer.from(message) : message;
138
- if (!framedInput)
139
- return pty.input(ctx.params.ptyID, attachmentID, attachment.info.size.cols, attachment.info.size.rows, data).pipe(Effect.ignore);
140
- if (data.byteLength < 5)
141
- return Effect.void;
142
- const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
143
- const type = data[0];
144
- const cols = view.getUint16(1);
145
- const rows = view.getUint16(3);
146
- if (type !== 0 && type !== 1 || cols === 0 || rows === 0)
147
- return Effect.void;
148
- if (type === 0)
149
- return pty.control(ctx.params.ptyID, attachmentID, cols, rows).pipe(Effect.ignore);
150
- return pty.input(ctx.params.ptyID, attachmentID, cols, rows, data.subarray(5)).pipe(Effect.ignore);
151
- })), { onOpen }), () => attachment?.detach()).pipe(Effect.catchReason("SocketError", "SocketCloseError", () => Effect.void), Effect.orDie);
152
148
  return HttpServerResponse.empty();
153
149
  }));
154
150
  }));
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  missingSession2
3
- } from "./fetch-smaf4a18.js";
3
+ } from "./server-info-smaf4a18.js";
4
4
  import {
5
5
  locationErrors2,
6
6
  response2,
7
7
  sessionInfo2
8
- } from "./fetch-acgs9zzk.js";
8
+ } from "./server-info-gymtz25n.js";
9
9
  import {
10
10
  Api2
11
- } from "./fetch-jxc39wgw.js";
11
+ } from "./server-info-t3j5ftv1.js";
12
12
 
13
13
  // src/handlers/permission.ts
14
14
  import { Instance } from "@opencode/core/instance/service";
@@ -17,7 +17,7 @@ import { Permission } from "@opencode/core/permission";
17
17
  import { PermissionSaved } from "@opencode/core/permission/saved";
18
18
  import { Session } from "@opencode/core/session";
19
19
  import { Effect } from "effect";
20
- import { HttpApiBuilder, HttpApiSchema } from "effect/unstable/httpapi";
20
+ import { HttpApiBuilder, HttpApiSchema } from "effect/http-api";
21
21
  import { PermissionNotFoundError } from "@opencode/protocol/errors";
22
22
  function missingRequest(id) {
23
23
  return new PermissionNotFoundError({ requestID: id, message: `Permission request not found: ${id}` });
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./fetch-9rqn6x4v.js";
3
+ } from "./server-info-9rqn6x4v.js";
4
4
 
5
5
  // src/auth.ts
6
6
  var exports_auth = {};
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Api2
3
- } from "./fetch-jxc39wgw.js";
3
+ } from "./server-info-t3j5ftv1.js";
4
4
 
5
5
  // src/handlers/location.ts
6
6
  import { Location } from "@opencode/core/location";
7
7
  import { LocationServiceMap } from "@opencode/core/location-service-map";
8
8
  import { ServiceUnavailableError } from "@opencode/protocol/errors";
9
9
  import { Cause, Effect } from "effect";
10
- import { HttpApiBuilder } from "effect/unstable/httpapi";
10
+ import { HttpApiBuilder } from "effect/http-api";
11
11
  var LocationHandler2 = HttpApiBuilder.group(Api2, "server.location", (handlers) => Effect.gen(function* () {
12
12
  const locations = yield* LocationServiceMap.Service;
13
13
  return handlers.handle("location.get", Effect.fn(function* () {