@opencode/server 0.0.0-dev-248 → 0.0.0-dev-261

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 (114) hide show
  1. package/dist/api.js +5 -5
  2. package/dist/auth.js +1 -1
  3. package/dist/chunks/{cors-xzvdbbpy.js → fetch-059rbh9c.js} +5 -2
  4. package/dist/chunks/{cors-370cpmna.js → fetch-0a5jm2na.js} +2 -2
  5. package/dist/chunks/{cors-vvp99hc9.js → fetch-1je14sn4.js} +1 -1
  6. package/dist/chunks/{cors-rxyx8sa0.js → fetch-22wspztn.js} +2 -2
  7. package/dist/chunks/{cors-zyntahe8.js → fetch-2xcc0x05.js} +1 -1
  8. package/dist/chunks/{cors-xbqm7mpj.js → fetch-6vs5sqy6.js} +2 -2
  9. package/dist/chunks/{cors-7b9xm1qg.js → fetch-7b9xm1qg.js} +1 -1
  10. package/dist/chunks/{cors-4b87vfds.js → fetch-95h1mmtp.js} +35 -35
  11. package/dist/chunks/{cors-r5696se6.js → fetch-9c4eyh8m.js} +3 -3
  12. package/dist/chunks/{cors-0e4fm4yw.js → fetch-b2k9041j.js} +1 -1
  13. package/dist/chunks/fetch-b5vdqx3g.js +61 -0
  14. package/dist/chunks/{cors-wqv43pj9.js → fetch-c6sjpm0r.js} +2 -2
  15. package/dist/chunks/{cors-r414f1xb.js → fetch-ckkpcd9y.js} +4 -4
  16. package/dist/chunks/{cors-zmgfywqd.js → fetch-dk68ymtv.js} +1 -1
  17. package/dist/chunks/{cors-7cd61xtm.js → fetch-e46y0tfd.js} +2 -2
  18. package/dist/chunks/{cors-e6e4kz0w.js → fetch-e6e4kz0w.js} +1 -1
  19. package/dist/chunks/{cors-9jpfpdce.js → fetch-e9906t2e.js} +4 -4
  20. package/dist/chunks/{cors-gk0yxcp6.js → fetch-gk0yxcp6.js} +1 -1
  21. package/dist/chunks/{cors-gqq6kfhc.js → fetch-gqq6kfhc.js} +1 -1
  22. package/dist/chunks/{cors-seksa6r9.js → fetch-gsyfxrkq.js} +15 -7
  23. package/dist/chunks/{cors-74kxthdf.js → fetch-h072q2hm.js} +1 -1
  24. package/dist/chunks/{cors-vfkjeyp3.js → fetch-h9rcwvg0.js} +1 -1
  25. package/dist/chunks/{cors-vtfzy3at.js → fetch-hax1v4bv.js} +2 -2
  26. package/dist/chunks/{cors-f4exzdsf.js → fetch-hnheq3hv.js} +2 -2
  27. package/dist/chunks/{cors-j4at0y5c.js → fetch-j4at0y5c.js} +1 -1
  28. package/dist/chunks/{cors-5z5anmwp.js → fetch-j9gxd9me.js} +2 -2
  29. package/dist/chunks/{cors-zkg10e14.js → fetch-kffvskmv.js} +4 -4
  30. package/dist/chunks/{cors-7x1re4zg.js → fetch-m5rae7m4.js} +2 -2
  31. package/dist/chunks/{cors-50xc6x42.js → fetch-ppma8fcc.js} +3 -3
  32. package/dist/chunks/{cors-bhw2fh2x.js → fetch-qb54r15e.js} +13 -13
  33. package/dist/chunks/{cors-sqxx1p54.js → fetch-qn8kkfq6.js} +2 -2
  34. package/dist/chunks/{cors-0pbbhyf6.js → fetch-r6vmgwff.js} +2 -2
  35. package/dist/chunks/{cors-h207xvn8.js → fetch-rztv1fyf.js} +4 -4
  36. package/dist/chunks/{cors-9e7v26mh.js → fetch-w1r7dqbt.js} +3 -3
  37. package/dist/chunks/{cors-4sjzj1z2.js → fetch-w587cpb2.js} +6 -6
  38. package/dist/chunks/{cors-w9jcwh65.js → fetch-w9jcwh65.js} +1 -1
  39. package/dist/chunks/{cors-fvpjvjpp.js → fetch-wecgp61r.js} +7 -7
  40. package/dist/chunks/{cors-2835150m.js → fetch-wxj3d9av.js} +2 -2
  41. package/dist/chunks/{cors-jc2vwkyw.js → fetch-x8dgc261.js} +2 -2
  42. package/dist/chunks/{cors-7tewdwsb.js → fetch-xe9t9xr4.js} +2 -2
  43. package/dist/chunks/{cors-yet0vexm.js → fetch-yet0vexm.js} +1 -1
  44. package/dist/chunks/{cors-skcryrty.js → fetch-yr4wsvrw.js} +2 -2
  45. package/dist/chunks/{cors-7dtbad8d.js → fetch-z3e7v67k.js} +7 -7
  46. package/dist/chunks/{cors-xpg37vzc.js → fetch-z59gyc0x.js} +2 -2
  47. package/dist/chunks/{cors-ac10qb5k.js → fetch-zgt2tacv.js} +3 -3
  48. package/dist/chunks/{cors-4gk9fc6f.js → fetch-zrprg5z5.js} +29 -4
  49. package/dist/cors.js +1 -1
  50. package/dist/event-feed.js +5 -5
  51. package/dist/fetch.js +51 -51
  52. package/dist/handlers/agent.js +6 -6
  53. package/dist/handlers/command.js +6 -6
  54. package/dist/handlers/config.js +6 -6
  55. package/dist/handlers/credential.d.ts +3 -1
  56. package/dist/handlers/credential.js +7 -6
  57. package/dist/handlers/debug.js +6 -6
  58. package/dist/handlers/event.js +7 -7
  59. package/dist/handlers/form.js +6 -6
  60. package/dist/handlers/fs.js +6 -6
  61. package/dist/handlers/generate.js +6 -6
  62. package/dist/handlers/integration.d.ts +5 -0
  63. package/dist/handlers/integration.js +9 -7
  64. package/dist/handlers/location.js +6 -6
  65. package/dist/handlers/mcp.js +8 -8
  66. package/dist/handlers/media.js +1 -1
  67. package/dist/handlers/message.js +7 -7
  68. package/dist/handlers/migration.js +6 -6
  69. package/dist/handlers/model.js +6 -6
  70. package/dist/handlers/permission.js +6 -6
  71. package/dist/handlers/persistent-pty.js +10 -10
  72. package/dist/handlers/plugin.js +6 -6
  73. package/dist/handlers/project.js +6 -6
  74. package/dist/handlers/provider.js +6 -6
  75. package/dist/handlers/pty-socket.js +1 -1
  76. package/dist/handlers/pty.js +8 -8
  77. package/dist/handlers/reference.js +6 -6
  78. package/dist/handlers/rpc.js +6 -6
  79. package/dist/handlers/schedule.d.ts +80 -5
  80. package/dist/handlers/schedule.js +2 -2
  81. package/dist/handlers/server.js +9 -9
  82. package/dist/handlers/session-error.js +1 -1
  83. package/dist/handlers/session.js +7 -7
  84. package/dist/handlers/shell.js +6 -6
  85. package/dist/handlers/skill.js +6 -6
  86. package/dist/handlers/usage.js +6 -6
  87. package/dist/handlers/vcs.js +6 -6
  88. package/dist/handlers/voice.js +6 -6
  89. package/dist/handlers/websearch.js +6 -6
  90. package/dist/handlers/worktree.js +6 -6
  91. package/dist/handlers.js +47 -47
  92. package/dist/location.js +2 -2
  93. package/dist/media-uri.js +1 -1
  94. package/dist/middleware/authorization.js +2 -2
  95. package/dist/middleware/form-location.js +3 -3
  96. package/dist/middleware/schema-error.js +1 -1
  97. package/dist/middleware/session-location.js +3 -3
  98. package/dist/pairing.js +1 -1
  99. package/dist/process.js +53 -53
  100. package/dist/request-tracing.js +1 -1
  101. package/dist/routes.js +50 -50
  102. package/dist/server-info.js +5 -5
  103. package/dist/service-status.js +1 -1
  104. package/dist/workerd.js +52 -52
  105. package/package.json +9 -9
  106. package/dist/chunks/cors-hdwd22w5.js +0 -47
  107. /package/dist/chunks/{cors-9rqn6x4v.js → fetch-9rqn6x4v.js} +0 -0
  108. /package/dist/chunks/{cors-bd8755ek.js → fetch-bd8755ek.js} +0 -0
  109. /package/dist/chunks/{cors-h6rt5k9s.js → fetch-h6rt5k9s.js} +0 -0
  110. /package/dist/chunks/{cors-n321d8vm.js → fetch-n321d8vm.js} +0 -0
  111. /package/dist/chunks/{cors-q4bn6dy8.js → fetch-q4bn6dy8.js} +0 -0
  112. /package/dist/chunks/{cors-smaf4a18.js → fetch-smaf4a18.js} +0 -0
  113. /package/dist/chunks/{cors-xthc02cw.js → fetch-xthc02cw.js} +0 -0
  114. /package/dist/chunks/{cors-yc7nft6q.js → fetch-yc7nft6q.js} +0 -0
package/dist/api.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Api2
3
- } from "./chunks/cors-r5696se6.js";
4
- import"./chunks/cors-gk0yxcp6.js";
5
- import"./chunks/cors-yet0vexm.js";
6
- import"./chunks/cors-gqq6kfhc.js";
7
- import"./chunks/cors-smaf4a18.js";
3
+ } from "./chunks/fetch-9c4eyh8m.js";
4
+ import"./chunks/fetch-yet0vexm.js";
5
+ import"./chunks/fetch-gk0yxcp6.js";
6
+ import"./chunks/fetch-gqq6kfhc.js";
7
+ import"./chunks/fetch-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/cors-j4at0y5c.js";
10
+ } from "./chunks/fetch-j4at0y5c.js";
11
11
  export {
12
12
  Config2 as Config,
13
13
  SESSION_TTL_SECONDS2 as SESSION_TTL_SECONDS,
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  missingSession2
3
- } from "./cors-smaf4a18.js";
3
+ } from "./fetch-smaf4a18.js";
4
4
 
5
5
  // src/handlers/schedule.ts
6
+ import { Permission } from "@opencode/core/permission";
6
7
  import { Schedule } from "@opencode/core/schedule";
7
8
  import { ForbiddenError, InvalidRequestError, ScheduleNotFoundError } from "@opencode/protocol/errors";
8
9
  import { Effect } from "effect";
@@ -18,9 +19,11 @@ var makeSchedule2 = Effect.gen(function* () {
18
19
  return info;
19
20
  });
20
21
  return {
21
- create: (payload) => schedules.create(Schedule.toCreateInput(payload.sessionID, payload)).pipe(Effect.map((data) => ({ data })), Effect.catchTags({
22
+ create: (payload) => schedules.create(Schedule.toCreateInput(payload.sessionID, payload)).pipe(Effect.provideService(Permission.Unattended, []), Effect.map((data) => ({ data })), Effect.catchTags({
22
23
  "Schedule.InvalidError": (error) => Effect.fail(new InvalidRequestError({ message: error.message, kind: "schedule" })),
23
24
  "Schedule.DisabledError": () => Effect.fail(disabled()),
25
+ "Permission.BlockedError": (error) => Effect.fail(new ForbiddenError({ message: error.message })),
26
+ "Permission.CorrectedError": (error) => Effect.fail(new ForbiddenError({ message: error.feedback })),
24
27
  "Session.NotFoundError": (error) => Effect.fail(missingSession2(error))
25
28
  })),
26
29
  list: (sessionID) => allowed(sessionID).pipe(Effect.andThen(schedules.list({ sessionID })), Effect.map((data) => ({ data }))),
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  awaitPlugins2,
3
3
  response2
4
- } from "./cors-gqq6kfhc.js";
4
+ } from "./fetch-gqq6kfhc.js";
5
5
  import {
6
6
  Api2
7
- } from "./cors-r5696se6.js";
7
+ } from "./fetch-9c4eyh8m.js";
8
8
 
9
9
  // src/handlers/model.ts
10
10
  import { Model } from "@opencode/core/model";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.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 "./cors-gqq6kfhc.js";
3
+ } from "./fetch-gqq6kfhc.js";
4
4
  import {
5
5
  Api2
6
- } from "./cors-r5696se6.js";
6
+ } from "./fetch-9c4eyh8m.js";
7
7
 
8
8
  // src/handlers/shell.ts
9
9
  import { Shell } from "@opencode/core/shell";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.js";
4
4
 
5
5
  // src/handlers/rpc.ts
6
6
  import { Rpc } from "@opencode/core/rpc";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./cors-gqq6kfhc.js";
3
+ } from "./fetch-gqq6kfhc.js";
4
4
  import {
5
5
  Api2
6
- } from "./cors-r5696se6.js";
6
+ } from "./fetch-9c4eyh8m.js";
7
7
 
8
8
  // src/handlers/skill.ts
9
9
  import { Skill } from "@opencode/core/skill";
@@ -4,7 +4,7 @@ import {
4
4
  authorized2,
5
5
  verifySession2,
6
6
  sessionCookieName2
7
- } from "./cors-j4at0y5c.js";
7
+ } from "./fetch-j4at0y5c.js";
8
8
 
9
9
  // src/middleware/authorization.ts
10
10
  import { UnauthorizedError } from "@opencode/protocol/errors";
@@ -1,105 +1,105 @@
1
1
  import {
2
2
  GenerateHandler2
3
- } from "./cors-wqv43pj9.js";
3
+ } from "./fetch-c6sjpm0r.js";
4
4
  import {
5
5
  VoiceHandler2
6
- } from "./cors-2835150m.js";
6
+ } from "./fetch-wxj3d9av.js";
7
7
  import {
8
8
  MessageHandler2
9
- } from "./cors-ac10qb5k.js";
9
+ } from "./fetch-zgt2tacv.js";
10
10
  import {
11
11
  ModelHandler2
12
- } from "./cors-370cpmna.js";
12
+ } from "./fetch-0a5jm2na.js";
13
13
  import {
14
14
  ProviderHandler2
15
- } from "./cors-vtfzy3at.js";
15
+ } from "./fetch-hax1v4bv.js";
16
16
  import {
17
17
  SessionHandler2
18
- } from "./cors-zkg10e14.js";
18
+ } from "./fetch-kffvskmv.js";
19
19
  import {
20
20
  PermissionHandler2
21
- } from "./cors-50xc6x42.js";
21
+ } from "./fetch-ppma8fcc.js";
22
22
  import {
23
23
  FileSystemHandler2
24
- } from "./cors-0pbbhyf6.js";
24
+ } from "./fetch-r6vmgwff.js";
25
25
  import {
26
26
  FormHandler2
27
- } from "./cors-7x1re4zg.js";
27
+ } from "./fetch-m5rae7m4.js";
28
28
  import {
29
29
  CommandHandler2
30
- } from "./cors-xpg37vzc.js";
30
+ } from "./fetch-z59gyc0x.js";
31
31
  import {
32
32
  SkillHandler2
33
- } from "./cors-xbqm7mpj.js";
33
+ } from "./fetch-6vs5sqy6.js";
34
34
  import {
35
35
  RpcHandler2
36
- } from "./cors-zyntahe8.js";
36
+ } from "./fetch-2xcc0x05.js";
37
37
  import {
38
- layer2
39
- } from "./cors-fvpjvjpp.js";
38
+ layer4
39
+ } from "./fetch-wecgp61r.js";
40
40
  import {
41
41
  EventHandler2
42
- } from "./cors-9jpfpdce.js";
42
+ } from "./fetch-e9906t2e.js";
43
43
  import {
44
44
  AgentHandler2
45
- } from "./cors-f4exzdsf.js";
45
+ } from "./fetch-hnheq3hv.js";
46
46
  import {
47
47
  PluginHandler2
48
- } from "./cors-sqxx1p54.js";
48
+ } from "./fetch-qn8kkfq6.js";
49
49
  import {
50
50
  ServerHandler2
51
- } from "./cors-4sjzj1z2.js";
51
+ } from "./fetch-w587cpb2.js";
52
52
  import {
53
53
  DebugHandler2
54
- } from "./cors-jc2vwkyw.js";
54
+ } from "./fetch-x8dgc261.js";
55
55
  import {
56
56
  PtyHandler2
57
- } from "./cors-r414f1xb.js";
57
+ } from "./fetch-ckkpcd9y.js";
58
58
  import {
59
59
  PersistentPtyHandler2
60
- } from "./cors-seksa6r9.js";
60
+ } from "./fetch-gsyfxrkq.js";
61
61
  import {
62
62
  ShellHandler2
63
- } from "./cors-rxyx8sa0.js";
63
+ } from "./fetch-22wspztn.js";
64
64
  import {
65
65
  ReferenceHandler2
66
- } from "./cors-skcryrty.js";
66
+ } from "./fetch-yr4wsvrw.js";
67
67
  import {
68
68
  LocationHandler2
69
- } from "./cors-74kxthdf.js";
69
+ } from "./fetch-h072q2hm.js";
70
70
  import {
71
71
  IntegrationHandler2
72
- } from "./cors-4gk9fc6f.js";
72
+ } from "./fetch-zrprg5z5.js";
73
73
  import {
74
74
  WebSearchHandler2
75
- } from "./cors-7cd61xtm.js";
75
+ } from "./fetch-e46y0tfd.js";
76
76
  import {
77
77
  UsageHandler2
78
- } from "./cors-5z5anmwp.js";
78
+ } from "./fetch-j9gxd9me.js";
79
79
  import {
80
80
  McpHandler2
81
- } from "./cors-h207xvn8.js";
81
+ } from "./fetch-rztv1fyf.js";
82
82
  import {
83
83
  CredentialHandler2
84
- } from "./cors-hdwd22w5.js";
84
+ } from "./fetch-b5vdqx3g.js";
85
85
  import {
86
86
  ProjectHandler2
87
- } from "./cors-zmgfywqd.js";
87
+ } from "./fetch-dk68ymtv.js";
88
88
  import {
89
89
  WorktreeHandler2
90
- } from "./cors-vfkjeyp3.js";
90
+ } from "./fetch-h9rcwvg0.js";
91
91
  import {
92
92
  VcsHandler2
93
- } from "./cors-7tewdwsb.js";
93
+ } from "./fetch-xe9t9xr4.js";
94
94
  import {
95
95
  MigrationHandler2
96
- } from "./cors-vvp99hc9.js";
96
+ } from "./fetch-1je14sn4.js";
97
97
  import {
98
98
  ConfigHandler2
99
- } from "./cors-0e4fm4yw.js";
99
+ } from "./fetch-b2k9041j.js";
100
100
 
101
101
  // src/handlers.ts
102
102
  import { Layer } from "effect";
103
- var handlers2 = Layer.mergeAll(ServerHandler2, DebugHandler2, MigrationHandler2, LocationHandler2, AgentHandler2, PluginHandler2, SessionHandler2, MessageHandler2, ModelHandler2, GenerateHandler2, VoiceHandler2, ProviderHandler2, IntegrationHandler2, WebSearchHandler2, UsageHandler2, McpHandler2, CredentialHandler2, ProjectHandler2, FormHandler2, PermissionHandler2, FileSystemHandler2, CommandHandler2, SkillHandler2, RpcHandler2, EventHandler2.pipe(Layer.provide(layer2)), PtyHandler2, PersistentPtyHandler2, ShellHandler2, ReferenceHandler2, WorktreeHandler2, VcsHandler2, ConfigHandler2);
103
+ var handlers2 = Layer.mergeAll(ServerHandler2, DebugHandler2, MigrationHandler2, LocationHandler2, AgentHandler2, PluginHandler2, SessionHandler2, MessageHandler2, ModelHandler2, GenerateHandler2, VoiceHandler2, ProviderHandler2, IntegrationHandler2, WebSearchHandler2, UsageHandler2, McpHandler2, CredentialHandler2, ProjectHandler2, FormHandler2, PermissionHandler2, FileSystemHandler2, CommandHandler2, SkillHandler2, RpcHandler2, EventHandler2.pipe(Layer.provide(layer4)), PtyHandler2, PersistentPtyHandler2, ShellHandler2, ReferenceHandler2, WorktreeHandler2, VcsHandler2, ConfigHandler2);
104
104
 
105
105
  export { handlers2 };
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  LocationMiddleware2
3
- } from "./cors-gqq6kfhc.js";
3
+ } from "./fetch-gqq6kfhc.js";
4
4
  import {
5
5
  FormLocationMiddleware2
6
- } from "./cors-gk0yxcp6.js";
6
+ } from "./fetch-gk0yxcp6.js";
7
7
  import {
8
8
  SessionLocationMiddleware2
9
- } from "./cors-yet0vexm.js";
9
+ } from "./fetch-yet0vexm.js";
10
10
 
11
11
  // src/api.ts
12
12
  import { makeDefaultApi } from "@opencode/protocol/api";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.js";
4
4
 
5
5
  // src/handlers/config.ts
6
6
  import { Config } from "@opencode/core/config";
@@ -0,0 +1,61 @@
1
+ import {
2
+ Api2
3
+ } from "./fetch-9c4eyh8m.js";
4
+ import {
5
+ requireConnectable2
6
+ } from "./fetch-zrprg5z5.js";
7
+
8
+ // src/handlers/credential.ts
9
+ import { Credential } from "@opencode/core/credential";
10
+ import { FileSystem } from "@opencode/core/filesystem";
11
+ import { Location } from "@opencode/core/location";
12
+ import { LocationServiceMap } from "@opencode/core/location-services";
13
+ import { AbsolutePath } from "@opencode/core/schema";
14
+ import { ConflictError } from "@opencode/protocol/errors";
15
+ import { Global } from "@opencode/util/global";
16
+ import { Effect } from "effect";
17
+ import { HttpApiBuilder, HttpApiSchema } from "effect/http-api";
18
+ var CredentialHandler2 = HttpApiBuilder.group(Api2, "server.credential", (handlers) => Effect.gen(function* () {
19
+ const global = yield* Global.Service;
20
+ const locations = yield* LocationServiceMap.Service;
21
+ const services = locations.get(Location.Ref.make({ directory: AbsolutePath.make(global.config) }));
22
+ return handlers.handle("credential.list", Effect.fn(function* () {
23
+ const credential = yield* Credential.Service;
24
+ return { data: entries(yield* credential.all()) };
25
+ })).handle("credential.create", Effect.fn(function* (ctx) {
26
+ yield* requireConnectable2(ctx.payload.integrationID).pipe(Effect.provide(services), Effect.catchIf((error) => error instanceof FileSystem.DirectoryNotFoundError, Effect.die));
27
+ const credential = yield* Credential.Service;
28
+ if (ctx.payload.id && (yield* credential.get(ctx.payload.id)))
29
+ return yield* new ConflictError({
30
+ resource: ctx.payload.id,
31
+ message: `Credential already exists: ${ctx.payload.id}`
32
+ });
33
+ const created = yield* credential.create(ctx.payload);
34
+ const entry = entries(yield* credential.list(created.integrationID)).find((item) => item.id === created.id);
35
+ return { data: entry ?? { ...created, active: false } };
36
+ })).handle("credential.update", Effect.fn(function* (ctx) {
37
+ const credential = yield* Credential.Service;
38
+ yield* credential.update(ctx.params.credentialID, { label: ctx.payload.label });
39
+ return HttpApiSchema.NoContent.make();
40
+ })).handle("credential.activate", Effect.fn(function* (ctx) {
41
+ const credential = yield* Credential.Service;
42
+ yield* credential.activate(ctx.params.credentialID);
43
+ return HttpApiSchema.NoContent.make();
44
+ })).handle("credential.remove", Effect.fn(function* (ctx) {
45
+ const credential = yield* Credential.Service;
46
+ yield* credential.remove(ctx.params.credentialID);
47
+ return HttpApiSchema.NoContent.make();
48
+ }));
49
+ }));
50
+ function entries(credentials) {
51
+ const selected = new Map(credentials.map((item) => [item.integrationID, item.id]));
52
+ return credentials.map((item) => ({
53
+ id: item.id,
54
+ integrationID: item.integrationID,
55
+ label: item.label,
56
+ active: selected.get(item.integrationID) === item.id,
57
+ value: item.value
58
+ }));
59
+ }
60
+
61
+ export { CredentialHandler2 };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  locationErrors2,
3
3
  awaitPlugins2
4
- } from "./cors-gqq6kfhc.js";
4
+ } from "./fetch-gqq6kfhc.js";
5
5
  import {
6
6
  Api2
7
- } from "./cors-r5696se6.js";
7
+ } from "./fetch-9c4eyh8m.js";
8
8
 
9
9
  // src/handlers/generate.ts
10
10
  import { Generate } from "@opencode/core/generate";
@@ -2,17 +2,17 @@ import {
2
2
  locationErrors2,
3
3
  response2,
4
4
  requestRef2
5
- } from "./cors-gqq6kfhc.js";
5
+ } from "./fetch-gqq6kfhc.js";
6
6
  import {
7
7
  Api2
8
- } from "./cors-r5696se6.js";
8
+ } from "./fetch-9c4eyh8m.js";
9
9
  import {
10
10
  CorsConfig2,
11
11
  isAllowedRequestOrigin2
12
- } from "./cors-q4bn6dy8.js";
12
+ } from "./fetch-q4bn6dy8.js";
13
13
  import {
14
14
  runPtySocket2
15
- } from "./cors-h6rt5k9s.js";
15
+ } from "./fetch-h6rt5k9s.js";
16
16
 
17
17
  // src/handlers/pty.ts
18
18
  import { Pty } from "@opencode/core/pty";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.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
  awaitPlugins2,
3
3
  response2
4
- } from "./cors-gqq6kfhc.js";
4
+ } from "./fetch-gqq6kfhc.js";
5
5
  import {
6
6
  Api2
7
- } from "./cors-r5696se6.js";
7
+ } from "./fetch-9c4eyh8m.js";
8
8
 
9
9
  // src/handlers/websearch.ts
10
10
  import { WebSearch } from "@opencode/core/websearch";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./cors-9rqn6x4v.js";
3
+ } from "./fetch-9rqn6x4v.js";
4
4
 
5
5
  // src/service-status.ts
6
6
  var exports_service_status = {};
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.js";
4
4
  import {
5
- Service2,
5
+ Service4,
6
6
  frame2
7
- } from "./cors-fvpjvjpp.js";
7
+ } from "./fetch-wecgp61r.js";
8
8
 
9
9
  // src/handlers/event.ts
10
10
  import { Event } from "@opencode/schema/event";
@@ -12,7 +12,7 @@ import { Effect, Stream } from "effect";
12
12
  import { HttpServerResponse } from "effect/http";
13
13
  import { HttpApiBuilder } from "effect/http-api";
14
14
  var EventHandler2 = HttpApiBuilder.group(Api2, "server.event", (handlers) => Effect.gen(function* () {
15
- const feed = yield* Service2;
15
+ const feed = yield* Service4;
16
16
  return handlers.handleRaw("event.subscribe", (ctx) => Effect.gen(function* () {
17
17
  const connected = {
18
18
  id: Event.ID.create(),
@@ -2,7 +2,7 @@ import {
2
2
  locationErrors2,
3
3
  sessionInfo2,
4
4
  requestRef2
5
- } from "./cors-gqq6kfhc.js";
5
+ } from "./fetch-gqq6kfhc.js";
6
6
 
7
7
  // src/middleware/form-location.ts
8
8
  import { Instance } from "@opencode/core/instance/service";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  missingSession2
3
- } from "./cors-smaf4a18.js";
3
+ } from "./fetch-smaf4a18.js";
4
4
 
5
5
  // src/location.ts
6
6
  import { FileSystem } from "@opencode/core/filesystem";
@@ -1,24 +1,29 @@
1
1
  import {
2
2
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.js";
4
4
  import {
5
5
  CorsConfig2,
6
6
  isAllowedRequestOrigin2
7
- } from "./cors-q4bn6dy8.js";
7
+ } from "./fetch-q4bn6dy8.js";
8
8
  import {
9
9
  makeMediaGet2
10
- } from "./cors-n321d8vm.js";
10
+ } from "./fetch-n321d8vm.js";
11
11
  import {
12
12
  runPtySocket2
13
- } from "./cors-h6rt5k9s.js";
13
+ } from "./fetch-h6rt5k9s.js";
14
14
  import {
15
15
  makeSchedule2
16
- } from "./cors-xzvdbbpy.js";
16
+ } from "./fetch-059rbh9c.js";
17
17
 
18
18
  // src/handlers/persistent-pty.ts
19
19
  import { PersistentPty } from "@opencode/core/persistent-pty";
20
20
  import { PtyTicket } from "@opencode/core/pty/ticket";
21
- import { ForbiddenError, PtyNotFoundError, ServiceUnavailableError } from "@opencode/protocol/errors";
21
+ import {
22
+ ForbiddenError,
23
+ InvalidRequestError,
24
+ PtyNotFoundError,
25
+ ServiceUnavailableError
26
+ } from "@opencode/protocol/errors";
22
27
  import {
23
28
  PTY_CONNECT_TICKET_QUERY,
24
29
  PTY_CONNECT_TOKEN_HEADER,
@@ -48,7 +53,10 @@ var PersistentPtyHandler2 = HttpApiBuilder.group(Api2, "server.experimental", (h
48
53
  env: ctx.payload.env,
49
54
  cols: ctx.payload.size?.cols,
50
55
  rows: ctx.payload.size?.rows
51
- }).pipe(Effect.catchTag("PersistentPty.UnavailableError", unavailable))
56
+ }).pipe(Effect.catchTags({
57
+ "PersistentPty.InvalidCwdError": (error) => new InvalidRequestError({ message: error.message, kind: "invalid_cwd", field: "cwd" }),
58
+ "PersistentPty.UnavailableError": unavailable
59
+ }))
52
60
  };
53
61
  })).handle("persistentPty.shutdown", Effect.fn(function* () {
54
62
  yield* pty.shutdown().pipe(mapUnavailable);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.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
  Api2
3
- } from "./cors-r5696se6.js";
3
+ } from "./fetch-9c4eyh8m.js";
4
4
 
5
5
  // src/handlers/worktree.ts
6
6
  import { Git } from "@opencode/core/git";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  awaitPlugins2,
3
3
  response2
4
- } from "./cors-gqq6kfhc.js";
4
+ } from "./fetch-gqq6kfhc.js";
5
5
  import {
6
6
  Api2
7
- } from "./cors-r5696se6.js";
7
+ } from "./fetch-9c4eyh8m.js";
8
8
 
9
9
  // src/handlers/provider.ts
10
10
  import { Provider } from "@opencode/core/provider";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  awaitPlugins2,
3
3
  response2
4
- } from "./cors-gqq6kfhc.js";
4
+ } from "./fetch-gqq6kfhc.js";
5
5
  import {
6
6
  Api2
7
- } from "./cors-r5696se6.js";
7
+ } from "./fetch-9c4eyh8m.js";
8
8
 
9
9
  // src/handlers/agent.ts
10
10
  import { Agent } from "@opencode/core/agent";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./cors-9rqn6x4v.js";
3
+ } from "./fetch-9rqn6x4v.js";
4
4
 
5
5
  // src/auth.ts
6
6
  var exports_auth = {};
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  awaitPlugins2,
3
3
  response2
4
- } from "./cors-gqq6kfhc.js";
4
+ } from "./fetch-gqq6kfhc.js";
5
5
  import {
6
6
  Api2
7
- } from "./cors-r5696se6.js";
7
+ } from "./fetch-9c4eyh8m.js";
8
8
 
9
9
  // src/handlers/usage.ts
10
10
  import { UsageLimits } from "@opencode/core/usage-limits";
@@ -3,16 +3,16 @@ import {
3
3
  missingMessage2,
4
4
  failedMessageDecode2,
5
5
  failedSnapshot2
6
- } from "./cors-smaf4a18.js";
6
+ } from "./fetch-smaf4a18.js";
7
7
  import {
8
8
  locationErrors2
9
- } from "./cors-gqq6kfhc.js";
9
+ } from "./fetch-gqq6kfhc.js";
10
10
  import {
11
11
  Api2
12
- } from "./cors-r5696se6.js";
12
+ } from "./fetch-9c4eyh8m.js";
13
13
  import {
14
14
  wantsMediaRefs2
15
- } from "./cors-xthc02cw.js";
15
+ } from "./fetch-xthc02cw.js";
16
16
 
17
17
  // src/handlers/session.ts
18
18
  import { Instance } from "@opencode/core/instance/service";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  response2
3
- } from "./cors-gqq6kfhc.js";
3
+ } from "./fetch-gqq6kfhc.js";
4
4
  import {
5
5
  Api2
6
- } from "./cors-r5696se6.js";
6
+ } from "./fetch-9c4eyh8m.js";
7
7
 
8
8
  // src/handlers/form.ts
9
9
  import { Form } from "@opencode/core/form";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  missingSession2
3
- } from "./cors-smaf4a18.js";
3
+ } from "./fetch-smaf4a18.js";
4
4
  import {
5
5
  locationErrors2,
6
6
  response2,
7
7
  sessionInfo2
8
- } from "./cors-gqq6kfhc.js";
8
+ } from "./fetch-gqq6kfhc.js";
9
9
  import {
10
10
  Api2
11
- } from "./cors-r5696se6.js";
11
+ } from "./fetch-9c4eyh8m.js";
12
12
 
13
13
  // src/handlers/permission.ts
14
14
  import { Instance } from "@opencode/core/instance/service";